diff --git a/CHANGELOG b/CHANGELOG index 2f44e0c2..636beb8b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,17 @@ ## Changelog +## [4.2.0] - 01-06-2023 + +### Added +- Allow quoted Q-IDENT variable definition in MicroModelica. +- Adapt reinit statements and for definition in algorithm sections to new Modelica specification. +- Added code generation for pure algebraic recursive dependencies. +- Added mLIQSS methods as experimental, they can be anebled from extended settings on the GUI. +- Reinit state assignments are now computed using the current state value instead of the quantized value. + +### Changed +- Fix terminate command code generation. + ## [4.0.1] - 03-11-2022 ### Added diff --git a/README.md b/README.md index 6dcf3aa5..6bc393f5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## QSS Solver 4.0.1 +## QSS Solver 4.2.0 The QSS Solver is a modeling and simulation environment for continuous and hybrid systems and it's optimized for large scale model simulation. @@ -219,35 +219,29 @@ The makefile script accepts the following targets: ## Changelog -## [4.0.1] - 03-11-2022 +## [4.2.0] - 01-06-2023 ### Added -- Compilation **Ubuntu 22.04** is now supported. -- Use State variables values instead of quantized approximation in handler reinit statements for QSS methods. +- Allow quoted Q-IDENT variable definition in MicroModelica. +- Adapt reinit statements and for definition in algorithm sections to new Modelica specification. +- Added code generation for pure algebraic recursive dependencies. +- Added mLIQSS methods as experimental, they can be anebled from extended settings on the GUI. +- Reinit state assignments are now computed using the current state value instead of the quantized value. ### Changed -- The QSS methods event structure **SD_EventData** now contains a new matrix that defines the RHS state variables not used in LHS state assignments. - -### Removed -- Gtest lib compilation, the compiled libraries are distributed now. +- Fix terminate command code generation. -## [4.0.0] - 30-09-2022 +## [4.0.1] - 03-11-2022 ### Added -- **N-Dimensional** Arrays are supported. -- New algorithms were developed to compute all dependency matrices that use the [**SB--Graph**](https://github.com/CIFASIS/sb-graph) interface. -- Allow discrete variable update in the form: (a,b,c) = f(d,f,g) in event handlers. -- New **MMO_RandomSeed** annotation that sets the seed used in all functions from the `math` package. -- Allow user defined dependency matrix entries. -- Allow dense matrix generation in **LIQSS_BDF** hybrid method (useful for testing). +- Compilation **Ubuntu 22.04** is now supported. +- Use State variables values instead of quantized approximation in handler reinit statements for QSS methods. ### Changed -- All variables defined in the model instance generated by the MicroModelica C Compiler are now described in terms of macro definitions. +- The QSS methods event structure **SD_EventData** now contains a new matrix that defines the RHS state variables not used in LHS state assignments. ### Removed -- Support for Mac and Windows. -- Support for rpm packages. -- 3rd party Scotch and Ginac libraries, system installed libraries are used now. +- Gtest lib compilation, the compiled libraries are distributed now. ## Licensing diff --git a/bin/build.sh b/bin/build.sh index 38dd0655..42543a34 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -15,7 +15,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== FILE=$1 diff --git a/bin/compile.sh b/bin/compile.sh index fdc9915a..09efafcf 100755 --- a/bin/compile.sh +++ b/bin/compile.sh @@ -18,7 +18,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== FILE=$1 diff --git a/bin/createLog.sh b/bin/createLog.sh index 5db375de..4fc5222a 100755 --- a/bin/createLog.sh +++ b/bin/createLog.sh @@ -14,7 +14,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== MODEL=$1 diff --git a/bin/exportvars.sh b/bin/exportvars.sh index 76a47452..abbb3785 100755 --- a/bin/exportvars.sh +++ b/bin/exportvars.sh @@ -14,7 +14,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== cd .. diff --git a/bin/gnuplot.sh b/bin/gnuplot.sh index 7060ebe6..25e1a950 100755 --- a/bin/gnuplot.sh +++ b/bin/gnuplot.sh @@ -13,7 +13,7 @@ # NOTES: -persist is the default option used by the QSS Solver GUI. # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== OPTIONS=$1 diff --git a/bin/mmoc.sh b/bin/mmoc.sh index 9427d8dc..bca43a14 100755 --- a/bin/mmoc.sh +++ b/bin/mmoc.sh @@ -14,7 +14,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== OPTIONS=$1 diff --git a/bin/registervars.sh b/bin/registervars.sh index 11c6eb93..a511ee9c 100755 --- a/bin/registervars.sh +++ b/bin/registervars.sh @@ -14,7 +14,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== cd .. diff --git a/bin/run.sh b/bin/run.sh index 4208c6e3..1ec83864 100755 --- a/bin/run.sh +++ b/bin/run.sh @@ -17,7 +17,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== diff --git a/bin/runqss.sh b/bin/runqss.sh index 929c57d2..15a2013e 100755 --- a/bin/runqss.sh +++ b/bin/runqss.sh @@ -16,7 +16,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== FILE=$1 diff --git a/bin/sbml.sh b/bin/sbml.sh index 1c7c496e..38e9e8d7 100755 --- a/bin/sbml.sh +++ b/bin/sbml.sh @@ -16,7 +16,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== OPTIONS=$1 diff --git a/bin/simulate.sh b/bin/simulate.sh index d25a2a73..a1dc08aa 100755 --- a/bin/simulate.sh +++ b/bin/simulate.sh @@ -20,7 +20,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== FILE=$1 diff --git a/bin/sortDiscretes.sh b/bin/sortDiscretes.sh index 251f6a4f..505f98d1 100755 --- a/bin/sortDiscretes.sh +++ b/bin/sortDiscretes.sh @@ -15,7 +15,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== if test -n "$(find . -maxdepth 1 -name '*-discrete-*.dat' -print -quit)"; then diff --git a/bin/uploadDoc.sh b/bin/uploadDoc.sh index 1b660c8c..24b186d0 100755 --- a/bin/uploadDoc.sh +++ b/bin/uploadDoc.sh @@ -13,7 +13,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== cd $MMOC_SRC/engine/usr/doc/html diff --git a/deploy/linux/build.sh b/deploy/linux/build.sh old mode 100755 new mode 100644 index 96dfaad2..204ef911 --- a/deploy/linux/build.sh +++ b/deploy/linux/build.sh @@ -15,7 +15,7 @@ # NOTES: --- # AUTHOR: Joaquin Fernandez, joaquin.f.fernandez@gmail.com # PROJECT: QSS Solver -# VERSION: 4.0.1 +# VERSION: 4.2.0 #=================================================================================== rm -rf qss-solver-*.deb @@ -26,11 +26,23 @@ echo "Retrieving latest from Git"; git pull cat ./deploy/linux/qss-solver.ini.in > ./deploy/linux/qss-solver.ini + # Set solver version VER=`cat ./deploy/linux/version` INI_VER="version="$VER echo $INI_VER >> ./deploy/linux/qss-solver.ini +# Set OS config files. +CONTROL_FILE="control.amd64" +SBML_LIB="libsbml.so.5.18.0" +PACKAGE_NAME=qss-solver-$VER.deb +SYSTEM_VERSION=`lsb_release -d` +if [[ "$SYSTEM_VERSION" == *"22.04"* ]]; then + CONTROL_FILE="control.amd64.u22" + SBML_LIB="libsbml.so.5.19.0" + PACKAGE_NAME=qss-solver-$VER-u22.deb +fi + # Set solver branch BRANCH=`git rev-parse --abbrev-ref HEAD` BRANCH="branch="$BRANCH @@ -60,8 +72,8 @@ mkdir ./tmp_deb/opt/qss-solver/build mkdir ./tmp_deb/opt/qss-solver/output mkdir ./tmp_deb/opt/qss-solver/lib/ -cat ./tmp_deb/DEBIAN/control.amd64 | awk -v VERSION="$VER" '{ if(index($0,"Version:")>=1) print "Version: " VERSION ; else print $0;}' > ./tmp_deb/DEBIAN/control -rm ./tmp_deb/DEBIAN/control.amd64; +cat ./tmp_deb/DEBIAN/$CONTROL_FILE | awk -v VERSION="$VER" '{ if(index($0,"Version:")>=1) print "Version: " VERSION ; else print $0;}' > ./tmp_deb/DEBIAN/control +rm ./tmp_deb/DEBIAN/$CONTROL_FILE cp deploy/linux/version ./tmp_deb/opt/qss-solver/ cp src/mmoc/usr/bin/mmoc ./tmp_deb/opt/qss-solver/bin/ @@ -99,7 +111,7 @@ rm -rf ./tmp_deb/opt/qss-solver/src/usr/lib rm -rf ./tmp_deb/opt/qss-solver/src/interfaces/sbml/usr rm -rf ./tmp_deb/opt/qss-solver/src/gui/usr -cp /usr/lib/x86_64-linux-gnu/libsbml.so.5.18.0 ./tmp_deb/opt/qss-solver/lib/libsbml.so.5 +cp /usr/lib/x86_64-linux-gnu/$SBML_LIB ./tmp_deb/opt/qss-solver/lib/libsbml.so.5 cp src/engine/3rd-party/partitioners/patoh/Linux-x86_64/libpatoh.a ./tmp_deb/opt/qss-solver/lib/libpatoh.a cp src/engine/3rd-party/partitioners/metis/Linux-x86_64/libmetis.a ./tmp_deb/opt/qss-solver/lib/libmetis.a @@ -115,7 +127,7 @@ chmod 0644 `find tmp_deb/opt/qss-solver/packages/ -type f` chmod 0644 `find tmp_deb/opt/qss-solver/src/usr/ -type f` chmod 0755 `find tmp_deb/ -type d` fakeroot dpkg -b tmp_deb qss-solver.deb -mv qss-solver.deb ./deploy/linux/qss-solver-$VER.deb +mv qss-solver.deb ./deploy/linux/$PACKAGE_NAME rm -rf tmp_deb rm -rf tmp cd deploy/linux diff --git a/deploy/linux/deb/DEBIAN/control.amd64.u22 b/deploy/linux/deb/DEBIAN/control.amd64.u22 new file mode 100644 index 00000000..7354914a --- /dev/null +++ b/deploy/linux/deb/DEBIAN/control.amd64.u22 @@ -0,0 +1,9 @@ +Package: qss-solver +Version: +Architecture: amd64 +Maintainer: Joaquin Fernandez +Depends: gnuplot-x11, build-essential (>= 11.4), qtbase5-dev, qt5-qmake, zenity, gfortran (>=4.6.3), libconfig-dev, libblas-dev, libgsl0-dev, libsuitesparse-dev, libcln6, libatlas-base-dev +Section: science +Priority: extra +Homepage: https://github.com/CIFASIS/qss-solver +Description: Quantized State System Solver. diff --git a/deploy/linux/version b/deploy/linux/version index 1454f6ed..6aba2b24 100644 --- a/deploy/linux/version +++ b/deploy/linux/version @@ -1 +1 @@ -4.0.1 +4.2.0 diff --git a/src/engine/.vscode/launch.json b/src/engine/.vscode/launch.json new file mode 100644 index 00000000..17c762f7 --- /dev/null +++ b/src/engine/.vscode/launch.json @@ -0,0 +1,28 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + // Generic per model configurations. + + // Mixed mode buckt_term model + { + "name": "Buck Falla.", + "type": "cppdbg", + "request": "launch", + "program": "/home/joaquin/work/qss-solver/build/buck_falla/buck_falla", + "cwd": "/home/joaquin/work/qss-solver/build/buck_falla/", + "environment": [], + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/src/engine/.vscode/settings.json b/src/engine/.vscode/settings.json new file mode 100644 index 00000000..1428c386 --- /dev/null +++ b/src/engine/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "random": "cpp" + } +} \ No newline at end of file diff --git a/src/engine/.vscode/tasks.json b/src/engine/.vscode/tasks.json new file mode 100644 index 00000000..08d9005b --- /dev/null +++ b/src/engine/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc build active file", + "command": "/usr/bin/gcc", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/src/engine/QSSSolver.doxyfile b/src/engine/QSSSolver.doxyfile index 3b670b94..79aeba0e 100644 --- a/src/engine/QSSSolver.doxyfile +++ b/src/engine/QSSSolver.doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "Stand-Alone QSS Solver" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 4.0.1 +PROJECT_NUMBER = 4.2.0 # 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 diff --git a/src/engine/common/data.h b/src/engine/common/data.h index d4403e8d..c6c83acf 100644 --- a/src/engine/common/data.h +++ b/src/engine/common/data.h @@ -61,7 +61,10 @@ typedef enum { SD_DOPRI, SD_CVODE_BDF, SD_CVODE_AM, - SD_IDA + SD_IDA, + SD_mLIQSS, + SD_mLIQSS2, + SD_mLIQSS3 } SD_Solver; typedef enum { diff --git a/src/engine/common/settings.c b/src/engine/common/settings.c index 102eec34..57c90cff 100644 --- a/src/engine/common/settings.c +++ b/src/engine/common/settings.c @@ -46,6 +46,12 @@ SD_Solver _getSolver(const char *sol) return SD_LIQSS3; } else if (!strcmp(sol, "QSS4")) { return SD_QSS4; + } else if (!strcmp(sol, "mLIQSS")) { + return SD_mLIQSS; + } else if (!strcmp(sol, "mLIQSS2")) { + return SD_mLIQSS2; + } else if (!strcmp(sol, "mLIQSS3")) { + return SD_mLIQSS3; } else if (!strcmp(sol, "DASSL")) { return SD_DASSL; } else if (!strcmp(sol, "DOPRI")) { @@ -92,6 +98,7 @@ int _getOrder(SD_Solver sol) case SD_QSS: case SD_CQSS: case SD_LIQSS: + case SD_mLIQSS: case SD_DASSL: case SD_DOPRI: case SD_CVODE_BDF: @@ -100,10 +107,12 @@ int _getOrder(SD_Solver sol) return 1; case SD_QSS2: case SD_LIQSS2: + case SD_mLIQSS2: case SD_LIQSS_BDF: return 2; case SD_QSS3: case SD_LIQSS3: + case SD_mLIQSS3: return 3; case SD_QSS4: return 4; diff --git a/src/engine/qss/methods/Makefile.include b/src/engine/qss/methods/Makefile.include index 52094daf..de85dcef 100644 --- a/src/engine/qss/methods/Makefile.include +++ b/src/engine/qss/methods/Makefile.include @@ -10,7 +10,10 @@ SEQ_METHODS_SRC = $(QSS_METHODS_DIR)/qss.c \ $(QSS_METHODS_DIR)/liqss2.c \ $(QSS_METHODS_DIR)/liqss_bdf.c \ $(QSS_METHODS_DIR)/liqss3.c \ - $(QSS_METHODS_DIR)/cqss.c + $(QSS_METHODS_DIR)/cqss.c \ + $(QSS_METHODS_DIR)/mliqss.c \ + $(QSS_METHODS_DIR)/mliqss2.c \ + $(QSS_METHODS_DIR)/mliqss3.c # Objects diff --git a/src/engine/qss/methods/mliqss.c b/src/engine/qss/methods/mliqss.c new file mode 100644 index 00000000..2906cc34 --- /dev/null +++ b/src/engine/qss/methods/mliqss.c @@ -0,0 +1,369 @@ +/***************************************************************************** + + + This file is part of QSS Solver. + + QSS Solver is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QSS Solver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QSS Solver. If not, see . + +******************************************************************************/ +#include +#include +#include + +#include +#include + +#define TOL 2 + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime) +#else +void mLIQSS_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime) +#endif +{ + int i, j; + int states = simData->states; + quantizer->state->dq = (double *)malloc(states * sizeof(double)); + quantizer->state->oldDx = (double *)malloc(states * sizeof(double)); + quantizer->state->qAux = (double *)malloc(states * sizeof(double)); + quantizer->state->a = (double *)malloc(states * sizeof(double)); + quantizer->state->u0 = (double *)malloc(states * sizeof(double)); + quantizer->state->lt = (double *)malloc(states * sizeof(double)); + quantizer->state->A = (double **)malloc(states * sizeof(double *)); + quantizer->state->U0 = (double **)malloc(states * sizeof(double *)); + for (i = 0; i < states; i++) { + quantizer->state->A[i] = (double *)malloc(states * sizeof(double)); + quantizer->state->U0[i] = (double *)malloc(states * sizeof(double)); + } + quantizer->state->change = (bool *)malloc(states * sizeof(bool)); + quantizer->state->qj = (double *)malloc(2 * states * sizeof(double)); + quantizer->state->tx = (double *)malloc(states * sizeof(double)); + quantizer->state->finTime = simData->ft; + quantizer->state->flag2 = (int *)malloc(states * sizeof(int)); + for (i = 0; i < states; i++) { + int i0 = i * 2; + // simData->tmp1[i0] = simData->x[i0]; + simData->q[i0] = simData->x[i0]; + quantizer->state->qAux[i] = simData->x[i0]; + quantizer->state->oldDx[i] = 0; + quantizer->state->a[i] = 0; + quantizer->state->u0[i] = 0; + quantizer->state->dq[i] = 0; + quantizer->state->change[i] = FALSE; + quantizer->state->qj[i] = 0; + quantizer->state->flag2[i] = 0; + for (j = 0; j < states; j++) { + quantizer->state->A[i][j] = 0; + quantizer->state->U0[i][j] = 0; + } + } + quantizer->state->simTime = &simTime->time; + quantizer->state->lSimTime = simTime; + quantizer->state->nSD = simData->nSD; + quantizer->state->SD = simData->SD; + quantizer->state->minStep = simData->params->minStep; +#ifdef QSS_PARALLEL + quantizer->state->qMap = simData->lp->qMap; + quantizer->ops->recomputeNextTimes = mLIQSS_PAR_recomputeNextTimes; + quantizer->ops->recomputeNextTime = mLIQSS_PAR_recomputeNextTime; + quantizer->ops->nextTime = mLIQSS_PAR_nextTime; + quantizer->ops->updateQuantizedState = mLIQSS_PAR_updateQuantizedState; +#else + quantizer->ops->recomputeNextTimes = mLIQSS_recomputeNextTimes; + quantizer->ops->recomputeNextTime = mLIQSS_recomputeNextTime; + quantizer->ops->nextTime = mLIQSS_nextTime; + quantizer->ops->updateQuantizedState = mLIQSS_updateQuantizedState; +#endif +} + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q) +#else +void mLIQSS_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q) +#endif +{ + int i; +#ifdef QSS_PARALLEL + int *map = quantizer->state->qMap; +#endif + for (i = 0; i < vars; i++) { +#ifdef QSS_PARALLEL + if (map[inf[i]] != NOT_ASSIGNED) { +#endif + mLIQSS_recomputeNextTime(quantizer, inf[i], t, nTime, x, lqu, q); +#ifdef QSS_PARALLEL + } +#endif + } +} + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_recomputeNextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu, double *q) +#else +void mLIQSS_recomputeNextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu, double *q) +#endif +{ + int i0 = i * 2, i1 = i0 + 1; + double **A = quantizer->state->A; + double **U = quantizer->state->U0; + int stind = quantizer->state->lSimTime->minIndex; + double diffQ; + bool *change = quantizer->state->change; + + if (t > 0) { + diffQ = q[2 * stind] - quantizer->state->qAux[stind]; + if (diffQ) + A[i][stind] = (x[i1] - quantizer->state->oldDx[i]) / diffQ; + else + A[i][stind] = 0; + U[i][i] = x[i1] - q[i0] * A[i][i]; + } else + U[i][i] = x[i1]; + + if (change[i] == TRUE) + nTime[i] = t; + else { + double dt1 = 0; + if (x[i1] != 0) { + dt1 = (q[i0] - x[i0]) / x[i1]; + if (dt1 > 0) + nTime[i] = t + dt1; + else { + if (x[i1] > 0) + nTime[i] = t + (q[i0] + 2 * lqu[i] - x[i0]) / x[i1]; + else + nTime[i] = t + (q[i0] - 2 * lqu[i] - x[i0]) / x[i1]; + } + } else + nTime[i] = INF; + if (fabs(q[i0] - x[i0]) > 2 * lqu[i]) nTime[i] = t + quantizer->state->finTime * quantizer->state->minStep; + } +} + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_nextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu) +#else +void mLIQSS_nextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu) +#endif +{ + int i1 = i * 2 + 1; + if (x[i1] == 0) + nTime[i] = INF; + else + nTime[i] = t + fabs(lqu[i] / x[i1]); +} + +#ifdef QSS_PARALLEL +double mLIQSS_PAR_solver2x2(QA_quantizer quantizer, double *x, double *q, int i, int j, double *h) +#else +double mLIQSS_solver2x2(QA_quantizer quantizer, double *x, double *q, int i, int j, double *h) +#endif +{ + double qBE; + double **A = quantizer->state->A; + double **U = quantizer->state->U0; + int i0 = 2 * i; + int j0 = 2 * j; + double K1, K2, K3, coef[3]; + + K1 = A[j][i] * q[i0] + U[j][i]; + K2 = A[i][i] * q[i0] + U[i][j]; + K3 = x[i0] - q[i0]; + coef[2] = -A[i][j] * K1 - A[j][j] * K2; + coef[1] = -A[j][j] * K3 + A[i][j] * x[j0] + K2; + coef[0] = K3; + *h = minPosRoot(coef, 3); + qBE = (x[j0] + *h * K1) / (1 - *h * A[j][j]); + return qBE; +} + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *qj, int i, int j, double h, double xj0) +#else +void mLIQSS_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *qj, int i, int j, double h, double xj0) +#endif +{ + double **A = quantizer->state->A; + double **U = quantizer->state->U0; + int i0 = 2 * i; + int j0 = 2 * j; + double Ad[2][2] = {{1 - h * A[i][i], -h * A[i][j]}, {-h * A[j][i], 1 - h * A[j][j]}}; + double detAd = Ad[0][0] * Ad[1][1] - Ad[0][1] * Ad[1][0]; + if (detAd == 0) detAd = 1e-10; + double invAd[2][2] = {{Ad[1][1] / detAd, -Ad[0][1] / detAd}, {-Ad[1][0] / detAd, Ad[0][0] / detAd}}; + q[i0] = invAd[0][0] * (x[i0] + h * U[i][j]) + invAd[0][1] * (xj0 + h * U[j][i]); + qj[j0] = invAd[1][0] * (x[i0] + h * U[i][j]) + invAd[1][1] * (xj0 + h * U[j][i]); +} + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx) +#else +void mLIQSS_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx) +#endif +{ + int m, j, j0, j1; + if (t > 0) { + for (m = 0; m < nSD; m++) { + j = quantizer->state->SD[i][m]; + j0 = j * 2; + j1 = j0 + 1; + quantizer->state->oldDx[j] = x[j1]; + tx[j] = t; + } + } +} + +#ifdef QSS_PARALLEL +void mLIQSS_PAR_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) +#else +void mLIQSS_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) +#endif +{ + bool *change = quantizer->state->change; + double *qj = quantizer->state->qj; + double t = quantizer->state->lSimTime->time; + double **U = quantizer->state->U0; + double **A = quantizer->state->A; + double *tx = quantizer->state->tx; + int i0 = i * 2, i1 = i0 + 1; + int m; + int nSD = quantizer->state->nSD[i]; + double dx; + double *dq = quantizer->state->dq; + double h = 1e30; + + quantizer->state->qAux[i] = q[i0]; + quantizer->state->oldDx[i] = x[i1]; + tx[i] = t; + if (change[i] == TRUE) { + q[i0] = qj[i0]; + change[i] = FALSE; + } else { + double qiold = q[i0]; + + // LIQSS1 + q[i0] = x[i0]; + if (x[i1] > 0) { + dx = U[i][i] + (q[i0] + lqu[i]) * A[i][i]; + if (dx > 0) + dq[i] = lqu[i]; + else + dq[i] = -U[i][i] / A[i][i] - q[i0]; + } else { + dx = U[i][i] + (q[i0] - lqu[i]) * A[i][i]; + if (dx < 0) + dq[i] = -lqu[i]; + else + dq[i] = -U[i][i] / A[i][i] - q[i0]; + } + if (dq[i] > 2 * lqu[i]) dq[i] = 2 * lqu[i]; + if (dq[i] < -2 * lqu[i]) dq[i] = -2 * lqu[i]; + q[i0] += dq[i]; + + if (t > 0) { + for (m = 0; m < nSD; m++) { + int j = quantizer->state->SD[i][m]; + int j0 = j * 2; + int j1 = j0 + 1; + if (j != i && A[i][j] * A[j][i] != 0) { + U[j][i] = U[j][j] - A[j][i] * quantizer->state->qAux[i]; + double dxj = A[j][i] * q[i0] + A[j][j] * q[j0] + U[j][i]; + // if (x[j1]*dxj<=0 || fabs(x[j1]*dxj)<1e-30) + if (fabs(x[j1] - dxj) > fabs(x[j1] + dxj) / 2) { + double xj0 = x[j0] + (t - tx[j]) * x[j1]; + double qjold = q[j0]; // guardado qj + U[i][j] = U[i][i] - A[i][j] * q[j0]; + if (dxj > 0) + q[j0] = xj0 + 2 * lqu[j]; + else + q[j0] = xj0 - 2 * lqu[j]; + double dxi = A[i][i] * q[i0] + A[i][j] * q[j0] + U[i][j]; + if (x[i1] * dxi > 0 && fabs(x[i1] * dxi) > 1e-30) { + if (dxj > 0) + q[j0] = xj0 - 2 * lqu[j]; + else + q[j0] = xj0 + 2 * lqu[j]; + dxi = A[i][i] * q[i0] + A[i][j] * q[j0] + U[i][j]; + } + q[j0] = qjold; + double a1 = A[i][i] * A[j][j]; + double a2 = A[i][j] * A[j][i]; + bool dA = FALSE; + double tol = 1e-1; + if (a2 != 0 && a1 / a2 < 1 + tol && a1 / a2 > 1 - tol) dA = TRUE; + // if (x[i1]*dxi<=0 || fabs(x[i1]*dxi)<1e-30 || dA) + if (fabs(x[i1] - dxi) > fabs(x[i1] + dxi) / 2 || dA) { + qiold = q[i0]; + qjold = q[j0]; + qj[j0] = 1e20; + if (!dA) { + if (fabs(A[j][j]) > 1e-30) { + q[i0] = (A[i][j] * U[j][i] - A[j][j] * U[i][j]) / (A[i][i] * A[j][j] - A[i][j] * A[j][i]); + qj[j0] = (-A[j][i] * q[i0] - U[j][i]) / A[j][j]; + if (fabs(q[i0] - x[i0]) < TOL * lqu[i] && fabs(qj[j0] - xj0) < TOL * lqu[j]) { + change[j] = TRUE; + m = nSD; + break; + } else { + q[i0] = qiold; + q[j0] = qjold; + qj[j0] = 1e20; + } + } + } + h = (quantizer->state->finTime - t); + mLIQSS_PAR_solver2x2_h(quantizer, x, q, qj, i, j, h, xj0); + if (fabs(q[i0] - x[i0]) < TOL * lqu[i] && fabs(qj[j0] - xj0) < TOL * lqu[j]) { + change[j] = TRUE; + m = nSD; + break; + } else { + if (fabs(q[i0] - x[i0]) / lqu[i] > fabs(qj[j0] - xj0) / lqu[j]) + h = h / (fabs(q[i0] - x[i0]) / lqu[i]) * 0.9; + else + h = h / (fabs(qj[j0] - xj0) / lqu[j]) * 0.9; + if (fabs(q[i0] - x[i0]) < TOL * lqu[i] && fabs(qj[j0] - xj0) < TOL * lqu[j]) { + change[j] = TRUE; + m = nSD; + break; + } else { + if (x[i1] != 0 && x[j1] != 0) { + if (fabs(TOL * lqu[i] / x[i1]) < fabs(TOL * lqu[j] / x[j1])) + h = fabs(TOL * lqu[i] / x[i1]); + else + h = fabs(TOL * lqu[j] / x[j1]); + } else if (x[i1] != 0) + h = fabs(TOL * lqu[i] / x[i1]); + else if (x[j1] != 0) + h = fabs(TOL * lqu[j] / x[j1]); + mLIQSS_PAR_solver2x2_h(quantizer, x, q, qj, i, j, h, xj0); + if (fabs(q[i0] - x[i0]) < TOL * lqu[i] && fabs(qj[j0] - xj0) < TOL * lqu[j]) { + change[j] = TRUE; + m = nSD; + break; + } else { + q[i0] = qiold; + q[j0] = qjold; + qj[j0] = 1e20; + } + } + } + } + } + } + } + } + } + mLIQSS_old_dx(quantizer, i, t, nSD, x, tx); +} diff --git a/src/engine/qss/methods/mliqss.h b/src/engine/qss/methods/mliqss.h new file mode 100644 index 00000000..54c9456f --- /dev/null +++ b/src/engine/qss/methods/mliqss.h @@ -0,0 +1,76 @@ +/***************************************************************************** + + This file is part of QSS Solver. + + QSS Solver is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QSS Solver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QSS Solver. If not, see . + + ******************************************************************************/ + +#ifndef mLIQSS_H_ +#define mLIQSS_H_ + +#include +#include + +extern void mLIQSS_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, + double *q) __attribute__((hot)); + +extern void mLIQSS_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q) + __attribute__((hot)); + +extern void mLIQSS_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime); + +extern void mLIQSS_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, + double *q) __attribute__((hot)); + +extern void mLIQSS_PAR_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q) + __attribute__((hot)); + +extern void mLIQSS_PAR_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot)); + +double qsolver_liqss2(QA_quantizer quantizer, double *x, double *u, double A, double dQ, double *q); + +void solve_2x2(QA_quantizer quantizer, int i, int j, double xi0, double xj0, double qi0, double *qj, double *h); + +void old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS_PAR_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime); + +extern void mLIQSS_PAR_AxB(double A[2][2], double B[2][2], double AB[2][2]); + +extern void mLIQSS_AxB(double A[2][2], double B[2][2], double AB[2][2]); + +extern void mLIQSS_PAR_invA(double A[2][2], double invA[2][2]); + +extern void mLIQSS_invA(double A[2][2], double invA[2][2]); + +extern void mLIQSS_PAR_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *next, int i, int j, double h, double xj0); + +extern void mLIQSS_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *next, int i, int j, double h, double xj0); + +extern void mLIQSS_PAR_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS_PAR_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2); + +extern void mLIQSS_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2); + +#endif /* mLIQSS_H_ */ diff --git a/src/engine/qss/methods/mliqss2.c b/src/engine/qss/methods/mliqss2.c new file mode 100644 index 00000000..5a19c613 --- /dev/null +++ b/src/engine/qss/methods/mliqss2.c @@ -0,0 +1,485 @@ +/***************************************************************************** + + This file is part of QSS Solver. + + QSS Solver is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QSS Solver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QSS Solver. If not, see . + +******************************************************************************/ + +#include +#include +#include + +#include +#include + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime) +#else +void mLIQSS2_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime) +#endif +{ + int states = simData->states; + int i, j; + quantizer->state->oldDx = (double *)malloc(states * sizeof(double)); + quantizer->state->qAux = (double *)malloc(states * sizeof(double)); + quantizer->state->ltq = (double *)malloc(states * sizeof(double)); + quantizer->state->A = (double **)malloc(states * sizeof(double *)); + quantizer->state->U0 = (double **)malloc(states * sizeof(double *)); + quantizer->state->U1 = (double **)malloc(states * sizeof(double *)); + for (i = 0; i < states; i++) { + quantizer->state->A[i] = (double *)malloc(states * sizeof(double)); + quantizer->state->U0[i] = (double *)malloc(states * sizeof(double)); + quantizer->state->U1[i] = (double *)malloc(states * sizeof(double)); + } + quantizer->state->change = (bool *)malloc(states * sizeof(bool)); + quantizer->state->next = (double *)malloc(3 * states * sizeof(double)); + quantizer->state->tx = (double *)malloc(states * sizeof(double)); + + quantizer->state->finTime = simData->ft; + for (i = 0; i < states; i++) { + int cf0 = i * 3; + simData->x[cf0 + 2] = 0; + simData->q[cf0] = simData->x[cf0]; + simData->q[cf0 + 1] = 0; + quantizer->state->qAux[i] = simData->x[cf0]; + quantizer->state->oldDx[i] = 0; + quantizer->state->ltq[i] = simData->it; + quantizer->state->change[i] = FALSE; + quantizer->state->tx[i] = 0; + quantizer->state->next[cf0] = 0; + quantizer->state->next[cf0 + 1] = 0; + quantizer->state->next[cf0 + 2] = 0; + for (j = 0; j < states; j++) { + quantizer->state->A[i][j] = 0; + quantizer->state->U0[i][j] = 0; + quantizer->state->U1[i][j] = 0; + } + } +#ifdef QSS_PARALLEL + quantizer->state->qMap = simData->lp->qMap; + quantizer->ops->recomputeNextTimes = mLIQSS2_PAR_recomputeNextTimes; + quantizer->ops->recomputeNextTime = mLIQSS2_PAR_recomputeNextTime; + quantizer->ops->nextTime = mLIQSS2_PAR_nextTime; + quantizer->ops->updateQuantizedState = mLIQSS2_PAR_updateQuantizedState; +#else + quantizer->ops->recomputeNextTimes = mLIQSS2_recomputeNextTimes; + quantizer->ops->recomputeNextTime = mLIQSS2_recomputeNextTime; + quantizer->ops->nextTime = mLIQSS2_nextTime; + quantizer->ops->updateQuantizedState = mLIQSS2_updateQuantizedState; +#endif + quantizer->state->minStep = simData->params->minStep; + quantizer->state->lSimTime = simTime; + quantizer->state->nSD = simData->nSD; + quantizer->state->SD = simData->SD; +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_recomputeNextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu, double *q) +#else +void mLIQSS2_recomputeNextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu, double *q) +#endif +{ + int i0 = i * 3, i1 = i0 + 1, i2 = i1 + 1; + double coeff[3], diffQ, timeaux; + double **A = quantizer->state->A; + double **U0 = quantizer->state->U0; + double **U1 = quantizer->state->U1; + int stind = quantizer->state->lSimTime->minIndex; + bool *change = quantizer->state->change; + bool self = quantizer->state->lSimTime->minIndex == i && quantizer->state->lSimTime->type == ST_State; + double *tx = quantizer->state->tx; + + if (t > 0) { + diffQ = q[3 * stind] - quantizer->state->qAux[stind]; + if (diffQ) + A[i][stind] = (x[i1] - quantizer->state->oldDx[i]) / diffQ; + else + A[i][stind] = 0; + } + U0[i][i] = x[i1] - q[i0] * A[i][i]; + U1[i][i] = 2 * x[i2] - q[i1] * A[i][i]; + tx[i] = t; + + if (change[i] == TRUE) { + nTime[i] = t; + } else { + coeff[1] = q[i1] - x[i1]; + coeff[2] = -x[i2]; + if (A[i][i] < 0 && self && x[i2] != 0) { + nTime[i] = t + fabs((q[i1] - x[i1]) / x[i2]); + } else { + nTime[i] = INF; + } + coeff[0] = q[i0] + 2 * lqu[i] - x[i0]; + timeaux = t + minPosRoot(coeff, 2); + if (timeaux < nTime[i]) { + nTime[i] = timeaux; + } + coeff[0] = q[i0] - 2 * lqu[i] - x[i0]; + timeaux = t + minPosRoot(coeff, 2); + if (timeaux < nTime[i]) { + nTime[i] = timeaux; + } + + if (q[i0] * q[i1] < 0 && fabs(q[i0]) > 10 * lqu[i]) { + timeaux = -q[i0] / q[i1] - 2 * fabs(lqu[i] / q[i1]); + if (nTime[i] > t + timeaux) nTime[i] = t + timeaux; + } + double err1 = q[i0] - x[i0] + coeff[1] * (nTime[i] - t) / 2 + coeff[2] * pow((nTime[i] - t) / 2, 2); + if (fabs(err1) > 3 * fabs(lqu[i])) { + nTime[i] = t + quantizer->state->finTime * quantizer->state->minStep; + } + } +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q) +#else +void mLIQSS2_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q) +#endif +{ + int i; +#ifdef QSS_PARALLEL + int *map = quantizer->state->qMap; +#endif + for (i = 0; i < vars; i++) { +#ifdef QSS_PARALLEL + if (map[inf[i]] != NOT_ASSIGNED) { +#endif + mLIQSS2_recomputeNextTime(quantizer, inf[i], t, nTime, x, lqu, q); +#ifdef QSS_PARALLEL + } +#endif + } +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_nextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu) +#else +void mLIQSS2_nextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu) +#endif +{ + int i2 = i * 3 + 2; + if (x[i2] == 0) + nTime[i] = INF; + else + nTime[i] = t + sqrt(fabs(lqu[i] / x[i2])); +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2) +#else +void mLIQSS2_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2) +#endif +{ + int i0 = i * 3, i1 = i0 + 1, i2 = i1 + 1; + double t = quantizer->state->lSimTime->time; + double **U0 = quantizer->state->U0; + double **U1 = quantizer->state->U1; + double **A = quantizer->state->A; + double h, ddx; + + if (A[i][i] < 0) { + ddx = x[i2]; + if (ddx == 0) { + ddx = A[i][i] * A[i][i] * q[i0] + A[i][i] * U0[i][i] + U1[i][i]; + if (ddx == 0) ddx = 1e-40; + } + h = (quantizer->state->finTime - t); + q[i0] = ((x[i0] + h * U0[i][i] + h * h / 2 * U1[i][i]) * (1 - h * A[i][i]) + (h * h / 2 * A[i][i] - h) * (U0[i][i] + h * U1[i][i])) / + (1 - h * A[i][i] + h * h * A[i][i] * A[i][i] / 2); + + if (fabs(q[i0] - x[i0]) > 2 * lqu[i]) { + h = sqrt(fabs(lqu[i] / ddx)); + q[i0] = ((x[i0] + h * U0[i][i] + h * h / 2 * U1[i][i]) * (1 - h * A[i][i]) + (h * h / 2 * A[i][i] - h) * (U0[i][i] + h * U1[i][i])) / + (1 - h * A[i][i] + h * h * A[i][i] * A[i][i] / 2); + } + while (fabs(q[i0] - x[i0]) > 2 * lqu[i]) { + h = h * sqrt(lqu[i] / fabs(q[i0] - x[i0])); + q[i0] = ((x[i0] + h * U0[i][i] + h * h / 2 * U1[i][i]) * (1 - h * A[i][i]) + (h * h / 2 * A[i][i] - h) * (U0[i][i] + h * U1[i][i])) / + (1 - h * A[i][i] + h * h * A[i][i] * A[i][i] / 2); + } + q[i1] = (A[i][i] * q[i0] + U0[i][i] + h * U1[i][i]) / (1 - h * A[i][i]); + } else { + if (x[i2] != 0) { + if (x[i2] > 0) + q[i0] = x[i0] - lqu[i]; + else + q[i0] = x[i0] + lqu[i]; + h = sqrt(2 * (x[i0] - q[i0]) / x[i2]); + h *= 2; + q[i1] = x[i1] + x[i2] * h; + } else { + q[i0] = x[i0]; + q[i1] = x[i1]; + } + } + *h2 = h; +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_AxB(double A[2][2], double B[2][2], double AB[2][2]) +#else +void mLIQSS2_AxB(double A[2][2], double B[2][2], double AB[2][2]) +#endif +{ + AB[0][0] = A[0][0] * B[0][0] + A[0][1] * B[1][0]; + AB[0][1] = A[0][0] * B[0][1] + A[0][1] * B[1][1]; + AB[1][0] = A[1][0] * B[0][0] + A[1][1] * B[1][0]; + AB[1][1] = A[1][0] * B[0][1] + A[1][1] * B[1][1]; +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_invA(double A[2][2], double invA[2][2]) +#else +void mLIQSS2_invA(double A[2][2], double invA[2][2]) +#endif +{ + double detA = A[0][0] * A[1][1] - A[0][1] * A[1][0]; + if (detA == 0) detA = 1e-10; + invA[0][0] = A[1][1] / detA; + invA[0][1] = -A[0][1] / detA; + invA[1][0] = -A[1][0] / detA; + invA[1][1] = A[0][0] / detA; +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *next, int i, int j, double h, double xj0) +#else +void mLIQSS2_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *next, int i, int j, double h, double xj0) +#endif +{ + int i0 = 3 * i, i1 = i0 + 1; + int j0 = 3 * j, j1 = j0 + 1; + double **U0 = quantizer->state->U0; + double **U1 = quantizer->state->U1; + double **A = quantizer->state->A; + double Ad[2][2] = {{1 - h * A[i][i], -h * A[i][j]}, {-h * A[j][i], 1 - h * A[j][j]}}; + double An[2][2] = {{A[i][i], A[i][j]}, {A[j][i], A[j][j]}}; + double B[2][2], BA[2][2], AB[2][2], ABA[2][2], invC[2][2]; + mLIQSS2_invA(Ad, B); + mLIQSS2_AxB(B, An, BA); + mLIQSS2_AxB(An, B, AB); + mLIQSS2_AxB(An, BA, ABA); + // C = I + h(BA - A - h/2*ABA) + double C[2][2] = {{1 + h * (BA[0][0] - A[i][i] - h / 2 * ABA[0][0]), h * (BA[0][1] - A[i][j] - h / 2 * ABA[0][1])}, + {h * (BA[1][0] - A[j][i] - h / 2 * ABA[1][0]), 1 + h * (BA[1][1] - A[j][j] - h / 2 * ABA[1][1])}}; + // D = I - B + h/2*AB + double D[2][2] = {{1 - B[0][0] + h / 2 * AB[0][0], -B[0][1] + h / 2 * AB[0][1]}, + {-B[1][0] + h / 2 * AB[1][0], 1 - B[1][1] + h / 2 * AB[1][1]}}; + // E = (1/2*(h*AB + I) - B) + double E[2][2] = {{1 / 2 * (h * AB[0][0] + 1) - B[0][0], h / 2 * AB[0][1] - B[0][1]}, + {h / 2 * AB[1][0] - B[1][0], 1 / 2 * (h * AB[1][1] + 1) - B[1][1]}}; + double Du0[2] = {D[0][0] * U0[i][j] + D[0][1] * U0[j][i], D[1][0] * U0[i][j] + D[1][1] * U0[j][i]}; + double Eu1[2] = {E[0][0] * U1[i][j] + E[0][1] * U1[j][i], E[1][0] * U1[i][j] + E[1][1] * U1[j][i]}; + mLIQSS2_invA(C, invC); + q[i0] = invC[0][0] * (x[i0] + h * Du0[0] + h * h * Eu1[0]) + invC[0][1] * (xj0 + h * Du0[1] + h * h * Eu1[1]); + next[j0] = invC[1][0] * (x[i0] + h * Du0[0] + h * h * Eu1[0]) + invC[1][1] * (xj0 + h * Du0[1] + h * h * Eu1[1]); + q[i1] = B[0][0] * (A[i][i] * q[i0] + A[i][j] * next[j0] + U0[i][j] + h * U1[i][j]) + + B[0][1] * (A[j][i] * q[i0] + A[j][j] * next[j0] + U0[j][i] + h * U1[j][i]); + next[j1] = B[1][0] * (A[i][i] * q[i0] + A[i][j] * next[j0] + U0[i][j] + h * U1[i][j]) + + B[1][1] * (A[j][i] * q[i0] + A[j][j] * next[j0] + U0[j][i] + h * U1[j][i]); +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx) +#else +void mLIQSS2_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx) +#endif +{ + int m, j, j0, j1, j2; + if (t > 0) { + for (m = 0; m < nSD; m++) { + j = quantizer->state->SD[i][m]; + j0 = j * 3; + j1 = j0 + 1; + j2 = j1 + 1; + quantizer->state->oldDx[j] = x[j1] + (t - tx[j]) * x[j2] * 2; + } + } +} + +#ifdef QSS_PARALLEL +int mLIQSS2_PAR_find_max_inf(QA_quantizer quantizer, double *q, double *x, int i, double qi1_old) +#else +int mLIQSS2_find_max_inf(QA_quantizer quantizer, double *q, double *x, int i, double qi1_old) +#endif +{ + double t = quantizer->state->lSimTime->time; + double **U0 = quantizer->state->U0; + double **U1 = quantizer->state->U1; + double **A = quantizer->state->A; + double *tx = quantizer->state->tx; + int nSD = quantizer->state->nSD[i]; + int m, j, i1 = 3 * i + 1, j1, j2, jmax = -1; + double elapsed, u0, u1, ddxj, max = 0; + + if (t > 0) { + for (m = 0; m < nSD; m++) { + j = quantizer->state->SD[i][m]; + j1 = 3 * j + 1; + j2 = j1 + 1; + if (j != i && A[i][j] * A[j][i] != 0) { + elapsed = t - tx[j]; + u0 = U0[j][j] + elapsed * U1[j][j]; + u1 = U1[j][j] - A[j][i] * qi1_old; + ddxj = A[j][i] * q[i1] + A[j][j] * q[j1] + U1[j][i]; + if (fabs(2 * x[j2] - ddxj) > fabs(2 * x[j2] + ddxj) / 10) { + if (fabs(2 * x[j2] - ddxj) / (fabs(2 * x[j2] + ddxj)) > max) { + max = fabs(2 * x[j2] - ddxj) / (fabs(2 * x[j2] + ddxj)); + jmax = j; + } + } + } + } + } + return jmax; +} + +#ifdef QSS_PARALLEL +void mLIQSS2_PAR_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) +#else +void mLIQSS2_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) +#endif +{ + int i0 = i * 3, i1 = i0 + 1, i2 = i1 + 1; + bool *change = quantizer->state->change; + double *next = quantizer->state->next; + double t = quantizer->state->lSimTime->time; + double **U0 = quantizer->state->U0; + double **U1 = quantizer->state->U1; + double **A = quantizer->state->A; + double *tx = quantizer->state->tx; + int nSD = quantizer->state->nSD[i]; + double elapsed; + + double c = quantizer->state->cont; + double h; + + elapsed = t - quantizer->state->lSimTime->tq[i]; + quantizer->state->qAux[i] = q[i0] + elapsed * q[i1]; + quantizer->state->oldDx[i] = x[i1]; + elapsed = t - tx[i]; + U0[i][i] = U0[i][i] + elapsed * U1[i][i]; + tx[i] = t; + + if (change[i] == TRUE) { + q[i0] = next[i0]; + q[i1] = next[i1]; + change[i] = FALSE; + } else { + double qi_proy, qj_proy, ddxi, qiold[2], qjold[2]; + int j, j0, j1, j2; + + qiold[0] = q[i0]; + qiold[1] = q[i1]; + mLIQSS2_solve_single(quantizer, i, x, q, lqu, &h); +#ifdef QSS_PARALLEL + j = mLIQSS2_PAR_find_max_inf(quantizer, q, x, i, qiold[1]); +#else + j = mLIQSS2_find_max_inf(quantizer, q, x, i, qiold[1]); +#endif + if (t > 0 && j != -1) { + j0 = j * 3; + j1 = j0 + 1; + j2 = j1 + 1; + if (j != i && A[i][j] * A[j][i] != 0) { + double ddxj; + elapsed = t - quantizer->state->lSimTime->tq[j]; + qj_proy = q[j0] + elapsed * q[j1]; + elapsed = t - tx[j]; + U0[j][j] = U0[j][j] + elapsed * U1[j][j]; + U1[j][i] = U1[j][j] - A[j][i] * qiold[1]; + ddxj = A[j][i] * q[i1] + A[j][j] * q[j1] + U1[j][i]; + if (fabs(2 * x[j2] - ddxj) > fabs(2 * x[j2] + ddxj) / 2 || c == j) { + double xj0 = x[j0] + (t - tx[j]) * x[j1] + (t - tx[j]) * (t - tx[j]) * x[j2]; + qi_proy = quantizer->state->qAux[i]; + qjold[0] = q[j0]; + qjold[1] = q[j1]; + U0[j][i] = U0[j][j] - A[j][i] * qi_proy; + U1[i][j] = U1[i][i] - A[i][j] * q[j1]; + if (ddxj > 0) + q[j0] = xj0 - 2 * lqu[j]; + else + q[j0] = xj0 + 2 * lqu[j]; + q[j1] = (A[j][i] * (q[i0] + h * q[i1]) + A[j][j] * q[j0] + U0[j][i] + h * U1[j][i]) / (1 - h * A[j][j]); + ddxi = A[i][i] * q[i1] + A[i][j] * q[j1] + U1[i][j]; + q[j0] = qjold[0]; + q[j1] = qjold[1]; + double a1 = A[i][i] * A[j][j]; + double a2 = A[i][j] * A[j][i]; + bool dA = FALSE; + double tol = 1e-1; + if (a2 != 0 && a1 / a2 < 1 + tol && a1 / a2 > 1 - tol) dA = TRUE; + if (x[i2] * ddxi <= 0 || fabs(x[i2] * ddxi) < 1e-30 || dA) { + U0[i][j] = U0[i][i] - A[i][j] * qj_proy; + qiold[0] = q[i0]; + qiold[1] = q[i1]; + qjold[0] = q[j0]; + qjold[1] = q[j1]; + next[j0] = 1e20; + next[j1] = 1e20; + + h = (quantizer->state->finTime - t) * 1; + mLIQSS2_solver2x2_h(quantizer, x, q, next, i, j, h, xj0); + if (fabs(q[i0] - x[i0]) < 2 * lqu[i] && fabs(next[j0] - xj0) < 2 * lqu[j]) + change[j] = TRUE; + else { + if (fabs(q[i0] - x[i0]) / lqu[i] > fabs(next[j0] - xj0) / lqu[j]) + h = h / sqrt(2 * fabs(q[i0] - x[i0]) / lqu[i]); + else + h = h / sqrt(2 * fabs(next[j0] - xj0) / lqu[j]); + h /= 2; + mLIQSS2_solver2x2_h(quantizer, x, q, next, i, j, h, xj0); + if (fabs(q[i0] - x[i0]) < 2 * lqu[i] && fabs(next[j0] - xj0) < 2 * lqu[j]) + change[j] = TRUE; + else { + if (ddxi != 0 && ddxj != 0) { + if (fabs(lqu[i] / ddxi) < fabs(lqu[j] / ddxj)) + h = sqrt(2 * fabs(lqu[i] / ddxi)); + else + h = sqrt(2 * fabs(lqu[j] / ddxj)); + } else if (ddxi != 0) + h = sqrt(2 * fabs(lqu[i] / ddxi)); + else if (ddxj != 0) + h = sqrt(2 * fabs(lqu[j] / ddxj)); + h /= 2; + mLIQSS2_solver2x2_h(quantizer, x, q, next, i, j, h, xj0); + if (fabs(q[i0] - x[i0]) < 2 * lqu[i] && fabs(next[j0] - xj0) < 2 * lqu[j]) + change[j] = TRUE; + else { + h /= 10; + mLIQSS2_solver2x2_h(quantizer, x, q, next, i, j, h, xj0); + if (fabs(q[i0] - x[i0]) < 2 * lqu[i] && fabs(next[j0] - xj0) < 2 * lqu[j]) + change[j] = TRUE; + else { + q[i0] = qiold[0]; + q[i1] = qiold[1]; + q[j0] = qjold[0]; + q[j1] = qjold[1]; + next[j0] = 1e20; + next[j1] = 1e20; + } + } + } + } + } + } + } + } + } + mLIQSS2_old_dx(quantizer, i, t, nSD, x, tx); + quantizer->state->cont = i; +} diff --git a/src/engine/qss/methods/mliqss2.h b/src/engine/qss/methods/mliqss2.h new file mode 100644 index 00000000..14f83917 --- /dev/null +++ b/src/engine/qss/methods/mliqss2.h @@ -0,0 +1,76 @@ +/***************************************************************************** + + This file is part of QSS Solver. + + QSS Solver is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QSS Solver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QSS Solver. If not, see . + + ******************************************************************************/ + +#ifndef mLIQSS2_H_ +#define mLIQSS2_H_ + +#include +#include + +extern void mLIQSS2_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, + double *q) __attribute__((hot)); + +extern void mLIQSS2_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q) + __attribute__((hot)); + +extern void mLIQSS2_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS2_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS2_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime); + +extern void mLIQSS2_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, + double *q) __attribute__((hot)); + +extern void mLIQSS2_PAR_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q) + __attribute__((hot)); + +extern void mLIQSS2_PAR_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot)); + +double qsolver_liqss2(QA_quantizer quantizer, double *x, double *u, double A, double dQ, double *q); + +void solve_2x2(QA_quantizer quantizer, int i, int j, double xi0, double xj0, double qi0, double *qj, double *h); + +void old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS2_PAR_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS2_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime); + +extern void mLIQSS2_PAR_AxB(double A[2][2], double B[2][2], double AB[2][2]); + +extern void mLIQSS2_AxB(double A[2][2], double B[2][2], double AB[2][2]); + +extern void mLIQSS2_PAR_invA(double A[2][2], double invA[2][2]); + +extern void mLIQSS2_invA(double A[2][2], double invA[2][2]); + +extern void mLIQSS2_PAR_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *next, int i, int j, double h, double xj0); + +extern void mLIQSS2_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *next, int i, int j, double h, double xj0); + +extern void mLIQSS2_PAR_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS2_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS2_PAR_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2); + +extern void mLIQSS2_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2); + +#endif /* mLIQSS2_H_ */ diff --git a/src/engine/qss/methods/mliqss3.c b/src/engine/qss/methods/mliqss3.c new file mode 100644 index 00000000..63c7b6fb --- /dev/null +++ b/src/engine/qss/methods/mliqss3.c @@ -0,0 +1,544 @@ +/***************************************************************************** + + This file is part of QSS Solver. + + QSS Solver is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QSS Solver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QSS Solver. If not, see . + + ******************************************************************************/ + +#include + +#include +#include + +#include +#include +#include +#include + +#define EPS 1e-40 + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime) +#else +void mLIQSS3_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime) +#endif +{ + int i, j; + int states = simData->states; + quantizer->state->sts = states; + quantizer->state->oldDx = (double *)malloc(states * sizeof(double)); + quantizer->state->qAux = (double *)malloc(states * sizeof(double)); + quantizer->state->flag2 = (int *)malloc(states * sizeof(int)); + quantizer->state->tx = (double *)malloc(states * sizeof(double)); + quantizer->state->change = (bool *)malloc(states * sizeof(bool)); + quantizer->state->qj = (double *)malloc(4 * states * sizeof(double)); + quantizer->state->nSD = simData->nSD; + quantizer->state->SD = simData->SD; + quantizer->state->S = (int **)malloc(states * sizeof(int *)); // sparcity matrix + for (i = 0; i < states; i++) quantizer->state->S[i] = (int *)malloc(states * sizeof(int)); + int infs = 0; + for (i = 0; i < states; i++) infs += quantizer->state->nSD[i]; // number of influences + quantizer->state->infs = infs; + quantizer->state->a = (double *)malloc(infs * sizeof(double)); // jacobian vector + quantizer->state->u0 = (double *)malloc(infs * sizeof(double)); // zero order affine parameters + quantizer->state->u1 = (double *)malloc(infs * sizeof(double)); // first order affine parameters + quantizer->state->u2 = (double *)malloc(infs * sizeof(double)); // second order affine parameters + for (i = 0; i < infs; i++) { + quantizer->state->a[i] = 0; + quantizer->state->u0[i] = 0; + quantizer->state->u1[i] = 0; + quantizer->state->u2[i] = 0; + } + for (i = 0; i < states; i++) { + int cf0 = i * 4; + simData->x[cf0 + 2] = 0; + simData->x[cf0 + 3] = 0; + simData->q[cf0] = simData->x[cf0]; + simData->q[cf0 + 1] = 0; + simData->q[cf0 + 2] = 0; + quantizer->state->qAux[i] = simData->x[cf0]; + quantizer->state->oldDx[i] = 0; + quantizer->state->tx[i] = 0; + quantizer->state->flag2[i] = 0; + quantizer->state->change[i] = FALSE; + quantizer->state->qj[cf0] = 0; + quantizer->state->qj[cf0 + 1] = 0; + quantizer->state->qj[cf0 + 2] = 0; + quantizer->state->qj[cf0 + 3] = 0; + for (j = 0; j < states; j++) quantizer->state->S[i][j] = -1; + } + int m, s = 0; + for (i = 0; i < states; i++) { + for (m = 0; m < quantizer->state->nSD[i]; m++) { + quantizer->state->S[i][quantizer->state->SD[i][m]] = s; + s++; + } + } + quantizer->state->finTime = simData->ft; + quantizer->state->minStep = simData->params->minStep; + quantizer->state->lSimTime = simTime; + quantizer->state->nSZ = simData->nSZ; + quantizer->state->SZ = simData->SZ; +#ifdef QSS_PARALLEL + quantizer->state->qMap = simData->lp->qMap; + quantizer->ops->recomputeNextTimes = mLIQSS3_PAR_recomputeNextTimes; + quantizer->ops->recomputeNextTime = mLIQSS3_PAR_recomputeNextTime; + quantizer->ops->nextTime = mLIQSS3_PAR_nextTime; + quantizer->ops->updateQuantizedState = mLIQSS3_PAR_updateQuantizedState; +#else + quantizer->ops->recomputeNextTimes = mLIQSS3_recomputeNextTimes; + quantizer->ops->recomputeNextTime = mLIQSS3_recomputeNextTime; + quantizer->ops->nextTime = mLIQSS3_nextTime; + quantizer->ops->updateQuantizedState = mLIQSS3_updateQuantizedState; +#endif +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q) +#else +void mLIQSS3_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q) +#endif +{ + int i; +#ifdef QSS_PARALLEL + int *map = quantizer->state->qMap; +#endif + for (i = 0; i < vars; i++) { +#ifdef QSS_PARALLEL + if (map[inf[i]] > NOT_ASSIGNED) { +#endif + mLIQSS3_recomputeNextTime(quantizer, inf[i], t, nTime, x, lqu, q); +#ifdef QSS_PARALLEL + } +#endif + } +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_recomputeNextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu, double *q) +#else +void mLIQSS3_recomputeNextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu, double *q) +#endif +{ + int i0 = i * 4, i1 = i0 + 1, i2 = i1 + 1, i3 = i2 + 1, k; + int *flag2 = quantizer->state->flag2; + int stind = quantizer->state->lSimTime->minIndex; + int **S = quantizer->state->S; + bool self = quantizer->state->lSimTime->minIndex == i && quantizer->state->lSimTime->type == ST_State; + bool *change = quantizer->state->change; + double coeff[4], diffQ, timeaux; + double *tx = quantizer->state->tx; + double *a = quantizer->state->a; + double *u0 = quantizer->state->u0; + double *u1 = quantizer->state->u1; + double *u2 = quantizer->state->u2; + int sts = quantizer->state->sts; + + // Jacobian estimation + if (t > 0) { + diffQ = q[4 * stind] - quantizer->state->qAux[stind]; + if (diffQ && stind < sts) a[S[i][stind]] = (x[i1] - quantizer->state->oldDx[i]) / diffQ; + if (self && a[S[stind][stind]] > 0) a[S[stind][stind]] = -EPS; + } else + a[S[i][i]] = 0; + // affine parameters + u0[S[i][i]] = x[i1] - q[i0] * a[S[i][i]]; + u1[S[i][i]] = 2 * x[i2] - q[i1] * a[S[i][i]]; + u2[S[i][i]] = 3 * x[i3] - q[i2] * a[S[i][i]]; + // store last x update + tx[i] = t; + + if (change[i] == TRUE) + nTime[i] = t; + else { + coeff[1] = q[i1] - x[i1]; + coeff[2] = q[i2] - x[i2]; + coeff[3] = -x[i3]; + if (flag2[i] != 1) { + if (quantizer->state->lSimTime->type == ST_Event && a[S[i][i]] < 0 && + quantizer->state->nSZ[i] > + 0) { // we check if variable i is involved in the zero crossing function that produced the current event + for (k = 0; k < quantizer->state->nSZ[i]; k++) { + if (quantizer->state->SZ[i][k] == quantizer->state->lSimTime->minIndex) { + nTime[i] = t; + flag2[i] = 1; // it does, so we restart the quantized state q[i] + } + } + } + if (flag2[i] != 1) { + // if(a[S[i][i]] < -EPS*2 && self) nTime[i] = t + fabs((q[i2]-x[i2])/(x[i3]+EPS)); + if (a[S[i][i]] < -EPS * 2 && self) + nTime[i] = t + fabs((q[i2] - x[i2]) / (x[i3] + EPS)) * 6; + else + nTime[i] = INF; + coeff[0] = q[i0] - 2 * lqu[i] - x[i0]; + timeaux = t + minPosRoot(coeff, 3); + if (timeaux < nTime[i]) nTime[i] = timeaux; + coeff[0] = q[i0] + 2 * lqu[i] - x[i0]; + timeaux = t + minPosRoot(coeff, 3); + if (timeaux < nTime[i]) nTime[i] = timeaux; + if (flag2[i] == 2 && self) flag2[i] = 0; + coeff[0] = q[i0] - x[i0]; + double err1 = + coeff[0] + coeff[1] * (nTime[i] - t) / 2 + coeff[2] * pow((nTime[i] - t) / 2, 2) + coeff[3] * pow((nTime[i] - t) / 3, 3) / 1; + if (fabs(err1) > 3 * fabs(lqu[i])) nTime[i] = t + quantizer->state->finTime * quantizer->state->minStep; + } + } else { + if (self) { + flag2[i] = 2; + nTime[i] = t; + } + } + } +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_nextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu) +#else +void mLIQSS3_nextTime(QA_quantizer quantizer, int i, double t, double *nTime, double *x, double *lqu) +#endif +{ + int i3 = i * 4 + 3; + if (x[i3]) + nTime[i] = t + pow(lqu[i] / fabs(x[i3]), 1.0 / 3); + else + nTime[i] = INF; +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_AxB(double A[2][2], double B[2][2], double AB[2][2]) +#else +void mLIQSS3_AxB(double A[2][2], double B[2][2], double AB[2][2]) +#endif +{ + AB[0][0] = A[0][0] * B[0][0] + A[0][1] * B[1][0]; + AB[0][1] = A[0][0] * B[0][1] + A[0][1] * B[1][1]; + AB[1][0] = A[1][0] * B[0][0] + A[1][1] * B[1][0]; + AB[1][1] = A[1][0] * B[0][1] + A[1][1] * B[1][1]; +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_invA(double A[2][2], double invA[2][2]) +#else +void mLIQSS3_invA(double A[2][2], double invA[2][2]) +#endif +{ + double detA = A[0][0] * A[1][1] - A[0][1] * A[1][0]; + if (detA == 0) detA = 1e-10; + invA[0][0] = A[1][1] / detA; + invA[0][1] = -A[0][1] / detA; + invA[1][0] = -A[1][0] / detA; + invA[1][1] = A[0][0] / detA; +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *qj, int i, int j, double h, double xj0, double *lqu) +#else +void mLIQSS3_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *qj, int i, int j, double h, double xj0, double *lqu) +#endif +{ + int i0 = 4 * i, i1 = i0 + 1, i2 = i1 + 1; + int j0 = 4 * j, j1 = j0 + 1, j2 = j1 + 1; + int **S = quantizer->state->S; + double *a = quantizer->state->a; + double *u0 = quantizer->state->u0; + double *u1 = quantizer->state->u1; + double *u2 = quantizer->state->u2; + double A[2][2] = {{a[S[i][i]], a[S[i][j]]}, {a[S[j][i]], a[S[j][j]]}}; + double U0[2] = {u0[S[i][j]], u0[S[j][i]]}; + double U1[2] = {u1[S[i][j]], u1[S[j][i]]}; + double U2[2] = {u2[S[i][j]], u2[S[j][i]]}; + + // B = I - h*A + double B[2][2] = {{1 - h * A[0][0], -h * A[0][1]}, {-h * A[1][0], 1 - h * A[1][1]}}; + // c = U1 + h*U2 + double c[2] = {U1[0] + h * U2[0], U1[1] + h * U2[1]}; + double D[2][2]; + // D = inv(B) + mLIQSS3_invA(B, D); + double AD[2][2], DA[2][2], ADA[2][2]; + mLIQSS3_AxB(A, D, AD); + mLIQSS3_AxB(D, A, DA); + mLIQSS3_AxB(A, DA, ADA); + // E = I + h*(DA-A) - h²/2*ADA + double E[2][2] = {{1 + h * (DA[0][0] - A[0][0]) - h * h / 2 * ADA[0][0], h * (DA[0][1] - A[0][1]) - h * h / 2 * ADA[0][1]}, + {h * (DA[1][0] - A[1][0]) - h * h / 2 * ADA[1][0], 1 + h * (DA[1][1] - A[1][1]) - h * h / 2 * ADA[1][1]}}; + // f = U0 + h*(U1-D*c) + h²/2*(AD*c+U2) + double f[2] = {U0[0] + h * (U1[0] - D[0][0] * c[0] - D[0][1] * c[1]) + h * h / 2 * (AD[0][0] * c[0] + AD[0][1] * c[1] + U2[0]), + U0[1] + h * (U1[1] - D[1][0] * c[0] - D[1][1] * c[1]) + h * h / 2 * (AD[1][0] * c[0] + AD[1][1] * c[1] + U2[1])}; + double G[2][2]; + // G = inv(E) + mLIQSS3_invA(E, G); + double GA[2][2], AGA[2][2], DAGA[2][2], ADAGA[2][2], AG[2][2], DAG[2][2], ADAG[2][2]; + mLIQSS3_AxB(G, A, GA); + mLIQSS3_AxB(A, GA, AGA); + mLIQSS3_AxB(D, AGA, DAGA); + mLIQSS3_AxB(A, DAGA, ADAGA); + mLIQSS3_AxB(A, G, AG); + mLIQSS3_AxB(D, AG, DAG); + mLIQSS3_AxB(A, DAG, ADAG); + // J = I + h*(GA-A) + h²/2*(DAGA-AGA) - h³/6*ADAGA + double J[2][2] = {{1 + h * (GA[0][0] - A[0][0]) + h * h / 2 * (DAGA[0][0] - AGA[0][0]) - h * h * h / 6 * ADAGA[0][0], + h * (GA[0][1] - A[0][1]) + h * h / 2 * (DAGA[0][1] - AGA[0][1]) - h * h * h / 6 * ADAGA[0][1]}, + {h * (GA[1][0] - A[1][0]) + h * h / 2 * (DAGA[1][0] - AGA[1][0]) - h * h * h / 6 * ADAGA[1][0], + 1 + h * (GA[1][1] - A[1][1]) + h * h / 2 * (DAGA[1][1] - AGA[1][1]) - h * h * h / 6 * ADAGA[1][1]}}; + // k = h*(U0-Gf) + h²/2*((AG-DAG)*f+U1-Dc) + h³/6*(ADAGf+ADc+U2) + double k[2] = {h * (U0[0] - G[0][0] * f[0] - G[0][1] * f[1]) + + h * h / 2 * ((AG[0][0] - DAG[0][0]) * f[0] + (AG[0][1] - DAG[0][1]) * f[1] + U1[0] - D[0][0] * c[0] - D[0][1] * c[1]) + + h * h * h / 6 * (ADAG[0][0] * f[0] + ADAG[0][1] * f[1] + AD[0][0] * c[0] + AD[0][1] * c[1] + U2[0]), + h * (U0[1] - G[1][0] * f[0] - G[1][1] * f[1]) + + h * h / 2 * ((AG[1][0] - DAG[1][0]) * f[0] + (AG[1][1] - DAG[1][1]) * f[1] + U1[1] - D[1][0] * c[0] - D[1][1] * c[1]) + + h * h * h / 6 * (ADAG[1][0] * f[0] + ADAG[1][1] * f[1] + AD[1][0] * c[0] + AD[1][1] * c[1] + U2[1])}; + double M[2][2]; + // M = inv(J) + mLIQSS3_invA(J, M); + q[i0] = M[0][0] * (x[i0] + k[0]) + M[0][1] * (xj0 + k[1]); + qj[j0] = M[1][0] * (x[i0] + k[0]) + M[1][1] * (xj0 + k[1]); + q[i1] = G[0][0] * (A[0][0] * q[i0] + A[0][1] * qj[j0] + f[0]) + G[0][1] * (A[1][0] * q[i0] + A[1][1] * qj[j0] + f[1]); + qj[j1] = G[1][0] * (A[0][0] * q[i0] + A[0][1] * qj[j0] + f[0]) + G[1][1] * (A[1][0] * q[i0] + A[1][1] * qj[j0] + f[1]); + q[i2] = (D[0][0] * (A[0][0] * q[i1] + A[0][1] * qj[j1] + c[0]) + D[0][1] * (A[1][0] * q[i1] + A[1][1] * qj[j1] + c[1])) / 2; + qj[j2] = (D[1][0] * (A[0][0] * q[i1] + A[0][1] * qj[j1] + c[0]) + D[1][1] * (A[1][0] * q[i1] + A[1][1] * qj[j1] + c[1])) / 2; +} + +#ifdef QSS_PARALLEL +void mLIQSS3_PAR_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) +#else +void mLIQSS3_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) +#endif +{ + int i0 = i * 4, i1 = i0 + 1, i2 = i1 + 1, i3 = i2 + 1; + int m, j, j0, j1, j2, j3; + int nSD = quantizer->state->nSD[i]; + int **S = quantizer->state->S; + bool *change = quantizer->state->change; + double elapsed, oldq1, h = 0; + double t = quantizer->state->lSimTime->time; + double *qj = quantizer->state->qj; + double *tu = quantizer->state->tx; + double *a = quantizer->state->a; + double *u0 = quantizer->state->u0; + double *u1 = quantizer->state->u1; + double *u2 = quantizer->state->u2; + + elapsed = t - quantizer->state->lSimTime->tq[i]; + quantizer->state->qAux[i] = q[i0] + elapsed * q[i1] + elapsed * elapsed * q[i2]; + oldq1 = q[i1] + 2 * elapsed * q[i2]; + quantizer->state->oldDx[i] = x[i1]; + elapsed = t - tu[i]; + u0[S[i][i]] = u0[S[i][i]] + elapsed * u1[S[i][i]] + elapsed * elapsed * u2[S[i][i]]; + u1[S[i][i]] = u1[S[i][i]] + 2 * elapsed * u2[S[i][i]]; + tu[i] = t; + + if (change[i] == TRUE) { // second variable update + q[i0] = qj[i0]; + q[i1] = qj[i1]; + q[i2] = qj[i2]; + change[i] = FALSE; + } else { // normal update + double dddx = x[i3] * 6; + int *flag2 = quantizer->state->flag2; + double qi_proy[3] = {quantizer->state->qAux[i], q[i1] + 2 * elapsed * q[i2], q[i2]}; + + // LImLIQSS3 + if (a[S[i][i]] < 0) { + if (dddx == 0) { + dddx = a[S[i][i]] * a[S[i][i]] * a[S[i][i]] * q[i0] + a[S[i][i]] * a[S[i][i]] * u0[S[i][i]] + a[S[i][i]] * u1[S[i][i]] + + 2 * u2[S[i][i]]; + if (dddx == 0) dddx = 1e-40; + } + h = (quantizer->state->finTime - t); + q[i0] = (-3 * x[i0] * (h * h * a[S[i][i]] * a[S[i][i]] - 2 * h * a[S[i][i]] + 2) - h * h * h * a[S[i][i]] * a[S[i][i]] * u0[S[i][i]] - + h * h * h * a[S[i][i]] * u1[S[i][i]] - h * h * h * u2[S[i][i]] * 2) / + (h * h * h * a[S[i][i]] * a[S[i][i]] * a[S[i][i]] - 3 * h * h * a[S[i][i]] * a[S[i][i]] + 6 * h * a[S[i][i]] - 6); + if (fabs(q[i0] - x[i0]) > 2 * lqu[i]) { + h = pow(fabs(6 * lqu[i] / dddx), 1.0 / 3); + q[i0] = (-3 * x[i0] * (h * h * a[S[i][i]] * a[S[i][i]] - 2 * h * a[S[i][i]] + 2) - + h * h * h * a[S[i][i]] * a[S[i][i]] * u0[S[i][i]] - h * h * h * a[S[i][i]] * u1[S[i][i]] - h * h * h * u2[S[i][i]] * 2) / + (h * h * h * a[S[i][i]] * a[S[i][i]] * a[S[i][i]] - 3 * h * h * a[S[i][i]] * a[S[i][i]] + 6 * h * a[S[i][i]] - 6); + } + + while (fabs(q[i0] - x[i0]) > 2 * lqu[i]) { + h = h * pow(lqu[i] / fabs(q[i0] - x[i0]), 1.0 / 3); + q[i0] = (-3 * x[i0] * (h * h * a[S[i][i]] * a[S[i][i]] - 2 * h * a[S[i][i]] + 2) - + h * h * h * a[S[i][i]] * a[S[i][i]] * u0[S[i][i]] - h * h * h * a[S[i][i]] * u1[S[i][i]] - h * h * h * u2[S[i][i]] * 2) / + (h * h * h * a[S[i][i]] * a[S[i][i]] * a[S[i][i]] - 3 * h * h * a[S[i][i]] * a[S[i][i]] + 6 * h * a[S[i][i]] - 6); + } + q[i1] = + (-(2 * (a[S[i][i]] * q[i0] + u0[S[i][i]])) * (h * a[S[i][i]] - 1) - h * h * a[S[i][i]] * u1[S[i][i]] - h * h * u2[S[i][i]] * 2) / + (h * h * a[S[i][i]] * a[S[i][i]] - 2 * h * a[S[i][i]] + 2); + q[i2] = (h * u2[S[i][i]] * 2 + a[S[i][i]] * q[i1] + u1[S[i][i]]) / (-h * a[S[i][i]] + 1) / 2; + } else { + dddx = 2 * u2[S[i][i]]; + if (dddx > 0) + q[i0] = x[i0] - lqu[i]; + else + q[i0] = x[i0] + lqu[i]; + if (dddx != 0) { + h = pow(6 * fabs(lqu[i] / dddx), 1.0 / 3); + q[i1] = u0[S[i][i]] + h * u1[S[i][i]] + h * h * u2[S[i][i]]; + q[i2] = u1[S[i][i]] + 2 * h * u2[S[i][i]]; + } else { + q[i1] = u0[S[i][i]]; + q[i2] = u1[S[i][i]]; + } + } + + if (fabs(q[i0] - x[i0]) > 1.9 * lqu[i]) q[i0] = x[i0]; + if (flag2[i] >= 1) { + if (oldq1 > 0) + q[i0] = quantizer->state->qAux[i] + lqu[i] / 1e5; + else + q[i0] = quantizer->state->qAux[i] - lqu[i] / 1e5; + } + + // mLImLIQSS3 - 2x2 + if (t > 0 && flag2[i] == 0 && 1) { + double u2ji, dddxj, xj2, u1jj, u1ji, ddxj, xj1, u0jj, u0ji, dxj, qj_proy[2]; + int jmax = -1; + // find 2x2 variable + for (m = 0; m < nSD; m++) { + j = quantizer->state->SD[i][m]; + j0 = 4 * j; + j1 = j0 + 1; + j2 = j1 + 1; + j3 = j2 + 1; + if (j != i && a[S[i][j]] * a[S[j][i]] != 0) { + // third time derivative state j + u2ji = u2[S[j][j]] - a[S[j][i]] * qi_proy[2]; + dddxj = 2 * (a[S[j][i]] * q[i2] + a[S[j][j]] * q[j2] + u2ji); + // second time derivative state j + elapsed = t - quantizer->state->lSimTime->tq[j]; + qj_proy[0] = q[j0] + elapsed * q[j1] + elapsed * elapsed * q[j2]; + qj_proy[1] = q[j1] + 2 * elapsed * q[j2]; + elapsed = t - tu[j]; + xj2 = x[j2] * 2 + 6 * elapsed * x[j3]; // actual ddxj + u1jj = u1[S[j][j]] + 2 * elapsed * u2[S[j][j]]; + u1ji = u1jj - a[S[j][i]] * qi_proy[1]; + ddxj = a[S[j][i]] * q[i1] + a[S[j][j]] * qj_proy[1] + u1ji; + // first time derivative state j + xj1 = x[j1] + 2 * elapsed * x[j2] + 3 * elapsed * elapsed * x[j3]; // actual dxj + u0jj = u0[S[j][j]] + elapsed * u1[S[j][j]] + elapsed * elapsed * u2[S[j][j]]; + u0ji = u0jj - a[S[j][i]] * qi_proy[0]; + dxj = a[S[j][i]] * q[i0] + a[S[j][j]] * qj_proy[0] + u0ji; + if (fabs(6 * x[j3] - dddxj) > fabs(6 * x[j3] + dddxj) / 3 || fabs(xj2 - ddxj) > fabs(xj2 + ddxj) / 2 || + fabs(xj1 - dxj) > fabs(xj1 + dxj) / 2) { + jmax = j; + break; + } + } + } + // solve 2x2 + if (jmax != -1) { + double qsingle[3] = {q[i0], q[i1], q[i2]}; + u0[S[j][j]] = u0jj; + u0[S[j][i]] = u0ji; + u1[S[j][j]] = u1jj; + u1[S[j][i]] = u1ji; + u2[S[j][i]] = u2ji; + // project x[j0] + double xj0 = x[j0] + elapsed * x[j1] + elapsed * elapsed * x[j2] + elapsed * elapsed * elapsed * x[j3]; + double qj0, qj1, qj2; + // estimate q[j0] => q[j1] and q[j2] + if (dddxj > 0) + qj0 = xj0 - lqu[j]; + else + qj0 = xj0 + lqu[j]; + qj1 = (-(qj0 * a[S[j][j]] + q[i0] * a[S[j][i]] + u0[S[j][i]]) * (2 * h * a[S[j][j]] - 1) - h * h * q[i1] * a[S[j][i]] * a[S[j][j]] - + h * h * q[i2] * a[S[j][i]] - h * h * a[S[j][j]] * u1[S[j][i]] - h * h * u2[S[j][i]]) / + (h * h * a[S[j][j]] * a[S[j][j]] - 2 * h * a[S[j][j]] + 1); + qj2 = (2 * h * q[i2] * a[S[j][i]] + 2 * h * u2[S[j][i]] + qj1 * a[S[j][j]] + q[i1] * a[S[j][i]] + u1[S[j][i]]) / + (-2 * h * a[S[j][j]] + 1) / 2; + // third time derivative state i + u2[S[i][j]] = u2[S[i][i]] - a[S[i][j]] * q[j2]; + double dddxi = 2 * (a[S[i][i]] * q[i2] + a[S[i][j]] * qj2 + u2[S[i][j]]); + // second time derivative state i + u1[S[i][j]] = u1[S[i][i]] - a[S[i][j]] * qj_proy[1]; + double ddxi = a[S[i][i]] * q[i1] + a[S[i][j]] * qj1 + u1[S[i][j]]; + // first time derivative state i + u0[S[i][j]] = u0[S[i][i]] - a[S[i][j]] * qj_proy[0]; + double dxi = a[S[j][i]] * q[i0] + a[S[j][j]] * qj0 + u0[S[i][j]]; + // det A + double a1 = a[S[i][i]] * a[S[j][j]]; + double a2 = a[S[i][j]] * a[S[j][i]]; + bool dA = FALSE; + double tol = 1e-3; + if (a2 != 0 && fabs(a1 / a2) < 1 + tol && fabs(a1 / a2) > 1 - tol) dA = TRUE; + if (fabs(6 * x[i3] - dddxi) > fabs(6 * x[i3] + dddxi) / 3 || fabs(2 * x[i2] - ddxi) > fabs(2 * x[i2] + ddxi) / 2 || + fabs(x[i1] - dxi) > fabs(x[i1] + dxi) / 2 || dA) { + h = (quantizer->state->finTime - t) * 100; + mLIQSS3_solver2x2_h(quantizer, x, q, qj, i, j, h, xj0, lqu); + if (fabs(q[i0] - x[i0]) > 2 * lqu[i] || fabs(qj[j0] - xj0) > 2 * lqu[j]) { + int K = 12; + if (dddxi != 0 && dddxj != 0) { + if (fabs(lqu[i] / dddxi) > fabs(lqu[j] / dddxj)) + h = pow(K * fabs(lqu[i] / dddxi), 1.0 / 3); + else + h = pow(K * fabs(lqu[j] / dddxj), 1.0 / 3); + } else if (dddxi != 0) + h = pow(K * fabs(lqu[i] / dddxi), 1.0 / 3); + else if (dddxj != 0) + h = pow(K * fabs(lqu[j] / dddxj), 1.0 / 3); + // h /= 3; + mLIQSS3_solver2x2_h(quantizer, x, q, qj, i, j, h, xj0, lqu); + // if (fabs(q[i0]-x[i0]) > 1.28*lqu[i] || fabs(qj[j0]-xj0) > 1.28*lqu[j]) + + int it = 0; + while ((fabs(q[i0] - x[i0]) > 1.98 * lqu[i] || fabs(qj[j0] - xj0) > 1.98 * lqu[j]) && it < 3) { + it++; + /* + if(lqu[i]/fabs(q[i0] - x[i0] + EPS) < lqu[j]/fabs(qj[j0] - xj0 + EPS)) + h = h*pow(lqu[i]/fabs(q[i0] - x[i0] + EPS),1/3.); + else + h = h*pow(lqu[j]/fabs(qj[j0] - xj0 + EPS),1/3.); + mLIQSS3_solver2x2_h(quantizer, x, q, qj, i, j, h, xj0, lqu); + */ + h *= 0.1; + mLIQSS3_solver2x2_h(quantizer, x, q, qj, i, j, h, xj0, lqu); + } + if (it != 3) + change[j] = TRUE; + else { + q[i0] = qsingle[0]; + q[i1] = qsingle[1]; + q[i2] = qsingle[2]; + // printf("."); + } + + /* + if (fabs(q[i0]-x[i0]) > 0.98*lqu[i] || fabs(qj[j0]-xj0) > 0.98*lqu[j]) + { + q[i0] = qsingle[0]; + q[i1] = qsingle[1]; + q[i2] = qsingle[2]; + } + else change[j] = TRUE; + */ + } else + change[j] = TRUE; + } + } + } + } + if (t > 0) { + for (m = 0; m < nSD; m++) { + j = quantizer->state->SD[i][m]; + j0 = j * 4; + j1 = j0 + 1; + j2 = j1 + 1; + j3 = j2 + 1; + quantizer->state->oldDx[j] = x[j1] + (t - tu[j]) * x[j2] * 2 + (t - tu[j]) * (t - tu[j]) * x[j3] * 3; + } + } +} diff --git a/src/engine/qss/methods/mliqss3.h b/src/engine/qss/methods/mliqss3.h new file mode 100644 index 00000000..cfef6c62 --- /dev/null +++ b/src/engine/qss/methods/mliqss3.h @@ -0,0 +1,77 @@ +/***************************************************************************** + + This file is part of QSS Solver. + + QSS Solver is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QSS Solver is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QSS Solver. If not, see . + + ******************************************************************************/ + +#ifndef mLIQSS3_H_ +#define mLIQSS3_H_ + +#include +#include + +extern void mLIQSS3_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, + double *q) __attribute__((hot)); + +extern void mLIQSS3_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q) + __attribute__((hot)); + +extern void mLIQSS3_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS3_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS3_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime); + +extern void mLIQSS3_PAR_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, + double *q) __attribute__((hot)); + +extern void mLIQSS3_PAR_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q) + __attribute__((hot)); + +extern void mLIQSS3_PAR_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu) __attribute__((hot)); + +double qsolver_liqss2(QA_quantizer quantizer, double *x, double *u, double A, double dQ, double *q); + +void solve_2x2(QA_quantizer quantizer, int i, int j, double xi0, double xj0, double qi0, double *qj, double *h); + +void old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS3_PAR_updateQuantizedState(QA_quantizer quantizer, int i, double *q, double *x, double *lqu) __attribute__((hot)); + +extern void mLIQSS3_PAR_init(QA_quantizer quantizer, QSS_data simData, QSS_time simTime); + +extern void mLIQSS3_PAR_AxB(double A[2][2], double B[2][2], double AB[2][2]); + +extern void mLIQSS3_AxB(double A[2][2], double B[2][2], double AB[2][2]); + +extern void mLIQSS3_PAR_invA(double A[2][2], double invA[2][2]); + +extern void mLIQSS3_invA(double A[2][2], double invA[2][2]); + +extern void mLIQSS3_PAR_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *qj, int i, int j, double h, double xj0, + double *lqu); + +extern void mLIQSS3_solver2x2_h(QA_quantizer quantizer, double *x, double *q, double *qj, int i, int j, double h, double xj0, double *lqu); + +extern void mLIQSS3_PAR_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS3_old_dx(QA_quantizer quantizer, int i, double t, int nSD, double *x, double *tx); + +extern void mLIQSS3_PAR_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2); + +extern void mLIQSS3_solve_single(QA_quantizer quantizer, int i, double *x, double *q, double *lqu, double *h2); + +#endif /* mLIQSS3_H_ */ diff --git a/src/engine/qss/parallel/methods/Makefile.include b/src/engine/qss/parallel/methods/Makefile.include index d91504cd..86445740 100644 --- a/src/engine/qss/parallel/methods/Makefile.include +++ b/src/engine/qss/parallel/methods/Makefile.include @@ -11,7 +11,10 @@ PAR_METHODS_SRC = $(QSS_METHODS_DIR)/qss.c \ $(QSS_METHODS_DIR)/liqss.c \ $(QSS_METHODS_DIR)/liqss2.c \ $(QSS_METHODS_DIR)/liqss_bdf.c \ - $(QSS_METHODS_DIR)/liqss3.c + $(QSS_METHODS_DIR)/liqss3.c \ + $(QSS_METHODS_DIR)/mliqss.c \ + $(QSS_METHODS_DIR)/mliqss2.c \ + $(QSS_METHODS_DIR)/mliqss3.c # Objects diff --git a/src/engine/qss/parallel/qss_par_integrator.c b/src/engine/qss/parallel/qss_par_integrator.c index 693e7390..e65e7b2c 100644 --- a/src/engine/qss/parallel/qss_par_integrator.c +++ b/src/engine/qss/parallel/qss_par_integrator.c @@ -243,6 +243,7 @@ void QSS_PAR_internalEvent(QSS_simulator simulator) SD_eventData event = qssData->event; double *d = qssData->d; double reinit_assign[qssData->maxRHS]; + double computed_lhs[qssData->maxRHS]; int **SZ = qssData->SZ; int **ZS = qssData->ZS; int **HD = qssData->HD; @@ -336,7 +337,18 @@ void QSS_PAR_internalEvent(QSS_simulator simulator) if (event[index].zcSign != s || xOrder == 1 || et == t) { if (event[index].direction == 0 || event[index].direction == s) { nRHSSt = event[index].nRHSSt; + nLHSSt = event[index].nLHSSt; + for (i = 0; i < nLHSSt; i++) { + infCf0 = event[index].LHSSt[i] * coeffs; + computed_lhs[i] = x[infCf0]; + } int restore_index = 0; + int nReinitAssign = event[index].nReinitAsg; + for (i = 0; i < nReinitAssign; i++) { + j = event[index].ReinitAsg[i]; + infCf0 = j * coeffs; + reinit_assign[restore_index++] = x[infCf0]; + } for (i = 0; i < nRHSSt; i++) { j = event[index].RHSSt[i]; elapsed = t - tq[j]; @@ -346,7 +358,6 @@ void QSS_PAR_internalEvent(QSS_simulator simulator) } tq[j] = t; elapsed = t - tx[j]; - reinit_assign[restore_index++] = x[infCf0]; if (elapsed > 0) { x[infCf0] = evaluatePoly(infCf0, elapsed, x, xOrder); } @@ -356,7 +367,6 @@ void QSS_PAR_internalEvent(QSS_simulator simulator) } else { qssModel->events->handlerNeg(index, x, q, d, a, t); } - int nReinitAssign = event[index].nReinitAsg; for (i = 0; i < nReinitAssign; i++) { j = event[index].ReinitAsg[i]; infCf0 = j * coeffs; @@ -373,27 +383,29 @@ void QSS_PAR_internalEvent(QSS_simulator simulator) for (i = 0; i < nLHSSt; i++) { j = event[index].LHSSt[i]; infCf0 = j * coeffs; - if (qMap[j] > NOT_ASSIGNED) { - tx[j] = t; - lqu[j] = dQRel[j] * fabs(x[infCf0]); - if (lqu[j] < dQMin[j]) { - lqu[j] = dQMin[j]; - } - QA_updateQuantizedState(quantizer, j, q, x, lqu); - tq[j] = t; - if (synchronize >= 0) { + if (x[infCf0] != computed_lhs[i]) { + if (qMap[j] > NOT_ASSIGNED) { + tx[j] = t; + lqu[j] = dQRel[j] * fabs(x[infCf0]); + if (lqu[j] < dQMin[j]) { + lqu[j] = dQMin[j]; + } + QA_updateQuantizedState(quantizer, j, q, x, lqu); + tq[j] = t; + if (synchronize >= 0) { + int updIdx; + for (updIdx = 0; updIdx <= qOrder; updIdx++) { + msg.value[nLHSDsc + updIdx + i * coeffs] = q[infCf0 + updIdx]; + } + msg.value[nLHSDsc + xOrder + i * coeffs] = simulator->id; + } + reinits++; + } else { + msg.value[nLHSDsc + i * coeffs] = x[infCf0]; int updIdx; - for (updIdx = 0; updIdx <= qOrder; updIdx++) { - msg.value[nLHSDsc + updIdx + i * coeffs] = q[infCf0 + updIdx]; + for (updIdx = 1; updIdx <= xOrder; updIdx++) { + msg.value[nLHSDsc + updIdx + i * coeffs] = NOT_ASSIGNED; } - msg.value[nLHSDsc + xOrder + i * coeffs] = simulator->id; - } - reinits++; - } else { - msg.value[nLHSDsc + i * coeffs] = x[infCf0]; - int updIdx; - for (updIdx = 1; updIdx <= xOrder; updIdx++) { - msg.value[nLHSDsc + updIdx + i * coeffs] = NOT_ASSIGNED; } } } @@ -538,6 +550,7 @@ void QSS_PAR_integrator(QSS_simulator simulator) SD_eventData event = qssData->event; double *d = qssData->d; double reinit_assign[qssData->maxRHS]; + double computed_lhs[qssData->maxRHS]; int **SZ = qssData->SZ; int **ZS = qssData->ZS; int **HD = qssData->HD; @@ -712,7 +725,18 @@ void QSS_PAR_integrator(QSS_simulator simulator) } #endif nRHSSt = event[index].nRHSSt; + nLHSSt = event[index].nLHSSt; + for (i = 0; i < nLHSSt; i++) { + infCf0 = event[index].LHSSt[i] * coeffs; + computed_lhs[i] = x[infCf0]; + } int restore_index = 0; + int nReinitAssign = event[index].nReinitAsg; + for (i = 0; i < nReinitAssign; i++) { + j = event[index].ReinitAsg[i]; + infCf0 = j * coeffs; + reinit_assign[restore_index++] = x[infCf0]; + } for (i = 0; i < nRHSSt; i++) { j = event[index].RHSSt[i]; elapsed = t - tq[j]; @@ -722,7 +746,6 @@ void QSS_PAR_integrator(QSS_simulator simulator) } tq[j] = t; elapsed = t - tx[j]; - reinit_assign[restore_index++] = x[infCf0]; if (elapsed > 0) { x[infCf0] = evaluatePoly(infCf0, elapsed, x, xOrder); } @@ -732,7 +755,6 @@ void QSS_PAR_integrator(QSS_simulator simulator) } else { qssModel->events->handlerNeg(index, x, q, d, a, t); } - int nReinitAssign = event[index].nReinitAsg; for (i = 0; i < nReinitAssign; i++) { j = event[index].ReinitAsg[i]; infCf0 = j * coeffs; @@ -749,27 +771,29 @@ void QSS_PAR_integrator(QSS_simulator simulator) for (i = 0; i < nLHSSt; i++) { j = event[index].LHSSt[i]; infCf0 = j * coeffs; - if (qMap[j] > NOT_ASSIGNED) { - tx[j] = t; - lqu[j] = dQRel[j] * fabs(x[infCf0]); - if (lqu[j] < dQMin[j]) { - lqu[j] = dQMin[j]; - } - QA_updateQuantizedState(quantizer, j, q, x, lqu); - tq[j] = t; - if (synchronize >= 0) { + if (x[infCf0] != computed_lhs[i]) { + if (qMap[j] > NOT_ASSIGNED) { + tx[j] = t; + lqu[j] = dQRel[j] * fabs(x[infCf0]); + if (lqu[j] < dQMin[j]) { + lqu[j] = dQMin[j]; + } + QA_updateQuantizedState(quantizer, j, q, x, lqu); + tq[j] = t; + if (synchronize >= 0) { + int updIdx; + for (updIdx = 0; updIdx <= qOrder; updIdx++) { + msg.value[nLHSDsc + updIdx + i * coeffs] = q[infCf0 + updIdx]; + } + msg.value[nLHSDsc + xOrder + i * coeffs] = id; + } + reinits++; + } else { + msg.value[nLHSDsc + i * coeffs] = x[infCf0]; int updIdx; - for (updIdx = 0; updIdx <= qOrder; updIdx++) { - msg.value[nLHSDsc + updIdx + i * coeffs] = q[infCf0 + updIdx]; + for (updIdx = 1; updIdx <= xOrder; updIdx++) { + msg.value[nLHSDsc + updIdx + i * coeffs] = NOT_ASSIGNED; } - msg.value[nLHSDsc + xOrder + i * coeffs] = id; - } - reinits++; - } else { - msg.value[nLHSDsc + i * coeffs] = x[infCf0]; - int updIdx; - for (updIdx = 1; updIdx <= xOrder; updIdx++) { - msg.value[nLHSDsc + updIdx + i * coeffs] = NOT_ASSIGNED; } } } diff --git a/src/engine/qss/qss_file.c b/src/engine/qss/qss_file.c index 6c02c0f1..328aea8c 100644 --- a/src/engine/qss/qss_file.c +++ b/src/engine/qss/qss_file.c @@ -45,7 +45,7 @@ void F_init(LG_log log, QSS_data sim_data, SD_output sim_output) #endif int init = log->state->batch_init; int end = log->state->batch_end; - int total_outputs = log->state->output->outputs; + int total_outputs = log->state->output->outputs; size = end - init; if (size > 0) { log->state->files = (FILE **)malloc(size * sizeof(FILE *)); @@ -54,7 +54,7 @@ void F_init(LG_log log, QSS_data sim_data, SD_output sim_output) } j = 0; for (i = init; i < total_outputs; i++) { - char ext[128] = ""; + char ext[256] = ""; #ifdef QSS_PARALLEL if (lp->oMap[i] > NOT_ASSIGNED) { if (sim_output->nOD[i] != 0) { @@ -71,8 +71,8 @@ void F_init(LG_log log, QSS_data sim_data, SD_output sim_output) } #endif if (j >= size) { - break; - } + break; + } } #ifdef QSS_PARALLEL log->ops->write = F_PAR_write; diff --git a/src/engine/qss/qss_hyb_integrator.c b/src/engine/qss/qss_hyb_integrator.c index 202ef7f2..cbbf20b2 100644 --- a/src/engine/qss/qss_hyb_integrator.c +++ b/src/engine/qss/qss_hyb_integrator.c @@ -385,6 +385,7 @@ void QSS_HYB_integrate(SIM_simulator simulate) SD_eventData event = qssData->event; double *d = qssData->d; double reinit_assign[qssData->maxRHS]; + double computed_lhs[qssData->maxRHS]; int **SZ = qssData->SZ; int **ZS = qssData->ZS; int **HD = qssData->HD; @@ -709,7 +710,18 @@ void QSS_HYB_integrate(SIM_simulator simulate) } #endif nRHSSt = event[index].nRHSSt; + nLHSSt = event[index].nLHSSt; + for (i = 0; i < nLHSSt; i++) { + infCf0 = event[index].LHSSt[i] * coeffs; + computed_lhs[i] = x[infCf0]; + } int restore_index = 0; + int nReinitAssign = event[index].nReinitAsg; + for (i = 0; i < nReinitAssign; i++) { + j = event[index].ReinitAsg[i]; + infCf0 = j * coeffs; + reinit_assign[restore_index++] = x[infCf0]; + } for (i = 0; i < nRHSSt; i++) { j = event[index].RHSSt[i]; infCf0 = j * coeffs; @@ -719,7 +731,6 @@ void QSS_HYB_integrate(SIM_simulator simulate) } tq[j] = t; elapsed = t - tx[j]; - reinit_assign[restore_index++] = x[infCf0]; if (elapsed > 0) { x[infCf0] = evaluatePoly(infCf0, elapsed, x, xOrder); } @@ -729,7 +740,12 @@ void QSS_HYB_integrate(SIM_simulator simulate) } else { qssModel->events->handlerNeg(index, x, q, d, a, t); } - int nReinitAssign = event[index].nReinitAsg; + for (i = 0; i < nReinitAssign; i++) { + j = event[index].ReinitAsg[i]; + infCf0 = j * coeffs; + x[infCf0] = reinit_assign[i]; + } + nReinitAssign = event[index].nReinitAsg; for (i = 0; i < nReinitAssign; i++) { j = event[index].ReinitAsg[i]; infCf0 = j * coeffs; @@ -739,18 +755,20 @@ void QSS_HYB_integrate(SIM_simulator simulate) for (i = 0; i < nLHSSt; i++) { j = event[index].LHSSt[i]; infCf0 = j * coeffs; - tx[j] = t; - lqu[j] = dQRel[j] * fabs(x[infCf0]); - if (lqu[j] < dQMin[j]) { - lqu[j] = dQMin[j]; - } - QA_updateQuantizedState(quantizer, j, q, x, lqu); - tq[j] = t; + if (x[infCf0] != computed_lhs[i]) { + tx[j] = t; + lqu[j] = dQRel[j] * fabs(x[infCf0]); + if (lqu[j] < dQMin[j]) { + lqu[j] = dQMin[j]; + } + QA_updateQuantizedState(quantizer, j, q, x, lqu); + tq[j] = t; #ifdef DEBUG - if (settings->debug & SD_DBG_VarChanges) { - simulationLog->states[j]++; - } + if (settings->debug & SD_DBG_VarChanges) { + simulationLog->states[j]++; + } #endif + } } qssModel->events->zeroCrossing(index, q, d, a, t, zc); event[index].zcSign = sign(zc[0]); diff --git a/src/engine/qss/qss_log.h b/src/engine/qss/qss_log.h index 75c78057..24d31bd8 100644 --- a/src/engine/qss/qss_log.h +++ b/src/engine/qss/qss_log.h @@ -26,7 +26,7 @@ #include #include -#define NAME_SIZE 128 +#define NAME_SIZE 256 #define MAX_OPEN_FILES 1000 diff --git a/src/engine/qss/qss_quantizer.c b/src/engine/qss/qss_quantizer.c index 31e85076..19496426 100644 --- a/src/engine/qss/qss_quantizer.c +++ b/src/engine/qss/qss_quantizer.c @@ -32,6 +32,9 @@ #include #include #include +#include +#include +#include QA_quantizerOps QA_QuantizerOps() { @@ -72,6 +75,19 @@ QA_quantizerState QA_QuantizerState() p->finTime = 0; p->lSimTime = NULL; p->qMap = NULL; + // Added state for mLIQSS methods. + p->infs = 0; + p->sts = 0; + p->nSD = NULL; + p->SD = NULL; + p->change = NULL; + p->cont = 0; + p->S = NULL; + p->A = NULL; + p->U0 = NULL; + p->U1 = NULL; + p->qj = NULL; + p->next = NULL; return p; } @@ -144,6 +160,27 @@ QA_quantizer QA_Quantizer(QSS_data simData, QSS_time simTime) QSS4_init(p, simData, simTime); } break; + case SD_mLIQSS: + if (simData->params->lps > 0) { + mLIQSS_PAR_init(p, simData, simTime); + } else { + mLIQSS_init(p, simData, simTime); + } + break; + case SD_mLIQSS2: + if (simData->params->lps > 0) { + mLIQSS2_PAR_init(p, simData, simTime); + } else { + mLIQSS2_init(p, simData, simTime); + } + break; + case SD_mLIQSS3: + if (simData->params->lps > 0) { + mLIQSS3_PAR_init(p, simData, simTime); + } else { + mLIQSS3_init(p, simData, simTime); + } + break; default: return NULL; } @@ -197,6 +234,51 @@ void QA_freeQuantizerState(QA_quantizerState state) if (state->flag4 != NULL) { free(state->flag4); } + if (state->S != NULL) { + int states = state->sts; + for (int i = 0; i < states; i++) { + if (state->S[i] != NULL) { + free(state->S[i]); + } + } + free(state->S); + } + if (state->A != NULL) { + int states = state->sts; + for (int i = 0; i < states; i++) { + if (state->A[i] != NULL) { + free(state->A[i]); + } + } + free(state->A); + } + if (state->U0 != NULL) { + int states = state->sts; + for (int i = 0; i < states; i++) { + if (state->U0[i] != NULL) { + free(state->U0[i]); + } + } + free(state->U0); + } + if (state->U1 != NULL) { + int states = state->sts; + for (int i = 0; i < states; i++) { + if (state->U1[i] != NULL) { + free(state->U1[i]); + } + } + free(state->U1); + } + if (state->next != NULL) { + free(state->next); + } + if (state->change != NULL) { + free(state->change); + } + if (state->qj != NULL) { + free(state->qj); + } free(state); } diff --git a/src/engine/qss/qss_quantizer.h b/src/engine/qss/qss_quantizer.h index fc22c537..78c64938 100644 --- a/src/engine/qss/qss_quantizer.h +++ b/src/engine/qss/qss_quantizer.h @@ -23,176 +23,87 @@ #include #include -/** - * - */ typedef struct QA_quantizerOps_ *QA_quantizerOps; -/** - * - */ typedef struct QA_quantizerState_ *QA_quantizerState; -/** - * - */ typedef struct QA_quantizer_ *QA_quantizer; -/** - * - * @param - * @param - * @param - * @param - * @param - * @param - * @param - */ typedef void (*QA_recomputeNextTimesFn)(QA_quantizer, int, int *, double, double *, double *, double *, double *); -/** - * - * @param - * @param - * @param - * @param - * @param - * @param - */ typedef void (*QA_recomputeNextTimeFn)(QA_quantizer, int, double, double *, double *, double *, double *); -/** - * - * @param - * @param - * @param - * @param - * @param - */ typedef void (*QA_nextTimeFn)(QA_quantizer, int, double, double *, double *, double *); -/** - * - * @param - * @param - * @param - * @param - */ typedef void (*QA_updateQuantizedStateFn)(QA_quantizer, int, double *, double *, double *); -/** - * - */ + struct QA_quantizerState_ { int order; int xOrder; - int *flag2; //!< - int *flag3; //!< - int *flag4; //!< + int *flag2; + int *flag3; + int *flag4; int *BDF; int *nSZ; int **SZ; - double *dq; //!< - double *a; //!< - double *oldDx; //!< - double *qAux; //!< - double *u0; //!< - double *u1; //!< - double *u2; //!< + double *dq; + double *a; + double *oldDx; + double *qAux; + double *u0; + double *u1; + double *u2; double *tx; - double *lt; //!< - double *ltq; //!< - double *lquOld; //!< - double *qinf; //!< - double *qsup; //!< - double *simTime; //!< - double minStep; //!< - double finTime; //!< - QSS_time lSimTime; //!< - QSS_idxMap qMap; //!< + double *lt; + double *ltq; + double *lquOld; + double *qinf; + double *qsup; + double *simTime; + double minStep; + double finTime; + QSS_time lSimTime; + QSS_idxMap qMap; + + // Added state for mLIQSS methods. + int sts; + int infs; + int cont; + int *nSD; + int **SD; + int **S; + bool *change; + double **A; + double **U0; + double **U1; + double *qj; + double *next; }; -/** - * - */ + struct QA_quantizerOps_ { - QA_recomputeNextTimesFn recomputeNextTimes; //!< - QA_recomputeNextTimeFn recomputeNextTime; //!< - QA_nextTimeFn nextTime; //!< - QA_updateQuantizedStateFn updateQuantizedState; //!< + QA_recomputeNextTimesFn recomputeNextTimes; + QA_recomputeNextTimeFn recomputeNextTime; + QA_nextTimeFn nextTime; + QA_updateQuantizedStateFn updateQuantizedState; }; -/** - * - */ + struct QA_quantizer_ { - QA_quantizerState state; //!< - QA_quantizerOps ops; //!< + QA_quantizerState state; + QA_quantizerOps ops; }; -/** - * - * @return - */ + QA_quantizerOps QA_QuantizerOps(); -/** - * - * @return - */ + QA_quantizerState QA_QuantizerState(); -/** - * - * @param simData - * @param simTime - * @return - */ + QA_quantizer QA_Quantizer(QSS_data simData, QSS_time simTime); -/** - * - * @param state - */ + void QA_freeQuantizerState(QA_quantizerState state); -/** - * - * @param ops - */ + void QA_freeQuantizerOps(QA_quantizerOps ops); -/** - * - * @param q - */ + void QA_freeQuantizer(QA_quantizer quantizer); -/** - * - * @param quantizer - * @param vars - * @param inf - * @param t - * @param nTime - * @param x - * @param lqu - * @param q - */ + void QA_recomputeNextTimes(QA_quantizer quantizer, int vars, int *inf, double t, double *nTime, double *x, double *lqu, double *q); -/** - * - * @param quantizer - * @param var - * @param t - * @param nTime - * @param x - * @param lqu - * @param q - */ + void QA_recomputeNextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu, double *q); -/** - * - * @param quantizer - * @param var - * @param t - * @param nTime - * @param x - * @param lqu - */ + void QA_nextTime(QA_quantizer quantizer, int var, double t, double *nTime, double *x, double *lqu); -/** - * - * @param quantizer - * @param x - * @param q - * @param x - * @param lqu - */ + void QA_updateQuantizedState(QA_quantizer quantizer, int var, double *q, double *x, double *lqu); #endif /* QSS_QUANTIZER_H_ */ diff --git a/src/engine/qss/qss_seq_integrator.c b/src/engine/qss/qss_seq_integrator.c index d3eaf480..619212ec 100644 --- a/src/engine/qss/qss_seq_integrator.c +++ b/src/engine/qss/qss_seq_integrator.c @@ -22,7 +22,7 @@ #include #include -#include "../common/simulator.h" +#include #include #include #include @@ -76,6 +76,7 @@ void QSS_SEQ_integrate(SIM_simulator simulate) SD_eventData event = qssData->event; double *d = qssData->d; double reinit_assign[qssData->maxRHS]; + double computed_lhs[qssData->maxRHS]; int **SZ = qssData->SZ; int **ZS = qssData->ZS; int **HD = qssData->HD; @@ -195,7 +196,18 @@ void QSS_SEQ_integrate(SIM_simulator simulate) } #endif nRHSSt = event[index].nRHSSt; + nLHSSt = event[index].nLHSSt; + for (i = 0; i < nLHSSt; i++) { + infCf0 = event[index].LHSSt[i] * coeffs; + computed_lhs[i] = x[infCf0]; + } int restore_index = 0; + int nReinitAssign = event[index].nReinitAsg; + for (i = 0; i < nReinitAssign; i++) { + j = event[index].ReinitAsg[i]; + infCf0 = j * coeffs; + reinit_assign[restore_index++] = x[infCf0]; + } for (i = 0; i < nRHSSt; i++) { j = event[index].RHSSt[i]; infCf0 = j * coeffs; @@ -205,7 +217,6 @@ void QSS_SEQ_integrate(SIM_simulator simulate) } tq[j] = t; elapsed = t - tx[j]; - reinit_assign[restore_index++] = x[infCf0]; if (elapsed > 0) { x[infCf0] = evaluatePoly(infCf0, elapsed, x, xOrder); } @@ -215,7 +226,12 @@ void QSS_SEQ_integrate(SIM_simulator simulate) } else { qssModel->events->handlerNeg(index, x, q, d, a, t); } - int nReinitAssign = event[index].nReinitAsg; + for (i = 0; i < nReinitAssign; i++) { + j = event[index].ReinitAsg[i]; + infCf0 = j * coeffs; + x[infCf0] = reinit_assign[i]; + } + nReinitAssign = event[index].nReinitAsg; for (i = 0; i < nReinitAssign; i++) { j = event[index].ReinitAsg[i]; infCf0 = j * coeffs; @@ -225,18 +241,20 @@ void QSS_SEQ_integrate(SIM_simulator simulate) for (i = 0; i < nLHSSt; i++) { j = event[index].LHSSt[i]; infCf0 = j * coeffs; - tx[j] = t; - lqu[j] = dQRel[j] * fabs(x[infCf0]); - if (lqu[j] < dQMin[j]) { - lqu[j] = dQMin[j]; - } - QA_updateQuantizedState(quantizer, j, q, x, lqu); - tq[j] = t; + if (x[infCf0] != computed_lhs[i]) { + tx[j] = t; + lqu[j] = dQRel[j] * fabs(x[infCf0]); + if (lqu[j] < dQMin[j]) { + lqu[j] = dQMin[j]; + } + QA_updateQuantizedState(quantizer, j, q, x, lqu); + tq[j] = t; #ifdef DEBUG - if (settings->debug & SD_DBG_VarChanges) { - simulationLog->states[j]++; - } + if (settings->debug & SD_DBG_VarChanges) { + simulationLog->states[j]++; + } #endif + } } qssModel->events->zeroCrossing(index, q, d, a, t, zc); event[index].zcSign = sign(zc[0]); diff --git a/src/engine/tests/system/gt_data/BouncingBall/BouncingBall.mo b/src/engine/tests/system/gt_data/BouncingBall/BouncingBall.mo new file mode 100644 index 00000000..016eef16 --- /dev/null +++ b/src/engine/tests/system/gt_data/BouncingBall/BouncingBall.mo @@ -0,0 +1,70 @@ +model BouncingBall + Real spring1_flange1_f; + Real spring1_flange1_s; + Real spring1_flange1_v; + Real spring1_flange2_f; + Real spring1_flange2_s; + Real spring1_flange2_v; + Real spring1_dy; + Real spring1_dv; + parameter Real spring1_b=10; + parameter Real spring1_k=10000; + Real fixed1_flange1_f; + Real fixed1_flange1_s; + Real fixed1_flange1_v; + parameter Real fixed1_s0=0; + Real ball1_flange1_f; + Real ball1_flange1_s; + Real ball1_flange1_v; + Real ball1_v; + parameter Real ball1_m=1; + parameter Real ball1_g=9.8; + Real ball1_y(start=10); + discrete Real d0; + discrete Real d1; +equation + fixed1_flange1_s = fixed1_s0; + fixed1_flange1_v = 0; + der(ball1_y) = ball1_v; + ball1_flange1_v = ball1_v; + ball1_flange1_s = ball1_y; + spring1_flange2_s = fixed1_flange1_s; + spring1_flange2_v = fixed1_flange1_v; + spring1_flange1_s = ball1_flange1_s; + spring1_flange1_v = ball1_flange1_v; + spring1_dv = spring1_flange1_v-spring1_flange2_v; + spring1_dy = spring1_flange1_s-spring1_flange2_s; + spring1_flange1_f = d0*(spring1_b*spring1_dv+spring1_k*spring1_dy)+(1-d0)*(0); + spring1_flange2_f = (((-spring1_flange1_f))); + ball1_flange1_f = (-spring1_flange1_f); + der(ball1_v) = (ball1_flange1_f-ball1_m*ball1_g)*(1/(ball1_m)); + fixed1_flange1_f = (-spring1_flange2_f); +algorithm + when spring1_dy<0 then + d0:=1; + elsewhen spring1_dy>=0 then + d0:=0; + end when; + when d0>0 then + d1:=1; + elsewhen d0<1 then + d1:=0; + end when; + annotation( + + experiment( + MMO_Description="", + MMO_Solver=LIQSS3, + MMO_SymDiff=false, + MMO_PartitionMethod=Metis, + MMO_Output={ball1_y}, + MMO_OutputType=CI_Sampled, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + StartTime=0.0, + StopTime=10, + Tolerance={1e-3}, + AbsTolerance={1e-6} + )); +end BouncingBall; diff --git a/src/engine/tests/system/gt_data/BouncingBall/ball1_y.dat b/src/engine/tests/system/gt_data/BouncingBall/ball1_y.dat new file mode 100644 index 00000000..7182c4c9 --- /dev/null +++ b/src/engine/tests/system/gt_data/BouncingBall/ball1_y.dat @@ -0,0 +1,1001 @@ +0.0000000000000000 10.0000000000000000 +0.0100000000000000 10.0000000000000000 +0.0200000000000000 10.0000000000000000 +0.0300000000000000 10.0000000000000000 +0.0400000000000000 10.0000000000000000 +0.0500000000000000 9.9977400499999476 +0.0600000000000000 9.9923500599999500 +0.0700000000000000 9.9859800699999504 +0.0800000000000000 9.9786300799999488 +0.0900000000000000 9.9703000899999488 +0.1000000000000000 9.9609900999999486 +0.1100000000000000 9.9507001099999481 +0.1200000000000000 9.9394301199999493 +0.1300000000000000 9.9271801299999503 +0.1400000000000000 9.9139501399999492 +0.1500000000000000 9.8997401499999498 +0.1600000000000000 9.8845501599999483 +0.1700000000000000 9.8683801699999485 +0.1800000000000000 9.8512301799999502 +0.1900000000000000 9.8331001899999499 +0.2000000000000000 9.8139901999999495 +0.2100000000000000 9.7939002099999488 +0.2200000000000000 9.7728302199999479 +0.2300000000000000 9.7507802299999486 +0.2400000000000000 9.7277502399999491 +0.2500000000000000 9.7037402499999494 +0.2600000000000000 9.6787502599999495 +0.2700000000000000 9.6527802699999494 +0.2800000000000000 9.6258302799999491 +0.2900000000000000 9.5979002899999486 +0.3000000000000000 9.5689902999999497 +0.3100000000000000 9.5391003099999487 +0.3200000000000000 9.5082303199999494 +0.3300000000000000 9.4763803299999481 +0.3400000000000000 9.4435503399999483 +0.3500000000000000 9.4097403499999484 +0.3600000000000000 9.3749503599999482 +0.3700000000000000 9.3391803699999496 +0.3800000000000000 9.3024303799999490 +0.3900000000000000 9.2647003899999483 +0.4000000000000000 9.2259903999999491 +0.4100000000000000 9.1863004099999479 +0.4200000000000000 9.1456304199999483 +0.4300000000000000 9.1039804299999485 +0.4400000000000000 9.0613504399999485 +0.4500000000000000 9.0177404499999483 +0.4600000000000000 8.9731504599999479 +0.4700000000000000 8.9275804699999473 +0.4800000000000000 8.8810304799999482 +0.4900000000000000 8.8335004899999490 +0.5000000000000000 8.7849904999999495 +0.5100000000000000 8.7355005099999481 +0.5200000000000000 8.6850305199999482 +0.5300000000000000 8.6335805299999482 +0.5400000000000000 8.5811505399999461 +0.5500000000000000 8.5277405499999492 +0.5600000000000001 8.4733505599999486 +0.5700000000000001 8.4179805699999477 +0.5800000000000000 8.3616305799999466 +0.5900000000000000 8.3043005899999471 +0.6000000000000000 8.2459905999999474 +0.6100000000000000 8.1867006099999475 +0.6200000000000000 8.1264306199999474 +0.6300000000000000 8.0651806299999471 +0.6400000000000000 8.0029506399999466 +0.6500000000000000 7.9397406499999468 +0.6600000000000000 7.8755506599999467 +0.6700000000000000 7.8103806699999474 +0.6800000000000000 7.7442306799999470 +0.6900000000000001 7.6771006899999472 +0.7000000000000001 7.6089906999999464 +0.7100000000000000 7.5399007099999462 +0.7200000000000000 7.4698307199999459 +0.7300000000000000 7.3987807299999453 +0.7400000000000000 7.3267507399999463 +0.7500000000000000 7.2537407499999471 +0.7600000000000000 7.1797507599999459 +0.7700000000000000 7.1047807699999455 +0.7800000000000000 7.0288307799999448 +0.7900000000000000 6.9519007899999448 +0.8000000000000000 6.8739907999999463 +0.8100000000000001 6.7951008099999459 +0.8200000000000001 6.7152308199999453 +0.8300000000000001 6.6343808299999445 +0.8400000000000000 6.5525508399999453 +0.8500000000000000 6.4697408499999440 +0.8600000000000000 6.3859508599999462 +0.8700000000000000 6.3011808699999445 +0.8800000000000000 6.2154308799999445 +0.8900000000000000 6.1287008899999442 +0.9000000000000000 6.0409908999999438 +0.9100000000000000 5.9523009099999431 +0.9200000000000000 5.8626309199999449 +0.9300000000000000 5.7719809299999447 +0.9400000000000001 5.6803509399999443 +0.9500000000000001 5.5877409499999438 +0.9600000000000000 5.4941509599999430 +0.9700000000000000 5.3995809699999429 +0.9800000000000000 5.3040309799999434 +0.9900000000000000 5.2075009899999438 +1.0000000000000000 5.1099909999999431 +1.0100000000000000 5.0115010099999422 +1.0200000000000000 4.9120310199999420 +1.0300000000000000 4.8115810299999415 +1.0400000000000000 4.7101510399999427 +1.0500000000000000 4.6077410499999445 +1.0600000000000001 4.5043510599999435 +1.0700000000000001 4.3999810699999422 +1.0800000000000001 4.2946310799999434 +1.0900000000000001 4.1883010899999427 +1.1000000000000001 4.0809910999999417 +1.1100000000000001 3.9727011099999423 +1.1200000000000001 3.8634311199999427 +1.1300000000000001 3.7531811299999420 +1.1400000000000001 3.6419511399999420 +1.1500000000000001 3.5297411499999409 +1.1599999999999999 3.4165511599999405 +1.1699999999999999 3.3023811699999426 +1.1799999999999999 3.1872311799999418 +1.1899999999999999 3.0711011899999416 +1.2000000000000000 2.9539911999999413 +1.2100000000000000 2.8359012099999408 +1.2200000000000000 2.7168312199999400 +1.2300000000000000 2.5967812299999409 +1.2400000000000000 2.4757512399999406 +1.2500000000000000 2.3537412499999402 +1.2600000000000000 2.2307512599999404 +1.2700000000000000 2.1067812699999395 +1.2800000000000000 1.9818312799999385 +1.2900000000000000 1.8559012899999399 +1.3000000000000000 1.7289912999999393 +1.3100000000000001 1.6011013099999394 +1.3200000000000001 1.4722313199999393 +1.3300000000000001 1.3423813299999381 +1.3400000000000001 1.2115513399999376 +1.3500000000000001 1.0797413499999386 +1.3600000000000001 0.9469513599999395 +1.3700000000000001 0.8131813699999384 +1.3800000000000001 0.6784313799999371 +1.3900000000000001 0.5427013899999373 +1.4000000000000001 0.4059913999999356 +1.4099999999999999 0.2683014099999372 +1.4199999999999999 0.1296314199999369 +1.4299999999999999 -0.0100185700000619 +1.4399999999999999 -0.1066350501037515 +1.4500000000000000 -0.0839832491513246 +1.4600000000000000 -0.0068408263687850 +1.4700000000000000 0.0666808116085106 +1.4800000000000000 0.1391140513612156 +1.4900000000000000 0.2105672911136592 +1.5000000000000000 0.2810405308658416 +1.5100000000000000 0.3505337706177626 +1.5200000000000000 0.4190470103694223 +1.5300000000000000 0.4865802501208207 +1.5400000000000000 0.5531334898719575 +1.5500000000000000 0.6187067296228334 +1.5600000000000001 0.6832999693734476 +1.5700000000000001 0.7469132091238005 +1.5800000000000001 0.8095464488738923 +1.5900000000000001 0.8711996886237227 +1.6000000000000001 0.9318729283732918 +1.6100000000000001 0.9915661681225996 +1.6200000000000001 1.0502794078716460 +1.6300000000000001 1.1080126476204311 +1.6400000000000001 1.1647658873689548 +1.6500000000000001 1.2205391271172175 +1.6600000000000001 1.2753323668652186 +1.6699999999999999 1.3291456066129583 +1.6799999999999999 1.3819788463604368 +1.6899999999999999 1.4338320861076539 +1.7000000000000000 1.4847053258546099 +1.7100000000000000 1.5345985656013044 +1.7200000000000000 1.5835118053477375 +1.7300000000000000 1.6314450450939091 +1.7400000000000000 1.6783982848398198 +1.7500000000000000 1.7243715245854689 +1.7600000000000000 1.7693647643308568 +1.7700000000000000 1.8133780040759833 +1.7800000000000000 1.8564112438208484 +1.7900000000000000 1.8984644835654523 +1.8000000000000000 1.9395377233097948 +1.8100000000000001 1.9796309630538760 +1.8200000000000001 2.0187442027976958 +1.8300000000000001 2.0568774425412544 +1.8400000000000001 2.0940306822845516 +1.8500000000000001 2.1302039220275875 +1.8600000000000001 2.1653971617703620 +1.8700000000000001 2.1996104015128752 +1.8800000000000001 2.2328436412551271 +1.8900000000000001 2.2650968809971177 +1.9000000000000001 2.2963701207388469 +1.9100000000000001 2.3266633604803149 +1.9199999999999999 2.3559766002215214 +1.9299999999999999 2.3843098399624667 +1.9399999999999999 2.4116630797031506 +1.9500000000000000 2.4380363194435728 +1.9600000000000000 2.4634295591837345 +1.9700000000000000 2.4878427989236345 +1.9800000000000000 2.5112760386632731 +1.9900000000000000 2.5337292784026504 +2.0000000000000000 2.5552025181417664 +2.0100000000000002 2.5756957578806197 +2.0200000000000000 2.5952089976192139 +2.0300000000000002 2.6137422373575459 +2.0400000000000000 2.6312954770956165 +2.0499999999999998 2.6478687168334254 +2.0600000000000001 2.6634619565709734 +2.0699999999999998 2.6780751963082601 +2.0800000000000001 2.6917084360452854 +2.0899999999999999 2.7043616757820494 +2.1000000000000001 2.7160349155185517 +2.1099999999999999 2.7267281552547935 +2.1200000000000001 2.7364413949907735 +2.1299999999999999 2.7451746347264918 +2.1400000000000001 2.7529278744619492 +2.1499999999999999 2.7597011141971453 +2.1600000000000001 2.7654943539320800 +2.1699999999999999 2.7703075936667529 +2.1800000000000002 2.7741408334011655 +2.1899999999999999 2.7769940731353158 +2.2000000000000002 2.7788673128692047 +2.2100000000000000 2.7797605526028328 +2.2200000000000002 2.7796737923361996 +2.2300000000000000 2.7786070320693050 +2.2400000000000002 2.7765602718021491 +2.2500000000000000 2.7735335115347324 +2.2600000000000002 2.7695267512670538 +2.2700000000000000 2.7645399909991135 +2.2800000000000002 2.7585732307309123 +2.2900000000000000 2.7516264704624498 +2.3000000000000003 2.7436997101937259 +2.3100000000000001 2.7347929499247408 +2.3199999999999998 2.7249061896554938 +2.3300000000000001 2.7140394293859860 +2.3399999999999999 2.7021926691162164 +2.3500000000000001 2.6893659088461859 +2.3599999999999999 2.6755591485758945 +2.3700000000000001 2.6607723883053405 +2.3799999999999999 2.6450056280345260 +2.3900000000000001 2.6282588677634502 +2.3999999999999999 2.6105321074921131 +2.4100000000000001 2.5918253472205146 +2.4199999999999999 2.5721385869486548 +2.4300000000000002 2.5514718266765328 +2.4399999999999999 2.5298250664041504 +2.4500000000000002 2.5071983061315066 +2.4600000000000000 2.4835915458586015 +2.4700000000000002 2.4590047855854360 +2.4800000000000000 2.4334380253120083 +2.4900000000000002 2.4068912650383183 +2.5000000000000000 2.3793645047643688 +2.5100000000000002 2.3508577444901562 +2.5200000000000000 2.3213709842156831 +2.5300000000000002 2.2909042239409487 +2.5400000000000000 2.2594574636659521 +2.5500000000000003 2.2270307033906951 +2.5600000000000001 2.1936239431151776 +2.5699999999999998 2.1592371828393997 +2.5800000000000001 2.1238704225633578 +2.5899999999999999 2.0875236622870554 +2.6000000000000001 2.0501969020104918 +2.6099999999999999 2.0118901417336659 +2.6200000000000001 1.9726033814565804 +2.6299999999999999 1.9323366211792328 +2.6400000000000001 1.8910898609016229 +2.6499999999999999 1.8488631006237526 +2.6600000000000001 1.8056563403456201 +2.6699999999999999 1.7614695800672280 +2.6800000000000002 1.7163028197885737 +2.6899999999999999 1.6701560595096572 +2.7000000000000002 1.6230292992304793 +2.7100000000000000 1.5749225389510420 +2.7200000000000002 1.5258357786713423 +2.7300000000000000 1.4757690183913805 +2.7400000000000002 1.4247222581111583 +2.7500000000000000 1.3726954978306747 +2.7600000000000002 1.3196887375499298 +2.7700000000000000 1.2657019772689235 +2.7800000000000002 1.2107352169876560 +2.7900000000000000 1.1547884567061253 +2.8000000000000003 1.0978616964243368 +2.8100000000000001 1.0399549361422835 +2.8199999999999998 0.9810681758599706 +2.8300000000000001 0.9212014155773964 +2.8399999999999999 0.8603546552945609 +2.8500000000000001 0.7985278950114640 +2.8599999999999999 0.7357211347281059 +2.8700000000000001 0.6719343744444846 +2.8799999999999999 0.6071676141606037 +2.8900000000000001 0.5414208538764633 +2.8999999999999999 0.4746940935920581 +2.9100000000000001 0.4069873333073932 +2.9199999999999999 0.3383005730224671 +2.9300000000000002 0.2686338127372796 +2.9399999999999999 0.1979870524518308 +2.9500000000000002 0.1263602921661207 +2.9600000000000000 0.0537535318801492 +2.9700000000000002 -0.0185136955693931 +2.9800000000000000 -0.0549914313879234 +2.9900000000000002 -0.0382102026415803 +3.0000000000000000 0.0006339255615273 +3.0100000000000002 0.0367305611937960 +3.0200000000000000 0.0718471968262475 +3.0300000000000002 0.1059838324588818 +3.0400000000000000 0.1391404680916988 +3.0500000000000003 0.1713171037246986 +3.0600000000000001 0.2025137393578812 +3.0700000000000003 0.2327303749912465 +3.0800000000000001 0.2619670106247945 +3.0899999999999999 0.2902236462585254 +3.1000000000000001 0.3175002818924390 +3.1099999999999999 0.3437969175265353 +3.1200000000000001 0.3691135531608144 +3.1299999999999999 0.3934501887952763 +3.1400000000000001 0.4168068244299209 +3.1499999999999999 0.4391834600647484 +3.1600000000000001 0.4605800956997586 +3.1699999999999999 0.4809967313349515 +3.1800000000000002 0.5004333669703273 +3.1899999999999999 0.5188900026058856 +3.2000000000000002 0.5363666382416269 +3.2100000000000000 0.5528632738775509 +3.2200000000000002 0.5683799095136577 +3.2300000000000000 0.5829165451499472 +3.2400000000000002 0.5964731807864194 +3.2500000000000000 0.6090498164230744 +3.2600000000000002 0.6206464520599121 +3.2700000000000000 0.6312630876969327 +3.2800000000000002 0.6408997233341358 +3.2900000000000000 0.6495563589715221 +3.3000000000000003 0.6572329946090909 +3.3100000000000001 0.6639296302468424 +3.3200000000000003 0.6696462658847768 +3.3300000000000001 0.6743829015228939 +3.3399999999999999 0.6781395371611937 +3.3500000000000001 0.6809161727996765 +3.3599999999999999 0.6827128084383418 +3.3700000000000001 0.6835294440771900 +3.3799999999999999 0.6833660797162208 +3.3900000000000001 0.6822227153554346 +3.3999999999999999 0.6800993509948309 +3.4100000000000001 0.6769959866344100 +3.4199999999999999 0.6729126222741721 +3.4300000000000002 0.6678492579141169 +3.4399999999999999 0.6618058935542441 +3.4500000000000002 0.6547825291945546 +3.4600000000000000 0.6467791648350476 +3.4700000000000002 0.6377958004757232 +3.4800000000000000 0.6278324361165817 +3.4900000000000002 0.6168890717576230 +3.5000000000000000 0.6049657073988473 +3.5100000000000002 0.5920623430402538 +3.5200000000000000 0.5781789786818434 +3.5300000000000002 0.5633156143236158 +3.5400000000000000 0.5474722499655709 +3.5500000000000003 0.5306488856077090 +3.5600000000000001 0.5128455212500296 +3.5700000000000003 0.4940621568925327 +3.5800000000000001 0.4742987925352189 +3.5899999999999999 0.4535554281780876 +3.6000000000000001 0.4318320638211397 +3.6099999999999999 0.4091286994643739 +3.6200000000000001 0.3854453351077911 +3.6299999999999999 0.3607819707513911 +3.6400000000000001 0.3351386063951733 +3.6499999999999999 0.3085152420391388 +3.6600000000000001 0.2809118776832875 +3.6699999999999999 0.2523285133276185 +3.6800000000000002 0.2227651489721323 +3.6899999999999999 0.1922217846168284 +3.7000000000000002 0.1606984202617077 +3.7100000000000000 0.1281950559067697 +3.7200000000000002 0.0947116915520141 +3.7300000000000000 0.0602483271974421 +3.7400000000000002 0.0248049628430520 +3.7500000000000000 -0.0107224764156473 +3.7600000000000002 -0.0277829383400689 +3.7700000000000000 -0.0187296756945651 +3.7800000000000002 0.0004754254266141 +3.7900000000000000 0.0176752471813763 +3.8000000000000003 0.0338950689360992 +3.8100000000000001 0.0491348906907829 +3.8200000000000003 0.0633947124454272 +3.8300000000000001 0.0766745342000323 +3.8399999999999999 0.0889743559545981 +3.8500000000000001 0.1002941777091246 +3.8599999999999999 0.1106339994636118 +3.8700000000000001 0.1199938212180598 +3.8799999999999999 0.1283736429724684 +3.8900000000000001 0.1357734647268379 +3.8999999999999999 0.1421932864811679 +3.9100000000000001 0.1476331082354588 +3.9199999999999999 0.1520929299897103 +3.9300000000000002 0.1555727517439226 +3.9399999999999999 0.1580725734980956 +3.9500000000000002 0.1595923952522292 +3.9600000000000000 0.1601322170063236 +3.9700000000000002 0.1596920387603788 +3.9800000000000000 0.1582718605143946 +3.9900000000000002 0.1558716822683711 +4.0000000000000000 0.1524915040223084 +4.0099999999999998 0.1481313257762064 +4.0200000000000005 0.1427911475300651 +4.0300000000000002 0.1364709692838846 +4.0400000000000000 0.1291707910376647 +4.0499999999999998 0.1208906127914055 +4.0600000000000005 0.1116304345451071 +4.0700000000000003 0.1013902562987693 +4.0800000000000001 0.0901700780523922 +4.0899999999999999 0.0779698998059761 +4.0999999999999996 0.0647897215595206 +4.1100000000000003 0.0506295433130256 +4.1200000000000001 0.0354893650664915 +4.1299999999999999 0.0193691868199181 +4.1399999999999997 0.0022690085733054 +4.1500000000000004 -0.0116424205518446 +4.1600000000000001 -0.0127544739338785 +4.1699999999999999 -0.0046443938158293 +4.1799999999999997 0.0039275861307352 +4.1900000000000004 0.0112162760258527 +4.2000000000000002 0.0175249659209310 +4.2100000000000000 0.0228536558159700 +4.2199999999999998 0.0272023457109697 +4.2300000000000004 0.0305710356059302 +4.2400000000000002 0.0329597255008513 +4.2500000000000000 0.0343684153957332 +4.2599999999999998 0.0347971052905758 +4.2700000000000005 0.0342457951853791 +4.2800000000000002 0.0327144850801431 +4.2900000000000000 0.0302031749748679 +4.2999999999999998 0.0267118648695533 +4.3100000000000005 0.0222405547641995 +4.3200000000000003 0.0167892446588064 +4.3300000000000001 0.0103579345533740 +4.3399999999999999 0.0029466244479024 +4.3500000000000005 -0.0044815285592631 +4.3600000000000003 -0.0068152007446861 +4.3700000000000001 -0.0039675050241398 +4.3799999999999999 0.0001603732667501 +4.3899999999999997 0.0031028896965352 +4.4000000000000004 0.0050654061263365 +4.4100000000000001 0.0060479225561541 +4.4199999999999999 0.0060504389859879 +4.4299999999999997 0.0050729554158379 +4.4400000000000004 0.0031154718457042 +4.4500000000000002 0.0001779882755867 +4.4600000000000000 -0.0026924920321500 +4.4699999999999998 -0.0032749780724746 +4.4800000000000004 -0.0019342392622478 +4.4900000000000002 -0.0003394419987938 +4.5000000000000000 0.0002948442499075 +4.5099999999999998 -0.0000690089122642 +4.5200000000000005 -0.0010011152010210 +4.5300000000000002 -0.0015965398025879 +4.5400000000000000 -0.0015213217753798 +4.5499999999999998 -0.0010660841710909 +4.5600000000000005 -0.0007029427065653 +4.5700000000000003 -0.0006734672669113 +4.5800000000000001 -0.0008838307052837 +4.5899999999999999 -0.0010959827970437 +4.6000000000000005 -0.0011467062913427 +4.6100000000000003 -0.0010539487982169 +4.6200000000000001 -0.0009385267069825 +4.6299999999999999 -0.0008937310705765 +4.6399999999999997 -0.0009311837744862 +4.6500000000000004 -0.0009916241118306 +4.6600000000000001 -0.0010219047842457 +4.6699999999999999 -0.0010096748404365 +4.6799999999999997 -0.0009804243040832 +4.6900000000000004 -0.0009614464124004 +4.7000000000000002 -0.0009643674156673 +4.7100000000000000 -0.0009768231452064 +4.7199999999999998 -0.0009870186428971 +4.7300000000000004 -0.0009865532292386 +4.7400000000000002 -0.0009831185361845 +4.7500000000000000 -0.0009817042581742 +4.7599999999999998 -0.0009776264785480 +4.7700000000000005 -0.0009795238114896 +4.7800000000000002 -0.0009786925369782 +4.7900000000000000 -0.0009788645201235 +4.7999999999999998 -0.0009806814119427 +4.8100000000000005 -0.0009791195202218 +4.8200000000000003 -0.0009808666875883 +4.8300000000000001 -0.0009794076859255 +4.8399999999999999 -0.0009803147820089 +4.8500000000000005 -0.0009797223519241 +4.8600000000000003 -0.0009788621485113 +4.8700000000000001 -0.0009805860900869 +4.8799999999999999 -0.0009795503330540 +4.8899999999999997 -0.0009789682657432 +4.9000000000000004 -0.0009803351025161 +4.9100000000000001 -0.0009810112096878 +4.9199999999999999 -0.0009809819695253 +4.9299999999999997 -0.0009777506731297 +4.9400000000000004 -0.0009789916205268 +4.9500000000000002 -0.0009807682928232 +4.9600000000000000 -0.0009793787576738 +4.9699999999999998 -0.0009792706652875 +4.9800000000000004 -0.0009821503754995 +4.9900000000000002 -0.0009797761231285 +5.0000000000000000 -0.0009824026321230 +5.0099999999999998 -0.0009796493289694 +5.0200000000000005 -0.0009805896527688 +5.0300000000000002 -0.0009788711206247 +5.0400000000000000 -0.0009797318400897 +5.0499999999999998 -0.0009799355275387 +5.0600000000000005 -0.0009809140792944 +5.0700000000000003 -0.0009799069556994 +5.0800000000000001 -0.0009791753666981 +5.0899999999999999 -0.0009808827814604 +5.1000000000000005 -0.0009801544399555 +5.1100000000000003 -0.0009811890853675 +5.1200000000000001 -0.0009795153848644 +5.1299999999999999 -0.0009803056993762 +5.1399999999999997 -0.0009809157106035 +5.1500000000000004 -0.0009806918095176 +5.1600000000000001 -0.0009804670301292 +5.1699999999999999 -0.0009802413724383 +5.1799999999999997 -0.0009800148364450 +5.1900000000000004 -0.0009815821376831 +5.2000000000000002 -0.0009781370624218 +5.2100000000000000 -0.0009803475098830 +5.2199999999999998 -0.0009773782034387 +5.2300000000000004 -0.0009780479117413 +5.2400000000000002 -0.0009809838578079 +5.2500000000000000 -0.0009790458080925 +5.2599999999999998 -0.0009800505701194 +5.2700000000000005 -0.0009792416847482 +5.2800000000000002 -0.0009791538195997 +5.2900000000000000 -0.0009795909991173 +5.2999999999999998 -0.0009798774398634 +5.3100000000000005 -0.0009789312805339 +5.3200000000000003 -0.0009796790288210 +5.3300000000000001 -0.0009818985089243 +5.3399999999999999 -0.0009807611544983 +5.3500000000000005 -0.0009794553788582 +5.3600000000000003 -0.0009802792455962 +5.3700000000000001 -0.0009796884286164 +5.3799999999999999 -0.0009808697647971 +5.3899999999999997 -0.0009793660770301 +5.4000000000000004 -0.0009802597781696 +5.4100000000000001 -0.0009793402155478 +5.4199999999999999 -0.0009794196733420 +5.4299999999999997 -0.0009807285529559 +5.4400000000000004 -0.0009802349576980 +5.4500000000000002 -0.0009812273382062 +5.4600000000000000 -0.0009796043461111 +5.4699999999999998 -0.0009801515290652 +5.4800000000000004 -0.0009791389655367 +5.4900000000000002 -0.0009810920417472 +5.5000000000000000 -0.0009800649748147 +5.5099999999999998 -0.0009789879648178 +5.5200000000000005 -0.0009808316284679 +5.5300000000000002 -0.0009802662539208 +5.5400000000000000 -0.0009813382959248 +5.5499999999999998 -0.0009788651631312 +5.5600000000000005 -0.0009797042038155 +5.5700000000000003 -0.0009789230092965 +5.5800000000000001 -0.0009808944450817 +5.5899999999999999 -0.0009806503188256 +5.6000000000000005 -0.0009805035389430 +5.6100000000000003 -0.0009804541054340 +5.6200000000000001 -0.0009793713853716 +5.6299999999999999 -0.0009784142889166 +5.6399999999999997 -0.0009796666479806 +5.6500000000000004 -0.0009805006088085 +5.6600000000000001 -0.0009794252362535 +5.6699999999999999 -0.0009796150551686 +5.6799999999999997 -0.0009796218930742 +5.6900000000000004 -0.0009807047166883 +5.7000000000000002 -0.0009818702039882 +5.7100000000000000 -0.0009805712652248 +5.7199999999999998 -0.0009787235799847 +5.7300000000000004 -0.0009796496032736 +5.7400000000000002 -0.0009807192763404 +5.7500000000000000 -0.0009797501858705 +5.7599999999999998 -0.0009781874523372 +5.7700000000000005 -0.0009782659667052 +5.7800000000000002 -0.0009812300154980 +5.7900000000000000 -0.0009810610599287 +5.7999999999999998 -0.0009800111631314 +5.8100000000000005 -0.0009793022961867 +5.8200000000000003 -0.0009801871062137 +5.8300000000000001 -0.0009809457175423 +5.8399999999999999 -0.0009809680106004 +5.8500000000000005 -0.0009792535417806 +5.8600000000000003 -0.0009807277055097 +5.8700000000000001 -0.0009793588063705 +5.8799999999999999 -0.0009790693843042 +5.8899999999999997 -0.0009808183990961 +5.9000000000000004 -0.0009793596766967 +5.9100000000000001 -0.0009807023288088 +5.9199999999999999 -0.0009792122938299 +5.9299999999999997 -0.0009790208656402 +5.9400000000000004 -0.0009809432805907 +5.9500000000000002 -0.0009806498842880 +5.9600000000000000 -0.0009803723830796 +5.9699999999999998 -0.0009801107769654 +5.9800000000000004 -0.0009812153414841 +5.9900000000000002 -0.0009796577617608 +6.0000000000000000 -0.0009801823389351 +6.0099999999999998 -0.0009793366989464 +6.0200000000000005 -0.0009778435542771 +6.0300000000000002 -0.0009805560650142 +6.0400000000000000 -0.0009796167636805 +6.0499999999999998 -0.0009781149626633 +6.0600000000000005 -0.0009786222210067 +6.0700000000000003 -0.0009809519082343 +6.0800000000000001 -0.0009792632617269 +6.0899999999999999 -0.0009794801935785 +6.1000000000000005 -0.0009795502921147 +6.1100000000000003 -0.0009794735573356 +6.1200000000000001 -0.0009820202438352 +6.1299999999999999 -0.0009812070671426 +6.1400000000000006 -0.0009807266187667 +6.1500000000000004 -0.0009799572671543 +6.1600000000000001 -0.0009791119993625 +6.1699999999999999 -0.0009807090740857 +6.1799999999999997 -0.0009796642855261 +6.1900000000000004 -0.0009808696149863 +6.2000000000000002 -0.0009789745893698 +6.2100000000000000 -0.0009801051385955 +6.2199999999999998 -0.0009809447731098 +6.2300000000000004 -0.0009791914854379 +6.2400000000000002 -0.0009808303456368 +6.2500000000000000 -0.0009796718204561 +6.2599999999999998 -0.0009800171141605 +6.2700000000000005 -0.0009809553444662 +6.2800000000000002 -0.0009794524716244 +6.2900000000000000 -0.0009805321056514 +6.2999999999999998 -0.0009811412173310 +6.3100000000000005 -0.0009798086678190 +6.3200000000000003 -0.0009791050858538 +6.3300000000000001 -0.0009803905541220 +6.3399999999999999 -0.0009810152715231 +6.3500000000000005 -0.0009795866552161 +6.3600000000000003 -0.0009780883240411 +6.3700000000000001 -0.0009797589107677 +6.3799999999999999 -0.0009799798714521 +6.3900000000000006 -0.0009814177274890 +6.4000000000000004 -0.0009794394763610 +6.4100000000000001 -0.0009801119820465 +6.4199999999999999 -0.0009797614841427 +6.4299999999999997 -0.0009806696706888 +6.4400000000000004 -0.0009809815874978 +6.4500000000000002 -0.0009799315428617 +6.4600000000000000 -0.0009777978377098 +6.4699999999999998 -0.0009802260466104 +6.4800000000000004 -0.0009786325663882 +6.4900000000000002 -0.0009801185346011 +6.5000000000000000 -0.0009794894733719 +6.5099999999999998 -0.0009810256397790 +6.5200000000000005 -0.0009802205738975 +6.5300000000000002 -0.0009799236601644 +6.5400000000000000 -0.0009790711853777 +6.5499999999999998 -0.0009790335602579 +6.5600000000000005 -0.0009823288628266 +6.5700000000000003 -0.0009797645301114 +6.5800000000000001 -0.0009811008753292 +6.5899999999999999 -0.0009797047460820 +6.6000000000000005 -0.0009810152160248 +6.6100000000000003 -0.0009801128794360 +6.6200000000000001 -0.0009791931848647 +6.6299999999999999 -0.0009805801223186 +6.6400000000000006 -0.0009801605417162 +6.6500000000000004 -0.0009789581520141 +6.6600000000000001 -0.0009812519567959 +6.6699999999999999 -0.0009805409344994 +6.6799999999999997 -0.0009802267694972 +6.6900000000000004 -0.0009792030857647 +6.7000000000000002 -0.0009803766222965 +6.7100000000000000 -0.0009804526111013 +6.7199999999999998 -0.0009804889523407 +6.7300000000000004 -0.0009806919852986 +6.7400000000000002 -0.0009793817758493 +6.7500000000000000 -0.0009795841965334 +6.7599999999999998 -0.0009787355925548 +6.7700000000000005 -0.0009813338915727 +6.7800000000000002 -0.0009810427544796 +6.7900000000000000 -0.0009800272210296 +6.7999999999999998 -0.0009796776590931 +6.8100000000000005 -0.0009791041938185 +6.8200000000000003 -0.0009795039665560 +6.8300000000000001 -0.0009798211256404 +6.8399999999999999 -0.0009789737364914 +6.8500000000000005 -0.0009797372322659 +6.8600000000000003 -0.0009801056420539 +6.8700000000000001 -0.0009795994791805 +6.8799999999999999 -0.0009821568305651 +6.8900000000000006 -0.0009801503153675 +6.9000000000000004 -0.0009804489235233 +6.9100000000000001 -0.0009806909227280 +6.9199999999999999 -0.0009804820619663 +6.9299999999999997 -0.0009805993825972 +6.9400000000000004 -0.0009775290226830 +6.9500000000000002 -0.0009795347772922 +6.9600000000000000 -0.0009791300856536 +6.9699999999999998 -0.0009799018811536 +6.9800000000000004 -0.0009812793376816 +6.9900000000000002 -0.0009791244463906 +7.0000000000000000 -0.0009806998986917 +7.0099999999999998 -0.0009807232325597 +7.0200000000000005 -0.0009774085743173 +7.0300000000000002 -0.0009802503843832 +7.0400000000000000 -0.0009801846011457 +7.0499999999999998 -0.0009791583896420 +7.0600000000000005 -0.0009805002680460 +7.0700000000000003 -0.0009795667606259 +7.0800000000000001 -0.0009799152055040 +7.0899999999999999 -0.0009797369768916 +7.1000000000000005 -0.0009807439602484 +7.1100000000000003 -0.0009795797897514 +7.1200000000000001 -0.0009791532441199 +7.1299999999999999 -0.0009808200705924 +7.1400000000000006 -0.0009795120595018 +7.1500000000000004 -0.0009790763048037 +7.1600000000000001 -0.0009805324758802 +7.1699999999999999 -0.0009795852663898 +7.1799999999999997 -0.0009800775493616 +7.1900000000000004 -0.0009802835578567 +7.2000000000000002 -0.0009798890280166 +7.2100000000000000 -0.0009805525063464 +7.2199999999999998 -0.0009794425453163 +7.2300000000000004 -0.0009793576914457 +7.2400000000000002 -0.0009794617546747 +7.2500000000000000 -0.0009806631345007 +7.2599999999999998 -0.0009817854342403 +7.2700000000000005 -0.0009812479195866 +7.2800000000000002 -0.0009806880896402 +7.2900000000000000 -0.0009786531518190 +7.2999999999999998 -0.0009808339540361 +7.3100000000000005 -0.0009801056011188 +7.3200000000000003 -0.0009793044282708 +7.3300000000000001 -0.0009811419758967 +7.3399999999999999 -0.0009791136489012 +7.3500000000000005 -0.0009795379788474 +7.3600000000000003 -0.0009805077307175 +7.3700000000000001 -0.0009789789189327 +7.3799999999999999 -0.0009802816667549 +7.3900000000000006 -0.0009801164533971 +7.4000000000000004 -0.0009791364922760 +7.4100000000000001 -0.0009808308521492 +7.4199999999999999 -0.0009790012624314 +7.4299999999999997 -0.0009801404621577 +7.4400000000000004 -0.0009811276694426 +7.4500000000000002 -0.0009796077164236 +7.4600000000000000 -0.0009791826509767 +7.4699999999999998 -0.0009791757032380 +7.4800000000000004 -0.0009825772467535 +7.4900000000000002 -0.0009801462423906 +7.5000000000000000 -0.0009812126992150 +7.5099999999999998 -0.0009786498086029 +7.5200000000000005 -0.0009806382268619 +7.5300000000000002 -0.0009788695745182 +7.5400000000000000 -0.0009808500159650 +7.5499999999999998 -0.0009790481750284 +7.5600000000000005 -0.0009791237096214 +7.5700000000000003 -0.0009808653097834 +7.5800000000000001 -0.0009794887085221 +7.5899999999999999 -0.0009801136596413 +7.6000000000000005 -0.0009804988800866 +7.6100000000000003 -0.0009792118838055 +7.6200000000000001 -0.0009802805652835 +7.6299999999999999 -0.0009808802352735 +7.6400000000000006 -0.0009793856554936 +7.6500000000000004 -0.0009800832789644 +7.6600000000000001 -0.0009790111289939 +7.6699999999999999 -0.0009807504319682 +7.6799999999999997 -0.0009790146240469 +7.6900000000000004 -0.0009809899586313 +7.7000000000000002 -0.0009797297747714 +7.7100000000000000 -0.0009793679916770 +7.7199999999999998 -0.0009806600681431 +7.7300000000000004 -0.0009791798479214 +7.7400000000000002 -0.0009808215562847 +7.7500000000000000 -0.0009804633637547 +7.7599999999999998 -0.0009808157404296 +7.7700000000000005 -0.0009797042304721 +7.7800000000000002 -0.0009783901041190 +7.7900000000000000 -0.0009787865889711 +7.7999999999999998 -0.0009804851731795 +7.8100000000000005 -0.0009794195267645 +7.8200000000000003 -0.0009798886261139 +7.8300000000000001 -0.0009807773238681 +7.8399999999999999 -0.0009808052390636 +7.8500000000000005 -0.0009808152862152 +7.8600000000000003 -0.0009787772975089 +7.8700000000000001 -0.0009783800514668 +7.8799999999999999 -0.0009804500911826 +7.8900000000000006 -0.0009794309305120 +7.9000000000000004 -0.0009811131510685 +7.9100000000000001 -0.0009804533056077 +7.9199999999999999 -0.0009790229202768 +7.9300000000000006 -0.0009804205292877 +7.9400000000000004 -0.0009811128357136 +7.9500000000000002 -0.0009790728144328 +7.9600000000000000 -0.0009809565006782 +7.9699999999999998 -0.0009803682765540 +7.9800000000000004 -0.0009815718458051 +7.9900000000000002 -0.0009793893577016 +8.0000000000000000 -0.0009792885603668 +8.0099999999999998 -0.0009808075585346 +8.0199999999999996 -0.0009776400295108 +8.0299999999999994 -0.0009798501579395 +8.0400000000000009 -0.0009795006012623 +8.0500000000000007 -0.0009809380967446 +8.0600000000000005 -0.0009815969998578 +8.0700000000000003 -0.0009793417438976 +8.0800000000000001 -0.0009806087483589 +8.0899999999999999 -0.0009793649631088 +8.0999999999999996 -0.0009787935614106 +8.1099999999999994 -0.0009797146458986 +8.1200000000000010 -0.0009807834184874 +8.1300000000000008 -0.0009808387234839 +8.1400000000000006 -0.0009798987241554 +8.1500000000000004 -0.0009777541177066 +8.1600000000000001 -0.0009784356451695 +8.1699999999999999 -0.0009808571991132 +8.1799999999999997 -0.0009793597187975 +8.1899999999999995 -0.0009796634310793 +8.1999999999999993 -0.0009797869167586 +8.2100000000000009 -0.0009797301758354 +8.2200000000000006 -0.0009794932083098 +8.2300000000000004 -0.0009826020566060 +8.2400000000000002 -0.0009799594235534 +8.2500000000000000 -0.0009812410918911 +8.2599999999999998 -0.0009799780650623 +8.2699999999999996 -0.0009797854917170 +8.2799999999999994 -0.0009801969864273 +8.2900000000000009 -0.0009812807104478 +8.3000000000000007 -0.0009805310965702 +8.3100000000000005 -0.0009801404697804 +8.3200000000000003 -0.0009802596955626 +8.3300000000000001 -0.0009785039517080 +8.3399999999999999 -0.0009798396042103 +8.3499999999999996 -0.0009790675015551 +8.3599999999999994 -0.0009801409852803 +8.3700000000000010 -0.0009794802716500 +8.3800000000000008 -0.0009792426276916 +8.3900000000000006 -0.0009794103098461 +8.4000000000000004 -0.0009793657356686 +8.4100000000000001 -0.0009819288572050 +8.4199999999999999 -0.0009818906062800 +8.4299999999999997 -0.0009789987490115 +8.4399999999999995 -0.0009806598416042 +8.4499999999999993 -0.0009804019856588 +8.4600000000000009 -0.0009803959083649 +8.4700000000000006 -0.0009790185889874 +8.4800000000000004 -0.0009796589303852 +8.4900000000000002 -0.0009793742362214 +8.5000000000000000 -0.0009794333872445 +8.5099999999999998 -0.0009798274451560 +8.5199999999999996 -0.0009799143921401 +8.5299999999999994 -0.0009796942281968 +8.5400000000000009 -0.0009815527729123 +8.5500000000000007 -0.0009806156584993 +8.5600000000000005 -0.0009815398178687 +8.5700000000000003 -0.0009783627110502 +8.5800000000000001 -0.0009813682328373 +8.5899999999999999 -0.0009797016784103 +8.5999999999999996 -0.0009812764645201 +8.6099999999999994 -0.0009800796961834 +8.6200000000000010 -0.0009808252112539 +8.6300000000000008 -0.0009793250298521 +8.6400000000000006 -0.0009819100166891 +8.6500000000000004 -0.0009798507476068 +8.6600000000000001 -0.0009807620765492 +8.6699999999999999 -0.0009808103928045 +8.6799999999999997 -0.0009805232378289 +8.6899999999999995 -0.0009803766045040 +8.7000000000000011 -0.0009803704928298 +8.7100000000000009 -0.0009793889933181 +8.7200000000000006 -0.0009782535959180 +8.7300000000000004 -0.0009789754517428 +8.7400000000000002 -0.0009793641254276 +8.7500000000000000 -0.0009801847103088 +8.7599999999999998 -0.0009804341898060 +8.7699999999999996 -0.0009808541784838 +8.7799999999999994 -0.0009805385083024 +8.7900000000000009 -0.0009803440625024 +8.8000000000000007 -0.0009802708410836 +8.8100000000000005 -0.0009803188440463 +8.8200000000000003 -0.0009792445951708 +8.8300000000000001 -0.0009782092400516 +8.8399999999999999 -0.0009802193226526 +8.8499999999999996 -0.0009812460638029 +8.8599999999999994 -0.0009795683299224 +8.8700000000000010 -0.0009794588630777 +8.8800000000000008 -0.0009826842532050 +8.8900000000000006 -0.0009798043063276 +8.9000000000000004 -0.0009804049549712 +8.9100000000000001 -0.0009799162176285 +8.9199999999999999 -0.0009803349530679 +8.9299999999999997 -0.0009803358491780 +8.9399999999999995 -0.0009795585023731 +8.9500000000000011 -0.0009799335029673 +8.9600000000000009 -0.0009796898754514 +8.9700000000000006 -0.0009802751229476 +8.9800000000000004 -0.0009791810704579 +8.9900000000000002 -0.0009797265060747 +9.0000000000000000 -0.0009801038533895 +9.0099999999999998 -0.0009795000641282 +9.0199999999999996 -0.0009801284918458 +9.0299999999999994 -0.0009805173021492 +9.0400000000000009 -0.0009801205046825 +9.0500000000000007 -0.0009791523887996 +9.0600000000000005 -0.0009808789672924 +9.0700000000000003 -0.0009804711145879 +9.0800000000000001 -0.0009801066524999 +9.0899999999999999 -0.0009792824534045 +9.0999999999999996 -0.0009810590161294 +9.1099999999999994 -0.0009796673913911 +9.1200000000000010 -0.0009801329879574 +9.1300000000000008 -0.0009789804051015 +9.1400000000000006 -0.0009791442900031 +9.1500000000000004 -0.0009793229464379 +9.1600000000000001 -0.0009795163744058 +9.1699999999999999 -0.0009797245739069 +9.1799999999999997 -0.0009799475449412 +9.1899999999999995 -0.0009801852875086 +9.2000000000000011 -0.0009785036417892 +9.2100000000000009 -0.0009804162396287 +9.2200000000000006 -0.0009790410645408 +9.2300000000000004 -0.0009782044534350 +9.2400000000000002 -0.0009803847548487 +9.2500000000000000 -0.0009800481680963 +9.2599999999999998 -0.0009792506428793 +9.2699999999999996 -0.0009810619106577 +9.2799999999999994 -0.0009792680456312 +9.2900000000000009 -0.0009807934479233 +9.3000000000000007 -0.0009810491143620 +9.3100000000000005 -0.0009793764259777 +9.3200000000000003 -0.0009806992960135 +9.3300000000000001 -0.0009791396998606 +9.3399999999999999 -0.0009805435523542 +9.3499999999999996 -0.0009797392574529 +9.3599999999999994 -0.0009791614105686 +9.3700000000000010 -0.0009806827793936 +9.3800000000000008 -0.0009794421760333 +9.3900000000000006 -0.0009801781618672 +9.4000000000000004 -0.0009809088131344 +9.4100000000000001 -0.0009808996187548 +9.4199999999999999 -0.0009775111525479 +9.4299999999999997 -0.0009796565003947 +9.4399999999999995 -0.0009795626893661 +9.4500000000000011 -0.0009796314736698 +9.4600000000000009 -0.0009796926676078 +9.4700000000000006 -0.0009801224651870 +9.4800000000000004 -0.0009805990043708 +9.4900000000000002 -0.0009803079297292 +9.5000000000000000 -0.0009802671031367 +9.5099999999999998 -0.0009804765245932 +9.5199999999999996 -0.0009772706763785 +9.5299999999999994 -0.0009796447495656 +9.5400000000000009 -0.0009809369851232 +9.5500000000000007 -0.0009789956186507 +9.5600000000000005 -0.0009810203186839 +9.5700000000000003 -0.0009795327643112 +9.5800000000000001 -0.0009795425497401 +9.5899999999999999 -0.0009792607692141 +9.5999999999999996 -0.0009805232804307 +9.6099999999999994 -0.0009816447092109 +9.6200000000000010 -0.0009803018864369 +9.6300000000000008 -0.0009800560514525 +9.6400000000000006 -0.0009794402834164 +9.6500000000000004 -0.0009806689867348 +9.6600000000000001 -0.0009806450739240 +9.6699999999999999 -0.0009787022921774 +9.6799999999999997 -0.0009798722055766 +9.6899999999999995 -0.0009796671155675 +9.7000000000000011 -0.0009792531983609 +9.7100000000000009 -0.0009794711291694 +9.7200000000000006 -0.0009794140213331 +9.7300000000000004 -0.0009814660187171 +9.7400000000000002 -0.0009798677610896 +9.7500000000000000 -0.0009805835051243 +9.7599999999999998 -0.0009805388307178 +9.7699999999999996 -0.0009801826599717 +9.7799999999999994 -0.0009801022893441 +9.7900000000000009 -0.0009802977188349 +9.8000000000000007 -0.0009790335173198 +9.8100000000000005 -0.0009778715511289 +9.8200000000000003 -0.0009800600672694 +9.8300000000000001 -0.0009799998053186 +9.8399999999999999 -0.0009796766348970 +9.8499999999999996 -0.0009807682678562 +9.8599999999999994 -0.0009793633265653 +9.8700000000000010 -0.0009806289329208 +9.8800000000000008 -0.0009799296566590 +9.8900000000000006 -0.0009811544538933 +9.9000000000000004 -0.0009793397384990 +9.9100000000000001 -0.0009808395948898 +9.9199999999999999 -0.0009794179727183 +9.9299999999999997 -0.0009789376751373 +9.9399999999999995 -0.0009805651241784 +9.9500000000000011 -0.0009791182628485 +9.9600000000000009 -0.0009811338351261 +9.9700000000000006 -0.0009807763853153 +9.9800000000000004 -0.0009800226238789 +9.9900000000000002 -0.0009792276002330 +10.0000000000000000 -0.0009812069699906 diff --git a/src/engine/tests/system/gt_data/VIRplanoS/In1.dat b/src/engine/tests/system/gt_data/VIRplanoS/In1.dat new file mode 100644 index 00000000..0f1d9e4f --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/In1.dat @@ -0,0 +1,6001 @@ +0.0000000000000000 0.0000000000000000 +0.0100000000000000 0.0000000000000000 +0.0200000000000000 0.0000000000000000 +0.0300000000000000 0.0000000000000000 +0.0400000000000000 0.0000000000000000 +0.0500000000000000 0.0000000000000000 +0.0600000000000000 0.0000000000000000 +0.0700000000000000 0.0000000000000000 +0.0800000000000000 0.0000000000000000 +0.0900000000000000 0.0000000000000000 +0.1000000000000000 0.0000000000000000 +0.1100000000000000 0.0000000000000000 +0.1200000000000000 0.0000000000000000 +0.1300000000000000 0.0000000000000000 +0.1400000000000000 0.0000000000000000 +0.1500000000000000 0.0000000000000000 +0.1600000000000000 0.0000000000000000 +0.1700000000000000 0.0000000000000000 +0.1800000000000000 0.0000000000000000 +0.1900000000000000 0.0000000000000000 +0.2000000000000000 0.0000000000000000 +0.2100000000000000 0.0000000000000000 +0.2200000000000000 0.0000000000000000 +0.2300000000000000 0.0000000000000000 +0.2400000000000000 0.0000000000000000 +0.2500000000000000 0.0000000000000000 +0.2600000000000000 0.0000000000000000 +0.2700000000000000 0.0000000000000000 +0.2800000000000000 0.0000000000000000 +0.2900000000000000 0.0000000000000000 +0.3000000000000000 0.0000000000000000 +0.3100000000000000 0.0000000000000000 +0.3200000000000000 0.0000000000000000 +0.3300000000000000 0.0000000000000000 +0.3400000000000000 0.0000000000000000 +0.3500000000000000 0.0000000000000000 +0.3600000000000000 0.0000000000000000 +0.3700000000000000 0.0000000000000000 +0.3800000000000000 0.0000000000000000 +0.3900000000000000 0.0000000000000000 +0.4000000000000000 0.0000000000000000 +0.4100000000000000 0.0000000000000000 +0.4200000000000000 0.0000000000000000 +0.4300000000000000 0.0000000000000000 +0.4400000000000000 0.0000000000000000 +0.4500000000000000 0.0000000000000000 +0.4600000000000000 0.0000000000000000 +0.4700000000000000 0.0000000000000000 +0.4800000000000000 0.0000000000000000 +0.4900000000000000 0.0000000000000000 +0.5000000000000000 0.0000000000000000 +0.5100000000000000 0.0000000000000000 +0.5200000000000000 0.0000000000000000 +0.5300000000000000 0.0000000000000000 +0.5400000000000000 0.0000000000000000 +0.5500000000000000 0.0000000000000000 +0.5600000000000001 0.0000000000000000 +0.5700000000000001 0.0000000000000000 +0.5800000000000000 0.0000000000000000 +0.5900000000000000 0.0000000000000000 +0.6000000000000000 0.0000000000000000 +0.6100000000000000 0.0000000000000000 +0.6200000000000000 0.0000000000000000 +0.6300000000000000 0.0000000000000000 +0.6400000000000000 0.0000000000000000 +0.6500000000000000 0.0000000000000000 +0.6600000000000000 0.0000000000000000 +0.6700000000000000 0.0000000000000000 +0.6800000000000000 0.0000000000000000 +0.6900000000000001 0.0000000000000000 +0.7000000000000001 0.0000000000000000 +0.7100000000000000 0.0000000000000000 +0.7200000000000000 0.0000000000000000 +0.7300000000000000 0.0000000000000000 +0.7400000000000000 0.0000000000000000 +0.7500000000000000 0.0000000000000000 +0.7600000000000000 0.0000000000000000 +0.7700000000000000 0.0000000000000000 +0.7800000000000000 0.0000000000000000 +0.7900000000000000 0.0000000000000000 +0.8000000000000000 0.0000000000000000 +0.8100000000000001 0.0000000000000000 +0.8200000000000001 0.0000000000000000 +0.8300000000000001 0.0000000000000000 +0.8400000000000000 0.0000000000000000 +0.8500000000000000 0.0000000000000000 +0.8600000000000000 0.0000000000000000 +0.8700000000000000 0.0000000000000000 +0.8800000000000000 0.0000000000000000 +0.8900000000000000 0.0000000000000000 +0.9000000000000000 0.0000000000000000 +0.9100000000000000 0.0000000000000000 +0.9200000000000000 0.0000000000000000 +0.9300000000000000 0.0000000000000000 +0.9400000000000001 0.0000000000000000 +0.9500000000000001 0.0000000000000000 +0.9600000000000000 0.0000000000000000 +0.9700000000000000 0.0000000000000000 +0.9800000000000000 0.0000000000000000 +0.9900000000000000 0.0000000000000000 +1.0000000000000000 0.0000000000000000 +1.0100000000000000 0.0000000000000000 +1.0200000000000000 0.0000000000000000 +1.0300000000000000 0.0000000000000000 +1.0400000000000000 0.0000000000000000 +1.0500000000000000 0.0000000000000000 +1.0600000000000001 0.0000000000000000 +1.0700000000000001 0.0000000000000000 +1.0800000000000001 0.0000000000000000 +1.0900000000000001 0.0000000000000000 +1.1000000000000001 0.0000000000000000 +1.1100000000000001 0.0000000000000000 +1.1200000000000001 0.0000000000000000 +1.1300000000000001 0.0000000000000000 +1.1400000000000001 0.0000000000000000 +1.1500000000000001 0.0000000000000000 +1.1599999999999999 0.0000000000000000 +1.1699999999999999 0.0000000000000000 +1.1799999999999999 0.0000000000000000 +1.1899999999999999 0.0000000000000000 +1.2000000000000000 0.0000000000000000 +1.2100000000000000 0.0000000000000000 +1.2200000000000000 0.0000000000000000 +1.2300000000000000 0.0000000000000000 +1.2400000000000000 0.0000000000000000 +1.2500000000000000 0.0000000000000000 +1.2600000000000000 0.0000000000000000 +1.2700000000000000 0.0000000000000000 +1.2800000000000000 0.0000000000000000 +1.2900000000000000 0.0000000000000000 +1.3000000000000000 0.0000000000000000 +1.3100000000000001 0.0000000000000000 +1.3200000000000001 0.0000000000000000 +1.3300000000000001 0.0000000000000000 +1.3400000000000001 0.0000000000000000 +1.3500000000000001 0.0000000000000000 +1.3600000000000001 0.0000000000000000 +1.3700000000000001 0.0000000000000000 +1.3800000000000001 0.0000000000000000 +1.3900000000000001 0.0000000000000000 +1.4000000000000001 0.0000000000000000 +1.4099999999999999 0.0000000000000000 +1.4199999999999999 0.0000000000000000 +1.4299999999999999 0.0000000000000000 +1.4399999999999999 0.0000000000000000 +1.4500000000000000 0.0000000000000000 +1.4600000000000000 0.0000000000000000 +1.4700000000000000 0.0000000000000000 +1.4800000000000000 0.0000000000000000 +1.4900000000000000 0.0000000000000000 +1.5000000000000000 0.0000000000000000 +1.5100000000000000 0.0000000000000000 +1.5200000000000000 0.0000000000000000 +1.5300000000000000 0.0000000000000000 +1.5400000000000000 0.0000000000000000 +1.5500000000000000 0.0000000000000000 +1.5600000000000001 0.0000000000000000 +1.5700000000000001 0.0000000000000000 +1.5800000000000001 0.0000000000000000 +1.5900000000000001 0.0000000000000000 +1.6000000000000001 0.0000000000000000 +1.6100000000000001 0.0000000000000000 +1.6200000000000001 0.0000000000000000 +1.6300000000000001 0.0000000000000000 +1.6400000000000001 0.0000000000000000 +1.6500000000000001 0.0000000000000000 +1.6600000000000001 0.0000000000000000 +1.6699999999999999 0.0000000000000000 +1.6799999999999999 0.0000000000000000 +1.6899999999999999 0.0000000000000000 +1.7000000000000000 0.0000000000000000 +1.7100000000000000 0.0000000000000000 +1.7200000000000000 0.0000000000000000 +1.7300000000000000 0.0000000000000000 +1.7400000000000000 0.0000000000000000 +1.7500000000000000 0.0000000000000000 +1.7600000000000000 0.0000000000000000 +1.7700000000000000 0.0000000000000000 +1.7800000000000000 0.0000000000000000 +1.7900000000000000 0.0000000000000000 +1.8000000000000000 0.0000000000000000 +1.8100000000000001 0.0000000000000000 +1.8200000000000001 0.0000000000000000 +1.8300000000000001 0.0000000000000000 +1.8400000000000001 0.0000000000000000 +1.8500000000000001 0.0000000000000000 +1.8600000000000001 0.0000000000000000 +1.8700000000000001 0.0000000000000000 +1.8800000000000001 0.0000000000000000 +1.8900000000000001 0.0000000000000000 +1.9000000000000001 0.0000000000000000 +1.9100000000000001 0.0000000000000000 +1.9199999999999999 0.0000000000000000 +1.9299999999999999 0.0000000000000000 +1.9399999999999999 0.0000000000000000 +1.9500000000000000 0.0000000000000000 +1.9600000000000000 0.0000000000000000 +1.9700000000000000 0.0000000000000000 +1.9800000000000000 0.0000000000000000 +1.9900000000000000 0.0000000000000000 +2.0000000000000000 0.0000000000000000 +2.0100000000000002 0.0000000000000000 +2.0200000000000000 0.0000000000000000 +2.0300000000000002 0.0000000000000000 +2.0400000000000000 0.0000000000000000 +2.0499999999999998 0.0000000000000000 +2.0600000000000001 0.0000000000000000 +2.0699999999999998 0.0000000000000000 +2.0800000000000001 0.0000000000000000 +2.0899999999999999 0.0000000000000000 +2.1000000000000001 0.0000000000000000 +2.1099999999999999 0.0000000000000000 +2.1200000000000001 0.0000000000000000 +2.1299999999999999 0.0000000000000000 +2.1400000000000001 0.0000000000000000 +2.1499999999999999 0.0000000000000000 +2.1600000000000001 0.0000000000000000 +2.1699999999999999 0.0000000000000000 +2.1800000000000002 0.0000000000000000 +2.1899999999999999 0.0000000000000000 +2.2000000000000002 0.0000000000000000 +2.2100000000000000 0.0000000000000000 +2.2200000000000002 0.0000000000000000 +2.2300000000000000 0.0000000000000000 +2.2400000000000002 0.0000000000000000 +2.2500000000000000 0.0000000000000000 +2.2600000000000002 0.0000000000000000 +2.2700000000000000 0.0000000000000000 +2.2800000000000002 0.0000000000000000 +2.2900000000000000 0.0000000000000000 +2.3000000000000003 0.0000000000000000 +2.3100000000000001 0.0000000000000000 +2.3199999999999998 0.0000000000000000 +2.3300000000000001 0.0000000000000000 +2.3399999999999999 0.0000000000000000 +2.3500000000000001 0.0000000000000000 +2.3599999999999999 0.0000000000000000 +2.3700000000000001 0.0000000000000000 +2.3799999999999999 0.0000000000000000 +2.3900000000000001 0.0000000000000000 +2.3999999999999999 0.0000000000000000 +2.4100000000000001 0.0000000000000000 +2.4199999999999999 0.0000000000000000 +2.4300000000000002 0.0000000000000000 +2.4399999999999999 0.0000000000000000 +2.4500000000000002 0.0000000000000000 +2.4600000000000000 0.0000000000000000 +2.4700000000000002 0.0000000000000000 +2.4800000000000000 0.0000000000000000 +2.4900000000000002 0.0000000000000000 +2.5000000000000000 0.0000000000000000 +2.5100000000000002 0.0000000000000000 +2.5200000000000000 0.0000000000000000 +2.5300000000000002 0.0000000000000000 +2.5400000000000000 0.0000000000000000 +2.5500000000000003 0.0000000000000000 +2.5600000000000001 0.0000000000000000 +2.5699999999999998 0.0000000000000000 +2.5800000000000001 0.0000000000000000 +2.5899999999999999 0.0000000000000000 +2.6000000000000001 0.0000000000000000 +2.6099999999999999 0.0000000000000000 +2.6200000000000001 0.0000000000000000 +2.6299999999999999 0.0000000000000000 +2.6400000000000001 0.0000000000000000 +2.6499999999999999 0.0000000000000000 +2.6600000000000001 0.0000000000000000 +2.6699999999999999 0.0000000000000000 +2.6800000000000002 0.0000000000000000 +2.6899999999999999 0.0000000000000000 +2.7000000000000002 0.0000000000000000 +2.7100000000000000 0.0000000000000000 +2.7200000000000002 0.0000000000000000 +2.7300000000000000 0.0000000000000000 +2.7400000000000002 0.0000000000000000 +2.7500000000000000 0.0000000000000000 +2.7600000000000002 0.0000000000000000 +2.7700000000000000 0.0000000000000000 +2.7800000000000002 0.0000000000000000 +2.7900000000000000 0.0000000000000000 +2.8000000000000003 0.0000000000000000 +2.8100000000000001 0.0000000000000000 +2.8199999999999998 0.0000000000000000 +2.8300000000000001 0.0000000000000000 +2.8399999999999999 0.0000000000000000 +2.8500000000000001 0.0000000000000000 +2.8599999999999999 0.0000000000000000 +2.8700000000000001 0.0000000000000000 +2.8799999999999999 0.0000000000000000 +2.8900000000000001 0.0000000000000000 +2.8999999999999999 0.0000000000000000 +2.9100000000000001 0.0000000000000000 +2.9199999999999999 0.0000000000000000 +2.9300000000000002 0.0000000000000000 +2.9399999999999999 0.0000000000000000 +2.9500000000000002 0.0000000000000000 +2.9600000000000000 0.0000000000000000 +2.9700000000000002 0.0000000000000000 +2.9800000000000000 0.0000000000000000 +2.9900000000000002 0.0000000000000000 +3.0000000000000000 0.0000000000000000 +3.0100000000000002 0.0000000000000000 +3.0200000000000000 0.0000000000000000 +3.0300000000000002 0.0000000000000000 +3.0400000000000000 0.0000000000000000 +3.0500000000000003 0.0000000000000000 +3.0600000000000001 0.0000000000000000 +3.0700000000000003 0.0000000000000000 +3.0800000000000001 0.0000000000000000 +3.0899999999999999 0.0000000000000000 +3.1000000000000001 0.0000000000000000 +3.1099999999999999 0.0000000000000000 +3.1200000000000001 0.0000000000000000 +3.1299999999999999 0.0000000000000000 +3.1400000000000001 0.0000000000000000 +3.1499999999999999 0.0000000000000000 +3.1600000000000001 0.0000000000000000 +3.1699999999999999 0.0000000000000000 +3.1800000000000002 0.0000000000000000 +3.1899999999999999 0.0000000000000000 +3.2000000000000002 0.0000000000000000 +3.2100000000000000 0.0000000000000000 +3.2200000000000002 0.0000000000000000 +3.2300000000000000 0.0000000000000000 +3.2400000000000002 0.0000000000000000 +3.2500000000000000 0.0000000000000000 +3.2600000000000002 0.0000000000000000 +3.2700000000000000 0.0000000000000000 +3.2800000000000002 0.0000000000000000 +3.2900000000000000 0.0000000000000000 +3.3000000000000003 0.0000000000000000 +3.3100000000000001 0.0000000000000000 +3.3200000000000003 0.0000000000000000 +3.3300000000000001 0.0000000000000000 +3.3399999999999999 0.0000000000000000 +3.3500000000000001 0.0000000000000000 +3.3599999999999999 0.0000000000000000 +3.3700000000000001 0.0000000000000000 +3.3799999999999999 0.0000000000000000 +3.3900000000000001 0.0000000000000000 +3.3999999999999999 0.0000000000000000 +3.4100000000000001 0.0000000000000000 +3.4199999999999999 0.0000000000000000 +3.4300000000000002 0.0000000000000000 +3.4399999999999999 0.0000000000000000 +3.4500000000000002 0.0000000000000000 +3.4600000000000000 0.0000000000000000 +3.4700000000000002 0.0000000000000000 +3.4800000000000000 0.0000000000000000 +3.4900000000000002 0.0000000000000000 +3.5000000000000000 0.0000000000000000 +3.5100000000000002 0.0000000000000000 +3.5200000000000000 0.0000000000000000 +3.5300000000000002 0.0000000000000000 +3.5400000000000000 0.0000000000000000 +3.5500000000000003 0.0000000000000000 +3.5600000000000001 0.0000000000000000 +3.5700000000000003 0.0000000000000000 +3.5800000000000001 0.0000000000000000 +3.5899999999999999 0.0000000000000000 +3.6000000000000001 0.0000000000000000 +3.6099999999999999 0.0000000000000000 +3.6200000000000001 0.0000000000000000 +3.6299999999999999 0.0000000000000000 +3.6400000000000001 0.0000000000000000 +3.6499999999999999 0.0000000000000000 +3.6600000000000001 0.0000000000000000 +3.6699999999999999 0.0000000000000000 +3.6800000000000002 0.0000000000000000 +3.6899999999999999 0.0000000000000000 +3.7000000000000002 0.0000000000000000 +3.7100000000000000 0.0000000000000000 +3.7200000000000002 0.0000000000000000 +3.7300000000000000 0.0000000000000000 +3.7400000000000002 0.0000000000000000 +3.7500000000000000 0.0000000000000000 +3.7600000000000002 0.0000000000000000 +3.7700000000000000 0.0000000000000000 +3.7800000000000002 1.0000000000000000 +3.7900000000000000 1.0000000000000000 +3.8000000000000003 1.0000000000000000 +3.8100000000000001 1.0000000000000000 +3.8200000000000003 1.0000000000000000 +3.8300000000000001 1.0000000000000000 +3.8399999999999999 1.0000000000000000 +3.8500000000000001 1.0000000000000000 +3.8599999999999999 1.0000000000000000 +3.8700000000000001 1.0000000000000000 +3.8799999999999999 1.0000000000000000 +3.8900000000000001 1.0000000000000000 +3.8999999999999999 1.0000000000000000 +3.9100000000000001 1.0000000000000000 +3.9199999999999999 1.0000000000000000 +3.9300000000000002 1.0000000000000000 +3.9399999999999999 1.0000000000000000 +3.9500000000000002 1.0000000000000000 +3.9600000000000000 1.0000000000000000 +3.9700000000000002 1.0000000000000000 +3.9800000000000000 1.0000000000000000 +3.9900000000000002 1.0000000000000000 +4.0000000000000000 1.0000000000000000 +4.0099999999999998 1.0000000000000000 +4.0200000000000005 1.0000000000000000 +4.0300000000000002 1.0000000000000000 +4.0400000000000000 1.0000000000000000 +4.0499999999999998 1.0000000000000000 +4.0600000000000005 1.0000000000000000 +4.0700000000000003 1.0000000000000000 +4.0800000000000001 1.0000000000000000 +4.0899999999999999 1.0000000000000000 +4.0999999999999996 1.0000000000000000 +4.1100000000000003 1.0000000000000000 +4.1200000000000001 1.0000000000000000 +4.1299999999999999 1.0000000000000000 +4.1399999999999997 1.0000000000000000 +4.1500000000000004 1.0000000000000000 +4.1600000000000001 1.0000000000000000 +4.1699999999999999 1.0000000000000000 +4.1799999999999997 1.0000000000000000 +4.1900000000000004 1.0000000000000000 +4.2000000000000002 1.0000000000000000 +4.2100000000000000 1.0000000000000000 +4.2199999999999998 1.0000000000000000 +4.2300000000000004 1.0000000000000000 +4.2400000000000002 1.0000000000000000 +4.2500000000000000 1.0000000000000000 +4.2599999999999998 1.0000000000000000 +4.2700000000000005 1.0000000000000000 +4.2800000000000002 1.0000000000000000 +4.2900000000000000 1.0000000000000000 +4.2999999999999998 1.0000000000000000 +4.3100000000000005 1.0000000000000000 +4.3200000000000003 1.0000000000000000 +4.3300000000000001 1.0000000000000000 +4.3399999999999999 1.0000000000000000 +4.3500000000000005 1.0000000000000000 +4.3600000000000003 1.0000000000000000 +4.3700000000000001 1.0000000000000000 +4.3799999999999999 1.0000000000000000 +4.3899999999999997 1.0000000000000000 +4.4000000000000004 1.0000000000000000 +4.4100000000000001 1.0000000000000000 +4.4199999999999999 1.0000000000000000 +4.4299999999999997 1.0000000000000000 +4.4400000000000004 1.0000000000000000 +4.4500000000000002 1.0000000000000000 +4.4600000000000000 1.0000000000000000 +4.4699999999999998 1.0000000000000000 +4.4800000000000004 1.0000000000000000 +4.4900000000000002 1.0000000000000000 +4.5000000000000000 1.0000000000000000 +4.5099999999999998 1.0000000000000000 +4.5200000000000005 1.0000000000000000 +4.5300000000000002 1.0000000000000000 +4.5400000000000000 1.0000000000000000 +4.5499999999999998 1.0000000000000000 +4.5600000000000005 1.0000000000000000 +4.5700000000000003 1.0000000000000000 +4.5800000000000001 1.0000000000000000 +4.5899999999999999 1.0000000000000000 +4.6000000000000005 1.0000000000000000 +4.6100000000000003 1.0000000000000000 +4.6200000000000001 1.0000000000000000 +4.6299999999999999 1.0000000000000000 +4.6399999999999997 1.0000000000000000 +4.6500000000000004 1.0000000000000000 +4.6600000000000001 1.0000000000000000 +4.6699999999999999 1.0000000000000000 +4.6799999999999997 1.0000000000000000 +4.6900000000000004 1.0000000000000000 +4.7000000000000002 1.0000000000000000 +4.7100000000000000 1.0000000000000000 +4.7199999999999998 1.0000000000000000 +4.7300000000000004 1.0000000000000000 +4.7400000000000002 1.0000000000000000 +4.7500000000000000 1.0000000000000000 +4.7599999999999998 1.0000000000000000 +4.7700000000000005 1.0000000000000000 +4.7800000000000002 1.0000000000000000 +4.7900000000000000 1.0000000000000000 +4.7999999999999998 1.0000000000000000 +4.8100000000000005 1.0000000000000000 +4.8200000000000003 1.0000000000000000 +4.8300000000000001 1.0000000000000000 +4.8399999999999999 1.0000000000000000 +4.8500000000000005 1.0000000000000000 +4.8600000000000003 1.0000000000000000 +4.8700000000000001 1.0000000000000000 +4.8799999999999999 1.0000000000000000 +4.8899999999999997 1.0000000000000000 +4.9000000000000004 1.0000000000000000 +4.9100000000000001 1.0000000000000000 +4.9199999999999999 1.0000000000000000 +4.9299999999999997 1.0000000000000000 +4.9400000000000004 1.0000000000000000 +4.9500000000000002 1.0000000000000000 +4.9600000000000000 1.0000000000000000 +4.9699999999999998 1.0000000000000000 +4.9800000000000004 1.0000000000000000 +4.9900000000000002 1.0000000000000000 +5.0000000000000000 1.0000000000000000 +5.0099999999999998 1.0000000000000000 +5.0200000000000005 1.0000000000000000 +5.0300000000000002 1.0000000000000000 +5.0400000000000000 1.0000000000000000 +5.0499999999999998 1.0000000000000000 +5.0600000000000005 1.0000000000000000 +5.0700000000000003 1.0000000000000000 +5.0800000000000001 1.0000000000000000 +5.0899999999999999 1.0000000000000000 +5.1000000000000005 1.0000000000000000 +5.1100000000000003 1.0000000000000000 +5.1200000000000001 1.0000000000000000 +5.1299999999999999 1.0000000000000000 +5.1399999999999997 1.0000000000000000 +5.1500000000000004 1.0000000000000000 +5.1600000000000001 1.0000000000000000 +5.1699999999999999 1.0000000000000000 +5.1799999999999997 1.0000000000000000 +5.1900000000000004 1.0000000000000000 +5.2000000000000002 1.0000000000000000 +5.2100000000000000 1.0000000000000000 +5.2199999999999998 1.0000000000000000 +5.2300000000000004 1.0000000000000000 +5.2400000000000002 1.0000000000000000 +5.2500000000000000 1.0000000000000000 +5.2599999999999998 1.0000000000000000 +5.2700000000000005 1.0000000000000000 +5.2800000000000002 1.0000000000000000 +5.2900000000000000 1.0000000000000000 +5.2999999999999998 1.0000000000000000 +5.3100000000000005 1.0000000000000000 +5.3200000000000003 1.0000000000000000 +5.3300000000000001 1.0000000000000000 +5.3399999999999999 1.0000000000000000 +5.3500000000000005 1.0000000000000000 +5.3600000000000003 1.0000000000000000 +5.3700000000000001 1.0000000000000000 +5.3799999999999999 1.0000000000000000 +5.3899999999999997 1.0000000000000000 +5.4000000000000004 1.0000000000000000 +5.4100000000000001 1.0000000000000000 +5.4199999999999999 1.0000000000000000 +5.4299999999999997 1.0000000000000000 +5.4400000000000004 1.0000000000000000 +5.4500000000000002 1.0000000000000000 +5.4600000000000000 1.0000000000000000 +5.4699999999999998 1.0000000000000000 +5.4800000000000004 1.0000000000000000 +5.4900000000000002 1.0000000000000000 +5.5000000000000000 1.0000000000000000 +5.5099999999999998 1.0000000000000000 +5.5200000000000005 1.0000000000000000 +5.5300000000000002 1.0000000000000000 +5.5400000000000000 1.0000000000000000 +5.5499999999999998 1.0000000000000000 +5.5600000000000005 1.0000000000000000 +5.5700000000000003 1.0000000000000000 +5.5800000000000001 1.0000000000000000 +5.5899999999999999 1.0000000000000000 +5.6000000000000005 1.0000000000000000 +5.6100000000000003 1.0000000000000000 +5.6200000000000001 1.0000000000000000 +5.6299999999999999 1.0000000000000000 +5.6399999999999997 1.0000000000000000 +5.6500000000000004 1.0000000000000000 +5.6600000000000001 1.0000000000000000 +5.6699999999999999 1.0000000000000000 +5.6799999999999997 1.0000000000000000 +5.6900000000000004 1.0000000000000000 +5.7000000000000002 1.0000000000000000 +5.7100000000000000 1.0000000000000000 +5.7199999999999998 1.0000000000000000 +5.7300000000000004 1.0000000000000000 +5.7400000000000002 1.0000000000000000 +5.7500000000000000 1.0000000000000000 +5.7599999999999998 1.0000000000000000 +5.7700000000000005 1.0000000000000000 +5.7800000000000002 1.0000000000000000 +5.7900000000000000 1.0000000000000000 +5.7999999999999998 1.0000000000000000 +5.8100000000000005 1.0000000000000000 +5.8200000000000003 2.0000000000000000 +5.8300000000000001 2.0000000000000000 +5.8399999999999999 2.0000000000000000 +5.8500000000000005 2.0000000000000000 +5.8600000000000003 2.0000000000000000 +5.8700000000000001 2.0000000000000000 +5.8799999999999999 2.0000000000000000 +5.8899999999999997 2.0000000000000000 +5.9000000000000004 2.0000000000000000 +5.9100000000000001 2.0000000000000000 +5.9199999999999999 2.0000000000000000 +5.9299999999999997 2.0000000000000000 +5.9400000000000004 2.0000000000000000 +5.9500000000000002 2.0000000000000000 +5.9600000000000000 2.0000000000000000 +5.9699999999999998 2.0000000000000000 +5.9800000000000004 2.0000000000000000 +5.9900000000000002 2.0000000000000000 +6.0000000000000000 2.0000000000000000 +6.0099999999999998 2.0000000000000000 +6.0200000000000005 2.0000000000000000 +6.0300000000000002 2.0000000000000000 +6.0400000000000000 2.0000000000000000 +6.0499999999999998 2.0000000000000000 +6.0600000000000005 2.0000000000000000 +6.0700000000000003 2.0000000000000000 +6.0800000000000001 2.0000000000000000 +6.0899999999999999 2.0000000000000000 +6.1000000000000005 2.0000000000000000 +6.1100000000000003 2.0000000000000000 +6.1200000000000001 2.0000000000000000 +6.1299999999999999 2.0000000000000000 +6.1400000000000006 2.0000000000000000 +6.1500000000000004 2.0000000000000000 +6.1600000000000001 2.0000000000000000 +6.1699999999999999 2.0000000000000000 +6.1799999999999997 2.0000000000000000 +6.1900000000000004 2.0000000000000000 +6.2000000000000002 2.0000000000000000 +6.2100000000000000 2.0000000000000000 +6.2199999999999998 2.0000000000000000 +6.2300000000000004 2.0000000000000000 +6.2400000000000002 2.0000000000000000 +6.2500000000000000 2.0000000000000000 +6.2599999999999998 2.0000000000000000 +6.2700000000000005 2.0000000000000000 +6.2800000000000002 2.0000000000000000 +6.2900000000000000 2.0000000000000000 +6.2999999999999998 2.0000000000000000 +6.3100000000000005 2.0000000000000000 +6.3200000000000003 2.0000000000000000 +6.3300000000000001 2.0000000000000000 +6.3399999999999999 2.0000000000000000 +6.3500000000000005 2.0000000000000000 +6.3600000000000003 2.0000000000000000 +6.3700000000000001 2.0000000000000000 +6.3799999999999999 2.0000000000000000 +6.3900000000000006 2.0000000000000000 +6.4000000000000004 2.0000000000000000 +6.4100000000000001 2.0000000000000000 +6.4199999999999999 2.0000000000000000 +6.4299999999999997 2.0000000000000000 +6.4400000000000004 2.0000000000000000 +6.4500000000000002 2.0000000000000000 +6.4600000000000000 2.0000000000000000 +6.4699999999999998 2.0000000000000000 +6.4800000000000004 2.0000000000000000 +6.4900000000000002 2.0000000000000000 +6.5000000000000000 2.0000000000000000 +6.5099999999999998 2.0000000000000000 +6.5200000000000005 2.0000000000000000 +6.5300000000000002 2.0000000000000000 +6.5400000000000000 2.0000000000000000 +6.5499999999999998 2.0000000000000000 +6.5600000000000005 2.0000000000000000 +6.5700000000000003 2.0000000000000000 +6.5800000000000001 2.0000000000000000 +6.5899999999999999 2.0000000000000000 +6.6000000000000005 2.0000000000000000 +6.6100000000000003 2.0000000000000000 +6.6200000000000001 2.0000000000000000 +6.6299999999999999 2.0000000000000000 +6.6400000000000006 2.0000000000000000 +6.6500000000000004 2.0000000000000000 +6.6600000000000001 2.0000000000000000 +6.6699999999999999 2.0000000000000000 +6.6799999999999997 2.0000000000000000 +6.6900000000000004 2.0000000000000000 +6.7000000000000002 2.0000000000000000 +6.7100000000000000 2.0000000000000000 +6.7199999999999998 2.0000000000000000 +6.7300000000000004 2.0000000000000000 +6.7400000000000002 2.0000000000000000 +6.7500000000000000 2.0000000000000000 +6.7599999999999998 2.0000000000000000 +6.7700000000000005 2.0000000000000000 +6.7800000000000002 2.0000000000000000 +6.7900000000000000 2.0000000000000000 +6.7999999999999998 2.0000000000000000 +6.8100000000000005 2.0000000000000000 +6.8200000000000003 2.0000000000000000 +6.8300000000000001 2.0000000000000000 +6.8399999999999999 2.0000000000000000 +6.8500000000000005 2.0000000000000000 +6.8600000000000003 2.0000000000000000 +6.8700000000000001 2.0000000000000000 +6.8799999999999999 2.0000000000000000 +6.8900000000000006 2.0000000000000000 +6.9000000000000004 2.0000000000000000 +6.9100000000000001 2.0000000000000000 +6.9199999999999999 2.0000000000000000 +6.9299999999999997 2.0000000000000000 +6.9400000000000004 2.0000000000000000 +6.9500000000000002 2.0000000000000000 +6.9600000000000000 2.0000000000000000 +6.9699999999999998 2.0000000000000000 +6.9800000000000004 2.0000000000000000 +6.9900000000000002 2.0000000000000000 +7.0000000000000000 2.0000000000000000 +7.0099999999999998 2.0000000000000000 +7.0200000000000005 2.0000000000000000 +7.0300000000000002 2.0000000000000000 +7.0400000000000000 2.0000000000000000 +7.0499999999999998 2.0000000000000000 +7.0600000000000005 2.0000000000000000 +7.0700000000000003 2.0000000000000000 +7.0800000000000001 2.0000000000000000 +7.0899999999999999 2.0000000000000000 +7.1000000000000005 2.0000000000000000 +7.1100000000000003 2.0000000000000000 +7.1200000000000001 2.0000000000000000 +7.1299999999999999 2.0000000000000000 +7.1400000000000006 2.0000000000000000 +7.1500000000000004 2.0000000000000000 +7.1600000000000001 2.0000000000000000 +7.1699999999999999 2.0000000000000000 +7.1799999999999997 2.0000000000000000 +7.1900000000000004 2.0000000000000000 +7.2000000000000002 2.0000000000000000 +7.2100000000000000 2.0000000000000000 +7.2199999999999998 2.0000000000000000 +7.2300000000000004 2.0000000000000000 +7.2400000000000002 2.0000000000000000 +7.2500000000000000 2.0000000000000000 +7.2599999999999998 2.0000000000000000 +7.2700000000000005 2.0000000000000000 +7.2800000000000002 2.0000000000000000 +7.2900000000000000 2.0000000000000000 +7.2999999999999998 2.0000000000000000 +7.3100000000000005 2.0000000000000000 +7.3200000000000003 2.0000000000000000 +7.3300000000000001 2.0000000000000000 +7.3399999999999999 2.0000000000000000 +7.3500000000000005 2.0000000000000000 +7.3600000000000003 2.0000000000000000 +7.3700000000000001 2.0000000000000000 +7.3799999999999999 2.0000000000000000 +7.3900000000000006 2.0000000000000000 +7.4000000000000004 2.0000000000000000 +7.4100000000000001 2.0000000000000000 +7.4199999999999999 2.0000000000000000 +7.4299999999999997 2.0000000000000000 +7.4400000000000004 2.0000000000000000 +7.4500000000000002 2.0000000000000000 +7.4600000000000000 2.0000000000000000 +7.4699999999999998 2.0000000000000000 +7.4800000000000004 2.0000000000000000 +7.4900000000000002 2.0000000000000000 +7.5000000000000000 2.0000000000000000 +7.5099999999999998 2.0000000000000000 +7.5200000000000005 2.0000000000000000 +7.5300000000000002 2.0000000000000000 +7.5400000000000000 2.0000000000000000 +7.5499999999999998 2.0000000000000000 +7.5600000000000005 2.0000000000000000 +7.5700000000000003 2.0000000000000000 +7.5800000000000001 2.0000000000000000 +7.5899999999999999 2.0000000000000000 +7.6000000000000005 2.0000000000000000 +7.6100000000000003 2.0000000000000000 +7.6200000000000001 2.0000000000000000 +7.6299999999999999 2.0000000000000000 +7.6400000000000006 2.0000000000000000 +7.6500000000000004 2.0000000000000000 +7.6600000000000001 2.0000000000000000 +7.6699999999999999 2.0000000000000000 +7.6799999999999997 2.0000000000000000 +7.6900000000000004 2.0000000000000000 +7.7000000000000002 2.0000000000000000 +7.7100000000000000 2.0000000000000000 +7.7199999999999998 2.0000000000000000 +7.7300000000000004 2.0000000000000000 +7.7400000000000002 2.0000000000000000 +7.7500000000000000 2.0000000000000000 +7.7599999999999998 2.0000000000000000 +7.7700000000000005 2.0000000000000000 +7.7800000000000002 2.0000000000000000 +7.7900000000000000 2.0000000000000000 +7.7999999999999998 2.0000000000000000 +7.8100000000000005 2.0000000000000000 +7.8200000000000003 2.0000000000000000 +7.8300000000000001 2.0000000000000000 +7.8399999999999999 2.0000000000000000 +7.8500000000000005 2.0000000000000000 +7.8600000000000003 2.0000000000000000 +7.8700000000000001 2.0000000000000000 +7.8799999999999999 2.0000000000000000 +7.8900000000000006 2.0000000000000000 +7.9000000000000004 2.0000000000000000 +7.9100000000000001 2.0000000000000000 +7.9199999999999999 2.0000000000000000 +7.9300000000000006 2.0000000000000000 +7.9400000000000004 2.0000000000000000 +7.9500000000000002 2.0000000000000000 +7.9600000000000000 2.0000000000000000 +7.9699999999999998 2.0000000000000000 +7.9800000000000004 2.0000000000000000 +7.9900000000000002 2.0000000000000000 +8.0000000000000000 2.0000000000000000 +8.0099999999999998 2.0000000000000000 +8.0199999999999996 2.0000000000000000 +8.0299999999999994 2.0000000000000000 +8.0400000000000009 2.0000000000000000 +8.0500000000000007 2.0000000000000000 +8.0600000000000005 2.0000000000000000 +8.0700000000000003 2.0000000000000000 +8.0800000000000001 2.0000000000000000 +8.0899999999999999 2.0000000000000000 +8.0999999999999996 2.0000000000000000 +8.1099999999999994 2.0000000000000000 +8.1200000000000010 2.0000000000000000 +8.1300000000000008 2.0000000000000000 +8.1400000000000006 2.0000000000000000 +8.1500000000000004 2.0000000000000000 +8.1600000000000001 2.0000000000000000 +8.1699999999999999 2.0000000000000000 +8.1799999999999997 2.0000000000000000 +8.1899999999999995 2.0000000000000000 +8.1999999999999993 2.0000000000000000 +8.2100000000000009 2.0000000000000000 +8.2200000000000006 2.0000000000000000 +8.2300000000000004 2.0000000000000000 +8.2400000000000002 2.0000000000000000 +8.2500000000000000 2.0000000000000000 +8.2599999999999998 2.0000000000000000 +8.2699999999999996 2.0000000000000000 +8.2799999999999994 2.0000000000000000 +8.2900000000000009 2.0000000000000000 +8.3000000000000007 2.0000000000000000 +8.3100000000000005 2.0000000000000000 +8.3200000000000003 2.0000000000000000 +8.3300000000000001 2.0000000000000000 +8.3399999999999999 2.0000000000000000 +8.3499999999999996 2.0000000000000000 +8.3599999999999994 2.0000000000000000 +8.3700000000000010 2.0000000000000000 +8.3800000000000008 2.0000000000000000 +8.3900000000000006 2.0000000000000000 +8.4000000000000004 2.0000000000000000 +8.4100000000000001 2.0000000000000000 +8.4199999999999999 2.0000000000000000 +8.4299999999999997 2.0000000000000000 +8.4399999999999995 2.0000000000000000 +8.4499999999999993 2.0000000000000000 +8.4600000000000009 2.0000000000000000 +8.4700000000000006 2.0000000000000000 +8.4800000000000004 2.0000000000000000 +8.4900000000000002 2.0000000000000000 +8.5000000000000000 2.0000000000000000 +8.5099999999999998 2.0000000000000000 +8.5199999999999996 2.0000000000000000 +8.5299999999999994 2.0000000000000000 +8.5400000000000009 2.0000000000000000 +8.5500000000000007 2.0000000000000000 +8.5600000000000005 2.0000000000000000 +8.5700000000000003 2.0000000000000000 +8.5800000000000001 2.0000000000000000 +8.5899999999999999 2.0000000000000000 +8.5999999999999996 2.0000000000000000 +8.6099999999999994 2.0000000000000000 +8.6200000000000010 2.0000000000000000 +8.6300000000000008 2.0000000000000000 +8.6400000000000006 2.0000000000000000 +8.6500000000000004 2.0000000000000000 +8.6600000000000001 2.0000000000000000 +8.6699999999999999 2.0000000000000000 +8.6799999999999997 2.0000000000000000 +8.6899999999999995 2.0000000000000000 +8.7000000000000011 2.0000000000000000 +8.7100000000000009 2.0000000000000000 +8.7200000000000006 2.0000000000000000 +8.7300000000000004 2.0000000000000000 +8.7400000000000002 2.0000000000000000 +8.7500000000000000 2.0000000000000000 +8.7599999999999998 2.0000000000000000 +8.7699999999999996 2.0000000000000000 +8.7799999999999994 2.0000000000000000 +8.7900000000000009 2.0000000000000000 +8.8000000000000007 2.0000000000000000 +8.8100000000000005 2.0000000000000000 +8.8200000000000003 2.0000000000000000 +8.8300000000000001 2.0000000000000000 +8.8399999999999999 2.0000000000000000 +8.8499999999999996 2.0000000000000000 +8.8599999999999994 2.0000000000000000 +8.8700000000000010 2.0000000000000000 +8.8800000000000008 2.0000000000000000 +8.8900000000000006 2.0000000000000000 +8.9000000000000004 2.0000000000000000 +8.9100000000000001 2.0000000000000000 +8.9199999999999999 2.0000000000000000 +8.9299999999999997 2.0000000000000000 +8.9399999999999995 2.0000000000000000 +8.9500000000000011 2.0000000000000000 +8.9600000000000009 2.0000000000000000 +8.9700000000000006 2.0000000000000000 +8.9800000000000004 2.0000000000000000 +8.9900000000000002 2.0000000000000000 +9.0000000000000000 2.0000000000000000 +9.0099999999999998 2.0000000000000000 +9.0199999999999996 2.0000000000000000 +9.0299999999999994 2.0000000000000000 +9.0400000000000009 2.0000000000000000 +9.0500000000000007 2.0000000000000000 +9.0600000000000005 2.0000000000000000 +9.0700000000000003 2.0000000000000000 +9.0800000000000001 2.0000000000000000 +9.0899999999999999 2.0000000000000000 +9.0999999999999996 2.0000000000000000 +9.1099999999999994 2.0000000000000000 +9.1200000000000010 2.0000000000000000 +9.1300000000000008 2.0000000000000000 +9.1400000000000006 2.0000000000000000 +9.1500000000000004 2.0000000000000000 +9.1600000000000001 2.0000000000000000 +9.1699999999999999 2.0000000000000000 +9.1799999999999997 2.0000000000000000 +9.1899999999999995 2.0000000000000000 +9.2000000000000011 2.0000000000000000 +9.2100000000000009 2.0000000000000000 +9.2200000000000006 2.0000000000000000 +9.2300000000000004 2.0000000000000000 +9.2400000000000002 2.0000000000000000 +9.2500000000000000 2.0000000000000000 +9.2599999999999998 2.0000000000000000 +9.2699999999999996 2.0000000000000000 +9.2799999999999994 2.0000000000000000 +9.2900000000000009 2.0000000000000000 +9.3000000000000007 2.0000000000000000 +9.3100000000000005 2.0000000000000000 +9.3200000000000003 2.0000000000000000 +9.3300000000000001 2.0000000000000000 +9.3399999999999999 2.0000000000000000 +9.3499999999999996 2.0000000000000000 +9.3599999999999994 2.0000000000000000 +9.3700000000000010 2.0000000000000000 +9.3800000000000008 2.0000000000000000 +9.3900000000000006 2.0000000000000000 +9.4000000000000004 2.0000000000000000 +9.4100000000000001 2.0000000000000000 +9.4199999999999999 2.0000000000000000 +9.4299999999999997 2.0000000000000000 +9.4399999999999995 2.0000000000000000 +9.4500000000000011 2.0000000000000000 +9.4600000000000009 2.0000000000000000 +9.4700000000000006 2.0000000000000000 +9.4800000000000004 2.0000000000000000 +9.4900000000000002 2.0000000000000000 +9.5000000000000000 2.0000000000000000 +9.5099999999999998 2.0000000000000000 +9.5199999999999996 2.0000000000000000 +9.5299999999999994 2.0000000000000000 +9.5400000000000009 2.0000000000000000 +9.5500000000000007 2.0000000000000000 +9.5600000000000005 2.0000000000000000 +9.5700000000000003 2.0000000000000000 +9.5800000000000001 2.0000000000000000 +9.5899999999999999 2.0000000000000000 +9.5999999999999996 2.0000000000000000 +9.6099999999999994 2.0000000000000000 +9.6200000000000010 2.0000000000000000 +9.6300000000000008 2.0000000000000000 +9.6400000000000006 2.0000000000000000 +9.6500000000000004 2.0000000000000000 +9.6600000000000001 2.0000000000000000 +9.6699999999999999 2.0000000000000000 +9.6799999999999997 2.0000000000000000 +9.6899999999999995 2.0000000000000000 +9.7000000000000011 2.0000000000000000 +9.7100000000000009 2.0000000000000000 +9.7200000000000006 2.0000000000000000 +9.7300000000000004 2.0000000000000000 +9.7400000000000002 2.0000000000000000 +9.7500000000000000 2.0000000000000000 +9.7599999999999998 2.0000000000000000 +9.7699999999999996 2.0000000000000000 +9.7799999999999994 2.0000000000000000 +9.7900000000000009 2.0000000000000000 +9.8000000000000007 2.0000000000000000 +9.8100000000000005 2.0000000000000000 +9.8200000000000003 2.0000000000000000 +9.8300000000000001 2.0000000000000000 +9.8399999999999999 2.0000000000000000 +9.8499999999999996 2.0000000000000000 +9.8599999999999994 2.0000000000000000 +9.8700000000000010 2.0000000000000000 +9.8800000000000008 2.0000000000000000 +9.8900000000000006 2.0000000000000000 +9.9000000000000004 2.0000000000000000 +9.9100000000000001 2.0000000000000000 +9.9199999999999999 2.0000000000000000 +9.9299999999999997 2.0000000000000000 +9.9399999999999995 2.0000000000000000 +9.9500000000000011 2.0000000000000000 +9.9600000000000009 2.0000000000000000 +9.9700000000000006 2.0000000000000000 +9.9800000000000004 2.0000000000000000 +9.9900000000000002 2.0000000000000000 +10.0000000000000000 2.0000000000000000 +10.0099999999999998 2.0000000000000000 +10.0199999999999996 2.0000000000000000 +10.0299999999999994 2.0000000000000000 +10.0400000000000009 2.0000000000000000 +10.0500000000000007 2.0000000000000000 +10.0600000000000005 2.0000000000000000 +10.0700000000000003 2.0000000000000000 +10.0800000000000001 2.0000000000000000 +10.0899999999999999 2.0000000000000000 +10.0999999999999996 2.0000000000000000 +10.1099999999999994 2.0000000000000000 +10.1200000000000010 2.0000000000000000 +10.1300000000000008 2.0000000000000000 +10.1400000000000006 2.0000000000000000 +10.1500000000000004 2.0000000000000000 +10.1600000000000001 2.0000000000000000 +10.1699999999999999 2.0000000000000000 +10.1799999999999997 2.0000000000000000 +10.1899999999999995 2.0000000000000000 +10.2000000000000011 2.0000000000000000 +10.2100000000000009 2.0000000000000000 +10.2200000000000006 2.0000000000000000 +10.2300000000000004 2.0000000000000000 +10.2400000000000002 2.0000000000000000 +10.2500000000000000 2.0000000000000000 +10.2599999999999998 2.0000000000000000 +10.2699999999999996 2.0000000000000000 +10.2799999999999994 2.0000000000000000 +10.2900000000000009 2.0000000000000000 +10.3000000000000007 2.0000000000000000 +10.3100000000000005 2.0000000000000000 +10.3200000000000003 2.0000000000000000 +10.3300000000000001 2.0000000000000000 +10.3399999999999999 2.0000000000000000 +10.3499999999999996 2.0000000000000000 +10.3599999999999994 2.0000000000000000 +10.3700000000000010 2.0000000000000000 +10.3800000000000008 2.0000000000000000 +10.3900000000000006 2.0000000000000000 +10.4000000000000004 2.0000000000000000 +10.4100000000000001 2.0000000000000000 +10.4199999999999999 2.0000000000000000 +10.4299999999999997 2.0000000000000000 +10.4399999999999995 2.0000000000000000 +10.4500000000000011 2.0000000000000000 +10.4600000000000009 2.0000000000000000 +10.4700000000000006 2.0000000000000000 +10.4800000000000004 2.0000000000000000 +10.4900000000000002 2.0000000000000000 +10.5000000000000000 2.0000000000000000 +10.5099999999999998 2.0000000000000000 +10.5199999999999996 2.0000000000000000 +10.5299999999999994 2.0000000000000000 +10.5400000000000009 2.0000000000000000 +10.5500000000000007 2.0000000000000000 +10.5600000000000005 2.0000000000000000 +10.5700000000000003 2.0000000000000000 +10.5800000000000001 2.0000000000000000 +10.5899999999999999 2.0000000000000000 +10.5999999999999996 2.0000000000000000 +10.6099999999999994 2.0000000000000000 +10.6200000000000010 2.0000000000000000 +10.6300000000000008 2.0000000000000000 +10.6400000000000006 2.0000000000000000 +10.6500000000000004 2.0000000000000000 +10.6600000000000001 2.0000000000000000 +10.6699999999999999 2.0000000000000000 +10.6799999999999997 2.0000000000000000 +10.6899999999999995 2.0000000000000000 +10.7000000000000011 2.0000000000000000 +10.7100000000000009 2.0000000000000000 +10.7200000000000006 2.0000000000000000 +10.7300000000000004 2.0000000000000000 +10.7400000000000002 2.0000000000000000 +10.7500000000000000 2.0000000000000000 +10.7599999999999998 2.0000000000000000 +10.7699999999999996 2.0000000000000000 +10.7799999999999994 2.0000000000000000 +10.7900000000000009 2.0000000000000000 +10.8000000000000007 2.0000000000000000 +10.8100000000000005 2.0000000000000000 +10.8200000000000003 2.0000000000000000 +10.8300000000000001 2.0000000000000000 +10.8399999999999999 2.0000000000000000 +10.8499999999999996 2.0000000000000000 +10.8599999999999994 2.0000000000000000 +10.8700000000000010 2.0000000000000000 +10.8800000000000008 2.0000000000000000 +10.8900000000000006 2.0000000000000000 +10.9000000000000004 2.0000000000000000 +10.9100000000000001 2.0000000000000000 +10.9199999999999999 2.0000000000000000 +10.9299999999999997 2.0000000000000000 +10.9399999999999995 2.0000000000000000 +10.9500000000000011 2.0000000000000000 +10.9600000000000009 2.0000000000000000 +10.9700000000000006 2.0000000000000000 +10.9800000000000004 2.0000000000000000 +10.9900000000000002 2.0000000000000000 +11.0000000000000000 2.0000000000000000 +11.0099999999999998 2.0000000000000000 +11.0199999999999996 2.0000000000000000 +11.0299999999999994 2.0000000000000000 +11.0400000000000009 2.0000000000000000 +11.0500000000000007 2.0000000000000000 +11.0600000000000005 2.0000000000000000 +11.0700000000000003 2.0000000000000000 +11.0800000000000001 2.0000000000000000 +11.0899999999999999 2.0000000000000000 +11.0999999999999996 2.0000000000000000 +11.1099999999999994 2.0000000000000000 +11.1200000000000010 2.0000000000000000 +11.1300000000000008 2.0000000000000000 +11.1400000000000006 2.0000000000000000 +11.1500000000000004 2.0000000000000000 +11.1600000000000001 2.0000000000000000 +11.1699999999999999 2.0000000000000000 +11.1799999999999997 2.0000000000000000 +11.1899999999999995 2.0000000000000000 +11.2000000000000011 2.0000000000000000 +11.2100000000000009 2.0000000000000000 +11.2200000000000006 2.0000000000000000 +11.2300000000000004 2.0000000000000000 +11.2400000000000002 2.0000000000000000 +11.2500000000000000 2.0000000000000000 +11.2599999999999998 2.0000000000000000 +11.2699999999999996 2.0000000000000000 +11.2799999999999994 2.0000000000000000 +11.2900000000000009 2.0000000000000000 +11.3000000000000007 2.0000000000000000 +11.3100000000000005 2.0000000000000000 +11.3200000000000003 2.0000000000000000 +11.3300000000000001 2.0000000000000000 +11.3399999999999999 2.0000000000000000 +11.3499999999999996 2.0000000000000000 +11.3599999999999994 2.0000000000000000 +11.3700000000000010 2.0000000000000000 +11.3800000000000008 2.0000000000000000 +11.3900000000000006 2.0000000000000000 +11.4000000000000004 2.0000000000000000 +11.4100000000000001 2.0000000000000000 +11.4199999999999999 2.0000000000000000 +11.4299999999999997 2.0000000000000000 +11.4399999999999995 2.0000000000000000 +11.4500000000000011 2.0000000000000000 +11.4600000000000009 2.0000000000000000 +11.4700000000000006 2.0000000000000000 +11.4800000000000004 2.0000000000000000 +11.4900000000000002 2.0000000000000000 +11.5000000000000000 2.0000000000000000 +11.5099999999999998 2.0000000000000000 +11.5199999999999996 2.0000000000000000 +11.5299999999999994 2.0000000000000000 +11.5400000000000009 2.0000000000000000 +11.5500000000000007 2.0000000000000000 +11.5600000000000005 2.0000000000000000 +11.5700000000000003 2.0000000000000000 +11.5800000000000001 2.0000000000000000 +11.5899999999999999 2.0000000000000000 +11.5999999999999996 2.0000000000000000 +11.6099999999999994 2.0000000000000000 +11.6200000000000010 2.0000000000000000 +11.6300000000000008 2.0000000000000000 +11.6400000000000006 2.0000000000000000 +11.6500000000000004 2.0000000000000000 +11.6600000000000001 2.0000000000000000 +11.6699999999999999 2.0000000000000000 +11.6799999999999997 2.0000000000000000 +11.6899999999999995 2.0000000000000000 +11.7000000000000011 2.0000000000000000 +11.7100000000000009 2.0000000000000000 +11.7200000000000006 2.0000000000000000 +11.7300000000000004 2.0000000000000000 +11.7400000000000002 2.0000000000000000 +11.7500000000000000 2.0000000000000000 +11.7599999999999998 2.0000000000000000 +11.7699999999999996 2.0000000000000000 +11.7799999999999994 2.0000000000000000 +11.7900000000000009 2.0000000000000000 +11.8000000000000007 2.0000000000000000 +11.8100000000000005 2.0000000000000000 +11.8200000000000003 2.0000000000000000 +11.8300000000000001 2.0000000000000000 +11.8399999999999999 2.0000000000000000 +11.8499999999999996 2.0000000000000000 +11.8599999999999994 2.0000000000000000 +11.8700000000000010 2.0000000000000000 +11.8800000000000008 2.0000000000000000 +11.8900000000000006 2.0000000000000000 +11.9000000000000004 2.0000000000000000 +11.9100000000000001 2.0000000000000000 +11.9199999999999999 2.0000000000000000 +11.9299999999999997 2.0000000000000000 +11.9399999999999995 2.0000000000000000 +11.9500000000000011 2.0000000000000000 +11.9600000000000009 2.0000000000000000 +11.9700000000000006 2.0000000000000000 +11.9800000000000004 2.0000000000000000 +11.9900000000000002 2.0000000000000000 +12.0000000000000000 2.0000000000000000 +12.0099999999999998 2.0000000000000000 +12.0199999999999996 2.0000000000000000 +12.0300000000000011 2.0000000000000000 +12.0400000000000009 2.0000000000000000 +12.0500000000000007 2.0000000000000000 +12.0600000000000005 2.0000000000000000 +12.0700000000000003 2.0000000000000000 +12.0800000000000001 2.0000000000000000 +12.0899999999999999 2.0000000000000000 +12.0999999999999996 2.0000000000000000 +12.1099999999999994 2.0000000000000000 +12.1200000000000010 2.0000000000000000 +12.1300000000000008 2.0000000000000000 +12.1400000000000006 2.0000000000000000 +12.1500000000000004 2.0000000000000000 +12.1600000000000001 2.0000000000000000 +12.1699999999999999 2.0000000000000000 +12.1799999999999997 2.0000000000000000 +12.1899999999999995 2.0000000000000000 +12.2000000000000011 2.0000000000000000 +12.2100000000000009 2.0000000000000000 +12.2200000000000006 2.0000000000000000 +12.2300000000000004 2.0000000000000000 +12.2400000000000002 2.0000000000000000 +12.2500000000000000 2.0000000000000000 +12.2599999999999998 2.0000000000000000 +12.2699999999999996 2.0000000000000000 +12.2800000000000011 2.0000000000000000 +12.2900000000000009 2.0000000000000000 +12.3000000000000007 2.0000000000000000 +12.3100000000000005 2.0000000000000000 +12.3200000000000003 2.0000000000000000 +12.3300000000000001 2.0000000000000000 +12.3399999999999999 2.0000000000000000 +12.3499999999999996 2.0000000000000000 +12.3599999999999994 2.0000000000000000 +12.3700000000000010 2.0000000000000000 +12.3800000000000008 2.0000000000000000 +12.3900000000000006 2.0000000000000000 +12.4000000000000004 2.0000000000000000 +12.4100000000000001 2.0000000000000000 +12.4199999999999999 2.0000000000000000 +12.4299999999999997 2.0000000000000000 +12.4399999999999995 2.0000000000000000 +12.4500000000000011 2.0000000000000000 +12.4600000000000009 2.0000000000000000 +12.4700000000000006 2.0000000000000000 +12.4800000000000004 2.0000000000000000 +12.4900000000000002 2.0000000000000000 +12.5000000000000000 2.0000000000000000 +12.5099999999999998 2.0000000000000000 +12.5199999999999996 2.0000000000000000 +12.5300000000000011 2.0000000000000000 +12.5400000000000009 2.0000000000000000 +12.5500000000000007 2.0000000000000000 +12.5600000000000005 2.0000000000000000 +12.5700000000000003 2.0000000000000000 +12.5800000000000001 2.0000000000000000 +12.5899999999999999 2.0000000000000000 +12.5999999999999996 2.0000000000000000 +12.6099999999999994 2.0000000000000000 +12.6200000000000010 2.0000000000000000 +12.6300000000000008 2.0000000000000000 +12.6400000000000006 2.0000000000000000 +12.6500000000000004 2.0000000000000000 +12.6600000000000001 2.0000000000000000 +12.6699999999999999 2.0000000000000000 +12.6799999999999997 2.0000000000000000 +12.6899999999999995 2.0000000000000000 +12.7000000000000011 2.0000000000000000 +12.7100000000000009 2.0000000000000000 +12.7200000000000006 2.0000000000000000 +12.7300000000000004 2.0000000000000000 +12.7400000000000002 2.0000000000000000 +12.7500000000000000 2.0000000000000000 +12.7599999999999998 2.0000000000000000 +12.7699999999999996 2.0000000000000000 +12.7800000000000011 2.0000000000000000 +12.7900000000000009 2.0000000000000000 +12.8000000000000007 2.0000000000000000 +12.8100000000000005 2.0000000000000000 +12.8200000000000003 2.0000000000000000 +12.8300000000000001 2.0000000000000000 +12.8399999999999999 2.0000000000000000 +12.8499999999999996 2.0000000000000000 +12.8599999999999994 2.0000000000000000 +12.8700000000000010 2.0000000000000000 +12.8800000000000008 2.0000000000000000 +12.8900000000000006 2.0000000000000000 +12.9000000000000004 2.0000000000000000 +12.9100000000000001 2.0000000000000000 +12.9199999999999999 2.0000000000000000 +12.9299999999999997 2.0000000000000000 +12.9399999999999995 2.0000000000000000 +12.9500000000000011 2.0000000000000000 +12.9600000000000009 2.0000000000000000 +12.9700000000000006 2.0000000000000000 +12.9800000000000004 2.0000000000000000 +12.9900000000000002 2.0000000000000000 +13.0000000000000000 2.0000000000000000 +13.0099999999999998 2.0000000000000000 +13.0199999999999996 2.0000000000000000 +13.0300000000000011 2.0000000000000000 +13.0400000000000009 2.0000000000000000 +13.0500000000000007 2.0000000000000000 +13.0600000000000005 2.0000000000000000 +13.0700000000000003 2.0000000000000000 +13.0800000000000001 2.0000000000000000 +13.0899999999999999 2.0000000000000000 +13.0999999999999996 2.0000000000000000 +13.1099999999999994 2.0000000000000000 +13.1200000000000010 2.0000000000000000 +13.1300000000000008 2.0000000000000000 +13.1400000000000006 2.0000000000000000 +13.1500000000000004 2.0000000000000000 +13.1600000000000001 2.0000000000000000 +13.1699999999999999 2.0000000000000000 +13.1799999999999997 2.0000000000000000 +13.1899999999999995 2.0000000000000000 +13.2000000000000011 2.0000000000000000 +13.2100000000000009 2.0000000000000000 +13.2200000000000006 2.0000000000000000 +13.2300000000000004 2.0000000000000000 +13.2400000000000002 2.0000000000000000 +13.2500000000000000 2.0000000000000000 +13.2599999999999998 2.0000000000000000 +13.2699999999999996 2.0000000000000000 +13.2800000000000011 2.0000000000000000 +13.2900000000000009 2.0000000000000000 +13.3000000000000007 2.0000000000000000 +13.3100000000000005 2.0000000000000000 +13.3200000000000003 2.0000000000000000 +13.3300000000000001 2.0000000000000000 +13.3399999999999999 2.0000000000000000 +13.3499999999999996 2.0000000000000000 +13.3599999999999994 2.0000000000000000 +13.3700000000000010 2.0000000000000000 +13.3800000000000008 2.0000000000000000 +13.3900000000000006 2.0000000000000000 +13.4000000000000004 2.0000000000000000 +13.4100000000000001 2.0000000000000000 +13.4199999999999999 2.0000000000000000 +13.4299999999999997 2.0000000000000000 +13.4399999999999995 2.0000000000000000 +13.4500000000000011 2.0000000000000000 +13.4600000000000009 2.0000000000000000 +13.4700000000000006 2.0000000000000000 +13.4800000000000004 2.0000000000000000 +13.4900000000000002 2.0000000000000000 +13.5000000000000000 2.0000000000000000 +13.5099999999999998 2.0000000000000000 +13.5199999999999996 2.0000000000000000 +13.5300000000000011 2.0000000000000000 +13.5400000000000009 2.0000000000000000 +13.5500000000000007 2.0000000000000000 +13.5600000000000005 2.0000000000000000 +13.5700000000000003 2.0000000000000000 +13.5800000000000001 2.0000000000000000 +13.5899999999999999 2.0000000000000000 +13.5999999999999996 2.0000000000000000 +13.6099999999999994 2.0000000000000000 +13.6200000000000010 2.0000000000000000 +13.6300000000000008 2.0000000000000000 +13.6400000000000006 2.0000000000000000 +13.6500000000000004 2.0000000000000000 +13.6600000000000001 2.0000000000000000 +13.6699999999999999 2.0000000000000000 +13.6799999999999997 2.0000000000000000 +13.6899999999999995 2.0000000000000000 +13.7000000000000011 2.0000000000000000 +13.7100000000000009 2.0000000000000000 +13.7200000000000006 2.0000000000000000 +13.7300000000000004 2.0000000000000000 +13.7400000000000002 2.0000000000000000 +13.7500000000000000 2.0000000000000000 +13.7599999999999998 2.0000000000000000 +13.7699999999999996 2.0000000000000000 +13.7800000000000011 1.0000000000000000 +13.7900000000000009 1.0000000000000000 +13.8000000000000007 1.0000000000000000 +13.8100000000000005 1.0000000000000000 +13.8200000000000003 1.0000000000000000 +13.8300000000000001 1.0000000000000000 +13.8399999999999999 1.0000000000000000 +13.8499999999999996 1.0000000000000000 +13.8599999999999994 1.0000000000000000 +13.8700000000000010 1.0000000000000000 +13.8800000000000008 1.0000000000000000 +13.8900000000000006 1.0000000000000000 +13.9000000000000004 1.0000000000000000 +13.9100000000000001 1.0000000000000000 +13.9199999999999999 1.0000000000000000 +13.9299999999999997 1.0000000000000000 +13.9399999999999995 1.0000000000000000 +13.9500000000000011 1.0000000000000000 +13.9600000000000009 1.0000000000000000 +13.9700000000000006 1.0000000000000000 +13.9800000000000004 1.0000000000000000 +13.9900000000000002 1.0000000000000000 +14.0000000000000000 1.0000000000000000 +14.0099999999999998 1.0000000000000000 +14.0199999999999996 1.0000000000000000 +14.0300000000000011 1.0000000000000000 +14.0400000000000009 1.0000000000000000 +14.0500000000000007 1.0000000000000000 +14.0600000000000005 1.0000000000000000 +14.0700000000000003 1.0000000000000000 +14.0800000000000001 1.0000000000000000 +14.0899999999999999 1.0000000000000000 +14.0999999999999996 1.0000000000000000 +14.1099999999999994 1.0000000000000000 +14.1200000000000010 1.0000000000000000 +14.1300000000000008 1.0000000000000000 +14.1400000000000006 1.0000000000000000 +14.1500000000000004 1.0000000000000000 +14.1600000000000001 1.0000000000000000 +14.1699999999999999 1.0000000000000000 +14.1799999999999997 1.0000000000000000 +14.1899999999999995 1.0000000000000000 +14.2000000000000011 1.0000000000000000 +14.2100000000000009 1.0000000000000000 +14.2200000000000006 1.0000000000000000 +14.2300000000000004 1.0000000000000000 +14.2400000000000002 1.0000000000000000 +14.2500000000000000 1.0000000000000000 +14.2599999999999998 1.0000000000000000 +14.2699999999999996 1.0000000000000000 +14.2800000000000011 1.0000000000000000 +14.2900000000000009 1.0000000000000000 +14.3000000000000007 1.0000000000000000 +14.3100000000000005 1.0000000000000000 +14.3200000000000003 1.0000000000000000 +14.3300000000000001 1.0000000000000000 +14.3399999999999999 1.0000000000000000 +14.3499999999999996 1.0000000000000000 +14.3599999999999994 1.0000000000000000 +14.3700000000000010 1.0000000000000000 +14.3800000000000008 1.0000000000000000 +14.3900000000000006 1.0000000000000000 +14.4000000000000004 1.0000000000000000 +14.4100000000000001 1.0000000000000000 +14.4199999999999999 1.0000000000000000 +14.4299999999999997 1.0000000000000000 +14.4399999999999995 1.0000000000000000 +14.4500000000000011 1.0000000000000000 +14.4600000000000009 1.0000000000000000 +14.4700000000000006 1.0000000000000000 +14.4800000000000004 1.0000000000000000 +14.4900000000000002 1.0000000000000000 +14.5000000000000000 1.0000000000000000 +14.5099999999999998 1.0000000000000000 +14.5199999999999996 1.0000000000000000 +14.5300000000000011 1.0000000000000000 +14.5400000000000009 1.0000000000000000 +14.5500000000000007 1.0000000000000000 +14.5600000000000005 1.0000000000000000 +14.5700000000000003 1.0000000000000000 +14.5800000000000001 1.0000000000000000 +14.5899999999999999 1.0000000000000000 +14.5999999999999996 1.0000000000000000 +14.6099999999999994 1.0000000000000000 +14.6200000000000010 1.0000000000000000 +14.6300000000000008 1.0000000000000000 +14.6400000000000006 1.0000000000000000 +14.6500000000000004 1.0000000000000000 +14.6600000000000001 1.0000000000000000 +14.6699999999999999 1.0000000000000000 +14.6799999999999997 1.0000000000000000 +14.6899999999999995 1.0000000000000000 +14.7000000000000011 1.0000000000000000 +14.7100000000000009 1.0000000000000000 +14.7200000000000006 1.0000000000000000 +14.7300000000000004 1.0000000000000000 +14.7400000000000002 1.0000000000000000 +14.7500000000000000 1.0000000000000000 +14.7599999999999998 1.0000000000000000 +14.7699999999999996 1.0000000000000000 +14.7800000000000011 1.0000000000000000 +14.7900000000000009 1.0000000000000000 +14.8000000000000007 1.0000000000000000 +14.8100000000000005 1.0000000000000000 +14.8200000000000003 1.0000000000000000 +14.8300000000000001 1.0000000000000000 +14.8399999999999999 1.0000000000000000 +14.8499999999999996 1.0000000000000000 +14.8599999999999994 1.0000000000000000 +14.8700000000000010 1.0000000000000000 +14.8800000000000008 1.0000000000000000 +14.8900000000000006 1.0000000000000000 +14.9000000000000004 1.0000000000000000 +14.9100000000000001 1.0000000000000000 +14.9199999999999999 1.0000000000000000 +14.9299999999999997 1.0000000000000000 +14.9399999999999995 1.0000000000000000 +14.9500000000000011 1.0000000000000000 +14.9600000000000009 1.0000000000000000 +14.9700000000000006 1.0000000000000000 +14.9800000000000004 1.0000000000000000 +14.9900000000000002 1.0000000000000000 +15.0000000000000000 1.0000000000000000 +15.0099999999999998 1.0000000000000000 +15.0199999999999996 1.0000000000000000 +15.0300000000000011 1.0000000000000000 +15.0400000000000009 1.0000000000000000 +15.0500000000000007 1.0000000000000000 +15.0600000000000005 1.0000000000000000 +15.0700000000000003 1.0000000000000000 +15.0800000000000001 1.0000000000000000 +15.0899999999999999 1.0000000000000000 +15.0999999999999996 1.0000000000000000 +15.1099999999999994 1.0000000000000000 +15.1200000000000010 1.0000000000000000 +15.1300000000000008 1.0000000000000000 +15.1400000000000006 1.0000000000000000 +15.1500000000000004 1.0000000000000000 +15.1600000000000001 1.0000000000000000 +15.1699999999999999 1.0000000000000000 +15.1799999999999997 1.0000000000000000 +15.1899999999999995 1.0000000000000000 +15.2000000000000011 1.0000000000000000 +15.2100000000000009 1.0000000000000000 +15.2200000000000006 1.0000000000000000 +15.2300000000000004 1.0000000000000000 +15.2400000000000002 1.0000000000000000 +15.2500000000000000 1.0000000000000000 +15.2599999999999998 1.0000000000000000 +15.2699999999999996 1.0000000000000000 +15.2800000000000011 1.0000000000000000 +15.2900000000000009 1.0000000000000000 +15.3000000000000007 1.0000000000000000 +15.3100000000000005 1.0000000000000000 +15.3200000000000003 1.0000000000000000 +15.3300000000000001 1.0000000000000000 +15.3399999999999999 1.0000000000000000 +15.3499999999999996 1.0000000000000000 +15.3599999999999994 1.0000000000000000 +15.3700000000000010 1.0000000000000000 +15.3800000000000008 1.0000000000000000 +15.3900000000000006 1.0000000000000000 +15.4000000000000004 1.0000000000000000 +15.4100000000000001 1.0000000000000000 +15.4199999999999999 1.0000000000000000 +15.4299999999999997 1.0000000000000000 +15.4399999999999995 1.0000000000000000 +15.4500000000000011 1.0000000000000000 +15.4600000000000009 1.0000000000000000 +15.4700000000000006 1.0000000000000000 +15.4800000000000004 1.0000000000000000 +15.4900000000000002 1.0000000000000000 +15.5000000000000000 1.0000000000000000 +15.5099999999999998 1.0000000000000000 +15.5199999999999996 1.0000000000000000 +15.5300000000000011 1.0000000000000000 +15.5400000000000009 1.0000000000000000 +15.5500000000000007 1.0000000000000000 +15.5600000000000005 1.0000000000000000 +15.5700000000000003 1.0000000000000000 +15.5800000000000001 1.0000000000000000 +15.5899999999999999 1.0000000000000000 +15.5999999999999996 1.0000000000000000 +15.6100000000000012 1.0000000000000000 +15.6200000000000010 1.0000000000000000 +15.6300000000000008 1.0000000000000000 +15.6400000000000006 1.0000000000000000 +15.6500000000000004 1.0000000000000000 +15.6600000000000001 1.0000000000000000 +15.6699999999999999 1.0000000000000000 +15.6799999999999997 1.0000000000000000 +15.6899999999999995 1.0000000000000000 +15.7000000000000011 1.0000000000000000 +15.7100000000000009 1.0000000000000000 +15.7200000000000006 1.0000000000000000 +15.7300000000000004 1.0000000000000000 +15.7400000000000002 1.0000000000000000 +15.7500000000000000 1.0000000000000000 +15.7599999999999998 1.0000000000000000 +15.7699999999999996 1.0000000000000000 +15.7800000000000011 1.0000000000000000 +15.7900000000000009 1.0000000000000000 +15.8000000000000007 1.0000000000000000 +15.8100000000000005 1.0000000000000000 +15.8200000000000003 0.0000000000000000 +15.8300000000000001 0.0000000000000000 +15.8399999999999999 0.0000000000000000 +15.8499999999999996 0.0000000000000000 +15.8600000000000012 0.0000000000000000 +15.8700000000000010 0.0000000000000000 +15.8800000000000008 0.0000000000000000 +15.8900000000000006 0.0000000000000000 +15.9000000000000004 0.0000000000000000 +15.9100000000000001 0.0000000000000000 +15.9199999999999999 0.0000000000000000 +15.9299999999999997 0.0000000000000000 +15.9399999999999995 0.0000000000000000 +15.9500000000000011 0.0000000000000000 +15.9600000000000009 0.0000000000000000 +15.9700000000000006 0.0000000000000000 +15.9800000000000004 0.0000000000000000 +15.9900000000000002 0.0000000000000000 +16.0000000000000000 0.0000000000000000 +16.0100000000000016 0.0000000000000000 +16.0199999999999996 0.0000000000000000 +16.0300000000000011 0.0000000000000000 +16.0399999999999991 0.0000000000000000 +16.0500000000000007 0.0000000000000000 +16.0599999999999987 0.0000000000000000 +16.0700000000000003 0.0000000000000000 +16.0800000000000018 0.0000000000000000 +16.0899999999999999 0.0000000000000000 +16.1000000000000014 0.0000000000000000 +16.1099999999999994 0.0000000000000000 +16.1200000000000010 0.0000000000000000 +16.1299999999999990 0.0000000000000000 +16.1400000000000006 0.0000000000000000 +16.1499999999999986 0.0000000000000000 +16.1600000000000001 0.0000000000000000 +16.1700000000000017 0.0000000000000000 +16.1799999999999997 0.0000000000000000 +16.1900000000000013 0.0000000000000000 +16.1999999999999993 0.0000000000000000 +16.2100000000000009 0.0000000000000000 +16.2199999999999989 0.0000000000000000 +16.2300000000000004 0.0000000000000000 +16.2400000000000020 0.0000000000000000 +16.2500000000000000 0.0000000000000000 +16.2600000000000016 0.0000000000000000 +16.2699999999999996 0.0000000000000000 +16.2800000000000011 0.0000000000000000 +16.2899999999999991 0.0000000000000000 +16.3000000000000007 0.0000000000000000 +16.3099999999999987 0.0000000000000000 +16.3200000000000003 0.0000000000000000 +16.3300000000000018 0.0000000000000000 +16.3399999999999999 0.0000000000000000 +16.3500000000000014 0.0000000000000000 +16.3599999999999994 0.0000000000000000 +16.3700000000000010 0.0000000000000000 +16.3799999999999990 0.0000000000000000 +16.3900000000000006 0.0000000000000000 +16.3999999999999986 0.0000000000000000 +16.4100000000000001 0.0000000000000000 +16.4200000000000017 0.0000000000000000 +16.4299999999999997 0.0000000000000000 +16.4400000000000013 0.0000000000000000 +16.4499999999999993 0.0000000000000000 +16.4600000000000009 0.0000000000000000 +16.4699999999999989 0.0000000000000000 +16.4800000000000004 0.0000000000000000 +16.4900000000000020 0.0000000000000000 +16.5000000000000000 0.0000000000000000 +16.5100000000000016 0.0000000000000000 +16.5199999999999996 0.0000000000000000 +16.5300000000000011 0.0000000000000000 +16.5399999999999991 0.0000000000000000 +16.5500000000000007 0.0000000000000000 +16.5599999999999987 0.0000000000000000 +16.5700000000000003 0.0000000000000000 +16.5800000000000018 0.0000000000000000 +16.5899999999999999 0.0000000000000000 +16.6000000000000014 0.0000000000000000 +16.6099999999999994 0.0000000000000000 +16.6200000000000010 0.0000000000000000 +16.6299999999999990 0.0000000000000000 +16.6400000000000006 0.0000000000000000 +16.6499999999999986 0.0000000000000000 +16.6600000000000001 0.0000000000000000 +16.6700000000000017 0.0000000000000000 +16.6799999999999997 0.0000000000000000 +16.6900000000000013 0.0000000000000000 +16.6999999999999993 0.0000000000000000 +16.7100000000000009 0.0000000000000000 +16.7199999999999989 0.0000000000000000 +16.7300000000000004 0.0000000000000000 +16.7400000000000020 0.0000000000000000 +16.7500000000000000 0.0000000000000000 +16.7600000000000016 0.0000000000000000 +16.7699999999999996 0.0000000000000000 +16.7800000000000011 0.0000000000000000 +16.7899999999999991 0.0000000000000000 +16.8000000000000007 0.0000000000000000 +16.8099999999999987 0.0000000000000000 +16.8200000000000003 0.0000000000000000 +16.8300000000000018 0.0000000000000000 +16.8399999999999999 0.0000000000000000 +16.8500000000000014 0.0000000000000000 +16.8599999999999994 0.0000000000000000 +16.8700000000000010 0.0000000000000000 +16.8799999999999990 0.0000000000000000 +16.8900000000000006 0.0000000000000000 +16.8999999999999986 0.0000000000000000 +16.9100000000000001 0.0000000000000000 +16.9200000000000017 0.0000000000000000 +16.9299999999999997 0.0000000000000000 +16.9400000000000013 0.0000000000000000 +16.9499999999999993 0.0000000000000000 +16.9600000000000009 0.0000000000000000 +16.9699999999999989 0.0000000000000000 +16.9800000000000004 0.0000000000000000 +16.9900000000000020 0.0000000000000000 +17.0000000000000000 0.0000000000000000 +17.0100000000000016 0.0000000000000000 +17.0199999999999996 0.0000000000000000 +17.0300000000000011 0.0000000000000000 +17.0399999999999991 0.0000000000000000 +17.0500000000000007 0.0000000000000000 +17.0599999999999987 0.0000000000000000 +17.0700000000000003 0.0000000000000000 +17.0800000000000018 0.0000000000000000 +17.0899999999999999 0.0000000000000000 +17.1000000000000014 0.0000000000000000 +17.1099999999999994 0.0000000000000000 +17.1200000000000010 0.0000000000000000 +17.1299999999999990 0.0000000000000000 +17.1400000000000006 0.0000000000000000 +17.1500000000000021 0.0000000000000000 +17.1600000000000001 0.0000000000000000 +17.1700000000000017 0.0000000000000000 +17.1799999999999997 0.0000000000000000 +17.1900000000000013 0.0000000000000000 +17.1999999999999993 0.0000000000000000 +17.2100000000000009 0.0000000000000000 +17.2199999999999989 0.0000000000000000 +17.2300000000000004 0.0000000000000000 +17.2400000000000020 0.0000000000000000 +17.2500000000000000 0.0000000000000000 +17.2600000000000016 0.0000000000000000 +17.2699999999999996 0.0000000000000000 +17.2800000000000011 0.0000000000000000 +17.2899999999999991 0.0000000000000000 +17.3000000000000007 0.0000000000000000 +17.3099999999999987 0.0000000000000000 +17.3200000000000003 0.0000000000000000 +17.3300000000000018 0.0000000000000000 +17.3399999999999999 0.0000000000000000 +17.3500000000000014 0.0000000000000000 +17.3599999999999994 0.0000000000000000 +17.3700000000000010 0.0000000000000000 +17.3799999999999990 0.0000000000000000 +17.3900000000000006 0.0000000000000000 +17.4000000000000021 0.0000000000000000 +17.4100000000000001 0.0000000000000000 +17.4200000000000017 0.0000000000000000 +17.4299999999999997 0.0000000000000000 +17.4400000000000013 0.0000000000000000 +17.4499999999999993 0.0000000000000000 +17.4600000000000009 0.0000000000000000 +17.4699999999999989 0.0000000000000000 +17.4800000000000004 0.0000000000000000 +17.4900000000000020 0.0000000000000000 +17.5000000000000000 0.0000000000000000 +17.5100000000000016 0.0000000000000000 +17.5199999999999996 0.0000000000000000 +17.5300000000000011 0.0000000000000000 +17.5399999999999991 0.0000000000000000 +17.5500000000000007 0.0000000000000000 +17.5599999999999987 0.0000000000000000 +17.5700000000000003 0.0000000000000000 +17.5800000000000018 0.0000000000000000 +17.5899999999999999 0.0000000000000000 +17.6000000000000014 0.0000000000000000 +17.6099999999999994 0.0000000000000000 +17.6200000000000010 0.0000000000000000 +17.6299999999999990 0.0000000000000000 +17.6400000000000006 0.0000000000000000 +17.6500000000000021 0.0000000000000000 +17.6600000000000001 0.0000000000000000 +17.6700000000000017 0.0000000000000000 +17.6799999999999997 0.0000000000000000 +17.6900000000000013 0.0000000000000000 +17.6999999999999993 0.0000000000000000 +17.7100000000000009 0.0000000000000000 +17.7199999999999989 0.0000000000000000 +17.7300000000000004 0.0000000000000000 +17.7400000000000020 0.0000000000000000 +17.7500000000000000 0.0000000000000000 +17.7600000000000016 0.0000000000000000 +17.7699999999999996 0.0000000000000000 +17.7800000000000011 0.0000000000000000 +17.7899999999999991 0.0000000000000000 +17.8000000000000007 0.0000000000000000 +17.8099999999999987 0.0000000000000000 +17.8200000000000003 0.0000000000000000 +17.8300000000000018 0.0000000000000000 +17.8399999999999999 0.0000000000000000 +17.8500000000000014 0.0000000000000000 +17.8599999999999994 0.0000000000000000 +17.8700000000000010 0.0000000000000000 +17.8799999999999990 0.0000000000000000 +17.8900000000000006 0.0000000000000000 +17.9000000000000021 0.0000000000000000 +17.9100000000000001 0.0000000000000000 +17.9200000000000017 0.0000000000000000 +17.9299999999999997 0.0000000000000000 +17.9400000000000013 0.0000000000000000 +17.9499999999999993 0.0000000000000000 +17.9600000000000009 0.0000000000000000 +17.9699999999999989 0.0000000000000000 +17.9800000000000004 0.0000000000000000 +17.9900000000000020 0.0000000000000000 +18.0000000000000000 0.0000000000000000 +18.0100000000000016 0.0000000000000000 +18.0199999999999996 0.0000000000000000 +18.0300000000000011 0.0000000000000000 +18.0399999999999991 0.0000000000000000 +18.0500000000000007 0.0000000000000000 +18.0599999999999987 0.0000000000000000 +18.0700000000000003 0.0000000000000000 +18.0800000000000018 0.0000000000000000 +18.0899999999999999 0.0000000000000000 +18.1000000000000014 0.0000000000000000 +18.1099999999999994 0.0000000000000000 +18.1200000000000010 0.0000000000000000 +18.1299999999999990 0.0000000000000000 +18.1400000000000006 0.0000000000000000 +18.1500000000000021 0.0000000000000000 +18.1600000000000001 0.0000000000000000 +18.1700000000000017 0.0000000000000000 +18.1799999999999997 0.0000000000000000 +18.1900000000000013 0.0000000000000000 +18.1999999999999993 0.0000000000000000 +18.2100000000000009 0.0000000000000000 +18.2199999999999989 0.0000000000000000 +18.2300000000000004 0.0000000000000000 +18.2400000000000020 0.0000000000000000 +18.2500000000000000 0.0000000000000000 +18.2600000000000016 0.0000000000000000 +18.2699999999999996 0.0000000000000000 +18.2800000000000011 0.0000000000000000 +18.2899999999999991 0.0000000000000000 +18.3000000000000007 0.0000000000000000 +18.3099999999999987 0.0000000000000000 +18.3200000000000003 0.0000000000000000 +18.3300000000000018 0.0000000000000000 +18.3399999999999999 0.0000000000000000 +18.3500000000000014 0.0000000000000000 +18.3599999999999994 0.0000000000000000 +18.3700000000000010 0.0000000000000000 +18.3799999999999990 0.0000000000000000 +18.3900000000000006 0.0000000000000000 +18.4000000000000021 0.0000000000000000 +18.4100000000000001 0.0000000000000000 +18.4200000000000017 0.0000000000000000 +18.4299999999999997 0.0000000000000000 +18.4400000000000013 0.0000000000000000 +18.4499999999999993 0.0000000000000000 +18.4600000000000009 0.0000000000000000 +18.4699999999999989 0.0000000000000000 +18.4800000000000004 0.0000000000000000 +18.4900000000000020 0.0000000000000000 +18.5000000000000000 0.0000000000000000 +18.5100000000000016 0.0000000000000000 +18.5199999999999996 0.0000000000000000 +18.5300000000000011 0.0000000000000000 +18.5399999999999991 0.0000000000000000 +18.5500000000000007 0.0000000000000000 +18.5599999999999987 0.0000000000000000 +18.5700000000000003 0.0000000000000000 +18.5800000000000018 0.0000000000000000 +18.5899999999999999 0.0000000000000000 +18.6000000000000014 0.0000000000000000 +18.6099999999999994 0.0000000000000000 +18.6200000000000010 0.0000000000000000 +18.6299999999999990 0.0000000000000000 +18.6400000000000006 0.0000000000000000 +18.6500000000000021 0.0000000000000000 +18.6600000000000001 0.0000000000000000 +18.6700000000000017 0.0000000000000000 +18.6799999999999997 0.0000000000000000 +18.6900000000000013 0.0000000000000000 +18.6999999999999993 0.0000000000000000 +18.7100000000000009 0.0000000000000000 +18.7199999999999989 0.0000000000000000 +18.7300000000000004 0.0000000000000000 +18.7400000000000020 0.0000000000000000 +18.7500000000000000 0.0000000000000000 +18.7600000000000016 0.0000000000000000 +18.7699999999999996 0.0000000000000000 +18.7800000000000011 0.0000000000000000 +18.7899999999999991 0.0000000000000000 +18.8000000000000007 0.0000000000000000 +18.8099999999999987 0.0000000000000000 +18.8200000000000003 0.0000000000000000 +18.8300000000000018 0.0000000000000000 +18.8399999999999999 0.0000000000000000 +18.8500000000000014 0.0000000000000000 +18.8599999999999994 0.0000000000000000 +18.8700000000000010 0.0000000000000000 +18.8799999999999990 0.0000000000000000 +18.8900000000000006 0.0000000000000000 +18.9000000000000021 0.0000000000000000 +18.9100000000000001 0.0000000000000000 +18.9200000000000017 0.0000000000000000 +18.9299999999999997 0.0000000000000000 +18.9400000000000013 0.0000000000000000 +18.9499999999999993 0.0000000000000000 +18.9600000000000009 0.0000000000000000 +18.9699999999999989 0.0000000000000000 +18.9800000000000004 0.0000000000000000 +18.9900000000000020 0.0000000000000000 +19.0000000000000000 0.0000000000000000 +19.0100000000000016 0.0000000000000000 +19.0199999999999996 0.0000000000000000 +19.0300000000000011 0.0000000000000000 +19.0399999999999991 0.0000000000000000 +19.0500000000000007 0.0000000000000000 +19.0599999999999987 0.0000000000000000 +19.0700000000000003 0.0000000000000000 +19.0800000000000018 0.0000000000000000 +19.0899999999999999 0.0000000000000000 +19.1000000000000014 0.0000000000000000 +19.1099999999999994 0.0000000000000000 +19.1200000000000010 0.0000000000000000 +19.1299999999999990 0.0000000000000000 +19.1400000000000006 0.0000000000000000 +19.1500000000000021 0.0000000000000000 +19.1600000000000001 0.0000000000000000 +19.1700000000000017 0.0000000000000000 +19.1799999999999997 0.0000000000000000 +19.1900000000000013 0.0000000000000000 +19.1999999999999993 0.0000000000000000 +19.2100000000000009 0.0000000000000000 +19.2199999999999989 0.0000000000000000 +19.2300000000000004 0.0000000000000000 +19.2400000000000020 0.0000000000000000 +19.2500000000000000 0.0000000000000000 +19.2600000000000016 0.0000000000000000 +19.2699999999999996 0.0000000000000000 +19.2800000000000011 0.0000000000000000 +19.2899999999999991 0.0000000000000000 +19.3000000000000007 0.0000000000000000 +19.3099999999999987 0.0000000000000000 +19.3200000000000003 0.0000000000000000 +19.3300000000000018 0.0000000000000000 +19.3399999999999999 0.0000000000000000 +19.3500000000000014 0.0000000000000000 +19.3599999999999994 0.0000000000000000 +19.3700000000000010 0.0000000000000000 +19.3799999999999990 0.0000000000000000 +19.3900000000000006 0.0000000000000000 +19.4000000000000021 0.0000000000000000 +19.4100000000000001 0.0000000000000000 +19.4200000000000017 0.0000000000000000 +19.4299999999999997 0.0000000000000000 +19.4400000000000013 0.0000000000000000 +19.4499999999999993 0.0000000000000000 +19.4600000000000009 0.0000000000000000 +19.4699999999999989 0.0000000000000000 +19.4800000000000004 0.0000000000000000 +19.4900000000000020 0.0000000000000000 +19.5000000000000000 0.0000000000000000 +19.5100000000000016 0.0000000000000000 +19.5199999999999996 0.0000000000000000 +19.5300000000000011 0.0000000000000000 +19.5399999999999991 0.0000000000000000 +19.5500000000000007 0.0000000000000000 +19.5599999999999987 0.0000000000000000 +19.5700000000000003 0.0000000000000000 +19.5800000000000018 0.0000000000000000 +19.5899999999999999 0.0000000000000000 +19.6000000000000014 0.0000000000000000 +19.6099999999999994 0.0000000000000000 +19.6200000000000010 0.0000000000000000 +19.6299999999999990 0.0000000000000000 +19.6400000000000006 0.0000000000000000 +19.6500000000000021 0.0000000000000000 +19.6600000000000001 0.0000000000000000 +19.6700000000000017 0.0000000000000000 +19.6799999999999997 0.0000000000000000 +19.6900000000000013 0.0000000000000000 +19.6999999999999993 0.0000000000000000 +19.7100000000000009 0.0000000000000000 +19.7199999999999989 0.0000000000000000 +19.7300000000000004 0.0000000000000000 +19.7400000000000020 0.0000000000000000 +19.7500000000000000 0.0000000000000000 +19.7600000000000016 0.0000000000000000 +19.7699999999999996 0.0000000000000000 +19.7800000000000011 0.0000000000000000 +19.7899999999999991 0.0000000000000000 +19.8000000000000007 0.0000000000000000 +19.8099999999999987 0.0000000000000000 +19.8200000000000003 0.0000000000000000 +19.8300000000000018 0.0000000000000000 +19.8399999999999999 0.0000000000000000 +19.8500000000000014 0.0000000000000000 +19.8599999999999994 0.0000000000000000 +19.8700000000000010 0.0000000000000000 +19.8799999999999990 0.0000000000000000 +19.8900000000000006 0.0000000000000000 +19.9000000000000021 0.0000000000000000 +19.9100000000000001 0.0000000000000000 +19.9200000000000017 0.0000000000000000 +19.9299999999999997 0.0000000000000000 +19.9400000000000013 0.0000000000000000 +19.9499999999999993 0.0000000000000000 +19.9600000000000009 0.0000000000000000 +19.9699999999999989 0.0000000000000000 +19.9800000000000004 0.0000000000000000 +19.9900000000000020 0.0000000000000000 +20.0000000000000000 0.0000000000000000 +20.0100000000000016 0.0000000000000000 +20.0199999999999996 0.0000000000000000 +20.0300000000000011 0.0000000000000000 +20.0399999999999991 0.0000000000000000 +20.0500000000000007 0.0000000000000000 +20.0599999999999987 0.0000000000000000 +20.0700000000000003 0.0000000000000000 +20.0800000000000018 0.0000000000000000 +20.0899999999999999 0.0000000000000000 +20.1000000000000014 0.0000000000000000 +20.1099999999999994 0.0000000000000000 +20.1200000000000010 0.0000000000000000 +20.1299999999999990 0.0000000000000000 +20.1400000000000006 0.0000000000000000 +20.1500000000000021 0.0000000000000000 +20.1600000000000001 0.0000000000000000 +20.1700000000000017 0.0000000000000000 +20.1799999999999997 0.0000000000000000 +20.1900000000000013 0.0000000000000000 +20.1999999999999993 0.0000000000000000 +20.2100000000000009 0.0000000000000000 +20.2199999999999989 0.0000000000000000 +20.2300000000000004 0.0000000000000000 +20.2400000000000020 0.0000000000000000 +20.2500000000000000 0.0000000000000000 +20.2600000000000016 0.0000000000000000 +20.2699999999999996 0.0000000000000000 +20.2800000000000011 0.0000000000000000 +20.2899999999999991 0.0000000000000000 +20.3000000000000007 0.0000000000000000 +20.3099999999999987 0.0000000000000000 +20.3200000000000003 0.0000000000000000 +20.3300000000000018 0.0000000000000000 +20.3399999999999999 0.0000000000000000 +20.3500000000000014 0.0000000000000000 +20.3599999999999994 0.0000000000000000 +20.3700000000000010 0.0000000000000000 +20.3799999999999990 0.0000000000000000 +20.3900000000000006 0.0000000000000000 +20.4000000000000021 0.0000000000000000 +20.4100000000000001 0.0000000000000000 +20.4200000000000017 0.0000000000000000 +20.4299999999999997 0.0000000000000000 +20.4400000000000013 0.0000000000000000 +20.4499999999999993 0.0000000000000000 +20.4600000000000009 0.0000000000000000 +20.4699999999999989 0.0000000000000000 +20.4800000000000004 0.0000000000000000 +20.4900000000000020 0.0000000000000000 +20.5000000000000000 0.0000000000000000 +20.5100000000000016 0.0000000000000000 +20.5199999999999996 0.0000000000000000 +20.5300000000000011 0.0000000000000000 +20.5399999999999991 0.0000000000000000 +20.5500000000000007 0.0000000000000000 +20.5599999999999987 0.0000000000000000 +20.5700000000000003 0.0000000000000000 +20.5800000000000018 0.0000000000000000 +20.5899999999999999 0.0000000000000000 +20.6000000000000014 0.0000000000000000 +20.6099999999999994 0.0000000000000000 +20.6200000000000010 0.0000000000000000 +20.6299999999999990 0.0000000000000000 +20.6400000000000006 0.0000000000000000 +20.6500000000000021 0.0000000000000000 +20.6600000000000001 0.0000000000000000 +20.6700000000000017 0.0000000000000000 +20.6799999999999997 0.0000000000000000 +20.6900000000000013 0.0000000000000000 +20.6999999999999993 0.0000000000000000 +20.7100000000000009 0.0000000000000000 +20.7199999999999989 0.0000000000000000 +20.7300000000000004 0.0000000000000000 +20.7400000000000020 0.0000000000000000 +20.7500000000000000 0.0000000000000000 +20.7600000000000016 0.0000000000000000 +20.7699999999999996 0.0000000000000000 +20.7800000000000011 0.0000000000000000 +20.7899999999999991 0.0000000000000000 +20.8000000000000007 0.0000000000000000 +20.8099999999999987 0.0000000000000000 +20.8200000000000003 0.0000000000000000 +20.8300000000000018 0.0000000000000000 +20.8399999999999999 0.0000000000000000 +20.8500000000000014 0.0000000000000000 +20.8599999999999994 0.0000000000000000 +20.8700000000000010 0.0000000000000000 +20.8799999999999990 0.0000000000000000 +20.8900000000000006 0.0000000000000000 +20.9000000000000021 0.0000000000000000 +20.9100000000000001 0.0000000000000000 +20.9200000000000017 0.0000000000000000 +20.9299999999999997 0.0000000000000000 +20.9400000000000013 0.0000000000000000 +20.9499999999999993 0.0000000000000000 +20.9600000000000009 0.0000000000000000 +20.9699999999999989 0.0000000000000000 +20.9800000000000004 0.0000000000000000 +20.9900000000000020 0.0000000000000000 +21.0000000000000000 0.0000000000000000 +21.0100000000000016 0.0000000000000000 +21.0199999999999996 0.0000000000000000 +21.0300000000000011 0.0000000000000000 +21.0399999999999991 0.0000000000000000 +21.0500000000000007 0.0000000000000000 +21.0599999999999987 0.0000000000000000 +21.0700000000000003 0.0000000000000000 +21.0800000000000018 0.0000000000000000 +21.0899999999999999 0.0000000000000000 +21.1000000000000014 0.0000000000000000 +21.1099999999999994 0.0000000000000000 +21.1200000000000010 0.0000000000000000 +21.1299999999999990 0.0000000000000000 +21.1400000000000006 0.0000000000000000 +21.1500000000000021 0.0000000000000000 +21.1600000000000001 0.0000000000000000 +21.1700000000000017 0.0000000000000000 +21.1799999999999997 0.0000000000000000 +21.1900000000000013 0.0000000000000000 +21.1999999999999993 0.0000000000000000 +21.2100000000000009 0.0000000000000000 +21.2199999999999989 0.0000000000000000 +21.2300000000000004 0.0000000000000000 +21.2400000000000020 0.0000000000000000 +21.2500000000000000 0.0000000000000000 +21.2600000000000016 0.0000000000000000 +21.2699999999999996 0.0000000000000000 +21.2800000000000011 0.0000000000000000 +21.2899999999999991 0.0000000000000000 +21.3000000000000007 0.0000000000000000 +21.3099999999999987 0.0000000000000000 +21.3200000000000003 0.0000000000000000 +21.3300000000000018 0.0000000000000000 +21.3399999999999999 0.0000000000000000 +21.3500000000000014 0.0000000000000000 +21.3599999999999994 0.0000000000000000 +21.3700000000000010 0.0000000000000000 +21.3799999999999990 0.0000000000000000 +21.3900000000000006 0.0000000000000000 +21.4000000000000021 0.0000000000000000 +21.4100000000000001 0.0000000000000000 +21.4200000000000017 0.0000000000000000 +21.4299999999999997 0.0000000000000000 +21.4400000000000013 0.0000000000000000 +21.4499999999999993 0.0000000000000000 +21.4600000000000009 0.0000000000000000 +21.4699999999999989 0.0000000000000000 +21.4800000000000004 0.0000000000000000 +21.4900000000000020 0.0000000000000000 +21.5000000000000000 0.0000000000000000 +21.5100000000000016 0.0000000000000000 +21.5199999999999996 0.0000000000000000 +21.5300000000000011 0.0000000000000000 +21.5399999999999991 0.0000000000000000 +21.5500000000000007 0.0000000000000000 +21.5599999999999987 0.0000000000000000 +21.5700000000000003 0.0000000000000000 +21.5800000000000018 0.0000000000000000 +21.5899999999999999 0.0000000000000000 +21.6000000000000014 0.0000000000000000 +21.6099999999999994 0.0000000000000000 +21.6200000000000010 0.0000000000000000 +21.6299999999999990 0.0000000000000000 +21.6400000000000006 0.0000000000000000 +21.6500000000000021 0.0000000000000000 +21.6600000000000001 0.0000000000000000 +21.6700000000000017 0.0000000000000000 +21.6799999999999997 0.0000000000000000 +21.6900000000000013 0.0000000000000000 +21.6999999999999993 0.0000000000000000 +21.7100000000000009 0.0000000000000000 +21.7199999999999989 0.0000000000000000 +21.7300000000000004 0.0000000000000000 +21.7400000000000020 0.0000000000000000 +21.7500000000000000 0.0000000000000000 +21.7600000000000016 0.0000000000000000 +21.7699999999999996 0.0000000000000000 +21.7800000000000011 0.0000000000000000 +21.7899999999999991 0.0000000000000000 +21.8000000000000007 0.0000000000000000 +21.8099999999999987 0.0000000000000000 +21.8200000000000003 0.0000000000000000 +21.8300000000000018 0.0000000000000000 +21.8399999999999999 0.0000000000000000 +21.8500000000000014 0.0000000000000000 +21.8599999999999994 0.0000000000000000 +21.8700000000000010 0.0000000000000000 +21.8799999999999990 0.0000000000000000 +21.8900000000000006 0.0000000000000000 +21.9000000000000021 0.0000000000000000 +21.9100000000000001 0.0000000000000000 +21.9200000000000017 0.0000000000000000 +21.9299999999999997 0.0000000000000000 +21.9400000000000013 0.0000000000000000 +21.9499999999999993 0.0000000000000000 +21.9600000000000009 0.0000000000000000 +21.9699999999999989 0.0000000000000000 +21.9800000000000004 0.0000000000000000 +21.9900000000000020 0.0000000000000000 +22.0000000000000000 0.0000000000000000 +22.0100000000000016 0.0000000000000000 +22.0199999999999996 0.0000000000000000 +22.0300000000000011 0.0000000000000000 +22.0399999999999991 0.0000000000000000 +22.0500000000000007 0.0000000000000000 +22.0599999999999987 0.0000000000000000 +22.0700000000000003 0.0000000000000000 +22.0800000000000018 0.0000000000000000 +22.0899999999999999 0.0000000000000000 +22.1000000000000014 0.0000000000000000 +22.1099999999999994 0.0000000000000000 +22.1200000000000010 0.0000000000000000 +22.1299999999999990 0.0000000000000000 +22.1400000000000006 0.0000000000000000 +22.1500000000000021 0.0000000000000000 +22.1600000000000001 0.0000000000000000 +22.1700000000000017 0.0000000000000000 +22.1799999999999997 0.0000000000000000 +22.1900000000000013 0.0000000000000000 +22.1999999999999993 0.0000000000000000 +22.2100000000000009 0.0000000000000000 +22.2199999999999989 0.0000000000000000 +22.2300000000000004 0.0000000000000000 +22.2400000000000020 0.0000000000000000 +22.2500000000000000 0.0000000000000000 +22.2600000000000016 0.0000000000000000 +22.2699999999999996 0.0000000000000000 +22.2800000000000011 0.0000000000000000 +22.2899999999999991 0.0000000000000000 +22.3000000000000007 0.0000000000000000 +22.3099999999999987 0.0000000000000000 +22.3200000000000003 0.0000000000000000 +22.3300000000000018 0.0000000000000000 +22.3399999999999999 0.0000000000000000 +22.3500000000000014 0.0000000000000000 +22.3599999999999994 0.0000000000000000 +22.3700000000000010 0.0000000000000000 +22.3799999999999990 0.0000000000000000 +22.3900000000000006 0.0000000000000000 +22.4000000000000021 0.0000000000000000 +22.4100000000000001 0.0000000000000000 +22.4200000000000017 0.0000000000000000 +22.4299999999999997 0.0000000000000000 +22.4400000000000013 0.0000000000000000 +22.4499999999999993 0.0000000000000000 +22.4600000000000009 0.0000000000000000 +22.4699999999999989 0.0000000000000000 +22.4800000000000004 0.0000000000000000 +22.4900000000000020 0.0000000000000000 +22.5000000000000000 0.0000000000000000 +22.5100000000000016 0.0000000000000000 +22.5199999999999996 0.0000000000000000 +22.5300000000000011 0.0000000000000000 +22.5399999999999991 0.0000000000000000 +22.5500000000000007 0.0000000000000000 +22.5599999999999987 0.0000000000000000 +22.5700000000000003 0.0000000000000000 +22.5800000000000018 0.0000000000000000 +22.5899999999999999 0.0000000000000000 +22.6000000000000014 0.0000000000000000 +22.6099999999999994 0.0000000000000000 +22.6200000000000010 0.0000000000000000 +22.6299999999999990 0.0000000000000000 +22.6400000000000006 0.0000000000000000 +22.6500000000000021 0.0000000000000000 +22.6600000000000001 0.0000000000000000 +22.6700000000000017 0.0000000000000000 +22.6799999999999997 0.0000000000000000 +22.6900000000000013 0.0000000000000000 +22.6999999999999993 0.0000000000000000 +22.7100000000000009 0.0000000000000000 +22.7199999999999989 0.0000000000000000 +22.7300000000000004 0.0000000000000000 +22.7400000000000020 0.0000000000000000 +22.7500000000000000 0.0000000000000000 +22.7600000000000016 0.0000000000000000 +22.7699999999999996 0.0000000000000000 +22.7800000000000011 0.0000000000000000 +22.7899999999999991 0.0000000000000000 +22.8000000000000007 0.0000000000000000 +22.8099999999999987 0.0000000000000000 +22.8200000000000003 0.0000000000000000 +22.8300000000000018 0.0000000000000000 +22.8399999999999999 0.0000000000000000 +22.8500000000000014 0.0000000000000000 +22.8599999999999994 0.0000000000000000 +22.8700000000000010 0.0000000000000000 +22.8799999999999990 0.0000000000000000 +22.8900000000000006 0.0000000000000000 +22.9000000000000021 0.0000000000000000 +22.9100000000000001 0.0000000000000000 +22.9200000000000017 0.0000000000000000 +22.9299999999999997 0.0000000000000000 +22.9400000000000013 0.0000000000000000 +22.9499999999999993 0.0000000000000000 +22.9600000000000009 0.0000000000000000 +22.9699999999999989 0.0000000000000000 +22.9800000000000004 0.0000000000000000 +22.9900000000000020 0.0000000000000000 +23.0000000000000000 0.0000000000000000 +23.0100000000000016 0.0000000000000000 +23.0199999999999996 0.0000000000000000 +23.0300000000000011 0.0000000000000000 +23.0399999999999991 0.0000000000000000 +23.0500000000000007 0.0000000000000000 +23.0599999999999987 0.0000000000000000 +23.0700000000000003 0.0000000000000000 +23.0800000000000018 0.0000000000000000 +23.0899999999999999 0.0000000000000000 +23.1000000000000014 0.0000000000000000 +23.1099999999999994 0.0000000000000000 +23.1200000000000010 0.0000000000000000 +23.1299999999999990 0.0000000000000000 +23.1400000000000006 0.0000000000000000 +23.1500000000000021 0.0000000000000000 +23.1600000000000001 0.0000000000000000 +23.1700000000000017 0.0000000000000000 +23.1799999999999997 0.0000000000000000 +23.1900000000000013 0.0000000000000000 +23.1999999999999993 0.0000000000000000 +23.2100000000000009 0.0000000000000000 +23.2199999999999989 0.0000000000000000 +23.2300000000000004 0.0000000000000000 +23.2400000000000020 0.0000000000000000 +23.2500000000000000 0.0000000000000000 +23.2600000000000016 0.0000000000000000 +23.2699999999999996 0.0000000000000000 +23.2800000000000011 0.0000000000000000 +23.2899999999999991 0.0000000000000000 +23.3000000000000007 0.0000000000000000 +23.3099999999999987 0.0000000000000000 +23.3200000000000003 0.0000000000000000 +23.3300000000000018 0.0000000000000000 +23.3399999999999999 0.0000000000000000 +23.3500000000000014 0.0000000000000000 +23.3599999999999994 0.0000000000000000 +23.3700000000000010 0.0000000000000000 +23.3799999999999990 0.0000000000000000 +23.3900000000000006 0.0000000000000000 +23.4000000000000021 0.0000000000000000 +23.4100000000000001 0.0000000000000000 +23.4200000000000017 0.0000000000000000 +23.4299999999999997 0.0000000000000000 +23.4400000000000013 0.0000000000000000 +23.4499999999999993 0.0000000000000000 +23.4600000000000009 0.0000000000000000 +23.4699999999999989 0.0000000000000000 +23.4800000000000004 0.0000000000000000 +23.4900000000000020 0.0000000000000000 +23.5000000000000000 0.0000000000000000 +23.5100000000000016 0.0000000000000000 +23.5199999999999996 0.0000000000000000 +23.5300000000000011 0.0000000000000000 +23.5399999999999991 0.0000000000000000 +23.5500000000000007 0.0000000000000000 +23.5599999999999987 0.0000000000000000 +23.5700000000000003 0.0000000000000000 +23.5800000000000018 0.0000000000000000 +23.5899999999999999 0.0000000000000000 +23.6000000000000014 0.0000000000000000 +23.6099999999999994 0.0000000000000000 +23.6200000000000010 0.0000000000000000 +23.6299999999999990 0.0000000000000000 +23.6400000000000006 0.0000000000000000 +23.6500000000000021 0.0000000000000000 +23.6600000000000001 0.0000000000000000 +23.6700000000000017 0.0000000000000000 +23.6799999999999997 0.0000000000000000 +23.6900000000000013 0.0000000000000000 +23.6999999999999993 0.0000000000000000 +23.7100000000000009 0.0000000000000000 +23.7199999999999989 0.0000000000000000 +23.7300000000000004 0.0000000000000000 +23.7400000000000020 0.0000000000000000 +23.7500000000000000 0.0000000000000000 +23.7600000000000016 0.0000000000000000 +23.7699999999999996 0.0000000000000000 +23.7800000000000011 0.0000000000000000 +23.7899999999999991 0.0000000000000000 +23.8000000000000007 0.0000000000000000 +23.8099999999999987 0.0000000000000000 +23.8200000000000003 0.0000000000000000 +23.8300000000000018 0.0000000000000000 +23.8399999999999999 0.0000000000000000 +23.8500000000000014 0.0000000000000000 +23.8599999999999994 0.0000000000000000 +23.8700000000000010 0.0000000000000000 +23.8799999999999990 0.0000000000000000 +23.8900000000000006 0.0000000000000000 +23.9000000000000021 0.0000000000000000 +23.9100000000000001 0.0000000000000000 +23.9200000000000017 0.0000000000000000 +23.9299999999999997 0.0000000000000000 +23.9400000000000013 0.0000000000000000 +23.9499999999999993 0.0000000000000000 +23.9600000000000009 0.0000000000000000 +23.9699999999999989 0.0000000000000000 +23.9800000000000004 0.0000000000000000 +23.9900000000000020 0.0000000000000000 +24.0000000000000000 0.0000000000000000 +24.0100000000000016 0.0000000000000000 +24.0199999999999996 0.0000000000000000 +24.0300000000000011 0.0000000000000000 +24.0399999999999991 0.0000000000000000 +24.0500000000000007 0.0000000000000000 +24.0600000000000023 0.0000000000000000 +24.0700000000000003 0.0000000000000000 +24.0800000000000018 0.0000000000000000 +24.0899999999999999 0.0000000000000000 +24.1000000000000014 0.0000000000000000 +24.1099999999999994 0.0000000000000000 +24.1200000000000010 0.0000000000000000 +24.1299999999999990 0.0000000000000000 +24.1400000000000006 0.0000000000000000 +24.1500000000000021 0.0000000000000000 +24.1600000000000001 0.0000000000000000 +24.1700000000000017 0.0000000000000000 +24.1799999999999997 0.0000000000000000 +24.1900000000000013 0.0000000000000000 +24.1999999999999993 0.0000000000000000 +24.2100000000000009 0.0000000000000000 +24.2199999999999989 0.0000000000000000 +24.2300000000000004 0.0000000000000000 +24.2400000000000020 0.0000000000000000 +24.2500000000000000 0.0000000000000000 +24.2600000000000016 0.0000000000000000 +24.2699999999999996 0.0000000000000000 +24.2800000000000011 0.0000000000000000 +24.2899999999999991 0.0000000000000000 +24.3000000000000007 0.0000000000000000 +24.3100000000000023 0.0000000000000000 +24.3200000000000003 0.0000000000000000 +24.3300000000000018 0.0000000000000000 +24.3399999999999999 0.0000000000000000 +24.3500000000000014 0.0000000000000000 +24.3599999999999994 0.0000000000000000 +24.3700000000000010 0.0000000000000000 +24.3799999999999990 0.0000000000000000 +24.3900000000000006 0.0000000000000000 +24.4000000000000021 0.0000000000000000 +24.4100000000000001 0.0000000000000000 +24.4200000000000017 0.0000000000000000 +24.4299999999999997 0.0000000000000000 +24.4400000000000013 0.0000000000000000 +24.4499999999999993 0.0000000000000000 +24.4600000000000009 0.0000000000000000 +24.4699999999999989 0.0000000000000000 +24.4800000000000004 0.0000000000000000 +24.4900000000000020 0.0000000000000000 +24.5000000000000000 0.0000000000000000 +24.5100000000000016 0.0000000000000000 +24.5199999999999996 0.0000000000000000 +24.5300000000000011 0.0000000000000000 +24.5399999999999991 0.0000000000000000 +24.5500000000000007 0.0000000000000000 +24.5600000000000023 0.0000000000000000 +24.5700000000000003 0.0000000000000000 +24.5800000000000018 0.0000000000000000 +24.5899999999999999 0.0000000000000000 +24.6000000000000014 0.0000000000000000 +24.6099999999999994 0.0000000000000000 +24.6200000000000010 0.0000000000000000 +24.6299999999999990 0.0000000000000000 +24.6400000000000006 0.0000000000000000 +24.6500000000000021 0.0000000000000000 +24.6600000000000001 0.0000000000000000 +24.6700000000000017 0.0000000000000000 +24.6799999999999997 0.0000000000000000 +24.6900000000000013 0.0000000000000000 +24.6999999999999993 0.0000000000000000 +24.7100000000000009 0.0000000000000000 +24.7199999999999989 0.0000000000000000 +24.7300000000000004 0.0000000000000000 +24.7400000000000020 0.0000000000000000 +24.7500000000000000 0.0000000000000000 +24.7600000000000016 0.0000000000000000 +24.7699999999999996 0.0000000000000000 +24.7800000000000011 0.0000000000000000 +24.7899999999999991 0.0000000000000000 +24.8000000000000007 0.0000000000000000 +24.8100000000000023 0.0000000000000000 +24.8200000000000003 0.0000000000000000 +24.8300000000000018 0.0000000000000000 +24.8399999999999999 0.0000000000000000 +24.8500000000000014 0.0000000000000000 +24.8599999999999994 0.0000000000000000 +24.8700000000000010 0.0000000000000000 +24.8799999999999990 0.0000000000000000 +24.8900000000000006 0.0000000000000000 +24.9000000000000021 0.0000000000000000 +24.9100000000000001 0.0000000000000000 +24.9200000000000017 0.0000000000000000 +24.9299999999999997 0.0000000000000000 +24.9400000000000013 0.0000000000000000 +24.9499999999999993 0.0000000000000000 +24.9600000000000009 0.0000000000000000 +24.9699999999999989 0.0000000000000000 +24.9800000000000004 0.0000000000000000 +24.9900000000000020 0.0000000000000000 +25.0000000000000000 0.0000000000000000 +25.0100000000000016 0.0000000000000000 +25.0199999999999996 0.0000000000000000 +25.0300000000000011 0.0000000000000000 +25.0399999999999991 0.0000000000000000 +25.0500000000000007 0.0000000000000000 +25.0600000000000023 0.0000000000000000 +25.0700000000000003 0.0000000000000000 +25.0800000000000018 0.0000000000000000 +25.0899999999999999 0.0000000000000000 +25.1000000000000014 0.0000000000000000 +25.1099999999999994 0.0000000000000000 +25.1200000000000010 0.0000000000000000 +25.1299999999999990 0.0000000000000000 +25.1400000000000006 0.0000000000000000 +25.1500000000000021 0.0000000000000000 +25.1600000000000001 0.0000000000000000 +25.1700000000000017 0.0000000000000000 +25.1799999999999997 0.0000000000000000 +25.1900000000000013 0.0000000000000000 +25.1999999999999993 0.0000000000000000 +25.2100000000000009 0.0000000000000000 +25.2199999999999989 0.0000000000000000 +25.2300000000000004 0.0000000000000000 +25.2400000000000020 0.0000000000000000 +25.2500000000000000 0.0000000000000000 +25.2600000000000016 0.0000000000000000 +25.2699999999999996 0.0000000000000000 +25.2800000000000011 0.0000000000000000 +25.2899999999999991 0.0000000000000000 +25.3000000000000007 0.0000000000000000 +25.3100000000000023 0.0000000000000000 +25.3200000000000003 0.0000000000000000 +25.3300000000000018 0.0000000000000000 +25.3399999999999999 0.0000000000000000 +25.3500000000000014 0.0000000000000000 +25.3599999999999994 0.0000000000000000 +25.3700000000000010 0.0000000000000000 +25.3799999999999990 0.0000000000000000 +25.3900000000000006 0.0000000000000000 +25.4000000000000021 0.0000000000000000 +25.4100000000000001 0.0000000000000000 +25.4200000000000017 0.0000000000000000 +25.4299999999999997 0.0000000000000000 +25.4400000000000013 0.0000000000000000 +25.4499999999999993 0.0000000000000000 +25.4600000000000009 0.0000000000000000 +25.4699999999999989 0.0000000000000000 +25.4800000000000004 0.0000000000000000 +25.4900000000000020 0.0000000000000000 +25.5000000000000000 0.0000000000000000 +25.5100000000000016 0.0000000000000000 +25.5199999999999996 0.0000000000000000 +25.5300000000000011 0.0000000000000000 +25.5399999999999991 0.0000000000000000 +25.5500000000000007 0.0000000000000000 +25.5600000000000023 0.0000000000000000 +25.5700000000000003 0.0000000000000000 +25.5800000000000018 0.0000000000000000 +25.5899999999999999 0.0000000000000000 +25.6000000000000014 0.0000000000000000 +25.6099999999999994 0.0000000000000000 +25.6200000000000010 0.0000000000000000 +25.6299999999999990 0.0000000000000000 +25.6400000000000006 0.0000000000000000 +25.6500000000000021 0.0000000000000000 +25.6600000000000001 0.0000000000000000 +25.6700000000000017 0.0000000000000000 +25.6799999999999997 0.0000000000000000 +25.6900000000000013 0.0000000000000000 +25.6999999999999993 0.0000000000000000 +25.7100000000000009 0.0000000000000000 +25.7199999999999989 0.0000000000000000 +25.7300000000000004 0.0000000000000000 +25.7400000000000020 0.0000000000000000 +25.7500000000000000 0.0000000000000000 +25.7600000000000016 0.0000000000000000 +25.7699999999999996 0.0000000000000000 +25.7800000000000011 0.0000000000000000 +25.7899999999999991 0.0000000000000000 +25.8000000000000007 0.0000000000000000 +25.8100000000000023 0.0000000000000000 +25.8200000000000003 0.0000000000000000 +25.8300000000000018 0.0000000000000000 +25.8399999999999999 0.0000000000000000 +25.8500000000000014 0.0000000000000000 +25.8599999999999994 0.0000000000000000 +25.8700000000000010 0.0000000000000000 +25.8799999999999990 0.0000000000000000 +25.8900000000000006 0.0000000000000000 +25.9000000000000021 0.0000000000000000 +25.9100000000000001 0.0000000000000000 +25.9200000000000017 0.0000000000000000 +25.9299999999999997 0.0000000000000000 +25.9400000000000013 0.0000000000000000 +25.9499999999999993 0.0000000000000000 +25.9600000000000009 0.0000000000000000 +25.9699999999999989 0.0000000000000000 +25.9800000000000004 0.0000000000000000 +25.9900000000000020 0.0000000000000000 +26.0000000000000000 0.0000000000000000 +26.0100000000000016 0.0000000000000000 +26.0199999999999996 0.0000000000000000 +26.0300000000000011 0.0000000000000000 +26.0399999999999991 0.0000000000000000 +26.0500000000000007 0.0000000000000000 +26.0600000000000023 0.0000000000000000 +26.0700000000000003 0.0000000000000000 +26.0800000000000018 0.0000000000000000 +26.0899999999999999 0.0000000000000000 +26.1000000000000014 0.0000000000000000 +26.1099999999999994 0.0000000000000000 +26.1200000000000010 0.0000000000000000 +26.1299999999999990 0.0000000000000000 +26.1400000000000006 0.0000000000000000 +26.1500000000000021 0.0000000000000000 +26.1600000000000001 0.0000000000000000 +26.1700000000000017 0.0000000000000000 +26.1799999999999997 0.0000000000000000 +26.1900000000000013 0.0000000000000000 +26.1999999999999993 0.0000000000000000 +26.2100000000000009 0.0000000000000000 +26.2199999999999989 0.0000000000000000 +26.2300000000000004 0.0000000000000000 +26.2400000000000020 0.0000000000000000 +26.2500000000000000 0.0000000000000000 +26.2600000000000016 0.0000000000000000 +26.2699999999999996 0.0000000000000000 +26.2800000000000011 0.0000000000000000 +26.2899999999999991 0.0000000000000000 +26.3000000000000007 0.0000000000000000 +26.3100000000000023 0.0000000000000000 +26.3200000000000003 0.0000000000000000 +26.3300000000000018 0.0000000000000000 +26.3399999999999999 0.0000000000000000 +26.3500000000000014 0.0000000000000000 +26.3599999999999994 0.0000000000000000 +26.3700000000000010 0.0000000000000000 +26.3799999999999990 0.0000000000000000 +26.3900000000000006 0.0000000000000000 +26.4000000000000021 0.0000000000000000 +26.4100000000000001 0.0000000000000000 +26.4200000000000017 0.0000000000000000 +26.4299999999999997 0.0000000000000000 +26.4400000000000013 0.0000000000000000 +26.4499999999999993 0.0000000000000000 +26.4600000000000009 0.0000000000000000 +26.4699999999999989 0.0000000000000000 +26.4800000000000004 0.0000000000000000 +26.4900000000000020 0.0000000000000000 +26.5000000000000000 0.0000000000000000 +26.5100000000000016 0.0000000000000000 +26.5199999999999996 0.0000000000000000 +26.5300000000000011 0.0000000000000000 +26.5399999999999991 0.0000000000000000 +26.5500000000000007 0.0000000000000000 +26.5600000000000023 0.0000000000000000 +26.5700000000000003 0.0000000000000000 +26.5800000000000018 0.0000000000000000 +26.5899999999999999 0.0000000000000000 +26.6000000000000014 0.0000000000000000 +26.6099999999999994 0.0000000000000000 +26.6200000000000010 0.0000000000000000 +26.6299999999999990 0.0000000000000000 +26.6400000000000006 0.0000000000000000 +26.6500000000000021 0.0000000000000000 +26.6600000000000001 0.0000000000000000 +26.6700000000000017 0.0000000000000000 +26.6799999999999997 0.0000000000000000 +26.6900000000000013 0.0000000000000000 +26.6999999999999993 0.0000000000000000 +26.7100000000000009 0.0000000000000000 +26.7199999999999989 0.0000000000000000 +26.7300000000000004 0.0000000000000000 +26.7400000000000020 0.0000000000000000 +26.7500000000000000 0.0000000000000000 +26.7600000000000016 0.0000000000000000 +26.7699999999999996 0.0000000000000000 +26.7800000000000011 0.0000000000000000 +26.7899999999999991 0.0000000000000000 +26.8000000000000007 0.0000000000000000 +26.8100000000000023 0.0000000000000000 +26.8200000000000003 0.0000000000000000 +26.8300000000000018 0.0000000000000000 +26.8399999999999999 0.0000000000000000 +26.8500000000000014 0.0000000000000000 +26.8599999999999994 0.0000000000000000 +26.8700000000000010 0.0000000000000000 +26.8799999999999990 0.0000000000000000 +26.8900000000000006 0.0000000000000000 +26.9000000000000021 0.0000000000000000 +26.9100000000000001 0.0000000000000000 +26.9200000000000017 0.0000000000000000 +26.9299999999999997 0.0000000000000000 +26.9400000000000013 0.0000000000000000 +26.9499999999999993 0.0000000000000000 +26.9600000000000009 0.0000000000000000 +26.9699999999999989 0.0000000000000000 +26.9800000000000004 0.0000000000000000 +26.9900000000000020 0.0000000000000000 +27.0000000000000000 0.0000000000000000 +27.0100000000000016 0.0000000000000000 +27.0199999999999996 0.0000000000000000 +27.0300000000000011 0.0000000000000000 +27.0399999999999991 0.0000000000000000 +27.0500000000000007 0.0000000000000000 +27.0600000000000023 0.0000000000000000 +27.0700000000000003 0.0000000000000000 +27.0800000000000018 0.0000000000000000 +27.0899999999999999 0.0000000000000000 +27.1000000000000014 0.0000000000000000 +27.1099999999999994 0.0000000000000000 +27.1200000000000010 0.0000000000000000 +27.1299999999999990 0.0000000000000000 +27.1400000000000006 0.0000000000000000 +27.1500000000000021 0.0000000000000000 +27.1600000000000001 0.0000000000000000 +27.1700000000000017 0.0000000000000000 +27.1799999999999997 0.0000000000000000 +27.1900000000000013 0.0000000000000000 +27.1999999999999993 0.0000000000000000 +27.2100000000000009 0.0000000000000000 +27.2199999999999989 0.0000000000000000 +27.2300000000000004 0.0000000000000000 +27.2400000000000020 0.0000000000000000 +27.2500000000000000 0.0000000000000000 +27.2600000000000016 0.0000000000000000 +27.2699999999999996 0.0000000000000000 +27.2800000000000011 0.0000000000000000 +27.2899999999999991 0.0000000000000000 +27.3000000000000007 0.0000000000000000 +27.3100000000000023 0.0000000000000000 +27.3200000000000003 0.0000000000000000 +27.3300000000000018 0.0000000000000000 +27.3399999999999999 0.0000000000000000 +27.3500000000000014 0.0000000000000000 +27.3599999999999994 0.0000000000000000 +27.3700000000000010 0.0000000000000000 +27.3799999999999990 0.0000000000000000 +27.3900000000000006 0.0000000000000000 +27.4000000000000021 0.0000000000000000 +27.4100000000000001 0.0000000000000000 +27.4200000000000017 0.0000000000000000 +27.4299999999999997 0.0000000000000000 +27.4400000000000013 0.0000000000000000 +27.4499999999999993 0.0000000000000000 +27.4600000000000009 0.0000000000000000 +27.4699999999999989 0.0000000000000000 +27.4800000000000004 0.0000000000000000 +27.4900000000000020 0.0000000000000000 +27.5000000000000000 0.0000000000000000 +27.5100000000000016 0.0000000000000000 +27.5199999999999996 0.0000000000000000 +27.5300000000000011 0.0000000000000000 +27.5399999999999991 0.0000000000000000 +27.5500000000000007 0.0000000000000000 +27.5600000000000023 0.0000000000000000 +27.5700000000000003 0.0000000000000000 +27.5800000000000018 0.0000000000000000 +27.5899999999999999 0.0000000000000000 +27.6000000000000014 0.0000000000000000 +27.6099999999999994 0.0000000000000000 +27.6200000000000010 0.0000000000000000 +27.6299999999999990 0.0000000000000000 +27.6400000000000006 0.0000000000000000 +27.6500000000000021 0.0000000000000000 +27.6600000000000001 0.0000000000000000 +27.6700000000000017 0.0000000000000000 +27.6799999999999997 0.0000000000000000 +27.6900000000000013 0.0000000000000000 +27.6999999999999993 0.0000000000000000 +27.7100000000000009 0.0000000000000000 +27.7199999999999989 0.0000000000000000 +27.7300000000000004 0.0000000000000000 +27.7400000000000020 0.0000000000000000 +27.7500000000000000 0.0000000000000000 +27.7600000000000016 0.0000000000000000 +27.7699999999999996 0.0000000000000000 +27.7800000000000011 0.0000000000000000 +27.7899999999999991 0.0000000000000000 +27.8000000000000007 0.0000000000000000 +27.8100000000000023 0.0000000000000000 +27.8200000000000003 0.0000000000000000 +27.8300000000000018 0.0000000000000000 +27.8399999999999999 0.0000000000000000 +27.8500000000000014 0.0000000000000000 +27.8599999999999994 0.0000000000000000 +27.8700000000000010 0.0000000000000000 +27.8799999999999990 0.0000000000000000 +27.8900000000000006 0.0000000000000000 +27.9000000000000021 0.0000000000000000 +27.9100000000000001 0.0000000000000000 +27.9200000000000017 0.0000000000000000 +27.9299999999999997 0.0000000000000000 +27.9400000000000013 0.0000000000000000 +27.9499999999999993 0.0000000000000000 +27.9600000000000009 0.0000000000000000 +27.9699999999999989 0.0000000000000000 +27.9800000000000004 0.0000000000000000 +27.9900000000000020 0.0000000000000000 +28.0000000000000000 0.0000000000000000 +28.0100000000000016 0.0000000000000000 +28.0199999999999996 0.0000000000000000 +28.0300000000000011 0.0000000000000000 +28.0399999999999991 0.0000000000000000 +28.0500000000000007 0.0000000000000000 +28.0600000000000023 0.0000000000000000 +28.0700000000000003 0.0000000000000000 +28.0800000000000018 0.0000000000000000 +28.0899999999999999 0.0000000000000000 +28.1000000000000014 0.0000000000000000 +28.1099999999999994 0.0000000000000000 +28.1200000000000010 0.0000000000000000 +28.1299999999999990 0.0000000000000000 +28.1400000000000006 0.0000000000000000 +28.1500000000000021 0.0000000000000000 +28.1600000000000001 0.0000000000000000 +28.1700000000000017 0.0000000000000000 +28.1799999999999997 0.0000000000000000 +28.1900000000000013 0.0000000000000000 +28.1999999999999993 0.0000000000000000 +28.2100000000000009 0.0000000000000000 +28.2199999999999989 0.0000000000000000 +28.2300000000000004 0.0000000000000000 +28.2400000000000020 0.0000000000000000 +28.2500000000000000 0.0000000000000000 +28.2600000000000016 0.0000000000000000 +28.2699999999999996 0.0000000000000000 +28.2800000000000011 0.0000000000000000 +28.2899999999999991 0.0000000000000000 +28.3000000000000007 0.0000000000000000 +28.3100000000000023 0.0000000000000000 +28.3200000000000003 0.0000000000000000 +28.3300000000000018 0.0000000000000000 +28.3399999999999999 0.0000000000000000 +28.3500000000000014 0.0000000000000000 +28.3599999999999994 0.0000000000000000 +28.3700000000000010 0.0000000000000000 +28.3799999999999990 0.0000000000000000 +28.3900000000000006 0.0000000000000000 +28.4000000000000021 0.0000000000000000 +28.4100000000000001 0.0000000000000000 +28.4200000000000017 0.0000000000000000 +28.4299999999999997 0.0000000000000000 +28.4400000000000013 0.0000000000000000 +28.4499999999999993 0.0000000000000000 +28.4600000000000009 0.0000000000000000 +28.4699999999999989 0.0000000000000000 +28.4800000000000004 0.0000000000000000 +28.4900000000000020 0.0000000000000000 +28.5000000000000000 0.0000000000000000 +28.5100000000000016 0.0000000000000000 +28.5199999999999996 0.0000000000000000 +28.5300000000000011 0.0000000000000000 +28.5399999999999991 0.0000000000000000 +28.5500000000000007 0.0000000000000000 +28.5600000000000023 0.0000000000000000 +28.5700000000000003 0.0000000000000000 +28.5800000000000018 0.0000000000000000 +28.5899999999999999 0.0000000000000000 +28.6000000000000014 0.0000000000000000 +28.6099999999999994 0.0000000000000000 +28.6200000000000010 0.0000000000000000 +28.6299999999999990 0.0000000000000000 +28.6400000000000006 0.0000000000000000 +28.6500000000000021 0.0000000000000000 +28.6600000000000001 0.0000000000000000 +28.6700000000000017 0.0000000000000000 +28.6799999999999997 0.0000000000000000 +28.6900000000000013 0.0000000000000000 +28.6999999999999993 0.0000000000000000 +28.7100000000000009 0.0000000000000000 +28.7199999999999989 0.0000000000000000 +28.7300000000000004 0.0000000000000000 +28.7400000000000020 0.0000000000000000 +28.7500000000000000 0.0000000000000000 +28.7600000000000016 0.0000000000000000 +28.7699999999999996 0.0000000000000000 +28.7800000000000011 0.0000000000000000 +28.7899999999999991 0.0000000000000000 +28.8000000000000007 0.0000000000000000 +28.8100000000000023 0.0000000000000000 +28.8200000000000003 0.0000000000000000 +28.8300000000000018 0.0000000000000000 +28.8399999999999999 0.0000000000000000 +28.8500000000000014 0.0000000000000000 +28.8599999999999994 0.0000000000000000 +28.8700000000000010 0.0000000000000000 +28.8799999999999990 0.0000000000000000 +28.8900000000000006 0.0000000000000000 +28.9000000000000021 0.0000000000000000 +28.9100000000000001 0.0000000000000000 +28.9200000000000017 0.0000000000000000 +28.9299999999999997 0.0000000000000000 +28.9400000000000013 0.0000000000000000 +28.9499999999999993 0.0000000000000000 +28.9600000000000009 0.0000000000000000 +28.9699999999999989 0.0000000000000000 +28.9800000000000004 0.0000000000000000 +28.9900000000000020 0.0000000000000000 +29.0000000000000000 0.0000000000000000 +29.0100000000000016 0.0000000000000000 +29.0199999999999996 0.0000000000000000 +29.0300000000000011 0.0000000000000000 +29.0399999999999991 0.0000000000000000 +29.0500000000000007 0.0000000000000000 +29.0600000000000023 0.0000000000000000 +29.0700000000000003 0.0000000000000000 +29.0800000000000018 0.0000000000000000 +29.0899999999999999 0.0000000000000000 +29.1000000000000014 0.0000000000000000 +29.1099999999999994 0.0000000000000000 +29.1200000000000010 0.0000000000000000 +29.1299999999999990 0.0000000000000000 +29.1400000000000006 0.0000000000000000 +29.1500000000000021 0.0000000000000000 +29.1600000000000001 0.0000000000000000 +29.1700000000000017 0.0000000000000000 +29.1799999999999997 0.0000000000000000 +29.1900000000000013 0.0000000000000000 +29.1999999999999993 0.0000000000000000 +29.2100000000000009 0.0000000000000000 +29.2199999999999989 0.0000000000000000 +29.2300000000000004 0.0000000000000000 +29.2400000000000020 0.0000000000000000 +29.2500000000000000 0.0000000000000000 +29.2600000000000016 0.0000000000000000 +29.2699999999999996 0.0000000000000000 +29.2800000000000011 0.0000000000000000 +29.2899999999999991 0.0000000000000000 +29.3000000000000007 0.0000000000000000 +29.3100000000000023 0.0000000000000000 +29.3200000000000003 0.0000000000000000 +29.3300000000000018 0.0000000000000000 +29.3399999999999999 0.0000000000000000 +29.3500000000000014 0.0000000000000000 +29.3599999999999994 0.0000000000000000 +29.3700000000000010 0.0000000000000000 +29.3799999999999990 0.0000000000000000 +29.3900000000000006 0.0000000000000000 +29.4000000000000021 0.0000000000000000 +29.4100000000000001 0.0000000000000000 +29.4200000000000017 0.0000000000000000 +29.4299999999999997 0.0000000000000000 +29.4400000000000013 0.0000000000000000 +29.4499999999999993 0.0000000000000000 +29.4600000000000009 0.0000000000000000 +29.4699999999999989 0.0000000000000000 +29.4800000000000004 0.0000000000000000 +29.4900000000000020 0.0000000000000000 +29.5000000000000000 0.0000000000000000 +29.5100000000000016 0.0000000000000000 +29.5199999999999996 0.0000000000000000 +29.5300000000000011 0.0000000000000000 +29.5399999999999991 0.0000000000000000 +29.5500000000000007 0.0000000000000000 +29.5600000000000023 0.0000000000000000 +29.5700000000000003 0.0000000000000000 +29.5800000000000018 0.0000000000000000 +29.5899999999999999 0.0000000000000000 +29.6000000000000014 0.0000000000000000 +29.6099999999999994 0.0000000000000000 +29.6200000000000010 0.0000000000000000 +29.6299999999999990 0.0000000000000000 +29.6400000000000006 0.0000000000000000 +29.6500000000000021 0.0000000000000000 +29.6600000000000001 0.0000000000000000 +29.6700000000000017 0.0000000000000000 +29.6799999999999997 0.0000000000000000 +29.6900000000000013 0.0000000000000000 +29.6999999999999993 0.0000000000000000 +29.7100000000000009 0.0000000000000000 +29.7199999999999989 0.0000000000000000 +29.7300000000000004 0.0000000000000000 +29.7400000000000020 0.0000000000000000 +29.7500000000000000 0.0000000000000000 +29.7600000000000016 0.0000000000000000 +29.7699999999999996 0.0000000000000000 +29.7800000000000011 0.0000000000000000 +29.7899999999999991 0.0000000000000000 +29.8000000000000007 0.0000000000000000 +29.8100000000000023 0.0000000000000000 +29.8200000000000003 0.0000000000000000 +29.8300000000000018 0.0000000000000000 +29.8399999999999999 0.0000000000000000 +29.8500000000000014 0.0000000000000000 +29.8599999999999994 0.0000000000000000 +29.8700000000000010 0.0000000000000000 +29.8799999999999990 0.0000000000000000 +29.8900000000000006 0.0000000000000000 +29.9000000000000021 0.0000000000000000 +29.9100000000000001 0.0000000000000000 +29.9200000000000017 0.0000000000000000 +29.9299999999999997 0.0000000000000000 +29.9400000000000013 0.0000000000000000 +29.9499999999999993 0.0000000000000000 +29.9600000000000009 0.0000000000000000 +29.9699999999999989 0.0000000000000000 +29.9800000000000004 0.0000000000000000 +29.9900000000000020 0.0000000000000000 +30.0000000000000000 0.0000000000000000 +30.0100000000000016 0.0000000000000000 +30.0199999999999996 0.0000000000000000 +30.0300000000000011 0.0000000000000000 +30.0399999999999991 0.0000000000000000 +30.0500000000000007 0.0000000000000000 +30.0600000000000023 0.0000000000000000 +30.0700000000000003 0.0000000000000000 +30.0800000000000018 0.0000000000000000 +30.0899999999999999 0.0000000000000000 +30.1000000000000014 0.0000000000000000 +30.1099999999999994 0.0000000000000000 +30.1200000000000010 0.0000000000000000 +30.1299999999999990 0.0000000000000000 +30.1400000000000006 0.0000000000000000 +30.1500000000000021 0.0000000000000000 +30.1600000000000001 0.0000000000000000 +30.1700000000000017 0.0000000000000000 +30.1799999999999997 0.0000000000000000 +30.1900000000000013 0.0000000000000000 +30.1999999999999993 0.0000000000000000 +30.2100000000000009 0.0000000000000000 +30.2199999999999989 0.0000000000000000 +30.2300000000000004 0.0000000000000000 +30.2400000000000020 0.0000000000000000 +30.2500000000000000 0.0000000000000000 +30.2600000000000016 0.0000000000000000 +30.2699999999999996 0.0000000000000000 +30.2800000000000011 0.0000000000000000 +30.2899999999999991 0.0000000000000000 +30.3000000000000007 0.0000000000000000 +30.3100000000000023 0.0000000000000000 +30.3200000000000003 0.0000000000000000 +30.3300000000000018 0.0000000000000000 +30.3399999999999999 0.0000000000000000 +30.3500000000000014 0.0000000000000000 +30.3599999999999994 0.0000000000000000 +30.3700000000000010 0.0000000000000000 +30.3799999999999990 0.0000000000000000 +30.3900000000000006 0.0000000000000000 +30.4000000000000021 0.0000000000000000 +30.4100000000000001 0.0000000000000000 +30.4200000000000017 0.0000000000000000 +30.4299999999999997 0.0000000000000000 +30.4400000000000013 0.0000000000000000 +30.4499999999999993 0.0000000000000000 +30.4600000000000009 0.0000000000000000 +30.4699999999999989 0.0000000000000000 +30.4800000000000004 0.0000000000000000 +30.4900000000000020 0.0000000000000000 +30.5000000000000000 0.0000000000000000 +30.5100000000000016 0.0000000000000000 +30.5199999999999996 0.0000000000000000 +30.5300000000000011 0.0000000000000000 +30.5399999999999991 0.0000000000000000 +30.5500000000000007 0.0000000000000000 +30.5600000000000023 0.0000000000000000 +30.5700000000000003 0.0000000000000000 +30.5800000000000018 0.0000000000000000 +30.5899999999999999 0.0000000000000000 +30.6000000000000014 0.0000000000000000 +30.6099999999999994 0.0000000000000000 +30.6200000000000010 0.0000000000000000 +30.6299999999999990 0.0000000000000000 +30.6400000000000006 0.0000000000000000 +30.6500000000000021 0.0000000000000000 +30.6600000000000001 0.0000000000000000 +30.6700000000000017 0.0000000000000000 +30.6799999999999997 0.0000000000000000 +30.6900000000000013 0.0000000000000000 +30.6999999999999993 0.0000000000000000 +30.7100000000000009 0.0000000000000000 +30.7199999999999989 0.0000000000000000 +30.7300000000000004 0.0000000000000000 +30.7400000000000020 0.0000000000000000 +30.7500000000000000 0.0000000000000000 +30.7600000000000016 0.0000000000000000 +30.7699999999999996 0.0000000000000000 +30.7800000000000011 0.0000000000000000 +30.7899999999999991 0.0000000000000000 +30.8000000000000007 0.0000000000000000 +30.8100000000000023 0.0000000000000000 +30.8200000000000003 0.0000000000000000 +30.8300000000000018 0.0000000000000000 +30.8399999999999999 0.0000000000000000 +30.8500000000000014 0.0000000000000000 +30.8599999999999994 0.0000000000000000 +30.8700000000000010 0.0000000000000000 +30.8799999999999990 0.0000000000000000 +30.8900000000000006 0.0000000000000000 +30.9000000000000021 0.0000000000000000 +30.9100000000000001 0.0000000000000000 +30.9200000000000017 0.0000000000000000 +30.9299999999999997 0.0000000000000000 +30.9400000000000013 0.0000000000000000 +30.9499999999999993 0.0000000000000000 +30.9600000000000009 0.0000000000000000 +30.9700000000000024 0.0000000000000000 +30.9800000000000004 0.0000000000000000 +30.9900000000000020 0.0000000000000000 +31.0000000000000000 0.0000000000000000 +31.0100000000000016 0.0000000000000000 +31.0199999999999996 0.0000000000000000 +31.0300000000000011 0.0000000000000000 +31.0399999999999991 0.0000000000000000 +31.0500000000000007 0.0000000000000000 +31.0600000000000023 0.0000000000000000 +31.0700000000000003 0.0000000000000000 +31.0800000000000018 0.0000000000000000 +31.0899999999999999 0.0000000000000000 +31.1000000000000014 0.0000000000000000 +31.1099999999999994 0.0000000000000000 +31.1200000000000010 0.0000000000000000 +31.1299999999999990 0.0000000000000000 +31.1400000000000006 0.0000000000000000 +31.1500000000000021 0.0000000000000000 +31.1600000000000001 0.0000000000000000 +31.1700000000000017 0.0000000000000000 +31.1799999999999997 0.0000000000000000 +31.1900000000000013 0.0000000000000000 +31.1999999999999993 0.0000000000000000 +31.2100000000000009 0.0000000000000000 +31.2200000000000024 0.0000000000000000 +31.2300000000000004 0.0000000000000000 +31.2400000000000020 0.0000000000000000 +31.2500000000000000 0.0000000000000000 +31.2600000000000016 0.0000000000000000 +31.2699999999999996 0.0000000000000000 +31.2800000000000011 0.0000000000000000 +31.2899999999999991 0.0000000000000000 +31.3000000000000007 0.0000000000000000 +31.3100000000000023 0.0000000000000000 +31.3200000000000003 0.0000000000000000 +31.3300000000000018 0.0000000000000000 +31.3399999999999999 0.0000000000000000 +31.3500000000000014 0.0000000000000000 +31.3599999999999994 0.0000000000000000 +31.3700000000000010 0.0000000000000000 +31.3799999999999990 0.0000000000000000 +31.3900000000000006 0.0000000000000000 +31.4000000000000021 0.0000000000000000 +31.4100000000000001 0.0000000000000000 +31.4200000000000017 0.0000000000000000 +31.4299999999999997 0.0000000000000000 +31.4400000000000013 0.0000000000000000 +31.4499999999999993 0.0000000000000000 +31.4600000000000009 0.0000000000000000 +31.4700000000000024 0.0000000000000000 +31.4800000000000004 0.0000000000000000 +31.4900000000000020 0.0000000000000000 +31.5000000000000000 0.0000000000000000 +31.5100000000000016 0.0000000000000000 +31.5199999999999996 0.0000000000000000 +31.5300000000000011 0.0000000000000000 +31.5399999999999991 0.0000000000000000 +31.5500000000000007 0.0000000000000000 +31.5600000000000023 0.0000000000000000 +31.5700000000000003 0.0000000000000000 +31.5800000000000018 0.0000000000000000 +31.5899999999999999 0.0000000000000000 +31.6000000000000014 0.0000000000000000 +31.6099999999999994 0.0000000000000000 +31.6200000000000010 0.0000000000000000 +31.6299999999999990 0.0000000000000000 +31.6400000000000006 0.0000000000000000 +31.6500000000000021 0.0000000000000000 +31.6600000000000001 0.0000000000000000 +31.6700000000000017 0.0000000000000000 +31.6799999999999997 0.0000000000000000 +31.6900000000000013 0.0000000000000000 +31.6999999999999993 0.0000000000000000 +31.7100000000000009 0.0000000000000000 +31.7200000000000024 0.0000000000000000 +31.7300000000000004 0.0000000000000000 +31.7400000000000020 0.0000000000000000 +31.7500000000000000 0.0000000000000000 +31.7600000000000016 0.0000000000000000 +31.7699999999999996 0.0000000000000000 +31.7800000000000011 0.0000000000000000 +31.7899999999999991 0.0000000000000000 +31.8000000000000007 0.0000000000000000 +31.8100000000000023 0.0000000000000000 +31.8200000000000003 0.0000000000000000 +31.8300000000000018 0.0000000000000000 +31.8399999999999999 0.0000000000000000 +31.8500000000000014 0.0000000000000000 +31.8599999999999994 0.0000000000000000 +31.8700000000000010 0.0000000000000000 +31.8799999999999990 0.0000000000000000 +31.8900000000000006 0.0000000000000000 +31.9000000000000021 0.0000000000000000 +31.9100000000000001 0.0000000000000000 +31.9200000000000017 0.0000000000000000 +31.9299999999999997 0.0000000000000000 +31.9400000000000013 0.0000000000000000 +31.9499999999999993 0.0000000000000000 +31.9600000000000009 0.0000000000000000 +31.9700000000000024 0.0000000000000000 +31.9800000000000004 0.0000000000000000 +31.9900000000000020 0.0000000000000000 +32.0000000000000000 0.0000000000000000 +32.0099999999999980 0.0000000000000000 +32.0200000000000031 0.0000000000000000 +32.0300000000000011 0.0000000000000000 +32.0399999999999991 0.0000000000000000 +32.0499999999999972 0.0000000000000000 +32.0600000000000023 0.0000000000000000 +32.0700000000000003 0.0000000000000000 +32.0799999999999983 0.0000000000000000 +32.0900000000000034 0.0000000000000000 +32.1000000000000014 0.0000000000000000 +32.1099999999999994 0.0000000000000000 +32.1199999999999974 0.0000000000000000 +32.1300000000000026 0.0000000000000000 +32.1400000000000006 0.0000000000000000 +32.1499999999999986 0.0000000000000000 +32.1600000000000037 0.0000000000000000 +32.1700000000000017 0.0000000000000000 +32.1799999999999997 0.0000000000000000 +32.1899999999999977 0.0000000000000000 +32.2000000000000028 0.0000000000000000 +32.2100000000000009 0.0000000000000000 +32.2199999999999989 0.0000000000000000 +32.2300000000000040 0.0000000000000000 +32.2400000000000020 0.0000000000000000 +32.2500000000000000 0.0000000000000000 +32.2599999999999980 0.0000000000000000 +32.2700000000000031 0.0000000000000000 +32.2800000000000011 0.0000000000000000 +32.2899999999999991 0.0000000000000000 +32.2999999999999972 0.0000000000000000 +32.3100000000000023 0.0000000000000000 +32.3200000000000003 0.0000000000000000 +32.3299999999999983 0.0000000000000000 +32.3400000000000034 0.0000000000000000 +32.3500000000000014 0.0000000000000000 +32.3599999999999994 0.0000000000000000 +32.3699999999999974 0.0000000000000000 +32.3800000000000026 0.0000000000000000 +32.3900000000000006 0.0000000000000000 +32.3999999999999986 0.0000000000000000 +32.4100000000000037 0.0000000000000000 +32.4200000000000017 0.0000000000000000 +32.4299999999999997 0.0000000000000000 +32.4399999999999977 0.0000000000000000 +32.4500000000000028 0.0000000000000000 +32.4600000000000009 0.0000000000000000 +32.4699999999999989 0.0000000000000000 +32.4800000000000040 0.0000000000000000 +32.4900000000000020 0.0000000000000000 +32.5000000000000000 0.0000000000000000 +32.5099999999999980 0.0000000000000000 +32.5200000000000031 0.0000000000000000 +32.5300000000000011 0.0000000000000000 +32.5399999999999991 0.0000000000000000 +32.5499999999999972 0.0000000000000000 +32.5600000000000023 0.0000000000000000 +32.5700000000000003 0.0000000000000000 +32.5799999999999983 0.0000000000000000 +32.5900000000000034 0.0000000000000000 +32.6000000000000014 0.0000000000000000 +32.6099999999999994 0.0000000000000000 +32.6199999999999974 0.0000000000000000 +32.6300000000000026 0.0000000000000000 +32.6400000000000006 0.0000000000000000 +32.6499999999999986 0.0000000000000000 +32.6600000000000037 0.0000000000000000 +32.6700000000000017 0.0000000000000000 +32.6799999999999997 0.0000000000000000 +32.6899999999999977 0.0000000000000000 +32.7000000000000028 0.0000000000000000 +32.7100000000000009 0.0000000000000000 +32.7199999999999989 0.0000000000000000 +32.7300000000000040 0.0000000000000000 +32.7400000000000020 0.0000000000000000 +32.7500000000000000 0.0000000000000000 +32.7599999999999980 0.0000000000000000 +32.7700000000000031 0.0000000000000000 +32.7800000000000011 0.0000000000000000 +32.7899999999999991 0.0000000000000000 +32.7999999999999972 0.0000000000000000 +32.8100000000000023 0.0000000000000000 +32.8200000000000003 0.0000000000000000 +32.8299999999999983 0.0000000000000000 +32.8400000000000034 0.0000000000000000 +32.8500000000000014 0.0000000000000000 +32.8599999999999994 0.0000000000000000 +32.8699999999999974 0.0000000000000000 +32.8800000000000026 0.0000000000000000 +32.8900000000000006 0.0000000000000000 +32.8999999999999986 0.0000000000000000 +32.9100000000000037 0.0000000000000000 +32.9200000000000017 0.0000000000000000 +32.9299999999999997 0.0000000000000000 +32.9399999999999977 0.0000000000000000 +32.9500000000000028 0.0000000000000000 +32.9600000000000009 0.0000000000000000 +32.9699999999999989 0.0000000000000000 +32.9800000000000040 0.0000000000000000 +32.9900000000000020 0.0000000000000000 +33.0000000000000000 0.0000000000000000 +33.0099999999999980 0.0000000000000000 +33.0200000000000031 0.0000000000000000 +33.0300000000000011 0.0000000000000000 +33.0399999999999991 0.0000000000000000 +33.0499999999999972 0.0000000000000000 +33.0600000000000023 0.0000000000000000 +33.0700000000000003 0.0000000000000000 +33.0799999999999983 0.0000000000000000 +33.0900000000000034 0.0000000000000000 +33.1000000000000014 0.0000000000000000 +33.1099999999999994 0.0000000000000000 +33.1199999999999974 0.0000000000000000 +33.1300000000000026 0.0000000000000000 +33.1400000000000006 0.0000000000000000 +33.1499999999999986 0.0000000000000000 +33.1600000000000037 0.0000000000000000 +33.1700000000000017 0.0000000000000000 +33.1799999999999997 0.0000000000000000 +33.1899999999999977 0.0000000000000000 +33.2000000000000028 0.0000000000000000 +33.2100000000000009 0.0000000000000000 +33.2199999999999989 0.0000000000000000 +33.2300000000000040 0.0000000000000000 +33.2400000000000020 0.0000000000000000 +33.2500000000000000 0.0000000000000000 +33.2599999999999980 0.0000000000000000 +33.2700000000000031 0.0000000000000000 +33.2800000000000011 0.0000000000000000 +33.2899999999999991 0.0000000000000000 +33.2999999999999972 0.0000000000000000 +33.3100000000000023 0.0000000000000000 +33.3200000000000003 0.0000000000000000 +33.3299999999999983 0.0000000000000000 +33.3400000000000034 0.0000000000000000 +33.3500000000000014 0.0000000000000000 +33.3599999999999994 0.0000000000000000 +33.3699999999999974 0.0000000000000000 +33.3800000000000026 0.0000000000000000 +33.3900000000000006 0.0000000000000000 +33.3999999999999986 0.0000000000000000 +33.4100000000000037 0.0000000000000000 +33.4200000000000017 0.0000000000000000 +33.4299999999999997 0.0000000000000000 +33.4399999999999977 0.0000000000000000 +33.4500000000000028 0.0000000000000000 +33.4600000000000009 0.0000000000000000 +33.4699999999999989 0.0000000000000000 +33.4800000000000040 0.0000000000000000 +33.4900000000000020 0.0000000000000000 +33.5000000000000000 0.0000000000000000 +33.5099999999999980 0.0000000000000000 +33.5200000000000031 0.0000000000000000 +33.5300000000000011 0.0000000000000000 +33.5399999999999991 0.0000000000000000 +33.5499999999999972 0.0000000000000000 +33.5600000000000023 0.0000000000000000 +33.5700000000000003 0.0000000000000000 +33.5799999999999983 0.0000000000000000 +33.5900000000000034 0.0000000000000000 +33.6000000000000014 0.0000000000000000 +33.6099999999999994 0.0000000000000000 +33.6199999999999974 0.0000000000000000 +33.6300000000000026 0.0000000000000000 +33.6400000000000006 0.0000000000000000 +33.6499999999999986 0.0000000000000000 +33.6600000000000037 0.0000000000000000 +33.6700000000000017 0.0000000000000000 +33.6799999999999997 0.0000000000000000 +33.6899999999999977 0.0000000000000000 +33.7000000000000028 0.0000000000000000 +33.7100000000000009 0.0000000000000000 +33.7199999999999989 0.0000000000000000 +33.7300000000000040 0.0000000000000000 +33.7400000000000020 0.0000000000000000 +33.7500000000000000 0.0000000000000000 +33.7599999999999980 0.0000000000000000 +33.7700000000000031 0.0000000000000000 +33.7800000000000011 0.0000000000000000 +33.7899999999999991 0.0000000000000000 +33.7999999999999972 0.0000000000000000 +33.8100000000000023 0.0000000000000000 +33.8200000000000003 0.0000000000000000 +33.8299999999999983 0.0000000000000000 +33.8400000000000034 0.0000000000000000 +33.8500000000000014 0.0000000000000000 +33.8599999999999994 0.0000000000000000 +33.8699999999999974 0.0000000000000000 +33.8800000000000026 0.0000000000000000 +33.8900000000000006 0.0000000000000000 +33.8999999999999986 0.0000000000000000 +33.9100000000000037 0.0000000000000000 +33.9200000000000017 0.0000000000000000 +33.9299999999999997 0.0000000000000000 +33.9399999999999977 0.0000000000000000 +33.9500000000000028 0.0000000000000000 +33.9600000000000009 0.0000000000000000 +33.9699999999999989 0.0000000000000000 +33.9800000000000040 0.0000000000000000 +33.9900000000000020 0.0000000000000000 +34.0000000000000000 0.0000000000000000 +34.0099999999999980 0.0000000000000000 +34.0200000000000031 0.0000000000000000 +34.0300000000000011 0.0000000000000000 +34.0399999999999991 0.0000000000000000 +34.0499999999999972 0.0000000000000000 +34.0600000000000023 0.0000000000000000 +34.0700000000000003 0.0000000000000000 +34.0799999999999983 0.0000000000000000 +34.0900000000000034 0.0000000000000000 +34.1000000000000014 0.0000000000000000 +34.1099999999999994 0.0000000000000000 +34.1199999999999974 0.0000000000000000 +34.1300000000000026 0.0000000000000000 +34.1400000000000006 0.0000000000000000 +34.1499999999999986 0.0000000000000000 +34.1600000000000037 0.0000000000000000 +34.1700000000000017 0.0000000000000000 +34.1799999999999997 0.0000000000000000 +34.1899999999999977 0.0000000000000000 +34.2000000000000028 0.0000000000000000 +34.2100000000000009 0.0000000000000000 +34.2199999999999989 0.0000000000000000 +34.2300000000000040 0.0000000000000000 +34.2400000000000020 0.0000000000000000 +34.2500000000000000 0.0000000000000000 +34.2599999999999980 0.0000000000000000 +34.2700000000000031 0.0000000000000000 +34.2800000000000011 0.0000000000000000 +34.2899999999999991 0.0000000000000000 +34.3000000000000043 0.0000000000000000 +34.3100000000000023 0.0000000000000000 +34.3200000000000003 0.0000000000000000 +34.3299999999999983 0.0000000000000000 +34.3400000000000034 0.0000000000000000 +34.3500000000000014 0.0000000000000000 +34.3599999999999994 0.0000000000000000 +34.3699999999999974 0.0000000000000000 +34.3800000000000026 0.0000000000000000 +34.3900000000000006 0.0000000000000000 +34.3999999999999986 0.0000000000000000 +34.4100000000000037 0.0000000000000000 +34.4200000000000017 0.0000000000000000 +34.4299999999999997 0.0000000000000000 +34.4399999999999977 0.0000000000000000 +34.4500000000000028 0.0000000000000000 +34.4600000000000009 0.0000000000000000 +34.4699999999999989 0.0000000000000000 +34.4800000000000040 0.0000000000000000 +34.4900000000000020 0.0000000000000000 +34.5000000000000000 0.0000000000000000 +34.5099999999999980 0.0000000000000000 +34.5200000000000031 0.0000000000000000 +34.5300000000000011 0.0000000000000000 +34.5399999999999991 0.0000000000000000 +34.5500000000000043 0.0000000000000000 +34.5600000000000023 0.0000000000000000 +34.5700000000000003 0.0000000000000000 +34.5799999999999983 0.0000000000000000 +34.5900000000000034 0.0000000000000000 +34.6000000000000014 0.0000000000000000 +34.6099999999999994 0.0000000000000000 +34.6199999999999974 0.0000000000000000 +34.6300000000000026 0.0000000000000000 +34.6400000000000006 0.0000000000000000 +34.6499999999999986 0.0000000000000000 +34.6600000000000037 0.0000000000000000 +34.6700000000000017 0.0000000000000000 +34.6799999999999997 0.0000000000000000 +34.6899999999999977 0.0000000000000000 +34.7000000000000028 0.0000000000000000 +34.7100000000000009 0.0000000000000000 +34.7199999999999989 0.0000000000000000 +34.7300000000000040 0.0000000000000000 +34.7400000000000020 0.0000000000000000 +34.7500000000000000 0.0000000000000000 +34.7599999999999980 0.0000000000000000 +34.7700000000000031 0.0000000000000000 +34.7800000000000011 0.0000000000000000 +34.7899999999999991 0.0000000000000000 +34.8000000000000043 0.0000000000000000 +34.8100000000000023 0.0000000000000000 +34.8200000000000003 0.0000000000000000 +34.8299999999999983 0.0000000000000000 +34.8400000000000034 0.0000000000000000 +34.8500000000000014 0.0000000000000000 +34.8599999999999994 0.0000000000000000 +34.8699999999999974 0.0000000000000000 +34.8800000000000026 0.0000000000000000 +34.8900000000000006 0.0000000000000000 +34.8999999999999986 0.0000000000000000 +34.9100000000000037 0.0000000000000000 +34.9200000000000017 0.0000000000000000 +34.9299999999999997 0.0000000000000000 +34.9399999999999977 0.0000000000000000 +34.9500000000000028 0.0000000000000000 +34.9600000000000009 0.0000000000000000 +34.9699999999999989 0.0000000000000000 +34.9800000000000040 0.0000000000000000 +34.9900000000000020 0.0000000000000000 +35.0000000000000000 0.0000000000000000 +35.0099999999999980 0.0000000000000000 +35.0200000000000031 0.0000000000000000 +35.0300000000000011 0.0000000000000000 +35.0399999999999991 0.0000000000000000 +35.0500000000000043 0.0000000000000000 +35.0600000000000023 0.0000000000000000 +35.0700000000000003 0.0000000000000000 +35.0799999999999983 0.0000000000000000 +35.0900000000000034 0.0000000000000000 +35.1000000000000014 0.0000000000000000 +35.1099999999999994 0.0000000000000000 +35.1199999999999974 0.0000000000000000 +35.1300000000000026 0.0000000000000000 +35.1400000000000006 0.0000000000000000 +35.1499999999999986 0.0000000000000000 +35.1600000000000037 0.0000000000000000 +35.1700000000000017 0.0000000000000000 +35.1799999999999997 0.0000000000000000 +35.1899999999999977 0.0000000000000000 +35.2000000000000028 0.0000000000000000 +35.2100000000000009 0.0000000000000000 +35.2199999999999989 0.0000000000000000 +35.2300000000000040 0.0000000000000000 +35.2400000000000020 0.0000000000000000 +35.2500000000000000 0.0000000000000000 +35.2599999999999980 0.0000000000000000 +35.2700000000000031 0.0000000000000000 +35.2800000000000011 0.0000000000000000 +35.2899999999999991 0.0000000000000000 +35.3000000000000043 0.0000000000000000 +35.3100000000000023 0.0000000000000000 +35.3200000000000003 0.0000000000000000 +35.3299999999999983 0.0000000000000000 +35.3400000000000034 0.0000000000000000 +35.3500000000000014 0.0000000000000000 +35.3599999999999994 0.0000000000000000 +35.3699999999999974 0.0000000000000000 +35.3800000000000026 0.0000000000000000 +35.3900000000000006 0.0000000000000000 +35.3999999999999986 0.0000000000000000 +35.4100000000000037 0.0000000000000000 +35.4200000000000017 0.0000000000000000 +35.4299999999999997 0.0000000000000000 +35.4399999999999977 0.0000000000000000 +35.4500000000000028 0.0000000000000000 +35.4600000000000009 0.0000000000000000 +35.4699999999999989 0.0000000000000000 +35.4800000000000040 0.0000000000000000 +35.4900000000000020 0.0000000000000000 +35.5000000000000000 0.0000000000000000 +35.5099999999999980 0.0000000000000000 +35.5200000000000031 0.0000000000000000 +35.5300000000000011 0.0000000000000000 +35.5399999999999991 0.0000000000000000 +35.5500000000000043 0.0000000000000000 +35.5600000000000023 0.0000000000000000 +35.5700000000000003 0.0000000000000000 +35.5799999999999983 0.0000000000000000 +35.5900000000000034 0.0000000000000000 +35.6000000000000014 0.0000000000000000 +35.6099999999999994 0.0000000000000000 +35.6199999999999974 0.0000000000000000 +35.6300000000000026 0.0000000000000000 +35.6400000000000006 0.0000000000000000 +35.6499999999999986 0.0000000000000000 +35.6600000000000037 0.0000000000000000 +35.6700000000000017 0.0000000000000000 +35.6799999999999997 0.0000000000000000 +35.6899999999999977 0.0000000000000000 +35.7000000000000028 0.0000000000000000 +35.7100000000000009 0.0000000000000000 +35.7199999999999989 0.0000000000000000 +35.7300000000000040 0.0000000000000000 +35.7400000000000020 0.0000000000000000 +35.7500000000000000 0.0000000000000000 +35.7599999999999980 0.0000000000000000 +35.7700000000000031 0.0000000000000000 +35.7800000000000011 0.0000000000000000 +35.7899999999999991 0.0000000000000000 +35.8000000000000043 0.0000000000000000 +35.8100000000000023 0.0000000000000000 +35.8200000000000003 0.0000000000000000 +35.8299999999999983 0.0000000000000000 +35.8400000000000034 0.0000000000000000 +35.8500000000000014 0.0000000000000000 +35.8599999999999994 0.0000000000000000 +35.8699999999999974 0.0000000000000000 +35.8800000000000026 0.0000000000000000 +35.8900000000000006 0.0000000000000000 +35.8999999999999986 0.0000000000000000 +35.9100000000000037 0.0000000000000000 +35.9200000000000017 0.0000000000000000 +35.9299999999999997 0.0000000000000000 +35.9399999999999977 0.0000000000000000 +35.9500000000000028 0.0000000000000000 +35.9600000000000009 0.0000000000000000 +35.9699999999999989 0.0000000000000000 +35.9800000000000040 0.0000000000000000 +35.9900000000000020 0.0000000000000000 +36.0000000000000000 0.0000000000000000 +36.0099999999999980 0.0000000000000000 +36.0200000000000031 0.0000000000000000 +36.0300000000000011 0.0000000000000000 +36.0399999999999991 0.0000000000000000 +36.0500000000000043 0.0000000000000000 +36.0600000000000023 0.0000000000000000 +36.0700000000000003 0.0000000000000000 +36.0799999999999983 0.0000000000000000 +36.0900000000000034 0.0000000000000000 +36.1000000000000014 0.0000000000000000 +36.1099999999999994 0.0000000000000000 +36.1199999999999974 0.0000000000000000 +36.1300000000000026 0.0000000000000000 +36.1400000000000006 0.0000000000000000 +36.1499999999999986 0.0000000000000000 +36.1600000000000037 0.0000000000000000 +36.1700000000000017 0.0000000000000000 +36.1799999999999997 0.0000000000000000 +36.1899999999999977 0.0000000000000000 +36.2000000000000028 0.0000000000000000 +36.2100000000000009 0.0000000000000000 +36.2199999999999989 0.0000000000000000 +36.2300000000000040 0.0000000000000000 +36.2400000000000020 0.0000000000000000 +36.2500000000000000 0.0000000000000000 +36.2599999999999980 0.0000000000000000 +36.2700000000000031 0.0000000000000000 +36.2800000000000011 0.0000000000000000 +36.2899999999999991 0.0000000000000000 +36.3000000000000043 0.0000000000000000 +36.3100000000000023 0.0000000000000000 +36.3200000000000003 0.0000000000000000 +36.3299999999999983 0.0000000000000000 +36.3400000000000034 0.0000000000000000 +36.3500000000000014 0.0000000000000000 +36.3599999999999994 0.0000000000000000 +36.3699999999999974 0.0000000000000000 +36.3800000000000026 0.0000000000000000 +36.3900000000000006 0.0000000000000000 +36.3999999999999986 0.0000000000000000 +36.4100000000000037 0.0000000000000000 +36.4200000000000017 0.0000000000000000 +36.4299999999999997 0.0000000000000000 +36.4399999999999977 0.0000000000000000 +36.4500000000000028 0.0000000000000000 +36.4600000000000009 0.0000000000000000 +36.4699999999999989 0.0000000000000000 +36.4800000000000040 0.0000000000000000 +36.4900000000000020 0.0000000000000000 +36.5000000000000000 0.0000000000000000 +36.5099999999999980 0.0000000000000000 +36.5200000000000031 0.0000000000000000 +36.5300000000000011 0.0000000000000000 +36.5399999999999991 0.0000000000000000 +36.5500000000000043 0.0000000000000000 +36.5600000000000023 0.0000000000000000 +36.5700000000000003 0.0000000000000000 +36.5799999999999983 0.0000000000000000 +36.5900000000000034 0.0000000000000000 +36.6000000000000014 0.0000000000000000 +36.6099999999999994 0.0000000000000000 +36.6199999999999974 0.0000000000000000 +36.6300000000000026 0.0000000000000000 +36.6400000000000006 0.0000000000000000 +36.6499999999999986 0.0000000000000000 +36.6600000000000037 0.0000000000000000 +36.6700000000000017 0.0000000000000000 +36.6799999999999997 0.0000000000000000 +36.6899999999999977 0.0000000000000000 +36.7000000000000028 0.0000000000000000 +36.7100000000000009 0.0000000000000000 +36.7199999999999989 0.0000000000000000 +36.7300000000000040 0.0000000000000000 +36.7400000000000020 0.0000000000000000 +36.7500000000000000 0.0000000000000000 +36.7599999999999980 0.0000000000000000 +36.7700000000000031 0.0000000000000000 +36.7800000000000011 0.0000000000000000 +36.7899999999999991 0.0000000000000000 +36.8000000000000043 0.0000000000000000 +36.8100000000000023 0.0000000000000000 +36.8200000000000003 0.0000000000000000 +36.8299999999999983 0.0000000000000000 +36.8400000000000034 0.0000000000000000 +36.8500000000000014 0.0000000000000000 +36.8599999999999994 0.0000000000000000 +36.8699999999999974 0.0000000000000000 +36.8800000000000026 0.0000000000000000 +36.8900000000000006 0.0000000000000000 +36.8999999999999986 0.0000000000000000 +36.9100000000000037 0.0000000000000000 +36.9200000000000017 0.0000000000000000 +36.9299999999999997 0.0000000000000000 +36.9399999999999977 0.0000000000000000 +36.9500000000000028 0.0000000000000000 +36.9600000000000009 0.0000000000000000 +36.9699999999999989 0.0000000000000000 +36.9800000000000040 0.0000000000000000 +36.9900000000000020 0.0000000000000000 +37.0000000000000000 0.0000000000000000 +37.0099999999999980 0.0000000000000000 +37.0200000000000031 0.0000000000000000 +37.0300000000000011 0.0000000000000000 +37.0399999999999991 0.0000000000000000 +37.0500000000000043 0.0000000000000000 +37.0600000000000023 0.0000000000000000 +37.0700000000000003 0.0000000000000000 +37.0799999999999983 0.0000000000000000 +37.0900000000000034 0.0000000000000000 +37.1000000000000014 0.0000000000000000 +37.1099999999999994 0.0000000000000000 +37.1199999999999974 0.0000000000000000 +37.1300000000000026 0.0000000000000000 +37.1400000000000006 0.0000000000000000 +37.1499999999999986 0.0000000000000000 +37.1600000000000037 0.0000000000000000 +37.1700000000000017 0.0000000000000000 +37.1799999999999997 0.0000000000000000 +37.1899999999999977 0.0000000000000000 +37.2000000000000028 0.0000000000000000 +37.2100000000000009 0.0000000000000000 +37.2199999999999989 0.0000000000000000 +37.2300000000000040 0.0000000000000000 +37.2400000000000020 0.0000000000000000 +37.2500000000000000 0.0000000000000000 +37.2599999999999980 0.0000000000000000 +37.2700000000000031 0.0000000000000000 +37.2800000000000011 0.0000000000000000 +37.2899999999999991 0.0000000000000000 +37.3000000000000043 0.0000000000000000 +37.3100000000000023 0.0000000000000000 +37.3200000000000003 0.0000000000000000 +37.3299999999999983 0.0000000000000000 +37.3400000000000034 0.0000000000000000 +37.3500000000000014 0.0000000000000000 +37.3599999999999994 0.0000000000000000 +37.3699999999999974 0.0000000000000000 +37.3800000000000026 0.0000000000000000 +37.3900000000000006 0.0000000000000000 +37.3999999999999986 0.0000000000000000 +37.4100000000000037 0.0000000000000000 +37.4200000000000017 0.0000000000000000 +37.4299999999999997 0.0000000000000000 +37.4399999999999977 0.0000000000000000 +37.4500000000000028 0.0000000000000000 +37.4600000000000009 0.0000000000000000 +37.4699999999999989 0.0000000000000000 +37.4800000000000040 0.0000000000000000 +37.4900000000000020 0.0000000000000000 +37.5000000000000000 0.0000000000000000 +37.5099999999999980 0.0000000000000000 +37.5200000000000031 0.0000000000000000 +37.5300000000000011 0.0000000000000000 +37.5399999999999991 0.0000000000000000 +37.5500000000000043 0.0000000000000000 +37.5600000000000023 0.0000000000000000 +37.5700000000000003 0.0000000000000000 +37.5799999999999983 0.0000000000000000 +37.5900000000000034 0.0000000000000000 +37.6000000000000014 0.0000000000000000 +37.6099999999999994 0.0000000000000000 +37.6199999999999974 0.0000000000000000 +37.6300000000000026 0.0000000000000000 +37.6400000000000006 0.0000000000000000 +37.6499999999999986 0.0000000000000000 +37.6600000000000037 0.0000000000000000 +37.6700000000000017 0.0000000000000000 +37.6799999999999997 0.0000000000000000 +37.6899999999999977 0.0000000000000000 +37.7000000000000028 0.0000000000000000 +37.7100000000000009 0.0000000000000000 +37.7199999999999989 0.0000000000000000 +37.7300000000000040 0.0000000000000000 +37.7400000000000020 0.0000000000000000 +37.7500000000000000 0.0000000000000000 +37.7599999999999980 0.0000000000000000 +37.7700000000000031 0.0000000000000000 +37.7800000000000011 0.0000000000000000 +37.7899999999999991 0.0000000000000000 +37.8000000000000043 0.0000000000000000 +37.8100000000000023 0.0000000000000000 +37.8200000000000003 0.0000000000000000 +37.8299999999999983 0.0000000000000000 +37.8400000000000034 0.0000000000000000 +37.8500000000000014 0.0000000000000000 +37.8599999999999994 0.0000000000000000 +37.8699999999999974 0.0000000000000000 +37.8800000000000026 0.0000000000000000 +37.8900000000000006 0.0000000000000000 +37.8999999999999986 0.0000000000000000 +37.9100000000000037 0.0000000000000000 +37.9200000000000017 0.0000000000000000 +37.9299999999999997 0.0000000000000000 +37.9399999999999977 0.0000000000000000 +37.9500000000000028 0.0000000000000000 +37.9600000000000009 0.0000000000000000 +37.9699999999999989 0.0000000000000000 +37.9800000000000040 0.0000000000000000 +37.9900000000000020 0.0000000000000000 +38.0000000000000000 0.0000000000000000 +38.0099999999999980 0.0000000000000000 +38.0200000000000031 0.0000000000000000 +38.0300000000000011 0.0000000000000000 +38.0399999999999991 0.0000000000000000 +38.0500000000000043 0.0000000000000000 +38.0600000000000023 0.0000000000000000 +38.0700000000000003 0.0000000000000000 +38.0799999999999983 0.0000000000000000 +38.0900000000000034 0.0000000000000000 +38.1000000000000014 0.0000000000000000 +38.1099999999999994 0.0000000000000000 +38.1199999999999974 0.0000000000000000 +38.1300000000000026 0.0000000000000000 +38.1400000000000006 0.0000000000000000 +38.1499999999999986 0.0000000000000000 +38.1600000000000037 0.0000000000000000 +38.1700000000000017 0.0000000000000000 +38.1799999999999997 0.0000000000000000 +38.1899999999999977 0.0000000000000000 +38.2000000000000028 0.0000000000000000 +38.2100000000000009 0.0000000000000000 +38.2199999999999989 0.0000000000000000 +38.2300000000000040 0.0000000000000000 +38.2400000000000020 0.0000000000000000 +38.2500000000000000 0.0000000000000000 +38.2599999999999980 0.0000000000000000 +38.2700000000000031 0.0000000000000000 +38.2800000000000011 0.0000000000000000 +38.2899999999999991 0.0000000000000000 +38.3000000000000043 0.0000000000000000 +38.3100000000000023 0.0000000000000000 +38.3200000000000003 0.0000000000000000 +38.3299999999999983 0.0000000000000000 +38.3400000000000034 0.0000000000000000 +38.3500000000000014 0.0000000000000000 +38.3599999999999994 0.0000000000000000 +38.3699999999999974 0.0000000000000000 +38.3800000000000026 0.0000000000000000 +38.3900000000000006 0.0000000000000000 +38.3999999999999986 0.0000000000000000 +38.4100000000000037 0.0000000000000000 +38.4200000000000017 0.0000000000000000 +38.4299999999999997 0.0000000000000000 +38.4399999999999977 0.0000000000000000 +38.4500000000000028 0.0000000000000000 +38.4600000000000009 0.0000000000000000 +38.4699999999999989 0.0000000000000000 +38.4800000000000040 0.0000000000000000 +38.4900000000000020 0.0000000000000000 +38.5000000000000000 0.0000000000000000 +38.5099999999999980 0.0000000000000000 +38.5200000000000031 0.0000000000000000 +38.5300000000000011 0.0000000000000000 +38.5399999999999991 0.0000000000000000 +38.5500000000000043 0.0000000000000000 +38.5600000000000023 0.0000000000000000 +38.5700000000000003 0.0000000000000000 +38.5799999999999983 0.0000000000000000 +38.5900000000000034 0.0000000000000000 +38.6000000000000014 0.0000000000000000 +38.6099999999999994 0.0000000000000000 +38.6199999999999974 0.0000000000000000 +38.6300000000000026 0.0000000000000000 +38.6400000000000006 0.0000000000000000 +38.6499999999999986 0.0000000000000000 +38.6600000000000037 0.0000000000000000 +38.6700000000000017 0.0000000000000000 +38.6799999999999997 0.0000000000000000 +38.6899999999999977 0.0000000000000000 +38.7000000000000028 0.0000000000000000 +38.7100000000000009 0.0000000000000000 +38.7199999999999989 0.0000000000000000 +38.7300000000000040 0.0000000000000000 +38.7400000000000020 0.0000000000000000 +38.7500000000000000 0.0000000000000000 +38.7599999999999980 0.0000000000000000 +38.7700000000000031 0.0000000000000000 +38.7800000000000011 0.0000000000000000 +38.7899999999999991 0.0000000000000000 +38.8000000000000043 0.0000000000000000 +38.8100000000000023 0.0000000000000000 +38.8200000000000003 0.0000000000000000 +38.8299999999999983 0.0000000000000000 +38.8400000000000034 0.0000000000000000 +38.8500000000000014 0.0000000000000000 +38.8599999999999994 0.0000000000000000 +38.8699999999999974 0.0000000000000000 +38.8800000000000026 0.0000000000000000 +38.8900000000000006 0.0000000000000000 +38.8999999999999986 0.0000000000000000 +38.9100000000000037 0.0000000000000000 +38.9200000000000017 0.0000000000000000 +38.9299999999999997 0.0000000000000000 +38.9399999999999977 0.0000000000000000 +38.9500000000000028 0.0000000000000000 +38.9600000000000009 0.0000000000000000 +38.9699999999999989 0.0000000000000000 +38.9800000000000040 0.0000000000000000 +38.9900000000000020 0.0000000000000000 +39.0000000000000000 0.0000000000000000 +39.0099999999999980 0.0000000000000000 +39.0200000000000031 0.0000000000000000 +39.0300000000000011 0.0000000000000000 +39.0399999999999991 0.0000000000000000 +39.0500000000000043 0.0000000000000000 +39.0600000000000023 0.0000000000000000 +39.0700000000000003 0.0000000000000000 +39.0799999999999983 0.0000000000000000 +39.0900000000000034 0.0000000000000000 +39.1000000000000014 0.0000000000000000 +39.1099999999999994 0.0000000000000000 +39.1199999999999974 0.0000000000000000 +39.1300000000000026 0.0000000000000000 +39.1400000000000006 0.0000000000000000 +39.1499999999999986 0.0000000000000000 +39.1600000000000037 0.0000000000000000 +39.1700000000000017 0.0000000000000000 +39.1799999999999997 0.0000000000000000 +39.1899999999999977 0.0000000000000000 +39.2000000000000028 0.0000000000000000 +39.2100000000000009 0.0000000000000000 +39.2199999999999989 0.0000000000000000 +39.2300000000000040 0.0000000000000000 +39.2400000000000020 0.0000000000000000 +39.2500000000000000 0.0000000000000000 +39.2599999999999980 0.0000000000000000 +39.2700000000000031 0.0000000000000000 +39.2800000000000011 0.0000000000000000 +39.2899999999999991 0.0000000000000000 +39.3000000000000043 0.0000000000000000 +39.3100000000000023 0.0000000000000000 +39.3200000000000003 0.0000000000000000 +39.3299999999999983 0.0000000000000000 +39.3400000000000034 0.0000000000000000 +39.3500000000000014 0.0000000000000000 +39.3599999999999994 0.0000000000000000 +39.3699999999999974 0.0000000000000000 +39.3800000000000026 0.0000000000000000 +39.3900000000000006 0.0000000000000000 +39.3999999999999986 0.0000000000000000 +39.4100000000000037 0.0000000000000000 +39.4200000000000017 0.0000000000000000 +39.4299999999999997 0.0000000000000000 +39.4399999999999977 0.0000000000000000 +39.4500000000000028 0.0000000000000000 +39.4600000000000009 0.0000000000000000 +39.4699999999999989 0.0000000000000000 +39.4800000000000040 0.0000000000000000 +39.4900000000000020 0.0000000000000000 +39.5000000000000000 0.0000000000000000 +39.5099999999999980 0.0000000000000000 +39.5200000000000031 0.0000000000000000 +39.5300000000000011 0.0000000000000000 +39.5399999999999991 0.0000000000000000 +39.5500000000000043 0.0000000000000000 +39.5600000000000023 0.0000000000000000 +39.5700000000000003 0.0000000000000000 +39.5799999999999983 0.0000000000000000 +39.5900000000000034 0.0000000000000000 +39.6000000000000014 0.0000000000000000 +39.6099999999999994 0.0000000000000000 +39.6199999999999974 0.0000000000000000 +39.6300000000000026 0.0000000000000000 +39.6400000000000006 0.0000000000000000 +39.6499999999999986 0.0000000000000000 +39.6600000000000037 0.0000000000000000 +39.6700000000000017 0.0000000000000000 +39.6799999999999997 0.0000000000000000 +39.6899999999999977 0.0000000000000000 +39.7000000000000028 0.0000000000000000 +39.7100000000000009 0.0000000000000000 +39.7199999999999989 0.0000000000000000 +39.7300000000000040 0.0000000000000000 +39.7400000000000020 0.0000000000000000 +39.7500000000000000 0.0000000000000000 +39.7599999999999980 0.0000000000000000 +39.7700000000000031 0.0000000000000000 +39.7800000000000011 0.0000000000000000 +39.7899999999999991 0.0000000000000000 +39.8000000000000043 0.0000000000000000 +39.8100000000000023 0.0000000000000000 +39.8200000000000003 0.0000000000000000 +39.8299999999999983 0.0000000000000000 +39.8400000000000034 0.0000000000000000 +39.8500000000000014 0.0000000000000000 +39.8599999999999994 0.0000000000000000 +39.8699999999999974 0.0000000000000000 +39.8800000000000026 0.0000000000000000 +39.8900000000000006 0.0000000000000000 +39.8999999999999986 0.0000000000000000 +39.9100000000000037 0.0000000000000000 +39.9200000000000017 0.0000000000000000 +39.9299999999999997 0.0000000000000000 +39.9399999999999977 0.0000000000000000 +39.9500000000000028 0.0000000000000000 +39.9600000000000009 0.0000000000000000 +39.9699999999999989 0.0000000000000000 +39.9800000000000040 0.0000000000000000 +39.9900000000000020 0.0000000000000000 +40.0000000000000000 0.0000000000000000 +40.0099999999999980 0.0000000000000000 +40.0200000000000031 0.0000000000000000 +40.0300000000000011 0.0000000000000000 +40.0399999999999991 0.0000000000000000 +40.0500000000000043 0.0000000000000000 +40.0600000000000023 0.0000000000000000 +40.0700000000000003 0.0000000000000000 +40.0799999999999983 0.0000000000000000 +40.0900000000000034 0.0000000000000000 +40.1000000000000014 0.0000000000000000 +40.1099999999999994 0.0000000000000000 +40.1199999999999974 0.0000000000000000 +40.1300000000000026 0.0000000000000000 +40.1400000000000006 0.0000000000000000 +40.1499999999999986 0.0000000000000000 +40.1600000000000037 0.0000000000000000 +40.1700000000000017 0.0000000000000000 +40.1799999999999997 0.0000000000000000 +40.1899999999999977 0.0000000000000000 +40.2000000000000028 0.0000000000000000 +40.2100000000000009 0.0000000000000000 +40.2199999999999989 0.0000000000000000 +40.2300000000000040 0.0000000000000000 +40.2400000000000020 0.0000000000000000 +40.2500000000000000 0.0000000000000000 +40.2599999999999980 0.0000000000000000 +40.2700000000000031 0.0000000000000000 +40.2800000000000011 0.0000000000000000 +40.2899999999999991 0.0000000000000000 +40.3000000000000043 0.0000000000000000 +40.3100000000000023 0.0000000000000000 +40.3200000000000003 0.0000000000000000 +40.3299999999999983 0.0000000000000000 +40.3400000000000034 0.0000000000000000 +40.3500000000000014 0.0000000000000000 +40.3599999999999994 0.0000000000000000 +40.3699999999999974 0.0000000000000000 +40.3800000000000026 0.0000000000000000 +40.3900000000000006 0.0000000000000000 +40.3999999999999986 0.0000000000000000 +40.4100000000000037 0.0000000000000000 +40.4200000000000017 0.0000000000000000 +40.4299999999999997 0.0000000000000000 +40.4399999999999977 0.0000000000000000 +40.4500000000000028 0.0000000000000000 +40.4600000000000009 0.0000000000000000 +40.4699999999999989 0.0000000000000000 +40.4800000000000040 0.0000000000000000 +40.4900000000000020 0.0000000000000000 +40.5000000000000000 0.0000000000000000 +40.5099999999999980 0.0000000000000000 +40.5200000000000031 0.0000000000000000 +40.5300000000000011 0.0000000000000000 +40.5399999999999991 0.0000000000000000 +40.5500000000000043 0.0000000000000000 +40.5600000000000023 0.0000000000000000 +40.5700000000000003 0.0000000000000000 +40.5799999999999983 0.0000000000000000 +40.5900000000000034 0.0000000000000000 +40.6000000000000014 0.0000000000000000 +40.6099999999999994 0.0000000000000000 +40.6199999999999974 0.0000000000000000 +40.6300000000000026 0.0000000000000000 +40.6400000000000006 0.0000000000000000 +40.6499999999999986 0.0000000000000000 +40.6600000000000037 0.0000000000000000 +40.6700000000000017 0.0000000000000000 +40.6799999999999997 0.0000000000000000 +40.6899999999999977 0.0000000000000000 +40.7000000000000028 0.0000000000000000 +40.7100000000000009 0.0000000000000000 +40.7199999999999989 0.0000000000000000 +40.7300000000000040 0.0000000000000000 +40.7400000000000020 0.0000000000000000 +40.7500000000000000 0.0000000000000000 +40.7599999999999980 0.0000000000000000 +40.7700000000000031 0.0000000000000000 +40.7800000000000011 0.0000000000000000 +40.7899999999999991 0.0000000000000000 +40.8000000000000043 0.0000000000000000 +40.8100000000000023 0.0000000000000000 +40.8200000000000003 0.0000000000000000 +40.8299999999999983 0.0000000000000000 +40.8400000000000034 0.0000000000000000 +40.8500000000000014 0.0000000000000000 +40.8599999999999994 0.0000000000000000 +40.8699999999999974 0.0000000000000000 +40.8800000000000026 0.0000000000000000 +40.8900000000000006 0.0000000000000000 +40.8999999999999986 0.0000000000000000 +40.9100000000000037 0.0000000000000000 +40.9200000000000017 0.0000000000000000 +40.9299999999999997 0.0000000000000000 +40.9399999999999977 0.0000000000000000 +40.9500000000000028 0.0000000000000000 +40.9600000000000009 0.0000000000000000 +40.9699999999999989 0.0000000000000000 +40.9800000000000040 0.0000000000000000 +40.9900000000000020 0.0000000000000000 +41.0000000000000000 0.0000000000000000 +41.0099999999999980 0.0000000000000000 +41.0200000000000031 0.0000000000000000 +41.0300000000000011 0.0000000000000000 +41.0399999999999991 0.0000000000000000 +41.0500000000000043 0.0000000000000000 +41.0600000000000023 0.0000000000000000 +41.0700000000000003 0.0000000000000000 +41.0799999999999983 0.0000000000000000 +41.0900000000000034 0.0000000000000000 +41.1000000000000014 0.0000000000000000 +41.1099999999999994 0.0000000000000000 +41.1199999999999974 0.0000000000000000 +41.1300000000000026 0.0000000000000000 +41.1400000000000006 0.0000000000000000 +41.1499999999999986 0.0000000000000000 +41.1600000000000037 0.0000000000000000 +41.1700000000000017 0.0000000000000000 +41.1799999999999997 0.0000000000000000 +41.1899999999999977 0.0000000000000000 +41.2000000000000028 0.0000000000000000 +41.2100000000000009 0.0000000000000000 +41.2199999999999989 0.0000000000000000 +41.2300000000000040 0.0000000000000000 +41.2400000000000020 0.0000000000000000 +41.2500000000000000 0.0000000000000000 +41.2599999999999980 0.0000000000000000 +41.2700000000000031 0.0000000000000000 +41.2800000000000011 0.0000000000000000 +41.2899999999999991 0.0000000000000000 +41.3000000000000043 0.0000000000000000 +41.3100000000000023 0.0000000000000000 +41.3200000000000003 0.0000000000000000 +41.3299999999999983 0.0000000000000000 +41.3400000000000034 0.0000000000000000 +41.3500000000000014 0.0000000000000000 +41.3599999999999994 0.0000000000000000 +41.3699999999999974 0.0000000000000000 +41.3800000000000026 0.0000000000000000 +41.3900000000000006 0.0000000000000000 +41.3999999999999986 0.0000000000000000 +41.4100000000000037 0.0000000000000000 +41.4200000000000017 0.0000000000000000 +41.4299999999999997 0.0000000000000000 +41.4399999999999977 0.0000000000000000 +41.4500000000000028 0.0000000000000000 +41.4600000000000009 0.0000000000000000 +41.4699999999999989 0.0000000000000000 +41.4800000000000040 0.0000000000000000 +41.4900000000000020 0.0000000000000000 +41.5000000000000000 0.0000000000000000 +41.5099999999999980 0.0000000000000000 +41.5200000000000031 0.0000000000000000 +41.5300000000000011 0.0000000000000000 +41.5399999999999991 0.0000000000000000 +41.5500000000000043 0.0000000000000000 +41.5600000000000023 0.0000000000000000 +41.5700000000000003 0.0000000000000000 +41.5799999999999983 0.0000000000000000 +41.5900000000000034 0.0000000000000000 +41.6000000000000014 0.0000000000000000 +41.6099999999999994 0.0000000000000000 +41.6199999999999974 0.0000000000000000 +41.6300000000000026 0.0000000000000000 +41.6400000000000006 0.0000000000000000 +41.6499999999999986 0.0000000000000000 +41.6600000000000037 0.0000000000000000 +41.6700000000000017 0.0000000000000000 +41.6799999999999997 0.0000000000000000 +41.6899999999999977 0.0000000000000000 +41.7000000000000028 0.0000000000000000 +41.7100000000000009 0.0000000000000000 +41.7199999999999989 0.0000000000000000 +41.7300000000000040 0.0000000000000000 +41.7400000000000020 0.0000000000000000 +41.7500000000000000 0.0000000000000000 +41.7599999999999980 0.0000000000000000 +41.7700000000000031 0.0000000000000000 +41.7800000000000011 0.0000000000000000 +41.7899999999999991 0.0000000000000000 +41.8000000000000043 0.0000000000000000 +41.8100000000000023 0.0000000000000000 +41.8200000000000003 0.0000000000000000 +41.8299999999999983 0.0000000000000000 +41.8400000000000034 0.0000000000000000 +41.8500000000000014 0.0000000000000000 +41.8599999999999994 0.0000000000000000 +41.8699999999999974 0.0000000000000000 +41.8800000000000026 0.0000000000000000 +41.8900000000000006 0.0000000000000000 +41.8999999999999986 0.0000000000000000 +41.9100000000000037 0.0000000000000000 +41.9200000000000017 0.0000000000000000 +41.9299999999999997 0.0000000000000000 +41.9399999999999977 0.0000000000000000 +41.9500000000000028 0.0000000000000000 +41.9600000000000009 0.0000000000000000 +41.9699999999999989 0.0000000000000000 +41.9800000000000040 0.0000000000000000 +41.9900000000000020 0.0000000000000000 +42.0000000000000000 0.0000000000000000 +42.0099999999999980 0.0000000000000000 +42.0200000000000031 0.0000000000000000 +42.0300000000000011 0.0000000000000000 +42.0399999999999991 0.0000000000000000 +42.0500000000000043 0.0000000000000000 +42.0600000000000023 0.0000000000000000 +42.0700000000000003 0.0000000000000000 +42.0799999999999983 0.0000000000000000 +42.0900000000000034 0.0000000000000000 +42.1000000000000014 0.0000000000000000 +42.1099999999999994 0.0000000000000000 +42.1199999999999974 0.0000000000000000 +42.1300000000000026 0.0000000000000000 +42.1400000000000006 0.0000000000000000 +42.1499999999999986 0.0000000000000000 +42.1600000000000037 0.0000000000000000 +42.1700000000000017 0.0000000000000000 +42.1799999999999997 0.0000000000000000 +42.1899999999999977 0.0000000000000000 +42.2000000000000028 0.0000000000000000 +42.2100000000000009 0.0000000000000000 +42.2199999999999989 0.0000000000000000 +42.2300000000000040 0.0000000000000000 +42.2400000000000020 0.0000000000000000 +42.2500000000000000 0.0000000000000000 +42.2599999999999980 0.0000000000000000 +42.2700000000000031 0.0000000000000000 +42.2800000000000011 0.0000000000000000 +42.2899999999999991 0.0000000000000000 +42.3000000000000043 0.0000000000000000 +42.3100000000000023 0.0000000000000000 +42.3200000000000003 0.0000000000000000 +42.3299999999999983 0.0000000000000000 +42.3400000000000034 0.0000000000000000 +42.3500000000000014 0.0000000000000000 +42.3599999999999994 0.0000000000000000 +42.3699999999999974 0.0000000000000000 +42.3800000000000026 0.0000000000000000 +42.3900000000000006 0.0000000000000000 +42.3999999999999986 0.0000000000000000 +42.4100000000000037 0.0000000000000000 +42.4200000000000017 0.0000000000000000 +42.4299999999999997 0.0000000000000000 +42.4399999999999977 0.0000000000000000 +42.4500000000000028 0.0000000000000000 +42.4600000000000009 0.0000000000000000 +42.4699999999999989 0.0000000000000000 +42.4800000000000040 0.0000000000000000 +42.4900000000000020 0.0000000000000000 +42.5000000000000000 0.0000000000000000 +42.5099999999999980 0.0000000000000000 +42.5200000000000031 0.0000000000000000 +42.5300000000000011 0.0000000000000000 +42.5399999999999991 0.0000000000000000 +42.5500000000000043 0.0000000000000000 +42.5600000000000023 0.0000000000000000 +42.5700000000000003 0.0000000000000000 +42.5799999999999983 0.0000000000000000 +42.5900000000000034 0.0000000000000000 +42.6000000000000014 0.0000000000000000 +42.6099999999999994 0.0000000000000000 +42.6199999999999974 0.0000000000000000 +42.6300000000000026 0.0000000000000000 +42.6400000000000006 0.0000000000000000 +42.6499999999999986 0.0000000000000000 +42.6600000000000037 0.0000000000000000 +42.6700000000000017 0.0000000000000000 +42.6799999999999997 0.0000000000000000 +42.6899999999999977 0.0000000000000000 +42.7000000000000028 0.0000000000000000 +42.7100000000000009 0.0000000000000000 +42.7199999999999989 0.0000000000000000 +42.7300000000000040 0.0000000000000000 +42.7400000000000020 0.0000000000000000 +42.7500000000000000 0.0000000000000000 +42.7599999999999980 0.0000000000000000 +42.7700000000000031 0.0000000000000000 +42.7800000000000011 0.0000000000000000 +42.7899999999999991 0.0000000000000000 +42.8000000000000043 0.0000000000000000 +42.8100000000000023 0.0000000000000000 +42.8200000000000003 0.0000000000000000 +42.8299999999999983 0.0000000000000000 +42.8400000000000034 0.0000000000000000 +42.8500000000000014 0.0000000000000000 +42.8599999999999994 0.0000000000000000 +42.8699999999999974 0.0000000000000000 +42.8800000000000026 0.0000000000000000 +42.8900000000000006 0.0000000000000000 +42.8999999999999986 0.0000000000000000 +42.9100000000000037 0.0000000000000000 +42.9200000000000017 0.0000000000000000 +42.9299999999999997 0.0000000000000000 +42.9399999999999977 0.0000000000000000 +42.9500000000000028 0.0000000000000000 +42.9600000000000009 0.0000000000000000 +42.9699999999999989 0.0000000000000000 +42.9800000000000040 0.0000000000000000 +42.9900000000000020 0.0000000000000000 +43.0000000000000000 0.0000000000000000 +43.0099999999999980 0.0000000000000000 +43.0200000000000031 0.0000000000000000 +43.0300000000000011 0.0000000000000000 +43.0399999999999991 0.0000000000000000 +43.0500000000000043 0.0000000000000000 +43.0600000000000023 0.0000000000000000 +43.0700000000000003 0.0000000000000000 +43.0799999999999983 0.0000000000000000 +43.0900000000000034 0.0000000000000000 +43.1000000000000014 0.0000000000000000 +43.1099999999999994 0.0000000000000000 +43.1199999999999974 0.0000000000000000 +43.1300000000000026 0.0000000000000000 +43.1400000000000006 0.0000000000000000 +43.1499999999999986 0.0000000000000000 +43.1600000000000037 0.0000000000000000 +43.1700000000000017 0.0000000000000000 +43.1799999999999997 0.0000000000000000 +43.1899999999999977 0.0000000000000000 +43.2000000000000028 0.0000000000000000 +43.2100000000000009 0.0000000000000000 +43.2199999999999989 0.0000000000000000 +43.2300000000000040 0.0000000000000000 +43.2400000000000020 0.0000000000000000 +43.2500000000000000 0.0000000000000000 +43.2599999999999980 0.0000000000000000 +43.2700000000000031 0.0000000000000000 +43.2800000000000011 0.0000000000000000 +43.2899999999999991 0.0000000000000000 +43.3000000000000043 0.0000000000000000 +43.3100000000000023 0.0000000000000000 +43.3200000000000003 0.0000000000000000 +43.3299999999999983 0.0000000000000000 +43.3400000000000034 0.0000000000000000 +43.3500000000000014 0.0000000000000000 +43.3599999999999994 0.0000000000000000 +43.3699999999999974 0.0000000000000000 +43.3800000000000026 0.0000000000000000 +43.3900000000000006 0.0000000000000000 +43.3999999999999986 0.0000000000000000 +43.4100000000000037 0.0000000000000000 +43.4200000000000017 0.0000000000000000 +43.4299999999999997 0.0000000000000000 +43.4399999999999977 0.0000000000000000 +43.4500000000000028 0.0000000000000000 +43.4600000000000009 0.0000000000000000 +43.4699999999999989 0.0000000000000000 +43.4800000000000040 0.0000000000000000 +43.4900000000000020 0.0000000000000000 +43.5000000000000000 0.0000000000000000 +43.5099999999999980 0.0000000000000000 +43.5200000000000031 0.0000000000000000 +43.5300000000000011 0.0000000000000000 +43.5399999999999991 0.0000000000000000 +43.5500000000000043 0.0000000000000000 +43.5600000000000023 0.0000000000000000 +43.5700000000000003 0.0000000000000000 +43.5799999999999983 0.0000000000000000 +43.5900000000000034 0.0000000000000000 +43.6000000000000014 0.0000000000000000 +43.6099999999999994 0.0000000000000000 +43.6199999999999974 0.0000000000000000 +43.6300000000000026 0.0000000000000000 +43.6400000000000006 0.0000000000000000 +43.6499999999999986 0.0000000000000000 +43.6600000000000037 0.0000000000000000 +43.6700000000000017 0.0000000000000000 +43.6799999999999997 0.0000000000000000 +43.6899999999999977 0.0000000000000000 +43.7000000000000028 0.0000000000000000 +43.7100000000000009 0.0000000000000000 +43.7199999999999989 0.0000000000000000 +43.7300000000000040 0.0000000000000000 +43.7400000000000020 0.0000000000000000 +43.7500000000000000 0.0000000000000000 +43.7599999999999980 0.0000000000000000 +43.7700000000000031 0.0000000000000000 +43.7800000000000011 0.0000000000000000 +43.7899999999999991 0.0000000000000000 +43.8000000000000043 0.0000000000000000 +43.8100000000000023 0.0000000000000000 +43.8200000000000003 0.0000000000000000 +43.8299999999999983 0.0000000000000000 +43.8400000000000034 0.0000000000000000 +43.8500000000000014 0.0000000000000000 +43.8599999999999994 0.0000000000000000 +43.8699999999999974 0.0000000000000000 +43.8800000000000026 0.0000000000000000 +43.8900000000000006 0.0000000000000000 +43.8999999999999986 0.0000000000000000 +43.9100000000000037 0.0000000000000000 +43.9200000000000017 0.0000000000000000 +43.9299999999999997 0.0000000000000000 +43.9399999999999977 0.0000000000000000 +43.9500000000000028 0.0000000000000000 +43.9600000000000009 0.0000000000000000 +43.9699999999999989 0.0000000000000000 +43.9800000000000040 0.0000000000000000 +43.9900000000000020 0.0000000000000000 +44.0000000000000000 0.0000000000000000 +44.0099999999999980 0.0000000000000000 +44.0200000000000031 0.0000000000000000 +44.0300000000000011 0.0000000000000000 +44.0399999999999991 0.0000000000000000 +44.0500000000000043 0.0000000000000000 +44.0600000000000023 0.0000000000000000 +44.0700000000000003 0.0000000000000000 +44.0799999999999983 0.0000000000000000 +44.0900000000000034 0.0000000000000000 +44.1000000000000014 0.0000000000000000 +44.1099999999999994 0.0000000000000000 +44.1199999999999974 0.0000000000000000 +44.1300000000000026 0.0000000000000000 +44.1400000000000006 0.0000000000000000 +44.1499999999999986 0.0000000000000000 +44.1600000000000037 0.0000000000000000 +44.1700000000000017 0.0000000000000000 +44.1799999999999997 0.0000000000000000 +44.1899999999999977 0.0000000000000000 +44.2000000000000028 0.0000000000000000 +44.2100000000000009 0.0000000000000000 +44.2199999999999989 0.0000000000000000 +44.2300000000000040 0.0000000000000000 +44.2400000000000020 0.0000000000000000 +44.2500000000000000 0.0000000000000000 +44.2599999999999980 0.0000000000000000 +44.2700000000000031 0.0000000000000000 +44.2800000000000011 0.0000000000000000 +44.2899999999999991 0.0000000000000000 +44.3000000000000043 0.0000000000000000 +44.3100000000000023 0.0000000000000000 +44.3200000000000003 0.0000000000000000 +44.3299999999999983 0.0000000000000000 +44.3400000000000034 0.0000000000000000 +44.3500000000000014 0.0000000000000000 +44.3599999999999994 0.0000000000000000 +44.3699999999999974 0.0000000000000000 +44.3800000000000026 0.0000000000000000 +44.3900000000000006 0.0000000000000000 +44.3999999999999986 0.0000000000000000 +44.4100000000000037 0.0000000000000000 +44.4200000000000017 0.0000000000000000 +44.4299999999999997 0.0000000000000000 +44.4399999999999977 0.0000000000000000 +44.4500000000000028 0.0000000000000000 +44.4600000000000009 0.0000000000000000 +44.4699999999999989 0.0000000000000000 +44.4800000000000040 0.0000000000000000 +44.4900000000000020 0.0000000000000000 +44.5000000000000000 0.0000000000000000 +44.5099999999999980 0.0000000000000000 +44.5200000000000031 0.0000000000000000 +44.5300000000000011 0.0000000000000000 +44.5399999999999991 0.0000000000000000 +44.5500000000000043 0.0000000000000000 +44.5600000000000023 0.0000000000000000 +44.5700000000000003 0.0000000000000000 +44.5799999999999983 0.0000000000000000 +44.5900000000000034 0.0000000000000000 +44.6000000000000014 0.0000000000000000 +44.6099999999999994 0.0000000000000000 +44.6199999999999974 0.0000000000000000 +44.6300000000000026 0.0000000000000000 +44.6400000000000006 0.0000000000000000 +44.6499999999999986 0.0000000000000000 +44.6600000000000037 0.0000000000000000 +44.6700000000000017 0.0000000000000000 +44.6799999999999997 0.0000000000000000 +44.6899999999999977 0.0000000000000000 +44.7000000000000028 0.0000000000000000 +44.7100000000000009 0.0000000000000000 +44.7199999999999989 0.0000000000000000 +44.7300000000000040 0.0000000000000000 +44.7400000000000020 0.0000000000000000 +44.7500000000000000 0.0000000000000000 +44.7599999999999980 0.0000000000000000 +44.7700000000000031 0.0000000000000000 +44.7800000000000011 0.0000000000000000 +44.7899999999999991 0.0000000000000000 +44.8000000000000043 0.0000000000000000 +44.8100000000000023 0.0000000000000000 +44.8200000000000003 0.0000000000000000 +44.8299999999999983 0.0000000000000000 +44.8400000000000034 0.0000000000000000 +44.8500000000000014 0.0000000000000000 +44.8599999999999994 0.0000000000000000 +44.8699999999999974 0.0000000000000000 +44.8800000000000026 0.0000000000000000 +44.8900000000000006 0.0000000000000000 +44.8999999999999986 0.0000000000000000 +44.9100000000000037 0.0000000000000000 +44.9200000000000017 0.0000000000000000 +44.9299999999999997 0.0000000000000000 +44.9399999999999977 0.0000000000000000 +44.9500000000000028 0.0000000000000000 +44.9600000000000009 0.0000000000000000 +44.9699999999999989 0.0000000000000000 +44.9800000000000040 0.0000000000000000 +44.9900000000000020 0.0000000000000000 +45.0000000000000000 0.0000000000000000 +45.0099999999999980 0.0000000000000000 +45.0200000000000031 0.0000000000000000 +45.0300000000000011 0.0000000000000000 +45.0399999999999991 0.0000000000000000 +45.0500000000000043 0.0000000000000000 +45.0600000000000023 0.0000000000000000 +45.0700000000000003 0.0000000000000000 +45.0799999999999983 0.0000000000000000 +45.0900000000000034 0.0000000000000000 +45.1000000000000014 0.0000000000000000 +45.1099999999999994 0.0000000000000000 +45.1199999999999974 0.0000000000000000 +45.1300000000000026 0.0000000000000000 +45.1400000000000006 0.0000000000000000 +45.1499999999999986 0.0000000000000000 +45.1600000000000037 0.0000000000000000 +45.1700000000000017 0.0000000000000000 +45.1799999999999997 0.0000000000000000 +45.1899999999999977 0.0000000000000000 +45.2000000000000028 0.0000000000000000 +45.2100000000000009 0.0000000000000000 +45.2199999999999989 0.0000000000000000 +45.2300000000000040 0.0000000000000000 +45.2400000000000020 0.0000000000000000 +45.2500000000000000 0.0000000000000000 +45.2599999999999980 0.0000000000000000 +45.2700000000000031 0.0000000000000000 +45.2800000000000011 0.0000000000000000 +45.2899999999999991 0.0000000000000000 +45.3000000000000043 0.0000000000000000 +45.3100000000000023 0.0000000000000000 +45.3200000000000003 0.0000000000000000 +45.3299999999999983 0.0000000000000000 +45.3400000000000034 0.0000000000000000 +45.3500000000000014 0.0000000000000000 +45.3599999999999994 0.0000000000000000 +45.3699999999999974 0.0000000000000000 +45.3800000000000026 0.0000000000000000 +45.3900000000000006 0.0000000000000000 +45.3999999999999986 0.0000000000000000 +45.4100000000000037 0.0000000000000000 +45.4200000000000017 0.0000000000000000 +45.4299999999999997 0.0000000000000000 +45.4399999999999977 0.0000000000000000 +45.4500000000000028 0.0000000000000000 +45.4600000000000009 0.0000000000000000 +45.4699999999999989 0.0000000000000000 +45.4800000000000040 0.0000000000000000 +45.4900000000000020 0.0000000000000000 +45.5000000000000000 0.0000000000000000 +45.5099999999999980 0.0000000000000000 +45.5200000000000031 0.0000000000000000 +45.5300000000000011 0.0000000000000000 +45.5399999999999991 0.0000000000000000 +45.5500000000000043 0.0000000000000000 +45.5600000000000023 0.0000000000000000 +45.5700000000000003 0.0000000000000000 +45.5799999999999983 0.0000000000000000 +45.5900000000000034 0.0000000000000000 +45.6000000000000014 0.0000000000000000 +45.6099999999999994 0.0000000000000000 +45.6199999999999974 0.0000000000000000 +45.6300000000000026 0.0000000000000000 +45.6400000000000006 0.0000000000000000 +45.6499999999999986 0.0000000000000000 +45.6600000000000037 0.0000000000000000 +45.6700000000000017 0.0000000000000000 +45.6799999999999997 0.0000000000000000 +45.6899999999999977 0.0000000000000000 +45.7000000000000028 0.0000000000000000 +45.7100000000000009 0.0000000000000000 +45.7199999999999989 0.0000000000000000 +45.7300000000000040 0.0000000000000000 +45.7400000000000020 0.0000000000000000 +45.7500000000000000 0.0000000000000000 +45.7599999999999980 0.0000000000000000 +45.7700000000000031 0.0000000000000000 +45.7800000000000011 0.0000000000000000 +45.7899999999999991 0.0000000000000000 +45.8000000000000043 0.0000000000000000 +45.8100000000000023 0.0000000000000000 +45.8200000000000003 0.0000000000000000 +45.8299999999999983 0.0000000000000000 +45.8400000000000034 0.0000000000000000 +45.8500000000000014 0.0000000000000000 +45.8599999999999994 0.0000000000000000 +45.8699999999999974 0.0000000000000000 +45.8800000000000026 0.0000000000000000 +45.8900000000000006 0.0000000000000000 +45.8999999999999986 0.0000000000000000 +45.9100000000000037 0.0000000000000000 +45.9200000000000017 0.0000000000000000 +45.9299999999999997 0.0000000000000000 +45.9399999999999977 0.0000000000000000 +45.9500000000000028 0.0000000000000000 +45.9600000000000009 0.0000000000000000 +45.9699999999999989 0.0000000000000000 +45.9800000000000040 0.0000000000000000 +45.9900000000000020 0.0000000000000000 +46.0000000000000000 0.0000000000000000 +46.0099999999999980 0.0000000000000000 +46.0200000000000031 0.0000000000000000 +46.0300000000000011 0.0000000000000000 +46.0399999999999991 0.0000000000000000 +46.0500000000000043 0.0000000000000000 +46.0600000000000023 0.0000000000000000 +46.0700000000000003 0.0000000000000000 +46.0799999999999983 0.0000000000000000 +46.0900000000000034 0.0000000000000000 +46.1000000000000014 0.0000000000000000 +46.1099999999999994 0.0000000000000000 +46.1199999999999974 0.0000000000000000 +46.1300000000000026 0.0000000000000000 +46.1400000000000006 0.0000000000000000 +46.1499999999999986 0.0000000000000000 +46.1600000000000037 0.0000000000000000 +46.1700000000000017 0.0000000000000000 +46.1799999999999997 0.0000000000000000 +46.1899999999999977 0.0000000000000000 +46.2000000000000028 0.0000000000000000 +46.2100000000000009 0.0000000000000000 +46.2199999999999989 0.0000000000000000 +46.2300000000000040 0.0000000000000000 +46.2400000000000020 0.0000000000000000 +46.2500000000000000 0.0000000000000000 +46.2599999999999980 0.0000000000000000 +46.2700000000000031 0.0000000000000000 +46.2800000000000011 0.0000000000000000 +46.2899999999999991 0.0000000000000000 +46.3000000000000043 0.0000000000000000 +46.3100000000000023 0.0000000000000000 +46.3200000000000003 0.0000000000000000 +46.3299999999999983 0.0000000000000000 +46.3400000000000034 0.0000000000000000 +46.3500000000000014 0.0000000000000000 +46.3599999999999994 0.0000000000000000 +46.3699999999999974 0.0000000000000000 +46.3800000000000026 0.0000000000000000 +46.3900000000000006 0.0000000000000000 +46.3999999999999986 0.0000000000000000 +46.4100000000000037 0.0000000000000000 +46.4200000000000017 0.0000000000000000 +46.4299999999999997 0.0000000000000000 +46.4399999999999977 0.0000000000000000 +46.4500000000000028 0.0000000000000000 +46.4600000000000009 0.0000000000000000 +46.4699999999999989 0.0000000000000000 +46.4800000000000040 0.0000000000000000 +46.4900000000000020 0.0000000000000000 +46.5000000000000000 0.0000000000000000 +46.5099999999999980 0.0000000000000000 +46.5200000000000031 0.0000000000000000 +46.5300000000000011 0.0000000000000000 +46.5399999999999991 0.0000000000000000 +46.5500000000000043 0.0000000000000000 +46.5600000000000023 0.0000000000000000 +46.5700000000000003 0.0000000000000000 +46.5799999999999983 0.0000000000000000 +46.5900000000000034 0.0000000000000000 +46.6000000000000014 0.0000000000000000 +46.6099999999999994 0.0000000000000000 +46.6199999999999974 0.0000000000000000 +46.6300000000000026 0.0000000000000000 +46.6400000000000006 0.0000000000000000 +46.6499999999999986 0.0000000000000000 +46.6600000000000037 0.0000000000000000 +46.6700000000000017 0.0000000000000000 +46.6799999999999997 0.0000000000000000 +46.6899999999999977 0.0000000000000000 +46.7000000000000028 0.0000000000000000 +46.7100000000000009 0.0000000000000000 +46.7199999999999989 0.0000000000000000 +46.7300000000000040 0.0000000000000000 +46.7400000000000020 0.0000000000000000 +46.7500000000000000 0.0000000000000000 +46.7599999999999980 0.0000000000000000 +46.7700000000000031 0.0000000000000000 +46.7800000000000011 0.0000000000000000 +46.7899999999999991 0.0000000000000000 +46.8000000000000043 0.0000000000000000 +46.8100000000000023 0.0000000000000000 +46.8200000000000003 0.0000000000000000 +46.8299999999999983 0.0000000000000000 +46.8400000000000034 0.0000000000000000 +46.8500000000000014 0.0000000000000000 +46.8599999999999994 0.0000000000000000 +46.8699999999999974 0.0000000000000000 +46.8800000000000026 0.0000000000000000 +46.8900000000000006 0.0000000000000000 +46.8999999999999986 0.0000000000000000 +46.9100000000000037 0.0000000000000000 +46.9200000000000017 0.0000000000000000 +46.9299999999999997 0.0000000000000000 +46.9399999999999977 0.0000000000000000 +46.9500000000000028 0.0000000000000000 +46.9600000000000009 0.0000000000000000 +46.9699999999999989 0.0000000000000000 +46.9800000000000040 0.0000000000000000 +46.9900000000000020 0.0000000000000000 +47.0000000000000000 0.0000000000000000 +47.0099999999999980 0.0000000000000000 +47.0200000000000031 0.0000000000000000 +47.0300000000000011 0.0000000000000000 +47.0399999999999991 0.0000000000000000 +47.0500000000000043 0.0000000000000000 +47.0600000000000023 0.0000000000000000 +47.0700000000000003 0.0000000000000000 +47.0799999999999983 0.0000000000000000 +47.0900000000000034 0.0000000000000000 +47.1000000000000014 0.0000000000000000 +47.1099999999999994 0.0000000000000000 +47.1199999999999974 0.0000000000000000 +47.1300000000000026 0.0000000000000000 +47.1400000000000006 0.0000000000000000 +47.1499999999999986 0.0000000000000000 +47.1600000000000037 0.0000000000000000 +47.1700000000000017 0.0000000000000000 +47.1799999999999997 0.0000000000000000 +47.1899999999999977 0.0000000000000000 +47.2000000000000028 0.0000000000000000 +47.2100000000000009 0.0000000000000000 +47.2199999999999989 0.0000000000000000 +47.2300000000000040 0.0000000000000000 +47.2400000000000020 0.0000000000000000 +47.2500000000000000 0.0000000000000000 +47.2599999999999980 0.0000000000000000 +47.2700000000000031 0.0000000000000000 +47.2800000000000011 0.0000000000000000 +47.2899999999999991 0.0000000000000000 +47.3000000000000043 0.0000000000000000 +47.3100000000000023 0.0000000000000000 +47.3200000000000003 0.0000000000000000 +47.3299999999999983 0.0000000000000000 +47.3400000000000034 0.0000000000000000 +47.3500000000000014 0.0000000000000000 +47.3599999999999994 0.0000000000000000 +47.3699999999999974 0.0000000000000000 +47.3800000000000026 0.0000000000000000 +47.3900000000000006 0.0000000000000000 +47.3999999999999986 0.0000000000000000 +47.4100000000000037 0.0000000000000000 +47.4200000000000017 0.0000000000000000 +47.4299999999999997 0.0000000000000000 +47.4399999999999977 0.0000000000000000 +47.4500000000000028 0.0000000000000000 +47.4600000000000009 0.0000000000000000 +47.4699999999999989 0.0000000000000000 +47.4800000000000040 0.0000000000000000 +47.4900000000000020 0.0000000000000000 +47.5000000000000000 0.0000000000000000 +47.5099999999999980 0.0000000000000000 +47.5200000000000031 0.0000000000000000 +47.5300000000000011 0.0000000000000000 +47.5399999999999991 0.0000000000000000 +47.5500000000000043 0.0000000000000000 +47.5600000000000023 0.0000000000000000 +47.5700000000000003 0.0000000000000000 +47.5799999999999983 0.0000000000000000 +47.5900000000000034 0.0000000000000000 +47.6000000000000014 0.0000000000000000 +47.6099999999999994 0.0000000000000000 +47.6199999999999974 0.0000000000000000 +47.6300000000000026 0.0000000000000000 +47.6400000000000006 0.0000000000000000 +47.6499999999999986 0.0000000000000000 +47.6600000000000037 0.0000000000000000 +47.6700000000000017 0.0000000000000000 +47.6799999999999997 0.0000000000000000 +47.6899999999999977 0.0000000000000000 +47.7000000000000028 0.0000000000000000 +47.7100000000000009 0.0000000000000000 +47.7199999999999989 0.0000000000000000 +47.7300000000000040 0.0000000000000000 +47.7400000000000020 0.0000000000000000 +47.7500000000000000 0.0000000000000000 +47.7599999999999980 0.0000000000000000 +47.7700000000000031 0.0000000000000000 +47.7800000000000011 0.0000000000000000 +47.7899999999999991 0.0000000000000000 +47.8000000000000043 0.0000000000000000 +47.8100000000000023 0.0000000000000000 +47.8200000000000003 0.0000000000000000 +47.8299999999999983 0.0000000000000000 +47.8400000000000034 0.0000000000000000 +47.8500000000000014 0.0000000000000000 +47.8599999999999994 0.0000000000000000 +47.8700000000000045 0.0000000000000000 +47.8800000000000026 0.0000000000000000 +47.8900000000000006 0.0000000000000000 +47.8999999999999986 0.0000000000000000 +47.9100000000000037 0.0000000000000000 +47.9200000000000017 0.0000000000000000 +47.9299999999999997 0.0000000000000000 +47.9399999999999977 0.0000000000000000 +47.9500000000000028 0.0000000000000000 +47.9600000000000009 0.0000000000000000 +47.9699999999999989 0.0000000000000000 +47.9800000000000040 0.0000000000000000 +47.9900000000000020 0.0000000000000000 +48.0000000000000000 0.0000000000000000 +48.0099999999999980 0.0000000000000000 +48.0200000000000031 0.0000000000000000 +48.0300000000000011 0.0000000000000000 +48.0399999999999991 0.0000000000000000 +48.0500000000000043 0.0000000000000000 +48.0600000000000023 0.0000000000000000 +48.0700000000000003 0.0000000000000000 +48.0799999999999983 0.0000000000000000 +48.0900000000000034 0.0000000000000000 +48.1000000000000014 0.0000000000000000 +48.1099999999999994 0.0000000000000000 +48.1200000000000045 0.0000000000000000 +48.1300000000000026 0.0000000000000000 +48.1400000000000006 0.0000000000000000 +48.1499999999999986 0.0000000000000000 +48.1600000000000037 0.0000000000000000 +48.1700000000000017 0.0000000000000000 +48.1799999999999997 0.0000000000000000 +48.1899999999999977 0.0000000000000000 +48.2000000000000028 0.0000000000000000 +48.2100000000000009 0.0000000000000000 +48.2199999999999989 0.0000000000000000 +48.2300000000000040 0.0000000000000000 +48.2400000000000020 0.0000000000000000 +48.2500000000000000 0.0000000000000000 +48.2599999999999980 0.0000000000000000 +48.2700000000000031 0.0000000000000000 +48.2800000000000011 0.0000000000000000 +48.2899999999999991 0.0000000000000000 +48.3000000000000043 0.0000000000000000 +48.3100000000000023 0.0000000000000000 +48.3200000000000003 0.0000000000000000 +48.3299999999999983 0.0000000000000000 +48.3400000000000034 0.0000000000000000 +48.3500000000000014 0.0000000000000000 +48.3599999999999994 0.0000000000000000 +48.3700000000000045 0.0000000000000000 +48.3800000000000026 0.0000000000000000 +48.3900000000000006 0.0000000000000000 +48.3999999999999986 0.0000000000000000 +48.4100000000000037 0.0000000000000000 +48.4200000000000017 0.0000000000000000 +48.4299999999999997 0.0000000000000000 +48.4399999999999977 0.0000000000000000 +48.4500000000000028 0.0000000000000000 +48.4600000000000009 0.0000000000000000 +48.4699999999999989 0.0000000000000000 +48.4800000000000040 0.0000000000000000 +48.4900000000000020 0.0000000000000000 +48.5000000000000000 0.0000000000000000 +48.5099999999999980 0.0000000000000000 +48.5200000000000031 0.0000000000000000 +48.5300000000000011 0.0000000000000000 +48.5399999999999991 0.0000000000000000 +48.5500000000000043 0.0000000000000000 +48.5600000000000023 0.0000000000000000 +48.5700000000000003 0.0000000000000000 +48.5799999999999983 0.0000000000000000 +48.5900000000000034 0.0000000000000000 +48.6000000000000014 0.0000000000000000 +48.6099999999999994 0.0000000000000000 +48.6200000000000045 0.0000000000000000 +48.6300000000000026 0.0000000000000000 +48.6400000000000006 0.0000000000000000 +48.6499999999999986 0.0000000000000000 +48.6600000000000037 0.0000000000000000 +48.6700000000000017 0.0000000000000000 +48.6799999999999997 0.0000000000000000 +48.6899999999999977 0.0000000000000000 +48.7000000000000028 0.0000000000000000 +48.7100000000000009 0.0000000000000000 +48.7199999999999989 0.0000000000000000 +48.7300000000000040 0.0000000000000000 +48.7400000000000020 0.0000000000000000 +48.7500000000000000 0.0000000000000000 +48.7599999999999980 0.0000000000000000 +48.7700000000000031 0.0000000000000000 +48.7800000000000011 0.0000000000000000 +48.7899999999999991 0.0000000000000000 +48.8000000000000043 0.0000000000000000 +48.8100000000000023 0.0000000000000000 +48.8200000000000003 0.0000000000000000 +48.8299999999999983 0.0000000000000000 +48.8400000000000034 0.0000000000000000 +48.8500000000000014 0.0000000000000000 +48.8599999999999994 0.0000000000000000 +48.8700000000000045 0.0000000000000000 +48.8800000000000026 0.0000000000000000 +48.8900000000000006 0.0000000000000000 +48.8999999999999986 0.0000000000000000 +48.9100000000000037 0.0000000000000000 +48.9200000000000017 0.0000000000000000 +48.9299999999999997 0.0000000000000000 +48.9399999999999977 0.0000000000000000 +48.9500000000000028 0.0000000000000000 +48.9600000000000009 0.0000000000000000 +48.9699999999999989 0.0000000000000000 +48.9800000000000040 0.0000000000000000 +48.9900000000000020 0.0000000000000000 +49.0000000000000000 0.0000000000000000 +49.0099999999999980 0.0000000000000000 +49.0200000000000031 0.0000000000000000 +49.0300000000000011 0.0000000000000000 +49.0399999999999991 0.0000000000000000 +49.0500000000000043 0.0000000000000000 +49.0600000000000023 0.0000000000000000 +49.0700000000000003 0.0000000000000000 +49.0799999999999983 0.0000000000000000 +49.0900000000000034 0.0000000000000000 +49.1000000000000014 0.0000000000000000 +49.1099999999999994 0.0000000000000000 +49.1200000000000045 0.0000000000000000 +49.1300000000000026 0.0000000000000000 +49.1400000000000006 0.0000000000000000 +49.1499999999999986 0.0000000000000000 +49.1600000000000037 0.0000000000000000 +49.1700000000000017 0.0000000000000000 +49.1799999999999997 0.0000000000000000 +49.1899999999999977 0.0000000000000000 +49.2000000000000028 0.0000000000000000 +49.2100000000000009 0.0000000000000000 +49.2199999999999989 0.0000000000000000 +49.2300000000000040 0.0000000000000000 +49.2400000000000020 0.0000000000000000 +49.2500000000000000 0.0000000000000000 +49.2599999999999980 0.0000000000000000 +49.2700000000000031 0.0000000000000000 +49.2800000000000011 0.0000000000000000 +49.2899999999999991 0.0000000000000000 +49.3000000000000043 0.0000000000000000 +49.3100000000000023 0.0000000000000000 +49.3200000000000003 0.0000000000000000 +49.3299999999999983 0.0000000000000000 +49.3400000000000034 0.0000000000000000 +49.3500000000000014 0.0000000000000000 +49.3599999999999994 0.0000000000000000 +49.3700000000000045 0.0000000000000000 +49.3800000000000026 0.0000000000000000 +49.3900000000000006 0.0000000000000000 +49.3999999999999986 0.0000000000000000 +49.4100000000000037 0.0000000000000000 +49.4200000000000017 0.0000000000000000 +49.4299999999999997 0.0000000000000000 +49.4399999999999977 0.0000000000000000 +49.4500000000000028 0.0000000000000000 +49.4600000000000009 0.0000000000000000 +49.4699999999999989 0.0000000000000000 +49.4800000000000040 0.0000000000000000 +49.4900000000000020 0.0000000000000000 +49.5000000000000000 0.0000000000000000 +49.5099999999999980 0.0000000000000000 +49.5200000000000031 0.0000000000000000 +49.5300000000000011 0.0000000000000000 +49.5399999999999991 0.0000000000000000 +49.5500000000000043 0.0000000000000000 +49.5600000000000023 0.0000000000000000 +49.5700000000000003 0.0000000000000000 +49.5799999999999983 0.0000000000000000 +49.5900000000000034 0.0000000000000000 +49.6000000000000014 0.0000000000000000 +49.6099999999999994 0.0000000000000000 +49.6200000000000045 0.0000000000000000 +49.6300000000000026 0.0000000000000000 +49.6400000000000006 0.0000000000000000 +49.6499999999999986 0.0000000000000000 +49.6600000000000037 0.0000000000000000 +49.6700000000000017 0.0000000000000000 +49.6799999999999997 0.0000000000000000 +49.6899999999999977 0.0000000000000000 +49.7000000000000028 0.0000000000000000 +49.7100000000000009 0.0000000000000000 +49.7199999999999989 0.0000000000000000 +49.7300000000000040 0.0000000000000000 +49.7400000000000020 0.0000000000000000 +49.7500000000000000 0.0000000000000000 +49.7599999999999980 0.0000000000000000 +49.7700000000000031 0.0000000000000000 +49.7800000000000011 0.0000000000000000 +49.7899999999999991 0.0000000000000000 +49.8000000000000043 0.0000000000000000 +49.8100000000000023 0.0000000000000000 +49.8200000000000003 0.0000000000000000 +49.8299999999999983 0.0000000000000000 +49.8400000000000034 0.0000000000000000 +49.8500000000000014 0.0000000000000000 +49.8599999999999994 0.0000000000000000 +49.8700000000000045 0.0000000000000000 +49.8800000000000026 0.0000000000000000 +49.8900000000000006 0.0000000000000000 +49.8999999999999986 0.0000000000000000 +49.9100000000000037 0.0000000000000000 +49.9200000000000017 0.0000000000000000 +49.9299999999999997 0.0000000000000000 +49.9399999999999977 0.0000000000000000 +49.9500000000000028 0.0000000000000000 +49.9600000000000009 0.0000000000000000 +49.9699999999999989 0.0000000000000000 +49.9800000000000040 0.0000000000000000 +49.9900000000000020 0.0000000000000000 +50.0000000000000000 0.0000000000000000 +50.0099999999999980 0.0000000000000000 +50.0200000000000031 0.0000000000000000 +50.0300000000000011 0.0000000000000000 +50.0399999999999991 0.0000000000000000 +50.0500000000000043 0.0000000000000000 +50.0600000000000023 0.0000000000000000 +50.0700000000000003 0.0000000000000000 +50.0799999999999983 0.0000000000000000 +50.0900000000000034 0.0000000000000000 +50.1000000000000014 0.0000000000000000 +50.1099999999999994 0.0000000000000000 +50.1200000000000045 0.0000000000000000 +50.1300000000000026 0.0000000000000000 +50.1400000000000006 0.0000000000000000 +50.1499999999999986 0.0000000000000000 +50.1600000000000037 0.0000000000000000 +50.1700000000000017 0.0000000000000000 +50.1799999999999997 0.0000000000000000 +50.1899999999999977 0.0000000000000000 +50.2000000000000028 0.0000000000000000 +50.2100000000000009 0.0000000000000000 +50.2199999999999989 0.0000000000000000 +50.2300000000000040 0.0000000000000000 +50.2400000000000020 0.0000000000000000 +50.2500000000000000 0.0000000000000000 +50.2599999999999980 0.0000000000000000 +50.2700000000000031 0.0000000000000000 +50.2800000000000011 0.0000000000000000 +50.2899999999999991 0.0000000000000000 +50.3000000000000043 0.0000000000000000 +50.3100000000000023 0.0000000000000000 +50.3200000000000003 0.0000000000000000 +50.3299999999999983 0.0000000000000000 +50.3400000000000034 0.0000000000000000 +50.3500000000000014 0.0000000000000000 +50.3599999999999994 0.0000000000000000 +50.3700000000000045 0.0000000000000000 +50.3800000000000026 0.0000000000000000 +50.3900000000000006 0.0000000000000000 +50.3999999999999986 0.0000000000000000 +50.4100000000000037 0.0000000000000000 +50.4200000000000017 0.0000000000000000 +50.4299999999999997 0.0000000000000000 +50.4399999999999977 0.0000000000000000 +50.4500000000000028 0.0000000000000000 +50.4600000000000009 0.0000000000000000 +50.4699999999999989 0.0000000000000000 +50.4800000000000040 0.0000000000000000 +50.4900000000000020 0.0000000000000000 +50.5000000000000000 0.0000000000000000 +50.5099999999999980 0.0000000000000000 +50.5200000000000031 0.0000000000000000 +50.5300000000000011 0.0000000000000000 +50.5399999999999991 0.0000000000000000 +50.5500000000000043 0.0000000000000000 +50.5600000000000023 0.0000000000000000 +50.5700000000000003 0.0000000000000000 +50.5799999999999983 0.0000000000000000 +50.5900000000000034 0.0000000000000000 +50.6000000000000014 0.0000000000000000 +50.6099999999999994 0.0000000000000000 +50.6200000000000045 0.0000000000000000 +50.6300000000000026 0.0000000000000000 +50.6400000000000006 0.0000000000000000 +50.6499999999999986 0.0000000000000000 +50.6600000000000037 0.0000000000000000 +50.6700000000000017 0.0000000000000000 +50.6799999999999997 0.0000000000000000 +50.6899999999999977 0.0000000000000000 +50.7000000000000028 0.0000000000000000 +50.7100000000000009 0.0000000000000000 +50.7199999999999989 0.0000000000000000 +50.7300000000000040 0.0000000000000000 +50.7400000000000020 0.0000000000000000 +50.7500000000000000 0.0000000000000000 +50.7599999999999980 0.0000000000000000 +50.7700000000000031 0.0000000000000000 +50.7800000000000011 0.0000000000000000 +50.7899999999999991 0.0000000000000000 +50.8000000000000043 0.0000000000000000 +50.8100000000000023 0.0000000000000000 +50.8200000000000003 0.0000000000000000 +50.8299999999999983 0.0000000000000000 +50.8400000000000034 0.0000000000000000 +50.8500000000000014 0.0000000000000000 +50.8599999999999994 0.0000000000000000 +50.8700000000000045 0.0000000000000000 +50.8800000000000026 0.0000000000000000 +50.8900000000000006 0.0000000000000000 +50.8999999999999986 0.0000000000000000 +50.9100000000000037 0.0000000000000000 +50.9200000000000017 0.0000000000000000 +50.9299999999999997 0.0000000000000000 +50.9399999999999977 0.0000000000000000 +50.9500000000000028 0.0000000000000000 +50.9600000000000009 0.0000000000000000 +50.9699999999999989 0.0000000000000000 +50.9800000000000040 0.0000000000000000 +50.9900000000000020 0.0000000000000000 +51.0000000000000000 0.0000000000000000 +51.0099999999999980 0.0000000000000000 +51.0200000000000031 0.0000000000000000 +51.0300000000000011 0.0000000000000000 +51.0399999999999991 0.0000000000000000 +51.0500000000000043 0.0000000000000000 +51.0600000000000023 0.0000000000000000 +51.0700000000000003 0.0000000000000000 +51.0799999999999983 0.0000000000000000 +51.0900000000000034 0.0000000000000000 +51.1000000000000014 0.0000000000000000 +51.1099999999999994 0.0000000000000000 +51.1200000000000045 0.0000000000000000 +51.1300000000000026 0.0000000000000000 +51.1400000000000006 0.0000000000000000 +51.1499999999999986 0.0000000000000000 +51.1600000000000037 0.0000000000000000 +51.1700000000000017 0.0000000000000000 +51.1799999999999997 0.0000000000000000 +51.1899999999999977 0.0000000000000000 +51.2000000000000028 0.0000000000000000 +51.2100000000000009 0.0000000000000000 +51.2199999999999989 0.0000000000000000 +51.2300000000000040 0.0000000000000000 +51.2400000000000020 0.0000000000000000 +51.2500000000000000 0.0000000000000000 +51.2599999999999980 0.0000000000000000 +51.2700000000000031 0.0000000000000000 +51.2800000000000011 0.0000000000000000 +51.2899999999999991 0.0000000000000000 +51.3000000000000043 0.0000000000000000 +51.3100000000000023 0.0000000000000000 +51.3200000000000003 0.0000000000000000 +51.3299999999999983 0.0000000000000000 +51.3400000000000034 0.0000000000000000 +51.3500000000000014 0.0000000000000000 +51.3599999999999994 0.0000000000000000 +51.3700000000000045 0.0000000000000000 +51.3800000000000026 0.0000000000000000 +51.3900000000000006 0.0000000000000000 +51.3999999999999986 0.0000000000000000 +51.4100000000000037 0.0000000000000000 +51.4200000000000017 0.0000000000000000 +51.4299999999999997 0.0000000000000000 +51.4399999999999977 0.0000000000000000 +51.4500000000000028 0.0000000000000000 +51.4600000000000009 0.0000000000000000 +51.4699999999999989 0.0000000000000000 +51.4800000000000040 0.0000000000000000 +51.4900000000000020 0.0000000000000000 +51.5000000000000000 0.0000000000000000 +51.5099999999999980 0.0000000000000000 +51.5200000000000031 0.0000000000000000 +51.5300000000000011 0.0000000000000000 +51.5399999999999991 0.0000000000000000 +51.5500000000000043 0.0000000000000000 +51.5600000000000023 0.0000000000000000 +51.5700000000000003 0.0000000000000000 +51.5799999999999983 0.0000000000000000 +51.5900000000000034 0.0000000000000000 +51.6000000000000014 0.0000000000000000 +51.6099999999999994 0.0000000000000000 +51.6200000000000045 0.0000000000000000 +51.6300000000000026 0.0000000000000000 +51.6400000000000006 0.0000000000000000 +51.6499999999999986 0.0000000000000000 +51.6600000000000037 0.0000000000000000 +51.6700000000000017 0.0000000000000000 +51.6799999999999997 0.0000000000000000 +51.6899999999999977 0.0000000000000000 +51.7000000000000028 0.0000000000000000 +51.7100000000000009 0.0000000000000000 +51.7199999999999989 0.0000000000000000 +51.7300000000000040 0.0000000000000000 +51.7400000000000020 0.0000000000000000 +51.7500000000000000 0.0000000000000000 +51.7599999999999980 0.0000000000000000 +51.7700000000000031 0.0000000000000000 +51.7800000000000011 0.0000000000000000 +51.7899999999999991 0.0000000000000000 +51.8000000000000043 0.0000000000000000 +51.8100000000000023 0.0000000000000000 +51.8200000000000003 0.0000000000000000 +51.8299999999999983 0.0000000000000000 +51.8400000000000034 0.0000000000000000 +51.8500000000000014 0.0000000000000000 +51.8599999999999994 0.0000000000000000 +51.8700000000000045 0.0000000000000000 +51.8800000000000026 0.0000000000000000 +51.8900000000000006 0.0000000000000000 +51.8999999999999986 0.0000000000000000 +51.9100000000000037 0.0000000000000000 +51.9200000000000017 0.0000000000000000 +51.9299999999999997 0.0000000000000000 +51.9399999999999977 0.0000000000000000 +51.9500000000000028 0.0000000000000000 +51.9600000000000009 0.0000000000000000 +51.9699999999999989 0.0000000000000000 +51.9800000000000040 0.0000000000000000 +51.9900000000000020 0.0000000000000000 +52.0000000000000000 0.0000000000000000 +52.0099999999999980 0.0000000000000000 +52.0200000000000031 0.0000000000000000 +52.0300000000000011 0.0000000000000000 +52.0399999999999991 0.0000000000000000 +52.0500000000000043 0.0000000000000000 +52.0600000000000023 0.0000000000000000 +52.0700000000000003 0.0000000000000000 +52.0799999999999983 0.0000000000000000 +52.0900000000000034 0.0000000000000000 +52.1000000000000014 0.0000000000000000 +52.1099999999999994 0.0000000000000000 +52.1200000000000045 0.0000000000000000 +52.1300000000000026 0.0000000000000000 +52.1400000000000006 0.0000000000000000 +52.1499999999999986 0.0000000000000000 +52.1600000000000037 0.0000000000000000 +52.1700000000000017 0.0000000000000000 +52.1799999999999997 0.0000000000000000 +52.1899999999999977 0.0000000000000000 +52.2000000000000028 0.0000000000000000 +52.2100000000000009 0.0000000000000000 +52.2199999999999989 0.0000000000000000 +52.2300000000000040 0.0000000000000000 +52.2400000000000020 0.0000000000000000 +52.2500000000000000 0.0000000000000000 +52.2599999999999980 0.0000000000000000 +52.2700000000000031 0.0000000000000000 +52.2800000000000011 0.0000000000000000 +52.2899999999999991 0.0000000000000000 +52.3000000000000043 0.0000000000000000 +52.3100000000000023 0.0000000000000000 +52.3200000000000003 0.0000000000000000 +52.3299999999999983 0.0000000000000000 +52.3400000000000034 0.0000000000000000 +52.3500000000000014 0.0000000000000000 +52.3599999999999994 0.0000000000000000 +52.3700000000000045 0.0000000000000000 +52.3800000000000026 0.0000000000000000 +52.3900000000000006 0.0000000000000000 +52.3999999999999986 0.0000000000000000 +52.4100000000000037 0.0000000000000000 +52.4200000000000017 0.0000000000000000 +52.4299999999999997 0.0000000000000000 +52.4399999999999977 0.0000000000000000 +52.4500000000000028 0.0000000000000000 +52.4600000000000009 0.0000000000000000 +52.4699999999999989 0.0000000000000000 +52.4800000000000040 0.0000000000000000 +52.4900000000000020 0.0000000000000000 +52.5000000000000000 0.0000000000000000 +52.5099999999999980 0.0000000000000000 +52.5200000000000031 0.0000000000000000 +52.5300000000000011 0.0000000000000000 +52.5399999999999991 0.0000000000000000 +52.5500000000000043 0.0000000000000000 +52.5600000000000023 0.0000000000000000 +52.5700000000000003 0.0000000000000000 +52.5799999999999983 0.0000000000000000 +52.5900000000000034 0.0000000000000000 +52.6000000000000014 0.0000000000000000 +52.6099999999999994 0.0000000000000000 +52.6200000000000045 0.0000000000000000 +52.6300000000000026 0.0000000000000000 +52.6400000000000006 0.0000000000000000 +52.6499999999999986 0.0000000000000000 +52.6600000000000037 0.0000000000000000 +52.6700000000000017 0.0000000000000000 +52.6799999999999997 0.0000000000000000 +52.6899999999999977 0.0000000000000000 +52.7000000000000028 0.0000000000000000 +52.7100000000000009 0.0000000000000000 +52.7199999999999989 0.0000000000000000 +52.7300000000000040 0.0000000000000000 +52.7400000000000020 0.0000000000000000 +52.7500000000000000 0.0000000000000000 +52.7599999999999980 0.0000000000000000 +52.7700000000000031 0.0000000000000000 +52.7800000000000011 0.0000000000000000 +52.7899999999999991 0.0000000000000000 +52.8000000000000043 0.0000000000000000 +52.8100000000000023 0.0000000000000000 +52.8200000000000003 0.0000000000000000 +52.8299999999999983 0.0000000000000000 +52.8400000000000034 0.0000000000000000 +52.8500000000000014 0.0000000000000000 +52.8599999999999994 0.0000000000000000 +52.8700000000000045 0.0000000000000000 +52.8800000000000026 0.0000000000000000 +52.8900000000000006 0.0000000000000000 +52.8999999999999986 0.0000000000000000 +52.9100000000000037 0.0000000000000000 +52.9200000000000017 0.0000000000000000 +52.9299999999999997 0.0000000000000000 +52.9399999999999977 0.0000000000000000 +52.9500000000000028 0.0000000000000000 +52.9600000000000009 0.0000000000000000 +52.9699999999999989 0.0000000000000000 +52.9800000000000040 0.0000000000000000 +52.9900000000000020 0.0000000000000000 +53.0000000000000000 0.0000000000000000 +53.0099999999999980 0.0000000000000000 +53.0200000000000031 0.0000000000000000 +53.0300000000000011 0.0000000000000000 +53.0399999999999991 0.0000000000000000 +53.0500000000000043 0.0000000000000000 +53.0600000000000023 0.0000000000000000 +53.0700000000000003 0.0000000000000000 +53.0799999999999983 0.0000000000000000 +53.0900000000000034 0.0000000000000000 +53.1000000000000014 0.0000000000000000 +53.1099999999999994 0.0000000000000000 +53.1200000000000045 0.0000000000000000 +53.1300000000000026 0.0000000000000000 +53.1400000000000006 0.0000000000000000 +53.1499999999999986 0.0000000000000000 +53.1600000000000037 0.0000000000000000 +53.1700000000000017 0.0000000000000000 +53.1799999999999997 0.0000000000000000 +53.1899999999999977 0.0000000000000000 +53.2000000000000028 0.0000000000000000 +53.2100000000000009 0.0000000000000000 +53.2199999999999989 0.0000000000000000 +53.2300000000000040 0.0000000000000000 +53.2400000000000020 0.0000000000000000 +53.2500000000000000 0.0000000000000000 +53.2599999999999980 0.0000000000000000 +53.2700000000000031 0.0000000000000000 +53.2800000000000011 0.0000000000000000 +53.2899999999999991 0.0000000000000000 +53.3000000000000043 0.0000000000000000 +53.3100000000000023 0.0000000000000000 +53.3200000000000003 0.0000000000000000 +53.3299999999999983 0.0000000000000000 +53.3400000000000034 0.0000000000000000 +53.3500000000000014 0.0000000000000000 +53.3599999999999994 0.0000000000000000 +53.3700000000000045 0.0000000000000000 +53.3800000000000026 0.0000000000000000 +53.3900000000000006 0.0000000000000000 +53.3999999999999986 0.0000000000000000 +53.4100000000000037 0.0000000000000000 +53.4200000000000017 0.0000000000000000 +53.4299999999999997 0.0000000000000000 +53.4399999999999977 0.0000000000000000 +53.4500000000000028 0.0000000000000000 +53.4600000000000009 0.0000000000000000 +53.4699999999999989 0.0000000000000000 +53.4800000000000040 0.0000000000000000 +53.4900000000000020 0.0000000000000000 +53.5000000000000000 0.0000000000000000 +53.5099999999999980 0.0000000000000000 +53.5200000000000031 0.0000000000000000 +53.5300000000000011 0.0000000000000000 +53.5399999999999991 0.0000000000000000 +53.5500000000000043 0.0000000000000000 +53.5600000000000023 0.0000000000000000 +53.5700000000000003 0.0000000000000000 +53.5799999999999983 0.0000000000000000 +53.5900000000000034 0.0000000000000000 +53.6000000000000014 0.0000000000000000 +53.6099999999999994 0.0000000000000000 +53.6200000000000045 0.0000000000000000 +53.6300000000000026 0.0000000000000000 +53.6400000000000006 0.0000000000000000 +53.6499999999999986 0.0000000000000000 +53.6600000000000037 0.0000000000000000 +53.6700000000000017 0.0000000000000000 +53.6799999999999997 0.0000000000000000 +53.6899999999999977 0.0000000000000000 +53.7000000000000028 0.0000000000000000 +53.7100000000000009 0.0000000000000000 +53.7199999999999989 0.0000000000000000 +53.7300000000000040 0.0000000000000000 +53.7400000000000020 0.0000000000000000 +53.7500000000000000 0.0000000000000000 +53.7599999999999980 0.0000000000000000 +53.7700000000000031 0.0000000000000000 +53.7800000000000011 0.0000000000000000 +53.7899999999999991 0.0000000000000000 +53.8000000000000043 0.0000000000000000 +53.8100000000000023 0.0000000000000000 +53.8200000000000003 0.0000000000000000 +53.8299999999999983 0.0000000000000000 +53.8400000000000034 0.0000000000000000 +53.8500000000000014 0.0000000000000000 +53.8599999999999994 0.0000000000000000 +53.8700000000000045 0.0000000000000000 +53.8800000000000026 0.0000000000000000 +53.8900000000000006 0.0000000000000000 +53.8999999999999986 0.0000000000000000 +53.9100000000000037 0.0000000000000000 +53.9200000000000017 0.0000000000000000 +53.9299999999999997 0.0000000000000000 +53.9399999999999977 0.0000000000000000 +53.9500000000000028 0.0000000000000000 +53.9600000000000009 0.0000000000000000 +53.9699999999999989 0.0000000000000000 +53.9800000000000040 0.0000000000000000 +53.9900000000000020 0.0000000000000000 +54.0000000000000000 0.0000000000000000 +54.0099999999999980 0.0000000000000000 +54.0200000000000031 0.0000000000000000 +54.0300000000000011 0.0000000000000000 +54.0399999999999991 0.0000000000000000 +54.0500000000000043 0.0000000000000000 +54.0600000000000023 0.0000000000000000 +54.0700000000000003 0.0000000000000000 +54.0799999999999983 0.0000000000000000 +54.0900000000000034 0.0000000000000000 +54.1000000000000014 0.0000000000000000 +54.1099999999999994 0.0000000000000000 +54.1200000000000045 0.0000000000000000 +54.1300000000000026 0.0000000000000000 +54.1400000000000006 0.0000000000000000 +54.1499999999999986 0.0000000000000000 +54.1600000000000037 0.0000000000000000 +54.1700000000000017 0.0000000000000000 +54.1799999999999997 0.0000000000000000 +54.1899999999999977 0.0000000000000000 +54.2000000000000028 0.0000000000000000 +54.2100000000000009 0.0000000000000000 +54.2199999999999989 0.0000000000000000 +54.2300000000000040 0.0000000000000000 +54.2400000000000020 0.0000000000000000 +54.2500000000000000 0.0000000000000000 +54.2599999999999980 0.0000000000000000 +54.2700000000000031 0.0000000000000000 +54.2800000000000011 0.0000000000000000 +54.2899999999999991 0.0000000000000000 +54.3000000000000043 0.0000000000000000 +54.3100000000000023 0.0000000000000000 +54.3200000000000003 0.0000000000000000 +54.3299999999999983 0.0000000000000000 +54.3400000000000034 0.0000000000000000 +54.3500000000000014 0.0000000000000000 +54.3599999999999994 0.0000000000000000 +54.3700000000000045 0.0000000000000000 +54.3800000000000026 0.0000000000000000 +54.3900000000000006 0.0000000000000000 +54.3999999999999986 0.0000000000000000 +54.4100000000000037 0.0000000000000000 +54.4200000000000017 0.0000000000000000 +54.4299999999999997 0.0000000000000000 +54.4399999999999977 0.0000000000000000 +54.4500000000000028 0.0000000000000000 +54.4600000000000009 0.0000000000000000 +54.4699999999999989 0.0000000000000000 +54.4800000000000040 0.0000000000000000 +54.4900000000000020 0.0000000000000000 +54.5000000000000000 0.0000000000000000 +54.5099999999999980 0.0000000000000000 +54.5200000000000031 0.0000000000000000 +54.5300000000000011 0.0000000000000000 +54.5399999999999991 0.0000000000000000 +54.5500000000000043 0.0000000000000000 +54.5600000000000023 0.0000000000000000 +54.5700000000000003 0.0000000000000000 +54.5799999999999983 0.0000000000000000 +54.5900000000000034 0.0000000000000000 +54.6000000000000014 0.0000000000000000 +54.6099999999999994 0.0000000000000000 +54.6200000000000045 0.0000000000000000 +54.6300000000000026 0.0000000000000000 +54.6400000000000006 0.0000000000000000 +54.6499999999999986 0.0000000000000000 +54.6600000000000037 0.0000000000000000 +54.6700000000000017 0.0000000000000000 +54.6799999999999997 0.0000000000000000 +54.6899999999999977 0.0000000000000000 +54.7000000000000028 0.0000000000000000 +54.7100000000000009 0.0000000000000000 +54.7199999999999989 0.0000000000000000 +54.7300000000000040 0.0000000000000000 +54.7400000000000020 0.0000000000000000 +54.7500000000000000 0.0000000000000000 +54.7599999999999980 0.0000000000000000 +54.7700000000000031 0.0000000000000000 +54.7800000000000011 0.0000000000000000 +54.7899999999999991 0.0000000000000000 +54.8000000000000043 0.0000000000000000 +54.8100000000000023 0.0000000000000000 +54.8200000000000003 0.0000000000000000 +54.8299999999999983 0.0000000000000000 +54.8400000000000034 0.0000000000000000 +54.8500000000000014 0.0000000000000000 +54.8599999999999994 0.0000000000000000 +54.8700000000000045 0.0000000000000000 +54.8800000000000026 0.0000000000000000 +54.8900000000000006 0.0000000000000000 +54.8999999999999986 0.0000000000000000 +54.9100000000000037 0.0000000000000000 +54.9200000000000017 0.0000000000000000 +54.9299999999999997 0.0000000000000000 +54.9399999999999977 0.0000000000000000 +54.9500000000000028 0.0000000000000000 +54.9600000000000009 0.0000000000000000 +54.9699999999999989 0.0000000000000000 +54.9800000000000040 0.0000000000000000 +54.9900000000000020 0.0000000000000000 +55.0000000000000000 0.0000000000000000 +55.0099999999999980 0.0000000000000000 +55.0200000000000031 0.0000000000000000 +55.0300000000000011 0.0000000000000000 +55.0399999999999991 0.0000000000000000 +55.0500000000000043 0.0000000000000000 +55.0600000000000023 0.0000000000000000 +55.0700000000000003 0.0000000000000000 +55.0799999999999983 0.0000000000000000 +55.0900000000000034 0.0000000000000000 +55.1000000000000014 0.0000000000000000 +55.1099999999999994 0.0000000000000000 +55.1200000000000045 0.0000000000000000 +55.1300000000000026 0.0000000000000000 +55.1400000000000006 0.0000000000000000 +55.1499999999999986 0.0000000000000000 +55.1600000000000037 0.0000000000000000 +55.1700000000000017 0.0000000000000000 +55.1799999999999997 0.0000000000000000 +55.1899999999999977 0.0000000000000000 +55.2000000000000028 0.0000000000000000 +55.2100000000000009 0.0000000000000000 +55.2199999999999989 0.0000000000000000 +55.2300000000000040 0.0000000000000000 +55.2400000000000020 0.0000000000000000 +55.2500000000000000 0.0000000000000000 +55.2599999999999980 0.0000000000000000 +55.2700000000000031 0.0000000000000000 +55.2800000000000011 0.0000000000000000 +55.2899999999999991 0.0000000000000000 +55.3000000000000043 0.0000000000000000 +55.3100000000000023 0.0000000000000000 +55.3200000000000003 0.0000000000000000 +55.3299999999999983 0.0000000000000000 +55.3400000000000034 0.0000000000000000 +55.3500000000000014 0.0000000000000000 +55.3599999999999994 0.0000000000000000 +55.3700000000000045 0.0000000000000000 +55.3800000000000026 0.0000000000000000 +55.3900000000000006 0.0000000000000000 +55.3999999999999986 0.0000000000000000 +55.4100000000000037 0.0000000000000000 +55.4200000000000017 0.0000000000000000 +55.4299999999999997 0.0000000000000000 +55.4399999999999977 0.0000000000000000 +55.4500000000000028 0.0000000000000000 +55.4600000000000009 0.0000000000000000 +55.4699999999999989 0.0000000000000000 +55.4800000000000040 0.0000000000000000 +55.4900000000000020 0.0000000000000000 +55.5000000000000000 0.0000000000000000 +55.5099999999999980 0.0000000000000000 +55.5200000000000031 0.0000000000000000 +55.5300000000000011 0.0000000000000000 +55.5399999999999991 0.0000000000000000 +55.5500000000000043 0.0000000000000000 +55.5600000000000023 0.0000000000000000 +55.5700000000000003 0.0000000000000000 +55.5799999999999983 0.0000000000000000 +55.5900000000000034 0.0000000000000000 +55.6000000000000014 0.0000000000000000 +55.6099999999999994 0.0000000000000000 +55.6200000000000045 0.0000000000000000 +55.6300000000000026 0.0000000000000000 +55.6400000000000006 0.0000000000000000 +55.6499999999999986 0.0000000000000000 +55.6600000000000037 0.0000000000000000 +55.6700000000000017 0.0000000000000000 +55.6799999999999997 0.0000000000000000 +55.6899999999999977 0.0000000000000000 +55.7000000000000028 0.0000000000000000 +55.7100000000000009 0.0000000000000000 +55.7199999999999989 0.0000000000000000 +55.7300000000000040 0.0000000000000000 +55.7400000000000020 0.0000000000000000 +55.7500000000000000 0.0000000000000000 +55.7599999999999980 0.0000000000000000 +55.7700000000000031 0.0000000000000000 +55.7800000000000011 0.0000000000000000 +55.7899999999999991 0.0000000000000000 +55.8000000000000043 0.0000000000000000 +55.8100000000000023 0.0000000000000000 +55.8200000000000003 0.0000000000000000 +55.8299999999999983 0.0000000000000000 +55.8400000000000034 0.0000000000000000 +55.8500000000000014 0.0000000000000000 +55.8599999999999994 0.0000000000000000 +55.8700000000000045 0.0000000000000000 +55.8800000000000026 0.0000000000000000 +55.8900000000000006 0.0000000000000000 +55.8999999999999986 0.0000000000000000 +55.9100000000000037 0.0000000000000000 +55.9200000000000017 0.0000000000000000 +55.9299999999999997 0.0000000000000000 +55.9399999999999977 0.0000000000000000 +55.9500000000000028 0.0000000000000000 +55.9600000000000009 0.0000000000000000 +55.9699999999999989 0.0000000000000000 +55.9800000000000040 0.0000000000000000 +55.9900000000000020 0.0000000000000000 +56.0000000000000000 0.0000000000000000 +56.0099999999999980 0.0000000000000000 +56.0200000000000031 0.0000000000000000 +56.0300000000000011 0.0000000000000000 +56.0399999999999991 0.0000000000000000 +56.0500000000000043 0.0000000000000000 +56.0600000000000023 0.0000000000000000 +56.0700000000000003 0.0000000000000000 +56.0799999999999983 0.0000000000000000 +56.0900000000000034 0.0000000000000000 +56.1000000000000014 0.0000000000000000 +56.1099999999999994 0.0000000000000000 +56.1200000000000045 0.0000000000000000 +56.1300000000000026 0.0000000000000000 +56.1400000000000006 0.0000000000000000 +56.1499999999999986 0.0000000000000000 +56.1600000000000037 0.0000000000000000 +56.1700000000000017 0.0000000000000000 +56.1799999999999997 0.0000000000000000 +56.1899999999999977 0.0000000000000000 +56.2000000000000028 0.0000000000000000 +56.2100000000000009 0.0000000000000000 +56.2199999999999989 0.0000000000000000 +56.2300000000000040 0.0000000000000000 +56.2400000000000020 0.0000000000000000 +56.2500000000000000 0.0000000000000000 +56.2599999999999980 0.0000000000000000 +56.2700000000000031 0.0000000000000000 +56.2800000000000011 0.0000000000000000 +56.2899999999999991 0.0000000000000000 +56.3000000000000043 0.0000000000000000 +56.3100000000000023 0.0000000000000000 +56.3200000000000003 0.0000000000000000 +56.3299999999999983 0.0000000000000000 +56.3400000000000034 0.0000000000000000 +56.3500000000000014 0.0000000000000000 +56.3599999999999994 0.0000000000000000 +56.3700000000000045 0.0000000000000000 +56.3800000000000026 0.0000000000000000 +56.3900000000000006 0.0000000000000000 +56.3999999999999986 0.0000000000000000 +56.4100000000000037 0.0000000000000000 +56.4200000000000017 0.0000000000000000 +56.4299999999999997 0.0000000000000000 +56.4399999999999977 0.0000000000000000 +56.4500000000000028 0.0000000000000000 +56.4600000000000009 0.0000000000000000 +56.4699999999999989 0.0000000000000000 +56.4800000000000040 0.0000000000000000 +56.4900000000000020 0.0000000000000000 +56.5000000000000000 0.0000000000000000 +56.5099999999999980 0.0000000000000000 +56.5200000000000031 0.0000000000000000 +56.5300000000000011 0.0000000000000000 +56.5399999999999991 0.0000000000000000 +56.5500000000000043 0.0000000000000000 +56.5600000000000023 0.0000000000000000 +56.5700000000000003 0.0000000000000000 +56.5799999999999983 0.0000000000000000 +56.5900000000000034 0.0000000000000000 +56.6000000000000014 0.0000000000000000 +56.6099999999999994 0.0000000000000000 +56.6200000000000045 0.0000000000000000 +56.6300000000000026 0.0000000000000000 +56.6400000000000006 0.0000000000000000 +56.6499999999999986 0.0000000000000000 +56.6600000000000037 0.0000000000000000 +56.6700000000000017 0.0000000000000000 +56.6799999999999997 0.0000000000000000 +56.6899999999999977 0.0000000000000000 +56.7000000000000028 0.0000000000000000 +56.7100000000000009 0.0000000000000000 +56.7199999999999989 0.0000000000000000 +56.7300000000000040 0.0000000000000000 +56.7400000000000020 0.0000000000000000 +56.7500000000000000 0.0000000000000000 +56.7599999999999980 0.0000000000000000 +56.7700000000000031 0.0000000000000000 +56.7800000000000011 0.0000000000000000 +56.7899999999999991 0.0000000000000000 +56.8000000000000043 0.0000000000000000 +56.8100000000000023 0.0000000000000000 +56.8200000000000003 0.0000000000000000 +56.8299999999999983 0.0000000000000000 +56.8400000000000034 0.0000000000000000 +56.8500000000000014 0.0000000000000000 +56.8599999999999994 0.0000000000000000 +56.8700000000000045 0.0000000000000000 +56.8800000000000026 0.0000000000000000 +56.8900000000000006 0.0000000000000000 +56.8999999999999986 0.0000000000000000 +56.9100000000000037 0.0000000000000000 +56.9200000000000017 0.0000000000000000 +56.9299999999999997 0.0000000000000000 +56.9399999999999977 0.0000000000000000 +56.9500000000000028 0.0000000000000000 +56.9600000000000009 0.0000000000000000 +56.9699999999999989 0.0000000000000000 +56.9800000000000040 0.0000000000000000 +56.9900000000000020 0.0000000000000000 +57.0000000000000000 0.0000000000000000 +57.0099999999999980 0.0000000000000000 +57.0200000000000031 0.0000000000000000 +57.0300000000000011 0.0000000000000000 +57.0399999999999991 0.0000000000000000 +57.0500000000000043 0.0000000000000000 +57.0600000000000023 0.0000000000000000 +57.0700000000000003 0.0000000000000000 +57.0799999999999983 0.0000000000000000 +57.0900000000000034 0.0000000000000000 +57.1000000000000014 0.0000000000000000 +57.1099999999999994 0.0000000000000000 +57.1200000000000045 0.0000000000000000 +57.1300000000000026 0.0000000000000000 +57.1400000000000006 0.0000000000000000 +57.1499999999999986 0.0000000000000000 +57.1600000000000037 0.0000000000000000 +57.1700000000000017 0.0000000000000000 +57.1799999999999997 0.0000000000000000 +57.1899999999999977 0.0000000000000000 +57.2000000000000028 0.0000000000000000 +57.2100000000000009 0.0000000000000000 +57.2199999999999989 0.0000000000000000 +57.2300000000000040 0.0000000000000000 +57.2400000000000020 0.0000000000000000 +57.2500000000000000 0.0000000000000000 +57.2599999999999980 0.0000000000000000 +57.2700000000000031 0.0000000000000000 +57.2800000000000011 0.0000000000000000 +57.2899999999999991 0.0000000000000000 +57.3000000000000043 0.0000000000000000 +57.3100000000000023 0.0000000000000000 +57.3200000000000003 0.0000000000000000 +57.3299999999999983 0.0000000000000000 +57.3400000000000034 0.0000000000000000 +57.3500000000000014 0.0000000000000000 +57.3599999999999994 0.0000000000000000 +57.3700000000000045 0.0000000000000000 +57.3800000000000026 0.0000000000000000 +57.3900000000000006 0.0000000000000000 +57.3999999999999986 0.0000000000000000 +57.4100000000000037 0.0000000000000000 +57.4200000000000017 0.0000000000000000 +57.4299999999999997 0.0000000000000000 +57.4399999999999977 0.0000000000000000 +57.4500000000000028 0.0000000000000000 +57.4600000000000009 0.0000000000000000 +57.4699999999999989 0.0000000000000000 +57.4800000000000040 0.0000000000000000 +57.4900000000000020 0.0000000000000000 +57.5000000000000000 0.0000000000000000 +57.5099999999999980 0.0000000000000000 +57.5200000000000031 0.0000000000000000 +57.5300000000000011 0.0000000000000000 +57.5399999999999991 0.0000000000000000 +57.5500000000000043 0.0000000000000000 +57.5600000000000023 0.0000000000000000 +57.5700000000000003 0.0000000000000000 +57.5799999999999983 0.0000000000000000 +57.5900000000000034 0.0000000000000000 +57.6000000000000014 0.0000000000000000 +57.6099999999999994 0.0000000000000000 +57.6200000000000045 0.0000000000000000 +57.6300000000000026 0.0000000000000000 +57.6400000000000006 0.0000000000000000 +57.6499999999999986 0.0000000000000000 +57.6600000000000037 0.0000000000000000 +57.6700000000000017 0.0000000000000000 +57.6799999999999997 0.0000000000000000 +57.6899999999999977 0.0000000000000000 +57.7000000000000028 0.0000000000000000 +57.7100000000000009 0.0000000000000000 +57.7199999999999989 0.0000000000000000 +57.7300000000000040 0.0000000000000000 +57.7400000000000020 0.0000000000000000 +57.7500000000000000 0.0000000000000000 +57.7599999999999980 0.0000000000000000 +57.7700000000000031 0.0000000000000000 +57.7800000000000011 0.0000000000000000 +57.7899999999999991 0.0000000000000000 +57.8000000000000043 0.0000000000000000 +57.8100000000000023 0.0000000000000000 +57.8200000000000003 0.0000000000000000 +57.8299999999999983 0.0000000000000000 +57.8400000000000034 0.0000000000000000 +57.8500000000000014 0.0000000000000000 +57.8599999999999994 0.0000000000000000 +57.8700000000000045 0.0000000000000000 +57.8800000000000026 0.0000000000000000 +57.8900000000000006 0.0000000000000000 +57.8999999999999986 0.0000000000000000 +57.9100000000000037 0.0000000000000000 +57.9200000000000017 0.0000000000000000 +57.9299999999999997 0.0000000000000000 +57.9399999999999977 0.0000000000000000 +57.9500000000000028 0.0000000000000000 +57.9600000000000009 0.0000000000000000 +57.9699999999999989 0.0000000000000000 +57.9800000000000040 0.0000000000000000 +57.9900000000000020 0.0000000000000000 +58.0000000000000000 0.0000000000000000 +58.0099999999999980 0.0000000000000000 +58.0200000000000031 0.0000000000000000 +58.0300000000000011 0.0000000000000000 +58.0399999999999991 0.0000000000000000 +58.0500000000000043 0.0000000000000000 +58.0600000000000023 0.0000000000000000 +58.0700000000000003 0.0000000000000000 +58.0799999999999983 0.0000000000000000 +58.0900000000000034 0.0000000000000000 +58.1000000000000014 0.0000000000000000 +58.1099999999999994 0.0000000000000000 +58.1200000000000045 0.0000000000000000 +58.1300000000000026 0.0000000000000000 +58.1400000000000006 0.0000000000000000 +58.1499999999999986 0.0000000000000000 +58.1600000000000037 0.0000000000000000 +58.1700000000000017 0.0000000000000000 +58.1799999999999997 0.0000000000000000 +58.1899999999999977 0.0000000000000000 +58.2000000000000028 0.0000000000000000 +58.2100000000000009 0.0000000000000000 +58.2199999999999989 0.0000000000000000 +58.2300000000000040 0.0000000000000000 +58.2400000000000020 0.0000000000000000 +58.2500000000000000 0.0000000000000000 +58.2599999999999980 0.0000000000000000 +58.2700000000000031 0.0000000000000000 +58.2800000000000011 0.0000000000000000 +58.2899999999999991 0.0000000000000000 +58.3000000000000043 0.0000000000000000 +58.3100000000000023 0.0000000000000000 +58.3200000000000003 0.0000000000000000 +58.3299999999999983 0.0000000000000000 +58.3400000000000034 0.0000000000000000 +58.3500000000000014 0.0000000000000000 +58.3599999999999994 0.0000000000000000 +58.3700000000000045 0.0000000000000000 +58.3800000000000026 0.0000000000000000 +58.3900000000000006 0.0000000000000000 +58.3999999999999986 0.0000000000000000 +58.4100000000000037 0.0000000000000000 +58.4200000000000017 0.0000000000000000 +58.4299999999999997 0.0000000000000000 +58.4399999999999977 0.0000000000000000 +58.4500000000000028 0.0000000000000000 +58.4600000000000009 0.0000000000000000 +58.4699999999999989 0.0000000000000000 +58.4800000000000040 0.0000000000000000 +58.4900000000000020 0.0000000000000000 +58.5000000000000000 0.0000000000000000 +58.5099999999999980 0.0000000000000000 +58.5200000000000031 0.0000000000000000 +58.5300000000000011 0.0000000000000000 +58.5399999999999991 0.0000000000000000 +58.5500000000000043 0.0000000000000000 +58.5600000000000023 0.0000000000000000 +58.5700000000000003 0.0000000000000000 +58.5799999999999983 0.0000000000000000 +58.5900000000000034 0.0000000000000000 +58.6000000000000014 0.0000000000000000 +58.6099999999999994 0.0000000000000000 +58.6200000000000045 0.0000000000000000 +58.6300000000000026 0.0000000000000000 +58.6400000000000006 0.0000000000000000 +58.6499999999999986 0.0000000000000000 +58.6600000000000037 0.0000000000000000 +58.6700000000000017 0.0000000000000000 +58.6799999999999997 0.0000000000000000 +58.6899999999999977 0.0000000000000000 +58.7000000000000028 0.0000000000000000 +58.7100000000000009 0.0000000000000000 +58.7199999999999989 0.0000000000000000 +58.7300000000000040 0.0000000000000000 +58.7400000000000020 0.0000000000000000 +58.7500000000000000 0.0000000000000000 +58.7599999999999980 0.0000000000000000 +58.7700000000000031 0.0000000000000000 +58.7800000000000011 0.0000000000000000 +58.7899999999999991 0.0000000000000000 +58.8000000000000043 0.0000000000000000 +58.8100000000000023 0.0000000000000000 +58.8200000000000003 0.0000000000000000 +58.8299999999999983 0.0000000000000000 +58.8400000000000034 0.0000000000000000 +58.8500000000000014 0.0000000000000000 +58.8599999999999994 0.0000000000000000 +58.8700000000000045 0.0000000000000000 +58.8800000000000026 0.0000000000000000 +58.8900000000000006 0.0000000000000000 +58.8999999999999986 0.0000000000000000 +58.9100000000000037 0.0000000000000000 +58.9200000000000017 0.0000000000000000 +58.9299999999999997 0.0000000000000000 +58.9399999999999977 0.0000000000000000 +58.9500000000000028 0.0000000000000000 +58.9600000000000009 0.0000000000000000 +58.9699999999999989 0.0000000000000000 +58.9800000000000040 0.0000000000000000 +58.9900000000000020 0.0000000000000000 +59.0000000000000000 0.0000000000000000 +59.0099999999999980 0.0000000000000000 +59.0200000000000031 0.0000000000000000 +59.0300000000000011 0.0000000000000000 +59.0399999999999991 0.0000000000000000 +59.0500000000000043 0.0000000000000000 +59.0600000000000023 0.0000000000000000 +59.0700000000000003 0.0000000000000000 +59.0799999999999983 0.0000000000000000 +59.0900000000000034 0.0000000000000000 +59.1000000000000014 0.0000000000000000 +59.1099999999999994 0.0000000000000000 +59.1200000000000045 0.0000000000000000 +59.1300000000000026 0.0000000000000000 +59.1400000000000006 0.0000000000000000 +59.1499999999999986 0.0000000000000000 +59.1600000000000037 0.0000000000000000 +59.1700000000000017 0.0000000000000000 +59.1799999999999997 0.0000000000000000 +59.1899999999999977 0.0000000000000000 +59.2000000000000028 0.0000000000000000 +59.2100000000000009 0.0000000000000000 +59.2199999999999989 0.0000000000000000 +59.2300000000000040 0.0000000000000000 +59.2400000000000020 0.0000000000000000 +59.2500000000000000 0.0000000000000000 +59.2599999999999980 0.0000000000000000 +59.2700000000000031 0.0000000000000000 +59.2800000000000011 0.0000000000000000 +59.2899999999999991 0.0000000000000000 +59.3000000000000043 0.0000000000000000 +59.3100000000000023 0.0000000000000000 +59.3200000000000003 0.0000000000000000 +59.3299999999999983 0.0000000000000000 +59.3400000000000034 0.0000000000000000 +59.3500000000000014 0.0000000000000000 +59.3599999999999994 0.0000000000000000 +59.3700000000000045 0.0000000000000000 +59.3800000000000026 0.0000000000000000 +59.3900000000000006 0.0000000000000000 +59.3999999999999986 0.0000000000000000 +59.4100000000000037 0.0000000000000000 +59.4200000000000017 0.0000000000000000 +59.4299999999999997 0.0000000000000000 +59.4399999999999977 0.0000000000000000 +59.4500000000000028 0.0000000000000000 +59.4600000000000009 0.0000000000000000 +59.4699999999999989 0.0000000000000000 +59.4800000000000040 0.0000000000000000 +59.4900000000000020 0.0000000000000000 +59.5000000000000000 0.0000000000000000 +59.5099999999999980 0.0000000000000000 +59.5200000000000031 0.0000000000000000 +59.5300000000000011 0.0000000000000000 +59.5399999999999991 0.0000000000000000 +59.5500000000000043 0.0000000000000000 +59.5600000000000023 0.0000000000000000 +59.5700000000000003 0.0000000000000000 +59.5799999999999983 0.0000000000000000 +59.5900000000000034 0.0000000000000000 +59.6000000000000014 0.0000000000000000 +59.6099999999999994 0.0000000000000000 +59.6200000000000045 0.0000000000000000 +59.6300000000000026 0.0000000000000000 +59.6400000000000006 0.0000000000000000 +59.6499999999999986 0.0000000000000000 +59.6600000000000037 0.0000000000000000 +59.6700000000000017 0.0000000000000000 +59.6799999999999997 0.0000000000000000 +59.6899999999999977 0.0000000000000000 +59.7000000000000028 0.0000000000000000 +59.7100000000000009 0.0000000000000000 +59.7199999999999989 0.0000000000000000 +59.7300000000000040 0.0000000000000000 +59.7400000000000020 0.0000000000000000 +59.7500000000000000 0.0000000000000000 +59.7599999999999980 0.0000000000000000 +59.7700000000000031 0.0000000000000000 +59.7800000000000011 0.0000000000000000 +59.7899999999999991 0.0000000000000000 +59.8000000000000043 0.0000000000000000 +59.8100000000000023 0.0000000000000000 +59.8200000000000003 0.0000000000000000 +59.8299999999999983 0.0000000000000000 +59.8400000000000034 0.0000000000000000 +59.8500000000000014 0.0000000000000000 +59.8599999999999994 0.0000000000000000 +59.8700000000000045 0.0000000000000000 +59.8800000000000026 0.0000000000000000 +59.8900000000000006 0.0000000000000000 +59.8999999999999986 0.0000000000000000 +59.9100000000000037 0.0000000000000000 +59.9200000000000017 0.0000000000000000 +59.9299999999999997 0.0000000000000000 +59.9399999999999977 0.0000000000000000 +59.9500000000000028 0.0000000000000000 +59.9600000000000009 0.0000000000000000 +59.9699999999999989 0.0000000000000000 +59.9800000000000040 0.0000000000000000 +59.9900000000000020 0.0000000000000000 +60.0000000000000000 0.0000000000000000 diff --git a/src/engine/tests/system/gt_data/VIRplanoS/Rec.dat b/src/engine/tests/system/gt_data/VIRplanoS/Rec.dat new file mode 100644 index 00000000..4d221d7b --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/Rec.dat @@ -0,0 +1,6001 @@ +0.0000000000000000 0.0000000000000000 +0.0100000000000000 0.0000000000000000 +0.0200000000000000 0.0000000000000000 +0.0300000000000000 0.0000000000000000 +0.0400000000000000 0.0000000000000000 +0.0500000000000000 0.0000000000000000 +0.0600000000000000 0.0000000000000000 +0.0700000000000000 0.0000000000000000 +0.0800000000000000 0.0000000000000000 +0.0900000000000000 0.0000000000000000 +0.1000000000000000 0.0000000000000000 +0.1100000000000000 0.0000000000000000 +0.1200000000000000 0.0000000000000000 +0.1300000000000000 0.0000000000000000 +0.1400000000000000 0.0000000000000000 +0.1500000000000000 0.0000000000000000 +0.1600000000000000 0.0000000000000000 +0.1700000000000000 0.0000000000000000 +0.1800000000000000 0.0000000000000000 +0.1900000000000000 0.0000000000000000 +0.2000000000000000 0.0000000000000000 +0.2100000000000000 0.0000000000000000 +0.2200000000000000 0.0000000000000000 +0.2300000000000000 0.0000000000000000 +0.2400000000000000 0.0000000000000000 +0.2500000000000000 0.0000000000000000 +0.2600000000000000 0.0000000000000000 +0.2700000000000000 0.0000000000000000 +0.2800000000000000 0.0000000000000000 +0.2900000000000000 0.0000000000000000 +0.3000000000000000 0.0000000000000000 +0.3100000000000000 0.0000000000000000 +0.3200000000000000 0.0000000000000000 +0.3300000000000000 0.0000000000000000 +0.3400000000000000 0.0000000000000000 +0.3500000000000000 0.0000000000000000 +0.3600000000000000 0.0000000000000000 +0.3700000000000000 0.0000000000000000 +0.3800000000000000 0.0000000000000000 +0.3900000000000000 0.0000000000000000 +0.4000000000000000 0.0000000000000000 +0.4100000000000000 0.0000000000000000 +0.4200000000000000 0.0000000000000000 +0.4300000000000000 0.0000000000000000 +0.4400000000000000 0.0000000000000000 +0.4500000000000000 0.0000000000000000 +0.4600000000000000 0.0000000000000000 +0.4700000000000000 0.0000000000000000 +0.4800000000000000 0.0000000000000000 +0.4900000000000000 0.0000000000000000 +0.5000000000000000 0.0000000000000000 +0.5100000000000000 0.0000000000000000 +0.5200000000000000 0.0000000000000000 +0.5300000000000000 0.0000000000000000 +0.5400000000000000 0.0000000000000000 +0.5500000000000000 0.0000000000000000 +0.5600000000000001 0.0000000000000000 +0.5700000000000001 0.0000000000000000 +0.5800000000000000 0.0000000000000000 +0.5900000000000000 0.0000000000000000 +0.6000000000000000 0.0000000000000000 +0.6100000000000000 0.0000000000000000 +0.6200000000000000 0.0000000000000000 +0.6300000000000000 0.0000000000000000 +0.6400000000000000 0.0000000000000000 +0.6500000000000000 0.0000000000000000 +0.6600000000000000 0.0000000000000000 +0.6700000000000000 0.0000000000000000 +0.6800000000000000 0.0000000000000000 +0.6900000000000001 0.0000000000000000 +0.7000000000000001 0.0000000000000000 +0.7100000000000000 0.0000000000000000 +0.7200000000000000 0.0000000000000000 +0.7300000000000000 0.0000000000000000 +0.7400000000000000 0.0000000000000000 +0.7500000000000000 0.0000000000000000 +0.7600000000000000 0.0000000000000000 +0.7700000000000000 0.0000000000000000 +0.7800000000000000 0.0000000000000000 +0.7900000000000000 0.0000000000000000 +0.8000000000000000 0.0000000000000000 +0.8100000000000001 0.0000000000000000 +0.8200000000000001 0.0000000000000000 +0.8300000000000001 0.0000000000000000 +0.8400000000000000 0.0000000000000000 +0.8500000000000000 0.0000000000000000 +0.8600000000000000 0.0000000000000000 +0.8700000000000000 0.0000000000000000 +0.8800000000000000 0.0000000000000000 +0.8900000000000000 0.0000000000000000 +0.9000000000000000 0.0000000000000000 +0.9100000000000000 0.0000000000000000 +0.9200000000000000 0.0000000000000000 +0.9300000000000000 0.0000000000000000 +0.9400000000000001 0.0000000000000000 +0.9500000000000001 0.0000000000000000 +0.9600000000000000 0.0000000000000000 +0.9700000000000000 0.0000000000000000 +0.9800000000000000 0.0000000000000000 +0.9900000000000000 0.0000000000000000 +1.0000000000000000 0.0000000000000000 +1.0100000000000000 0.0000000000000000 +1.0200000000000000 0.0000000000000000 +1.0300000000000000 0.0000000000000000 +1.0400000000000000 0.0000000000000000 +1.0500000000000000 0.0000000000000000 +1.0600000000000001 0.0000000000000000 +1.0700000000000001 0.0000000000000000 +1.0800000000000001 0.0000000000000000 +1.0900000000000001 0.0000000000000000 +1.1000000000000001 0.0000000000000000 +1.1100000000000001 0.0000000000000000 +1.1200000000000001 0.0000000000000000 +1.1300000000000001 0.0000000000000000 +1.1400000000000001 0.0000000000000000 +1.1500000000000001 0.0000000000000000 +1.1599999999999999 0.0000000000000000 +1.1699999999999999 0.0000000000000000 +1.1799999999999999 0.0000000000000000 +1.1899999999999999 0.0000000000000000 +1.2000000000000000 0.0000000000000000 +1.2100000000000000 0.0000000000000000 +1.2200000000000000 0.0000000000000000 +1.2300000000000000 0.0000000000000000 +1.2400000000000000 0.0000000000000000 +1.2500000000000000 0.0000000000000000 +1.2600000000000000 0.0000000000000000 +1.2700000000000000 0.0000000000000000 +1.2800000000000000 0.0000000000000000 +1.2900000000000000 0.0000000000000000 +1.3000000000000000 0.0000000000000000 +1.3100000000000001 0.0000000000000000 +1.3200000000000001 0.0000000000000000 +1.3300000000000001 0.0000000000000000 +1.3400000000000001 0.0000000000000000 +1.3500000000000001 0.0000000000000000 +1.3600000000000001 0.0000000000000000 +1.3700000000000001 0.0000000000000000 +1.3800000000000001 0.0000000000000000 +1.3900000000000001 0.0000000000000000 +1.4000000000000001 0.0000000000000000 +1.4099999999999999 0.0000000000000000 +1.4199999999999999 0.0000000000000000 +1.4299999999999999 0.0000000000000000 +1.4399999999999999 0.0000000000000000 +1.4500000000000000 0.0000000000000000 +1.4600000000000000 0.0000000000000000 +1.4700000000000000 0.0000000000000000 +1.4800000000000000 0.0000000000000000 +1.4900000000000000 0.0000000000000000 +1.5000000000000000 0.0000000000000000 +1.5100000000000000 0.0000000000000000 +1.5200000000000000 0.0000000000000000 +1.5300000000000000 0.0000000000000000 +1.5400000000000000 0.0000000000000000 +1.5500000000000000 0.0000000000000000 +1.5600000000000001 0.0000000000000000 +1.5700000000000001 0.0000000000000000 +1.5800000000000001 0.0000000000000000 +1.5900000000000001 0.0000000000000000 +1.6000000000000001 0.0000000000000000 +1.6100000000000001 0.0000000000000000 +1.6200000000000001 0.0000000000000000 +1.6300000000000001 0.0000000000000000 +1.6400000000000001 0.0000000000000000 +1.6500000000000001 0.0000000000000000 +1.6600000000000001 0.0000000000000000 +1.6699999999999999 0.0000000000000000 +1.6799999999999999 0.0000000000000000 +1.6899999999999999 0.0000000000000000 +1.7000000000000000 0.0000000000000000 +1.7100000000000000 0.0000000000000000 +1.7200000000000000 0.0000000000000000 +1.7300000000000000 0.0000000000000000 +1.7400000000000000 0.0000000000000000 +1.7500000000000000 0.0000000000000000 +1.7600000000000000 0.0000000000000000 +1.7700000000000000 0.0000000000000000 +1.7800000000000000 0.0000000000000000 +1.7900000000000000 0.0000000000000000 +1.8000000000000000 0.0000000000000000 +1.8100000000000001 0.0000000000000000 +1.8200000000000001 0.0000000000000000 +1.8300000000000001 0.0000000000000000 +1.8400000000000001 0.0000000000000000 +1.8500000000000001 0.0000000000000000 +1.8600000000000001 0.0000000000000000 +1.8700000000000001 0.0000000000000000 +1.8800000000000001 0.0000000000000000 +1.8900000000000001 0.0000000000000000 +1.9000000000000001 0.0000000000000000 +1.9100000000000001 0.0000000000000000 +1.9199999999999999 0.0000000000000000 +1.9299999999999999 0.0000000000000000 +1.9399999999999999 0.0000000000000000 +1.9500000000000000 0.0000000000000000 +1.9600000000000000 0.0000000000000000 +1.9700000000000000 0.0000000000000000 +1.9800000000000000 0.0000000000000000 +1.9900000000000000 0.0000000000000000 +2.0000000000000000 0.0000000000000000 +2.0100000000000002 0.0000000000000000 +2.0200000000000000 0.0000000000000000 +2.0300000000000002 0.0000000000000000 +2.0400000000000000 0.0000000000000000 +2.0499999999999998 0.0000000000000000 +2.0600000000000001 0.0000000000000000 +2.0699999999999998 0.0000000000000000 +2.0800000000000001 0.0000000000000000 +2.0899999999999999 0.0000000000000000 +2.1000000000000001 0.0000000000000000 +2.1099999999999999 0.0000000000000000 +2.1200000000000001 0.0000000000000000 +2.1299999999999999 0.0000000000000000 +2.1400000000000001 0.0000000000000000 +2.1499999999999999 0.0000000000000000 +2.1600000000000001 0.0000000000000000 +2.1699999999999999 0.0000000000000000 +2.1800000000000002 0.0000000000000000 +2.1899999999999999 0.0000000000000000 +2.2000000000000002 0.0000000000000000 +2.2100000000000000 0.0000000000000000 +2.2200000000000002 0.0000000000000000 +2.2300000000000000 0.0000000000000000 +2.2400000000000002 0.0000000000000000 +2.2500000000000000 0.0000000000000000 +2.2600000000000002 0.0000000000000000 +2.2700000000000000 0.0000000000000000 +2.2800000000000002 0.0000000000000000 +2.2900000000000000 0.0000000000000000 +2.3000000000000003 0.0000000000000000 +2.3100000000000001 0.0000000000000000 +2.3199999999999998 0.0000000000000000 +2.3300000000000001 0.0000000000000000 +2.3399999999999999 0.0000000000000000 +2.3500000000000001 0.0000000000000000 +2.3599999999999999 0.0000000000000000 +2.3700000000000001 0.0000000000000000 +2.3799999999999999 0.0000000000000000 +2.3900000000000001 0.0000000000000000 +2.3999999999999999 0.0000000000000000 +2.4100000000000001 0.0000000000000000 +2.4199999999999999 0.0000000000000000 +2.4300000000000002 0.0000000000000000 +2.4399999999999999 0.0000000000000000 +2.4500000000000002 0.0000000000000000 +2.4600000000000000 0.0000000000000000 +2.4700000000000002 0.0000000000000000 +2.4800000000000000 0.0000000000000000 +2.4900000000000002 0.0000000000000000 +2.5000000000000000 0.0000000000000000 +2.5100000000000002 0.0000000000000000 +2.5200000000000000 0.0000000000000000 +2.5300000000000002 0.0000000000000000 +2.5400000000000000 0.0000000000000000 +2.5500000000000003 0.0000000000000000 +2.5600000000000001 0.0000000000000000 +2.5699999999999998 0.0000000000000000 +2.5800000000000001 0.0000000000000000 +2.5899999999999999 0.0000000000000000 +2.6000000000000001 0.0000000000000000 +2.6099999999999999 0.0000000000000000 +2.6200000000000001 0.0000000000000000 +2.6299999999999999 0.0000000000000000 +2.6400000000000001 0.0000000000000000 +2.6499999999999999 0.0000000000000000 +2.6600000000000001 0.0000000000000000 +2.6699999999999999 0.0000000000000000 +2.6800000000000002 0.0000000000000000 +2.6899999999999999 0.0000000000000000 +2.7000000000000002 0.0000000000000000 +2.7100000000000000 0.0000000000000000 +2.7200000000000002 0.0000000000000000 +2.7300000000000000 0.0000000000000000 +2.7400000000000002 0.0000000000000000 +2.7500000000000000 0.0000000000000000 +2.7600000000000002 0.0000000000000000 +2.7700000000000000 0.0000000000000000 +2.7800000000000002 0.0000000000000000 +2.7900000000000000 0.0000000000000000 +2.8000000000000003 0.0000000000000000 +2.8100000000000001 0.0000000000000000 +2.8199999999999998 0.0000000000000000 +2.8300000000000001 0.0000000000000000 +2.8399999999999999 0.0000000000000000 +2.8500000000000001 0.0000000000000000 +2.8599999999999999 0.0000000000000000 +2.8700000000000001 0.0000000000000000 +2.8799999999999999 0.0000000000000000 +2.8900000000000001 0.0000000000000000 +2.8999999999999999 0.0000000000000000 +2.9100000000000001 0.0000000000000000 +2.9199999999999999 0.0000000000000000 +2.9300000000000002 0.0000000000000000 +2.9399999999999999 0.0000000000000000 +2.9500000000000002 0.0000000000000000 +2.9600000000000000 0.0000000000000000 +2.9700000000000002 0.0000000000000000 +2.9800000000000000 0.0000000000000000 +2.9900000000000002 0.0000000000000000 +3.0000000000000000 0.0000000000000000 +3.0100000000000002 0.0000000000000000 +3.0200000000000000 0.0000000000000000 +3.0300000000000002 0.0000000000000000 +3.0400000000000000 0.0000000000000000 +3.0500000000000003 0.0000000000000000 +3.0600000000000001 0.0000000000000000 +3.0700000000000003 0.0000000000000000 +3.0800000000000001 0.0000000000000000 +3.0899999999999999 0.0000000000000000 +3.1000000000000001 0.0000000000000000 +3.1099999999999999 0.0000000000000000 +3.1200000000000001 0.0000000000000000 +3.1299999999999999 0.0000000000000000 +3.1400000000000001 0.0000000000000000 +3.1499999999999999 0.0000000000000000 +3.1600000000000001 0.0000000000000000 +3.1699999999999999 0.0000000000000000 +3.1800000000000002 0.0000000000000000 +3.1899999999999999 0.0000000000000000 +3.2000000000000002 0.0000000000000000 +3.2100000000000000 0.0000000000000000 +3.2200000000000002 0.0000000000000000 +3.2300000000000000 0.0000000000000000 +3.2400000000000002 0.0000000000000000 +3.2500000000000000 0.0000000000000000 +3.2600000000000002 0.0000000000000000 +3.2700000000000000 0.0000000000000000 +3.2800000000000002 0.0000000000000000 +3.2900000000000000 0.0000000000000000 +3.3000000000000003 0.0000000000000000 +3.3100000000000001 0.0000000000000000 +3.3200000000000003 0.0000000000000000 +3.3300000000000001 0.0000000000000000 +3.3399999999999999 0.0000000000000000 +3.3500000000000001 0.0000000000000000 +3.3599999999999999 0.0000000000000000 +3.3700000000000001 0.0000000000000000 +3.3799999999999999 0.0000000000000000 +3.3900000000000001 0.0000000000000000 +3.3999999999999999 0.0000000000000000 +3.4100000000000001 0.0000000000000000 +3.4199999999999999 0.0000000000000000 +3.4300000000000002 0.0000000000000000 +3.4399999999999999 0.0000000000000000 +3.4500000000000002 0.0000000000000000 +3.4600000000000000 0.0000000000000000 +3.4700000000000002 0.0000000000000000 +3.4800000000000000 0.0000000000000000 +3.4900000000000002 0.0000000000000000 +3.5000000000000000 0.0000000000000000 +3.5100000000000002 0.0000000000000000 +3.5200000000000000 0.0000000000000000 +3.5300000000000002 0.0000000000000000 +3.5400000000000000 0.0000000000000000 +3.5500000000000003 0.0000000000000000 +3.5600000000000001 0.0000000000000000 +3.5700000000000003 0.0000000000000000 +3.5800000000000001 0.0000000000000000 +3.5899999999999999 0.0000000000000000 +3.6000000000000001 0.0000000000000000 +3.6099999999999999 0.0000000000000000 +3.6200000000000001 0.0000000000000000 +3.6299999999999999 0.0000000000000000 +3.6400000000000001 0.0000000000000000 +3.6499999999999999 0.0000000000000000 +3.6600000000000001 0.0000000000000000 +3.6699999999999999 0.0000000000000000 +3.6800000000000002 0.0000000000000000 +3.6899999999999999 0.0000000000000000 +3.7000000000000002 0.0000000000000000 +3.7100000000000000 0.0000000000000000 +3.7200000000000002 0.0000000000000000 +3.7300000000000000 0.0000000000000000 +3.7400000000000002 0.0000000000000000 +3.7500000000000000 0.0000000000000000 +3.7600000000000002 0.0000000000000000 +3.7700000000000000 0.0000000000000000 +3.7800000000000002 0.0000000000000000 +3.7900000000000000 0.0000000000000000 +3.8000000000000003 0.0000000000000000 +3.8100000000000001 0.0000000000000000 +3.8200000000000003 0.0000000000000000 +3.8300000000000001 0.0000000000000000 +3.8399999999999999 0.0000000000000000 +3.8500000000000001 0.0000000000000000 +3.8599999999999999 0.0000000000000000 +3.8700000000000001 0.0000000000000000 +3.8799999999999999 0.0000000000000000 +3.8900000000000001 0.0000000000000000 +3.8999999999999999 0.0000000000000000 +3.9100000000000001 0.0000000000000000 +3.9199999999999999 0.0000000000000000 +3.9300000000000002 0.0000000000000000 +3.9399999999999999 0.0000000000000000 +3.9500000000000002 0.0000000000000000 +3.9600000000000000 0.0000000000000000 +3.9700000000000002 0.0000000000000000 +3.9800000000000000 0.0000000000000000 +3.9900000000000002 0.0000000000000000 +4.0000000000000000 0.0000000000000000 +4.0099999999999998 0.0000000000000000 +4.0200000000000005 0.0000000000000000 +4.0300000000000002 0.0000000000000000 +4.0400000000000000 0.0000000000000000 +4.0499999999999998 0.0000000000000000 +4.0600000000000005 0.0000000000000000 +4.0700000000000003 0.0000000000000000 +4.0800000000000001 0.0000000000000000 +4.0899999999999999 0.0000000000000000 +4.0999999999999996 0.0000000000000000 +4.1100000000000003 0.0000000000000000 +4.1200000000000001 0.0000000000000000 +4.1299999999999999 0.0000000000000000 +4.1399999999999997 0.0000000000000000 +4.1500000000000004 0.0000000000000000 +4.1600000000000001 0.0000000000000000 +4.1699999999999999 0.0000000000000000 +4.1799999999999997 0.0000000000000000 +4.1900000000000004 0.0000000000000000 +4.2000000000000002 0.0000000000000000 +4.2100000000000000 0.0000000000000000 +4.2199999999999998 0.0000000000000000 +4.2300000000000004 0.0000000000000000 +4.2400000000000002 0.0000000000000000 +4.2500000000000000 0.0000000000000000 +4.2599999999999998 0.0000000000000000 +4.2700000000000005 0.0000000000000000 +4.2800000000000002 0.0000000000000000 +4.2900000000000000 0.0000000000000000 +4.2999999999999998 0.0000000000000000 +4.3100000000000005 0.0000000000000000 +4.3200000000000003 0.0000000000000000 +4.3300000000000001 0.0000000000000000 +4.3399999999999999 0.0000000000000000 +4.3500000000000005 0.0000000000000000 +4.3600000000000003 0.0000000000000000 +4.3700000000000001 0.0000000000000000 +4.3799999999999999 0.0000000000000000 +4.3899999999999997 0.0000000000000000 +4.4000000000000004 0.0000000000000000 +4.4100000000000001 0.0000000000000000 +4.4199999999999999 0.0000000000000000 +4.4299999999999997 0.0000000000000000 +4.4400000000000004 0.0000000000000000 +4.4500000000000002 0.0000000000000000 +4.4600000000000000 0.0000000000000000 +4.4699999999999998 0.0000000000000000 +4.4800000000000004 0.0000000000000000 +4.4900000000000002 0.0000000000000000 +4.5000000000000000 0.0000000000000000 +4.5099999999999998 0.0000000000000000 +4.5200000000000005 0.0000000000000000 +4.5300000000000002 0.0000000000000000 +4.5400000000000000 0.0000000000000000 +4.5499999999999998 0.0000000000000000 +4.5600000000000005 0.0000000000000000 +4.5700000000000003 0.0000000000000000 +4.5800000000000001 0.0000000000000000 +4.5899999999999999 0.0000000000000000 +4.6000000000000005 0.0000000000000000 +4.6100000000000003 0.0000000000000000 +4.6200000000000001 0.0000000000000000 +4.6299999999999999 0.0000000000000000 +4.6399999999999997 0.0000000000000000 +4.6500000000000004 0.0000000000000000 +4.6600000000000001 0.0000000000000000 +4.6699999999999999 0.0000000000000000 +4.6799999999999997 0.0000000000000000 +4.6900000000000004 0.0000000000000000 +4.7000000000000002 0.0000000000000000 +4.7100000000000000 0.0000000000000000 +4.7199999999999998 0.0000000000000000 +4.7300000000000004 0.0000000000000000 +4.7400000000000002 0.0000000000000000 +4.7500000000000000 0.0000000000000000 +4.7599999999999998 0.0000000000000000 +4.7700000000000005 0.0000000000000000 +4.7800000000000002 0.0000000000000000 +4.7900000000000000 0.0000000000000000 +4.7999999999999998 0.0000000000000000 +4.8100000000000005 0.0000000000000000 +4.8200000000000003 0.0000000000000000 +4.8300000000000001 0.0000000000000000 +4.8399999999999999 0.0000000000000000 +4.8500000000000005 0.0000000000000000 +4.8600000000000003 0.0000000000000000 +4.8700000000000001 0.0000000000000000 +4.8799999999999999 0.0000000000000000 +4.8899999999999997 0.0000000000000000 +4.9000000000000004 0.0000000000000000 +4.9100000000000001 0.0000000000000000 +4.9199999999999999 0.0000000000000000 +4.9299999999999997 0.0000000000000000 +4.9400000000000004 0.0000000000000000 +4.9500000000000002 0.0000000000000000 +4.9600000000000000 0.0000000000000000 +4.9699999999999998 0.0000000000000000 +4.9800000000000004 0.0000000000000000 +4.9900000000000002 0.0000000000000000 +5.0000000000000000 0.0000000000000000 +5.0099999999999998 0.0000000000000000 +5.0200000000000005 0.0000000000000000 +5.0300000000000002 0.0000000000000000 +5.0400000000000000 0.0000000000000000 +5.0499999999999998 0.0000000000000000 +5.0600000000000005 0.0000000000000000 +5.0700000000000003 0.0000000000000000 +5.0800000000000001 0.0000000000000000 +5.0899999999999999 0.0000000000000000 +5.1000000000000005 0.0000000000000000 +5.1100000000000003 0.0000000000000000 +5.1200000000000001 0.0000000000000000 +5.1299999999999999 0.0000000000000000 +5.1399999999999997 0.0000000000000000 +5.1500000000000004 0.0000000000000000 +5.1600000000000001 0.0000000000000000 +5.1699999999999999 0.0000000000000000 +5.1799999999999997 0.0000000000000000 +5.1900000000000004 0.0000000000000000 +5.2000000000000002 0.0000000000000000 +5.2100000000000000 0.0000000000000000 +5.2199999999999998 0.0000000000000000 +5.2300000000000004 0.0000000000000000 +5.2400000000000002 0.0000000000000000 +5.2500000000000000 0.0000000000000000 +5.2599999999999998 0.0000000000000000 +5.2700000000000005 0.0000000000000000 +5.2800000000000002 0.0000000000000000 +5.2900000000000000 0.0000000000000000 +5.2999999999999998 0.0000000000000000 +5.3100000000000005 0.0000000000000000 +5.3200000000000003 0.0000000000000000 +5.3300000000000001 0.0000000000000000 +5.3399999999999999 0.0000000000000000 +5.3500000000000005 0.0000000000000000 +5.3600000000000003 0.0000000000000000 +5.3700000000000001 0.0000000000000000 +5.3799999999999999 0.0000000000000000 +5.3899999999999997 0.0000000000000000 +5.4000000000000004 0.0000000000000000 +5.4100000000000001 0.0000000000000000 +5.4199999999999999 0.0000000000000000 +5.4299999999999997 0.0000000000000000 +5.4400000000000004 0.0000000000000000 +5.4500000000000002 0.0000000000000000 +5.4600000000000000 0.0000000000000000 +5.4699999999999998 0.0000000000000000 +5.4800000000000004 0.0000000000000000 +5.4900000000000002 0.0000000000000000 +5.5000000000000000 0.0000000000000000 +5.5099999999999998 0.0000000000000000 +5.5200000000000005 0.0000000000000000 +5.5300000000000002 0.0000000000000000 +5.5400000000000000 0.0000000000000000 +5.5499999999999998 0.0000000000000000 +5.5600000000000005 0.0000000000000000 +5.5700000000000003 0.0000000000000000 +5.5800000000000001 0.0000000000000000 +5.5899999999999999 0.0000000000000000 +5.6000000000000005 0.0000000000000000 +5.6100000000000003 0.0000000000000000 +5.6200000000000001 0.0000000000000000 +5.6299999999999999 0.0000000000000000 +5.6399999999999997 0.0000000000000000 +5.6500000000000004 0.0000000000000000 +5.6600000000000001 0.0000000000000000 +5.6699999999999999 0.0000000000000000 +5.6799999999999997 0.0000000000000000 +5.6900000000000004 0.0000000000000000 +5.7000000000000002 0.0000000000000000 +5.7100000000000000 0.0000000000000000 +5.7199999999999998 0.0000000000000000 +5.7300000000000004 0.0000000000000000 +5.7400000000000002 0.0000000000000000 +5.7500000000000000 0.0000000000000000 +5.7599999999999998 0.0000000000000000 +5.7700000000000005 0.0000000000000000 +5.7800000000000002 0.0000000000000000 +5.7900000000000000 0.0000000000000000 +5.7999999999999998 0.0000000000000000 +5.8100000000000005 0.0000000000000000 +5.8200000000000003 0.0000000000000000 +5.8300000000000001 0.0000000000000000 +5.8399999999999999 0.0000000000000000 +5.8500000000000005 0.0000000000000000 +5.8600000000000003 0.0000000000000000 +5.8700000000000001 0.0000000000000000 +5.8799999999999999 0.0000000000000000 +5.8899999999999997 0.0000000000000000 +5.9000000000000004 0.0000000000000000 +5.9100000000000001 0.0000000000000000 +5.9199999999999999 0.0000000000000000 +5.9299999999999997 0.0000000000000000 +5.9400000000000004 0.0000000000000000 +5.9500000000000002 0.0000000000000000 +5.9600000000000000 0.0000000000000000 +5.9699999999999998 0.0000000000000000 +5.9800000000000004 0.0000000000000000 +5.9900000000000002 0.0000000000000000 +6.0000000000000000 0.0000000000000000 +6.0099999999999998 0.0000000000000000 +6.0200000000000005 0.0000000000000000 +6.0300000000000002 0.0000000000000000 +6.0400000000000000 0.0000000000000000 +6.0499999999999998 0.0000000000000000 +6.0600000000000005 0.0000000000000000 +6.0700000000000003 0.0000000000000000 +6.0800000000000001 0.0000000000000000 +6.0899999999999999 0.0000000000000000 +6.1000000000000005 0.0000000000000000 +6.1100000000000003 0.0000000000000000 +6.1200000000000001 0.0000000000000000 +6.1299999999999999 0.0000000000000000 +6.1400000000000006 0.0000000000000000 +6.1500000000000004 0.0000000000000000 +6.1600000000000001 0.0000000000000000 +6.1699999999999999 0.0000000000000000 +6.1799999999999997 0.0000000000000000 +6.1900000000000004 0.0000000000000000 +6.2000000000000002 0.0000000000000000 +6.2100000000000000 0.0000000000000000 +6.2199999999999998 0.0000000000000000 +6.2300000000000004 0.0000000000000000 +6.2400000000000002 0.0000000000000000 +6.2500000000000000 0.0000000000000000 +6.2599999999999998 0.0000000000000000 +6.2700000000000005 0.0000000000000000 +6.2800000000000002 0.0000000000000000 +6.2900000000000000 0.0000000000000000 +6.2999999999999998 0.0000000000000000 +6.3100000000000005 0.0000000000000000 +6.3200000000000003 0.0000000000000000 +6.3300000000000001 0.0000000000000000 +6.3399999999999999 0.0000000000000000 +6.3500000000000005 0.0000000000000000 +6.3600000000000003 0.0000000000000000 +6.3700000000000001 0.0000000000000000 +6.3799999999999999 0.0000000000000000 +6.3900000000000006 0.0000000000000000 +6.4000000000000004 0.0000000000000000 +6.4100000000000001 0.0000000000000000 +6.4199999999999999 0.0000000000000000 +6.4299999999999997 0.0000000000000000 +6.4400000000000004 0.0000000000000000 +6.4500000000000002 0.0000000000000000 +6.4600000000000000 0.0000000000000000 +6.4699999999999998 0.0000000000000000 +6.4800000000000004 0.0000000000000000 +6.4900000000000002 0.0000000000000000 +6.5000000000000000 0.0000000000000000 +6.5099999999999998 0.0000000000000000 +6.5200000000000005 0.0000000000000000 +6.5300000000000002 0.0000000000000000 +6.5400000000000000 0.0000000000000000 +6.5499999999999998 0.0000000000000000 +6.5600000000000005 0.0000000000000000 +6.5700000000000003 0.0000000000000000 +6.5800000000000001 0.0000000000000000 +6.5899999999999999 0.0000000000000000 +6.6000000000000005 0.0000000000000000 +6.6100000000000003 0.0000000000000000 +6.6200000000000001 0.0000000000000000 +6.6299999999999999 0.0000000000000000 +6.6400000000000006 0.0000000000000000 +6.6500000000000004 0.0000000000000000 +6.6600000000000001 0.0000000000000000 +6.6699999999999999 0.0000000000000000 +6.6799999999999997 0.0000000000000000 +6.6900000000000004 0.0000000000000000 +6.7000000000000002 0.0000000000000000 +6.7100000000000000 0.0000000000000000 +6.7199999999999998 0.0000000000000000 +6.7300000000000004 0.0000000000000000 +6.7400000000000002 0.0000000000000000 +6.7500000000000000 0.0000000000000000 +6.7599999999999998 0.0000000000000000 +6.7700000000000005 0.0000000000000000 +6.7800000000000002 0.0000000000000000 +6.7900000000000000 0.0000000000000000 +6.7999999999999998 0.0000000000000000 +6.8100000000000005 0.0000000000000000 +6.8200000000000003 0.0000000000000000 +6.8300000000000001 0.0000000000000000 +6.8399999999999999 0.0000000000000000 +6.8500000000000005 0.0000000000000000 +6.8600000000000003 0.0000000000000000 +6.8700000000000001 0.0000000000000000 +6.8799999999999999 0.0000000000000000 +6.8900000000000006 0.0000000000000000 +6.9000000000000004 0.0000000000000000 +6.9100000000000001 0.0000000000000000 +6.9199999999999999 0.0000000000000000 +6.9299999999999997 0.0000000000000000 +6.9400000000000004 0.0000000000000000 +6.9500000000000002 0.0000000000000000 +6.9600000000000000 0.0000000000000000 +6.9699999999999998 0.0000000000000000 +6.9800000000000004 0.0000000000000000 +6.9900000000000002 0.0000000000000000 +7.0000000000000000 0.0000000000000000 +7.0099999999999998 0.0000000000000000 +7.0200000000000005 0.0000000000000000 +7.0300000000000002 0.0000000000000000 +7.0400000000000000 0.0000000000000000 +7.0499999999999998 0.0000000000000000 +7.0600000000000005 0.0000000000000000 +7.0700000000000003 0.0000000000000000 +7.0800000000000001 0.0000000000000000 +7.0899999999999999 0.0000000000000000 +7.1000000000000005 0.0000000000000000 +7.1100000000000003 0.0000000000000000 +7.1200000000000001 0.0000000000000000 +7.1299999999999999 0.0000000000000000 +7.1400000000000006 0.0000000000000000 +7.1500000000000004 0.0000000000000000 +7.1600000000000001 0.0000000000000000 +7.1699999999999999 0.0000000000000000 +7.1799999999999997 0.0000000000000000 +7.1900000000000004 0.0000000000000000 +7.2000000000000002 0.0000000000000000 +7.2100000000000000 0.0000000000000000 +7.2199999999999998 0.0000000000000000 +7.2300000000000004 0.0000000000000000 +7.2400000000000002 0.0000000000000000 +7.2500000000000000 0.0000000000000000 +7.2599999999999998 0.0000000000000000 +7.2700000000000005 0.0000000000000000 +7.2800000000000002 0.0000000000000000 +7.2900000000000000 0.0000000000000000 +7.2999999999999998 0.0000000000000000 +7.3100000000000005 0.0000000000000000 +7.3200000000000003 0.0000000000000000 +7.3300000000000001 0.0000000000000000 +7.3399999999999999 0.0000000000000000 +7.3500000000000005 0.0000000000000000 +7.3600000000000003 0.0000000000000000 +7.3700000000000001 0.0000000000000000 +7.3799999999999999 0.0000000000000000 +7.3900000000000006 0.0000000000000000 +7.4000000000000004 0.0000000000000000 +7.4100000000000001 0.0000000000000000 +7.4199999999999999 0.0000000000000000 +7.4299999999999997 0.0000000000000000 +7.4400000000000004 0.0000000000000000 +7.4500000000000002 0.0000000000000000 +7.4600000000000000 0.0000000000000000 +7.4699999999999998 0.0000000000000000 +7.4800000000000004 0.0000000000000000 +7.4900000000000002 0.0000000000000000 +7.5000000000000000 0.0000000000000000 +7.5099999999999998 0.0000000000000000 +7.5200000000000005 0.0000000000000000 +7.5300000000000002 0.0000000000000000 +7.5400000000000000 0.0000000000000000 +7.5499999999999998 0.0000000000000000 +7.5600000000000005 0.0000000000000000 +7.5700000000000003 0.0000000000000000 +7.5800000000000001 0.0000000000000000 +7.5899999999999999 0.0000000000000000 +7.6000000000000005 0.0000000000000000 +7.6100000000000003 0.0000000000000000 +7.6200000000000001 0.0000000000000000 +7.6299999999999999 0.0000000000000000 +7.6400000000000006 0.0000000000000000 +7.6500000000000004 0.0000000000000000 +7.6600000000000001 0.0000000000000000 +7.6699999999999999 0.0000000000000000 +7.6799999999999997 0.0000000000000000 +7.6900000000000004 0.0000000000000000 +7.7000000000000002 0.0000000000000000 +7.7100000000000000 0.0000000000000000 +7.7199999999999998 0.0000000000000000 +7.7300000000000004 0.0000000000000000 +7.7400000000000002 0.0000000000000000 +7.7500000000000000 0.0000000000000000 +7.7599999999999998 0.0000000000000000 +7.7700000000000005 0.0000000000000000 +7.7800000000000002 0.0000000000000000 +7.7900000000000000 0.0000000000000000 +7.7999999999999998 0.0000000000000000 +7.8100000000000005 0.0000000000000000 +7.8200000000000003 0.0000000000000000 +7.8300000000000001 0.0000000000000000 +7.8399999999999999 0.0000000000000000 +7.8500000000000005 0.0000000000000000 +7.8600000000000003 0.0000000000000000 +7.8700000000000001 0.0000000000000000 +7.8799999999999999 0.0000000000000000 +7.8900000000000006 0.0000000000000000 +7.9000000000000004 0.0000000000000000 +7.9100000000000001 0.0000000000000000 +7.9199999999999999 0.0000000000000000 +7.9300000000000006 0.0000000000000000 +7.9400000000000004 0.0000000000000000 +7.9500000000000002 0.0000000000000000 +7.9600000000000000 0.0000000000000000 +7.9699999999999998 0.0000000000000000 +7.9800000000000004 0.0000000000000000 +7.9900000000000002 0.0000000000000000 +8.0000000000000000 0.0000000000000000 +8.0099999999999998 0.0000000000000000 +8.0199999999999996 0.0000000000000000 +8.0299999999999994 0.0000000000000000 +8.0400000000000009 0.0000000000000000 +8.0500000000000007 0.0000000000000000 +8.0600000000000005 0.0000000000000000 +8.0700000000000003 0.0000000000000000 +8.0800000000000001 0.0000000000000000 +8.0899999999999999 0.0000000000000000 +8.0999999999999996 0.0000000000000000 +8.1099999999999994 0.0000000000000000 +8.1200000000000010 0.0000000000000000 +8.1300000000000008 0.0000000000000000 +8.1400000000000006 0.0000000000000000 +8.1500000000000004 0.0000000000000000 +8.1600000000000001 0.0000000000000000 +8.1699999999999999 0.0000000000000000 +8.1799999999999997 0.0000000000000000 +8.1899999999999995 0.0000000000000000 +8.1999999999999993 0.0000000000000000 +8.2100000000000009 0.0000000000000000 +8.2200000000000006 0.0000000000000000 +8.2300000000000004 0.0000000000000000 +8.2400000000000002 0.0000000000000000 +8.2500000000000000 0.0000000000000000 +8.2599999999999998 0.0000000000000000 +8.2699999999999996 0.0000000000000000 +8.2799999999999994 0.0000000000000000 +8.2900000000000009 0.0000000000000000 +8.3000000000000007 0.0000000000000000 +8.3100000000000005 0.0000000000000000 +8.3200000000000003 0.0000000000000000 +8.3300000000000001 0.0000000000000000 +8.3399999999999999 0.0000000000000000 +8.3499999999999996 0.0000000000000000 +8.3599999999999994 0.0000000000000000 +8.3700000000000010 0.0000000000000000 +8.3800000000000008 0.0000000000000000 +8.3900000000000006 0.0000000000000000 +8.4000000000000004 0.0000000000000000 +8.4100000000000001 0.0000000000000000 +8.4199999999999999 0.0000000000000000 +8.4299999999999997 0.0000000000000000 +8.4399999999999995 0.0000000000000000 +8.4499999999999993 0.0000000000000000 +8.4600000000000009 0.0000000000000000 +8.4700000000000006 0.0000000000000000 +8.4800000000000004 0.0000000000000000 +8.4900000000000002 0.0000000000000000 +8.5000000000000000 0.0000000000000000 +8.5099999999999998 0.0000000000000000 +8.5199999999999996 0.0000000000000000 +8.5299999999999994 0.0000000000000000 +8.5400000000000009 0.0000000000000000 +8.5500000000000007 0.0000000000000000 +8.5600000000000005 0.0000000000000000 +8.5700000000000003 0.0000000000000000 +8.5800000000000001 0.0000000000000000 +8.5899999999999999 0.0000000000000000 +8.5999999999999996 0.0000000000000000 +8.6099999999999994 0.0000000000000000 +8.6200000000000010 0.0000000000000000 +8.6300000000000008 0.0000000000000000 +8.6400000000000006 0.0000000000000000 +8.6500000000000004 0.0000000000000000 +8.6600000000000001 0.0000000000000000 +8.6699999999999999 0.0000000000000000 +8.6799999999999997 0.0000000000000000 +8.6899999999999995 0.0000000000000000 +8.7000000000000011 0.0000000000000000 +8.7100000000000009 0.0000000000000000 +8.7200000000000006 0.0000000000000000 +8.7300000000000004 0.0000000000000000 +8.7400000000000002 0.0000000000000000 +8.7500000000000000 0.0000000000000000 +8.7599999999999998 0.0000000000000000 +8.7699999999999996 0.0000000000000000 +8.7799999999999994 0.0000000000000000 +8.7900000000000009 0.0000000000000000 +8.8000000000000007 0.0000000000000000 +8.8100000000000005 0.0000000000000000 +8.8200000000000003 0.0000000000000000 +8.8300000000000001 0.0000000000000000 +8.8399999999999999 0.0000000000000000 +8.8499999999999996 0.0000000000000000 +8.8599999999999994 0.0000000000000000 +8.8700000000000010 0.0000000000000000 +8.8800000000000008 0.0000000000000000 +8.8900000000000006 0.0000000000000000 +8.9000000000000004 0.0000000000000000 +8.9100000000000001 0.0000000000000000 +8.9199999999999999 0.0000000000000000 +8.9299999999999997 0.0000000000000000 +8.9399999999999995 0.0000000000000000 +8.9500000000000011 0.0000000000000000 +8.9600000000000009 0.0000000000000000 +8.9700000000000006 0.0000000000000000 +8.9800000000000004 0.0000000000000000 +8.9900000000000002 0.0000000000000000 +9.0000000000000000 0.0000000000000000 +9.0099999999999998 0.0000000000000000 +9.0199999999999996 0.0000000000000000 +9.0299999999999994 0.0000000000000000 +9.0400000000000009 0.0000000000000000 +9.0500000000000007 0.0000000000000000 +9.0600000000000005 0.0000000000000000 +9.0700000000000003 0.0000000000000000 +9.0800000000000001 0.0000000000000000 +9.0899999999999999 0.0000000000000000 +9.0999999999999996 0.0000000000000000 +9.1099999999999994 0.0000000000000000 +9.1200000000000010 0.0000000000000000 +9.1300000000000008 0.0000000000000000 +9.1400000000000006 0.0000000000000000 +9.1500000000000004 0.0000000000000000 +9.1600000000000001 0.0000000000000000 +9.1699999999999999 0.0000000000000000 +9.1799999999999997 0.0000000000000000 +9.1899999999999995 0.0000000000000000 +9.2000000000000011 0.0000000000000000 +9.2100000000000009 0.0000000000000000 +9.2200000000000006 0.0000000000000000 +9.2300000000000004 0.0000000000000000 +9.2400000000000002 0.0000000000000000 +9.2500000000000000 0.0000000000000000 +9.2599999999999998 0.0000000000000000 +9.2699999999999996 0.0000000000000000 +9.2799999999999994 0.0000000000000000 +9.2900000000000009 0.0000000000000000 +9.3000000000000007 0.0000000000000000 +9.3100000000000005 0.0000000000000000 +9.3200000000000003 0.0000000000000000 +9.3300000000000001 0.0000000000000000 +9.3399999999999999 0.0000000000000000 +9.3499999999999996 0.0000000000000000 +9.3599999999999994 0.0000000000000000 +9.3700000000000010 0.0000000000000000 +9.3800000000000008 0.0000000000000000 +9.3900000000000006 0.0000000000000000 +9.4000000000000004 0.0000000000000000 +9.4100000000000001 0.0000000000000000 +9.4199999999999999 0.0000000000000000 +9.4299999999999997 0.0000000000000000 +9.4399999999999995 0.0000000000000000 +9.4500000000000011 0.0000000000000000 +9.4600000000000009 0.0000000000000000 +9.4700000000000006 0.0000000000000000 +9.4800000000000004 0.0000000000000000 +9.4900000000000002 0.0000000000000000 +9.5000000000000000 0.0000000000000000 +9.5099999999999998 0.0000000000000000 +9.5199999999999996 0.0000000000000000 +9.5299999999999994 0.0000000000000000 +9.5400000000000009 0.0000000000000000 +9.5500000000000007 0.0000000000000000 +9.5600000000000005 0.0000000000000000 +9.5700000000000003 0.0000000000000000 +9.5800000000000001 0.0000000000000000 +9.5899999999999999 0.0000000000000000 +9.5999999999999996 0.0000000000000000 +9.6099999999999994 0.0000000000000000 +9.6200000000000010 0.0000000000000000 +9.6300000000000008 0.0000000000000000 +9.6400000000000006 0.0000000000000000 +9.6500000000000004 0.0000000000000000 +9.6600000000000001 0.0000000000000000 +9.6699999999999999 0.0000000000000000 +9.6799999999999997 0.0000000000000000 +9.6899999999999995 0.0000000000000000 +9.7000000000000011 0.0000000000000000 +9.7100000000000009 0.0000000000000000 +9.7200000000000006 0.0000000000000000 +9.7300000000000004 0.0000000000000000 +9.7400000000000002 0.0000000000000000 +9.7500000000000000 0.0000000000000000 +9.7599999999999998 0.0000000000000000 +9.7699999999999996 0.0000000000000000 +9.7799999999999994 0.0000000000000000 +9.7900000000000009 0.0000000000000000 +9.8000000000000007 0.0000000000000000 +9.8100000000000005 0.0000000000000000 +9.8200000000000003 0.0000000000000000 +9.8300000000000001 0.0000000000000000 +9.8399999999999999 0.0000000000000000 +9.8499999999999996 0.0000000000000000 +9.8599999999999994 0.0000000000000000 +9.8700000000000010 0.0000000000000000 +9.8800000000000008 0.0000000000000000 +9.8900000000000006 0.0000000000000000 +9.9000000000000004 0.0000000000000000 +9.9100000000000001 0.0000000000000000 +9.9199999999999999 0.0000000000000000 +9.9299999999999997 0.0000000000000000 +9.9399999999999995 0.0000000000000000 +9.9500000000000011 0.0000000000000000 +9.9600000000000009 0.0000000000000000 +9.9700000000000006 0.0000000000000000 +9.9800000000000004 0.0000000000000000 +9.9900000000000002 0.0000000000000000 +10.0000000000000000 0.0000000000000000 +10.0099999999999998 0.0000000000000000 +10.0199999999999996 0.0000000000000000 +10.0299999999999994 0.0000000000000000 +10.0400000000000009 0.0000000000000000 +10.0500000000000007 0.0000000000000000 +10.0600000000000005 0.0000000000000000 +10.0700000000000003 0.0000000000000000 +10.0800000000000001 0.0000000000000000 +10.0899999999999999 0.0000000000000000 +10.0999999999999996 0.0000000000000000 +10.1099999999999994 0.0000000000000000 +10.1200000000000010 0.0000000000000000 +10.1300000000000008 0.0000000000000000 +10.1400000000000006 0.0000000000000000 +10.1500000000000004 0.0000000000000000 +10.1600000000000001 0.0000000000000000 +10.1699999999999999 0.0000000000000000 +10.1799999999999997 0.0000000000000000 +10.1899999999999995 0.0000000000000000 +10.2000000000000011 0.0000000000000000 +10.2100000000000009 0.0000000000000000 +10.2200000000000006 0.0000000000000000 +10.2300000000000004 0.0000000000000000 +10.2400000000000002 0.0000000000000000 +10.2500000000000000 0.0000000000000000 +10.2599999999999998 0.0000000000000000 +10.2699999999999996 0.0000000000000000 +10.2799999999999994 0.0000000000000000 +10.2900000000000009 0.0000000000000000 +10.3000000000000007 0.0000000000000000 +10.3100000000000005 0.0000000000000000 +10.3200000000000003 0.0000000000000000 +10.3300000000000001 0.0000000000000000 +10.3399999999999999 0.0000000000000000 +10.3499999999999996 0.0000000000000000 +10.3599999999999994 0.0000000000000000 +10.3700000000000010 0.0000000000000000 +10.3800000000000008 0.0000000000000000 +10.3900000000000006 0.0000000000000000 +10.4000000000000004 0.0000000000000000 +10.4100000000000001 0.0000000000000000 +10.4199999999999999 0.0000000000000000 +10.4299999999999997 0.0000000000000000 +10.4399999999999995 0.0000000000000000 +10.4500000000000011 0.0000000000000000 +10.4600000000000009 0.0000000000000000 +10.4700000000000006 0.0000000000000000 +10.4800000000000004 0.0000000000000000 +10.4900000000000002 0.0000000000000000 +10.5000000000000000 0.0000000000000000 +10.5099999999999998 0.0000000000000000 +10.5199999999999996 0.0000000000000000 +10.5299999999999994 0.0000000000000000 +10.5400000000000009 0.0000000000000000 +10.5500000000000007 0.0000000000000000 +10.5600000000000005 0.0000000000000000 +10.5700000000000003 0.0000000000000000 +10.5800000000000001 0.0000000000000000 +10.5899999999999999 0.0000000000000000 +10.5999999999999996 0.0000000000000000 +10.6099999999999994 0.0000000000000000 +10.6200000000000010 0.0000000000000000 +10.6300000000000008 0.0000000000000000 +10.6400000000000006 0.0000000000000000 +10.6500000000000004 0.0000000000000000 +10.6600000000000001 0.0000000000000000 +10.6699999999999999 0.0000000000000000 +10.6799999999999997 0.0000000000000000 +10.6899999999999995 0.0000000000000000 +10.7000000000000011 0.0000000000000000 +10.7100000000000009 0.0000000000000000 +10.7200000000000006 0.0000000000000000 +10.7300000000000004 0.0000000000000000 +10.7400000000000002 0.0000000000000000 +10.7500000000000000 0.0000000000000000 +10.7599999999999998 0.0000000000000000 +10.7699999999999996 0.0000000000000000 +10.7799999999999994 0.0000000000000000 +10.7900000000000009 0.0000000000000000 +10.8000000000000007 0.0000000000000000 +10.8100000000000005 0.0000000000000000 +10.8200000000000003 0.0000000000000000 +10.8300000000000001 0.0000000000000000 +10.8399999999999999 0.0000000000000000 +10.8499999999999996 0.0000000000000000 +10.8599999999999994 0.0000000000000000 +10.8700000000000010 0.0000000000000000 +10.8800000000000008 0.0000000000000000 +10.8900000000000006 0.0000000000000000 +10.9000000000000004 0.0000000000000000 +10.9100000000000001 0.0000000000000000 +10.9199999999999999 0.0000000000000000 +10.9299999999999997 0.0000000000000000 +10.9399999999999995 0.0000000000000000 +10.9500000000000011 0.0000000000000000 +10.9600000000000009 0.0000000000000000 +10.9700000000000006 0.0000000000000000 +10.9800000000000004 0.0000000000000000 +10.9900000000000002 0.0000000000000000 +11.0000000000000000 0.0000000000000000 +11.0099999999999998 0.0000000000000000 +11.0199999999999996 0.0000000000000000 +11.0299999999999994 0.0000000000000000 +11.0400000000000009 0.0000000000000000 +11.0500000000000007 0.0000000000000000 +11.0600000000000005 0.0000000000000000 +11.0700000000000003 0.0000000000000000 +11.0800000000000001 0.0000000000000000 +11.0899999999999999 0.0000000000000000 +11.0999999999999996 0.0000000000000000 +11.1099999999999994 0.0000000000000000 +11.1200000000000010 0.0000000000000000 +11.1300000000000008 0.0000000000000000 +11.1400000000000006 0.0000000000000000 +11.1500000000000004 0.0000000000000000 +11.1600000000000001 0.0000000000000000 +11.1699999999999999 0.0000000000000000 +11.1799999999999997 0.0000000000000000 +11.1899999999999995 0.0000000000000000 +11.2000000000000011 0.0000000000000000 +11.2100000000000009 0.0000000000000000 +11.2200000000000006 0.0000000000000000 +11.2300000000000004 0.0000000000000000 +11.2400000000000002 0.0000000000000000 +11.2500000000000000 0.0000000000000000 +11.2599999999999998 0.0000000000000000 +11.2699999999999996 0.0000000000000000 +11.2799999999999994 0.0000000000000000 +11.2900000000000009 0.0000000000000000 +11.3000000000000007 0.0000000000000000 +11.3100000000000005 0.0000000000000000 +11.3200000000000003 0.0000000000000000 +11.3300000000000001 0.0000000000000000 +11.3399999999999999 0.0000000000000000 +11.3499999999999996 0.0000000000000000 +11.3599999999999994 0.0000000000000000 +11.3700000000000010 0.0000000000000000 +11.3800000000000008 0.0000000000000000 +11.3900000000000006 0.0000000000000000 +11.4000000000000004 0.0000000000000000 +11.4100000000000001 0.0000000000000000 +11.4199999999999999 0.0000000000000000 +11.4299999999999997 0.0000000000000000 +11.4399999999999995 0.0000000000000000 +11.4500000000000011 0.0000000000000000 +11.4600000000000009 0.0000000000000000 +11.4700000000000006 0.0000000000000000 +11.4800000000000004 0.0000000000000000 +11.4900000000000002 0.0000000000000000 +11.5000000000000000 0.0000000000000000 +11.5099999999999998 0.0000000000000000 +11.5199999999999996 0.0000000000000000 +11.5299999999999994 0.0000000000000000 +11.5400000000000009 0.0000000000000000 +11.5500000000000007 0.0000000000000000 +11.5600000000000005 0.0000000000000000 +11.5700000000000003 0.0000000000000000 +11.5800000000000001 0.0000000000000000 +11.5899999999999999 0.0000000000000000 +11.5999999999999996 0.0000000000000000 +11.6099999999999994 0.0000000000000000 +11.6200000000000010 0.0000000000000000 +11.6300000000000008 0.0000000000000000 +11.6400000000000006 0.0000000000000000 +11.6500000000000004 0.0000000000000000 +11.6600000000000001 0.0000000000000000 +11.6699999999999999 0.0000000000000000 +11.6799999999999997 0.0000000000000000 +11.6899999999999995 0.0000000000000000 +11.7000000000000011 0.0000000000000000 +11.7100000000000009 0.0000000000000000 +11.7200000000000006 0.0000000000000000 +11.7300000000000004 0.0000000000000000 +11.7400000000000002 0.0000000000000000 +11.7500000000000000 0.0000000000000000 +11.7599999999999998 0.0000000000000000 +11.7699999999999996 0.0000000000000000 +11.7799999999999994 0.0000000000000000 +11.7900000000000009 0.0000000000000000 +11.8000000000000007 0.0000000000000000 +11.8100000000000005 0.0000000000000000 +11.8200000000000003 0.0000000000000000 +11.8300000000000001 0.0000000000000000 +11.8399999999999999 0.0000000000000000 +11.8499999999999996 0.0000000000000000 +11.8599999999999994 0.0000000000000000 +11.8700000000000010 0.0000000000000000 +11.8800000000000008 0.0000000000000000 +11.8900000000000006 0.0000000000000000 +11.9000000000000004 0.0000000000000000 +11.9100000000000001 0.0000000000000000 +11.9199999999999999 0.0000000000000000 +11.9299999999999997 0.0000000000000000 +11.9399999999999995 0.0000000000000000 +11.9500000000000011 0.0000000000000000 +11.9600000000000009 0.0000000000000000 +11.9700000000000006 0.0000000000000000 +11.9800000000000004 0.0000000000000000 +11.9900000000000002 0.0000000000000000 +12.0000000000000000 0.0000000000000000 +12.0099999999999998 0.0000000000000000 +12.0199999999999996 0.0000000000000000 +12.0300000000000011 0.0000000000000000 +12.0400000000000009 0.0000000000000000 +12.0500000000000007 0.0000000000000000 +12.0600000000000005 0.0000000000000000 +12.0700000000000003 0.0000000000000000 +12.0800000000000001 0.0000000000000000 +12.0899999999999999 0.0000000000000000 +12.0999999999999996 0.0000000000000000 +12.1099999999999994 0.0000000000000000 +12.1200000000000010 0.0000000000000000 +12.1300000000000008 0.0000000000000000 +12.1400000000000006 0.0000000000000000 +12.1500000000000004 0.0000000000000000 +12.1600000000000001 0.0000000000000000 +12.1699999999999999 0.0000000000000000 +12.1799999999999997 0.0000000000000000 +12.1899999999999995 0.0000000000000000 +12.2000000000000011 0.0000000000000000 +12.2100000000000009 0.0000000000000000 +12.2200000000000006 0.0000000000000000 +12.2300000000000004 0.0000000000000000 +12.2400000000000002 0.0000000000000000 +12.2500000000000000 0.0000000000000000 +12.2599999999999998 0.0000000000000000 +12.2699999999999996 0.0000000000000000 +12.2800000000000011 0.0000000000000000 +12.2900000000000009 0.0000000000000000 +12.3000000000000007 0.0000000000000000 +12.3100000000000005 0.0000000000000000 +12.3200000000000003 0.0000000000000000 +12.3300000000000001 0.0000000000000000 +12.3399999999999999 0.0000000000000000 +12.3499999999999996 0.0000000000000000 +12.3599999999999994 0.0000000000000000 +12.3700000000000010 0.0000000000000000 +12.3800000000000008 0.0000000000000000 +12.3900000000000006 0.0000000000000000 +12.4000000000000004 0.0000000000000000 +12.4100000000000001 0.0000000000000000 +12.4199999999999999 0.0000000000000000 +12.4299999999999997 0.0000000000000000 +12.4399999999999995 0.0000000000000000 +12.4500000000000011 0.0000000000000000 +12.4600000000000009 0.0000000000000000 +12.4700000000000006 0.0000000000000000 +12.4800000000000004 0.0000000000000000 +12.4900000000000002 0.0000000000000000 +12.5000000000000000 0.0000000000000000 +12.5099999999999998 0.0000000000000000 +12.5199999999999996 0.0000000000000000 +12.5300000000000011 0.0000000000000000 +12.5400000000000009 0.0000000000000000 +12.5500000000000007 0.0000000000000000 +12.5600000000000005 0.0000000000000000 +12.5700000000000003 0.0000000000000000 +12.5800000000000001 0.0000000000000000 +12.5899999999999999 0.0000000000000000 +12.5999999999999996 0.0000000000000000 +12.6099999999999994 0.0000000000000000 +12.6200000000000010 0.0000000000000000 +12.6300000000000008 0.0000000000000000 +12.6400000000000006 0.0000000000000000 +12.6500000000000004 0.0000000000000000 +12.6600000000000001 0.0000000000000000 +12.6699999999999999 0.0000000000000000 +12.6799999999999997 0.0000000000000000 +12.6899999999999995 0.0000000000000000 +12.7000000000000011 0.0000000000000000 +12.7100000000000009 0.0000000000000000 +12.7200000000000006 0.0000000000000000 +12.7300000000000004 0.0000000000000000 +12.7400000000000002 0.0000000000000000 +12.7500000000000000 0.0000000000000000 +12.7599999999999998 0.0000000000000000 +12.7699999999999996 0.0000000000000000 +12.7800000000000011 0.0000000000000000 +12.7900000000000009 0.0000000000000000 +12.8000000000000007 0.0000000000000000 +12.8100000000000005 0.0000000000000000 +12.8200000000000003 0.0000000000000000 +12.8300000000000001 0.0000000000000000 +12.8399999999999999 0.0000000000000000 +12.8499999999999996 0.0000000000000000 +12.8599999999999994 0.0000000000000000 +12.8700000000000010 0.0000000000000000 +12.8800000000000008 0.0000000000000000 +12.8900000000000006 0.0000000000000000 +12.9000000000000004 0.0000000000000000 +12.9100000000000001 0.0000000000000000 +12.9199999999999999 0.0000000000000000 +12.9299999999999997 0.0000000000000000 +12.9399999999999995 0.0000000000000000 +12.9500000000000011 0.0000000000000000 +12.9600000000000009 0.0000000000000000 +12.9700000000000006 0.0000000000000000 +12.9800000000000004 0.0000000000000000 +12.9900000000000002 0.0000000000000000 +13.0000000000000000 0.0000000000000000 +13.0099999999999998 0.0000000000000000 +13.0199999999999996 0.0000000000000000 +13.0300000000000011 0.0000000000000000 +13.0400000000000009 0.0000000000000000 +13.0500000000000007 0.0000000000000000 +13.0600000000000005 0.0000000000000000 +13.0700000000000003 0.0000000000000000 +13.0800000000000001 0.0000000000000000 +13.0899999999999999 0.0000000000000000 +13.0999999999999996 0.0000000000000000 +13.1099999999999994 0.0000000000000000 +13.1200000000000010 0.0000000000000000 +13.1300000000000008 0.0000000000000000 +13.1400000000000006 0.0000000000000000 +13.1500000000000004 0.0000000000000000 +13.1600000000000001 0.0000000000000000 +13.1699999999999999 0.0000000000000000 +13.1799999999999997 0.0000000000000000 +13.1899999999999995 0.0000000000000000 +13.2000000000000011 0.0000000000000000 +13.2100000000000009 0.0000000000000000 +13.2200000000000006 0.0000000000000000 +13.2300000000000004 0.0000000000000000 +13.2400000000000002 0.0000000000000000 +13.2500000000000000 0.0000000000000000 +13.2599999999999998 0.0000000000000000 +13.2699999999999996 0.0000000000000000 +13.2800000000000011 0.0000000000000000 +13.2900000000000009 0.0000000000000000 +13.3000000000000007 0.0000000000000000 +13.3100000000000005 0.0000000000000000 +13.3200000000000003 0.0000000000000000 +13.3300000000000001 0.0000000000000000 +13.3399999999999999 0.0000000000000000 +13.3499999999999996 0.0000000000000000 +13.3599999999999994 0.0000000000000000 +13.3700000000000010 0.0000000000000000 +13.3800000000000008 0.0000000000000000 +13.3900000000000006 0.0000000000000000 +13.4000000000000004 0.0000000000000000 +13.4100000000000001 0.0000000000000000 +13.4199999999999999 0.0000000000000000 +13.4299999999999997 0.0000000000000000 +13.4399999999999995 0.0000000000000000 +13.4500000000000011 0.0000000000000000 +13.4600000000000009 0.0000000000000000 +13.4700000000000006 0.0000000000000000 +13.4800000000000004 0.0000000000000000 +13.4900000000000002 0.0000000000000000 +13.5000000000000000 0.0000000000000000 +13.5099999999999998 0.0000000000000000 +13.5199999999999996 0.0000000000000000 +13.5300000000000011 0.0000000000000000 +13.5400000000000009 0.0000000000000000 +13.5500000000000007 0.0000000000000000 +13.5600000000000005 0.0000000000000000 +13.5700000000000003 0.0000000000000000 +13.5800000000000001 0.0000000000000000 +13.5899999999999999 0.0000000000000000 +13.5999999999999996 0.0000000000000000 +13.6099999999999994 0.0000000000000000 +13.6200000000000010 0.0000000000000000 +13.6300000000000008 0.0000000000000000 +13.6400000000000006 0.0000000000000000 +13.6500000000000004 0.0000000000000000 +13.6600000000000001 0.0000000000000000 +13.6699999999999999 0.0000000000000000 +13.6799999999999997 0.0000000000000000 +13.6899999999999995 0.0000000000000000 +13.7000000000000011 0.0000000000000000 +13.7100000000000009 0.0000000000000000 +13.7200000000000006 0.0000000000000000 +13.7300000000000004 0.0000000000000000 +13.7400000000000002 0.0000000000000000 +13.7500000000000000 0.0000000000000000 +13.7599999999999998 0.0000000000000000 +13.7699999999999996 0.0000000000000000 +13.7800000000000011 1.0000000000000000 +13.7900000000000009 1.0000000000000000 +13.8000000000000007 1.0000000000000000 +13.8100000000000005 1.0000000000000000 +13.8200000000000003 1.0000000000000000 +13.8300000000000001 1.0000000000000000 +13.8399999999999999 1.0000000000000000 +13.8499999999999996 1.0000000000000000 +13.8599999999999994 1.0000000000000000 +13.8700000000000010 1.0000000000000000 +13.8800000000000008 1.0000000000000000 +13.8900000000000006 1.0000000000000000 +13.9000000000000004 1.0000000000000000 +13.9100000000000001 1.0000000000000000 +13.9199999999999999 1.0000000000000000 +13.9299999999999997 1.0000000000000000 +13.9399999999999995 1.0000000000000000 +13.9500000000000011 1.0000000000000000 +13.9600000000000009 1.0000000000000000 +13.9700000000000006 1.0000000000000000 +13.9800000000000004 1.0000000000000000 +13.9900000000000002 1.0000000000000000 +14.0000000000000000 1.0000000000000000 +14.0099999999999998 1.0000000000000000 +14.0199999999999996 1.0000000000000000 +14.0300000000000011 1.0000000000000000 +14.0400000000000009 1.0000000000000000 +14.0500000000000007 1.0000000000000000 +14.0600000000000005 1.0000000000000000 +14.0700000000000003 1.0000000000000000 +14.0800000000000001 1.0000000000000000 +14.0899999999999999 1.0000000000000000 +14.0999999999999996 1.0000000000000000 +14.1099999999999994 1.0000000000000000 +14.1200000000000010 1.0000000000000000 +14.1300000000000008 1.0000000000000000 +14.1400000000000006 1.0000000000000000 +14.1500000000000004 1.0000000000000000 +14.1600000000000001 1.0000000000000000 +14.1699999999999999 1.0000000000000000 +14.1799999999999997 1.0000000000000000 +14.1899999999999995 1.0000000000000000 +14.2000000000000011 1.0000000000000000 +14.2100000000000009 1.0000000000000000 +14.2200000000000006 1.0000000000000000 +14.2300000000000004 1.0000000000000000 +14.2400000000000002 1.0000000000000000 +14.2500000000000000 1.0000000000000000 +14.2599999999999998 1.0000000000000000 +14.2699999999999996 1.0000000000000000 +14.2800000000000011 1.0000000000000000 +14.2900000000000009 1.0000000000000000 +14.3000000000000007 1.0000000000000000 +14.3100000000000005 1.0000000000000000 +14.3200000000000003 1.0000000000000000 +14.3300000000000001 1.0000000000000000 +14.3399999999999999 1.0000000000000000 +14.3499999999999996 1.0000000000000000 +14.3599999999999994 1.0000000000000000 +14.3700000000000010 1.0000000000000000 +14.3800000000000008 1.0000000000000000 +14.3900000000000006 1.0000000000000000 +14.4000000000000004 1.0000000000000000 +14.4100000000000001 1.0000000000000000 +14.4199999999999999 1.0000000000000000 +14.4299999999999997 1.0000000000000000 +14.4399999999999995 1.0000000000000000 +14.4500000000000011 1.0000000000000000 +14.4600000000000009 1.0000000000000000 +14.4700000000000006 1.0000000000000000 +14.4800000000000004 1.0000000000000000 +14.4900000000000002 1.0000000000000000 +14.5000000000000000 1.0000000000000000 +14.5099999999999998 1.0000000000000000 +14.5199999999999996 1.0000000000000000 +14.5300000000000011 1.0000000000000000 +14.5400000000000009 1.0000000000000000 +14.5500000000000007 1.0000000000000000 +14.5600000000000005 1.0000000000000000 +14.5700000000000003 1.0000000000000000 +14.5800000000000001 1.0000000000000000 +14.5899999999999999 1.0000000000000000 +14.5999999999999996 1.0000000000000000 +14.6099999999999994 1.0000000000000000 +14.6200000000000010 1.0000000000000000 +14.6300000000000008 1.0000000000000000 +14.6400000000000006 1.0000000000000000 +14.6500000000000004 1.0000000000000000 +14.6600000000000001 1.0000000000000000 +14.6699999999999999 1.0000000000000000 +14.6799999999999997 1.0000000000000000 +14.6899999999999995 1.0000000000000000 +14.7000000000000011 1.0000000000000000 +14.7100000000000009 1.0000000000000000 +14.7200000000000006 1.0000000000000000 +14.7300000000000004 1.0000000000000000 +14.7400000000000002 1.0000000000000000 +14.7500000000000000 1.0000000000000000 +14.7599999999999998 1.0000000000000000 +14.7699999999999996 1.0000000000000000 +14.7800000000000011 1.0000000000000000 +14.7900000000000009 1.0000000000000000 +14.8000000000000007 1.0000000000000000 +14.8100000000000005 1.0000000000000000 +14.8200000000000003 1.0000000000000000 +14.8300000000000001 1.0000000000000000 +14.8399999999999999 1.0000000000000000 +14.8499999999999996 1.0000000000000000 +14.8599999999999994 1.0000000000000000 +14.8700000000000010 1.0000000000000000 +14.8800000000000008 1.0000000000000000 +14.8900000000000006 1.0000000000000000 +14.9000000000000004 1.0000000000000000 +14.9100000000000001 1.0000000000000000 +14.9199999999999999 1.0000000000000000 +14.9299999999999997 1.0000000000000000 +14.9399999999999995 1.0000000000000000 +14.9500000000000011 1.0000000000000000 +14.9600000000000009 1.0000000000000000 +14.9700000000000006 1.0000000000000000 +14.9800000000000004 1.0000000000000000 +14.9900000000000002 1.0000000000000000 +15.0000000000000000 1.0000000000000000 +15.0099999999999998 1.0000000000000000 +15.0199999999999996 1.0000000000000000 +15.0300000000000011 1.0000000000000000 +15.0400000000000009 1.0000000000000000 +15.0500000000000007 1.0000000000000000 +15.0600000000000005 1.0000000000000000 +15.0700000000000003 1.0000000000000000 +15.0800000000000001 1.0000000000000000 +15.0899999999999999 1.0000000000000000 +15.0999999999999996 1.0000000000000000 +15.1099999999999994 1.0000000000000000 +15.1200000000000010 1.0000000000000000 +15.1300000000000008 1.0000000000000000 +15.1400000000000006 1.0000000000000000 +15.1500000000000004 1.0000000000000000 +15.1600000000000001 1.0000000000000000 +15.1699999999999999 1.0000000000000000 +15.1799999999999997 1.0000000000000000 +15.1899999999999995 1.0000000000000000 +15.2000000000000011 1.0000000000000000 +15.2100000000000009 1.0000000000000000 +15.2200000000000006 1.0000000000000000 +15.2300000000000004 1.0000000000000000 +15.2400000000000002 1.0000000000000000 +15.2500000000000000 1.0000000000000000 +15.2599999999999998 1.0000000000000000 +15.2699999999999996 1.0000000000000000 +15.2800000000000011 1.0000000000000000 +15.2900000000000009 1.0000000000000000 +15.3000000000000007 1.0000000000000000 +15.3100000000000005 1.0000000000000000 +15.3200000000000003 1.0000000000000000 +15.3300000000000001 1.0000000000000000 +15.3399999999999999 1.0000000000000000 +15.3499999999999996 1.0000000000000000 +15.3599999999999994 1.0000000000000000 +15.3700000000000010 1.0000000000000000 +15.3800000000000008 1.0000000000000000 +15.3900000000000006 1.0000000000000000 +15.4000000000000004 1.0000000000000000 +15.4100000000000001 1.0000000000000000 +15.4199999999999999 1.0000000000000000 +15.4299999999999997 1.0000000000000000 +15.4399999999999995 1.0000000000000000 +15.4500000000000011 1.0000000000000000 +15.4600000000000009 1.0000000000000000 +15.4700000000000006 1.0000000000000000 +15.4800000000000004 1.0000000000000000 +15.4900000000000002 1.0000000000000000 +15.5000000000000000 1.0000000000000000 +15.5099999999999998 1.0000000000000000 +15.5199999999999996 1.0000000000000000 +15.5300000000000011 1.0000000000000000 +15.5400000000000009 1.0000000000000000 +15.5500000000000007 1.0000000000000000 +15.5600000000000005 1.0000000000000000 +15.5700000000000003 1.0000000000000000 +15.5800000000000001 1.0000000000000000 +15.5899999999999999 1.0000000000000000 +15.5999999999999996 1.0000000000000000 +15.6100000000000012 1.0000000000000000 +15.6200000000000010 1.0000000000000000 +15.6300000000000008 1.0000000000000000 +15.6400000000000006 1.0000000000000000 +15.6500000000000004 1.0000000000000000 +15.6600000000000001 1.0000000000000000 +15.6699999999999999 1.0000000000000000 +15.6799999999999997 1.0000000000000000 +15.6899999999999995 1.0000000000000000 +15.7000000000000011 1.0000000000000000 +15.7100000000000009 1.0000000000000000 +15.7200000000000006 1.0000000000000000 +15.7300000000000004 1.0000000000000000 +15.7400000000000002 1.0000000000000000 +15.7500000000000000 1.0000000000000000 +15.7599999999999998 1.0000000000000000 +15.7699999999999996 1.0000000000000000 +15.7800000000000011 1.0000000000000000 +15.7900000000000009 1.0000000000000000 +15.8000000000000007 1.0000000000000000 +15.8100000000000005 1.0000000000000000 +15.8200000000000003 2.0000000000000000 +15.8300000000000001 2.0000000000000000 +15.8399999999999999 2.0000000000000000 +15.8499999999999996 2.0000000000000000 +15.8600000000000012 2.0000000000000000 +15.8700000000000010 2.0000000000000000 +15.8800000000000008 2.0000000000000000 +15.8900000000000006 2.0000000000000000 +15.9000000000000004 2.0000000000000000 +15.9100000000000001 2.0000000000000000 +15.9199999999999999 2.0000000000000000 +15.9299999999999997 2.0000000000000000 +15.9399999999999995 2.0000000000000000 +15.9500000000000011 2.0000000000000000 +15.9600000000000009 2.0000000000000000 +15.9700000000000006 2.0000000000000000 +15.9800000000000004 2.0000000000000000 +15.9900000000000002 2.0000000000000000 +16.0000000000000000 2.0000000000000000 +16.0100000000000016 2.0000000000000000 +16.0199999999999996 2.0000000000000000 +16.0300000000000011 2.0000000000000000 +16.0399999999999991 2.0000000000000000 +16.0500000000000007 2.0000000000000000 +16.0599999999999987 2.0000000000000000 +16.0700000000000003 2.0000000000000000 +16.0800000000000018 2.0000000000000000 +16.0899999999999999 2.0000000000000000 +16.1000000000000014 2.0000000000000000 +16.1099999999999994 2.0000000000000000 +16.1200000000000010 2.0000000000000000 +16.1299999999999990 2.0000000000000000 +16.1400000000000006 2.0000000000000000 +16.1499999999999986 2.0000000000000000 +16.1600000000000001 2.0000000000000000 +16.1700000000000017 2.0000000000000000 +16.1799999999999997 2.0000000000000000 +16.1900000000000013 2.0000000000000000 +16.1999999999999993 2.0000000000000000 +16.2100000000000009 2.0000000000000000 +16.2199999999999989 2.0000000000000000 +16.2300000000000004 2.0000000000000000 +16.2400000000000020 2.0000000000000000 +16.2500000000000000 2.0000000000000000 +16.2600000000000016 2.0000000000000000 +16.2699999999999996 2.0000000000000000 +16.2800000000000011 2.0000000000000000 +16.2899999999999991 2.0000000000000000 +16.3000000000000007 2.0000000000000000 +16.3099999999999987 2.0000000000000000 +16.3200000000000003 2.0000000000000000 +16.3300000000000018 2.0000000000000000 +16.3399999999999999 2.0000000000000000 +16.3500000000000014 2.0000000000000000 +16.3599999999999994 2.0000000000000000 +16.3700000000000010 2.0000000000000000 +16.3799999999999990 2.0000000000000000 +16.3900000000000006 2.0000000000000000 +16.3999999999999986 2.0000000000000000 +16.4100000000000001 2.0000000000000000 +16.4200000000000017 2.0000000000000000 +16.4299999999999997 2.0000000000000000 +16.4400000000000013 2.0000000000000000 +16.4499999999999993 2.0000000000000000 +16.4600000000000009 2.0000000000000000 +16.4699999999999989 2.0000000000000000 +16.4800000000000004 2.0000000000000000 +16.4900000000000020 2.0000000000000000 +16.5000000000000000 2.0000000000000000 +16.5100000000000016 2.0000000000000000 +16.5199999999999996 2.0000000000000000 +16.5300000000000011 2.0000000000000000 +16.5399999999999991 2.0000000000000000 +16.5500000000000007 2.0000000000000000 +16.5599999999999987 2.0000000000000000 +16.5700000000000003 2.0000000000000000 +16.5800000000000018 2.0000000000000000 +16.5899999999999999 2.0000000000000000 +16.6000000000000014 2.0000000000000000 +16.6099999999999994 2.0000000000000000 +16.6200000000000010 2.0000000000000000 +16.6299999999999990 2.0000000000000000 +16.6400000000000006 2.0000000000000000 +16.6499999999999986 2.0000000000000000 +16.6600000000000001 2.0000000000000000 +16.6700000000000017 2.0000000000000000 +16.6799999999999997 2.0000000000000000 +16.6900000000000013 2.0000000000000000 +16.6999999999999993 2.0000000000000000 +16.7100000000000009 2.0000000000000000 +16.7199999999999989 2.0000000000000000 +16.7300000000000004 2.0000000000000000 +16.7400000000000020 2.0000000000000000 +16.7500000000000000 2.0000000000000000 +16.7600000000000016 2.0000000000000000 +16.7699999999999996 2.0000000000000000 +16.7800000000000011 2.0000000000000000 +16.7899999999999991 2.0000000000000000 +16.8000000000000007 2.0000000000000000 +16.8099999999999987 2.0000000000000000 +16.8200000000000003 2.0000000000000000 +16.8300000000000018 2.0000000000000000 +16.8399999999999999 2.0000000000000000 +16.8500000000000014 2.0000000000000000 +16.8599999999999994 2.0000000000000000 +16.8700000000000010 2.0000000000000000 +16.8799999999999990 2.0000000000000000 +16.8900000000000006 2.0000000000000000 +16.8999999999999986 2.0000000000000000 +16.9100000000000001 2.0000000000000000 +16.9200000000000017 2.0000000000000000 +16.9299999999999997 2.0000000000000000 +16.9400000000000013 2.0000000000000000 +16.9499999999999993 2.0000000000000000 +16.9600000000000009 2.0000000000000000 +16.9699999999999989 2.0000000000000000 +16.9800000000000004 2.0000000000000000 +16.9900000000000020 2.0000000000000000 +17.0000000000000000 2.0000000000000000 +17.0100000000000016 2.0000000000000000 +17.0199999999999996 2.0000000000000000 +17.0300000000000011 2.0000000000000000 +17.0399999999999991 2.0000000000000000 +17.0500000000000007 2.0000000000000000 +17.0599999999999987 2.0000000000000000 +17.0700000000000003 2.0000000000000000 +17.0800000000000018 2.0000000000000000 +17.0899999999999999 2.0000000000000000 +17.1000000000000014 2.0000000000000000 +17.1099999999999994 2.0000000000000000 +17.1200000000000010 2.0000000000000000 +17.1299999999999990 2.0000000000000000 +17.1400000000000006 2.0000000000000000 +17.1500000000000021 2.0000000000000000 +17.1600000000000001 2.0000000000000000 +17.1700000000000017 2.0000000000000000 +17.1799999999999997 2.0000000000000000 +17.1900000000000013 2.0000000000000000 +17.1999999999999993 2.0000000000000000 +17.2100000000000009 2.0000000000000000 +17.2199999999999989 2.0000000000000000 +17.2300000000000004 2.0000000000000000 +17.2400000000000020 2.0000000000000000 +17.2500000000000000 2.0000000000000000 +17.2600000000000016 2.0000000000000000 +17.2699999999999996 2.0000000000000000 +17.2800000000000011 2.0000000000000000 +17.2899999999999991 2.0000000000000000 +17.3000000000000007 2.0000000000000000 +17.3099999999999987 2.0000000000000000 +17.3200000000000003 2.0000000000000000 +17.3300000000000018 2.0000000000000000 +17.3399999999999999 2.0000000000000000 +17.3500000000000014 2.0000000000000000 +17.3599999999999994 2.0000000000000000 +17.3700000000000010 2.0000000000000000 +17.3799999999999990 2.0000000000000000 +17.3900000000000006 2.0000000000000000 +17.4000000000000021 2.0000000000000000 +17.4100000000000001 2.0000000000000000 +17.4200000000000017 2.0000000000000000 +17.4299999999999997 2.0000000000000000 +17.4400000000000013 2.0000000000000000 +17.4499999999999993 2.0000000000000000 +17.4600000000000009 2.0000000000000000 +17.4699999999999989 2.0000000000000000 +17.4800000000000004 2.0000000000000000 +17.4900000000000020 2.0000000000000000 +17.5000000000000000 2.0000000000000000 +17.5100000000000016 2.0000000000000000 +17.5199999999999996 2.0000000000000000 +17.5300000000000011 2.0000000000000000 +17.5399999999999991 2.0000000000000000 +17.5500000000000007 2.0000000000000000 +17.5599999999999987 2.0000000000000000 +17.5700000000000003 2.0000000000000000 +17.5800000000000018 2.0000000000000000 +17.5899999999999999 2.0000000000000000 +17.6000000000000014 2.0000000000000000 +17.6099999999999994 2.0000000000000000 +17.6200000000000010 2.0000000000000000 +17.6299999999999990 2.0000000000000000 +17.6400000000000006 2.0000000000000000 +17.6500000000000021 2.0000000000000000 +17.6600000000000001 2.0000000000000000 +17.6700000000000017 2.0000000000000000 +17.6799999999999997 2.0000000000000000 +17.6900000000000013 2.0000000000000000 +17.6999999999999993 2.0000000000000000 +17.7100000000000009 2.0000000000000000 +17.7199999999999989 2.0000000000000000 +17.7300000000000004 2.0000000000000000 +17.7400000000000020 2.0000000000000000 +17.7500000000000000 2.0000000000000000 +17.7600000000000016 2.0000000000000000 +17.7699999999999996 2.0000000000000000 +17.7800000000000011 2.0000000000000000 +17.7899999999999991 2.0000000000000000 +17.8000000000000007 2.0000000000000000 +17.8099999999999987 2.0000000000000000 +17.8200000000000003 2.0000000000000000 +17.8300000000000018 2.0000000000000000 +17.8399999999999999 2.0000000000000000 +17.8500000000000014 2.0000000000000000 +17.8599999999999994 2.0000000000000000 +17.8700000000000010 2.0000000000000000 +17.8799999999999990 2.0000000000000000 +17.8900000000000006 2.0000000000000000 +17.9000000000000021 2.0000000000000000 +17.9100000000000001 2.0000000000000000 +17.9200000000000017 2.0000000000000000 +17.9299999999999997 2.0000000000000000 +17.9400000000000013 2.0000000000000000 +17.9499999999999993 2.0000000000000000 +17.9600000000000009 2.0000000000000000 +17.9699999999999989 2.0000000000000000 +17.9800000000000004 2.0000000000000000 +17.9900000000000020 2.0000000000000000 +18.0000000000000000 2.0000000000000000 +18.0100000000000016 2.0000000000000000 +18.0199999999999996 2.0000000000000000 +18.0300000000000011 2.0000000000000000 +18.0399999999999991 2.0000000000000000 +18.0500000000000007 2.0000000000000000 +18.0599999999999987 2.0000000000000000 +18.0700000000000003 2.0000000000000000 +18.0800000000000018 2.0000000000000000 +18.0899999999999999 2.0000000000000000 +18.1000000000000014 2.0000000000000000 +18.1099999999999994 2.0000000000000000 +18.1200000000000010 2.0000000000000000 +18.1299999999999990 2.0000000000000000 +18.1400000000000006 2.0000000000000000 +18.1500000000000021 2.0000000000000000 +18.1600000000000001 2.0000000000000000 +18.1700000000000017 2.0000000000000000 +18.1799999999999997 2.0000000000000000 +18.1900000000000013 2.0000000000000000 +18.1999999999999993 2.0000000000000000 +18.2100000000000009 2.0000000000000000 +18.2199999999999989 2.0000000000000000 +18.2300000000000004 2.0000000000000000 +18.2400000000000020 2.0000000000000000 +18.2500000000000000 2.0000000000000000 +18.2600000000000016 2.0000000000000000 +18.2699999999999996 2.0000000000000000 +18.2800000000000011 2.0000000000000000 +18.2899999999999991 2.0000000000000000 +18.3000000000000007 2.0000000000000000 +18.3099999999999987 2.0000000000000000 +18.3200000000000003 2.0000000000000000 +18.3300000000000018 2.0000000000000000 +18.3399999999999999 2.0000000000000000 +18.3500000000000014 2.0000000000000000 +18.3599999999999994 2.0000000000000000 +18.3700000000000010 2.0000000000000000 +18.3799999999999990 2.0000000000000000 +18.3900000000000006 2.0000000000000000 +18.4000000000000021 2.0000000000000000 +18.4100000000000001 2.0000000000000000 +18.4200000000000017 2.0000000000000000 +18.4299999999999997 2.0000000000000000 +18.4400000000000013 2.0000000000000000 +18.4499999999999993 2.0000000000000000 +18.4600000000000009 2.0000000000000000 +18.4699999999999989 2.0000000000000000 +18.4800000000000004 2.0000000000000000 +18.4900000000000020 2.0000000000000000 +18.5000000000000000 2.0000000000000000 +18.5100000000000016 2.0000000000000000 +18.5199999999999996 2.0000000000000000 +18.5300000000000011 2.0000000000000000 +18.5399999999999991 2.0000000000000000 +18.5500000000000007 2.0000000000000000 +18.5599999999999987 2.0000000000000000 +18.5700000000000003 2.0000000000000000 +18.5800000000000018 2.0000000000000000 +18.5899999999999999 2.0000000000000000 +18.6000000000000014 2.0000000000000000 +18.6099999999999994 2.0000000000000000 +18.6200000000000010 2.0000000000000000 +18.6299999999999990 2.0000000000000000 +18.6400000000000006 2.0000000000000000 +18.6500000000000021 2.0000000000000000 +18.6600000000000001 2.0000000000000000 +18.6700000000000017 2.0000000000000000 +18.6799999999999997 2.0000000000000000 +18.6900000000000013 2.0000000000000000 +18.6999999999999993 2.0000000000000000 +18.7100000000000009 2.0000000000000000 +18.7199999999999989 2.0000000000000000 +18.7300000000000004 2.0000000000000000 +18.7400000000000020 2.0000000000000000 +18.7500000000000000 2.0000000000000000 +18.7600000000000016 2.0000000000000000 +18.7699999999999996 2.0000000000000000 +18.7800000000000011 2.0000000000000000 +18.7899999999999991 2.0000000000000000 +18.8000000000000007 2.0000000000000000 +18.8099999999999987 2.0000000000000000 +18.8200000000000003 2.0000000000000000 +18.8300000000000018 2.0000000000000000 +18.8399999999999999 2.0000000000000000 +18.8500000000000014 2.0000000000000000 +18.8599999999999994 2.0000000000000000 +18.8700000000000010 2.0000000000000000 +18.8799999999999990 2.0000000000000000 +18.8900000000000006 2.0000000000000000 +18.9000000000000021 2.0000000000000000 +18.9100000000000001 2.0000000000000000 +18.9200000000000017 2.0000000000000000 +18.9299999999999997 2.0000000000000000 +18.9400000000000013 2.0000000000000000 +18.9499999999999993 2.0000000000000000 +18.9600000000000009 2.0000000000000000 +18.9699999999999989 2.0000000000000000 +18.9800000000000004 2.0000000000000000 +18.9900000000000020 2.0000000000000000 +19.0000000000000000 2.0000000000000000 +19.0100000000000016 2.0000000000000000 +19.0199999999999996 2.0000000000000000 +19.0300000000000011 2.0000000000000000 +19.0399999999999991 2.0000000000000000 +19.0500000000000007 2.0000000000000000 +19.0599999999999987 2.0000000000000000 +19.0700000000000003 2.0000000000000000 +19.0800000000000018 2.0000000000000000 +19.0899999999999999 2.0000000000000000 +19.1000000000000014 2.0000000000000000 +19.1099999999999994 2.0000000000000000 +19.1200000000000010 2.0000000000000000 +19.1299999999999990 2.0000000000000000 +19.1400000000000006 2.0000000000000000 +19.1500000000000021 2.0000000000000000 +19.1600000000000001 2.0000000000000000 +19.1700000000000017 2.0000000000000000 +19.1799999999999997 2.0000000000000000 +19.1900000000000013 2.0000000000000000 +19.1999999999999993 2.0000000000000000 +19.2100000000000009 2.0000000000000000 +19.2199999999999989 2.0000000000000000 +19.2300000000000004 2.0000000000000000 +19.2400000000000020 2.0000000000000000 +19.2500000000000000 2.0000000000000000 +19.2600000000000016 2.0000000000000000 +19.2699999999999996 2.0000000000000000 +19.2800000000000011 2.0000000000000000 +19.2899999999999991 2.0000000000000000 +19.3000000000000007 2.0000000000000000 +19.3099999999999987 2.0000000000000000 +19.3200000000000003 2.0000000000000000 +19.3300000000000018 2.0000000000000000 +19.3399999999999999 2.0000000000000000 +19.3500000000000014 2.0000000000000000 +19.3599999999999994 2.0000000000000000 +19.3700000000000010 2.0000000000000000 +19.3799999999999990 2.0000000000000000 +19.3900000000000006 2.0000000000000000 +19.4000000000000021 2.0000000000000000 +19.4100000000000001 2.0000000000000000 +19.4200000000000017 2.0000000000000000 +19.4299999999999997 2.0000000000000000 +19.4400000000000013 2.0000000000000000 +19.4499999999999993 2.0000000000000000 +19.4600000000000009 2.0000000000000000 +19.4699999999999989 2.0000000000000000 +19.4800000000000004 2.0000000000000000 +19.4900000000000020 2.0000000000000000 +19.5000000000000000 2.0000000000000000 +19.5100000000000016 2.0000000000000000 +19.5199999999999996 2.0000000000000000 +19.5300000000000011 2.0000000000000000 +19.5399999999999991 2.0000000000000000 +19.5500000000000007 2.0000000000000000 +19.5599999999999987 2.0000000000000000 +19.5700000000000003 2.0000000000000000 +19.5800000000000018 2.0000000000000000 +19.5899999999999999 2.0000000000000000 +19.6000000000000014 2.0000000000000000 +19.6099999999999994 2.0000000000000000 +19.6200000000000010 2.0000000000000000 +19.6299999999999990 2.0000000000000000 +19.6400000000000006 2.0000000000000000 +19.6500000000000021 2.0000000000000000 +19.6600000000000001 2.0000000000000000 +19.6700000000000017 2.0000000000000000 +19.6799999999999997 2.0000000000000000 +19.6900000000000013 2.0000000000000000 +19.6999999999999993 2.0000000000000000 +19.7100000000000009 2.0000000000000000 +19.7199999999999989 2.0000000000000000 +19.7300000000000004 2.0000000000000000 +19.7400000000000020 2.0000000000000000 +19.7500000000000000 2.0000000000000000 +19.7600000000000016 2.0000000000000000 +19.7699999999999996 2.0000000000000000 +19.7800000000000011 2.0000000000000000 +19.7899999999999991 2.0000000000000000 +19.8000000000000007 2.0000000000000000 +19.8099999999999987 2.0000000000000000 +19.8200000000000003 2.0000000000000000 +19.8300000000000018 2.0000000000000000 +19.8399999999999999 2.0000000000000000 +19.8500000000000014 2.0000000000000000 +19.8599999999999994 2.0000000000000000 +19.8700000000000010 2.0000000000000000 +19.8799999999999990 2.0000000000000000 +19.8900000000000006 2.0000000000000000 +19.9000000000000021 2.0000000000000000 +19.9100000000000001 2.0000000000000000 +19.9200000000000017 2.0000000000000000 +19.9299999999999997 2.0000000000000000 +19.9400000000000013 2.0000000000000000 +19.9499999999999993 2.0000000000000000 +19.9600000000000009 2.0000000000000000 +19.9699999999999989 2.0000000000000000 +19.9800000000000004 2.0000000000000000 +19.9900000000000020 2.0000000000000000 +20.0000000000000000 2.0000000000000000 +20.0100000000000016 2.0000000000000000 +20.0199999999999996 2.0000000000000000 +20.0300000000000011 2.0000000000000000 +20.0399999999999991 2.0000000000000000 +20.0500000000000007 2.0000000000000000 +20.0599999999999987 2.0000000000000000 +20.0700000000000003 2.0000000000000000 +20.0800000000000018 2.0000000000000000 +20.0899999999999999 2.0000000000000000 +20.1000000000000014 2.0000000000000000 +20.1099999999999994 2.0000000000000000 +20.1200000000000010 2.0000000000000000 +20.1299999999999990 2.0000000000000000 +20.1400000000000006 2.0000000000000000 +20.1500000000000021 2.0000000000000000 +20.1600000000000001 2.0000000000000000 +20.1700000000000017 2.0000000000000000 +20.1799999999999997 2.0000000000000000 +20.1900000000000013 2.0000000000000000 +20.1999999999999993 2.0000000000000000 +20.2100000000000009 2.0000000000000000 +20.2199999999999989 2.0000000000000000 +20.2300000000000004 2.0000000000000000 +20.2400000000000020 2.0000000000000000 +20.2500000000000000 2.0000000000000000 +20.2600000000000016 2.0000000000000000 +20.2699999999999996 2.0000000000000000 +20.2800000000000011 2.0000000000000000 +20.2899999999999991 2.0000000000000000 +20.3000000000000007 2.0000000000000000 +20.3099999999999987 2.0000000000000000 +20.3200000000000003 2.0000000000000000 +20.3300000000000018 2.0000000000000000 +20.3399999999999999 2.0000000000000000 +20.3500000000000014 2.0000000000000000 +20.3599999999999994 2.0000000000000000 +20.3700000000000010 2.0000000000000000 +20.3799999999999990 2.0000000000000000 +20.3900000000000006 2.0000000000000000 +20.4000000000000021 2.0000000000000000 +20.4100000000000001 2.0000000000000000 +20.4200000000000017 2.0000000000000000 +20.4299999999999997 2.0000000000000000 +20.4400000000000013 2.0000000000000000 +20.4499999999999993 2.0000000000000000 +20.4600000000000009 2.0000000000000000 +20.4699999999999989 2.0000000000000000 +20.4800000000000004 2.0000000000000000 +20.4900000000000020 2.0000000000000000 +20.5000000000000000 2.0000000000000000 +20.5100000000000016 2.0000000000000000 +20.5199999999999996 2.0000000000000000 +20.5300000000000011 2.0000000000000000 +20.5399999999999991 2.0000000000000000 +20.5500000000000007 2.0000000000000000 +20.5599999999999987 2.0000000000000000 +20.5700000000000003 2.0000000000000000 +20.5800000000000018 2.0000000000000000 +20.5899999999999999 2.0000000000000000 +20.6000000000000014 2.0000000000000000 +20.6099999999999994 2.0000000000000000 +20.6200000000000010 2.0000000000000000 +20.6299999999999990 2.0000000000000000 +20.6400000000000006 2.0000000000000000 +20.6500000000000021 2.0000000000000000 +20.6600000000000001 2.0000000000000000 +20.6700000000000017 2.0000000000000000 +20.6799999999999997 2.0000000000000000 +20.6900000000000013 2.0000000000000000 +20.6999999999999993 2.0000000000000000 +20.7100000000000009 2.0000000000000000 +20.7199999999999989 2.0000000000000000 +20.7300000000000004 2.0000000000000000 +20.7400000000000020 2.0000000000000000 +20.7500000000000000 2.0000000000000000 +20.7600000000000016 2.0000000000000000 +20.7699999999999996 2.0000000000000000 +20.7800000000000011 2.0000000000000000 +20.7899999999999991 2.0000000000000000 +20.8000000000000007 2.0000000000000000 +20.8099999999999987 2.0000000000000000 +20.8200000000000003 2.0000000000000000 +20.8300000000000018 2.0000000000000000 +20.8399999999999999 2.0000000000000000 +20.8500000000000014 2.0000000000000000 +20.8599999999999994 2.0000000000000000 +20.8700000000000010 2.0000000000000000 +20.8799999999999990 2.0000000000000000 +20.8900000000000006 2.0000000000000000 +20.9000000000000021 2.0000000000000000 +20.9100000000000001 2.0000000000000000 +20.9200000000000017 2.0000000000000000 +20.9299999999999997 2.0000000000000000 +20.9400000000000013 2.0000000000000000 +20.9499999999999993 2.0000000000000000 +20.9600000000000009 2.0000000000000000 +20.9699999999999989 2.0000000000000000 +20.9800000000000004 2.0000000000000000 +20.9900000000000020 2.0000000000000000 +21.0000000000000000 2.0000000000000000 +21.0100000000000016 2.0000000000000000 +21.0199999999999996 2.0000000000000000 +21.0300000000000011 2.0000000000000000 +21.0399999999999991 2.0000000000000000 +21.0500000000000007 2.0000000000000000 +21.0599999999999987 2.0000000000000000 +21.0700000000000003 2.0000000000000000 +21.0800000000000018 2.0000000000000000 +21.0899999999999999 2.0000000000000000 +21.1000000000000014 2.0000000000000000 +21.1099999999999994 2.0000000000000000 +21.1200000000000010 2.0000000000000000 +21.1299999999999990 2.0000000000000000 +21.1400000000000006 2.0000000000000000 +21.1500000000000021 2.0000000000000000 +21.1600000000000001 2.0000000000000000 +21.1700000000000017 2.0000000000000000 +21.1799999999999997 2.0000000000000000 +21.1900000000000013 2.0000000000000000 +21.1999999999999993 2.0000000000000000 +21.2100000000000009 2.0000000000000000 +21.2199999999999989 2.0000000000000000 +21.2300000000000004 2.0000000000000000 +21.2400000000000020 2.0000000000000000 +21.2500000000000000 2.0000000000000000 +21.2600000000000016 2.0000000000000000 +21.2699999999999996 2.0000000000000000 +21.2800000000000011 2.0000000000000000 +21.2899999999999991 2.0000000000000000 +21.3000000000000007 2.0000000000000000 +21.3099999999999987 2.0000000000000000 +21.3200000000000003 2.0000000000000000 +21.3300000000000018 2.0000000000000000 +21.3399999999999999 2.0000000000000000 +21.3500000000000014 2.0000000000000000 +21.3599999999999994 2.0000000000000000 +21.3700000000000010 2.0000000000000000 +21.3799999999999990 2.0000000000000000 +21.3900000000000006 2.0000000000000000 +21.4000000000000021 2.0000000000000000 +21.4100000000000001 2.0000000000000000 +21.4200000000000017 2.0000000000000000 +21.4299999999999997 2.0000000000000000 +21.4400000000000013 2.0000000000000000 +21.4499999999999993 2.0000000000000000 +21.4600000000000009 2.0000000000000000 +21.4699999999999989 2.0000000000000000 +21.4800000000000004 2.0000000000000000 +21.4900000000000020 2.0000000000000000 +21.5000000000000000 2.0000000000000000 +21.5100000000000016 2.0000000000000000 +21.5199999999999996 2.0000000000000000 +21.5300000000000011 2.0000000000000000 +21.5399999999999991 2.0000000000000000 +21.5500000000000007 2.0000000000000000 +21.5599999999999987 2.0000000000000000 +21.5700000000000003 2.0000000000000000 +21.5800000000000018 2.0000000000000000 +21.5899999999999999 2.0000000000000000 +21.6000000000000014 2.0000000000000000 +21.6099999999999994 2.0000000000000000 +21.6200000000000010 2.0000000000000000 +21.6299999999999990 2.0000000000000000 +21.6400000000000006 2.0000000000000000 +21.6500000000000021 2.0000000000000000 +21.6600000000000001 2.0000000000000000 +21.6700000000000017 2.0000000000000000 +21.6799999999999997 2.0000000000000000 +21.6900000000000013 2.0000000000000000 +21.6999999999999993 2.0000000000000000 +21.7100000000000009 2.0000000000000000 +21.7199999999999989 2.0000000000000000 +21.7300000000000004 2.0000000000000000 +21.7400000000000020 2.0000000000000000 +21.7500000000000000 2.0000000000000000 +21.7600000000000016 2.0000000000000000 +21.7699999999999996 2.0000000000000000 +21.7800000000000011 2.0000000000000000 +21.7899999999999991 2.0000000000000000 +21.8000000000000007 2.0000000000000000 +21.8099999999999987 2.0000000000000000 +21.8200000000000003 2.0000000000000000 +21.8300000000000018 2.0000000000000000 +21.8399999999999999 2.0000000000000000 +21.8500000000000014 2.0000000000000000 +21.8599999999999994 2.0000000000000000 +21.8700000000000010 2.0000000000000000 +21.8799999999999990 2.0000000000000000 +21.8900000000000006 2.0000000000000000 +21.9000000000000021 2.0000000000000000 +21.9100000000000001 2.0000000000000000 +21.9200000000000017 2.0000000000000000 +21.9299999999999997 2.0000000000000000 +21.9400000000000013 2.0000000000000000 +21.9499999999999993 2.0000000000000000 +21.9600000000000009 2.0000000000000000 +21.9699999999999989 2.0000000000000000 +21.9800000000000004 2.0000000000000000 +21.9900000000000020 2.0000000000000000 +22.0000000000000000 2.0000000000000000 +22.0100000000000016 2.0000000000000000 +22.0199999999999996 2.0000000000000000 +22.0300000000000011 2.0000000000000000 +22.0399999999999991 2.0000000000000000 +22.0500000000000007 2.0000000000000000 +22.0599999999999987 2.0000000000000000 +22.0700000000000003 2.0000000000000000 +22.0800000000000018 2.0000000000000000 +22.0899999999999999 2.0000000000000000 +22.1000000000000014 2.0000000000000000 +22.1099999999999994 2.0000000000000000 +22.1200000000000010 2.0000000000000000 +22.1299999999999990 2.0000000000000000 +22.1400000000000006 2.0000000000000000 +22.1500000000000021 2.0000000000000000 +22.1600000000000001 2.0000000000000000 +22.1700000000000017 2.0000000000000000 +22.1799999999999997 2.0000000000000000 +22.1900000000000013 2.0000000000000000 +22.1999999999999993 2.0000000000000000 +22.2100000000000009 2.0000000000000000 +22.2199999999999989 2.0000000000000000 +22.2300000000000004 2.0000000000000000 +22.2400000000000020 2.0000000000000000 +22.2500000000000000 2.0000000000000000 +22.2600000000000016 2.0000000000000000 +22.2699999999999996 2.0000000000000000 +22.2800000000000011 2.0000000000000000 +22.2899999999999991 2.0000000000000000 +22.3000000000000007 2.0000000000000000 +22.3099999999999987 2.0000000000000000 +22.3200000000000003 2.0000000000000000 +22.3300000000000018 2.0000000000000000 +22.3399999999999999 2.0000000000000000 +22.3500000000000014 2.0000000000000000 +22.3599999999999994 2.0000000000000000 +22.3700000000000010 2.0000000000000000 +22.3799999999999990 2.0000000000000000 +22.3900000000000006 2.0000000000000000 +22.4000000000000021 2.0000000000000000 +22.4100000000000001 2.0000000000000000 +22.4200000000000017 2.0000000000000000 +22.4299999999999997 2.0000000000000000 +22.4400000000000013 2.0000000000000000 +22.4499999999999993 2.0000000000000000 +22.4600000000000009 2.0000000000000000 +22.4699999999999989 2.0000000000000000 +22.4800000000000004 2.0000000000000000 +22.4900000000000020 2.0000000000000000 +22.5000000000000000 2.0000000000000000 +22.5100000000000016 2.0000000000000000 +22.5199999999999996 2.0000000000000000 +22.5300000000000011 2.0000000000000000 +22.5399999999999991 2.0000000000000000 +22.5500000000000007 2.0000000000000000 +22.5599999999999987 2.0000000000000000 +22.5700000000000003 2.0000000000000000 +22.5800000000000018 2.0000000000000000 +22.5899999999999999 2.0000000000000000 +22.6000000000000014 2.0000000000000000 +22.6099999999999994 2.0000000000000000 +22.6200000000000010 2.0000000000000000 +22.6299999999999990 2.0000000000000000 +22.6400000000000006 2.0000000000000000 +22.6500000000000021 2.0000000000000000 +22.6600000000000001 2.0000000000000000 +22.6700000000000017 2.0000000000000000 +22.6799999999999997 2.0000000000000000 +22.6900000000000013 2.0000000000000000 +22.6999999999999993 2.0000000000000000 +22.7100000000000009 2.0000000000000000 +22.7199999999999989 2.0000000000000000 +22.7300000000000004 2.0000000000000000 +22.7400000000000020 2.0000000000000000 +22.7500000000000000 2.0000000000000000 +22.7600000000000016 2.0000000000000000 +22.7699999999999996 2.0000000000000000 +22.7800000000000011 2.0000000000000000 +22.7899999999999991 2.0000000000000000 +22.8000000000000007 2.0000000000000000 +22.8099999999999987 2.0000000000000000 +22.8200000000000003 2.0000000000000000 +22.8300000000000018 2.0000000000000000 +22.8399999999999999 2.0000000000000000 +22.8500000000000014 2.0000000000000000 +22.8599999999999994 2.0000000000000000 +22.8700000000000010 2.0000000000000000 +22.8799999999999990 2.0000000000000000 +22.8900000000000006 2.0000000000000000 +22.9000000000000021 2.0000000000000000 +22.9100000000000001 2.0000000000000000 +22.9200000000000017 2.0000000000000000 +22.9299999999999997 2.0000000000000000 +22.9400000000000013 2.0000000000000000 +22.9499999999999993 2.0000000000000000 +22.9600000000000009 2.0000000000000000 +22.9699999999999989 2.0000000000000000 +22.9800000000000004 2.0000000000000000 +22.9900000000000020 2.0000000000000000 +23.0000000000000000 2.0000000000000000 +23.0100000000000016 2.0000000000000000 +23.0199999999999996 2.0000000000000000 +23.0300000000000011 2.0000000000000000 +23.0399999999999991 2.0000000000000000 +23.0500000000000007 2.0000000000000000 +23.0599999999999987 2.0000000000000000 +23.0700000000000003 2.0000000000000000 +23.0800000000000018 2.0000000000000000 +23.0899999999999999 2.0000000000000000 +23.1000000000000014 2.0000000000000000 +23.1099999999999994 2.0000000000000000 +23.1200000000000010 2.0000000000000000 +23.1299999999999990 2.0000000000000000 +23.1400000000000006 2.0000000000000000 +23.1500000000000021 2.0000000000000000 +23.1600000000000001 2.0000000000000000 +23.1700000000000017 2.0000000000000000 +23.1799999999999997 2.0000000000000000 +23.1900000000000013 2.0000000000000000 +23.1999999999999993 2.0000000000000000 +23.2100000000000009 2.0000000000000000 +23.2199999999999989 2.0000000000000000 +23.2300000000000004 2.0000000000000000 +23.2400000000000020 2.0000000000000000 +23.2500000000000000 2.0000000000000000 +23.2600000000000016 2.0000000000000000 +23.2699999999999996 2.0000000000000000 +23.2800000000000011 2.0000000000000000 +23.2899999999999991 2.0000000000000000 +23.3000000000000007 2.0000000000000000 +23.3099999999999987 2.0000000000000000 +23.3200000000000003 2.0000000000000000 +23.3300000000000018 2.0000000000000000 +23.3399999999999999 2.0000000000000000 +23.3500000000000014 2.0000000000000000 +23.3599999999999994 2.0000000000000000 +23.3700000000000010 2.0000000000000000 +23.3799999999999990 2.0000000000000000 +23.3900000000000006 2.0000000000000000 +23.4000000000000021 2.0000000000000000 +23.4100000000000001 2.0000000000000000 +23.4200000000000017 2.0000000000000000 +23.4299999999999997 2.0000000000000000 +23.4400000000000013 2.0000000000000000 +23.4499999999999993 2.0000000000000000 +23.4600000000000009 2.0000000000000000 +23.4699999999999989 2.0000000000000000 +23.4800000000000004 2.0000000000000000 +23.4900000000000020 2.0000000000000000 +23.5000000000000000 2.0000000000000000 +23.5100000000000016 2.0000000000000000 +23.5199999999999996 2.0000000000000000 +23.5300000000000011 2.0000000000000000 +23.5399999999999991 2.0000000000000000 +23.5500000000000007 2.0000000000000000 +23.5599999999999987 2.0000000000000000 +23.5700000000000003 2.0000000000000000 +23.5800000000000018 2.0000000000000000 +23.5899999999999999 2.0000000000000000 +23.6000000000000014 2.0000000000000000 +23.6099999999999994 2.0000000000000000 +23.6200000000000010 2.0000000000000000 +23.6299999999999990 2.0000000000000000 +23.6400000000000006 2.0000000000000000 +23.6500000000000021 2.0000000000000000 +23.6600000000000001 2.0000000000000000 +23.6700000000000017 2.0000000000000000 +23.6799999999999997 2.0000000000000000 +23.6900000000000013 2.0000000000000000 +23.6999999999999993 2.0000000000000000 +23.7100000000000009 2.0000000000000000 +23.7199999999999989 2.0000000000000000 +23.7300000000000004 2.0000000000000000 +23.7400000000000020 2.0000000000000000 +23.7500000000000000 2.0000000000000000 +23.7600000000000016 2.0000000000000000 +23.7699999999999996 2.0000000000000000 +23.7800000000000011 2.0000000000000000 +23.7899999999999991 2.0000000000000000 +23.8000000000000007 2.0000000000000000 +23.8099999999999987 2.0000000000000000 +23.8200000000000003 2.0000000000000000 +23.8300000000000018 2.0000000000000000 +23.8399999999999999 2.0000000000000000 +23.8500000000000014 2.0000000000000000 +23.8599999999999994 2.0000000000000000 +23.8700000000000010 2.0000000000000000 +23.8799999999999990 2.0000000000000000 +23.8900000000000006 2.0000000000000000 +23.9000000000000021 2.0000000000000000 +23.9100000000000001 2.0000000000000000 +23.9200000000000017 2.0000000000000000 +23.9299999999999997 2.0000000000000000 +23.9400000000000013 2.0000000000000000 +23.9499999999999993 2.0000000000000000 +23.9600000000000009 2.0000000000000000 +23.9699999999999989 2.0000000000000000 +23.9800000000000004 2.0000000000000000 +23.9900000000000020 2.0000000000000000 +24.0000000000000000 2.0000000000000000 +24.0100000000000016 2.0000000000000000 +24.0199999999999996 2.0000000000000000 +24.0300000000000011 2.0000000000000000 +24.0399999999999991 2.0000000000000000 +24.0500000000000007 2.0000000000000000 +24.0600000000000023 2.0000000000000000 +24.0700000000000003 2.0000000000000000 +24.0800000000000018 2.0000000000000000 +24.0899999999999999 2.0000000000000000 +24.1000000000000014 2.0000000000000000 +24.1099999999999994 2.0000000000000000 +24.1200000000000010 2.0000000000000000 +24.1299999999999990 2.0000000000000000 +24.1400000000000006 2.0000000000000000 +24.1500000000000021 2.0000000000000000 +24.1600000000000001 2.0000000000000000 +24.1700000000000017 2.0000000000000000 +24.1799999999999997 2.0000000000000000 +24.1900000000000013 2.0000000000000000 +24.1999999999999993 2.0000000000000000 +24.2100000000000009 2.0000000000000000 +24.2199999999999989 2.0000000000000000 +24.2300000000000004 2.0000000000000000 +24.2400000000000020 2.0000000000000000 +24.2500000000000000 2.0000000000000000 +24.2600000000000016 2.0000000000000000 +24.2699999999999996 2.0000000000000000 +24.2800000000000011 2.0000000000000000 +24.2899999999999991 2.0000000000000000 +24.3000000000000007 2.0000000000000000 +24.3100000000000023 2.0000000000000000 +24.3200000000000003 2.0000000000000000 +24.3300000000000018 2.0000000000000000 +24.3399999999999999 2.0000000000000000 +24.3500000000000014 2.0000000000000000 +24.3599999999999994 2.0000000000000000 +24.3700000000000010 2.0000000000000000 +24.3799999999999990 2.0000000000000000 +24.3900000000000006 2.0000000000000000 +24.4000000000000021 2.0000000000000000 +24.4100000000000001 2.0000000000000000 +24.4200000000000017 2.0000000000000000 +24.4299999999999997 2.0000000000000000 +24.4400000000000013 2.0000000000000000 +24.4499999999999993 2.0000000000000000 +24.4600000000000009 2.0000000000000000 +24.4699999999999989 2.0000000000000000 +24.4800000000000004 2.0000000000000000 +24.4900000000000020 2.0000000000000000 +24.5000000000000000 2.0000000000000000 +24.5100000000000016 2.0000000000000000 +24.5199999999999996 2.0000000000000000 +24.5300000000000011 2.0000000000000000 +24.5399999999999991 2.0000000000000000 +24.5500000000000007 2.0000000000000000 +24.5600000000000023 2.0000000000000000 +24.5700000000000003 2.0000000000000000 +24.5800000000000018 2.0000000000000000 +24.5899999999999999 2.0000000000000000 +24.6000000000000014 2.0000000000000000 +24.6099999999999994 2.0000000000000000 +24.6200000000000010 2.0000000000000000 +24.6299999999999990 2.0000000000000000 +24.6400000000000006 2.0000000000000000 +24.6500000000000021 2.0000000000000000 +24.6600000000000001 2.0000000000000000 +24.6700000000000017 2.0000000000000000 +24.6799999999999997 2.0000000000000000 +24.6900000000000013 2.0000000000000000 +24.6999999999999993 2.0000000000000000 +24.7100000000000009 2.0000000000000000 +24.7199999999999989 2.0000000000000000 +24.7300000000000004 2.0000000000000000 +24.7400000000000020 2.0000000000000000 +24.7500000000000000 2.0000000000000000 +24.7600000000000016 2.0000000000000000 +24.7699999999999996 2.0000000000000000 +24.7800000000000011 2.0000000000000000 +24.7899999999999991 2.0000000000000000 +24.8000000000000007 2.0000000000000000 +24.8100000000000023 2.0000000000000000 +24.8200000000000003 2.0000000000000000 +24.8300000000000018 2.0000000000000000 +24.8399999999999999 2.0000000000000000 +24.8500000000000014 2.0000000000000000 +24.8599999999999994 2.0000000000000000 +24.8700000000000010 2.0000000000000000 +24.8799999999999990 2.0000000000000000 +24.8900000000000006 2.0000000000000000 +24.9000000000000021 2.0000000000000000 +24.9100000000000001 2.0000000000000000 +24.9200000000000017 2.0000000000000000 +24.9299999999999997 2.0000000000000000 +24.9400000000000013 2.0000000000000000 +24.9499999999999993 2.0000000000000000 +24.9600000000000009 2.0000000000000000 +24.9699999999999989 2.0000000000000000 +24.9800000000000004 2.0000000000000000 +24.9900000000000020 2.0000000000000000 +25.0000000000000000 2.0000000000000000 +25.0100000000000016 2.0000000000000000 +25.0199999999999996 2.0000000000000000 +25.0300000000000011 2.0000000000000000 +25.0399999999999991 2.0000000000000000 +25.0500000000000007 2.0000000000000000 +25.0600000000000023 2.0000000000000000 +25.0700000000000003 2.0000000000000000 +25.0800000000000018 2.0000000000000000 +25.0899999999999999 2.0000000000000000 +25.1000000000000014 2.0000000000000000 +25.1099999999999994 2.0000000000000000 +25.1200000000000010 2.0000000000000000 +25.1299999999999990 2.0000000000000000 +25.1400000000000006 2.0000000000000000 +25.1500000000000021 2.0000000000000000 +25.1600000000000001 2.0000000000000000 +25.1700000000000017 2.0000000000000000 +25.1799999999999997 2.0000000000000000 +25.1900000000000013 2.0000000000000000 +25.1999999999999993 2.0000000000000000 +25.2100000000000009 2.0000000000000000 +25.2199999999999989 2.0000000000000000 +25.2300000000000004 2.0000000000000000 +25.2400000000000020 2.0000000000000000 +25.2500000000000000 2.0000000000000000 +25.2600000000000016 2.0000000000000000 +25.2699999999999996 2.0000000000000000 +25.2800000000000011 2.0000000000000000 +25.2899999999999991 2.0000000000000000 +25.3000000000000007 2.0000000000000000 +25.3100000000000023 2.0000000000000000 +25.3200000000000003 2.0000000000000000 +25.3300000000000018 2.0000000000000000 +25.3399999999999999 2.0000000000000000 +25.3500000000000014 2.0000000000000000 +25.3599999999999994 2.0000000000000000 +25.3700000000000010 2.0000000000000000 +25.3799999999999990 2.0000000000000000 +25.3900000000000006 2.0000000000000000 +25.4000000000000021 2.0000000000000000 +25.4100000000000001 2.0000000000000000 +25.4200000000000017 2.0000000000000000 +25.4299999999999997 2.0000000000000000 +25.4400000000000013 2.0000000000000000 +25.4499999999999993 2.0000000000000000 +25.4600000000000009 2.0000000000000000 +25.4699999999999989 2.0000000000000000 +25.4800000000000004 2.0000000000000000 +25.4900000000000020 2.0000000000000000 +25.5000000000000000 2.0000000000000000 +25.5100000000000016 2.0000000000000000 +25.5199999999999996 2.0000000000000000 +25.5300000000000011 2.0000000000000000 +25.5399999999999991 2.0000000000000000 +25.5500000000000007 2.0000000000000000 +25.5600000000000023 2.0000000000000000 +25.5700000000000003 2.0000000000000000 +25.5800000000000018 2.0000000000000000 +25.5899999999999999 2.0000000000000000 +25.6000000000000014 2.0000000000000000 +25.6099999999999994 2.0000000000000000 +25.6200000000000010 2.0000000000000000 +25.6299999999999990 2.0000000000000000 +25.6400000000000006 2.0000000000000000 +25.6500000000000021 2.0000000000000000 +25.6600000000000001 2.0000000000000000 +25.6700000000000017 2.0000000000000000 +25.6799999999999997 2.0000000000000000 +25.6900000000000013 2.0000000000000000 +25.6999999999999993 2.0000000000000000 +25.7100000000000009 2.0000000000000000 +25.7199999999999989 2.0000000000000000 +25.7300000000000004 2.0000000000000000 +25.7400000000000020 2.0000000000000000 +25.7500000000000000 2.0000000000000000 +25.7600000000000016 2.0000000000000000 +25.7699999999999996 2.0000000000000000 +25.7800000000000011 2.0000000000000000 +25.7899999999999991 2.0000000000000000 +25.8000000000000007 2.0000000000000000 +25.8100000000000023 2.0000000000000000 +25.8200000000000003 2.0000000000000000 +25.8300000000000018 2.0000000000000000 +25.8399999999999999 2.0000000000000000 +25.8500000000000014 2.0000000000000000 +25.8599999999999994 2.0000000000000000 +25.8700000000000010 2.0000000000000000 +25.8799999999999990 2.0000000000000000 +25.8900000000000006 2.0000000000000000 +25.9000000000000021 2.0000000000000000 +25.9100000000000001 2.0000000000000000 +25.9200000000000017 2.0000000000000000 +25.9299999999999997 2.0000000000000000 +25.9400000000000013 2.0000000000000000 +25.9499999999999993 2.0000000000000000 +25.9600000000000009 2.0000000000000000 +25.9699999999999989 2.0000000000000000 +25.9800000000000004 2.0000000000000000 +25.9900000000000020 2.0000000000000000 +26.0000000000000000 2.0000000000000000 +26.0100000000000016 2.0000000000000000 +26.0199999999999996 2.0000000000000000 +26.0300000000000011 2.0000000000000000 +26.0399999999999991 2.0000000000000000 +26.0500000000000007 2.0000000000000000 +26.0600000000000023 2.0000000000000000 +26.0700000000000003 2.0000000000000000 +26.0800000000000018 2.0000000000000000 +26.0899999999999999 2.0000000000000000 +26.1000000000000014 2.0000000000000000 +26.1099999999999994 2.0000000000000000 +26.1200000000000010 2.0000000000000000 +26.1299999999999990 2.0000000000000000 +26.1400000000000006 2.0000000000000000 +26.1500000000000021 2.0000000000000000 +26.1600000000000001 2.0000000000000000 +26.1700000000000017 2.0000000000000000 +26.1799999999999997 2.0000000000000000 +26.1900000000000013 2.0000000000000000 +26.1999999999999993 2.0000000000000000 +26.2100000000000009 2.0000000000000000 +26.2199999999999989 2.0000000000000000 +26.2300000000000004 2.0000000000000000 +26.2400000000000020 2.0000000000000000 +26.2500000000000000 2.0000000000000000 +26.2600000000000016 2.0000000000000000 +26.2699999999999996 2.0000000000000000 +26.2800000000000011 2.0000000000000000 +26.2899999999999991 2.0000000000000000 +26.3000000000000007 2.0000000000000000 +26.3100000000000023 2.0000000000000000 +26.3200000000000003 2.0000000000000000 +26.3300000000000018 2.0000000000000000 +26.3399999999999999 2.0000000000000000 +26.3500000000000014 2.0000000000000000 +26.3599999999999994 2.0000000000000000 +26.3700000000000010 2.0000000000000000 +26.3799999999999990 2.0000000000000000 +26.3900000000000006 2.0000000000000000 +26.4000000000000021 2.0000000000000000 +26.4100000000000001 2.0000000000000000 +26.4200000000000017 2.0000000000000000 +26.4299999999999997 2.0000000000000000 +26.4400000000000013 2.0000000000000000 +26.4499999999999993 2.0000000000000000 +26.4600000000000009 2.0000000000000000 +26.4699999999999989 2.0000000000000000 +26.4800000000000004 2.0000000000000000 +26.4900000000000020 2.0000000000000000 +26.5000000000000000 2.0000000000000000 +26.5100000000000016 2.0000000000000000 +26.5199999999999996 2.0000000000000000 +26.5300000000000011 2.0000000000000000 +26.5399999999999991 2.0000000000000000 +26.5500000000000007 2.0000000000000000 +26.5600000000000023 2.0000000000000000 +26.5700000000000003 2.0000000000000000 +26.5800000000000018 2.0000000000000000 +26.5899999999999999 2.0000000000000000 +26.6000000000000014 2.0000000000000000 +26.6099999999999994 2.0000000000000000 +26.6200000000000010 2.0000000000000000 +26.6299999999999990 2.0000000000000000 +26.6400000000000006 2.0000000000000000 +26.6500000000000021 2.0000000000000000 +26.6600000000000001 2.0000000000000000 +26.6700000000000017 2.0000000000000000 +26.6799999999999997 2.0000000000000000 +26.6900000000000013 2.0000000000000000 +26.6999999999999993 2.0000000000000000 +26.7100000000000009 2.0000000000000000 +26.7199999999999989 2.0000000000000000 +26.7300000000000004 2.0000000000000000 +26.7400000000000020 2.0000000000000000 +26.7500000000000000 2.0000000000000000 +26.7600000000000016 2.0000000000000000 +26.7699999999999996 2.0000000000000000 +26.7800000000000011 2.0000000000000000 +26.7899999999999991 2.0000000000000000 +26.8000000000000007 2.0000000000000000 +26.8100000000000023 2.0000000000000000 +26.8200000000000003 2.0000000000000000 +26.8300000000000018 2.0000000000000000 +26.8399999999999999 2.0000000000000000 +26.8500000000000014 2.0000000000000000 +26.8599999999999994 2.0000000000000000 +26.8700000000000010 2.0000000000000000 +26.8799999999999990 2.0000000000000000 +26.8900000000000006 2.0000000000000000 +26.9000000000000021 2.0000000000000000 +26.9100000000000001 2.0000000000000000 +26.9200000000000017 2.0000000000000000 +26.9299999999999997 2.0000000000000000 +26.9400000000000013 2.0000000000000000 +26.9499999999999993 2.0000000000000000 +26.9600000000000009 2.0000000000000000 +26.9699999999999989 2.0000000000000000 +26.9800000000000004 2.0000000000000000 +26.9900000000000020 2.0000000000000000 +27.0000000000000000 2.0000000000000000 +27.0100000000000016 2.0000000000000000 +27.0199999999999996 2.0000000000000000 +27.0300000000000011 2.0000000000000000 +27.0399999999999991 2.0000000000000000 +27.0500000000000007 2.0000000000000000 +27.0600000000000023 2.0000000000000000 +27.0700000000000003 2.0000000000000000 +27.0800000000000018 2.0000000000000000 +27.0899999999999999 2.0000000000000000 +27.1000000000000014 2.0000000000000000 +27.1099999999999994 2.0000000000000000 +27.1200000000000010 2.0000000000000000 +27.1299999999999990 2.0000000000000000 +27.1400000000000006 2.0000000000000000 +27.1500000000000021 2.0000000000000000 +27.1600000000000001 2.0000000000000000 +27.1700000000000017 2.0000000000000000 +27.1799999999999997 2.0000000000000000 +27.1900000000000013 2.0000000000000000 +27.1999999999999993 2.0000000000000000 +27.2100000000000009 2.0000000000000000 +27.2199999999999989 2.0000000000000000 +27.2300000000000004 2.0000000000000000 +27.2400000000000020 2.0000000000000000 +27.2500000000000000 2.0000000000000000 +27.2600000000000016 2.0000000000000000 +27.2699999999999996 2.0000000000000000 +27.2800000000000011 2.0000000000000000 +27.2899999999999991 2.0000000000000000 +27.3000000000000007 2.0000000000000000 +27.3100000000000023 2.0000000000000000 +27.3200000000000003 2.0000000000000000 +27.3300000000000018 2.0000000000000000 +27.3399999999999999 2.0000000000000000 +27.3500000000000014 2.0000000000000000 +27.3599999999999994 2.0000000000000000 +27.3700000000000010 2.0000000000000000 +27.3799999999999990 2.0000000000000000 +27.3900000000000006 2.0000000000000000 +27.4000000000000021 2.0000000000000000 +27.4100000000000001 2.0000000000000000 +27.4200000000000017 2.0000000000000000 +27.4299999999999997 2.0000000000000000 +27.4400000000000013 2.0000000000000000 +27.4499999999999993 2.0000000000000000 +27.4600000000000009 2.0000000000000000 +27.4699999999999989 2.0000000000000000 +27.4800000000000004 2.0000000000000000 +27.4900000000000020 2.0000000000000000 +27.5000000000000000 2.0000000000000000 +27.5100000000000016 2.0000000000000000 +27.5199999999999996 2.0000000000000000 +27.5300000000000011 2.0000000000000000 +27.5399999999999991 2.0000000000000000 +27.5500000000000007 2.0000000000000000 +27.5600000000000023 2.0000000000000000 +27.5700000000000003 2.0000000000000000 +27.5800000000000018 2.0000000000000000 +27.5899999999999999 2.0000000000000000 +27.6000000000000014 2.0000000000000000 +27.6099999999999994 2.0000000000000000 +27.6200000000000010 2.0000000000000000 +27.6299999999999990 2.0000000000000000 +27.6400000000000006 2.0000000000000000 +27.6500000000000021 2.0000000000000000 +27.6600000000000001 2.0000000000000000 +27.6700000000000017 2.0000000000000000 +27.6799999999999997 2.0000000000000000 +27.6900000000000013 2.0000000000000000 +27.6999999999999993 2.0000000000000000 +27.7100000000000009 2.0000000000000000 +27.7199999999999989 2.0000000000000000 +27.7300000000000004 2.0000000000000000 +27.7400000000000020 2.0000000000000000 +27.7500000000000000 2.0000000000000000 +27.7600000000000016 2.0000000000000000 +27.7699999999999996 2.0000000000000000 +27.7800000000000011 2.0000000000000000 +27.7899999999999991 2.0000000000000000 +27.8000000000000007 2.0000000000000000 +27.8100000000000023 2.0000000000000000 +27.8200000000000003 2.0000000000000000 +27.8300000000000018 2.0000000000000000 +27.8399999999999999 2.0000000000000000 +27.8500000000000014 2.0000000000000000 +27.8599999999999994 2.0000000000000000 +27.8700000000000010 2.0000000000000000 +27.8799999999999990 2.0000000000000000 +27.8900000000000006 2.0000000000000000 +27.9000000000000021 2.0000000000000000 +27.9100000000000001 2.0000000000000000 +27.9200000000000017 2.0000000000000000 +27.9299999999999997 2.0000000000000000 +27.9400000000000013 2.0000000000000000 +27.9499999999999993 2.0000000000000000 +27.9600000000000009 2.0000000000000000 +27.9699999999999989 2.0000000000000000 +27.9800000000000004 2.0000000000000000 +27.9900000000000020 2.0000000000000000 +28.0000000000000000 2.0000000000000000 +28.0100000000000016 2.0000000000000000 +28.0199999999999996 2.0000000000000000 +28.0300000000000011 2.0000000000000000 +28.0399999999999991 2.0000000000000000 +28.0500000000000007 2.0000000000000000 +28.0600000000000023 2.0000000000000000 +28.0700000000000003 2.0000000000000000 +28.0800000000000018 2.0000000000000000 +28.0899999999999999 2.0000000000000000 +28.1000000000000014 2.0000000000000000 +28.1099999999999994 2.0000000000000000 +28.1200000000000010 2.0000000000000000 +28.1299999999999990 2.0000000000000000 +28.1400000000000006 2.0000000000000000 +28.1500000000000021 2.0000000000000000 +28.1600000000000001 2.0000000000000000 +28.1700000000000017 2.0000000000000000 +28.1799999999999997 2.0000000000000000 +28.1900000000000013 2.0000000000000000 +28.1999999999999993 2.0000000000000000 +28.2100000000000009 2.0000000000000000 +28.2199999999999989 2.0000000000000000 +28.2300000000000004 2.0000000000000000 +28.2400000000000020 2.0000000000000000 +28.2500000000000000 2.0000000000000000 +28.2600000000000016 2.0000000000000000 +28.2699999999999996 2.0000000000000000 +28.2800000000000011 2.0000000000000000 +28.2899999999999991 2.0000000000000000 +28.3000000000000007 2.0000000000000000 +28.3100000000000023 2.0000000000000000 +28.3200000000000003 2.0000000000000000 +28.3300000000000018 2.0000000000000000 +28.3399999999999999 2.0000000000000000 +28.3500000000000014 2.0000000000000000 +28.3599999999999994 2.0000000000000000 +28.3700000000000010 2.0000000000000000 +28.3799999999999990 2.0000000000000000 +28.3900000000000006 2.0000000000000000 +28.4000000000000021 2.0000000000000000 +28.4100000000000001 2.0000000000000000 +28.4200000000000017 2.0000000000000000 +28.4299999999999997 2.0000000000000000 +28.4400000000000013 2.0000000000000000 +28.4499999999999993 2.0000000000000000 +28.4600000000000009 2.0000000000000000 +28.4699999999999989 2.0000000000000000 +28.4800000000000004 2.0000000000000000 +28.4900000000000020 2.0000000000000000 +28.5000000000000000 2.0000000000000000 +28.5100000000000016 2.0000000000000000 +28.5199999999999996 2.0000000000000000 +28.5300000000000011 2.0000000000000000 +28.5399999999999991 2.0000000000000000 +28.5500000000000007 2.0000000000000000 +28.5600000000000023 2.0000000000000000 +28.5700000000000003 2.0000000000000000 +28.5800000000000018 2.0000000000000000 +28.5899999999999999 2.0000000000000000 +28.6000000000000014 2.0000000000000000 +28.6099999999999994 2.0000000000000000 +28.6200000000000010 2.0000000000000000 +28.6299999999999990 2.0000000000000000 +28.6400000000000006 2.0000000000000000 +28.6500000000000021 2.0000000000000000 +28.6600000000000001 2.0000000000000000 +28.6700000000000017 2.0000000000000000 +28.6799999999999997 2.0000000000000000 +28.6900000000000013 2.0000000000000000 +28.6999999999999993 2.0000000000000000 +28.7100000000000009 2.0000000000000000 +28.7199999999999989 2.0000000000000000 +28.7300000000000004 2.0000000000000000 +28.7400000000000020 2.0000000000000000 +28.7500000000000000 2.0000000000000000 +28.7600000000000016 2.0000000000000000 +28.7699999999999996 2.0000000000000000 +28.7800000000000011 2.0000000000000000 +28.7899999999999991 2.0000000000000000 +28.8000000000000007 2.0000000000000000 +28.8100000000000023 2.0000000000000000 +28.8200000000000003 2.0000000000000000 +28.8300000000000018 2.0000000000000000 +28.8399999999999999 2.0000000000000000 +28.8500000000000014 2.0000000000000000 +28.8599999999999994 2.0000000000000000 +28.8700000000000010 2.0000000000000000 +28.8799999999999990 2.0000000000000000 +28.8900000000000006 2.0000000000000000 +28.9000000000000021 2.0000000000000000 +28.9100000000000001 2.0000000000000000 +28.9200000000000017 2.0000000000000000 +28.9299999999999997 2.0000000000000000 +28.9400000000000013 2.0000000000000000 +28.9499999999999993 2.0000000000000000 +28.9600000000000009 2.0000000000000000 +28.9699999999999989 2.0000000000000000 +28.9800000000000004 2.0000000000000000 +28.9900000000000020 2.0000000000000000 +29.0000000000000000 2.0000000000000000 +29.0100000000000016 2.0000000000000000 +29.0199999999999996 2.0000000000000000 +29.0300000000000011 2.0000000000000000 +29.0399999999999991 2.0000000000000000 +29.0500000000000007 2.0000000000000000 +29.0600000000000023 2.0000000000000000 +29.0700000000000003 2.0000000000000000 +29.0800000000000018 2.0000000000000000 +29.0899999999999999 2.0000000000000000 +29.1000000000000014 2.0000000000000000 +29.1099999999999994 2.0000000000000000 +29.1200000000000010 2.0000000000000000 +29.1299999999999990 2.0000000000000000 +29.1400000000000006 2.0000000000000000 +29.1500000000000021 2.0000000000000000 +29.1600000000000001 2.0000000000000000 +29.1700000000000017 2.0000000000000000 +29.1799999999999997 2.0000000000000000 +29.1900000000000013 2.0000000000000000 +29.1999999999999993 2.0000000000000000 +29.2100000000000009 2.0000000000000000 +29.2199999999999989 2.0000000000000000 +29.2300000000000004 2.0000000000000000 +29.2400000000000020 2.0000000000000000 +29.2500000000000000 2.0000000000000000 +29.2600000000000016 2.0000000000000000 +29.2699999999999996 2.0000000000000000 +29.2800000000000011 2.0000000000000000 +29.2899999999999991 2.0000000000000000 +29.3000000000000007 2.0000000000000000 +29.3100000000000023 2.0000000000000000 +29.3200000000000003 2.0000000000000000 +29.3300000000000018 2.0000000000000000 +29.3399999999999999 2.0000000000000000 +29.3500000000000014 2.0000000000000000 +29.3599999999999994 2.0000000000000000 +29.3700000000000010 2.0000000000000000 +29.3799999999999990 2.0000000000000000 +29.3900000000000006 2.0000000000000000 +29.4000000000000021 2.0000000000000000 +29.4100000000000001 2.0000000000000000 +29.4200000000000017 2.0000000000000000 +29.4299999999999997 2.0000000000000000 +29.4400000000000013 2.0000000000000000 +29.4499999999999993 2.0000000000000000 +29.4600000000000009 2.0000000000000000 +29.4699999999999989 2.0000000000000000 +29.4800000000000004 2.0000000000000000 +29.4900000000000020 2.0000000000000000 +29.5000000000000000 2.0000000000000000 +29.5100000000000016 2.0000000000000000 +29.5199999999999996 2.0000000000000000 +29.5300000000000011 2.0000000000000000 +29.5399999999999991 2.0000000000000000 +29.5500000000000007 2.0000000000000000 +29.5600000000000023 2.0000000000000000 +29.5700000000000003 2.0000000000000000 +29.5800000000000018 2.0000000000000000 +29.5899999999999999 2.0000000000000000 +29.6000000000000014 2.0000000000000000 +29.6099999999999994 2.0000000000000000 +29.6200000000000010 2.0000000000000000 +29.6299999999999990 2.0000000000000000 +29.6400000000000006 2.0000000000000000 +29.6500000000000021 2.0000000000000000 +29.6600000000000001 2.0000000000000000 +29.6700000000000017 2.0000000000000000 +29.6799999999999997 2.0000000000000000 +29.6900000000000013 2.0000000000000000 +29.6999999999999993 2.0000000000000000 +29.7100000000000009 2.0000000000000000 +29.7199999999999989 2.0000000000000000 +29.7300000000000004 2.0000000000000000 +29.7400000000000020 2.0000000000000000 +29.7500000000000000 2.0000000000000000 +29.7600000000000016 2.0000000000000000 +29.7699999999999996 2.0000000000000000 +29.7800000000000011 2.0000000000000000 +29.7899999999999991 2.0000000000000000 +29.8000000000000007 2.0000000000000000 +29.8100000000000023 2.0000000000000000 +29.8200000000000003 2.0000000000000000 +29.8300000000000018 2.0000000000000000 +29.8399999999999999 2.0000000000000000 +29.8500000000000014 2.0000000000000000 +29.8599999999999994 2.0000000000000000 +29.8700000000000010 2.0000000000000000 +29.8799999999999990 2.0000000000000000 +29.8900000000000006 2.0000000000000000 +29.9000000000000021 2.0000000000000000 +29.9100000000000001 2.0000000000000000 +29.9200000000000017 2.0000000000000000 +29.9299999999999997 2.0000000000000000 +29.9400000000000013 2.0000000000000000 +29.9499999999999993 2.0000000000000000 +29.9600000000000009 2.0000000000000000 +29.9699999999999989 2.0000000000000000 +29.9800000000000004 2.0000000000000000 +29.9900000000000020 2.0000000000000000 +30.0000000000000000 2.0000000000000000 +30.0100000000000016 2.0000000000000000 +30.0199999999999996 2.0000000000000000 +30.0300000000000011 2.0000000000000000 +30.0399999999999991 2.0000000000000000 +30.0500000000000007 2.0000000000000000 +30.0600000000000023 2.0000000000000000 +30.0700000000000003 2.0000000000000000 +30.0800000000000018 2.0000000000000000 +30.0899999999999999 2.0000000000000000 +30.1000000000000014 2.0000000000000000 +30.1099999999999994 2.0000000000000000 +30.1200000000000010 2.0000000000000000 +30.1299999999999990 2.0000000000000000 +30.1400000000000006 2.0000000000000000 +30.1500000000000021 2.0000000000000000 +30.1600000000000001 2.0000000000000000 +30.1700000000000017 2.0000000000000000 +30.1799999999999997 2.0000000000000000 +30.1900000000000013 2.0000000000000000 +30.1999999999999993 2.0000000000000000 +30.2100000000000009 2.0000000000000000 +30.2199999999999989 2.0000000000000000 +30.2300000000000004 2.0000000000000000 +30.2400000000000020 2.0000000000000000 +30.2500000000000000 2.0000000000000000 +30.2600000000000016 2.0000000000000000 +30.2699999999999996 2.0000000000000000 +30.2800000000000011 2.0000000000000000 +30.2899999999999991 2.0000000000000000 +30.3000000000000007 2.0000000000000000 +30.3100000000000023 2.0000000000000000 +30.3200000000000003 2.0000000000000000 +30.3300000000000018 2.0000000000000000 +30.3399999999999999 2.0000000000000000 +30.3500000000000014 2.0000000000000000 +30.3599999999999994 2.0000000000000000 +30.3700000000000010 2.0000000000000000 +30.3799999999999990 2.0000000000000000 +30.3900000000000006 2.0000000000000000 +30.4000000000000021 2.0000000000000000 +30.4100000000000001 2.0000000000000000 +30.4200000000000017 2.0000000000000000 +30.4299999999999997 2.0000000000000000 +30.4400000000000013 2.0000000000000000 +30.4499999999999993 2.0000000000000000 +30.4600000000000009 2.0000000000000000 +30.4699999999999989 2.0000000000000000 +30.4800000000000004 2.0000000000000000 +30.4900000000000020 2.0000000000000000 +30.5000000000000000 2.0000000000000000 +30.5100000000000016 2.0000000000000000 +30.5199999999999996 2.0000000000000000 +30.5300000000000011 2.0000000000000000 +30.5399999999999991 2.0000000000000000 +30.5500000000000007 2.0000000000000000 +30.5600000000000023 2.0000000000000000 +30.5700000000000003 2.0000000000000000 +30.5800000000000018 2.0000000000000000 +30.5899999999999999 2.0000000000000000 +30.6000000000000014 2.0000000000000000 +30.6099999999999994 2.0000000000000000 +30.6200000000000010 2.0000000000000000 +30.6299999999999990 2.0000000000000000 +30.6400000000000006 2.0000000000000000 +30.6500000000000021 2.0000000000000000 +30.6600000000000001 2.0000000000000000 +30.6700000000000017 2.0000000000000000 +30.6799999999999997 2.0000000000000000 +30.6900000000000013 2.0000000000000000 +30.6999999999999993 2.0000000000000000 +30.7100000000000009 2.0000000000000000 +30.7199999999999989 2.0000000000000000 +30.7300000000000004 2.0000000000000000 +30.7400000000000020 2.0000000000000000 +30.7500000000000000 2.0000000000000000 +30.7600000000000016 2.0000000000000000 +30.7699999999999996 2.0000000000000000 +30.7800000000000011 2.0000000000000000 +30.7899999999999991 2.0000000000000000 +30.8000000000000007 2.0000000000000000 +30.8100000000000023 2.0000000000000000 +30.8200000000000003 2.0000000000000000 +30.8300000000000018 2.0000000000000000 +30.8399999999999999 2.0000000000000000 +30.8500000000000014 2.0000000000000000 +30.8599999999999994 2.0000000000000000 +30.8700000000000010 2.0000000000000000 +30.8799999999999990 2.0000000000000000 +30.8900000000000006 2.0000000000000000 +30.9000000000000021 2.0000000000000000 +30.9100000000000001 2.0000000000000000 +30.9200000000000017 2.0000000000000000 +30.9299999999999997 2.0000000000000000 +30.9400000000000013 2.0000000000000000 +30.9499999999999993 2.0000000000000000 +30.9600000000000009 2.0000000000000000 +30.9700000000000024 2.0000000000000000 +30.9800000000000004 2.0000000000000000 +30.9900000000000020 2.0000000000000000 +31.0000000000000000 2.0000000000000000 +31.0100000000000016 2.0000000000000000 +31.0199999999999996 2.0000000000000000 +31.0300000000000011 2.0000000000000000 +31.0399999999999991 2.0000000000000000 +31.0500000000000007 2.0000000000000000 +31.0600000000000023 2.0000000000000000 +31.0700000000000003 2.0000000000000000 +31.0800000000000018 2.0000000000000000 +31.0899999999999999 2.0000000000000000 +31.1000000000000014 2.0000000000000000 +31.1099999999999994 2.0000000000000000 +31.1200000000000010 2.0000000000000000 +31.1299999999999990 2.0000000000000000 +31.1400000000000006 2.0000000000000000 +31.1500000000000021 2.0000000000000000 +31.1600000000000001 2.0000000000000000 +31.1700000000000017 2.0000000000000000 +31.1799999999999997 2.0000000000000000 +31.1900000000000013 2.0000000000000000 +31.1999999999999993 2.0000000000000000 +31.2100000000000009 2.0000000000000000 +31.2200000000000024 2.0000000000000000 +31.2300000000000004 2.0000000000000000 +31.2400000000000020 2.0000000000000000 +31.2500000000000000 2.0000000000000000 +31.2600000000000016 2.0000000000000000 +31.2699999999999996 2.0000000000000000 +31.2800000000000011 2.0000000000000000 +31.2899999999999991 2.0000000000000000 +31.3000000000000007 2.0000000000000000 +31.3100000000000023 2.0000000000000000 +31.3200000000000003 2.0000000000000000 +31.3300000000000018 2.0000000000000000 +31.3399999999999999 2.0000000000000000 +31.3500000000000014 2.0000000000000000 +31.3599999999999994 2.0000000000000000 +31.3700000000000010 2.0000000000000000 +31.3799999999999990 2.0000000000000000 +31.3900000000000006 2.0000000000000000 +31.4000000000000021 2.0000000000000000 +31.4100000000000001 2.0000000000000000 +31.4200000000000017 2.0000000000000000 +31.4299999999999997 2.0000000000000000 +31.4400000000000013 2.0000000000000000 +31.4499999999999993 2.0000000000000000 +31.4600000000000009 2.0000000000000000 +31.4700000000000024 2.0000000000000000 +31.4800000000000004 2.0000000000000000 +31.4900000000000020 2.0000000000000000 +31.5000000000000000 2.0000000000000000 +31.5100000000000016 2.0000000000000000 +31.5199999999999996 2.0000000000000000 +31.5300000000000011 2.0000000000000000 +31.5399999999999991 2.0000000000000000 +31.5500000000000007 2.0000000000000000 +31.5600000000000023 2.0000000000000000 +31.5700000000000003 2.0000000000000000 +31.5800000000000018 2.0000000000000000 +31.5899999999999999 2.0000000000000000 +31.6000000000000014 2.0000000000000000 +31.6099999999999994 2.0000000000000000 +31.6200000000000010 2.0000000000000000 +31.6299999999999990 2.0000000000000000 +31.6400000000000006 2.0000000000000000 +31.6500000000000021 2.0000000000000000 +31.6600000000000001 2.0000000000000000 +31.6700000000000017 2.0000000000000000 +31.6799999999999997 2.0000000000000000 +31.6900000000000013 2.0000000000000000 +31.6999999999999993 2.0000000000000000 +31.7100000000000009 2.0000000000000000 +31.7200000000000024 2.0000000000000000 +31.7300000000000004 2.0000000000000000 +31.7400000000000020 2.0000000000000000 +31.7500000000000000 2.0000000000000000 +31.7600000000000016 2.0000000000000000 +31.7699999999999996 2.0000000000000000 +31.7800000000000011 2.0000000000000000 +31.7899999999999991 2.0000000000000000 +31.8000000000000007 2.0000000000000000 +31.8100000000000023 2.0000000000000000 +31.8200000000000003 2.0000000000000000 +31.8300000000000018 2.0000000000000000 +31.8399999999999999 2.0000000000000000 +31.8500000000000014 2.0000000000000000 +31.8599999999999994 2.0000000000000000 +31.8700000000000010 2.0000000000000000 +31.8799999999999990 2.0000000000000000 +31.8900000000000006 2.0000000000000000 +31.9000000000000021 2.0000000000000000 +31.9100000000000001 2.0000000000000000 +31.9200000000000017 2.0000000000000000 +31.9299999999999997 2.0000000000000000 +31.9400000000000013 2.0000000000000000 +31.9499999999999993 2.0000000000000000 +31.9600000000000009 2.0000000000000000 +31.9700000000000024 2.0000000000000000 +31.9800000000000004 2.0000000000000000 +31.9900000000000020 2.0000000000000000 +32.0000000000000000 2.0000000000000000 +32.0099999999999980 2.0000000000000000 +32.0200000000000031 2.0000000000000000 +32.0300000000000011 2.0000000000000000 +32.0399999999999991 2.0000000000000000 +32.0499999999999972 2.0000000000000000 +32.0600000000000023 2.0000000000000000 +32.0700000000000003 2.0000000000000000 +32.0799999999999983 2.0000000000000000 +32.0900000000000034 2.0000000000000000 +32.1000000000000014 2.0000000000000000 +32.1099999999999994 2.0000000000000000 +32.1199999999999974 2.0000000000000000 +32.1300000000000026 2.0000000000000000 +32.1400000000000006 2.0000000000000000 +32.1499999999999986 2.0000000000000000 +32.1600000000000037 2.0000000000000000 +32.1700000000000017 2.0000000000000000 +32.1799999999999997 2.0000000000000000 +32.1899999999999977 2.0000000000000000 +32.2000000000000028 2.0000000000000000 +32.2100000000000009 2.0000000000000000 +32.2199999999999989 2.0000000000000000 +32.2300000000000040 2.0000000000000000 +32.2400000000000020 2.0000000000000000 +32.2500000000000000 2.0000000000000000 +32.2599999999999980 2.0000000000000000 +32.2700000000000031 2.0000000000000000 +32.2800000000000011 2.0000000000000000 +32.2899999999999991 2.0000000000000000 +32.2999999999999972 2.0000000000000000 +32.3100000000000023 2.0000000000000000 +32.3200000000000003 2.0000000000000000 +32.3299999999999983 2.0000000000000000 +32.3400000000000034 2.0000000000000000 +32.3500000000000014 2.0000000000000000 +32.3599999999999994 2.0000000000000000 +32.3699999999999974 2.0000000000000000 +32.3800000000000026 2.0000000000000000 +32.3900000000000006 2.0000000000000000 +32.3999999999999986 2.0000000000000000 +32.4100000000000037 2.0000000000000000 +32.4200000000000017 2.0000000000000000 +32.4299999999999997 2.0000000000000000 +32.4399999999999977 2.0000000000000000 +32.4500000000000028 2.0000000000000000 +32.4600000000000009 2.0000000000000000 +32.4699999999999989 2.0000000000000000 +32.4800000000000040 2.0000000000000000 +32.4900000000000020 2.0000000000000000 +32.5000000000000000 2.0000000000000000 +32.5099999999999980 2.0000000000000000 +32.5200000000000031 2.0000000000000000 +32.5300000000000011 2.0000000000000000 +32.5399999999999991 2.0000000000000000 +32.5499999999999972 2.0000000000000000 +32.5600000000000023 2.0000000000000000 +32.5700000000000003 2.0000000000000000 +32.5799999999999983 2.0000000000000000 +32.5900000000000034 2.0000000000000000 +32.6000000000000014 2.0000000000000000 +32.6099999999999994 2.0000000000000000 +32.6199999999999974 2.0000000000000000 +32.6300000000000026 2.0000000000000000 +32.6400000000000006 2.0000000000000000 +32.6499999999999986 2.0000000000000000 +32.6600000000000037 2.0000000000000000 +32.6700000000000017 2.0000000000000000 +32.6799999999999997 2.0000000000000000 +32.6899999999999977 2.0000000000000000 +32.7000000000000028 2.0000000000000000 +32.7100000000000009 2.0000000000000000 +32.7199999999999989 2.0000000000000000 +32.7300000000000040 2.0000000000000000 +32.7400000000000020 2.0000000000000000 +32.7500000000000000 2.0000000000000000 +32.7599999999999980 2.0000000000000000 +32.7700000000000031 2.0000000000000000 +32.7800000000000011 2.0000000000000000 +32.7899999999999991 2.0000000000000000 +32.7999999999999972 2.0000000000000000 +32.8100000000000023 2.0000000000000000 +32.8200000000000003 2.0000000000000000 +32.8299999999999983 2.0000000000000000 +32.8400000000000034 2.0000000000000000 +32.8500000000000014 2.0000000000000000 +32.8599999999999994 2.0000000000000000 +32.8699999999999974 2.0000000000000000 +32.8800000000000026 2.0000000000000000 +32.8900000000000006 2.0000000000000000 +32.8999999999999986 2.0000000000000000 +32.9100000000000037 2.0000000000000000 +32.9200000000000017 2.0000000000000000 +32.9299999999999997 2.0000000000000000 +32.9399999999999977 2.0000000000000000 +32.9500000000000028 2.0000000000000000 +32.9600000000000009 2.0000000000000000 +32.9699999999999989 2.0000000000000000 +32.9800000000000040 2.0000000000000000 +32.9900000000000020 2.0000000000000000 +33.0000000000000000 2.0000000000000000 +33.0099999999999980 2.0000000000000000 +33.0200000000000031 2.0000000000000000 +33.0300000000000011 2.0000000000000000 +33.0399999999999991 2.0000000000000000 +33.0499999999999972 2.0000000000000000 +33.0600000000000023 2.0000000000000000 +33.0700000000000003 2.0000000000000000 +33.0799999999999983 2.0000000000000000 +33.0900000000000034 2.0000000000000000 +33.1000000000000014 2.0000000000000000 +33.1099999999999994 2.0000000000000000 +33.1199999999999974 2.0000000000000000 +33.1300000000000026 2.0000000000000000 +33.1400000000000006 2.0000000000000000 +33.1499999999999986 2.0000000000000000 +33.1600000000000037 2.0000000000000000 +33.1700000000000017 2.0000000000000000 +33.1799999999999997 2.0000000000000000 +33.1899999999999977 2.0000000000000000 +33.2000000000000028 2.0000000000000000 +33.2100000000000009 2.0000000000000000 +33.2199999999999989 2.0000000000000000 +33.2300000000000040 2.0000000000000000 +33.2400000000000020 2.0000000000000000 +33.2500000000000000 2.0000000000000000 +33.2599999999999980 2.0000000000000000 +33.2700000000000031 2.0000000000000000 +33.2800000000000011 2.0000000000000000 +33.2899999999999991 2.0000000000000000 +33.2999999999999972 2.0000000000000000 +33.3100000000000023 2.0000000000000000 +33.3200000000000003 2.0000000000000000 +33.3299999999999983 2.0000000000000000 +33.3400000000000034 2.0000000000000000 +33.3500000000000014 2.0000000000000000 +33.3599999999999994 2.0000000000000000 +33.3699999999999974 2.0000000000000000 +33.3800000000000026 2.0000000000000000 +33.3900000000000006 2.0000000000000000 +33.3999999999999986 2.0000000000000000 +33.4100000000000037 2.0000000000000000 +33.4200000000000017 2.0000000000000000 +33.4299999999999997 2.0000000000000000 +33.4399999999999977 2.0000000000000000 +33.4500000000000028 2.0000000000000000 +33.4600000000000009 2.0000000000000000 +33.4699999999999989 2.0000000000000000 +33.4800000000000040 2.0000000000000000 +33.4900000000000020 2.0000000000000000 +33.5000000000000000 2.0000000000000000 +33.5099999999999980 2.0000000000000000 +33.5200000000000031 2.0000000000000000 +33.5300000000000011 2.0000000000000000 +33.5399999999999991 2.0000000000000000 +33.5499999999999972 2.0000000000000000 +33.5600000000000023 2.0000000000000000 +33.5700000000000003 2.0000000000000000 +33.5799999999999983 2.0000000000000000 +33.5900000000000034 2.0000000000000000 +33.6000000000000014 2.0000000000000000 +33.6099999999999994 2.0000000000000000 +33.6199999999999974 2.0000000000000000 +33.6300000000000026 2.0000000000000000 +33.6400000000000006 2.0000000000000000 +33.6499999999999986 2.0000000000000000 +33.6600000000000037 2.0000000000000000 +33.6700000000000017 2.0000000000000000 +33.6799999999999997 2.0000000000000000 +33.6899999999999977 2.0000000000000000 +33.7000000000000028 2.0000000000000000 +33.7100000000000009 2.0000000000000000 +33.7199999999999989 2.0000000000000000 +33.7300000000000040 2.0000000000000000 +33.7400000000000020 2.0000000000000000 +33.7500000000000000 2.0000000000000000 +33.7599999999999980 2.0000000000000000 +33.7700000000000031 2.0000000000000000 +33.7800000000000011 2.0000000000000000 +33.7899999999999991 2.0000000000000000 +33.7999999999999972 2.0000000000000000 +33.8100000000000023 2.0000000000000000 +33.8200000000000003 2.0000000000000000 +33.8299999999999983 2.0000000000000000 +33.8400000000000034 2.0000000000000000 +33.8500000000000014 2.0000000000000000 +33.8599999999999994 2.0000000000000000 +33.8699999999999974 2.0000000000000000 +33.8800000000000026 2.0000000000000000 +33.8900000000000006 2.0000000000000000 +33.8999999999999986 2.0000000000000000 +33.9100000000000037 2.0000000000000000 +33.9200000000000017 2.0000000000000000 +33.9299999999999997 2.0000000000000000 +33.9399999999999977 2.0000000000000000 +33.9500000000000028 2.0000000000000000 +33.9600000000000009 2.0000000000000000 +33.9699999999999989 2.0000000000000000 +33.9800000000000040 2.0000000000000000 +33.9900000000000020 2.0000000000000000 +34.0000000000000000 2.0000000000000000 +34.0099999999999980 2.0000000000000000 +34.0200000000000031 2.0000000000000000 +34.0300000000000011 2.0000000000000000 +34.0399999999999991 2.0000000000000000 +34.0499999999999972 2.0000000000000000 +34.0600000000000023 2.0000000000000000 +34.0700000000000003 2.0000000000000000 +34.0799999999999983 2.0000000000000000 +34.0900000000000034 2.0000000000000000 +34.1000000000000014 2.0000000000000000 +34.1099999999999994 2.0000000000000000 +34.1199999999999974 2.0000000000000000 +34.1300000000000026 2.0000000000000000 +34.1400000000000006 2.0000000000000000 +34.1499999999999986 2.0000000000000000 +34.1600000000000037 2.0000000000000000 +34.1700000000000017 2.0000000000000000 +34.1799999999999997 2.0000000000000000 +34.1899999999999977 2.0000000000000000 +34.2000000000000028 2.0000000000000000 +34.2100000000000009 2.0000000000000000 +34.2199999999999989 2.0000000000000000 +34.2300000000000040 2.0000000000000000 +34.2400000000000020 2.0000000000000000 +34.2500000000000000 2.0000000000000000 +34.2599999999999980 2.0000000000000000 +34.2700000000000031 2.0000000000000000 +34.2800000000000011 2.0000000000000000 +34.2899999999999991 2.0000000000000000 +34.3000000000000043 2.0000000000000000 +34.3100000000000023 2.0000000000000000 +34.3200000000000003 2.0000000000000000 +34.3299999999999983 2.0000000000000000 +34.3400000000000034 2.0000000000000000 +34.3500000000000014 2.0000000000000000 +34.3599999999999994 2.0000000000000000 +34.3699999999999974 2.0000000000000000 +34.3800000000000026 2.0000000000000000 +34.3900000000000006 2.0000000000000000 +34.3999999999999986 2.0000000000000000 +34.4100000000000037 2.0000000000000000 +34.4200000000000017 2.0000000000000000 +34.4299999999999997 2.0000000000000000 +34.4399999999999977 2.0000000000000000 +34.4500000000000028 2.0000000000000000 +34.4600000000000009 2.0000000000000000 +34.4699999999999989 2.0000000000000000 +34.4800000000000040 2.0000000000000000 +34.4900000000000020 2.0000000000000000 +34.5000000000000000 2.0000000000000000 +34.5099999999999980 2.0000000000000000 +34.5200000000000031 2.0000000000000000 +34.5300000000000011 2.0000000000000000 +34.5399999999999991 2.0000000000000000 +34.5500000000000043 2.0000000000000000 +34.5600000000000023 2.0000000000000000 +34.5700000000000003 2.0000000000000000 +34.5799999999999983 2.0000000000000000 +34.5900000000000034 2.0000000000000000 +34.6000000000000014 2.0000000000000000 +34.6099999999999994 2.0000000000000000 +34.6199999999999974 2.0000000000000000 +34.6300000000000026 2.0000000000000000 +34.6400000000000006 2.0000000000000000 +34.6499999999999986 2.0000000000000000 +34.6600000000000037 2.0000000000000000 +34.6700000000000017 2.0000000000000000 +34.6799999999999997 2.0000000000000000 +34.6899999999999977 2.0000000000000000 +34.7000000000000028 2.0000000000000000 +34.7100000000000009 2.0000000000000000 +34.7199999999999989 2.0000000000000000 +34.7300000000000040 2.0000000000000000 +34.7400000000000020 2.0000000000000000 +34.7500000000000000 2.0000000000000000 +34.7599999999999980 2.0000000000000000 +34.7700000000000031 2.0000000000000000 +34.7800000000000011 2.0000000000000000 +34.7899999999999991 2.0000000000000000 +34.8000000000000043 2.0000000000000000 +34.8100000000000023 2.0000000000000000 +34.8200000000000003 2.0000000000000000 +34.8299999999999983 2.0000000000000000 +34.8400000000000034 2.0000000000000000 +34.8500000000000014 2.0000000000000000 +34.8599999999999994 2.0000000000000000 +34.8699999999999974 2.0000000000000000 +34.8800000000000026 2.0000000000000000 +34.8900000000000006 2.0000000000000000 +34.8999999999999986 2.0000000000000000 +34.9100000000000037 2.0000000000000000 +34.9200000000000017 2.0000000000000000 +34.9299999999999997 2.0000000000000000 +34.9399999999999977 2.0000000000000000 +34.9500000000000028 2.0000000000000000 +34.9600000000000009 2.0000000000000000 +34.9699999999999989 2.0000000000000000 +34.9800000000000040 2.0000000000000000 +34.9900000000000020 2.0000000000000000 +35.0000000000000000 2.0000000000000000 +35.0099999999999980 2.0000000000000000 +35.0200000000000031 2.0000000000000000 +35.0300000000000011 2.0000000000000000 +35.0399999999999991 2.0000000000000000 +35.0500000000000043 2.0000000000000000 +35.0600000000000023 2.0000000000000000 +35.0700000000000003 2.0000000000000000 +35.0799999999999983 2.0000000000000000 +35.0900000000000034 2.0000000000000000 +35.1000000000000014 2.0000000000000000 +35.1099999999999994 2.0000000000000000 +35.1199999999999974 2.0000000000000000 +35.1300000000000026 2.0000000000000000 +35.1400000000000006 2.0000000000000000 +35.1499999999999986 2.0000000000000000 +35.1600000000000037 2.0000000000000000 +35.1700000000000017 2.0000000000000000 +35.1799999999999997 2.0000000000000000 +35.1899999999999977 2.0000000000000000 +35.2000000000000028 2.0000000000000000 +35.2100000000000009 2.0000000000000000 +35.2199999999999989 2.0000000000000000 +35.2300000000000040 2.0000000000000000 +35.2400000000000020 2.0000000000000000 +35.2500000000000000 2.0000000000000000 +35.2599999999999980 2.0000000000000000 +35.2700000000000031 2.0000000000000000 +35.2800000000000011 2.0000000000000000 +35.2899999999999991 2.0000000000000000 +35.3000000000000043 2.0000000000000000 +35.3100000000000023 2.0000000000000000 +35.3200000000000003 2.0000000000000000 +35.3299999999999983 2.0000000000000000 +35.3400000000000034 2.0000000000000000 +35.3500000000000014 2.0000000000000000 +35.3599999999999994 2.0000000000000000 +35.3699999999999974 2.0000000000000000 +35.3800000000000026 2.0000000000000000 +35.3900000000000006 2.0000000000000000 +35.3999999999999986 2.0000000000000000 +35.4100000000000037 2.0000000000000000 +35.4200000000000017 2.0000000000000000 +35.4299999999999997 2.0000000000000000 +35.4399999999999977 2.0000000000000000 +35.4500000000000028 2.0000000000000000 +35.4600000000000009 2.0000000000000000 +35.4699999999999989 2.0000000000000000 +35.4800000000000040 2.0000000000000000 +35.4900000000000020 2.0000000000000000 +35.5000000000000000 2.0000000000000000 +35.5099999999999980 2.0000000000000000 +35.5200000000000031 2.0000000000000000 +35.5300000000000011 2.0000000000000000 +35.5399999999999991 2.0000000000000000 +35.5500000000000043 2.0000000000000000 +35.5600000000000023 2.0000000000000000 +35.5700000000000003 2.0000000000000000 +35.5799999999999983 2.0000000000000000 +35.5900000000000034 2.0000000000000000 +35.6000000000000014 2.0000000000000000 +35.6099999999999994 2.0000000000000000 +35.6199999999999974 2.0000000000000000 +35.6300000000000026 2.0000000000000000 +35.6400000000000006 2.0000000000000000 +35.6499999999999986 2.0000000000000000 +35.6600000000000037 2.0000000000000000 +35.6700000000000017 2.0000000000000000 +35.6799999999999997 2.0000000000000000 +35.6899999999999977 2.0000000000000000 +35.7000000000000028 2.0000000000000000 +35.7100000000000009 2.0000000000000000 +35.7199999999999989 2.0000000000000000 +35.7300000000000040 2.0000000000000000 +35.7400000000000020 2.0000000000000000 +35.7500000000000000 2.0000000000000000 +35.7599999999999980 2.0000000000000000 +35.7700000000000031 2.0000000000000000 +35.7800000000000011 2.0000000000000000 +35.7899999999999991 2.0000000000000000 +35.8000000000000043 2.0000000000000000 +35.8100000000000023 2.0000000000000000 +35.8200000000000003 2.0000000000000000 +35.8299999999999983 2.0000000000000000 +35.8400000000000034 2.0000000000000000 +35.8500000000000014 2.0000000000000000 +35.8599999999999994 2.0000000000000000 +35.8699999999999974 2.0000000000000000 +35.8800000000000026 2.0000000000000000 +35.8900000000000006 2.0000000000000000 +35.8999999999999986 2.0000000000000000 +35.9100000000000037 2.0000000000000000 +35.9200000000000017 2.0000000000000000 +35.9299999999999997 2.0000000000000000 +35.9399999999999977 2.0000000000000000 +35.9500000000000028 2.0000000000000000 +35.9600000000000009 2.0000000000000000 +35.9699999999999989 2.0000000000000000 +35.9800000000000040 2.0000000000000000 +35.9900000000000020 2.0000000000000000 +36.0000000000000000 2.0000000000000000 +36.0099999999999980 2.0000000000000000 +36.0200000000000031 2.0000000000000000 +36.0300000000000011 2.0000000000000000 +36.0399999999999991 2.0000000000000000 +36.0500000000000043 2.0000000000000000 +36.0600000000000023 2.0000000000000000 +36.0700000000000003 2.0000000000000000 +36.0799999999999983 2.0000000000000000 +36.0900000000000034 2.0000000000000000 +36.1000000000000014 2.0000000000000000 +36.1099999999999994 2.0000000000000000 +36.1199999999999974 2.0000000000000000 +36.1300000000000026 2.0000000000000000 +36.1400000000000006 2.0000000000000000 +36.1499999999999986 2.0000000000000000 +36.1600000000000037 2.0000000000000000 +36.1700000000000017 2.0000000000000000 +36.1799999999999997 2.0000000000000000 +36.1899999999999977 2.0000000000000000 +36.2000000000000028 2.0000000000000000 +36.2100000000000009 2.0000000000000000 +36.2199999999999989 2.0000000000000000 +36.2300000000000040 2.0000000000000000 +36.2400000000000020 2.0000000000000000 +36.2500000000000000 2.0000000000000000 +36.2599999999999980 2.0000000000000000 +36.2700000000000031 2.0000000000000000 +36.2800000000000011 2.0000000000000000 +36.2899999999999991 2.0000000000000000 +36.3000000000000043 2.0000000000000000 +36.3100000000000023 2.0000000000000000 +36.3200000000000003 2.0000000000000000 +36.3299999999999983 2.0000000000000000 +36.3400000000000034 2.0000000000000000 +36.3500000000000014 2.0000000000000000 +36.3599999999999994 2.0000000000000000 +36.3699999999999974 2.0000000000000000 +36.3800000000000026 2.0000000000000000 +36.3900000000000006 2.0000000000000000 +36.3999999999999986 2.0000000000000000 +36.4100000000000037 2.0000000000000000 +36.4200000000000017 2.0000000000000000 +36.4299999999999997 2.0000000000000000 +36.4399999999999977 2.0000000000000000 +36.4500000000000028 2.0000000000000000 +36.4600000000000009 2.0000000000000000 +36.4699999999999989 2.0000000000000000 +36.4800000000000040 2.0000000000000000 +36.4900000000000020 2.0000000000000000 +36.5000000000000000 2.0000000000000000 +36.5099999999999980 2.0000000000000000 +36.5200000000000031 2.0000000000000000 +36.5300000000000011 2.0000000000000000 +36.5399999999999991 2.0000000000000000 +36.5500000000000043 2.0000000000000000 +36.5600000000000023 2.0000000000000000 +36.5700000000000003 2.0000000000000000 +36.5799999999999983 2.0000000000000000 +36.5900000000000034 2.0000000000000000 +36.6000000000000014 2.0000000000000000 +36.6099999999999994 2.0000000000000000 +36.6199999999999974 2.0000000000000000 +36.6300000000000026 2.0000000000000000 +36.6400000000000006 2.0000000000000000 +36.6499999999999986 2.0000000000000000 +36.6600000000000037 2.0000000000000000 +36.6700000000000017 2.0000000000000000 +36.6799999999999997 2.0000000000000000 +36.6899999999999977 2.0000000000000000 +36.7000000000000028 2.0000000000000000 +36.7100000000000009 2.0000000000000000 +36.7199999999999989 2.0000000000000000 +36.7300000000000040 2.0000000000000000 +36.7400000000000020 2.0000000000000000 +36.7500000000000000 2.0000000000000000 +36.7599999999999980 2.0000000000000000 +36.7700000000000031 2.0000000000000000 +36.7800000000000011 2.0000000000000000 +36.7899999999999991 2.0000000000000000 +36.8000000000000043 2.0000000000000000 +36.8100000000000023 2.0000000000000000 +36.8200000000000003 2.0000000000000000 +36.8299999999999983 2.0000000000000000 +36.8400000000000034 2.0000000000000000 +36.8500000000000014 2.0000000000000000 +36.8599999999999994 2.0000000000000000 +36.8699999999999974 2.0000000000000000 +36.8800000000000026 2.0000000000000000 +36.8900000000000006 2.0000000000000000 +36.8999999999999986 2.0000000000000000 +36.9100000000000037 2.0000000000000000 +36.9200000000000017 2.0000000000000000 +36.9299999999999997 2.0000000000000000 +36.9399999999999977 2.0000000000000000 +36.9500000000000028 2.0000000000000000 +36.9600000000000009 2.0000000000000000 +36.9699999999999989 2.0000000000000000 +36.9800000000000040 2.0000000000000000 +36.9900000000000020 2.0000000000000000 +37.0000000000000000 2.0000000000000000 +37.0099999999999980 2.0000000000000000 +37.0200000000000031 2.0000000000000000 +37.0300000000000011 2.0000000000000000 +37.0399999999999991 2.0000000000000000 +37.0500000000000043 2.0000000000000000 +37.0600000000000023 2.0000000000000000 +37.0700000000000003 2.0000000000000000 +37.0799999999999983 2.0000000000000000 +37.0900000000000034 2.0000000000000000 +37.1000000000000014 2.0000000000000000 +37.1099999999999994 2.0000000000000000 +37.1199999999999974 2.0000000000000000 +37.1300000000000026 2.0000000000000000 +37.1400000000000006 2.0000000000000000 +37.1499999999999986 2.0000000000000000 +37.1600000000000037 2.0000000000000000 +37.1700000000000017 2.0000000000000000 +37.1799999999999997 2.0000000000000000 +37.1899999999999977 2.0000000000000000 +37.2000000000000028 2.0000000000000000 +37.2100000000000009 2.0000000000000000 +37.2199999999999989 2.0000000000000000 +37.2300000000000040 2.0000000000000000 +37.2400000000000020 2.0000000000000000 +37.2500000000000000 2.0000000000000000 +37.2599999999999980 2.0000000000000000 +37.2700000000000031 2.0000000000000000 +37.2800000000000011 2.0000000000000000 +37.2899999999999991 2.0000000000000000 +37.3000000000000043 2.0000000000000000 +37.3100000000000023 2.0000000000000000 +37.3200000000000003 2.0000000000000000 +37.3299999999999983 2.0000000000000000 +37.3400000000000034 2.0000000000000000 +37.3500000000000014 2.0000000000000000 +37.3599999999999994 2.0000000000000000 +37.3699999999999974 2.0000000000000000 +37.3800000000000026 2.0000000000000000 +37.3900000000000006 2.0000000000000000 +37.3999999999999986 2.0000000000000000 +37.4100000000000037 2.0000000000000000 +37.4200000000000017 2.0000000000000000 +37.4299999999999997 2.0000000000000000 +37.4399999999999977 2.0000000000000000 +37.4500000000000028 2.0000000000000000 +37.4600000000000009 2.0000000000000000 +37.4699999999999989 2.0000000000000000 +37.4800000000000040 2.0000000000000000 +37.4900000000000020 2.0000000000000000 +37.5000000000000000 2.0000000000000000 +37.5099999999999980 2.0000000000000000 +37.5200000000000031 2.0000000000000000 +37.5300000000000011 2.0000000000000000 +37.5399999999999991 2.0000000000000000 +37.5500000000000043 2.0000000000000000 +37.5600000000000023 2.0000000000000000 +37.5700000000000003 2.0000000000000000 +37.5799999999999983 2.0000000000000000 +37.5900000000000034 2.0000000000000000 +37.6000000000000014 2.0000000000000000 +37.6099999999999994 2.0000000000000000 +37.6199999999999974 2.0000000000000000 +37.6300000000000026 2.0000000000000000 +37.6400000000000006 2.0000000000000000 +37.6499999999999986 2.0000000000000000 +37.6600000000000037 2.0000000000000000 +37.6700000000000017 2.0000000000000000 +37.6799999999999997 2.0000000000000000 +37.6899999999999977 2.0000000000000000 +37.7000000000000028 2.0000000000000000 +37.7100000000000009 2.0000000000000000 +37.7199999999999989 2.0000000000000000 +37.7300000000000040 2.0000000000000000 +37.7400000000000020 2.0000000000000000 +37.7500000000000000 2.0000000000000000 +37.7599999999999980 2.0000000000000000 +37.7700000000000031 2.0000000000000000 +37.7800000000000011 2.0000000000000000 +37.7899999999999991 2.0000000000000000 +37.8000000000000043 2.0000000000000000 +37.8100000000000023 2.0000000000000000 +37.8200000000000003 2.0000000000000000 +37.8299999999999983 2.0000000000000000 +37.8400000000000034 2.0000000000000000 +37.8500000000000014 2.0000000000000000 +37.8599999999999994 2.0000000000000000 +37.8699999999999974 2.0000000000000000 +37.8800000000000026 2.0000000000000000 +37.8900000000000006 2.0000000000000000 +37.8999999999999986 2.0000000000000000 +37.9100000000000037 2.0000000000000000 +37.9200000000000017 2.0000000000000000 +37.9299999999999997 2.0000000000000000 +37.9399999999999977 2.0000000000000000 +37.9500000000000028 2.0000000000000000 +37.9600000000000009 2.0000000000000000 +37.9699999999999989 2.0000000000000000 +37.9800000000000040 2.0000000000000000 +37.9900000000000020 2.0000000000000000 +38.0000000000000000 2.0000000000000000 +38.0099999999999980 2.0000000000000000 +38.0200000000000031 2.0000000000000000 +38.0300000000000011 2.0000000000000000 +38.0399999999999991 2.0000000000000000 +38.0500000000000043 2.0000000000000000 +38.0600000000000023 2.0000000000000000 +38.0700000000000003 2.0000000000000000 +38.0799999999999983 2.0000000000000000 +38.0900000000000034 2.0000000000000000 +38.1000000000000014 2.0000000000000000 +38.1099999999999994 2.0000000000000000 +38.1199999999999974 2.0000000000000000 +38.1300000000000026 2.0000000000000000 +38.1400000000000006 2.0000000000000000 +38.1499999999999986 2.0000000000000000 +38.1600000000000037 2.0000000000000000 +38.1700000000000017 2.0000000000000000 +38.1799999999999997 2.0000000000000000 +38.1899999999999977 2.0000000000000000 +38.2000000000000028 2.0000000000000000 +38.2100000000000009 2.0000000000000000 +38.2199999999999989 2.0000000000000000 +38.2300000000000040 2.0000000000000000 +38.2400000000000020 2.0000000000000000 +38.2500000000000000 2.0000000000000000 +38.2599999999999980 2.0000000000000000 +38.2700000000000031 2.0000000000000000 +38.2800000000000011 2.0000000000000000 +38.2899999999999991 2.0000000000000000 +38.3000000000000043 2.0000000000000000 +38.3100000000000023 2.0000000000000000 +38.3200000000000003 2.0000000000000000 +38.3299999999999983 2.0000000000000000 +38.3400000000000034 2.0000000000000000 +38.3500000000000014 2.0000000000000000 +38.3599999999999994 2.0000000000000000 +38.3699999999999974 2.0000000000000000 +38.3800000000000026 2.0000000000000000 +38.3900000000000006 2.0000000000000000 +38.3999999999999986 2.0000000000000000 +38.4100000000000037 2.0000000000000000 +38.4200000000000017 2.0000000000000000 +38.4299999999999997 2.0000000000000000 +38.4399999999999977 2.0000000000000000 +38.4500000000000028 2.0000000000000000 +38.4600000000000009 2.0000000000000000 +38.4699999999999989 2.0000000000000000 +38.4800000000000040 2.0000000000000000 +38.4900000000000020 2.0000000000000000 +38.5000000000000000 2.0000000000000000 +38.5099999999999980 2.0000000000000000 +38.5200000000000031 2.0000000000000000 +38.5300000000000011 2.0000000000000000 +38.5399999999999991 2.0000000000000000 +38.5500000000000043 2.0000000000000000 +38.5600000000000023 2.0000000000000000 +38.5700000000000003 2.0000000000000000 +38.5799999999999983 2.0000000000000000 +38.5900000000000034 2.0000000000000000 +38.6000000000000014 2.0000000000000000 +38.6099999999999994 2.0000000000000000 +38.6199999999999974 2.0000000000000000 +38.6300000000000026 2.0000000000000000 +38.6400000000000006 2.0000000000000000 +38.6499999999999986 2.0000000000000000 +38.6600000000000037 2.0000000000000000 +38.6700000000000017 2.0000000000000000 +38.6799999999999997 2.0000000000000000 +38.6899999999999977 2.0000000000000000 +38.7000000000000028 2.0000000000000000 +38.7100000000000009 2.0000000000000000 +38.7199999999999989 2.0000000000000000 +38.7300000000000040 2.0000000000000000 +38.7400000000000020 2.0000000000000000 +38.7500000000000000 2.0000000000000000 +38.7599999999999980 2.0000000000000000 +38.7700000000000031 2.0000000000000000 +38.7800000000000011 2.0000000000000000 +38.7899999999999991 2.0000000000000000 +38.8000000000000043 2.0000000000000000 +38.8100000000000023 2.0000000000000000 +38.8200000000000003 2.0000000000000000 +38.8299999999999983 2.0000000000000000 +38.8400000000000034 2.0000000000000000 +38.8500000000000014 2.0000000000000000 +38.8599999999999994 2.0000000000000000 +38.8699999999999974 2.0000000000000000 +38.8800000000000026 2.0000000000000000 +38.8900000000000006 2.0000000000000000 +38.8999999999999986 2.0000000000000000 +38.9100000000000037 2.0000000000000000 +38.9200000000000017 2.0000000000000000 +38.9299999999999997 2.0000000000000000 +38.9399999999999977 2.0000000000000000 +38.9500000000000028 2.0000000000000000 +38.9600000000000009 2.0000000000000000 +38.9699999999999989 2.0000000000000000 +38.9800000000000040 2.0000000000000000 +38.9900000000000020 2.0000000000000000 +39.0000000000000000 2.0000000000000000 +39.0099999999999980 2.0000000000000000 +39.0200000000000031 2.0000000000000000 +39.0300000000000011 2.0000000000000000 +39.0399999999999991 2.0000000000000000 +39.0500000000000043 2.0000000000000000 +39.0600000000000023 2.0000000000000000 +39.0700000000000003 2.0000000000000000 +39.0799999999999983 2.0000000000000000 +39.0900000000000034 2.0000000000000000 +39.1000000000000014 2.0000000000000000 +39.1099999999999994 2.0000000000000000 +39.1199999999999974 2.0000000000000000 +39.1300000000000026 2.0000000000000000 +39.1400000000000006 2.0000000000000000 +39.1499999999999986 2.0000000000000000 +39.1600000000000037 2.0000000000000000 +39.1700000000000017 2.0000000000000000 +39.1799999999999997 2.0000000000000000 +39.1899999999999977 2.0000000000000000 +39.2000000000000028 2.0000000000000000 +39.2100000000000009 2.0000000000000000 +39.2199999999999989 2.0000000000000000 +39.2300000000000040 2.0000000000000000 +39.2400000000000020 2.0000000000000000 +39.2500000000000000 2.0000000000000000 +39.2599999999999980 2.0000000000000000 +39.2700000000000031 2.0000000000000000 +39.2800000000000011 2.0000000000000000 +39.2899999999999991 2.0000000000000000 +39.3000000000000043 2.0000000000000000 +39.3100000000000023 2.0000000000000000 +39.3200000000000003 2.0000000000000000 +39.3299999999999983 2.0000000000000000 +39.3400000000000034 2.0000000000000000 +39.3500000000000014 2.0000000000000000 +39.3599999999999994 2.0000000000000000 +39.3699999999999974 2.0000000000000000 +39.3800000000000026 2.0000000000000000 +39.3900000000000006 2.0000000000000000 +39.3999999999999986 2.0000000000000000 +39.4100000000000037 2.0000000000000000 +39.4200000000000017 2.0000000000000000 +39.4299999999999997 2.0000000000000000 +39.4399999999999977 2.0000000000000000 +39.4500000000000028 2.0000000000000000 +39.4600000000000009 2.0000000000000000 +39.4699999999999989 2.0000000000000000 +39.4800000000000040 2.0000000000000000 +39.4900000000000020 2.0000000000000000 +39.5000000000000000 2.0000000000000000 +39.5099999999999980 2.0000000000000000 +39.5200000000000031 2.0000000000000000 +39.5300000000000011 2.0000000000000000 +39.5399999999999991 2.0000000000000000 +39.5500000000000043 2.0000000000000000 +39.5600000000000023 2.0000000000000000 +39.5700000000000003 2.0000000000000000 +39.5799999999999983 2.0000000000000000 +39.5900000000000034 2.0000000000000000 +39.6000000000000014 2.0000000000000000 +39.6099999999999994 2.0000000000000000 +39.6199999999999974 2.0000000000000000 +39.6300000000000026 2.0000000000000000 +39.6400000000000006 2.0000000000000000 +39.6499999999999986 2.0000000000000000 +39.6600000000000037 2.0000000000000000 +39.6700000000000017 2.0000000000000000 +39.6799999999999997 2.0000000000000000 +39.6899999999999977 2.0000000000000000 +39.7000000000000028 2.0000000000000000 +39.7100000000000009 2.0000000000000000 +39.7199999999999989 2.0000000000000000 +39.7300000000000040 2.0000000000000000 +39.7400000000000020 2.0000000000000000 +39.7500000000000000 2.0000000000000000 +39.7599999999999980 2.0000000000000000 +39.7700000000000031 2.0000000000000000 +39.7800000000000011 2.0000000000000000 +39.7899999999999991 2.0000000000000000 +39.8000000000000043 2.0000000000000000 +39.8100000000000023 2.0000000000000000 +39.8200000000000003 2.0000000000000000 +39.8299999999999983 2.0000000000000000 +39.8400000000000034 2.0000000000000000 +39.8500000000000014 2.0000000000000000 +39.8599999999999994 2.0000000000000000 +39.8699999999999974 2.0000000000000000 +39.8800000000000026 2.0000000000000000 +39.8900000000000006 2.0000000000000000 +39.8999999999999986 2.0000000000000000 +39.9100000000000037 2.0000000000000000 +39.9200000000000017 2.0000000000000000 +39.9299999999999997 2.0000000000000000 +39.9399999999999977 2.0000000000000000 +39.9500000000000028 2.0000000000000000 +39.9600000000000009 2.0000000000000000 +39.9699999999999989 2.0000000000000000 +39.9800000000000040 2.0000000000000000 +39.9900000000000020 2.0000000000000000 +40.0000000000000000 2.0000000000000000 +40.0099999999999980 2.0000000000000000 +40.0200000000000031 2.0000000000000000 +40.0300000000000011 2.0000000000000000 +40.0399999999999991 2.0000000000000000 +40.0500000000000043 2.0000000000000000 +40.0600000000000023 2.0000000000000000 +40.0700000000000003 2.0000000000000000 +40.0799999999999983 2.0000000000000000 +40.0900000000000034 2.0000000000000000 +40.1000000000000014 2.0000000000000000 +40.1099999999999994 2.0000000000000000 +40.1199999999999974 2.0000000000000000 +40.1300000000000026 2.0000000000000000 +40.1400000000000006 2.0000000000000000 +40.1499999999999986 2.0000000000000000 +40.1600000000000037 2.0000000000000000 +40.1700000000000017 2.0000000000000000 +40.1799999999999997 2.0000000000000000 +40.1899999999999977 2.0000000000000000 +40.2000000000000028 2.0000000000000000 +40.2100000000000009 2.0000000000000000 +40.2199999999999989 2.0000000000000000 +40.2300000000000040 2.0000000000000000 +40.2400000000000020 2.0000000000000000 +40.2500000000000000 2.0000000000000000 +40.2599999999999980 2.0000000000000000 +40.2700000000000031 2.0000000000000000 +40.2800000000000011 2.0000000000000000 +40.2899999999999991 2.0000000000000000 +40.3000000000000043 2.0000000000000000 +40.3100000000000023 2.0000000000000000 +40.3200000000000003 2.0000000000000000 +40.3299999999999983 2.0000000000000000 +40.3400000000000034 2.0000000000000000 +40.3500000000000014 2.0000000000000000 +40.3599999999999994 2.0000000000000000 +40.3699999999999974 2.0000000000000000 +40.3800000000000026 2.0000000000000000 +40.3900000000000006 2.0000000000000000 +40.3999999999999986 2.0000000000000000 +40.4100000000000037 2.0000000000000000 +40.4200000000000017 2.0000000000000000 +40.4299999999999997 2.0000000000000000 +40.4399999999999977 2.0000000000000000 +40.4500000000000028 2.0000000000000000 +40.4600000000000009 2.0000000000000000 +40.4699999999999989 2.0000000000000000 +40.4800000000000040 2.0000000000000000 +40.4900000000000020 2.0000000000000000 +40.5000000000000000 2.0000000000000000 +40.5099999999999980 2.0000000000000000 +40.5200000000000031 2.0000000000000000 +40.5300000000000011 2.0000000000000000 +40.5399999999999991 2.0000000000000000 +40.5500000000000043 2.0000000000000000 +40.5600000000000023 2.0000000000000000 +40.5700000000000003 2.0000000000000000 +40.5799999999999983 2.0000000000000000 +40.5900000000000034 2.0000000000000000 +40.6000000000000014 2.0000000000000000 +40.6099999999999994 2.0000000000000000 +40.6199999999999974 2.0000000000000000 +40.6300000000000026 2.0000000000000000 +40.6400000000000006 2.0000000000000000 +40.6499999999999986 2.0000000000000000 +40.6600000000000037 2.0000000000000000 +40.6700000000000017 2.0000000000000000 +40.6799999999999997 2.0000000000000000 +40.6899999999999977 2.0000000000000000 +40.7000000000000028 2.0000000000000000 +40.7100000000000009 2.0000000000000000 +40.7199999999999989 2.0000000000000000 +40.7300000000000040 2.0000000000000000 +40.7400000000000020 2.0000000000000000 +40.7500000000000000 2.0000000000000000 +40.7599999999999980 2.0000000000000000 +40.7700000000000031 2.0000000000000000 +40.7800000000000011 2.0000000000000000 +40.7899999999999991 2.0000000000000000 +40.8000000000000043 2.0000000000000000 +40.8100000000000023 2.0000000000000000 +40.8200000000000003 2.0000000000000000 +40.8299999999999983 2.0000000000000000 +40.8400000000000034 2.0000000000000000 +40.8500000000000014 2.0000000000000000 +40.8599999999999994 2.0000000000000000 +40.8699999999999974 2.0000000000000000 +40.8800000000000026 2.0000000000000000 +40.8900000000000006 2.0000000000000000 +40.8999999999999986 2.0000000000000000 +40.9100000000000037 2.0000000000000000 +40.9200000000000017 2.0000000000000000 +40.9299999999999997 2.0000000000000000 +40.9399999999999977 2.0000000000000000 +40.9500000000000028 2.0000000000000000 +40.9600000000000009 2.0000000000000000 +40.9699999999999989 2.0000000000000000 +40.9800000000000040 2.0000000000000000 +40.9900000000000020 2.0000000000000000 +41.0000000000000000 2.0000000000000000 +41.0099999999999980 2.0000000000000000 +41.0200000000000031 2.0000000000000000 +41.0300000000000011 2.0000000000000000 +41.0399999999999991 2.0000000000000000 +41.0500000000000043 2.0000000000000000 +41.0600000000000023 2.0000000000000000 +41.0700000000000003 2.0000000000000000 +41.0799999999999983 2.0000000000000000 +41.0900000000000034 2.0000000000000000 +41.1000000000000014 2.0000000000000000 +41.1099999999999994 2.0000000000000000 +41.1199999999999974 2.0000000000000000 +41.1300000000000026 2.0000000000000000 +41.1400000000000006 2.0000000000000000 +41.1499999999999986 2.0000000000000000 +41.1600000000000037 2.0000000000000000 +41.1700000000000017 2.0000000000000000 +41.1799999999999997 2.0000000000000000 +41.1899999999999977 2.0000000000000000 +41.2000000000000028 2.0000000000000000 +41.2100000000000009 2.0000000000000000 +41.2199999999999989 2.0000000000000000 +41.2300000000000040 2.0000000000000000 +41.2400000000000020 2.0000000000000000 +41.2500000000000000 2.0000000000000000 +41.2599999999999980 2.0000000000000000 +41.2700000000000031 2.0000000000000000 +41.2800000000000011 2.0000000000000000 +41.2899999999999991 2.0000000000000000 +41.3000000000000043 2.0000000000000000 +41.3100000000000023 2.0000000000000000 +41.3200000000000003 2.0000000000000000 +41.3299999999999983 2.0000000000000000 +41.3400000000000034 2.0000000000000000 +41.3500000000000014 2.0000000000000000 +41.3599999999999994 2.0000000000000000 +41.3699999999999974 2.0000000000000000 +41.3800000000000026 2.0000000000000000 +41.3900000000000006 2.0000000000000000 +41.3999999999999986 2.0000000000000000 +41.4100000000000037 2.0000000000000000 +41.4200000000000017 2.0000000000000000 +41.4299999999999997 2.0000000000000000 +41.4399999999999977 2.0000000000000000 +41.4500000000000028 2.0000000000000000 +41.4600000000000009 2.0000000000000000 +41.4699999999999989 2.0000000000000000 +41.4800000000000040 2.0000000000000000 +41.4900000000000020 2.0000000000000000 +41.5000000000000000 2.0000000000000000 +41.5099999999999980 2.0000000000000000 +41.5200000000000031 2.0000000000000000 +41.5300000000000011 2.0000000000000000 +41.5399999999999991 2.0000000000000000 +41.5500000000000043 2.0000000000000000 +41.5600000000000023 2.0000000000000000 +41.5700000000000003 2.0000000000000000 +41.5799999999999983 2.0000000000000000 +41.5900000000000034 2.0000000000000000 +41.6000000000000014 2.0000000000000000 +41.6099999999999994 2.0000000000000000 +41.6199999999999974 2.0000000000000000 +41.6300000000000026 2.0000000000000000 +41.6400000000000006 2.0000000000000000 +41.6499999999999986 2.0000000000000000 +41.6600000000000037 2.0000000000000000 +41.6700000000000017 2.0000000000000000 +41.6799999999999997 2.0000000000000000 +41.6899999999999977 2.0000000000000000 +41.7000000000000028 2.0000000000000000 +41.7100000000000009 2.0000000000000000 +41.7199999999999989 2.0000000000000000 +41.7300000000000040 2.0000000000000000 +41.7400000000000020 2.0000000000000000 +41.7500000000000000 2.0000000000000000 +41.7599999999999980 2.0000000000000000 +41.7700000000000031 2.0000000000000000 +41.7800000000000011 2.0000000000000000 +41.7899999999999991 2.0000000000000000 +41.8000000000000043 2.0000000000000000 +41.8100000000000023 2.0000000000000000 +41.8200000000000003 2.0000000000000000 +41.8299999999999983 2.0000000000000000 +41.8400000000000034 2.0000000000000000 +41.8500000000000014 2.0000000000000000 +41.8599999999999994 2.0000000000000000 +41.8699999999999974 2.0000000000000000 +41.8800000000000026 2.0000000000000000 +41.8900000000000006 2.0000000000000000 +41.8999999999999986 2.0000000000000000 +41.9100000000000037 2.0000000000000000 +41.9200000000000017 2.0000000000000000 +41.9299999999999997 2.0000000000000000 +41.9399999999999977 2.0000000000000000 +41.9500000000000028 2.0000000000000000 +41.9600000000000009 2.0000000000000000 +41.9699999999999989 2.0000000000000000 +41.9800000000000040 2.0000000000000000 +41.9900000000000020 2.0000000000000000 +42.0000000000000000 2.0000000000000000 +42.0099999999999980 2.0000000000000000 +42.0200000000000031 2.0000000000000000 +42.0300000000000011 2.0000000000000000 +42.0399999999999991 2.0000000000000000 +42.0500000000000043 2.0000000000000000 +42.0600000000000023 2.0000000000000000 +42.0700000000000003 2.0000000000000000 +42.0799999999999983 2.0000000000000000 +42.0900000000000034 2.0000000000000000 +42.1000000000000014 2.0000000000000000 +42.1099999999999994 2.0000000000000000 +42.1199999999999974 2.0000000000000000 +42.1300000000000026 2.0000000000000000 +42.1400000000000006 2.0000000000000000 +42.1499999999999986 2.0000000000000000 +42.1600000000000037 2.0000000000000000 +42.1700000000000017 2.0000000000000000 +42.1799999999999997 2.0000000000000000 +42.1899999999999977 2.0000000000000000 +42.2000000000000028 2.0000000000000000 +42.2100000000000009 2.0000000000000000 +42.2199999999999989 2.0000000000000000 +42.2300000000000040 2.0000000000000000 +42.2400000000000020 2.0000000000000000 +42.2500000000000000 2.0000000000000000 +42.2599999999999980 2.0000000000000000 +42.2700000000000031 2.0000000000000000 +42.2800000000000011 2.0000000000000000 +42.2899999999999991 2.0000000000000000 +42.3000000000000043 2.0000000000000000 +42.3100000000000023 2.0000000000000000 +42.3200000000000003 2.0000000000000000 +42.3299999999999983 2.0000000000000000 +42.3400000000000034 2.0000000000000000 +42.3500000000000014 2.0000000000000000 +42.3599999999999994 2.0000000000000000 +42.3699999999999974 2.0000000000000000 +42.3800000000000026 2.0000000000000000 +42.3900000000000006 2.0000000000000000 +42.3999999999999986 2.0000000000000000 +42.4100000000000037 2.0000000000000000 +42.4200000000000017 2.0000000000000000 +42.4299999999999997 2.0000000000000000 +42.4399999999999977 2.0000000000000000 +42.4500000000000028 2.0000000000000000 +42.4600000000000009 2.0000000000000000 +42.4699999999999989 2.0000000000000000 +42.4800000000000040 2.0000000000000000 +42.4900000000000020 2.0000000000000000 +42.5000000000000000 2.0000000000000000 +42.5099999999999980 2.0000000000000000 +42.5200000000000031 2.0000000000000000 +42.5300000000000011 2.0000000000000000 +42.5399999999999991 2.0000000000000000 +42.5500000000000043 2.0000000000000000 +42.5600000000000023 2.0000000000000000 +42.5700000000000003 2.0000000000000000 +42.5799999999999983 2.0000000000000000 +42.5900000000000034 2.0000000000000000 +42.6000000000000014 2.0000000000000000 +42.6099999999999994 2.0000000000000000 +42.6199999999999974 2.0000000000000000 +42.6300000000000026 2.0000000000000000 +42.6400000000000006 2.0000000000000000 +42.6499999999999986 2.0000000000000000 +42.6600000000000037 2.0000000000000000 +42.6700000000000017 2.0000000000000000 +42.6799999999999997 2.0000000000000000 +42.6899999999999977 2.0000000000000000 +42.7000000000000028 2.0000000000000000 +42.7100000000000009 2.0000000000000000 +42.7199999999999989 2.0000000000000000 +42.7300000000000040 2.0000000000000000 +42.7400000000000020 2.0000000000000000 +42.7500000000000000 2.0000000000000000 +42.7599999999999980 2.0000000000000000 +42.7700000000000031 2.0000000000000000 +42.7800000000000011 2.0000000000000000 +42.7899999999999991 2.0000000000000000 +42.8000000000000043 2.0000000000000000 +42.8100000000000023 2.0000000000000000 +42.8200000000000003 2.0000000000000000 +42.8299999999999983 2.0000000000000000 +42.8400000000000034 2.0000000000000000 +42.8500000000000014 2.0000000000000000 +42.8599999999999994 2.0000000000000000 +42.8699999999999974 2.0000000000000000 +42.8800000000000026 2.0000000000000000 +42.8900000000000006 2.0000000000000000 +42.8999999999999986 2.0000000000000000 +42.9100000000000037 2.0000000000000000 +42.9200000000000017 2.0000000000000000 +42.9299999999999997 2.0000000000000000 +42.9399999999999977 2.0000000000000000 +42.9500000000000028 2.0000000000000000 +42.9600000000000009 2.0000000000000000 +42.9699999999999989 2.0000000000000000 +42.9800000000000040 2.0000000000000000 +42.9900000000000020 2.0000000000000000 +43.0000000000000000 2.0000000000000000 +43.0099999999999980 2.0000000000000000 +43.0200000000000031 2.0000000000000000 +43.0300000000000011 2.0000000000000000 +43.0399999999999991 2.0000000000000000 +43.0500000000000043 2.0000000000000000 +43.0600000000000023 2.0000000000000000 +43.0700000000000003 2.0000000000000000 +43.0799999999999983 2.0000000000000000 +43.0900000000000034 2.0000000000000000 +43.1000000000000014 2.0000000000000000 +43.1099999999999994 2.0000000000000000 +43.1199999999999974 2.0000000000000000 +43.1300000000000026 2.0000000000000000 +43.1400000000000006 2.0000000000000000 +43.1499999999999986 2.0000000000000000 +43.1600000000000037 2.0000000000000000 +43.1700000000000017 2.0000000000000000 +43.1799999999999997 2.0000000000000000 +43.1899999999999977 2.0000000000000000 +43.2000000000000028 2.0000000000000000 +43.2100000000000009 2.0000000000000000 +43.2199999999999989 2.0000000000000000 +43.2300000000000040 2.0000000000000000 +43.2400000000000020 2.0000000000000000 +43.2500000000000000 2.0000000000000000 +43.2599999999999980 2.0000000000000000 +43.2700000000000031 2.0000000000000000 +43.2800000000000011 2.0000000000000000 +43.2899999999999991 2.0000000000000000 +43.3000000000000043 2.0000000000000000 +43.3100000000000023 2.0000000000000000 +43.3200000000000003 2.0000000000000000 +43.3299999999999983 2.0000000000000000 +43.3400000000000034 2.0000000000000000 +43.3500000000000014 2.0000000000000000 +43.3599999999999994 2.0000000000000000 +43.3699999999999974 2.0000000000000000 +43.3800000000000026 2.0000000000000000 +43.3900000000000006 2.0000000000000000 +43.3999999999999986 2.0000000000000000 +43.4100000000000037 2.0000000000000000 +43.4200000000000017 2.0000000000000000 +43.4299999999999997 2.0000000000000000 +43.4399999999999977 2.0000000000000000 +43.4500000000000028 2.0000000000000000 +43.4600000000000009 2.0000000000000000 +43.4699999999999989 2.0000000000000000 +43.4800000000000040 2.0000000000000000 +43.4900000000000020 2.0000000000000000 +43.5000000000000000 2.0000000000000000 +43.5099999999999980 2.0000000000000000 +43.5200000000000031 2.0000000000000000 +43.5300000000000011 2.0000000000000000 +43.5399999999999991 2.0000000000000000 +43.5500000000000043 2.0000000000000000 +43.5600000000000023 2.0000000000000000 +43.5700000000000003 2.0000000000000000 +43.5799999999999983 2.0000000000000000 +43.5900000000000034 2.0000000000000000 +43.6000000000000014 2.0000000000000000 +43.6099999999999994 2.0000000000000000 +43.6199999999999974 2.0000000000000000 +43.6300000000000026 2.0000000000000000 +43.6400000000000006 2.0000000000000000 +43.6499999999999986 2.0000000000000000 +43.6600000000000037 2.0000000000000000 +43.6700000000000017 2.0000000000000000 +43.6799999999999997 2.0000000000000000 +43.6899999999999977 2.0000000000000000 +43.7000000000000028 2.0000000000000000 +43.7100000000000009 2.0000000000000000 +43.7199999999999989 2.0000000000000000 +43.7300000000000040 2.0000000000000000 +43.7400000000000020 2.0000000000000000 +43.7500000000000000 2.0000000000000000 +43.7599999999999980 2.0000000000000000 +43.7700000000000031 2.0000000000000000 +43.7800000000000011 2.0000000000000000 +43.7899999999999991 2.0000000000000000 +43.8000000000000043 2.0000000000000000 +43.8100000000000023 2.0000000000000000 +43.8200000000000003 2.0000000000000000 +43.8299999999999983 2.0000000000000000 +43.8400000000000034 2.0000000000000000 +43.8500000000000014 2.0000000000000000 +43.8599999999999994 2.0000000000000000 +43.8699999999999974 2.0000000000000000 +43.8800000000000026 2.0000000000000000 +43.8900000000000006 2.0000000000000000 +43.8999999999999986 2.0000000000000000 +43.9100000000000037 2.0000000000000000 +43.9200000000000017 2.0000000000000000 +43.9299999999999997 2.0000000000000000 +43.9399999999999977 2.0000000000000000 +43.9500000000000028 2.0000000000000000 +43.9600000000000009 2.0000000000000000 +43.9699999999999989 2.0000000000000000 +43.9800000000000040 2.0000000000000000 +43.9900000000000020 2.0000000000000000 +44.0000000000000000 2.0000000000000000 +44.0099999999999980 2.0000000000000000 +44.0200000000000031 2.0000000000000000 +44.0300000000000011 2.0000000000000000 +44.0399999999999991 2.0000000000000000 +44.0500000000000043 2.0000000000000000 +44.0600000000000023 2.0000000000000000 +44.0700000000000003 2.0000000000000000 +44.0799999999999983 2.0000000000000000 +44.0900000000000034 2.0000000000000000 +44.1000000000000014 2.0000000000000000 +44.1099999999999994 2.0000000000000000 +44.1199999999999974 2.0000000000000000 +44.1300000000000026 2.0000000000000000 +44.1400000000000006 2.0000000000000000 +44.1499999999999986 2.0000000000000000 +44.1600000000000037 2.0000000000000000 +44.1700000000000017 2.0000000000000000 +44.1799999999999997 2.0000000000000000 +44.1899999999999977 2.0000000000000000 +44.2000000000000028 2.0000000000000000 +44.2100000000000009 2.0000000000000000 +44.2199999999999989 2.0000000000000000 +44.2300000000000040 2.0000000000000000 +44.2400000000000020 2.0000000000000000 +44.2500000000000000 2.0000000000000000 +44.2599999999999980 2.0000000000000000 +44.2700000000000031 2.0000000000000000 +44.2800000000000011 2.0000000000000000 +44.2899999999999991 2.0000000000000000 +44.3000000000000043 2.0000000000000000 +44.3100000000000023 2.0000000000000000 +44.3200000000000003 2.0000000000000000 +44.3299999999999983 2.0000000000000000 +44.3400000000000034 2.0000000000000000 +44.3500000000000014 2.0000000000000000 +44.3599999999999994 2.0000000000000000 +44.3699999999999974 2.0000000000000000 +44.3800000000000026 2.0000000000000000 +44.3900000000000006 2.0000000000000000 +44.3999999999999986 2.0000000000000000 +44.4100000000000037 2.0000000000000000 +44.4200000000000017 2.0000000000000000 +44.4299999999999997 2.0000000000000000 +44.4399999999999977 2.0000000000000000 +44.4500000000000028 2.0000000000000000 +44.4600000000000009 2.0000000000000000 +44.4699999999999989 2.0000000000000000 +44.4800000000000040 2.0000000000000000 +44.4900000000000020 2.0000000000000000 +44.5000000000000000 2.0000000000000000 +44.5099999999999980 2.0000000000000000 +44.5200000000000031 2.0000000000000000 +44.5300000000000011 2.0000000000000000 +44.5399999999999991 2.0000000000000000 +44.5500000000000043 2.0000000000000000 +44.5600000000000023 2.0000000000000000 +44.5700000000000003 2.0000000000000000 +44.5799999999999983 2.0000000000000000 +44.5900000000000034 2.0000000000000000 +44.6000000000000014 2.0000000000000000 +44.6099999999999994 2.0000000000000000 +44.6199999999999974 2.0000000000000000 +44.6300000000000026 2.0000000000000000 +44.6400000000000006 2.0000000000000000 +44.6499999999999986 2.0000000000000000 +44.6600000000000037 2.0000000000000000 +44.6700000000000017 2.0000000000000000 +44.6799999999999997 2.0000000000000000 +44.6899999999999977 2.0000000000000000 +44.7000000000000028 2.0000000000000000 +44.7100000000000009 2.0000000000000000 +44.7199999999999989 2.0000000000000000 +44.7300000000000040 2.0000000000000000 +44.7400000000000020 2.0000000000000000 +44.7500000000000000 2.0000000000000000 +44.7599999999999980 2.0000000000000000 +44.7700000000000031 2.0000000000000000 +44.7800000000000011 2.0000000000000000 +44.7899999999999991 2.0000000000000000 +44.8000000000000043 2.0000000000000000 +44.8100000000000023 2.0000000000000000 +44.8200000000000003 2.0000000000000000 +44.8299999999999983 2.0000000000000000 +44.8400000000000034 2.0000000000000000 +44.8500000000000014 2.0000000000000000 +44.8599999999999994 2.0000000000000000 +44.8699999999999974 2.0000000000000000 +44.8800000000000026 2.0000000000000000 +44.8900000000000006 2.0000000000000000 +44.8999999999999986 2.0000000000000000 +44.9100000000000037 2.0000000000000000 +44.9200000000000017 2.0000000000000000 +44.9299999999999997 2.0000000000000000 +44.9399999999999977 2.0000000000000000 +44.9500000000000028 2.0000000000000000 +44.9600000000000009 2.0000000000000000 +44.9699999999999989 2.0000000000000000 +44.9800000000000040 2.0000000000000000 +44.9900000000000020 2.0000000000000000 +45.0000000000000000 2.0000000000000000 +45.0099999999999980 2.0000000000000000 +45.0200000000000031 2.0000000000000000 +45.0300000000000011 2.0000000000000000 +45.0399999999999991 2.0000000000000000 +45.0500000000000043 2.0000000000000000 +45.0600000000000023 2.0000000000000000 +45.0700000000000003 2.0000000000000000 +45.0799999999999983 2.0000000000000000 +45.0900000000000034 2.0000000000000000 +45.1000000000000014 2.0000000000000000 +45.1099999999999994 2.0000000000000000 +45.1199999999999974 2.0000000000000000 +45.1300000000000026 2.0000000000000000 +45.1400000000000006 2.0000000000000000 +45.1499999999999986 2.0000000000000000 +45.1600000000000037 2.0000000000000000 +45.1700000000000017 2.0000000000000000 +45.1799999999999997 2.0000000000000000 +45.1899999999999977 2.0000000000000000 +45.2000000000000028 2.0000000000000000 +45.2100000000000009 2.0000000000000000 +45.2199999999999989 2.0000000000000000 +45.2300000000000040 2.0000000000000000 +45.2400000000000020 2.0000000000000000 +45.2500000000000000 2.0000000000000000 +45.2599999999999980 2.0000000000000000 +45.2700000000000031 2.0000000000000000 +45.2800000000000011 2.0000000000000000 +45.2899999999999991 2.0000000000000000 +45.3000000000000043 2.0000000000000000 +45.3100000000000023 2.0000000000000000 +45.3200000000000003 2.0000000000000000 +45.3299999999999983 2.0000000000000000 +45.3400000000000034 2.0000000000000000 +45.3500000000000014 2.0000000000000000 +45.3599999999999994 2.0000000000000000 +45.3699999999999974 2.0000000000000000 +45.3800000000000026 2.0000000000000000 +45.3900000000000006 2.0000000000000000 +45.3999999999999986 2.0000000000000000 +45.4100000000000037 2.0000000000000000 +45.4200000000000017 2.0000000000000000 +45.4299999999999997 2.0000000000000000 +45.4399999999999977 2.0000000000000000 +45.4500000000000028 2.0000000000000000 +45.4600000000000009 2.0000000000000000 +45.4699999999999989 2.0000000000000000 +45.4800000000000040 2.0000000000000000 +45.4900000000000020 2.0000000000000000 +45.5000000000000000 2.0000000000000000 +45.5099999999999980 2.0000000000000000 +45.5200000000000031 2.0000000000000000 +45.5300000000000011 2.0000000000000000 +45.5399999999999991 2.0000000000000000 +45.5500000000000043 2.0000000000000000 +45.5600000000000023 2.0000000000000000 +45.5700000000000003 2.0000000000000000 +45.5799999999999983 2.0000000000000000 +45.5900000000000034 2.0000000000000000 +45.6000000000000014 2.0000000000000000 +45.6099999999999994 2.0000000000000000 +45.6199999999999974 2.0000000000000000 +45.6300000000000026 2.0000000000000000 +45.6400000000000006 2.0000000000000000 +45.6499999999999986 2.0000000000000000 +45.6600000000000037 2.0000000000000000 +45.6700000000000017 2.0000000000000000 +45.6799999999999997 2.0000000000000000 +45.6899999999999977 2.0000000000000000 +45.7000000000000028 2.0000000000000000 +45.7100000000000009 2.0000000000000000 +45.7199999999999989 2.0000000000000000 +45.7300000000000040 2.0000000000000000 +45.7400000000000020 2.0000000000000000 +45.7500000000000000 2.0000000000000000 +45.7599999999999980 2.0000000000000000 +45.7700000000000031 2.0000000000000000 +45.7800000000000011 2.0000000000000000 +45.7899999999999991 2.0000000000000000 +45.8000000000000043 2.0000000000000000 +45.8100000000000023 2.0000000000000000 +45.8200000000000003 2.0000000000000000 +45.8299999999999983 2.0000000000000000 +45.8400000000000034 2.0000000000000000 +45.8500000000000014 2.0000000000000000 +45.8599999999999994 2.0000000000000000 +45.8699999999999974 2.0000000000000000 +45.8800000000000026 2.0000000000000000 +45.8900000000000006 2.0000000000000000 +45.8999999999999986 2.0000000000000000 +45.9100000000000037 2.0000000000000000 +45.9200000000000017 2.0000000000000000 +45.9299999999999997 2.0000000000000000 +45.9399999999999977 2.0000000000000000 +45.9500000000000028 2.0000000000000000 +45.9600000000000009 2.0000000000000000 +45.9699999999999989 2.0000000000000000 +45.9800000000000040 2.0000000000000000 +45.9900000000000020 2.0000000000000000 +46.0000000000000000 2.0000000000000000 +46.0099999999999980 2.0000000000000000 +46.0200000000000031 2.0000000000000000 +46.0300000000000011 2.0000000000000000 +46.0399999999999991 2.0000000000000000 +46.0500000000000043 2.0000000000000000 +46.0600000000000023 2.0000000000000000 +46.0700000000000003 2.0000000000000000 +46.0799999999999983 2.0000000000000000 +46.0900000000000034 2.0000000000000000 +46.1000000000000014 2.0000000000000000 +46.1099999999999994 2.0000000000000000 +46.1199999999999974 2.0000000000000000 +46.1300000000000026 2.0000000000000000 +46.1400000000000006 2.0000000000000000 +46.1499999999999986 2.0000000000000000 +46.1600000000000037 2.0000000000000000 +46.1700000000000017 2.0000000000000000 +46.1799999999999997 2.0000000000000000 +46.1899999999999977 2.0000000000000000 +46.2000000000000028 2.0000000000000000 +46.2100000000000009 2.0000000000000000 +46.2199999999999989 2.0000000000000000 +46.2300000000000040 2.0000000000000000 +46.2400000000000020 2.0000000000000000 +46.2500000000000000 2.0000000000000000 +46.2599999999999980 2.0000000000000000 +46.2700000000000031 2.0000000000000000 +46.2800000000000011 2.0000000000000000 +46.2899999999999991 2.0000000000000000 +46.3000000000000043 2.0000000000000000 +46.3100000000000023 2.0000000000000000 +46.3200000000000003 2.0000000000000000 +46.3299999999999983 2.0000000000000000 +46.3400000000000034 2.0000000000000000 +46.3500000000000014 2.0000000000000000 +46.3599999999999994 2.0000000000000000 +46.3699999999999974 2.0000000000000000 +46.3800000000000026 2.0000000000000000 +46.3900000000000006 2.0000000000000000 +46.3999999999999986 2.0000000000000000 +46.4100000000000037 2.0000000000000000 +46.4200000000000017 2.0000000000000000 +46.4299999999999997 2.0000000000000000 +46.4399999999999977 2.0000000000000000 +46.4500000000000028 2.0000000000000000 +46.4600000000000009 2.0000000000000000 +46.4699999999999989 2.0000000000000000 +46.4800000000000040 2.0000000000000000 +46.4900000000000020 2.0000000000000000 +46.5000000000000000 2.0000000000000000 +46.5099999999999980 2.0000000000000000 +46.5200000000000031 2.0000000000000000 +46.5300000000000011 2.0000000000000000 +46.5399999999999991 2.0000000000000000 +46.5500000000000043 2.0000000000000000 +46.5600000000000023 2.0000000000000000 +46.5700000000000003 2.0000000000000000 +46.5799999999999983 2.0000000000000000 +46.5900000000000034 2.0000000000000000 +46.6000000000000014 2.0000000000000000 +46.6099999999999994 2.0000000000000000 +46.6199999999999974 2.0000000000000000 +46.6300000000000026 2.0000000000000000 +46.6400000000000006 2.0000000000000000 +46.6499999999999986 2.0000000000000000 +46.6600000000000037 2.0000000000000000 +46.6700000000000017 2.0000000000000000 +46.6799999999999997 2.0000000000000000 +46.6899999999999977 2.0000000000000000 +46.7000000000000028 2.0000000000000000 +46.7100000000000009 2.0000000000000000 +46.7199999999999989 2.0000000000000000 +46.7300000000000040 2.0000000000000000 +46.7400000000000020 2.0000000000000000 +46.7500000000000000 2.0000000000000000 +46.7599999999999980 2.0000000000000000 +46.7700000000000031 2.0000000000000000 +46.7800000000000011 2.0000000000000000 +46.7899999999999991 2.0000000000000000 +46.8000000000000043 2.0000000000000000 +46.8100000000000023 2.0000000000000000 +46.8200000000000003 2.0000000000000000 +46.8299999999999983 2.0000000000000000 +46.8400000000000034 2.0000000000000000 +46.8500000000000014 2.0000000000000000 +46.8599999999999994 2.0000000000000000 +46.8699999999999974 2.0000000000000000 +46.8800000000000026 2.0000000000000000 +46.8900000000000006 2.0000000000000000 +46.8999999999999986 2.0000000000000000 +46.9100000000000037 2.0000000000000000 +46.9200000000000017 2.0000000000000000 +46.9299999999999997 2.0000000000000000 +46.9399999999999977 2.0000000000000000 +46.9500000000000028 2.0000000000000000 +46.9600000000000009 2.0000000000000000 +46.9699999999999989 2.0000000000000000 +46.9800000000000040 2.0000000000000000 +46.9900000000000020 2.0000000000000000 +47.0000000000000000 2.0000000000000000 +47.0099999999999980 2.0000000000000000 +47.0200000000000031 2.0000000000000000 +47.0300000000000011 2.0000000000000000 +47.0399999999999991 2.0000000000000000 +47.0500000000000043 2.0000000000000000 +47.0600000000000023 2.0000000000000000 +47.0700000000000003 2.0000000000000000 +47.0799999999999983 2.0000000000000000 +47.0900000000000034 2.0000000000000000 +47.1000000000000014 2.0000000000000000 +47.1099999999999994 2.0000000000000000 +47.1199999999999974 2.0000000000000000 +47.1300000000000026 2.0000000000000000 +47.1400000000000006 2.0000000000000000 +47.1499999999999986 2.0000000000000000 +47.1600000000000037 2.0000000000000000 +47.1700000000000017 2.0000000000000000 +47.1799999999999997 2.0000000000000000 +47.1899999999999977 2.0000000000000000 +47.2000000000000028 2.0000000000000000 +47.2100000000000009 2.0000000000000000 +47.2199999999999989 2.0000000000000000 +47.2300000000000040 2.0000000000000000 +47.2400000000000020 2.0000000000000000 +47.2500000000000000 2.0000000000000000 +47.2599999999999980 2.0000000000000000 +47.2700000000000031 2.0000000000000000 +47.2800000000000011 2.0000000000000000 +47.2899999999999991 2.0000000000000000 +47.3000000000000043 2.0000000000000000 +47.3100000000000023 2.0000000000000000 +47.3200000000000003 2.0000000000000000 +47.3299999999999983 2.0000000000000000 +47.3400000000000034 2.0000000000000000 +47.3500000000000014 2.0000000000000000 +47.3599999999999994 2.0000000000000000 +47.3699999999999974 2.0000000000000000 +47.3800000000000026 2.0000000000000000 +47.3900000000000006 2.0000000000000000 +47.3999999999999986 2.0000000000000000 +47.4100000000000037 2.0000000000000000 +47.4200000000000017 2.0000000000000000 +47.4299999999999997 2.0000000000000000 +47.4399999999999977 2.0000000000000000 +47.4500000000000028 2.0000000000000000 +47.4600000000000009 2.0000000000000000 +47.4699999999999989 2.0000000000000000 +47.4800000000000040 2.0000000000000000 +47.4900000000000020 2.0000000000000000 +47.5000000000000000 2.0000000000000000 +47.5099999999999980 2.0000000000000000 +47.5200000000000031 2.0000000000000000 +47.5300000000000011 2.0000000000000000 +47.5399999999999991 2.0000000000000000 +47.5500000000000043 2.0000000000000000 +47.5600000000000023 2.0000000000000000 +47.5700000000000003 2.0000000000000000 +47.5799999999999983 2.0000000000000000 +47.5900000000000034 2.0000000000000000 +47.6000000000000014 2.0000000000000000 +47.6099999999999994 2.0000000000000000 +47.6199999999999974 2.0000000000000000 +47.6300000000000026 2.0000000000000000 +47.6400000000000006 2.0000000000000000 +47.6499999999999986 2.0000000000000000 +47.6600000000000037 2.0000000000000000 +47.6700000000000017 2.0000000000000000 +47.6799999999999997 2.0000000000000000 +47.6899999999999977 2.0000000000000000 +47.7000000000000028 2.0000000000000000 +47.7100000000000009 2.0000000000000000 +47.7199999999999989 2.0000000000000000 +47.7300000000000040 2.0000000000000000 +47.7400000000000020 2.0000000000000000 +47.7500000000000000 2.0000000000000000 +47.7599999999999980 2.0000000000000000 +47.7700000000000031 2.0000000000000000 +47.7800000000000011 2.0000000000000000 +47.7899999999999991 2.0000000000000000 +47.8000000000000043 2.0000000000000000 +47.8100000000000023 2.0000000000000000 +47.8200000000000003 2.0000000000000000 +47.8299999999999983 2.0000000000000000 +47.8400000000000034 2.0000000000000000 +47.8500000000000014 2.0000000000000000 +47.8599999999999994 2.0000000000000000 +47.8700000000000045 2.0000000000000000 +47.8800000000000026 2.0000000000000000 +47.8900000000000006 2.0000000000000000 +47.8999999999999986 2.0000000000000000 +47.9100000000000037 2.0000000000000000 +47.9200000000000017 2.0000000000000000 +47.9299999999999997 2.0000000000000000 +47.9399999999999977 2.0000000000000000 +47.9500000000000028 2.0000000000000000 +47.9600000000000009 2.0000000000000000 +47.9699999999999989 2.0000000000000000 +47.9800000000000040 2.0000000000000000 +47.9900000000000020 2.0000000000000000 +48.0000000000000000 2.0000000000000000 +48.0099999999999980 2.0000000000000000 +48.0200000000000031 2.0000000000000000 +48.0300000000000011 2.0000000000000000 +48.0399999999999991 2.0000000000000000 +48.0500000000000043 2.0000000000000000 +48.0600000000000023 2.0000000000000000 +48.0700000000000003 2.0000000000000000 +48.0799999999999983 2.0000000000000000 +48.0900000000000034 2.0000000000000000 +48.1000000000000014 2.0000000000000000 +48.1099999999999994 2.0000000000000000 +48.1200000000000045 2.0000000000000000 +48.1300000000000026 2.0000000000000000 +48.1400000000000006 2.0000000000000000 +48.1499999999999986 2.0000000000000000 +48.1600000000000037 2.0000000000000000 +48.1700000000000017 2.0000000000000000 +48.1799999999999997 2.0000000000000000 +48.1899999999999977 2.0000000000000000 +48.2000000000000028 2.0000000000000000 +48.2100000000000009 2.0000000000000000 +48.2199999999999989 2.0000000000000000 +48.2300000000000040 2.0000000000000000 +48.2400000000000020 2.0000000000000000 +48.2500000000000000 2.0000000000000000 +48.2599999999999980 2.0000000000000000 +48.2700000000000031 2.0000000000000000 +48.2800000000000011 2.0000000000000000 +48.2899999999999991 2.0000000000000000 +48.3000000000000043 2.0000000000000000 +48.3100000000000023 2.0000000000000000 +48.3200000000000003 2.0000000000000000 +48.3299999999999983 2.0000000000000000 +48.3400000000000034 2.0000000000000000 +48.3500000000000014 2.0000000000000000 +48.3599999999999994 2.0000000000000000 +48.3700000000000045 2.0000000000000000 +48.3800000000000026 2.0000000000000000 +48.3900000000000006 2.0000000000000000 +48.3999999999999986 2.0000000000000000 +48.4100000000000037 2.0000000000000000 +48.4200000000000017 2.0000000000000000 +48.4299999999999997 2.0000000000000000 +48.4399999999999977 2.0000000000000000 +48.4500000000000028 2.0000000000000000 +48.4600000000000009 2.0000000000000000 +48.4699999999999989 2.0000000000000000 +48.4800000000000040 2.0000000000000000 +48.4900000000000020 2.0000000000000000 +48.5000000000000000 2.0000000000000000 +48.5099999999999980 2.0000000000000000 +48.5200000000000031 2.0000000000000000 +48.5300000000000011 2.0000000000000000 +48.5399999999999991 2.0000000000000000 +48.5500000000000043 2.0000000000000000 +48.5600000000000023 2.0000000000000000 +48.5700000000000003 2.0000000000000000 +48.5799999999999983 2.0000000000000000 +48.5900000000000034 2.0000000000000000 +48.6000000000000014 2.0000000000000000 +48.6099999999999994 2.0000000000000000 +48.6200000000000045 2.0000000000000000 +48.6300000000000026 2.0000000000000000 +48.6400000000000006 2.0000000000000000 +48.6499999999999986 2.0000000000000000 +48.6600000000000037 2.0000000000000000 +48.6700000000000017 2.0000000000000000 +48.6799999999999997 2.0000000000000000 +48.6899999999999977 2.0000000000000000 +48.7000000000000028 2.0000000000000000 +48.7100000000000009 2.0000000000000000 +48.7199999999999989 2.0000000000000000 +48.7300000000000040 2.0000000000000000 +48.7400000000000020 2.0000000000000000 +48.7500000000000000 2.0000000000000000 +48.7599999999999980 2.0000000000000000 +48.7700000000000031 2.0000000000000000 +48.7800000000000011 2.0000000000000000 +48.7899999999999991 2.0000000000000000 +48.8000000000000043 2.0000000000000000 +48.8100000000000023 2.0000000000000000 +48.8200000000000003 2.0000000000000000 +48.8299999999999983 2.0000000000000000 +48.8400000000000034 2.0000000000000000 +48.8500000000000014 2.0000000000000000 +48.8599999999999994 2.0000000000000000 +48.8700000000000045 2.0000000000000000 +48.8800000000000026 2.0000000000000000 +48.8900000000000006 2.0000000000000000 +48.8999999999999986 2.0000000000000000 +48.9100000000000037 2.0000000000000000 +48.9200000000000017 2.0000000000000000 +48.9299999999999997 2.0000000000000000 +48.9399999999999977 2.0000000000000000 +48.9500000000000028 2.0000000000000000 +48.9600000000000009 2.0000000000000000 +48.9699999999999989 2.0000000000000000 +48.9800000000000040 2.0000000000000000 +48.9900000000000020 2.0000000000000000 +49.0000000000000000 2.0000000000000000 +49.0099999999999980 2.0000000000000000 +49.0200000000000031 2.0000000000000000 +49.0300000000000011 2.0000000000000000 +49.0399999999999991 2.0000000000000000 +49.0500000000000043 2.0000000000000000 +49.0600000000000023 2.0000000000000000 +49.0700000000000003 2.0000000000000000 +49.0799999999999983 2.0000000000000000 +49.0900000000000034 2.0000000000000000 +49.1000000000000014 2.0000000000000000 +49.1099999999999994 2.0000000000000000 +49.1200000000000045 2.0000000000000000 +49.1300000000000026 2.0000000000000000 +49.1400000000000006 2.0000000000000000 +49.1499999999999986 2.0000000000000000 +49.1600000000000037 2.0000000000000000 +49.1700000000000017 2.0000000000000000 +49.1799999999999997 2.0000000000000000 +49.1899999999999977 2.0000000000000000 +49.2000000000000028 2.0000000000000000 +49.2100000000000009 2.0000000000000000 +49.2199999999999989 2.0000000000000000 +49.2300000000000040 2.0000000000000000 +49.2400000000000020 2.0000000000000000 +49.2500000000000000 2.0000000000000000 +49.2599999999999980 2.0000000000000000 +49.2700000000000031 2.0000000000000000 +49.2800000000000011 2.0000000000000000 +49.2899999999999991 2.0000000000000000 +49.3000000000000043 2.0000000000000000 +49.3100000000000023 2.0000000000000000 +49.3200000000000003 2.0000000000000000 +49.3299999999999983 2.0000000000000000 +49.3400000000000034 2.0000000000000000 +49.3500000000000014 2.0000000000000000 +49.3599999999999994 2.0000000000000000 +49.3700000000000045 2.0000000000000000 +49.3800000000000026 2.0000000000000000 +49.3900000000000006 2.0000000000000000 +49.3999999999999986 2.0000000000000000 +49.4100000000000037 2.0000000000000000 +49.4200000000000017 2.0000000000000000 +49.4299999999999997 2.0000000000000000 +49.4399999999999977 2.0000000000000000 +49.4500000000000028 2.0000000000000000 +49.4600000000000009 2.0000000000000000 +49.4699999999999989 2.0000000000000000 +49.4800000000000040 2.0000000000000000 +49.4900000000000020 2.0000000000000000 +49.5000000000000000 2.0000000000000000 +49.5099999999999980 2.0000000000000000 +49.5200000000000031 2.0000000000000000 +49.5300000000000011 2.0000000000000000 +49.5399999999999991 2.0000000000000000 +49.5500000000000043 2.0000000000000000 +49.5600000000000023 2.0000000000000000 +49.5700000000000003 2.0000000000000000 +49.5799999999999983 2.0000000000000000 +49.5900000000000034 2.0000000000000000 +49.6000000000000014 2.0000000000000000 +49.6099999999999994 2.0000000000000000 +49.6200000000000045 2.0000000000000000 +49.6300000000000026 2.0000000000000000 +49.6400000000000006 2.0000000000000000 +49.6499999999999986 2.0000000000000000 +49.6600000000000037 2.0000000000000000 +49.6700000000000017 2.0000000000000000 +49.6799999999999997 2.0000000000000000 +49.6899999999999977 2.0000000000000000 +49.7000000000000028 2.0000000000000000 +49.7100000000000009 2.0000000000000000 +49.7199999999999989 2.0000000000000000 +49.7300000000000040 2.0000000000000000 +49.7400000000000020 2.0000000000000000 +49.7500000000000000 2.0000000000000000 +49.7599999999999980 2.0000000000000000 +49.7700000000000031 2.0000000000000000 +49.7800000000000011 2.0000000000000000 +49.7899999999999991 2.0000000000000000 +49.8000000000000043 2.0000000000000000 +49.8100000000000023 2.0000000000000000 +49.8200000000000003 2.0000000000000000 +49.8299999999999983 2.0000000000000000 +49.8400000000000034 2.0000000000000000 +49.8500000000000014 2.0000000000000000 +49.8599999999999994 2.0000000000000000 +49.8700000000000045 2.0000000000000000 +49.8800000000000026 2.0000000000000000 +49.8900000000000006 2.0000000000000000 +49.8999999999999986 2.0000000000000000 +49.9100000000000037 2.0000000000000000 +49.9200000000000017 2.0000000000000000 +49.9299999999999997 2.0000000000000000 +49.9399999999999977 2.0000000000000000 +49.9500000000000028 2.0000000000000000 +49.9600000000000009 2.0000000000000000 +49.9699999999999989 2.0000000000000000 +49.9800000000000040 2.0000000000000000 +49.9900000000000020 2.0000000000000000 +50.0000000000000000 2.0000000000000000 +50.0099999999999980 2.0000000000000000 +50.0200000000000031 2.0000000000000000 +50.0300000000000011 2.0000000000000000 +50.0399999999999991 2.0000000000000000 +50.0500000000000043 2.0000000000000000 +50.0600000000000023 2.0000000000000000 +50.0700000000000003 2.0000000000000000 +50.0799999999999983 2.0000000000000000 +50.0900000000000034 2.0000000000000000 +50.1000000000000014 2.0000000000000000 +50.1099999999999994 2.0000000000000000 +50.1200000000000045 2.0000000000000000 +50.1300000000000026 2.0000000000000000 +50.1400000000000006 2.0000000000000000 +50.1499999999999986 2.0000000000000000 +50.1600000000000037 2.0000000000000000 +50.1700000000000017 2.0000000000000000 +50.1799999999999997 2.0000000000000000 +50.1899999999999977 2.0000000000000000 +50.2000000000000028 2.0000000000000000 +50.2100000000000009 2.0000000000000000 +50.2199999999999989 2.0000000000000000 +50.2300000000000040 2.0000000000000000 +50.2400000000000020 2.0000000000000000 +50.2500000000000000 2.0000000000000000 +50.2599999999999980 2.0000000000000000 +50.2700000000000031 2.0000000000000000 +50.2800000000000011 2.0000000000000000 +50.2899999999999991 2.0000000000000000 +50.3000000000000043 2.0000000000000000 +50.3100000000000023 2.0000000000000000 +50.3200000000000003 2.0000000000000000 +50.3299999999999983 2.0000000000000000 +50.3400000000000034 2.0000000000000000 +50.3500000000000014 2.0000000000000000 +50.3599999999999994 2.0000000000000000 +50.3700000000000045 2.0000000000000000 +50.3800000000000026 2.0000000000000000 +50.3900000000000006 2.0000000000000000 +50.3999999999999986 2.0000000000000000 +50.4100000000000037 2.0000000000000000 +50.4200000000000017 2.0000000000000000 +50.4299999999999997 2.0000000000000000 +50.4399999999999977 2.0000000000000000 +50.4500000000000028 2.0000000000000000 +50.4600000000000009 2.0000000000000000 +50.4699999999999989 2.0000000000000000 +50.4800000000000040 2.0000000000000000 +50.4900000000000020 2.0000000000000000 +50.5000000000000000 2.0000000000000000 +50.5099999999999980 2.0000000000000000 +50.5200000000000031 2.0000000000000000 +50.5300000000000011 2.0000000000000000 +50.5399999999999991 2.0000000000000000 +50.5500000000000043 2.0000000000000000 +50.5600000000000023 2.0000000000000000 +50.5700000000000003 2.0000000000000000 +50.5799999999999983 2.0000000000000000 +50.5900000000000034 2.0000000000000000 +50.6000000000000014 2.0000000000000000 +50.6099999999999994 2.0000000000000000 +50.6200000000000045 2.0000000000000000 +50.6300000000000026 2.0000000000000000 +50.6400000000000006 2.0000000000000000 +50.6499999999999986 2.0000000000000000 +50.6600000000000037 2.0000000000000000 +50.6700000000000017 2.0000000000000000 +50.6799999999999997 2.0000000000000000 +50.6899999999999977 2.0000000000000000 +50.7000000000000028 2.0000000000000000 +50.7100000000000009 2.0000000000000000 +50.7199999999999989 2.0000000000000000 +50.7300000000000040 2.0000000000000000 +50.7400000000000020 2.0000000000000000 +50.7500000000000000 2.0000000000000000 +50.7599999999999980 2.0000000000000000 +50.7700000000000031 2.0000000000000000 +50.7800000000000011 2.0000000000000000 +50.7899999999999991 2.0000000000000000 +50.8000000000000043 2.0000000000000000 +50.8100000000000023 2.0000000000000000 +50.8200000000000003 2.0000000000000000 +50.8299999999999983 2.0000000000000000 +50.8400000000000034 2.0000000000000000 +50.8500000000000014 2.0000000000000000 +50.8599999999999994 2.0000000000000000 +50.8700000000000045 2.0000000000000000 +50.8800000000000026 2.0000000000000000 +50.8900000000000006 2.0000000000000000 +50.8999999999999986 2.0000000000000000 +50.9100000000000037 2.0000000000000000 +50.9200000000000017 2.0000000000000000 +50.9299999999999997 2.0000000000000000 +50.9399999999999977 2.0000000000000000 +50.9500000000000028 2.0000000000000000 +50.9600000000000009 2.0000000000000000 +50.9699999999999989 2.0000000000000000 +50.9800000000000040 2.0000000000000000 +50.9900000000000020 2.0000000000000000 +51.0000000000000000 2.0000000000000000 +51.0099999999999980 2.0000000000000000 +51.0200000000000031 2.0000000000000000 +51.0300000000000011 2.0000000000000000 +51.0399999999999991 2.0000000000000000 +51.0500000000000043 2.0000000000000000 +51.0600000000000023 2.0000000000000000 +51.0700000000000003 2.0000000000000000 +51.0799999999999983 2.0000000000000000 +51.0900000000000034 2.0000000000000000 +51.1000000000000014 2.0000000000000000 +51.1099999999999994 2.0000000000000000 +51.1200000000000045 2.0000000000000000 +51.1300000000000026 2.0000000000000000 +51.1400000000000006 2.0000000000000000 +51.1499999999999986 2.0000000000000000 +51.1600000000000037 2.0000000000000000 +51.1700000000000017 2.0000000000000000 +51.1799999999999997 2.0000000000000000 +51.1899999999999977 2.0000000000000000 +51.2000000000000028 2.0000000000000000 +51.2100000000000009 2.0000000000000000 +51.2199999999999989 2.0000000000000000 +51.2300000000000040 2.0000000000000000 +51.2400000000000020 2.0000000000000000 +51.2500000000000000 2.0000000000000000 +51.2599999999999980 2.0000000000000000 +51.2700000000000031 2.0000000000000000 +51.2800000000000011 2.0000000000000000 +51.2899999999999991 2.0000000000000000 +51.3000000000000043 2.0000000000000000 +51.3100000000000023 2.0000000000000000 +51.3200000000000003 2.0000000000000000 +51.3299999999999983 2.0000000000000000 +51.3400000000000034 2.0000000000000000 +51.3500000000000014 2.0000000000000000 +51.3599999999999994 2.0000000000000000 +51.3700000000000045 2.0000000000000000 +51.3800000000000026 2.0000000000000000 +51.3900000000000006 2.0000000000000000 +51.3999999999999986 2.0000000000000000 +51.4100000000000037 2.0000000000000000 +51.4200000000000017 2.0000000000000000 +51.4299999999999997 2.0000000000000000 +51.4399999999999977 2.0000000000000000 +51.4500000000000028 2.0000000000000000 +51.4600000000000009 2.0000000000000000 +51.4699999999999989 2.0000000000000000 +51.4800000000000040 2.0000000000000000 +51.4900000000000020 2.0000000000000000 +51.5000000000000000 2.0000000000000000 +51.5099999999999980 2.0000000000000000 +51.5200000000000031 2.0000000000000000 +51.5300000000000011 2.0000000000000000 +51.5399999999999991 2.0000000000000000 +51.5500000000000043 2.0000000000000000 +51.5600000000000023 2.0000000000000000 +51.5700000000000003 2.0000000000000000 +51.5799999999999983 2.0000000000000000 +51.5900000000000034 2.0000000000000000 +51.6000000000000014 2.0000000000000000 +51.6099999999999994 2.0000000000000000 +51.6200000000000045 2.0000000000000000 +51.6300000000000026 2.0000000000000000 +51.6400000000000006 2.0000000000000000 +51.6499999999999986 2.0000000000000000 +51.6600000000000037 2.0000000000000000 +51.6700000000000017 2.0000000000000000 +51.6799999999999997 2.0000000000000000 +51.6899999999999977 2.0000000000000000 +51.7000000000000028 2.0000000000000000 +51.7100000000000009 2.0000000000000000 +51.7199999999999989 2.0000000000000000 +51.7300000000000040 2.0000000000000000 +51.7400000000000020 2.0000000000000000 +51.7500000000000000 2.0000000000000000 +51.7599999999999980 2.0000000000000000 +51.7700000000000031 2.0000000000000000 +51.7800000000000011 2.0000000000000000 +51.7899999999999991 2.0000000000000000 +51.8000000000000043 2.0000000000000000 +51.8100000000000023 2.0000000000000000 +51.8200000000000003 2.0000000000000000 +51.8299999999999983 2.0000000000000000 +51.8400000000000034 2.0000000000000000 +51.8500000000000014 2.0000000000000000 +51.8599999999999994 2.0000000000000000 +51.8700000000000045 2.0000000000000000 +51.8800000000000026 2.0000000000000000 +51.8900000000000006 2.0000000000000000 +51.8999999999999986 2.0000000000000000 +51.9100000000000037 2.0000000000000000 +51.9200000000000017 2.0000000000000000 +51.9299999999999997 2.0000000000000000 +51.9399999999999977 2.0000000000000000 +51.9500000000000028 2.0000000000000000 +51.9600000000000009 2.0000000000000000 +51.9699999999999989 2.0000000000000000 +51.9800000000000040 2.0000000000000000 +51.9900000000000020 2.0000000000000000 +52.0000000000000000 2.0000000000000000 +52.0099999999999980 2.0000000000000000 +52.0200000000000031 2.0000000000000000 +52.0300000000000011 2.0000000000000000 +52.0399999999999991 2.0000000000000000 +52.0500000000000043 2.0000000000000000 +52.0600000000000023 2.0000000000000000 +52.0700000000000003 2.0000000000000000 +52.0799999999999983 2.0000000000000000 +52.0900000000000034 2.0000000000000000 +52.1000000000000014 2.0000000000000000 +52.1099999999999994 2.0000000000000000 +52.1200000000000045 2.0000000000000000 +52.1300000000000026 2.0000000000000000 +52.1400000000000006 2.0000000000000000 +52.1499999999999986 2.0000000000000000 +52.1600000000000037 2.0000000000000000 +52.1700000000000017 2.0000000000000000 +52.1799999999999997 2.0000000000000000 +52.1899999999999977 2.0000000000000000 +52.2000000000000028 2.0000000000000000 +52.2100000000000009 2.0000000000000000 +52.2199999999999989 2.0000000000000000 +52.2300000000000040 2.0000000000000000 +52.2400000000000020 2.0000000000000000 +52.2500000000000000 2.0000000000000000 +52.2599999999999980 2.0000000000000000 +52.2700000000000031 2.0000000000000000 +52.2800000000000011 2.0000000000000000 +52.2899999999999991 2.0000000000000000 +52.3000000000000043 2.0000000000000000 +52.3100000000000023 2.0000000000000000 +52.3200000000000003 2.0000000000000000 +52.3299999999999983 2.0000000000000000 +52.3400000000000034 2.0000000000000000 +52.3500000000000014 2.0000000000000000 +52.3599999999999994 2.0000000000000000 +52.3700000000000045 2.0000000000000000 +52.3800000000000026 2.0000000000000000 +52.3900000000000006 2.0000000000000000 +52.3999999999999986 2.0000000000000000 +52.4100000000000037 2.0000000000000000 +52.4200000000000017 2.0000000000000000 +52.4299999999999997 2.0000000000000000 +52.4399999999999977 2.0000000000000000 +52.4500000000000028 2.0000000000000000 +52.4600000000000009 2.0000000000000000 +52.4699999999999989 2.0000000000000000 +52.4800000000000040 2.0000000000000000 +52.4900000000000020 2.0000000000000000 +52.5000000000000000 2.0000000000000000 +52.5099999999999980 2.0000000000000000 +52.5200000000000031 2.0000000000000000 +52.5300000000000011 2.0000000000000000 +52.5399999999999991 2.0000000000000000 +52.5500000000000043 2.0000000000000000 +52.5600000000000023 2.0000000000000000 +52.5700000000000003 2.0000000000000000 +52.5799999999999983 2.0000000000000000 +52.5900000000000034 2.0000000000000000 +52.6000000000000014 2.0000000000000000 +52.6099999999999994 2.0000000000000000 +52.6200000000000045 2.0000000000000000 +52.6300000000000026 2.0000000000000000 +52.6400000000000006 2.0000000000000000 +52.6499999999999986 2.0000000000000000 +52.6600000000000037 2.0000000000000000 +52.6700000000000017 2.0000000000000000 +52.6799999999999997 2.0000000000000000 +52.6899999999999977 2.0000000000000000 +52.7000000000000028 2.0000000000000000 +52.7100000000000009 2.0000000000000000 +52.7199999999999989 2.0000000000000000 +52.7300000000000040 2.0000000000000000 +52.7400000000000020 2.0000000000000000 +52.7500000000000000 2.0000000000000000 +52.7599999999999980 2.0000000000000000 +52.7700000000000031 2.0000000000000000 +52.7800000000000011 2.0000000000000000 +52.7899999999999991 2.0000000000000000 +52.8000000000000043 2.0000000000000000 +52.8100000000000023 2.0000000000000000 +52.8200000000000003 2.0000000000000000 +52.8299999999999983 2.0000000000000000 +52.8400000000000034 2.0000000000000000 +52.8500000000000014 2.0000000000000000 +52.8599999999999994 2.0000000000000000 +52.8700000000000045 2.0000000000000000 +52.8800000000000026 2.0000000000000000 +52.8900000000000006 2.0000000000000000 +52.8999999999999986 2.0000000000000000 +52.9100000000000037 2.0000000000000000 +52.9200000000000017 2.0000000000000000 +52.9299999999999997 2.0000000000000000 +52.9399999999999977 2.0000000000000000 +52.9500000000000028 2.0000000000000000 +52.9600000000000009 2.0000000000000000 +52.9699999999999989 2.0000000000000000 +52.9800000000000040 2.0000000000000000 +52.9900000000000020 2.0000000000000000 +53.0000000000000000 2.0000000000000000 +53.0099999999999980 2.0000000000000000 +53.0200000000000031 2.0000000000000000 +53.0300000000000011 2.0000000000000000 +53.0399999999999991 2.0000000000000000 +53.0500000000000043 2.0000000000000000 +53.0600000000000023 2.0000000000000000 +53.0700000000000003 2.0000000000000000 +53.0799999999999983 2.0000000000000000 +53.0900000000000034 2.0000000000000000 +53.1000000000000014 2.0000000000000000 +53.1099999999999994 2.0000000000000000 +53.1200000000000045 2.0000000000000000 +53.1300000000000026 2.0000000000000000 +53.1400000000000006 2.0000000000000000 +53.1499999999999986 2.0000000000000000 +53.1600000000000037 2.0000000000000000 +53.1700000000000017 2.0000000000000000 +53.1799999999999997 2.0000000000000000 +53.1899999999999977 2.0000000000000000 +53.2000000000000028 2.0000000000000000 +53.2100000000000009 2.0000000000000000 +53.2199999999999989 2.0000000000000000 +53.2300000000000040 2.0000000000000000 +53.2400000000000020 2.0000000000000000 +53.2500000000000000 2.0000000000000000 +53.2599999999999980 2.0000000000000000 +53.2700000000000031 2.0000000000000000 +53.2800000000000011 2.0000000000000000 +53.2899999999999991 2.0000000000000000 +53.3000000000000043 2.0000000000000000 +53.3100000000000023 2.0000000000000000 +53.3200000000000003 2.0000000000000000 +53.3299999999999983 2.0000000000000000 +53.3400000000000034 2.0000000000000000 +53.3500000000000014 2.0000000000000000 +53.3599999999999994 2.0000000000000000 +53.3700000000000045 2.0000000000000000 +53.3800000000000026 2.0000000000000000 +53.3900000000000006 2.0000000000000000 +53.3999999999999986 2.0000000000000000 +53.4100000000000037 2.0000000000000000 +53.4200000000000017 2.0000000000000000 +53.4299999999999997 2.0000000000000000 +53.4399999999999977 2.0000000000000000 +53.4500000000000028 2.0000000000000000 +53.4600000000000009 2.0000000000000000 +53.4699999999999989 2.0000000000000000 +53.4800000000000040 2.0000000000000000 +53.4900000000000020 2.0000000000000000 +53.5000000000000000 2.0000000000000000 +53.5099999999999980 2.0000000000000000 +53.5200000000000031 2.0000000000000000 +53.5300000000000011 2.0000000000000000 +53.5399999999999991 2.0000000000000000 +53.5500000000000043 2.0000000000000000 +53.5600000000000023 2.0000000000000000 +53.5700000000000003 2.0000000000000000 +53.5799999999999983 2.0000000000000000 +53.5900000000000034 2.0000000000000000 +53.6000000000000014 2.0000000000000000 +53.6099999999999994 2.0000000000000000 +53.6200000000000045 2.0000000000000000 +53.6300000000000026 2.0000000000000000 +53.6400000000000006 2.0000000000000000 +53.6499999999999986 2.0000000000000000 +53.6600000000000037 2.0000000000000000 +53.6700000000000017 2.0000000000000000 +53.6799999999999997 2.0000000000000000 +53.6899999999999977 2.0000000000000000 +53.7000000000000028 2.0000000000000000 +53.7100000000000009 2.0000000000000000 +53.7199999999999989 2.0000000000000000 +53.7300000000000040 2.0000000000000000 +53.7400000000000020 2.0000000000000000 +53.7500000000000000 2.0000000000000000 +53.7599999999999980 2.0000000000000000 +53.7700000000000031 2.0000000000000000 +53.7800000000000011 2.0000000000000000 +53.7899999999999991 2.0000000000000000 +53.8000000000000043 2.0000000000000000 +53.8100000000000023 2.0000000000000000 +53.8200000000000003 2.0000000000000000 +53.8299999999999983 2.0000000000000000 +53.8400000000000034 2.0000000000000000 +53.8500000000000014 2.0000000000000000 +53.8599999999999994 2.0000000000000000 +53.8700000000000045 2.0000000000000000 +53.8800000000000026 2.0000000000000000 +53.8900000000000006 2.0000000000000000 +53.8999999999999986 2.0000000000000000 +53.9100000000000037 2.0000000000000000 +53.9200000000000017 2.0000000000000000 +53.9299999999999997 2.0000000000000000 +53.9399999999999977 2.0000000000000000 +53.9500000000000028 2.0000000000000000 +53.9600000000000009 2.0000000000000000 +53.9699999999999989 2.0000000000000000 +53.9800000000000040 2.0000000000000000 +53.9900000000000020 2.0000000000000000 +54.0000000000000000 2.0000000000000000 +54.0099999999999980 2.0000000000000000 +54.0200000000000031 2.0000000000000000 +54.0300000000000011 2.0000000000000000 +54.0399999999999991 2.0000000000000000 +54.0500000000000043 2.0000000000000000 +54.0600000000000023 2.0000000000000000 +54.0700000000000003 2.0000000000000000 +54.0799999999999983 2.0000000000000000 +54.0900000000000034 2.0000000000000000 +54.1000000000000014 2.0000000000000000 +54.1099999999999994 2.0000000000000000 +54.1200000000000045 2.0000000000000000 +54.1300000000000026 2.0000000000000000 +54.1400000000000006 2.0000000000000000 +54.1499999999999986 2.0000000000000000 +54.1600000000000037 2.0000000000000000 +54.1700000000000017 2.0000000000000000 +54.1799999999999997 2.0000000000000000 +54.1899999999999977 2.0000000000000000 +54.2000000000000028 2.0000000000000000 +54.2100000000000009 2.0000000000000000 +54.2199999999999989 2.0000000000000000 +54.2300000000000040 2.0000000000000000 +54.2400000000000020 2.0000000000000000 +54.2500000000000000 2.0000000000000000 +54.2599999999999980 2.0000000000000000 +54.2700000000000031 2.0000000000000000 +54.2800000000000011 2.0000000000000000 +54.2899999999999991 2.0000000000000000 +54.3000000000000043 2.0000000000000000 +54.3100000000000023 2.0000000000000000 +54.3200000000000003 2.0000000000000000 +54.3299999999999983 2.0000000000000000 +54.3400000000000034 2.0000000000000000 +54.3500000000000014 2.0000000000000000 +54.3599999999999994 2.0000000000000000 +54.3700000000000045 2.0000000000000000 +54.3800000000000026 2.0000000000000000 +54.3900000000000006 2.0000000000000000 +54.3999999999999986 2.0000000000000000 +54.4100000000000037 2.0000000000000000 +54.4200000000000017 2.0000000000000000 +54.4299999999999997 2.0000000000000000 +54.4399999999999977 2.0000000000000000 +54.4500000000000028 2.0000000000000000 +54.4600000000000009 2.0000000000000000 +54.4699999999999989 2.0000000000000000 +54.4800000000000040 2.0000000000000000 +54.4900000000000020 2.0000000000000000 +54.5000000000000000 2.0000000000000000 +54.5099999999999980 2.0000000000000000 +54.5200000000000031 2.0000000000000000 +54.5300000000000011 2.0000000000000000 +54.5399999999999991 2.0000000000000000 +54.5500000000000043 2.0000000000000000 +54.5600000000000023 2.0000000000000000 +54.5700000000000003 2.0000000000000000 +54.5799999999999983 2.0000000000000000 +54.5900000000000034 2.0000000000000000 +54.6000000000000014 2.0000000000000000 +54.6099999999999994 2.0000000000000000 +54.6200000000000045 2.0000000000000000 +54.6300000000000026 2.0000000000000000 +54.6400000000000006 2.0000000000000000 +54.6499999999999986 2.0000000000000000 +54.6600000000000037 2.0000000000000000 +54.6700000000000017 2.0000000000000000 +54.6799999999999997 2.0000000000000000 +54.6899999999999977 2.0000000000000000 +54.7000000000000028 2.0000000000000000 +54.7100000000000009 2.0000000000000000 +54.7199999999999989 2.0000000000000000 +54.7300000000000040 2.0000000000000000 +54.7400000000000020 2.0000000000000000 +54.7500000000000000 2.0000000000000000 +54.7599999999999980 2.0000000000000000 +54.7700000000000031 2.0000000000000000 +54.7800000000000011 2.0000000000000000 +54.7899999999999991 2.0000000000000000 +54.8000000000000043 2.0000000000000000 +54.8100000000000023 2.0000000000000000 +54.8200000000000003 2.0000000000000000 +54.8299999999999983 2.0000000000000000 +54.8400000000000034 2.0000000000000000 +54.8500000000000014 2.0000000000000000 +54.8599999999999994 2.0000000000000000 +54.8700000000000045 2.0000000000000000 +54.8800000000000026 2.0000000000000000 +54.8900000000000006 2.0000000000000000 +54.8999999999999986 2.0000000000000000 +54.9100000000000037 2.0000000000000000 +54.9200000000000017 2.0000000000000000 +54.9299999999999997 2.0000000000000000 +54.9399999999999977 2.0000000000000000 +54.9500000000000028 2.0000000000000000 +54.9600000000000009 2.0000000000000000 +54.9699999999999989 2.0000000000000000 +54.9800000000000040 2.0000000000000000 +54.9900000000000020 2.0000000000000000 +55.0000000000000000 2.0000000000000000 +55.0099999999999980 2.0000000000000000 +55.0200000000000031 2.0000000000000000 +55.0300000000000011 2.0000000000000000 +55.0399999999999991 2.0000000000000000 +55.0500000000000043 2.0000000000000000 +55.0600000000000023 2.0000000000000000 +55.0700000000000003 2.0000000000000000 +55.0799999999999983 2.0000000000000000 +55.0900000000000034 2.0000000000000000 +55.1000000000000014 2.0000000000000000 +55.1099999999999994 2.0000000000000000 +55.1200000000000045 2.0000000000000000 +55.1300000000000026 2.0000000000000000 +55.1400000000000006 2.0000000000000000 +55.1499999999999986 2.0000000000000000 +55.1600000000000037 2.0000000000000000 +55.1700000000000017 2.0000000000000000 +55.1799999999999997 2.0000000000000000 +55.1899999999999977 2.0000000000000000 +55.2000000000000028 2.0000000000000000 +55.2100000000000009 2.0000000000000000 +55.2199999999999989 2.0000000000000000 +55.2300000000000040 2.0000000000000000 +55.2400000000000020 2.0000000000000000 +55.2500000000000000 2.0000000000000000 +55.2599999999999980 2.0000000000000000 +55.2700000000000031 2.0000000000000000 +55.2800000000000011 2.0000000000000000 +55.2899999999999991 2.0000000000000000 +55.3000000000000043 2.0000000000000000 +55.3100000000000023 2.0000000000000000 +55.3200000000000003 2.0000000000000000 +55.3299999999999983 2.0000000000000000 +55.3400000000000034 2.0000000000000000 +55.3500000000000014 2.0000000000000000 +55.3599999999999994 2.0000000000000000 +55.3700000000000045 2.0000000000000000 +55.3800000000000026 2.0000000000000000 +55.3900000000000006 2.0000000000000000 +55.3999999999999986 2.0000000000000000 +55.4100000000000037 2.0000000000000000 +55.4200000000000017 2.0000000000000000 +55.4299999999999997 2.0000000000000000 +55.4399999999999977 2.0000000000000000 +55.4500000000000028 2.0000000000000000 +55.4600000000000009 2.0000000000000000 +55.4699999999999989 2.0000000000000000 +55.4800000000000040 2.0000000000000000 +55.4900000000000020 2.0000000000000000 +55.5000000000000000 2.0000000000000000 +55.5099999999999980 2.0000000000000000 +55.5200000000000031 2.0000000000000000 +55.5300000000000011 2.0000000000000000 +55.5399999999999991 2.0000000000000000 +55.5500000000000043 2.0000000000000000 +55.5600000000000023 2.0000000000000000 +55.5700000000000003 2.0000000000000000 +55.5799999999999983 2.0000000000000000 +55.5900000000000034 2.0000000000000000 +55.6000000000000014 2.0000000000000000 +55.6099999999999994 2.0000000000000000 +55.6200000000000045 2.0000000000000000 +55.6300000000000026 2.0000000000000000 +55.6400000000000006 2.0000000000000000 +55.6499999999999986 2.0000000000000000 +55.6600000000000037 2.0000000000000000 +55.6700000000000017 2.0000000000000000 +55.6799999999999997 2.0000000000000000 +55.6899999999999977 2.0000000000000000 +55.7000000000000028 2.0000000000000000 +55.7100000000000009 2.0000000000000000 +55.7199999999999989 2.0000000000000000 +55.7300000000000040 2.0000000000000000 +55.7400000000000020 2.0000000000000000 +55.7500000000000000 2.0000000000000000 +55.7599999999999980 2.0000000000000000 +55.7700000000000031 2.0000000000000000 +55.7800000000000011 2.0000000000000000 +55.7899999999999991 2.0000000000000000 +55.8000000000000043 2.0000000000000000 +55.8100000000000023 2.0000000000000000 +55.8200000000000003 2.0000000000000000 +55.8299999999999983 2.0000000000000000 +55.8400000000000034 2.0000000000000000 +55.8500000000000014 2.0000000000000000 +55.8599999999999994 2.0000000000000000 +55.8700000000000045 2.0000000000000000 +55.8800000000000026 2.0000000000000000 +55.8900000000000006 2.0000000000000000 +55.8999999999999986 2.0000000000000000 +55.9100000000000037 2.0000000000000000 +55.9200000000000017 2.0000000000000000 +55.9299999999999997 2.0000000000000000 +55.9399999999999977 2.0000000000000000 +55.9500000000000028 2.0000000000000000 +55.9600000000000009 2.0000000000000000 +55.9699999999999989 2.0000000000000000 +55.9800000000000040 2.0000000000000000 +55.9900000000000020 2.0000000000000000 +56.0000000000000000 2.0000000000000000 +56.0099999999999980 2.0000000000000000 +56.0200000000000031 2.0000000000000000 +56.0300000000000011 2.0000000000000000 +56.0399999999999991 2.0000000000000000 +56.0500000000000043 2.0000000000000000 +56.0600000000000023 2.0000000000000000 +56.0700000000000003 2.0000000000000000 +56.0799999999999983 2.0000000000000000 +56.0900000000000034 2.0000000000000000 +56.1000000000000014 2.0000000000000000 +56.1099999999999994 2.0000000000000000 +56.1200000000000045 2.0000000000000000 +56.1300000000000026 2.0000000000000000 +56.1400000000000006 2.0000000000000000 +56.1499999999999986 2.0000000000000000 +56.1600000000000037 2.0000000000000000 +56.1700000000000017 2.0000000000000000 +56.1799999999999997 2.0000000000000000 +56.1899999999999977 2.0000000000000000 +56.2000000000000028 2.0000000000000000 +56.2100000000000009 2.0000000000000000 +56.2199999999999989 2.0000000000000000 +56.2300000000000040 2.0000000000000000 +56.2400000000000020 2.0000000000000000 +56.2500000000000000 2.0000000000000000 +56.2599999999999980 2.0000000000000000 +56.2700000000000031 2.0000000000000000 +56.2800000000000011 2.0000000000000000 +56.2899999999999991 2.0000000000000000 +56.3000000000000043 2.0000000000000000 +56.3100000000000023 2.0000000000000000 +56.3200000000000003 2.0000000000000000 +56.3299999999999983 2.0000000000000000 +56.3400000000000034 2.0000000000000000 +56.3500000000000014 2.0000000000000000 +56.3599999999999994 2.0000000000000000 +56.3700000000000045 2.0000000000000000 +56.3800000000000026 2.0000000000000000 +56.3900000000000006 2.0000000000000000 +56.3999999999999986 2.0000000000000000 +56.4100000000000037 2.0000000000000000 +56.4200000000000017 2.0000000000000000 +56.4299999999999997 2.0000000000000000 +56.4399999999999977 2.0000000000000000 +56.4500000000000028 2.0000000000000000 +56.4600000000000009 2.0000000000000000 +56.4699999999999989 2.0000000000000000 +56.4800000000000040 2.0000000000000000 +56.4900000000000020 2.0000000000000000 +56.5000000000000000 2.0000000000000000 +56.5099999999999980 2.0000000000000000 +56.5200000000000031 2.0000000000000000 +56.5300000000000011 2.0000000000000000 +56.5399999999999991 2.0000000000000000 +56.5500000000000043 2.0000000000000000 +56.5600000000000023 2.0000000000000000 +56.5700000000000003 2.0000000000000000 +56.5799999999999983 2.0000000000000000 +56.5900000000000034 2.0000000000000000 +56.6000000000000014 2.0000000000000000 +56.6099999999999994 2.0000000000000000 +56.6200000000000045 2.0000000000000000 +56.6300000000000026 2.0000000000000000 +56.6400000000000006 2.0000000000000000 +56.6499999999999986 2.0000000000000000 +56.6600000000000037 2.0000000000000000 +56.6700000000000017 2.0000000000000000 +56.6799999999999997 2.0000000000000000 +56.6899999999999977 2.0000000000000000 +56.7000000000000028 2.0000000000000000 +56.7100000000000009 2.0000000000000000 +56.7199999999999989 2.0000000000000000 +56.7300000000000040 2.0000000000000000 +56.7400000000000020 2.0000000000000000 +56.7500000000000000 2.0000000000000000 +56.7599999999999980 2.0000000000000000 +56.7700000000000031 2.0000000000000000 +56.7800000000000011 2.0000000000000000 +56.7899999999999991 2.0000000000000000 +56.8000000000000043 2.0000000000000000 +56.8100000000000023 2.0000000000000000 +56.8200000000000003 2.0000000000000000 +56.8299999999999983 2.0000000000000000 +56.8400000000000034 2.0000000000000000 +56.8500000000000014 2.0000000000000000 +56.8599999999999994 2.0000000000000000 +56.8700000000000045 2.0000000000000000 +56.8800000000000026 2.0000000000000000 +56.8900000000000006 2.0000000000000000 +56.8999999999999986 2.0000000000000000 +56.9100000000000037 2.0000000000000000 +56.9200000000000017 2.0000000000000000 +56.9299999999999997 2.0000000000000000 +56.9399999999999977 2.0000000000000000 +56.9500000000000028 2.0000000000000000 +56.9600000000000009 2.0000000000000000 +56.9699999999999989 2.0000000000000000 +56.9800000000000040 2.0000000000000000 +56.9900000000000020 2.0000000000000000 +57.0000000000000000 2.0000000000000000 +57.0099999999999980 2.0000000000000000 +57.0200000000000031 2.0000000000000000 +57.0300000000000011 2.0000000000000000 +57.0399999999999991 2.0000000000000000 +57.0500000000000043 2.0000000000000000 +57.0600000000000023 2.0000000000000000 +57.0700000000000003 2.0000000000000000 +57.0799999999999983 2.0000000000000000 +57.0900000000000034 2.0000000000000000 +57.1000000000000014 2.0000000000000000 +57.1099999999999994 2.0000000000000000 +57.1200000000000045 2.0000000000000000 +57.1300000000000026 2.0000000000000000 +57.1400000000000006 2.0000000000000000 +57.1499999999999986 2.0000000000000000 +57.1600000000000037 2.0000000000000000 +57.1700000000000017 2.0000000000000000 +57.1799999999999997 2.0000000000000000 +57.1899999999999977 2.0000000000000000 +57.2000000000000028 2.0000000000000000 +57.2100000000000009 2.0000000000000000 +57.2199999999999989 2.0000000000000000 +57.2300000000000040 2.0000000000000000 +57.2400000000000020 2.0000000000000000 +57.2500000000000000 2.0000000000000000 +57.2599999999999980 2.0000000000000000 +57.2700000000000031 2.0000000000000000 +57.2800000000000011 2.0000000000000000 +57.2899999999999991 2.0000000000000000 +57.3000000000000043 2.0000000000000000 +57.3100000000000023 2.0000000000000000 +57.3200000000000003 2.0000000000000000 +57.3299999999999983 2.0000000000000000 +57.3400000000000034 2.0000000000000000 +57.3500000000000014 2.0000000000000000 +57.3599999999999994 2.0000000000000000 +57.3700000000000045 2.0000000000000000 +57.3800000000000026 2.0000000000000000 +57.3900000000000006 2.0000000000000000 +57.3999999999999986 2.0000000000000000 +57.4100000000000037 2.0000000000000000 +57.4200000000000017 2.0000000000000000 +57.4299999999999997 2.0000000000000000 +57.4399999999999977 2.0000000000000000 +57.4500000000000028 2.0000000000000000 +57.4600000000000009 2.0000000000000000 +57.4699999999999989 2.0000000000000000 +57.4800000000000040 2.0000000000000000 +57.4900000000000020 2.0000000000000000 +57.5000000000000000 2.0000000000000000 +57.5099999999999980 2.0000000000000000 +57.5200000000000031 2.0000000000000000 +57.5300000000000011 2.0000000000000000 +57.5399999999999991 2.0000000000000000 +57.5500000000000043 2.0000000000000000 +57.5600000000000023 2.0000000000000000 +57.5700000000000003 2.0000000000000000 +57.5799999999999983 2.0000000000000000 +57.5900000000000034 2.0000000000000000 +57.6000000000000014 2.0000000000000000 +57.6099999999999994 2.0000000000000000 +57.6200000000000045 2.0000000000000000 +57.6300000000000026 2.0000000000000000 +57.6400000000000006 2.0000000000000000 +57.6499999999999986 2.0000000000000000 +57.6600000000000037 2.0000000000000000 +57.6700000000000017 2.0000000000000000 +57.6799999999999997 2.0000000000000000 +57.6899999999999977 2.0000000000000000 +57.7000000000000028 2.0000000000000000 +57.7100000000000009 2.0000000000000000 +57.7199999999999989 2.0000000000000000 +57.7300000000000040 2.0000000000000000 +57.7400000000000020 2.0000000000000000 +57.7500000000000000 2.0000000000000000 +57.7599999999999980 2.0000000000000000 +57.7700000000000031 2.0000000000000000 +57.7800000000000011 2.0000000000000000 +57.7899999999999991 2.0000000000000000 +57.8000000000000043 2.0000000000000000 +57.8100000000000023 2.0000000000000000 +57.8200000000000003 2.0000000000000000 +57.8299999999999983 2.0000000000000000 +57.8400000000000034 2.0000000000000000 +57.8500000000000014 2.0000000000000000 +57.8599999999999994 2.0000000000000000 +57.8700000000000045 2.0000000000000000 +57.8800000000000026 2.0000000000000000 +57.8900000000000006 2.0000000000000000 +57.8999999999999986 2.0000000000000000 +57.9100000000000037 2.0000000000000000 +57.9200000000000017 2.0000000000000000 +57.9299999999999997 2.0000000000000000 +57.9399999999999977 2.0000000000000000 +57.9500000000000028 2.0000000000000000 +57.9600000000000009 2.0000000000000000 +57.9699999999999989 2.0000000000000000 +57.9800000000000040 2.0000000000000000 +57.9900000000000020 2.0000000000000000 +58.0000000000000000 2.0000000000000000 +58.0099999999999980 2.0000000000000000 +58.0200000000000031 2.0000000000000000 +58.0300000000000011 2.0000000000000000 +58.0399999999999991 2.0000000000000000 +58.0500000000000043 2.0000000000000000 +58.0600000000000023 2.0000000000000000 +58.0700000000000003 2.0000000000000000 +58.0799999999999983 2.0000000000000000 +58.0900000000000034 2.0000000000000000 +58.1000000000000014 2.0000000000000000 +58.1099999999999994 2.0000000000000000 +58.1200000000000045 2.0000000000000000 +58.1300000000000026 2.0000000000000000 +58.1400000000000006 2.0000000000000000 +58.1499999999999986 2.0000000000000000 +58.1600000000000037 2.0000000000000000 +58.1700000000000017 2.0000000000000000 +58.1799999999999997 2.0000000000000000 +58.1899999999999977 2.0000000000000000 +58.2000000000000028 2.0000000000000000 +58.2100000000000009 2.0000000000000000 +58.2199999999999989 2.0000000000000000 +58.2300000000000040 2.0000000000000000 +58.2400000000000020 2.0000000000000000 +58.2500000000000000 2.0000000000000000 +58.2599999999999980 2.0000000000000000 +58.2700000000000031 2.0000000000000000 +58.2800000000000011 2.0000000000000000 +58.2899999999999991 2.0000000000000000 +58.3000000000000043 2.0000000000000000 +58.3100000000000023 2.0000000000000000 +58.3200000000000003 2.0000000000000000 +58.3299999999999983 2.0000000000000000 +58.3400000000000034 2.0000000000000000 +58.3500000000000014 2.0000000000000000 +58.3599999999999994 2.0000000000000000 +58.3700000000000045 2.0000000000000000 +58.3800000000000026 2.0000000000000000 +58.3900000000000006 2.0000000000000000 +58.3999999999999986 2.0000000000000000 +58.4100000000000037 2.0000000000000000 +58.4200000000000017 2.0000000000000000 +58.4299999999999997 2.0000000000000000 +58.4399999999999977 2.0000000000000000 +58.4500000000000028 2.0000000000000000 +58.4600000000000009 2.0000000000000000 +58.4699999999999989 2.0000000000000000 +58.4800000000000040 2.0000000000000000 +58.4900000000000020 2.0000000000000000 +58.5000000000000000 2.0000000000000000 +58.5099999999999980 2.0000000000000000 +58.5200000000000031 2.0000000000000000 +58.5300000000000011 2.0000000000000000 +58.5399999999999991 2.0000000000000000 +58.5500000000000043 2.0000000000000000 +58.5600000000000023 2.0000000000000000 +58.5700000000000003 2.0000000000000000 +58.5799999999999983 2.0000000000000000 +58.5900000000000034 2.0000000000000000 +58.6000000000000014 2.0000000000000000 +58.6099999999999994 2.0000000000000000 +58.6200000000000045 2.0000000000000000 +58.6300000000000026 2.0000000000000000 +58.6400000000000006 2.0000000000000000 +58.6499999999999986 2.0000000000000000 +58.6600000000000037 2.0000000000000000 +58.6700000000000017 2.0000000000000000 +58.6799999999999997 2.0000000000000000 +58.6899999999999977 2.0000000000000000 +58.7000000000000028 2.0000000000000000 +58.7100000000000009 2.0000000000000000 +58.7199999999999989 2.0000000000000000 +58.7300000000000040 2.0000000000000000 +58.7400000000000020 2.0000000000000000 +58.7500000000000000 2.0000000000000000 +58.7599999999999980 2.0000000000000000 +58.7700000000000031 2.0000000000000000 +58.7800000000000011 2.0000000000000000 +58.7899999999999991 2.0000000000000000 +58.8000000000000043 2.0000000000000000 +58.8100000000000023 2.0000000000000000 +58.8200000000000003 2.0000000000000000 +58.8299999999999983 2.0000000000000000 +58.8400000000000034 2.0000000000000000 +58.8500000000000014 2.0000000000000000 +58.8599999999999994 2.0000000000000000 +58.8700000000000045 2.0000000000000000 +58.8800000000000026 2.0000000000000000 +58.8900000000000006 2.0000000000000000 +58.8999999999999986 2.0000000000000000 +58.9100000000000037 2.0000000000000000 +58.9200000000000017 2.0000000000000000 +58.9299999999999997 2.0000000000000000 +58.9399999999999977 2.0000000000000000 +58.9500000000000028 2.0000000000000000 +58.9600000000000009 2.0000000000000000 +58.9699999999999989 2.0000000000000000 +58.9800000000000040 2.0000000000000000 +58.9900000000000020 2.0000000000000000 +59.0000000000000000 2.0000000000000000 +59.0099999999999980 2.0000000000000000 +59.0200000000000031 2.0000000000000000 +59.0300000000000011 2.0000000000000000 +59.0399999999999991 2.0000000000000000 +59.0500000000000043 2.0000000000000000 +59.0600000000000023 2.0000000000000000 +59.0700000000000003 2.0000000000000000 +59.0799999999999983 2.0000000000000000 +59.0900000000000034 2.0000000000000000 +59.1000000000000014 2.0000000000000000 +59.1099999999999994 2.0000000000000000 +59.1200000000000045 2.0000000000000000 +59.1300000000000026 2.0000000000000000 +59.1400000000000006 2.0000000000000000 +59.1499999999999986 2.0000000000000000 +59.1600000000000037 2.0000000000000000 +59.1700000000000017 2.0000000000000000 +59.1799999999999997 2.0000000000000000 +59.1899999999999977 2.0000000000000000 +59.2000000000000028 2.0000000000000000 +59.2100000000000009 2.0000000000000000 +59.2199999999999989 2.0000000000000000 +59.2300000000000040 2.0000000000000000 +59.2400000000000020 2.0000000000000000 +59.2500000000000000 2.0000000000000000 +59.2599999999999980 2.0000000000000000 +59.2700000000000031 2.0000000000000000 +59.2800000000000011 2.0000000000000000 +59.2899999999999991 2.0000000000000000 +59.3000000000000043 2.0000000000000000 +59.3100000000000023 2.0000000000000000 +59.3200000000000003 2.0000000000000000 +59.3299999999999983 2.0000000000000000 +59.3400000000000034 2.0000000000000000 +59.3500000000000014 2.0000000000000000 +59.3599999999999994 2.0000000000000000 +59.3700000000000045 2.0000000000000000 +59.3800000000000026 2.0000000000000000 +59.3900000000000006 2.0000000000000000 +59.3999999999999986 2.0000000000000000 +59.4100000000000037 2.0000000000000000 +59.4200000000000017 2.0000000000000000 +59.4299999999999997 2.0000000000000000 +59.4399999999999977 2.0000000000000000 +59.4500000000000028 2.0000000000000000 +59.4600000000000009 2.0000000000000000 +59.4699999999999989 2.0000000000000000 +59.4800000000000040 2.0000000000000000 +59.4900000000000020 2.0000000000000000 +59.5000000000000000 2.0000000000000000 +59.5099999999999980 2.0000000000000000 +59.5200000000000031 2.0000000000000000 +59.5300000000000011 2.0000000000000000 +59.5399999999999991 2.0000000000000000 +59.5500000000000043 2.0000000000000000 +59.5600000000000023 2.0000000000000000 +59.5700000000000003 2.0000000000000000 +59.5799999999999983 2.0000000000000000 +59.5900000000000034 2.0000000000000000 +59.6000000000000014 2.0000000000000000 +59.6099999999999994 2.0000000000000000 +59.6200000000000045 2.0000000000000000 +59.6300000000000026 2.0000000000000000 +59.6400000000000006 2.0000000000000000 +59.6499999999999986 2.0000000000000000 +59.6600000000000037 2.0000000000000000 +59.6700000000000017 2.0000000000000000 +59.6799999999999997 2.0000000000000000 +59.6899999999999977 2.0000000000000000 +59.7000000000000028 2.0000000000000000 +59.7100000000000009 2.0000000000000000 +59.7199999999999989 2.0000000000000000 +59.7300000000000040 2.0000000000000000 +59.7400000000000020 2.0000000000000000 +59.7500000000000000 2.0000000000000000 +59.7599999999999980 2.0000000000000000 +59.7700000000000031 2.0000000000000000 +59.7800000000000011 2.0000000000000000 +59.7899999999999991 2.0000000000000000 +59.8000000000000043 2.0000000000000000 +59.8100000000000023 2.0000000000000000 +59.8200000000000003 2.0000000000000000 +59.8299999999999983 2.0000000000000000 +59.8400000000000034 2.0000000000000000 +59.8500000000000014 2.0000000000000000 +59.8599999999999994 2.0000000000000000 +59.8700000000000045 2.0000000000000000 +59.8800000000000026 2.0000000000000000 +59.8900000000000006 2.0000000000000000 +59.8999999999999986 2.0000000000000000 +59.9100000000000037 2.0000000000000000 +59.9200000000000017 2.0000000000000000 +59.9299999999999997 2.0000000000000000 +59.9399999999999977 2.0000000000000000 +59.9500000000000028 2.0000000000000000 +59.9600000000000009 2.0000000000000000 +59.9699999999999989 2.0000000000000000 +59.9800000000000040 2.0000000000000000 +59.9900000000000020 2.0000000000000000 +60.0000000000000000 2.0000000000000000 diff --git a/src/engine/tests/system/gt_data/VIRplanoS/Su.dat b/src/engine/tests/system/gt_data/VIRplanoS/Su.dat new file mode 100644 index 00000000..9d8fe4b3 --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/Su.dat @@ -0,0 +1,6001 @@ +0.0000000000000000 4.0000000000000000 +0.0100000000000000 4.0000000000000000 +0.0200000000000000 4.0000000000000000 +0.0300000000000000 4.0000000000000000 +0.0400000000000000 4.0000000000000000 +0.0500000000000000 4.0000000000000000 +0.0600000000000000 4.0000000000000000 +0.0700000000000000 4.0000000000000000 +0.0800000000000000 4.0000000000000000 +0.0900000000000000 4.0000000000000000 +0.1000000000000000 4.0000000000000000 +0.1100000000000000 4.0000000000000000 +0.1200000000000000 4.0000000000000000 +0.1300000000000000 4.0000000000000000 +0.1400000000000000 4.0000000000000000 +0.1500000000000000 4.0000000000000000 +0.1600000000000000 4.0000000000000000 +0.1700000000000000 4.0000000000000000 +0.1800000000000000 4.0000000000000000 +0.1900000000000000 4.0000000000000000 +0.2000000000000000 4.0000000000000000 +0.2100000000000000 4.0000000000000000 +0.2200000000000000 4.0000000000000000 +0.2300000000000000 4.0000000000000000 +0.2400000000000000 4.0000000000000000 +0.2500000000000000 4.0000000000000000 +0.2600000000000000 4.0000000000000000 +0.2700000000000000 4.0000000000000000 +0.2800000000000000 4.0000000000000000 +0.2900000000000000 4.0000000000000000 +0.3000000000000000 4.0000000000000000 +0.3100000000000000 4.0000000000000000 +0.3200000000000000 4.0000000000000000 +0.3300000000000000 4.0000000000000000 +0.3400000000000000 4.0000000000000000 +0.3500000000000000 4.0000000000000000 +0.3600000000000000 4.0000000000000000 +0.3700000000000000 4.0000000000000000 +0.3800000000000000 4.0000000000000000 +0.3900000000000000 4.0000000000000000 +0.4000000000000000 4.0000000000000000 +0.4100000000000000 4.0000000000000000 +0.4200000000000000 4.0000000000000000 +0.4300000000000000 4.0000000000000000 +0.4400000000000000 4.0000000000000000 +0.4500000000000000 4.0000000000000000 +0.4600000000000000 4.0000000000000000 +0.4700000000000000 4.0000000000000000 +0.4800000000000000 4.0000000000000000 +0.4900000000000000 4.0000000000000000 +0.5000000000000000 4.0000000000000000 +0.5100000000000000 4.0000000000000000 +0.5200000000000000 4.0000000000000000 +0.5300000000000000 4.0000000000000000 +0.5400000000000000 4.0000000000000000 +0.5500000000000000 4.0000000000000000 +0.5600000000000001 4.0000000000000000 +0.5700000000000001 4.0000000000000000 +0.5800000000000000 4.0000000000000000 +0.5900000000000000 4.0000000000000000 +0.6000000000000000 4.0000000000000000 +0.6100000000000000 4.0000000000000000 +0.6200000000000000 4.0000000000000000 +0.6300000000000000 4.0000000000000000 +0.6400000000000000 4.0000000000000000 +0.6500000000000000 4.0000000000000000 +0.6600000000000000 4.0000000000000000 +0.6700000000000000 4.0000000000000000 +0.6800000000000000 4.0000000000000000 +0.6900000000000001 4.0000000000000000 +0.7000000000000001 4.0000000000000000 +0.7100000000000000 4.0000000000000000 +0.7200000000000000 4.0000000000000000 +0.7300000000000000 4.0000000000000000 +0.7400000000000000 4.0000000000000000 +0.7500000000000000 4.0000000000000000 +0.7600000000000000 4.0000000000000000 +0.7700000000000000 4.0000000000000000 +0.7800000000000000 4.0000000000000000 +0.7900000000000000 4.0000000000000000 +0.8000000000000000 4.0000000000000000 +0.8100000000000001 4.0000000000000000 +0.8200000000000001 4.0000000000000000 +0.8300000000000001 4.0000000000000000 +0.8400000000000000 4.0000000000000000 +0.8500000000000000 4.0000000000000000 +0.8600000000000000 4.0000000000000000 +0.8700000000000000 4.0000000000000000 +0.8800000000000000 4.0000000000000000 +0.8900000000000000 4.0000000000000000 +0.9000000000000000 4.0000000000000000 +0.9100000000000000 4.0000000000000000 +0.9200000000000000 4.0000000000000000 +0.9300000000000000 4.0000000000000000 +0.9400000000000001 4.0000000000000000 +0.9500000000000001 4.0000000000000000 +0.9600000000000000 4.0000000000000000 +0.9700000000000000 4.0000000000000000 +0.9800000000000000 4.0000000000000000 +0.9900000000000000 4.0000000000000000 +1.0000000000000000 4.0000000000000000 +1.0100000000000000 4.0000000000000000 +1.0200000000000000 4.0000000000000000 +1.0300000000000000 4.0000000000000000 +1.0400000000000000 4.0000000000000000 +1.0500000000000000 4.0000000000000000 +1.0600000000000001 4.0000000000000000 +1.0700000000000001 4.0000000000000000 +1.0800000000000001 4.0000000000000000 +1.0900000000000001 4.0000000000000000 +1.1000000000000001 4.0000000000000000 +1.1100000000000001 4.0000000000000000 +1.1200000000000001 4.0000000000000000 +1.1300000000000001 4.0000000000000000 +1.1400000000000001 4.0000000000000000 +1.1500000000000001 4.0000000000000000 +1.1599999999999999 4.0000000000000000 +1.1699999999999999 4.0000000000000000 +1.1799999999999999 4.0000000000000000 +1.1899999999999999 4.0000000000000000 +1.2000000000000000 4.0000000000000000 +1.2100000000000000 4.0000000000000000 +1.2200000000000000 4.0000000000000000 +1.2300000000000000 4.0000000000000000 +1.2400000000000000 4.0000000000000000 +1.2500000000000000 4.0000000000000000 +1.2600000000000000 4.0000000000000000 +1.2700000000000000 4.0000000000000000 +1.2800000000000000 4.0000000000000000 +1.2900000000000000 4.0000000000000000 +1.3000000000000000 4.0000000000000000 +1.3100000000000001 4.0000000000000000 +1.3200000000000001 4.0000000000000000 +1.3300000000000001 4.0000000000000000 +1.3400000000000001 4.0000000000000000 +1.3500000000000001 4.0000000000000000 +1.3600000000000001 4.0000000000000000 +1.3700000000000001 4.0000000000000000 +1.3800000000000001 4.0000000000000000 +1.3900000000000001 4.0000000000000000 +1.4000000000000001 4.0000000000000000 +1.4099999999999999 4.0000000000000000 +1.4199999999999999 4.0000000000000000 +1.4299999999999999 4.0000000000000000 +1.4399999999999999 4.0000000000000000 +1.4500000000000000 4.0000000000000000 +1.4600000000000000 4.0000000000000000 +1.4700000000000000 4.0000000000000000 +1.4800000000000000 4.0000000000000000 +1.4900000000000000 4.0000000000000000 +1.5000000000000000 4.0000000000000000 +1.5100000000000000 4.0000000000000000 +1.5200000000000000 4.0000000000000000 +1.5300000000000000 4.0000000000000000 +1.5400000000000000 4.0000000000000000 +1.5500000000000000 4.0000000000000000 +1.5600000000000001 4.0000000000000000 +1.5700000000000001 4.0000000000000000 +1.5800000000000001 4.0000000000000000 +1.5900000000000001 4.0000000000000000 +1.6000000000000001 4.0000000000000000 +1.6100000000000001 4.0000000000000000 +1.6200000000000001 4.0000000000000000 +1.6300000000000001 4.0000000000000000 +1.6400000000000001 4.0000000000000000 +1.6500000000000001 4.0000000000000000 +1.6600000000000001 4.0000000000000000 +1.6699999999999999 4.0000000000000000 +1.6799999999999999 4.0000000000000000 +1.6899999999999999 4.0000000000000000 +1.7000000000000000 4.0000000000000000 +1.7100000000000000 4.0000000000000000 +1.7200000000000000 4.0000000000000000 +1.7300000000000000 4.0000000000000000 +1.7400000000000000 4.0000000000000000 +1.7500000000000000 4.0000000000000000 +1.7600000000000000 4.0000000000000000 +1.7700000000000000 4.0000000000000000 +1.7800000000000000 4.0000000000000000 +1.7900000000000000 4.0000000000000000 +1.8000000000000000 4.0000000000000000 +1.8100000000000001 4.0000000000000000 +1.8200000000000001 4.0000000000000000 +1.8300000000000001 4.0000000000000000 +1.8400000000000001 4.0000000000000000 +1.8500000000000001 4.0000000000000000 +1.8600000000000001 4.0000000000000000 +1.8700000000000001 4.0000000000000000 +1.8800000000000001 4.0000000000000000 +1.8900000000000001 4.0000000000000000 +1.9000000000000001 4.0000000000000000 +1.9100000000000001 4.0000000000000000 +1.9199999999999999 4.0000000000000000 +1.9299999999999999 4.0000000000000000 +1.9399999999999999 4.0000000000000000 +1.9500000000000000 4.0000000000000000 +1.9600000000000000 4.0000000000000000 +1.9700000000000000 4.0000000000000000 +1.9800000000000000 4.0000000000000000 +1.9900000000000000 4.0000000000000000 +2.0000000000000000 4.0000000000000000 +2.0100000000000002 4.0000000000000000 +2.0200000000000000 4.0000000000000000 +2.0300000000000002 4.0000000000000000 +2.0400000000000000 4.0000000000000000 +2.0499999999999998 4.0000000000000000 +2.0600000000000001 4.0000000000000000 +2.0699999999999998 4.0000000000000000 +2.0800000000000001 4.0000000000000000 +2.0899999999999999 4.0000000000000000 +2.1000000000000001 4.0000000000000000 +2.1099999999999999 4.0000000000000000 +2.1200000000000001 4.0000000000000000 +2.1299999999999999 4.0000000000000000 +2.1400000000000001 4.0000000000000000 +2.1499999999999999 4.0000000000000000 +2.1600000000000001 4.0000000000000000 +2.1699999999999999 4.0000000000000000 +2.1800000000000002 4.0000000000000000 +2.1899999999999999 4.0000000000000000 +2.2000000000000002 4.0000000000000000 +2.2100000000000000 4.0000000000000000 +2.2200000000000002 4.0000000000000000 +2.2300000000000000 4.0000000000000000 +2.2400000000000002 4.0000000000000000 +2.2500000000000000 4.0000000000000000 +2.2600000000000002 4.0000000000000000 +2.2700000000000000 4.0000000000000000 +2.2800000000000002 4.0000000000000000 +2.2900000000000000 4.0000000000000000 +2.3000000000000003 4.0000000000000000 +2.3100000000000001 4.0000000000000000 +2.3199999999999998 4.0000000000000000 +2.3300000000000001 4.0000000000000000 +2.3399999999999999 4.0000000000000000 +2.3500000000000001 4.0000000000000000 +2.3599999999999999 4.0000000000000000 +2.3700000000000001 4.0000000000000000 +2.3799999999999999 4.0000000000000000 +2.3900000000000001 4.0000000000000000 +2.3999999999999999 4.0000000000000000 +2.4100000000000001 4.0000000000000000 +2.4199999999999999 4.0000000000000000 +2.4300000000000002 4.0000000000000000 +2.4399999999999999 4.0000000000000000 +2.4500000000000002 4.0000000000000000 +2.4600000000000000 4.0000000000000000 +2.4700000000000002 4.0000000000000000 +2.4800000000000000 4.0000000000000000 +2.4900000000000002 4.0000000000000000 +2.5000000000000000 4.0000000000000000 +2.5100000000000002 4.0000000000000000 +2.5200000000000000 4.0000000000000000 +2.5300000000000002 4.0000000000000000 +2.5400000000000000 4.0000000000000000 +2.5500000000000003 4.0000000000000000 +2.5600000000000001 4.0000000000000000 +2.5699999999999998 4.0000000000000000 +2.5800000000000001 4.0000000000000000 +2.5899999999999999 4.0000000000000000 +2.6000000000000001 4.0000000000000000 +2.6099999999999999 4.0000000000000000 +2.6200000000000001 4.0000000000000000 +2.6299999999999999 4.0000000000000000 +2.6400000000000001 4.0000000000000000 +2.6499999999999999 4.0000000000000000 +2.6600000000000001 4.0000000000000000 +2.6699999999999999 4.0000000000000000 +2.6800000000000002 4.0000000000000000 +2.6899999999999999 4.0000000000000000 +2.7000000000000002 4.0000000000000000 +2.7100000000000000 4.0000000000000000 +2.7200000000000002 4.0000000000000000 +2.7300000000000000 4.0000000000000000 +2.7400000000000002 4.0000000000000000 +2.7500000000000000 4.0000000000000000 +2.7600000000000002 4.0000000000000000 +2.7700000000000000 4.0000000000000000 +2.7800000000000002 4.0000000000000000 +2.7900000000000000 4.0000000000000000 +2.8000000000000003 4.0000000000000000 +2.8100000000000001 4.0000000000000000 +2.8199999999999998 4.0000000000000000 +2.8300000000000001 4.0000000000000000 +2.8399999999999999 4.0000000000000000 +2.8500000000000001 4.0000000000000000 +2.8599999999999999 4.0000000000000000 +2.8700000000000001 4.0000000000000000 +2.8799999999999999 4.0000000000000000 +2.8900000000000001 4.0000000000000000 +2.8999999999999999 4.0000000000000000 +2.9100000000000001 4.0000000000000000 +2.9199999999999999 4.0000000000000000 +2.9300000000000002 4.0000000000000000 +2.9399999999999999 4.0000000000000000 +2.9500000000000002 4.0000000000000000 +2.9600000000000000 4.0000000000000000 +2.9700000000000002 4.0000000000000000 +2.9800000000000000 4.0000000000000000 +2.9900000000000002 4.0000000000000000 +3.0000000000000000 4.0000000000000000 +3.0100000000000002 4.0000000000000000 +3.0200000000000000 4.0000000000000000 +3.0300000000000002 4.0000000000000000 +3.0400000000000000 4.0000000000000000 +3.0500000000000003 4.0000000000000000 +3.0600000000000001 4.0000000000000000 +3.0700000000000003 4.0000000000000000 +3.0800000000000001 4.0000000000000000 +3.0899999999999999 4.0000000000000000 +3.1000000000000001 4.0000000000000000 +3.1099999999999999 4.0000000000000000 +3.1200000000000001 4.0000000000000000 +3.1299999999999999 4.0000000000000000 +3.1400000000000001 4.0000000000000000 +3.1499999999999999 4.0000000000000000 +3.1600000000000001 4.0000000000000000 +3.1699999999999999 4.0000000000000000 +3.1800000000000002 4.0000000000000000 +3.1899999999999999 4.0000000000000000 +3.2000000000000002 4.0000000000000000 +3.2100000000000000 4.0000000000000000 +3.2200000000000002 4.0000000000000000 +3.2300000000000000 4.0000000000000000 +3.2400000000000002 4.0000000000000000 +3.2500000000000000 4.0000000000000000 +3.2600000000000002 4.0000000000000000 +3.2700000000000000 4.0000000000000000 +3.2800000000000002 4.0000000000000000 +3.2900000000000000 4.0000000000000000 +3.3000000000000003 4.0000000000000000 +3.3100000000000001 4.0000000000000000 +3.3200000000000003 4.0000000000000000 +3.3300000000000001 4.0000000000000000 +3.3399999999999999 4.0000000000000000 +3.3500000000000001 4.0000000000000000 +3.3599999999999999 4.0000000000000000 +3.3700000000000001 4.0000000000000000 +3.3799999999999999 4.0000000000000000 +3.3900000000000001 4.0000000000000000 +3.3999999999999999 4.0000000000000000 +3.4100000000000001 4.0000000000000000 +3.4199999999999999 4.0000000000000000 +3.4300000000000002 4.0000000000000000 +3.4399999999999999 4.0000000000000000 +3.4500000000000002 4.0000000000000000 +3.4600000000000000 4.0000000000000000 +3.4700000000000002 4.0000000000000000 +3.4800000000000000 4.0000000000000000 +3.4900000000000002 4.0000000000000000 +3.5000000000000000 4.0000000000000000 +3.5100000000000002 4.0000000000000000 +3.5200000000000000 4.0000000000000000 +3.5300000000000002 4.0000000000000000 +3.5400000000000000 4.0000000000000000 +3.5500000000000003 4.0000000000000000 +3.5600000000000001 4.0000000000000000 +3.5700000000000003 4.0000000000000000 +3.5800000000000001 4.0000000000000000 +3.5899999999999999 4.0000000000000000 +3.6000000000000001 4.0000000000000000 +3.6099999999999999 4.0000000000000000 +3.6200000000000001 4.0000000000000000 +3.6299999999999999 4.0000000000000000 +3.6400000000000001 4.0000000000000000 +3.6499999999999999 4.0000000000000000 +3.6600000000000001 4.0000000000000000 +3.6699999999999999 4.0000000000000000 +3.6800000000000002 4.0000000000000000 +3.6899999999999999 4.0000000000000000 +3.7000000000000002 4.0000000000000000 +3.7100000000000000 4.0000000000000000 +3.7200000000000002 4.0000000000000000 +3.7300000000000000 4.0000000000000000 +3.7400000000000002 4.0000000000000000 +3.7500000000000000 4.0000000000000000 +3.7600000000000002 4.0000000000000000 +3.7700000000000000 4.0000000000000000 +3.7800000000000002 3.0000000000000000 +3.7900000000000000 3.0000000000000000 +3.8000000000000003 3.0000000000000000 +3.8100000000000001 3.0000000000000000 +3.8200000000000003 3.0000000000000000 +3.8300000000000001 3.0000000000000000 +3.8399999999999999 3.0000000000000000 +3.8500000000000001 3.0000000000000000 +3.8599999999999999 3.0000000000000000 +3.8700000000000001 3.0000000000000000 +3.8799999999999999 3.0000000000000000 +3.8900000000000001 3.0000000000000000 +3.8999999999999999 3.0000000000000000 +3.9100000000000001 3.0000000000000000 +3.9199999999999999 3.0000000000000000 +3.9300000000000002 3.0000000000000000 +3.9399999999999999 3.0000000000000000 +3.9500000000000002 3.0000000000000000 +3.9600000000000000 3.0000000000000000 +3.9700000000000002 3.0000000000000000 +3.9800000000000000 3.0000000000000000 +3.9900000000000002 3.0000000000000000 +4.0000000000000000 3.0000000000000000 +4.0099999999999998 3.0000000000000000 +4.0200000000000005 3.0000000000000000 +4.0300000000000002 3.0000000000000000 +4.0400000000000000 3.0000000000000000 +4.0499999999999998 3.0000000000000000 +4.0600000000000005 3.0000000000000000 +4.0700000000000003 3.0000000000000000 +4.0800000000000001 3.0000000000000000 +4.0899999999999999 3.0000000000000000 +4.0999999999999996 3.0000000000000000 +4.1100000000000003 3.0000000000000000 +4.1200000000000001 3.0000000000000000 +4.1299999999999999 3.0000000000000000 +4.1399999999999997 3.0000000000000000 +4.1500000000000004 3.0000000000000000 +4.1600000000000001 3.0000000000000000 +4.1699999999999999 3.0000000000000000 +4.1799999999999997 3.0000000000000000 +4.1900000000000004 3.0000000000000000 +4.2000000000000002 3.0000000000000000 +4.2100000000000000 3.0000000000000000 +4.2199999999999998 3.0000000000000000 +4.2300000000000004 3.0000000000000000 +4.2400000000000002 3.0000000000000000 +4.2500000000000000 3.0000000000000000 +4.2599999999999998 3.0000000000000000 +4.2700000000000005 3.0000000000000000 +4.2800000000000002 3.0000000000000000 +4.2900000000000000 3.0000000000000000 +4.2999999999999998 3.0000000000000000 +4.3100000000000005 3.0000000000000000 +4.3200000000000003 3.0000000000000000 +4.3300000000000001 3.0000000000000000 +4.3399999999999999 3.0000000000000000 +4.3500000000000005 3.0000000000000000 +4.3600000000000003 3.0000000000000000 +4.3700000000000001 3.0000000000000000 +4.3799999999999999 3.0000000000000000 +4.3899999999999997 3.0000000000000000 +4.4000000000000004 3.0000000000000000 +4.4100000000000001 3.0000000000000000 +4.4199999999999999 3.0000000000000000 +4.4299999999999997 3.0000000000000000 +4.4400000000000004 3.0000000000000000 +4.4500000000000002 3.0000000000000000 +4.4600000000000000 3.0000000000000000 +4.4699999999999998 3.0000000000000000 +4.4800000000000004 3.0000000000000000 +4.4900000000000002 3.0000000000000000 +4.5000000000000000 3.0000000000000000 +4.5099999999999998 3.0000000000000000 +4.5200000000000005 3.0000000000000000 +4.5300000000000002 3.0000000000000000 +4.5400000000000000 3.0000000000000000 +4.5499999999999998 3.0000000000000000 +4.5600000000000005 3.0000000000000000 +4.5700000000000003 3.0000000000000000 +4.5800000000000001 3.0000000000000000 +4.5899999999999999 3.0000000000000000 +4.6000000000000005 3.0000000000000000 +4.6100000000000003 3.0000000000000000 +4.6200000000000001 3.0000000000000000 +4.6299999999999999 3.0000000000000000 +4.6399999999999997 3.0000000000000000 +4.6500000000000004 3.0000000000000000 +4.6600000000000001 3.0000000000000000 +4.6699999999999999 3.0000000000000000 +4.6799999999999997 3.0000000000000000 +4.6900000000000004 3.0000000000000000 +4.7000000000000002 3.0000000000000000 +4.7100000000000000 3.0000000000000000 +4.7199999999999998 3.0000000000000000 +4.7300000000000004 3.0000000000000000 +4.7400000000000002 3.0000000000000000 +4.7500000000000000 3.0000000000000000 +4.7599999999999998 3.0000000000000000 +4.7700000000000005 3.0000000000000000 +4.7800000000000002 3.0000000000000000 +4.7900000000000000 3.0000000000000000 +4.7999999999999998 3.0000000000000000 +4.8100000000000005 3.0000000000000000 +4.8200000000000003 3.0000000000000000 +4.8300000000000001 3.0000000000000000 +4.8399999999999999 3.0000000000000000 +4.8500000000000005 3.0000000000000000 +4.8600000000000003 3.0000000000000000 +4.8700000000000001 3.0000000000000000 +4.8799999999999999 3.0000000000000000 +4.8899999999999997 3.0000000000000000 +4.9000000000000004 3.0000000000000000 +4.9100000000000001 3.0000000000000000 +4.9199999999999999 3.0000000000000000 +4.9299999999999997 3.0000000000000000 +4.9400000000000004 3.0000000000000000 +4.9500000000000002 3.0000000000000000 +4.9600000000000000 3.0000000000000000 +4.9699999999999998 3.0000000000000000 +4.9800000000000004 3.0000000000000000 +4.9900000000000002 3.0000000000000000 +5.0000000000000000 3.0000000000000000 +5.0099999999999998 3.0000000000000000 +5.0200000000000005 3.0000000000000000 +5.0300000000000002 3.0000000000000000 +5.0400000000000000 3.0000000000000000 +5.0499999999999998 3.0000000000000000 +5.0600000000000005 3.0000000000000000 +5.0700000000000003 3.0000000000000000 +5.0800000000000001 3.0000000000000000 +5.0899999999999999 3.0000000000000000 +5.1000000000000005 3.0000000000000000 +5.1100000000000003 3.0000000000000000 +5.1200000000000001 3.0000000000000000 +5.1299999999999999 3.0000000000000000 +5.1399999999999997 3.0000000000000000 +5.1500000000000004 3.0000000000000000 +5.1600000000000001 3.0000000000000000 +5.1699999999999999 3.0000000000000000 +5.1799999999999997 3.0000000000000000 +5.1900000000000004 3.0000000000000000 +5.2000000000000002 3.0000000000000000 +5.2100000000000000 3.0000000000000000 +5.2199999999999998 3.0000000000000000 +5.2300000000000004 3.0000000000000000 +5.2400000000000002 3.0000000000000000 +5.2500000000000000 3.0000000000000000 +5.2599999999999998 3.0000000000000000 +5.2700000000000005 3.0000000000000000 +5.2800000000000002 3.0000000000000000 +5.2900000000000000 3.0000000000000000 +5.2999999999999998 3.0000000000000000 +5.3100000000000005 3.0000000000000000 +5.3200000000000003 3.0000000000000000 +5.3300000000000001 3.0000000000000000 +5.3399999999999999 3.0000000000000000 +5.3500000000000005 3.0000000000000000 +5.3600000000000003 3.0000000000000000 +5.3700000000000001 3.0000000000000000 +5.3799999999999999 3.0000000000000000 +5.3899999999999997 3.0000000000000000 +5.4000000000000004 3.0000000000000000 +5.4100000000000001 3.0000000000000000 +5.4199999999999999 3.0000000000000000 +5.4299999999999997 3.0000000000000000 +5.4400000000000004 3.0000000000000000 +5.4500000000000002 3.0000000000000000 +5.4600000000000000 3.0000000000000000 +5.4699999999999998 3.0000000000000000 +5.4800000000000004 3.0000000000000000 +5.4900000000000002 3.0000000000000000 +5.5000000000000000 3.0000000000000000 +5.5099999999999998 3.0000000000000000 +5.5200000000000005 3.0000000000000000 +5.5300000000000002 3.0000000000000000 +5.5400000000000000 3.0000000000000000 +5.5499999999999998 3.0000000000000000 +5.5600000000000005 3.0000000000000000 +5.5700000000000003 3.0000000000000000 +5.5800000000000001 3.0000000000000000 +5.5899999999999999 3.0000000000000000 +5.6000000000000005 3.0000000000000000 +5.6100000000000003 3.0000000000000000 +5.6200000000000001 3.0000000000000000 +5.6299999999999999 3.0000000000000000 +5.6399999999999997 3.0000000000000000 +5.6500000000000004 3.0000000000000000 +5.6600000000000001 3.0000000000000000 +5.6699999999999999 3.0000000000000000 +5.6799999999999997 3.0000000000000000 +5.6900000000000004 3.0000000000000000 +5.7000000000000002 3.0000000000000000 +5.7100000000000000 3.0000000000000000 +5.7199999999999998 3.0000000000000000 +5.7300000000000004 3.0000000000000000 +5.7400000000000002 3.0000000000000000 +5.7500000000000000 3.0000000000000000 +5.7599999999999998 3.0000000000000000 +5.7700000000000005 3.0000000000000000 +5.7800000000000002 3.0000000000000000 +5.7900000000000000 3.0000000000000000 +5.7999999999999998 3.0000000000000000 +5.8100000000000005 3.0000000000000000 +5.8200000000000003 2.0000000000000000 +5.8300000000000001 2.0000000000000000 +5.8399999999999999 2.0000000000000000 +5.8500000000000005 2.0000000000000000 +5.8600000000000003 2.0000000000000000 +5.8700000000000001 2.0000000000000000 +5.8799999999999999 2.0000000000000000 +5.8899999999999997 2.0000000000000000 +5.9000000000000004 2.0000000000000000 +5.9100000000000001 2.0000000000000000 +5.9199999999999999 2.0000000000000000 +5.9299999999999997 2.0000000000000000 +5.9400000000000004 2.0000000000000000 +5.9500000000000002 2.0000000000000000 +5.9600000000000000 2.0000000000000000 +5.9699999999999998 2.0000000000000000 +5.9800000000000004 2.0000000000000000 +5.9900000000000002 2.0000000000000000 +6.0000000000000000 2.0000000000000000 +6.0099999999999998 2.0000000000000000 +6.0200000000000005 2.0000000000000000 +6.0300000000000002 2.0000000000000000 +6.0400000000000000 2.0000000000000000 +6.0499999999999998 2.0000000000000000 +6.0600000000000005 2.0000000000000000 +6.0700000000000003 2.0000000000000000 +6.0800000000000001 2.0000000000000000 +6.0899999999999999 2.0000000000000000 +6.1000000000000005 2.0000000000000000 +6.1100000000000003 2.0000000000000000 +6.1200000000000001 2.0000000000000000 +6.1299999999999999 2.0000000000000000 +6.1400000000000006 2.0000000000000000 +6.1500000000000004 2.0000000000000000 +6.1600000000000001 2.0000000000000000 +6.1699999999999999 2.0000000000000000 +6.1799999999999997 2.0000000000000000 +6.1900000000000004 2.0000000000000000 +6.2000000000000002 2.0000000000000000 +6.2100000000000000 2.0000000000000000 +6.2199999999999998 2.0000000000000000 +6.2300000000000004 2.0000000000000000 +6.2400000000000002 2.0000000000000000 +6.2500000000000000 2.0000000000000000 +6.2599999999999998 2.0000000000000000 +6.2700000000000005 2.0000000000000000 +6.2800000000000002 2.0000000000000000 +6.2900000000000000 2.0000000000000000 +6.2999999999999998 2.0000000000000000 +6.3100000000000005 2.0000000000000000 +6.3200000000000003 2.0000000000000000 +6.3300000000000001 2.0000000000000000 +6.3399999999999999 2.0000000000000000 +6.3500000000000005 2.0000000000000000 +6.3600000000000003 2.0000000000000000 +6.3700000000000001 2.0000000000000000 +6.3799999999999999 2.0000000000000000 +6.3900000000000006 2.0000000000000000 +6.4000000000000004 2.0000000000000000 +6.4100000000000001 2.0000000000000000 +6.4199999999999999 2.0000000000000000 +6.4299999999999997 2.0000000000000000 +6.4400000000000004 2.0000000000000000 +6.4500000000000002 2.0000000000000000 +6.4600000000000000 2.0000000000000000 +6.4699999999999998 2.0000000000000000 +6.4800000000000004 2.0000000000000000 +6.4900000000000002 2.0000000000000000 +6.5000000000000000 2.0000000000000000 +6.5099999999999998 2.0000000000000000 +6.5200000000000005 2.0000000000000000 +6.5300000000000002 2.0000000000000000 +6.5400000000000000 2.0000000000000000 +6.5499999999999998 2.0000000000000000 +6.5600000000000005 2.0000000000000000 +6.5700000000000003 2.0000000000000000 +6.5800000000000001 2.0000000000000000 +6.5899999999999999 2.0000000000000000 +6.6000000000000005 2.0000000000000000 +6.6100000000000003 2.0000000000000000 +6.6200000000000001 2.0000000000000000 +6.6299999999999999 2.0000000000000000 +6.6400000000000006 2.0000000000000000 +6.6500000000000004 2.0000000000000000 +6.6600000000000001 2.0000000000000000 +6.6699999999999999 2.0000000000000000 +6.6799999999999997 2.0000000000000000 +6.6900000000000004 2.0000000000000000 +6.7000000000000002 2.0000000000000000 +6.7100000000000000 2.0000000000000000 +6.7199999999999998 2.0000000000000000 +6.7300000000000004 2.0000000000000000 +6.7400000000000002 2.0000000000000000 +6.7500000000000000 2.0000000000000000 +6.7599999999999998 2.0000000000000000 +6.7700000000000005 2.0000000000000000 +6.7800000000000002 2.0000000000000000 +6.7900000000000000 2.0000000000000000 +6.7999999999999998 2.0000000000000000 +6.8100000000000005 2.0000000000000000 +6.8200000000000003 2.0000000000000000 +6.8300000000000001 2.0000000000000000 +6.8399999999999999 2.0000000000000000 +6.8500000000000005 2.0000000000000000 +6.8600000000000003 2.0000000000000000 +6.8700000000000001 2.0000000000000000 +6.8799999999999999 2.0000000000000000 +6.8900000000000006 2.0000000000000000 +6.9000000000000004 2.0000000000000000 +6.9100000000000001 2.0000000000000000 +6.9199999999999999 2.0000000000000000 +6.9299999999999997 2.0000000000000000 +6.9400000000000004 2.0000000000000000 +6.9500000000000002 2.0000000000000000 +6.9600000000000000 2.0000000000000000 +6.9699999999999998 2.0000000000000000 +6.9800000000000004 2.0000000000000000 +6.9900000000000002 2.0000000000000000 +7.0000000000000000 2.0000000000000000 +7.0099999999999998 2.0000000000000000 +7.0200000000000005 2.0000000000000000 +7.0300000000000002 2.0000000000000000 +7.0400000000000000 2.0000000000000000 +7.0499999999999998 2.0000000000000000 +7.0600000000000005 2.0000000000000000 +7.0700000000000003 2.0000000000000000 +7.0800000000000001 2.0000000000000000 +7.0899999999999999 2.0000000000000000 +7.1000000000000005 2.0000000000000000 +7.1100000000000003 2.0000000000000000 +7.1200000000000001 2.0000000000000000 +7.1299999999999999 2.0000000000000000 +7.1400000000000006 2.0000000000000000 +7.1500000000000004 2.0000000000000000 +7.1600000000000001 2.0000000000000000 +7.1699999999999999 2.0000000000000000 +7.1799999999999997 2.0000000000000000 +7.1900000000000004 2.0000000000000000 +7.2000000000000002 2.0000000000000000 +7.2100000000000000 2.0000000000000000 +7.2199999999999998 2.0000000000000000 +7.2300000000000004 2.0000000000000000 +7.2400000000000002 2.0000000000000000 +7.2500000000000000 2.0000000000000000 +7.2599999999999998 2.0000000000000000 +7.2700000000000005 2.0000000000000000 +7.2800000000000002 2.0000000000000000 +7.2900000000000000 2.0000000000000000 +7.2999999999999998 2.0000000000000000 +7.3100000000000005 2.0000000000000000 +7.3200000000000003 2.0000000000000000 +7.3300000000000001 2.0000000000000000 +7.3399999999999999 2.0000000000000000 +7.3500000000000005 2.0000000000000000 +7.3600000000000003 2.0000000000000000 +7.3700000000000001 2.0000000000000000 +7.3799999999999999 2.0000000000000000 +7.3900000000000006 2.0000000000000000 +7.4000000000000004 2.0000000000000000 +7.4100000000000001 2.0000000000000000 +7.4199999999999999 2.0000000000000000 +7.4299999999999997 2.0000000000000000 +7.4400000000000004 2.0000000000000000 +7.4500000000000002 2.0000000000000000 +7.4600000000000000 2.0000000000000000 +7.4699999999999998 2.0000000000000000 +7.4800000000000004 2.0000000000000000 +7.4900000000000002 2.0000000000000000 +7.5000000000000000 2.0000000000000000 +7.5099999999999998 2.0000000000000000 +7.5200000000000005 2.0000000000000000 +7.5300000000000002 2.0000000000000000 +7.5400000000000000 2.0000000000000000 +7.5499999999999998 2.0000000000000000 +7.5600000000000005 2.0000000000000000 +7.5700000000000003 2.0000000000000000 +7.5800000000000001 2.0000000000000000 +7.5899999999999999 2.0000000000000000 +7.6000000000000005 2.0000000000000000 +7.6100000000000003 2.0000000000000000 +7.6200000000000001 2.0000000000000000 +7.6299999999999999 2.0000000000000000 +7.6400000000000006 2.0000000000000000 +7.6500000000000004 2.0000000000000000 +7.6600000000000001 2.0000000000000000 +7.6699999999999999 2.0000000000000000 +7.6799999999999997 2.0000000000000000 +7.6900000000000004 2.0000000000000000 +7.7000000000000002 2.0000000000000000 +7.7100000000000000 2.0000000000000000 +7.7199999999999998 2.0000000000000000 +7.7300000000000004 2.0000000000000000 +7.7400000000000002 2.0000000000000000 +7.7500000000000000 2.0000000000000000 +7.7599999999999998 2.0000000000000000 +7.7700000000000005 2.0000000000000000 +7.7800000000000002 2.0000000000000000 +7.7900000000000000 2.0000000000000000 +7.7999999999999998 2.0000000000000000 +7.8100000000000005 2.0000000000000000 +7.8200000000000003 2.0000000000000000 +7.8300000000000001 2.0000000000000000 +7.8399999999999999 2.0000000000000000 +7.8500000000000005 2.0000000000000000 +7.8600000000000003 2.0000000000000000 +7.8700000000000001 2.0000000000000000 +7.8799999999999999 2.0000000000000000 +7.8900000000000006 2.0000000000000000 +7.9000000000000004 2.0000000000000000 +7.9100000000000001 2.0000000000000000 +7.9199999999999999 2.0000000000000000 +7.9300000000000006 2.0000000000000000 +7.9400000000000004 2.0000000000000000 +7.9500000000000002 2.0000000000000000 +7.9600000000000000 2.0000000000000000 +7.9699999999999998 2.0000000000000000 +7.9800000000000004 2.0000000000000000 +7.9900000000000002 2.0000000000000000 +8.0000000000000000 2.0000000000000000 +8.0099999999999998 2.0000000000000000 +8.0199999999999996 2.0000000000000000 +8.0299999999999994 2.0000000000000000 +8.0400000000000009 2.0000000000000000 +8.0500000000000007 2.0000000000000000 +8.0600000000000005 2.0000000000000000 +8.0700000000000003 2.0000000000000000 +8.0800000000000001 2.0000000000000000 +8.0899999999999999 2.0000000000000000 +8.0999999999999996 2.0000000000000000 +8.1099999999999994 2.0000000000000000 +8.1200000000000010 2.0000000000000000 +8.1300000000000008 2.0000000000000000 +8.1400000000000006 2.0000000000000000 +8.1500000000000004 2.0000000000000000 +8.1600000000000001 2.0000000000000000 +8.1699999999999999 2.0000000000000000 +8.1799999999999997 2.0000000000000000 +8.1899999999999995 2.0000000000000000 +8.1999999999999993 2.0000000000000000 +8.2100000000000009 2.0000000000000000 +8.2200000000000006 2.0000000000000000 +8.2300000000000004 2.0000000000000000 +8.2400000000000002 2.0000000000000000 +8.2500000000000000 2.0000000000000000 +8.2599999999999998 2.0000000000000000 +8.2699999999999996 2.0000000000000000 +8.2799999999999994 2.0000000000000000 +8.2900000000000009 2.0000000000000000 +8.3000000000000007 2.0000000000000000 +8.3100000000000005 2.0000000000000000 +8.3200000000000003 2.0000000000000000 +8.3300000000000001 2.0000000000000000 +8.3399999999999999 2.0000000000000000 +8.3499999999999996 2.0000000000000000 +8.3599999999999994 2.0000000000000000 +8.3700000000000010 2.0000000000000000 +8.3800000000000008 2.0000000000000000 +8.3900000000000006 2.0000000000000000 +8.4000000000000004 2.0000000000000000 +8.4100000000000001 2.0000000000000000 +8.4199999999999999 2.0000000000000000 +8.4299999999999997 2.0000000000000000 +8.4399999999999995 2.0000000000000000 +8.4499999999999993 2.0000000000000000 +8.4600000000000009 2.0000000000000000 +8.4700000000000006 2.0000000000000000 +8.4800000000000004 2.0000000000000000 +8.4900000000000002 2.0000000000000000 +8.5000000000000000 2.0000000000000000 +8.5099999999999998 2.0000000000000000 +8.5199999999999996 2.0000000000000000 +8.5299999999999994 2.0000000000000000 +8.5400000000000009 2.0000000000000000 +8.5500000000000007 2.0000000000000000 +8.5600000000000005 2.0000000000000000 +8.5700000000000003 2.0000000000000000 +8.5800000000000001 2.0000000000000000 +8.5899999999999999 2.0000000000000000 +8.5999999999999996 2.0000000000000000 +8.6099999999999994 2.0000000000000000 +8.6200000000000010 2.0000000000000000 +8.6300000000000008 2.0000000000000000 +8.6400000000000006 2.0000000000000000 +8.6500000000000004 2.0000000000000000 +8.6600000000000001 2.0000000000000000 +8.6699999999999999 2.0000000000000000 +8.6799999999999997 2.0000000000000000 +8.6899999999999995 2.0000000000000000 +8.7000000000000011 2.0000000000000000 +8.7100000000000009 2.0000000000000000 +8.7200000000000006 2.0000000000000000 +8.7300000000000004 2.0000000000000000 +8.7400000000000002 2.0000000000000000 +8.7500000000000000 2.0000000000000000 +8.7599999999999998 2.0000000000000000 +8.7699999999999996 2.0000000000000000 +8.7799999999999994 2.0000000000000000 +8.7900000000000009 2.0000000000000000 +8.8000000000000007 2.0000000000000000 +8.8100000000000005 2.0000000000000000 +8.8200000000000003 2.0000000000000000 +8.8300000000000001 2.0000000000000000 +8.8399999999999999 2.0000000000000000 +8.8499999999999996 2.0000000000000000 +8.8599999999999994 2.0000000000000000 +8.8700000000000010 2.0000000000000000 +8.8800000000000008 2.0000000000000000 +8.8900000000000006 2.0000000000000000 +8.9000000000000004 2.0000000000000000 +8.9100000000000001 2.0000000000000000 +8.9199999999999999 2.0000000000000000 +8.9299999999999997 2.0000000000000000 +8.9399999999999995 2.0000000000000000 +8.9500000000000011 2.0000000000000000 +8.9600000000000009 2.0000000000000000 +8.9700000000000006 2.0000000000000000 +8.9800000000000004 2.0000000000000000 +8.9900000000000002 2.0000000000000000 +9.0000000000000000 2.0000000000000000 +9.0099999999999998 2.0000000000000000 +9.0199999999999996 2.0000000000000000 +9.0299999999999994 2.0000000000000000 +9.0400000000000009 2.0000000000000000 +9.0500000000000007 2.0000000000000000 +9.0600000000000005 2.0000000000000000 +9.0700000000000003 2.0000000000000000 +9.0800000000000001 2.0000000000000000 +9.0899999999999999 2.0000000000000000 +9.0999999999999996 2.0000000000000000 +9.1099999999999994 2.0000000000000000 +9.1200000000000010 2.0000000000000000 +9.1300000000000008 2.0000000000000000 +9.1400000000000006 2.0000000000000000 +9.1500000000000004 2.0000000000000000 +9.1600000000000001 2.0000000000000000 +9.1699999999999999 2.0000000000000000 +9.1799999999999997 2.0000000000000000 +9.1899999999999995 2.0000000000000000 +9.2000000000000011 2.0000000000000000 +9.2100000000000009 2.0000000000000000 +9.2200000000000006 2.0000000000000000 +9.2300000000000004 2.0000000000000000 +9.2400000000000002 2.0000000000000000 +9.2500000000000000 2.0000000000000000 +9.2599999999999998 2.0000000000000000 +9.2699999999999996 2.0000000000000000 +9.2799999999999994 2.0000000000000000 +9.2900000000000009 2.0000000000000000 +9.3000000000000007 2.0000000000000000 +9.3100000000000005 2.0000000000000000 +9.3200000000000003 2.0000000000000000 +9.3300000000000001 2.0000000000000000 +9.3399999999999999 2.0000000000000000 +9.3499999999999996 2.0000000000000000 +9.3599999999999994 2.0000000000000000 +9.3700000000000010 2.0000000000000000 +9.3800000000000008 2.0000000000000000 +9.3900000000000006 2.0000000000000000 +9.4000000000000004 2.0000000000000000 +9.4100000000000001 2.0000000000000000 +9.4199999999999999 2.0000000000000000 +9.4299999999999997 2.0000000000000000 +9.4399999999999995 2.0000000000000000 +9.4500000000000011 2.0000000000000000 +9.4600000000000009 2.0000000000000000 +9.4700000000000006 2.0000000000000000 +9.4800000000000004 2.0000000000000000 +9.4900000000000002 2.0000000000000000 +9.5000000000000000 2.0000000000000000 +9.5099999999999998 2.0000000000000000 +9.5199999999999996 2.0000000000000000 +9.5299999999999994 2.0000000000000000 +9.5400000000000009 2.0000000000000000 +9.5500000000000007 2.0000000000000000 +9.5600000000000005 2.0000000000000000 +9.5700000000000003 2.0000000000000000 +9.5800000000000001 2.0000000000000000 +9.5899999999999999 2.0000000000000000 +9.5999999999999996 2.0000000000000000 +9.6099999999999994 2.0000000000000000 +9.6200000000000010 2.0000000000000000 +9.6300000000000008 2.0000000000000000 +9.6400000000000006 2.0000000000000000 +9.6500000000000004 2.0000000000000000 +9.6600000000000001 2.0000000000000000 +9.6699999999999999 2.0000000000000000 +9.6799999999999997 2.0000000000000000 +9.6899999999999995 2.0000000000000000 +9.7000000000000011 2.0000000000000000 +9.7100000000000009 2.0000000000000000 +9.7200000000000006 2.0000000000000000 +9.7300000000000004 2.0000000000000000 +9.7400000000000002 2.0000000000000000 +9.7500000000000000 2.0000000000000000 +9.7599999999999998 2.0000000000000000 +9.7699999999999996 2.0000000000000000 +9.7799999999999994 2.0000000000000000 +9.7900000000000009 2.0000000000000000 +9.8000000000000007 2.0000000000000000 +9.8100000000000005 2.0000000000000000 +9.8200000000000003 2.0000000000000000 +9.8300000000000001 2.0000000000000000 +9.8399999999999999 2.0000000000000000 +9.8499999999999996 2.0000000000000000 +9.8599999999999994 2.0000000000000000 +9.8700000000000010 2.0000000000000000 +9.8800000000000008 2.0000000000000000 +9.8900000000000006 2.0000000000000000 +9.9000000000000004 2.0000000000000000 +9.9100000000000001 2.0000000000000000 +9.9199999999999999 2.0000000000000000 +9.9299999999999997 2.0000000000000000 +9.9399999999999995 2.0000000000000000 +9.9500000000000011 2.0000000000000000 +9.9600000000000009 2.0000000000000000 +9.9700000000000006 2.0000000000000000 +9.9800000000000004 2.0000000000000000 +9.9900000000000002 2.0000000000000000 +10.0000000000000000 2.0000000000000000 +10.0099999999999998 2.0000000000000000 +10.0199999999999996 2.0000000000000000 +10.0299999999999994 2.0000000000000000 +10.0400000000000009 2.0000000000000000 +10.0500000000000007 2.0000000000000000 +10.0600000000000005 2.0000000000000000 +10.0700000000000003 2.0000000000000000 +10.0800000000000001 2.0000000000000000 +10.0899999999999999 2.0000000000000000 +10.0999999999999996 2.0000000000000000 +10.1099999999999994 2.0000000000000000 +10.1200000000000010 2.0000000000000000 +10.1300000000000008 2.0000000000000000 +10.1400000000000006 2.0000000000000000 +10.1500000000000004 2.0000000000000000 +10.1600000000000001 2.0000000000000000 +10.1699999999999999 2.0000000000000000 +10.1799999999999997 2.0000000000000000 +10.1899999999999995 2.0000000000000000 +10.2000000000000011 2.0000000000000000 +10.2100000000000009 2.0000000000000000 +10.2200000000000006 2.0000000000000000 +10.2300000000000004 2.0000000000000000 +10.2400000000000002 2.0000000000000000 +10.2500000000000000 2.0000000000000000 +10.2599999999999998 2.0000000000000000 +10.2699999999999996 2.0000000000000000 +10.2799999999999994 2.0000000000000000 +10.2900000000000009 2.0000000000000000 +10.3000000000000007 2.0000000000000000 +10.3100000000000005 2.0000000000000000 +10.3200000000000003 2.0000000000000000 +10.3300000000000001 2.0000000000000000 +10.3399999999999999 2.0000000000000000 +10.3499999999999996 2.0000000000000000 +10.3599999999999994 2.0000000000000000 +10.3700000000000010 2.0000000000000000 +10.3800000000000008 2.0000000000000000 +10.3900000000000006 2.0000000000000000 +10.4000000000000004 2.0000000000000000 +10.4100000000000001 2.0000000000000000 +10.4199999999999999 2.0000000000000000 +10.4299999999999997 2.0000000000000000 +10.4399999999999995 2.0000000000000000 +10.4500000000000011 2.0000000000000000 +10.4600000000000009 2.0000000000000000 +10.4700000000000006 2.0000000000000000 +10.4800000000000004 2.0000000000000000 +10.4900000000000002 2.0000000000000000 +10.5000000000000000 2.0000000000000000 +10.5099999999999998 2.0000000000000000 +10.5199999999999996 2.0000000000000000 +10.5299999999999994 2.0000000000000000 +10.5400000000000009 2.0000000000000000 +10.5500000000000007 2.0000000000000000 +10.5600000000000005 2.0000000000000000 +10.5700000000000003 2.0000000000000000 +10.5800000000000001 2.0000000000000000 +10.5899999999999999 2.0000000000000000 +10.5999999999999996 2.0000000000000000 +10.6099999999999994 2.0000000000000000 +10.6200000000000010 2.0000000000000000 +10.6300000000000008 2.0000000000000000 +10.6400000000000006 2.0000000000000000 +10.6500000000000004 2.0000000000000000 +10.6600000000000001 2.0000000000000000 +10.6699999999999999 2.0000000000000000 +10.6799999999999997 2.0000000000000000 +10.6899999999999995 2.0000000000000000 +10.7000000000000011 2.0000000000000000 +10.7100000000000009 2.0000000000000000 +10.7200000000000006 2.0000000000000000 +10.7300000000000004 2.0000000000000000 +10.7400000000000002 2.0000000000000000 +10.7500000000000000 2.0000000000000000 +10.7599999999999998 2.0000000000000000 +10.7699999999999996 2.0000000000000000 +10.7799999999999994 2.0000000000000000 +10.7900000000000009 2.0000000000000000 +10.8000000000000007 2.0000000000000000 +10.8100000000000005 2.0000000000000000 +10.8200000000000003 2.0000000000000000 +10.8300000000000001 2.0000000000000000 +10.8399999999999999 2.0000000000000000 +10.8499999999999996 2.0000000000000000 +10.8599999999999994 2.0000000000000000 +10.8700000000000010 2.0000000000000000 +10.8800000000000008 2.0000000000000000 +10.8900000000000006 2.0000000000000000 +10.9000000000000004 2.0000000000000000 +10.9100000000000001 2.0000000000000000 +10.9199999999999999 2.0000000000000000 +10.9299999999999997 2.0000000000000000 +10.9399999999999995 2.0000000000000000 +10.9500000000000011 2.0000000000000000 +10.9600000000000009 2.0000000000000000 +10.9700000000000006 2.0000000000000000 +10.9800000000000004 2.0000000000000000 +10.9900000000000002 2.0000000000000000 +11.0000000000000000 2.0000000000000000 +11.0099999999999998 2.0000000000000000 +11.0199999999999996 2.0000000000000000 +11.0299999999999994 2.0000000000000000 +11.0400000000000009 2.0000000000000000 +11.0500000000000007 2.0000000000000000 +11.0600000000000005 2.0000000000000000 +11.0700000000000003 2.0000000000000000 +11.0800000000000001 2.0000000000000000 +11.0899999999999999 2.0000000000000000 +11.0999999999999996 2.0000000000000000 +11.1099999999999994 2.0000000000000000 +11.1200000000000010 2.0000000000000000 +11.1300000000000008 2.0000000000000000 +11.1400000000000006 2.0000000000000000 +11.1500000000000004 2.0000000000000000 +11.1600000000000001 2.0000000000000000 +11.1699999999999999 2.0000000000000000 +11.1799999999999997 2.0000000000000000 +11.1899999999999995 2.0000000000000000 +11.2000000000000011 2.0000000000000000 +11.2100000000000009 2.0000000000000000 +11.2200000000000006 2.0000000000000000 +11.2300000000000004 2.0000000000000000 +11.2400000000000002 2.0000000000000000 +11.2500000000000000 2.0000000000000000 +11.2599999999999998 2.0000000000000000 +11.2699999999999996 2.0000000000000000 +11.2799999999999994 2.0000000000000000 +11.2900000000000009 2.0000000000000000 +11.3000000000000007 2.0000000000000000 +11.3100000000000005 2.0000000000000000 +11.3200000000000003 2.0000000000000000 +11.3300000000000001 2.0000000000000000 +11.3399999999999999 2.0000000000000000 +11.3499999999999996 2.0000000000000000 +11.3599999999999994 2.0000000000000000 +11.3700000000000010 2.0000000000000000 +11.3800000000000008 2.0000000000000000 +11.3900000000000006 2.0000000000000000 +11.4000000000000004 2.0000000000000000 +11.4100000000000001 2.0000000000000000 +11.4199999999999999 2.0000000000000000 +11.4299999999999997 2.0000000000000000 +11.4399999999999995 2.0000000000000000 +11.4500000000000011 2.0000000000000000 +11.4600000000000009 2.0000000000000000 +11.4700000000000006 2.0000000000000000 +11.4800000000000004 2.0000000000000000 +11.4900000000000002 2.0000000000000000 +11.5000000000000000 2.0000000000000000 +11.5099999999999998 2.0000000000000000 +11.5199999999999996 2.0000000000000000 +11.5299999999999994 2.0000000000000000 +11.5400000000000009 2.0000000000000000 +11.5500000000000007 2.0000000000000000 +11.5600000000000005 2.0000000000000000 +11.5700000000000003 2.0000000000000000 +11.5800000000000001 2.0000000000000000 +11.5899999999999999 2.0000000000000000 +11.5999999999999996 2.0000000000000000 +11.6099999999999994 2.0000000000000000 +11.6200000000000010 2.0000000000000000 +11.6300000000000008 2.0000000000000000 +11.6400000000000006 2.0000000000000000 +11.6500000000000004 2.0000000000000000 +11.6600000000000001 2.0000000000000000 +11.6699999999999999 2.0000000000000000 +11.6799999999999997 2.0000000000000000 +11.6899999999999995 2.0000000000000000 +11.7000000000000011 2.0000000000000000 +11.7100000000000009 2.0000000000000000 +11.7200000000000006 2.0000000000000000 +11.7300000000000004 2.0000000000000000 +11.7400000000000002 2.0000000000000000 +11.7500000000000000 2.0000000000000000 +11.7599999999999998 2.0000000000000000 +11.7699999999999996 2.0000000000000000 +11.7799999999999994 2.0000000000000000 +11.7900000000000009 2.0000000000000000 +11.8000000000000007 2.0000000000000000 +11.8100000000000005 2.0000000000000000 +11.8200000000000003 2.0000000000000000 +11.8300000000000001 2.0000000000000000 +11.8399999999999999 2.0000000000000000 +11.8499999999999996 2.0000000000000000 +11.8599999999999994 2.0000000000000000 +11.8700000000000010 2.0000000000000000 +11.8800000000000008 2.0000000000000000 +11.8900000000000006 2.0000000000000000 +11.9000000000000004 2.0000000000000000 +11.9100000000000001 2.0000000000000000 +11.9199999999999999 2.0000000000000000 +11.9299999999999997 2.0000000000000000 +11.9399999999999995 2.0000000000000000 +11.9500000000000011 2.0000000000000000 +11.9600000000000009 2.0000000000000000 +11.9700000000000006 2.0000000000000000 +11.9800000000000004 2.0000000000000000 +11.9900000000000002 2.0000000000000000 +12.0000000000000000 2.0000000000000000 +12.0099999999999998 2.0000000000000000 +12.0199999999999996 2.0000000000000000 +12.0300000000000011 2.0000000000000000 +12.0400000000000009 2.0000000000000000 +12.0500000000000007 2.0000000000000000 +12.0600000000000005 2.0000000000000000 +12.0700000000000003 2.0000000000000000 +12.0800000000000001 2.0000000000000000 +12.0899999999999999 2.0000000000000000 +12.0999999999999996 2.0000000000000000 +12.1099999999999994 2.0000000000000000 +12.1200000000000010 2.0000000000000000 +12.1300000000000008 2.0000000000000000 +12.1400000000000006 2.0000000000000000 +12.1500000000000004 2.0000000000000000 +12.1600000000000001 2.0000000000000000 +12.1699999999999999 2.0000000000000000 +12.1799999999999997 2.0000000000000000 +12.1899999999999995 2.0000000000000000 +12.2000000000000011 2.0000000000000000 +12.2100000000000009 2.0000000000000000 +12.2200000000000006 2.0000000000000000 +12.2300000000000004 2.0000000000000000 +12.2400000000000002 2.0000000000000000 +12.2500000000000000 2.0000000000000000 +12.2599999999999998 2.0000000000000000 +12.2699999999999996 2.0000000000000000 +12.2800000000000011 2.0000000000000000 +12.2900000000000009 2.0000000000000000 +12.3000000000000007 2.0000000000000000 +12.3100000000000005 2.0000000000000000 +12.3200000000000003 2.0000000000000000 +12.3300000000000001 2.0000000000000000 +12.3399999999999999 2.0000000000000000 +12.3499999999999996 2.0000000000000000 +12.3599999999999994 2.0000000000000000 +12.3700000000000010 2.0000000000000000 +12.3800000000000008 2.0000000000000000 +12.3900000000000006 2.0000000000000000 +12.4000000000000004 2.0000000000000000 +12.4100000000000001 2.0000000000000000 +12.4199999999999999 2.0000000000000000 +12.4299999999999997 2.0000000000000000 +12.4399999999999995 2.0000000000000000 +12.4500000000000011 2.0000000000000000 +12.4600000000000009 2.0000000000000000 +12.4700000000000006 2.0000000000000000 +12.4800000000000004 2.0000000000000000 +12.4900000000000002 2.0000000000000000 +12.5000000000000000 2.0000000000000000 +12.5099999999999998 2.0000000000000000 +12.5199999999999996 2.0000000000000000 +12.5300000000000011 2.0000000000000000 +12.5400000000000009 2.0000000000000000 +12.5500000000000007 2.0000000000000000 +12.5600000000000005 2.0000000000000000 +12.5700000000000003 2.0000000000000000 +12.5800000000000001 2.0000000000000000 +12.5899999999999999 2.0000000000000000 +12.5999999999999996 2.0000000000000000 +12.6099999999999994 2.0000000000000000 +12.6200000000000010 2.0000000000000000 +12.6300000000000008 2.0000000000000000 +12.6400000000000006 2.0000000000000000 +12.6500000000000004 2.0000000000000000 +12.6600000000000001 2.0000000000000000 +12.6699999999999999 2.0000000000000000 +12.6799999999999997 2.0000000000000000 +12.6899999999999995 2.0000000000000000 +12.7000000000000011 2.0000000000000000 +12.7100000000000009 2.0000000000000000 +12.7200000000000006 2.0000000000000000 +12.7300000000000004 2.0000000000000000 +12.7400000000000002 2.0000000000000000 +12.7500000000000000 2.0000000000000000 +12.7599999999999998 2.0000000000000000 +12.7699999999999996 2.0000000000000000 +12.7800000000000011 2.0000000000000000 +12.7900000000000009 2.0000000000000000 +12.8000000000000007 2.0000000000000000 +12.8100000000000005 2.0000000000000000 +12.8200000000000003 2.0000000000000000 +12.8300000000000001 2.0000000000000000 +12.8399999999999999 2.0000000000000000 +12.8499999999999996 2.0000000000000000 +12.8599999999999994 2.0000000000000000 +12.8700000000000010 2.0000000000000000 +12.8800000000000008 2.0000000000000000 +12.8900000000000006 2.0000000000000000 +12.9000000000000004 2.0000000000000000 +12.9100000000000001 2.0000000000000000 +12.9199999999999999 2.0000000000000000 +12.9299999999999997 2.0000000000000000 +12.9399999999999995 2.0000000000000000 +12.9500000000000011 2.0000000000000000 +12.9600000000000009 2.0000000000000000 +12.9700000000000006 2.0000000000000000 +12.9800000000000004 2.0000000000000000 +12.9900000000000002 2.0000000000000000 +13.0000000000000000 2.0000000000000000 +13.0099999999999998 2.0000000000000000 +13.0199999999999996 2.0000000000000000 +13.0300000000000011 2.0000000000000000 +13.0400000000000009 2.0000000000000000 +13.0500000000000007 2.0000000000000000 +13.0600000000000005 2.0000000000000000 +13.0700000000000003 2.0000000000000000 +13.0800000000000001 2.0000000000000000 +13.0899999999999999 2.0000000000000000 +13.0999999999999996 2.0000000000000000 +13.1099999999999994 2.0000000000000000 +13.1200000000000010 2.0000000000000000 +13.1300000000000008 2.0000000000000000 +13.1400000000000006 2.0000000000000000 +13.1500000000000004 2.0000000000000000 +13.1600000000000001 2.0000000000000000 +13.1699999999999999 2.0000000000000000 +13.1799999999999997 2.0000000000000000 +13.1899999999999995 2.0000000000000000 +13.2000000000000011 2.0000000000000000 +13.2100000000000009 2.0000000000000000 +13.2200000000000006 2.0000000000000000 +13.2300000000000004 2.0000000000000000 +13.2400000000000002 2.0000000000000000 +13.2500000000000000 2.0000000000000000 +13.2599999999999998 2.0000000000000000 +13.2699999999999996 2.0000000000000000 +13.2800000000000011 2.0000000000000000 +13.2900000000000009 2.0000000000000000 +13.3000000000000007 2.0000000000000000 +13.3100000000000005 2.0000000000000000 +13.3200000000000003 2.0000000000000000 +13.3300000000000001 2.0000000000000000 +13.3399999999999999 2.0000000000000000 +13.3499999999999996 2.0000000000000000 +13.3599999999999994 2.0000000000000000 +13.3700000000000010 2.0000000000000000 +13.3800000000000008 2.0000000000000000 +13.3900000000000006 2.0000000000000000 +13.4000000000000004 2.0000000000000000 +13.4100000000000001 2.0000000000000000 +13.4199999999999999 2.0000000000000000 +13.4299999999999997 2.0000000000000000 +13.4399999999999995 2.0000000000000000 +13.4500000000000011 2.0000000000000000 +13.4600000000000009 2.0000000000000000 +13.4700000000000006 2.0000000000000000 +13.4800000000000004 2.0000000000000000 +13.4900000000000002 2.0000000000000000 +13.5000000000000000 2.0000000000000000 +13.5099999999999998 2.0000000000000000 +13.5199999999999996 2.0000000000000000 +13.5300000000000011 2.0000000000000000 +13.5400000000000009 2.0000000000000000 +13.5500000000000007 2.0000000000000000 +13.5600000000000005 2.0000000000000000 +13.5700000000000003 2.0000000000000000 +13.5800000000000001 2.0000000000000000 +13.5899999999999999 2.0000000000000000 +13.5999999999999996 2.0000000000000000 +13.6099999999999994 2.0000000000000000 +13.6200000000000010 2.0000000000000000 +13.6300000000000008 2.0000000000000000 +13.6400000000000006 2.0000000000000000 +13.6500000000000004 2.0000000000000000 +13.6600000000000001 2.0000000000000000 +13.6699999999999999 2.0000000000000000 +13.6799999999999997 2.0000000000000000 +13.6899999999999995 2.0000000000000000 +13.7000000000000011 2.0000000000000000 +13.7100000000000009 2.0000000000000000 +13.7200000000000006 2.0000000000000000 +13.7300000000000004 2.0000000000000000 +13.7400000000000002 2.0000000000000000 +13.7500000000000000 2.0000000000000000 +13.7599999999999998 2.0000000000000000 +13.7699999999999996 2.0000000000000000 +13.7800000000000011 2.0000000000000000 +13.7900000000000009 2.0000000000000000 +13.8000000000000007 2.0000000000000000 +13.8100000000000005 2.0000000000000000 +13.8200000000000003 2.0000000000000000 +13.8300000000000001 2.0000000000000000 +13.8399999999999999 2.0000000000000000 +13.8499999999999996 2.0000000000000000 +13.8599999999999994 2.0000000000000000 +13.8700000000000010 2.0000000000000000 +13.8800000000000008 2.0000000000000000 +13.8900000000000006 2.0000000000000000 +13.9000000000000004 2.0000000000000000 +13.9100000000000001 2.0000000000000000 +13.9199999999999999 2.0000000000000000 +13.9299999999999997 2.0000000000000000 +13.9399999999999995 2.0000000000000000 +13.9500000000000011 2.0000000000000000 +13.9600000000000009 2.0000000000000000 +13.9700000000000006 2.0000000000000000 +13.9800000000000004 2.0000000000000000 +13.9900000000000002 2.0000000000000000 +14.0000000000000000 2.0000000000000000 +14.0099999999999998 2.0000000000000000 +14.0199999999999996 2.0000000000000000 +14.0300000000000011 2.0000000000000000 +14.0400000000000009 2.0000000000000000 +14.0500000000000007 2.0000000000000000 +14.0600000000000005 2.0000000000000000 +14.0700000000000003 2.0000000000000000 +14.0800000000000001 2.0000000000000000 +14.0899999999999999 2.0000000000000000 +14.0999999999999996 2.0000000000000000 +14.1099999999999994 2.0000000000000000 +14.1200000000000010 2.0000000000000000 +14.1300000000000008 2.0000000000000000 +14.1400000000000006 2.0000000000000000 +14.1500000000000004 2.0000000000000000 +14.1600000000000001 2.0000000000000000 +14.1699999999999999 2.0000000000000000 +14.1799999999999997 2.0000000000000000 +14.1899999999999995 2.0000000000000000 +14.2000000000000011 2.0000000000000000 +14.2100000000000009 2.0000000000000000 +14.2200000000000006 2.0000000000000000 +14.2300000000000004 2.0000000000000000 +14.2400000000000002 2.0000000000000000 +14.2500000000000000 2.0000000000000000 +14.2599999999999998 2.0000000000000000 +14.2699999999999996 2.0000000000000000 +14.2800000000000011 2.0000000000000000 +14.2900000000000009 2.0000000000000000 +14.3000000000000007 2.0000000000000000 +14.3100000000000005 2.0000000000000000 +14.3200000000000003 2.0000000000000000 +14.3300000000000001 2.0000000000000000 +14.3399999999999999 2.0000000000000000 +14.3499999999999996 2.0000000000000000 +14.3599999999999994 2.0000000000000000 +14.3700000000000010 2.0000000000000000 +14.3800000000000008 2.0000000000000000 +14.3900000000000006 2.0000000000000000 +14.4000000000000004 2.0000000000000000 +14.4100000000000001 2.0000000000000000 +14.4199999999999999 2.0000000000000000 +14.4299999999999997 2.0000000000000000 +14.4399999999999995 2.0000000000000000 +14.4500000000000011 2.0000000000000000 +14.4600000000000009 2.0000000000000000 +14.4700000000000006 2.0000000000000000 +14.4800000000000004 2.0000000000000000 +14.4900000000000002 2.0000000000000000 +14.5000000000000000 2.0000000000000000 +14.5099999999999998 2.0000000000000000 +14.5199999999999996 2.0000000000000000 +14.5300000000000011 2.0000000000000000 +14.5400000000000009 2.0000000000000000 +14.5500000000000007 2.0000000000000000 +14.5600000000000005 2.0000000000000000 +14.5700000000000003 2.0000000000000000 +14.5800000000000001 2.0000000000000000 +14.5899999999999999 2.0000000000000000 +14.5999999999999996 2.0000000000000000 +14.6099999999999994 2.0000000000000000 +14.6200000000000010 2.0000000000000000 +14.6300000000000008 2.0000000000000000 +14.6400000000000006 2.0000000000000000 +14.6500000000000004 2.0000000000000000 +14.6600000000000001 2.0000000000000000 +14.6699999999999999 2.0000000000000000 +14.6799999999999997 2.0000000000000000 +14.6899999999999995 2.0000000000000000 +14.7000000000000011 2.0000000000000000 +14.7100000000000009 2.0000000000000000 +14.7200000000000006 2.0000000000000000 +14.7300000000000004 2.0000000000000000 +14.7400000000000002 2.0000000000000000 +14.7500000000000000 2.0000000000000000 +14.7599999999999998 2.0000000000000000 +14.7699999999999996 2.0000000000000000 +14.7800000000000011 2.0000000000000000 +14.7900000000000009 2.0000000000000000 +14.8000000000000007 2.0000000000000000 +14.8100000000000005 2.0000000000000000 +14.8200000000000003 2.0000000000000000 +14.8300000000000001 2.0000000000000000 +14.8399999999999999 2.0000000000000000 +14.8499999999999996 2.0000000000000000 +14.8599999999999994 2.0000000000000000 +14.8700000000000010 2.0000000000000000 +14.8800000000000008 2.0000000000000000 +14.8900000000000006 2.0000000000000000 +14.9000000000000004 2.0000000000000000 +14.9100000000000001 2.0000000000000000 +14.9199999999999999 2.0000000000000000 +14.9299999999999997 2.0000000000000000 +14.9399999999999995 2.0000000000000000 +14.9500000000000011 2.0000000000000000 +14.9600000000000009 2.0000000000000000 +14.9700000000000006 2.0000000000000000 +14.9800000000000004 2.0000000000000000 +14.9900000000000002 2.0000000000000000 +15.0000000000000000 2.0000000000000000 +15.0099999999999998 2.0000000000000000 +15.0199999999999996 2.0000000000000000 +15.0300000000000011 2.0000000000000000 +15.0400000000000009 2.0000000000000000 +15.0500000000000007 2.0000000000000000 +15.0600000000000005 2.0000000000000000 +15.0700000000000003 2.0000000000000000 +15.0800000000000001 2.0000000000000000 +15.0899999999999999 2.0000000000000000 +15.0999999999999996 2.0000000000000000 +15.1099999999999994 2.0000000000000000 +15.1200000000000010 2.0000000000000000 +15.1300000000000008 2.0000000000000000 +15.1400000000000006 2.0000000000000000 +15.1500000000000004 2.0000000000000000 +15.1600000000000001 2.0000000000000000 +15.1699999999999999 2.0000000000000000 +15.1799999999999997 2.0000000000000000 +15.1899999999999995 2.0000000000000000 +15.2000000000000011 2.0000000000000000 +15.2100000000000009 2.0000000000000000 +15.2200000000000006 2.0000000000000000 +15.2300000000000004 2.0000000000000000 +15.2400000000000002 2.0000000000000000 +15.2500000000000000 2.0000000000000000 +15.2599999999999998 2.0000000000000000 +15.2699999999999996 2.0000000000000000 +15.2800000000000011 2.0000000000000000 +15.2900000000000009 2.0000000000000000 +15.3000000000000007 2.0000000000000000 +15.3100000000000005 2.0000000000000000 +15.3200000000000003 2.0000000000000000 +15.3300000000000001 2.0000000000000000 +15.3399999999999999 2.0000000000000000 +15.3499999999999996 2.0000000000000000 +15.3599999999999994 2.0000000000000000 +15.3700000000000010 2.0000000000000000 +15.3800000000000008 2.0000000000000000 +15.3900000000000006 2.0000000000000000 +15.4000000000000004 2.0000000000000000 +15.4100000000000001 2.0000000000000000 +15.4199999999999999 2.0000000000000000 +15.4299999999999997 2.0000000000000000 +15.4399999999999995 2.0000000000000000 +15.4500000000000011 2.0000000000000000 +15.4600000000000009 2.0000000000000000 +15.4700000000000006 2.0000000000000000 +15.4800000000000004 2.0000000000000000 +15.4900000000000002 2.0000000000000000 +15.5000000000000000 2.0000000000000000 +15.5099999999999998 2.0000000000000000 +15.5199999999999996 2.0000000000000000 +15.5300000000000011 2.0000000000000000 +15.5400000000000009 2.0000000000000000 +15.5500000000000007 2.0000000000000000 +15.5600000000000005 2.0000000000000000 +15.5700000000000003 2.0000000000000000 +15.5800000000000001 2.0000000000000000 +15.5899999999999999 2.0000000000000000 +15.5999999999999996 2.0000000000000000 +15.6100000000000012 2.0000000000000000 +15.6200000000000010 2.0000000000000000 +15.6300000000000008 2.0000000000000000 +15.6400000000000006 2.0000000000000000 +15.6500000000000004 2.0000000000000000 +15.6600000000000001 2.0000000000000000 +15.6699999999999999 2.0000000000000000 +15.6799999999999997 2.0000000000000000 +15.6899999999999995 2.0000000000000000 +15.7000000000000011 2.0000000000000000 +15.7100000000000009 2.0000000000000000 +15.7200000000000006 2.0000000000000000 +15.7300000000000004 2.0000000000000000 +15.7400000000000002 2.0000000000000000 +15.7500000000000000 2.0000000000000000 +15.7599999999999998 2.0000000000000000 +15.7699999999999996 2.0000000000000000 +15.7800000000000011 2.0000000000000000 +15.7900000000000009 2.0000000000000000 +15.8000000000000007 2.0000000000000000 +15.8100000000000005 2.0000000000000000 +15.8200000000000003 2.0000000000000000 +15.8300000000000001 2.0000000000000000 +15.8399999999999999 2.0000000000000000 +15.8499999999999996 2.0000000000000000 +15.8600000000000012 2.0000000000000000 +15.8700000000000010 2.0000000000000000 +15.8800000000000008 2.0000000000000000 +15.8900000000000006 2.0000000000000000 +15.9000000000000004 2.0000000000000000 +15.9100000000000001 2.0000000000000000 +15.9199999999999999 2.0000000000000000 +15.9299999999999997 2.0000000000000000 +15.9399999999999995 2.0000000000000000 +15.9500000000000011 2.0000000000000000 +15.9600000000000009 2.0000000000000000 +15.9700000000000006 2.0000000000000000 +15.9800000000000004 2.0000000000000000 +15.9900000000000002 2.0000000000000000 +16.0000000000000000 2.0000000000000000 +16.0100000000000016 2.0000000000000000 +16.0199999999999996 2.0000000000000000 +16.0300000000000011 2.0000000000000000 +16.0399999999999991 2.0000000000000000 +16.0500000000000007 2.0000000000000000 +16.0599999999999987 2.0000000000000000 +16.0700000000000003 2.0000000000000000 +16.0800000000000018 2.0000000000000000 +16.0899999999999999 2.0000000000000000 +16.1000000000000014 2.0000000000000000 +16.1099999999999994 2.0000000000000000 +16.1200000000000010 2.0000000000000000 +16.1299999999999990 2.0000000000000000 +16.1400000000000006 2.0000000000000000 +16.1499999999999986 2.0000000000000000 +16.1600000000000001 2.0000000000000000 +16.1700000000000017 2.0000000000000000 +16.1799999999999997 2.0000000000000000 +16.1900000000000013 2.0000000000000000 +16.1999999999999993 2.0000000000000000 +16.2100000000000009 2.0000000000000000 +16.2199999999999989 2.0000000000000000 +16.2300000000000004 2.0000000000000000 +16.2400000000000020 2.0000000000000000 +16.2500000000000000 2.0000000000000000 +16.2600000000000016 2.0000000000000000 +16.2699999999999996 2.0000000000000000 +16.2800000000000011 2.0000000000000000 +16.2899999999999991 2.0000000000000000 +16.3000000000000007 2.0000000000000000 +16.3099999999999987 2.0000000000000000 +16.3200000000000003 2.0000000000000000 +16.3300000000000018 2.0000000000000000 +16.3399999999999999 2.0000000000000000 +16.3500000000000014 2.0000000000000000 +16.3599999999999994 2.0000000000000000 +16.3700000000000010 2.0000000000000000 +16.3799999999999990 2.0000000000000000 +16.3900000000000006 2.0000000000000000 +16.3999999999999986 2.0000000000000000 +16.4100000000000001 2.0000000000000000 +16.4200000000000017 2.0000000000000000 +16.4299999999999997 2.0000000000000000 +16.4400000000000013 2.0000000000000000 +16.4499999999999993 2.0000000000000000 +16.4600000000000009 2.0000000000000000 +16.4699999999999989 2.0000000000000000 +16.4800000000000004 2.0000000000000000 +16.4900000000000020 2.0000000000000000 +16.5000000000000000 2.0000000000000000 +16.5100000000000016 2.0000000000000000 +16.5199999999999996 2.0000000000000000 +16.5300000000000011 2.0000000000000000 +16.5399999999999991 2.0000000000000000 +16.5500000000000007 2.0000000000000000 +16.5599999999999987 2.0000000000000000 +16.5700000000000003 2.0000000000000000 +16.5800000000000018 2.0000000000000000 +16.5899999999999999 2.0000000000000000 +16.6000000000000014 2.0000000000000000 +16.6099999999999994 2.0000000000000000 +16.6200000000000010 2.0000000000000000 +16.6299999999999990 2.0000000000000000 +16.6400000000000006 2.0000000000000000 +16.6499999999999986 2.0000000000000000 +16.6600000000000001 2.0000000000000000 +16.6700000000000017 2.0000000000000000 +16.6799999999999997 2.0000000000000000 +16.6900000000000013 2.0000000000000000 +16.6999999999999993 2.0000000000000000 +16.7100000000000009 2.0000000000000000 +16.7199999999999989 2.0000000000000000 +16.7300000000000004 2.0000000000000000 +16.7400000000000020 2.0000000000000000 +16.7500000000000000 2.0000000000000000 +16.7600000000000016 2.0000000000000000 +16.7699999999999996 2.0000000000000000 +16.7800000000000011 2.0000000000000000 +16.7899999999999991 2.0000000000000000 +16.8000000000000007 2.0000000000000000 +16.8099999999999987 2.0000000000000000 +16.8200000000000003 2.0000000000000000 +16.8300000000000018 2.0000000000000000 +16.8399999999999999 2.0000000000000000 +16.8500000000000014 2.0000000000000000 +16.8599999999999994 2.0000000000000000 +16.8700000000000010 2.0000000000000000 +16.8799999999999990 2.0000000000000000 +16.8900000000000006 2.0000000000000000 +16.8999999999999986 2.0000000000000000 +16.9100000000000001 2.0000000000000000 +16.9200000000000017 2.0000000000000000 +16.9299999999999997 2.0000000000000000 +16.9400000000000013 2.0000000000000000 +16.9499999999999993 2.0000000000000000 +16.9600000000000009 2.0000000000000000 +16.9699999999999989 2.0000000000000000 +16.9800000000000004 2.0000000000000000 +16.9900000000000020 2.0000000000000000 +17.0000000000000000 2.0000000000000000 +17.0100000000000016 2.0000000000000000 +17.0199999999999996 2.0000000000000000 +17.0300000000000011 2.0000000000000000 +17.0399999999999991 2.0000000000000000 +17.0500000000000007 2.0000000000000000 +17.0599999999999987 2.0000000000000000 +17.0700000000000003 2.0000000000000000 +17.0800000000000018 2.0000000000000000 +17.0899999999999999 2.0000000000000000 +17.1000000000000014 2.0000000000000000 +17.1099999999999994 2.0000000000000000 +17.1200000000000010 2.0000000000000000 +17.1299999999999990 2.0000000000000000 +17.1400000000000006 2.0000000000000000 +17.1500000000000021 2.0000000000000000 +17.1600000000000001 2.0000000000000000 +17.1700000000000017 2.0000000000000000 +17.1799999999999997 2.0000000000000000 +17.1900000000000013 2.0000000000000000 +17.1999999999999993 2.0000000000000000 +17.2100000000000009 2.0000000000000000 +17.2199999999999989 2.0000000000000000 +17.2300000000000004 2.0000000000000000 +17.2400000000000020 2.0000000000000000 +17.2500000000000000 2.0000000000000000 +17.2600000000000016 2.0000000000000000 +17.2699999999999996 2.0000000000000000 +17.2800000000000011 2.0000000000000000 +17.2899999999999991 2.0000000000000000 +17.3000000000000007 2.0000000000000000 +17.3099999999999987 2.0000000000000000 +17.3200000000000003 2.0000000000000000 +17.3300000000000018 2.0000000000000000 +17.3399999999999999 2.0000000000000000 +17.3500000000000014 2.0000000000000000 +17.3599999999999994 2.0000000000000000 +17.3700000000000010 2.0000000000000000 +17.3799999999999990 2.0000000000000000 +17.3900000000000006 2.0000000000000000 +17.4000000000000021 2.0000000000000000 +17.4100000000000001 2.0000000000000000 +17.4200000000000017 2.0000000000000000 +17.4299999999999997 2.0000000000000000 +17.4400000000000013 2.0000000000000000 +17.4499999999999993 2.0000000000000000 +17.4600000000000009 2.0000000000000000 +17.4699999999999989 2.0000000000000000 +17.4800000000000004 2.0000000000000000 +17.4900000000000020 2.0000000000000000 +17.5000000000000000 2.0000000000000000 +17.5100000000000016 2.0000000000000000 +17.5199999999999996 2.0000000000000000 +17.5300000000000011 2.0000000000000000 +17.5399999999999991 2.0000000000000000 +17.5500000000000007 2.0000000000000000 +17.5599999999999987 2.0000000000000000 +17.5700000000000003 2.0000000000000000 +17.5800000000000018 2.0000000000000000 +17.5899999999999999 2.0000000000000000 +17.6000000000000014 2.0000000000000000 +17.6099999999999994 2.0000000000000000 +17.6200000000000010 2.0000000000000000 +17.6299999999999990 2.0000000000000000 +17.6400000000000006 2.0000000000000000 +17.6500000000000021 2.0000000000000000 +17.6600000000000001 2.0000000000000000 +17.6700000000000017 2.0000000000000000 +17.6799999999999997 2.0000000000000000 +17.6900000000000013 2.0000000000000000 +17.6999999999999993 2.0000000000000000 +17.7100000000000009 2.0000000000000000 +17.7199999999999989 2.0000000000000000 +17.7300000000000004 2.0000000000000000 +17.7400000000000020 2.0000000000000000 +17.7500000000000000 2.0000000000000000 +17.7600000000000016 2.0000000000000000 +17.7699999999999996 2.0000000000000000 +17.7800000000000011 2.0000000000000000 +17.7899999999999991 2.0000000000000000 +17.8000000000000007 2.0000000000000000 +17.8099999999999987 2.0000000000000000 +17.8200000000000003 2.0000000000000000 +17.8300000000000018 2.0000000000000000 +17.8399999999999999 2.0000000000000000 +17.8500000000000014 2.0000000000000000 +17.8599999999999994 2.0000000000000000 +17.8700000000000010 2.0000000000000000 +17.8799999999999990 2.0000000000000000 +17.8900000000000006 2.0000000000000000 +17.9000000000000021 2.0000000000000000 +17.9100000000000001 2.0000000000000000 +17.9200000000000017 2.0000000000000000 +17.9299999999999997 2.0000000000000000 +17.9400000000000013 2.0000000000000000 +17.9499999999999993 2.0000000000000000 +17.9600000000000009 2.0000000000000000 +17.9699999999999989 2.0000000000000000 +17.9800000000000004 2.0000000000000000 +17.9900000000000020 2.0000000000000000 +18.0000000000000000 2.0000000000000000 +18.0100000000000016 2.0000000000000000 +18.0199999999999996 2.0000000000000000 +18.0300000000000011 2.0000000000000000 +18.0399999999999991 2.0000000000000000 +18.0500000000000007 2.0000000000000000 +18.0599999999999987 2.0000000000000000 +18.0700000000000003 2.0000000000000000 +18.0800000000000018 2.0000000000000000 +18.0899999999999999 2.0000000000000000 +18.1000000000000014 2.0000000000000000 +18.1099999999999994 2.0000000000000000 +18.1200000000000010 2.0000000000000000 +18.1299999999999990 2.0000000000000000 +18.1400000000000006 2.0000000000000000 +18.1500000000000021 2.0000000000000000 +18.1600000000000001 2.0000000000000000 +18.1700000000000017 2.0000000000000000 +18.1799999999999997 2.0000000000000000 +18.1900000000000013 2.0000000000000000 +18.1999999999999993 2.0000000000000000 +18.2100000000000009 2.0000000000000000 +18.2199999999999989 2.0000000000000000 +18.2300000000000004 2.0000000000000000 +18.2400000000000020 2.0000000000000000 +18.2500000000000000 2.0000000000000000 +18.2600000000000016 2.0000000000000000 +18.2699999999999996 2.0000000000000000 +18.2800000000000011 2.0000000000000000 +18.2899999999999991 2.0000000000000000 +18.3000000000000007 2.0000000000000000 +18.3099999999999987 2.0000000000000000 +18.3200000000000003 2.0000000000000000 +18.3300000000000018 2.0000000000000000 +18.3399999999999999 2.0000000000000000 +18.3500000000000014 2.0000000000000000 +18.3599999999999994 2.0000000000000000 +18.3700000000000010 2.0000000000000000 +18.3799999999999990 2.0000000000000000 +18.3900000000000006 2.0000000000000000 +18.4000000000000021 2.0000000000000000 +18.4100000000000001 2.0000000000000000 +18.4200000000000017 2.0000000000000000 +18.4299999999999997 2.0000000000000000 +18.4400000000000013 2.0000000000000000 +18.4499999999999993 2.0000000000000000 +18.4600000000000009 2.0000000000000000 +18.4699999999999989 2.0000000000000000 +18.4800000000000004 2.0000000000000000 +18.4900000000000020 2.0000000000000000 +18.5000000000000000 2.0000000000000000 +18.5100000000000016 2.0000000000000000 +18.5199999999999996 2.0000000000000000 +18.5300000000000011 2.0000000000000000 +18.5399999999999991 2.0000000000000000 +18.5500000000000007 2.0000000000000000 +18.5599999999999987 2.0000000000000000 +18.5700000000000003 2.0000000000000000 +18.5800000000000018 2.0000000000000000 +18.5899999999999999 2.0000000000000000 +18.6000000000000014 2.0000000000000000 +18.6099999999999994 2.0000000000000000 +18.6200000000000010 2.0000000000000000 +18.6299999999999990 2.0000000000000000 +18.6400000000000006 2.0000000000000000 +18.6500000000000021 2.0000000000000000 +18.6600000000000001 2.0000000000000000 +18.6700000000000017 2.0000000000000000 +18.6799999999999997 2.0000000000000000 +18.6900000000000013 2.0000000000000000 +18.6999999999999993 2.0000000000000000 +18.7100000000000009 2.0000000000000000 +18.7199999999999989 2.0000000000000000 +18.7300000000000004 2.0000000000000000 +18.7400000000000020 2.0000000000000000 +18.7500000000000000 2.0000000000000000 +18.7600000000000016 2.0000000000000000 +18.7699999999999996 2.0000000000000000 +18.7800000000000011 2.0000000000000000 +18.7899999999999991 2.0000000000000000 +18.8000000000000007 2.0000000000000000 +18.8099999999999987 2.0000000000000000 +18.8200000000000003 2.0000000000000000 +18.8300000000000018 2.0000000000000000 +18.8399999999999999 2.0000000000000000 +18.8500000000000014 2.0000000000000000 +18.8599999999999994 2.0000000000000000 +18.8700000000000010 2.0000000000000000 +18.8799999999999990 2.0000000000000000 +18.8900000000000006 2.0000000000000000 +18.9000000000000021 2.0000000000000000 +18.9100000000000001 2.0000000000000000 +18.9200000000000017 2.0000000000000000 +18.9299999999999997 2.0000000000000000 +18.9400000000000013 2.0000000000000000 +18.9499999999999993 2.0000000000000000 +18.9600000000000009 2.0000000000000000 +18.9699999999999989 2.0000000000000000 +18.9800000000000004 2.0000000000000000 +18.9900000000000020 2.0000000000000000 +19.0000000000000000 2.0000000000000000 +19.0100000000000016 2.0000000000000000 +19.0199999999999996 2.0000000000000000 +19.0300000000000011 2.0000000000000000 +19.0399999999999991 2.0000000000000000 +19.0500000000000007 2.0000000000000000 +19.0599999999999987 2.0000000000000000 +19.0700000000000003 2.0000000000000000 +19.0800000000000018 2.0000000000000000 +19.0899999999999999 2.0000000000000000 +19.1000000000000014 2.0000000000000000 +19.1099999999999994 2.0000000000000000 +19.1200000000000010 2.0000000000000000 +19.1299999999999990 2.0000000000000000 +19.1400000000000006 2.0000000000000000 +19.1500000000000021 2.0000000000000000 +19.1600000000000001 2.0000000000000000 +19.1700000000000017 2.0000000000000000 +19.1799999999999997 2.0000000000000000 +19.1900000000000013 2.0000000000000000 +19.1999999999999993 2.0000000000000000 +19.2100000000000009 2.0000000000000000 +19.2199999999999989 2.0000000000000000 +19.2300000000000004 2.0000000000000000 +19.2400000000000020 2.0000000000000000 +19.2500000000000000 2.0000000000000000 +19.2600000000000016 2.0000000000000000 +19.2699999999999996 2.0000000000000000 +19.2800000000000011 2.0000000000000000 +19.2899999999999991 2.0000000000000000 +19.3000000000000007 2.0000000000000000 +19.3099999999999987 2.0000000000000000 +19.3200000000000003 2.0000000000000000 +19.3300000000000018 2.0000000000000000 +19.3399999999999999 2.0000000000000000 +19.3500000000000014 2.0000000000000000 +19.3599999999999994 2.0000000000000000 +19.3700000000000010 2.0000000000000000 +19.3799999999999990 2.0000000000000000 +19.3900000000000006 2.0000000000000000 +19.4000000000000021 2.0000000000000000 +19.4100000000000001 2.0000000000000000 +19.4200000000000017 2.0000000000000000 +19.4299999999999997 2.0000000000000000 +19.4400000000000013 2.0000000000000000 +19.4499999999999993 2.0000000000000000 +19.4600000000000009 2.0000000000000000 +19.4699999999999989 2.0000000000000000 +19.4800000000000004 2.0000000000000000 +19.4900000000000020 2.0000000000000000 +19.5000000000000000 2.0000000000000000 +19.5100000000000016 2.0000000000000000 +19.5199999999999996 2.0000000000000000 +19.5300000000000011 2.0000000000000000 +19.5399999999999991 2.0000000000000000 +19.5500000000000007 2.0000000000000000 +19.5599999999999987 2.0000000000000000 +19.5700000000000003 2.0000000000000000 +19.5800000000000018 2.0000000000000000 +19.5899999999999999 2.0000000000000000 +19.6000000000000014 2.0000000000000000 +19.6099999999999994 2.0000000000000000 +19.6200000000000010 2.0000000000000000 +19.6299999999999990 2.0000000000000000 +19.6400000000000006 2.0000000000000000 +19.6500000000000021 2.0000000000000000 +19.6600000000000001 2.0000000000000000 +19.6700000000000017 2.0000000000000000 +19.6799999999999997 2.0000000000000000 +19.6900000000000013 2.0000000000000000 +19.6999999999999993 2.0000000000000000 +19.7100000000000009 2.0000000000000000 +19.7199999999999989 2.0000000000000000 +19.7300000000000004 2.0000000000000000 +19.7400000000000020 2.0000000000000000 +19.7500000000000000 2.0000000000000000 +19.7600000000000016 2.0000000000000000 +19.7699999999999996 2.0000000000000000 +19.7800000000000011 2.0000000000000000 +19.7899999999999991 2.0000000000000000 +19.8000000000000007 2.0000000000000000 +19.8099999999999987 2.0000000000000000 +19.8200000000000003 2.0000000000000000 +19.8300000000000018 2.0000000000000000 +19.8399999999999999 2.0000000000000000 +19.8500000000000014 2.0000000000000000 +19.8599999999999994 2.0000000000000000 +19.8700000000000010 2.0000000000000000 +19.8799999999999990 2.0000000000000000 +19.8900000000000006 2.0000000000000000 +19.9000000000000021 2.0000000000000000 +19.9100000000000001 2.0000000000000000 +19.9200000000000017 2.0000000000000000 +19.9299999999999997 2.0000000000000000 +19.9400000000000013 2.0000000000000000 +19.9499999999999993 2.0000000000000000 +19.9600000000000009 2.0000000000000000 +19.9699999999999989 2.0000000000000000 +19.9800000000000004 2.0000000000000000 +19.9900000000000020 2.0000000000000000 +20.0000000000000000 2.0000000000000000 +20.0100000000000016 2.0000000000000000 +20.0199999999999996 2.0000000000000000 +20.0300000000000011 2.0000000000000000 +20.0399999999999991 2.0000000000000000 +20.0500000000000007 2.0000000000000000 +20.0599999999999987 2.0000000000000000 +20.0700000000000003 2.0000000000000000 +20.0800000000000018 2.0000000000000000 +20.0899999999999999 2.0000000000000000 +20.1000000000000014 2.0000000000000000 +20.1099999999999994 2.0000000000000000 +20.1200000000000010 2.0000000000000000 +20.1299999999999990 2.0000000000000000 +20.1400000000000006 2.0000000000000000 +20.1500000000000021 2.0000000000000000 +20.1600000000000001 2.0000000000000000 +20.1700000000000017 2.0000000000000000 +20.1799999999999997 2.0000000000000000 +20.1900000000000013 2.0000000000000000 +20.1999999999999993 2.0000000000000000 +20.2100000000000009 2.0000000000000000 +20.2199999999999989 2.0000000000000000 +20.2300000000000004 2.0000000000000000 +20.2400000000000020 2.0000000000000000 +20.2500000000000000 2.0000000000000000 +20.2600000000000016 2.0000000000000000 +20.2699999999999996 2.0000000000000000 +20.2800000000000011 2.0000000000000000 +20.2899999999999991 2.0000000000000000 +20.3000000000000007 2.0000000000000000 +20.3099999999999987 2.0000000000000000 +20.3200000000000003 2.0000000000000000 +20.3300000000000018 2.0000000000000000 +20.3399999999999999 2.0000000000000000 +20.3500000000000014 2.0000000000000000 +20.3599999999999994 2.0000000000000000 +20.3700000000000010 2.0000000000000000 +20.3799999999999990 2.0000000000000000 +20.3900000000000006 2.0000000000000000 +20.4000000000000021 2.0000000000000000 +20.4100000000000001 2.0000000000000000 +20.4200000000000017 2.0000000000000000 +20.4299999999999997 2.0000000000000000 +20.4400000000000013 2.0000000000000000 +20.4499999999999993 2.0000000000000000 +20.4600000000000009 2.0000000000000000 +20.4699999999999989 2.0000000000000000 +20.4800000000000004 2.0000000000000000 +20.4900000000000020 2.0000000000000000 +20.5000000000000000 2.0000000000000000 +20.5100000000000016 2.0000000000000000 +20.5199999999999996 2.0000000000000000 +20.5300000000000011 2.0000000000000000 +20.5399999999999991 2.0000000000000000 +20.5500000000000007 2.0000000000000000 +20.5599999999999987 2.0000000000000000 +20.5700000000000003 2.0000000000000000 +20.5800000000000018 2.0000000000000000 +20.5899999999999999 2.0000000000000000 +20.6000000000000014 2.0000000000000000 +20.6099999999999994 2.0000000000000000 +20.6200000000000010 2.0000000000000000 +20.6299999999999990 2.0000000000000000 +20.6400000000000006 2.0000000000000000 +20.6500000000000021 2.0000000000000000 +20.6600000000000001 2.0000000000000000 +20.6700000000000017 2.0000000000000000 +20.6799999999999997 2.0000000000000000 +20.6900000000000013 2.0000000000000000 +20.6999999999999993 2.0000000000000000 +20.7100000000000009 2.0000000000000000 +20.7199999999999989 2.0000000000000000 +20.7300000000000004 2.0000000000000000 +20.7400000000000020 2.0000000000000000 +20.7500000000000000 2.0000000000000000 +20.7600000000000016 2.0000000000000000 +20.7699999999999996 2.0000000000000000 +20.7800000000000011 2.0000000000000000 +20.7899999999999991 2.0000000000000000 +20.8000000000000007 2.0000000000000000 +20.8099999999999987 2.0000000000000000 +20.8200000000000003 2.0000000000000000 +20.8300000000000018 2.0000000000000000 +20.8399999999999999 2.0000000000000000 +20.8500000000000014 2.0000000000000000 +20.8599999999999994 2.0000000000000000 +20.8700000000000010 2.0000000000000000 +20.8799999999999990 2.0000000000000000 +20.8900000000000006 2.0000000000000000 +20.9000000000000021 2.0000000000000000 +20.9100000000000001 2.0000000000000000 +20.9200000000000017 2.0000000000000000 +20.9299999999999997 2.0000000000000000 +20.9400000000000013 2.0000000000000000 +20.9499999999999993 2.0000000000000000 +20.9600000000000009 2.0000000000000000 +20.9699999999999989 2.0000000000000000 +20.9800000000000004 2.0000000000000000 +20.9900000000000020 2.0000000000000000 +21.0000000000000000 2.0000000000000000 +21.0100000000000016 2.0000000000000000 +21.0199999999999996 2.0000000000000000 +21.0300000000000011 2.0000000000000000 +21.0399999999999991 2.0000000000000000 +21.0500000000000007 2.0000000000000000 +21.0599999999999987 2.0000000000000000 +21.0700000000000003 2.0000000000000000 +21.0800000000000018 2.0000000000000000 +21.0899999999999999 2.0000000000000000 +21.1000000000000014 2.0000000000000000 +21.1099999999999994 2.0000000000000000 +21.1200000000000010 2.0000000000000000 +21.1299999999999990 2.0000000000000000 +21.1400000000000006 2.0000000000000000 +21.1500000000000021 2.0000000000000000 +21.1600000000000001 2.0000000000000000 +21.1700000000000017 2.0000000000000000 +21.1799999999999997 2.0000000000000000 +21.1900000000000013 2.0000000000000000 +21.1999999999999993 2.0000000000000000 +21.2100000000000009 2.0000000000000000 +21.2199999999999989 2.0000000000000000 +21.2300000000000004 2.0000000000000000 +21.2400000000000020 2.0000000000000000 +21.2500000000000000 2.0000000000000000 +21.2600000000000016 2.0000000000000000 +21.2699999999999996 2.0000000000000000 +21.2800000000000011 2.0000000000000000 +21.2899999999999991 2.0000000000000000 +21.3000000000000007 2.0000000000000000 +21.3099999999999987 2.0000000000000000 +21.3200000000000003 2.0000000000000000 +21.3300000000000018 2.0000000000000000 +21.3399999999999999 2.0000000000000000 +21.3500000000000014 2.0000000000000000 +21.3599999999999994 2.0000000000000000 +21.3700000000000010 2.0000000000000000 +21.3799999999999990 2.0000000000000000 +21.3900000000000006 2.0000000000000000 +21.4000000000000021 2.0000000000000000 +21.4100000000000001 2.0000000000000000 +21.4200000000000017 2.0000000000000000 +21.4299999999999997 2.0000000000000000 +21.4400000000000013 2.0000000000000000 +21.4499999999999993 2.0000000000000000 +21.4600000000000009 2.0000000000000000 +21.4699999999999989 2.0000000000000000 +21.4800000000000004 2.0000000000000000 +21.4900000000000020 2.0000000000000000 +21.5000000000000000 2.0000000000000000 +21.5100000000000016 2.0000000000000000 +21.5199999999999996 2.0000000000000000 +21.5300000000000011 2.0000000000000000 +21.5399999999999991 2.0000000000000000 +21.5500000000000007 2.0000000000000000 +21.5599999999999987 2.0000000000000000 +21.5700000000000003 2.0000000000000000 +21.5800000000000018 2.0000000000000000 +21.5899999999999999 2.0000000000000000 +21.6000000000000014 2.0000000000000000 +21.6099999999999994 2.0000000000000000 +21.6200000000000010 2.0000000000000000 +21.6299999999999990 2.0000000000000000 +21.6400000000000006 2.0000000000000000 +21.6500000000000021 2.0000000000000000 +21.6600000000000001 2.0000000000000000 +21.6700000000000017 2.0000000000000000 +21.6799999999999997 2.0000000000000000 +21.6900000000000013 2.0000000000000000 +21.6999999999999993 2.0000000000000000 +21.7100000000000009 2.0000000000000000 +21.7199999999999989 2.0000000000000000 +21.7300000000000004 2.0000000000000000 +21.7400000000000020 2.0000000000000000 +21.7500000000000000 2.0000000000000000 +21.7600000000000016 2.0000000000000000 +21.7699999999999996 2.0000000000000000 +21.7800000000000011 2.0000000000000000 +21.7899999999999991 2.0000000000000000 +21.8000000000000007 2.0000000000000000 +21.8099999999999987 2.0000000000000000 +21.8200000000000003 2.0000000000000000 +21.8300000000000018 2.0000000000000000 +21.8399999999999999 2.0000000000000000 +21.8500000000000014 2.0000000000000000 +21.8599999999999994 2.0000000000000000 +21.8700000000000010 2.0000000000000000 +21.8799999999999990 2.0000000000000000 +21.8900000000000006 2.0000000000000000 +21.9000000000000021 2.0000000000000000 +21.9100000000000001 2.0000000000000000 +21.9200000000000017 2.0000000000000000 +21.9299999999999997 2.0000000000000000 +21.9400000000000013 2.0000000000000000 +21.9499999999999993 2.0000000000000000 +21.9600000000000009 2.0000000000000000 +21.9699999999999989 2.0000000000000000 +21.9800000000000004 2.0000000000000000 +21.9900000000000020 2.0000000000000000 +22.0000000000000000 2.0000000000000000 +22.0100000000000016 2.0000000000000000 +22.0199999999999996 2.0000000000000000 +22.0300000000000011 2.0000000000000000 +22.0399999999999991 2.0000000000000000 +22.0500000000000007 2.0000000000000000 +22.0599999999999987 2.0000000000000000 +22.0700000000000003 2.0000000000000000 +22.0800000000000018 2.0000000000000000 +22.0899999999999999 2.0000000000000000 +22.1000000000000014 2.0000000000000000 +22.1099999999999994 2.0000000000000000 +22.1200000000000010 2.0000000000000000 +22.1299999999999990 2.0000000000000000 +22.1400000000000006 2.0000000000000000 +22.1500000000000021 2.0000000000000000 +22.1600000000000001 2.0000000000000000 +22.1700000000000017 2.0000000000000000 +22.1799999999999997 2.0000000000000000 +22.1900000000000013 2.0000000000000000 +22.1999999999999993 2.0000000000000000 +22.2100000000000009 2.0000000000000000 +22.2199999999999989 2.0000000000000000 +22.2300000000000004 2.0000000000000000 +22.2400000000000020 2.0000000000000000 +22.2500000000000000 2.0000000000000000 +22.2600000000000016 2.0000000000000000 +22.2699999999999996 2.0000000000000000 +22.2800000000000011 2.0000000000000000 +22.2899999999999991 2.0000000000000000 +22.3000000000000007 2.0000000000000000 +22.3099999999999987 2.0000000000000000 +22.3200000000000003 2.0000000000000000 +22.3300000000000018 2.0000000000000000 +22.3399999999999999 2.0000000000000000 +22.3500000000000014 2.0000000000000000 +22.3599999999999994 2.0000000000000000 +22.3700000000000010 2.0000000000000000 +22.3799999999999990 2.0000000000000000 +22.3900000000000006 2.0000000000000000 +22.4000000000000021 2.0000000000000000 +22.4100000000000001 2.0000000000000000 +22.4200000000000017 2.0000000000000000 +22.4299999999999997 2.0000000000000000 +22.4400000000000013 2.0000000000000000 +22.4499999999999993 2.0000000000000000 +22.4600000000000009 2.0000000000000000 +22.4699999999999989 2.0000000000000000 +22.4800000000000004 2.0000000000000000 +22.4900000000000020 2.0000000000000000 +22.5000000000000000 2.0000000000000000 +22.5100000000000016 2.0000000000000000 +22.5199999999999996 2.0000000000000000 +22.5300000000000011 2.0000000000000000 +22.5399999999999991 2.0000000000000000 +22.5500000000000007 2.0000000000000000 +22.5599999999999987 2.0000000000000000 +22.5700000000000003 2.0000000000000000 +22.5800000000000018 2.0000000000000000 +22.5899999999999999 2.0000000000000000 +22.6000000000000014 2.0000000000000000 +22.6099999999999994 2.0000000000000000 +22.6200000000000010 2.0000000000000000 +22.6299999999999990 2.0000000000000000 +22.6400000000000006 2.0000000000000000 +22.6500000000000021 2.0000000000000000 +22.6600000000000001 2.0000000000000000 +22.6700000000000017 2.0000000000000000 +22.6799999999999997 2.0000000000000000 +22.6900000000000013 2.0000000000000000 +22.6999999999999993 2.0000000000000000 +22.7100000000000009 2.0000000000000000 +22.7199999999999989 2.0000000000000000 +22.7300000000000004 2.0000000000000000 +22.7400000000000020 2.0000000000000000 +22.7500000000000000 2.0000000000000000 +22.7600000000000016 2.0000000000000000 +22.7699999999999996 2.0000000000000000 +22.7800000000000011 2.0000000000000000 +22.7899999999999991 2.0000000000000000 +22.8000000000000007 2.0000000000000000 +22.8099999999999987 2.0000000000000000 +22.8200000000000003 2.0000000000000000 +22.8300000000000018 2.0000000000000000 +22.8399999999999999 2.0000000000000000 +22.8500000000000014 2.0000000000000000 +22.8599999999999994 2.0000000000000000 +22.8700000000000010 2.0000000000000000 +22.8799999999999990 2.0000000000000000 +22.8900000000000006 2.0000000000000000 +22.9000000000000021 2.0000000000000000 +22.9100000000000001 2.0000000000000000 +22.9200000000000017 2.0000000000000000 +22.9299999999999997 2.0000000000000000 +22.9400000000000013 2.0000000000000000 +22.9499999999999993 2.0000000000000000 +22.9600000000000009 2.0000000000000000 +22.9699999999999989 2.0000000000000000 +22.9800000000000004 2.0000000000000000 +22.9900000000000020 2.0000000000000000 +23.0000000000000000 2.0000000000000000 +23.0100000000000016 2.0000000000000000 +23.0199999999999996 2.0000000000000000 +23.0300000000000011 2.0000000000000000 +23.0399999999999991 2.0000000000000000 +23.0500000000000007 2.0000000000000000 +23.0599999999999987 2.0000000000000000 +23.0700000000000003 2.0000000000000000 +23.0800000000000018 2.0000000000000000 +23.0899999999999999 2.0000000000000000 +23.1000000000000014 2.0000000000000000 +23.1099999999999994 2.0000000000000000 +23.1200000000000010 2.0000000000000000 +23.1299999999999990 2.0000000000000000 +23.1400000000000006 2.0000000000000000 +23.1500000000000021 2.0000000000000000 +23.1600000000000001 2.0000000000000000 +23.1700000000000017 2.0000000000000000 +23.1799999999999997 2.0000000000000000 +23.1900000000000013 2.0000000000000000 +23.1999999999999993 2.0000000000000000 +23.2100000000000009 2.0000000000000000 +23.2199999999999989 2.0000000000000000 +23.2300000000000004 2.0000000000000000 +23.2400000000000020 2.0000000000000000 +23.2500000000000000 2.0000000000000000 +23.2600000000000016 2.0000000000000000 +23.2699999999999996 2.0000000000000000 +23.2800000000000011 2.0000000000000000 +23.2899999999999991 2.0000000000000000 +23.3000000000000007 2.0000000000000000 +23.3099999999999987 2.0000000000000000 +23.3200000000000003 2.0000000000000000 +23.3300000000000018 2.0000000000000000 +23.3399999999999999 2.0000000000000000 +23.3500000000000014 2.0000000000000000 +23.3599999999999994 2.0000000000000000 +23.3700000000000010 2.0000000000000000 +23.3799999999999990 2.0000000000000000 +23.3900000000000006 2.0000000000000000 +23.4000000000000021 2.0000000000000000 +23.4100000000000001 2.0000000000000000 +23.4200000000000017 2.0000000000000000 +23.4299999999999997 2.0000000000000000 +23.4400000000000013 2.0000000000000000 +23.4499999999999993 2.0000000000000000 +23.4600000000000009 2.0000000000000000 +23.4699999999999989 2.0000000000000000 +23.4800000000000004 2.0000000000000000 +23.4900000000000020 2.0000000000000000 +23.5000000000000000 2.0000000000000000 +23.5100000000000016 2.0000000000000000 +23.5199999999999996 2.0000000000000000 +23.5300000000000011 2.0000000000000000 +23.5399999999999991 2.0000000000000000 +23.5500000000000007 2.0000000000000000 +23.5599999999999987 2.0000000000000000 +23.5700000000000003 2.0000000000000000 +23.5800000000000018 2.0000000000000000 +23.5899999999999999 2.0000000000000000 +23.6000000000000014 2.0000000000000000 +23.6099999999999994 2.0000000000000000 +23.6200000000000010 2.0000000000000000 +23.6299999999999990 2.0000000000000000 +23.6400000000000006 2.0000000000000000 +23.6500000000000021 2.0000000000000000 +23.6600000000000001 2.0000000000000000 +23.6700000000000017 2.0000000000000000 +23.6799999999999997 2.0000000000000000 +23.6900000000000013 2.0000000000000000 +23.6999999999999993 2.0000000000000000 +23.7100000000000009 2.0000000000000000 +23.7199999999999989 2.0000000000000000 +23.7300000000000004 2.0000000000000000 +23.7400000000000020 2.0000000000000000 +23.7500000000000000 2.0000000000000000 +23.7600000000000016 2.0000000000000000 +23.7699999999999996 2.0000000000000000 +23.7800000000000011 2.0000000000000000 +23.7899999999999991 2.0000000000000000 +23.8000000000000007 2.0000000000000000 +23.8099999999999987 2.0000000000000000 +23.8200000000000003 2.0000000000000000 +23.8300000000000018 2.0000000000000000 +23.8399999999999999 2.0000000000000000 +23.8500000000000014 2.0000000000000000 +23.8599999999999994 2.0000000000000000 +23.8700000000000010 2.0000000000000000 +23.8799999999999990 2.0000000000000000 +23.8900000000000006 2.0000000000000000 +23.9000000000000021 2.0000000000000000 +23.9100000000000001 2.0000000000000000 +23.9200000000000017 2.0000000000000000 +23.9299999999999997 2.0000000000000000 +23.9400000000000013 2.0000000000000000 +23.9499999999999993 2.0000000000000000 +23.9600000000000009 2.0000000000000000 +23.9699999999999989 2.0000000000000000 +23.9800000000000004 2.0000000000000000 +23.9900000000000020 2.0000000000000000 +24.0000000000000000 2.0000000000000000 +24.0100000000000016 2.0000000000000000 +24.0199999999999996 2.0000000000000000 +24.0300000000000011 2.0000000000000000 +24.0399999999999991 2.0000000000000000 +24.0500000000000007 2.0000000000000000 +24.0600000000000023 2.0000000000000000 +24.0700000000000003 2.0000000000000000 +24.0800000000000018 2.0000000000000000 +24.0899999999999999 2.0000000000000000 +24.1000000000000014 2.0000000000000000 +24.1099999999999994 2.0000000000000000 +24.1200000000000010 2.0000000000000000 +24.1299999999999990 2.0000000000000000 +24.1400000000000006 2.0000000000000000 +24.1500000000000021 2.0000000000000000 +24.1600000000000001 2.0000000000000000 +24.1700000000000017 2.0000000000000000 +24.1799999999999997 2.0000000000000000 +24.1900000000000013 2.0000000000000000 +24.1999999999999993 2.0000000000000000 +24.2100000000000009 2.0000000000000000 +24.2199999999999989 2.0000000000000000 +24.2300000000000004 2.0000000000000000 +24.2400000000000020 2.0000000000000000 +24.2500000000000000 2.0000000000000000 +24.2600000000000016 2.0000000000000000 +24.2699999999999996 2.0000000000000000 +24.2800000000000011 2.0000000000000000 +24.2899999999999991 2.0000000000000000 +24.3000000000000007 2.0000000000000000 +24.3100000000000023 2.0000000000000000 +24.3200000000000003 2.0000000000000000 +24.3300000000000018 2.0000000000000000 +24.3399999999999999 2.0000000000000000 +24.3500000000000014 2.0000000000000000 +24.3599999999999994 2.0000000000000000 +24.3700000000000010 2.0000000000000000 +24.3799999999999990 2.0000000000000000 +24.3900000000000006 2.0000000000000000 +24.4000000000000021 2.0000000000000000 +24.4100000000000001 2.0000000000000000 +24.4200000000000017 2.0000000000000000 +24.4299999999999997 2.0000000000000000 +24.4400000000000013 2.0000000000000000 +24.4499999999999993 2.0000000000000000 +24.4600000000000009 2.0000000000000000 +24.4699999999999989 2.0000000000000000 +24.4800000000000004 2.0000000000000000 +24.4900000000000020 2.0000000000000000 +24.5000000000000000 2.0000000000000000 +24.5100000000000016 2.0000000000000000 +24.5199999999999996 2.0000000000000000 +24.5300000000000011 2.0000000000000000 +24.5399999999999991 2.0000000000000000 +24.5500000000000007 2.0000000000000000 +24.5600000000000023 2.0000000000000000 +24.5700000000000003 2.0000000000000000 +24.5800000000000018 2.0000000000000000 +24.5899999999999999 2.0000000000000000 +24.6000000000000014 2.0000000000000000 +24.6099999999999994 2.0000000000000000 +24.6200000000000010 2.0000000000000000 +24.6299999999999990 2.0000000000000000 +24.6400000000000006 2.0000000000000000 +24.6500000000000021 2.0000000000000000 +24.6600000000000001 2.0000000000000000 +24.6700000000000017 2.0000000000000000 +24.6799999999999997 2.0000000000000000 +24.6900000000000013 2.0000000000000000 +24.6999999999999993 2.0000000000000000 +24.7100000000000009 2.0000000000000000 +24.7199999999999989 2.0000000000000000 +24.7300000000000004 2.0000000000000000 +24.7400000000000020 2.0000000000000000 +24.7500000000000000 2.0000000000000000 +24.7600000000000016 2.0000000000000000 +24.7699999999999996 2.0000000000000000 +24.7800000000000011 2.0000000000000000 +24.7899999999999991 2.0000000000000000 +24.8000000000000007 2.0000000000000000 +24.8100000000000023 2.0000000000000000 +24.8200000000000003 2.0000000000000000 +24.8300000000000018 2.0000000000000000 +24.8399999999999999 2.0000000000000000 +24.8500000000000014 2.0000000000000000 +24.8599999999999994 2.0000000000000000 +24.8700000000000010 2.0000000000000000 +24.8799999999999990 2.0000000000000000 +24.8900000000000006 2.0000000000000000 +24.9000000000000021 2.0000000000000000 +24.9100000000000001 2.0000000000000000 +24.9200000000000017 2.0000000000000000 +24.9299999999999997 2.0000000000000000 +24.9400000000000013 2.0000000000000000 +24.9499999999999993 2.0000000000000000 +24.9600000000000009 2.0000000000000000 +24.9699999999999989 2.0000000000000000 +24.9800000000000004 2.0000000000000000 +24.9900000000000020 2.0000000000000000 +25.0000000000000000 2.0000000000000000 +25.0100000000000016 2.0000000000000000 +25.0199999999999996 2.0000000000000000 +25.0300000000000011 2.0000000000000000 +25.0399999999999991 2.0000000000000000 +25.0500000000000007 2.0000000000000000 +25.0600000000000023 2.0000000000000000 +25.0700000000000003 2.0000000000000000 +25.0800000000000018 2.0000000000000000 +25.0899999999999999 2.0000000000000000 +25.1000000000000014 2.0000000000000000 +25.1099999999999994 2.0000000000000000 +25.1200000000000010 2.0000000000000000 +25.1299999999999990 2.0000000000000000 +25.1400000000000006 2.0000000000000000 +25.1500000000000021 2.0000000000000000 +25.1600000000000001 2.0000000000000000 +25.1700000000000017 2.0000000000000000 +25.1799999999999997 2.0000000000000000 +25.1900000000000013 2.0000000000000000 +25.1999999999999993 2.0000000000000000 +25.2100000000000009 2.0000000000000000 +25.2199999999999989 2.0000000000000000 +25.2300000000000004 2.0000000000000000 +25.2400000000000020 2.0000000000000000 +25.2500000000000000 2.0000000000000000 +25.2600000000000016 2.0000000000000000 +25.2699999999999996 2.0000000000000000 +25.2800000000000011 2.0000000000000000 +25.2899999999999991 2.0000000000000000 +25.3000000000000007 2.0000000000000000 +25.3100000000000023 2.0000000000000000 +25.3200000000000003 2.0000000000000000 +25.3300000000000018 2.0000000000000000 +25.3399999999999999 2.0000000000000000 +25.3500000000000014 2.0000000000000000 +25.3599999999999994 2.0000000000000000 +25.3700000000000010 2.0000000000000000 +25.3799999999999990 2.0000000000000000 +25.3900000000000006 2.0000000000000000 +25.4000000000000021 2.0000000000000000 +25.4100000000000001 2.0000000000000000 +25.4200000000000017 2.0000000000000000 +25.4299999999999997 2.0000000000000000 +25.4400000000000013 2.0000000000000000 +25.4499999999999993 2.0000000000000000 +25.4600000000000009 2.0000000000000000 +25.4699999999999989 2.0000000000000000 +25.4800000000000004 2.0000000000000000 +25.4900000000000020 2.0000000000000000 +25.5000000000000000 2.0000000000000000 +25.5100000000000016 2.0000000000000000 +25.5199999999999996 2.0000000000000000 +25.5300000000000011 2.0000000000000000 +25.5399999999999991 2.0000000000000000 +25.5500000000000007 2.0000000000000000 +25.5600000000000023 2.0000000000000000 +25.5700000000000003 2.0000000000000000 +25.5800000000000018 2.0000000000000000 +25.5899999999999999 2.0000000000000000 +25.6000000000000014 2.0000000000000000 +25.6099999999999994 2.0000000000000000 +25.6200000000000010 2.0000000000000000 +25.6299999999999990 2.0000000000000000 +25.6400000000000006 2.0000000000000000 +25.6500000000000021 2.0000000000000000 +25.6600000000000001 2.0000000000000000 +25.6700000000000017 2.0000000000000000 +25.6799999999999997 2.0000000000000000 +25.6900000000000013 2.0000000000000000 +25.6999999999999993 2.0000000000000000 +25.7100000000000009 2.0000000000000000 +25.7199999999999989 2.0000000000000000 +25.7300000000000004 2.0000000000000000 +25.7400000000000020 2.0000000000000000 +25.7500000000000000 2.0000000000000000 +25.7600000000000016 2.0000000000000000 +25.7699999999999996 2.0000000000000000 +25.7800000000000011 2.0000000000000000 +25.7899999999999991 2.0000000000000000 +25.8000000000000007 2.0000000000000000 +25.8100000000000023 2.0000000000000000 +25.8200000000000003 2.0000000000000000 +25.8300000000000018 2.0000000000000000 +25.8399999999999999 2.0000000000000000 +25.8500000000000014 2.0000000000000000 +25.8599999999999994 2.0000000000000000 +25.8700000000000010 2.0000000000000000 +25.8799999999999990 2.0000000000000000 +25.8900000000000006 2.0000000000000000 +25.9000000000000021 2.0000000000000000 +25.9100000000000001 2.0000000000000000 +25.9200000000000017 2.0000000000000000 +25.9299999999999997 2.0000000000000000 +25.9400000000000013 2.0000000000000000 +25.9499999999999993 2.0000000000000000 +25.9600000000000009 2.0000000000000000 +25.9699999999999989 2.0000000000000000 +25.9800000000000004 2.0000000000000000 +25.9900000000000020 2.0000000000000000 +26.0000000000000000 2.0000000000000000 +26.0100000000000016 2.0000000000000000 +26.0199999999999996 2.0000000000000000 +26.0300000000000011 2.0000000000000000 +26.0399999999999991 2.0000000000000000 +26.0500000000000007 2.0000000000000000 +26.0600000000000023 2.0000000000000000 +26.0700000000000003 2.0000000000000000 +26.0800000000000018 2.0000000000000000 +26.0899999999999999 2.0000000000000000 +26.1000000000000014 2.0000000000000000 +26.1099999999999994 2.0000000000000000 +26.1200000000000010 2.0000000000000000 +26.1299999999999990 2.0000000000000000 +26.1400000000000006 2.0000000000000000 +26.1500000000000021 2.0000000000000000 +26.1600000000000001 2.0000000000000000 +26.1700000000000017 2.0000000000000000 +26.1799999999999997 2.0000000000000000 +26.1900000000000013 2.0000000000000000 +26.1999999999999993 2.0000000000000000 +26.2100000000000009 2.0000000000000000 +26.2199999999999989 2.0000000000000000 +26.2300000000000004 2.0000000000000000 +26.2400000000000020 2.0000000000000000 +26.2500000000000000 2.0000000000000000 +26.2600000000000016 2.0000000000000000 +26.2699999999999996 2.0000000000000000 +26.2800000000000011 2.0000000000000000 +26.2899999999999991 2.0000000000000000 +26.3000000000000007 2.0000000000000000 +26.3100000000000023 2.0000000000000000 +26.3200000000000003 2.0000000000000000 +26.3300000000000018 2.0000000000000000 +26.3399999999999999 2.0000000000000000 +26.3500000000000014 2.0000000000000000 +26.3599999999999994 2.0000000000000000 +26.3700000000000010 2.0000000000000000 +26.3799999999999990 2.0000000000000000 +26.3900000000000006 2.0000000000000000 +26.4000000000000021 2.0000000000000000 +26.4100000000000001 2.0000000000000000 +26.4200000000000017 2.0000000000000000 +26.4299999999999997 2.0000000000000000 +26.4400000000000013 2.0000000000000000 +26.4499999999999993 2.0000000000000000 +26.4600000000000009 2.0000000000000000 +26.4699999999999989 2.0000000000000000 +26.4800000000000004 2.0000000000000000 +26.4900000000000020 2.0000000000000000 +26.5000000000000000 2.0000000000000000 +26.5100000000000016 2.0000000000000000 +26.5199999999999996 2.0000000000000000 +26.5300000000000011 2.0000000000000000 +26.5399999999999991 2.0000000000000000 +26.5500000000000007 2.0000000000000000 +26.5600000000000023 2.0000000000000000 +26.5700000000000003 2.0000000000000000 +26.5800000000000018 2.0000000000000000 +26.5899999999999999 2.0000000000000000 +26.6000000000000014 2.0000000000000000 +26.6099999999999994 2.0000000000000000 +26.6200000000000010 2.0000000000000000 +26.6299999999999990 2.0000000000000000 +26.6400000000000006 2.0000000000000000 +26.6500000000000021 2.0000000000000000 +26.6600000000000001 2.0000000000000000 +26.6700000000000017 2.0000000000000000 +26.6799999999999997 2.0000000000000000 +26.6900000000000013 2.0000000000000000 +26.6999999999999993 2.0000000000000000 +26.7100000000000009 2.0000000000000000 +26.7199999999999989 2.0000000000000000 +26.7300000000000004 2.0000000000000000 +26.7400000000000020 2.0000000000000000 +26.7500000000000000 2.0000000000000000 +26.7600000000000016 2.0000000000000000 +26.7699999999999996 2.0000000000000000 +26.7800000000000011 2.0000000000000000 +26.7899999999999991 2.0000000000000000 +26.8000000000000007 2.0000000000000000 +26.8100000000000023 2.0000000000000000 +26.8200000000000003 2.0000000000000000 +26.8300000000000018 2.0000000000000000 +26.8399999999999999 2.0000000000000000 +26.8500000000000014 2.0000000000000000 +26.8599999999999994 2.0000000000000000 +26.8700000000000010 2.0000000000000000 +26.8799999999999990 2.0000000000000000 +26.8900000000000006 2.0000000000000000 +26.9000000000000021 2.0000000000000000 +26.9100000000000001 2.0000000000000000 +26.9200000000000017 2.0000000000000000 +26.9299999999999997 2.0000000000000000 +26.9400000000000013 2.0000000000000000 +26.9499999999999993 2.0000000000000000 +26.9600000000000009 2.0000000000000000 +26.9699999999999989 2.0000000000000000 +26.9800000000000004 2.0000000000000000 +26.9900000000000020 2.0000000000000000 +27.0000000000000000 2.0000000000000000 +27.0100000000000016 2.0000000000000000 +27.0199999999999996 2.0000000000000000 +27.0300000000000011 2.0000000000000000 +27.0399999999999991 2.0000000000000000 +27.0500000000000007 2.0000000000000000 +27.0600000000000023 2.0000000000000000 +27.0700000000000003 2.0000000000000000 +27.0800000000000018 2.0000000000000000 +27.0899999999999999 2.0000000000000000 +27.1000000000000014 2.0000000000000000 +27.1099999999999994 2.0000000000000000 +27.1200000000000010 2.0000000000000000 +27.1299999999999990 2.0000000000000000 +27.1400000000000006 2.0000000000000000 +27.1500000000000021 2.0000000000000000 +27.1600000000000001 2.0000000000000000 +27.1700000000000017 2.0000000000000000 +27.1799999999999997 2.0000000000000000 +27.1900000000000013 2.0000000000000000 +27.1999999999999993 2.0000000000000000 +27.2100000000000009 2.0000000000000000 +27.2199999999999989 2.0000000000000000 +27.2300000000000004 2.0000000000000000 +27.2400000000000020 2.0000000000000000 +27.2500000000000000 2.0000000000000000 +27.2600000000000016 2.0000000000000000 +27.2699999999999996 2.0000000000000000 +27.2800000000000011 2.0000000000000000 +27.2899999999999991 2.0000000000000000 +27.3000000000000007 2.0000000000000000 +27.3100000000000023 2.0000000000000000 +27.3200000000000003 2.0000000000000000 +27.3300000000000018 2.0000000000000000 +27.3399999999999999 2.0000000000000000 +27.3500000000000014 2.0000000000000000 +27.3599999999999994 2.0000000000000000 +27.3700000000000010 2.0000000000000000 +27.3799999999999990 2.0000000000000000 +27.3900000000000006 2.0000000000000000 +27.4000000000000021 2.0000000000000000 +27.4100000000000001 2.0000000000000000 +27.4200000000000017 2.0000000000000000 +27.4299999999999997 2.0000000000000000 +27.4400000000000013 2.0000000000000000 +27.4499999999999993 2.0000000000000000 +27.4600000000000009 2.0000000000000000 +27.4699999999999989 2.0000000000000000 +27.4800000000000004 2.0000000000000000 +27.4900000000000020 2.0000000000000000 +27.5000000000000000 2.0000000000000000 +27.5100000000000016 2.0000000000000000 +27.5199999999999996 2.0000000000000000 +27.5300000000000011 2.0000000000000000 +27.5399999999999991 2.0000000000000000 +27.5500000000000007 2.0000000000000000 +27.5600000000000023 2.0000000000000000 +27.5700000000000003 2.0000000000000000 +27.5800000000000018 2.0000000000000000 +27.5899999999999999 2.0000000000000000 +27.6000000000000014 2.0000000000000000 +27.6099999999999994 2.0000000000000000 +27.6200000000000010 2.0000000000000000 +27.6299999999999990 2.0000000000000000 +27.6400000000000006 2.0000000000000000 +27.6500000000000021 2.0000000000000000 +27.6600000000000001 2.0000000000000000 +27.6700000000000017 2.0000000000000000 +27.6799999999999997 2.0000000000000000 +27.6900000000000013 2.0000000000000000 +27.6999999999999993 2.0000000000000000 +27.7100000000000009 2.0000000000000000 +27.7199999999999989 2.0000000000000000 +27.7300000000000004 2.0000000000000000 +27.7400000000000020 2.0000000000000000 +27.7500000000000000 2.0000000000000000 +27.7600000000000016 2.0000000000000000 +27.7699999999999996 2.0000000000000000 +27.7800000000000011 2.0000000000000000 +27.7899999999999991 2.0000000000000000 +27.8000000000000007 2.0000000000000000 +27.8100000000000023 2.0000000000000000 +27.8200000000000003 2.0000000000000000 +27.8300000000000018 2.0000000000000000 +27.8399999999999999 2.0000000000000000 +27.8500000000000014 2.0000000000000000 +27.8599999999999994 2.0000000000000000 +27.8700000000000010 2.0000000000000000 +27.8799999999999990 2.0000000000000000 +27.8900000000000006 2.0000000000000000 +27.9000000000000021 2.0000000000000000 +27.9100000000000001 2.0000000000000000 +27.9200000000000017 2.0000000000000000 +27.9299999999999997 2.0000000000000000 +27.9400000000000013 2.0000000000000000 +27.9499999999999993 2.0000000000000000 +27.9600000000000009 2.0000000000000000 +27.9699999999999989 2.0000000000000000 +27.9800000000000004 2.0000000000000000 +27.9900000000000020 2.0000000000000000 +28.0000000000000000 2.0000000000000000 +28.0100000000000016 2.0000000000000000 +28.0199999999999996 2.0000000000000000 +28.0300000000000011 2.0000000000000000 +28.0399999999999991 2.0000000000000000 +28.0500000000000007 2.0000000000000000 +28.0600000000000023 2.0000000000000000 +28.0700000000000003 2.0000000000000000 +28.0800000000000018 2.0000000000000000 +28.0899999999999999 2.0000000000000000 +28.1000000000000014 2.0000000000000000 +28.1099999999999994 2.0000000000000000 +28.1200000000000010 2.0000000000000000 +28.1299999999999990 2.0000000000000000 +28.1400000000000006 2.0000000000000000 +28.1500000000000021 2.0000000000000000 +28.1600000000000001 2.0000000000000000 +28.1700000000000017 2.0000000000000000 +28.1799999999999997 2.0000000000000000 +28.1900000000000013 2.0000000000000000 +28.1999999999999993 2.0000000000000000 +28.2100000000000009 2.0000000000000000 +28.2199999999999989 2.0000000000000000 +28.2300000000000004 2.0000000000000000 +28.2400000000000020 2.0000000000000000 +28.2500000000000000 2.0000000000000000 +28.2600000000000016 2.0000000000000000 +28.2699999999999996 2.0000000000000000 +28.2800000000000011 2.0000000000000000 +28.2899999999999991 2.0000000000000000 +28.3000000000000007 2.0000000000000000 +28.3100000000000023 2.0000000000000000 +28.3200000000000003 2.0000000000000000 +28.3300000000000018 2.0000000000000000 +28.3399999999999999 2.0000000000000000 +28.3500000000000014 2.0000000000000000 +28.3599999999999994 2.0000000000000000 +28.3700000000000010 2.0000000000000000 +28.3799999999999990 2.0000000000000000 +28.3900000000000006 2.0000000000000000 +28.4000000000000021 2.0000000000000000 +28.4100000000000001 2.0000000000000000 +28.4200000000000017 2.0000000000000000 +28.4299999999999997 2.0000000000000000 +28.4400000000000013 2.0000000000000000 +28.4499999999999993 2.0000000000000000 +28.4600000000000009 2.0000000000000000 +28.4699999999999989 2.0000000000000000 +28.4800000000000004 2.0000000000000000 +28.4900000000000020 2.0000000000000000 +28.5000000000000000 2.0000000000000000 +28.5100000000000016 2.0000000000000000 +28.5199999999999996 2.0000000000000000 +28.5300000000000011 2.0000000000000000 +28.5399999999999991 2.0000000000000000 +28.5500000000000007 2.0000000000000000 +28.5600000000000023 2.0000000000000000 +28.5700000000000003 2.0000000000000000 +28.5800000000000018 2.0000000000000000 +28.5899999999999999 2.0000000000000000 +28.6000000000000014 2.0000000000000000 +28.6099999999999994 2.0000000000000000 +28.6200000000000010 2.0000000000000000 +28.6299999999999990 2.0000000000000000 +28.6400000000000006 2.0000000000000000 +28.6500000000000021 2.0000000000000000 +28.6600000000000001 2.0000000000000000 +28.6700000000000017 2.0000000000000000 +28.6799999999999997 2.0000000000000000 +28.6900000000000013 2.0000000000000000 +28.6999999999999993 2.0000000000000000 +28.7100000000000009 2.0000000000000000 +28.7199999999999989 2.0000000000000000 +28.7300000000000004 2.0000000000000000 +28.7400000000000020 2.0000000000000000 +28.7500000000000000 2.0000000000000000 +28.7600000000000016 2.0000000000000000 +28.7699999999999996 2.0000000000000000 +28.7800000000000011 2.0000000000000000 +28.7899999999999991 2.0000000000000000 +28.8000000000000007 2.0000000000000000 +28.8100000000000023 2.0000000000000000 +28.8200000000000003 2.0000000000000000 +28.8300000000000018 2.0000000000000000 +28.8399999999999999 2.0000000000000000 +28.8500000000000014 2.0000000000000000 +28.8599999999999994 2.0000000000000000 +28.8700000000000010 2.0000000000000000 +28.8799999999999990 2.0000000000000000 +28.8900000000000006 2.0000000000000000 +28.9000000000000021 2.0000000000000000 +28.9100000000000001 2.0000000000000000 +28.9200000000000017 2.0000000000000000 +28.9299999999999997 2.0000000000000000 +28.9400000000000013 2.0000000000000000 +28.9499999999999993 2.0000000000000000 +28.9600000000000009 2.0000000000000000 +28.9699999999999989 2.0000000000000000 +28.9800000000000004 2.0000000000000000 +28.9900000000000020 2.0000000000000000 +29.0000000000000000 2.0000000000000000 +29.0100000000000016 2.0000000000000000 +29.0199999999999996 2.0000000000000000 +29.0300000000000011 2.0000000000000000 +29.0399999999999991 2.0000000000000000 +29.0500000000000007 2.0000000000000000 +29.0600000000000023 2.0000000000000000 +29.0700000000000003 2.0000000000000000 +29.0800000000000018 2.0000000000000000 +29.0899999999999999 2.0000000000000000 +29.1000000000000014 2.0000000000000000 +29.1099999999999994 2.0000000000000000 +29.1200000000000010 2.0000000000000000 +29.1299999999999990 2.0000000000000000 +29.1400000000000006 2.0000000000000000 +29.1500000000000021 2.0000000000000000 +29.1600000000000001 2.0000000000000000 +29.1700000000000017 2.0000000000000000 +29.1799999999999997 2.0000000000000000 +29.1900000000000013 2.0000000000000000 +29.1999999999999993 2.0000000000000000 +29.2100000000000009 2.0000000000000000 +29.2199999999999989 2.0000000000000000 +29.2300000000000004 2.0000000000000000 +29.2400000000000020 2.0000000000000000 +29.2500000000000000 2.0000000000000000 +29.2600000000000016 2.0000000000000000 +29.2699999999999996 2.0000000000000000 +29.2800000000000011 2.0000000000000000 +29.2899999999999991 2.0000000000000000 +29.3000000000000007 2.0000000000000000 +29.3100000000000023 2.0000000000000000 +29.3200000000000003 2.0000000000000000 +29.3300000000000018 2.0000000000000000 +29.3399999999999999 2.0000000000000000 +29.3500000000000014 2.0000000000000000 +29.3599999999999994 2.0000000000000000 +29.3700000000000010 2.0000000000000000 +29.3799999999999990 2.0000000000000000 +29.3900000000000006 2.0000000000000000 +29.4000000000000021 2.0000000000000000 +29.4100000000000001 2.0000000000000000 +29.4200000000000017 2.0000000000000000 +29.4299999999999997 2.0000000000000000 +29.4400000000000013 2.0000000000000000 +29.4499999999999993 2.0000000000000000 +29.4600000000000009 2.0000000000000000 +29.4699999999999989 2.0000000000000000 +29.4800000000000004 2.0000000000000000 +29.4900000000000020 2.0000000000000000 +29.5000000000000000 2.0000000000000000 +29.5100000000000016 2.0000000000000000 +29.5199999999999996 2.0000000000000000 +29.5300000000000011 2.0000000000000000 +29.5399999999999991 2.0000000000000000 +29.5500000000000007 2.0000000000000000 +29.5600000000000023 2.0000000000000000 +29.5700000000000003 2.0000000000000000 +29.5800000000000018 2.0000000000000000 +29.5899999999999999 2.0000000000000000 +29.6000000000000014 2.0000000000000000 +29.6099999999999994 2.0000000000000000 +29.6200000000000010 2.0000000000000000 +29.6299999999999990 2.0000000000000000 +29.6400000000000006 2.0000000000000000 +29.6500000000000021 2.0000000000000000 +29.6600000000000001 2.0000000000000000 +29.6700000000000017 2.0000000000000000 +29.6799999999999997 2.0000000000000000 +29.6900000000000013 2.0000000000000000 +29.6999999999999993 2.0000000000000000 +29.7100000000000009 2.0000000000000000 +29.7199999999999989 2.0000000000000000 +29.7300000000000004 2.0000000000000000 +29.7400000000000020 2.0000000000000000 +29.7500000000000000 2.0000000000000000 +29.7600000000000016 2.0000000000000000 +29.7699999999999996 2.0000000000000000 +29.7800000000000011 2.0000000000000000 +29.7899999999999991 2.0000000000000000 +29.8000000000000007 2.0000000000000000 +29.8100000000000023 2.0000000000000000 +29.8200000000000003 2.0000000000000000 +29.8300000000000018 2.0000000000000000 +29.8399999999999999 2.0000000000000000 +29.8500000000000014 2.0000000000000000 +29.8599999999999994 2.0000000000000000 +29.8700000000000010 2.0000000000000000 +29.8799999999999990 2.0000000000000000 +29.8900000000000006 2.0000000000000000 +29.9000000000000021 2.0000000000000000 +29.9100000000000001 2.0000000000000000 +29.9200000000000017 2.0000000000000000 +29.9299999999999997 2.0000000000000000 +29.9400000000000013 2.0000000000000000 +29.9499999999999993 2.0000000000000000 +29.9600000000000009 2.0000000000000000 +29.9699999999999989 2.0000000000000000 +29.9800000000000004 2.0000000000000000 +29.9900000000000020 2.0000000000000000 +30.0000000000000000 2.0000000000000000 +30.0100000000000016 2.0000000000000000 +30.0199999999999996 2.0000000000000000 +30.0300000000000011 2.0000000000000000 +30.0399999999999991 2.0000000000000000 +30.0500000000000007 2.0000000000000000 +30.0600000000000023 2.0000000000000000 +30.0700000000000003 2.0000000000000000 +30.0800000000000018 2.0000000000000000 +30.0899999999999999 2.0000000000000000 +30.1000000000000014 2.0000000000000000 +30.1099999999999994 2.0000000000000000 +30.1200000000000010 2.0000000000000000 +30.1299999999999990 2.0000000000000000 +30.1400000000000006 2.0000000000000000 +30.1500000000000021 2.0000000000000000 +30.1600000000000001 2.0000000000000000 +30.1700000000000017 2.0000000000000000 +30.1799999999999997 2.0000000000000000 +30.1900000000000013 2.0000000000000000 +30.1999999999999993 2.0000000000000000 +30.2100000000000009 2.0000000000000000 +30.2199999999999989 2.0000000000000000 +30.2300000000000004 2.0000000000000000 +30.2400000000000020 2.0000000000000000 +30.2500000000000000 2.0000000000000000 +30.2600000000000016 2.0000000000000000 +30.2699999999999996 2.0000000000000000 +30.2800000000000011 2.0000000000000000 +30.2899999999999991 2.0000000000000000 +30.3000000000000007 2.0000000000000000 +30.3100000000000023 2.0000000000000000 +30.3200000000000003 2.0000000000000000 +30.3300000000000018 2.0000000000000000 +30.3399999999999999 2.0000000000000000 +30.3500000000000014 2.0000000000000000 +30.3599999999999994 2.0000000000000000 +30.3700000000000010 2.0000000000000000 +30.3799999999999990 2.0000000000000000 +30.3900000000000006 2.0000000000000000 +30.4000000000000021 2.0000000000000000 +30.4100000000000001 2.0000000000000000 +30.4200000000000017 2.0000000000000000 +30.4299999999999997 2.0000000000000000 +30.4400000000000013 2.0000000000000000 +30.4499999999999993 2.0000000000000000 +30.4600000000000009 2.0000000000000000 +30.4699999999999989 2.0000000000000000 +30.4800000000000004 2.0000000000000000 +30.4900000000000020 2.0000000000000000 +30.5000000000000000 2.0000000000000000 +30.5100000000000016 2.0000000000000000 +30.5199999999999996 2.0000000000000000 +30.5300000000000011 2.0000000000000000 +30.5399999999999991 2.0000000000000000 +30.5500000000000007 2.0000000000000000 +30.5600000000000023 2.0000000000000000 +30.5700000000000003 2.0000000000000000 +30.5800000000000018 2.0000000000000000 +30.5899999999999999 2.0000000000000000 +30.6000000000000014 2.0000000000000000 +30.6099999999999994 2.0000000000000000 +30.6200000000000010 2.0000000000000000 +30.6299999999999990 2.0000000000000000 +30.6400000000000006 2.0000000000000000 +30.6500000000000021 2.0000000000000000 +30.6600000000000001 2.0000000000000000 +30.6700000000000017 2.0000000000000000 +30.6799999999999997 2.0000000000000000 +30.6900000000000013 2.0000000000000000 +30.6999999999999993 2.0000000000000000 +30.7100000000000009 2.0000000000000000 +30.7199999999999989 2.0000000000000000 +30.7300000000000004 2.0000000000000000 +30.7400000000000020 2.0000000000000000 +30.7500000000000000 2.0000000000000000 +30.7600000000000016 2.0000000000000000 +30.7699999999999996 2.0000000000000000 +30.7800000000000011 2.0000000000000000 +30.7899999999999991 2.0000000000000000 +30.8000000000000007 2.0000000000000000 +30.8100000000000023 2.0000000000000000 +30.8200000000000003 2.0000000000000000 +30.8300000000000018 2.0000000000000000 +30.8399999999999999 2.0000000000000000 +30.8500000000000014 2.0000000000000000 +30.8599999999999994 2.0000000000000000 +30.8700000000000010 2.0000000000000000 +30.8799999999999990 2.0000000000000000 +30.8900000000000006 2.0000000000000000 +30.9000000000000021 2.0000000000000000 +30.9100000000000001 2.0000000000000000 +30.9200000000000017 2.0000000000000000 +30.9299999999999997 2.0000000000000000 +30.9400000000000013 2.0000000000000000 +30.9499999999999993 2.0000000000000000 +30.9600000000000009 2.0000000000000000 +30.9700000000000024 2.0000000000000000 +30.9800000000000004 2.0000000000000000 +30.9900000000000020 2.0000000000000000 +31.0000000000000000 2.0000000000000000 +31.0100000000000016 2.0000000000000000 +31.0199999999999996 2.0000000000000000 +31.0300000000000011 2.0000000000000000 +31.0399999999999991 2.0000000000000000 +31.0500000000000007 2.0000000000000000 +31.0600000000000023 2.0000000000000000 +31.0700000000000003 2.0000000000000000 +31.0800000000000018 2.0000000000000000 +31.0899999999999999 2.0000000000000000 +31.1000000000000014 2.0000000000000000 +31.1099999999999994 2.0000000000000000 +31.1200000000000010 2.0000000000000000 +31.1299999999999990 2.0000000000000000 +31.1400000000000006 2.0000000000000000 +31.1500000000000021 2.0000000000000000 +31.1600000000000001 2.0000000000000000 +31.1700000000000017 2.0000000000000000 +31.1799999999999997 2.0000000000000000 +31.1900000000000013 2.0000000000000000 +31.1999999999999993 2.0000000000000000 +31.2100000000000009 2.0000000000000000 +31.2200000000000024 2.0000000000000000 +31.2300000000000004 2.0000000000000000 +31.2400000000000020 2.0000000000000000 +31.2500000000000000 2.0000000000000000 +31.2600000000000016 2.0000000000000000 +31.2699999999999996 2.0000000000000000 +31.2800000000000011 2.0000000000000000 +31.2899999999999991 2.0000000000000000 +31.3000000000000007 2.0000000000000000 +31.3100000000000023 2.0000000000000000 +31.3200000000000003 2.0000000000000000 +31.3300000000000018 2.0000000000000000 +31.3399999999999999 2.0000000000000000 +31.3500000000000014 2.0000000000000000 +31.3599999999999994 2.0000000000000000 +31.3700000000000010 2.0000000000000000 +31.3799999999999990 2.0000000000000000 +31.3900000000000006 2.0000000000000000 +31.4000000000000021 2.0000000000000000 +31.4100000000000001 2.0000000000000000 +31.4200000000000017 2.0000000000000000 +31.4299999999999997 2.0000000000000000 +31.4400000000000013 2.0000000000000000 +31.4499999999999993 2.0000000000000000 +31.4600000000000009 2.0000000000000000 +31.4700000000000024 2.0000000000000000 +31.4800000000000004 2.0000000000000000 +31.4900000000000020 2.0000000000000000 +31.5000000000000000 2.0000000000000000 +31.5100000000000016 2.0000000000000000 +31.5199999999999996 2.0000000000000000 +31.5300000000000011 2.0000000000000000 +31.5399999999999991 2.0000000000000000 +31.5500000000000007 2.0000000000000000 +31.5600000000000023 2.0000000000000000 +31.5700000000000003 2.0000000000000000 +31.5800000000000018 2.0000000000000000 +31.5899999999999999 2.0000000000000000 +31.6000000000000014 2.0000000000000000 +31.6099999999999994 2.0000000000000000 +31.6200000000000010 2.0000000000000000 +31.6299999999999990 2.0000000000000000 +31.6400000000000006 2.0000000000000000 +31.6500000000000021 2.0000000000000000 +31.6600000000000001 2.0000000000000000 +31.6700000000000017 2.0000000000000000 +31.6799999999999997 2.0000000000000000 +31.6900000000000013 2.0000000000000000 +31.6999999999999993 2.0000000000000000 +31.7100000000000009 2.0000000000000000 +31.7200000000000024 2.0000000000000000 +31.7300000000000004 2.0000000000000000 +31.7400000000000020 2.0000000000000000 +31.7500000000000000 2.0000000000000000 +31.7600000000000016 2.0000000000000000 +31.7699999999999996 2.0000000000000000 +31.7800000000000011 2.0000000000000000 +31.7899999999999991 2.0000000000000000 +31.8000000000000007 2.0000000000000000 +31.8100000000000023 2.0000000000000000 +31.8200000000000003 2.0000000000000000 +31.8300000000000018 2.0000000000000000 +31.8399999999999999 2.0000000000000000 +31.8500000000000014 2.0000000000000000 +31.8599999999999994 2.0000000000000000 +31.8700000000000010 2.0000000000000000 +31.8799999999999990 2.0000000000000000 +31.8900000000000006 2.0000000000000000 +31.9000000000000021 2.0000000000000000 +31.9100000000000001 2.0000000000000000 +31.9200000000000017 2.0000000000000000 +31.9299999999999997 2.0000000000000000 +31.9400000000000013 2.0000000000000000 +31.9499999999999993 2.0000000000000000 +31.9600000000000009 2.0000000000000000 +31.9700000000000024 2.0000000000000000 +31.9800000000000004 2.0000000000000000 +31.9900000000000020 2.0000000000000000 +32.0000000000000000 2.0000000000000000 +32.0099999999999980 2.0000000000000000 +32.0200000000000031 2.0000000000000000 +32.0300000000000011 2.0000000000000000 +32.0399999999999991 2.0000000000000000 +32.0499999999999972 2.0000000000000000 +32.0600000000000023 2.0000000000000000 +32.0700000000000003 2.0000000000000000 +32.0799999999999983 2.0000000000000000 +32.0900000000000034 2.0000000000000000 +32.1000000000000014 2.0000000000000000 +32.1099999999999994 2.0000000000000000 +32.1199999999999974 2.0000000000000000 +32.1300000000000026 2.0000000000000000 +32.1400000000000006 2.0000000000000000 +32.1499999999999986 2.0000000000000000 +32.1600000000000037 2.0000000000000000 +32.1700000000000017 2.0000000000000000 +32.1799999999999997 2.0000000000000000 +32.1899999999999977 2.0000000000000000 +32.2000000000000028 2.0000000000000000 +32.2100000000000009 2.0000000000000000 +32.2199999999999989 2.0000000000000000 +32.2300000000000040 2.0000000000000000 +32.2400000000000020 2.0000000000000000 +32.2500000000000000 2.0000000000000000 +32.2599999999999980 2.0000000000000000 +32.2700000000000031 2.0000000000000000 +32.2800000000000011 2.0000000000000000 +32.2899999999999991 2.0000000000000000 +32.2999999999999972 2.0000000000000000 +32.3100000000000023 2.0000000000000000 +32.3200000000000003 2.0000000000000000 +32.3299999999999983 2.0000000000000000 +32.3400000000000034 2.0000000000000000 +32.3500000000000014 2.0000000000000000 +32.3599999999999994 2.0000000000000000 +32.3699999999999974 2.0000000000000000 +32.3800000000000026 2.0000000000000000 +32.3900000000000006 2.0000000000000000 +32.3999999999999986 2.0000000000000000 +32.4100000000000037 2.0000000000000000 +32.4200000000000017 2.0000000000000000 +32.4299999999999997 2.0000000000000000 +32.4399999999999977 2.0000000000000000 +32.4500000000000028 2.0000000000000000 +32.4600000000000009 2.0000000000000000 +32.4699999999999989 2.0000000000000000 +32.4800000000000040 2.0000000000000000 +32.4900000000000020 2.0000000000000000 +32.5000000000000000 2.0000000000000000 +32.5099999999999980 2.0000000000000000 +32.5200000000000031 2.0000000000000000 +32.5300000000000011 2.0000000000000000 +32.5399999999999991 2.0000000000000000 +32.5499999999999972 2.0000000000000000 +32.5600000000000023 2.0000000000000000 +32.5700000000000003 2.0000000000000000 +32.5799999999999983 2.0000000000000000 +32.5900000000000034 2.0000000000000000 +32.6000000000000014 2.0000000000000000 +32.6099999999999994 2.0000000000000000 +32.6199999999999974 2.0000000000000000 +32.6300000000000026 2.0000000000000000 +32.6400000000000006 2.0000000000000000 +32.6499999999999986 2.0000000000000000 +32.6600000000000037 2.0000000000000000 +32.6700000000000017 2.0000000000000000 +32.6799999999999997 2.0000000000000000 +32.6899999999999977 2.0000000000000000 +32.7000000000000028 2.0000000000000000 +32.7100000000000009 2.0000000000000000 +32.7199999999999989 2.0000000000000000 +32.7300000000000040 2.0000000000000000 +32.7400000000000020 2.0000000000000000 +32.7500000000000000 2.0000000000000000 +32.7599999999999980 2.0000000000000000 +32.7700000000000031 2.0000000000000000 +32.7800000000000011 2.0000000000000000 +32.7899999999999991 2.0000000000000000 +32.7999999999999972 2.0000000000000000 +32.8100000000000023 2.0000000000000000 +32.8200000000000003 2.0000000000000000 +32.8299999999999983 2.0000000000000000 +32.8400000000000034 2.0000000000000000 +32.8500000000000014 2.0000000000000000 +32.8599999999999994 2.0000000000000000 +32.8699999999999974 2.0000000000000000 +32.8800000000000026 2.0000000000000000 +32.8900000000000006 2.0000000000000000 +32.8999999999999986 2.0000000000000000 +32.9100000000000037 2.0000000000000000 +32.9200000000000017 2.0000000000000000 +32.9299999999999997 2.0000000000000000 +32.9399999999999977 2.0000000000000000 +32.9500000000000028 2.0000000000000000 +32.9600000000000009 2.0000000000000000 +32.9699999999999989 2.0000000000000000 +32.9800000000000040 2.0000000000000000 +32.9900000000000020 2.0000000000000000 +33.0000000000000000 2.0000000000000000 +33.0099999999999980 2.0000000000000000 +33.0200000000000031 2.0000000000000000 +33.0300000000000011 2.0000000000000000 +33.0399999999999991 2.0000000000000000 +33.0499999999999972 2.0000000000000000 +33.0600000000000023 2.0000000000000000 +33.0700000000000003 2.0000000000000000 +33.0799999999999983 2.0000000000000000 +33.0900000000000034 2.0000000000000000 +33.1000000000000014 2.0000000000000000 +33.1099999999999994 2.0000000000000000 +33.1199999999999974 2.0000000000000000 +33.1300000000000026 2.0000000000000000 +33.1400000000000006 2.0000000000000000 +33.1499999999999986 2.0000000000000000 +33.1600000000000037 2.0000000000000000 +33.1700000000000017 2.0000000000000000 +33.1799999999999997 2.0000000000000000 +33.1899999999999977 2.0000000000000000 +33.2000000000000028 2.0000000000000000 +33.2100000000000009 2.0000000000000000 +33.2199999999999989 2.0000000000000000 +33.2300000000000040 2.0000000000000000 +33.2400000000000020 2.0000000000000000 +33.2500000000000000 2.0000000000000000 +33.2599999999999980 2.0000000000000000 +33.2700000000000031 2.0000000000000000 +33.2800000000000011 2.0000000000000000 +33.2899999999999991 2.0000000000000000 +33.2999999999999972 2.0000000000000000 +33.3100000000000023 2.0000000000000000 +33.3200000000000003 2.0000000000000000 +33.3299999999999983 2.0000000000000000 +33.3400000000000034 2.0000000000000000 +33.3500000000000014 2.0000000000000000 +33.3599999999999994 2.0000000000000000 +33.3699999999999974 2.0000000000000000 +33.3800000000000026 2.0000000000000000 +33.3900000000000006 2.0000000000000000 +33.3999999999999986 2.0000000000000000 +33.4100000000000037 2.0000000000000000 +33.4200000000000017 2.0000000000000000 +33.4299999999999997 2.0000000000000000 +33.4399999999999977 2.0000000000000000 +33.4500000000000028 2.0000000000000000 +33.4600000000000009 2.0000000000000000 +33.4699999999999989 2.0000000000000000 +33.4800000000000040 2.0000000000000000 +33.4900000000000020 2.0000000000000000 +33.5000000000000000 2.0000000000000000 +33.5099999999999980 2.0000000000000000 +33.5200000000000031 2.0000000000000000 +33.5300000000000011 2.0000000000000000 +33.5399999999999991 2.0000000000000000 +33.5499999999999972 2.0000000000000000 +33.5600000000000023 2.0000000000000000 +33.5700000000000003 2.0000000000000000 +33.5799999999999983 2.0000000000000000 +33.5900000000000034 2.0000000000000000 +33.6000000000000014 2.0000000000000000 +33.6099999999999994 2.0000000000000000 +33.6199999999999974 2.0000000000000000 +33.6300000000000026 2.0000000000000000 +33.6400000000000006 2.0000000000000000 +33.6499999999999986 2.0000000000000000 +33.6600000000000037 2.0000000000000000 +33.6700000000000017 2.0000000000000000 +33.6799999999999997 2.0000000000000000 +33.6899999999999977 2.0000000000000000 +33.7000000000000028 2.0000000000000000 +33.7100000000000009 2.0000000000000000 +33.7199999999999989 2.0000000000000000 +33.7300000000000040 2.0000000000000000 +33.7400000000000020 2.0000000000000000 +33.7500000000000000 2.0000000000000000 +33.7599999999999980 2.0000000000000000 +33.7700000000000031 2.0000000000000000 +33.7800000000000011 2.0000000000000000 +33.7899999999999991 2.0000000000000000 +33.7999999999999972 2.0000000000000000 +33.8100000000000023 2.0000000000000000 +33.8200000000000003 2.0000000000000000 +33.8299999999999983 2.0000000000000000 +33.8400000000000034 2.0000000000000000 +33.8500000000000014 2.0000000000000000 +33.8599999999999994 2.0000000000000000 +33.8699999999999974 2.0000000000000000 +33.8800000000000026 2.0000000000000000 +33.8900000000000006 2.0000000000000000 +33.8999999999999986 2.0000000000000000 +33.9100000000000037 2.0000000000000000 +33.9200000000000017 2.0000000000000000 +33.9299999999999997 2.0000000000000000 +33.9399999999999977 2.0000000000000000 +33.9500000000000028 2.0000000000000000 +33.9600000000000009 2.0000000000000000 +33.9699999999999989 2.0000000000000000 +33.9800000000000040 2.0000000000000000 +33.9900000000000020 2.0000000000000000 +34.0000000000000000 2.0000000000000000 +34.0099999999999980 2.0000000000000000 +34.0200000000000031 2.0000000000000000 +34.0300000000000011 2.0000000000000000 +34.0399999999999991 2.0000000000000000 +34.0499999999999972 2.0000000000000000 +34.0600000000000023 2.0000000000000000 +34.0700000000000003 2.0000000000000000 +34.0799999999999983 2.0000000000000000 +34.0900000000000034 2.0000000000000000 +34.1000000000000014 2.0000000000000000 +34.1099999999999994 2.0000000000000000 +34.1199999999999974 2.0000000000000000 +34.1300000000000026 2.0000000000000000 +34.1400000000000006 2.0000000000000000 +34.1499999999999986 2.0000000000000000 +34.1600000000000037 2.0000000000000000 +34.1700000000000017 2.0000000000000000 +34.1799999999999997 2.0000000000000000 +34.1899999999999977 2.0000000000000000 +34.2000000000000028 2.0000000000000000 +34.2100000000000009 2.0000000000000000 +34.2199999999999989 2.0000000000000000 +34.2300000000000040 2.0000000000000000 +34.2400000000000020 2.0000000000000000 +34.2500000000000000 2.0000000000000000 +34.2599999999999980 2.0000000000000000 +34.2700000000000031 2.0000000000000000 +34.2800000000000011 2.0000000000000000 +34.2899999999999991 2.0000000000000000 +34.3000000000000043 2.0000000000000000 +34.3100000000000023 2.0000000000000000 +34.3200000000000003 2.0000000000000000 +34.3299999999999983 2.0000000000000000 +34.3400000000000034 2.0000000000000000 +34.3500000000000014 2.0000000000000000 +34.3599999999999994 2.0000000000000000 +34.3699999999999974 2.0000000000000000 +34.3800000000000026 2.0000000000000000 +34.3900000000000006 2.0000000000000000 +34.3999999999999986 2.0000000000000000 +34.4100000000000037 2.0000000000000000 +34.4200000000000017 2.0000000000000000 +34.4299999999999997 2.0000000000000000 +34.4399999999999977 2.0000000000000000 +34.4500000000000028 2.0000000000000000 +34.4600000000000009 2.0000000000000000 +34.4699999999999989 2.0000000000000000 +34.4800000000000040 2.0000000000000000 +34.4900000000000020 2.0000000000000000 +34.5000000000000000 2.0000000000000000 +34.5099999999999980 2.0000000000000000 +34.5200000000000031 2.0000000000000000 +34.5300000000000011 2.0000000000000000 +34.5399999999999991 2.0000000000000000 +34.5500000000000043 2.0000000000000000 +34.5600000000000023 2.0000000000000000 +34.5700000000000003 2.0000000000000000 +34.5799999999999983 2.0000000000000000 +34.5900000000000034 2.0000000000000000 +34.6000000000000014 2.0000000000000000 +34.6099999999999994 2.0000000000000000 +34.6199999999999974 2.0000000000000000 +34.6300000000000026 2.0000000000000000 +34.6400000000000006 2.0000000000000000 +34.6499999999999986 2.0000000000000000 +34.6600000000000037 2.0000000000000000 +34.6700000000000017 2.0000000000000000 +34.6799999999999997 2.0000000000000000 +34.6899999999999977 2.0000000000000000 +34.7000000000000028 2.0000000000000000 +34.7100000000000009 2.0000000000000000 +34.7199999999999989 2.0000000000000000 +34.7300000000000040 2.0000000000000000 +34.7400000000000020 2.0000000000000000 +34.7500000000000000 2.0000000000000000 +34.7599999999999980 2.0000000000000000 +34.7700000000000031 2.0000000000000000 +34.7800000000000011 2.0000000000000000 +34.7899999999999991 2.0000000000000000 +34.8000000000000043 2.0000000000000000 +34.8100000000000023 2.0000000000000000 +34.8200000000000003 2.0000000000000000 +34.8299999999999983 2.0000000000000000 +34.8400000000000034 2.0000000000000000 +34.8500000000000014 2.0000000000000000 +34.8599999999999994 2.0000000000000000 +34.8699999999999974 2.0000000000000000 +34.8800000000000026 2.0000000000000000 +34.8900000000000006 2.0000000000000000 +34.8999999999999986 2.0000000000000000 +34.9100000000000037 2.0000000000000000 +34.9200000000000017 2.0000000000000000 +34.9299999999999997 2.0000000000000000 +34.9399999999999977 2.0000000000000000 +34.9500000000000028 2.0000000000000000 +34.9600000000000009 2.0000000000000000 +34.9699999999999989 2.0000000000000000 +34.9800000000000040 2.0000000000000000 +34.9900000000000020 2.0000000000000000 +35.0000000000000000 2.0000000000000000 +35.0099999999999980 2.0000000000000000 +35.0200000000000031 2.0000000000000000 +35.0300000000000011 2.0000000000000000 +35.0399999999999991 2.0000000000000000 +35.0500000000000043 2.0000000000000000 +35.0600000000000023 2.0000000000000000 +35.0700000000000003 2.0000000000000000 +35.0799999999999983 2.0000000000000000 +35.0900000000000034 2.0000000000000000 +35.1000000000000014 2.0000000000000000 +35.1099999999999994 2.0000000000000000 +35.1199999999999974 2.0000000000000000 +35.1300000000000026 2.0000000000000000 +35.1400000000000006 2.0000000000000000 +35.1499999999999986 2.0000000000000000 +35.1600000000000037 2.0000000000000000 +35.1700000000000017 2.0000000000000000 +35.1799999999999997 2.0000000000000000 +35.1899999999999977 2.0000000000000000 +35.2000000000000028 2.0000000000000000 +35.2100000000000009 2.0000000000000000 +35.2199999999999989 2.0000000000000000 +35.2300000000000040 2.0000000000000000 +35.2400000000000020 2.0000000000000000 +35.2500000000000000 2.0000000000000000 +35.2599999999999980 2.0000000000000000 +35.2700000000000031 2.0000000000000000 +35.2800000000000011 2.0000000000000000 +35.2899999999999991 2.0000000000000000 +35.3000000000000043 2.0000000000000000 +35.3100000000000023 2.0000000000000000 +35.3200000000000003 2.0000000000000000 +35.3299999999999983 2.0000000000000000 +35.3400000000000034 2.0000000000000000 +35.3500000000000014 2.0000000000000000 +35.3599999999999994 2.0000000000000000 +35.3699999999999974 2.0000000000000000 +35.3800000000000026 2.0000000000000000 +35.3900000000000006 2.0000000000000000 +35.3999999999999986 2.0000000000000000 +35.4100000000000037 2.0000000000000000 +35.4200000000000017 2.0000000000000000 +35.4299999999999997 2.0000000000000000 +35.4399999999999977 2.0000000000000000 +35.4500000000000028 2.0000000000000000 +35.4600000000000009 2.0000000000000000 +35.4699999999999989 2.0000000000000000 +35.4800000000000040 2.0000000000000000 +35.4900000000000020 2.0000000000000000 +35.5000000000000000 2.0000000000000000 +35.5099999999999980 2.0000000000000000 +35.5200000000000031 2.0000000000000000 +35.5300000000000011 2.0000000000000000 +35.5399999999999991 2.0000000000000000 +35.5500000000000043 2.0000000000000000 +35.5600000000000023 2.0000000000000000 +35.5700000000000003 2.0000000000000000 +35.5799999999999983 2.0000000000000000 +35.5900000000000034 2.0000000000000000 +35.6000000000000014 2.0000000000000000 +35.6099999999999994 2.0000000000000000 +35.6199999999999974 2.0000000000000000 +35.6300000000000026 2.0000000000000000 +35.6400000000000006 2.0000000000000000 +35.6499999999999986 2.0000000000000000 +35.6600000000000037 2.0000000000000000 +35.6700000000000017 2.0000000000000000 +35.6799999999999997 2.0000000000000000 +35.6899999999999977 2.0000000000000000 +35.7000000000000028 2.0000000000000000 +35.7100000000000009 2.0000000000000000 +35.7199999999999989 2.0000000000000000 +35.7300000000000040 2.0000000000000000 +35.7400000000000020 2.0000000000000000 +35.7500000000000000 2.0000000000000000 +35.7599999999999980 2.0000000000000000 +35.7700000000000031 2.0000000000000000 +35.7800000000000011 2.0000000000000000 +35.7899999999999991 2.0000000000000000 +35.8000000000000043 2.0000000000000000 +35.8100000000000023 2.0000000000000000 +35.8200000000000003 2.0000000000000000 +35.8299999999999983 2.0000000000000000 +35.8400000000000034 2.0000000000000000 +35.8500000000000014 2.0000000000000000 +35.8599999999999994 2.0000000000000000 +35.8699999999999974 2.0000000000000000 +35.8800000000000026 2.0000000000000000 +35.8900000000000006 2.0000000000000000 +35.8999999999999986 2.0000000000000000 +35.9100000000000037 2.0000000000000000 +35.9200000000000017 2.0000000000000000 +35.9299999999999997 2.0000000000000000 +35.9399999999999977 2.0000000000000000 +35.9500000000000028 2.0000000000000000 +35.9600000000000009 2.0000000000000000 +35.9699999999999989 2.0000000000000000 +35.9800000000000040 2.0000000000000000 +35.9900000000000020 2.0000000000000000 +36.0000000000000000 2.0000000000000000 +36.0099999999999980 2.0000000000000000 +36.0200000000000031 2.0000000000000000 +36.0300000000000011 2.0000000000000000 +36.0399999999999991 2.0000000000000000 +36.0500000000000043 2.0000000000000000 +36.0600000000000023 2.0000000000000000 +36.0700000000000003 2.0000000000000000 +36.0799999999999983 2.0000000000000000 +36.0900000000000034 2.0000000000000000 +36.1000000000000014 2.0000000000000000 +36.1099999999999994 2.0000000000000000 +36.1199999999999974 2.0000000000000000 +36.1300000000000026 2.0000000000000000 +36.1400000000000006 2.0000000000000000 +36.1499999999999986 2.0000000000000000 +36.1600000000000037 2.0000000000000000 +36.1700000000000017 2.0000000000000000 +36.1799999999999997 2.0000000000000000 +36.1899999999999977 2.0000000000000000 +36.2000000000000028 2.0000000000000000 +36.2100000000000009 2.0000000000000000 +36.2199999999999989 2.0000000000000000 +36.2300000000000040 2.0000000000000000 +36.2400000000000020 2.0000000000000000 +36.2500000000000000 2.0000000000000000 +36.2599999999999980 2.0000000000000000 +36.2700000000000031 2.0000000000000000 +36.2800000000000011 2.0000000000000000 +36.2899999999999991 2.0000000000000000 +36.3000000000000043 2.0000000000000000 +36.3100000000000023 2.0000000000000000 +36.3200000000000003 2.0000000000000000 +36.3299999999999983 2.0000000000000000 +36.3400000000000034 2.0000000000000000 +36.3500000000000014 2.0000000000000000 +36.3599999999999994 2.0000000000000000 +36.3699999999999974 2.0000000000000000 +36.3800000000000026 2.0000000000000000 +36.3900000000000006 2.0000000000000000 +36.3999999999999986 2.0000000000000000 +36.4100000000000037 2.0000000000000000 +36.4200000000000017 2.0000000000000000 +36.4299999999999997 2.0000000000000000 +36.4399999999999977 2.0000000000000000 +36.4500000000000028 2.0000000000000000 +36.4600000000000009 2.0000000000000000 +36.4699999999999989 2.0000000000000000 +36.4800000000000040 2.0000000000000000 +36.4900000000000020 2.0000000000000000 +36.5000000000000000 2.0000000000000000 +36.5099999999999980 2.0000000000000000 +36.5200000000000031 2.0000000000000000 +36.5300000000000011 2.0000000000000000 +36.5399999999999991 2.0000000000000000 +36.5500000000000043 2.0000000000000000 +36.5600000000000023 2.0000000000000000 +36.5700000000000003 2.0000000000000000 +36.5799999999999983 2.0000000000000000 +36.5900000000000034 2.0000000000000000 +36.6000000000000014 2.0000000000000000 +36.6099999999999994 2.0000000000000000 +36.6199999999999974 2.0000000000000000 +36.6300000000000026 2.0000000000000000 +36.6400000000000006 2.0000000000000000 +36.6499999999999986 2.0000000000000000 +36.6600000000000037 2.0000000000000000 +36.6700000000000017 2.0000000000000000 +36.6799999999999997 2.0000000000000000 +36.6899999999999977 2.0000000000000000 +36.7000000000000028 2.0000000000000000 +36.7100000000000009 2.0000000000000000 +36.7199999999999989 2.0000000000000000 +36.7300000000000040 2.0000000000000000 +36.7400000000000020 2.0000000000000000 +36.7500000000000000 2.0000000000000000 +36.7599999999999980 2.0000000000000000 +36.7700000000000031 2.0000000000000000 +36.7800000000000011 2.0000000000000000 +36.7899999999999991 2.0000000000000000 +36.8000000000000043 2.0000000000000000 +36.8100000000000023 2.0000000000000000 +36.8200000000000003 2.0000000000000000 +36.8299999999999983 2.0000000000000000 +36.8400000000000034 2.0000000000000000 +36.8500000000000014 2.0000000000000000 +36.8599999999999994 2.0000000000000000 +36.8699999999999974 2.0000000000000000 +36.8800000000000026 2.0000000000000000 +36.8900000000000006 2.0000000000000000 +36.8999999999999986 2.0000000000000000 +36.9100000000000037 2.0000000000000000 +36.9200000000000017 2.0000000000000000 +36.9299999999999997 2.0000000000000000 +36.9399999999999977 2.0000000000000000 +36.9500000000000028 2.0000000000000000 +36.9600000000000009 2.0000000000000000 +36.9699999999999989 2.0000000000000000 +36.9800000000000040 2.0000000000000000 +36.9900000000000020 2.0000000000000000 +37.0000000000000000 2.0000000000000000 +37.0099999999999980 2.0000000000000000 +37.0200000000000031 2.0000000000000000 +37.0300000000000011 2.0000000000000000 +37.0399999999999991 2.0000000000000000 +37.0500000000000043 2.0000000000000000 +37.0600000000000023 2.0000000000000000 +37.0700000000000003 2.0000000000000000 +37.0799999999999983 2.0000000000000000 +37.0900000000000034 2.0000000000000000 +37.1000000000000014 2.0000000000000000 +37.1099999999999994 2.0000000000000000 +37.1199999999999974 2.0000000000000000 +37.1300000000000026 2.0000000000000000 +37.1400000000000006 2.0000000000000000 +37.1499999999999986 2.0000000000000000 +37.1600000000000037 2.0000000000000000 +37.1700000000000017 2.0000000000000000 +37.1799999999999997 2.0000000000000000 +37.1899999999999977 2.0000000000000000 +37.2000000000000028 2.0000000000000000 +37.2100000000000009 2.0000000000000000 +37.2199999999999989 2.0000000000000000 +37.2300000000000040 2.0000000000000000 +37.2400000000000020 2.0000000000000000 +37.2500000000000000 2.0000000000000000 +37.2599999999999980 2.0000000000000000 +37.2700000000000031 2.0000000000000000 +37.2800000000000011 2.0000000000000000 +37.2899999999999991 2.0000000000000000 +37.3000000000000043 2.0000000000000000 +37.3100000000000023 2.0000000000000000 +37.3200000000000003 2.0000000000000000 +37.3299999999999983 2.0000000000000000 +37.3400000000000034 2.0000000000000000 +37.3500000000000014 2.0000000000000000 +37.3599999999999994 2.0000000000000000 +37.3699999999999974 2.0000000000000000 +37.3800000000000026 2.0000000000000000 +37.3900000000000006 2.0000000000000000 +37.3999999999999986 2.0000000000000000 +37.4100000000000037 2.0000000000000000 +37.4200000000000017 2.0000000000000000 +37.4299999999999997 2.0000000000000000 +37.4399999999999977 2.0000000000000000 +37.4500000000000028 2.0000000000000000 +37.4600000000000009 2.0000000000000000 +37.4699999999999989 2.0000000000000000 +37.4800000000000040 2.0000000000000000 +37.4900000000000020 2.0000000000000000 +37.5000000000000000 2.0000000000000000 +37.5099999999999980 2.0000000000000000 +37.5200000000000031 2.0000000000000000 +37.5300000000000011 2.0000000000000000 +37.5399999999999991 2.0000000000000000 +37.5500000000000043 2.0000000000000000 +37.5600000000000023 2.0000000000000000 +37.5700000000000003 2.0000000000000000 +37.5799999999999983 2.0000000000000000 +37.5900000000000034 2.0000000000000000 +37.6000000000000014 2.0000000000000000 +37.6099999999999994 2.0000000000000000 +37.6199999999999974 2.0000000000000000 +37.6300000000000026 2.0000000000000000 +37.6400000000000006 2.0000000000000000 +37.6499999999999986 2.0000000000000000 +37.6600000000000037 2.0000000000000000 +37.6700000000000017 2.0000000000000000 +37.6799999999999997 2.0000000000000000 +37.6899999999999977 2.0000000000000000 +37.7000000000000028 2.0000000000000000 +37.7100000000000009 2.0000000000000000 +37.7199999999999989 2.0000000000000000 +37.7300000000000040 2.0000000000000000 +37.7400000000000020 2.0000000000000000 +37.7500000000000000 2.0000000000000000 +37.7599999999999980 2.0000000000000000 +37.7700000000000031 2.0000000000000000 +37.7800000000000011 2.0000000000000000 +37.7899999999999991 2.0000000000000000 +37.8000000000000043 2.0000000000000000 +37.8100000000000023 2.0000000000000000 +37.8200000000000003 2.0000000000000000 +37.8299999999999983 2.0000000000000000 +37.8400000000000034 2.0000000000000000 +37.8500000000000014 2.0000000000000000 +37.8599999999999994 2.0000000000000000 +37.8699999999999974 2.0000000000000000 +37.8800000000000026 2.0000000000000000 +37.8900000000000006 2.0000000000000000 +37.8999999999999986 2.0000000000000000 +37.9100000000000037 2.0000000000000000 +37.9200000000000017 2.0000000000000000 +37.9299999999999997 2.0000000000000000 +37.9399999999999977 2.0000000000000000 +37.9500000000000028 2.0000000000000000 +37.9600000000000009 2.0000000000000000 +37.9699999999999989 2.0000000000000000 +37.9800000000000040 2.0000000000000000 +37.9900000000000020 2.0000000000000000 +38.0000000000000000 2.0000000000000000 +38.0099999999999980 2.0000000000000000 +38.0200000000000031 2.0000000000000000 +38.0300000000000011 2.0000000000000000 +38.0399999999999991 2.0000000000000000 +38.0500000000000043 2.0000000000000000 +38.0600000000000023 2.0000000000000000 +38.0700000000000003 2.0000000000000000 +38.0799999999999983 2.0000000000000000 +38.0900000000000034 2.0000000000000000 +38.1000000000000014 2.0000000000000000 +38.1099999999999994 2.0000000000000000 +38.1199999999999974 2.0000000000000000 +38.1300000000000026 2.0000000000000000 +38.1400000000000006 2.0000000000000000 +38.1499999999999986 2.0000000000000000 +38.1600000000000037 2.0000000000000000 +38.1700000000000017 2.0000000000000000 +38.1799999999999997 2.0000000000000000 +38.1899999999999977 2.0000000000000000 +38.2000000000000028 2.0000000000000000 +38.2100000000000009 2.0000000000000000 +38.2199999999999989 2.0000000000000000 +38.2300000000000040 2.0000000000000000 +38.2400000000000020 2.0000000000000000 +38.2500000000000000 2.0000000000000000 +38.2599999999999980 2.0000000000000000 +38.2700000000000031 2.0000000000000000 +38.2800000000000011 2.0000000000000000 +38.2899999999999991 2.0000000000000000 +38.3000000000000043 2.0000000000000000 +38.3100000000000023 2.0000000000000000 +38.3200000000000003 2.0000000000000000 +38.3299999999999983 2.0000000000000000 +38.3400000000000034 2.0000000000000000 +38.3500000000000014 2.0000000000000000 +38.3599999999999994 2.0000000000000000 +38.3699999999999974 2.0000000000000000 +38.3800000000000026 2.0000000000000000 +38.3900000000000006 2.0000000000000000 +38.3999999999999986 2.0000000000000000 +38.4100000000000037 2.0000000000000000 +38.4200000000000017 2.0000000000000000 +38.4299999999999997 2.0000000000000000 +38.4399999999999977 2.0000000000000000 +38.4500000000000028 2.0000000000000000 +38.4600000000000009 2.0000000000000000 +38.4699999999999989 2.0000000000000000 +38.4800000000000040 2.0000000000000000 +38.4900000000000020 2.0000000000000000 +38.5000000000000000 2.0000000000000000 +38.5099999999999980 2.0000000000000000 +38.5200000000000031 2.0000000000000000 +38.5300000000000011 2.0000000000000000 +38.5399999999999991 2.0000000000000000 +38.5500000000000043 2.0000000000000000 +38.5600000000000023 2.0000000000000000 +38.5700000000000003 2.0000000000000000 +38.5799999999999983 2.0000000000000000 +38.5900000000000034 2.0000000000000000 +38.6000000000000014 2.0000000000000000 +38.6099999999999994 2.0000000000000000 +38.6199999999999974 2.0000000000000000 +38.6300000000000026 2.0000000000000000 +38.6400000000000006 2.0000000000000000 +38.6499999999999986 2.0000000000000000 +38.6600000000000037 2.0000000000000000 +38.6700000000000017 2.0000000000000000 +38.6799999999999997 2.0000000000000000 +38.6899999999999977 2.0000000000000000 +38.7000000000000028 2.0000000000000000 +38.7100000000000009 2.0000000000000000 +38.7199999999999989 2.0000000000000000 +38.7300000000000040 2.0000000000000000 +38.7400000000000020 2.0000000000000000 +38.7500000000000000 2.0000000000000000 +38.7599999999999980 2.0000000000000000 +38.7700000000000031 2.0000000000000000 +38.7800000000000011 2.0000000000000000 +38.7899999999999991 2.0000000000000000 +38.8000000000000043 2.0000000000000000 +38.8100000000000023 2.0000000000000000 +38.8200000000000003 2.0000000000000000 +38.8299999999999983 2.0000000000000000 +38.8400000000000034 2.0000000000000000 +38.8500000000000014 2.0000000000000000 +38.8599999999999994 2.0000000000000000 +38.8699999999999974 2.0000000000000000 +38.8800000000000026 2.0000000000000000 +38.8900000000000006 2.0000000000000000 +38.8999999999999986 2.0000000000000000 +38.9100000000000037 2.0000000000000000 +38.9200000000000017 2.0000000000000000 +38.9299999999999997 2.0000000000000000 +38.9399999999999977 2.0000000000000000 +38.9500000000000028 2.0000000000000000 +38.9600000000000009 2.0000000000000000 +38.9699999999999989 2.0000000000000000 +38.9800000000000040 2.0000000000000000 +38.9900000000000020 2.0000000000000000 +39.0000000000000000 2.0000000000000000 +39.0099999999999980 2.0000000000000000 +39.0200000000000031 2.0000000000000000 +39.0300000000000011 2.0000000000000000 +39.0399999999999991 2.0000000000000000 +39.0500000000000043 2.0000000000000000 +39.0600000000000023 2.0000000000000000 +39.0700000000000003 2.0000000000000000 +39.0799999999999983 2.0000000000000000 +39.0900000000000034 2.0000000000000000 +39.1000000000000014 2.0000000000000000 +39.1099999999999994 2.0000000000000000 +39.1199999999999974 2.0000000000000000 +39.1300000000000026 2.0000000000000000 +39.1400000000000006 2.0000000000000000 +39.1499999999999986 2.0000000000000000 +39.1600000000000037 2.0000000000000000 +39.1700000000000017 2.0000000000000000 +39.1799999999999997 2.0000000000000000 +39.1899999999999977 2.0000000000000000 +39.2000000000000028 2.0000000000000000 +39.2100000000000009 2.0000000000000000 +39.2199999999999989 2.0000000000000000 +39.2300000000000040 2.0000000000000000 +39.2400000000000020 2.0000000000000000 +39.2500000000000000 2.0000000000000000 +39.2599999999999980 2.0000000000000000 +39.2700000000000031 2.0000000000000000 +39.2800000000000011 2.0000000000000000 +39.2899999999999991 2.0000000000000000 +39.3000000000000043 2.0000000000000000 +39.3100000000000023 2.0000000000000000 +39.3200000000000003 2.0000000000000000 +39.3299999999999983 2.0000000000000000 +39.3400000000000034 2.0000000000000000 +39.3500000000000014 2.0000000000000000 +39.3599999999999994 2.0000000000000000 +39.3699999999999974 2.0000000000000000 +39.3800000000000026 2.0000000000000000 +39.3900000000000006 2.0000000000000000 +39.3999999999999986 2.0000000000000000 +39.4100000000000037 2.0000000000000000 +39.4200000000000017 2.0000000000000000 +39.4299999999999997 2.0000000000000000 +39.4399999999999977 2.0000000000000000 +39.4500000000000028 2.0000000000000000 +39.4600000000000009 2.0000000000000000 +39.4699999999999989 2.0000000000000000 +39.4800000000000040 2.0000000000000000 +39.4900000000000020 2.0000000000000000 +39.5000000000000000 2.0000000000000000 +39.5099999999999980 2.0000000000000000 +39.5200000000000031 2.0000000000000000 +39.5300000000000011 2.0000000000000000 +39.5399999999999991 2.0000000000000000 +39.5500000000000043 2.0000000000000000 +39.5600000000000023 2.0000000000000000 +39.5700000000000003 2.0000000000000000 +39.5799999999999983 2.0000000000000000 +39.5900000000000034 2.0000000000000000 +39.6000000000000014 2.0000000000000000 +39.6099999999999994 2.0000000000000000 +39.6199999999999974 2.0000000000000000 +39.6300000000000026 2.0000000000000000 +39.6400000000000006 2.0000000000000000 +39.6499999999999986 2.0000000000000000 +39.6600000000000037 2.0000000000000000 +39.6700000000000017 2.0000000000000000 +39.6799999999999997 2.0000000000000000 +39.6899999999999977 2.0000000000000000 +39.7000000000000028 2.0000000000000000 +39.7100000000000009 2.0000000000000000 +39.7199999999999989 2.0000000000000000 +39.7300000000000040 2.0000000000000000 +39.7400000000000020 2.0000000000000000 +39.7500000000000000 2.0000000000000000 +39.7599999999999980 2.0000000000000000 +39.7700000000000031 2.0000000000000000 +39.7800000000000011 2.0000000000000000 +39.7899999999999991 2.0000000000000000 +39.8000000000000043 2.0000000000000000 +39.8100000000000023 2.0000000000000000 +39.8200000000000003 2.0000000000000000 +39.8299999999999983 2.0000000000000000 +39.8400000000000034 2.0000000000000000 +39.8500000000000014 2.0000000000000000 +39.8599999999999994 2.0000000000000000 +39.8699999999999974 2.0000000000000000 +39.8800000000000026 2.0000000000000000 +39.8900000000000006 2.0000000000000000 +39.8999999999999986 2.0000000000000000 +39.9100000000000037 2.0000000000000000 +39.9200000000000017 2.0000000000000000 +39.9299999999999997 2.0000000000000000 +39.9399999999999977 2.0000000000000000 +39.9500000000000028 2.0000000000000000 +39.9600000000000009 2.0000000000000000 +39.9699999999999989 2.0000000000000000 +39.9800000000000040 2.0000000000000000 +39.9900000000000020 2.0000000000000000 +40.0000000000000000 2.0000000000000000 +40.0099999999999980 2.0000000000000000 +40.0200000000000031 2.0000000000000000 +40.0300000000000011 2.0000000000000000 +40.0399999999999991 2.0000000000000000 +40.0500000000000043 2.0000000000000000 +40.0600000000000023 2.0000000000000000 +40.0700000000000003 2.0000000000000000 +40.0799999999999983 2.0000000000000000 +40.0900000000000034 2.0000000000000000 +40.1000000000000014 2.0000000000000000 +40.1099999999999994 2.0000000000000000 +40.1199999999999974 2.0000000000000000 +40.1300000000000026 2.0000000000000000 +40.1400000000000006 2.0000000000000000 +40.1499999999999986 2.0000000000000000 +40.1600000000000037 2.0000000000000000 +40.1700000000000017 2.0000000000000000 +40.1799999999999997 2.0000000000000000 +40.1899999999999977 2.0000000000000000 +40.2000000000000028 2.0000000000000000 +40.2100000000000009 2.0000000000000000 +40.2199999999999989 2.0000000000000000 +40.2300000000000040 2.0000000000000000 +40.2400000000000020 2.0000000000000000 +40.2500000000000000 2.0000000000000000 +40.2599999999999980 2.0000000000000000 +40.2700000000000031 2.0000000000000000 +40.2800000000000011 2.0000000000000000 +40.2899999999999991 2.0000000000000000 +40.3000000000000043 2.0000000000000000 +40.3100000000000023 2.0000000000000000 +40.3200000000000003 2.0000000000000000 +40.3299999999999983 2.0000000000000000 +40.3400000000000034 2.0000000000000000 +40.3500000000000014 2.0000000000000000 +40.3599999999999994 2.0000000000000000 +40.3699999999999974 2.0000000000000000 +40.3800000000000026 2.0000000000000000 +40.3900000000000006 2.0000000000000000 +40.3999999999999986 2.0000000000000000 +40.4100000000000037 2.0000000000000000 +40.4200000000000017 2.0000000000000000 +40.4299999999999997 2.0000000000000000 +40.4399999999999977 2.0000000000000000 +40.4500000000000028 2.0000000000000000 +40.4600000000000009 2.0000000000000000 +40.4699999999999989 2.0000000000000000 +40.4800000000000040 2.0000000000000000 +40.4900000000000020 2.0000000000000000 +40.5000000000000000 2.0000000000000000 +40.5099999999999980 2.0000000000000000 +40.5200000000000031 2.0000000000000000 +40.5300000000000011 2.0000000000000000 +40.5399999999999991 2.0000000000000000 +40.5500000000000043 2.0000000000000000 +40.5600000000000023 2.0000000000000000 +40.5700000000000003 2.0000000000000000 +40.5799999999999983 2.0000000000000000 +40.5900000000000034 2.0000000000000000 +40.6000000000000014 2.0000000000000000 +40.6099999999999994 2.0000000000000000 +40.6199999999999974 2.0000000000000000 +40.6300000000000026 2.0000000000000000 +40.6400000000000006 2.0000000000000000 +40.6499999999999986 2.0000000000000000 +40.6600000000000037 2.0000000000000000 +40.6700000000000017 2.0000000000000000 +40.6799999999999997 2.0000000000000000 +40.6899999999999977 2.0000000000000000 +40.7000000000000028 2.0000000000000000 +40.7100000000000009 2.0000000000000000 +40.7199999999999989 2.0000000000000000 +40.7300000000000040 2.0000000000000000 +40.7400000000000020 2.0000000000000000 +40.7500000000000000 2.0000000000000000 +40.7599999999999980 2.0000000000000000 +40.7700000000000031 2.0000000000000000 +40.7800000000000011 2.0000000000000000 +40.7899999999999991 2.0000000000000000 +40.8000000000000043 2.0000000000000000 +40.8100000000000023 2.0000000000000000 +40.8200000000000003 2.0000000000000000 +40.8299999999999983 2.0000000000000000 +40.8400000000000034 2.0000000000000000 +40.8500000000000014 2.0000000000000000 +40.8599999999999994 2.0000000000000000 +40.8699999999999974 2.0000000000000000 +40.8800000000000026 2.0000000000000000 +40.8900000000000006 2.0000000000000000 +40.8999999999999986 2.0000000000000000 +40.9100000000000037 2.0000000000000000 +40.9200000000000017 2.0000000000000000 +40.9299999999999997 2.0000000000000000 +40.9399999999999977 2.0000000000000000 +40.9500000000000028 2.0000000000000000 +40.9600000000000009 2.0000000000000000 +40.9699999999999989 2.0000000000000000 +40.9800000000000040 2.0000000000000000 +40.9900000000000020 2.0000000000000000 +41.0000000000000000 2.0000000000000000 +41.0099999999999980 2.0000000000000000 +41.0200000000000031 2.0000000000000000 +41.0300000000000011 2.0000000000000000 +41.0399999999999991 2.0000000000000000 +41.0500000000000043 2.0000000000000000 +41.0600000000000023 2.0000000000000000 +41.0700000000000003 2.0000000000000000 +41.0799999999999983 2.0000000000000000 +41.0900000000000034 2.0000000000000000 +41.1000000000000014 2.0000000000000000 +41.1099999999999994 2.0000000000000000 +41.1199999999999974 2.0000000000000000 +41.1300000000000026 2.0000000000000000 +41.1400000000000006 2.0000000000000000 +41.1499999999999986 2.0000000000000000 +41.1600000000000037 2.0000000000000000 +41.1700000000000017 2.0000000000000000 +41.1799999999999997 2.0000000000000000 +41.1899999999999977 2.0000000000000000 +41.2000000000000028 2.0000000000000000 +41.2100000000000009 2.0000000000000000 +41.2199999999999989 2.0000000000000000 +41.2300000000000040 2.0000000000000000 +41.2400000000000020 2.0000000000000000 +41.2500000000000000 2.0000000000000000 +41.2599999999999980 2.0000000000000000 +41.2700000000000031 2.0000000000000000 +41.2800000000000011 2.0000000000000000 +41.2899999999999991 2.0000000000000000 +41.3000000000000043 2.0000000000000000 +41.3100000000000023 2.0000000000000000 +41.3200000000000003 2.0000000000000000 +41.3299999999999983 2.0000000000000000 +41.3400000000000034 2.0000000000000000 +41.3500000000000014 2.0000000000000000 +41.3599999999999994 2.0000000000000000 +41.3699999999999974 2.0000000000000000 +41.3800000000000026 2.0000000000000000 +41.3900000000000006 2.0000000000000000 +41.3999999999999986 2.0000000000000000 +41.4100000000000037 2.0000000000000000 +41.4200000000000017 2.0000000000000000 +41.4299999999999997 2.0000000000000000 +41.4399999999999977 2.0000000000000000 +41.4500000000000028 2.0000000000000000 +41.4600000000000009 2.0000000000000000 +41.4699999999999989 2.0000000000000000 +41.4800000000000040 2.0000000000000000 +41.4900000000000020 2.0000000000000000 +41.5000000000000000 2.0000000000000000 +41.5099999999999980 2.0000000000000000 +41.5200000000000031 2.0000000000000000 +41.5300000000000011 2.0000000000000000 +41.5399999999999991 2.0000000000000000 +41.5500000000000043 2.0000000000000000 +41.5600000000000023 2.0000000000000000 +41.5700000000000003 2.0000000000000000 +41.5799999999999983 2.0000000000000000 +41.5900000000000034 2.0000000000000000 +41.6000000000000014 2.0000000000000000 +41.6099999999999994 2.0000000000000000 +41.6199999999999974 2.0000000000000000 +41.6300000000000026 2.0000000000000000 +41.6400000000000006 2.0000000000000000 +41.6499999999999986 2.0000000000000000 +41.6600000000000037 2.0000000000000000 +41.6700000000000017 2.0000000000000000 +41.6799999999999997 2.0000000000000000 +41.6899999999999977 2.0000000000000000 +41.7000000000000028 2.0000000000000000 +41.7100000000000009 2.0000000000000000 +41.7199999999999989 2.0000000000000000 +41.7300000000000040 2.0000000000000000 +41.7400000000000020 2.0000000000000000 +41.7500000000000000 2.0000000000000000 +41.7599999999999980 2.0000000000000000 +41.7700000000000031 2.0000000000000000 +41.7800000000000011 2.0000000000000000 +41.7899999999999991 2.0000000000000000 +41.8000000000000043 2.0000000000000000 +41.8100000000000023 2.0000000000000000 +41.8200000000000003 2.0000000000000000 +41.8299999999999983 2.0000000000000000 +41.8400000000000034 2.0000000000000000 +41.8500000000000014 2.0000000000000000 +41.8599999999999994 2.0000000000000000 +41.8699999999999974 2.0000000000000000 +41.8800000000000026 2.0000000000000000 +41.8900000000000006 2.0000000000000000 +41.8999999999999986 2.0000000000000000 +41.9100000000000037 2.0000000000000000 +41.9200000000000017 2.0000000000000000 +41.9299999999999997 2.0000000000000000 +41.9399999999999977 2.0000000000000000 +41.9500000000000028 2.0000000000000000 +41.9600000000000009 2.0000000000000000 +41.9699999999999989 2.0000000000000000 +41.9800000000000040 2.0000000000000000 +41.9900000000000020 2.0000000000000000 +42.0000000000000000 2.0000000000000000 +42.0099999999999980 2.0000000000000000 +42.0200000000000031 2.0000000000000000 +42.0300000000000011 2.0000000000000000 +42.0399999999999991 2.0000000000000000 +42.0500000000000043 2.0000000000000000 +42.0600000000000023 2.0000000000000000 +42.0700000000000003 2.0000000000000000 +42.0799999999999983 2.0000000000000000 +42.0900000000000034 2.0000000000000000 +42.1000000000000014 2.0000000000000000 +42.1099999999999994 2.0000000000000000 +42.1199999999999974 2.0000000000000000 +42.1300000000000026 2.0000000000000000 +42.1400000000000006 2.0000000000000000 +42.1499999999999986 2.0000000000000000 +42.1600000000000037 2.0000000000000000 +42.1700000000000017 2.0000000000000000 +42.1799999999999997 2.0000000000000000 +42.1899999999999977 2.0000000000000000 +42.2000000000000028 2.0000000000000000 +42.2100000000000009 2.0000000000000000 +42.2199999999999989 2.0000000000000000 +42.2300000000000040 2.0000000000000000 +42.2400000000000020 2.0000000000000000 +42.2500000000000000 2.0000000000000000 +42.2599999999999980 2.0000000000000000 +42.2700000000000031 2.0000000000000000 +42.2800000000000011 2.0000000000000000 +42.2899999999999991 2.0000000000000000 +42.3000000000000043 2.0000000000000000 +42.3100000000000023 2.0000000000000000 +42.3200000000000003 2.0000000000000000 +42.3299999999999983 2.0000000000000000 +42.3400000000000034 2.0000000000000000 +42.3500000000000014 2.0000000000000000 +42.3599999999999994 2.0000000000000000 +42.3699999999999974 2.0000000000000000 +42.3800000000000026 2.0000000000000000 +42.3900000000000006 2.0000000000000000 +42.3999999999999986 2.0000000000000000 +42.4100000000000037 2.0000000000000000 +42.4200000000000017 2.0000000000000000 +42.4299999999999997 2.0000000000000000 +42.4399999999999977 2.0000000000000000 +42.4500000000000028 2.0000000000000000 +42.4600000000000009 2.0000000000000000 +42.4699999999999989 2.0000000000000000 +42.4800000000000040 2.0000000000000000 +42.4900000000000020 2.0000000000000000 +42.5000000000000000 2.0000000000000000 +42.5099999999999980 2.0000000000000000 +42.5200000000000031 2.0000000000000000 +42.5300000000000011 2.0000000000000000 +42.5399999999999991 2.0000000000000000 +42.5500000000000043 2.0000000000000000 +42.5600000000000023 2.0000000000000000 +42.5700000000000003 2.0000000000000000 +42.5799999999999983 2.0000000000000000 +42.5900000000000034 2.0000000000000000 +42.6000000000000014 2.0000000000000000 +42.6099999999999994 2.0000000000000000 +42.6199999999999974 2.0000000000000000 +42.6300000000000026 2.0000000000000000 +42.6400000000000006 2.0000000000000000 +42.6499999999999986 2.0000000000000000 +42.6600000000000037 2.0000000000000000 +42.6700000000000017 2.0000000000000000 +42.6799999999999997 2.0000000000000000 +42.6899999999999977 2.0000000000000000 +42.7000000000000028 2.0000000000000000 +42.7100000000000009 2.0000000000000000 +42.7199999999999989 2.0000000000000000 +42.7300000000000040 2.0000000000000000 +42.7400000000000020 2.0000000000000000 +42.7500000000000000 2.0000000000000000 +42.7599999999999980 2.0000000000000000 +42.7700000000000031 2.0000000000000000 +42.7800000000000011 2.0000000000000000 +42.7899999999999991 2.0000000000000000 +42.8000000000000043 2.0000000000000000 +42.8100000000000023 2.0000000000000000 +42.8200000000000003 2.0000000000000000 +42.8299999999999983 2.0000000000000000 +42.8400000000000034 2.0000000000000000 +42.8500000000000014 2.0000000000000000 +42.8599999999999994 2.0000000000000000 +42.8699999999999974 2.0000000000000000 +42.8800000000000026 2.0000000000000000 +42.8900000000000006 2.0000000000000000 +42.8999999999999986 2.0000000000000000 +42.9100000000000037 2.0000000000000000 +42.9200000000000017 2.0000000000000000 +42.9299999999999997 2.0000000000000000 +42.9399999999999977 2.0000000000000000 +42.9500000000000028 2.0000000000000000 +42.9600000000000009 2.0000000000000000 +42.9699999999999989 2.0000000000000000 +42.9800000000000040 2.0000000000000000 +42.9900000000000020 2.0000000000000000 +43.0000000000000000 2.0000000000000000 +43.0099999999999980 2.0000000000000000 +43.0200000000000031 2.0000000000000000 +43.0300000000000011 2.0000000000000000 +43.0399999999999991 2.0000000000000000 +43.0500000000000043 2.0000000000000000 +43.0600000000000023 2.0000000000000000 +43.0700000000000003 2.0000000000000000 +43.0799999999999983 2.0000000000000000 +43.0900000000000034 2.0000000000000000 +43.1000000000000014 2.0000000000000000 +43.1099999999999994 2.0000000000000000 +43.1199999999999974 2.0000000000000000 +43.1300000000000026 2.0000000000000000 +43.1400000000000006 2.0000000000000000 +43.1499999999999986 2.0000000000000000 +43.1600000000000037 2.0000000000000000 +43.1700000000000017 2.0000000000000000 +43.1799999999999997 2.0000000000000000 +43.1899999999999977 2.0000000000000000 +43.2000000000000028 2.0000000000000000 +43.2100000000000009 2.0000000000000000 +43.2199999999999989 2.0000000000000000 +43.2300000000000040 2.0000000000000000 +43.2400000000000020 2.0000000000000000 +43.2500000000000000 2.0000000000000000 +43.2599999999999980 2.0000000000000000 +43.2700000000000031 2.0000000000000000 +43.2800000000000011 2.0000000000000000 +43.2899999999999991 2.0000000000000000 +43.3000000000000043 2.0000000000000000 +43.3100000000000023 2.0000000000000000 +43.3200000000000003 2.0000000000000000 +43.3299999999999983 2.0000000000000000 +43.3400000000000034 2.0000000000000000 +43.3500000000000014 2.0000000000000000 +43.3599999999999994 2.0000000000000000 +43.3699999999999974 2.0000000000000000 +43.3800000000000026 2.0000000000000000 +43.3900000000000006 2.0000000000000000 +43.3999999999999986 2.0000000000000000 +43.4100000000000037 2.0000000000000000 +43.4200000000000017 2.0000000000000000 +43.4299999999999997 2.0000000000000000 +43.4399999999999977 2.0000000000000000 +43.4500000000000028 2.0000000000000000 +43.4600000000000009 2.0000000000000000 +43.4699999999999989 2.0000000000000000 +43.4800000000000040 2.0000000000000000 +43.4900000000000020 2.0000000000000000 +43.5000000000000000 2.0000000000000000 +43.5099999999999980 2.0000000000000000 +43.5200000000000031 2.0000000000000000 +43.5300000000000011 2.0000000000000000 +43.5399999999999991 2.0000000000000000 +43.5500000000000043 2.0000000000000000 +43.5600000000000023 2.0000000000000000 +43.5700000000000003 2.0000000000000000 +43.5799999999999983 2.0000000000000000 +43.5900000000000034 2.0000000000000000 +43.6000000000000014 2.0000000000000000 +43.6099999999999994 2.0000000000000000 +43.6199999999999974 2.0000000000000000 +43.6300000000000026 2.0000000000000000 +43.6400000000000006 2.0000000000000000 +43.6499999999999986 2.0000000000000000 +43.6600000000000037 2.0000000000000000 +43.6700000000000017 2.0000000000000000 +43.6799999999999997 2.0000000000000000 +43.6899999999999977 2.0000000000000000 +43.7000000000000028 2.0000000000000000 +43.7100000000000009 2.0000000000000000 +43.7199999999999989 2.0000000000000000 +43.7300000000000040 2.0000000000000000 +43.7400000000000020 2.0000000000000000 +43.7500000000000000 2.0000000000000000 +43.7599999999999980 2.0000000000000000 +43.7700000000000031 2.0000000000000000 +43.7800000000000011 2.0000000000000000 +43.7899999999999991 2.0000000000000000 +43.8000000000000043 2.0000000000000000 +43.8100000000000023 2.0000000000000000 +43.8200000000000003 2.0000000000000000 +43.8299999999999983 2.0000000000000000 +43.8400000000000034 2.0000000000000000 +43.8500000000000014 2.0000000000000000 +43.8599999999999994 2.0000000000000000 +43.8699999999999974 2.0000000000000000 +43.8800000000000026 2.0000000000000000 +43.8900000000000006 2.0000000000000000 +43.8999999999999986 2.0000000000000000 +43.9100000000000037 2.0000000000000000 +43.9200000000000017 2.0000000000000000 +43.9299999999999997 2.0000000000000000 +43.9399999999999977 2.0000000000000000 +43.9500000000000028 2.0000000000000000 +43.9600000000000009 2.0000000000000000 +43.9699999999999989 2.0000000000000000 +43.9800000000000040 2.0000000000000000 +43.9900000000000020 2.0000000000000000 +44.0000000000000000 2.0000000000000000 +44.0099999999999980 2.0000000000000000 +44.0200000000000031 2.0000000000000000 +44.0300000000000011 2.0000000000000000 +44.0399999999999991 2.0000000000000000 +44.0500000000000043 2.0000000000000000 +44.0600000000000023 2.0000000000000000 +44.0700000000000003 2.0000000000000000 +44.0799999999999983 2.0000000000000000 +44.0900000000000034 2.0000000000000000 +44.1000000000000014 2.0000000000000000 +44.1099999999999994 2.0000000000000000 +44.1199999999999974 2.0000000000000000 +44.1300000000000026 2.0000000000000000 +44.1400000000000006 2.0000000000000000 +44.1499999999999986 2.0000000000000000 +44.1600000000000037 2.0000000000000000 +44.1700000000000017 2.0000000000000000 +44.1799999999999997 2.0000000000000000 +44.1899999999999977 2.0000000000000000 +44.2000000000000028 2.0000000000000000 +44.2100000000000009 2.0000000000000000 +44.2199999999999989 2.0000000000000000 +44.2300000000000040 2.0000000000000000 +44.2400000000000020 2.0000000000000000 +44.2500000000000000 2.0000000000000000 +44.2599999999999980 2.0000000000000000 +44.2700000000000031 2.0000000000000000 +44.2800000000000011 2.0000000000000000 +44.2899999999999991 2.0000000000000000 +44.3000000000000043 2.0000000000000000 +44.3100000000000023 2.0000000000000000 +44.3200000000000003 2.0000000000000000 +44.3299999999999983 2.0000000000000000 +44.3400000000000034 2.0000000000000000 +44.3500000000000014 2.0000000000000000 +44.3599999999999994 2.0000000000000000 +44.3699999999999974 2.0000000000000000 +44.3800000000000026 2.0000000000000000 +44.3900000000000006 2.0000000000000000 +44.3999999999999986 2.0000000000000000 +44.4100000000000037 2.0000000000000000 +44.4200000000000017 2.0000000000000000 +44.4299999999999997 2.0000000000000000 +44.4399999999999977 2.0000000000000000 +44.4500000000000028 2.0000000000000000 +44.4600000000000009 2.0000000000000000 +44.4699999999999989 2.0000000000000000 +44.4800000000000040 2.0000000000000000 +44.4900000000000020 2.0000000000000000 +44.5000000000000000 2.0000000000000000 +44.5099999999999980 2.0000000000000000 +44.5200000000000031 2.0000000000000000 +44.5300000000000011 2.0000000000000000 +44.5399999999999991 2.0000000000000000 +44.5500000000000043 2.0000000000000000 +44.5600000000000023 2.0000000000000000 +44.5700000000000003 2.0000000000000000 +44.5799999999999983 2.0000000000000000 +44.5900000000000034 2.0000000000000000 +44.6000000000000014 2.0000000000000000 +44.6099999999999994 2.0000000000000000 +44.6199999999999974 2.0000000000000000 +44.6300000000000026 2.0000000000000000 +44.6400000000000006 2.0000000000000000 +44.6499999999999986 2.0000000000000000 +44.6600000000000037 2.0000000000000000 +44.6700000000000017 2.0000000000000000 +44.6799999999999997 2.0000000000000000 +44.6899999999999977 2.0000000000000000 +44.7000000000000028 2.0000000000000000 +44.7100000000000009 2.0000000000000000 +44.7199999999999989 2.0000000000000000 +44.7300000000000040 2.0000000000000000 +44.7400000000000020 2.0000000000000000 +44.7500000000000000 2.0000000000000000 +44.7599999999999980 2.0000000000000000 +44.7700000000000031 2.0000000000000000 +44.7800000000000011 2.0000000000000000 +44.7899999999999991 2.0000000000000000 +44.8000000000000043 2.0000000000000000 +44.8100000000000023 2.0000000000000000 +44.8200000000000003 2.0000000000000000 +44.8299999999999983 2.0000000000000000 +44.8400000000000034 2.0000000000000000 +44.8500000000000014 2.0000000000000000 +44.8599999999999994 2.0000000000000000 +44.8699999999999974 2.0000000000000000 +44.8800000000000026 2.0000000000000000 +44.8900000000000006 2.0000000000000000 +44.8999999999999986 2.0000000000000000 +44.9100000000000037 2.0000000000000000 +44.9200000000000017 2.0000000000000000 +44.9299999999999997 2.0000000000000000 +44.9399999999999977 2.0000000000000000 +44.9500000000000028 2.0000000000000000 +44.9600000000000009 2.0000000000000000 +44.9699999999999989 2.0000000000000000 +44.9800000000000040 2.0000000000000000 +44.9900000000000020 2.0000000000000000 +45.0000000000000000 2.0000000000000000 +45.0099999999999980 2.0000000000000000 +45.0200000000000031 2.0000000000000000 +45.0300000000000011 2.0000000000000000 +45.0399999999999991 2.0000000000000000 +45.0500000000000043 2.0000000000000000 +45.0600000000000023 2.0000000000000000 +45.0700000000000003 2.0000000000000000 +45.0799999999999983 2.0000000000000000 +45.0900000000000034 2.0000000000000000 +45.1000000000000014 2.0000000000000000 +45.1099999999999994 2.0000000000000000 +45.1199999999999974 2.0000000000000000 +45.1300000000000026 2.0000000000000000 +45.1400000000000006 2.0000000000000000 +45.1499999999999986 2.0000000000000000 +45.1600000000000037 2.0000000000000000 +45.1700000000000017 2.0000000000000000 +45.1799999999999997 2.0000000000000000 +45.1899999999999977 2.0000000000000000 +45.2000000000000028 2.0000000000000000 +45.2100000000000009 2.0000000000000000 +45.2199999999999989 2.0000000000000000 +45.2300000000000040 2.0000000000000000 +45.2400000000000020 2.0000000000000000 +45.2500000000000000 2.0000000000000000 +45.2599999999999980 2.0000000000000000 +45.2700000000000031 2.0000000000000000 +45.2800000000000011 2.0000000000000000 +45.2899999999999991 2.0000000000000000 +45.3000000000000043 2.0000000000000000 +45.3100000000000023 2.0000000000000000 +45.3200000000000003 2.0000000000000000 +45.3299999999999983 2.0000000000000000 +45.3400000000000034 2.0000000000000000 +45.3500000000000014 2.0000000000000000 +45.3599999999999994 2.0000000000000000 +45.3699999999999974 2.0000000000000000 +45.3800000000000026 2.0000000000000000 +45.3900000000000006 2.0000000000000000 +45.3999999999999986 2.0000000000000000 +45.4100000000000037 2.0000000000000000 +45.4200000000000017 2.0000000000000000 +45.4299999999999997 2.0000000000000000 +45.4399999999999977 2.0000000000000000 +45.4500000000000028 2.0000000000000000 +45.4600000000000009 2.0000000000000000 +45.4699999999999989 2.0000000000000000 +45.4800000000000040 2.0000000000000000 +45.4900000000000020 2.0000000000000000 +45.5000000000000000 2.0000000000000000 +45.5099999999999980 2.0000000000000000 +45.5200000000000031 2.0000000000000000 +45.5300000000000011 2.0000000000000000 +45.5399999999999991 2.0000000000000000 +45.5500000000000043 2.0000000000000000 +45.5600000000000023 2.0000000000000000 +45.5700000000000003 2.0000000000000000 +45.5799999999999983 2.0000000000000000 +45.5900000000000034 2.0000000000000000 +45.6000000000000014 2.0000000000000000 +45.6099999999999994 2.0000000000000000 +45.6199999999999974 2.0000000000000000 +45.6300000000000026 2.0000000000000000 +45.6400000000000006 2.0000000000000000 +45.6499999999999986 2.0000000000000000 +45.6600000000000037 2.0000000000000000 +45.6700000000000017 2.0000000000000000 +45.6799999999999997 2.0000000000000000 +45.6899999999999977 2.0000000000000000 +45.7000000000000028 2.0000000000000000 +45.7100000000000009 2.0000000000000000 +45.7199999999999989 2.0000000000000000 +45.7300000000000040 2.0000000000000000 +45.7400000000000020 2.0000000000000000 +45.7500000000000000 2.0000000000000000 +45.7599999999999980 2.0000000000000000 +45.7700000000000031 2.0000000000000000 +45.7800000000000011 2.0000000000000000 +45.7899999999999991 2.0000000000000000 +45.8000000000000043 2.0000000000000000 +45.8100000000000023 2.0000000000000000 +45.8200000000000003 2.0000000000000000 +45.8299999999999983 2.0000000000000000 +45.8400000000000034 2.0000000000000000 +45.8500000000000014 2.0000000000000000 +45.8599999999999994 2.0000000000000000 +45.8699999999999974 2.0000000000000000 +45.8800000000000026 2.0000000000000000 +45.8900000000000006 2.0000000000000000 +45.8999999999999986 2.0000000000000000 +45.9100000000000037 2.0000000000000000 +45.9200000000000017 2.0000000000000000 +45.9299999999999997 2.0000000000000000 +45.9399999999999977 2.0000000000000000 +45.9500000000000028 2.0000000000000000 +45.9600000000000009 2.0000000000000000 +45.9699999999999989 2.0000000000000000 +45.9800000000000040 2.0000000000000000 +45.9900000000000020 2.0000000000000000 +46.0000000000000000 2.0000000000000000 +46.0099999999999980 2.0000000000000000 +46.0200000000000031 2.0000000000000000 +46.0300000000000011 2.0000000000000000 +46.0399999999999991 2.0000000000000000 +46.0500000000000043 2.0000000000000000 +46.0600000000000023 2.0000000000000000 +46.0700000000000003 2.0000000000000000 +46.0799999999999983 2.0000000000000000 +46.0900000000000034 2.0000000000000000 +46.1000000000000014 2.0000000000000000 +46.1099999999999994 2.0000000000000000 +46.1199999999999974 2.0000000000000000 +46.1300000000000026 2.0000000000000000 +46.1400000000000006 2.0000000000000000 +46.1499999999999986 2.0000000000000000 +46.1600000000000037 2.0000000000000000 +46.1700000000000017 2.0000000000000000 +46.1799999999999997 2.0000000000000000 +46.1899999999999977 2.0000000000000000 +46.2000000000000028 2.0000000000000000 +46.2100000000000009 2.0000000000000000 +46.2199999999999989 2.0000000000000000 +46.2300000000000040 2.0000000000000000 +46.2400000000000020 2.0000000000000000 +46.2500000000000000 2.0000000000000000 +46.2599999999999980 2.0000000000000000 +46.2700000000000031 2.0000000000000000 +46.2800000000000011 2.0000000000000000 +46.2899999999999991 2.0000000000000000 +46.3000000000000043 2.0000000000000000 +46.3100000000000023 2.0000000000000000 +46.3200000000000003 2.0000000000000000 +46.3299999999999983 2.0000000000000000 +46.3400000000000034 2.0000000000000000 +46.3500000000000014 2.0000000000000000 +46.3599999999999994 2.0000000000000000 +46.3699999999999974 2.0000000000000000 +46.3800000000000026 2.0000000000000000 +46.3900000000000006 2.0000000000000000 +46.3999999999999986 2.0000000000000000 +46.4100000000000037 2.0000000000000000 +46.4200000000000017 2.0000000000000000 +46.4299999999999997 2.0000000000000000 +46.4399999999999977 2.0000000000000000 +46.4500000000000028 2.0000000000000000 +46.4600000000000009 2.0000000000000000 +46.4699999999999989 2.0000000000000000 +46.4800000000000040 2.0000000000000000 +46.4900000000000020 2.0000000000000000 +46.5000000000000000 2.0000000000000000 +46.5099999999999980 2.0000000000000000 +46.5200000000000031 2.0000000000000000 +46.5300000000000011 2.0000000000000000 +46.5399999999999991 2.0000000000000000 +46.5500000000000043 2.0000000000000000 +46.5600000000000023 2.0000000000000000 +46.5700000000000003 2.0000000000000000 +46.5799999999999983 2.0000000000000000 +46.5900000000000034 2.0000000000000000 +46.6000000000000014 2.0000000000000000 +46.6099999999999994 2.0000000000000000 +46.6199999999999974 2.0000000000000000 +46.6300000000000026 2.0000000000000000 +46.6400000000000006 2.0000000000000000 +46.6499999999999986 2.0000000000000000 +46.6600000000000037 2.0000000000000000 +46.6700000000000017 2.0000000000000000 +46.6799999999999997 2.0000000000000000 +46.6899999999999977 2.0000000000000000 +46.7000000000000028 2.0000000000000000 +46.7100000000000009 2.0000000000000000 +46.7199999999999989 2.0000000000000000 +46.7300000000000040 2.0000000000000000 +46.7400000000000020 2.0000000000000000 +46.7500000000000000 2.0000000000000000 +46.7599999999999980 2.0000000000000000 +46.7700000000000031 2.0000000000000000 +46.7800000000000011 2.0000000000000000 +46.7899999999999991 2.0000000000000000 +46.8000000000000043 2.0000000000000000 +46.8100000000000023 2.0000000000000000 +46.8200000000000003 2.0000000000000000 +46.8299999999999983 2.0000000000000000 +46.8400000000000034 2.0000000000000000 +46.8500000000000014 2.0000000000000000 +46.8599999999999994 2.0000000000000000 +46.8699999999999974 2.0000000000000000 +46.8800000000000026 2.0000000000000000 +46.8900000000000006 2.0000000000000000 +46.8999999999999986 2.0000000000000000 +46.9100000000000037 2.0000000000000000 +46.9200000000000017 2.0000000000000000 +46.9299999999999997 2.0000000000000000 +46.9399999999999977 2.0000000000000000 +46.9500000000000028 2.0000000000000000 +46.9600000000000009 2.0000000000000000 +46.9699999999999989 2.0000000000000000 +46.9800000000000040 2.0000000000000000 +46.9900000000000020 2.0000000000000000 +47.0000000000000000 2.0000000000000000 +47.0099999999999980 2.0000000000000000 +47.0200000000000031 2.0000000000000000 +47.0300000000000011 2.0000000000000000 +47.0399999999999991 2.0000000000000000 +47.0500000000000043 2.0000000000000000 +47.0600000000000023 2.0000000000000000 +47.0700000000000003 2.0000000000000000 +47.0799999999999983 2.0000000000000000 +47.0900000000000034 2.0000000000000000 +47.1000000000000014 2.0000000000000000 +47.1099999999999994 2.0000000000000000 +47.1199999999999974 2.0000000000000000 +47.1300000000000026 2.0000000000000000 +47.1400000000000006 2.0000000000000000 +47.1499999999999986 2.0000000000000000 +47.1600000000000037 2.0000000000000000 +47.1700000000000017 2.0000000000000000 +47.1799999999999997 2.0000000000000000 +47.1899999999999977 2.0000000000000000 +47.2000000000000028 2.0000000000000000 +47.2100000000000009 2.0000000000000000 +47.2199999999999989 2.0000000000000000 +47.2300000000000040 2.0000000000000000 +47.2400000000000020 2.0000000000000000 +47.2500000000000000 2.0000000000000000 +47.2599999999999980 2.0000000000000000 +47.2700000000000031 2.0000000000000000 +47.2800000000000011 2.0000000000000000 +47.2899999999999991 2.0000000000000000 +47.3000000000000043 2.0000000000000000 +47.3100000000000023 2.0000000000000000 +47.3200000000000003 2.0000000000000000 +47.3299999999999983 2.0000000000000000 +47.3400000000000034 2.0000000000000000 +47.3500000000000014 2.0000000000000000 +47.3599999999999994 2.0000000000000000 +47.3699999999999974 2.0000000000000000 +47.3800000000000026 2.0000000000000000 +47.3900000000000006 2.0000000000000000 +47.3999999999999986 2.0000000000000000 +47.4100000000000037 2.0000000000000000 +47.4200000000000017 2.0000000000000000 +47.4299999999999997 2.0000000000000000 +47.4399999999999977 2.0000000000000000 +47.4500000000000028 2.0000000000000000 +47.4600000000000009 2.0000000000000000 +47.4699999999999989 2.0000000000000000 +47.4800000000000040 2.0000000000000000 +47.4900000000000020 2.0000000000000000 +47.5000000000000000 2.0000000000000000 +47.5099999999999980 2.0000000000000000 +47.5200000000000031 2.0000000000000000 +47.5300000000000011 2.0000000000000000 +47.5399999999999991 2.0000000000000000 +47.5500000000000043 2.0000000000000000 +47.5600000000000023 2.0000000000000000 +47.5700000000000003 2.0000000000000000 +47.5799999999999983 2.0000000000000000 +47.5900000000000034 2.0000000000000000 +47.6000000000000014 2.0000000000000000 +47.6099999999999994 2.0000000000000000 +47.6199999999999974 2.0000000000000000 +47.6300000000000026 2.0000000000000000 +47.6400000000000006 2.0000000000000000 +47.6499999999999986 2.0000000000000000 +47.6600000000000037 2.0000000000000000 +47.6700000000000017 2.0000000000000000 +47.6799999999999997 2.0000000000000000 +47.6899999999999977 2.0000000000000000 +47.7000000000000028 2.0000000000000000 +47.7100000000000009 2.0000000000000000 +47.7199999999999989 2.0000000000000000 +47.7300000000000040 2.0000000000000000 +47.7400000000000020 2.0000000000000000 +47.7500000000000000 2.0000000000000000 +47.7599999999999980 2.0000000000000000 +47.7700000000000031 2.0000000000000000 +47.7800000000000011 2.0000000000000000 +47.7899999999999991 2.0000000000000000 +47.8000000000000043 2.0000000000000000 +47.8100000000000023 2.0000000000000000 +47.8200000000000003 2.0000000000000000 +47.8299999999999983 2.0000000000000000 +47.8400000000000034 2.0000000000000000 +47.8500000000000014 2.0000000000000000 +47.8599999999999994 2.0000000000000000 +47.8700000000000045 2.0000000000000000 +47.8800000000000026 2.0000000000000000 +47.8900000000000006 2.0000000000000000 +47.8999999999999986 2.0000000000000000 +47.9100000000000037 2.0000000000000000 +47.9200000000000017 2.0000000000000000 +47.9299999999999997 2.0000000000000000 +47.9399999999999977 2.0000000000000000 +47.9500000000000028 2.0000000000000000 +47.9600000000000009 2.0000000000000000 +47.9699999999999989 2.0000000000000000 +47.9800000000000040 2.0000000000000000 +47.9900000000000020 2.0000000000000000 +48.0000000000000000 2.0000000000000000 +48.0099999999999980 2.0000000000000000 +48.0200000000000031 2.0000000000000000 +48.0300000000000011 2.0000000000000000 +48.0399999999999991 2.0000000000000000 +48.0500000000000043 2.0000000000000000 +48.0600000000000023 2.0000000000000000 +48.0700000000000003 2.0000000000000000 +48.0799999999999983 2.0000000000000000 +48.0900000000000034 2.0000000000000000 +48.1000000000000014 2.0000000000000000 +48.1099999999999994 2.0000000000000000 +48.1200000000000045 2.0000000000000000 +48.1300000000000026 2.0000000000000000 +48.1400000000000006 2.0000000000000000 +48.1499999999999986 2.0000000000000000 +48.1600000000000037 2.0000000000000000 +48.1700000000000017 2.0000000000000000 +48.1799999999999997 2.0000000000000000 +48.1899999999999977 2.0000000000000000 +48.2000000000000028 2.0000000000000000 +48.2100000000000009 2.0000000000000000 +48.2199999999999989 2.0000000000000000 +48.2300000000000040 2.0000000000000000 +48.2400000000000020 2.0000000000000000 +48.2500000000000000 2.0000000000000000 +48.2599999999999980 2.0000000000000000 +48.2700000000000031 2.0000000000000000 +48.2800000000000011 2.0000000000000000 +48.2899999999999991 2.0000000000000000 +48.3000000000000043 2.0000000000000000 +48.3100000000000023 2.0000000000000000 +48.3200000000000003 2.0000000000000000 +48.3299999999999983 2.0000000000000000 +48.3400000000000034 2.0000000000000000 +48.3500000000000014 2.0000000000000000 +48.3599999999999994 2.0000000000000000 +48.3700000000000045 2.0000000000000000 +48.3800000000000026 2.0000000000000000 +48.3900000000000006 2.0000000000000000 +48.3999999999999986 2.0000000000000000 +48.4100000000000037 2.0000000000000000 +48.4200000000000017 2.0000000000000000 +48.4299999999999997 2.0000000000000000 +48.4399999999999977 2.0000000000000000 +48.4500000000000028 2.0000000000000000 +48.4600000000000009 2.0000000000000000 +48.4699999999999989 2.0000000000000000 +48.4800000000000040 2.0000000000000000 +48.4900000000000020 2.0000000000000000 +48.5000000000000000 2.0000000000000000 +48.5099999999999980 2.0000000000000000 +48.5200000000000031 2.0000000000000000 +48.5300000000000011 2.0000000000000000 +48.5399999999999991 2.0000000000000000 +48.5500000000000043 2.0000000000000000 +48.5600000000000023 2.0000000000000000 +48.5700000000000003 2.0000000000000000 +48.5799999999999983 2.0000000000000000 +48.5900000000000034 2.0000000000000000 +48.6000000000000014 2.0000000000000000 +48.6099999999999994 2.0000000000000000 +48.6200000000000045 2.0000000000000000 +48.6300000000000026 2.0000000000000000 +48.6400000000000006 2.0000000000000000 +48.6499999999999986 2.0000000000000000 +48.6600000000000037 2.0000000000000000 +48.6700000000000017 2.0000000000000000 +48.6799999999999997 2.0000000000000000 +48.6899999999999977 2.0000000000000000 +48.7000000000000028 2.0000000000000000 +48.7100000000000009 2.0000000000000000 +48.7199999999999989 2.0000000000000000 +48.7300000000000040 2.0000000000000000 +48.7400000000000020 2.0000000000000000 +48.7500000000000000 2.0000000000000000 +48.7599999999999980 2.0000000000000000 +48.7700000000000031 2.0000000000000000 +48.7800000000000011 2.0000000000000000 +48.7899999999999991 2.0000000000000000 +48.8000000000000043 2.0000000000000000 +48.8100000000000023 2.0000000000000000 +48.8200000000000003 2.0000000000000000 +48.8299999999999983 2.0000000000000000 +48.8400000000000034 2.0000000000000000 +48.8500000000000014 2.0000000000000000 +48.8599999999999994 2.0000000000000000 +48.8700000000000045 2.0000000000000000 +48.8800000000000026 2.0000000000000000 +48.8900000000000006 2.0000000000000000 +48.8999999999999986 2.0000000000000000 +48.9100000000000037 2.0000000000000000 +48.9200000000000017 2.0000000000000000 +48.9299999999999997 2.0000000000000000 +48.9399999999999977 2.0000000000000000 +48.9500000000000028 2.0000000000000000 +48.9600000000000009 2.0000000000000000 +48.9699999999999989 2.0000000000000000 +48.9800000000000040 2.0000000000000000 +48.9900000000000020 2.0000000000000000 +49.0000000000000000 2.0000000000000000 +49.0099999999999980 2.0000000000000000 +49.0200000000000031 2.0000000000000000 +49.0300000000000011 2.0000000000000000 +49.0399999999999991 2.0000000000000000 +49.0500000000000043 2.0000000000000000 +49.0600000000000023 2.0000000000000000 +49.0700000000000003 2.0000000000000000 +49.0799999999999983 2.0000000000000000 +49.0900000000000034 2.0000000000000000 +49.1000000000000014 2.0000000000000000 +49.1099999999999994 2.0000000000000000 +49.1200000000000045 2.0000000000000000 +49.1300000000000026 2.0000000000000000 +49.1400000000000006 2.0000000000000000 +49.1499999999999986 2.0000000000000000 +49.1600000000000037 2.0000000000000000 +49.1700000000000017 2.0000000000000000 +49.1799999999999997 2.0000000000000000 +49.1899999999999977 2.0000000000000000 +49.2000000000000028 2.0000000000000000 +49.2100000000000009 2.0000000000000000 +49.2199999999999989 2.0000000000000000 +49.2300000000000040 2.0000000000000000 +49.2400000000000020 2.0000000000000000 +49.2500000000000000 2.0000000000000000 +49.2599999999999980 2.0000000000000000 +49.2700000000000031 2.0000000000000000 +49.2800000000000011 2.0000000000000000 +49.2899999999999991 2.0000000000000000 +49.3000000000000043 2.0000000000000000 +49.3100000000000023 2.0000000000000000 +49.3200000000000003 2.0000000000000000 +49.3299999999999983 2.0000000000000000 +49.3400000000000034 2.0000000000000000 +49.3500000000000014 2.0000000000000000 +49.3599999999999994 2.0000000000000000 +49.3700000000000045 2.0000000000000000 +49.3800000000000026 2.0000000000000000 +49.3900000000000006 2.0000000000000000 +49.3999999999999986 2.0000000000000000 +49.4100000000000037 2.0000000000000000 +49.4200000000000017 2.0000000000000000 +49.4299999999999997 2.0000000000000000 +49.4399999999999977 2.0000000000000000 +49.4500000000000028 2.0000000000000000 +49.4600000000000009 2.0000000000000000 +49.4699999999999989 2.0000000000000000 +49.4800000000000040 2.0000000000000000 +49.4900000000000020 2.0000000000000000 +49.5000000000000000 2.0000000000000000 +49.5099999999999980 2.0000000000000000 +49.5200000000000031 2.0000000000000000 +49.5300000000000011 2.0000000000000000 +49.5399999999999991 2.0000000000000000 +49.5500000000000043 2.0000000000000000 +49.5600000000000023 2.0000000000000000 +49.5700000000000003 2.0000000000000000 +49.5799999999999983 2.0000000000000000 +49.5900000000000034 2.0000000000000000 +49.6000000000000014 2.0000000000000000 +49.6099999999999994 2.0000000000000000 +49.6200000000000045 2.0000000000000000 +49.6300000000000026 2.0000000000000000 +49.6400000000000006 2.0000000000000000 +49.6499999999999986 2.0000000000000000 +49.6600000000000037 2.0000000000000000 +49.6700000000000017 2.0000000000000000 +49.6799999999999997 2.0000000000000000 +49.6899999999999977 2.0000000000000000 +49.7000000000000028 2.0000000000000000 +49.7100000000000009 2.0000000000000000 +49.7199999999999989 2.0000000000000000 +49.7300000000000040 2.0000000000000000 +49.7400000000000020 2.0000000000000000 +49.7500000000000000 2.0000000000000000 +49.7599999999999980 2.0000000000000000 +49.7700000000000031 2.0000000000000000 +49.7800000000000011 2.0000000000000000 +49.7899999999999991 2.0000000000000000 +49.8000000000000043 2.0000000000000000 +49.8100000000000023 2.0000000000000000 +49.8200000000000003 2.0000000000000000 +49.8299999999999983 2.0000000000000000 +49.8400000000000034 2.0000000000000000 +49.8500000000000014 2.0000000000000000 +49.8599999999999994 2.0000000000000000 +49.8700000000000045 2.0000000000000000 +49.8800000000000026 2.0000000000000000 +49.8900000000000006 2.0000000000000000 +49.8999999999999986 2.0000000000000000 +49.9100000000000037 2.0000000000000000 +49.9200000000000017 2.0000000000000000 +49.9299999999999997 2.0000000000000000 +49.9399999999999977 2.0000000000000000 +49.9500000000000028 2.0000000000000000 +49.9600000000000009 2.0000000000000000 +49.9699999999999989 2.0000000000000000 +49.9800000000000040 2.0000000000000000 +49.9900000000000020 2.0000000000000000 +50.0000000000000000 2.0000000000000000 +50.0099999999999980 2.0000000000000000 +50.0200000000000031 2.0000000000000000 +50.0300000000000011 2.0000000000000000 +50.0399999999999991 2.0000000000000000 +50.0500000000000043 2.0000000000000000 +50.0600000000000023 2.0000000000000000 +50.0700000000000003 2.0000000000000000 +50.0799999999999983 2.0000000000000000 +50.0900000000000034 2.0000000000000000 +50.1000000000000014 2.0000000000000000 +50.1099999999999994 2.0000000000000000 +50.1200000000000045 2.0000000000000000 +50.1300000000000026 2.0000000000000000 +50.1400000000000006 2.0000000000000000 +50.1499999999999986 2.0000000000000000 +50.1600000000000037 2.0000000000000000 +50.1700000000000017 2.0000000000000000 +50.1799999999999997 2.0000000000000000 +50.1899999999999977 2.0000000000000000 +50.2000000000000028 2.0000000000000000 +50.2100000000000009 2.0000000000000000 +50.2199999999999989 2.0000000000000000 +50.2300000000000040 2.0000000000000000 +50.2400000000000020 2.0000000000000000 +50.2500000000000000 2.0000000000000000 +50.2599999999999980 2.0000000000000000 +50.2700000000000031 2.0000000000000000 +50.2800000000000011 2.0000000000000000 +50.2899999999999991 2.0000000000000000 +50.3000000000000043 2.0000000000000000 +50.3100000000000023 2.0000000000000000 +50.3200000000000003 2.0000000000000000 +50.3299999999999983 2.0000000000000000 +50.3400000000000034 2.0000000000000000 +50.3500000000000014 2.0000000000000000 +50.3599999999999994 2.0000000000000000 +50.3700000000000045 2.0000000000000000 +50.3800000000000026 2.0000000000000000 +50.3900000000000006 2.0000000000000000 +50.3999999999999986 2.0000000000000000 +50.4100000000000037 2.0000000000000000 +50.4200000000000017 2.0000000000000000 +50.4299999999999997 2.0000000000000000 +50.4399999999999977 2.0000000000000000 +50.4500000000000028 2.0000000000000000 +50.4600000000000009 2.0000000000000000 +50.4699999999999989 2.0000000000000000 +50.4800000000000040 2.0000000000000000 +50.4900000000000020 2.0000000000000000 +50.5000000000000000 2.0000000000000000 +50.5099999999999980 2.0000000000000000 +50.5200000000000031 2.0000000000000000 +50.5300000000000011 2.0000000000000000 +50.5399999999999991 2.0000000000000000 +50.5500000000000043 2.0000000000000000 +50.5600000000000023 2.0000000000000000 +50.5700000000000003 2.0000000000000000 +50.5799999999999983 2.0000000000000000 +50.5900000000000034 2.0000000000000000 +50.6000000000000014 2.0000000000000000 +50.6099999999999994 2.0000000000000000 +50.6200000000000045 2.0000000000000000 +50.6300000000000026 2.0000000000000000 +50.6400000000000006 2.0000000000000000 +50.6499999999999986 2.0000000000000000 +50.6600000000000037 2.0000000000000000 +50.6700000000000017 2.0000000000000000 +50.6799999999999997 2.0000000000000000 +50.6899999999999977 2.0000000000000000 +50.7000000000000028 2.0000000000000000 +50.7100000000000009 2.0000000000000000 +50.7199999999999989 2.0000000000000000 +50.7300000000000040 2.0000000000000000 +50.7400000000000020 2.0000000000000000 +50.7500000000000000 2.0000000000000000 +50.7599999999999980 2.0000000000000000 +50.7700000000000031 2.0000000000000000 +50.7800000000000011 2.0000000000000000 +50.7899999999999991 2.0000000000000000 +50.8000000000000043 2.0000000000000000 +50.8100000000000023 2.0000000000000000 +50.8200000000000003 2.0000000000000000 +50.8299999999999983 2.0000000000000000 +50.8400000000000034 2.0000000000000000 +50.8500000000000014 2.0000000000000000 +50.8599999999999994 2.0000000000000000 +50.8700000000000045 2.0000000000000000 +50.8800000000000026 2.0000000000000000 +50.8900000000000006 2.0000000000000000 +50.8999999999999986 2.0000000000000000 +50.9100000000000037 2.0000000000000000 +50.9200000000000017 2.0000000000000000 +50.9299999999999997 2.0000000000000000 +50.9399999999999977 2.0000000000000000 +50.9500000000000028 2.0000000000000000 +50.9600000000000009 2.0000000000000000 +50.9699999999999989 2.0000000000000000 +50.9800000000000040 2.0000000000000000 +50.9900000000000020 2.0000000000000000 +51.0000000000000000 2.0000000000000000 +51.0099999999999980 2.0000000000000000 +51.0200000000000031 2.0000000000000000 +51.0300000000000011 2.0000000000000000 +51.0399999999999991 2.0000000000000000 +51.0500000000000043 2.0000000000000000 +51.0600000000000023 2.0000000000000000 +51.0700000000000003 2.0000000000000000 +51.0799999999999983 2.0000000000000000 +51.0900000000000034 2.0000000000000000 +51.1000000000000014 2.0000000000000000 +51.1099999999999994 2.0000000000000000 +51.1200000000000045 2.0000000000000000 +51.1300000000000026 2.0000000000000000 +51.1400000000000006 2.0000000000000000 +51.1499999999999986 2.0000000000000000 +51.1600000000000037 2.0000000000000000 +51.1700000000000017 2.0000000000000000 +51.1799999999999997 2.0000000000000000 +51.1899999999999977 2.0000000000000000 +51.2000000000000028 2.0000000000000000 +51.2100000000000009 2.0000000000000000 +51.2199999999999989 2.0000000000000000 +51.2300000000000040 2.0000000000000000 +51.2400000000000020 2.0000000000000000 +51.2500000000000000 2.0000000000000000 +51.2599999999999980 2.0000000000000000 +51.2700000000000031 2.0000000000000000 +51.2800000000000011 2.0000000000000000 +51.2899999999999991 2.0000000000000000 +51.3000000000000043 2.0000000000000000 +51.3100000000000023 2.0000000000000000 +51.3200000000000003 2.0000000000000000 +51.3299999999999983 2.0000000000000000 +51.3400000000000034 2.0000000000000000 +51.3500000000000014 2.0000000000000000 +51.3599999999999994 2.0000000000000000 +51.3700000000000045 2.0000000000000000 +51.3800000000000026 2.0000000000000000 +51.3900000000000006 2.0000000000000000 +51.3999999999999986 2.0000000000000000 +51.4100000000000037 2.0000000000000000 +51.4200000000000017 2.0000000000000000 +51.4299999999999997 2.0000000000000000 +51.4399999999999977 2.0000000000000000 +51.4500000000000028 2.0000000000000000 +51.4600000000000009 2.0000000000000000 +51.4699999999999989 2.0000000000000000 +51.4800000000000040 2.0000000000000000 +51.4900000000000020 2.0000000000000000 +51.5000000000000000 2.0000000000000000 +51.5099999999999980 2.0000000000000000 +51.5200000000000031 2.0000000000000000 +51.5300000000000011 2.0000000000000000 +51.5399999999999991 2.0000000000000000 +51.5500000000000043 2.0000000000000000 +51.5600000000000023 2.0000000000000000 +51.5700000000000003 2.0000000000000000 +51.5799999999999983 2.0000000000000000 +51.5900000000000034 2.0000000000000000 +51.6000000000000014 2.0000000000000000 +51.6099999999999994 2.0000000000000000 +51.6200000000000045 2.0000000000000000 +51.6300000000000026 2.0000000000000000 +51.6400000000000006 2.0000000000000000 +51.6499999999999986 2.0000000000000000 +51.6600000000000037 2.0000000000000000 +51.6700000000000017 2.0000000000000000 +51.6799999999999997 2.0000000000000000 +51.6899999999999977 2.0000000000000000 +51.7000000000000028 2.0000000000000000 +51.7100000000000009 2.0000000000000000 +51.7199999999999989 2.0000000000000000 +51.7300000000000040 2.0000000000000000 +51.7400000000000020 2.0000000000000000 +51.7500000000000000 2.0000000000000000 +51.7599999999999980 2.0000000000000000 +51.7700000000000031 2.0000000000000000 +51.7800000000000011 2.0000000000000000 +51.7899999999999991 2.0000000000000000 +51.8000000000000043 2.0000000000000000 +51.8100000000000023 2.0000000000000000 +51.8200000000000003 2.0000000000000000 +51.8299999999999983 2.0000000000000000 +51.8400000000000034 2.0000000000000000 +51.8500000000000014 2.0000000000000000 +51.8599999999999994 2.0000000000000000 +51.8700000000000045 2.0000000000000000 +51.8800000000000026 2.0000000000000000 +51.8900000000000006 2.0000000000000000 +51.8999999999999986 2.0000000000000000 +51.9100000000000037 2.0000000000000000 +51.9200000000000017 2.0000000000000000 +51.9299999999999997 2.0000000000000000 +51.9399999999999977 2.0000000000000000 +51.9500000000000028 2.0000000000000000 +51.9600000000000009 2.0000000000000000 +51.9699999999999989 2.0000000000000000 +51.9800000000000040 2.0000000000000000 +51.9900000000000020 2.0000000000000000 +52.0000000000000000 2.0000000000000000 +52.0099999999999980 2.0000000000000000 +52.0200000000000031 2.0000000000000000 +52.0300000000000011 2.0000000000000000 +52.0399999999999991 2.0000000000000000 +52.0500000000000043 2.0000000000000000 +52.0600000000000023 2.0000000000000000 +52.0700000000000003 2.0000000000000000 +52.0799999999999983 2.0000000000000000 +52.0900000000000034 2.0000000000000000 +52.1000000000000014 2.0000000000000000 +52.1099999999999994 2.0000000000000000 +52.1200000000000045 2.0000000000000000 +52.1300000000000026 2.0000000000000000 +52.1400000000000006 2.0000000000000000 +52.1499999999999986 2.0000000000000000 +52.1600000000000037 2.0000000000000000 +52.1700000000000017 2.0000000000000000 +52.1799999999999997 2.0000000000000000 +52.1899999999999977 2.0000000000000000 +52.2000000000000028 2.0000000000000000 +52.2100000000000009 2.0000000000000000 +52.2199999999999989 2.0000000000000000 +52.2300000000000040 2.0000000000000000 +52.2400000000000020 2.0000000000000000 +52.2500000000000000 2.0000000000000000 +52.2599999999999980 2.0000000000000000 +52.2700000000000031 2.0000000000000000 +52.2800000000000011 2.0000000000000000 +52.2899999999999991 2.0000000000000000 +52.3000000000000043 2.0000000000000000 +52.3100000000000023 2.0000000000000000 +52.3200000000000003 2.0000000000000000 +52.3299999999999983 2.0000000000000000 +52.3400000000000034 2.0000000000000000 +52.3500000000000014 2.0000000000000000 +52.3599999999999994 2.0000000000000000 +52.3700000000000045 2.0000000000000000 +52.3800000000000026 2.0000000000000000 +52.3900000000000006 2.0000000000000000 +52.3999999999999986 2.0000000000000000 +52.4100000000000037 2.0000000000000000 +52.4200000000000017 2.0000000000000000 +52.4299999999999997 2.0000000000000000 +52.4399999999999977 2.0000000000000000 +52.4500000000000028 2.0000000000000000 +52.4600000000000009 2.0000000000000000 +52.4699999999999989 2.0000000000000000 +52.4800000000000040 2.0000000000000000 +52.4900000000000020 2.0000000000000000 +52.5000000000000000 2.0000000000000000 +52.5099999999999980 2.0000000000000000 +52.5200000000000031 2.0000000000000000 +52.5300000000000011 2.0000000000000000 +52.5399999999999991 2.0000000000000000 +52.5500000000000043 2.0000000000000000 +52.5600000000000023 2.0000000000000000 +52.5700000000000003 2.0000000000000000 +52.5799999999999983 2.0000000000000000 +52.5900000000000034 2.0000000000000000 +52.6000000000000014 2.0000000000000000 +52.6099999999999994 2.0000000000000000 +52.6200000000000045 2.0000000000000000 +52.6300000000000026 2.0000000000000000 +52.6400000000000006 2.0000000000000000 +52.6499999999999986 2.0000000000000000 +52.6600000000000037 2.0000000000000000 +52.6700000000000017 2.0000000000000000 +52.6799999999999997 2.0000000000000000 +52.6899999999999977 2.0000000000000000 +52.7000000000000028 2.0000000000000000 +52.7100000000000009 2.0000000000000000 +52.7199999999999989 2.0000000000000000 +52.7300000000000040 2.0000000000000000 +52.7400000000000020 2.0000000000000000 +52.7500000000000000 2.0000000000000000 +52.7599999999999980 2.0000000000000000 +52.7700000000000031 2.0000000000000000 +52.7800000000000011 2.0000000000000000 +52.7899999999999991 2.0000000000000000 +52.8000000000000043 2.0000000000000000 +52.8100000000000023 2.0000000000000000 +52.8200000000000003 2.0000000000000000 +52.8299999999999983 2.0000000000000000 +52.8400000000000034 2.0000000000000000 +52.8500000000000014 2.0000000000000000 +52.8599999999999994 2.0000000000000000 +52.8700000000000045 2.0000000000000000 +52.8800000000000026 2.0000000000000000 +52.8900000000000006 2.0000000000000000 +52.8999999999999986 2.0000000000000000 +52.9100000000000037 2.0000000000000000 +52.9200000000000017 2.0000000000000000 +52.9299999999999997 2.0000000000000000 +52.9399999999999977 2.0000000000000000 +52.9500000000000028 2.0000000000000000 +52.9600000000000009 2.0000000000000000 +52.9699999999999989 2.0000000000000000 +52.9800000000000040 2.0000000000000000 +52.9900000000000020 2.0000000000000000 +53.0000000000000000 2.0000000000000000 +53.0099999999999980 2.0000000000000000 +53.0200000000000031 2.0000000000000000 +53.0300000000000011 2.0000000000000000 +53.0399999999999991 2.0000000000000000 +53.0500000000000043 2.0000000000000000 +53.0600000000000023 2.0000000000000000 +53.0700000000000003 2.0000000000000000 +53.0799999999999983 2.0000000000000000 +53.0900000000000034 2.0000000000000000 +53.1000000000000014 2.0000000000000000 +53.1099999999999994 2.0000000000000000 +53.1200000000000045 2.0000000000000000 +53.1300000000000026 2.0000000000000000 +53.1400000000000006 2.0000000000000000 +53.1499999999999986 2.0000000000000000 +53.1600000000000037 2.0000000000000000 +53.1700000000000017 2.0000000000000000 +53.1799999999999997 2.0000000000000000 +53.1899999999999977 2.0000000000000000 +53.2000000000000028 2.0000000000000000 +53.2100000000000009 2.0000000000000000 +53.2199999999999989 2.0000000000000000 +53.2300000000000040 2.0000000000000000 +53.2400000000000020 2.0000000000000000 +53.2500000000000000 2.0000000000000000 +53.2599999999999980 2.0000000000000000 +53.2700000000000031 2.0000000000000000 +53.2800000000000011 2.0000000000000000 +53.2899999999999991 2.0000000000000000 +53.3000000000000043 2.0000000000000000 +53.3100000000000023 2.0000000000000000 +53.3200000000000003 2.0000000000000000 +53.3299999999999983 2.0000000000000000 +53.3400000000000034 2.0000000000000000 +53.3500000000000014 2.0000000000000000 +53.3599999999999994 2.0000000000000000 +53.3700000000000045 2.0000000000000000 +53.3800000000000026 2.0000000000000000 +53.3900000000000006 2.0000000000000000 +53.3999999999999986 2.0000000000000000 +53.4100000000000037 2.0000000000000000 +53.4200000000000017 2.0000000000000000 +53.4299999999999997 2.0000000000000000 +53.4399999999999977 2.0000000000000000 +53.4500000000000028 2.0000000000000000 +53.4600000000000009 2.0000000000000000 +53.4699999999999989 2.0000000000000000 +53.4800000000000040 2.0000000000000000 +53.4900000000000020 2.0000000000000000 +53.5000000000000000 2.0000000000000000 +53.5099999999999980 2.0000000000000000 +53.5200000000000031 2.0000000000000000 +53.5300000000000011 2.0000000000000000 +53.5399999999999991 2.0000000000000000 +53.5500000000000043 2.0000000000000000 +53.5600000000000023 2.0000000000000000 +53.5700000000000003 2.0000000000000000 +53.5799999999999983 2.0000000000000000 +53.5900000000000034 2.0000000000000000 +53.6000000000000014 2.0000000000000000 +53.6099999999999994 2.0000000000000000 +53.6200000000000045 2.0000000000000000 +53.6300000000000026 2.0000000000000000 +53.6400000000000006 2.0000000000000000 +53.6499999999999986 2.0000000000000000 +53.6600000000000037 2.0000000000000000 +53.6700000000000017 2.0000000000000000 +53.6799999999999997 2.0000000000000000 +53.6899999999999977 2.0000000000000000 +53.7000000000000028 2.0000000000000000 +53.7100000000000009 2.0000000000000000 +53.7199999999999989 2.0000000000000000 +53.7300000000000040 2.0000000000000000 +53.7400000000000020 2.0000000000000000 +53.7500000000000000 2.0000000000000000 +53.7599999999999980 2.0000000000000000 +53.7700000000000031 2.0000000000000000 +53.7800000000000011 2.0000000000000000 +53.7899999999999991 2.0000000000000000 +53.8000000000000043 2.0000000000000000 +53.8100000000000023 2.0000000000000000 +53.8200000000000003 2.0000000000000000 +53.8299999999999983 2.0000000000000000 +53.8400000000000034 2.0000000000000000 +53.8500000000000014 2.0000000000000000 +53.8599999999999994 2.0000000000000000 +53.8700000000000045 2.0000000000000000 +53.8800000000000026 2.0000000000000000 +53.8900000000000006 2.0000000000000000 +53.8999999999999986 2.0000000000000000 +53.9100000000000037 2.0000000000000000 +53.9200000000000017 2.0000000000000000 +53.9299999999999997 2.0000000000000000 +53.9399999999999977 2.0000000000000000 +53.9500000000000028 2.0000000000000000 +53.9600000000000009 2.0000000000000000 +53.9699999999999989 2.0000000000000000 +53.9800000000000040 2.0000000000000000 +53.9900000000000020 2.0000000000000000 +54.0000000000000000 2.0000000000000000 +54.0099999999999980 2.0000000000000000 +54.0200000000000031 2.0000000000000000 +54.0300000000000011 2.0000000000000000 +54.0399999999999991 2.0000000000000000 +54.0500000000000043 2.0000000000000000 +54.0600000000000023 2.0000000000000000 +54.0700000000000003 2.0000000000000000 +54.0799999999999983 2.0000000000000000 +54.0900000000000034 2.0000000000000000 +54.1000000000000014 2.0000000000000000 +54.1099999999999994 2.0000000000000000 +54.1200000000000045 2.0000000000000000 +54.1300000000000026 2.0000000000000000 +54.1400000000000006 2.0000000000000000 +54.1499999999999986 2.0000000000000000 +54.1600000000000037 2.0000000000000000 +54.1700000000000017 2.0000000000000000 +54.1799999999999997 2.0000000000000000 +54.1899999999999977 2.0000000000000000 +54.2000000000000028 2.0000000000000000 +54.2100000000000009 2.0000000000000000 +54.2199999999999989 2.0000000000000000 +54.2300000000000040 2.0000000000000000 +54.2400000000000020 2.0000000000000000 +54.2500000000000000 2.0000000000000000 +54.2599999999999980 2.0000000000000000 +54.2700000000000031 2.0000000000000000 +54.2800000000000011 2.0000000000000000 +54.2899999999999991 2.0000000000000000 +54.3000000000000043 2.0000000000000000 +54.3100000000000023 2.0000000000000000 +54.3200000000000003 2.0000000000000000 +54.3299999999999983 2.0000000000000000 +54.3400000000000034 2.0000000000000000 +54.3500000000000014 2.0000000000000000 +54.3599999999999994 2.0000000000000000 +54.3700000000000045 2.0000000000000000 +54.3800000000000026 2.0000000000000000 +54.3900000000000006 2.0000000000000000 +54.3999999999999986 2.0000000000000000 +54.4100000000000037 2.0000000000000000 +54.4200000000000017 2.0000000000000000 +54.4299999999999997 2.0000000000000000 +54.4399999999999977 2.0000000000000000 +54.4500000000000028 2.0000000000000000 +54.4600000000000009 2.0000000000000000 +54.4699999999999989 2.0000000000000000 +54.4800000000000040 2.0000000000000000 +54.4900000000000020 2.0000000000000000 +54.5000000000000000 2.0000000000000000 +54.5099999999999980 2.0000000000000000 +54.5200000000000031 2.0000000000000000 +54.5300000000000011 2.0000000000000000 +54.5399999999999991 2.0000000000000000 +54.5500000000000043 2.0000000000000000 +54.5600000000000023 2.0000000000000000 +54.5700000000000003 2.0000000000000000 +54.5799999999999983 2.0000000000000000 +54.5900000000000034 2.0000000000000000 +54.6000000000000014 2.0000000000000000 +54.6099999999999994 2.0000000000000000 +54.6200000000000045 2.0000000000000000 +54.6300000000000026 2.0000000000000000 +54.6400000000000006 2.0000000000000000 +54.6499999999999986 2.0000000000000000 +54.6600000000000037 2.0000000000000000 +54.6700000000000017 2.0000000000000000 +54.6799999999999997 2.0000000000000000 +54.6899999999999977 2.0000000000000000 +54.7000000000000028 2.0000000000000000 +54.7100000000000009 2.0000000000000000 +54.7199999999999989 2.0000000000000000 +54.7300000000000040 2.0000000000000000 +54.7400000000000020 2.0000000000000000 +54.7500000000000000 2.0000000000000000 +54.7599999999999980 2.0000000000000000 +54.7700000000000031 2.0000000000000000 +54.7800000000000011 2.0000000000000000 +54.7899999999999991 2.0000000000000000 +54.8000000000000043 2.0000000000000000 +54.8100000000000023 2.0000000000000000 +54.8200000000000003 2.0000000000000000 +54.8299999999999983 2.0000000000000000 +54.8400000000000034 2.0000000000000000 +54.8500000000000014 2.0000000000000000 +54.8599999999999994 2.0000000000000000 +54.8700000000000045 2.0000000000000000 +54.8800000000000026 2.0000000000000000 +54.8900000000000006 2.0000000000000000 +54.8999999999999986 2.0000000000000000 +54.9100000000000037 2.0000000000000000 +54.9200000000000017 2.0000000000000000 +54.9299999999999997 2.0000000000000000 +54.9399999999999977 2.0000000000000000 +54.9500000000000028 2.0000000000000000 +54.9600000000000009 2.0000000000000000 +54.9699999999999989 2.0000000000000000 +54.9800000000000040 2.0000000000000000 +54.9900000000000020 2.0000000000000000 +55.0000000000000000 2.0000000000000000 +55.0099999999999980 2.0000000000000000 +55.0200000000000031 2.0000000000000000 +55.0300000000000011 2.0000000000000000 +55.0399999999999991 2.0000000000000000 +55.0500000000000043 2.0000000000000000 +55.0600000000000023 2.0000000000000000 +55.0700000000000003 2.0000000000000000 +55.0799999999999983 2.0000000000000000 +55.0900000000000034 2.0000000000000000 +55.1000000000000014 2.0000000000000000 +55.1099999999999994 2.0000000000000000 +55.1200000000000045 2.0000000000000000 +55.1300000000000026 2.0000000000000000 +55.1400000000000006 2.0000000000000000 +55.1499999999999986 2.0000000000000000 +55.1600000000000037 2.0000000000000000 +55.1700000000000017 2.0000000000000000 +55.1799999999999997 2.0000000000000000 +55.1899999999999977 2.0000000000000000 +55.2000000000000028 2.0000000000000000 +55.2100000000000009 2.0000000000000000 +55.2199999999999989 2.0000000000000000 +55.2300000000000040 2.0000000000000000 +55.2400000000000020 2.0000000000000000 +55.2500000000000000 2.0000000000000000 +55.2599999999999980 2.0000000000000000 +55.2700000000000031 2.0000000000000000 +55.2800000000000011 2.0000000000000000 +55.2899999999999991 2.0000000000000000 +55.3000000000000043 2.0000000000000000 +55.3100000000000023 2.0000000000000000 +55.3200000000000003 2.0000000000000000 +55.3299999999999983 2.0000000000000000 +55.3400000000000034 2.0000000000000000 +55.3500000000000014 2.0000000000000000 +55.3599999999999994 2.0000000000000000 +55.3700000000000045 2.0000000000000000 +55.3800000000000026 2.0000000000000000 +55.3900000000000006 2.0000000000000000 +55.3999999999999986 2.0000000000000000 +55.4100000000000037 2.0000000000000000 +55.4200000000000017 2.0000000000000000 +55.4299999999999997 2.0000000000000000 +55.4399999999999977 2.0000000000000000 +55.4500000000000028 2.0000000000000000 +55.4600000000000009 2.0000000000000000 +55.4699999999999989 2.0000000000000000 +55.4800000000000040 2.0000000000000000 +55.4900000000000020 2.0000000000000000 +55.5000000000000000 2.0000000000000000 +55.5099999999999980 2.0000000000000000 +55.5200000000000031 2.0000000000000000 +55.5300000000000011 2.0000000000000000 +55.5399999999999991 2.0000000000000000 +55.5500000000000043 2.0000000000000000 +55.5600000000000023 2.0000000000000000 +55.5700000000000003 2.0000000000000000 +55.5799999999999983 2.0000000000000000 +55.5900000000000034 2.0000000000000000 +55.6000000000000014 2.0000000000000000 +55.6099999999999994 2.0000000000000000 +55.6200000000000045 2.0000000000000000 +55.6300000000000026 2.0000000000000000 +55.6400000000000006 2.0000000000000000 +55.6499999999999986 2.0000000000000000 +55.6600000000000037 2.0000000000000000 +55.6700000000000017 2.0000000000000000 +55.6799999999999997 2.0000000000000000 +55.6899999999999977 2.0000000000000000 +55.7000000000000028 2.0000000000000000 +55.7100000000000009 2.0000000000000000 +55.7199999999999989 2.0000000000000000 +55.7300000000000040 2.0000000000000000 +55.7400000000000020 2.0000000000000000 +55.7500000000000000 2.0000000000000000 +55.7599999999999980 2.0000000000000000 +55.7700000000000031 2.0000000000000000 +55.7800000000000011 2.0000000000000000 +55.7899999999999991 2.0000000000000000 +55.8000000000000043 2.0000000000000000 +55.8100000000000023 2.0000000000000000 +55.8200000000000003 2.0000000000000000 +55.8299999999999983 2.0000000000000000 +55.8400000000000034 2.0000000000000000 +55.8500000000000014 2.0000000000000000 +55.8599999999999994 2.0000000000000000 +55.8700000000000045 2.0000000000000000 +55.8800000000000026 2.0000000000000000 +55.8900000000000006 2.0000000000000000 +55.8999999999999986 2.0000000000000000 +55.9100000000000037 2.0000000000000000 +55.9200000000000017 2.0000000000000000 +55.9299999999999997 2.0000000000000000 +55.9399999999999977 2.0000000000000000 +55.9500000000000028 2.0000000000000000 +55.9600000000000009 2.0000000000000000 +55.9699999999999989 2.0000000000000000 +55.9800000000000040 2.0000000000000000 +55.9900000000000020 2.0000000000000000 +56.0000000000000000 2.0000000000000000 +56.0099999999999980 2.0000000000000000 +56.0200000000000031 2.0000000000000000 +56.0300000000000011 2.0000000000000000 +56.0399999999999991 2.0000000000000000 +56.0500000000000043 2.0000000000000000 +56.0600000000000023 2.0000000000000000 +56.0700000000000003 2.0000000000000000 +56.0799999999999983 2.0000000000000000 +56.0900000000000034 2.0000000000000000 +56.1000000000000014 2.0000000000000000 +56.1099999999999994 2.0000000000000000 +56.1200000000000045 2.0000000000000000 +56.1300000000000026 2.0000000000000000 +56.1400000000000006 2.0000000000000000 +56.1499999999999986 2.0000000000000000 +56.1600000000000037 2.0000000000000000 +56.1700000000000017 2.0000000000000000 +56.1799999999999997 2.0000000000000000 +56.1899999999999977 2.0000000000000000 +56.2000000000000028 2.0000000000000000 +56.2100000000000009 2.0000000000000000 +56.2199999999999989 2.0000000000000000 +56.2300000000000040 2.0000000000000000 +56.2400000000000020 2.0000000000000000 +56.2500000000000000 2.0000000000000000 +56.2599999999999980 2.0000000000000000 +56.2700000000000031 2.0000000000000000 +56.2800000000000011 2.0000000000000000 +56.2899999999999991 2.0000000000000000 +56.3000000000000043 2.0000000000000000 +56.3100000000000023 2.0000000000000000 +56.3200000000000003 2.0000000000000000 +56.3299999999999983 2.0000000000000000 +56.3400000000000034 2.0000000000000000 +56.3500000000000014 2.0000000000000000 +56.3599999999999994 2.0000000000000000 +56.3700000000000045 2.0000000000000000 +56.3800000000000026 2.0000000000000000 +56.3900000000000006 2.0000000000000000 +56.3999999999999986 2.0000000000000000 +56.4100000000000037 2.0000000000000000 +56.4200000000000017 2.0000000000000000 +56.4299999999999997 2.0000000000000000 +56.4399999999999977 2.0000000000000000 +56.4500000000000028 2.0000000000000000 +56.4600000000000009 2.0000000000000000 +56.4699999999999989 2.0000000000000000 +56.4800000000000040 2.0000000000000000 +56.4900000000000020 2.0000000000000000 +56.5000000000000000 2.0000000000000000 +56.5099999999999980 2.0000000000000000 +56.5200000000000031 2.0000000000000000 +56.5300000000000011 2.0000000000000000 +56.5399999999999991 2.0000000000000000 +56.5500000000000043 2.0000000000000000 +56.5600000000000023 2.0000000000000000 +56.5700000000000003 2.0000000000000000 +56.5799999999999983 2.0000000000000000 +56.5900000000000034 2.0000000000000000 +56.6000000000000014 2.0000000000000000 +56.6099999999999994 2.0000000000000000 +56.6200000000000045 2.0000000000000000 +56.6300000000000026 2.0000000000000000 +56.6400000000000006 2.0000000000000000 +56.6499999999999986 2.0000000000000000 +56.6600000000000037 2.0000000000000000 +56.6700000000000017 2.0000000000000000 +56.6799999999999997 2.0000000000000000 +56.6899999999999977 2.0000000000000000 +56.7000000000000028 2.0000000000000000 +56.7100000000000009 2.0000000000000000 +56.7199999999999989 2.0000000000000000 +56.7300000000000040 2.0000000000000000 +56.7400000000000020 2.0000000000000000 +56.7500000000000000 2.0000000000000000 +56.7599999999999980 2.0000000000000000 +56.7700000000000031 2.0000000000000000 +56.7800000000000011 2.0000000000000000 +56.7899999999999991 2.0000000000000000 +56.8000000000000043 2.0000000000000000 +56.8100000000000023 2.0000000000000000 +56.8200000000000003 2.0000000000000000 +56.8299999999999983 2.0000000000000000 +56.8400000000000034 2.0000000000000000 +56.8500000000000014 2.0000000000000000 +56.8599999999999994 2.0000000000000000 +56.8700000000000045 2.0000000000000000 +56.8800000000000026 2.0000000000000000 +56.8900000000000006 2.0000000000000000 +56.8999999999999986 2.0000000000000000 +56.9100000000000037 2.0000000000000000 +56.9200000000000017 2.0000000000000000 +56.9299999999999997 2.0000000000000000 +56.9399999999999977 2.0000000000000000 +56.9500000000000028 2.0000000000000000 +56.9600000000000009 2.0000000000000000 +56.9699999999999989 2.0000000000000000 +56.9800000000000040 2.0000000000000000 +56.9900000000000020 2.0000000000000000 +57.0000000000000000 2.0000000000000000 +57.0099999999999980 2.0000000000000000 +57.0200000000000031 2.0000000000000000 +57.0300000000000011 2.0000000000000000 +57.0399999999999991 2.0000000000000000 +57.0500000000000043 2.0000000000000000 +57.0600000000000023 2.0000000000000000 +57.0700000000000003 2.0000000000000000 +57.0799999999999983 2.0000000000000000 +57.0900000000000034 2.0000000000000000 +57.1000000000000014 2.0000000000000000 +57.1099999999999994 2.0000000000000000 +57.1200000000000045 2.0000000000000000 +57.1300000000000026 2.0000000000000000 +57.1400000000000006 2.0000000000000000 +57.1499999999999986 2.0000000000000000 +57.1600000000000037 2.0000000000000000 +57.1700000000000017 2.0000000000000000 +57.1799999999999997 2.0000000000000000 +57.1899999999999977 2.0000000000000000 +57.2000000000000028 2.0000000000000000 +57.2100000000000009 2.0000000000000000 +57.2199999999999989 2.0000000000000000 +57.2300000000000040 2.0000000000000000 +57.2400000000000020 2.0000000000000000 +57.2500000000000000 2.0000000000000000 +57.2599999999999980 2.0000000000000000 +57.2700000000000031 2.0000000000000000 +57.2800000000000011 2.0000000000000000 +57.2899999999999991 2.0000000000000000 +57.3000000000000043 2.0000000000000000 +57.3100000000000023 2.0000000000000000 +57.3200000000000003 2.0000000000000000 +57.3299999999999983 2.0000000000000000 +57.3400000000000034 2.0000000000000000 +57.3500000000000014 2.0000000000000000 +57.3599999999999994 2.0000000000000000 +57.3700000000000045 2.0000000000000000 +57.3800000000000026 2.0000000000000000 +57.3900000000000006 2.0000000000000000 +57.3999999999999986 2.0000000000000000 +57.4100000000000037 2.0000000000000000 +57.4200000000000017 2.0000000000000000 +57.4299999999999997 2.0000000000000000 +57.4399999999999977 2.0000000000000000 +57.4500000000000028 2.0000000000000000 +57.4600000000000009 2.0000000000000000 +57.4699999999999989 2.0000000000000000 +57.4800000000000040 2.0000000000000000 +57.4900000000000020 2.0000000000000000 +57.5000000000000000 2.0000000000000000 +57.5099999999999980 2.0000000000000000 +57.5200000000000031 2.0000000000000000 +57.5300000000000011 2.0000000000000000 +57.5399999999999991 2.0000000000000000 +57.5500000000000043 2.0000000000000000 +57.5600000000000023 2.0000000000000000 +57.5700000000000003 2.0000000000000000 +57.5799999999999983 2.0000000000000000 +57.5900000000000034 2.0000000000000000 +57.6000000000000014 2.0000000000000000 +57.6099999999999994 2.0000000000000000 +57.6200000000000045 2.0000000000000000 +57.6300000000000026 2.0000000000000000 +57.6400000000000006 2.0000000000000000 +57.6499999999999986 2.0000000000000000 +57.6600000000000037 2.0000000000000000 +57.6700000000000017 2.0000000000000000 +57.6799999999999997 2.0000000000000000 +57.6899999999999977 2.0000000000000000 +57.7000000000000028 2.0000000000000000 +57.7100000000000009 2.0000000000000000 +57.7199999999999989 2.0000000000000000 +57.7300000000000040 2.0000000000000000 +57.7400000000000020 2.0000000000000000 +57.7500000000000000 2.0000000000000000 +57.7599999999999980 2.0000000000000000 +57.7700000000000031 2.0000000000000000 +57.7800000000000011 2.0000000000000000 +57.7899999999999991 2.0000000000000000 +57.8000000000000043 2.0000000000000000 +57.8100000000000023 2.0000000000000000 +57.8200000000000003 2.0000000000000000 +57.8299999999999983 2.0000000000000000 +57.8400000000000034 2.0000000000000000 +57.8500000000000014 2.0000000000000000 +57.8599999999999994 2.0000000000000000 +57.8700000000000045 2.0000000000000000 +57.8800000000000026 2.0000000000000000 +57.8900000000000006 2.0000000000000000 +57.8999999999999986 2.0000000000000000 +57.9100000000000037 2.0000000000000000 +57.9200000000000017 2.0000000000000000 +57.9299999999999997 2.0000000000000000 +57.9399999999999977 2.0000000000000000 +57.9500000000000028 2.0000000000000000 +57.9600000000000009 2.0000000000000000 +57.9699999999999989 2.0000000000000000 +57.9800000000000040 2.0000000000000000 +57.9900000000000020 2.0000000000000000 +58.0000000000000000 2.0000000000000000 +58.0099999999999980 2.0000000000000000 +58.0200000000000031 2.0000000000000000 +58.0300000000000011 2.0000000000000000 +58.0399999999999991 2.0000000000000000 +58.0500000000000043 2.0000000000000000 +58.0600000000000023 2.0000000000000000 +58.0700000000000003 2.0000000000000000 +58.0799999999999983 2.0000000000000000 +58.0900000000000034 2.0000000000000000 +58.1000000000000014 2.0000000000000000 +58.1099999999999994 2.0000000000000000 +58.1200000000000045 2.0000000000000000 +58.1300000000000026 2.0000000000000000 +58.1400000000000006 2.0000000000000000 +58.1499999999999986 2.0000000000000000 +58.1600000000000037 2.0000000000000000 +58.1700000000000017 2.0000000000000000 +58.1799999999999997 2.0000000000000000 +58.1899999999999977 2.0000000000000000 +58.2000000000000028 2.0000000000000000 +58.2100000000000009 2.0000000000000000 +58.2199999999999989 2.0000000000000000 +58.2300000000000040 2.0000000000000000 +58.2400000000000020 2.0000000000000000 +58.2500000000000000 2.0000000000000000 +58.2599999999999980 2.0000000000000000 +58.2700000000000031 2.0000000000000000 +58.2800000000000011 2.0000000000000000 +58.2899999999999991 2.0000000000000000 +58.3000000000000043 2.0000000000000000 +58.3100000000000023 2.0000000000000000 +58.3200000000000003 2.0000000000000000 +58.3299999999999983 2.0000000000000000 +58.3400000000000034 2.0000000000000000 +58.3500000000000014 2.0000000000000000 +58.3599999999999994 2.0000000000000000 +58.3700000000000045 2.0000000000000000 +58.3800000000000026 2.0000000000000000 +58.3900000000000006 2.0000000000000000 +58.3999999999999986 2.0000000000000000 +58.4100000000000037 2.0000000000000000 +58.4200000000000017 2.0000000000000000 +58.4299999999999997 2.0000000000000000 +58.4399999999999977 2.0000000000000000 +58.4500000000000028 2.0000000000000000 +58.4600000000000009 2.0000000000000000 +58.4699999999999989 2.0000000000000000 +58.4800000000000040 2.0000000000000000 +58.4900000000000020 2.0000000000000000 +58.5000000000000000 2.0000000000000000 +58.5099999999999980 2.0000000000000000 +58.5200000000000031 2.0000000000000000 +58.5300000000000011 2.0000000000000000 +58.5399999999999991 2.0000000000000000 +58.5500000000000043 2.0000000000000000 +58.5600000000000023 2.0000000000000000 +58.5700000000000003 2.0000000000000000 +58.5799999999999983 2.0000000000000000 +58.5900000000000034 2.0000000000000000 +58.6000000000000014 2.0000000000000000 +58.6099999999999994 2.0000000000000000 +58.6200000000000045 2.0000000000000000 +58.6300000000000026 2.0000000000000000 +58.6400000000000006 2.0000000000000000 +58.6499999999999986 2.0000000000000000 +58.6600000000000037 2.0000000000000000 +58.6700000000000017 2.0000000000000000 +58.6799999999999997 2.0000000000000000 +58.6899999999999977 2.0000000000000000 +58.7000000000000028 2.0000000000000000 +58.7100000000000009 2.0000000000000000 +58.7199999999999989 2.0000000000000000 +58.7300000000000040 2.0000000000000000 +58.7400000000000020 2.0000000000000000 +58.7500000000000000 2.0000000000000000 +58.7599999999999980 2.0000000000000000 +58.7700000000000031 2.0000000000000000 +58.7800000000000011 2.0000000000000000 +58.7899999999999991 2.0000000000000000 +58.8000000000000043 2.0000000000000000 +58.8100000000000023 2.0000000000000000 +58.8200000000000003 2.0000000000000000 +58.8299999999999983 2.0000000000000000 +58.8400000000000034 2.0000000000000000 +58.8500000000000014 2.0000000000000000 +58.8599999999999994 2.0000000000000000 +58.8700000000000045 2.0000000000000000 +58.8800000000000026 2.0000000000000000 +58.8900000000000006 2.0000000000000000 +58.8999999999999986 2.0000000000000000 +58.9100000000000037 2.0000000000000000 +58.9200000000000017 2.0000000000000000 +58.9299999999999997 2.0000000000000000 +58.9399999999999977 2.0000000000000000 +58.9500000000000028 2.0000000000000000 +58.9600000000000009 2.0000000000000000 +58.9699999999999989 2.0000000000000000 +58.9800000000000040 2.0000000000000000 +58.9900000000000020 2.0000000000000000 +59.0000000000000000 2.0000000000000000 +59.0099999999999980 2.0000000000000000 +59.0200000000000031 2.0000000000000000 +59.0300000000000011 2.0000000000000000 +59.0399999999999991 2.0000000000000000 +59.0500000000000043 2.0000000000000000 +59.0600000000000023 2.0000000000000000 +59.0700000000000003 2.0000000000000000 +59.0799999999999983 2.0000000000000000 +59.0900000000000034 2.0000000000000000 +59.1000000000000014 2.0000000000000000 +59.1099999999999994 2.0000000000000000 +59.1200000000000045 2.0000000000000000 +59.1300000000000026 2.0000000000000000 +59.1400000000000006 2.0000000000000000 +59.1499999999999986 2.0000000000000000 +59.1600000000000037 2.0000000000000000 +59.1700000000000017 2.0000000000000000 +59.1799999999999997 2.0000000000000000 +59.1899999999999977 2.0000000000000000 +59.2000000000000028 2.0000000000000000 +59.2100000000000009 2.0000000000000000 +59.2199999999999989 2.0000000000000000 +59.2300000000000040 2.0000000000000000 +59.2400000000000020 2.0000000000000000 +59.2500000000000000 2.0000000000000000 +59.2599999999999980 2.0000000000000000 +59.2700000000000031 2.0000000000000000 +59.2800000000000011 2.0000000000000000 +59.2899999999999991 2.0000000000000000 +59.3000000000000043 2.0000000000000000 +59.3100000000000023 2.0000000000000000 +59.3200000000000003 2.0000000000000000 +59.3299999999999983 2.0000000000000000 +59.3400000000000034 2.0000000000000000 +59.3500000000000014 2.0000000000000000 +59.3599999999999994 2.0000000000000000 +59.3700000000000045 2.0000000000000000 +59.3800000000000026 2.0000000000000000 +59.3900000000000006 2.0000000000000000 +59.3999999999999986 2.0000000000000000 +59.4100000000000037 2.0000000000000000 +59.4200000000000017 2.0000000000000000 +59.4299999999999997 2.0000000000000000 +59.4399999999999977 2.0000000000000000 +59.4500000000000028 2.0000000000000000 +59.4600000000000009 2.0000000000000000 +59.4699999999999989 2.0000000000000000 +59.4800000000000040 2.0000000000000000 +59.4900000000000020 2.0000000000000000 +59.5000000000000000 2.0000000000000000 +59.5099999999999980 2.0000000000000000 +59.5200000000000031 2.0000000000000000 +59.5300000000000011 2.0000000000000000 +59.5399999999999991 2.0000000000000000 +59.5500000000000043 2.0000000000000000 +59.5600000000000023 2.0000000000000000 +59.5700000000000003 2.0000000000000000 +59.5799999999999983 2.0000000000000000 +59.5900000000000034 2.0000000000000000 +59.6000000000000014 2.0000000000000000 +59.6099999999999994 2.0000000000000000 +59.6200000000000045 2.0000000000000000 +59.6300000000000026 2.0000000000000000 +59.6400000000000006 2.0000000000000000 +59.6499999999999986 2.0000000000000000 +59.6600000000000037 2.0000000000000000 +59.6700000000000017 2.0000000000000000 +59.6799999999999997 2.0000000000000000 +59.6899999999999977 2.0000000000000000 +59.7000000000000028 2.0000000000000000 +59.7100000000000009 2.0000000000000000 +59.7199999999999989 2.0000000000000000 +59.7300000000000040 2.0000000000000000 +59.7400000000000020 2.0000000000000000 +59.7500000000000000 2.0000000000000000 +59.7599999999999980 2.0000000000000000 +59.7700000000000031 2.0000000000000000 +59.7800000000000011 2.0000000000000000 +59.7899999999999991 2.0000000000000000 +59.8000000000000043 2.0000000000000000 +59.8100000000000023 2.0000000000000000 +59.8200000000000003 2.0000000000000000 +59.8299999999999983 2.0000000000000000 +59.8400000000000034 2.0000000000000000 +59.8500000000000014 2.0000000000000000 +59.8599999999999994 2.0000000000000000 +59.8700000000000045 2.0000000000000000 +59.8800000000000026 2.0000000000000000 +59.8900000000000006 2.0000000000000000 +59.8999999999999986 2.0000000000000000 +59.9100000000000037 2.0000000000000000 +59.9200000000000017 2.0000000000000000 +59.9299999999999997 2.0000000000000000 +59.9399999999999977 2.0000000000000000 +59.9500000000000028 2.0000000000000000 +59.9600000000000009 2.0000000000000000 +59.9699999999999989 2.0000000000000000 +59.9800000000000040 2.0000000000000000 +59.9900000000000020 2.0000000000000000 +60.0000000000000000 2.0000000000000000 diff --git a/src/engine/tests/system/gt_data/VIRplanoS/VIRplanoS.mo b/src/engine/tests/system/gt_data/VIRplanoS/VIRplanoS.mo new file mode 100644 index 00000000..fee1e031 --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/VIRplanoS.mo @@ -0,0 +1,152 @@ +model VIRplanoS + +//SIN INMUNIDAD (S START=0.1) , 50% BARBIJOS (re, tr ) , VENTILADO medio ) +function SRND + input Real y; + output Real r; + external "C" r=srnd(y) annotation(IncludeDirectory="modelica://VIRplanoS", + Include="#include \"srnd.c\""); + end SRND; + function RND + input Real y; + output Real r; + external "C" r=rnd(y) annotation(IncludeDirectory="modelica://VIRplanoS", + Include="#include \"rnd.c\""); + end RND; +import math; + constant Integer N = 4; //maximum number of people in the room + Real V[N], H[N](each start = 1), I[N], M[N], F[N], R[N], E[N](each start = 1), P[N](each start = 1), A[N](each start = 1), S[N](each start = 0.1), D[N]; //// viral load, healthy cells, infected cells, activated antigen presenting cells, interferon, resistant cells, effector cells, plasma cells, antibodies, antigenic distance, dead cells + parameter Real gv[N](each fixed=false) , gva[N](each fixed=false), gvh[N](each fixed=false) , av[N](each fixed=false), av1[N](each fixed=false), av2[N](each fixed=false), bhd[N](each fixed=false), ar[N](each fixed=false), ghv[N](each fixed=false), bhf[N](each fixed=false) , bie[N](each fixed=false) , ai[N](each fixed=false), bmd[N](each fixed=false) , bmv[N](each fixed=false) , am[N](each fixed=false), bf[N](each fixed=false) , cf[N](each fixed=false), bfh[N](each fixed=false) , af[N](each fixed=false), bem[N](each fixed=false) , bei[N](each fixed=false) , ae[N](each fixed=false) , bpm[N](each fixed=false) , ap[N], ba[N](each fixed=false) , gav[N](each fixed=false) , aa[N](each fixed=false) , r[N](each fixed=false) ; // parameters characterizing disease processe + parameter Real re[N](each fixed=false) , tr[N](each fixed=false), cr = 100; //reception rate of viral load,transmission rate of viral load,decay rate of viral load inside the room + Real Vr, Vtot, Vpar[N]; //total viral load inside the room, viral load of people inside the room, Aux Var + discrete Real inside[N],inst[N]; // state: inside(1) o outside(0) of the room; time of change of state + discrete Real Su,In1,Rec; //Susceptible, Infected , Recovered people + discrete Real u,day[N]; //day=first day of non-contagion after infection + + +initial algorithm + u :=rand(1); + +//parameter definition + for i in 1:N loop + gv[i] := 510; + gva[i] := 619.2; + gvh[i] := 1.02; + av[i] := 1.7; + av1[i] := 100; + av2[i] := 23000; + bhd[i] := 4; + ar[i] :=1; + ghv[i] := 0.34; + bhf[i] := 0.01; + bie[i] := 0.066; + ai[i] := 1.5; + bmd[i]:= 1; + bmv[i] := 0.0037; + am[i] := 1; + bf[i] := 250000; + cf[i] := 2000; + bfh[i] := 17; + af[i] := 8; + bem[i] := 8.3; + bei[i] := 2.72; + ae[i] := 0.4; + bpm[i] := 11.5; + ap[i] := 0.4; + ba[i] := 0.043; + gav[i] := 146.2; + aa[i] := 0.043; + r[i] := 3e-5; + end for; + +// initialization of people's parameters + for i in 1:N/2 loop + re[i]:= rand(0.22) + 0.18; + tr[i]:= re[i]; + end for; + for i in N/2+1:N loop + re[i]:= rand(0.06) + 0.04; + tr[i]:= re[i]; + end for; + V[1] := 10; //one infected + inside[1]:= 1; + + for i in 1:N loop + inst[i] := rand(2); + day[i] :=1000; + end for; + +for i in 1:2 loop //(N*1/100) loop //1% of people start infected +V[i] :=10; +inside[i] :=1; +end for; + +Su := N; + +equation +for i in 1:N loop + der(V[i]) = gv[i] * I[i] - gva[i] * S[i] * A[i] * V[i] - gvh[i] * H[i] * V[i] - av[i] * V[i] - av1[i] * V[i] / (1 + av2[i] * V[i]) + inside[i]*re[i] * Vr; + der(H[i]) = bhd[i] * D[i] * (H[i] + R[i]) + ar[i] * R[i] - ghv[i] * V[i] * H[i] - bhf[i] * F[i] * H[i]; + der(I[i]) = ghv[i] * V[i] * H[i] - bie[i] * E[i] * I[i] - ai[i] * I[i]; + der(M[i]) = (bmd[i] * D[i] + bmv[i] * V[i]) * (1 - M[i]) - am[i] * M[i]; + der(F[i]) = bf[i] * M[i] + cf[i] * I[i] - bfh[i] * H[i] * F[i] - af[i] * F[i]; + der(R[i]) = bhf[i] * F[i] * H[i] - ar[i] * R[i]; + der(E[i]) = bem[i] * M[i] * E[i] - bei[i] * I[i] * E[i] + ae[i] * (1 - E[i]); + der(P[i]) = bpm[i] * M[i] * P[i] + ap[i] * (1 - P[i]); + der(A[i]) = ba[i] * P[i] - gav[i] * S[i] * A[i] * V[i] - aa[i] * A[i]; + der(S[i]) = r[i] * P[i] * (1 - S[i]); + D[i] = 1 - H[i] - R[i] - I[i]; +end for; + der(Vr)=sum(Vpar) *100/N- cr * Vr; + +for i in 1:N loop + Vpar[i]=V[i]*tr[i]*inside[i]; + end for; + + //Vtot= sum(Vpar); + + algorithm +u:=u; + +for i in 1:N loop + when time > inst[i] then + if inside[i]==0 then + inside[i]:= 1- inside[i]; + inst[i]:=inst[i]+rand(0.0833); + else + inside[i]:= 1- inside[i]; + inst[i]:=inst[i]+ rand(0.2075)+0.833; +end if; + end when; +end for; + + for i in 1:N loop + when V[i] > 1 then + Su:=Su-1; + In1:=In1+1; + day[i]:=time+10; + end when; + when time > day[i] then + In1:=In1-1; + Rec:=Rec+1; +end when; +end for; + annotation( + + experiment( + MMO_Description="", + MMO_Solver=LIQSS2, + MMO_SymDiff=false, + MMO_PartitionMethod=Metis, + MMO_Output={In1,Rec,Su,Vr}, + MMO_OutputType=CI_Sampled, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + MMO_RandomSeed=1, + StartTime=0.0, + StopTime=60, + Tolerance={1e-2}, + AbsTolerance={1e-6} + )); +end VIRplanoS; diff --git a/src/engine/tests/system/gt_data/VIRplanoS/Vr.dat b/src/engine/tests/system/gt_data/VIRplanoS/Vr.dat new file mode 100644 index 00000000..902924a9 --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/Vr.dat @@ -0,0 +1,6001 @@ +0.0000000000000000 0.0000000000000000 +0.0100000000000000 0.7609170714332009 +0.0200000000000000 0.9013258340840693 +0.0300000000000000 0.9026499885524191 +0.0400000000000000 0.9231291398981095 +0.0500000000000000 0.9343873809525571 +0.0600000000000000 0.9784631147294224 +0.0700000000000000 1.0474669212415511 +0.0800000000000000 1.1081262396820137 +0.0900000000000000 1.1911127615011416 +0.1000000000000000 1.3012371138029617 +0.1100000000000000 1.4113070699788082 +0.1200000000000000 1.5304900636472467 +0.1300000000000000 1.6561344413047152 +0.1400000000000000 1.8260819119234193 +0.1500000000000000 1.9993506763338060 +0.1600000000000000 2.2041628970927314 +0.1700000000000000 2.4046908373495661 +0.1800000000000000 2.6204797137544729 +0.1900000000000000 2.8524420849984296 +0.2000000000000000 3.0844044562423862 +0.2100000000000000 3.3702710434611589 +0.2200000000000000 3.6709937014533360 +0.2300000000000000 3.9717163594455132 +0.2400000000000000 4.2724390174376907 +0.2500000000000000 4.6254815501156354 +0.2600000000000000 5.0014101719083328 +0.2700000000000000 5.3773387937010302 +0.2800000000000000 5.7532674154937276 +0.2900000000000000 6.1291960372864258 +0.3000000000000000 6.5051246590791223 +0.3100000000000000 6.8810532808718206 +0.3200000000000000 7.2569819026645170 +0.3300000000000000 7.6329105244572144 +0.3400000000000000 8.0088391462499118 +0.3500000000000000 8.4601327216877458 +0.3600000000000000 8.8356564315253152 +0.3700000000000000 9.2111801413628864 +0.3800000000000000 9.5867038512004559 +0.3900000000000000 9.9622275610380271 +0.4000000000000000 9.5058672939864746 +0.4100000000000000 7.4215361430285292 +0.4200000000000000 6.7941779555557780 +0.4300000000000000 6.6468797758816152 +0.4400000000000000 6.6141969223941963 +0.4500000000000000 6.7693904070643374 +0.4600000000000000 6.9245838917344784 +0.4700000000000000 7.0797773764046203 +0.4800000000000000 7.2349708610747614 +0.4900000000000000 7.3901643457449024 +0.5000000000000000 7.5453578304150435 +0.5100000000000000 7.7005513150851854 +0.5200000000000000 7.8557447997553265 +0.5300000000000000 8.0109382844254675 +0.5400000000000000 8.1661317690956086 +0.5500000000000000 8.1892486039533825 +0.5600000000000001 8.2852157678778280 +0.5700000000000001 8.3811829318022752 +0.5800000000000000 8.4771500957267225 +0.5900000000000000 8.5731172596511680 +0.6000000000000000 8.6690844235756153 +0.6100000000000000 8.7650515875000607 +0.6200000000000000 8.8610187514245080 +0.6300000000000000 8.9569859153489553 +0.6400000000000000 9.0529530792734008 +0.6500000000000000 9.1489202431978480 +0.6600000000000000 9.1161409282515695 +0.6700000000000000 9.1589858024958435 +0.6800000000000000 9.2018306767401175 +0.6900000000000001 3.3976048958768907 +0.7000000000000001 1.2510486720798175 +0.7100000000000000 0.4592439155786978 +0.7200000000000000 0.1708522941035990 +0.7300000000000000 0.0629658795678815 +0.7400000000000000 0.0231322172372352 +0.7500000000000000 0.0085391980816099 +0.7600000000000000 0.0031640864105843 +0.7700000000000000 0.0011680103032143 +0.7800000000000000 0.0004297298133620 +0.7900000000000000 0.0001576945023386 +0.8000000000000000 0.0000586800947768 +0.8100000000000001 0.0000217677454740 +0.8200000000000001 0.0000080784889204 +0.8300000000000001 0.0000030880934324 +0.8400000000000000 0.0000000005890619 +0.8500000000000000 0.0000000005889622 +0.8600000000000000 0.0000000005888625 +0.8700000000000000 0.0000000005887628 +0.8800000000000000 0.0000000005886631 +0.8900000000000000 0.0000000005885634 +0.9000000000000000 0.0000000005884637 +0.9100000000000000 0.0000000005883640 +0.9200000000000000 0.0000000005882643 +0.9300000000000000 0.0000000005881646 +0.9400000000000001 0.0000000005880649 +0.9500000000000001 0.0000000005879652 +0.9600000000000000 0.0000000005878655 +0.9700000000000000 0.0000000005877658 +0.9800000000000000 0.0000000005876661 +0.9900000000000000 0.0000000005875664 +1.0000000000000000 0.0000000005874667 +1.0100000000000000 0.0000000005873670 +1.0200000000000000 0.0000000005872673 +1.0300000000000000 0.0000000005871676 +1.0400000000000000 0.0000000005870679 +1.0500000000000000 0.0000000005869682 +1.0600000000000001 0.0000000005868685 +1.0700000000000001 0.0000000005867688 +1.0800000000000001 0.0000000005866691 +1.0900000000000001 0.0000000005865694 +1.1000000000000001 0.0000000005864697 +1.1100000000000001 0.0000000005863700 +1.1200000000000001 0.0000000005862703 +1.1300000000000001 0.0000000005861706 +1.1400000000000001 0.0000000005860709 +1.1500000000000001 0.0000000005859712 +1.1599999999999999 0.0000000005858715 +1.1699999999999999 0.0000000005857719 +1.1799999999999999 0.0000000005856722 +1.1899999999999999 0.0000000005855725 +1.2000000000000000 0.0000000005854728 +1.2100000000000000 0.0000000005853731 +1.2200000000000000 0.0000000005852734 +1.2300000000000000 0.0000000005851737 +1.2400000000000000 0.0000000005850740 +1.2500000000000000 0.0000000005849743 +1.2600000000000000 0.0000000005848746 +1.2700000000000000 0.0000000005847749 +1.2800000000000000 0.0000000005846752 +1.2900000000000000 0.0000000005845755 +1.3000000000000000 0.0000000005844758 +1.3100000000000001 0.0000000005843761 +1.3200000000000001 0.0000000005842764 +1.3300000000000001 0.0000000005841767 +1.3400000000000001 0.0000000005840770 +1.3500000000000001 0.0000000005839773 +1.3600000000000001 0.0000000005838776 +1.3700000000000001 0.0000000005837779 +1.3800000000000001 1.8817821386165592 +1.3900000000000001 2.5213236261618026 +1.4000000000000001 0.9305742497992241 +1.4099999999999999 0.3448673411709574 +1.4199999999999999 0.1273245317986104 +1.4299999999999999 0.0468506736586814 +1.4399999999999999 0.0171835894409032 +1.4500000000000000 0.0063807981688451 +1.4600000000000000 0.0023599033110970 +1.4700000000000000 0.0008697070370471 +1.4800000000000000 0.0003195065491592 +1.4900000000000000 0.0001179507289154 +1.5000000000000000 0.0000435920946886 +1.5100000000000000 0.0000161511321445 +1.5200000000000000 0.0000059870032335 +1.5300000000000000 0.0000022084849768 +1.5400000000000000 0.0000000006264531 +1.5500000000000000 0.0000000006263459 +1.5600000000000001 0.0000000006262387 +1.5700000000000001 0.0000097057911293 +1.5800000000000001 0.0000536217913212 +1.5900000000000001 4.4412737996183136 +1.6000000000000001 6.1826540360230133 +1.6100000000000001 6.7742412799505187 +1.6200000000000001 7.0700185944882925 +1.6300000000000001 7.0194844089890847 +1.6400000000000001 7.0662857853622132 +1.6500000000000001 2.6971258999338690 +1.6600000000000001 1.0221715236094686 +1.6699999999999999 0.3748124236829332 +1.6799999999999999 0.1394796889288270 +1.6899999999999999 0.0511648951394093 +1.7000000000000000 0.0189434250489293 +1.7100000000000000 0.0070146124022061 +1.7200000000000000 0.0025771551768243 +1.7300000000000000 0.0009571882613566 +1.7400000000000000 0.0003516540941978 +1.7500000000000000 0.0001305656304051 +1.7600000000000000 0.0000477097673194 +1.7700000000000000 0.0000178611053168 +1.7800000000000000 0.0000061841577772 +1.7900000000000000 0.0000022913248047 +1.8000000000000000 0.0000008865171928 +1.8100000000000001 0.0000000002646085 +1.8200000000000001 0.0000000002645629 +1.8300000000000001 0.0000000002645173 +1.8400000000000001 0.0000000002644717 +1.8500000000000001 0.0000000002644261 +1.8600000000000001 0.0000000002643805 +1.8700000000000001 0.0000000002643349 +1.8800000000000001 0.0000000002642893 +1.8900000000000001 0.0000000002642437 +1.9000000000000001 0.0000000002641981 +1.9100000000000001 0.0000000002641525 +1.9199999999999999 0.0000000002641069 +1.9299999999999999 0.0000000002640613 +1.9399999999999999 0.0000000002640157 +1.9500000000000000 0.0000000002639701 +1.9600000000000000 0.0000000002639245 +1.9700000000000000 0.0000000002638789 +1.9800000000000000 0.0000000002638333 +1.9900000000000000 0.0000000002637877 +2.0000000000000000 0.0000000002637421 +2.0100000000000002 0.0000000002636964 +2.0200000000000000 0.0000000002636508 +2.0300000000000002 0.0000000002636052 +2.0400000000000000 0.0000000002635596 +2.0499999999999998 0.0000000002635140 +2.0600000000000001 0.0000000002634684 +2.0699999999999998 0.0000000002634228 +2.0800000000000001 0.0000000002633772 +2.0899999999999999 0.0000000002633316 +2.1000000000000001 0.0000000002632860 +2.1099999999999999 0.0000000002632404 +2.1200000000000001 0.0000000002631948 +2.1299999999999999 0.0000000002631492 +2.1400000000000001 0.0000000002631036 +2.1499999999999999 0.0000000002630580 +2.1600000000000001 0.0000000002630124 +2.1699999999999999 0.0000000002629668 +2.1800000000000002 0.0000000002629212 +2.1899999999999999 0.0000000002628756 +2.2000000000000002 0.0000000002628300 +2.2100000000000000 0.0000000002627843 +2.2200000000000002 0.0000000002627387 +2.2300000000000000 0.0000000002626931 +2.2400000000000002 0.0000000002626475 +2.2500000000000000 0.0000000002626019 +2.2600000000000002 0.0000000002625563 +2.2700000000000000 0.0000000002625107 +2.2800000000000002 0.0000000002624651 +2.2900000000000000 0.0000000002624195 +2.3000000000000003 0.0000000002623739 +2.3100000000000001 0.0000000002623283 +2.3199999999999998 0.0000000002622827 +2.3300000000000001 0.0000000002622371 +2.3399999999999999 0.0000000002621915 +2.3500000000000001 0.0000000002621459 +2.3599999999999999 0.0000000002621003 +2.3700000000000001 0.0000000002620547 +2.3799999999999999 0.0000000002620091 +2.3900000000000001 0.0000000002619635 +2.3999999999999999 0.0000000002619178 +2.4100000000000001 0.0000000002618722 +2.4199999999999999 0.2033139285534487 +2.4300000000000002 0.5033714818862949 +2.4399999999999999 0.3947799000995103 +2.4500000000000002 0.1467263403907098 +2.4600000000000000 0.0538893123818556 +2.4700000000000002 0.0200203778668541 +2.4800000000000000 0.0489561454369975 +2.4900000000000002 0.0876254470113304 +2.5000000000000000 0.0327287255629876 +2.5100000000000002 0.0123247787924396 +2.5200000000000000 0.0047594090828954 +2.5300000000000002 0.0019687532242676 +2.5400000000000000 0.0009356103696359 +2.5500000000000003 0.0004032187950603 +2.5600000000000001 0.0001489771063251 +2.5699999999999998 0.0000550548995428 +2.5800000000000001 0.0000350706623056 +2.5899999999999999 0.0000149392897072 +2.6000000000000001 0.0000043900131231 +2.6099999999999999 0.0000018069289927 +2.6200000000000001 0.0000011923645731 +2.6299999999999999 0.0000001177927201 +2.6400000000000001 -0.0000009567791330 +2.6499999999999999 0.0000000003490255 +2.6600000000000001 0.0000000003489647 +2.6699999999999999 0.0000000003489038 +2.6800000000000002 0.0000000003488430 +2.6899999999999999 0.0000000003487821 +2.7000000000000002 0.0000000003487213 +2.7100000000000000 0.0000000003486604 +2.7200000000000002 0.0000000003485996 +2.7300000000000000 0.0000000003485387 +2.7400000000000002 0.0000000003484779 +2.7500000000000000 0.0000000003484171 +2.7600000000000002 0.0000000003483562 +2.7700000000000000 0.0000000003482954 +2.7800000000000002 0.0000000003482345 +2.7900000000000000 0.0000000003481737 +2.8000000000000003 0.0000000003481128 +2.8100000000000001 0.0000000003480520 +2.8199999999999998 0.0000000003479911 +2.8300000000000001 0.0000000003479303 +2.8399999999999999 0.0000000003478694 +2.8500000000000001 0.0000000003478086 +2.8599999999999999 0.0000000003477477 +2.8700000000000001 0.0000000003476869 +2.8799999999999999 0.0000000003476260 +2.8900000000000001 0.0000000003475652 +2.8999999999999999 0.0000000003475043 +2.9100000000000001 0.0000000003474435 +2.9199999999999999 0.0000000003473826 +2.9300000000000002 0.0000000003473218 +2.9399999999999999 0.0000000003472609 +2.9500000000000002 0.0000000003472001 +2.9600000000000000 0.0000000003471392 +2.9700000000000002 0.0000000003470784 +2.9800000000000000 0.0000000003470175 +2.9900000000000002 0.0000000003469567 +3.0000000000000000 0.0000000003468959 +3.0100000000000002 0.0000000003468350 +3.0200000000000000 0.0000000003467742 +3.0300000000000002 0.0000000003467133 +3.0400000000000000 0.0000000003466525 +3.0500000000000003 0.0000000003465916 +3.0600000000000001 0.0000000003465308 +3.0700000000000003 0.0000000003464699 +3.0800000000000001 0.0000000003464091 +3.0899999999999999 0.0000000003463482 +3.1000000000000001 0.0000000003462874 +3.1099999999999999 0.0000000003462265 +3.1200000000000001 0.0000000003461657 +3.1299999999999999 0.0000000003461048 +3.1400000000000001 0.0000000003460440 +3.1499999999999999 0.0000000003459831 +3.1600000000000001 0.0000000003459223 +3.1699999999999999 0.0000000003458614 +3.1800000000000002 0.0000000003458006 +3.1899999999999999 0.0000000003457397 +3.2000000000000002 0.0000000003456789 +3.2100000000000000 0.0000000003456180 +3.2200000000000002 0.0000000003455572 +3.2300000000000000 0.0000000003454964 +3.2400000000000002 0.0000000003454355 +3.2500000000000000 0.0000000003453747 +3.2600000000000002 0.0000000003453138 +3.2700000000000000 0.0000000003452530 +3.2800000000000002 0.0000000003451921 +3.2900000000000000 0.0000000003451313 +3.3000000000000003 0.0000000003450704 +3.3100000000000001 0.0000000003450096 +3.3200000000000003 0.0000000003449487 +3.3300000000000001 0.0000000003448879 +3.3399999999999999 0.0000000003448270 +3.3500000000000001 0.0000000003447662 +3.3599999999999999 0.0000000003447053 +3.3700000000000001 0.0000000003446445 +3.3799999999999999 0.0000000003445836 +3.3900000000000001 0.0000000003445228 +3.3999999999999999 0.0000000003444619 +3.4100000000000001 0.0003507787359514 +3.4199999999999999 0.0016624603969336 +3.4300000000000002 0.0022297258049463 +3.4399999999999999 0.0024846865010773 +3.4500000000000002 0.0026288969762244 +3.4600000000000000 0.0027938974905422 +3.4700000000000002 0.0029377586856615 +3.4800000000000000 0.0012787499190987 +3.4900000000000002 0.0004714834302889 +3.5000000000000000 0.0001737519475022 +3.5100000000000002 0.0000646303749904 +3.5200000000000000 0.0000235647900278 +3.5300000000000002 0.0000090387562631 +3.5400000000000000 0.0000036130374351 +3.5500000000000003 0.0000002671873443 +3.5600000000000001 0.0000000005977052 +3.5700000000000003 0.0000000005975993 +3.5800000000000001 0.0000000005974934 +3.5899999999999999 0.0000000005973875 +3.6000000000000001 0.0000000005972816 +3.6099999999999999 0.0000000005971758 +3.6200000000000001 0.0000000005970699 +3.6299999999999999 0.0000524610272186 +3.6400000000000001 0.0000730277608222 +3.6499999999999999 0.0000819799786682 +3.6600000000000001 0.0000856628758509 +3.6699999999999999 0.0000774919180780 +3.6800000000000002 0.0000289725055239 +3.6899999999999999 0.0000106329905137 +3.7000000000000002 0.0000041223432299 +3.7100000000000000 0.0000013508623308 +3.7200000000000002 0.0000000005122645 +3.7300000000000000 0.0000000005121735 +3.7400000000000002 0.0000000005120825 +3.7500000000000000 0.0000000005119914 +3.7600000000000002 0.0000000005119004 +3.7700000000000000 0.0000000005118094 +3.7800000000000002 0.0000000005117184 +3.7900000000000000 0.0000000005116274 +3.8000000000000003 0.0000000005115364 +3.8100000000000001 0.0000000005114454 +3.8200000000000003 0.0000000005113544 +3.8300000000000001 0.0000000005112634 +3.8399999999999999 0.0000000005111724 +3.8500000000000001 0.0000000005110814 +3.8599999999999999 0.0000000005109903 +3.8700000000000001 0.0000000005108993 +3.8799999999999999 0.0000000005108083 +3.8900000000000001 0.0000000005107173 +3.8999999999999999 0.0000000005106263 +3.9100000000000001 0.0000000005105353 +3.9199999999999999 0.0000000005104443 +3.9300000000000002 0.0000000005103533 +3.9399999999999999 0.0000000005102623 +3.9500000000000002 0.0000000005101713 +3.9600000000000000 0.0000000005100802 +3.9700000000000002 0.0000000005099892 +3.9800000000000000 0.0000000005098982 +3.9900000000000002 0.0000000005098072 +4.0000000000000000 0.0000000005097162 +4.0099999999999998 0.0000000005096252 +4.0200000000000005 0.0000000005095342 +4.0300000000000002 0.0000000005094432 +4.0400000000000000 0.0000000005093522 +4.0499999999999998 0.0000000005092612 +4.0600000000000005 0.0000000005091702 +4.0700000000000003 0.0000000005090791 +4.0800000000000001 0.0000000005089881 +4.0899999999999999 0.0000000005088971 +4.0999999999999996 0.0000000005088061 +4.1100000000000003 0.0000000005087151 +4.1200000000000001 0.0000000005086241 +4.1299999999999999 0.0000000005085331 +4.1399999999999997 0.0000000005084421 +4.1500000000000004 0.0000000005083511 +4.1600000000000001 0.0000000005082601 +4.1699999999999999 0.0000000005081691 +4.1799999999999997 0.0000000005080780 +4.1900000000000004 0.0000000005079870 +4.2000000000000002 0.0000000005078960 +4.2100000000000000 0.0000000005078050 +4.2199999999999998 0.0000000005077140 +4.2300000000000004 0.0000000005076230 +4.2400000000000002 0.0000000005075320 +4.2500000000000000 0.0000000005074410 +4.2599999999999998 0.0000000005073500 +4.2700000000000005 0.0000000005072590 +4.2800000000000002 0.0000000005071679 +4.2900000000000000 0.0000000005070769 +4.2999999999999998 0.0000000005069859 +4.3100000000000005 0.0000000005068949 +4.3200000000000003 0.0000000005068039 +4.3300000000000001 0.0000000005067129 +4.3399999999999999 0.0000000005066219 +4.3500000000000005 0.0000000005065309 +4.3600000000000003 0.0000000005064399 +4.3700000000000001 0.0000000005063489 +4.3799999999999999 0.0000000005062579 +4.3899999999999997 0.0000000005061668 +4.4000000000000004 0.0000000005060758 +4.4100000000000001 0.0000000005059848 +4.4199999999999999 0.0000000005058938 +4.4299999999999997 0.0000000005058028 +4.4400000000000004 0.0000000005057118 +4.4500000000000002 0.0000000005056208 +4.4600000000000000 1.1984394419994528 +4.4699999999999998 1.8125792129984415 +4.4800000000000004 2.0418989852911307 +4.4900000000000002 2.1466892776037301 +4.5000000000000000 2.2209386641507338 +4.5099999999999998 1.0980298601561620 +4.5200000000000005 0.4039978346479310 +4.5300000000000002 0.1494592230791268 +4.5400000000000000 0.0551252506330266 +4.5499999999999998 0.0202166475916514 +4.5600000000000005 0.0075080398130975 +4.5700000000000003 0.0027771241331233 +4.5800000000000001 0.0010235711184988 +4.5899999999999999 0.0003772227608654 +4.6000000000000005 0.0001396952758079 +4.6100000000000003 0.0002297650007222 +4.6200000000000001 0.0002886969624554 +4.6299999999999999 0.0003138874361333 +4.6399999999999997 0.0003257420982146 +4.6500000000000004 0.0003358402246537 +4.6600000000000001 0.0003399057516299 +4.6699999999999999 0.0003446980750996 +4.6799999999999997 0.0002308614093721 +4.6900000000000004 0.0000851404509729 +4.7000000000000002 0.0000313419756751 +4.7100000000000000 0.0000115929248270 +4.7199999999999998 0.0000041392548380 +4.7300000000000004 0.0000013156877462 +4.7400000000000002 0.0000000006194991 +4.7500000000000000 0.0000000006193867 +4.7599999999999998 0.0000000006192743 +4.7700000000000005 0.0000000006191620 +4.7800000000000002 0.0000000006190496 +4.7900000000000000 0.0000000006189372 +4.7999999999999998 0.0000000006188248 +4.8100000000000005 0.0000000006187125 +4.8200000000000003 0.0000000006186001 +4.8300000000000001 0.0000000006184877 +4.8399999999999999 0.0000000006183753 +4.8500000000000005 0.0000000006182630 +4.8600000000000003 0.0000000006181506 +4.8700000000000001 0.0000000006180382 +4.8799999999999999 0.0000000006179258 +4.8899999999999997 0.0000000006178134 +4.9000000000000004 0.0000000006177011 +4.9100000000000001 0.0000000006175887 +4.9199999999999999 0.0000000006174763 +4.9299999999999997 0.0000000006173639 +4.9400000000000004 0.0000000006172516 +4.9500000000000002 0.0000000006171392 +4.9600000000000000 0.0000000006170268 +4.9699999999999998 0.0000000006169144 +4.9800000000000004 0.0000000006168021 +4.9900000000000002 0.0000000006166897 +5.0000000000000000 0.0000000006165773 +5.0099999999999998 0.0000000006164649 +5.0200000000000005 0.0000000006163526 +5.0300000000000002 0.0000000006162402 +5.0400000000000000 0.0000000006161278 +5.0499999999999998 0.0000000006160154 +5.0600000000000005 0.0000000006159031 +5.0700000000000003 0.0000000006157907 +5.0800000000000001 0.0000000006156783 +5.0899999999999999 0.0000000006155659 +5.1000000000000005 0.0000000006154536 +5.1100000000000003 0.0000000006153412 +5.1200000000000001 0.0000000006152288 +5.1299999999999999 0.0000000006151164 +5.1399999999999997 0.0000000006150040 +5.1500000000000004 0.0000000006148917 +5.1600000000000001 0.0000000006147793 +5.1699999999999999 0.0000000006146669 +5.1799999999999997 0.0000000006145545 +5.1900000000000004 0.0000000006144422 +5.2000000000000002 0.0000000006143298 +5.2100000000000000 0.0000000006142174 +5.2199999999999998 0.0000000006141050 +5.2300000000000004 0.0000000006139927 +5.2400000000000002 0.0000000006138803 +5.2500000000000000 0.0000000006137679 +5.2599999999999998 0.0000000006136555 +5.2700000000000005 0.0000000006135432 +5.2800000000000002 0.0000000006134308 +5.2900000000000000 0.0000000006133184 +5.2999999999999998 0.0000000006132060 +5.3100000000000005 0.0000000006130937 +5.3200000000000003 0.0000000006129813 +5.3300000000000001 0.0000000006128689 +5.3399999999999999 0.0000000006127565 +5.3500000000000005 0.0000000006126441 +5.3600000000000003 0.0000000006125318 +5.3700000000000001 0.0000000006124194 +5.3799999999999999 0.0000000006123070 +5.3899999999999997 0.0000000006121946 +5.4000000000000004 0.0000000006120823 +5.4100000000000001 0.0000000006119699 +5.4199999999999999 0.0000000006118575 +5.4299999999999997 0.0000000006117451 +5.4400000000000004 0.0000000006116328 +5.4500000000000002 0.0000000006115204 +5.4600000000000000 0.0000000006114080 +5.4699999999999998 0.0000000006112956 +5.4800000000000004 0.0000000006111833 +5.4900000000000002 0.0000000006110709 +5.5000000000000000 0.0000000006109585 +5.5099999999999998 0.0000000006108461 +5.5200000000000005 0.0000000006107338 +5.5300000000000002 0.0000000006106214 +5.5400000000000000 0.0000000006105090 +5.5499999999999998 0.0000000006103966 +5.5600000000000005 0.0000000006102843 +5.5700000000000003 0.0000000006101719 +5.5800000000000001 0.0000000006100595 +5.5899999999999999 0.0000000006099471 +5.6000000000000005 0.0000000006098347 +5.6100000000000003 0.0000000006097224 +5.6200000000000001 0.0000000006096100 +5.6299999999999999 0.0000000006094976 +5.6399999999999997 0.0000000006093852 +5.6500000000000004 0.0000000006092729 +5.6600000000000001 0.0000000006091605 +5.6699999999999999 0.0000000006090481 +5.6799999999999997 0.0000000006089357 +5.6900000000000004 0.0000000006088234 +5.7000000000000002 0.0000000006087110 +5.7100000000000000 0.0000000006085986 +5.7199999999999998 0.0000000006084862 +5.7300000000000004 0.0000000006083739 +5.7400000000000002 0.0000000006082615 +5.7500000000000000 0.0000000006081491 +5.7599999999999998 0.0000000006080367 +5.7700000000000005 0.0000000006079244 +5.7800000000000002 0.0000000006078120 +5.7900000000000000 0.0000000006076996 +5.7999999999999998 0.0000000006075872 +5.8100000000000005 0.0000000006074748 +5.8200000000000003 0.0000000006073625 +5.8300000000000001 0.0000000006072501 +5.8399999999999999 0.0000000006071377 +5.8500000000000005 0.0000000006070253 +5.8600000000000003 0.0000000006069130 +5.8700000000000001 0.0000000006068006 +5.8799999999999999 0.0000000006066882 +5.8899999999999997 0.0000000006065758 +5.9000000000000004 0.0000000006064635 +5.9100000000000001 0.0000000006063511 +5.9199999999999999 0.0000000006062387 +5.9299999999999997 0.0000000006061263 +5.9400000000000004 0.0000000006060140 +5.9500000000000002 0.0000000006059016 +5.9600000000000000 0.0000000006057892 +5.9699999999999998 0.0000000006056768 +5.9800000000000004 0.0000000006055645 +5.9900000000000002 0.0000000006054521 +6.0000000000000000 0.0000000006053397 +6.0099999999999998 0.0000000006052273 +6.0200000000000005 0.0000000006051149 +6.0300000000000002 0.0000000006050026 +6.0400000000000000 0.0000000006048902 +6.0499999999999998 0.0000000006047778 +6.0600000000000005 0.0000000006046654 +6.0700000000000003 0.0000000006045531 +6.0800000000000001 0.0000000006044407 +6.0899999999999999 0.0000000006043283 +6.1000000000000005 0.0000000006042159 +6.1100000000000003 0.0000000006041036 +6.1200000000000001 0.0000000006039912 +6.1299999999999999 0.0000000006038788 +6.1400000000000006 0.0000000006037664 +6.1500000000000004 0.0000000006036541 +6.1600000000000001 0.0000000006035417 +6.1699999999999999 0.0000000006034293 +6.1799999999999997 0.0000000006033169 +6.1900000000000004 0.0000000006032046 +6.2000000000000002 0.0000000006030922 +6.2100000000000000 0.0000000006029798 +6.2199999999999998 0.0000000006028674 +6.2300000000000004 0.0000000006027551 +6.2400000000000002 0.0000000006026427 +6.2500000000000000 0.0000000006025303 +6.2599999999999998 0.0000000006024179 +6.2700000000000005 0.0000000006023055 +6.2800000000000002 0.0000000006021932 +6.2900000000000000 0.0000000006020808 +6.2999999999999998 0.0000000006019684 +6.3100000000000005 0.0000000006018560 +6.3200000000000003 0.0000000006017437 +6.3300000000000001 0.0000000006016313 +6.3399999999999999 0.0000000006015189 +6.3500000000000005 0.0000000006014065 +6.3600000000000003 0.0000000006012942 +6.3700000000000001 0.0000000006011818 +6.3799999999999999 0.0000000006010694 +6.3900000000000006 0.0000000006009570 +6.4000000000000004 0.0000000006008447 +6.4100000000000001 0.0000000006007323 +6.4199999999999999 0.0000000006006199 +6.4299999999999997 0.0000000006005075 +6.4400000000000004 0.0000000006003952 +6.4500000000000002 0.0000000006002828 +6.4600000000000000 0.0000000006001704 +6.4699999999999998 0.0000000006000580 +6.4800000000000004 0.0000000005999456 +6.4900000000000002 0.0000000005998333 +6.5000000000000000 0.0000000005997209 +6.5099999999999998 0.0000000005996085 +6.5200000000000005 0.0000000005994961 +6.5300000000000002 0.0000000005993838 +6.5400000000000000 0.0000000005992714 +6.5499999999999998 0.0000000005991590 +6.5600000000000005 0.0000000005990466 +6.5700000000000003 0.0000000005989343 +6.5800000000000001 0.0000000005988219 +6.5899999999999999 0.0000000005987095 +6.6000000000000005 0.0000000005985971 +6.6100000000000003 0.0000000005984848 +6.6200000000000001 0.0000000005983724 +6.6299999999999999 0.0000000005982600 +6.6400000000000006 0.0000000005981476 +6.6500000000000004 0.0000000005980353 +6.6600000000000001 0.0000000005979229 +6.6699999999999999 0.0000000005978105 +6.6799999999999997 0.0000000005976981 +6.6900000000000004 0.0000000005975857 +6.7000000000000002 0.0000000005974734 +6.7100000000000000 0.0000000005973610 +6.7199999999999998 0.0000000005972486 +6.7300000000000004 0.0000000005971362 +6.7400000000000002 0.0000000005970239 +6.7500000000000000 0.0000000005969115 +6.7599999999999998 0.0000000005967991 +6.7700000000000005 0.0000000005966867 +6.7800000000000002 0.0000000005965744 +6.7900000000000000 0.0000000005964620 +6.7999999999999998 0.0000000005963496 +6.8100000000000005 0.0000000005962372 +6.8200000000000003 0.0000000005961249 +6.8300000000000001 0.0000000005960125 +6.8399999999999999 0.0000000005959001 +6.8500000000000005 0.0000000005957877 +6.8600000000000003 0.0000000005956754 +6.8700000000000001 0.0000000005955630 +6.8799999999999999 0.0000000005954506 +6.8900000000000006 0.0000000005953382 +6.9000000000000004 0.0000000005952259 +6.9100000000000001 0.0000000005951135 +6.9199999999999999 0.0000000005950011 +6.9299999999999997 0.0000000005948887 +6.9400000000000004 0.0000000005947763 +6.9500000000000002 0.0000000005946640 +6.9600000000000000 0.0000000005945516 +6.9699999999999998 0.0000000005944392 +6.9800000000000004 0.0000000005943268 +6.9900000000000002 0.0000000005942145 +7.0000000000000000 0.0000000005941021 +7.0099999999999998 0.0000000005939897 +7.0200000000000005 0.0000000005938773 +7.0300000000000002 0.0000000005937650 +7.0400000000000000 0.0000000005936526 +7.0499999999999998 0.0000000005935402 +7.0600000000000005 0.0000000005934278 +7.0700000000000003 0.0000000005933155 +7.0800000000000001 0.0000000005932031 +7.0899999999999999 0.0000000005930907 +7.1000000000000005 0.0000000005929783 +7.1100000000000003 0.0000000005928660 +7.1200000000000001 0.0000000005927536 +7.1299999999999999 0.0000000005926412 +7.1400000000000006 0.0000000005925288 +7.1500000000000004 0.0000000005924164 +7.1600000000000001 0.0000000005923041 +7.1699999999999999 0.0000000005921917 +7.1799999999999997 0.0000000005920793 +7.1900000000000004 0.0000000005919669 +7.2000000000000002 0.0000000005918546 +7.2100000000000000 0.0000000005917422 +7.2199999999999998 0.0000000005916298 +7.2300000000000004 0.0000000005915174 +7.2400000000000002 0.0000000005914051 +7.2500000000000000 0.0000000005912927 +7.2599999999999998 0.0000000005911803 +7.2700000000000005 0.0000000005910679 +7.2800000000000002 0.0000000005909556 +7.2900000000000000 0.0000000005908432 +7.2999999999999998 0.0000000005907308 +7.3100000000000005 0.0000000005906184 +7.3200000000000003 0.0000000005905061 +7.3300000000000001 0.0000000005903937 +7.3399999999999999 0.0000000005902813 +7.3500000000000005 0.0000000005901689 +7.3600000000000003 0.0000003848672242 +7.3700000000000001 0.0000003385895572 +7.3799999999999999 0.0000002923118902 +7.3900000000000006 0.0000002460342231 +7.4000000000000004 0.0000001997565561 +7.4100000000000001 0.9789016138406145 +7.4199999999999999 0.3611480531388579 +7.4299999999999997 0.1326633523736609 +7.4400000000000004 0.0492731502120234 +7.4500000000000002 0.0182887938159858 +7.4600000000000000 0.0067800633953066 +7.4699999999999998 0.0024929800093600 +7.4800000000000004 0.0009212717011692 +7.4900000000000002 0.0003423833323215 +7.5000000000000000 0.0001262625130592 +7.5099999999999998 0.0000461094995158 +7.5200000000000005 0.0000156144932021 +7.5300000000000002 0.0000066384359644 +7.5400000000000000 0.0000025359247259 +7.5499999999999998 0.0000004755269374 +7.5600000000000005 0.0000000004535403 +7.5700000000000003 0.0000000004534549 +7.5800000000000001 0.0000000004533694 +7.5899999999999999 0.0000000004532839 +7.6000000000000005 0.0000000004531985 +7.6100000000000003 0.0000000004531130 +7.6200000000000001 0.0000000004530276 +7.6299999999999999 0.0000000004529421 +7.6400000000000006 0.0000000004528567 +7.6500000000000004 0.0000000004527712 +7.6600000000000001 0.0000000004526857 +7.6699999999999999 0.0000000004526003 +7.6799999999999997 0.0000000004525148 +7.6900000000000004 0.0000000004524294 +7.7000000000000002 0.0000000004523439 +7.7100000000000000 0.0000000004522584 +7.7199999999999998 0.0000000004521730 +7.7300000000000004 0.0000000004520875 +7.7400000000000002 0.0000000004520021 +7.7500000000000000 0.0000000004519166 +7.7599999999999998 0.0000000004518311 +7.7700000000000005 0.0000000004517457 +7.7800000000000002 0.0000000004516602 +7.7900000000000000 0.0000000004515748 +7.7999999999999998 0.0000000004514893 +7.8100000000000005 0.0000000004514039 +7.8200000000000003 0.0000000004513184 +7.8300000000000001 0.0000000004512329 +7.8399999999999999 0.0000000004511475 +7.8500000000000005 0.0000000004510620 +7.8600000000000003 0.0000000004509766 +7.8700000000000001 0.0000000004508911 +7.8799999999999999 0.0000000004508056 +7.8900000000000006 0.0000000004507202 +7.9000000000000004 0.0000000004506347 +7.9100000000000001 0.0000000004505493 +7.9199999999999999 0.0000000004504638 +7.9300000000000006 0.0000000004503783 +7.9400000000000004 0.0000000004502929 +7.9500000000000002 0.0000000004502074 +7.9600000000000000 0.0000000004501220 +7.9699999999999998 0.0000000004500365 +7.9800000000000004 0.0000000004499511 +7.9900000000000002 0.0000000004498656 +8.0000000000000000 0.0000000004497801 +8.0099999999999998 0.0000000004496947 +8.0199999999999996 0.0000000004496092 +8.0299999999999994 0.0000000004495238 +8.0400000000000009 0.0000000004494383 +8.0500000000000007 0.0000000004493528 +8.0600000000000005 0.0000000004492674 +8.0700000000000003 0.0000000004491819 +8.0800000000000001 0.0000000004490965 +8.0899999999999999 0.0000000004490110 +8.0999999999999996 0.0000000004489255 +8.1099999999999994 0.0000000004488401 +8.1200000000000010 0.0000000004487546 +8.1300000000000008 0.0000000004486692 +8.1400000000000006 0.0000000004485837 +8.1500000000000004 0.0000000004484983 +8.1600000000000001 0.0000000004484128 +8.1699999999999999 0.0000000004483273 +8.1799999999999997 0.0000000004482419 +8.1899999999999995 0.0000000004481564 +8.1999999999999993 0.0000000004480710 +8.2100000000000009 0.0000000004479855 +8.2200000000000006 0.0000000004479000 +8.2300000000000004 0.0000000004478146 +8.2400000000000002 0.0000000004477291 +8.2500000000000000 0.0000000004476437 +8.2599999999999998 0.0000000004475582 +8.2699999999999996 0.0000000004474727 +8.2799999999999994 0.0000000004473873 +8.2900000000000009 0.0000000004473018 +8.3000000000000007 0.0000000004472164 +8.3100000000000005 0.0000000004471309 +8.3200000000000003 0.0000000004470455 +8.3300000000000001 0.0000000004469600 +8.3399999999999999 0.0000000004468745 +8.3499999999999996 0.0000000004467891 +8.3599999999999994 0.0000000004467036 +8.3700000000000010 0.0000000004466182 +8.3800000000000008 0.0000000004465327 +8.3900000000000006 0.0000000004464472 +8.4000000000000004 0.0000000004463618 +8.4100000000000001 0.0000000004462763 +8.4199999999999999 0.0000000004461909 +8.4299999999999997 0.0000000004461054 +8.4399999999999995 0.0000000004460199 +8.4499999999999993 0.0000000004459345 +8.4600000000000009 0.0000000004458490 +8.4700000000000006 0.0000000004457636 +8.4800000000000004 0.0000000004456781 +8.4900000000000002 0.0000000004455927 +8.5000000000000000 0.0000000004455072 +8.5099999999999998 0.0000000004454217 +8.5199999999999996 0.0000000004453363 +8.5299999999999994 0.0000000004452508 +8.5400000000000009 0.0000000004451654 +8.5500000000000007 0.0000000004450799 +8.5600000000000005 0.0000000004449944 +8.5700000000000003 0.0000000004449090 +8.5800000000000001 0.0000000004448235 +8.5899999999999999 0.0000000004447381 +8.5999999999999996 0.0000000004446526 +8.6099999999999994 0.0000000004445671 +8.6200000000000010 0.0000000004444817 +8.6300000000000008 0.0000000004443962 +8.6400000000000006 0.0000000004443108 +8.6500000000000004 0.0000000004442253 +8.6600000000000001 0.0000000004441399 +8.6699999999999999 0.0000000004440544 +8.6799999999999997 0.0000000004439689 +8.6899999999999995 0.0000000004438835 +8.7000000000000011 0.0000000004437980 +8.7100000000000009 0.0000000004437126 +8.7200000000000006 0.0000000004436271 +8.7300000000000004 0.0000000004435416 +8.7400000000000002 0.0000000004434562 +8.7500000000000000 0.0000000004433707 +8.7599999999999998 0.0000000004432853 +8.7699999999999996 0.0000000004431998 +8.7799999999999994 0.0000000004431143 +8.7900000000000009 0.0000000004430289 +8.8000000000000007 0.0000000004429434 +8.8100000000000005 0.0000000004428580 +8.8200000000000003 0.0000000004427725 +8.8300000000000001 0.0000000004426871 +8.8399999999999999 0.0000000004426016 +8.8499999999999996 0.0000000004425161 +8.8599999999999994 0.0000000004424307 +8.8700000000000010 0.0000000004423452 +8.8800000000000008 0.0000000004422598 +8.8900000000000006 0.0000000004421743 +8.9000000000000004 0.0000000004420888 +8.9100000000000001 0.0000000004420034 +8.9199999999999999 0.0000000004419179 +8.9299999999999997 0.0000000004418325 +8.9399999999999995 0.0000000004417470 +8.9500000000000011 0.0000000004416615 +8.9600000000000009 0.0000000004415761 +8.9700000000000006 0.0000000004414906 +8.9800000000000004 0.0000000004414052 +8.9900000000000002 0.0000000004413197 +9.0000000000000000 0.0000000004412343 +9.0099999999999998 0.0000000004411488 +9.0199999999999996 0.0000000004410633 +9.0299999999999994 0.0000000004409779 +9.0400000000000009 0.0000000004408924 +9.0500000000000007 0.0000000004408070 +9.0600000000000005 0.0000000004407215 +9.0700000000000003 0.0000000004406360 +9.0800000000000001 0.0000000004405506 +9.0899999999999999 0.0000000004404651 +9.0999999999999996 0.0000000004403797 +9.1099999999999994 0.0000000004402942 +9.1200000000000010 0.0000000004402087 +9.1300000000000008 0.0000000004401233 +9.1400000000000006 0.0000000004400378 +9.1500000000000004 0.0000000004399524 +9.1600000000000001 0.0000000004398669 +9.1699999999999999 0.0000000004397815 +9.1799999999999997 0.0000000004396960 +9.1899999999999995 0.0000000004396105 +9.2000000000000011 0.0000000004395251 +9.2100000000000009 0.0000000004394396 +9.2200000000000006 0.0000000004393542 +9.2300000000000004 0.0000000004392687 +9.2400000000000002 0.0000000004391832 +9.2500000000000000 0.0000000004390978 +9.2599999999999998 0.0000000004390123 +9.2699999999999996 0.0000000004389269 +9.2799999999999994 0.0000000004388414 +9.2900000000000009 0.0000000004387559 +9.3000000000000007 0.0000000004386705 +9.3100000000000005 0.0000000004385850 +9.3200000000000003 0.0000000004384996 +9.3300000000000001 0.0000000004384141 +9.3399999999999999 0.0000000004383287 +9.3499999999999996 0.0000000004382432 +9.3599999999999994 0.0000000004381577 +9.3700000000000010 0.0000000004380723 +9.3800000000000008 0.0000000004379868 +9.3900000000000006 0.0000000004379014 +9.4000000000000004 0.0000000004378159 +9.4100000000000001 0.0000000004377304 +9.4199999999999999 0.0000000004376450 +9.4299999999999997 0.0000000004375595 +9.4399999999999995 0.0000000004374741 +9.4500000000000011 0.0000000004373886 +9.4600000000000009 0.0000000004373032 +9.4700000000000006 0.0000000004372177 +9.4800000000000004 0.0000001738686415 +9.4900000000000002 0.0000001538346861 +9.5000000000000000 0.0000001338007307 +9.5099999999999998 0.0000001137667753 +9.5199999999999996 0.0000000937328199 +9.5299999999999994 0.0000000736988645 +9.5400000000000009 0.0000000536649091 +9.5500000000000007 0.0000000336309537 +9.5600000000000005 0.0000000135969983 +9.5700000000000003 -0.0000000064369571 +9.5800000000000001 -0.0000000264709125 +9.5899999999999999 -0.0000000465048679 +9.5999999999999996 -0.0000000665388233 +9.6099999999999994 -0.0000000865727787 +9.6200000000000010 -0.0000001066067341 +9.6300000000000008 -0.0000001266406895 +9.6400000000000006 0.0000000007390896 +9.6500000000000004 0.0000000007389429 +9.6600000000000001 0.0000000007387962 +9.6699999999999999 0.0000000007386494 +9.6799999999999997 0.0000000007385027 +9.6899999999999995 0.0000000007383560 +9.7000000000000011 0.0000000007382092 +9.7100000000000009 0.0000000007380625 +9.7200000000000006 0.0000000007379158 +9.7300000000000004 0.0000000007377691 +9.7400000000000002 0.0000000007376223 +9.7500000000000000 0.0000000007374756 +9.7599999999999998 0.0000000007373289 +9.7699999999999996 0.0000000007371821 +9.7799999999999994 0.0000000007370354 +9.7900000000000009 0.0000000007368887 +9.8000000000000007 0.0000000007367419 +9.8100000000000005 0.0000000007365952 +9.8200000000000003 0.0000000007364485 +9.8300000000000001 0.0000000007363017 +9.8399999999999999 0.0000000007361550 +9.8499999999999996 0.0000000007360083 +9.8599999999999994 0.0000000007358615 +9.8700000000000010 0.0000000007357148 +9.8800000000000008 0.0000000007355681 +9.8900000000000006 0.0000000007354213 +9.9000000000000004 0.0000000007352746 +9.9100000000000001 0.0000000007351279 +9.9199999999999999 0.0000000007349811 +9.9299999999999997 0.0000000007348344 +9.9399999999999995 0.0000000007346877 +9.9500000000000011 0.0000000007345409 +9.9600000000000009 0.0000000007343942 +9.9700000000000006 0.0000000007342475 +9.9800000000000004 0.0000000007341007 +9.9900000000000002 0.0000000007339540 +10.0000000000000000 0.0000000007338073 +10.0099999999999998 0.0000000007336605 +10.0199999999999996 0.0000000007335138 +10.0299999999999994 0.0000000007333671 +10.0400000000000009 0.0000000007332203 +10.0500000000000007 0.0000000007330736 +10.0600000000000005 0.0000000007329269 +10.0700000000000003 0.0000000007327802 +10.0800000000000001 0.0000000007326334 +10.0899999999999999 0.0000000007324867 +10.0999999999999996 0.0000000007323400 +10.1099999999999994 0.0000000007321932 +10.1200000000000010 0.0000000007320465 +10.1300000000000008 0.0000000007318998 +10.1400000000000006 0.0000000007317530 +10.1500000000000004 0.0000000007316063 +10.1600000000000001 0.0000000007314596 +10.1699999999999999 0.0000000007313128 +10.1799999999999997 0.0000000007311661 +10.1899999999999995 0.0000000007310194 +10.2000000000000011 0.0000000007308726 +10.2100000000000009 0.0000000007307259 +10.2200000000000006 0.0000000007305792 +10.2300000000000004 0.0000000007304324 +10.2400000000000002 0.0000000007302857 +10.2500000000000000 0.0000000007301390 +10.2599999999999998 0.0000000007299922 +10.2699999999999996 0.0000000007298455 +10.2799999999999994 0.0000000007296988 +10.2900000000000009 0.0000000007295520 +10.3000000000000007 0.0000000007294053 +10.3100000000000005 0.0000000007292586 +10.3200000000000003 0.0000000007291118 +10.3300000000000001 0.0000000007289651 +10.3399999999999999 0.0000000007288184 +10.3499999999999996 0.0000000007286716 +10.3599999999999994 0.0000000007285249 +10.3700000000000010 0.0000000007283782 +10.3800000000000008 0.0000000007282314 +10.3900000000000006 0.0000000007280847 +10.4000000000000004 0.0000000007279380 +10.4100000000000001 0.0000000007277913 +10.4199999999999999 0.0000000007276445 +10.4299999999999997 0.0000000007274978 +10.4399999999999995 0.0000000007273511 +10.4500000000000011 0.0000000007272043 +10.4600000000000009 0.0000000007270576 +10.4700000000000006 0.0000000007269109 +10.4800000000000004 0.0000000007267641 +10.4900000000000002 0.0000000007266174 +10.5000000000000000 0.0000000007264707 +10.5099999999999998 0.0000000007263239 +10.5199999999999996 0.0000000007261772 +10.5299999999999994 0.0000000007260305 +10.5400000000000009 0.0000000007258837 +10.5500000000000007 0.0000000007257370 +10.5600000000000005 0.0000000007255903 +10.5700000000000003 0.0000000007254435 +10.5800000000000001 0.0000000007252968 +10.5899999999999999 0.0000000007251501 +10.5999999999999996 0.0000000007250033 +10.6099999999999994 0.0000000007248566 +10.6200000000000010 0.0000000007247099 +10.6300000000000008 0.0000000007245631 +10.6400000000000006 0.0000000007244164 +10.6500000000000004 0.0000000007242697 +10.6600000000000001 0.0000000007241229 +10.6699999999999999 0.0000000007239762 +10.6799999999999997 0.0000000007238295 +10.6899999999999995 0.0000000007236827 +10.7000000000000011 0.0000000007235360 +10.7100000000000009 0.0000000007233893 +10.7200000000000006 0.0000000007232425 +10.7300000000000004 0.0000000007230958 +10.7400000000000002 0.0000000007229491 +10.7500000000000000 0.0000000007228024 +10.7599999999999998 0.0000000007226556 +10.7699999999999996 0.0000000007225089 +10.7799999999999994 0.0000000007223622 +10.7900000000000009 0.0000000007222154 +10.8000000000000007 0.0000000007220687 +10.8100000000000005 0.0000000007219220 +10.8200000000000003 0.0000000007217752 +10.8300000000000001 0.0000000007216285 +10.8399999999999999 0.0000000007214818 +10.8499999999999996 0.0000000007213350 +10.8599999999999994 0.0000000007211883 +10.8700000000000010 0.0000000007210416 +10.8800000000000008 0.0000000007208948 +10.8900000000000006 0.0000000007207481 +10.9000000000000004 0.0000000007206014 +10.9100000000000001 0.0000000007204546 +10.9199999999999999 0.0000000007203079 +10.9299999999999997 0.0000000007201612 +10.9399999999999995 0.0000000007200144 +10.9500000000000011 0.0000000007198677 +10.9600000000000009 0.0000000007197210 +10.9700000000000006 0.0000000007195742 +10.9800000000000004 0.0000000007194275 +10.9900000000000002 0.0000000007192808 +11.0000000000000000 0.0000000007191340 +11.0099999999999998 0.0000000007189873 +11.0199999999999996 0.0000000007188406 +11.0299999999999994 0.0000000007186938 +11.0400000000000009 0.0000000007185471 +11.0500000000000007 0.0000000007184004 +11.0600000000000005 0.0000000007182536 +11.0700000000000003 0.0000000007181069 +11.0800000000000001 0.0000000007179602 +11.0899999999999999 0.0000000007178135 +11.0999999999999996 0.0000000007176667 +11.1099999999999994 0.0000000007175200 +11.1200000000000010 0.0000000007173733 +11.1300000000000008 0.0000000007172265 +11.1400000000000006 0.0000000007170798 +11.1500000000000004 0.0000000007169331 +11.1600000000000001 0.0000000007167863 +11.1699999999999999 0.0000000007166396 +11.1799999999999997 0.0000000007164929 +11.1899999999999995 0.0000000007163461 +11.2000000000000011 0.0000000007161994 +11.2100000000000009 0.0000000007160527 +11.2200000000000006 0.0000000007159059 +11.2300000000000004 0.0000000007157592 +11.2400000000000002 0.0000000007156125 +11.2500000000000000 0.0000000007154657 +11.2599999999999998 0.0000000007153190 +11.2699999999999996 0.0000000007151723 +11.2799999999999994 0.0000000007150255 +11.2900000000000009 0.0000000007148788 +11.3000000000000007 0.0000000007147321 +11.3100000000000005 0.0000000007145853 +11.3200000000000003 0.0000000007144386 +11.3300000000000001 0.0000000007142919 +11.3399999999999999 0.0000000007141451 +11.3499999999999996 0.0000000007139984 +11.3599999999999994 0.0000000007138517 +11.3700000000000010 0.0000000007137049 +11.3800000000000008 0.0000000007135582 +11.3900000000000006 0.0000000007134115 +11.4000000000000004 0.0000000007132647 +11.4100000000000001 0.0000000007131180 +11.4199999999999999 0.0000000007129713 +11.4299999999999997 0.0000000007128246 +11.4399999999999995 0.0000000007126778 +11.4500000000000011 0.0000000007125311 +11.4600000000000009 0.0000000007123844 +11.4700000000000006 0.0000000007122376 +11.4800000000000004 0.0000000007120909 +11.4900000000000002 0.0000000007119442 +11.5000000000000000 0.0000000007117974 +11.5099999999999998 0.0000000007116507 +11.5199999999999996 0.0000000007115040 +11.5299999999999994 0.0000000007113572 +11.5400000000000009 0.0000000007112105 +11.5500000000000007 0.0000000007110638 +11.5600000000000005 0.0000000007109170 +11.5700000000000003 0.0000000007107703 +11.5800000000000001 0.0000000007106236 +11.5899999999999999 0.0000000007104768 +11.5999999999999996 0.0000000007103301 +11.6099999999999994 0.0000000007101834 +11.6200000000000010 0.0000000007100366 +11.6300000000000008 0.0000000007098899 +11.6400000000000006 0.0000000007097432 +11.6500000000000004 0.0000000007095964 +11.6600000000000001 0.0000000007094497 +11.6699999999999999 0.0000000007093030 +11.6799999999999997 0.0000000007091562 +11.6899999999999995 0.0000000007090095 +11.7000000000000011 0.0000000007088628 +11.7100000000000009 0.0000000007087160 +11.7200000000000006 0.0000000007085693 +11.7300000000000004 0.0000000007084226 +11.7400000000000002 0.0000000007082758 +11.7500000000000000 0.0000000007081291 +11.7599999999999998 0.0000000007079824 +11.7699999999999996 0.0000000007078357 +11.7799999999999994 0.0000000007076889 +11.7900000000000009 0.0000000007075422 +11.8000000000000007 0.0000000007073955 +11.8100000000000005 0.0000000007072487 +11.8200000000000003 0.0000000007071020 +11.8300000000000001 0.0000000007069553 +11.8399999999999999 0.0000000007068085 +11.8499999999999996 0.0000000007066618 +11.8599999999999994 0.0000000007065151 +11.8700000000000010 0.0000000007063683 +11.8800000000000008 0.0000000007062216 +11.8900000000000006 0.0000000007060749 +11.9000000000000004 0.0000000007059281 +11.9100000000000001 0.0000000007057814 +11.9199999999999999 0.0000000007056347 +11.9299999999999997 0.0000000007054879 +11.9399999999999995 0.0000000007053412 +11.9500000000000011 0.0000000007051945 +11.9600000000000009 0.0000000007050477 +11.9700000000000006 0.0000000007049010 +11.9800000000000004 0.0000000007047543 +11.9900000000000002 0.0000000007046075 +12.0000000000000000 0.0000000007044608 +12.0099999999999998 0.0000000007043141 +12.0199999999999996 0.0000000007041673 +12.0300000000000011 0.0000000007040206 +12.0400000000000009 0.0000000007038739 +12.0500000000000007 0.0000000007037271 +12.0600000000000005 0.0000000007035804 +12.0700000000000003 0.0000000007034337 +12.0800000000000001 0.0000000007032869 +12.0899999999999999 0.0000000007031402 +12.0999999999999996 0.0000000007029935 +12.1099999999999994 0.0000000007028468 +12.1200000000000010 0.0000000007027000 +12.1300000000000008 0.0000000007025533 +12.1400000000000006 0.0000000007024066 +12.1500000000000004 0.0000000007022598 +12.1600000000000001 0.0000000007021131 +12.1699999999999999 0.0000000007019664 +12.1799999999999997 0.0000000007018196 +12.1899999999999995 0.0000000007016729 +12.2000000000000011 0.0000000007015262 +12.2100000000000009 0.0000000007013794 +12.2200000000000006 0.0000000007012327 +12.2300000000000004 0.0000000007010860 +12.2400000000000002 0.0000000007009392 +12.2500000000000000 0.0000000007007925 +12.2599999999999998 0.0000000007006458 +12.2699999999999996 0.0000000007004990 +12.2800000000000011 0.0000000007003523 +12.2900000000000009 0.0000000007002056 +12.3000000000000007 0.0000000007000588 +12.3100000000000005 0.0000000006999121 +12.3200000000000003 0.0000000006997654 +12.3300000000000001 0.0000000006996186 +12.3399999999999999 0.0000000006994719 +12.3499999999999996 0.0000000006993252 +12.3599999999999994 0.0000000006991784 +12.3700000000000010 0.0000000006990317 +12.3800000000000008 0.0000000006988850 +12.3900000000000006 0.0000000006987382 +12.4000000000000004 0.0000000006985915 +12.4100000000000001 0.0000000006984448 +12.4199999999999999 0.0000000006982980 +12.4299999999999997 0.0000000006981513 +12.4399999999999995 0.0000000006980046 +12.4500000000000011 0.0000000006978579 +12.4600000000000009 0.0000000006977111 +12.4700000000000006 0.0000000006975644 +12.4800000000000004 0.0000000006974177 +12.4900000000000002 0.0000000006972709 +12.5000000000000000 0.0000000006971242 +12.5099999999999998 0.0000000006969775 +12.5199999999999996 0.0000000006968307 +12.5300000000000011 0.0000000006966840 +12.5400000000000009 0.0000000006965373 +12.5500000000000007 0.0000000006963905 +12.5600000000000005 0.0000000006962438 +12.5700000000000003 0.0000000006960971 +12.5800000000000001 0.0000000006959503 +12.5899999999999999 0.0000000006958036 +12.5999999999999996 0.0000000006956569 +12.6099999999999994 0.0000000006955101 +12.6200000000000010 0.0000000006953634 +12.6300000000000008 0.0000000006952167 +12.6400000000000006 0.0000000006950699 +12.6500000000000004 0.0000000006949232 +12.6600000000000001 0.0000000006947765 +12.6699999999999999 0.0000000006946297 +12.6799999999999997 0.0000000006944830 +12.6899999999999995 0.0000000006943363 +12.7000000000000011 0.0000000006941895 +12.7100000000000009 0.0000000006940428 +12.7200000000000006 0.0000000006938961 +12.7300000000000004 0.0000000006937493 +12.7400000000000002 0.0000000006936026 +12.7500000000000000 0.0000000006934559 +12.7599999999999998 0.0000000006933092 +12.7699999999999996 0.0000000006931624 +12.7800000000000011 0.0000000006930157 +12.7900000000000009 0.0000000006928690 +12.8000000000000007 0.0000000006927222 +12.8100000000000005 0.0000000006925755 +12.8200000000000003 0.0000000006924288 +12.8300000000000001 0.0000000006922820 +12.8399999999999999 0.0000000006921353 +12.8499999999999996 0.0000000006919886 +12.8599999999999994 0.0000000006918418 +12.8700000000000010 0.0000000006916951 +12.8800000000000008 0.0000000006915484 +12.8900000000000006 0.0000000006914016 +12.9000000000000004 0.0000000006912549 +12.9100000000000001 0.0000000006911082 +12.9199999999999999 0.0000000006909614 +12.9299999999999997 0.0000000006908147 +12.9399999999999995 0.0000000006906680 +12.9500000000000011 0.0000000006905212 +12.9600000000000009 0.0000000006903745 +12.9700000000000006 0.0000000006902278 +12.9800000000000004 0.0000000006900810 +12.9900000000000002 0.0000000006899343 +13.0000000000000000 0.0000000006897876 +13.0099999999999998 0.0000000006896408 +13.0199999999999996 0.0000000006894941 +13.0300000000000011 0.0000000006893474 +13.0400000000000009 0.0000000006892006 +13.0500000000000007 0.0000000006890539 +13.0600000000000005 0.0000000006889072 +13.0700000000000003 0.0000000006887604 +13.0800000000000001 0.0000000006886137 +13.0899999999999999 0.0000000006884670 +13.0999999999999996 0.0000000006883203 +13.1099999999999994 0.0000000006881735 +13.1200000000000010 0.0000000006880268 +13.1300000000000008 0.0000000006878801 +13.1400000000000006 0.0000000006877333 +13.1500000000000004 0.0000000006875866 +13.1600000000000001 0.0000000006874399 +13.1699999999999999 0.0000000006872931 +13.1799999999999997 0.0000000006871464 +13.1899999999999995 0.0000000006869997 +13.2000000000000011 0.0000000006868529 +13.2100000000000009 0.0000000006867062 +13.2200000000000006 0.0000000006865595 +13.2300000000000004 0.0000000006864127 +13.2400000000000002 0.0000000006862660 +13.2500000000000000 0.0000000006861193 +13.2599999999999998 0.0000000006859725 +13.2699999999999996 0.0000000006858258 +13.2800000000000011 0.0000000006856791 +13.2900000000000009 0.0000000006855323 +13.3000000000000007 0.0000000006853856 +13.3100000000000005 0.0000000006852389 +13.3200000000000003 0.0000000006850921 +13.3300000000000001 0.0000000006849454 +13.3399999999999999 0.0000000006847987 +13.3499999999999996 0.0000000006846519 +13.3599999999999994 0.0000000006845052 +13.3700000000000010 0.0000000006843585 +13.3800000000000008 0.0000000006842117 +13.3900000000000006 0.0000000006840650 +13.4000000000000004 0.0000000006839183 +13.4100000000000001 0.0000000006837715 +13.4199999999999999 0.0000000006836248 +13.4299999999999997 0.0000000006834781 +13.4399999999999995 0.0000000006833314 +13.4500000000000011 0.0000000006831846 +13.4600000000000009 0.0000000006830379 +13.4700000000000006 0.0000000006828912 +13.4800000000000004 0.0000000006827444 +13.4900000000000002 0.0000000006825977 +13.5000000000000000 0.0000000006824510 +13.5099999999999998 0.0000000006823042 +13.5199999999999996 0.0000000006821575 +13.5300000000000011 0.0000000006820108 +13.5400000000000009 0.0000000006818640 +13.5500000000000007 0.0000000006817173 +13.5600000000000005 0.0000000006815706 +13.5700000000000003 0.0000000006814238 +13.5800000000000001 0.0000000006812771 +13.5899999999999999 0.0000000006811304 +13.5999999999999996 0.0000000006809836 +13.6099999999999994 0.0000000006808369 +13.6200000000000010 0.0000000006806902 +13.6300000000000008 0.0000000006805434 +13.6400000000000006 0.0000000006803967 +13.6500000000000004 0.0000000006802500 +13.6600000000000001 0.0000000006801032 +13.6699999999999999 0.0000000006799565 +13.6799999999999997 0.0000000006798098 +13.6899999999999995 0.0000000006796630 +13.7000000000000011 0.0000000006795163 +13.7100000000000009 0.0000000006793696 +13.7200000000000006 0.0000000006792228 +13.7300000000000004 0.0000000006790761 +13.7400000000000002 0.0000000006789294 +13.7500000000000000 0.0000000006787826 +13.7599999999999998 0.0000000006786359 +13.7699999999999996 0.0000000006784892 +13.7800000000000011 0.0000000006783425 +13.7900000000000009 0.0000000006781957 +13.8000000000000007 0.0000000006780490 +13.8100000000000005 0.0000000006779023 +13.8200000000000003 0.0000000006777555 +13.8300000000000001 0.0000000006776088 +13.8399999999999999 0.0000000006774621 +13.8499999999999996 0.0000000006773153 +13.8599999999999994 0.0000000006771686 +13.8700000000000010 0.0000000006770219 +13.8800000000000008 0.0000000006768751 +13.8900000000000006 0.0000000006767284 +13.9000000000000004 0.0000000006765817 +13.9100000000000001 0.0000000006764349 +13.9199999999999999 0.0000000006762882 +13.9299999999999997 0.0000000006761415 +13.9399999999999995 0.0000000006759947 +13.9500000000000011 0.0000000006758480 +13.9600000000000009 0.0000000006757013 +13.9700000000000006 0.0000000006755545 +13.9800000000000004 0.0000000006754078 +13.9900000000000002 0.0000000006752611 +14.0000000000000000 0.0000000006751143 +14.0099999999999998 0.0000000006749676 +14.0199999999999996 0.0000000006748209 +14.0300000000000011 0.0000000006746741 +14.0400000000000009 0.0000000006745274 +14.0500000000000007 0.0000000006743807 +14.0600000000000005 0.0000000006742339 +14.0700000000000003 0.0000000006740872 +14.0800000000000001 0.0000000006739405 +14.0899999999999999 0.0000000006737937 +14.0999999999999996 0.0000000006736470 +14.1099999999999994 0.0000000006735003 +14.1200000000000010 0.0000000006733536 +14.1300000000000008 0.0000000006732068 +14.1400000000000006 0.0000000006730601 +14.1500000000000004 0.0000000006729134 +14.1600000000000001 0.0000000006727666 +14.1699999999999999 0.0000000006726199 +14.1799999999999997 0.0000000006724732 +14.1899999999999995 0.0000000006723264 +14.2000000000000011 0.0000000006721797 +14.2100000000000009 0.0000000006720330 +14.2200000000000006 0.0000000006718862 +14.2300000000000004 0.0000000006717395 +14.2400000000000002 0.0000000006715928 +14.2500000000000000 0.0000000006714460 +14.2599999999999998 0.0000000006712993 +14.2699999999999996 0.0000000006711526 +14.2800000000000011 0.0000000006710058 +14.2900000000000009 0.0000000006708591 +14.3000000000000007 0.0000000006707124 +14.3100000000000005 0.0000000006705656 +14.3200000000000003 0.0000000006704189 +14.3300000000000001 0.0000000006702722 +14.3399999999999999 0.0000000006701254 +14.3499999999999996 0.0000000006699787 +14.3599999999999994 0.0000000006698320 +14.3700000000000010 0.0000000006696852 +14.3800000000000008 0.0000000006695385 +14.3900000000000006 0.0000000006693918 +14.4000000000000004 0.0000000006692450 +14.4100000000000001 0.0000000006690983 +14.4199999999999999 0.0000000006689516 +14.4299999999999997 0.0000000006688048 +14.4399999999999995 0.0000000006686581 +14.4500000000000011 0.0000000006685114 +14.4600000000000009 0.0000000006683647 +14.4700000000000006 0.0000000006682179 +14.4800000000000004 0.0000000006680712 +14.4900000000000002 0.0000000006679245 +14.5000000000000000 0.0000000006677777 +14.5099999999999998 0.0000000006676310 +14.5199999999999996 0.0000000006674843 +14.5300000000000011 0.0000000006673375 +14.5400000000000009 0.0000000006671908 +14.5500000000000007 0.0000000006670441 +14.5600000000000005 0.0000000006668973 +14.5700000000000003 0.0000000006667506 +14.5800000000000001 0.0000000006666039 +14.5899999999999999 0.0000000006664571 +14.5999999999999996 0.0000000006663104 +14.6099999999999994 0.0000000006661637 +14.6200000000000010 0.0000000006660169 +14.6300000000000008 0.0000000006658702 +14.6400000000000006 0.0000000006657235 +14.6500000000000004 0.0000000006655767 +14.6600000000000001 0.0000000006654300 +14.6699999999999999 0.0000000006652833 +14.6799999999999997 0.0000000006651365 +14.6899999999999995 0.0000000006649898 +14.7000000000000011 0.0000000006648431 +14.7100000000000009 0.0000000006646963 +14.7200000000000006 0.0000000006645496 +14.7300000000000004 0.0000000006644029 +14.7400000000000002 0.0000000006642561 +14.7500000000000000 0.0000000006641094 +14.7599999999999998 0.0000000006639627 +14.7699999999999996 0.0000000006638159 +14.7800000000000011 0.0000000006636692 +14.7900000000000009 0.0000000006635225 +14.8000000000000007 0.0000000006633758 +14.8100000000000005 0.0000000006632290 +14.8200000000000003 0.0000000006630823 +14.8300000000000001 0.0000000006629356 +14.8399999999999999 0.0000000006627888 +14.8499999999999996 0.0000000006626421 +14.8599999999999994 0.0000000006624954 +14.8700000000000010 0.0000000006623486 +14.8800000000000008 0.0000000006622019 +14.8900000000000006 0.0000000006620552 +14.9000000000000004 0.0000000006619084 +14.9100000000000001 0.0000000006617617 +14.9199999999999999 0.0000000006616150 +14.9299999999999997 0.0000000006614682 +14.9399999999999995 0.0000000006613215 +14.9500000000000011 0.0000000006611748 +14.9600000000000009 0.0000000006610280 +14.9700000000000006 0.0000000006608813 +14.9800000000000004 0.0000000006607346 +14.9900000000000002 0.0000000006605878 +15.0000000000000000 0.0000000006604411 +15.0099999999999998 0.0000000006602944 +15.0199999999999996 0.0000000006601476 +15.0300000000000011 0.0000000006600009 +15.0400000000000009 0.0000000006598542 +15.0500000000000007 0.0000000006597074 +15.0600000000000005 0.0000000006595607 +15.0700000000000003 0.0000000006594140 +15.0800000000000001 0.0000000006592672 +15.0899999999999999 0.0000000006591205 +15.0999999999999996 0.0000000006589738 +15.1099999999999994 0.0000000006588270 +15.1200000000000010 0.0000000006586803 +15.1300000000000008 0.0000000006585336 +15.1400000000000006 0.0000000006583869 +15.1500000000000004 0.0000000006582401 +15.1600000000000001 0.0000000006580934 +15.1699999999999999 0.0000000006579467 +15.1799999999999997 0.0000000006577999 +15.1899999999999995 0.0000000006576532 +15.2000000000000011 0.0000000006575065 +15.2100000000000009 0.0000000006573597 +15.2200000000000006 0.0000000006572130 +15.2300000000000004 0.0000000006570663 +15.2400000000000002 0.0000000006569195 +15.2500000000000000 0.0000000006567728 +15.2599999999999998 0.0000000006566261 +15.2699999999999996 0.0000000006564793 +15.2800000000000011 0.0000000006563326 +15.2900000000000009 0.0000000006561859 +15.3000000000000007 0.0000000006560391 +15.3100000000000005 0.0000000006558924 +15.3200000000000003 0.0000000006557457 +15.3300000000000001 0.0000000006555989 +15.3399999999999999 0.0000000006554522 +15.3499999999999996 0.0000000006553055 +15.3599999999999994 0.0000000006551587 +15.3700000000000010 0.0000000006550120 +15.3800000000000008 0.0000000006548653 +15.3900000000000006 0.0000000006547185 +15.4000000000000004 0.0000000006545718 +15.4100000000000001 0.0000000006544251 +15.4199999999999999 0.0000000006542783 +15.4299999999999997 0.0000000006541316 +15.4399999999999995 0.0000000006539849 +15.4500000000000011 0.0000000006538381 +15.4600000000000009 0.0000000006536914 +15.4700000000000006 0.0000000006535447 +15.4800000000000004 0.0000000006533980 +15.4900000000000002 0.0000000006532512 +15.5000000000000000 0.0000000006531045 +15.5099999999999998 0.0000000006529578 +15.5199999999999996 0.0000000006528110 +15.5300000000000011 0.0000000006526643 +15.5400000000000009 0.0000000006525176 +15.5500000000000007 0.0000000006523708 +15.5600000000000005 0.0000000006522241 +15.5700000000000003 0.0000000006520774 +15.5800000000000001 0.0000000006519306 +15.5899999999999999 0.0000000006517839 +15.5999999999999996 0.0000000006516372 +15.6100000000000012 0.0000000006514904 +15.6200000000000010 0.0000000006513437 +15.6300000000000008 0.0000000006511970 +15.6400000000000006 0.0000000006510502 +15.6500000000000004 0.0000000006509035 +15.6600000000000001 0.0000000006507568 +15.6699999999999999 0.0000000006506100 +15.6799999999999997 0.0000000006504633 +15.6899999999999995 0.0000000006503166 +15.7000000000000011 0.0000000006501698 +15.7100000000000009 0.0000000006500231 +15.7200000000000006 0.0000000006498764 +15.7300000000000004 0.0000000006497296 +15.7400000000000002 0.0000000006495829 +15.7500000000000000 0.0000000006494362 +15.7599999999999998 0.0000000006492894 +15.7699999999999996 0.0000000006491427 +15.7800000000000011 0.0000000006489960 +15.7900000000000009 0.0000000006488492 +15.8000000000000007 0.0000000006487025 +15.8100000000000005 0.0000000006485558 +15.8200000000000003 0.0000000006484091 +15.8300000000000001 0.0000000006482623 +15.8399999999999999 0.0000000006481156 +15.8499999999999996 0.0000000006479689 +15.8600000000000012 0.0000000006478221 +15.8700000000000010 0.0000000006476754 +15.8800000000000008 0.0000000006475287 +15.8900000000000006 0.0000000006473819 +15.9000000000000004 0.0000000006472352 +15.9100000000000001 0.0000000006470885 +15.9199999999999999 0.0000000006469417 +15.9299999999999997 0.0000000006467950 +15.9399999999999995 0.0000000006466483 +15.9500000000000011 0.0000000006465015 +15.9600000000000009 0.0000000006463548 +15.9700000000000006 0.0000000006462081 +15.9800000000000004 0.0000000006460613 +15.9900000000000002 0.0000000006459146 +16.0000000000000000 0.0000000006457679 +16.0100000000000016 0.0000000006456211 +16.0199999999999996 0.0000000006454744 +16.0300000000000011 0.0000000006453277 +16.0399999999999991 0.0000000006451809 +16.0500000000000007 0.0000000006450342 +16.0599999999999987 0.0000000006448875 +16.0700000000000003 0.0000000006447407 +16.0800000000000018 0.0000000006445940 +16.0899999999999999 0.0000000006444473 +16.1000000000000014 0.0000000006443005 +16.1099999999999994 0.0000000006441538 +16.1200000000000010 0.0000000006440071 +16.1299999999999990 0.0000000006438603 +16.1400000000000006 0.0000000006437136 +16.1499999999999986 0.0000000006435669 +16.1600000000000001 0.0000000006434202 +16.1700000000000017 0.0000000006432734 +16.1799999999999997 0.0000000006431267 +16.1900000000000013 0.0000000006429800 +16.1999999999999993 0.0000000006428332 +16.2100000000000009 0.0000000006426865 +16.2199999999999989 0.0000000006425398 +16.2300000000000004 0.0000000006423930 +16.2400000000000020 0.0000000006422463 +16.2500000000000000 0.0000000006420996 +16.2600000000000016 0.0000000006419528 +16.2699999999999996 0.0000000006418061 +16.2800000000000011 0.0000000006416594 +16.2899999999999991 0.0000000006415126 +16.3000000000000007 0.0000000006413659 +16.3099999999999987 0.0000000006412192 +16.3200000000000003 0.0000000006410724 +16.3300000000000018 0.0000000006409257 +16.3399999999999999 0.0000000006407790 +16.3500000000000014 0.0000000006406322 +16.3599999999999994 0.0000000006404855 +16.3700000000000010 0.0000000006403388 +16.3799999999999990 0.0000000006401920 +16.3900000000000006 0.0000000006400453 +16.3999999999999986 0.0000000006398986 +16.4100000000000001 0.0000000006397518 +16.4200000000000017 0.0000000006396051 +16.4299999999999997 0.0000000006394584 +16.4400000000000013 0.0000000006393116 +16.4499999999999993 0.0000000006391649 +16.4600000000000009 0.0000000006390182 +16.4699999999999989 0.0000000006388714 +16.4800000000000004 0.0000000006387247 +16.4900000000000020 0.0000000006385780 +16.5000000000000000 0.0000000006384313 +16.5100000000000016 0.0000000006382845 +16.5199999999999996 0.0000000006381378 +16.5300000000000011 0.0000000006379911 +16.5399999999999991 0.0000000006378443 +16.5500000000000007 0.0000000006376976 +16.5599999999999987 0.0000000006375509 +16.5700000000000003 0.0000000006374041 +16.5800000000000018 0.0000000006372574 +16.5899999999999999 0.0000000006371107 +16.6000000000000014 0.0000000006369639 +16.6099999999999994 0.0000000006368172 +16.6200000000000010 0.0000000006366705 +16.6299999999999990 0.0000000006365237 +16.6400000000000006 0.0000000006363770 +16.6499999999999986 0.0000000006362303 +16.6600000000000001 0.0000000006360835 +16.6700000000000017 0.0000000006359368 +16.6799999999999997 0.0000000006357901 +16.6900000000000013 0.0000000006356433 +16.6999999999999993 0.0000000006354966 +16.7100000000000009 0.0000000006353499 +16.7199999999999989 0.0000000006352031 +16.7300000000000004 0.0000000006350564 +16.7400000000000020 0.0000000006349097 +16.7500000000000000 0.0000000006347629 +16.7600000000000016 0.0000000006346162 +16.7699999999999996 0.0000000006344695 +16.7800000000000011 0.0000000006343227 +16.7899999999999991 0.0000000006341760 +16.8000000000000007 0.0000000006340293 +16.8099999999999987 0.0000000006338825 +16.8200000000000003 0.0000000006337358 +16.8300000000000018 0.0000000006335891 +16.8399999999999999 0.0000000006334424 +16.8500000000000014 0.0000000006332956 +16.8599999999999994 0.0000000006331489 +16.8700000000000010 0.0000000006330022 +16.8799999999999990 0.0000000006328554 +16.8900000000000006 0.0000000006327087 +16.8999999999999986 0.0000000006325620 +16.9100000000000001 0.0000000006324152 +16.9200000000000017 0.0000000006322685 +16.9299999999999997 0.0000000006321218 +16.9400000000000013 0.0000000006319750 +16.9499999999999993 0.0000000006318283 +16.9600000000000009 0.0000000006316816 +16.9699999999999989 0.0000000006315348 +16.9800000000000004 0.0000000006313881 +16.9900000000000020 0.0000000006312414 +17.0000000000000000 0.0000000006310946 +17.0100000000000016 0.0000000006309479 +17.0199999999999996 0.0000000006308012 +17.0300000000000011 0.0000000006306544 +17.0399999999999991 0.0000000006305077 +17.0500000000000007 0.0000000006303610 +17.0599999999999987 0.0000000006302142 +17.0700000000000003 0.0000000006300675 +17.0800000000000018 0.0000000006299208 +17.0899999999999999 0.0000000006297740 +17.1000000000000014 0.0000000006296273 +17.1099999999999994 0.0000000006294806 +17.1200000000000010 0.0000000006293338 +17.1299999999999990 0.0000000006291871 +17.1400000000000006 0.0000000006290404 +17.1500000000000021 0.0000000006288936 +17.1600000000000001 0.0000000006287469 +17.1700000000000017 0.0000000006286002 +17.1799999999999997 0.0000000006284535 +17.1900000000000013 0.0000000006283067 +17.1999999999999993 0.0000000006281600 +17.2100000000000009 0.0000000006280133 +17.2199999999999989 0.0000000006278665 +17.2300000000000004 0.0000000006277198 +17.2400000000000020 0.0000000006275731 +17.2500000000000000 0.0000000006274263 +17.2600000000000016 0.0000000006272796 +17.2699999999999996 0.0000000006271329 +17.2800000000000011 0.0000000006269861 +17.2899999999999991 0.0000000006268394 +17.3000000000000007 0.0000000006266927 +17.3099999999999987 0.0000000006265459 +17.3200000000000003 0.0000000006263992 +17.3300000000000018 0.0000000006262525 +17.3399999999999999 0.0000000006261057 +17.3500000000000014 0.0000000006259590 +17.3599999999999994 0.0000000006258123 +17.3700000000000010 0.0000000006256655 +17.3799999999999990 0.0000000006255188 +17.3900000000000006 0.0000000006253721 +17.4000000000000021 0.0000000006252253 +17.4100000000000001 0.0000000006250786 +17.4200000000000017 0.0000000006249319 +17.4299999999999997 0.0000000006247851 +17.4400000000000013 0.0000000006246384 +17.4499999999999993 0.0000000006244917 +17.4600000000000009 0.0000000006243449 +17.4699999999999989 0.0000000006241982 +17.4800000000000004 0.0000000006240515 +17.4900000000000020 0.0000000006239047 +17.5000000000000000 0.0000000006237580 +17.5100000000000016 0.0000000006236113 +17.5199999999999996 0.0000000006234646 +17.5300000000000011 0.0000000006233178 +17.5399999999999991 0.0000000006231711 +17.5500000000000007 0.0000000006230244 +17.5599999999999987 0.0000000006228776 +17.5700000000000003 0.0000000006227309 +17.5800000000000018 0.0000000006225842 +17.5899999999999999 0.0000000006224374 +17.6000000000000014 0.0000000006222907 +17.6099999999999994 0.0000000006221440 +17.6200000000000010 0.0000000006219972 +17.6299999999999990 0.0000000006218505 +17.6400000000000006 0.0000000006217038 +17.6500000000000021 0.0000000006215570 +17.6600000000000001 0.0000000006214103 +17.6700000000000017 0.0000000006212636 +17.6799999999999997 0.0000000006211168 +17.6900000000000013 0.0000000006209701 +17.6999999999999993 0.0000000006208234 +17.7100000000000009 0.0000000006206766 +17.7199999999999989 0.0000000006205299 +17.7300000000000004 0.0000000006203832 +17.7400000000000020 0.0000000006202364 +17.7500000000000000 0.0000000006200897 +17.7600000000000016 0.0000000006199430 +17.7699999999999996 0.0000000006197962 +17.7800000000000011 0.0000000006196495 +17.7899999999999991 0.0000000006195028 +17.8000000000000007 0.0000000006193560 +17.8099999999999987 0.0000000006192093 +17.8200000000000003 0.0000000006190626 +17.8300000000000018 0.0000000006189158 +17.8399999999999999 0.0000000006187691 +17.8500000000000014 0.0000000006186224 +17.8599999999999994 0.0000000006184757 +17.8700000000000010 0.0000000006183289 +17.8799999999999990 0.0000000006181822 +17.8900000000000006 0.0000000006180355 +17.9000000000000021 0.0000000006178887 +17.9100000000000001 0.0000000006177420 +17.9200000000000017 0.0000000006175953 +17.9299999999999997 0.0000000006174485 +17.9400000000000013 0.0000000006173018 +17.9499999999999993 0.0000000006171551 +17.9600000000000009 0.0000000006170083 +17.9699999999999989 0.0000000006168616 +17.9800000000000004 0.0000000006167149 +17.9900000000000020 0.0000000006165681 +18.0000000000000000 0.0000000006164214 +18.0100000000000016 0.0000000006162747 +18.0199999999999996 0.0000000006161279 +18.0300000000000011 0.0000000006159812 +18.0399999999999991 0.0000000006158345 +18.0500000000000007 0.0000000006156877 +18.0599999999999987 0.0000000006155410 +18.0700000000000003 0.0000000006153943 +18.0800000000000018 0.0000000006152475 +18.0899999999999999 0.0000000006151008 +18.1000000000000014 0.0000000006149541 +18.1099999999999994 0.0000000006148073 +18.1200000000000010 0.0000000006146606 +18.1299999999999990 0.0000000006145139 +18.1400000000000006 0.0000000006143671 +18.1500000000000021 0.0000000006142204 +18.1600000000000001 0.0000000006140737 +18.1700000000000017 0.0000000006139269 +18.1799999999999997 0.0000000006137802 +18.1900000000000013 0.0000000006136335 +18.1999999999999993 0.0000000006134868 +18.2100000000000009 0.0000000006133400 +18.2199999999999989 0.0000000006131933 +18.2300000000000004 0.0000000006130466 +18.2400000000000020 0.0000000006128998 +18.2500000000000000 0.0000000006127531 +18.2600000000000016 0.0000000006126064 +18.2699999999999996 0.0000000006124596 +18.2800000000000011 0.0000000006123129 +18.2899999999999991 0.0000000006121662 +18.3000000000000007 0.0000000006120194 +18.3099999999999987 0.0000000006118727 +18.3200000000000003 0.0000000006117260 +18.3300000000000018 0.0000000006115792 +18.3399999999999999 0.0000000006114325 +18.3500000000000014 0.0000000006112858 +18.3599999999999994 0.0000000006111390 +18.3700000000000010 0.0000000006109923 +18.3799999999999990 0.0000000006108456 +18.3900000000000006 0.0000000006106988 +18.4000000000000021 0.0000000006105521 +18.4100000000000001 0.0000000006104054 +18.4200000000000017 0.0000000006102586 +18.4299999999999997 0.0000000006101119 +18.4400000000000013 0.0000000006099652 +18.4499999999999993 0.0000000006098184 +18.4600000000000009 0.0000000006096717 +18.4699999999999989 0.0000000006095250 +18.4800000000000004 0.0000000006093782 +18.4900000000000020 0.0000000006092315 +18.5000000000000000 0.0000000006090848 +18.5100000000000016 0.0000000006089380 +18.5199999999999996 0.0000000006087913 +18.5300000000000011 0.0000000006086446 +18.5399999999999991 0.0000000006084979 +18.5500000000000007 0.0000000006083511 +18.5599999999999987 0.0000000006082044 +18.5700000000000003 0.0000000006080577 +18.5800000000000018 0.0000000006079109 +18.5899999999999999 0.0000000006077642 +18.6000000000000014 0.0000000006076175 +18.6099999999999994 0.0000000006074707 +18.6200000000000010 0.0000000006073240 +18.6299999999999990 0.0000000006071773 +18.6400000000000006 0.0000000006070305 +18.6500000000000021 0.0000000006068838 +18.6600000000000001 0.0000000006067371 +18.6700000000000017 0.0000000006065903 +18.6799999999999997 0.0000000006064436 +18.6900000000000013 0.0000000006062969 +18.6999999999999993 0.0000000006061501 +18.7100000000000009 0.0000000006060034 +18.7199999999999989 0.0000000006058567 +18.7300000000000004 0.0000000006057099 +18.7400000000000020 0.0000000006055632 +18.7500000000000000 0.0000000006054165 +18.7600000000000016 0.0000000006052697 +18.7699999999999996 0.0000000006051230 +18.7800000000000011 0.0000000006049763 +18.7899999999999991 0.0000000006048295 +18.8000000000000007 0.0000000006046828 +18.8099999999999987 0.0000000006045361 +18.8200000000000003 0.0000000006043893 +18.8300000000000018 0.0000000006042426 +18.8399999999999999 0.0000000006040959 +18.8500000000000014 0.0000000006039491 +18.8599999999999994 0.0000000006038024 +18.8700000000000010 0.0000000006036557 +18.8799999999999990 0.0000000006035090 +18.8900000000000006 0.0000000006033622 +18.9000000000000021 0.0000000006032155 +18.9100000000000001 0.0000000006030688 +18.9200000000000017 0.0000000006029220 +18.9299999999999997 0.0000000006027753 +18.9400000000000013 0.0000000006026286 +18.9499999999999993 0.0000000006024818 +18.9600000000000009 0.0000000006023351 +18.9699999999999989 0.0000000006021884 +18.9800000000000004 0.0000000006020416 +18.9900000000000020 0.0000000006018949 +19.0000000000000000 0.0000000006017482 +19.0100000000000016 0.0000000006016014 +19.0199999999999996 0.0000000006014547 +19.0300000000000011 0.0000000006013080 +19.0399999999999991 0.0000000006011612 +19.0500000000000007 0.0000000006010145 +19.0599999999999987 0.0000000006008678 +19.0700000000000003 0.0000000006007210 +19.0800000000000018 0.0000000006005743 +19.0899999999999999 0.0000000006004276 +19.1000000000000014 0.0000000006002808 +19.1099999999999994 0.0000000006001341 +19.1200000000000010 0.0000000005999874 +19.1299999999999990 0.0000000005998406 +19.1400000000000006 0.0000000005996939 +19.1500000000000021 0.0000000005995472 +19.1600000000000001 0.0000000005994004 +19.1700000000000017 0.0000000005992537 +19.1799999999999997 0.0000000005991070 +19.1900000000000013 0.0000000005989602 +19.1999999999999993 0.0000000005988135 +19.2100000000000009 0.0000000005986668 +19.2199999999999989 0.0000000005985201 +19.2300000000000004 0.0000000005983733 +19.2400000000000020 0.0000000005982266 +19.2500000000000000 0.0000000005980799 +19.2600000000000016 0.0000000005979331 +19.2699999999999996 0.0000000005977864 +19.2800000000000011 0.0000000005976397 +19.2899999999999991 0.0000000005974929 +19.3000000000000007 0.0000000005973462 +19.3099999999999987 0.0000000005971995 +19.3200000000000003 0.0000000005970527 +19.3300000000000018 0.0000000005969060 +19.3399999999999999 0.0000000005967593 +19.3500000000000014 0.0000000005966125 +19.3599999999999994 0.0000000005964658 +19.3700000000000010 0.0000000005963191 +19.3799999999999990 0.0000000005961723 +19.3900000000000006 0.0000000005960256 +19.4000000000000021 0.0000000005958789 +19.4100000000000001 0.0000000005957321 +19.4200000000000017 0.0000000005955854 +19.4299999999999997 0.0000000005954387 +19.4400000000000013 0.0000000005952919 +19.4499999999999993 0.0000000005951452 +19.4600000000000009 0.0000000005949985 +19.4699999999999989 0.0000000005948517 +19.4800000000000004 0.0000000005947050 +19.4900000000000020 0.0000000005945583 +19.5000000000000000 0.0000000005944115 +19.5100000000000016 0.0000000005942648 +19.5199999999999996 0.0000000005941181 +19.5300000000000011 0.0000000005939713 +19.5399999999999991 0.0000000005938246 +19.5500000000000007 0.0000000005936779 +19.5599999999999987 0.0000000005935312 +19.5700000000000003 0.0000000005933844 +19.5800000000000018 0.0000000005932377 +19.5899999999999999 0.0000000005930910 +19.6000000000000014 0.0000000005929442 +19.6099999999999994 0.0000000005927975 +19.6200000000000010 0.0000000005926508 +19.6299999999999990 0.0000000005925040 +19.6400000000000006 0.0000000005923573 +19.6500000000000021 0.0000000005922106 +19.6600000000000001 0.0000000005920638 +19.6700000000000017 0.0000000005919171 +19.6799999999999997 0.0000000005917704 +19.6900000000000013 0.0000000005916236 +19.6999999999999993 0.0000000005914769 +19.7100000000000009 0.0000000005913302 +19.7199999999999989 0.0000000005911834 +19.7300000000000004 0.0000000005910367 +19.7400000000000020 0.0000000005908900 +19.7500000000000000 0.0000000005907432 +19.7600000000000016 0.0000000005905965 +19.7699999999999996 0.0000000005904498 +19.7800000000000011 0.0000000005903030 +19.7899999999999991 0.0000000005901563 +19.8000000000000007 0.0000000005900096 +19.8099999999999987 0.0000000005898628 +19.8200000000000003 0.0000000005897161 +19.8300000000000018 0.0000000005895694 +19.8399999999999999 0.0000000005894226 +19.8500000000000014 0.0000000005892759 +19.8599999999999994 0.0000000005891292 +19.8700000000000010 0.0000000005889824 +19.8799999999999990 0.0000000005888357 +19.8900000000000006 0.0000000005886890 +19.9000000000000021 0.0000000005885423 +19.9100000000000001 0.0000000005883955 +19.9200000000000017 0.0000000005882488 +19.9299999999999997 0.0000000005881021 +19.9400000000000013 0.0000000005879553 +19.9499999999999993 0.0000000005878086 +19.9600000000000009 0.0000000005876619 +19.9699999999999989 0.0000000005875151 +19.9800000000000004 0.0000000005873684 +19.9900000000000020 0.0000000005872217 +20.0000000000000000 0.0000000005870749 +20.0100000000000016 0.0000000005869282 +20.0199999999999996 0.0000000005867815 +20.0300000000000011 0.0000000005866347 +20.0399999999999991 0.0000000005864880 +20.0500000000000007 0.0000000005863413 +20.0599999999999987 0.0000000005861945 +20.0700000000000003 0.0000000005860478 +20.0800000000000018 0.0000000005859011 +20.0899999999999999 0.0000000005857543 +20.1000000000000014 0.0000000005856076 +20.1099999999999994 0.0000000005854609 +20.1200000000000010 0.0000000005853141 +20.1299999999999990 0.0000000005851674 +20.1400000000000006 0.0000000005850207 +20.1500000000000021 0.0000000005848739 +20.1600000000000001 0.0000000005847272 +20.1700000000000017 0.0000000005845805 +20.1799999999999997 0.0000000005844337 +20.1900000000000013 0.0000000005842870 +20.1999999999999993 0.0000000005841403 +20.2100000000000009 0.0000000005839935 +20.2199999999999989 0.0000000005838468 +20.2300000000000004 0.0000000005837001 +20.2400000000000020 0.0000000005835534 +20.2500000000000000 0.0000000005834066 +20.2600000000000016 0.0000000005832599 +20.2699999999999996 0.0000000005831132 +20.2800000000000011 0.0000000005829664 +20.2899999999999991 0.0000000005828197 +20.3000000000000007 0.0000000005826730 +20.3099999999999987 0.0000000005825262 +20.3200000000000003 0.0000000005823795 +20.3300000000000018 0.0000000005822328 +20.3399999999999999 0.0000000005820860 +20.3500000000000014 0.0000000005819393 +20.3599999999999994 0.0000000005817926 +20.3700000000000010 0.0000000005816458 +20.3799999999999990 0.0000000005814991 +20.3900000000000006 0.0000000005813524 +20.4000000000000021 0.0000000005812056 +20.4100000000000001 0.0000000005810589 +20.4200000000000017 0.0000000005809122 +20.4299999999999997 0.0000000005807654 +20.4400000000000013 0.0000000005806187 +20.4499999999999993 0.0000000005804720 +20.4600000000000009 0.0000000005803252 +20.4699999999999989 0.0000000005801785 +20.4800000000000004 0.0000000005800318 +20.4900000000000020 0.0000000005798850 +20.5000000000000000 0.0000000005797383 +20.5100000000000016 0.0000000005795916 +20.5199999999999996 0.0000000005794448 +20.5300000000000011 0.0000000005792981 +20.5399999999999991 0.0000000005791514 +20.5500000000000007 0.0000000005790047 +20.5599999999999987 0.0000000005788579 +20.5700000000000003 0.0000000005787112 +20.5800000000000018 0.0000000005785645 +20.5899999999999999 0.0000000005784177 +20.6000000000000014 0.0000000005782710 +20.6099999999999994 0.0000000005781243 +20.6200000000000010 0.0000000005779775 +20.6299999999999990 0.0000000005778308 +20.6400000000000006 0.0000000005776841 +20.6500000000000021 0.0000000005775373 +20.6600000000000001 0.0000000005773906 +20.6700000000000017 0.0000000005772439 +20.6799999999999997 0.0000000005770971 +20.6900000000000013 0.0000000005769504 +20.6999999999999993 0.0000000005768037 +20.7100000000000009 0.0000000005766569 +20.7199999999999989 0.0000000005765102 +20.7300000000000004 0.0000000005763635 +20.7400000000000020 0.0000000005762167 +20.7500000000000000 0.0000000005760700 +20.7600000000000016 0.0000000005759233 +20.7699999999999996 0.0000000005757765 +20.7800000000000011 0.0000000005756298 +20.7899999999999991 0.0000000005754831 +20.8000000000000007 0.0000000005753363 +20.8099999999999987 0.0000000005751896 +20.8200000000000003 0.0000000005750429 +20.8300000000000018 0.0000000005748961 +20.8399999999999999 0.0000000005747494 +20.8500000000000014 0.0000000005746027 +20.8599999999999994 0.0000000005744559 +20.8700000000000010 0.0000000005743092 +20.8799999999999990 0.0000000005741625 +20.8900000000000006 0.0000000005740158 +20.9000000000000021 0.0000000005738690 +20.9100000000000001 0.0000000005737223 +20.9200000000000017 0.0000000005735756 +20.9299999999999997 0.0000000005734288 +20.9400000000000013 0.0000000005732821 +20.9499999999999993 0.0000000005731354 +20.9600000000000009 0.0000000005729886 +20.9699999999999989 0.0000000005728419 +20.9800000000000004 0.0000000005726952 +20.9900000000000020 0.0000000005725484 +21.0000000000000000 0.0000000005724017 +21.0100000000000016 0.0000000005722550 +21.0199999999999996 0.0000000005721082 +21.0300000000000011 0.0000000005719615 +21.0399999999999991 0.0000000005718148 +21.0500000000000007 0.0000000005716680 +21.0599999999999987 0.0000000005715213 +21.0700000000000003 0.0000000005713746 +21.0800000000000018 0.0000000005712278 +21.0899999999999999 0.0000000005710811 +21.1000000000000014 0.0000000005709344 +21.1099999999999994 0.0000000005707876 +21.1200000000000010 0.0000000005706409 +21.1299999999999990 0.0000000005704942 +21.1400000000000006 0.0000000005703474 +21.1500000000000021 0.0000000005702007 +21.1600000000000001 0.0000000005700540 +21.1700000000000017 0.0000000005699072 +21.1799999999999997 0.0000000005697605 +21.1900000000000013 0.0000000005696138 +21.1999999999999993 0.0000000005694670 +21.2100000000000009 0.0000000005693203 +21.2199999999999989 0.0000000005691736 +21.2300000000000004 0.0000000005690269 +21.2400000000000020 0.0000000005688801 +21.2500000000000000 0.0000000005687334 +21.2600000000000016 0.0000000005685867 +21.2699999999999996 0.0000000005684399 +21.2800000000000011 0.0000000005682932 +21.2899999999999991 0.0000000005681465 +21.3000000000000007 0.0000000005679997 +21.3099999999999987 0.0000000005678530 +21.3200000000000003 0.0000000005677063 +21.3300000000000018 0.0000000005675595 +21.3399999999999999 0.0000000005674128 +21.3500000000000014 0.0000000005672661 +21.3599999999999994 0.0000000005671193 +21.3700000000000010 0.0000000005669726 +21.3799999999999990 0.0000000005668259 +21.3900000000000006 0.0000000005666791 +21.4000000000000021 0.0000000005665324 +21.4100000000000001 0.0000000005663857 +21.4200000000000017 0.0000000005662389 +21.4299999999999997 0.0000000005660922 +21.4400000000000013 0.0000000005659455 +21.4499999999999993 0.0000000005657987 +21.4600000000000009 0.0000000005656520 +21.4699999999999989 0.0000000005655053 +21.4800000000000004 0.0000000005653585 +21.4900000000000020 0.0000000005652118 +21.5000000000000000 0.0000000005650651 +21.5100000000000016 0.0000000005649183 +21.5199999999999996 0.0000000005647716 +21.5300000000000011 0.0000000005646249 +21.5399999999999991 0.0000000005644781 +21.5500000000000007 0.0000000005643314 +21.5599999999999987 0.0000000005641847 +21.5700000000000003 0.0000000005640380 +21.5800000000000018 0.0000000005638912 +21.5899999999999999 0.0000000005637445 +21.6000000000000014 0.0000000005635978 +21.6099999999999994 0.0000000005634510 +21.6200000000000010 0.0000000005633043 +21.6299999999999990 0.0000000005631576 +21.6400000000000006 0.0000000005630108 +21.6500000000000021 0.0000000005628641 +21.6600000000000001 0.0000000005627174 +21.6700000000000017 0.0000000005625706 +21.6799999999999997 0.0000000005624239 +21.6900000000000013 0.0000000005622772 +21.6999999999999993 0.0000000005621304 +21.7100000000000009 0.0000000005619837 +21.7199999999999989 0.0000000005618370 +21.7300000000000004 0.0000000005616902 +21.7400000000000020 0.0000000005615435 +21.7500000000000000 0.0000000005613968 +21.7600000000000016 0.0000000005612500 +21.7699999999999996 0.0000000005611033 +21.7800000000000011 0.0000000005609566 +21.7899999999999991 0.0000000005608098 +21.8000000000000007 0.0000000005606631 +21.8099999999999987 0.0000000005605164 +21.8200000000000003 0.0000000005603696 +21.8300000000000018 0.0000000005602229 +21.8399999999999999 0.0000000005600762 +21.8500000000000014 0.0000000005599294 +21.8599999999999994 0.0000000005597827 +21.8700000000000010 0.0000000005596360 +21.8799999999999990 0.0000000005594892 +21.8900000000000006 0.0000000005593425 +21.9000000000000021 0.0000000005591958 +21.9100000000000001 0.0000000005590491 +21.9200000000000017 0.0000000005589023 +21.9299999999999997 0.0000000005587556 +21.9400000000000013 0.0000000005586089 +21.9499999999999993 0.0000000005584621 +21.9600000000000009 0.0000000005583154 +21.9699999999999989 0.0000000005581687 +21.9800000000000004 0.0000000005580219 +21.9900000000000020 0.0000000005578752 +22.0000000000000000 0.0000000005577285 +22.0100000000000016 0.0000000005575817 +22.0199999999999996 0.0000000005574350 +22.0300000000000011 0.0000000005572883 +22.0399999999999991 0.0000000005571415 +22.0500000000000007 0.0000000005569948 +22.0599999999999987 0.0000000005568481 +22.0700000000000003 0.0000000005567013 +22.0800000000000018 0.0000000005565546 +22.0899999999999999 0.0000000005564079 +22.1000000000000014 0.0000000005562611 +22.1099999999999994 0.0000000005561144 +22.1200000000000010 0.0000000005559677 +22.1299999999999990 0.0000000005558209 +22.1400000000000006 0.0000000005556742 +22.1500000000000021 0.0000000005555275 +22.1600000000000001 0.0000000005553807 +22.1700000000000017 0.0000000005552340 +22.1799999999999997 0.0000000005550873 +22.1900000000000013 0.0000000005549405 +22.1999999999999993 0.0000000005547938 +22.2100000000000009 0.0000000005546471 +22.2199999999999989 0.0000000005545003 +22.2300000000000004 0.0000000005543536 +22.2400000000000020 0.0000000005542069 +22.2500000000000000 0.0000000005540602 +22.2600000000000016 0.0000000005539134 +22.2699999999999996 0.0000000005537667 +22.2800000000000011 0.0000000005536200 +22.2899999999999991 0.0000000005534732 +22.3000000000000007 0.0000000005533265 +22.3099999999999987 0.0000000005531798 +22.3200000000000003 0.0000000005530330 +22.3300000000000018 0.0000000005528863 +22.3399999999999999 0.0000000005527396 +22.3500000000000014 0.0000000005525928 +22.3599999999999994 0.0000000005524461 +22.3700000000000010 0.0000000005522994 +22.3799999999999990 0.0000000005521526 +22.3900000000000006 0.0000000005520059 +22.4000000000000021 0.0000000005518592 +22.4100000000000001 0.0000000005517124 +22.4200000000000017 0.0000000005515657 +22.4299999999999997 0.0000000005514190 +22.4400000000000013 0.0000000005512722 +22.4499999999999993 0.0000000005511255 +22.4600000000000009 0.0000000005509788 +22.4699999999999989 0.0000000005508320 +22.4800000000000004 0.0000000005506853 +22.4900000000000020 0.0000000005505386 +22.5000000000000000 0.0000000005503918 +22.5100000000000016 0.0000000005502451 +22.5199999999999996 0.0000000005500984 +22.5300000000000011 0.0000000005499516 +22.5399999999999991 0.0000000005498049 +22.5500000000000007 0.0000000005496582 +22.5599999999999987 0.0000000005495114 +22.5700000000000003 0.0000000005493647 +22.5800000000000018 0.0000000005492180 +22.5899999999999999 0.0000000005490713 +22.6000000000000014 0.0000000005489245 +22.6099999999999994 0.0000000005487778 +22.6200000000000010 0.0000000005486311 +22.6299999999999990 0.0000000005484843 +22.6400000000000006 0.0000000005483376 +22.6500000000000021 0.0000000005481909 +22.6600000000000001 0.0000000005480441 +22.6700000000000017 0.0000000005478974 +22.6799999999999997 0.0000000005477507 +22.6900000000000013 0.0000000005476039 +22.6999999999999993 0.0000000005474572 +22.7100000000000009 0.0000000005473105 +22.7199999999999989 0.0000000005471637 +22.7300000000000004 0.0000000005470170 +22.7400000000000020 0.0000000005468703 +22.7500000000000000 0.0000000005467235 +22.7600000000000016 0.0000000005465768 +22.7699999999999996 0.0000000005464301 +22.7800000000000011 0.0000000005462833 +22.7899999999999991 0.0000000005461366 +22.8000000000000007 0.0000000005459899 +22.8099999999999987 0.0000000005458431 +22.8200000000000003 0.0000000005456964 +22.8300000000000018 0.0000000005455497 +22.8399999999999999 0.0000000005454029 +22.8500000000000014 0.0000000005452562 +22.8599999999999994 0.0000000005451095 +22.8700000000000010 0.0000000005449627 +22.8799999999999990 0.0000000005448160 +22.8900000000000006 0.0000000005446693 +22.9000000000000021 0.0000000005445225 +22.9100000000000001 0.0000000005443758 +22.9200000000000017 0.0000000005442291 +22.9299999999999997 0.0000000005440824 +22.9400000000000013 0.0000000005439356 +22.9499999999999993 0.0000000005437889 +22.9600000000000009 0.0000000005436422 +22.9699999999999989 0.0000000005434954 +22.9800000000000004 0.0000000005433487 +22.9900000000000020 0.0000000005432020 +23.0000000000000000 0.0000000005430552 +23.0100000000000016 0.0000000005429085 +23.0199999999999996 0.0000000005427618 +23.0300000000000011 0.0000000005426150 +23.0399999999999991 0.0000000005424683 +23.0500000000000007 0.0000000005423216 +23.0599999999999987 0.0000000005421748 +23.0700000000000003 0.0000000005420281 +23.0800000000000018 0.0000000005418814 +23.0899999999999999 0.0000000005417346 +23.1000000000000014 0.0000000005415879 +23.1099999999999994 0.0000000005414412 +23.1200000000000010 0.0000000005412944 +23.1299999999999990 0.0000000005411477 +23.1400000000000006 0.0000000005410010 +23.1500000000000021 0.0000000005408542 +23.1600000000000001 0.0000000005407075 +23.1700000000000017 0.0000000005405608 +23.1799999999999997 0.0000000005404140 +23.1900000000000013 0.0000000005402673 +23.1999999999999993 0.0000000005401206 +23.2100000000000009 0.0000000005399738 +23.2199999999999989 0.0000000005398271 +23.2300000000000004 0.0000000005396804 +23.2400000000000020 0.0000000005395336 +23.2500000000000000 0.0000000005393869 +23.2600000000000016 0.0000000005392402 +23.2699999999999996 0.0000000005390935 +23.2800000000000011 0.0000000005389467 +23.2899999999999991 0.0000000005388000 +23.3000000000000007 0.0000000005386533 +23.3099999999999987 0.0000000005385065 +23.3200000000000003 0.0000000005383598 +23.3300000000000018 0.0000000005382131 +23.3399999999999999 0.0000000005380663 +23.3500000000000014 0.0000000005379196 +23.3599999999999994 0.0000000005377729 +23.3700000000000010 0.0000000005376261 +23.3799999999999990 0.0000000005374794 +23.3900000000000006 0.0000000005373327 +23.4000000000000021 0.0000000005371859 +23.4100000000000001 0.0000000005370392 +23.4200000000000017 0.0000000005368925 +23.4299999999999997 0.0000000005367457 +23.4400000000000013 0.0000000005365990 +23.4499999999999993 0.0000000005364523 +23.4600000000000009 0.0000000005363055 +23.4699999999999989 0.0000000005361588 +23.4800000000000004 0.0000000005360121 +23.4900000000000020 0.0000000005358653 +23.5000000000000000 0.0000000005357186 +23.5100000000000016 0.0000000005355719 +23.5199999999999996 0.0000000005354251 +23.5300000000000011 0.0000000005352784 +23.5399999999999991 0.0000000005351317 +23.5500000000000007 0.0000000005349849 +23.5599999999999987 0.0000000005348382 +23.5700000000000003 0.0000000005346915 +23.5800000000000018 0.0000000005345447 +23.5899999999999999 0.0000000005343980 +23.6000000000000014 0.0000000005342513 +23.6099999999999994 0.0000000005341046 +23.6200000000000010 0.0000000005339578 +23.6299999999999990 0.0000000005338111 +23.6400000000000006 0.0000000005336644 +23.6500000000000021 0.0000000005335176 +23.6600000000000001 0.0000000005333709 +23.6700000000000017 0.0000000005332242 +23.6799999999999997 0.0000000005330774 +23.6900000000000013 0.0000000005329307 +23.6999999999999993 0.0000000005327840 +23.7100000000000009 0.0000000005326372 +23.7199999999999989 0.0000000005324905 +23.7300000000000004 0.0000000005323438 +23.7400000000000020 0.0000000005321970 +23.7500000000000000 0.0000000005320503 +23.7600000000000016 0.0000000005319036 +23.7699999999999996 0.0000000005317568 +23.7800000000000011 0.0000000005316101 +23.7899999999999991 0.0000000005314634 +23.8000000000000007 0.0000000005313166 +23.8099999999999987 0.0000000005311699 +23.8200000000000003 0.0000000005310232 +23.8300000000000018 0.0000000005308764 +23.8399999999999999 0.0000000005307297 +23.8500000000000014 0.0000000005305830 +23.8599999999999994 0.0000000005304362 +23.8700000000000010 0.0000000005302895 +23.8799999999999990 0.0000000005301428 +23.8900000000000006 0.0000000005299960 +23.9000000000000021 0.0000000005298493 +23.9100000000000001 0.0000000005297026 +23.9200000000000017 0.0000000005295558 +23.9299999999999997 0.0000000005294091 +23.9400000000000013 0.0000000005292624 +23.9499999999999993 0.0000000005291157 +23.9600000000000009 0.0000000005289689 +23.9699999999999989 0.0000000005288222 +23.9800000000000004 0.0000000005286755 +23.9900000000000020 0.0000000005285287 +24.0000000000000000 0.0000000005283820 +24.0100000000000016 0.0000000005282353 +24.0199999999999996 0.0000000005280885 +24.0300000000000011 0.0000000005279418 +24.0399999999999991 0.0000000005277951 +24.0500000000000007 0.0000000005276483 +24.0600000000000023 0.0000000005275016 +24.0700000000000003 0.0000000005273549 +24.0800000000000018 0.0000000005272081 +24.0899999999999999 0.0000000005270614 +24.1000000000000014 0.0000000005269147 +24.1099999999999994 0.0000000005267679 +24.1200000000000010 0.0000000005266212 +24.1299999999999990 0.0000000005264745 +24.1400000000000006 0.0000000005263277 +24.1500000000000021 0.0000000005261810 +24.1600000000000001 0.0000000005260343 +24.1700000000000017 0.0000000005258875 +24.1799999999999997 0.0000000005257408 +24.1900000000000013 0.0000000005255941 +24.1999999999999993 0.0000000005254473 +24.2100000000000009 0.0000000005253006 +24.2199999999999989 0.0000000005251539 +24.2300000000000004 0.0000000005250071 +24.2400000000000020 0.0000000005248604 +24.2500000000000000 0.0000000005247137 +24.2600000000000016 0.0000000005245669 +24.2699999999999996 0.0000000005244202 +24.2800000000000011 0.0000000005242735 +24.2899999999999991 0.0000000005241268 +24.3000000000000007 0.0000000005239800 +24.3100000000000023 0.0000000005238333 +24.3200000000000003 0.0000000005236866 +24.3300000000000018 0.0000000005235398 +24.3399999999999999 0.0000000005233931 +24.3500000000000014 0.0000000005232464 +24.3599999999999994 0.0000000005230996 +24.3700000000000010 0.0000000005229529 +24.3799999999999990 0.0000000005228062 +24.3900000000000006 0.0000000005226594 +24.4000000000000021 0.0000000005225127 +24.4100000000000001 0.0000000005223660 +24.4200000000000017 0.0000000005222192 +24.4299999999999997 0.0000000005220725 +24.4400000000000013 0.0000000005219258 +24.4499999999999993 0.0000000005217790 +24.4600000000000009 0.0000000005216323 +24.4699999999999989 0.0000000005214856 +24.4800000000000004 0.0000000005213388 +24.4900000000000020 0.0000000005211921 +24.5000000000000000 0.0000000005210454 +24.5100000000000016 0.0000000005208986 +24.5199999999999996 0.0000000005207519 +24.5300000000000011 0.0000000005206052 +24.5399999999999991 0.0000000005204584 +24.5500000000000007 0.0000000005203117 +24.5600000000000023 0.0000000005201650 +24.5700000000000003 0.0000000005200182 +24.5800000000000018 0.0000000005198715 +24.5899999999999999 0.0000000005197248 +24.6000000000000014 0.0000000005195780 +24.6099999999999994 0.0000000005194313 +24.6200000000000010 0.0000000005192846 +24.6299999999999990 0.0000000005191379 +24.6400000000000006 0.0000000005189911 +24.6500000000000021 0.0000000005188444 +24.6600000000000001 0.0000000005186977 +24.6700000000000017 0.0000000005185509 +24.6799999999999997 0.0000000005184042 +24.6900000000000013 0.0000000005182575 +24.6999999999999993 0.0000000005181107 +24.7100000000000009 0.0000000005179640 +24.7199999999999989 0.0000000005178173 +24.7300000000000004 0.0000000005176705 +24.7400000000000020 0.0000000005175238 +24.7500000000000000 0.0000000005173771 +24.7600000000000016 0.0000000005172303 +24.7699999999999996 0.0000000005170836 +24.7800000000000011 0.0000000005169369 +24.7899999999999991 0.0000000005167901 +24.8000000000000007 0.0000000005166434 +24.8100000000000023 0.0000000005164967 +24.8200000000000003 0.0000000005163499 +24.8300000000000018 0.0000000005162032 +24.8399999999999999 0.0000000005160565 +24.8500000000000014 0.0000000005159097 +24.8599999999999994 0.0000000005157630 +24.8700000000000010 0.0000000005156163 +24.8799999999999990 0.0000000005154695 +24.8900000000000006 0.0000000005153228 +24.9000000000000021 0.0000000005151761 +24.9100000000000001 0.0000000005150293 +24.9200000000000017 0.0000000005148826 +24.9299999999999997 0.0000000005147359 +24.9400000000000013 0.0000000005145891 +24.9499999999999993 0.0000000005144424 +24.9600000000000009 0.0000000005142957 +24.9699999999999989 0.0000000005141490 +24.9800000000000004 0.0000000005140022 +24.9900000000000020 0.0000000005138555 +25.0000000000000000 0.0000000005137088 +25.0100000000000016 0.0000000005135620 +25.0199999999999996 0.0000000005134153 +25.0300000000000011 0.0000000005132686 +25.0399999999999991 0.0000000005131218 +25.0500000000000007 0.0000000005129751 +25.0600000000000023 0.0000000005128284 +25.0700000000000003 0.0000000005126816 +25.0800000000000018 0.0000000005125349 +25.0899999999999999 0.0000000005123882 +25.1000000000000014 0.0000000005122414 +25.1099999999999994 0.0000000005120947 +25.1200000000000010 0.0000000005119480 +25.1299999999999990 0.0000000005118012 +25.1400000000000006 0.0000000005116545 +25.1500000000000021 0.0000000005115078 +25.1600000000000001 0.0000000005113610 +25.1700000000000017 0.0000000005112143 +25.1799999999999997 0.0000000005110676 +25.1900000000000013 0.0000000005109208 +25.1999999999999993 0.0000000005107741 +25.2100000000000009 0.0000000005106274 +25.2199999999999989 0.0000000005104806 +25.2300000000000004 0.0000000005103339 +25.2400000000000020 0.0000000005101872 +25.2500000000000000 0.0000000005100404 +25.2600000000000016 0.0000000005098937 +25.2699999999999996 0.0000000005097470 +25.2800000000000011 0.0000000005096002 +25.2899999999999991 0.0000000005094535 +25.3000000000000007 0.0000000005093068 +25.3100000000000023 0.0000000005091601 +25.3200000000000003 0.0000000005090133 +25.3300000000000018 0.0000000005088666 +25.3399999999999999 0.0000000005087199 +25.3500000000000014 0.0000000005085731 +25.3599999999999994 0.0000000005084264 +25.3700000000000010 0.0000000005082797 +25.3799999999999990 0.0000000005081329 +25.3900000000000006 0.0000000005079862 +25.4000000000000021 0.0000000005078395 +25.4100000000000001 0.0000000005076927 +25.4200000000000017 0.0000000005075460 +25.4299999999999997 0.0000000005073993 +25.4400000000000013 0.0000000005072525 +25.4499999999999993 0.0000000005071058 +25.4600000000000009 0.0000000005069591 +25.4699999999999989 0.0000000005068123 +25.4800000000000004 0.0000000005066656 +25.4900000000000020 0.0000000005065189 +25.5000000000000000 0.0000000005063721 +25.5100000000000016 0.0000000005062254 +25.5199999999999996 0.0000000005060787 +25.5300000000000011 0.0000000005059319 +25.5399999999999991 0.0000000005057852 +25.5500000000000007 0.0000000005056385 +25.5600000000000023 0.0000000005054917 +25.5700000000000003 0.0000000005053450 +25.5800000000000018 0.0000000005051983 +25.5899999999999999 0.0000000005050515 +25.6000000000000014 0.0000000005049048 +25.6099999999999994 0.0000000005047581 +25.6200000000000010 0.0000000005046113 +25.6299999999999990 0.0000000005044646 +25.6400000000000006 0.0000000005043179 +25.6500000000000021 0.0000000005041712 +25.6600000000000001 0.0000000005040244 +25.6700000000000017 0.0000000005038777 +25.6799999999999997 0.0000000005037310 +25.6900000000000013 0.0000000005035842 +25.6999999999999993 0.0000000005034375 +25.7100000000000009 0.0000000005032908 +25.7199999999999989 0.0000000005031440 +25.7300000000000004 0.0000000005029973 +25.7400000000000020 0.0000000005028506 +25.7500000000000000 0.0000000005027038 +25.7600000000000016 0.0000000005025571 +25.7699999999999996 0.0000000005024104 +25.7800000000000011 0.0000000005022636 +25.7899999999999991 0.0000000005021169 +25.8000000000000007 0.0000000005019702 +25.8100000000000023 0.0000000005018234 +25.8200000000000003 0.0000000005016767 +25.8300000000000018 0.0000000005015300 +25.8399999999999999 0.0000000005013832 +25.8500000000000014 0.0000000005012365 +25.8599999999999994 0.0000000005010898 +25.8700000000000010 0.0000000005009430 +25.8799999999999990 0.0000000005007963 +25.8900000000000006 0.0000000005006496 +25.9000000000000021 0.0000000005005028 +25.9100000000000001 0.0000000005003561 +25.9200000000000017 0.0000000005002094 +25.9299999999999997 0.0000000005000626 +25.9400000000000013 0.0000000004999159 +25.9499999999999993 0.0000000004997692 +25.9600000000000009 0.0000000004996224 +25.9699999999999989 0.0000000004994757 +25.9800000000000004 0.0000000004993290 +25.9900000000000020 0.0000000004991823 +26.0000000000000000 0.0000000004990355 +26.0100000000000016 0.0000000004988888 +26.0199999999999996 0.0000000004987421 +26.0300000000000011 0.0000000004985953 +26.0399999999999991 0.0000000004984486 +26.0500000000000007 0.0000000004983019 +26.0600000000000023 0.0000000004981551 +26.0700000000000003 0.0000000004980084 +26.0800000000000018 0.0000000004978617 +26.0899999999999999 0.0000000004977149 +26.1000000000000014 0.0000000004975682 +26.1099999999999994 0.0000000004974215 +26.1200000000000010 0.0000000004972747 +26.1299999999999990 0.0000000004971280 +26.1400000000000006 0.0000000004969813 +26.1500000000000021 0.0000000004968345 +26.1600000000000001 0.0000000004966878 +26.1700000000000017 0.0000000004965411 +26.1799999999999997 0.0000000004963943 +26.1900000000000013 0.0000000004962476 +26.1999999999999993 0.0000000004961009 +26.2100000000000009 0.0000000004959541 +26.2199999999999989 0.0000000004958074 +26.2300000000000004 0.0000000004956607 +26.2400000000000020 0.0000000004955139 +26.2500000000000000 0.0000000004953672 +26.2600000000000016 0.0000000004952205 +26.2699999999999996 0.0000000004950737 +26.2800000000000011 0.0000000004949270 +26.2899999999999991 0.0000000004947803 +26.3000000000000007 0.0000000004946335 +26.3100000000000023 0.0000000004944868 +26.3200000000000003 0.0000000004943401 +26.3300000000000018 0.0000000004941934 +26.3399999999999999 0.0000000004940466 +26.3500000000000014 0.0000000004938999 +26.3599999999999994 0.0000000004937532 +26.3700000000000010 0.0000000004936064 +26.3799999999999990 0.0000000004934597 +26.3900000000000006 0.0000000004933130 +26.4000000000000021 0.0000000004931662 +26.4100000000000001 0.0000000004930195 +26.4200000000000017 0.0000000004928728 +26.4299999999999997 0.0000000004927260 +26.4400000000000013 0.0000000004925793 +26.4499999999999993 0.0000000004924326 +26.4600000000000009 0.0000000004922858 +26.4699999999999989 0.0000000004921391 +26.4800000000000004 0.0000000004919924 +26.4900000000000020 0.0000000004918456 +26.5000000000000000 0.0000000004916989 +26.5100000000000016 0.0000000004915522 +26.5199999999999996 0.0000000004914054 +26.5300000000000011 0.0000000004912587 +26.5399999999999991 0.0000000004911120 +26.5500000000000007 0.0000000004909652 +26.5600000000000023 0.0000000004908185 +26.5700000000000003 0.0000000004906718 +26.5800000000000018 0.0000000004905250 +26.5899999999999999 0.0000000004903783 +26.6000000000000014 0.0000000004902316 +26.6099999999999994 0.0000000004900848 +26.6200000000000010 0.0000000004899381 +26.6299999999999990 0.0000000004897914 +26.6400000000000006 0.0000000004896446 +26.6500000000000021 0.0000000004894979 +26.6600000000000001 0.0000000004893512 +26.6700000000000017 0.0000000004892045 +26.6799999999999997 0.0000000004890577 +26.6900000000000013 0.0000000004889110 +26.6999999999999993 0.0000000004887643 +26.7100000000000009 0.0000000004886175 +26.7199999999999989 0.0000000004884708 +26.7300000000000004 0.0000000004883241 +26.7400000000000020 0.0000000004881773 +26.7500000000000000 0.0000000004880306 +26.7600000000000016 0.0000000004878839 +26.7699999999999996 0.0000000004877371 +26.7800000000000011 0.0000000004875904 +26.7899999999999991 0.0000000004874437 +26.8000000000000007 0.0000000004872969 +26.8100000000000023 0.0000000004871502 +26.8200000000000003 0.0000000004870035 +26.8300000000000018 0.0000000004868567 +26.8399999999999999 0.0000000004867100 +26.8500000000000014 0.0000000004865633 +26.8599999999999994 0.0000000004864165 +26.8700000000000010 0.0000000004862698 +26.8799999999999990 0.0000000004861231 +26.8900000000000006 0.0000000004859763 +26.9000000000000021 0.0000000004858296 +26.9100000000000001 0.0000000004856829 +26.9200000000000017 0.0000000004855361 +26.9299999999999997 0.0000000004853894 +26.9400000000000013 0.0000000004852427 +26.9499999999999993 0.0000000004850959 +26.9600000000000009 0.0000000004849492 +26.9699999999999989 0.0000000004848025 +26.9800000000000004 0.0000000004846557 +26.9900000000000020 0.0000000004845090 +27.0000000000000000 0.0000000004843623 +27.0100000000000016 0.0000000004842156 +27.0199999999999996 0.0000000004840688 +27.0300000000000011 0.0000000004839221 +27.0399999999999991 0.0000000004837754 +27.0500000000000007 0.0000000004836286 +27.0600000000000023 0.0000000004834819 +27.0700000000000003 0.0000000004833352 +27.0800000000000018 0.0000000004831884 +27.0899999999999999 0.0000000004830417 +27.1000000000000014 0.0000000004828950 +27.1099999999999994 0.0000000004827482 +27.1200000000000010 0.0000000004826015 +27.1299999999999990 0.0000000004824548 +27.1400000000000006 0.0000000004823080 +27.1500000000000021 0.0000000004821613 +27.1600000000000001 0.0000000004820146 +27.1700000000000017 0.0000000004818678 +27.1799999999999997 0.0000000004817211 +27.1900000000000013 0.0000000004815744 +27.1999999999999993 0.0000000004814276 +27.2100000000000009 0.0000000004812809 +27.2199999999999989 0.0000000004811342 +27.2300000000000004 0.0000000004809874 +27.2400000000000020 0.0000000004808407 +27.2500000000000000 0.0000000004806940 +27.2600000000000016 0.0000000004805472 +27.2699999999999996 0.0000000004804005 +27.2800000000000011 0.0000000004802538 +27.2899999999999991 0.0000000004801070 +27.3000000000000007 0.0000000004799603 +27.3100000000000023 0.0000000004798136 +27.3200000000000003 0.0000000004796668 +27.3300000000000018 0.0000000004795201 +27.3399999999999999 0.0000000004793734 +27.3500000000000014 0.0000000004792267 +27.3599999999999994 0.0000000004790799 +27.3700000000000010 0.0000000004789332 +27.3799999999999990 0.0000000004787865 +27.3900000000000006 0.0000000004786397 +27.4000000000000021 0.0000000004784930 +27.4100000000000001 0.0000000004783463 +27.4200000000000017 0.0000000004781995 +27.4299999999999997 0.0000000004780528 +27.4400000000000013 0.0000000004779061 +27.4499999999999993 0.0000000004777593 +27.4600000000000009 0.0000000004776126 +27.4699999999999989 0.0000000004774659 +27.4800000000000004 0.0000000004773191 +27.4900000000000020 0.0000000004771724 +27.5000000000000000 0.0000000004770257 +27.5100000000000016 0.0000000004768789 +27.5199999999999996 0.0000000004767322 +27.5300000000000011 0.0000000004765855 +27.5399999999999991 0.0000000004764387 +27.5500000000000007 0.0000000004762920 +27.5600000000000023 0.0000000004761453 +27.5700000000000003 0.0000000004759985 +27.5800000000000018 0.0000000004758518 +27.5899999999999999 0.0000000004757051 +27.6000000000000014 0.0000000004755583 +27.6099999999999994 0.0000000004754116 +27.6200000000000010 0.0000000004752649 +27.6299999999999990 0.0000000004751181 +27.6400000000000006 0.0000000004749714 +27.6500000000000021 0.0000000004748247 +27.6600000000000001 0.0000000004746779 +27.6700000000000017 0.0000000004745312 +27.6799999999999997 0.0000000004743845 +27.6900000000000013 0.0000000004742378 +27.6999999999999993 0.0000000004740910 +27.7100000000000009 0.0000000004739443 +27.7199999999999989 0.0000000004737976 +27.7300000000000004 0.0000000004736508 +27.7400000000000020 0.0000000004735041 +27.7500000000000000 0.0000000004733574 +27.7600000000000016 0.0000000004732106 +27.7699999999999996 0.0000000004730639 +27.7800000000000011 0.0000000004729172 +27.7899999999999991 0.0000000004727704 +27.8000000000000007 0.0000000004726237 +27.8100000000000023 0.0000000004724770 +27.8200000000000003 0.0000000004723302 +27.8300000000000018 0.0000000004721835 +27.8399999999999999 0.0000000004720368 +27.8500000000000014 0.0000000004718900 +27.8599999999999994 0.0000000004717433 +27.8700000000000010 0.0000000004715966 +27.8799999999999990 0.0000000004714498 +27.8900000000000006 0.0000000004713031 +27.9000000000000021 0.0000000004711564 +27.9100000000000001 0.0000000004710096 +27.9200000000000017 0.0000000004708629 +27.9299999999999997 0.0000000004707162 +27.9400000000000013 0.0000000004705694 +27.9499999999999993 0.0000000004704227 +27.9600000000000009 0.0000000004702760 +27.9699999999999989 0.0000000004701292 +27.9800000000000004 0.0000000004699825 +27.9900000000000020 0.0000000004698358 +28.0000000000000000 0.0000000004696890 +28.0100000000000016 0.0000000004695423 +28.0199999999999996 0.0000000004693956 +28.0300000000000011 0.0000000004692489 +28.0399999999999991 0.0000000004691021 +28.0500000000000007 0.0000000004689554 +28.0600000000000023 0.0000000004688087 +28.0700000000000003 0.0000000004686619 +28.0800000000000018 0.0000000004685152 +28.0899999999999999 0.0000000004683685 +28.1000000000000014 0.0000000004682217 +28.1099999999999994 0.0000000004680750 +28.1200000000000010 0.0000000004679283 +28.1299999999999990 0.0000000004677815 +28.1400000000000006 0.0000000004676348 +28.1500000000000021 0.0000000004674881 +28.1600000000000001 0.0000000004673413 +28.1700000000000017 0.0000000004671946 +28.1799999999999997 0.0000000004670479 +28.1900000000000013 0.0000000004669011 +28.1999999999999993 0.0000000004667544 +28.2100000000000009 0.0000000004666077 +28.2199999999999989 0.0000000004664609 +28.2300000000000004 0.0000000004663142 +28.2400000000000020 0.0000000004661675 +28.2500000000000000 0.0000000004660207 +28.2600000000000016 0.0000000004658740 +28.2699999999999996 0.0000000004657273 +28.2800000000000011 0.0000000004655805 +28.2899999999999991 0.0000000004654338 +28.3000000000000007 0.0000000004652871 +28.3100000000000023 0.0000000004651403 +28.3200000000000003 0.0000000004649936 +28.3300000000000018 0.0000000004648469 +28.3399999999999999 0.0000000004647002 +28.3500000000000014 0.0000000004645534 +28.3599999999999994 0.0000000004644067 +28.3700000000000010 0.0000000004642600 +28.3799999999999990 0.0000000004641132 +28.3900000000000006 0.0000000004639665 +28.4000000000000021 0.0000000004638198 +28.4100000000000001 0.0000000004636730 +28.4200000000000017 0.0000000004635263 +28.4299999999999997 0.0000000004633796 +28.4400000000000013 0.0000000004632328 +28.4499999999999993 0.0000000004630861 +28.4600000000000009 0.0000000004629394 +28.4699999999999989 0.0000000004627926 +28.4800000000000004 0.0000000004626459 +28.4900000000000020 0.0000000004624992 +28.5000000000000000 0.0000000004623524 +28.5100000000000016 0.0000000004622057 +28.5199999999999996 0.0000000004620590 +28.5300000000000011 0.0000000004619122 +28.5399999999999991 0.0000000004617655 +28.5500000000000007 0.0000000004616188 +28.5600000000000023 0.0000000004614720 +28.5700000000000003 0.0000000004613253 +28.5800000000000018 0.0000000004611786 +28.5899999999999999 0.0000000004610318 +28.6000000000000014 0.0000000004608851 +28.6099999999999994 0.0000000004607384 +28.6200000000000010 0.0000000004605916 +28.6299999999999990 0.0000000004604449 +28.6400000000000006 0.0000000004602982 +28.6500000000000021 0.0000000004601514 +28.6600000000000001 0.0000000004600047 +28.6700000000000017 0.0000000004598580 +28.6799999999999997 0.0000000004597113 +28.6900000000000013 0.0000000004595645 +28.6999999999999993 0.0000000004594178 +28.7100000000000009 0.0000000004592711 +28.7199999999999989 0.0000000004591243 +28.7300000000000004 0.0000000004589776 +28.7400000000000020 0.0000000004588309 +28.7500000000000000 0.0000000004586841 +28.7600000000000016 0.0000000004585374 +28.7699999999999996 0.0000000004583907 +28.7800000000000011 0.0000000004582439 +28.7899999999999991 0.0000000004580972 +28.8000000000000007 0.0000000004579505 +28.8100000000000023 0.0000000004578037 +28.8200000000000003 0.0000000004576570 +28.8300000000000018 0.0000000004575103 +28.8399999999999999 0.0000000004573635 +28.8500000000000014 0.0000000004572168 +28.8599999999999994 0.0000000004570701 +28.8700000000000010 0.0000000004569233 +28.8799999999999990 0.0000000004567766 +28.8900000000000006 0.0000000004566299 +28.9000000000000021 0.0000000004564831 +28.9100000000000001 0.0000000004563364 +28.9200000000000017 0.0000000004561897 +28.9299999999999997 0.0000000004560429 +28.9400000000000013 0.0000000004558962 +28.9499999999999993 0.0000000004557495 +28.9600000000000009 0.0000000004556027 +28.9699999999999989 0.0000000004554560 +28.9800000000000004 0.0000000004553093 +28.9900000000000020 0.0000000004551625 +29.0000000000000000 0.0000000004550158 +29.0100000000000016 0.0000000004548691 +29.0199999999999996 0.0000000004547224 +29.0300000000000011 0.0000000004545756 +29.0399999999999991 0.0000000004544289 +29.0500000000000007 0.0000000004542822 +29.0600000000000023 0.0000000004541354 +29.0700000000000003 0.0000000004539887 +29.0800000000000018 0.0000000004538420 +29.0899999999999999 0.0000000004536952 +29.1000000000000014 0.0000000004535485 +29.1099999999999994 0.0000000004534018 +29.1200000000000010 0.0000000004532550 +29.1299999999999990 0.0000000004531083 +29.1400000000000006 0.0000000004529616 +29.1500000000000021 0.0000000004528148 +29.1600000000000001 0.0000000004526681 +29.1700000000000017 0.0000000004525214 +29.1799999999999997 0.0000000004523746 +29.1900000000000013 0.0000000004522279 +29.1999999999999993 0.0000000004520812 +29.2100000000000009 0.0000000004519344 +29.2199999999999989 0.0000000004517877 +29.2300000000000004 0.0000000004516410 +29.2400000000000020 0.0000000004514942 +29.2500000000000000 0.0000000004513475 +29.2600000000000016 0.0000000004512008 +29.2699999999999996 0.0000000004510540 +29.2800000000000011 0.0000000004509073 +29.2899999999999991 0.0000000004507606 +29.3000000000000007 0.0000000004506138 +29.3100000000000023 0.0000000004504671 +29.3200000000000003 0.0000000004503204 +29.3300000000000018 0.0000000004501736 +29.3399999999999999 0.0000000004500269 +29.3500000000000014 0.0000000004498802 +29.3599999999999994 0.0000000004497335 +29.3700000000000010 0.0000000004495867 +29.3799999999999990 0.0000000004494400 +29.3900000000000006 0.0000000004492933 +29.4000000000000021 0.0000000004491465 +29.4100000000000001 0.0000000004489998 +29.4200000000000017 0.0000000004488531 +29.4299999999999997 0.0000000004487063 +29.4400000000000013 0.0000000004485596 +29.4499999999999993 0.0000000004484129 +29.4600000000000009 0.0000000004482661 +29.4699999999999989 0.0000000004481194 +29.4800000000000004 0.0000000004479727 +29.4900000000000020 0.0000000004478259 +29.5000000000000000 0.0000000004476792 +29.5100000000000016 0.0000000004475325 +29.5199999999999996 0.0000000004473857 +29.5300000000000011 0.0000000004472390 +29.5399999999999991 0.0000000004470923 +29.5500000000000007 0.0000000004469455 +29.5600000000000023 0.0000000004467988 +29.5700000000000003 0.0000000004466521 +29.5800000000000018 0.0000000004465053 +29.5899999999999999 0.0000000004463586 +29.6000000000000014 0.0000000004462119 +29.6099999999999994 0.0000000004460651 +29.6200000000000010 0.0000000004459184 +29.6299999999999990 0.0000000004457717 +29.6400000000000006 0.0000000004456249 +29.6500000000000021 0.0000000004454782 +29.6600000000000001 0.0000000004453315 +29.6700000000000017 0.0000000004451847 +29.6799999999999997 0.0000000004450380 +29.6900000000000013 0.0000000004448913 +29.6999999999999993 0.0000000004447446 +29.7100000000000009 0.0000000004445978 +29.7199999999999989 0.0000000004444511 +29.7300000000000004 0.0000000004443044 +29.7400000000000020 0.0000000004441576 +29.7500000000000000 0.0000000004440109 +29.7600000000000016 0.0000000004438642 +29.7699999999999996 0.0000000004437174 +29.7800000000000011 0.0000000004435707 +29.7899999999999991 0.0000000004434240 +29.8000000000000007 0.0000000004432772 +29.8100000000000023 0.0000000004431305 +29.8200000000000003 0.0000000004429838 +29.8300000000000018 0.0000000004428370 +29.8399999999999999 0.0000000004426903 +29.8500000000000014 0.0000000004425436 +29.8599999999999994 0.0000000004423968 +29.8700000000000010 0.0000000004422501 +29.8799999999999990 0.0000000004421034 +29.8900000000000006 0.0000000004419566 +29.9000000000000021 0.0000000004418099 +29.9100000000000001 0.0000000004416632 +29.9200000000000017 0.0000000004415164 +29.9299999999999997 0.0000000004413697 +29.9400000000000013 0.0000000004412230 +29.9499999999999993 0.0000000004410762 +29.9600000000000009 0.0000000004409295 +29.9699999999999989 0.0000000004407828 +29.9800000000000004 0.0000000004406360 +29.9900000000000020 0.0000000004404893 +30.0000000000000000 0.0000000004403426 +30.0100000000000016 0.0000000004401958 +30.0199999999999996 0.0000000004400491 +30.0300000000000011 0.0000000004399024 +30.0399999999999991 0.0000000004397557 +30.0500000000000007 0.0000000004396089 +30.0600000000000023 0.0000000004394622 +30.0700000000000003 0.0000000004393155 +30.0800000000000018 0.0000000004391687 +30.0899999999999999 0.0000000004390220 +30.1000000000000014 0.0000000004388753 +30.1099999999999994 0.0000000004387285 +30.1200000000000010 0.0000000004385818 +30.1299999999999990 0.0000000004384351 +30.1400000000000006 0.0000000004382883 +30.1500000000000021 0.0000000004381416 +30.1600000000000001 0.0000000004379949 +30.1700000000000017 0.0000000004378481 +30.1799999999999997 0.0000000004377014 +30.1900000000000013 0.0000000004375547 +30.1999999999999993 0.0000000004374079 +30.2100000000000009 0.0000000004372612 +30.2199999999999989 0.0000000004371145 +30.2300000000000004 0.0000000004369677 +30.2400000000000020 0.0000000004368210 +30.2500000000000000 0.0000000004366743 +30.2600000000000016 0.0000000004365275 +30.2699999999999996 0.0000000004363808 +30.2800000000000011 0.0000000004362341 +30.2899999999999991 0.0000000004360873 +30.3000000000000007 0.0000000004359406 +30.3100000000000023 0.0000000004357939 +30.3200000000000003 0.0000000004356471 +30.3300000000000018 0.0000000004355004 +30.3399999999999999 0.0000000004353537 +30.3500000000000014 0.0000000004352069 +30.3599999999999994 0.0000000004350602 +30.3700000000000010 0.0000000004349135 +30.3799999999999990 0.0000000004347668 +30.3900000000000006 0.0000000004346200 +30.4000000000000021 0.0000000004344733 +30.4100000000000001 0.0000000004343266 +30.4200000000000017 0.0000000004341798 +30.4299999999999997 0.0000000004340331 +30.4400000000000013 0.0000000004338864 +30.4499999999999993 0.0000000004337396 +30.4600000000000009 0.0000000004335929 +30.4699999999999989 0.0000000004334462 +30.4800000000000004 0.0000000004332994 +30.4900000000000020 0.0000000004331527 +30.5000000000000000 0.0000000004330060 +30.5100000000000016 0.0000000004328592 +30.5199999999999996 0.0000000004327125 +30.5300000000000011 0.0000000004325658 +30.5399999999999991 0.0000000004324190 +30.5500000000000007 0.0000000004322723 +30.5600000000000023 0.0000000004321256 +30.5700000000000003 0.0000000004319788 +30.5800000000000018 0.0000000004318321 +30.5899999999999999 0.0000000004316854 +30.6000000000000014 0.0000000004315386 +30.6099999999999994 0.0000000004313919 +30.6200000000000010 0.0000000004312452 +30.6299999999999990 0.0000000004310984 +30.6400000000000006 0.0000000004309517 +30.6500000000000021 0.0000000004308050 +30.6600000000000001 0.0000000004306582 +30.6700000000000017 0.0000000004305115 +30.6799999999999997 0.0000000004303648 +30.6900000000000013 0.0000000004302180 +30.6999999999999993 0.0000000004300713 +30.7100000000000009 0.0000000004299246 +30.7199999999999989 0.0000000004297779 +30.7300000000000004 0.0000000004296311 +30.7400000000000020 0.0000000004294844 +30.7500000000000000 0.0000000004293377 +30.7600000000000016 0.0000000004291909 +30.7699999999999996 0.0000000004290442 +30.7800000000000011 0.0000000004288975 +30.7899999999999991 0.0000000004287507 +30.8000000000000007 0.0000000004286040 +30.8100000000000023 0.0000000004284573 +30.8200000000000003 0.0000000004283105 +30.8300000000000018 0.0000000004281638 +30.8399999999999999 0.0000000004280171 +30.8500000000000014 0.0000000004278703 +30.8599999999999994 0.0000000004277236 +30.8700000000000010 0.0000000004275769 +30.8799999999999990 0.0000000004274301 +30.8900000000000006 0.0000000004272834 +30.9000000000000021 0.0000000004271367 +30.9100000000000001 0.0000000004269899 +30.9200000000000017 0.0000000004268432 +30.9299999999999997 0.0000000004266965 +30.9400000000000013 0.0000000004265497 +30.9499999999999993 0.0000000004264030 +30.9600000000000009 0.0000000004262563 +30.9700000000000024 0.0000000004261095 +30.9800000000000004 0.0000000004259628 +30.9900000000000020 0.0000000004258161 +31.0000000000000000 0.0000000004256693 +31.0100000000000016 0.0000000004255226 +31.0199999999999996 0.0000000004253759 +31.0300000000000011 0.0000000004252291 +31.0399999999999991 0.0000000004250824 +31.0500000000000007 0.0000000004249357 +31.0600000000000023 0.0000000004247890 +31.0700000000000003 0.0000000004246422 +31.0800000000000018 0.0000000004244955 +31.0899999999999999 0.0000000004243488 +31.1000000000000014 0.0000000004242020 +31.1099999999999994 0.0000000004240553 +31.1200000000000010 0.0000000004239086 +31.1299999999999990 0.0000000004237618 +31.1400000000000006 0.0000000004236151 +31.1500000000000021 0.0000000004234684 +31.1600000000000001 0.0000000004233216 +31.1700000000000017 0.0000000004231749 +31.1799999999999997 0.0000000004230282 +31.1900000000000013 0.0000000004228814 +31.1999999999999993 0.0000000004227347 +31.2100000000000009 0.0000000004225880 +31.2200000000000024 0.0000000004224412 +31.2300000000000004 0.0000000004222945 +31.2400000000000020 0.0000000004221478 +31.2500000000000000 0.0000000004220010 +31.2600000000000016 0.0000000004218543 +31.2699999999999996 0.0000000004217076 +31.2800000000000011 0.0000000004215608 +31.2899999999999991 0.0000000004214141 +31.3000000000000007 0.0000000004212674 +31.3100000000000023 0.0000000004211206 +31.3200000000000003 0.0000000004209739 +31.3300000000000018 0.0000000004208272 +31.3399999999999999 0.0000000004206804 +31.3500000000000014 0.0000000004205337 +31.3599999999999994 0.0000000004203870 +31.3700000000000010 0.0000000004202402 +31.3799999999999990 0.0000000004200935 +31.3900000000000006 0.0000000004199468 +31.4000000000000021 0.0000000004198001 +31.4100000000000001 0.0000000004196533 +31.4200000000000017 0.0000000004195066 +31.4299999999999997 0.0000000004193599 +31.4400000000000013 0.0000000004192131 +31.4499999999999993 0.0000000004190664 +31.4600000000000009 0.0000000004189197 +31.4700000000000024 0.0000000004187729 +31.4800000000000004 0.0000000004186262 +31.4900000000000020 0.0000000004184795 +31.5000000000000000 0.0000000004183327 +31.5100000000000016 0.0000000004181860 +31.5199999999999996 0.0000000004180393 +31.5300000000000011 0.0000000004178925 +31.5399999999999991 0.0000000004177458 +31.5500000000000007 0.0000000004175991 +31.5600000000000023 0.0000000004174523 +31.5700000000000003 0.0000000004173056 +31.5800000000000018 0.0000000004171589 +31.5899999999999999 0.0000000004170121 +31.6000000000000014 0.0000000004168654 +31.6099999999999994 0.0000000004167187 +31.6200000000000010 0.0000000004165719 +31.6299999999999990 0.0000000004164252 +31.6400000000000006 0.0000000004162785 +31.6500000000000021 0.0000000004161317 +31.6600000000000001 0.0000000004159850 +31.6700000000000017 0.0000000004158383 +31.6799999999999997 0.0000000004156915 +31.6900000000000013 0.0000000004155448 +31.6999999999999993 0.0000000004153981 +31.7100000000000009 0.0000000004152513 +31.7200000000000024 0.0000000004151046 +31.7300000000000004 0.0000000004149579 +31.7400000000000020 0.0000000004148112 +31.7500000000000000 0.0000000004146644 +31.7600000000000016 0.0000000004145177 +31.7699999999999996 0.0000000004143710 +31.7800000000000011 0.0000000004142242 +31.7899999999999991 0.0000000004140775 +31.8000000000000007 0.0000000004139308 +31.8100000000000023 0.0000000004137840 +31.8200000000000003 0.0000000004136373 +31.8300000000000018 0.0000000004134906 +31.8399999999999999 0.0000000004133438 +31.8500000000000014 0.0000000004131971 +31.8599999999999994 0.0000000004130504 +31.8700000000000010 0.0000000004129036 +31.8799999999999990 0.0000000004127569 +31.8900000000000006 0.0000000004126102 +31.9000000000000021 0.0000000004124634 +31.9100000000000001 0.0000000004123167 +31.9200000000000017 0.0000000004121700 +31.9299999999999997 0.0000000004120232 +31.9400000000000013 0.0000000004118765 +31.9499999999999993 0.0000000004117298 +31.9600000000000009 0.0000000004115830 +31.9700000000000024 0.0000000004114363 +31.9800000000000004 0.0000000004112896 +31.9900000000000020 0.0000000004111428 +32.0000000000000000 0.0000000004109961 +32.0099999999999980 0.0000000004108494 +32.0200000000000031 0.0000000004107026 +32.0300000000000011 0.0000000004105559 +32.0399999999999991 0.0000000004104092 +32.0499999999999972 0.0000000004102624 +32.0600000000000023 0.0000000004101157 +32.0700000000000003 0.0000000004099690 +32.0799999999999983 0.0000000004098223 +32.0900000000000034 0.0000000004096755 +32.1000000000000014 0.0000000004095288 +32.1099999999999994 0.0000000004093821 +32.1199999999999974 0.0000000004092353 +32.1300000000000026 0.0000000004090886 +32.1400000000000006 0.0000000004089419 +32.1499999999999986 0.0000000004087951 +32.1600000000000037 0.0000000004086484 +32.1700000000000017 0.0000000004085017 +32.1799999999999997 0.0000000004083549 +32.1899999999999977 0.0000000004082082 +32.2000000000000028 0.0000000004080615 +32.2100000000000009 0.0000000004079147 +32.2199999999999989 0.0000000004077680 +32.2300000000000040 0.0000000004076213 +32.2400000000000020 0.0000000004074745 +32.2500000000000000 0.0000000004073278 +32.2599999999999980 0.0000000004071811 +32.2700000000000031 0.0000000004070343 +32.2800000000000011 0.0000000004068876 +32.2899999999999991 0.0000000004067409 +32.2999999999999972 0.0000000004065941 +32.3100000000000023 0.0000000004064474 +32.3200000000000003 0.0000000004063007 +32.3299999999999983 0.0000000004061539 +32.3400000000000034 0.0000000004060072 +32.3500000000000014 0.0000000004058605 +32.3599999999999994 0.0000000004057137 +32.3699999999999974 0.0000000004055670 +32.3800000000000026 0.0000000004054203 +32.3900000000000006 0.0000000004052735 +32.3999999999999986 0.0000000004051268 +32.4100000000000037 0.0000000004049801 +32.4200000000000017 0.0000000004048334 +32.4299999999999997 0.0000000004046866 +32.4399999999999977 0.0000000004045399 +32.4500000000000028 0.0000000004043932 +32.4600000000000009 0.0000000004042464 +32.4699999999999989 0.0000000004040997 +32.4800000000000040 0.0000000004039530 +32.4900000000000020 0.0000000004038062 +32.5000000000000000 0.0000000004036595 +32.5099999999999980 0.0000000004035128 +32.5200000000000031 0.0000000004033660 +32.5300000000000011 0.0000000004032193 +32.5399999999999991 0.0000000004030726 +32.5499999999999972 0.0000000004029258 +32.5600000000000023 0.0000000004027791 +32.5700000000000003 0.0000000004026324 +32.5799999999999983 0.0000000004024856 +32.5900000000000034 0.0000000004023389 +32.6000000000000014 0.0000000004021922 +32.6099999999999994 0.0000000004020454 +32.6199999999999974 0.0000000004018987 +32.6300000000000026 0.0000000004017520 +32.6400000000000006 0.0000000004016052 +32.6499999999999986 0.0000000004014585 +32.6600000000000037 0.0000000004013118 +32.6700000000000017 0.0000000004011650 +32.6799999999999997 0.0000000004010183 +32.6899999999999977 0.0000000004008716 +32.7000000000000028 0.0000000004007248 +32.7100000000000009 0.0000000004005781 +32.7199999999999989 0.0000000004004314 +32.7300000000000040 0.0000000004002846 +32.7400000000000020 0.0000000004001379 +32.7500000000000000 0.0000000003999912 +32.7599999999999980 0.0000000003998445 +32.7700000000000031 0.0000000003996977 +32.7800000000000011 0.0000000003995510 +32.7899999999999991 0.0000000003994043 +32.7999999999999972 0.0000000003992575 +32.8100000000000023 0.0000000003991108 +32.8200000000000003 0.0000000003989641 +32.8299999999999983 0.0000000003988173 +32.8400000000000034 0.0000000003986706 +32.8500000000000014 0.0000000003985239 +32.8599999999999994 0.0000000003983771 +32.8699999999999974 0.0000000003982304 +32.8800000000000026 0.0000000003980837 +32.8900000000000006 0.0000000003979369 +32.8999999999999986 0.0000000003977902 +32.9100000000000037 0.0000000003976435 +32.9200000000000017 0.0000000003974967 +32.9299999999999997 0.0000000003973500 +32.9399999999999977 0.0000000003972033 +32.9500000000000028 0.0000000003970565 +32.9600000000000009 0.0000000003969098 +32.9699999999999989 0.0000000003967631 +32.9800000000000040 0.0000000003966163 +32.9900000000000020 0.0000000003964696 +33.0000000000000000 0.0000000003963229 +33.0099999999999980 0.0000000003961761 +33.0200000000000031 0.0000000003960294 +33.0300000000000011 0.0000000003958827 +33.0399999999999991 0.0000000003957359 +33.0499999999999972 0.0000000003955892 +33.0600000000000023 0.0000000003954425 +33.0700000000000003 0.0000000003952957 +33.0799999999999983 0.0000000003951490 +33.0900000000000034 0.0000000003950023 +33.1000000000000014 0.0000000003948556 +33.1099999999999994 0.0000000003947088 +33.1199999999999974 0.0000000003945621 +33.1300000000000026 0.0000000003944154 +33.1400000000000006 0.0000000003942686 +33.1499999999999986 0.0000000003941219 +33.1600000000000037 0.0000000003939752 +33.1700000000000017 0.0000000003938284 +33.1799999999999997 0.0000000003936817 +33.1899999999999977 0.0000000003935350 +33.2000000000000028 0.0000000003933882 +33.2100000000000009 0.0000000003932415 +33.2199999999999989 0.0000000003930948 +33.2300000000000040 0.0000000003929480 +33.2400000000000020 0.0000000003928013 +33.2500000000000000 0.0000000003926546 +33.2599999999999980 0.0000000003925078 +33.2700000000000031 0.0000000003923611 +33.2800000000000011 0.0000000003922144 +33.2899999999999991 0.0000000003920676 +33.2999999999999972 0.0000000003919209 +33.3100000000000023 0.0000000003917742 +33.3200000000000003 0.0000000003916274 +33.3299999999999983 0.0000000003914807 +33.3400000000000034 0.0000000003913340 +33.3500000000000014 0.0000000003911872 +33.3599999999999994 0.0000000003910405 +33.3699999999999974 0.0000000003908938 +33.3800000000000026 0.0000000003907470 +33.3900000000000006 0.0000000003906003 +33.3999999999999986 0.0000000003904536 +33.4100000000000037 0.0000000003903068 +33.4200000000000017 0.0000000003901601 +33.4299999999999997 0.0000000003900134 +33.4399999999999977 0.0000000003898667 +33.4500000000000028 0.0000000003897199 +33.4600000000000009 0.0000000003895732 +33.4699999999999989 0.0000000003894265 +33.4800000000000040 0.0000000003892797 +33.4900000000000020 0.0000000003891330 +33.5000000000000000 0.0000000003889863 +33.5099999999999980 0.0000000003888395 +33.5200000000000031 0.0000000003886928 +33.5300000000000011 0.0000000003885461 +33.5399999999999991 0.0000000003883993 +33.5499999999999972 0.0000000003882526 +33.5600000000000023 0.0000000003881059 +33.5700000000000003 0.0000000003879591 +33.5799999999999983 0.0000000003878124 +33.5900000000000034 0.0000000003876657 +33.6000000000000014 0.0000000003875189 +33.6099999999999994 0.0000000003873722 +33.6199999999999974 0.0000000003872255 +33.6300000000000026 0.0000000003870787 +33.6400000000000006 0.0000000003869320 +33.6499999999999986 0.0000000003867853 +33.6600000000000037 0.0000000003866385 +33.6700000000000017 0.0000000003864918 +33.6799999999999997 0.0000000003863451 +33.6899999999999977 0.0000000003861983 +33.7000000000000028 0.0000000003860516 +33.7100000000000009 0.0000000003859049 +33.7199999999999989 0.0000000003857581 +33.7300000000000040 0.0000000003856114 +33.7400000000000020 0.0000000003854647 +33.7500000000000000 0.0000000003853179 +33.7599999999999980 0.0000000003851712 +33.7700000000000031 0.0000000003850245 +33.7800000000000011 0.0000000003848778 +33.7899999999999991 0.0000000003847310 +33.7999999999999972 0.0000000003845843 +33.8100000000000023 0.0000000003844376 +33.8200000000000003 0.0000000003842908 +33.8299999999999983 0.0000000003841441 +33.8400000000000034 0.0000000003839974 +33.8500000000000014 0.0000000003838506 +33.8599999999999994 0.0000000003837039 +33.8699999999999974 0.0000000003835572 +33.8800000000000026 0.0000000003834104 +33.8900000000000006 0.0000000003832637 +33.8999999999999986 0.0000000003831170 +33.9100000000000037 0.0000000003829702 +33.9200000000000017 0.0000000003828235 +33.9299999999999997 0.0000000003826768 +33.9399999999999977 0.0000000003825300 +33.9500000000000028 0.0000000003823833 +33.9600000000000009 0.0000000003822366 +33.9699999999999989 0.0000000003820898 +33.9800000000000040 0.0000000003819431 +33.9900000000000020 0.0000000003817964 +34.0000000000000000 0.0000000003816496 +34.0099999999999980 0.0000000003815029 +34.0200000000000031 0.0000000003813562 +34.0300000000000011 0.0000000003812094 +34.0399999999999991 0.0000000003810627 +34.0499999999999972 0.0000000003809160 +34.0600000000000023 0.0000000003807692 +34.0700000000000003 0.0000000003806225 +34.0799999999999983 0.0000000003804758 +34.0900000000000034 0.0000000003803290 +34.1000000000000014 0.0000000003801823 +34.1099999999999994 0.0000000003800356 +34.1199999999999974 0.0000000003798889 +34.1300000000000026 0.0000000003797421 +34.1400000000000006 0.0000000003795954 +34.1499999999999986 0.0000000003794487 +34.1600000000000037 0.0000000003793019 +34.1700000000000017 0.0000000003791552 +34.1799999999999997 0.0000000003790085 +34.1899999999999977 0.0000000003788617 +34.2000000000000028 0.0000000003787150 +34.2100000000000009 0.0000000003785683 +34.2199999999999989 0.0000000003784215 +34.2300000000000040 0.0000000003782748 +34.2400000000000020 0.0000000003781281 +34.2500000000000000 0.0000000003779813 +34.2599999999999980 0.0000000003778346 +34.2700000000000031 0.0000000003776879 +34.2800000000000011 0.0000000003775411 +34.2899999999999991 0.0000000003773944 +34.3000000000000043 0.0000000003772477 +34.3100000000000023 0.0000000003771009 +34.3200000000000003 0.0000000003769542 +34.3299999999999983 0.0000000003768075 +34.3400000000000034 0.0000000003766607 +34.3500000000000014 0.0000000003765140 +34.3599999999999994 0.0000000003763673 +34.3699999999999974 0.0000000003762205 +34.3800000000000026 0.0000000003760738 +34.3900000000000006 0.0000000003759271 +34.3999999999999986 0.0000000003757803 +34.4100000000000037 0.0000000003756336 +34.4200000000000017 0.0000000003754869 +34.4299999999999997 0.0000000003753401 +34.4399999999999977 0.0000000003751934 +34.4500000000000028 0.0000000003750467 +34.4600000000000009 0.0000000003749000 +34.4699999999999989 0.0000000003747532 +34.4800000000000040 0.0000000003746065 +34.4900000000000020 0.0000000003744598 +34.5000000000000000 0.0000000003743130 +34.5099999999999980 0.0000000003741663 +34.5200000000000031 0.0000000003740196 +34.5300000000000011 0.0000000003738728 +34.5399999999999991 0.0000000003737261 +34.5500000000000043 0.0000000003735794 +34.5600000000000023 0.0000000003734326 +34.5700000000000003 0.0000000003732859 +34.5799999999999983 0.0000000003731392 +34.5900000000000034 0.0000000003729924 +34.6000000000000014 0.0000000003728457 +34.6099999999999994 0.0000000003726990 +34.6199999999999974 0.0000000003725522 +34.6300000000000026 0.0000000003724055 +34.6400000000000006 0.0000000003722588 +34.6499999999999986 0.0000000003721120 +34.6600000000000037 0.0000000003719653 +34.6700000000000017 0.0000000003718186 +34.6799999999999997 0.0000000003716718 +34.6899999999999977 0.0000000003715251 +34.7000000000000028 0.0000000003713784 +34.7100000000000009 0.0000000003712316 +34.7199999999999989 0.0000000003710849 +34.7300000000000040 0.0000000003709382 +34.7400000000000020 0.0000000003707914 +34.7500000000000000 0.0000000003706447 +34.7599999999999980 0.0000000003704980 +34.7700000000000031 0.0000000003703512 +34.7800000000000011 0.0000000003702045 +34.7899999999999991 0.0000000003700578 +34.8000000000000043 0.0000000003699111 +34.8100000000000023 0.0000000003697643 +34.8200000000000003 0.0000000003696176 +34.8299999999999983 0.0000000003694709 +34.8400000000000034 0.0000000003693241 +34.8500000000000014 0.0000000003691774 +34.8599999999999994 0.0000000003690307 +34.8699999999999974 0.0000000003688839 +34.8800000000000026 0.0000000003687372 +34.8900000000000006 0.0000000003685905 +34.8999999999999986 0.0000000003684437 +34.9100000000000037 0.0000000003682970 +34.9200000000000017 0.0000000003681503 +34.9299999999999997 0.0000000003680035 +34.9399999999999977 0.0000000003678568 +34.9500000000000028 0.0000000003677101 +34.9600000000000009 0.0000000003675633 +34.9699999999999989 0.0000000003674166 +34.9800000000000040 0.0000000003672699 +34.9900000000000020 0.0000000003671231 +35.0000000000000000 0.0000000003669764 +35.0099999999999980 0.0000000003668297 +35.0200000000000031 0.0000000003666829 +35.0300000000000011 0.0000000003665362 +35.0399999999999991 0.0000000003663895 +35.0500000000000043 0.0000000003662427 +35.0600000000000023 0.0000000003660960 +35.0700000000000003 0.0000000003659493 +35.0799999999999983 0.0000000003658025 +35.0900000000000034 0.0000000003656558 +35.1000000000000014 0.0000000003655091 +35.1099999999999994 0.0000000003653623 +35.1199999999999974 0.0000000003652156 +35.1300000000000026 0.0000000003650689 +35.1400000000000006 0.0000000003649222 +35.1499999999999986 0.0000000003647754 +35.1600000000000037 0.0000000003646287 +35.1700000000000017 0.0000000003644820 +35.1799999999999997 0.0000000003643352 +35.1899999999999977 0.0000000003641885 +35.2000000000000028 0.0000000003640418 +35.2100000000000009 0.0000000003638950 +35.2199999999999989 0.0000000003637483 +35.2300000000000040 0.0000000003636016 +35.2400000000000020 0.0000000003634548 +35.2500000000000000 0.0000000003633081 +35.2599999999999980 0.0000000003631614 +35.2700000000000031 0.0000000003630146 +35.2800000000000011 0.0000000003628679 +35.2899999999999991 0.0000000003627212 +35.3000000000000043 0.0000000003625744 +35.3100000000000023 0.0000000003624277 +35.3200000000000003 0.0000000003622810 +35.3299999999999983 0.0000000003621342 +35.3400000000000034 0.0000000003619875 +35.3500000000000014 0.0000000003618408 +35.3599999999999994 0.0000000003616940 +35.3699999999999974 0.0000000003615473 +35.3800000000000026 0.0000000003614006 +35.3900000000000006 0.0000000003612538 +35.3999999999999986 0.0000000003611071 +35.4100000000000037 0.0000000003609604 +35.4200000000000017 0.0000000003608136 +35.4299999999999997 0.0000000003606669 +35.4399999999999977 0.0000000003605202 +35.4500000000000028 0.0000000003603734 +35.4600000000000009 0.0000000003602267 +35.4699999999999989 0.0000000003600800 +35.4800000000000040 0.0000000003599333 +35.4900000000000020 0.0000000003597865 +35.5000000000000000 0.0000000003596398 +35.5099999999999980 0.0000000003594931 +35.5200000000000031 0.0000000003593463 +35.5300000000000011 0.0000000003591996 +35.5399999999999991 0.0000000003590529 +35.5500000000000043 0.0000000003589061 +35.5600000000000023 0.0000000003587594 +35.5700000000000003 0.0000000003586127 +35.5799999999999983 0.0000000003584659 +35.5900000000000034 0.0000000003583192 +35.6000000000000014 0.0000000003581725 +35.6099999999999994 0.0000000003580257 +35.6199999999999974 0.0000000003578790 +35.6300000000000026 0.0000000003577323 +35.6400000000000006 0.0000000003575855 +35.6499999999999986 0.0000000003574388 +35.6600000000000037 0.0000000003572921 +35.6700000000000017 0.0000000003571453 +35.6799999999999997 0.0000000003569986 +35.6899999999999977 0.0000000003568519 +35.7000000000000028 0.0000000003567051 +35.7100000000000009 0.0000000003565584 +35.7199999999999989 0.0000000003564117 +35.7300000000000040 0.0000000003562649 +35.7400000000000020 0.0000000003561182 +35.7500000000000000 0.0000000003559715 +35.7599999999999980 0.0000000003558247 +35.7700000000000031 0.0000000003556780 +35.7800000000000011 0.0000000003555313 +35.7899999999999991 0.0000000003553845 +35.8000000000000043 0.0000000003552378 +35.8100000000000023 0.0000000003550911 +35.8200000000000003 0.0000000003549444 +35.8299999999999983 0.0000000003547976 +35.8400000000000034 0.0000000003546509 +35.8500000000000014 0.0000000003545042 +35.8599999999999994 0.0000000003543574 +35.8699999999999974 0.0000000003542107 +35.8800000000000026 0.0000000003540640 +35.8900000000000006 0.0000000003539172 +35.8999999999999986 0.0000000003537705 +35.9100000000000037 0.0000000003536238 +35.9200000000000017 0.0000000003534770 +35.9299999999999997 0.0000000003533303 +35.9399999999999977 0.0000000003531836 +35.9500000000000028 0.0000000003530368 +35.9600000000000009 0.0000000003528901 +35.9699999999999989 0.0000000003527434 +35.9800000000000040 0.0000000003525966 +35.9900000000000020 0.0000000003524499 +36.0000000000000000 0.0000000003523032 +36.0099999999999980 0.0000000003521564 +36.0200000000000031 0.0000000003520097 +36.0300000000000011 0.0000000003518630 +36.0399999999999991 0.0000000003517162 +36.0500000000000043 0.0000000003515695 +36.0600000000000023 0.0000000003514228 +36.0700000000000003 0.0000000003512760 +36.0799999999999983 0.0000000003511293 +36.0900000000000034 0.0000000003509826 +36.1000000000000014 0.0000000003508358 +36.1099999999999994 0.0000000003506891 +36.1199999999999974 0.0000000003505424 +36.1300000000000026 0.0000000003503957 +36.1400000000000006 0.0000000003502489 +36.1499999999999986 0.0000000003501022 +36.1600000000000037 0.0000000003499555 +36.1700000000000017 0.0000000003498087 +36.1799999999999997 0.0000000003496620 +36.1899999999999977 0.0000000003495153 +36.2000000000000028 0.0000000003493685 +36.2100000000000009 0.0000000003492218 +36.2199999999999989 0.0000000003490751 +36.2300000000000040 0.0000000003489283 +36.2400000000000020 0.0000000003487816 +36.2500000000000000 0.0000000003486349 +36.2599999999999980 0.0000000003484881 +36.2700000000000031 0.0000000003483414 +36.2800000000000011 0.0000000003481947 +36.2899999999999991 0.0000000003480479 +36.3000000000000043 0.0000000003479012 +36.3100000000000023 0.0000000003477545 +36.3200000000000003 0.0000000003476077 +36.3299999999999983 0.0000000003474610 +36.3400000000000034 0.0000000003473143 +36.3500000000000014 0.0000000003471675 +36.3599999999999994 0.0000000003470208 +36.3699999999999974 0.0000000003468741 +36.3800000000000026 0.0000000003467273 +36.3900000000000006 0.0000000003465806 +36.3999999999999986 0.0000000003464339 +36.4100000000000037 0.0000000003462871 +36.4200000000000017 0.0000000003461404 +36.4299999999999997 0.0000000003459937 +36.4399999999999977 0.0000000003458469 +36.4500000000000028 0.0000000003457002 +36.4600000000000009 0.0000000003455535 +36.4699999999999989 0.0000000003454068 +36.4800000000000040 0.0000000003452600 +36.4900000000000020 0.0000000003451133 +36.5000000000000000 0.0000000003449666 +36.5099999999999980 0.0000000003448198 +36.5200000000000031 0.0000000003446731 +36.5300000000000011 0.0000000003445264 +36.5399999999999991 0.0000000003443796 +36.5500000000000043 0.0000000003442329 +36.5600000000000023 0.0000000003440862 +36.5700000000000003 0.0000000003439394 +36.5799999999999983 0.0000000003437927 +36.5900000000000034 0.0000000003436460 +36.6000000000000014 0.0000000003434992 +36.6099999999999994 0.0000000003433525 +36.6199999999999974 0.0000000003432058 +36.6300000000000026 0.0000000003430590 +36.6400000000000006 0.0000000003429123 +36.6499999999999986 0.0000000003427656 +36.6600000000000037 0.0000000003426188 +36.6700000000000017 0.0000000003424721 +36.6799999999999997 0.0000000003423254 +36.6899999999999977 0.0000000003421786 +36.7000000000000028 0.0000000003420319 +36.7100000000000009 0.0000000003418852 +36.7199999999999989 0.0000000003417384 +36.7300000000000040 0.0000000003415917 +36.7400000000000020 0.0000000003414450 +36.7500000000000000 0.0000000003412982 +36.7599999999999980 0.0000000003411515 +36.7700000000000031 0.0000000003410048 +36.7800000000000011 0.0000000003408580 +36.7899999999999991 0.0000000003407113 +36.8000000000000043 0.0000000003405646 +36.8100000000000023 0.0000000003404179 +36.8200000000000003 0.0000000003402711 +36.8299999999999983 0.0000000003401244 +36.8400000000000034 0.0000000003399777 +36.8500000000000014 0.0000000003398309 +36.8599999999999994 0.0000000003396842 +36.8699999999999974 0.0000000003395375 +36.8800000000000026 0.0000000003393907 +36.8900000000000006 0.0000000003392440 +36.8999999999999986 0.0000000003390973 +36.9100000000000037 0.0000000003389505 +36.9200000000000017 0.0000000003388038 +36.9299999999999997 0.0000000003386571 +36.9399999999999977 0.0000000003385103 +36.9500000000000028 0.0000000003383636 +36.9600000000000009 0.0000000003382169 +36.9699999999999989 0.0000000003380701 +36.9800000000000040 0.0000000003379234 +36.9900000000000020 0.0000000003377767 +37.0000000000000000 0.0000000003376299 +37.0099999999999980 0.0000000003374832 +37.0200000000000031 0.0000000003373365 +37.0300000000000011 0.0000000003371897 +37.0399999999999991 0.0000000003370430 +37.0500000000000043 0.0000000003368963 +37.0600000000000023 0.0000000003367495 +37.0700000000000003 0.0000000003366028 +37.0799999999999983 0.0000000003364561 +37.0900000000000034 0.0000000003363093 +37.1000000000000014 0.0000000003361626 +37.1099999999999994 0.0000000003360159 +37.1199999999999974 0.0000000003358691 +37.1300000000000026 0.0000000003357224 +37.1400000000000006 0.0000000003355757 +37.1499999999999986 0.0000000003354290 +37.1600000000000037 0.0000000003352822 +37.1700000000000017 0.0000000003351355 +37.1799999999999997 0.0000000003349888 +37.1899999999999977 0.0000000003348420 +37.2000000000000028 0.0000000003346953 +37.2100000000000009 0.0000000003345486 +37.2199999999999989 0.0000000003344018 +37.2300000000000040 0.0000000003342551 +37.2400000000000020 0.0000000003341084 +37.2500000000000000 0.0000000003339616 +37.2599999999999980 0.0000000003338149 +37.2700000000000031 0.0000000003336682 +37.2800000000000011 0.0000000003335214 +37.2899999999999991 0.0000000003333747 +37.3000000000000043 0.0000000003332280 +37.3100000000000023 0.0000000003330812 +37.3200000000000003 0.0000000003329345 +37.3299999999999983 0.0000000003327878 +37.3400000000000034 0.0000000003326410 +37.3500000000000014 0.0000000003324943 +37.3599999999999994 0.0000000003323476 +37.3699999999999974 0.0000000003322008 +37.3800000000000026 0.0000000003320541 +37.3900000000000006 0.0000000003319074 +37.3999999999999986 0.0000000003317606 +37.4100000000000037 0.0000000003316139 +37.4200000000000017 0.0000000003314672 +37.4299999999999997 0.0000000003313204 +37.4399999999999977 0.0000000003311737 +37.4500000000000028 0.0000000003310270 +37.4600000000000009 0.0000000003308802 +37.4699999999999989 0.0000000003307335 +37.4800000000000040 0.0000000003305868 +37.4900000000000020 0.0000000003304401 +37.5000000000000000 0.0000000003302933 +37.5099999999999980 0.0000000003301466 +37.5200000000000031 0.0000000003299999 +37.5300000000000011 0.0000000003298531 +37.5399999999999991 0.0000000003297064 +37.5500000000000043 0.0000000003295597 +37.5600000000000023 0.0000000003294129 +37.5700000000000003 0.0000000003292662 +37.5799999999999983 0.0000000003291195 +37.5900000000000034 0.0000000003289727 +37.6000000000000014 0.0000000003288260 +37.6099999999999994 0.0000000003286793 +37.6199999999999974 0.0000000003285325 +37.6300000000000026 0.0000000003283858 +37.6400000000000006 0.0000000003282391 +37.6499999999999986 0.0000000003280923 +37.6600000000000037 0.0000000003279456 +37.6700000000000017 0.0000000003277989 +37.6799999999999997 0.0000000003276521 +37.6899999999999977 0.0000000003275054 +37.7000000000000028 0.0000000003273587 +37.7100000000000009 0.0000000003272119 +37.7199999999999989 0.0000000003270652 +37.7300000000000040 0.0000000003269185 +37.7400000000000020 0.0000000003267717 +37.7500000000000000 0.0000000003266250 +37.7599999999999980 0.0000000003264783 +37.7700000000000031 0.0000000003263315 +37.7800000000000011 0.0000000003261848 +37.7899999999999991 0.0000000003260381 +37.8000000000000043 0.0000000003258913 +37.8100000000000023 0.0000000003257446 +37.8200000000000003 0.0000000003255979 +37.8299999999999983 0.0000000003254512 +37.8400000000000034 0.0000000003253044 +37.8500000000000014 0.0000000003251577 +37.8599999999999994 0.0000000003250110 +37.8699999999999974 0.0000000003248642 +37.8800000000000026 0.0000000003247175 +37.8900000000000006 0.0000000003245708 +37.8999999999999986 0.0000000003244240 +37.9100000000000037 0.0000000003242773 +37.9200000000000017 0.0000000003241306 +37.9299999999999997 0.0000000003239838 +37.9399999999999977 0.0000000003238371 +37.9500000000000028 0.0000000003236904 +37.9600000000000009 0.0000000003235436 +37.9699999999999989 0.0000000003233969 +37.9800000000000040 0.0000000003232502 +37.9900000000000020 0.0000000003231034 +38.0000000000000000 0.0000000003229567 +38.0099999999999980 0.0000000003228100 +38.0200000000000031 0.0000000003226632 +38.0300000000000011 0.0000000003225165 +38.0399999999999991 0.0000000003223698 +38.0500000000000043 0.0000000003222230 +38.0600000000000023 0.0000000003220763 +38.0700000000000003 0.0000000003219296 +38.0799999999999983 0.0000000003217828 +38.0900000000000034 0.0000000003216361 +38.1000000000000014 0.0000000003214894 +38.1099999999999994 0.0000000003213426 +38.1199999999999974 0.0000000003211959 +38.1300000000000026 0.0000000003210492 +38.1400000000000006 0.0000000003209024 +38.1499999999999986 0.0000000003207557 +38.1600000000000037 0.0000000003206090 +38.1700000000000017 0.0000000003204623 +38.1799999999999997 0.0000000003203155 +38.1899999999999977 0.0000000003201688 +38.2000000000000028 0.0000000003200221 +38.2100000000000009 0.0000000003198753 +38.2199999999999989 0.0000000003197286 +38.2300000000000040 0.0000000003195819 +38.2400000000000020 0.0000000003194351 +38.2500000000000000 0.0000000003192884 +38.2599999999999980 0.0000000003191417 +38.2700000000000031 0.0000000003189949 +38.2800000000000011 0.0000000003188482 +38.2899999999999991 0.0000000003187015 +38.3000000000000043 0.0000000003185547 +38.3100000000000023 0.0000000003184080 +38.3200000000000003 0.0000000003182613 +38.3299999999999983 0.0000000003181145 +38.3400000000000034 0.0000000003179678 +38.3500000000000014 0.0000000003178211 +38.3599999999999994 0.0000000003176743 +38.3699999999999974 0.0000000003175276 +38.3800000000000026 0.0000000003173809 +38.3900000000000006 0.0000000003172341 +38.3999999999999986 0.0000000003170874 +38.4100000000000037 0.0000000003169407 +38.4200000000000017 0.0000000003167939 +38.4299999999999997 0.0000000003166472 +38.4399999999999977 0.0000000003165005 +38.4500000000000028 0.0000000003163537 +38.4600000000000009 0.0000000003162070 +38.4699999999999989 0.0000000003160603 +38.4800000000000040 0.0000000003159135 +38.4900000000000020 0.0000000003157668 +38.5000000000000000 0.0000000003156201 +38.5099999999999980 0.0000000003154734 +38.5200000000000031 0.0000000003153266 +38.5300000000000011 0.0000000003151799 +38.5399999999999991 0.0000000003150332 +38.5500000000000043 0.0000000003148864 +38.5600000000000023 0.0000000003147397 +38.5700000000000003 0.0000000003145930 +38.5799999999999983 0.0000000003144462 +38.5900000000000034 0.0000000003142995 +38.6000000000000014 0.0000000003141528 +38.6099999999999994 0.0000000003140060 +38.6199999999999974 0.0000000003138593 +38.6300000000000026 0.0000000003137126 +38.6400000000000006 0.0000000003135658 +38.6499999999999986 0.0000000003134191 +38.6600000000000037 0.0000000003132724 +38.6700000000000017 0.0000000003131256 +38.6799999999999997 0.0000000003129789 +38.6899999999999977 0.0000000003128322 +38.7000000000000028 0.0000000003126854 +38.7100000000000009 0.0000000003125387 +38.7199999999999989 0.0000000003123920 +38.7300000000000040 0.0000000003122452 +38.7400000000000020 0.0000000003120985 +38.7500000000000000 0.0000000003119518 +38.7599999999999980 0.0000000003118050 +38.7700000000000031 0.0000000003116583 +38.7800000000000011 0.0000000003115116 +38.7899999999999991 0.0000000003113648 +38.8000000000000043 0.0000000003112181 +38.8100000000000023 0.0000000003110714 +38.8200000000000003 0.0000000003109246 +38.8299999999999983 0.0000000003107779 +38.8400000000000034 0.0000000003106312 +38.8500000000000014 0.0000000003104845 +38.8599999999999994 0.0000000003103377 +38.8699999999999974 0.0000000003101910 +38.8800000000000026 0.0000000003100443 +38.8900000000000006 0.0000000003098975 +38.8999999999999986 0.0000000003097508 +38.9100000000000037 0.0000000003096041 +38.9200000000000017 0.0000000003094573 +38.9299999999999997 0.0000000003093106 +38.9399999999999977 0.0000000003091639 +38.9500000000000028 0.0000000003090171 +38.9600000000000009 0.0000000003088704 +38.9699999999999989 0.0000000003087237 +38.9800000000000040 0.0000000003085769 +38.9900000000000020 0.0000000003084302 +39.0000000000000000 0.0000000003082835 +39.0099999999999980 0.0000000003081367 +39.0200000000000031 0.0000000003079900 +39.0300000000000011 0.0000000003078433 +39.0399999999999991 0.0000000003076965 +39.0500000000000043 0.0000000003075498 +39.0600000000000023 0.0000000003074031 +39.0700000000000003 0.0000000003072563 +39.0799999999999983 0.0000000003071096 +39.0900000000000034 0.0000000003069629 +39.1000000000000014 0.0000000003068161 +39.1099999999999994 0.0000000003066694 +39.1199999999999974 0.0000000003065227 +39.1300000000000026 0.0000000003063759 +39.1400000000000006 0.0000000003062292 +39.1499999999999986 0.0000000003060825 +39.1600000000000037 0.0000000003059357 +39.1700000000000017 0.0000000003057890 +39.1799999999999997 0.0000000003056423 +39.1899999999999977 0.0000000003054956 +39.2000000000000028 0.0000000003053488 +39.2100000000000009 0.0000000003052021 +39.2199999999999989 0.0000000003050554 +39.2300000000000040 0.0000000003049086 +39.2400000000000020 0.0000000003047619 +39.2500000000000000 0.0000000003046152 +39.2599999999999980 0.0000000003044684 +39.2700000000000031 0.0000000003043217 +39.2800000000000011 0.0000000003041750 +39.2899999999999991 0.0000000003040282 +39.3000000000000043 0.0000000003038815 +39.3100000000000023 0.0000000003037348 +39.3200000000000003 0.0000000003035880 +39.3299999999999983 0.0000000003034413 +39.3400000000000034 0.0000000003032946 +39.3500000000000014 0.0000000003031478 +39.3599999999999994 0.0000000003030011 +39.3699999999999974 0.0000000003028544 +39.3800000000000026 0.0000000003027076 +39.3900000000000006 0.0000000003025609 +39.3999999999999986 0.0000000003024142 +39.4100000000000037 0.0000000003022674 +39.4200000000000017 0.0000000003021207 +39.4299999999999997 0.0000000003019740 +39.4399999999999977 0.0000000003018272 +39.4500000000000028 0.0000000003016805 +39.4600000000000009 0.0000000003015338 +39.4699999999999989 0.0000000003013870 +39.4800000000000040 0.0000000003012403 +39.4900000000000020 0.0000000003010936 +39.5000000000000000 0.0000000003009468 +39.5099999999999980 0.0000000003008001 +39.5200000000000031 0.0000000003006534 +39.5300000000000011 0.0000000003005067 +39.5399999999999991 0.0000000003003599 +39.5500000000000043 0.0000000003002132 +39.5600000000000023 0.0000000003000665 +39.5700000000000003 0.0000000002999197 +39.5799999999999983 0.0000000002997730 +39.5900000000000034 0.0000000002996263 +39.6000000000000014 0.0000000002994795 +39.6099999999999994 0.0000000002993328 +39.6199999999999974 0.0000000002991861 +39.6300000000000026 0.0000000002990393 +39.6400000000000006 0.0000000002988926 +39.6499999999999986 0.0000000002987459 +39.6600000000000037 0.0000000002985991 +39.6700000000000017 0.0000000002984524 +39.6799999999999997 0.0000000002983057 +39.6899999999999977 0.0000000002981589 +39.7000000000000028 0.0000000002980122 +39.7100000000000009 0.0000000002978655 +39.7199999999999989 0.0000000002977187 +39.7300000000000040 0.0000000002975720 +39.7400000000000020 0.0000000002974253 +39.7500000000000000 0.0000000002972785 +39.7599999999999980 0.0000000002971318 +39.7700000000000031 0.0000000002969851 +39.7800000000000011 0.0000000002968383 +39.7899999999999991 0.0000000002966916 +39.8000000000000043 0.0000000002965449 +39.8100000000000023 0.0000000002963981 +39.8200000000000003 0.0000000002962514 +39.8299999999999983 0.0000000002961047 +39.8400000000000034 0.0000000002959579 +39.8500000000000014 0.0000000002958112 +39.8599999999999994 0.0000000002956645 +39.8699999999999974 0.0000000002955178 +39.8800000000000026 0.0000000002953710 +39.8900000000000006 0.0000000002952243 +39.8999999999999986 0.0000000002950776 +39.9100000000000037 0.0000000002949308 +39.9200000000000017 0.0000000002947841 +39.9299999999999997 0.0000000002946374 +39.9399999999999977 0.0000000002944906 +39.9500000000000028 0.0000000002943439 +39.9600000000000009 0.0000000002941972 +39.9699999999999989 0.0000000002940504 +39.9800000000000040 0.0000000002939037 +39.9900000000000020 0.0000000002937570 +40.0000000000000000 0.0000000002936102 +40.0099999999999980 0.0000000002934635 +40.0200000000000031 0.0000000002933168 +40.0300000000000011 0.0000000002931700 +40.0399999999999991 0.0000000002930233 +40.0500000000000043 0.0000000002928766 +40.0600000000000023 0.0000000002927298 +40.0700000000000003 0.0000000002925831 +40.0799999999999983 0.0000000002924364 +40.0900000000000034 0.0000000002922896 +40.1000000000000014 0.0000000002921429 +40.1099999999999994 0.0000000002919962 +40.1199999999999974 0.0000000002918494 +40.1300000000000026 0.0000000002917027 +40.1400000000000006 0.0000000002915560 +40.1499999999999986 0.0000000002914092 +40.1600000000000037 0.0000000002912625 +40.1700000000000017 0.0000000002911158 +40.1799999999999997 0.0000000002909690 +40.1899999999999977 0.0000000002908223 +40.2000000000000028 0.0000000002906756 +40.2100000000000009 0.0000000002905289 +40.2199999999999989 0.0000000002903821 +40.2300000000000040 0.0000000002902354 +40.2400000000000020 0.0000000002900887 +40.2500000000000000 0.0000000002899419 +40.2599999999999980 0.0000000002897952 +40.2700000000000031 0.0000000002896485 +40.2800000000000011 0.0000000002895017 +40.2899999999999991 0.0000000002893550 +40.3000000000000043 0.0000000002892083 +40.3100000000000023 0.0000000002890615 +40.3200000000000003 0.0000000002889148 +40.3299999999999983 0.0000000002887681 +40.3400000000000034 0.0000000002886213 +40.3500000000000014 0.0000000002884746 +40.3599999999999994 0.0000000002883279 +40.3699999999999974 0.0000000002881811 +40.3800000000000026 0.0000000002880344 +40.3900000000000006 0.0000000002878877 +40.3999999999999986 0.0000000002877409 +40.4100000000000037 0.0000000002875942 +40.4200000000000017 0.0000000002874475 +40.4299999999999997 0.0000000002873007 +40.4399999999999977 0.0000000002871540 +40.4500000000000028 0.0000000002870073 +40.4600000000000009 0.0000000002868605 +40.4699999999999989 0.0000000002867138 +40.4800000000000040 0.0000000002865671 +40.4900000000000020 0.0000000002864203 +40.5000000000000000 0.0000000002862736 +40.5099999999999980 0.0000000002861269 +40.5200000000000031 0.0000000002859801 +40.5300000000000011 0.0000000002858334 +40.5399999999999991 0.0000000002856867 +40.5500000000000043 0.0000000002855400 +40.5600000000000023 0.0000000002853932 +40.5700000000000003 0.0000000002852465 +40.5799999999999983 0.0000000002850998 +40.5900000000000034 0.0000000002849530 +40.6000000000000014 0.0000000002848063 +40.6099999999999994 0.0000000002846596 +40.6199999999999974 0.0000000002845128 +40.6300000000000026 0.0000000002843661 +40.6400000000000006 0.0000000002842194 +40.6499999999999986 0.0000000002840726 +40.6600000000000037 0.0000000002839259 +40.6700000000000017 0.0000000002837792 +40.6799999999999997 0.0000000002836324 +40.6899999999999977 0.0000000002834857 +40.7000000000000028 0.0000000002833390 +40.7100000000000009 0.0000000002831922 +40.7199999999999989 0.0000000002830455 +40.7300000000000040 0.0000000002828988 +40.7400000000000020 0.0000000002827520 +40.7500000000000000 0.0000000002826053 +40.7599999999999980 0.0000000002824586 +40.7700000000000031 0.0000000002823118 +40.7800000000000011 0.0000000002821651 +40.7899999999999991 0.0000000002820184 +40.8000000000000043 0.0000000002818716 +40.8100000000000023 0.0000000002817249 +40.8200000000000003 0.0000000002815782 +40.8299999999999983 0.0000000002814314 +40.8400000000000034 0.0000000002812847 +40.8500000000000014 0.0000000002811380 +40.8599999999999994 0.0000000002809912 +40.8699999999999974 0.0000000002808445 +40.8800000000000026 0.0000000002806978 +40.8900000000000006 0.0000000002805511 +40.8999999999999986 0.0000000002804043 +40.9100000000000037 0.0000000002802576 +40.9200000000000017 0.0000000002801109 +40.9299999999999997 0.0000000002799641 +40.9399999999999977 0.0000000002798174 +40.9500000000000028 0.0000000002796707 +40.9600000000000009 0.0000000002795239 +40.9699999999999989 0.0000000002793772 +40.9800000000000040 0.0000000002792305 +40.9900000000000020 0.0000000002790837 +41.0000000000000000 0.0000000002789370 +41.0099999999999980 0.0000000002787903 +41.0200000000000031 0.0000000002786435 +41.0300000000000011 0.0000000002784968 +41.0399999999999991 0.0000000002783501 +41.0500000000000043 0.0000000002782033 +41.0600000000000023 0.0000000002780566 +41.0700000000000003 0.0000000002779099 +41.0799999999999983 0.0000000002777631 +41.0900000000000034 0.0000000002776164 +41.1000000000000014 0.0000000002774697 +41.1099999999999994 0.0000000002773229 +41.1199999999999974 0.0000000002771762 +41.1300000000000026 0.0000000002770295 +41.1400000000000006 0.0000000002768827 +41.1499999999999986 0.0000000002767360 +41.1600000000000037 0.0000000002765893 +41.1700000000000017 0.0000000002764425 +41.1799999999999997 0.0000000002762958 +41.1899999999999977 0.0000000002761491 +41.2000000000000028 0.0000000002760023 +41.2100000000000009 0.0000000002758556 +41.2199999999999989 0.0000000002757089 +41.2300000000000040 0.0000000002755622 +41.2400000000000020 0.0000000002754154 +41.2500000000000000 0.0000000002752687 +41.2599999999999980 0.0000000002751220 +41.2700000000000031 0.0000000002749752 +41.2800000000000011 0.0000000002748285 +41.2899999999999991 0.0000000002746818 +41.3000000000000043 0.0000000002745350 +41.3100000000000023 0.0000000002743883 +41.3200000000000003 0.0000000002742416 +41.3299999999999983 0.0000000002740948 +41.3400000000000034 0.0000000002739481 +41.3500000000000014 0.0000000002738014 +41.3599999999999994 0.0000000002736546 +41.3699999999999974 0.0000000002735079 +41.3800000000000026 0.0000000002733612 +41.3900000000000006 0.0000000002732144 +41.3999999999999986 0.0000000002730677 +41.4100000000000037 0.0000000002729210 +41.4200000000000017 0.0000000002727742 +41.4299999999999997 0.0000000002726275 +41.4399999999999977 0.0000000002724808 +41.4500000000000028 0.0000000002723340 +41.4600000000000009 0.0000000002721873 +41.4699999999999989 0.0000000002720406 +41.4800000000000040 0.0000000002718938 +41.4900000000000020 0.0000000002717471 +41.5000000000000000 0.0000000002716004 +41.5099999999999980 0.0000000002714536 +41.5200000000000031 0.0000000002713069 +41.5300000000000011 0.0000000002711602 +41.5399999999999991 0.0000000002710134 +41.5500000000000043 0.0000000002708667 +41.5600000000000023 0.0000000002707200 +41.5700000000000003 0.0000000002705733 +41.5799999999999983 0.0000000002704265 +41.5900000000000034 0.0000000002702798 +41.6000000000000014 0.0000000002701331 +41.6099999999999994 0.0000000002699863 +41.6199999999999974 0.0000000002698396 +41.6300000000000026 0.0000000002696929 +41.6400000000000006 0.0000000002695461 +41.6499999999999986 0.0000000002693994 +41.6600000000000037 0.0000000002692527 +41.6700000000000017 0.0000000002691059 +41.6799999999999997 0.0000000002689592 +41.6899999999999977 0.0000000002688125 +41.7000000000000028 0.0000000002686657 +41.7100000000000009 0.0000000002685190 +41.7199999999999989 0.0000000002683723 +41.7300000000000040 0.0000000002682255 +41.7400000000000020 0.0000000002680788 +41.7500000000000000 0.0000000002679321 +41.7599999999999980 0.0000000002677853 +41.7700000000000031 0.0000000002676386 +41.7800000000000011 0.0000000002674919 +41.7899999999999991 0.0000000002673451 +41.8000000000000043 0.0000000002671984 +41.8100000000000023 0.0000000002670517 +41.8200000000000003 0.0000000002669049 +41.8299999999999983 0.0000000002667582 +41.8400000000000034 0.0000000002666115 +41.8500000000000014 0.0000000002664647 +41.8599999999999994 0.0000000002663180 +41.8699999999999974 0.0000000002661713 +41.8800000000000026 0.0000000002660245 +41.8900000000000006 0.0000000002658778 +41.8999999999999986 0.0000000002657311 +41.9100000000000037 0.0000000002655844 +41.9200000000000017 0.0000000002654376 +41.9299999999999997 0.0000000002652909 +41.9399999999999977 0.0000000002651442 +41.9500000000000028 0.0000000002649974 +41.9600000000000009 0.0000000002648507 +41.9699999999999989 0.0000000002647040 +41.9800000000000040 0.0000000002645572 +41.9900000000000020 0.0000000002644105 +42.0000000000000000 0.0000000002642638 +42.0099999999999980 0.0000000002641170 +42.0200000000000031 0.0000000002639703 +42.0300000000000011 0.0000000002638236 +42.0399999999999991 0.0000000002636768 +42.0500000000000043 0.0000000002635301 +42.0600000000000023 0.0000000002633834 +42.0700000000000003 0.0000000002632366 +42.0799999999999983 0.0000000002630899 +42.0900000000000034 0.0000000002629432 +42.1000000000000014 0.0000000002627964 +42.1099999999999994 0.0000000002626497 +42.1199999999999974 0.0000000002625030 +42.1300000000000026 0.0000000002623562 +42.1400000000000006 0.0000000002622095 +42.1499999999999986 0.0000000002620628 +42.1600000000000037 0.0000000002619160 +42.1700000000000017 0.0000000002617693 +42.1799999999999997 0.0000000002616226 +42.1899999999999977 0.0000000002614758 +42.2000000000000028 0.0000000002613291 +42.2100000000000009 0.0000000002611824 +42.2199999999999989 0.0000000002610356 +42.2300000000000040 0.0000000002608889 +42.2400000000000020 0.0000000002607422 +42.2500000000000000 0.0000000002605955 +42.2599999999999980 0.0000000002604487 +42.2700000000000031 0.0000000002603020 +42.2800000000000011 0.0000000002601553 +42.2899999999999991 0.0000000002600085 +42.3000000000000043 0.0000000002598618 +42.3100000000000023 0.0000000002597151 +42.3200000000000003 0.0000000002595683 +42.3299999999999983 0.0000000002594216 +42.3400000000000034 0.0000000002592749 +42.3500000000000014 0.0000000002591281 +42.3599999999999994 0.0000000002589814 +42.3699999999999974 0.0000000002588347 +42.3800000000000026 0.0000000002586879 +42.3900000000000006 0.0000000002585412 +42.3999999999999986 0.0000000002583945 +42.4100000000000037 0.0000000002582477 +42.4200000000000017 0.0000000002581010 +42.4299999999999997 0.0000000002579543 +42.4399999999999977 0.0000000002578075 +42.4500000000000028 0.0000000002576608 +42.4600000000000009 0.0000000002575141 +42.4699999999999989 0.0000000002573673 +42.4800000000000040 0.0000000002572206 +42.4900000000000020 0.0000000002570739 +42.5000000000000000 0.0000000002569271 +42.5099999999999980 0.0000000002567804 +42.5200000000000031 0.0000000002566337 +42.5300000000000011 0.0000000002564869 +42.5399999999999991 0.0000000002563402 +42.5500000000000043 0.0000000002561935 +42.5600000000000023 0.0000000002560467 +42.5700000000000003 0.0000000002559000 +42.5799999999999983 0.0000000002557533 +42.5900000000000034 0.0000000002556066 +42.6000000000000014 0.0000000002554598 +42.6099999999999994 0.0000000002553131 +42.6199999999999974 0.0000000002551664 +42.6300000000000026 0.0000000002550196 +42.6400000000000006 0.0000000002548729 +42.6499999999999986 0.0000000002547262 +42.6600000000000037 0.0000000002545794 +42.6700000000000017 0.0000000002544327 +42.6799999999999997 0.0000000002542860 +42.6899999999999977 0.0000000002541392 +42.7000000000000028 0.0000000002539925 +42.7100000000000009 0.0000000002538458 +42.7199999999999989 0.0000000002536990 +42.7300000000000040 0.0000000002535523 +42.7400000000000020 0.0000000002534056 +42.7500000000000000 0.0000000002532588 +42.7599999999999980 0.0000000002531121 +42.7700000000000031 0.0000000002529654 +42.7800000000000011 0.0000000002528186 +42.7899999999999991 0.0000000002526719 +42.8000000000000043 0.0000000002525252 +42.8100000000000023 0.0000000002523784 +42.8200000000000003 0.0000000002522317 +42.8299999999999983 0.0000000002520850 +42.8400000000000034 0.0000000002519382 +42.8500000000000014 0.0000000002517915 +42.8599999999999994 0.0000000002516448 +42.8699999999999974 0.0000000002514980 +42.8800000000000026 0.0000000002513513 +42.8900000000000006 0.0000000002512046 +42.8999999999999986 0.0000000002510578 +42.9100000000000037 0.0000000002509111 +42.9200000000000017 0.0000000002507644 +42.9299999999999997 0.0000000002506177 +42.9399999999999977 0.0000000002504709 +42.9500000000000028 0.0000000002503242 +42.9600000000000009 0.0000000002501775 +42.9699999999999989 0.0000000002500307 +42.9800000000000040 0.0000000002498840 +42.9900000000000020 0.0000000002497373 +43.0000000000000000 0.0000000002495905 +43.0099999999999980 0.0000000002494438 +43.0200000000000031 0.0000000002492971 +43.0300000000000011 0.0000000002491503 +43.0399999999999991 0.0000000002490036 +43.0500000000000043 0.0000000002488569 +43.0600000000000023 0.0000000002487101 +43.0700000000000003 0.0000000002485634 +43.0799999999999983 0.0000000002484167 +43.0900000000000034 0.0000000002482699 +43.1000000000000014 0.0000000002481232 +43.1099999999999994 0.0000000002479765 +43.1199999999999974 0.0000000002478297 +43.1300000000000026 0.0000000002476830 +43.1400000000000006 0.0000000002475363 +43.1499999999999986 0.0000000002473895 +43.1600000000000037 0.0000000002472428 +43.1700000000000017 0.0000000002470961 +43.1799999999999997 0.0000000002469493 +43.1899999999999977 0.0000000002468026 +43.2000000000000028 0.0000000002466559 +43.2100000000000009 0.0000000002465091 +43.2199999999999989 0.0000000002463624 +43.2300000000000040 0.0000000002462157 +43.2400000000000020 0.0000000002460689 +43.2500000000000000 0.0000000002459222 +43.2599999999999980 0.0000000002457755 +43.2700000000000031 0.0000000002456288 +43.2800000000000011 0.0000000002454820 +43.2899999999999991 0.0000000002453353 +43.3000000000000043 0.0000000002451886 +43.3100000000000023 0.0000000002450418 +43.3200000000000003 0.0000000002448951 +43.3299999999999983 0.0000000002447484 +43.3400000000000034 0.0000000002446016 +43.3500000000000014 0.0000000002444549 +43.3599999999999994 0.0000000002443082 +43.3699999999999974 0.0000000002441614 +43.3800000000000026 0.0000000002440147 +43.3900000000000006 0.0000000002438680 +43.3999999999999986 0.0000000002437212 +43.4100000000000037 0.0000000002435745 +43.4200000000000017 0.0000000002434278 +43.4299999999999997 0.0000000002432810 +43.4399999999999977 0.0000000002431343 +43.4500000000000028 0.0000000002429876 +43.4600000000000009 0.0000000002428408 +43.4699999999999989 0.0000000002426941 +43.4800000000000040 0.0000000002425474 +43.4900000000000020 0.0000000002424006 +43.5000000000000000 0.0000000002422539 +43.5099999999999980 0.0000000002421072 +43.5200000000000031 0.0000000002419604 +43.5300000000000011 0.0000000002418137 +43.5399999999999991 0.0000000002416670 +43.5500000000000043 0.0000000002415202 +43.5600000000000023 0.0000000002413735 +43.5700000000000003 0.0000000002412268 +43.5799999999999983 0.0000000002410800 +43.5900000000000034 0.0000000002409333 +43.6000000000000014 0.0000000002407866 +43.6099999999999994 0.0000000002406399 +43.6199999999999974 0.0000000002404931 +43.6300000000000026 0.0000000002403464 +43.6400000000000006 0.0000000002401997 +43.6499999999999986 0.0000000002400529 +43.6600000000000037 0.0000000002399062 +43.6700000000000017 0.0000000002397595 +43.6799999999999997 0.0000000002396127 +43.6899999999999977 0.0000000002394660 +43.7000000000000028 0.0000000002393193 +43.7100000000000009 0.0000000002391725 +43.7199999999999989 0.0000000002390258 +43.7300000000000040 0.0000000002388791 +43.7400000000000020 0.0000000002387323 +43.7500000000000000 0.0000000002385856 +43.7599999999999980 0.0000000002384389 +43.7700000000000031 0.0000000002382921 +43.7800000000000011 0.0000000002381454 +43.7899999999999991 0.0000000002379987 +43.8000000000000043 0.0000000002378519 +43.8100000000000023 0.0000000002377052 +43.8200000000000003 0.0000000002375585 +43.8299999999999983 0.0000000002374117 +43.8400000000000034 0.0000000002372650 +43.8500000000000014 0.0000000002371183 +43.8599999999999994 0.0000000002369715 +43.8699999999999974 0.0000000002368248 +43.8800000000000026 0.0000000002366781 +43.8900000000000006 0.0000000002365313 +43.8999999999999986 0.0000000002363846 +43.9100000000000037 0.0000000002362379 +43.9200000000000017 0.0000000002360912 +43.9299999999999997 0.0000000002359444 +43.9399999999999977 0.0000000002357977 +43.9500000000000028 0.0000000002356510 +43.9600000000000009 0.0000000002355042 +43.9699999999999989 0.0000000002353575 +43.9800000000000040 0.0000000002352108 +43.9900000000000020 0.0000000002350640 +44.0000000000000000 0.0000000002349173 +44.0099999999999980 0.0000000002347706 +44.0200000000000031 0.0000000002346238 +44.0300000000000011 0.0000000002344771 +44.0399999999999991 0.0000000002343304 +44.0500000000000043 0.0000000002341836 +44.0600000000000023 0.0000000002340369 +44.0700000000000003 0.0000000002338902 +44.0799999999999983 0.0000000002337434 +44.0900000000000034 0.0000000002335967 +44.1000000000000014 0.0000000002334500 +44.1099999999999994 0.0000000002333032 +44.1199999999999974 0.0000000002331565 +44.1300000000000026 0.0000000002330098 +44.1400000000000006 0.0000000002328630 +44.1499999999999986 0.0000000002327163 +44.1600000000000037 0.0000000002325696 +44.1700000000000017 0.0000000002324228 +44.1799999999999997 0.0000000002322761 +44.1899999999999977 0.0000000002321294 +44.2000000000000028 0.0000000002319826 +44.2100000000000009 0.0000000002318359 +44.2199999999999989 0.0000000002316892 +44.2300000000000040 0.0000000002315424 +44.2400000000000020 0.0000000002313957 +44.2500000000000000 0.0000000002312490 +44.2599999999999980 0.0000000002311023 +44.2700000000000031 0.0000000002309555 +44.2800000000000011 0.0000000002308088 +44.2899999999999991 0.0000000002306621 +44.3000000000000043 0.0000000002305153 +44.3100000000000023 0.0000000002303686 +44.3200000000000003 0.0000000002302219 +44.3299999999999983 0.0000000002300751 +44.3400000000000034 0.0000000002299284 +44.3500000000000014 0.0000000002297817 +44.3599999999999994 0.0000000002296349 +44.3699999999999974 0.0000000002294882 +44.3800000000000026 0.0000000002293415 +44.3900000000000006 0.0000000002291947 +44.3999999999999986 0.0000000002290480 +44.4100000000000037 0.0000000002289013 +44.4200000000000017 0.0000000002287545 +44.4299999999999997 0.0000000002286078 +44.4399999999999977 0.0000000002284611 +44.4500000000000028 0.0000000002283143 +44.4600000000000009 0.0000000002281676 +44.4699999999999989 0.0000000002280209 +44.4800000000000040 0.0000000002278741 +44.4900000000000020 0.0000000002277274 +44.5000000000000000 0.0000000002275807 +44.5099999999999980 0.0000000002274339 +44.5200000000000031 0.0000000002272872 +44.5300000000000011 0.0000000002271405 +44.5399999999999991 0.0000000002269937 +44.5500000000000043 0.0000000002268470 +44.5600000000000023 0.0000000002267003 +44.5700000000000003 0.0000000002265535 +44.5799999999999983 0.0000000002264068 +44.5900000000000034 0.0000000002262601 +44.6000000000000014 0.0000000002261134 +44.6099999999999994 0.0000000002259666 +44.6199999999999974 0.0000000002258199 +44.6300000000000026 0.0000000002256732 +44.6400000000000006 0.0000000002255264 +44.6499999999999986 0.0000000002253797 +44.6600000000000037 0.0000000002252330 +44.6700000000000017 0.0000000002250862 +44.6799999999999997 0.0000000002249395 +44.6899999999999977 0.0000000002247928 +44.7000000000000028 0.0000000002246460 +44.7100000000000009 0.0000000002244993 +44.7199999999999989 0.0000000002243526 +44.7300000000000040 0.0000000002242058 +44.7400000000000020 0.0000000002240591 +44.7500000000000000 0.0000000002239124 +44.7599999999999980 0.0000000002237656 +44.7700000000000031 0.0000000002236189 +44.7800000000000011 0.0000000002234722 +44.7899999999999991 0.0000000002233254 +44.8000000000000043 0.0000000002231787 +44.8100000000000023 0.0000000002230320 +44.8200000000000003 0.0000000002228852 +44.8299999999999983 0.0000000002227385 +44.8400000000000034 0.0000000002225918 +44.8500000000000014 0.0000000002224450 +44.8599999999999994 0.0000000002222983 +44.8699999999999974 0.0000000002221516 +44.8800000000000026 0.0000000002220048 +44.8900000000000006 0.0000000002218581 +44.8999999999999986 0.0000000002217114 +44.9100000000000037 0.0000000002215646 +44.9200000000000017 0.0000000002214179 +44.9299999999999997 0.0000000002212712 +44.9399999999999977 0.0000000002211245 +44.9500000000000028 0.0000000002209777 +44.9600000000000009 0.0000000002208310 +44.9699999999999989 0.0000000002206843 +44.9800000000000040 0.0000000002205375 +44.9900000000000020 0.0000000002203908 +45.0000000000000000 0.0000000002202441 +45.0099999999999980 0.0000000002200973 +45.0200000000000031 0.0000000002199506 +45.0300000000000011 0.0000000002198039 +45.0399999999999991 0.0000000002196571 +45.0500000000000043 0.0000000002195104 +45.0600000000000023 0.0000000002193637 +45.0700000000000003 0.0000000002192169 +45.0799999999999983 0.0000000002190702 +45.0900000000000034 0.0000000002189235 +45.1000000000000014 0.0000000002187767 +45.1099999999999994 0.0000000002186300 +45.1199999999999974 0.0000000002184833 +45.1300000000000026 0.0000000002183365 +45.1400000000000006 0.0000000002181898 +45.1499999999999986 0.0000000002180431 +45.1600000000000037 0.0000000002178963 +45.1700000000000017 0.0000000002177496 +45.1799999999999997 0.0000000002176029 +45.1899999999999977 0.0000000002174561 +45.2000000000000028 0.0000000002173094 +45.2100000000000009 0.0000000002171627 +45.2199999999999989 0.0000000002170159 +45.2300000000000040 0.0000000002168692 +45.2400000000000020 0.0000000002167225 +45.2500000000000000 0.0000000002165757 +45.2599999999999980 0.0000000002164290 +45.2700000000000031 0.0000000002162823 +45.2800000000000011 0.0000000002161356 +45.2899999999999991 0.0000000002159888 +45.3000000000000043 0.0000000002158421 +45.3100000000000023 0.0000000002156954 +45.3200000000000003 0.0000000002155486 +45.3299999999999983 0.0000000002154019 +45.3400000000000034 0.0000000002152552 +45.3500000000000014 0.0000000002151084 +45.3599999999999994 0.0000000002149617 +45.3699999999999974 0.0000000002148150 +45.3800000000000026 0.0000000002146682 +45.3900000000000006 0.0000000002145215 +45.3999999999999986 0.0000000002143748 +45.4100000000000037 0.0000000002142280 +45.4200000000000017 0.0000000002140813 +45.4299999999999997 0.0000000002139346 +45.4399999999999977 0.0000000002137878 +45.4500000000000028 0.0000000002136411 +45.4600000000000009 0.0000000002134944 +45.4699999999999989 0.0000000002133476 +45.4800000000000040 0.0000000002132009 +45.4900000000000020 0.0000000002130542 +45.5000000000000000 0.0000000002129074 +45.5099999999999980 0.0000000002127607 +45.5200000000000031 0.0000000002126140 +45.5300000000000011 0.0000000002124672 +45.5399999999999991 0.0000000002123205 +45.5500000000000043 0.0000000002121738 +45.5600000000000023 0.0000000002120270 +45.5700000000000003 0.0000000002118803 +45.5799999999999983 0.0000000002117336 +45.5900000000000034 0.0000000002115868 +45.6000000000000014 0.0000000002114401 +45.6099999999999994 0.0000000002112934 +45.6199999999999974 0.0000000002111467 +45.6300000000000026 0.0000000002109999 +45.6400000000000006 0.0000000002108532 +45.6499999999999986 0.0000000002107065 +45.6600000000000037 0.0000000002105597 +45.6700000000000017 0.0000000002104130 +45.6799999999999997 0.0000000002102663 +45.6899999999999977 0.0000000002101195 +45.7000000000000028 0.0000000002099728 +45.7100000000000009 0.0000000002098261 +45.7199999999999989 0.0000000002096793 +45.7300000000000040 0.0000000002095326 +45.7400000000000020 0.0000000002093859 +45.7500000000000000 0.0000000002092391 +45.7599999999999980 0.0000000002090924 +45.7700000000000031 0.0000000002089457 +45.7800000000000011 0.0000000002087989 +45.7899999999999991 0.0000000002086522 +45.8000000000000043 0.0000000002085055 +45.8100000000000023 0.0000000002083587 +45.8200000000000003 0.0000000002082120 +45.8299999999999983 0.0000000002080653 +45.8400000000000034 0.0000000002079185 +45.8500000000000014 0.0000000002077718 +45.8599999999999994 0.0000000002076251 +45.8699999999999974 0.0000000002074783 +45.8800000000000026 0.0000000002073316 +45.8900000000000006 0.0000000002071849 +45.8999999999999986 0.0000000002070381 +45.9100000000000037 0.0000000002068914 +45.9200000000000017 0.0000000002067447 +45.9299999999999997 0.0000000002065979 +45.9399999999999977 0.0000000002064512 +45.9500000000000028 0.0000000002063045 +45.9600000000000009 0.0000000002061578 +45.9699999999999989 0.0000000002060110 +45.9800000000000040 0.0000000002058643 +45.9900000000000020 0.0000000002057176 +46.0000000000000000 0.0000000002055708 +46.0099999999999980 0.0000000002054241 +46.0200000000000031 0.0000000002052774 +46.0300000000000011 0.0000000002051306 +46.0399999999999991 0.0000000002049839 +46.0500000000000043 0.0000000002048372 +46.0600000000000023 0.0000000002046904 +46.0700000000000003 0.0000000002045437 +46.0799999999999983 0.0000000002043970 +46.0900000000000034 0.0000000002042502 +46.1000000000000014 0.0000000002041035 +46.1099999999999994 0.0000000002039568 +46.1199999999999974 0.0000000002038100 +46.1300000000000026 0.0000000002036633 +46.1400000000000006 0.0000000002035166 +46.1499999999999986 0.0000000002033698 +46.1600000000000037 0.0000000002032231 +46.1700000000000017 0.0000000002030764 +46.1799999999999997 0.0000000002029296 +46.1899999999999977 0.0000000002027829 +46.2000000000000028 0.0000000002026362 +46.2100000000000009 0.0000000002024894 +46.2199999999999989 0.0000000002023427 +46.2300000000000040 0.0000000002021960 +46.2400000000000020 0.0000000002020492 +46.2500000000000000 0.0000000002019025 +46.2599999999999980 0.0000000002017558 +46.2700000000000031 0.0000000002016090 +46.2800000000000011 0.0000000002014623 +46.2899999999999991 0.0000000002013156 +46.3000000000000043 0.0000000002011689 +46.3100000000000023 0.0000000002010221 +46.3200000000000003 0.0000000002008754 +46.3299999999999983 0.0000000002007287 +46.3400000000000034 0.0000000002005819 +46.3500000000000014 0.0000000002004352 +46.3599999999999994 0.0000000002002885 +46.3699999999999974 0.0000000002001417 +46.3800000000000026 0.0000000001999950 +46.3900000000000006 0.0000000001998483 +46.3999999999999986 0.0000000001997015 +46.4100000000000037 0.0000000001995548 +46.4200000000000017 0.0000000001994081 +46.4299999999999997 0.0000000001992613 +46.4399999999999977 0.0000000001991146 +46.4500000000000028 0.0000000001989679 +46.4600000000000009 0.0000000001988211 +46.4699999999999989 0.0000000001986744 +46.4800000000000040 0.0000000001985277 +46.4900000000000020 0.0000000001983809 +46.5000000000000000 0.0000000001982342 +46.5099999999999980 0.0000000001980875 +46.5200000000000031 0.0000000001979407 +46.5300000000000011 0.0000000001977940 +46.5399999999999991 0.0000000001976473 +46.5500000000000043 0.0000000001975005 +46.5600000000000023 0.0000000001973538 +46.5700000000000003 0.0000000001972071 +46.5799999999999983 0.0000000001970603 +46.5900000000000034 0.0000000001969136 +46.6000000000000014 0.0000000001967669 +46.6099999999999994 0.0000000001966201 +46.6199999999999974 0.0000000001964734 +46.6300000000000026 0.0000000001963267 +46.6400000000000006 0.0000000001961800 +46.6499999999999986 0.0000000001960332 +46.6600000000000037 0.0000000001958865 +46.6700000000000017 0.0000000001957398 +46.6799999999999997 0.0000000001955930 +46.6899999999999977 0.0000000001954463 +46.7000000000000028 0.0000000001952996 +46.7100000000000009 0.0000000001951528 +46.7199999999999989 0.0000000001950061 +46.7300000000000040 0.0000000001948594 +46.7400000000000020 0.0000000001947126 +46.7500000000000000 0.0000000001945659 +46.7599999999999980 0.0000000001944192 +46.7700000000000031 0.0000000001942724 +46.7800000000000011 0.0000000001941257 +46.7899999999999991 0.0000000001939790 +46.8000000000000043 0.0000000001938322 +46.8100000000000023 0.0000000001936855 +46.8200000000000003 0.0000000001935388 +46.8299999999999983 0.0000000001933920 +46.8400000000000034 0.0000000001932453 +46.8500000000000014 0.0000000001930986 +46.8599999999999994 0.0000000001929518 +46.8699999999999974 0.0000000001928051 +46.8800000000000026 0.0000000001926584 +46.8900000000000006 0.0000000001925116 +46.8999999999999986 0.0000000001923649 +46.9100000000000037 0.0000000001922182 +46.9200000000000017 0.0000000001920714 +46.9299999999999997 0.0000000001919247 +46.9399999999999977 0.0000000001917780 +46.9500000000000028 0.0000000001916312 +46.9600000000000009 0.0000000001914845 +46.9699999999999989 0.0000000001913378 +46.9800000000000040 0.0000000001911911 +46.9900000000000020 0.0000000001910443 +47.0000000000000000 0.0000000001908976 +47.0099999999999980 0.0000000001907509 +47.0200000000000031 0.0000000001906041 +47.0300000000000011 0.0000000001904574 +47.0399999999999991 0.0000000001903107 +47.0500000000000043 0.0000000001901639 +47.0600000000000023 0.0000000001900172 +47.0700000000000003 0.0000000001898705 +47.0799999999999983 0.0000000001897237 +47.0900000000000034 0.0000000001895770 +47.1000000000000014 0.0000000001894303 +47.1099999999999994 0.0000000001892835 +47.1199999999999974 0.0000000001891368 +47.1300000000000026 0.0000000001889901 +47.1400000000000006 0.0000000001888433 +47.1499999999999986 0.0000000001886966 +47.1600000000000037 0.0000000001885499 +47.1700000000000017 0.0000000001884031 +47.1799999999999997 0.0000000001882564 +47.1899999999999977 0.0000000001881097 +47.2000000000000028 0.0000000001879629 +47.2100000000000009 0.0000000001878162 +47.2199999999999989 0.0000000001876695 +47.2300000000000040 0.0000000001875227 +47.2400000000000020 0.0000000001873760 +47.2500000000000000 0.0000000001872293 +47.2599999999999980 0.0000000001870825 +47.2700000000000031 0.0000000001869358 +47.2800000000000011 0.0000000001867891 +47.2899999999999991 0.0000000001866423 +47.3000000000000043 0.0000000001864956 +47.3100000000000023 0.0000000001863489 +47.3200000000000003 0.0000000001862022 +47.3299999999999983 0.0000000001860554 +47.3400000000000034 0.0000000001859087 +47.3500000000000014 0.0000000001857620 +47.3599999999999994 0.0000000001856152 +47.3699999999999974 0.0000000001854685 +47.3800000000000026 0.0000000001853218 +47.3900000000000006 0.0000000001851750 +47.3999999999999986 0.0000000001850283 +47.4100000000000037 0.0000000001848816 +47.4200000000000017 0.0000000001847348 +47.4299999999999997 0.0000000001845881 +47.4399999999999977 0.0000000001844414 +47.4500000000000028 0.0000000001842946 +47.4600000000000009 0.0000000001841479 +47.4699999999999989 0.0000000001840012 +47.4800000000000040 0.0000000001838544 +47.4900000000000020 0.0000000001837077 +47.5000000000000000 0.0000000001835610 +47.5099999999999980 0.0000000001834142 +47.5200000000000031 0.0000000001832675 +47.5300000000000011 0.0000000001831208 +47.5399999999999991 0.0000000001829740 +47.5500000000000043 0.0000000001828273 +47.5600000000000023 0.0000000001826806 +47.5700000000000003 0.0000000001825338 +47.5799999999999983 0.0000000001823871 +47.5900000000000034 0.0000000001822404 +47.6000000000000014 0.0000000001820936 +47.6099999999999994 0.0000000001819469 +47.6199999999999974 0.0000000001818002 +47.6300000000000026 0.0000000001816534 +47.6400000000000006 0.0000000001815067 +47.6499999999999986 0.0000000001813600 +47.6600000000000037 0.0000000001812133 +47.6700000000000017 0.0000000001810665 +47.6799999999999997 0.0000000001809198 +47.6899999999999977 0.0000000001807731 +47.7000000000000028 0.0000000001806263 +47.7100000000000009 0.0000000001804796 +47.7199999999999989 0.0000000001803329 +47.7300000000000040 0.0000000001801861 +47.7400000000000020 0.0000000001800394 +47.7500000000000000 0.0000000001798927 +47.7599999999999980 0.0000000001797459 +47.7700000000000031 0.0000000001795992 +47.7800000000000011 0.0000000001794525 +47.7899999999999991 0.0000000001793057 +47.8000000000000043 0.0000000001791590 +47.8100000000000023 0.0000000001790123 +47.8200000000000003 0.0000000001788655 +47.8299999999999983 0.0000000001787188 +47.8400000000000034 0.0000000001785721 +47.8500000000000014 0.0000000001784253 +47.8599999999999994 0.0000000001782786 +47.8700000000000045 0.0000000001781319 +47.8800000000000026 0.0000000001779851 +47.8900000000000006 0.0000000001778384 +47.8999999999999986 0.0000000001776917 +47.9100000000000037 0.0000000001775449 +47.9200000000000017 0.0000000001773982 +47.9299999999999997 0.0000000001772515 +47.9399999999999977 0.0000000001771047 +47.9500000000000028 0.0000000001769580 +47.9600000000000009 0.0000000001768113 +47.9699999999999989 0.0000000001766645 +47.9800000000000040 0.0000000001765178 +47.9900000000000020 0.0000000001763711 +48.0000000000000000 0.0000000001762244 +48.0099999999999980 0.0000000001760776 +48.0200000000000031 0.0000000001759309 +48.0300000000000011 0.0000000001757842 +48.0399999999999991 0.0000000001756374 +48.0500000000000043 0.0000000001754907 +48.0600000000000023 0.0000000001753440 +48.0700000000000003 0.0000000001751972 +48.0799999999999983 0.0000000001750505 +48.0900000000000034 0.0000000001749038 +48.1000000000000014 0.0000000001747570 +48.1099999999999994 0.0000000001746103 +48.1200000000000045 0.0000000001744636 +48.1300000000000026 0.0000000001743168 +48.1400000000000006 0.0000000001741701 +48.1499999999999986 0.0000000001740234 +48.1600000000000037 0.0000000001738766 +48.1700000000000017 0.0000000001737299 +48.1799999999999997 0.0000000001735832 +48.1899999999999977 0.0000000001734364 +48.2000000000000028 0.0000000001732897 +48.2100000000000009 0.0000000001731430 +48.2199999999999989 0.0000000001729962 +48.2300000000000040 0.0000000001728495 +48.2400000000000020 0.0000000001727028 +48.2500000000000000 0.0000000001725560 +48.2599999999999980 0.0000000001724093 +48.2700000000000031 0.0000000001722626 +48.2800000000000011 0.0000000001721158 +48.2899999999999991 0.0000000001719691 +48.3000000000000043 0.0000000001718224 +48.3100000000000023 0.0000000001716756 +48.3200000000000003 0.0000000001715289 +48.3299999999999983 0.0000000001713822 +48.3400000000000034 0.0000000001712355 +48.3500000000000014 0.0000000001710887 +48.3599999999999994 0.0000000001709420 +48.3700000000000045 0.0000000001707953 +48.3800000000000026 0.0000000001706485 +48.3900000000000006 0.0000000001705018 +48.3999999999999986 0.0000000001703551 +48.4100000000000037 0.0000000001702083 +48.4200000000000017 0.0000000001700616 +48.4299999999999997 0.0000000001699149 +48.4399999999999977 0.0000000001697681 +48.4500000000000028 0.0000000001696214 +48.4600000000000009 0.0000000001694747 +48.4699999999999989 0.0000000001693279 +48.4800000000000040 0.0000000001691812 +48.4900000000000020 0.0000000001690345 +48.5000000000000000 0.0000000001688877 +48.5099999999999980 0.0000000001687410 +48.5200000000000031 0.0000000001685943 +48.5300000000000011 0.0000000001684475 +48.5399999999999991 0.0000000001683008 +48.5500000000000043 0.0000000001681541 +48.5600000000000023 0.0000000001680073 +48.5700000000000003 0.0000000001678606 +48.5799999999999983 0.0000000001677139 +48.5900000000000034 0.0000000001675671 +48.6000000000000014 0.0000000001674204 +48.6099999999999994 0.0000000001672737 +48.6200000000000045 0.0000000001671269 +48.6300000000000026 0.0000000001669802 +48.6400000000000006 0.0000000001668335 +48.6499999999999986 0.0000000001666867 +48.6600000000000037 0.0000000001665400 +48.6700000000000017 0.0000000001663933 +48.6799999999999997 0.0000000001662466 +48.6899999999999977 0.0000000001660998 +48.7000000000000028 0.0000000001659531 +48.7100000000000009 0.0000000001658064 +48.7199999999999989 0.0000000001656596 +48.7300000000000040 0.0000000001655129 +48.7400000000000020 0.0000000001653662 +48.7500000000000000 0.0000000001652194 +48.7599999999999980 0.0000000001650727 +48.7700000000000031 0.0000000001649260 +48.7800000000000011 0.0000000001647792 +48.7899999999999991 0.0000000001646325 +48.8000000000000043 0.0000000001644858 +48.8100000000000023 0.0000000001643390 +48.8200000000000003 0.0000000001641923 +48.8299999999999983 0.0000000001640456 +48.8400000000000034 0.0000000001638988 +48.8500000000000014 0.0000000001637521 +48.8599999999999994 0.0000000001636054 +48.8700000000000045 0.0000000001634586 +48.8800000000000026 0.0000000001633119 +48.8900000000000006 0.0000000001631652 +48.8999999999999986 0.0000000001630184 +48.9100000000000037 0.0000000001628717 +48.9200000000000017 0.0000000001627250 +48.9299999999999997 0.0000000001625782 +48.9399999999999977 0.0000000001624315 +48.9500000000000028 0.0000000001622848 +48.9600000000000009 0.0000000001621380 +48.9699999999999989 0.0000000001619913 +48.9800000000000040 0.0000000001618446 +48.9900000000000020 0.0000000001616978 +49.0000000000000000 0.0000000001615511 +49.0099999999999980 0.0000000001614044 +49.0200000000000031 0.0000000001612577 +49.0300000000000011 0.0000000001611109 +49.0399999999999991 0.0000000001609642 +49.0500000000000043 0.0000000001608175 +49.0600000000000023 0.0000000001606707 +49.0700000000000003 0.0000000001605240 +49.0799999999999983 0.0000000001603773 +49.0900000000000034 0.0000000001602305 +49.1000000000000014 0.0000000001600838 +49.1099999999999994 0.0000000001599371 +49.1200000000000045 0.0000000001597903 +49.1300000000000026 0.0000000001596436 +49.1400000000000006 0.0000000001594969 +49.1499999999999986 0.0000000001593501 +49.1600000000000037 0.0000000001592034 +49.1700000000000017 0.0000000001590567 +49.1799999999999997 0.0000000001589099 +49.1899999999999977 0.0000000001587632 +49.2000000000000028 0.0000000001586165 +49.2100000000000009 0.0000000001584697 +49.2199999999999989 0.0000000001583230 +49.2300000000000040 0.0000000001581763 +49.2400000000000020 0.0000000001580295 +49.2500000000000000 0.0000000001578828 +49.2599999999999980 0.0000000001577361 +49.2700000000000031 0.0000000001575893 +49.2800000000000011 0.0000000001574426 +49.2899999999999991 0.0000000001572959 +49.3000000000000043 0.0000000001571491 +49.3100000000000023 0.0000000001570024 +49.3200000000000003 0.0000000001568557 +49.3299999999999983 0.0000000001567089 +49.3400000000000034 0.0000000001565622 +49.3500000000000014 0.0000000001564155 +49.3599999999999994 0.0000000001562688 +49.3700000000000045 0.0000000001561220 +49.3800000000000026 0.0000000001559753 +49.3900000000000006 0.0000000001558286 +49.3999999999999986 0.0000000001556818 +49.4100000000000037 0.0000000001555351 +49.4200000000000017 0.0000000001553884 +49.4299999999999997 0.0000000001552416 +49.4399999999999977 0.0000000001550949 +49.4500000000000028 0.0000000001549482 +49.4600000000000009 0.0000000001548014 +49.4699999999999989 0.0000000001546547 +49.4800000000000040 0.0000000001545080 +49.4900000000000020 0.0000000001543612 +49.5000000000000000 0.0000000001542145 +49.5099999999999980 0.0000000001540678 +49.5200000000000031 0.0000000001539210 +49.5300000000000011 0.0000000001537743 +49.5399999999999991 0.0000000001536276 +49.5500000000000043 0.0000000001534808 +49.5600000000000023 0.0000000001533341 +49.5700000000000003 0.0000000001531874 +49.5799999999999983 0.0000000001530406 +49.5900000000000034 0.0000000001528939 +49.6000000000000014 0.0000000001527472 +49.6099999999999994 0.0000000001526004 +49.6200000000000045 0.0000000001524537 +49.6300000000000026 0.0000000001523070 +49.6400000000000006 0.0000000001521602 +49.6499999999999986 0.0000000001520135 +49.6600000000000037 0.0000000001518668 +49.6700000000000017 0.0000000001517200 +49.6799999999999997 0.0000000001515733 +49.6899999999999977 0.0000000001514266 +49.7000000000000028 0.0000000001512799 +49.7100000000000009 0.0000000001511331 +49.7199999999999989 0.0000000001509864 +49.7300000000000040 0.0000000001508397 +49.7400000000000020 0.0000000001506929 +49.7500000000000000 0.0000000001505462 +49.7599999999999980 0.0000000001503995 +49.7700000000000031 0.0000000001502527 +49.7800000000000011 0.0000000001501060 +49.7899999999999991 0.0000000001499593 +49.8000000000000043 0.0000000001498125 +49.8100000000000023 0.0000000001496658 +49.8200000000000003 0.0000000001495191 +49.8299999999999983 0.0000000001493723 +49.8400000000000034 0.0000000001492256 +49.8500000000000014 0.0000000001490789 +49.8599999999999994 0.0000000001489321 +49.8700000000000045 0.0000000001487854 +49.8800000000000026 0.0000000001486387 +49.8900000000000006 0.0000000001484919 +49.8999999999999986 0.0000000001483452 +49.9100000000000037 0.0000000001481985 +49.9200000000000017 0.0000000001480517 +49.9299999999999997 0.0000000001479050 +49.9399999999999977 0.0000000001477583 +49.9500000000000028 0.0000000001476115 +49.9600000000000009 0.0000000001474648 +49.9699999999999989 0.0000000001473181 +49.9800000000000040 0.0000000001471713 +49.9900000000000020 0.0000000001470246 +50.0000000000000000 0.0000000001468779 +50.0099999999999980 0.0000000001467311 +50.0200000000000031 0.0000000001465844 +50.0300000000000011 0.0000000001464377 +50.0399999999999991 0.0000000001462910 +50.0500000000000043 0.0000000001461442 +50.0600000000000023 0.0000000001459975 +50.0700000000000003 0.0000000001458508 +50.0799999999999983 0.0000000001457040 +50.0900000000000034 0.0000000001455573 +50.1000000000000014 0.0000000001454106 +50.1099999999999994 0.0000000001452638 +50.1200000000000045 0.0000000001451171 +50.1300000000000026 0.0000000001449704 +50.1400000000000006 0.0000000001448236 +50.1499999999999986 0.0000000001446769 +50.1600000000000037 0.0000000001445302 +50.1700000000000017 0.0000000001443834 +50.1799999999999997 0.0000000001442367 +50.1899999999999977 0.0000000001440900 +50.2000000000000028 0.0000000001439432 +50.2100000000000009 0.0000000001437965 +50.2199999999999989 0.0000000001436498 +50.2300000000000040 0.0000000001435030 +50.2400000000000020 0.0000000001433563 +50.2500000000000000 0.0000000001432096 +50.2599999999999980 0.0000000001430628 +50.2700000000000031 0.0000000001429161 +50.2800000000000011 0.0000000001427694 +50.2899999999999991 0.0000000001426226 +50.3000000000000043 0.0000000001424759 +50.3100000000000023 0.0000000001423292 +50.3200000000000003 0.0000000001421824 +50.3299999999999983 0.0000000001420357 +50.3400000000000034 0.0000000001418890 +50.3500000000000014 0.0000000001417422 +50.3599999999999994 0.0000000001415955 +50.3700000000000045 0.0000000001414488 +50.3800000000000026 0.0000000001413021 +50.3900000000000006 0.0000000001411553 +50.3999999999999986 0.0000000001410086 +50.4100000000000037 0.0000000001408619 +50.4200000000000017 0.0000000001407151 +50.4299999999999997 0.0000000001405684 +50.4399999999999977 0.0000000001404217 +50.4500000000000028 0.0000000001402749 +50.4600000000000009 0.0000000001401282 +50.4699999999999989 0.0000000001399815 +50.4800000000000040 0.0000000001398347 +50.4900000000000020 0.0000000001396880 +50.5000000000000000 0.0000000001395413 +50.5099999999999980 0.0000000001393945 +50.5200000000000031 0.0000000001392478 +50.5300000000000011 0.0000000001391011 +50.5399999999999991 0.0000000001389543 +50.5500000000000043 0.0000000001388076 +50.5600000000000023 0.0000000001386609 +50.5700000000000003 0.0000000001385141 +50.5799999999999983 0.0000000001383674 +50.5900000000000034 0.0000000001382207 +50.6000000000000014 0.0000000001380739 +50.6099999999999994 0.0000000001379272 +50.6200000000000045 0.0000000001377805 +50.6300000000000026 0.0000000001376337 +50.6400000000000006 0.0000000001374870 +50.6499999999999986 0.0000000001373403 +50.6600000000000037 0.0000000001371935 +50.6700000000000017 0.0000000001370468 +50.6799999999999997 0.0000000001369001 +50.6899999999999977 0.0000000001367533 +50.7000000000000028 0.0000000001366066 +50.7100000000000009 0.0000000001364599 +50.7199999999999989 0.0000000001363132 +50.7300000000000040 0.0000000001361664 +50.7400000000000020 0.0000000001360197 +50.7500000000000000 0.0000000001358730 +50.7599999999999980 0.0000000001357262 +50.7700000000000031 0.0000000001355795 +50.7800000000000011 0.0000000001354328 +50.7899999999999991 0.0000000001352860 +50.8000000000000043 0.0000000001351393 +50.8100000000000023 0.0000000001349926 +50.8200000000000003 0.0000000001348458 +50.8299999999999983 0.0000000001346991 +50.8400000000000034 0.0000000001345524 +50.8500000000000014 0.0000000001344056 +50.8599999999999994 0.0000000001342589 +50.8700000000000045 0.0000000001341122 +50.8800000000000026 0.0000000001339654 +50.8900000000000006 0.0000000001338187 +50.8999999999999986 0.0000000001336720 +50.9100000000000037 0.0000000001335252 +50.9200000000000017 0.0000000001333785 +50.9299999999999997 0.0000000001332318 +50.9399999999999977 0.0000000001330850 +50.9500000000000028 0.0000000001329383 +50.9600000000000009 0.0000000001327916 +50.9699999999999989 0.0000000001326448 +50.9800000000000040 0.0000000001324981 +50.9900000000000020 0.0000000001323514 +51.0000000000000000 0.0000000001322046 +51.0099999999999980 0.0000000001320579 +51.0200000000000031 0.0000000001319112 +51.0300000000000011 0.0000000001317644 +51.0399999999999991 0.0000000001316177 +51.0500000000000043 0.0000000001314710 +51.0600000000000023 0.0000000001313243 +51.0700000000000003 0.0000000001311775 +51.0799999999999983 0.0000000001310308 +51.0900000000000034 0.0000000001308841 +51.1000000000000014 0.0000000001307373 +51.1099999999999994 0.0000000001305906 +51.1200000000000045 0.0000000001304439 +51.1300000000000026 0.0000000001302971 +51.1400000000000006 0.0000000001301504 +51.1499999999999986 0.0000000001300037 +51.1600000000000037 0.0000000001298569 +51.1700000000000017 0.0000000001297102 +51.1799999999999997 0.0000000001295635 +51.1899999999999977 0.0000000001294167 +51.2000000000000028 0.0000000001292700 +51.2100000000000009 0.0000000001291233 +51.2199999999999989 0.0000000001289765 +51.2300000000000040 0.0000000001288298 +51.2400000000000020 0.0000000001286831 +51.2500000000000000 0.0000000001285363 +51.2599999999999980 0.0000000001283896 +51.2700000000000031 0.0000000001282429 +51.2800000000000011 0.0000000001280961 +51.2899999999999991 0.0000000001279494 +51.3000000000000043 0.0000000001278027 +51.3100000000000023 0.0000000001276559 +51.3200000000000003 0.0000000001275092 +51.3299999999999983 0.0000000001273625 +51.3400000000000034 0.0000000001272157 +51.3500000000000014 0.0000000001270690 +51.3599999999999994 0.0000000001269223 +51.3700000000000045 0.0000000001267755 +51.3800000000000026 0.0000000001266288 +51.3900000000000006 0.0000000001264821 +51.3999999999999986 0.0000000001263354 +51.4100000000000037 0.0000000001261886 +51.4200000000000017 0.0000000001260419 +51.4299999999999997 0.0000000001258952 +51.4399999999999977 0.0000000001257484 +51.4500000000000028 0.0000000001256017 +51.4600000000000009 0.0000000001254550 +51.4699999999999989 0.0000000001253082 +51.4800000000000040 0.0000000001251615 +51.4900000000000020 0.0000000001250148 +51.5000000000000000 0.0000000001248680 +51.5099999999999980 0.0000000001247213 +51.5200000000000031 0.0000000001245746 +51.5300000000000011 0.0000000001244278 +51.5399999999999991 0.0000000001242811 +51.5500000000000043 0.0000000001241344 +51.5600000000000023 0.0000000001239876 +51.5700000000000003 0.0000000001238409 +51.5799999999999983 0.0000000001236942 +51.5900000000000034 0.0000000001235474 +51.6000000000000014 0.0000000001234007 +51.6099999999999994 0.0000000001232540 +51.6200000000000045 0.0000000001231072 +51.6300000000000026 0.0000000001229605 +51.6400000000000006 0.0000000001228138 +51.6499999999999986 0.0000000001226670 +51.6600000000000037 0.0000000001225203 +51.6700000000000017 0.0000000001223736 +51.6799999999999997 0.0000000001222268 +51.6899999999999977 0.0000000001220801 +51.7000000000000028 0.0000000001219334 +51.7100000000000009 0.0000000001217867 +51.7199999999999989 0.0000000001216399 +51.7300000000000040 0.0000000001214932 +51.7400000000000020 0.0000000001213465 +51.7500000000000000 0.0000000001211997 +51.7599999999999980 0.0000000001210530 +51.7700000000000031 0.0000000001209063 +51.7800000000000011 0.0000000001207595 +51.7899999999999991 0.0000000001206128 +51.8000000000000043 0.0000000001204661 +51.8100000000000023 0.0000000001203193 +51.8200000000000003 0.0000000001201726 +51.8299999999999983 0.0000000001200259 +51.8400000000000034 0.0000000001198791 +51.8500000000000014 0.0000000001197324 +51.8599999999999994 0.0000000001195857 +51.8700000000000045 0.0000000001194389 +51.8800000000000026 0.0000000001192922 +51.8900000000000006 0.0000000001191455 +51.8999999999999986 0.0000000001189987 +51.9100000000000037 0.0000000001188520 +51.9200000000000017 0.0000000001187053 +51.9299999999999997 0.0000000001185585 +51.9399999999999977 0.0000000001184118 +51.9500000000000028 0.0000000001182651 +51.9600000000000009 0.0000000001181183 +51.9699999999999989 0.0000000001179716 +51.9800000000000040 0.0000000001178249 +51.9900000000000020 0.0000000001176781 +52.0000000000000000 0.0000000001175314 +52.0099999999999980 0.0000000001173847 +52.0200000000000031 0.0000000001172379 +52.0300000000000011 0.0000000001170912 +52.0399999999999991 0.0000000001169445 +52.0500000000000043 0.0000000001167978 +52.0600000000000023 0.0000000001166510 +52.0700000000000003 0.0000000001165043 +52.0799999999999983 0.0000000001163576 +52.0900000000000034 0.0000000001162108 +52.1000000000000014 0.0000000001160641 +52.1099999999999994 0.0000000001159174 +52.1200000000000045 0.0000000001157706 +52.1300000000000026 0.0000000001156239 +52.1400000000000006 0.0000000001154772 +52.1499999999999986 0.0000000001153304 +52.1600000000000037 0.0000000001151837 +52.1700000000000017 0.0000000001150370 +52.1799999999999997 0.0000000001148902 +52.1899999999999977 0.0000000001147435 +52.2000000000000028 0.0000000001145968 +52.2100000000000009 0.0000000001144500 +52.2199999999999989 0.0000000001143033 +52.2300000000000040 0.0000000001141566 +52.2400000000000020 0.0000000001140098 +52.2500000000000000 0.0000000001138631 +52.2599999999999980 0.0000000001137164 +52.2700000000000031 0.0000000001135696 +52.2800000000000011 0.0000000001134229 +52.2899999999999991 0.0000000001132762 +52.3000000000000043 0.0000000001131294 +52.3100000000000023 0.0000000001129827 +52.3200000000000003 0.0000000001128360 +52.3299999999999983 0.0000000001126892 +52.3400000000000034 0.0000000001125425 +52.3500000000000014 0.0000000001123958 +52.3599999999999994 0.0000000001122490 +52.3700000000000045 0.0000000001121023 +52.3800000000000026 0.0000000001119556 +52.3900000000000006 0.0000000001118089 +52.3999999999999986 0.0000000001116621 +52.4100000000000037 0.0000000001115154 +52.4200000000000017 0.0000000001113687 +52.4299999999999997 0.0000000001112219 +52.4399999999999977 0.0000000001110752 +52.4500000000000028 0.0000000001109285 +52.4600000000000009 0.0000000001107817 +52.4699999999999989 0.0000000001106350 +52.4800000000000040 0.0000000001104883 +52.4900000000000020 0.0000000001103415 +52.5000000000000000 0.0000000001101948 +52.5099999999999980 0.0000000001100481 +52.5200000000000031 0.0000000001099013 +52.5300000000000011 0.0000000001097546 +52.5399999999999991 0.0000000001096079 +52.5500000000000043 0.0000000001094611 +52.5600000000000023 0.0000000001093144 +52.5700000000000003 0.0000000001091677 +52.5799999999999983 0.0000000001090209 +52.5900000000000034 0.0000000001088742 +52.6000000000000014 0.0000000001087275 +52.6099999999999994 0.0000000001085807 +52.6200000000000045 0.0000000001084340 +52.6300000000000026 0.0000000001082873 +52.6400000000000006 0.0000000001081405 +52.6499999999999986 0.0000000001079938 +52.6600000000000037 0.0000000001078471 +52.6700000000000017 0.0000000001077003 +52.6799999999999997 0.0000000001075536 +52.6899999999999977 0.0000000001074069 +52.7000000000000028 0.0000000001072601 +52.7100000000000009 0.0000000001071134 +52.7199999999999989 0.0000000001069667 +52.7300000000000040 0.0000000001068200 +52.7400000000000020 0.0000000001066732 +52.7500000000000000 0.0000000001065265 +52.7599999999999980 0.0000000001063798 +52.7700000000000031 0.0000000001062330 +52.7800000000000011 0.0000000001060863 +52.7899999999999991 0.0000000001059396 +52.8000000000000043 0.0000000001057928 +52.8100000000000023 0.0000000001056461 +52.8200000000000003 0.0000000001054994 +52.8299999999999983 0.0000000001053526 +52.8400000000000034 0.0000000001052059 +52.8500000000000014 0.0000000001050592 +52.8599999999999994 0.0000000001049124 +52.8700000000000045 0.0000000001047657 +52.8800000000000026 0.0000000001046190 +52.8900000000000006 0.0000000001044722 +52.8999999999999986 0.0000000001043255 +52.9100000000000037 0.0000000001041788 +52.9200000000000017 0.0000000001040320 +52.9299999999999997 0.0000000001038853 +52.9399999999999977 0.0000000001037386 +52.9500000000000028 0.0000000001035918 +52.9600000000000009 0.0000000001034451 +52.9699999999999989 0.0000000001032984 +52.9800000000000040 0.0000000001031516 +52.9900000000000020 0.0000000001030049 +53.0000000000000000 0.0000000001028582 +53.0099999999999980 0.0000000001027114 +53.0200000000000031 0.0000000001025647 +53.0300000000000011 0.0000000001024180 +53.0399999999999991 0.0000000001022712 +53.0500000000000043 0.0000000001021245 +53.0600000000000023 0.0000000001019778 +53.0700000000000003 0.0000000001018311 +53.0799999999999983 0.0000000001016843 +53.0900000000000034 0.0000000001015376 +53.1000000000000014 0.0000000001013909 +53.1099999999999994 0.0000000001012441 +53.1200000000000045 0.0000000001010974 +53.1300000000000026 0.0000000001009507 +53.1400000000000006 0.0000000001008039 +53.1499999999999986 0.0000000001006572 +53.1600000000000037 0.0000000001005105 +53.1700000000000017 0.0000000001003637 +53.1799999999999997 0.0000000001002170 +53.1899999999999977 0.0000000001000703 +53.2000000000000028 0.0000000000999235 +53.2100000000000009 0.0000000000997768 +53.2199999999999989 0.0000000000996301 +53.2300000000000040 0.0000000000994833 +53.2400000000000020 0.0000000000993366 +53.2500000000000000 0.0000000000991899 +53.2599999999999980 0.0000000000990431 +53.2700000000000031 0.0000000000988964 +53.2800000000000011 0.0000000000987497 +53.2899999999999991 0.0000000000986029 +53.3000000000000043 0.0000000000984562 +53.3100000000000023 0.0000000000983095 +53.3200000000000003 0.0000000000981627 +53.3299999999999983 0.0000000000980160 +53.3400000000000034 0.0000000000978693 +53.3500000000000014 0.0000000000977225 +53.3599999999999994 0.0000000000975758 +53.3700000000000045 0.0000000000974291 +53.3800000000000026 0.0000000000972823 +53.3900000000000006 0.0000000000971356 +53.3999999999999986 0.0000000000969889 +53.4100000000000037 0.0000000000968422 +53.4200000000000017 0.0000000000966954 +53.4299999999999997 0.0000000000965487 +53.4399999999999977 0.0000000000964020 +53.4500000000000028 0.0000000000962552 +53.4600000000000009 0.0000000000961085 +53.4699999999999989 0.0000000000959618 +53.4800000000000040 0.0000000000958150 +53.4900000000000020 0.0000000000956683 +53.5000000000000000 0.0000000000955216 +53.5099999999999980 0.0000000000953748 +53.5200000000000031 0.0000000000952281 +53.5300000000000011 0.0000000000950814 +53.5399999999999991 0.0000000000949346 +53.5500000000000043 0.0000000000947879 +53.5600000000000023 0.0000000000946412 +53.5700000000000003 0.0000000000944944 +53.5799999999999983 0.0000000000943477 +53.5900000000000034 0.0000000000942010 +53.6000000000000014 0.0000000000940542 +53.6099999999999994 0.0000000000939075 +53.6200000000000045 0.0000000000937608 +53.6300000000000026 0.0000000000936140 +53.6400000000000006 0.0000000000934673 +53.6499999999999986 0.0000000000933206 +53.6600000000000037 0.0000000000931738 +53.6700000000000017 0.0000000000930271 +53.6799999999999997 0.0000000000928804 +53.6899999999999977 0.0000000000927336 +53.7000000000000028 0.0000000000925869 +53.7100000000000009 0.0000000000924402 +53.7199999999999989 0.0000000000922934 +53.7300000000000040 0.0000000000921467 +53.7400000000000020 0.0000000000920000 +53.7500000000000000 0.0000000000918533 +53.7599999999999980 0.0000000000917065 +53.7700000000000031 0.0000000000915598 +53.7800000000000011 0.0000000000914131 +53.7899999999999991 0.0000000000912663 +53.8000000000000043 0.0000000000911196 +53.8100000000000023 0.0000000000909729 +53.8200000000000003 0.0000000000908261 +53.8299999999999983 0.0000000000906794 +53.8400000000000034 0.0000000000905327 +53.8500000000000014 0.0000000000903859 +53.8599999999999994 0.0000000000902392 +53.8700000000000045 0.0000000000900925 +53.8800000000000026 0.0000000000899457 +53.8900000000000006 0.0000000000897990 +53.8999999999999986 0.0000000000896523 +53.9100000000000037 0.0000000000895055 +53.9200000000000017 0.0000000000893588 +53.9299999999999997 0.0000000000892121 +53.9399999999999977 0.0000000000890653 +53.9500000000000028 0.0000000000889186 +53.9600000000000009 0.0000000000887719 +53.9699999999999989 0.0000000000886251 +53.9800000000000040 0.0000000000884784 +53.9900000000000020 0.0000000000883317 +54.0000000000000000 0.0000000000881849 +54.0099999999999980 0.0000000000880382 +54.0200000000000031 0.0000000000878915 +54.0300000000000011 0.0000000000877447 +54.0399999999999991 0.0000000000875980 +54.0500000000000043 0.0000000000874513 +54.0600000000000023 0.0000000000873045 +54.0700000000000003 0.0000000000871578 +54.0799999999999983 0.0000000000870111 +54.0900000000000034 0.0000000000868644 +54.1000000000000014 0.0000000000867176 +54.1099999999999994 0.0000000000865709 +54.1200000000000045 0.0000000000864242 +54.1300000000000026 0.0000000000862774 +54.1400000000000006 0.0000000000861307 +54.1499999999999986 0.0000000000859840 +54.1600000000000037 0.0000000000858372 +54.1700000000000017 0.0000000000856905 +54.1799999999999997 0.0000000000855438 +54.1899999999999977 0.0000000000853970 +54.2000000000000028 0.0000000000852503 +54.2100000000000009 0.0000000000851036 +54.2199999999999989 0.0000000000849568 +54.2300000000000040 0.0000000000848101 +54.2400000000000020 0.0000000000846634 +54.2500000000000000 0.0000000000845166 +54.2599999999999980 0.0000000000843699 +54.2700000000000031 0.0000000000842232 +54.2800000000000011 0.0000000000840764 +54.2899999999999991 0.0000000000839297 +54.3000000000000043 0.0000000000837830 +54.3100000000000023 0.0000000000836362 +54.3200000000000003 0.0000000000834895 +54.3299999999999983 0.0000000000833428 +54.3400000000000034 0.0000000000831960 +54.3500000000000014 0.0000000000830493 +54.3599999999999994 0.0000000000829026 +54.3700000000000045 0.0000000000827558 +54.3800000000000026 0.0000000000826091 +54.3900000000000006 0.0000000000824624 +54.3999999999999986 0.0000000000823156 +54.4100000000000037 0.0000000000821689 +54.4200000000000017 0.0000000000820222 +54.4299999999999997 0.0000000000818755 +54.4399999999999977 0.0000000000817287 +54.4500000000000028 0.0000000000815820 +54.4600000000000009 0.0000000000814353 +54.4699999999999989 0.0000000000812885 +54.4800000000000040 0.0000000000811418 +54.4900000000000020 0.0000000000809951 +54.5000000000000000 0.0000000000808483 +54.5099999999999980 0.0000000000807016 +54.5200000000000031 0.0000000000805549 +54.5300000000000011 0.0000000000804081 +54.5399999999999991 0.0000000000802614 +54.5500000000000043 0.0000000000801147 +54.5600000000000023 0.0000000000799679 +54.5700000000000003 0.0000000000798212 +54.5799999999999983 0.0000000000796745 +54.5900000000000034 0.0000000000795277 +54.6000000000000014 0.0000000000793810 +54.6099999999999994 0.0000000000792343 +54.6200000000000045 0.0000000000790875 +54.6300000000000026 0.0000000000789408 +54.6400000000000006 0.0000000000787941 +54.6499999999999986 0.0000000000786473 +54.6600000000000037 0.0000000000785006 +54.6700000000000017 0.0000000000783539 +54.6799999999999997 0.0000000000782071 +54.6899999999999977 0.0000000000780604 +54.7000000000000028 0.0000000000779137 +54.7100000000000009 0.0000000000777669 +54.7199999999999989 0.0000000000776202 +54.7300000000000040 0.0000000000774735 +54.7400000000000020 0.0000000000773267 +54.7500000000000000 0.0000000000771800 +54.7599999999999980 0.0000000000770333 +54.7700000000000031 0.0000000000768866 +54.7800000000000011 0.0000000000767398 +54.7899999999999991 0.0000000000765931 +54.8000000000000043 0.0000000000764464 +54.8100000000000023 0.0000000000762996 +54.8200000000000003 0.0000000000761529 +54.8299999999999983 0.0000000000760062 +54.8400000000000034 0.0000000000758594 +54.8500000000000014 0.0000000000757127 +54.8599999999999994 0.0000000000755660 +54.8700000000000045 0.0000000000754192 +54.8800000000000026 0.0000000000752725 +54.8900000000000006 0.0000000000751258 +54.8999999999999986 0.0000000000749790 +54.9100000000000037 0.0000000000748323 +54.9200000000000017 0.0000000000746856 +54.9299999999999997 0.0000000000745388 +54.9399999999999977 0.0000000000743921 +54.9500000000000028 0.0000000000742454 +54.9600000000000009 0.0000000000740986 +54.9699999999999989 0.0000000000739519 +54.9800000000000040 0.0000000000738052 +54.9900000000000020 0.0000000000736584 +55.0000000000000000 0.0000000000735117 +55.0099999999999980 0.0000000000733650 +55.0200000000000031 0.0000000000732182 +55.0300000000000011 0.0000000000730715 +55.0399999999999991 0.0000000000729248 +55.0500000000000043 0.0000000000727780 +55.0600000000000023 0.0000000000726313 +55.0700000000000003 0.0000000000724846 +55.0799999999999983 0.0000000000723378 +55.0900000000000034 0.0000000000721911 +55.1000000000000014 0.0000000000720444 +55.1099999999999994 0.0000000000718977 +55.1200000000000045 0.0000000000717509 +55.1300000000000026 0.0000000000716042 +55.1400000000000006 0.0000000000714575 +55.1499999999999986 0.0000000000713107 +55.1600000000000037 0.0000000000711640 +55.1700000000000017 0.0000000000710173 +55.1799999999999997 0.0000000000708705 +55.1899999999999977 0.0000000000707238 +55.2000000000000028 0.0000000000705771 +55.2100000000000009 0.0000000000704303 +55.2199999999999989 0.0000000000702836 +55.2300000000000040 0.0000000000701369 +55.2400000000000020 0.0000000000699901 +55.2500000000000000 0.0000000000698434 +55.2599999999999980 0.0000000000696967 +55.2700000000000031 0.0000000000695499 +55.2800000000000011 0.0000000000694032 +55.2899999999999991 0.0000000000692565 +55.3000000000000043 0.0000000000691097 +55.3100000000000023 0.0000000000689630 +55.3200000000000003 0.0000000000688163 +55.3299999999999983 0.0000000000686695 +55.3400000000000034 0.0000000000685228 +55.3500000000000014 0.0000000000683761 +55.3599999999999994 0.0000000000682293 +55.3700000000000045 0.0000000000680826 +55.3800000000000026 0.0000000000679359 +55.3900000000000006 0.0000000000677891 +55.3999999999999986 0.0000000000676424 +55.4100000000000037 0.0000000000674957 +55.4200000000000017 0.0000000000673489 +55.4299999999999997 0.0000000000672022 +55.4399999999999977 0.0000000000670555 +55.4500000000000028 0.0000000000669088 +55.4600000000000009 0.0000000000667620 +55.4699999999999989 0.0000000000666153 +55.4800000000000040 0.0000000000664686 +55.4900000000000020 0.0000000000663218 +55.5000000000000000 0.0000000000661751 +55.5099999999999980 0.0000000000660284 +55.5200000000000031 0.0000000000658816 +55.5300000000000011 0.0000000000657349 +55.5399999999999991 0.0000000000655882 +55.5500000000000043 0.0000000000654414 +55.5600000000000023 0.0000000000652947 +55.5700000000000003 0.0000000000651480 +55.5799999999999983 0.0000000000650012 +55.5900000000000034 0.0000000000648545 +55.6000000000000014 0.0000000000647078 +55.6099999999999994 0.0000000000645610 +55.6200000000000045 0.0000000000644143 +55.6300000000000026 0.0000000000642676 +55.6400000000000006 0.0000000000641208 +55.6499999999999986 0.0000000000639741 +55.6600000000000037 0.0000000000638274 +55.6700000000000017 0.0000000000636806 +55.6799999999999997 0.0000000000635339 +55.6899999999999977 0.0000000000633872 +55.7000000000000028 0.0000000000632404 +55.7100000000000009 0.0000000000630937 +55.7199999999999989 0.0000000000629470 +55.7300000000000040 0.0000000000628002 +55.7400000000000020 0.0000000000626535 +55.7500000000000000 0.0000000000625068 +55.7599999999999980 0.0000000000623600 +55.7700000000000031 0.0000000000622133 +55.7800000000000011 0.0000000000620666 +55.7899999999999991 0.0000000000619199 +55.8000000000000043 0.0000000000617731 +55.8100000000000023 0.0000000000616264 +55.8200000000000003 0.0000000000614797 +55.8299999999999983 0.0000000000613329 +55.8400000000000034 0.0000000000611862 +55.8500000000000014 0.0000000000610395 +55.8599999999999994 0.0000000000608927 +55.8700000000000045 0.0000000000607460 +55.8800000000000026 0.0000000000605993 +55.8900000000000006 0.0000000000604525 +55.8999999999999986 0.0000000000603058 +55.9100000000000037 0.0000000000601591 +55.9200000000000017 0.0000000000600123 +55.9299999999999997 0.0000000000598656 +55.9399999999999977 0.0000000000597189 +55.9500000000000028 0.0000000000595721 +55.9600000000000009 0.0000000000594254 +55.9699999999999989 0.0000000000592787 +55.9800000000000040 0.0000000000591319 +55.9900000000000020 0.0000000000589852 +56.0000000000000000 0.0000000000588385 +56.0099999999999980 0.0000000000586917 +56.0200000000000031 0.0000000000585450 +56.0300000000000011 0.0000000000583983 +56.0399999999999991 0.0000000000582515 +56.0500000000000043 0.0000000000581048 +56.0600000000000023 0.0000000000579581 +56.0700000000000003 0.0000000000578113 +56.0799999999999983 0.0000000000576646 +56.0900000000000034 0.0000000000575179 +56.1000000000000014 0.0000000000573711 +56.1099999999999994 0.0000000000572244 +56.1200000000000045 0.0000000000570777 +56.1300000000000026 0.0000000000569310 +56.1400000000000006 0.0000000000567842 +56.1499999999999986 0.0000000000566375 +56.1600000000000037 0.0000000000564908 +56.1700000000000017 0.0000000000563440 +56.1799999999999997 0.0000000000561973 +56.1899999999999977 0.0000000000560506 +56.2000000000000028 0.0000000000559038 +56.2100000000000009 0.0000000000557571 +56.2199999999999989 0.0000000000556104 +56.2300000000000040 0.0000000000554636 +56.2400000000000020 0.0000000000553169 +56.2500000000000000 0.0000000000551702 +56.2599999999999980 0.0000000000550234 +56.2700000000000031 0.0000000000548767 +56.2800000000000011 0.0000000000547300 +56.2899999999999991 0.0000000000545832 +56.3000000000000043 0.0000000000544365 +56.3100000000000023 0.0000000000542898 +56.3200000000000003 0.0000000000541430 +56.3299999999999983 0.0000000000539963 +56.3400000000000034 0.0000000000538496 +56.3500000000000014 0.0000000000537028 +56.3599999999999994 0.0000000000535561 +56.3700000000000045 0.0000000000534094 +56.3800000000000026 0.0000000000532626 +56.3900000000000006 0.0000000000531159 +56.3999999999999986 0.0000000000529692 +56.4100000000000037 0.0000000000528224 +56.4200000000000017 0.0000000000526757 +56.4299999999999997 0.0000000000525290 +56.4399999999999977 0.0000000000523822 +56.4500000000000028 0.0000000000522355 +56.4600000000000009 0.0000000000520888 +56.4699999999999989 0.0000000000519421 +56.4800000000000040 0.0000000000517953 +56.4900000000000020 0.0000000000516486 +56.5000000000000000 0.0000000000515019 +56.5099999999999980 0.0000000000513551 +56.5200000000000031 0.0000000000512084 +56.5300000000000011 0.0000000000510617 +56.5399999999999991 0.0000000000509149 +56.5500000000000043 0.0000000000507682 +56.5600000000000023 0.0000000000506215 +56.5700000000000003 0.0000000000504747 +56.5799999999999983 0.0000000000503280 +56.5900000000000034 0.0000000000501813 +56.6000000000000014 0.0000000000500345 +56.6099999999999994 0.0000000000498878 +56.6200000000000045 0.0000000000497411 +56.6300000000000026 0.0000000000495943 +56.6400000000000006 0.0000000000494476 +56.6499999999999986 0.0000000000493009 +56.6600000000000037 0.0000000000491541 +56.6700000000000017 0.0000000000490074 +56.6799999999999997 0.0000000000488607 +56.6899999999999977 0.0000000000487139 +56.7000000000000028 0.0000000000485672 +56.7100000000000009 0.0000000000484205 +56.7199999999999989 0.0000000000482737 +56.7300000000000040 0.0000000000481270 +56.7400000000000020 0.0000000000479803 +56.7500000000000000 0.0000000000478335 +56.7599999999999980 0.0000000000476868 +56.7700000000000031 0.0000000000475401 +56.7800000000000011 0.0000000000473933 +56.7899999999999991 0.0000000000472466 +56.8000000000000043 0.0000000000470999 +56.8100000000000023 0.0000000000469532 +56.8200000000000003 0.0000000000468064 +56.8299999999999983 0.0000000000466597 +56.8400000000000034 0.0000000000465130 +56.8500000000000014 0.0000000000463662 +56.8599999999999994 0.0000000000462195 +56.8700000000000045 0.0000000000460728 +56.8800000000000026 0.0000000000459260 +56.8900000000000006 0.0000000000457793 +56.8999999999999986 0.0000000000456326 +56.9100000000000037 0.0000000000454858 +56.9200000000000017 0.0000000000453391 +56.9299999999999997 0.0000000000451924 +56.9399999999999977 0.0000000000450456 +56.9500000000000028 0.0000000000448989 +56.9600000000000009 0.0000000000447522 +56.9699999999999989 0.0000000000446054 +56.9800000000000040 0.0000000000444587 +56.9900000000000020 0.0000000000443120 +57.0000000000000000 0.0000000000441652 +57.0099999999999980 0.0000000000440185 +57.0200000000000031 0.0000000000438718 +57.0300000000000011 0.0000000000437250 +57.0399999999999991 0.0000000000435783 +57.0500000000000043 0.0000000000434316 +57.0600000000000023 0.0000000000432848 +57.0700000000000003 0.0000000000431381 +57.0799999999999983 0.0000000000429914 +57.0900000000000034 0.0000000000428446 +57.1000000000000014 0.0000000000426979 +57.1099999999999994 0.0000000000425512 +57.1200000000000045 0.0000000000424044 +57.1300000000000026 0.0000000000422577 +57.1400000000000006 0.0000000000421110 +57.1499999999999986 0.0000000000419643 +57.1600000000000037 0.0000000000418175 +57.1700000000000017 0.0000000000416708 +57.1799999999999997 0.0000000000415241 +57.1899999999999977 0.0000000000413773 +57.2000000000000028 0.0000000000412306 +57.2100000000000009 0.0000000000410839 +57.2199999999999989 0.0000000000409371 +57.2300000000000040 0.0000000000407904 +57.2400000000000020 0.0000000000406437 +57.2500000000000000 0.0000000000404969 +57.2599999999999980 0.0000000000403502 +57.2700000000000031 0.0000000000402035 +57.2800000000000011 0.0000000000400567 +57.2899999999999991 0.0000000000399100 +57.3000000000000043 0.0000000000397633 +57.3100000000000023 0.0000000000396165 +57.3200000000000003 0.0000000000394698 +57.3299999999999983 0.0000000000393231 +57.3400000000000034 0.0000000000391763 +57.3500000000000014 0.0000000000390296 +57.3599999999999994 0.0000000000388829 +57.3700000000000045 0.0000000000387361 +57.3800000000000026 0.0000000000385894 +57.3900000000000006 0.0000000000384427 +57.3999999999999986 0.0000000000382959 +57.4100000000000037 0.0000000000381492 +57.4200000000000017 0.0000000000380025 +57.4299999999999997 0.0000000000378557 +57.4399999999999977 0.0000000000377090 +57.4500000000000028 0.0000000000375623 +57.4600000000000009 0.0000000000374155 +57.4699999999999989 0.0000000000372688 +57.4800000000000040 0.0000000000371221 +57.4900000000000020 0.0000000000369754 +57.5000000000000000 0.0000000000368286 +57.5099999999999980 0.0000000000366819 +57.5200000000000031 0.0000000000365352 +57.5300000000000011 0.0000000000363884 +57.5399999999999991 0.0000000000362417 +57.5500000000000043 0.0000000000360950 +57.5600000000000023 0.0000000000359482 +57.5700000000000003 0.0000000000358015 +57.5799999999999983 0.0000000000356548 +57.5900000000000034 0.0000000000355080 +57.6000000000000014 0.0000000000353613 +57.6099999999999994 0.0000000000352146 +57.6200000000000045 0.0000000000350678 +57.6300000000000026 0.0000000000349211 +57.6400000000000006 0.0000000000347744 +57.6499999999999986 0.0000000000346276 +57.6600000000000037 0.0000000000344809 +57.6700000000000017 0.0000000000343342 +57.6799999999999997 0.0000000000341874 +57.6899999999999977 0.0000000000340407 +57.7000000000000028 0.0000000000338940 +57.7100000000000009 0.0000000000337472 +57.7199999999999989 0.0000000000336005 +57.7300000000000040 0.0000000000334538 +57.7400000000000020 0.0000000000333070 +57.7500000000000000 0.0000000000331603 +57.7599999999999980 0.0000000000330136 +57.7700000000000031 0.0000000000328668 +57.7800000000000011 0.0000000000327201 +57.7899999999999991 0.0000000000325734 +57.8000000000000043 0.0000000000324266 +57.8100000000000023 0.0000000000322799 +57.8200000000000003 0.0000000000321332 +57.8299999999999983 0.0000000000319865 +57.8400000000000034 0.0000000000318397 +57.8500000000000014 0.0000000000316930 +57.8599999999999994 0.0000000000315463 +57.8700000000000045 0.0000000000313995 +57.8800000000000026 0.0000000000312528 +57.8900000000000006 0.0000000000311061 +57.8999999999999986 0.0000000000309593 +57.9100000000000037 0.0000000000308126 +57.9200000000000017 0.0000000000306659 +57.9299999999999997 0.0000000000305191 +57.9399999999999977 0.0000000000303724 +57.9500000000000028 0.0000000000302257 +57.9600000000000009 0.0000000000300789 +57.9699999999999989 0.0000000000299322 +57.9800000000000040 0.0000000000297855 +57.9900000000000020 0.0000000000296387 +58.0000000000000000 0.0000000000294920 +58.0099999999999980 0.0000000000293453 +58.0200000000000031 0.0000000000291985 +58.0300000000000011 0.0000000000290518 +58.0399999999999991 0.0000000000289051 +58.0500000000000043 0.0000000000287583 +58.0600000000000023 0.0000000000286116 +58.0700000000000003 0.0000000000284649 +58.0799999999999983 0.0000000000283181 +58.0900000000000034 0.0000000000281714 +58.1000000000000014 0.0000000000280247 +58.1099999999999994 0.0000000000278779 +58.1200000000000045 0.0000000000277312 +58.1300000000000026 0.0000000000275845 +58.1400000000000006 0.0000000000274377 +58.1499999999999986 0.0000000000272910 +58.1600000000000037 0.0000000000271443 +58.1700000000000017 0.0000000000269976 +58.1799999999999997 0.0000000000268508 +58.1899999999999977 0.0000000000267041 +58.2000000000000028 0.0000000000265574 +58.2100000000000009 0.0000000000264106 +58.2199999999999989 0.0000000000262639 +58.2300000000000040 0.0000000000261172 +58.2400000000000020 0.0000000000259704 +58.2500000000000000 0.0000000000258237 +58.2599999999999980 0.0000000000256770 +58.2700000000000031 0.0000000000255302 +58.2800000000000011 0.0000000000253835 +58.2899999999999991 0.0000000000252368 +58.3000000000000043 0.0000000000250900 +58.3100000000000023 0.0000000000249433 +58.3200000000000003 0.0000000000247966 +58.3299999999999983 0.0000000000246498 +58.3400000000000034 0.0000000000245031 +58.3500000000000014 0.0000000000243564 +58.3599999999999994 0.0000000000242096 +58.3700000000000045 0.0000000000240629 +58.3800000000000026 0.0000000000239162 +58.3900000000000006 0.0000000000237694 +58.3999999999999986 0.0000000000236227 +58.4100000000000037 0.0000000000234760 +58.4200000000000017 0.0000000000233292 +58.4299999999999997 0.0000000000231825 +58.4399999999999977 0.0000000000230358 +58.4500000000000028 0.0000000000228890 +58.4600000000000009 0.0000000000227423 +58.4699999999999989 0.0000000000225956 +58.4800000000000040 0.0000000000224488 +58.4900000000000020 0.0000000000223021 +58.5000000000000000 0.0000000000221554 +58.5099999999999980 0.0000000000220087 +58.5200000000000031 0.0000000000218619 +58.5300000000000011 0.0000000000217152 +58.5399999999999991 0.0000000000215685 +58.5500000000000043 0.0000000000214217 +58.5600000000000023 0.0000000000212750 +58.5700000000000003 0.0000000000211283 +58.5799999999999983 0.0000000000209815 +58.5900000000000034 0.0000000000208348 +58.6000000000000014 0.0000000000206881 +58.6099999999999994 0.0000000000205413 +58.6200000000000045 0.0000000000203946 +58.6300000000000026 0.0000000000202479 +58.6400000000000006 0.0000000000201011 +58.6499999999999986 0.0000000000199544 +58.6600000000000037 0.0000000000198077 +58.6700000000000017 0.0000000000196609 +58.6799999999999997 0.0000000000195142 +58.6899999999999977 0.0000000000193675 +58.7000000000000028 0.0000000000192207 +58.7100000000000009 0.0000000000190740 +58.7199999999999989 0.0000000000189273 +58.7300000000000040 0.0000000000187805 +58.7400000000000020 0.0000000000186338 +58.7500000000000000 0.0000000000184871 +58.7599999999999980 0.0000000000183403 +58.7700000000000031 0.0000000000181936 +58.7800000000000011 0.0000000000180469 +58.7899999999999991 0.0000000000179001 +58.8000000000000043 0.0000000000177534 +58.8100000000000023 0.0000000000176067 +58.8200000000000003 0.0000000000174599 +58.8299999999999983 0.0000000000173132 +58.8400000000000034 0.0000000000171665 +58.8500000000000014 0.0000000000170198 +58.8599999999999994 0.0000000000168730 +58.8700000000000045 0.0000000000167263 +58.8800000000000026 0.0000000000165796 +58.8900000000000006 0.0000000000164328 +58.8999999999999986 0.0000000000162861 +58.9100000000000037 0.0000000000161394 +58.9200000000000017 0.0000000000159926 +58.9299999999999997 0.0000000000158459 +58.9399999999999977 0.0000000000156992 +58.9500000000000028 0.0000000000155524 +58.9600000000000009 0.0000000000154057 +58.9699999999999989 0.0000000000152590 +58.9800000000000040 0.0000000000151122 +58.9900000000000020 0.0000000000149655 +59.0000000000000000 0.0000000000148188 +59.0099999999999980 0.0000000000146720 +59.0200000000000031 0.0000000000145253 +59.0300000000000011 0.0000000000143786 +59.0399999999999991 0.0000000000142318 +59.0500000000000043 0.0000000000140851 +59.0600000000000023 0.0000000000139384 +59.0700000000000003 0.0000000000137916 +59.0799999999999983 0.0000000000136449 +59.0900000000000034 0.0000000000134982 +59.1000000000000014 0.0000000000133514 +59.1099999999999994 0.0000000000132047 +59.1200000000000045 0.0000000000130580 +59.1300000000000026 0.0000000000129112 +59.1400000000000006 0.0000000000127645 +59.1499999999999986 0.0000000000126178 +59.1600000000000037 0.0000000000124710 +59.1700000000000017 0.0000000000123243 +59.1799999999999997 0.0000000000121776 +59.1899999999999977 0.0000000000120309 +59.2000000000000028 0.0000000000118841 +59.2100000000000009 0.0000000000117374 +59.2199999999999989 0.0000000000115907 +59.2300000000000040 0.0000000000114439 +59.2400000000000020 0.0000000000112972 +59.2500000000000000 0.0000000000111505 +59.2599999999999980 0.0000000000110037 +59.2700000000000031 0.0000000000108570 +59.2800000000000011 0.0000000000107103 +59.2899999999999991 0.0000000000105635 +59.3000000000000043 0.0000000000104168 +59.3100000000000023 0.0000000000102701 +59.3200000000000003 0.0000000000101233 +59.3299999999999983 0.0000000000099766 +59.3400000000000034 0.0000000000098299 +59.3500000000000014 0.0000000000096831 +59.3599999999999994 0.0000000000095364 +59.3700000000000045 0.0000000000093897 +59.3800000000000026 0.0000000000092429 +59.3900000000000006 0.0000000000090962 +59.3999999999999986 0.0000000000089495 +59.4100000000000037 0.0000000000088027 +59.4200000000000017 0.0000000000086560 +59.4299999999999997 0.0000000000085093 +59.4399999999999977 0.0000000000083625 +59.4500000000000028 0.0000000000082158 +59.4600000000000009 0.0000000000080691 +59.4699999999999989 0.0000000000079223 +59.4800000000000040 0.0000000000077756 +59.4900000000000020 0.0000000000076289 +59.5000000000000000 0.0000000000074822 +59.5099999999999980 0.0000000000073354 +59.5200000000000031 0.0000000000071887 +59.5300000000000011 0.0000000000070420 +59.5399999999999991 0.0000000000068952 +59.5500000000000043 0.0000000000067485 +59.5600000000000023 0.0000000000066018 +59.5700000000000003 0.0000000000064550 +59.5799999999999983 0.0000000000063083 +59.5900000000000034 0.0000000000061616 +59.6000000000000014 0.0000000000060148 +59.6099999999999994 0.0000000000058681 +59.6200000000000045 0.0000000000057214 +59.6300000000000026 0.0000000000055746 +59.6400000000000006 0.0000000000054279 +59.6499999999999986 0.0000000000052812 +59.6600000000000037 0.0000000000051344 +59.6700000000000017 0.0000000000049877 +59.6799999999999997 0.0000000000048410 +59.6899999999999977 0.0000000000046942 +59.7000000000000028 0.0000000000045475 +59.7100000000000009 0.0000000000044008 +59.7199999999999989 0.0000000000042540 +59.7300000000000040 0.0000000000041073 +59.7400000000000020 0.0000000000039606 +59.7500000000000000 0.0000000000038138 +59.7599999999999980 0.0000000000036671 +59.7700000000000031 0.0000000000035204 +59.7800000000000011 0.0000000000033736 +59.7899999999999991 0.0000000000032269 +59.8000000000000043 0.0000000000030802 +59.8100000000000023 0.0000000000029334 +59.8200000000000003 0.0000000000027867 +59.8299999999999983 0.0000000000026400 +59.8400000000000034 0.0000000000024933 +59.8500000000000014 0.0000000000023465 +59.8599999999999994 0.0000000000021998 +59.8700000000000045 0.0000000000020531 +59.8800000000000026 0.0000000000019063 +59.8900000000000006 0.0000000000017596 +59.8999999999999986 0.0000000000016129 +59.9100000000000037 0.0000000000014661 +59.9200000000000017 0.0000000000013194 +59.9299999999999997 0.0000000000011727 +59.9399999999999977 0.0000000000010259 +59.9500000000000028 0.0000000000008792 +59.9600000000000009 0.0000000000007325 +59.9699999999999989 0.0000000000005857 +59.9800000000000040 0.0000000000004390 +59.9900000000000020 0.0000000000002923 +60.0000000000000000 0.0000000000001455 diff --git a/src/engine/tests/system/gt_data/VIRplanoS/rnd.c b/src/engine/tests/system/gt_data/VIRplanoS/rnd.c new file mode 100644 index 00000000..36d3e072 --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/rnd.c @@ -0,0 +1,10 @@ +#include +#include +#include +double rnd(double y) +{ +// srand(time(0)); + double r; + r= 1.0*y*rand()/RAND_MAX; + return r; +} diff --git a/src/engine/tests/system/gt_data/VIRplanoS/srnd.c b/src/engine/tests/system/gt_data/VIRplanoS/srnd.c new file mode 100644 index 00000000..591af940 --- /dev/null +++ b/src/engine/tests/system/gt_data/VIRplanoS/srnd.c @@ -0,0 +1,9 @@ +#include +#include +#include +double srnd() +{ + srand(time(0)); + double r=0; + return r; +} diff --git a/src/engine/tests/system/gt_data/advectionFlux/advectionFlux.mo b/src/engine/tests/system/gt_data/advectionFlux/advectionFlux.mo new file mode 100644 index 00000000..1abc4079 --- /dev/null +++ b/src/engine/tests/system/gt_data/advectionFlux/advectionFlux.mo @@ -0,0 +1,38 @@ +model advectionFlux + constant Integer N = 100, M = 101; + parameter Real L = 1.0, v = 1.0, beta = 100.0, x0 = 0.5, diff = 0.0000, gam = 0.0, x[N], inVal = 0, outVal = 1; + Real u[N], F[M]; +initial algorithm + for i in 1:N / 2 loop + x[i] := 1.0 * i / N; + u[i] := 1; + end for; + // u[i]:=2.718^(-beta*(x[i]-x0)^2)*cos(gam*(x[i]-x0)); //Condici�n inicial: Gaussiana con m�ximo=1 +equation + //Upwind advection + F[1] = v * inVal; + for j in 2:M loop + F[j] = v * u[j - 1]; + end for; + der(u[1]) = -(F[2] - F[1]) * N / L; + for j in 2:N loop + der(u[j]) = -(F[j + 1] - F[j]) * N / L; + // der(u[j]) = -((v*u[j])-(v*u[j-1]))*N/L; +end for; + annotation( + + experiment( + MMO_Description=" Advection Equation.", + MMO_Solver=LIQSS2, + MMO_SymDiff=false, + MMO_PartitionMethod=Metis, + MMO_Output={u[N]}, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + StartTime= 0.0, + StopTime= 1, + Tolerance={1e-5}, + AbsTolerance={1e-5} + )); +end advectionFlux; diff --git a/src/engine/tests/system/gt_data/advectionFlux/u[100].dat b/src/engine/tests/system/gt_data/advectionFlux/u[100].dat new file mode 100644 index 00000000..be2a34ad --- /dev/null +++ b/src/engine/tests/system/gt_data/advectionFlux/u[100].dat @@ -0,0 +1,321 @@ +0.0000000000000000 0.0000000000000000 +0.2632965840790590 0.0000100000000000 +0.2677927057282932 0.0000168566095726 +0.2781598221667734 0.0000838049805518 +0.2849029315592816 0.0001548693476754 +0.2921972608788569 0.0002800365411585 +0.2976747401494408 0.0004261032208380 +0.3024097060653598 0.0006016545959401 +0.3066206473491688 0.0008062911330261 +0.3117570861740466 0.0011395104629160 +0.3159661456816065 0.0014936673144287 +0.3193063837895910 0.0018414050134433 +0.3226056843178219 0.0022506889431888 +0.3257090941593760 0.0027039242646022 +0.3291775110742931 0.0033037972805307 +0.3323247671070824 0.0039422383926111 +0.3351351197106037 0.0045988500514194 +0.3375830766803771 0.0052458474821124 +0.3404031084775398 0.0060842572940693 +0.3430203534601204 0.0069609381484377 +0.3453954732136150 0.0078465781522177 +0.3479000348790934 0.0088807882606982 +0.3502877328554767 0.0099703554099179 +0.3525364608011556 0.0110957805150084 +0.3546173695084799 0.0122291894237520 +0.3568183538378046 0.0135298900543729 +0.3589342251206581 0.0148853653329984 +0.3609799065574245 0.0162993864668662 +0.3628414076839794 0.0176790100918528 +0.3648316869762081 0.0192568549718598 +0.3667662238869521 0.0208977819581646 +0.3685964274067516 0.0225511461256472 +0.3703841981548224 0.0242649422518127 +0.3718436368003883 0.0257393523899336 +0.3735068570706586 0.0275059701528121 +0.3751342165765928 0.0293251662382431 +0.3767370268779361 0.0312076621736709 +0.3783105231597748 0.0331459626500567 +0.3796707346095536 0.0348952652821668 +0.3812241760869926 0.0369805413510670 +0.3828900428226514 0.0393212126246262 +0.3845267051983751 0.0417296057322246 +0.3861311303001677 0.0441979043738697 +0.3877006147737396 0.0467177592039570 +0.3892345547253732 0.0492834731346782 +0.3907340952395770 0.0518920973960606 +0.3922016123061199 0.0545430789231390 +0.3936401872055820 0.0572376833023168 +0.3950514514215530 0.0599749454125690 +0.3962689313760486 0.0624118424912815 +0.3976845509359070 0.0653354812039568 +0.3988836209023062 0.0678878397654546 +0.4002932135628921 0.0709796262499327 +0.4016722733176382 0.0741001695031182 +0.4028519298417921 0.0768454868455992 +0.4042408957062047 0.0801695370226717 +0.4056048954494836 0.0835303777646504 +0.4069554022007449 0.0869532114153762 +0.4081138054967591 0.0899651188387154 +0.4094880361455070 0.0936306453320608 +0.4108448288954799 0.0973479315626936 +0.4121950488317804 0.1011449508612184 +0.4135414608888726 0.1050288587930466 +0.4148865013641698 0.1090065458567728 +0.4162322658238999 0.1130844860493879 +0.4175805305598463 0.1172686841924593 +0.4189329641801613 0.1215652342274630 +0.4202901393731783 0.1259770571713694 +0.4216530757438788 0.1305086518838103 +0.4230219962700379 0.1351620119145985 +0.4243974754949447 0.1399403407299579 +0.4257803108277736 0.1448477165334618 +0.4271714222880078 0.1498888048111130 +0.4285717527739131 0.1550685276437663 +0.4299821747298292 0.1603917122903624 +0.4314032597033737 0.1658621626484670 +0.4328356747222187 0.1714841078163457 +0.4342800031018262 0.1772615058545092 +0.4357367770751818 0.1831981367723425 +0.4372057842371970 0.1892946968628630 +0.4386879478699713 0.1955564203345486 +0.4401837418215110 0.2019867352695934 +0.4416938019371564 0.2085897374896669 +0.4432101545908501 0.2153312929465064 +0.4447391451215229 0.2222386791906584 +0.4462875997647893 0.2293444661271223 +0.4478584095462256 0.2366638239132762 +0.4491318045369661 0.2426770551052445 +0.4506144263237527 0.2497677625225139 +0.4521642309681945 0.2572780084775008 +0.4537739216651220 0.2651820682954935 +0.4554301746033844 0.2734216426799587 +0.4570956856259763 0.2818120760553051 +0.4588219041154332 0.2906150724303669 +0.4606102791960620 0.2998445763669915 +0.4620739058708720 0.3074768258080336 +0.4638066832955315 0.3166014639844548 +0.4656816630737694 0.3265748601834688 +0.4676616022055904 0.3372132963421896 +0.4697462877488938 0.3485226003200791 +0.4719324473615533 0.3604929227535859 +0.4737337924318210 0.3704320970762193 +0.4761606633917188 0.3839186983114687 +0.4782113675928449 0.3953899764909629 +0.4805326586714191 0.4084429001384159 +0.4835214004636374 0.4253391164580076 +0.4880967226544465 0.4513231640157270 +0.4924604933269580 0.4761554046607449 +0.4966846645859952 0.5001320656972917 +0.5000135251803192 0.5189341190055778 +0.5027846473431559 0.5344926664196847 +0.5051635007267964 0.5477627652069756 +0.5072813383910676 0.5594978854691760 +0.5096104289617910 0.5723056427851155 +0.5117908557098422 0.5841926936201353 +0.5138199672600279 0.5951564881885637 +0.5157063505844944 0.6052573795173123 +0.5176989895685962 0.6158240407386788 +0.5196286575105080 0.6259495715062305 +0.5214582034155728 0.6354482266614687 +0.5231949341801322 0.6443684879257104 +0.5250152884424569 0.6536134164032354 +0.5267967554632678 0.6625523576399365 +0.5285149754892500 0.6710697125995237 +0.5302019656213101 0.6793291983373286 +0.5317848542193734 0.6869838863741551 +0.5334726019454106 0.6950406737268577 +0.5351462759974963 0.7029220883889826 +0.5367929050477949 0.7105683033121563 +0.5384104044653674 0.7179731533861295 +0.5399980757132290 0.7251374710786169 +0.5415571263019899 0.7320708884638474 +0.5430904321604157 0.7387901584221410 +0.5446020166006468 0.7453163637729109 +0.5460964386091105 0.7516719519859167 +0.5475782581743798 0.7578783286395380 +0.5490516666903743 0.7639543325299598 +0.5505203640347650 0.7699158492315654 +0.5519872882042045 0.7757748813318393 +0.5534547153532111 0.7815401745062790 +0.5549244153700214 0.7872180210234005 +0.5563978060724791 0.7928130007710485 +0.5578760212530212 0.7983283437450719 +0.5593599816709107 0.8037662785871326 +0.5608504538134134 0.8091283109510865 +0.5623480911331729 0.8144154183294600 +0.5638534646976312 0.8196281928579650 +0.5653670775313742 0.8247669176156578 +0.5668893751024995 0.8298316248462725 +0.5684207457771292 0.8348221180043303 +0.5699615253719733 0.8397380068671721 +0.5715119406665008 0.8445785501463375 +0.5730721282334833 0.8493427566726648 +0.5746423002784571 0.8540299034499667 +0.5762225621636238 0.8586389911738113 +0.5778130885324700 0.8631692722378504 +0.5794141056039122 0.8676201809453060 +0.5810258565508800 0.8719912259167995 +0.5826485669061980 0.8762818965575165 +0.5842739955063305 0.8804698168968156 +0.5858903038801527 0.8845271988249179 +0.5875156675786247 0.8885004109344489 +0.5891539380240578 0.8923981183224948 +0.5908078176177297 0.8962254354524126 +0.5924792894113906 0.8999852770462944 +0.5941636191393409 0.9036656743587618 +0.5958641096706045 0.9072727614102887 +0.5975808641484660 0.9108054575804134 +0.5993151699833713 0.9142650871655016 +0.6010685634617416 0.9176532604527632 +0.6028420546862874 0.9209703690486777 +0.6046363241959177 0.9242160993704290 +0.6060820741700573 0.9267527987028603 +0.6077382135523668 0.9295720958085458 +0.6094654013377492 0.9324181001994486 +0.6112540363625868 0.9352656940530850 +0.6130917318944692 0.9380880094761888 +0.6148835916678391 0.9407412866936661 +0.6167388628305372 0.9433885858268795 +0.6185606968505282 0.9458917706212399 +0.6204388489926759 0.9483749303723372 +0.6223738746959027 0.9508327497974195 +0.6243614728635929 0.9532541210554937 +0.6264001605432389 0.9556323097740094 +0.6284891061751684 0.9579618811126243 +0.6306264215534898 0.9602367555235479 +0.6328095741497294 0.9624508864240371 +0.6350180947999167 0.9645815966309570 +0.6372591082068648 0.9666369947392445 +0.6395533702134668 0.9686332786931747 +0.6419050351683316 0.9705708175191275 +0.6443053074928334 0.9724398038034966 +0.6462314877661037 0.9738640012463112 +0.6484494836172178 0.9754214504576827 +0.6508239873794044 0.9769980365934886 +0.6533302407998103 0.9785641238269267 +0.6559522444450351 0.9800998274416052 +0.6586808723113159 0.9815920644016444 +0.6614805279129550 0.9830161702357730 +0.6642993707916754 0.9843481202693827 +0.6672295146908505 0.9856295095706419 +0.6702858150799121 0.9868609605258748 +0.6727549127895047 0.9877829183486951 +0.6754891688731792 0.9887286795188470 +0.6785067551653901 0.9896902496136333 +0.6817555663836539 0.9906340578736318 +0.6852172065646924 0.9915420649881240 +0.6888774407635161 0.9924001880233089 +0.6927200455575787 0.9931964386860312 +0.6966740565183548 0.9939111613996053 +0.7006336135626896 0.9945304854373703 +0.7047719940855206 0.9950804861593592 +0.7090956910931193 0.9955564073095760 +0.7135844815597495 0.9959504464443086 +0.7182047762594963 0.9962553341490586 +0.7229143715026376 0.9964655384967226 +0.7276621530465464 0.9965777321743088 +0.7323836792131045 0.9965914247041708 +0.7369476580929172 0.9965110833352953 +0.7413835132257381 0.9963432683610328 +0.7456681919487862 0.9960948449764783 +0.7497772416773848 0.9957736312061557 +0.7536884333102848 0.9953886412466446 +0.7573858293905021 0.9949497072436648 +0.7608078458763944 0.9944745493198550 +0.7648634263346600 0.9938196456767451 +0.7686899236769580 0.9931052413316469 +0.7721644182346861 0.9923691018568522 +0.7756188572684255 0.9915514104754611 +0.7783924485552853 0.9908277415835541 +0.7813680806579065 0.9899797324700003 +0.7843777687186085 0.9890452328850406 +0.7873729887346674 0.9880336824169702 +0.7903166539630707 0.9869558606138481 +0.7931888274342347 0.9858200006996761 +0.7959760713890348 0.9846341560200629 +0.7986683104337379 0.9834067824629180 +0.8012300321636719 0.9821604975179224 +0.8035076590790163 0.9809858913988815 +0.8060355229327356 0.9796043161641503 +0.8084755642638248 0.9781917208409849 +0.8108729085741186 0.9767250712432946 +0.8132347450936697 0.9752010587060612 +0.8155608650014898 0.9736206771999948 +0.8178472176584800 0.9719881628340109 +0.8198874830656835 0.9704632729102681 +0.8221775181432227 0.9686714198137397 +0.8241657789115988 0.9670463764806052 +0.8263648066838734 0.9651694284370758 +0.8288285748278901 0.9629676924181401 +0.8312389341905914 0.9607083578995477 +0.8335912114982770 0.9584002723437280 +0.8358799011184380 0.9560541844043016 +0.8381104662216701 0.9536701018705457 +0.8402829152462034 0.9512533667152471 +0.8423771219158774 0.9488328073316172 +0.8441700541788653 0.9466893970204801 +0.8461907930860684 0.9441908830852490 +0.8482193366168174 0.9415952069601261 +0.8502618362817776 0.9388912727233822 +0.8523061695939129 0.9360924546669402 +0.8543393350457927 0.9332155424988310 +0.8563694651787345 0.9302487636190186 +0.8583680276855762 0.9272347012439801 +0.8603369367837064 0.9241734756285113 +0.8622782181250904 0.9210647812582655 +0.8641943887336799 0.9179072093576869 +0.8660885296353756 0.9146980051736540 +0.8679633285785650 0.9114347858851904 +0.8696103962853095 0.9084963363362973 +0.8715292993098686 0.9049864132259220 +0.8734121197393306 0.9014525066763512 +0.8752812888707071 0.8978551640337971 +0.8771423563105408 0.8941847095539489 +0.8790000105949519 0.8904322359748617 +0.8808580841927712 0.8865897924850552 +0.8827196524571783 0.8826503712356557 +0.8845871649015830 0.8786077967940730 +0.8864625783216399 0.8744565760189448 +0.8883474662645313 0.8701917657233731 +0.8902431141515863 0.8658088440855011 +0.8921505879766023 0.8613036189663354 +0.8940708901815654 0.8566719080432317 +0.8960045928169735 0.8519104648046963 +0.8979521117110864 0.8470163965347799 +0.8999138781225021 0.8419867667452084 +0.9018904120927019 0.8368184052803473 +0.9038823503906664 0.8315078186073241 +0.9058903714517579 0.8260513729228938 +0.9079151843344202 0.8204453220513389 +0.9099575166065133 0.8146858428266553 +0.9120180890331180 0.8087691133874820 +0.9140974020017072 0.8026919491301011 +0.9161961378202502 0.7964506795695128 +0.9183149254133626 0.7900418149592807 +0.9204421481234730 0.7834994695972677 +0.9225404048513874 0.7769428748379096 +0.9246537905802457 0.7702363428021758 +0.9267936564343411 0.7633428858713750 +0.9289683333165822 0.7562334579955862 +0.9311833163163542 0.7488871256401791 +0.9334412755800421 0.7412917487668476 +0.9357437773948268 0.7334388198589840 +0.9380747384915639 0.7253808088175563 +0.9404003235203671 0.7172377201084874 +0.9427863107314723 0.7087786561694996 +0.9452113990401763 0.7000766226320772 +0.9477068341197059 0.6910171188556775 +0.9502888241691052 0.6815366629771136 +0.9523824202719264 0.6737744721235597 +0.9547394558754208 0.6649561479550313 +0.9573712192207693 0.6550204293898199 +0.9602066287124043 0.6442160468345055 +0.9630547212532966 0.6332673824250791 +0.9661776486742158 0.6211618056706536 +0.9695549177474531 0.6079644153124572 +0.9723750219802775 0.5968739970898302 +0.9758154903481735 0.5832651925625584 +0.9791857572966025 0.5698707698804315 +0.9841072280438171 0.5502242983837263 +0.9964659715894029 0.5007281166435095 diff --git a/src/test-suite/burgers/burgers.mo b/src/engine/tests/system/gt_data/burgers/burgers.mo similarity index 73% rename from src/test-suite/burgers/burgers.mo rename to src/engine/tests/system/gt_data/burgers/burgers.mo index 330dbf75..7f4a8cc0 100644 --- a/src/test-suite/burgers/burgers.mo +++ b/src/engine/tests/system/gt_data/burgers/burgers.mo @@ -1,4 +1,4 @@ -model myBurgers +model burgers constant Integer N = 1000; parameter Real beta=100,x0=0.5,pi=3.14159,x[N],inVal=1,outVal=1; discrete Real ap[N](start=0); @@ -6,8 +6,8 @@ model myBurgers initial algorithm for i in 1:N loop x[i]:=1.0*i/N; - // u[i]:=sin(pi*2*x[i])+2; //Condición inicial que mantiene u>0 en todo el dominio - u[i]:=sin(pi*2*x[i]); //Condición inicial con u<0 //Sin la suma convexa, el esquema falla. + // u[i]:=sin(pi*2*x[i])+2; //Condici�n inicial que mantiene u>0 en todo el dominio + u[i]:=sin(pi*2*x[i]); //Condici�n inicial con u<0 //Sin la suma convexa, el esquema falla. if u[i] > 0 then ap[i]:=1; else @@ -16,12 +16,12 @@ model myBurgers end for; equation -//Eq. Burgers invíscida: u_t+(1/2)*(u^2)_x=0 -//Término viscoso: eps*uxx (término fuente a la derecha) +//Eq. Burgers inv�scida: u_t+(1/2)*(u^2)_x=0 +//T�rmino viscoso: eps*uxx (t�rmino fuente a la derecha) //Forma cuasi-lineal: u_t+u*u_x=0 (lamb=u) -//La velocidad de propagación es igual a la variable. +//La velocidad de propagaci�n es igual a la variable. //Upwind: -// der(u[1])=(u[1]+u[N])/2*(-u[1]+u[N])*N; //Condición periódica para u>0 +// der(u[1])=(u[1]+u[N])/2*(-u[1]+u[N])*N; //Condici�n peri�dica para u>0 der(u[1])=ap[1]*(u[1]+u[N])/2*(-u[1]+u[N])*N+(1-ap[1])*(u[2]+u[1])/2*(-u[2]+u[1])*N; //No puedo hacer andar esta suma convexa. for j in 2:N-1 loop // der(u[j])=(u[j]+u[j-1])/2*(-u[j]+u[j-1])*N; @@ -36,7 +36,7 @@ algorithm end when; end for; -//Lax-Wendroff: esquema 2 orden: Problema para implementarlo: necesito afectar el avance temporal con elementos de la discretización espacial +//Lax-Wendroff: esquema 2 orden: Problema para implementarlo: necesito afectar el avance temporal con elementos de la discretizaci�n espacial annotation( experiment( @@ -47,9 +47,11 @@ algorithm MMO_Output={u[1:N/5:N]}, MMO_OutputType=CI_Sampled, Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, StartTime=0.0, StopTime=1.0, Tolerance={1e-5}, AbsTolerance={1e-5} )); -end myBurgers; +end burgers; diff --git a/src/engine/tests/system/gt_data/burgers/u[1].dat b/src/engine/tests/system/gt_data/burgers/u[1].dat new file mode 100644 index 00000000..7ff7d108 --- /dev/null +++ b/src/engine/tests/system/gt_data/burgers/u[1].dat @@ -0,0 +1,101 @@ +0.0000000000000000 0.0062831386584841 +0.0100000000000000 0.0060912342888359 +0.0200000000000000 0.0059104569434092 +0.0300000000000000 0.0057296795979824 +0.0400000000000000 0.0055945719220630 +0.0500000000000000 0.0054501901064166 +0.0600000000000000 0.0053058082907702 +0.0700000000000000 0.0052072174891767 +0.0800000000000000 0.0050972616743511 +0.0900000000000000 0.0049873058595256 +0.1000000000000000 0.0049157689199956 +0.1100000000000000 0.0048375439739138 +0.1200000000000000 0.0047593190278319 +0.1300000000000000 0.0046968326685978 +0.1400000000000000 0.0046464362234957 +0.1500000000000000 0.0045960397783935 +0.1600000000000000 0.0045456433332914 +0.1700000000000000 0.0044952468881892 +0.1800000000000000 0.0044692550823290 +0.1900000000000000 0.0044418034768063 +0.2000000000000000 0.0044143518712836 +0.2100000000000000 0.0043869002657609 +0.2200000000000000 0.0043594486602383 +0.2300000000000000 0.0043319970547156 +0.2400000000000000 0.0043214950841817 +0.2500000000000000 0.0043105028313800 +0.2600000000000000 0.0042995105785783 +0.2700000000000000 0.0042885183257766 +0.2800000000000000 0.0042775260729749 +0.2900000000000000 0.0042665338201732 +0.3000000000000000 0.0042555415673715 +0.3100000000000000 0.0042445493145698 +0.3200000000000000 0.0042335570617681 +0.3300000000000000 0.0042225648089664 +0.3400000000000000 0.0042267681299602 +0.3500000000000000 0.0042241231059971 +0.3600000000000000 0.0042214780820340 +0.3700000000000000 0.0042188330580709 +0.3800000000000000 0.0042161880341077 +0.3900000000000000 0.0042135430101446 +0.4000000000000000 0.0042108979861815 +0.4100000000000000 0.0042082529622183 +0.4200000000000000 0.0042056079382552 +0.4300000000000000 0.0042029629142921 +0.4400000000000000 0.0042003178903290 +0.4500000000000000 0.0041976728663658 +0.4600000000000000 0.0041950278424027 +0.4700000000000000 0.0041923828184396 +0.4800000000000000 0.0041897377944764 +0.4900000000000000 0.0041870927705133 +0.5000000000000000 0.0041844477465502 +0.5100000000000000 0.0041818027225871 +0.5200000000000000 0.0041791576986239 +0.5300000000000000 0.0041950057539117 +0.5400000000000000 0.0041952234509681 +0.5500000000000000 0.0041954411480245 +0.5600000000000001 0.0041956588450809 +0.5700000000000001 0.0041958765421373 +0.5800000000000000 0.0041960942391937 +0.5900000000000000 0.0041963119362501 +0.6000000000000000 0.0041965296333065 +0.6100000000000000 0.0041967473303629 +0.6200000000000000 0.0041969650274193 +0.6300000000000000 0.0041971827244757 +0.6400000000000000 0.0041974004215321 +0.6500000000000000 0.0041976181185885 +0.6600000000000000 0.0041978358156449 +0.6700000000000000 0.0041980535127013 +0.6800000000000000 0.0041982712097577 +0.6900000000000001 0.0041984889068141 +0.7000000000000001 0.0041987066038705 +0.7100000000000000 0.0041989243009268 +0.7200000000000000 0.0041991419979832 +0.7300000000000000 0.0041993596950396 +0.7400000000000000 0.0041995773920960 +0.7500000000000000 0.0041997950891524 +0.7600000000000000 0.0042000127862088 +0.7700000000000000 0.0042002304832652 +0.7800000000000000 0.0042004481803216 +0.7900000000000000 0.0042006658773780 +0.8000000000000000 0.0042008835744344 +0.8100000000000001 0.0042011012714908 +0.8200000000000001 0.0042013189685472 +0.8300000000000001 0.0042015366656036 +0.8400000000000000 0.0042017543626600 +0.8500000000000000 0.0042019720597164 +0.8600000000000000 0.0042021897567728 +0.8700000000000000 0.0042024074538292 +0.8800000000000000 0.0042026251508856 +0.8900000000000000 0.0042028428479420 +0.9000000000000000 0.0042030605449984 +0.9100000000000000 0.0042032782420548 +0.9200000000000000 0.0042034959391112 +0.9300000000000000 0.0042037136361676 +0.9400000000000001 0.0042039313332240 +0.9500000000000001 0.0042041490302804 +0.9600000000000000 0.0042043667273368 +0.9700000000000000 0.0042045844243932 +0.9800000000000000 0.0042048021214496 +0.9900000000000000 0.0042050198185060 +1.0000000000000000 0.0041853885934483 diff --git a/src/engine/tests/system/gt_data/burgers/u[201].dat b/src/engine/tests/system/gt_data/burgers/u[201].dat new file mode 100644 index 00000000..ae596418 --- /dev/null +++ b/src/engine/tests/system/gt_data/burgers/u[201].dat @@ -0,0 +1,101 @@ +0.0000000000000000 0.9529790182558946 +0.0100000000000000 0.9334327065749853 +0.0200000000000000 0.9118465083397632 +0.0300000000000000 0.8888027487992198 +0.0400000000000000 0.8648782890305808 +0.0500000000000000 0.8405271652325419 +0.0600000000000000 0.8160865397399698 +0.0700000000000000 0.7920208302998382 +0.0800000000000000 0.7684442343948301 +0.0900000000000000 0.7454886696352204 +0.1000000000000000 0.7232912139755181 +0.1100000000000000 0.7019035938645025 +0.1200000000000000 0.6813586233511735 +0.1300000000000000 0.6616618394689265 +0.1400000000000000 0.6428272135593341 +0.1500000000000000 0.6248267121393676 +0.1600000000000000 0.6076389592239141 +0.1700000000000000 0.5912233295423409 +0.1800000000000000 0.5755556495898915 +0.1900000000000000 0.5606017733041906 +0.2000000000000000 0.5463113145335269 +0.2100000000000000 0.5326744225931898 +0.2200000000000000 0.5196465238817338 +0.2300000000000000 0.5071857028584708 +0.2400000000000000 0.4952551063136317 +0.2500000000000000 0.4838541974819086 +0.2600000000000000 0.4729182055665971 +0.2700000000000000 0.4624537658330307 +0.2800000000000000 0.4524124329234661 +0.2900000000000000 0.4427722290267289 +0.3000000000000000 0.4335144326649606 +0.3100000000000000 0.4246405886923743 +0.3200000000000000 0.4160992693396469 +0.3300000000000000 0.4078823092580197 +0.3400000000000000 0.3999727919110135 +0.3500000000000000 0.3923542651876775 +0.3600000000000000 0.3850001419906769 +0.3700000000000000 0.3779293675880442 +0.3800000000000000 0.3711064769204218 +0.3900000000000000 0.3645167757411094 +0.4000000000000000 0.3581319878204663 +0.4100000000000000 0.3519926765071388 +0.4200000000000000 0.3460481543487136 +0.4300000000000000 0.3402823943360473 +0.4400000000000000 0.3347236249955657 +0.4500000000000000 0.3293172981797699 +0.4600000000000000 0.3241059936735042 +0.4700000000000000 0.3190320116805648 +0.4800000000000000 0.3141312565976815 +0.4900000000000000 0.3093634045054711 +0.5000000000000000 0.3047266978269827 +0.5100000000000000 0.3002566743196130 +0.5200000000000000 0.2958942531611109 +0.5300000000000000 0.2916482499673412 +0.5400000000000000 0.2875411238807914 +0.5500000000000000 0.2835362249901565 +0.5600000000000001 0.2796377151275251 +0.5700000000000001 0.2758457498779956 +0.5800000000000000 0.2721633130361205 +0.5900000000000000 0.2685621602657869 +0.6000000000000000 0.2650709180072736 +0.6100000000000000 0.2616627743274457 +0.6200000000000000 0.2583254675385289 +0.6300000000000000 0.2550904858030741 +0.6400000000000000 0.2519251219899453 +0.6500000000000000 0.2488437070611546 +0.6600000000000000 0.2458303673186845 +0.6700000000000000 0.2428886223716228 +0.6800000000000000 0.2400274238477964 +0.6900000000000001 0.2372136151112170 +0.7000000000000001 0.2344847535440051 +0.7100000000000000 0.2317982745309428 +0.7200000000000000 0.2291887621804389 +0.7300000000000000 0.2266239450905973 +0.7400000000000000 0.2241366677243182 +0.7500000000000000 0.2216722470317771 +0.7600000000000000 0.2192912020458612 +0.7700000000000000 0.2169393976426914 +0.7800000000000000 0.2146516061809088 +0.7900000000000000 0.2124052381328584 +0.8000000000000000 0.2102029236693914 +0.8100000000000001 0.2080494857768259 +0.8200000000000001 0.2059365490479993 +0.8300000000000001 0.2038673119072924 +0.8400000000000000 0.2018397326205519 +0.8500000000000000 0.1998488589957566 +0.8600000000000000 0.1979004070473958 +0.8700000000000000 0.1959962515568758 +0.8800000000000000 0.1941195031431890 +0.8900000000000000 0.1922882352245156 +0.9000000000000000 0.1904604913478855 +0.9100000000000000 0.1886937638578812 +0.9200000000000000 0.1869560690895644 +0.9300000000000000 0.1852589215600934 +0.9400000000000001 0.1835690322363140 +0.9500000000000001 0.1819240703804198 +0.9600000000000000 0.1803112756765826 +0.9700000000000000 0.1787103283224579 +0.9800000000000000 0.1771541874131567 +0.9900000000000000 0.1756282842974460 +1.0000000000000000 0.1741255882266294 diff --git a/src/engine/tests/system/gt_data/burgers/u[401].dat b/src/engine/tests/system/gt_data/burgers/u[401].dat new file mode 100644 index 00000000..62c832db --- /dev/null +++ b/src/engine/tests/system/gt_data/burgers/u[401].dat @@ -0,0 +1,101 @@ +0.0000000000000000 0.5826922092259220 +0.0100000000000000 0.6136181751841692 +0.0200000000000000 0.6468066493255635 +0.0300000000000000 0.6821033769705430 +0.0400000000000000 0.7192009306883728 +0.0500000000000000 0.7576073617018740 +0.0600000000000000 0.7965598680012973 +0.0700000000000000 0.8348367865414260 +0.0800000000000000 0.8711679565188247 +0.0900000000000000 0.9043161234804122 +0.1000000000000000 0.9330941334625623 +0.1100000000000000 0.9566801553382221 +0.1200000000000000 0.9746767402202894 +0.1300000000000000 0.9871030859953254 +0.1400000000000000 0.9943580085933424 +0.1500000000000000 0.9969979111546025 +0.1600000000000000 0.9956761159458773 +0.1700000000000000 0.9910650805429196 +0.1800000000000000 0.9837892011692444 +0.1900000000000000 0.9744225789309284 +0.2000000000000000 0.9633935169745766 +0.2100000000000000 0.9511335946208695 +0.2200000000000000 0.9379751374801671 +0.2300000000000000 0.9241595831329589 +0.2400000000000000 0.9099329658379562 +0.2500000000000000 0.8954374610362497 +0.2600000000000000 0.8808350535735157 +0.2700000000000000 0.8661859732450368 +0.2800000000000000 0.8515228646233826 +0.2900000000000000 0.8371110614852191 +0.3000000000000000 0.8229991993565747 +0.3100000000000000 0.8090658382594207 +0.3200000000000000 0.7953796959260456 +0.3300000000000000 0.7819872344602816 +0.3400000000000000 0.7688604762029656 +0.3500000000000000 0.7560243757446098 +0.3600000000000000 0.7435074322834931 +0.3700000000000000 0.7312870387307133 +0.3800000000000000 0.7193851408420008 +0.3900000000000000 0.7077634772151258 +0.4000000000000000 0.6964848656589360 +0.4100000000000000 0.6854710366213482 +0.4200000000000000 0.6747414245327550 +0.4300000000000000 0.6642958522682487 +0.4400000000000000 0.6541488639550456 +0.4500000000000000 0.6442612841872948 +0.4600000000000000 0.6346428521466294 +0.4700000000000000 0.6252504671522692 +0.4800000000000000 0.6161264819280480 +0.4900000000000000 0.6072457208288384 +0.5000000000000000 0.5985826735319313 +0.5100000000000000 0.5901555999771508 +0.5200000000000000 0.5819295329845054 +0.5300000000000000 0.5739337615445276 +0.5400000000000000 0.5661229950805887 +0.5500000000000000 0.5585154091492007 +0.5600000000000001 0.5511050174936826 +0.5700000000000001 0.5438815187334336 +0.5800000000000000 0.5368333391022556 +0.5900000000000000 0.5299340772717267 +0.6000000000000000 0.5232322466404817 +0.6100000000000000 0.5166684278528096 +0.6200000000000000 0.5102767344026365 +0.6300000000000000 0.5040249756692294 +0.6400000000000000 0.4979137351208205 +0.6500000000000000 0.4919613763724135 +0.6600000000000000 0.4861286125261221 +0.6700000000000000 0.4804337903823790 +0.6800000000000000 0.4748685681466798 +0.6900000000000001 0.4694281519265944 +0.7000000000000001 0.4640905976755728 +0.7100000000000000 0.4588926030736373 +0.7200000000000000 0.4538040364050279 +0.7300000000000000 0.4488086355360749 +0.7400000000000000 0.4439357925120813 +0.7500000000000000 0.4391495924149380 +0.7600000000000000 0.4344884255035097 +0.7700000000000000 0.4298949528611535 +0.7800000000000000 0.4254203603982898 +0.7900000000000000 0.4210142122996822 +0.8000000000000000 0.4166991146093360 +0.8100000000000001 0.4124865008526210 +0.8200000000000001 0.4083301721434183 +0.8300000000000001 0.4042802569945935 +0.8400000000000000 0.4003003895566981 +0.8500000000000000 0.3964036217519594 +0.8600000000000000 0.3925722670762256 +0.8700000000000000 0.3888060953015724 +0.8800000000000000 0.3851138859261734 +0.8900000000000000 0.3815036287358005 +0.9000000000000000 0.3779474855699341 +0.9100000000000000 0.3744685828441099 +0.9200000000000000 0.3710396248485061 +0.9300000000000000 0.3676778710636122 +0.9400000000000001 0.3643698681809729 +0.9500000000000001 0.3611239176201606 +0.9600000000000000 0.3579342118962631 +0.9700000000000000 0.3548084611701195 +0.9800000000000000 0.3517296500257951 +0.9900000000000000 0.3487008830452780 +1.0000000000000000 0.3457331217484214 diff --git a/src/engine/tests/system/gt_data/burgers/u[601].dat b/src/engine/tests/system/gt_data/burgers/u[601].dat new file mode 100644 index 00000000..fd7d53a0 --- /dev/null +++ b/src/engine/tests/system/gt_data/burgers/u[601].dat @@ -0,0 +1,101 @@ +0.0000000000000000 -0.5928542515359865 +0.0100000000000000 -0.6573236540422160 +0.0200000000000000 -0.7296284735841136 +0.0300000000000000 -0.8062176676207004 +0.0400000000000000 -0.8790963444801786 +0.0500000000000000 -0.9386450366191493 +0.0600000000000000 -0.9777075046505560 +0.0700000000000000 -0.9952840965588096 +0.0800000000000000 -0.9950368485849332 +0.0900000000000000 -0.9820554770412125 +0.1000000000000000 -0.9609501972600101 +0.1100000000000000 -0.9350831463356332 +0.1200000000000000 -0.9067621291345060 +0.1300000000000000 -0.8774793715397962 +0.1400000000000000 -0.8481301290914611 +0.1500000000000000 -0.8195915455087283 +0.1600000000000000 -0.7919829152153001 +0.1700000000000000 -0.7654801209503932 +0.1800000000000000 -0.7401732426350325 +0.1900000000000000 -0.7161093340719805 +0.2000000000000000 -0.6932681503242317 +0.2100000000000000 -0.6716035246149451 +0.2200000000000000 -0.6510754800663833 +0.2300000000000000 -0.6316320745795468 +0.2400000000000000 -0.6132177647999177 +0.2500000000000000 -0.5957267628984274 +0.2600000000000000 -0.5791423885023145 +0.2700000000000000 -0.5634141890071086 +0.2800000000000000 -0.5484614558736713 +0.2900000000000000 -0.5342308978747766 +0.3000000000000000 -0.5206950785804980 +0.3100000000000000 -0.5077900406943383 +0.3200000000000000 -0.4954963599183369 +0.3300000000000000 -0.4837563803417102 +0.3400000000000000 -0.4725606576307474 +0.3500000000000000 -0.4618368880250047 +0.3600000000000000 -0.4515754301219090 +0.3700000000000000 -0.4417621245534348 +0.3800000000000000 -0.4323515842127769 +0.3900000000000000 -0.4233237113288134 +0.4000000000000000 -0.4146573565743389 +0.4100000000000000 -0.4063310292542930 +0.4200000000000000 -0.3983329436049928 +0.4300000000000000 -0.3906349366361094 +0.4400000000000000 -0.3832243793305760 +0.4500000000000000 -0.3760979716035338 +0.4600000000000000 -0.3692050073011585 +0.4700000000000000 -0.3625744195332714 +0.4800000000000000 -0.3561776702424129 +0.4900000000000000 -0.3499797389487322 +0.5000000000000000 -0.3440183286747848 +0.5100000000000000 -0.3382401495879843 +0.5200000000000000 -0.3326544619030887 +0.5300000000000000 -0.3272537127673780 +0.5400000000000000 -0.3220102032138213 +0.5500000000000000 -0.3169496625646379 +0.5600000000000001 -0.3120245364829455 +0.5700000000000001 -0.3072579768530228 +0.5800000000000000 -0.3026371879924364 +0.5900000000000000 -0.2981586386798817 +0.6000000000000000 -0.2937896576810931 +0.6100000000000000 -0.2895508069285157 +0.6200000000000000 -0.2854488713643313 +0.6300000000000000 -0.2814480281430854 +0.6400000000000000 -0.2775651547353981 +0.6500000000000000 -0.2737818199537312 +0.6600000000000000 -0.2701045806443729 +0.6700000000000000 -0.2665163260614000 +0.6800000000000000 -0.2630163375245183 +0.6900000000000001 -0.2596309321251177 +0.7000000000000001 -0.2563043558591711 +0.7100000000000000 -0.2530888015585417 +0.7200000000000000 -0.2499333406988702 +0.7300000000000000 -0.2468598445742954 +0.7400000000000000 -0.2438693936609187 +0.7500000000000000 -0.2409309695070909 +0.7600000000000000 -0.2380828262768596 +0.7700000000000000 -0.2352823194009609 +0.7800000000000000 -0.2325626977715337 +0.7900000000000000 -0.2299060429712183 +0.8000000000000000 -0.2272949352335133 +0.8100000000000001 -0.2247420689397269 +0.8200000000000001 -0.2222487611322778 +0.8300000000000001 -0.2198256300934548 +0.8400000000000000 -0.2174412492304226 +0.8500000000000000 -0.2151122557757363 +0.8600000000000000 -0.2128326413908376 +0.8700000000000000 -0.2106023884869663 +0.8800000000000000 -0.2084135514479886 +0.8900000000000000 -0.2062678569603142 +0.9000000000000000 -0.2041732281657053 +0.9100000000000000 -0.2021067795415046 +0.9200000000000000 -0.2000930151499321 +0.9300000000000000 -0.1981163147550558 +0.9400000000000001 -0.1961789797664071 +0.9500000000000001 -0.1942793454557617 +0.9600000000000000 -0.1924181329870464 +0.9700000000000000 -0.1905878696524662 +0.9800000000000000 -0.1888029942588350 +0.9900000000000000 -0.1870459801780871 +1.0000000000000000 -0.1853228334133790 diff --git a/src/engine/tests/system/gt_data/burgers/u[801].dat b/src/engine/tests/system/gt_data/burgers/u[801].dat new file mode 100644 index 00000000..280b3892 --- /dev/null +++ b/src/engine/tests/system/gt_data/burgers/u[801].dat @@ -0,0 +1,101 @@ +0.0000000000000000 -0.9490974840054306 +0.0100000000000000 -0.9068834349917206 +0.0200000000000000 -0.8592438188497802 +0.0300000000000000 -0.8101065408063365 +0.0400000000000000 -0.7623574209451541 +0.0500000000000000 -0.7172270456216440 +0.0600000000000000 -0.6754453364349798 +0.0700000000000000 -0.6370855462227702 +0.0800000000000000 -0.6020923477531818 +0.0900000000000000 -0.5702312960647290 +0.1000000000000000 -0.5412030262500592 +0.1100000000000000 -0.5147266776927213 +0.1200000000000000 -0.4905357307120163 +0.1300000000000000 -0.4683928635144073 +0.1400000000000000 -0.4480426395019431 +0.1500000000000000 -0.4293387309565971 +0.1600000000000000 -0.4120633615024866 +0.1700000000000000 -0.3960755191452511 +0.1800000000000000 -0.3812619878324542 +0.1900000000000000 -0.3674806603540194 +0.2000000000000000 -0.3546450341315407 +0.2100000000000000 -0.3426554790959953 +0.2200000000000000 -0.3314361925497569 +0.2300000000000000 -0.3209051717754605 +0.2400000000000000 -0.3110411099074072 +0.2500000000000000 -0.3017498562362125 +0.2600000000000000 -0.2929908400595019 +0.2700000000000000 -0.2847055165641452 +0.2800000000000000 -0.2768844136563609 +0.2900000000000000 -0.2694653491141779 +0.3000000000000000 -0.2624481700485655 +0.3100000000000000 -0.2557856076184676 +0.3200000000000000 -0.2494473961903007 +0.3300000000000000 -0.2434108275713294 +0.3400000000000000 -0.2376541989635247 +0.3500000000000000 -0.2321660993195037 +0.3600000000000000 -0.2269282323590078 +0.3700000000000000 -0.2219210135155314 +0.3800000000000000 -0.2171267613274662 +0.3900000000000000 -0.2125320154723332 +0.4000000000000000 -0.2081163607597951 +0.4100000000000000 -0.2039040589739678 +0.4200000000000000 -0.1998539115097524 +0.4300000000000000 -0.1959458133659012 +0.4400000000000000 -0.1922010994381873 +0.4500000000000000 -0.1885837550202229 +0.4600000000000000 -0.1851202550967608 +0.4700000000000000 -0.1817629775810356 +0.4800000000000000 -0.1785278049300841 +0.4900000000000000 -0.1754165666428346 +0.5000000000000000 -0.1723983655937969 +0.5100000000000000 -0.1694777195977112 +0.5200000000000000 -0.1666687997517381 +0.5300000000000000 -0.1639549459643435 +0.5400000000000000 -0.1613145864867230 +0.5500000000000000 -0.1587574624830075 +0.5600000000000001 -0.1562874851633157 +0.5700000000000001 -0.1538963179978055 +0.5800000000000000 -0.1515920754544239 +0.5900000000000000 -0.1493039572829949 +0.6000000000000000 -0.1471294192093998 +0.6100000000000000 -0.1450015166630877 +0.6200000000000000 -0.1429328557032416 +0.6300000000000000 -0.1409403338989862 +0.6400000000000000 -0.1389886512898686 +0.6500000000000000 -0.1370829862987173 +0.6600000000000000 -0.1352363783591783 +0.6700000000000000 -0.1334318757253404 +0.6800000000000000 -0.1316780198305886 +0.6900000000000001 -0.1299839927704084 +0.7000000000000001 -0.1283175304763964 +0.7100000000000000 -0.1266964379244153 +0.7200000000000000 -0.1251153024586386 +0.7300000000000000 -0.1235905983151878 +0.7400000000000000 -0.1220741128521019 +0.7500000000000000 -0.1206182970610349 +0.7600000000000000 -0.1191823889733651 +0.7700000000000000 -0.1177838708570231 +0.7800000000000000 -0.1164159239210073 +0.7900000000000000 -0.1150777737054401 +0.8000000000000000 -0.1137751642474990 +0.8100000000000001 -0.1125027097856060 +0.8200000000000001 -0.1112578131290503 +0.8300000000000001 -0.1100435544886953 +0.8400000000000000 -0.1088479928308168 +0.8500000000000000 -0.1076685266319613 +0.8600000000000000 -0.1065293834382894 +0.8700000000000000 -0.1054230628564541 +0.8800000000000000 -0.1043157263309636 +0.8900000000000000 -0.1032426015105286 +0.9000000000000000 -0.1021998346289691 +0.9100000000000000 -0.1011731497998539 +0.9200000000000000 -0.1001629563313461 +0.9300000000000000 -0.0991739644415106 +0.9400000000000001 -0.0982002235321185 +0.9500000000000001 -0.0972441015518718 +0.9600000000000000 -0.0963174028058352 +0.9700000000000000 -0.0954074744661735 +0.9800000000000000 -0.0945141381868383 +0.9900000000000000 -0.0936310050299971 +1.0000000000000000 -0.0927715934655949 diff --git a/src/engine/tests/system/gt_data/interleaved/iL[1].dat b/src/engine/tests/system/gt_data/interleaved/iL[1].dat index 9e0e9783..0becc650 100644 --- a/src/engine/tests/system/gt_data/interleaved/iL[1].dat +++ b/src/engine/tests/system/gt_data/interleaved/iL[1].dat @@ -3,1208 +3,1177 @@ 0.0000000173246739 0.0002400003355849 0.0000010148383595 0.0007200009435217 0.0000010168383620 0.0037199720756004 -0.0000074411163953 1.5450456910469221 -0.0000135179543275 2.9963965593034612 -0.0000241267401104 2.9604310894590631 -0.0000341067723260 2.8945499004661248 -0.0000416899755153 2.8149419165798011 -0.0000494461078450 2.7008772886857737 -0.0000569702307803 2.5591518287670096 -0.0000636344794161 2.4043000124778051 -0.0000699001553493 2.2299739706512209 -0.0000761950107234 2.0280032976650006 -0.0000822602757846 1.8097611951099712 -0.0000869032780864 1.6261623991068856 -0.0000918176567015 1.4152811231188294 -0.0000960652209275 1.2201232384911278 -0.0001010266630371 0.9830916464815704 -0.0001059400537293 1.9128371518076499 -0.0001115864460790 2.9667155680337869 -0.0001135320320841 3.3209654116620135 -0.0001233556138720 2.7497021914767186 -0.0001324522198774 2.1936882876790382 -0.0001414239215257 1.6225783418742148 -0.0001498540730874 1.0642737450381012 -0.0001566262052043 0.6055429532833917 -0.0001631939458221 0.1525940591562745 -0.0001653396559996 0.0025898434660353 -0.0001653777551513 -0.0001100000000007 -0.0001653777551513 -0.0001200000000007 -0.0001654031832087 0.0000997019741704 -0.0001747113066874 0.0000976509226590 -0.0001891988234303 0.0000946541547586 -0.0002010297110414 0.0004236519947245 -0.0002010317110459 0.0034241219013555 -0.0002117840505783 1.7863941175470373 -0.0002135215422008 2.0706389230032500 -0.0002248296640032 1.2124232547571443 -0.0002309311394563 0.7453646966765242 -0.0002365655836560 0.3122668689514910 -0.0002405584181490 0.0029997488608259 -0.0002405980614046 -0.0001099999999996 -0.0002405980614046 -0.0001199999999996 -0.0002406270026362 0.0000845883305463 -0.0002478058643831 0.0000832623590442 -0.0002664601302937 0.0000804454588684 -0.0002810979011372 0.0000786504283527 -0.0002922563704047 0.0000765029355155 -0.0003010343547778 0.0003907204638879 -0.0003010363547820 0.0013920034151508 -0.0003113922855132 1.6365311515043521 -0.0003135206752277 1.9688344028395453 -0.0003348958616357 0.1813058774619216 -0.0003370185900655 0.0026638897697799 -0.0003370512462877 -0.0001100000000001 -0.0003370512462877 -0.0001200000000001 -0.0003370822323737 0.0000715111258302 -0.0003555538124246 0.0000696783784805 -0.0003644479697946 0.0000682871938254 -0.0003840597999173 0.0000666270897241 -0.0004010100542977 0.0003688302071898 -0.0004010120543032 0.0033690623943349 -0.0004065758463985 0.8512058862598955 -0.0004135182212036 1.9067997242903156 -0.0004234049054157 1.0296783882469791 -0.0004350188962964 0.0024701213378397 -0.0004350477304394 -0.0001099999999985 -0.0004350477304394 -0.0001199999999985 -0.0004350802886391 0.0000624311093418 -0.0004518830234709 0.0000607776152715 -0.0004640402250805 0.0000601771349090 -0.0004663511896850 0.0000594060939360 -0.0005010222933740 0.0003543265885285 -0.0005010242933785 0.0013548345833086 -0.0005135109970022 1.8592518125381867 -0.0005336620164114 0.0035074492760171 -0.0005337013195432 -0.0001099999999956 -0.0005337013195432 -0.0001199999999956 -0.0005337125465617 0.0000560200691168 -0.0005438370905410 0.0000548814524792 -0.0005556884593313 0.0000549522894559 -0.0005656531275725 0.0000536213285751 -0.0005841851115931 0.0000535419610892 -0.0005937379724142 0.0000518946272806 -0.0006010131147245 0.0003421831880996 -0.0006010151147294 0.0013445085378935 -0.0006135187053799 1.8247130184729348 -0.0006246515513540 0.7783849566830782 -0.0006317484358748 0.1094107166330324 -0.0006328876730120 0.0020744390145506 -0.0006329107352850 -0.0001100000000049 -0.0006329107352850 -0.0001200000000049 -0.0006329454570136 0.0000515626806884 -0.0006455754179423 0.0000502493017647 -0.0006714393797259 0.0000491469439934 -0.0006824656166141 0.0000498214751604 -0.0007010366541045 0.0003372688063342 -0.0007010386541091 0.0013376120766468 -0.0007135133107544 1.8005903790234694 -0.0007223781330955 0.9510370625953124 -0.0007322004205142 0.0028300533502556 -0.0007322308797155 -0.0001100000000035 -0.0007322308797155 -0.0001200000000035 -0.0007322425947210 0.0000475275982642 -0.0007457331046429 0.0000463287089615 -0.0007712382253773 0.0000456206282678 -0.0007982510834185 0.0000449509765037 -0.0008010380572151 0.0003299918500682 -0.0008010400572202 0.0013317920429124 -0.0008135209300060 1.7776172136999311 -0.0008252160964297 0.6381834917265977 -0.0008317114735866 0.0033580870829140 -0.0008317468877629 -0.0001099999999981 -0.0008317468877629 -0.0001199999999981 -0.0008317829966852 0.0000448835553583 -0.0008463762395530 0.0000437046636131 -0.0008711881847763 0.0000431760750619 -0.0008900000096050 0.0000427835306780 -0.0009010168071064 0.0003238933160523 -0.0009010188071109 0.0013241270848969 -0.0009135137387112 1.7718694427395987 -0.0009299090352829 0.1473472969001010 -0.0009313803588754 0.0042577729690797 -0.0009314245415004 -0.0001099999999961 -0.0009314245415004 -0.0001199999999961 -0.0009314611407506 0.0000427885411525 -0.0009459753529072 0.0000416562141879 -0.0009643803581458 0.0000413369261904 -0.0009830375255553 0.0000419334262934 -0.0010001364151499 0.0000407666901719 -0.0010010100043345 0.0003218215665797 -0.0010010120043388 0.0013219927572743 -0.0010135137135443 1.7620949121345095 -0.0010293376361749 0.1812303282797557 -0.0010311380193016 0.0020403011603300 -0.0010311595703098 -0.0001099999999931 -0.0010311595703098 -0.0001199999999931 -0.0010311717453750 0.0000412346102296 -0.0010455770511120 0.0000401253569764 -0.0010638961900499 0.0000399183325305 -0.0010824018450805 0.0000405676522547 -0.0010999104771578 0.0000393848512606 -0.0011010100051288 0.0003191342497211 -0.0011010120051331 0.0013193038360158 -0.0011135143367547 1.7537840794718080 -0.0011289549181997 0.2012724162783098 -0.0011309444709057 0.0018987775087492 -0.0011309644794547 -0.0001100000000034 -0.0011309644794547 -0.0001200000000034 -0.0011309767541350 0.0000400076759036 -0.0011452452315478 0.0000389180091844 -0.0011635531335863 0.0000391827498119 -0.0011745123264532 0.0000385391542114 -0.0011792026200136 0.0000392606021517 -0.0011953957016963 0.0000376802254828 -0.0012010270078272 0.0003150397840818 -0.0012010290078317 0.0013152177938225 -0.0012135149800647 1.7427567764905105 -0.0012307134006103 0.0041593163491621 -0.0012307559200140 -0.0001099999999996 -0.0012307559200140 -0.0001199999999996 -0.0012307684795549 0.0000388381981141 -0.0012390408281262 0.0000383353927314 -0.0012583386164900 0.0000385561282105 -0.0012818354767307 0.0000382657171795 -0.0012930001335248 0.0000371311216348 -0.0013010165699696 0.0003131498421080 -0.0013010185699748 0.0013135349358208 -0.0013135202537632 1.7353145872700351 -0.0013241160536896 0.6663536506084817 -0.0013306308347779 0.0093844954535315 -0.0013307252645085 -0.0001100000000044 -0.0013307252645085 -0.0001200000000044 -0.0013307378563176 0.0000387160839806 -0.0013441393830611 0.0000377510315789 -0.0013648253955779 0.0000378527677388 -0.0013844256773554 0.0000385734990089 -0.0013941167036012 0.0000370196943235 -0.0014010131266487 0.0003131098514151 -0.0014010151266540 0.0013135176539716 -0.0014135199975262 1.7362748093409450 -0.0014249358906124 0.5850849395338151 -0.0014307171407775 0.0024443508070882 -0.0014307424845121 -0.0001100000000049 -0.0014307424845121 -0.0001200000000049 -0.0014307548854368 0.0000388331615768 -0.0014443370290862 0.0000378554611713 -0.0014689443764299 0.0000378066560248 -0.0014870910997606 0.0000387892338472 -0.0014945751198207 0.0000370196301742 -0.0015010131198498 0.0003132232064897 -0.0015010151198551 0.0013136196282430 -0.0015135201236703 1.7368214718331638 -0.0015244168407246 0.6383900329347656 -0.0015307255283215 0.0027612777256965 -0.0015307540381899 -0.0001099999999964 -0.0015307540381899 -0.0001199999999964 -0.0015307664455076 0.0000388835482787 -0.0015442349487163 0.0000379118181858 -0.0015648678684083 0.0000379920688988 -0.0015844183479617 0.0000387285158409 -0.0015940149276130 0.0000371894932941 -0.0016010134257647 0.0003134254840431 -0.0016010154257701 0.0013138356864396 -0.0016135199745819 1.7371327256008069 -0.0016248822153942 0.5921238714153266 -0.0016307366823990 0.0024896213013917 -0.0016307624934143 -0.0001100000000011 -0.0016307624934143 -0.0001200000000011 -0.0016307748853016 0.0000389613599977 -0.0016443457580435 0.0000379816377771 -0.0016689567177945 0.0000379252341182 -0.0016865742786046 0.0000389208785306 -0.0016944754813004 0.0000371950138599 -0.0017010128953297 0.0003135362484701 -0.0017010148953352 0.0013139414677910 -0.0017135200289477 1.7377897833975324 -0.0017245956614219 0.6221253573797673 -0.0017307484231194 0.0026673753996639 -0.0017307760162752 -0.0001099999999962 -0.0017307760162752 -0.0001199999999962 -0.0017307884084289 0.0000390297377542 -0.0017442955527116 0.0000380525400349 -0.0017648947203354 0.0000381169563670 -0.0017844144430917 0.0000388610835214 -0.0017939528850475 0.0000373302612751 -0.0018010136216140 0.0003136914286926 -0.0018010156216196 0.0013141036855712 -0.0018135199551081 1.7378786913010900 -0.0018248351103501 0.5982741214774142 -0.0018307535428491 0.0025317114807370 -0.0018307797876685 -0.0001099999999972 -0.0018307797876685 -0.0001199999999972 -0.0018307921718886 0.0000390714215197 -0.0018443527166985 0.0000380899225010 -0.0018689681950640 0.0000380267081835 -0.0018863867384377 0.0000390191651727 -0.0018939438674589 0.0000373686216936 -0.0019010150241698 0.0003137951290002 -0.0019010170241754 0.0013141889514567 -0.0019135201563005 1.7378980132508302 -0.0019241497309947 0.6694591186823234 -0.0019307672846821 0.0013157795101611 -0.0019307814041845 -0.0001099999999969 -0.0019307814041845 -0.0001199999999969 -0.0019307937617697 0.0000390621972011 -0.0019442531825421 0.0000380917363999 -0.0019648938618985 0.0000381571909618 -0.0019844177383685 0.0000388976325545 -0.0019939626419615 0.0000373642228080 -0.0020010135952716 0.0003137597827243 -0.0020010155952773 0.0013141729898202 -0.0020135199461606 1.7380970058571434 -0.0020248337569969 0.5988114633227746 -0.0020307584044478 0.0025378032937524 -0.0020307847140156 -0.0001100000000027 -0.0020307847140156 -0.0001200000000027 -0.0020307970958665 0.0000391025388937 -0.0020443571814746 0.0000381203178606 -0.0020689735910827 0.0000380554662969 -0.0020863415650824 0.0000390434234919 -0.0020939419917823 0.0000373950725068 -0.0021010150062874 0.0003138460731536 -0.0021010170062932 0.0013142407608949 -0.0021135201465679 1.7380565820774925 -0.0021241568722621 0.6690235045434718 -0.0021307708540408 0.0013176704335213 -0.0021307849939771 -0.0001100000000101 -0.0021307849939771 -0.0001200000000101 -0.0021307973497674 0.0000390852279627 -0.0021442577342840 0.0000381141067979 -0.0021648979230630 0.0000381775327077 -0.0021844176741388 0.0000389185677747 -0.0021939559544428 0.0000373858442128 -0.0022010136163942 0.0003138011544872 -0.0022010156164001 0.0013142147275978 -0.0022135199427228 1.7382162324701742 -0.0022248275884385 0.5996556779961669 -0.0022307610887066 0.0025441132536269 -0.0022307874634823 -0.0001099999999828 -0.0022307874634823 -0.0001199999999828 -0.0022307998441030 0.0000391200067036 -0.0022443583503438 0.0000381374313990 -0.0022689763166678 0.0000380715025512 -0.0022863231320537 0.0000390567700747 -0.0022939477459111 0.0000374080108018 -0.0023010149903125 0.0003138723028826 -0.0023010169903184 0.0013142674450814 -0.0023135201415780 1.7381416279258439 -0.0023241582949918 0.6690308151504105 -0.0023307726930384 0.0013235694594744 -0.0023307868926402 -0.0001100000000035 -0.0023307868926402 -0.0001200000000035 -0.0023307992476273 0.0000390972107554 -0.0023442593514113 0.0000381257385505 -0.0023649004552988 0.0000381881613537 -0.0023844178683039 0.0000389294468984 -0.0023939529522798 0.0000373969594805 -0.0024010136252672 0.0003138225160453 -0.0024010156252732 0.0013142362758476 -0.0024135199408267 1.7382783826992105 -0.0024248247777878 0.6000547002159764 -0.0024307624867328 0.0025472071729763 -0.0024307888935513 -0.0001100000000081 -0.0024307888935513 -0.0001200000000081 -0.0024308012735259 0.0000391291020700 -0.0024443589269262 0.0000381463062769 -0.0024689781867340 0.0000380798253852 -0.0024863125605707 0.0000390636631904 -0.0024939509905386 0.0000374146759229 -0.0025010149802567 0.0003138858850874 -0.0025010169802628 0.0013142812861400 -0.0025135201388647 1.7381861245586856 -0.0025241594708047 0.6689910707213446 -0.0025307736626277 0.0013257553302342 -0.0025307878844654 -0.0001099999999953 -0.0025307878844654 -0.0001199999999953 -0.0025308002390088 0.0000391034865907 -0.0025442601992464 0.0000381317965557 -0.0025649023670020 0.0000381936766389 -0.0025844181548923 0.0000389351248776 -0.0025939514629407 0.0000374027082760 -0.0026010136289205 0.0003138335947121 -0.0026010156289268 0.0013142474713203 -0.0026135199397748 1.7383108190410235 -0.0026248235548397 0.6002382766133166 -0.0026307632162733 0.0025486956303080 -0.0026307896385547 -0.0001100000000063 -0.0026307896385547 -0.0001200000000063 -0.0026308020181882 0.0000391338555417 -0.0026443591568294 0.0000381509094636 -0.0026689796099591 0.0000380841463896 -0.0026863063363786 0.0000390672263605 -0.0026939527913039 0.0000374181116510 -0.0027010149737826 0.0003138929318047 -0.0027010169737889 0.0013142884648632 -0.0027135201373581 1.7382094940655970 -0.0027241604044548 0.6689382717165552 -0.0027307741766880 0.0013263000664647 -0.0027307884041856 -0.0001099999999898 -0.0027307884041856 -0.0001199999999898 -0.0027308007584808 0.0000391067917209 -0.0027442606048101 0.0000381349523280 -0.0027649039783628 0.0000381965323945 -0.0027844185026401 0.0000389380931703 -0.0027939507939688 0.0000374056534418 -0.0028010136297079 0.0003138393073397 -0.0028010156297143 0.0013142532529497 -0.0028135199391528 1.7383277893352140 -0.0028248231911270 0.6003063995591481 -0.0028307635978348 0.0025493258164931 -0.0028307900267223 -0.0001099999999978 -0.0028307900267223 -0.0001199999999978 -0.0028308024061730 0.0000391363485022 -0.0028443592069146 0.0000381532864873 -0.0028689808269900 0.0000380863830443 -0.0028863022609481 0.0000390690480015 -0.0028939538409373 0.0000374198622769 -0.0029010149691704 0.0003138965716484 -0.0029010169691769 0.0013142921612848 -0.0029135201364850 1.7382218502372628 -0.0029241612044306 0.6688794169021366 -0.0029307744530673 0.0013260114184142 -0.0029307886778042 -0.0001099999999910 -0.0029307886778042 -0.0001199999999910 -0.0029308010319528 0.0000391085491126 -0.0029442607707576 0.0000381365941942 -0.0029649054718337 0.0000381980000667 -0.0029844188941095 0.0000389396502224 -0.0029939505528871 0.0000374071358779 -0.0030010136289528 0.0003138422217237 -0.0030010156289594 0.0013142562143423 -0.0030135199387511 1.7383367023361980 -0.0030248232895448 0.6003129126548175 -0.0030307637981259 0.0025494997875418 -0.0030307902289144 -0.0001099999999926 -0.0030307902289144 -0.0001199999999926 -0.0030308026082645 0.0000391376644340 -0.0030443591589865 0.0000381545022085 -0.0030689819629539 0.0000380875323564 -0.0030862992867410 0.0000390699620400 -0.0030939544918402 0.0000374207352041 -0.0031010149655082 0.0003138984368943 -0.0031010169655149 0.0013142940905109 -0.0031135201359410 1.7382284712292737 -0.0031241619414890 0.6688167333219913 -0.0031307746058038 0.0013252749744733 -0.0031307888232570 -0.0001100000000107 -0.0031307888232570 -0.0001200000000107 -0.0031308011773123 0.0000391095015554 -0.0031442608058241 0.0000381374465944 -0.0031649069379352 0.0000381987435208 -0.0031844193213061 0.0000389404700668 -0.0031939505536424 0.0000374078484397 -0.0032010136272850 0.0003138436672043 -0.0032010156272918 0.0013142576797719 -0.0032135199384579 1.7383414133636861 -0.0032248236527910 0.6002848857785835 -0.0032307639038484 0.0025494226659111 -0.0032307903339526 -0.0001100000000034 -0.0032307903339526 -0.0001200000000034 -0.0032308027132445 0.0000391383664855 -0.0032443590567423 0.0000381551097632 -0.0032689830894355 0.0000380881133861 -0.0032862967654917 0.0000390703948570 -0.0032939549569601 0.0000374211430564 -0.0033010149622219 0.0003138993684482 -0.0033010169622287 0.0013142950418833 -0.0033135201355620 1.7382321068542284 -0.0033241626707567 0.6687495332577870 -0.0033307746945576 0.0013242541947033 -0.0033307889018615 -0.0001099999999937 -0.0033307889018615 -0.0001199999999937 -0.0033308012558499 0.0000391100351806 -0.0033442607708578 0.0000381378857828 -0.0033649084343666 0.0000381991063928 -0.0033844197806221 0.0000389409058179 -0.0033939506819871 0.0000374081567193 -0.0034010136250816 0.0003138443423330 -0.0034010156250886 0.0013142584024552 -0.0034135199382178 1.7383439328964185 -0.0034248241704087 0.6002372025654094 -0.0034307639602548 0.0025492057836906 -0.0034307903882383 -0.0001100000000058 -0.0034307903882383 -0.0001200000000058 -0.0034308027674940 0.0000391387490401 -0.0034443589205617 0.0000381553982108 -0.0034689842429497 0.0000380883961320 -0.0034862944616007 0.0000390705765948 -0.0034939553227173 0.0000374213076984 -0.0035010149590741 0.0003138998132781 -0.0035010169590812 0.0013142955445954 -0.0035135201352648 1.7382341950909264 -0.0035241634135308 0.6686782214944447 -0.0035307747504834 0.0013230478024695 -0.0035307889457712 -0.0001099999999834 -0.0035307889457712 -0.0001199999999834 -0.0035308012997050 0.0000391103527467 -0.0035442606951375 0.0000381381091878 -0.0035649099937112 0.0000381992692687 -0.0035844202721750 0.0000389411419808 -0.0035939508844502 0.0000374082503850 -0.0036010136225159 0.0003138446123645 -0.0036010156225232 0.0013142586807272 -0.0036135199379987 1.7383453141724752 -0.0036248247890434 0.6001772030322933 -0.0036307639910370 0.0025489050651746 -0.0036307904160414 -0.0001099999999824 -0.0036307904160414 -0.0001199999999824 -0.0036308027952718 0.0000391389661595 -0.0036443587611619 0.0000381555185260 -0.0036689854474617 0.0000380885221744 -0.0036862922023136 0.0000390706243218 -0.0036939556466541 0.0000374213420430 -0.0037010149558968 0.0003139000012364 -0.0037010169559042 0.0013142957174188 -0.0037135201350014 1.7382354896686858 -0.0037241641899631 0.6686021004078381 -0.0037307747900212 0.0013216900306903 -0.0037307889717750 -0.0001099999999979 -0.0037307889717750 -0.0001199999999979 -0.0037308013256592 0.0000391105601664 -0.0037442605954484 0.0000381382196278 -0.0037649116346527 0.0000381993262073 -0.0037844207967360 0.0000389412734299 -0.0037939511400965 0.0000374082255781 -0.0038010136196503 0.0003138446616543 -0.0038010156196578 0.0013142587582664 -0.0038135199377847 1.7383461023815767 -0.0038248254863218 0.6001081556417481 -0.0038307640084441 0.0025485467185064 -0.0038307904298828 -0.0001100000000061 -0.0038307904298828 -0.0001200000000061 -0.0038308028090935 0.0000391390973941 -0.0038443585842695 0.0000381555483412 -0.0038689867188489 0.0000380885642004 -0.0038862899021396 0.0000390705988716 -0.0038939559568663 0.0000374213047179 -0.0039010149526009 0.0003139000503815 -0.0039010169526085 0.0013142958237982 -0.0039135201347512 1.7382363834274217 -0.0039241650080569 0.6685210601413205 -0.0039307748217479 0.0013202006708518 -0.0039307889886509 -0.0001099999999915 -0.0039307889886509 -0.0001199999999915 -0.0039308013424866 0.0000391107129900 -0.0039442604791668 0.0000381382707712 -0.0039649133755887 0.0000381993258687 -0.0039844213571920 0.0000389413514414 -0.0039939514303842 0.0000374081350739 -0.0040010136165385 0.0003138445911492 -0.0040010156165462 0.0013142586850295 -0.0040135199376204 1.7383465945167886 -0.0040248262483578 0.6000320131341459 -0.0040307640191323 0.0025481457488213 -0.0040307904365740 -0.0001099999999640 -0.0040307904365740 -0.0001199999999640 -0.0040308028157669 0.0000391391854332 -0.0040443583914192 0.0000381555290297 -0.0040689880706216 0.0000380885613532 -0.0040862874789675 0.0000390705303335 -0.0040939562775055 0.0000374212246612 -0.0041010149491115 0.0003139000234753 -0.0041010169491194 0.0013142958026657 -0.0041135201345498 1.7382370907155256 -0.0041241658825536 0.6684339901396141 -0.0041307748504201 0.0013185713356688 -0.0041307890010740 -0.0001100000000408 -0.0041307890010740 -0.0001200000000408 -0.0041308013548599 0.0000391108400536 -0.0041442603511476 0.0000381382900649 -0.0041649152307766 0.0000381992930111 -0.0041844219562266 0.0000389414015404 -0.0041939517505934 0.0000374080040900 -0.0042010136131784 0.0003138444511555 -0.0042010156131865 0.0013142585789748 -0.0042135199373929 1.7383469225798180 -0.0042248270712874 0.5999494100003202 -0.0042307640261221 0.0025477080605302 -0.0042307904391969 -0.0001099999999897 -0.0042307904391969 -0.0001199999999897 -0.0042308028183731 0.0000391392516011 -0.0042443581824668 0.0000381554809203 -0.0042689895119245 0.0000380885322416 -0.0042862849427917 0.0000390704375740 -0.0042939566060024 0.0000374211196912 -0.0043010149454027 0.0003138999539552 -0.0043010169454109 0.0013142957451639 -0.0043135201342842 1.7382377065892063 -0.0043241668183251 0.6683405701838757 -0.0043307748782971 0.0013167983975764 -0.0043307890112682 -0.0001100000000115 -0.0043307890112682 -0.0001200000000115 -0.0043308013650017 0.0000391109574528 -0.0043442602127156 0.0000381382925683 -0.0043649172141968 0.0000381992410999 -0.0043844225975686 0.0000389414380205 -0.0043939520982770 0.0000374078460660 -0.0044010136095596 0.0003138442663241 -0.0044010156095680 0.0013142584064339 -0.0044135199371519 1.7383471766905105 -0.0044248279590287 0.5998601177139484 -0.0044307640314289 0.0025472335595912 -0.0044307904397678 -0.0001099999999864 -0.0044307904397678 -0.0001199999999864 -0.0044308028189272 0.0000391393084011 -0.0044443579576577 0.0000381554154481 -0.0044689910559138 0.0000380884879925 -0.0044862822345922 0.0000390703271278 -0.0044939569572255 0.0000374209960800 -0.0045010149414199 0.0003138998583868 -0.0045010169414284 0.0013142956755790 -0.0045135201340015 1.7382383014701996 -0.0045241678258972 0.6682398607704686 -0.0045307749070395 0.0013148637027469 -0.0045307890207139 -0.0001100000000426 -0.0045307890207139 -0.0001200000000426 -0.0045308013743906 0.0000391110740287 -0.0045442600648549 0.0000381382860558 -0.0045649193408407 0.0000381991768212 -0.0045844232859673 0.0000389414681717 -0.0045939524747626 0.0000374076670137 -0.0046010136056640 0.0003138440508764 -0.0046010156056727 0.0013142582255230 -0.0046135199368950 1.7383473984342428 -0.0046248289149877 0.5997638678830076 -0.0046307640359717 0.0025467216029853 -0.0046307904391999 -0.0001100000000206 -0.0046307904391999 -0.0001200000000206 -0.0046308028183415 0.0000391393619342 -0.0046443577153158 0.0000381553377154 -0.0046689927148638 0.0000380884335532 -0.0046862793247084 0.0000390702022693 -0.0046939573375691 0.0000374208567051 -0.0047010149371195 0.0003138997420653 -0.0047010169371284 0.0013142955826166 -0.0047135201336973 1.7382389081430698 -0.0047241689155629 0.6681308799633278 -0.0047307749375519 0.0013127453228438 -0.0047307890300971 -0.0001099999999906 -0.0047307890300971 -0.0001199999999906 -0.0047308013837126 0.0000391111944719 -0.0047442599082806 0.0000381382741693 -0.0047649216279565 0.0000381991029750 -0.0047844240266464 0.0000389414954659 -0.0047939528824638 0.0000374074687881 -0.0048010136014626 0.0003138438076354 -0.0048010156014716 0.0013142580062470 -0.0048135199366192 1.7383476083876790 -0.0048248299458236 0.5996600249560241 -0.0048307640402055 0.0025461692565627 -0.0048307904379192 -0.0001099999999929 -0.0048307904379192 -0.0001199999999929 -0.0048308028170421 0.0000391394153527 -0.0048443574538398 0.0000381552497764 -0.0048689945019281 0.0000380883707930 -0.0048862762022785 0.0000390700651720 -0.0048939577479653 0.0000374207033385 -0.0049010149324717 0.0003138996117178 -0.0049010169324809 0.0013142954863217 -0.0049135201333696 1.7382395465311524 -0.0049241700942387 0.6680129651999384 -0.0049307749704549 0.0013104242104134 -0.0049307890398486 -0.0001100000000105 -0.0049307890398486 -0.0001200000000105 -0.0049308013933976 0.0000391113220524 -0.0049442597414400 0.0000381382590357 -0.0049649240956518 0.0000381990208899 -0.0049844248257049 0.0000389415228297 -0.0049939533208342 0.0000374072530333 -0.0050010135969324 0.0003138435419095 -0.0050010155969418 0.0013142577785999 -0.0050135199363221 1.7383478219720405 -0.0050248310576622 0.5995479984443283 -0.0050307640444801 0.0025455735994507 -0.0050307904362466 -0.0001100000000363 -0.0050307904362466 -0.0001200000000363 -0.0050308028153494 0.0000391394712455 -0.0050443571706040 0.0000381551529770 -0.0050689964328399 0.0000380883010859 -0.0050862728419363 0.0000390699165568 -0.0050939581926886 0.0000374205362927 -0.0051010149274306 0.0003138994672021 -0.0051010169274402 0.0013142953731103 -0.0051135201330123 1.7382402318279653 -0.0051241713765180 0.6678846692250947 -0.0051307750063856 0.0013078645537614 -0.0051307890502483 -0.0001100000000031 -0.0051307890502483 -0.0001200000000031 -0.0051308014037232 0.0000391114590920 -0.0051442595649150 0.0000381382416584 -0.0051649267626419 0.0000381989310921 -0.0051844256900344 0.0000389415498476 -0.0051939538019751 0.0000374070157826 -0.0052010135920074 0.0003138432481132 -0.0052010155920172 0.0013142575148005 -0.0052135199360007 1.7383480418909427 -0.0052248322647267 0.5994263540586756 -0.0052307640488298 0.0025449272168091 -0.0052307904341425 -0.0001100000000265 -0.0052307904341425 -0.0001200000000265 -0.0052308028132238 0.0000391395299185 -0.0052443568638166 0.0000381550461419 -0.0052689985257501 0.0000380882234682 -0.0052862692142973 0.0000390697550593 -0.0052939586764668 0.0000374203538962 -0.0053010149219445 0.0003138993086812 -0.0053010169219546 0.0013142952624766 -0.0053135201326238 1.7382409728734465 -0.0053241727733558 0.6677449015656794 -0.0053307750458407 0.0013050328970985 -0.0053307890614592 -0.0001099999999748 -0.0053307890614592 -0.0001199999999748 -0.0053308014148534 0.0000391116073133 -0.0053442593773161 0.0000381382222568 -0.0053649296589776 0.0000381988326884 -0.0053844266287668 0.0000389415784753 -0.0053939543230787 0.0000374067575735 -0.0054010135866624 0.0003138429279671 -0.0054010155866727 0.0013142572322175 -0.0054135199356518 1.7383482757249571 -0.0054248335748790 0.5992943118169680 -0.0054307640534349 0.0025442261744284 -0.0054307904317480 -0.0001099999999873 -0.0054307904317480 -0.0001199999999873 -0.0054308028108057 0.0000391395930546 -0.0054443565294781 0.0000381549292983 -0.0054690008028022 0.0000380881382494 -0.0054862652751838 0.0000390695794456 -0.0054939592078257 0.0000374201543894 -0.0055010149159418 0.0003138991341108 -0.0055010169159523 0.0013142951136804 -0.0055135201321971 1.7382417832346808 -0.0055241743037374 0.6675917677109326 -0.0055307750895591 0.0013018769200606 -0.0055307890736984 -0.0001100000000070 -0.0055307890736984 -0.0001200000000070 -0.0055308014270027 0.0000391117688414 -0.0055442591785984 0.0000381382011542 -0.0055649328145412 0.0000381987250171 -0.0055844276511581 0.0000389416093091 -0.0055939548895029 0.0000374064759881 -0.0056010135808402 0.0003138425789069 -0.0056010155808510 0.0013142569231954 -0.0056135199352720 1.7383485280458186 -0.0056248350019473 0.5991504818531905 -0.0056307640583879 0.0025434632770364 -0.0056307904290837 -0.0001100000000241 -0.0056307904290837 -0.0001200000000241 -0.0056308028081160 0.0000391396616429 -0.0056443561639028 0.0000381548014426 -0.0056690032893956 0.0000380880449146 -0.0056862609647681 0.0000390693869322 -0.0056939597988204 0.0000374199344865 -0.0057010149093326 0.0003138989410111 -0.0057010169093436 0.0013142949565538 -0.0057135201317259 1.7382426751666014 -0.0057241759902680 0.6674230051237594 -0.0057307751383832 0.0012983294061625 -0.0057307890871378 -0.0001099999999594 -0.0057307890871378 -0.0001199999999594 -0.0057308014403410 0.0000391119455871 -0.0057442589699722 0.0000381381781597 -0.0057649362624141 0.0000381986069209 -0.0057844287692967 0.0000389416411928 -0.0057939555147468 0.0000374061650595 -0.0058010135744519 0.0003138421918950 -0.0058010155744632 0.0013142565688944 -0.0058135199348562 1.7383487965575073 -0.0058248365660611 0.5989928235727868 -0.0058307640636099 0.0025426278337648 -0.0058307904259638 -0.0001100000000270 -0.0058307904259638 -0.0001200000000270 -0.0058308028049683 0.0000391397354841 -0.0058443557630925 0.0000381546599760 -0.0058690060144378 0.0000380879406790 -0.0058862562840040 0.0000390691780914 -0.0058939604443531 0.0000374196939377 -0.0059010149020677 0.0003138987293302 -0.0059010169020793 0.0013142948115643 -0.0059135201312063 1.7382436567516937 -0.0059241778495370 0.6672369542522225 -0.0059307751930923 0.0012943274182766 -0.0059307891019289 -0.0001099999999840 -0.0059307891019289 -0.0001199999999840 -0.0059308014550186 0.0000391121397378 -0.0059442587489427 0.0000381381529940 -0.0059649400481450 0.0000381984767635 -0.0059844299969901 0.0000389416750550 -0.0059939562034590 0.0000374058218854 -0.0060010135674257 0.0003138417643053 -0.0060010155674376 0.0013142561805124 -0.0060135199343997 1.7383490861799127 -0.0060248382854453 0.5988195036098587 -0.0060307640692037 0.0025417105088225 -0.0060307904223981 -0.0001099999999854 -0.0060307904223981 -0.0001199999999854 -0.0060308028013723 0.0000391398158915 -0.0060443553213549 0.0000381545033795 -0.0060690090158275 0.0000380878249470 -0.0060862511280639 0.0000390689475259 -0.0060939611674718 0.0000374194265834 -0.0061010148939989 0.0003138984936202 -0.0061010168940111 0.0013142946139262 -0.0061135201306274 1.7382447468064637 -0.0061241799163860 0.6670301263240531 -0.0061307752550801 0.0012897560783933 -0.0061307891183194 -0.0001099999999777 -0.0061307891183194 -0.0001199999999777 -0.0061308014712800 0.0000391123539384 -0.0061442585189827 0.0000381381252650 -0.0061649442224321 0.0000381983323859 -0.0061844313512008 0.0000389417102719 -0.0061939569681558 0.0000374054400715 -0.0062010135596542 0.0003138412877218 -0.0062010155596667 0.0013142557454688 -0.0062135199338960 1.7383493961881724 -0.0062248401855391 0.5986279478616505 -0.0062307640751294 0.0025406978067740 -0.0062307904182117 -0.0001099999999968 -0.0062307904182117 -0.0001199999999968 -0.0062308027971524 0.0000391399032348 -0.0062443548321751 0.0000381543285586 -0.0062690123368364 0.0000380876949770 -0.0062862454415894 0.0000390686926736 -0.0062939619767306 0.0000374191287116 -0.0063010148850042 0.0003138982287687 -0.0063010168850171 0.0013142944730771 -0.0063135201299804 1.7382459605529008 -0.0063241822250364 0.6667990909607676 -0.0063307753259024 0.0012844807215486 -0.0063307891365218 -0.0001099999999786 -0.0063307891365218 -0.0001199999999786 -0.0063308014893340 0.0000391125910078 -0.0063442582821606 0.0000381380941575 -0.0063649488497583 0.0000381981707656 -0.0063834839820086 0.0000392088080413 -0.0063915663485175 0.0000380927411008 -0.0064010269235833 0.0003150357309708 -0.0064010289235963 0.0013152999820867 -0.0064133445208674 1.7173556258862033 -0.0064135311611832 1.7383338073743964 -0.0064198916118931 1.1009281041468684 -0.0064298675027093 0.0945694368255598 -0.0064307938468772 0.0016632847021078 -0.0064308115052407 -0.0001099999999957 -0.0064308115052407 -0.0001199999999957 -0.0064308238828614 0.0000394942363261 -0.0064392562199056 0.0000389531046781 -0.0064578684986145 0.0000391978780713 -0.0064815715004847 0.0000388283894488 -0.0064929086395642 0.0000377147805171 -0.0065010170401456 0.0003142882613016 -0.0065010190401592 0.0013146787797390 -0.0065135201969711 1.7386818491177236 -0.0065238518132352 0.7010427462248263 -0.0065307840030863 0.0016998929244581 -0.0065308019661085 -0.0001099999999711 -0.0065308019661085 -0.0001199999999711 -0.0065308143234442 0.0000391996066073 -0.0065441901639625 0.0000382255896476 -0.0065690199352943 0.0000381585352347 -0.0065868873782225 0.0000391782092303 -0.0065943617972810 0.0000374419013602 -0.0066010135021030 0.0003140101452607 -0.0066010155021171 0.0013144161980764 -0.0066135200229428 1.7390439600290879 -0.0066244254616898 0.6416153528610028 -0.0066307760038976 0.0028469623089232 -0.0066308054151463 -0.0001100000000021 -0.0066308054151463 -0.0001200000000021 -0.0066308177975694 0.0000392167299136 -0.0066442727027230 0.0000382341490589 -0.0066649641493655 0.0000382864365034 -0.0066842595919997 0.0000389791375554 -0.0066947587621240 0.0000375002115836 -0.0067010387161287 0.0003158694539240 -0.0067010407161432 0.0013162742427170 -0.0067135200242235 1.7350709425249262 -0.0067245317094585 0.6265982543563238 -0.0067307327841393 0.0026965317595557 -0.0067307606873080 -0.0001099999999732 -0.0067307606873080 -0.0001199999999732 -0.0067307730701114 0.0000391670949382 -0.0067442458382878 0.0000381833738480 -0.0067649464036741 0.0000382430779143 -0.0067844369678541 0.0000389773309143 -0.0067939946605353 0.0000374329154861 -0.0068010134301615 0.0003139021291316 -0.0068010154301765 0.0013143180449789 -0.0068135199199369 1.7385773378517395 -0.0068248566109408 0.5973817930983940 -0.0068307690870084 0.0025374991538279 -0.0068307954021267 -0.0001099999999567 -0.0068307954021267 -0.0001199999999567 -0.0068308077783662 0.0000391715486904 -0.0068443601259378 0.0000381841613087 -0.0068690317601284 0.0000381161733486 -0.0068861472034406 0.0000390888516521 -0.0068939925584152 0.0000374380354194 -0.0069010147636873 0.0003139410576017 -0.0069010167637028 0.0013143384976194 -0.0069135201161782 1.7384131142945576 -0.0069242054142330 0.6647537761172210 -0.0069307793816559 0.0012434314737393 -0.0069307927842518 -0.0001099999999668 -0.0069307927842518 -0.0001199999999668 -0.0069308051341485 0.0000391360574475 -0.0069442650117589 0.0000381599012656 -0.0069649695521348 0.0000382172851166 -0.0069842536313540 0.0000389143743788 -0.0069947460649465 0.0000374358305410 -0.0070010387169864 0.0003157452461189 -0.0070010407170024 0.0013161487292043 -0.0070135200360536 1.7346897758436151 -0.0070245477744210 0.6242837097777721 -0.0070307243558953 0.0026737577520414 -0.0070307520243751 -0.0001099999999716 -0.0070307520243751 -0.0001199999999716 -0.0070307644109622 0.0000391126902520 -0.0070442391016267 0.0000381294598449 -0.0070649501010034 0.0000381931765046 -0.0070844408946127 0.0000389271028232 -0.0070940103734441 0.0000373802338868 -0.0071010133655262 0.0003138017313614 -0.0071010153655428 0.0013142168411886 -0.0071135199274102 1.7382902688260660 -0.0071248747028059 0.5950210577681725 -0.0071307626159118 0.0025208395086550 -0.0071307887593616 -0.0001099999999687 -0.0071307887593616 -0.0001199999999687 -0.0071308011385185 0.0000391296961083 -0.0071443552184056 0.0000381423927945 -0.0071690345200479 0.0000380771552960 -0.0071862092101299 0.0000390559852108 -0.0071939682909185 0.0000374063480235 -0.0072010148115771 0.0003138751346602 -0.0072010168115943 0.0013142715992231 -0.0072135201264973 1.7381923313612455 -0.0072242043209913 0.6644645611132910 -0.0072307748905750 0.0011973961791145 -0.0072307878318576 -0.0001100000000053 -0.0072307878318576 -0.0001200000000053 -0.0072308001830633 0.0000391046676359 -0.0072442643478270 0.0000381284730284 -0.0072649739253172 0.0000381883672604 -0.0072842461115149 0.0000388866201388 -0.0072947386109285 0.0000374079765927 -0.0073010387130143 0.0003156919680807 -0.0073010407130322 0.0013160951449081 -0.0073135200403285 1.7345265393589289 -0.0073245574616488 0.6230091601000627 -0.0073307207598523 0.0026625171080809 -0.0073307483130245 -0.0001100000000222 -0.0073307483130245 -0.0001200000000222 -0.0073307607011757 0.0000390896386105 -0.0073442351724917 0.0000381061444137 -0.0073649594841457 0.0000381714038231 -0.0073842258157915 0.0000388666061450 -0.0073947360828042 0.0000373883401988 -0.0074010387123879 0.0003156540838482 -0.0074010407124065 0.0013160568371011 -0.0074135200444876 1.7344106975988332 -0.0074245603452218 0.6225064362300967 -0.0074307181777193 0.0026572076269533 -0.0074307456756740 -0.0001100000000084 -0.0074307456756740 -0.0001200000000084 -0.0074307580650373 0.0000390730033233 -0.0074442323091116 0.0000380895914363 -0.0074649620853524 0.0000381561036918 -0.0074842235300630 0.0000388521912005 -0.0074947324558749 0.0000373739037157 -0.0075010387110123 0.0003156264037867 -0.0075010407110316 0.0013160288290436 -0.0075135200468119 1.7343258334627796 -0.0075245650546809 0.6218766390379709 -0.0075307163059485 0.0026517140825361 -0.0075307437474695 -0.0001099999999805 -0.0075307437474695 -0.0001199999999805 -0.0075307561376568 0.0000390609864591 -0.0075442304457860 0.0000380775088387 -0.0075649656954276 0.0000381448504180 -0.0075842221230738 0.0000388417364823 -0.0075947292217600 0.0000373633492348 -0.0076010387090188 0.0003156062786364 -0.0076010407090390 0.0013160086707587 -0.0076135200482633 1.7342641631915430 -0.0076245693244792 0.6213335101850659 -0.0076307149505737 0.0026472297158564 -0.0076307423461805 -0.0001099999999886 -0.0076307423461805 -0.0001199999999886 -0.0076307547369478 0.0000390523228512 -0.0076442289000394 0.0000380686860560 -0.0076649701106826 0.0000381365843646 -0.0076842212986288 0.0000388341951097 -0.0076947262297178 0.0000373556444863 -0.0077010387064789 0.0003155917092208 -0.0077010407065000 0.0013159940436427 -0.0077135200490515 1.7342195540694250 -0.0077245733366271 0.6208475131436195 -0.0077307139754266 0.0026434382152501 -0.0077307413323620 -0.0001100000000416 -0.0077307413323620 -0.0001200000000416 -0.0077307537235281 0.0000390461315362 -0.0077442275680267 0.0000380622566858 -0.0077649752867488 0.0000381305069379 -0.0077842209203949 0.0000388288018092 -0.0077947233549605 0.0000373500322599 -0.0078010387034316 0.0003155812310469 -0.0078010407034536 0.0013159833967553 -0.0078135200493250 1.7341875125032875 -0.0078245772455672 0.6203948784086060 -0.0078307132808642 0.0026400999998596 -0.0078307406038933 -0.0001099999999639 -0.0078307406038933 -0.0001199999999639 -0.0078307529953227 0.0000390417685776 -0.0078442263727608 0.0000380575857169 -0.0078649812143517 0.0000381260320809 -0.0078842208900679 0.0000388249966250 -0.0078947204970441 0.0000373459571826 -0.0079010386998881 0.0003155737718199 -0.0079010406999112 0.0013159760948922 -0.0079135200491943 1.7341647485992593 -0.0079245811777659 0.6199568515044017 -0.0079307127940042 0.0026370345901236 -0.0079307400860278 -0.0001099999999502 -0.0079307400860278 -0.0001199999999502 -0.0079307524776182 0.0000390387636832 -0.0079442252541640 0.0000380542074535 -0.0079649879183173 0.0000381227291115 -0.0079842211390984 0.0000388223705130 -0.0079947175709757 0.0000373430118918 -0.0080010386958375 0.0003155685472573 -0.0080010406958618 0.0013159707010781 -0.0080135200487270 1.7341488578015058 -0.0080245852416684 0.6195181077574374 -0.0080307124616362 0.0026341024096620 -0.0080307397241162 -0.0001100000000052 -0.0080307397241162 -0.0001200000000052 -0.0080307521157891 0.0000390367743624 -0.0080442241639661 0.0000380517804422 -0.0080649954519172 0.0000381202813553 -0.0080842216194037 0.0000388206252697 -0.0080947145015089 0.0000373408974541 -0.0081010386912461 0.0003155649844661 -0.0081010406912717 0.0013159672843818 -0.0081135200479772 1.7341380836510574 -0.0081245895364225 0.6190654444917583 -0.0081307122450113 0.0026311910817215 -0.0081307394782547 -0.0001099999999875 -0.0081307394782547 -0.0001199999999875 -0.0081307518699487 0.0000390355522277 -0.0081442230616601 0.0000380500541860 -0.0081650039003351 0.0000381184551408 -0.0081842223009696 0.0000388195445052 -0.0081947112163783 0.0000373393944341 -0.0082010386860592 0.0003155626662176 -0.0082010406860863 0.0013159651063859 -0.0082135200469693 1.7341311484495592 -0.0082245941594786 0.6185867026094335 -0.0082307121160523 0.0026282052102967 -0.0082307393193900 -0.0001099999999776 -0.0082307393193900 -0.0001199999999776 -0.0082307517110558 0.0000390349186111 -0.0082442219107880 0.0000380488445983 -0.0082650133775306 0.0000381170778009 -0.0082842231619303 0.0000388189714682 -0.0082947076424461 0.0000373383407666 -0.0083010386801977 0.0003155612886228 -0.0083010406802264 0.0013159638647905 -0.0083135200457164 1.7341271238660003 -0.0083245992099211 0.6180701969797150 -0.0083307120545061 0.0026250600412516 -0.0083307392264061 -0.0001099999999468 -0.0083307392264061 -0.0001199999999468 -0.0083307516180023 0.0000390347462973 -0.0083442206771358 0.0000380480168018 -0.0083650240470419 0.0000381160195414 -0.0083842242018915 0.0000388187958173 -0.0083947036990916 0.0000373376181054 -0.0084010386735547 0.0003155606349927 -0.0084010406735852 0.0013159632970548 -0.0084135200442151 1.7341253492195583 -0.0084246048013145 0.6175032714178063 -0.0084307120461701 0.0026216715908920 -0.0084307391842498 -0.0001100000000202 -0.0084307391842498 -0.0001200000000202 -0.0084307515757397 0.0000390349482340 -0.0084442193249805 0.0000380474716761 -0.0084650361114114 0.0000381151835220 -0.0084842254207368 0.0000388189401576 -0.0084946992943881 0.0000373371382002 -0.0085010386659885 0.0003155605504503 -0.0085010406660211 0.0013159634489751 -0.0085135200424522 1.7341253553918807 -0.0085246110632168 0.6168720079086981 -0.0085307120812026 0.0026179537592848 -0.0085307391822118 -0.0001099999999187 -0.0085307391822118 -0.0001199999999187 -0.0085307515735615 0.0000390354670231 -0.0085442178141673 0.0000380471357650 -0.0085650498364048 0.0000381144945513 -0.0085842268288041 0.0000388193529742 -0.0085946943169630 0.0000373368349043 -0.0086010386573121 0.0003155609274204 -0.0086010406573471 0.0013159638980316 -0.0086135200403945 1.7341268203413918 -0.0086246181560568 0.6161596438317823 -0.0086307121531766 0.0026138088538161 -0.0086307392128848 -0.0001099999999327 -0.0086307392128848 -0.0001199999999327 -0.0086307516040600 0.0000390362692267 -0.0086442160975925 0.0000380469540350 -0.0086650655711361 0.0000381138920909 -0.0086842284454321 0.0000388200029304 -0.0086946886277750 0.0000373366572381 -0.0087010386472771 0.0003155616941841 -0.0087010406473148 0.0013159650559967 -0.0087135200380008 1.7341295344145324 -0.0087246262801766 0.6153455997604977 -0.0087307122583768 0.0026091220329349 -0.0087307392714043 -0.0001099999999430 -0.0087307392714043 -0.0001199999999430 -0.0087307516623692 0.0000390373416603 -0.0087442141157512 0.0000380468842862 -0.0087650837775382 0.0000381133241590 -0.0087842303014724 0.0000388208757382 -0.0087946820464638 0.0000373365644095 -0.0088010386355492 0.0003155628075324 -0.0088010406355901 0.0013159663217805 -0.0088135200351999 1.7341333800667758 -0.0088246356987599 0.6144031271395783 -0.0088307123953959 0.0026037492244286 -0.0088307393549235 -0.0001100000000835 -0.0088307393549235 -0.0001200000000835 -0.0088307517456382 0.0000390386898696 -0.0088442117911563 0.0000380468926114 -0.0088651050749467 0.0000381127420648 -0.0088842324371552 0.0000388219718109 -0.0088946743328420 0.0000373365205010 -0.0089010386216703 0.0003155642467485 -0.0089010406217149 0.0013159680551631 -0.0089135200319030 1.7341383140173816 -0.0089246467619876 0.6132968444037616 -0.0089307125648821 0.0025975046285301 -0.0089307394622373 -0.0001100000000330 -0.0089307394622373 -0.0001200000000330 -0.0089307518526550 0.0000390403384003 -0.0089442090178143 0.0000380469489923 -0.0089651303152187 0.0000381120940654 -0.0089842349082417 0.0000388233062069 -0.0089946654099287 0.0000371343909222 -0.0090010124215391 0.0003134728150529 -0.0090010144215883 0.0013138764142886 -0.0090135200463667 1.7377735189960073 -0.0090245276400874 0.6288812018655471 -0.0090307465120069 0.0027139913147784 -0.0090307745679293 -0.0001099999999381 -0.0090307745679293 -0.0001199999999381 -0.0090307869629943 0.0000390193633225 -0.0090442179753736 0.0000380273947302 -0.0090695544233307 0.0000382203908273 -0.0090834578659363 0.0000387781539743 -0.0091010105562491 0.0003155988629998 -0.0091010125563047 0.0033160962757024 -0.0091066997820383 0.7929030535837119 -0.0091135173400631 1.7436548570326358 -0.0091286775491952 0.2078243714274053 -0.0091307181522544 0.0016616782521710 -0.0091307356239573 -0.0001099999999624 -0.0091307356239573 -0.0001199999999624 -0.0091307480714506 0.0000379829710384 -0.0091314816011253 0.0000385731942242 -0.0091824235532435 0.0000374279240559 -0.0092010273311086 0.0003133390582969 -0.0092010293311702 0.0013136103609532 -0.0092135188732127 1.7331030568603876 -0.0092290972775188 0.1459899878019348 -0.0092305183915382 0.0016955035349215 -0.0092305361191083 -0.0001099999999921 -0.0092305361191083 -0.0001199999999921 -0.0092305486584750 0.0000369775690251 -0.0092455904543345 0.0000364242051212 -0.0092710192712893 0.0000364046221858 -0.0092938523668036 0.0000359116819157 -0.0093010144104501 0.0003109033728734 -0.0093010164105210 0.0013112700529926 -0.0093135204788328 1.7292019045735563 -0.0093243948712246 0.6268992253448371 -0.0093305577182876 0.0025553409061378 -0.0093305840372366 -0.0001099999999850 -0.0093305840372366 -0.0001199999999850 -0.0093305965278395 0.0000378116984120 -0.0093439798231995 0.0000368394069885 -0.0093651404312197 0.0000370042584321 -0.0093840502245132 0.0000377611667470 -0.0093944762350899 0.0000361278833535 -0.0094010124647208 0.0003114614715371 -0.0094010144648034 0.0013118462215263 -0.0094135202482074 1.7315173883214001 -0.0094247881165503 0.5910965994752633 -0.0094306082257754 0.0024149616656350 -0.0094306331903164 -0.0001100000000018 -0.0094306331903164 -0.0001200000000018 -0.0094306456495469 0.0000381301242531 -0.0094440854286588 0.0000371409312783 -0.0094652766488402 0.0000372700987136 -0.0094841163108937 0.0000380294731485 -0.0094944788902535 0.0000363833533022 -0.0095010123272081 0.0003119673820604 -0.0095010143273073 0.0013123583892663 -0.0095135201769996 1.7330912403550112 -0.0095247921037381 0.5935872483455580 -0.0095306432421707 0.0024452034653101 -0.0095306685347343 -0.0001100000000569 -0.0095306685347343 -0.0001200000000569 -0.0095306809762012 0.0000383593915945 -0.0095440980577841 0.0000373586371529 -0.0095698659137828 0.0000375955283747 -0.0095828194149047 0.0000385218657586 -0.0095910937031427 0.0000374931232750 -0.0096010307551950 0.0003139064470818 -0.0096010327553186 0.0013141212400011 -0.0096135192876387 1.7377939371696030 -0.0096284355492900 0.2240609758374169 -0.0096306326097889 0.0019311211906562 -0.0096306527692988 -0.0001100000000480 -0.0096306527692988 -0.0001200000000480 -0.0096306651995163 0.0000382046918236 -0.0096444543204168 0.0000371296407718 -0.0096637561451325 0.0000372844223539 -0.0096747598590966 0.0000368789033821 -0.0096799888782976 0.0000376601437224 -0.0096944365317914 0.0000365632482793 -0.0097010366043411 0.0003126049064280 -0.0097010386045066 0.0013127625414071 -0.0097135152703920 1.7316404345426877 -0.0097304827557656 0.0038739367195983 -0.0097305221459456 -0.0001099999999609 -0.0097305221459456 -0.0001199999999609 -0.0097305348189819 0.0000373905075193 -0.0097385420116647 0.0000369293558621 -0.0097585488485673 0.0000372898540019 -0.0097689737729628 0.0000361956458408 -0.0097943278490165 0.0000356780863953 -0.0098010140899096 0.0003106683166087 -0.0098010160901598 0.0013110265092223 -0.0098135205995974 1.7285601059496813 -0.0098241309207249 0.6524481602748717 -0.0098305408657763 0.0026929960620297 -0.0098305685346083 -0.0001099999999354 -0.0098305685346083 -0.0001199999999354 -0.0098305810395319 0.0000377291617774 -0.0098436571856085 0.0000366810214802 -0.0098708326091070 0.0000369309183127 -0.0098829885164653 0.0000377884422639 -0.0099010254178778 0.0003137379783765 -0.0099010274183802 0.0013141403560163 -0.0099135200404879 1.7305994361741399 -0.0099254899191562 0.5200164543195506 -0.0099306141253758 0.0021483592756340 -0.0099306364602778 -0.0001099999999480 -0.0099306364602778 -0.0001199999999480 -0.0099306488955648 0.0000383990049001 -0.0099434928207454 0.0000371457476147 -0.0099721128727811 0.0000370262212812 -0.0099865504662882 0.0000384515919688 -0.0099940759825988 0.0000357949824285 +0.0000074411162734 1.5450456617530672 +0.0000135175867451 2.9963086886936563 +0.0000243728975255 2.9584757802823529 +0.0000341301817703 2.8932219230287055 +0.0000419668082203 2.8095449164508288 +0.0000497482757969 2.6930618184046562 +0.0000572600622020 2.5494624112687507 +0.0000636880998974 2.3986841730799471 +0.0000699796137668 2.2226197501326022 +0.0000763377284554 2.0175598708025779 +0.0000824355824448 1.7969977528863488 +0.0000870213395729 1.6147781572766502 +0.0000921025062619 1.3957437538837973 +0.0000973802728970 1.1503653785015329 +0.0001010215528047 0.9747706493730701 +0.0001051417367360 1.7551010968665253 +0.0001114904303338 2.9414394589868977 +0.0001135325442434 3.3132519812770598 +0.0001235467958648 2.7303538815105455 +0.0001324305002682 2.1868141102189442 +0.0001415625916711 1.6046161357024435 +0.0001522304874915 0.8946982755008063 +0.0001590990340097 0.4266806250753496 +0.0001652268292282 0.0012333691326201 +0.0001652456700230 -0.0001099999999991 +0.0001652456700230 -0.0001199999999991 +0.0001652726757904 0.0000997669534539 +0.0001684753481672 0.0000988300752551 +0.0001755835433902 0.0000974924913270 +0.0001881958870264 0.0000949822862243 +0.0001899403405953 0.0000940925377638 +0.0002010321250040 0.0004239230212402 +0.0002010341250084 0.0034245282041062 +0.0002111873570366 1.6871825956280952 +0.0002135218739120 2.0700633484996600 +0.0002299719020873 0.8202372168551484 +0.0002365397916363 0.3163930347854951 +0.0002405927805781 0.0029989837628871 +0.0002406324942505 -0.0001100000000003 +0.0002406324942505 -0.0001200000000003 +0.0002406614005734 0.0000848746594458 +0.0002492856303737 0.0000833322074769 +0.0002647859641568 0.0000810587698932 +0.0002809909980489 0.0000793120362819 +0.0002901832080116 0.0000773814954402 +0.0003010301776272 0.0003911886046920 +0.0003010321776317 0.0033935483321275 +0.0003123267308577 1.7863712826408371 +0.0003135200239766 1.9718436908718715 +0.0003357349252391 0.1168406258623208 +0.0003370956092538 0.0024785116107474 +0.0003371261196102 -0.0001100000000002 +0.0003371261196102 -0.0001200000000002 +0.0003371570667265 0.0000717823130765 +0.0003505252450378 0.0000699852005456 +0.0003644613330277 0.0000687683276134 +0.0003842812613949 0.0000670402053005 +0.0004010100533908 0.0003696610716945 +0.0004010120533963 0.0033698907637647 +0.0004071600201308 0.9411745343612795 +0.0004135180991231 1.9087803863222397 +0.0004350126294599 0.0059875570018574 +0.0004350810134314 -0.0001100000000013 +0.0004350810134314 -0.0001200000000013 +0.0004351134253458 0.0000625740856241 +0.0004629128266043 0.0000606186226350 +0.0004724238768245 0.0000591620465755 +0.0004973610802944 0.0000574099694952 +0.0005010366537378 0.0003544517086745 +0.0005010386537418 0.0013547192409730 +0.0005129353959869 1.7738575645189218 +0.0005135182974999 1.8585433765043200 +0.0005337115938409 0.0014742961891685 +0.0005337286542308 -0.0001100000000036 +0.0005337286542308 -0.0001200000000036 +0.0005337624585835 0.0000560175245551 +0.0005611156075799 0.0000544564956718 +0.0005869151688466 0.0000531406588451 +0.0006010301629342 0.0003440662981456 +0.0006010321629385 0.0013443762013091 +0.0006135119571533 1.8267651312443196 +0.0006328209998677 0.0013103985916586 +0.0006328358988985 -0.0001099999999960 +0.0006328358988985 -0.0001199999999960 +0.0006328706713298 0.0000511811315786 +0.0006774883819888 0.0000489583737586 +0.0006896964620935 0.0000482871739646 +0.0007010359757157 0.0003352895793264 +0.0007010379757199 0.0013355147314543 +0.0007135133248895 1.8014042071729197 +0.0007230070996741 0.8832877695886802 +0.0007321622012519 0.0011546159285173 +0.0007321752922728 -0.0001100000000029 +0.0007321752922728 -0.0001200000000029 +0.0007321870260846 0.0000477183935893 +0.0007408953110815 0.0000467026130926 +0.0007554194871595 0.0000468303577036 +0.0007658245522801 0.0000460156526346 +0.0007809211931861 0.0000462259859491 +0.0007903351631921 0.0000454520487529 +0.0008010362439620 0.0003293766809537 +0.0008010382439663 0.0013295799466962 +0.0008135145582523 1.7833888049494899 +0.0008303552146910 0.1352426718451653 +0.0008317197975573 0.0021136410520721 +0.0008317424670314 -0.0001099999999995 +0.0008317424670314 -0.0001199999999995 +0.0008317785922158 0.0000448749006076 +0.0008462867888461 0.0000436916997953 +0.0008712184206174 0.0000431725781366 +0.0008960626699839 0.0000426887321813 +0.0009010382727324 0.0003255033504574 +0.0009010402727377 0.0013277692384280 +0.0009117223466289 1.5162213595960452 +0.0009135161492425 1.7690388609985077 +0.0009298969084846 0.1473033157373351 +0.0009313691236334 0.0042295224065473 +0.0009314130596583 -0.0001099999999952 +0.0009314130596583 -0.0001199999999952 +0.0009314496222392 0.0000429608602653 +0.0009458873393720 0.0000418217162249 +0.0009707291195031 0.0000414320147566 +0.0009954753912765 0.0000410672625938 +0.0010010384290856 0.0003223464593753 +0.0010010404290909 0.0013238355698333 +0.0010123449087942 1.5925410671667131 +0.0010135288806243 1.7580673690626440 +0.0010293420308917 0.1806275378343746 +0.0010311390641103 0.0020416677068766 +0.0010311606616537 -0.0001100000000011 +0.0010311606616537 -0.0001200000000011 +0.0010311728148723 0.0000415320242589 +0.0010455410007519 0.0000404210964931 +0.0010700976797206 0.0000401194983774 +0.0010949142706213 0.0000398439849365 +0.0011010385466976 0.0003199839175793 +0.0011010405467030 0.0013211504987586 +0.0011135266171475 1.7510040816445414 +0.0011290268857710 0.1960307890118759 +0.0011309685303187 0.0018922713295614 +0.0011309885180068 -0.0001100000000044 +0.0011309885180068 -0.0001200000000044 +0.0011310007566213 0.0000404610769867 +0.0011452873267610 0.0000393660318997 +0.0011696268980984 0.0000391294182994 +0.0011945306722960 0.0000389223363786 +0.0012010386357174 0.0003182096568494 +0.0012010406357228 0.0013192107578261 +0.0012135263168766 1.7455548625588386 +0.0012288128189245 0.2055420376459115 +0.0012308415335815 0.0017762756600073 +0.0012308602844470 -0.0001099999999972 +0.0012308602844470 -0.0001199999999972 +0.0012308725865101 0.0000396564490159 +0.0012450962196900 0.0000385709941170 +0.0012692694043679 0.0000383809345744 +0.0012941905639751 0.0000382241316346 +0.0013010387027961 0.0003168743648456 +0.0013010407028016 0.0013177741511432 +0.0013135260536307 1.7414473542713829 +0.0013286701102715 0.2109461788858183 +0.0013307673291791 -0.0001100000000568 +0.0013307673291791 -0.0001200000000568 +0.0013307836097477 0.0000390514569363 +0.0013449538560803 0.0000379707052778 +0.0013689764346729 0.0000378140034081 +0.0013940664538923 0.0000377989847333 +0.0014010387782484 0.0003154101139829 +0.0014010407782543 0.0033174505444645 +0.0014074347431459 0.8913885147532866 +0.0014135172526013 1.7397370664203784 +0.0014286680367687 0.2048283159912459 +0.0014306791525840 0.0016563700420795 +0.0014306965738161 -0.0001099999999936 +0.0014306965738161 -0.0001199999999936 +0.0014307090214469 0.0000379887165836 +0.0014319930274625 0.0000385907179946 +0.0014516838579423 0.0000381200666603 +0.0014691829543298 0.0000373696215710 +0.0014947955019357 0.0000376897208411 +0.0015010388190638 0.0003146964258128 +0.0015010408190700 0.0033152009269681 +0.0015065384676845 0.7654079421609398 +0.0015135169766340 1.7372562040905182 +0.0015285829175754 0.2080334931996991 +0.0015306220961458 0.0016455043455163 +0.0015306393784358 -0.0001099999999945 +0.0015306393784358 -0.0001199999999945 +0.0015306518559590 0.0000376171271198 +0.0015321933702404 0.0000382282071169 +0.0015510910345844 0.0000377080832704 +0.0015689626367375 0.0000370222704974 +0.0015897222828636 0.0000372137119194 +0.0016010383258266 0.0003140943393720 +0.0016010403258311 0.0013142416994367 +0.0016135151062932 1.7355375322221787 +0.0016305817361458 0.0037250830665354 +0.0016306196450760 -0.0001100000000104 +0.0016306196450760 -0.0001200000000104 +0.0016306321779210 0.0000377493470376 +0.0016438401047192 0.0000368077445906 +0.0016648030094411 0.0000369961227863 +0.0016838069455155 0.0000377202032271 +0.0017010100686229 0.0003135180400685 +0.0017010120686293 0.0033140123138313 +0.0017062868793903 0.7329892079508723 +0.0017135167669068 1.7378661247185943 +0.0017285544230214 0.2074253967480183 +0.0017305823329197 0.0016398912560892 +0.0017305995154019 -0.0001099999999963 +0.0017305995154019 -0.0001199999999963 +0.0017306120356881 0.0000370881460298 +0.0017483289781973 0.0000366000800631 +0.0017587608014095 0.0000375640048048 +0.0017763790509527 0.0000371950538217 +0.0017939813937297 0.0000364878968981 +0.0018010388686324 0.0003135364066606 +0.0018010408686381 0.0013142366693306 +0.0018135185760382 1.7267827317266184 +0.0018228731392606 0.7785131436879730 +0.0018304915227413 0.0027270891795283 +0.0018305195748075 -0.0001100000000015 +0.0018305195748075 -0.0001200000000015 +0.0018305321690488 0.0000375726710235 +0.0018386244060485 0.0000371618417860 +0.0018590440121646 0.0000374759663273 +0.0018689587047743 0.0000363686168445 +0.0018897214753168 0.0000365891198087 +0.0019010383830044 0.0003128855058383 +0.0019010403830092 0.0013130307056492 +0.0019135152711357 1.7318156354713596 +0.0019304967858400 0.0037555762111132 +0.0019305348941286 -0.0001099999999896 +0.0019305348941286 -0.0001199999999896 +0.0019305474750470 0.0000371921547287 +0.0019437454668112 0.0000362638590185 +0.0019647012351838 0.0000365013875074 +0.0019836103908462 0.0000372543922567 +0.0020010100719645 0.0003125655316022 +0.0020010120719711 0.0033130592275388 +0.0020061542958316 0.7134481284466681 +0.0020135166204031 1.7351042850401581 +0.0020284808573783 0.2088813221892631 +0.0020305190056072 0.0016298369627721 +0.0020305360545916 -0.0001100000000218 +0.0020305360545916 -0.0001200000000218 +0.0020305486089703 0.0000366715158034 +0.0020481389236541 0.0000361960029607 +0.0020585847549331 0.0000371869864296 +0.0020762783842586 0.0000368145346278 +0.0020939025135778 0.0000361288399703 +0.0021010389031596 0.0003128488801008 +0.0021010409031656 0.0013135194877666 +0.0021135186319865 1.7246953348926626 +0.0021227099174975 0.7915057861608747 +0.0021304432011505 0.0027612428238616 +0.0021304715460190 -0.0001100000000190 +0.0021304715460190 -0.0001200000000190 +0.0021304841679623 0.0000372456429957 +0.0021386447844454 0.0000368464022255 +0.0021589153196522 0.0000371789555907 +0.0021688948697826 0.0000360770723762 +0.0021896600028682 0.0000363253974821 +0.0022010383325644 0.0003123571654060 +0.0022010403325694 0.0013125024335844 +0.0022135153140593 1.7302197397641972 +0.0022304599451717 0.0037820075435018 +0.0022304982699472 -0.0001099999999932 +0.0022304982699472 -0.0001199999999932 +0.0022305108725645 0.0000369493798679 +0.0022436956734145 0.0000360269742026 +0.0022646515620262 0.0000362872552825 +0.0022835165706852 0.0000370526853520 +0.0023010100749461 0.0003121503443306 +0.0023010120749530 0.0033126433423904 +0.0023060927646242 0.7044340325898477 +0.0023135165582238 1.7339054140196748 +0.0023284504454268 0.2093672808280448 +0.0023304915865580 0.0016257213478756 +0.0023305085801986 -0.0001100000000027 +0.0023305085801986 -0.0001200000000027 +0.0023305211494408 0.0000364905775607 +0.0023480556166258 0.0000360204212064 +0.0023585089301070 0.0000370231927308 +0.0023762348190363 0.0000366490964703 +0.0023938684314384 0.0000359726840477 +0.0024010389175680 0.0003125501306394 +0.0024010409175742 0.0013132083127298 +0.0024135186578971 1.7237884341439538 +0.0024226396772140 0.7970984057287938 +0.0024304222510926 0.0027760892626163 +0.0024304507229441 -0.0001100000000168 +0.0024304507229441 -0.0001200000000168 +0.0024304633569608 0.0000371035120185 +0.0024386537640844 0.0000367092441896 +0.0024588590815738 0.0000370497164332 +0.0024688673200356 0.0000359502489820 +0.0024896340523742 0.0000362107010711 +0.0025010383085088 0.0003121274086898 +0.0025010403085141 0.0013122726589566 +0.0025135153329921 1.7295261041752568 +0.0025304439559221 0.0037935450764821 +0.0025304823751034 -0.0001100000000203 +0.0025304823751034 -0.0001200000000203 +0.0025304949871763 0.0000368438198909 +0.0025436740654969 0.0000359239013651 +0.0025646307777674 0.0000361940910374 +0.0025834759450899 0.0000369649880294 +0.0026010100778393 0.0003119697473060 +0.0026010120778465 0.0033124624185525 +0.0026060660039675 0.7005173423197437 +0.0026135165318050 1.7333838057955173 +0.0026284374978439 0.2095518035683537 +0.0026304796749234 0.0016239824383750 +0.0026304966450252 -0.0001099999999850 +0.0026304966450252 -0.0001199999999850 +0.0026305092207425 0.0000364119002345 +0.0026480191759545 0.0000359440352493 +0.0026584760937339 0.0000369519688809 +0.0026762165776823 0.0000365771770728 +0.0026938534367672 0.0000359047020494 +0.0027010389231683 0.0003124201734451 +0.0027010409231748 0.0013130732179861 +0.0027135186694642 1.7233940363683538 +0.0027226092666229 0.7995197304788989 +0.0027304131476676 0.0027825387454311 +0.0027304416746132 -0.0001099999999936 +0.0027304416746132 -0.0001199999999936 +0.0027304543138882 0.0000370417008878 +0.0027386576056955 0.0000366495476448 +0.0027588342755316 0.0000369934696350 +0.0027688552435774 0.0000358950283483 +0.0027896236409167 0.0000361607473240 +0.0028010382967381 0.0003120274295376 +0.0028010402967436 0.0013121726995291 +0.0028135153412807 1.7292244686229701 +0.0028304370054994 0.0037985737788881 +0.0028304754658105 -0.0001100000000073 +0.0028304754658105 -0.0001200000000073 +0.0028304880820017 0.0000367979093070 +0.0028436645114182 0.0000358790099823 +0.0028646226424120 0.0000361534995973 +0.0028834579759970 0.0000369268713095 +0.0029010100808306 0.0003118911942146 +0.0029010120808380 0.0033123837181179 +0.0029060543594456 0.6988135366349764 +0.0029135165204287 1.7331565714028629 +0.0029284320170711 0.2096165582392510 +0.0029304744918341 0.0016232521104324 +0.0029304914519577 -0.0001099999999786 +0.0029304914519577 -0.0001199999999786 +0.0029305040304952 0.0000363776870301 +0.0029480029726132 0.0000359107764621 +0.0029584616451298 0.0000369210105262 +0.0029762094344827 0.0000365459464063 +0.0029938466367882 0.0000358750725947 +0.0030010389248762 0.0003123636134720 +0.0030010409248830 0.0013130144258328 +0.0030135186745550 1.7232225007686137 +0.0030225960528364 0.8005720521314806 +0.0030304091885452 0.0027853476976982 +0.0030304377394780 -0.0001100000000207 +0.0030304377394780 -0.0001200000000207 +0.0030304503810427 0.0000370148254133 +0.0030386591755335 0.0000366235427068 +0.0030588230942067 0.0000369689907679 +0.0030688498291641 0.0000358709566890 +0.0030896200722487 0.0000361389499809 +0.0031010382903846 0.0003119839085514 +0.0031010402903905 0.0013121292010197 +0.0031135153448955 1.7290933501543260 +0.0031304339828809 0.0038007643414982 +0.0031304724611055 -0.0001100000000014 +0.0031304724611055 -0.0001200000000014 +0.0031304850790900 0.0000367779522357 +0.0031436601493085 0.0000358594311799 +0.0031646200945919 0.0000361357746799 +0.0031834497460329 0.0000369103328751 +0.0032010100840197 0.0003118570531565 +0.0032010120840274 0.0033123495124489 +0.0032060492912095 0.6980718354417015 +0.0032135165155017 1.7330574212449414 +0.0032284294363558 0.2096644145962759 +0.0032304722340752 0.0016229028709772 +0.0032304891895480 -0.0001100000000112 +0.0032304891895480 -0.0001200000000112 +0.0032305017693126 0.0000363628228313 +0.0032479955165665 0.0000358962806597 +0.0032584551203568 0.0000369075782073 +0.0032762071964821 0.0000365324300965 +0.0032938433599667 0.0000358621302606 +0.0033010389248228 0.0003123389898621 +0.0033010409248300 0.0013129888997550 +0.0033135186767832 1.7231479459411543 +0.0033225903012023 0.8010303219498260 +0.0033304074665822 0.0027865734161722 +0.0033304360279842 -0.0001099999999917 +0.0033304360279842 -0.0001199999999917 +0.0033304486705460 0.0000370031551614 +0.0033386597406511 0.0000366121977331 +0.0033588178044369 0.0000369583408089 +0.0033688472879613 0.0000358604384967 +0.0033896195725157 0.0000361294005513 +0.0034010382863115 0.0003119649585746 +0.0034010402863177 0.0013121102680955 +0.0034135153464678 1.7290364518784993 +0.0034304326689733 0.0038017183615573 +0.0034304711549989 -0.0001099999999890 +0.0034304711549989 -0.0001199999999890 +0.0034304837737642 0.0000367692932260 +0.0034436580204711 0.0000358508659954 +0.0034646200734321 0.0000361279961069 +0.0034834457001691 0.0000369031913602 +0.0035010100874729 0.0003118422487886 +0.0035010120874810 0.0033123346790239 +0.0035060470856955 0.6977488062221701 +0.0035135165133633 1.7330139572251837 +0.0035284284093564 0.2096751455911154 +0.0035304712483258 0.0016227669227109 +0.0035304882019325 -0.0001100000000112 +0.0035304882019325 -0.0001200000000112 +0.0035305007822319 0.0000363563826871 +0.0035479918273650 0.0000358899494909 +0.0035584520128839 0.0000369017784854 +0.0035762071782682 0.0000365266321889 +0.0035938415830339 0.0000358564472858 +0.0036010389239260 0.0003123282662484 +0.0036010409239335 0.0013129778148066 +0.0036135186777569 1.7231156129027099 +0.0036225877925689 0.8012304519592587 +0.0036304067181933 0.0027871107679981 +0.0036304352841896 -0.0001099999999796 +0.0036304352841896 -0.0001199999999796 +0.0036304479271855 0.0000369981060434 +0.0036386598559090 0.0000366072314712 +0.0036588150373016 0.0000369537115441 +0.0036688459773036 0.0000358558162058 +0.0036896205106464 0.0000361251764795 +0.0037010382831096 0.0003119567035873 +0.0037010402831162 0.0013121020072762 +0.0037135153471485 1.7290118772744412 +0.0037304320988451 0.0038021341048888 +0.0037304705882706 -0.0001100000000019 +0.0037304705882706 -0.0001200000000019 +0.0037304832073760 0.0000367655550001 +0.0037436568395753 0.0000358470909165 +0.0037646212592122 0.0000361245409190 +0.0037834434255405 0.0000369001461825 +0.0038010100912458 0.0003118358680542 +0.0038010120912542 0.0033123282860867 +0.0038060461260273 0.6976079338941577 +0.0038135165124356 1.7329947117450006 +0.0038284279900718 0.2096766658713086 +0.0038304708160157 0.0016227126225196 +0.0038304877688582 -0.0001100000000219 +0.0038304877688582 -0.0001200000000219 +0.0038305003493905 0.0000363536126329 +0.0038479897317613 0.0000358871702587 +0.0038584503631393 0.0000368993061741 +0.0038762082226955 0.0000365242028915 +0.0038938404231615 0.0000358539195113 +0.0039010389225736 0.0003123235931422 +0.0039010409225815 0.0013129728340913 +0.0039135186781824 1.7231016723206696 +0.0039225866924259 0.8013185350830475 +0.0039304063936680 0.0027873499989781 +0.0039304349617167 -0.0001100000000000 +0.0039304349617167 -0.0001200000000000 +0.0039304476049021 0.0000369959423395 +0.0039386597622710 0.0000366050390874 +0.0039588133198346 0.0000369517039912 +0.0039688451807041 0.0000358537560755 +0.0039896221943828 0.0000361232636093 +0.0040010382801479 0.0003119531038853 +0.0040010402801549 0.0013120984241010 +0.0040135153474952 1.7290014000251404 +0.0040304318527802 0.0038023151508070 +0.0040304703436861 -0.0001100000000001 +0.0040304703436861 -0.0001200000000001 +0.0040304829629397 0.0000367639621633 +0.0040436560450858 0.0000358453962808 +0.0040646230947718 0.0000361229605629 +0.0040834418687081 0.0000368988908418 +0.0041010100954004 0.0003118331605626 +0.0041010120954092 0.0033123255731052 +0.0041060457094587 0.6975464247349078 +0.0041135165120893 1.7329859848724203 +0.0041284278031441 0.2096774309405380 +0.0041304706244332 0.0016226886472868 +0.0041304875769397 -0.0001100000000405 +0.0041304875769397 -0.0001200000000405 +0.0041305001575734 0.0000363524436265 +0.0041479882789136 0.0000358859346774 +0.0041584493168659 0.0000368982877662 +0.0041762098415688 0.0000365232499515 +0.0041938394911613 0.0000358527594028 +0.0042010389209245 0.0003123215529476 +0.0042010409209328 0.0013129707943628 +0.0042135186784247 1.7230957580645978 +0.0042225862045594 0.8013579514970429 +0.0042304062538727 0.0027874600099077 +0.0042304348228728 -0.0001099999999592 +0.0042304348228728 -0.0001199999999592 +0.0042304474661409 0.0000369950381745 +0.0042386595623689 0.0000366040507396 +0.0042588120044668 0.0000369508383765 +0.0042688445836501 0.0000358528058903 +0.0042896243392365 0.0000361223487764 +0.0043010382771135 0.0003119515293828 +0.0043010402771208 0.0013120968401286 +0.0043135153476175 1.7289970712937535 +0.0043304317477722 0.0038023944721155 +0.0043304702393273 -0.0001100000000239 +0.0043304702393273 -0.0001200000000239 +0.0043304828586455 0.0000367633067242 +0.0043436553876205 0.0000358446014314 +0.0043646253563480 0.0000361221878810 +0.0043834405603533 0.0000368984222837 +0.0044010100999904 0.0003118320595502 +0.0044010120999997 0.0033123244682079 +0.0044060455280202 0.6975192469054340 +0.0044135165119177 1.7329817993178198 +0.0044284276191528 0.2096878149256580 +0.0044304705372410 0.0016226618565566 +0.0044304874894403 -0.0001099999999881 +0.0044304874894403 -0.0001199999999881 +0.0044305000701177 0.0000363519758094 +0.0044479870431400 0.0000358853681921 +0.0044584484942114 0.0000368979089075 +0.0044762118387425 0.0000365229513394 +0.0044938386099447 0.0000358521880414 +0.0045010389190198 0.0003123206584486 +0.0045010409190286 0.0013129698233934 +0.0045135186785086 1.7230933452239321 +0.0045225859839704 0.8013761064773460 +0.0045304061945087 0.0027875132613840 +0.0045304347639759 -0.0001100000000205 +0.0045304347639759 -0.0001200000000205 +0.0045304474072802 0.0000369946868560 +0.0045386592974725 0.0000366035829803 +0.0045588108005117 0.0000369504711786 +0.0045688440447055 0.0000358523331062 +0.0045896268462078 0.0000361218591897 +0.0046010382738514 0.0003119508364750 +0.0046010402738592 0.0013120961054506 +0.0046135153476651 1.7289954513543668 +0.0046304317045305 0.0038024292960562 +0.0046304701963708 -0.0001100000000202 +0.0046304701963708 -0.0001200000000202 +0.0046304828157174 0.0000367630641593 +0.0046436547541420 0.0000358441920637 +0.0046646279733073 0.0000361217572429 +0.0046834392885138 0.0000368983055485 +0.0047010101050972 0.0003118316678528 +0.0047010121051071 0.0033123240741380 +0.0047060454497145 0.6975070763227899 +0.0047135165118462 1.7329795253211648 +0.0047284276448003 0.2096811229428375 +0.0047304704947870 0.0016226679247750 +0.0047304874470272 -0.0001100000000103 +0.0047304874470272 -0.0001200000000103 +0.0047305000277241 0.0000363518182084 +0.0047479858334821 0.0000358850898622 +0.0047584477278396 0.0000368978161809 +0.0047762141547981 0.0000365229516707 +0.0047938376948617 0.0000358518652820 +0.0048010389168643 0.0003123202624303 +0.0048010409168736 0.0013129695984819 +0.0048135186785494 1.7230924809702428 +0.0048225858761956 0.8013853938155019 +0.0048304061704060 0.0027875439537749 +0.0048304347401508 -0.0001099999999621 +0.0048304347401508 -0.0001199999999621 +0.0048304473834713 0.0000369945813726 +0.0048386589836427 0.0000366033373441 +0.0048588095676371 0.0000369503221228 +0.0048688434972999 0.0000358520610401 +0.0048896297006874 0.0000361215437801 +0.0049010382702548 0.0003119505264731 +0.0049010402702632 0.0013120957975849 +0.0049135153476803 1.7289950427323468 +0.0049304316884750 0.0038024449606406 +0.0049304701804442 -0.0001099999999954 +0.0049304701804442 -0.0001199999999954 +0.0049304827998033 0.0000367630065694 +0.0049436540885021 0.0000358439427258 +0.0049646309454412 0.0000361214639045 +0.0049834379463981 0.0000368983527417 +0.0050010101108132 0.0003118315957243 +0.0050010121108236 0.0033123240016656 +0.0050060454163928 0.6975013973180989 +0.0050135165118191 1.7329780652135414 +0.0050284274438791 0.2096993201416024 +0.0050304704717876 0.0016226364388750 +0.0050304874237097 -0.0001099999999980 +0.0050304874237097 -0.0001199999999980 +0.0050305000044143 0.0000363518015430 +0.0050479845486023 0.0000358849329125 +0.0050584469321935 0.0000368978572372 +0.0050762167900889 0.0000365230984028 +0.0050938366981310 0.0000358516413647 +0.0051010389144311 0.0003123200824900 +0.0051010409144410 0.0013129693178287 +0.0051135186785688 1.7230923137043181 +0.0051225858187923 0.8013907149399921 +0.0051304061618815 0.0027875642688442 +0.0051304347318158 -0.0001100000000414 +0.0051304347318158 -0.0001200000000414 +0.0051304473751437 0.0000369945890042 +0.0051386586224990 0.0000366031831223 +0.0051588082334207 0.0000369502695766 +0.0051688429061623 0.0000358518678566 +0.0051896329333814 0.0000361212909381 +0.0052010382662338 0.0003119503822222 +0.0052010402662428 0.0013120956601084 +0.0052135153476807 1.7289951994691863 +0.0052304316846166 0.0038024520790942 +0.0052304701766445 -0.0001099999999801 +0.0052304701766445 -0.0001199999999801 +0.0052304827960092 0.0000367630358093 +0.0052436533582496 0.0000358437537888 +0.0052646343112938 0.0000361212164689 +0.0052834364710414 0.0000368984841807 +0.0053010101172569 0.0003118316754869 +0.0053010121172680 0.0033123240803669 +0.0053060454029108 0.6974985153820945 +0.0053135165118114 1.7329768526924476 +0.0053284275091083 0.2096911269193181 +0.0053304704560283 0.0016226482606296 +0.0053304874080632 -0.0001100000000163 +0.0053304874080632 -0.0001200000000163 +0.0053304999887718 0.0000363518530394 +0.0053479831333354 0.0000358848240939 +0.0053584460649472 0.0000368979673105 +0.0053762197833932 0.0000365233287256 +0.0053938355859215 0.0000358514492870 +0.0054010389116743 0.0003123199956714 +0.0054010409116849 0.0013129692033101 +0.0054135186785808 1.7230924787078694 +0.0054225857809245 0.8013945825687777 +0.0054304061604090 0.0027875815275190 +0.0054304347305090 -0.0001099999999675 +0.0054304347305090 -0.0001199999999675 +0.0054304473738404 0.0000369946532090 +0.0054386582104118 0.0000366030622305 +0.0054588067457603 0.0000369502607778 +0.0054688422474688 0.0000358516987533 +0.0054896366041112 0.0000361210494406 +0.0055010382616907 0.0003119503089271 +0.0055010402617004 0.0013120955634405 +0.0055135153476732 1.7289956485407378 +0.0055304316865005 0.0038024556190481 +0.0055304701785580 -0.0001099999999575 +0.0055304701785580 -0.0001199999999575 +0.0055304827979254 0.0000367631104580 +0.0055436525384944 0.0000358435799291 +0.0055646381376647 0.0000361209723131 +0.0055834348121291 0.0000368986679643 +0.0056010101245748 0.0003118318374836 +0.0056010121245866 0.0033123242419060 +0.0056060453977291 0.6974967269640675 +0.0056135165118128 1.7329756906585989 +0.0056284275020774 0.2096905306094541 +0.0056304704429525 0.0016226482827137 +0.0056304873949862 -0.0001099999999812 +0.0056304873949862 -0.0001199999999812 +0.0056304999756965 0.0000363519426981 +0.0056479815375208 0.0000358847303636 +0.0056584450901397 0.0000368981207826 +0.0056762231962768 0.0000365236192789 +0.0056938343259735 0.0000358512573869 +0.0057010389085302 0.0003123199482263 +0.0057010409085415 0.0013129690728932 +0.0057135186785897 1.7230928230205178 +0.0057225857495266 0.8013980595081323 +0.0057304061623309 0.0027875987906315 +0.0057304347325994 -0.0001099999999714 +0.0057304347325994 -0.0001199999999714 +0.0057304473759329 0.0000369947509478 +0.0057386577389637 0.0000366029479570 +0.0057588050585479 0.0000369502731514 +0.0057688415001676 0.0000358515275853 +0.0057896407976688 0.0000361207935764 +0.0058010382565072 0.0003119502648897 +0.0058010402565177 0.0013120955510261 +0.0058135153476620 1.7289962811466655 +0.0058304316914048 0.0038024579250554 +0.0058304701834822 -0.0001099999999795 +0.0058304701834822 -0.0001199999999795 +0.0058304828028510 0.0000367632141268 +0.0058436516045134 0.0000358433988485 +0.0058646425190208 0.0000361207089794 +0.0058834329215058 0.0000368988936068 +0.0059010101329582 0.0003118320545277 +0.0059010121329708 0.0033123244582730 +0.0059060453965666 0.6974953752087608 +0.0059135165118189 1.7329744492366941 +0.0059284275025525 0.2096891753084096 +0.0059304704300292 0.0016226496391649 +0.0059304873820757 -0.0001099999999813 +0.0059304873820757 -0.0001199999999813 +0.0059304999627867 0.0000363520592866 +0.0059479797134590 0.0000358846360252 +0.0059584439768010 0.0000368983094507 +0.0059762271177131 0.0000365239655375 +0.0059938328818623 0.0000358510487114 +0.0060010389049130 0.0003123199165727 +0.0060010409049252 0.0013129689650542 +0.0060135186785976 1.7230932883260692 +0.0060225857176431 0.8014017460042986 +0.0060304061661281 0.0027876181340744 +0.0060304347365868 -0.0001100000000065 +0.0060304347365868 -0.0001200000000065 +0.0060304473799219 0.0000369948742799 +0.0060386571959179 0.0000366028267816 +0.0060588031199576 0.0000369502973528 +0.0060688406410507 0.0000358513399841 +0.0060896456321081 0.0000361205073001 +0.0061010382505367 0.0003119502318445 +0.0061010402505481 0.0013120955111656 +0.0061135153476468 1.7289970629817573 +0.0061304316982771 0.0038024595251987 +0.0061304701903687 -0.0001099999999678 +0.0061304701903687 -0.0001199999999678 +0.0061304828097384 0.0000367633419914 +0.0061436505278265 0.0000358431975606 +0.0061646475819270 0.0000361204117274 +0.0061834307412005 0.0000368991612368 +0.0062010101426596 0.0003118323194552 +0.0062010121426731 0.0033123247224128 +0.0062060453975865 0.6974941544168053 +0.0062135165118281 1.7329730507604986 +0.0062284275222188 0.2096857469401714 +0.0062304704159628 0.0016226543003240 +0.0062304873680550 -0.0001099999999712 +0.0062304873680550 -0.0001199999999712 +0.0062304999487664 0.0000363522005159 +0.0062479776029555 0.0000358845324590 +0.0062584426882428 0.0000368985338565 +0.0062762316673053 0.0000365243729029 +0.0062938312077073 0.0000358508116568 +0.0063010389007085 0.0003123198898825 +0.0063010409007217 0.0013129689793982 +0.0063135186786068 1.7230938591206346 +0.0063225856849043 0.8014056425791841 +0.0063304061712572 0.0027876389703785 +0.0063304347419215 -0.0001099999999869 +0.0063304347419215 -0.0001199999999869 +0.0063304473852576 0.0000369950226311 +0.0063386565634248 0.0000366026904629 +0.0063588008675282 0.0000369503301812 +0.0063688396413716 0.0000358511257502 +0.0063896512642818 0.0000361201775327 +0.0064010382435830 0.0003119502013334 +0.0064010402435955 0.0013120954898669 +0.0064135153476292 1.7289979973700225 +0.0064304317068293 0.0038024609568362 +0.0064304701989338 -0.0001100000000351 +0.0064304701989338 -0.0001200000000351 +0.0064304828183042 0.0000367634949951 +0.0064436492714436 0.0000358429659179 +0.0064646534973680 0.0000361200674775 +0.0064834281947826 0.0000368994773131 +0.0065010101540145 0.0003118326358402 +0.0065010121540291 0.0033123250373456 +0.0065060453993663 0.6974928139768568 +0.0065135165118397 1.7329714395576046 +0.0065284274794414 0.2096884760556409 +0.0065304704000179 0.0016226489961061 +0.0065304873520579 -0.0001099999999931 +0.0065304873520579 -0.0001199999999931 +0.0065304999327694 0.0000363523689291 +0.0065479751292887 0.0000358844134447 +0.0065584411764091 0.0000368987998545 +0.0065762370075475 0.0000365248537505 +0.0065938292429166 0.0000358505353750 +0.0066010388957615 0.0003123198632300 +0.0066010408957759 0.0013129691568800 +0.0066135186786185 1.7230945449454917 +0.0066225856457584 0.8014103151834246 +0.0066304061776036 0.0027876642276636 +0.0066304347485173 -0.0001100000000255 +0.0066304347485173 -0.0001200000000255 +0.0066304473918548 0.0000369951995355 +0.0066386558187924 0.0000366025318183 +0.0066587982141185 0.0000369503710331 +0.0066688384623391 0.0000358508748713 +0.0066896579079802 0.0000361197900182 +0.0067010382353800 0.0003119501689453 +0.0067010402353937 0.0013120954365584 +0.0067135153476071 1.7289991102693421 +0.0067304317171596 0.0038024625265165 +0.0067304702092783 -0.0001099999999870 +0.0067304702092783 -0.0001199999999870 +0.0067304828286494 0.0000367636777090 +0.0067436477855002 0.0000358426932532 +0.0067646604988097 0.0000361196611566 +0.0067834251806034 0.0000368998533396 +0.0068010101674856 0.0003118330140893 +0.0068010121675016 0.0033123254142291 +0.0068060454016312 0.6974912482470256 +0.0068135165118537 1.7329695402748171 +0.0068284273934498 0.2096953215498938 +0.0068304703813443 0.0016226369388094 +0.0068304873332657 -0.0001100000000335 +0.0068304873332657 -0.0001200000000335 +0.0068304999139770 0.0000363525704702 +0.0068479721893075 0.0000358842728419 +0.0068584393772377 0.0000368991177249 +0.0068762433635158 0.0000365254275182 +0.0068938269039303 0.0000358502070239 +0.0069010388898564 0.0003123198335459 +0.0069010408898722 0.0013129689563969 +0.0069135186786292 1.7230953696259292 +0.0069225856008361 0.8014157189154956 +0.0069304061853264 0.0027876935713124 +0.0069304347565300 -0.0001099999999587 +0.0069304347565300 -0.0001199999999587 +0.0069304473998689 0.0000369954120198 +0.0069386549284963 0.0000366023430495 +0.0069587950434132 0.0000369504212089 +0.0069688370508526 0.0000358505752776 +0.0069896658616155 0.0000361193264922 +0.0070010382255577 0.0003119501320539 +0.0070010402255729 0.0013120954134427 +0.0070135153475814 1.7290004477396252 +0.0070304317296412 0.0038024644231802 +0.0070304702217774 -0.0001100000000409 +0.0070304702217774 -0.0001200000000409 +0.0070304828411493 0.0000367638981175 +0.0070436460004439 0.0000358423661049 +0.0070646689162408 0.0000361191728662 +0.0070834215572043 0.0000369003067818 +0.0071010101837256 0.0003118334713428 +0.0071010121837432 0.0033123258688928 +0.0071060454045773 0.6974893921385704 +0.0071135165118706 1.7329672335812409 +0.0071284274745587 0.2096847596651801 +0.0071304703586247 0.0016226525742797 +0.0071304873107003 -0.0001100000000286 +0.0071304873107003 -0.0001200000000286 +0.0071304998914121 0.0000363528146832 +0.0071479686389209 0.0000358841031026 +0.0071584372015417 0.0000368995030886 +0.0071762510557634 0.0000365261230158 +0.0071938240727098 0.0000358498093530 +0.0072010388826854 0.0003123197989618 +0.0072010408827029 0.0013129688740155 +0.0072135186786433 1.7230963745490977 +0.0072225855455296 0.8014223637461525 +0.0072304061947745 0.0027877297360103 +0.0072304347663355 -0.0001099999999703 +0.0072304347663355 -0.0001199999999703 +0.0072304474096763 0.0000369956710169 +0.0072386538459654 0.0000366021136620 +0.0072587911856643 0.0000369504832380 +0.0072688353301799 0.0000358502103715 +0.0072896755565023 0.0000361187612393 +0.0073010382135847 0.0003119500882895 +0.0073010402136018 0.0013120953731113 +0.0073135153475500 1.7290020805088611 +0.0073304317449170 0.0038024664843349 +0.0073304702370720 -0.0001100000000156 +0.0073304702370720 -0.0001200000000156 +0.0073304828564448 0.0000367641685100 +0.0073436438159415 0.0000358419656420 +0.0073646792283152 0.0000361185742943 +0.0073834171201016 0.0000369008636112 +0.0074010102036860 0.0003118340342488 +0.0074010122037057 0.0033123264297104 +0.0074060454089380 0.6974872139955143 +0.0074135165118919 1.7329644251599308 +0.0074284273587305 0.2096937379303505 +0.0074304703311008 0.0016226365903455 +0.0074304872830193 -0.0001100000000083 +0.0074304872830193 -0.0001200000000083 +0.0074304998637308 0.0000363531163480 +0.0074479642618854 0.0000358838934922 +0.0074584345135100 0.0000368999796869 +0.0074762605540415 0.0000365269829024 +0.0074938205750887 0.0000358493172794 +0.0075010388737921 0.0003123197569293 +0.0075010408738118 0.0013129688014764 +0.0075135186786611 1.7230976228066115 +0.0075225854765382 0.8014306486793175 +0.0075304062065312 0.0027877748521194 +0.0075304347785381 -0.0001100000000080 +0.0075304347785381 -0.0001200000000080 +0.0075304474218811 0.0000369959932134 +0.0075386525012034 0.0000366018285525 +0.0075587863911499 0.0000369505614613 +0.0075688331863688 0.0000358497557474 +0.0075896876318588 0.0000361180565303 +0.0076010381986648 0.0003119500346204 +0.0076010401986843 0.0013120953273025 +0.0076135153475104 1.7290041167150156 +0.0076304317639781 0.0038024693834148 +0.0076304702561598 -0.0001099999999910 +0.0076304702561598 -0.0001199999999910 +0.0076304828755338 0.0000367645076244 +0.0076436410804525 0.0000358414636775 +0.0076646921530227 0.0000361178232227 +0.0076834115563468 0.0000369015636265 +0.0077010102288102 0.0003118347432231 +0.0077010122288323 0.0033123271363180 +0.0077060454137084 0.6974843736656197 +0.0077135165119181 1.7329608845024407 +0.0077284272775004 0.2096984651671193 +0.0077304702963869 0.0016226270064536 +0.0077304872482115 -0.0001099999999716 +0.0077304872482115 -0.0001199999999716 +0.0077304998289229 0.0000363534979682 +0.0077479587341469 0.0000358836278344 +0.0077584311105204 0.0000369005838127 +0.0077762725796180 0.0000365280730843 +0.0077938161446214 0.0000358486924091 +0.0078010388624722 0.0003123197044921 +0.0078010408624946 0.0013129688179785 +0.0078135186786840 1.7230992123396325 +0.0078225853905827 0.8014410062335627 +0.0078304062215320 0.0027878312495814 +0.0078304347940963 -0.0001099999999260 +0.0078304347940963 -0.0001199999999260 +0.0078304474374419 0.0000369964047425 +0.0078386507850986 0.0000366014644560 +0.0078587802725943 0.0000369506630012 +0.0078688304415349 0.0000358491735176 +0.0078897030901796 0.0000361171529495 +0.0079010381795616 0.0003119499672817 +0.0079010401795841 0.0013120952432618 +0.0079135153474593 1.7290067250681542 +0.0079304317884180 0.0038024728592076 +0.0079304702806317 -0.0001100000000355 +0.0079304702806317 -0.0001200000000355 +0.0079304829000072 0.0000367649453933 +0.0079436375560113 0.0000358408159393 +0.0079647088291946 0.0000361168525410 +0.0079834043775336 0.0000369024699223 +0.0080010102613989 0.0003118356638877 +0.0080010122614243 0.0033123280541984 +0.0080060454200587 0.6974807126941254 +0.0080135165119524 1.7329563055193680 +0.0080284270687735 0.2097151304905159 +0.0080304702515688 0.0016225976899852 +0.0080304872031055 -0.0001099999999324 +0.0080304872031055 -0.0001199999999324 +0.0080304997838162 0.0000363539961617 +0.0080479515318219 0.0000358832800727 +0.0080584266624305 0.0000369013745424 +0.0080762882952100 0.0000365295002274 +0.0080938103503701 0.0000358478724730 +0.0081010388475755 0.0003123196372712 +0.0081010408476015 0.0013129686530473 +0.0081135186787132 1.7231013066230501 +0.0081225852756981 0.8014548202905636 +0.0081304062413025 0.0027879065963618 +0.0081304348146115 -0.0001099999999549 +0.0081304348146115 -0.0001199999999549 +0.0081304474579607 0.0000369969485618 +0.0081386485205088 0.0000366009829974 +0.0081587721911370 0.0000369507997590 +0.0081688268013104 0.0000358484010033 +0.0081897235826219 0.0000361159526058 +0.0082010381542255 0.0003119498799392 +0.0082010401542519 0.0013120951858888 +0.0082135153473924 1.7290101858514675 +0.0082304318208611 0.0038024776279042 +0.0082304703131188 -0.0001099999999826 +0.0082304703131188 -0.0001199999999826 +0.0082304829324961 0.0000367655319974 +0.0082436328433390 0.0000358399479551 +0.0082647311673029 0.0000361155493020 +0.0082833947604560 0.0000369036893546 +0.0083010103053597 0.0003118369066154 +0.0083010123053896 0.0033123292921402 +0.0083060454287278 0.6974757894369965 +0.0083135165119980 1.7329501104916336 +0.0083284269701326 0.2097189825229506 +0.0083304701908742 0.0016225880124769 +0.0083304871423164 -0.0001099999999490 +0.0083304871423164 -0.0001199999999490 +0.0083304997230269 0.0000363546737023 +0.0083479417611892 0.0000358828051335 +0.0083584206032206 0.0000369024538412 +0.0083763097085387 0.0000365314491788 +0.0083938024484142 0.0000358467491522 +0.0084010388270890 0.0003123195474518 +0.0084010408271199 0.0013129687007245 +0.0084135186787545 1.7231041884701432 +0.0084225851198153 0.8014736062346250 +0.0084304062685522 0.0027880091543639 +0.0084304348428750 -0.0001100000000251 +0.0084304348428750 -0.0001200000000251 +0.0084304474862288 0.0000369977006620 +0.0084386453930315 0.0000366003166265 +0.0084587610243754 0.0000369509938435 +0.0084688217428689 0.0000358473266944 +0.0084897520463848 0.0000361142804047 +0.0085010381190113 0.0003119497621171 +0.0085010401190432 0.0013120950541089 +0.0085135153472981 1.7290149984428151 +0.0085304318660070 0.0038024843693605 +0.0085304703583271 -0.0001099999999792 +0.0085304703583271 -0.0001199999999792 +0.0085304829777071 0.0000367663588452 +0.0085436262198730 0.0000358387243252 +0.0085647626372760 0.0000361137073793 +0.0085833812060831 0.0000369054182365 +0.0086010103679003 0.0003118386766743 +0.0086010123679364 0.0033123310539808 +0.0086060454401409 0.6974686600669270 +0.0086135165120618 1.7329412894724825 +0.0086284269398842 0.2097132584268060 +0.0086304701044544 0.0016225921913287 +0.0086304870559389 -0.0001100000000084 +0.0086304870559389 -0.0001200000000084 +0.0086304996366496 0.0000363556486939 +0.0086479277477912 0.0000358821175186 +0.0086584118619403 0.0000369040149376 +0.0086763406026069 0.0000365342699446 +0.0086937910324388 0.0000358451156292 +0.0087010387971417 0.0003123194217977 +0.0087010407971798 0.0013129684500355 +0.0087135186788125 1.7231084057729174 +0.0087225848925168 0.8015010164191663 +0.0087304063084792 0.0027881590898313 +0.0087304348842840 -0.0001099999999750 +0.0087304348842840 -0.0001199999999750 +0.0087304475276449 0.0000369988088295 +0.0087386407943886 0.0000365993332177 +0.0087587445870544 0.0000369512901328 +0.0087688142368603 0.0000358457305969 +0.0087897942547749 0.0000361117898228 +0.0088010380667413 0.0003119495948951 +0.0088010400667815 0.0013120948953994 +0.0088135153471583 1.7290221460328721 +0.0088304319331074 0.0038024946254907 +0.0088304704255227 -0.0001099999999874 +0.0088304704255227 -0.0001199999999874 +0.0088304830449066 0.0000367676112928 +0.0088436162280496 0.0000358368699197 +0.0088648102782828 0.0000361109052709 +0.0088833606759440 0.0000369080599658 +0.0089010104639493 0.0003118413992200 +0.0089010124639952 0.0033123337670769 +0.0089060454569770 0.6974576188105871 +0.0089135165121585 1.7329277749120247 +0.0089284266881838 0.2097253952362854 +0.0089304699722700 0.0016225650287662 +0.0089304869234890 -0.0001100000000171 +0.0089304869234890 -0.0001200000000171 +0.0089304995041990 0.0000363571719958 +0.0089479059586657 0.0000358810329172 +0.0089583981491399 0.0000369064729954 +0.0089763890608007 0.0000365387157212 +0.0089937730867471 0.0000358425216345 +0.0090010387492175 0.0003123192338515 +0.0090010407492672 0.0013129682783650 +0.0090135186789057 1.7231151637159718 +0.0090225845283487 0.8015449381279458 +0.0090304063725482 0.0027883999113684 +0.0090304349507338 -0.0001100000000183 +0.0090304349507338 -0.0001200000000183 +0.0090304475941058 0.0000370006039322 +0.0090386333677715 0.0000365977354695 +0.0090587179947343 0.0000369517961109 +0.0090688019410627 0.0000358431102148 +0.0090898633269787 0.0000361076847714 +0.0091010379810552 0.0003119493398960 +0.0091010399811094 0.0013120946452947 +0.0091135153469276 1.7290338711434763 +0.0091304320432764 0.0038025121004870 +0.0091304705358547 -0.0001099999999213 +0.0091304705358547 -0.0001199999999213 +0.0091304831552450 0.0000367697312123 +0.0091435994222785 0.0000358337269755 +0.0091648908558107 0.0000361061265496 +0.0091833259150421 0.0000369125971854 +0.0092010106302671 0.0003118461254194 +0.0092010126303301 0.0033123384763739 +0.0092060454841875 0.6974382398818452 +0.0092135165123217 1.7329044060806764 +0.0092284261609308 0.2097557699470692 +0.0092304697440230 0.0016225029271456 +0.0092304866946344 -0.0001100000000781 +0.0092304866946344 -0.0001200000000781 +0.0092304992753425 0.0000363598859541 +0.0092478674417558 0.0000358790678631 +0.0092583735465484 0.0000369109112700 +0.0092764760047277 0.0000365467589362 +0.0092937407604421 0.0000358377653443 +0.0093010386602158 0.0003123189245554 +0.0093010406602869 0.0013129678671731 +0.0093135186790741 1.7231277341100573 +0.0093225838584353 0.8016258861033715 +0.0093304064919657 0.0027888454451389 +0.0093304350745561 -0.0001099999999837 +0.0093304350745561 -0.0001199999999837 +0.0093304477179484 0.0000370040103978 +0.0093386193439994 0.0000365946852887 +0.0093586676378198 0.0000369528457208 +0.0093687781313379 0.0000358380124964 +0.0093899968500044 0.0000360996393537 +0.0094010378147982 0.0003119489123085 +0.0094010398148802 0.0013120941918322 +0.0094135153464762 1.7290566409260704 +0.0094304322574446 0.0038025483952985 +0.0094304707503637 -0.0001100000000652 +0.0094304707503637 -0.0001200000000652 +0.0094304833697663 0.0000367740946927 +0.0094435652277156 0.0000358272345244 +0.0094650565047918 0.0000360961350473 +0.0094832542462201 0.0000369222159942 +0.0095010109882296 0.0003118563490770 +0.0095010129883302 0.0033123486661723 +0.0095060455345877 0.6973954309131745 +0.0095135165126544 1.7328541667617172 +0.0095284251894418 0.2098046645759931 +0.0095304692541600 0.0016223953632974 +0.0095304862037216 -0.0001099999999666 +0.0095304862037216 -0.0001199999999666 +0.0095304987844254 0.0000363660766548 +0.0095477809453714 0.0000358744190196 +0.0095583165834523 0.0000369213286950 +0.0095766773971336 0.0000365657360236 +0.0095936651578023 0.0000358261933645 +0.0096010384380208 0.0003123183607281 +0.0096010404381457 0.0013129673516409 +0.0096135186794791 1.7231591799045609 +0.0096225822128965 0.8018253245323158 +0.0096304067913778 0.0027899516441105 +0.0096304353849058 -0.0001099999999511 +0.0096304353849058 -0.0001199999999511 +0.0096304480283478 0.0000370129548886 +0.0096385829094399 0.0000365865432931 +0.0096585359740843 0.0000369561777324 +0.0096687125118363 0.0000358237649961 +0.0096903634240919 0.0000360767001079 +0.0097010373525096 0.0003119482064217 +0.0097010393526752 0.0013120935057760 +0.0097135153452102 1.7291200039175336 +0.0097304328539603 0.0038026630437258 +0.0097304713479668 -0.0001099999999372 +0.0097304713479668 -0.0001199999999372 +0.0097304839674051 0.0000367882335554 +0.0097434577603828 0.0000358058895512 +0.0097655909947211 0.0000360620525044 +0.0097830195483646 0.0000369564926687 +0.0098010123128221 0.0003118949479858 +0.0098010143130737 0.0033123871415472 +0.0098060456651496 0.6972294920235504 +0.0098135165137111 1.7326687637987914 +0.0098284219974948 0.2099456658989994 +0.0098304674527312 0.0016220579563784 +0.0098304843990118 -0.0001100000000739 +0.0098304843990118 -0.0001200000000739 +0.0098304969796949 0.0000363942107980 +0.0098474091304241 0.0000358500689781 +0.0098580431049704 0.0000369744690429 +0.0098776468075405 0.0000366659722974 +0.0098932785630523 0.0000357546631251 +0.0099010369349702 0.0003123216275025 +0.0099010389354745 0.0013129695964326 +0.0099135186816934 1.7233717737579772 +0.0099225721774663 0.8030621944399634 +0.0099304088139632 0.0027970289115300 +0.0099304374774592 -0.0001100000000177 +0.0099304374774592 -0.0001200000000177 +0.0099304501212240 0.0000370989800319 +0.0099382567676636 0.0000364964152689 +0.0099573270943689 0.0000370508386449 +0.0099678411567413 0.0000354249841299 +0.0099747039425186 0.0000364207757384 +0.0099947016715750 0.0000344582022351 diff --git a/src/engine/tests/system/gt_data/interleaved/iL[2].dat b/src/engine/tests/system/gt_data/interleaved/iL[2].dat index a0a23f26..c092ce4b 100644 --- a/src/engine/tests/system/gt_data/interleaved/iL[2].dat +++ b/src/engine/tests/system/gt_data/interleaved/iL[2].dat @@ -1,1379 +1,1189 @@ 0.0000000000000000 0.0000000000000000 0.0000000166666667 0.0030000000000000 0.0000000173246739 0.0002400003355849 -0.0000099628097338 0.0002380965043729 -0.0000105386164770 0.0002378124003636 -0.0000125791687169 0.0002368815447812 -0.0000131817361328 0.0002365466468390 -0.0000146894176846 0.0002356544739392 -0.0000236834015190 0.0002303182379477 -0.0000260270463691 0.0006978854982468 -0.0000260290463742 0.0036979630145504 -0.0000317834552774 1.3479217866808868 -0.0000374122949916 2.6506414028608667 -0.0000385272500518 2.9026571897751041 -0.0000463763316688 2.8006262904775028 -0.0000543372251160 2.6631035143399719 -0.0000613033712832 2.5126209575758547 -0.0000673753708818 2.3542602413409019 -0.0000739266271787 2.1544263610571499 -0.0000806066583903 1.9223546163494052 -0.0000853919121800 1.7382165328171046 -0.0000906457078290 1.5178404795308369 -0.0000961974279971 1.2645677740660868 -0.0001019086315495 0.9856316884540072 -0.0001066712072626 0.7410791659659333 -0.0001107559055091 0.5224819622252007 -0.0001154839652821 0.2591888648953004 -0.0001199241078846 0.0022329918853506 -0.0001199632576558 -0.0001099999999997 -0.0001199632576558 -0.0001199999999997 -0.0001199875551321 0.0001225093999761 -0.0001240357189101 0.0001199326559652 -0.0001260100071343 0.0004777689184166 -0.0001260120071409 0.0034778340857992 -0.0001315004465238 0.9843259834661110 -0.0001379052371030 2.1197183116705771 -0.0001385214752447 2.2255119818100071 -0.0001462372562345 1.7213993378585000 -0.0001585770279237 0.8868130840362762 -0.0001662083973777 0.3567488813605513 -0.0001712209555398 0.0029148954885756 -0.0001712631586401 -0.0001100000000004 -0.0001712631586401 -0.0001200000000004 -0.0001712902821446 0.0000981380859207 -0.0001746937084971 0.0000976524716412 -0.0001891988187718 0.0000946541560233 -0.0002060955646112 0.0000918584915670 -0.0002147666381305 0.0000895051200287 -0.0002260334486740 0.0004136023752178 -0.0002260354486783 0.0034151808442669 -0.0002370534778536 1.8031416330768901 -0.0002385210063723 2.0394122878337959 -0.0002576294147572 0.5429329889231416 -0.0002636170098543 0.0694928887558504 -0.0002644614589744 0.0023716926954707 -0.0002644923446452 -0.0001099999999983 -0.0002644923446452 -0.0001199999999983 -0.0002645218582594 0.0000809144614978 -0.0002735438670112 0.0000792394140433 -0.0002762614099504 0.0000788566110086 -0.0002922558723826 0.0000765030108836 -0.0003097636487323 0.0000748102445034 -0.0003247387930235 0.0000724617505175 -0.0003260100045234 0.0003850095072635 -0.0003260120045276 0.0013859324083183 -0.0003364411247408 1.6325071363329293 -0.0003385204706388 1.9541180966139879 -0.0003562841717486 0.4428792457594508 -0.0003614322623422 0.0029998312672087 -0.0003614682994107 -0.0001099999999992 -0.0003614682994107 -0.0001199999999992 -0.0003614997340460 0.0000687223266876 -0.0003766495905096 0.0000669368334374 -0.0003889889443161 0.0000659821601595 -0.0004103296954815 0.0000643946841496 -0.0004238500545998 0.0000626456077972 -0.0004260364134262 0.0003654708125019 -0.0004260384134306 0.0013662150386761 -0.0004381280933504 1.8336250083181718 -0.0004385183909468 1.8906069272380213 -0.0004596036355868 0.0034819919344808 -0.0004596434332981 -0.0001100000000011 -0.0004596434332981 -0.0001200000000011 -0.0004596762914102 0.0000606186147380 -0.0004837413457706 0.0000589679390692 -0.0004969552289787 0.0000568776091322 -0.0005048541937463 0.0000573442985515 -0.0005163737210001 0.0000564128034822 -0.0005260364565702 0.0003512112521337 -0.0005260384565743 0.0013514752297901 -0.0005385130815570 1.8501852772320091 -0.0005583962957600 0.0077026405322753 -0.0005584802818367 -0.0001099999999973 -0.0005584802818367 -0.0001199999999973 -0.0005585141143210 0.0000547538898422 -0.0005854581481555 0.0000536148034011 -0.0005937386362945 0.0000518944669206 -0.0006014727295291 0.0000520512672370 -0.0006243276838160 0.0000511309373866 -0.0006260374751252 0.0003420631195062 -0.0006260394751306 0.0033425584403854 -0.0006318966423881 0.8572333450234952 -0.0006385153144669 1.8215005376009110 -0.0006575088845436 0.0196361847740853 -0.0006576947304649 0.0020366634541916 -0.0006577172452421 -0.0001099999999971 -0.0006577172452421 -0.0001199999999971 -0.0006577521291460 0.0000505958540661 -0.0006735156809609 0.0000489742719807 -0.0006824664603382 0.0000498214275086 -0.0007260309125372 0.0003343934433915 -0.0007260329125429 0.0033347432975648 -0.0007322381363149 0.8931068550509341 -0.0007385210872559 1.7964104924443809 -0.0007559863819708 0.1052939152293205 -0.0007570546357662 0.0021435914042712 -0.0007570778362322 -0.0001099999999963 -0.0007570778362322 -0.0001199999999963 -0.0007571135140154 0.0000468697700376 -0.0007720672781847 0.0000456217881180 -0.0007982507644043 0.0000449509714499 -0.0008178080751163 0.0000445893821800 -0.0008260380997072 0.0003287964421058 -0.0008260400997126 0.0033300140073424 -0.0008361324531052 1.4403489752266900 -0.0008385166903519 1.7785662190987437 -0.0008552330886548 0.1379309510744814 -0.0008566216121229 0.0021046349217840 -0.0008566441313291 -0.0001100000000041 -0.0008566441313291 -0.0001200000000041 -0.0008566803732460 0.0000443549532997 -0.0008711619738509 0.0000431758068608 -0.0008900012562088 0.0000427833458248 -0.0009021159844493 0.0000428764909817 -0.0009152465615389 0.0000424104767783 -0.0009247970370400 0.0000421285627511 -0.0009260100181865 0.0003242892374722 -0.0009260120181918 0.0013264126267426 -0.0009367415091654 1.5197094080393025 -0.0009385160955760 1.7692962552483167 -0.0009547814930006 0.1542283676544336 -0.0009563194335500 0.0018197961628477 -0.0009563388312444 -0.0001099999999989 -0.0009563388312444 -0.0001199999999989 -0.0009563509734049 0.0000418146367987 -0.0009731491970000 0.0000409207265845 -0.0009830420106380 0.0000419330624129 -0.0010001363954553 0.0000407666869183 -0.0010140426832078 0.0000410244540641 -0.0010249507822353 0.0000405274830576 -0.0010260100176807 0.0003210972183529 -0.0010260120176860 0.0013224999011674 -0.0010374285121205 1.6047659681314692 -0.0010385289975193 1.7581697107254894 -0.0010542359279336 0.1865361758707678 -0.0010560869073350 0.0017464814106975 -0.0010561054320735 -0.0001099999999901 -0.0010561054320735 -0.0001199999999901 -0.0010561176889949 0.0000403544982851 -0.0010722572477043 0.0000394743125524 -0.0010824056543165 0.0000405673464613 -0.0010999104615233 0.0000393848486656 -0.0011141765423372 0.0000396836834877 -0.0011250080369788 0.0000392672526412 -0.0011260100175768 0.0003185843908617 -0.0011260120175822 0.0013197037852923 -0.0011381108037930 1.6964685468755085 -0.0011385180613337 1.7515320839036714 -0.0011539466729004 0.1984931206352089 -0.0011559065131155 0.0017045167655091 -0.0011559245162584 -0.0001099999999919 -0.0011559245162584 -0.0001199999999919 -0.0011559368644093 0.0000392068639951 -0.0011714403812157 0.0000384602521247 -0.0011965605564807 0.0000378209720541 -0.0012070317267356 0.0000391351732814 -0.0012146463697681 0.0000383843345728 -0.0012260370707172 0.0003155419676101 -0.0012260390707216 0.0013157061452588 -0.0012385146626635 1.7405133401780883 -0.0012556875964664 0.0037616365028630 -0.0012557261350763 -0.0001100000000096 -0.0012557261350763 -0.0001200000000096 -0.0012557386951985 0.0000387300206208 -0.0012635321925153 0.0000382648154912 -0.0012664119277338 0.0000375126432270 -0.0012772330511852 0.0000378827667588 -0.0012929972859580 0.0000371316352701 -0.0013019702102761 0.0000375332600144 -0.0013249534750350 0.0000379601064370 -0.0013260387685926 0.0003159230737818 -0.0013260407685982 0.0013685700245629 -0.0013306404494766 0.6417360358099600 -0.0013385170561687 1.7407362575770016 -0.0013536788532776 0.2060217645017874 -0.0013557033863328 0.0016598538779965 -0.0013557208556116 -0.0001100000000045 -0.0013557208556116 -0.0001200000000045 -0.0013557332898285 0.0000381511363697 -0.0013734613518438 0.0000375968126995 -0.0013844309559390 0.0000385737854640 -0.0013941167055241 0.0000370196939054 -0.0014014285991652 0.0000375908309057 -0.0014257941214468 0.0000381026404402 -0.0014260387570686 0.0003162113231930 -0.0014260407570743 0.0013193589128473 -0.0014324021061161 0.8874794846169367 -0.0014385177571224 1.7411882505633691 -0.0014536656343713 0.2085943385461891 -0.0014557165152963 0.0016609837685924 -0.0014557340026628 -0.0001099999999956 -0.0014557340026628 -0.0001199999999956 -0.0014557464295464 0.0000382364084612 -0.0014564947438802 0.0000388255001410 -0.0014835861946538 0.0000386558280352 -0.0014945735859533 0.0000370199723730 -0.0015014195520322 0.0000376680421064 -0.0015252611295866 0.0000381391159770 -0.0015260387510682 0.0003162848574906 -0.0015260407510740 0.0013251616982815 -0.0015312509971164 0.7272097389318294 -0.0015385172982212 1.7416823610189656 -0.0015536980548205 0.2062287753861431 -0.0015557260874302 0.0016637003273683 -0.0015557436072198 -0.0001100000000045 -0.0015557436072198 -0.0001200000000045 -0.0015557560294169 0.0000382982164323 -0.0015735524080684 0.0000377384907318 -0.0015844237971821 0.0000387288190953 -0.0015940149296582 0.0000371894928664 -0.0016014730266454 0.0000377395476585 -0.0016257404129286 0.0000382313116629 -0.0016260387435147 0.0003164690303913 -0.0016260407435205 0.0013200443177791 -0.0016322430716182 0.8657165730906494 -0.0016385177219813 1.7420061141504632 -0.0016536951519317 0.2073764228111314 -0.0016557351531636 0.0016648532099936 -0.0016557526892469 -0.0001099999999897 -0.0016557526892469 -0.0001199999999897 -0.0016557651064548 0.0000383573277605 -0.0016564820358190 0.0000389449718200 -0.0016834613295997 0.0000387818670236 -0.0016944741493516 0.0000371953105924 -0.0017013906702801 0.0000378232183132 -0.0017254458261378 0.0000382927186675 -0.0017260387358943 0.0003165925233835 -0.0017260407359003 0.0013228259649787 -0.0017315866262027 0.7743916695858700 -0.0017385174646095 1.7425330666576242 -0.0017537216002668 0.2057608043569313 -0.0017557462781838 0.0016675334649256 -0.0017557638471287 -0.0001099999999971 -0.0017557638471287 -0.0001199999999971 -0.0017557762587223 0.0000384292141989 -0.0017736110030349 0.0000378638997980 -0.0017844200617832 0.0000388614005632 -0.0017939528872350 0.0000373302608155 -0.0018015025144574 0.0000378667747719 -0.0018256927414170 0.0000383417729475 -0.0018260387318793 0.0003166901016967 -0.0018260407318853 0.0013207486526722 -0.0018320996771066 0.8460596655441811 -0.0018385176904609 1.7427085599740944 -0.0018537208583329 0.2062970395779448 -0.0018557511732136 0.0016682144385528 -0.0018557687515580 -0.0001099999999958 -0.0018557687515580 -0.0001199999999958 -0.0018557811604699 0.0000384611542499 -0.0018564726114614 0.0000390476048998 -0.0018835260079735 0.0000388853760539 -0.0018939425891829 0.0000373688793514 -0.0019017075227009 0.0000379004507507 -0.0019249832001746 0.0000383171755297 -0.0019260387316590 0.0003166352105409 -0.0019260407316652 0.0033762981036995 -0.0019348504861984 1.2298987383937141 -0.0019385212373481 1.7424609168797338 -0.0019537303057383 0.2055005592770396 -0.0019557528058346 0.0016679381681904 -0.0019557703823406 -0.0001100000000087 -0.0019557703823406 -0.0001200000000087 -0.0019557827907598 0.0000384698439374 -0.0019736053341682 0.0000379029715921 -0.0019844235148301 0.0000388979570640 -0.0019939626442450 0.0000373642223333 -0.0020014986545072 0.0000379015791349 -0.0020256911235664 0.0000383733139133 -0.0020260387285916 0.0003167531537617 -0.0020260407285978 0.0013208972898119 -0.0020320837227936 0.8439286177958253 -0.0020385176929979 1.7429027592095545 -0.0020537277006095 0.2060296866865653 -0.0020557556467606 0.0016691476484689 -0.0020557732368541 -0.0001100000000043 -0.0020557732368541 -0.0001200000000043 -0.0020557856434460 0.0000384901493285 -0.0020564667307009 0.0000390762194402 -0.0020835983312281 0.0000389145933957 -0.0020939407422159 0.0000373953245382 -0.0021017050108369 0.0000379259633692 -0.0021249901185009 0.0000383407401510 -0.0021260387291644 0.0003166823562479 -0.0021260407291706 0.0033741967397493 -0.0021348472886023 1.2295529042107447 -0.0021385212392692 1.7426026346318908 -0.0021537351325879 0.2053232470319227 -0.0021557560806295 0.0016686173078574 -0.0021557736656950 -0.0001100000000117 -0.0021557736656950 -0.0001200000000117 -0.0021557860724118 0.0000384910878835 -0.0021736121271728 0.0000379232855109 -0.0021844236202704 0.0000389189022061 -0.0021939559568614 0.0000373858437084 -0.0022015018704428 0.0000379216336973 -0.0022256843974241 0.0000383908399440 -0.0022260387267222 0.0003167882498257 -0.0022260407267285 0.0013210169342185 -0.0022320631950750 0.8411179860436508 -0.0022385176891819 1.7430136615579555 -0.0022537316769044 0.2058683058626612 -0.0022557581824277 0.0016696696336418 -0.0022557757791146 -0.0001099999999971 -0.0022557757791146 -0.0001199999999971 -0.0022557881843950 0.0000385065891233 -0.0022564650538424 0.0000390924711883 -0.0022836187950336 0.0000389302454130 -0.0022939464818652 0.0000374082660272 -0.0023017025395673 0.0000379394238289 -0.0023249911274099 0.0000383529041871 -0.0023260387278189 0.0003167066543352 -0.0023260407278253 0.0033700101793991 -0.0023348257627708 1.2266029012836539 -0.0023385211963906 1.7426813493636477 -0.0023537375719764 0.2052391036768781 -0.0023557577935809 0.0016689493770430 -0.0023557753828947 -0.0001100000000120 -0.0023557753828947 -0.0001200000000120 -0.0023557877887225 0.0000385022079753 -0.0023736153324572 0.0000379339132192 -0.0023844239916296 0.0000389297914419 -0.0023939529548602 0.0000373969589478 -0.0024015032334861 0.0000379320407945 -0.0024256810202156 0.0000383999487197 -0.0024260387257332 0.0003168065158126 -0.0024260407257397 0.0013210776210638 -0.0024320533257713 0.8397686239037063 -0.0024385176875726 1.7430711808550865 -0.0024537338099759 0.2057776423377126 -0.0024557594991122 0.0016699521266221 -0.0024557770993368 -0.0001100000000088 -0.0024557770993368 -0.0001200000000088 -0.0024557895039363 0.0000385151382266 -0.0024564641003832 0.0000391009217897 -0.0024836305450453 0.0000389384401792 -0.0024939497018798 0.0000374149362849 -0.0025017009900165 0.0000379464321958 -0.0025249918371652 0.0000383592604527 -0.0025260387270635 0.0003167193886089 -0.0025260407270701 0.0033685265483436 -0.0025348184130209 1.2256050165589136 -0.0025385211826077 1.7427214862322711 -0.0025537392082370 0.2051585649040088 -0.0025557586866892 0.0016691783167394 -0.0025557762787730 -0.0001100000000093 -0.0025557762787730 -0.0001200000000093 -0.0025557886841382 0.0000385080211393 -0.0025736170023646 0.0000379394647385 -0.0025844244644480 0.0000389354799591 -0.0025939514656793 0.0000374027077057 -0.0026015038046299 0.0000379374603253 -0.0026256792090351 0.0000384046861671 -0.0026260387251996 0.0003168160446516 -0.0026260407252063 0.0013211083512743 -0.0026320486900550 0.8391361893202485 -0.0026385176869636 1.7431010692351734 -0.0026537349677297 0.2057256522538007 -0.0026557601841890 0.0016701070242589 -0.0026557777863331 -0.0001100000000081 -0.0026557777863331 -0.0001200000000081 -0.0026557901905784 0.0000385196000054 -0.0026564635600262 0.0000391053319076 -0.0026836375158177 0.0000389427594481 -0.0026939514714541 0.0000374183784096 -0.0027016999982475 0.0000379500945043 -0.0027249922594193 0.0000383625883371 -0.0027260387266124 0.0003167260894963 -0.0027260407266191 0.0033681090898603 -0.0027348169564850 1.2254161081093704 -0.0027385211806801 1.7427419741056960 -0.0027537396493001 0.2051582501512004 -0.0027557591545072 0.0016692381878340 -0.0027557767474444 -0.0001099999999911 -0.0027557767474444 -0.0001199999999911 -0.0027557891525660 0.0000385110753441 -0.0027736178496404 0.0000379423765962 -0.0027844250083495 0.0000389384592947 -0.0027939507968951 0.0000374056528313 -0.0028015039413837 0.0000379402805655 -0.0028256782298159 0.0000384071469159 -0.0028260387249023 0.0003168210250296 -0.0028260407249092 0.0013211211741923 -0.0028320468541164 0.8388874980608233 -0.0028385176869067 1.7431165553184234 -0.0028537356230267 0.2056932310628595 -0.0028557605401349 0.0016701964177154 -0.0028557781433649 -0.0001099999999818 -0.0028557781433649 -0.0001199999999818 -0.0028557905474262 0.0000385219329183 -0.0028564632247231 0.0000391076373700 -0.0028836420958207 0.0000389450654689 -0.0028939524853927 0.0000374201363107 -0.0029016992964682 0.0000379520128453 -0.0029249925078240 0.0000383643365683 -0.0029260387263167 0.0003167296477911 -0.0029260407263237 0.0033682378819187 -0.0029348184842761 1.2256366904764762 -0.0029385211847367 1.7427521564744139 -0.0029537403328789 0.2051125259277576 -0.0029557593993715 0.0016693377790929 -0.0029557769934341 -0.0001099999999869 -0.0029557769934341 -0.0001199999999869 -0.0029557893984294 0.0000385126920730 -0.0029736182707975 0.0000379439133078 -0.0029844256068829 0.0000389400279750 -0.0029939505560186 0.0000374071352213 -0.0030015038447594 0.0000379417462838 -0.0030256776801648 0.0000384084207284 -0.0030260387247270 0.0003168236362453 -0.0030260407247340 0.0013211277912923 -0.0030320465158706 0.8388441862123923 -0.0030385176871539 1.7431245639678914 -0.0030537356846465 0.2057044419810438 -0.0030557607249967 0.0016702029749513 -0.0030557783283939 -0.0001100000000216 -0.0030557783283939 -0.0001200000000216 -0.0030557907323588 0.0000385231570947 -0.0030564629971993 0.0000391088467336 -0.0030836454541974 0.0000389463245727 -0.0030939530971646 0.0000374210171791 -0.0031016987430087 0.0000379530234084 -0.0031249926548303 0.0000383652615984 -0.0031260387260983 0.0003167315678281 -0.0031260407261055 0.0033686479064508 -0.0031348216041838 1.2260758235978224 -0.0031385211919959 1.7427570538381354 -0.0031537402184932 0.2051362989497155 -0.0031557595294914 0.0016693215392919 -0.0031557771234639 -0.0001099999999787 -0.0031557771234639 -0.0001199999999787 -0.0031557895283906 0.0000385135613901 -0.0031736184589392 0.0000379447341685 -0.0031844262530296 0.0000389408600954 -0.0031939505569921 0.0000374078477355 -0.0032015036106155 0.0000379425035852 -0.0032256773590630 0.0000384090741097 -0.0032260387246142 0.0003168250111673 -0.0032260407246215 0.0013211272797932 -0.0032320470040582 0.8389143095767492 -0.0032385176875798 1.7431286087959239 -0.0032537359519291 0.2056864586576543 -0.0032557608196314 0.0016702421415760 -0.0032557784234703 -0.0001100000000060 -0.0032557784234703 -0.0001200000000060 -0.0032557908273864 0.0000385238022121 -0.0032564628142119 0.0000391094834682 -0.0032836482963938 0.0000389470426415 -0.0032939535201819 0.0000374214335762 -0.0033016982487609 0.0000379535589614 -0.0033249927557019 0.0000383657570251 -0.0033260387259164 0.0003167326352960 -0.0033260407259238 0.0033692322262341 -0.0033348257553075 1.2266569552619695 -0.0033385212013712 1.7427590932375221 -0.0033537402127768 0.2051434164882676 -0.0033557595989004 0.0016693225367520 -0.0033557771929206 -0.0001099999999993 -0.0033557771929206 -0.0001199999999993 -0.0033557895978108 0.0000385140410507 -0.0033736185282387 0.0000379451817481 -0.0033844269444271 0.0000389413088480 -0.0033939506855666 0.0000374081559801 -0.0034015032963542 0.0000379428909154 -0.0034256771517489 0.0000384094028023 -0.0034260387245327 0.0003168257414689 -0.0034260407245402 0.0013211271584516 -0.0034320479656975 0.8390495136867708 -0.0034385176881173 1.7431306091459000 -0.0034537360104552 0.2056850838020462 -0.0034557608675506 0.0016702519548058 -0.0034557784715134 -0.0001099999999969 -0.0034557784715134 -0.0001199999999969 -0.0034557908754044 0.0000385241456550 -0.0034564626555461 0.0000391098219256 -0.0034836508997606 0.0000389474807003 -0.0034939538409643 0.0000374216073260 -0.0035016977769486 0.0000379538479172 -0.0035249928293443 0.0000383660291551 -0.0035260387257493 0.0003167332640196 -0.0035260407257569 0.0033699440409428 -0.0035348306212180 1.2273368336670221 -0.0035385212122428 1.7427595907066253 -0.0035537404315148 0.2051249511521404 -0.0035557596365232 0.0016693573808616 -0.0035557772309104 -0.0001100000000132 -0.0035557772309104 -0.0001200000000132 -0.0035557896357813 0.0000385143192497 -0.0035736185341716 0.0000379454360046 -0.0035844276823633 0.0000389415588058 -0.0035939508882770 0.0000374082495890 -0.0036015029282404 0.0000379430849892 -0.0036256770003652 0.0000384095614788 -0.0036260387244661 0.0003168261347090 -0.0036260407244738 0.0013211224263347 -0.0036320492100451 0.8392236517152158 -0.0036385176887300 1.7431315303429971 -0.0036537360282165 0.2056854999793968 -0.0036557608909276 0.0016702565370593 -0.0036557784949486 -0.0001099999999945 -0.0036557784949486 -0.0001199999999945 -0.0036557908988271 0.0000385243323391 -0.0036564625048145 0.0000391100053443 -0.0036836534560494 0.0000389477771366 -0.0036939541169973 0.0000374216513891 -0.0037016973018094 0.0000379540088591 -0.0037249928931998 0.0000383661857731 -0.0037260387255851 0.0003167336674412 -0.0037260407255930 0.0033707790896176 -0.0037348361231290 1.2281049302706388 -0.0037385212244785 1.7427592811600754 -0.0037537402250398 0.2051478015817029 -0.0037557596584653 0.0016693299019238 -0.0037557772525907 -0.0001100000000017 -0.0037557772525907 -0.0001200000000017 -0.0037557896574493 0.0000385144942935 -0.0037736185003382 0.0000379455905136 -0.0037844284689921 0.0000389417049168 -0.0037939511442250 0.0000374082247170 -0.0038015025160509 0.0000379431766294 -0.0038256768779641 0.0000384096299193 -0.0038260387244056 0.0003168263536877 -0.0038260407244136 0.0013211190722701 -0.0038320506641530 0.8394267868203795 -0.0038385176894091 1.7431318852844433 -0.0038537359131500 0.2056980711375518 -0.0038557609014346 0.0016702421027768 -0.0038557785053175 -0.0001099999999787 -0.0038557785053175 -0.0001199999999787 -0.0038557909091899 0.0000385244370093 -0.0038564623544681 0.0000391101076243 -0.0038836560620464 0.0000389480033834 -0.0038939543762590 0.0000374216243943 -0.0039016968094243 0.0000379541034924 -0.0039249929514726 0.0000383662831321 -0.0039260387254172 0.0003167339585975 -0.0039260407254254 0.0033717266807187 -0.0039348422021188 1.2289532680969795 -0.0039385212379707 1.7427584624955403 -0.0039537401840509 0.2051531864619209 -0.0039557596717922 0.0016693272201649 -0.0039557772658978 -0.0001099999999635 -0.0039557772658978 -0.0001199999999635 -0.0039557896707491 0.0000385146174927 -0.0039736184458506 0.0000379456945642 -0.0039844293086961 0.0000389417985491 -0.0039939514348025 0.0000374081341548 -0.0040015020673922 0.0000379432147592 -0.0040256767661251 0.0000384096505992 -0.0040260387244505 0.0003168264823762 -0.0040260407244587 0.0013211131548224 -0.0040320522729639 0.8396513510875883 -0.0040385176902974 1.7431319196455757 -0.0040537359952089 0.2056901519068708 -0.0040557609049920 0.0016702569514464 -0.0040557785090241 -0.0001099999999574 -0.0040557785090241 -0.0001199999999574 -0.0040557909128947 0.0000385244996914 -0.0040564621965153 0.0000391101682710 -0.0040836588054196 0.0000389481990842 -0.0040939546426782 0.0000374215553230 -0.0041016962875816 0.0000379541638613 -0.0041249930145753 0.0000383663503975 -0.0041260387253455 0.0003167341969751 -0.0041260407253540 0.0033727720194920 -0.0041348488683180 1.2298833692850828 -0.0041385212529094 1.7427573325981098 -0.0041537401196987 0.2051605426698219 -0.0041557596810675 0.0016693213990904 -0.0041557772751195 -0.0001099999999879 -0.0041557772751195 -0.0001199999999879 -0.0041557896799656 0.0000385147153886 -0.0041736183774584 0.0000379457733199 -0.0041844302059849 0.0000389418653188 -0.0041939517553678 0.0000374080030912 -0.0042015015833458 0.0000379432236653 -0.0042256766545182 0.0000384096444991 -0.0042260387243903 0.0003168265647968 -0.0042260407243988 0.0013211081522299 -0.0042320540246455 0.8398957867905370 -0.0042385176910883 1.7431317892592548 -0.0042537358948309 0.2057002343971417 -0.0042557609047667 0.0016702453032948 -0.0042557785086825 -0.0001099999999724 -0.0042557785086825 -0.0001199999999724 -0.0042557909125527 0.0000385245405463 -0.0042564620331950 0.0000391102073036 -0.0042836616847477 0.0000389483825751 -0.0042939549133618 0.0000374214620741 -0.0043016957339931 0.0000379542075663 -0.0043249930818214 0.0000383664035273 -0.0043260387251597 0.0003167344135076 -0.0043260407251683 0.0033739600559333 -0.0043348562158780 1.2309084653632043 -0.0043385212692009 1.7427559462600097 -0.0043537401088693 0.2051622897550665 -0.0043557596879907 0.0016693238269330 -0.0043557772820701 -0.0001099999999687 -0.0043557772820701 -0.0001199999999687 -0.0043557896869122 0.0000385148028593 -0.0043736182981710 0.0000379458409389 -0.0043844311665463 0.0000389419196384 -0.0043939521034240 0.0000374078449981 -0.0044015010620440 0.0000379432167925 -0.0044256765410052 0.0000384096237578 -0.0044260387243272 0.0003168266237828 -0.0044260407243360 0.0013211035012916 -0.0044320559222190 0.8401605375174571 -0.0044385176919409 1.7431315556112599 -0.0044537358217769 0.2057073667016511 -0.0044557609024109 0.0016702379590931 -0.0044557785062520 -0.0001099999999661 -0.0044557785062520 -0.0001199999999661 -0.0044557909101228 0.0000385245710152 -0.0044564618588538 0.0000391102359635 -0.0044836647600971 0.0000389485668267 -0.0044939552028359 0.0000374213509777 -0.0045016951395097 0.0000379542436277 -0.0045249931575455 0.0000383664511303 -0.0045260387249613 0.0003167346278119 -0.0045260407249702 0.0033752859909878 -0.0045348642974256 1.2320359189371044 -0.0045385212871219 1.7427543575896733 -0.0045537400654768 0.2051672373481631 -0.0045557596940967 0.0016693217887911 -0.0045557772881585 -0.0001099999999694 -0.0045557772881585 -0.0001199999999694 -0.0045557896929970 0.0000385148878891 -0.0045736182094221 0.0000379459048521 -0.0045844321974122 0.0000389419689134 -0.0045939524803414 0.0000374076658524 -0.0046015005007806 0.0000379432008185 -0.0046256764212526 0.0000384095938966 -0.0046260387242602 0.0003168266724491 -0.0046260407242694 0.0013210961111160 -0.0046320579644502 0.8404454479835644 -0.0046385176928568 1.7431312460448387 -0.0046537358558546 0.2057035833123458 -0.0046557608986236 0.0016702466262950 -0.0046557785025485 -0.0001100000000310 -0.0046557785025485 -0.0001200000000310 -0.0046557909064209 0.0000385245966896 -0.0046564616711216 0.0000391102597599 -0.0046836680655699 0.0000389487584607 -0.0046939555171304 0.0000374212250001 -0.0047016944976620 0.0000379542765809 -0.0047249932452581 0.0000383664975421 -0.0047260387247481 0.0003167348497922 -0.0047260407247576 0.0033768176156742 -0.0047348733020771 1.2332921282622951 -0.0047385213070924 1.7427525547905500 -0.0047537399304124 0.2051813971132146 -0.0047557597000544 0.0016693065849913 -0.0047557772939675 -0.0001100000000369 -0.0047557772939675 -0.0001200000000369 -0.0047557896988022 0.0000385149746085 -0.0047736181108807 0.0000379459687990 -0.0047844333064638 0.0000389420167646 -0.0047939528885647 0.0000374074675069 -0.0048014998954305 0.0000379431787274 -0.0048256762937172 0.0000384095574047 -0.0048260387241884 0.0003168267152684 -0.0048260407241979 0.0013210898991793 -0.0048320601711591 0.8407532920359492 -0.0048385176938454 1.7431308896269531 -0.0048537358490650 0.2057038328850335 -0.0048557608939884 0.0016702495821220 -0.0048557784979397 -0.0001100000000251 -0.0048557784979397 -0.0001200000000251 -0.0048557909018141 0.0000385246203880 -0.0048564614700706 0.0000391102814977 -0.0048836716169451 0.0000389489609315 -0.0048939558566789 0.0000374210860044 -0.0049016938039799 0.0000379543092524 -0.0049249933429436 0.0000383665453802 -0.0049260387245187 0.0003167350832883 -0.0049260407245284 0.0033785473850058 -0.0049348832812788 1.2346842817450576 -0.0049385213292322 1.7427505050083962 -0.0049537400825335 0.2051666249868827 -0.0049557597056875 0.0016693341942452 -0.0049557772998777 -0.0001100000000033 -0.0049557772998777 -0.0001200000000033 -0.0049557897047094 0.0000385150657838 -0.0049736180048949 0.0000379460354192 -0.0049844345028928 0.0000389420662990 -0.0049939533274654 0.0000374072516497 -0.0050014992429399 0.0000379431529585 -0.0050256761538858 0.0000384095160482 -0.0050260387241110 0.0003168267582571 -0.0050260407241209 0.0013210817258662 -0.0050320625492267 0.8410850355689585 -0.0050385176949111 1.7431304955911566 -0.0050537358230907 0.2057059566765779 -0.0050557608887519 0.0016702500351515 -0.0050557784927043 -0.0001100000000052 -0.0050557784927043 -0.0001200000000052 -0.0050557908965809 0.0000385246443729 -0.0050564612541553 0.0000391103034063 -0.0050836754450166 0.0000389491778004 -0.0050939562252417 0.0000374209344142 -0.0051016930517196 0.0000379543435176 -0.0051249934563167 0.0000383665964449 -0.0051260387242705 0.0003167353362394 -0.0051260407242806 0.0033805718403038 -0.0051348945176199 1.2362518052255973 -0.0051385213541692 1.7427482338504610 -0.0051537396975654 0.2052060083809793 -0.0051557597124176 0.0016692829522675 -0.0051557773061007 -0.0001100000000268 -0.0051557773061007 -0.0001200000000268 -0.0051557897109274 0.0000385151634973 -0.0051736178838831 0.0000379461059977 -0.0051844357971099 0.0000389421172862 -0.0051939538092024 0.0000374070142798 -0.0052014985335475 0.0000379431226539 -0.0052256760050173 0.0000384094693227 -0.0052260387240272 0.0003168268014344 -0.0052260407240375 0.0013210746737231 -0.0052320651344907 0.8414456777728335 -0.0052385176960694 1.7431300670279442 -0.0052537356778551 0.2057200303608253 -0.0052557608829624 0.0016702333293224 -0.0052557784867449 -0.0001100000000085 -0.0052557784867449 -0.0001200000000085 -0.0052557908906236 0.0000385246685906 -0.0052564610215808 0.0000391103254210 -0.0052836795835526 0.0000389494108462 -0.0052939566269086 0.0000374207686749 -0.0053016922330841 0.0000379543798494 -0.0053249935848902 0.0000383666516183 -0.0053260387240013 0.0003167356091771 -0.0053260407240119 0.0033829296408420 -0.0053349071921673 1.2380199606432847 -0.0053385213823105 1.7427456258952263 -0.0053537395819054 0.2052182923231375 -0.0053557597191749 0.0016692719836661 -0.0053557773127517 -0.0001100000000012 -0.0053557773127517 -0.0001200000000012 -0.0053557897175742 0.0000385152688179 -0.0053736177527448 0.0000379461817039 -0.0053844372024947 0.0000389421719067 -0.0053939543310600 0.0000374067559000 -0.0054014977637140 0.0000379430891029 -0.0054256758409631 0.0000384094177215 -0.0054260387239361 0.0003168268466976 -0.0054260407239468 0.0013210651961708 -0.0054320679370596 0.8418366315152215 -0.0054385176973260 1.7431295919417931 -0.0054537355785626 0.2057294168810216 -0.0054557608764932 0.0016702237671672 -0.0054557784801765 -0.0001099999999647 -0.0054557784801765 -0.0001199999999647 -0.0054557908840578 0.0000385246943803 -0.0054564607690104 0.0000391103488326 -0.0054836840831157 0.0000389496636701 -0.0054939570695123 0.0000374205871810 -0.0055016913373817 0.0000379544192577 -0.0055249937342741 0.0000383667122103 -0.0055260387237079 0.0003167359071883 -0.0055260407237190 0.0033856933964265 -0.0055349216049840 1.2400306096433402 -0.0055385214143296 1.7427426223746891 -0.0055537396918269 0.2052078961077546 -0.0055557597261569 0.0016692949315317 -0.0055557773199649 -0.0001099999999792 -0.0055557773199649 -0.0001199999999792 -0.0055557897247834 0.0000385153832886 -0.0055736176095650 0.0000379462636211 -0.0055844387330597 0.0000389422310407 -0.0055939548982294 0.0000374064741699 -0.0056014969254619 0.0000379430523132 -0.0056256756592400 0.0000384093609513 -0.0056260387238365 0.0003168268948383 -0.0056260407238478 0.0013210557040335 -0.0056320709908525 0.8422626297500730 -0.0056385176986956 1.7431290496720784 -0.0056537357016814 0.2057163304959246 -0.0056557608690562 0.0016702473400787 -0.0056557784729694 -0.0001100000000264 -0.0056557784729694 -0.0001200000000264 -0.0056557908768542 0.0000385247222603 -0.0056564604915112 0.0000391103740967 -0.0056836890099208 0.0000389499399269 -0.0056939575643077 0.0000374203868124 -0.0057016903511096 0.0000379544621252 -0.0057249939110090 0.0000383667792676 -0.0057260387233874 0.0003167362364737 -0.0057260407233990 0.0033890522500841 -0.0057349383125029 1.2423613746147522 -0.0057385214514678 1.7427391576163052 -0.0057537394360780 0.2052344106504686 -0.0057557597343017 0.0016692645738722 -0.0057557773278110 -0.0001100000000434 -0.0057557773278110 -0.0001200000000434 -0.0057557897326241 0.0000385155083124 -0.0057736174472634 0.0000379463523038 -0.0057844404067771 0.0000389422938237 -0.0057939555244445 0.0000374061630279 -0.0058014960056557 0.0000379430103823 -0.0058256754611851 0.0000384092973508 -0.0058260387237275 0.0003168269438390 -0.0058260407237393 0.0013210440414735 -0.0058320743356337 0.8427292160418784 -0.0058385177001972 1.7431284799292392 -0.0058537354967068 0.2057362232018142 -0.0058557608612096 0.0016702232300746 -0.0058557784648779 -0.0001100000000114 -0.0058557784648779 -0.0001200000000114 -0.0058557908687657 0.0000385247517160 -0.0058564601922207 0.0000391104007862 -0.0058836943747723 0.0000389502402765 -0.0058939581050710 0.0000374201675472 -0.0059016892673215 0.0000379545094752 -0.0059249941136388 0.0000383668535303 -0.0059260387230354 0.0003167365992271 -0.0059260407230477 0.0033931069264228 -0.0059349577166027 1.2450683211805780 -0.0059385214946344 1.7427351007660699 -0.0059537392550174 0.2052534683237226 -0.0059557597430692 0.0016692460159120 -0.0059557773363975 -0.0001099999999730 -0.0059557773363975 -0.0001199999999730 -0.0059557897412049 0.0000385156454011 -0.0059736172656361 0.0000379464488930 -0.0059844422445119 0.0000389423616015 -0.0059939562141738 0.0000374058196557 -0.0060014949943389 0.0000379429633562 -0.0060256752415602 0.0000384092263495 -0.0060260387236074 0.0003168269977919 -0.0060260407236198 0.0013210349182260 -0.0060320780180757 0.8432429028850318 -0.0060385177018503 1.7431278304087625 -0.0060537354492574 0.2057401537603786 -0.0060557608521930 0.0016702228554991 -0.0060557784558519 -0.0001099999999628 -0.0060557784558519 -0.0001199999999628 -0.0060557908597435 0.0000385247833720 -0.0060564598616690 0.0000391104293973 -0.0060837002908308 0.0000389505705414 -0.0060939587138564 0.0000374199234214 -0.0061016880635108 0.0000379545614314 -0.0061249943532849 0.0000383669365269 -0.0061260387226474 0.0003167370016020 -0.0061260407226601 0.0033982096586443 -0.0061349808365064 1.2482936310910746 -0.0061385215461125 1.7427302433673502 -0.0061537389371290 0.2052863916988152 -0.0061557597528394 0.0016692081911478 -0.0061557773457953 -0.0001099999999986 -0.0061557773457953 -0.0001199999999986 -0.0061557897505960 0.0000385157961890 -0.0061736170595046 0.0000379465540979 -0.0061844442715678 0.0000389424341786 -0.0061939569801060 0.0000374054375758 -0.0062014938757871 0.0000379429095423 -0.0062256749982436 0.0000384091460934 -0.0062260387234747 0.0003168270534589 -0.0062260407234877 0.0013210218460019 -0.0062320820822088 0.8438098288472170 -0.0062385177036765 1.7431271026019046 -0.0062537353952377 0.2057446347375829 -0.0062557608419947 0.0016702222183668 -0.0062557784456409 -0.0001099999999704 -0.0062557784456409 -0.0001199999999704 -0.0062557908495369 0.0000385248169929 -0.0062564594973083 0.0000391104596993 -0.0062837068279775 0.0000389509342551 -0.0062939593977565 0.0000374196510392 -0.0063016867217474 0.0000379546186882 -0.0063249946374291 0.0000383670294611 -0.0063260387222173 0.0003167374497900 -0.0063260407222307 0.0034047565566555 -0.0063350088645163 1.2522036328355606 -0.0063385216085907 1.7427242717930260 -0.0063537389243384 0.2052886506900703 -0.0063557597630197 0.0016692165039042 -0.0063557773560624 -0.0001100000000419 -0.0063557773560624 -0.0001200000000419 -0.0063557897608570 0.0000385159622914 -0.0063736168268498 0.0000379466687798 -0.0063834955364202 0.0000392099482162 -0.0063915663602507 0.0000380927396015 -0.0064039604966598 0.0000384562323373 -0.0064203901092088 0.0000384691980410 -0.0064260363422391 0.0003168767219078 -0.0064260383422518 0.0013170510666129 -0.0064385145207660 1.7447638793388409 -0.0064557812563045 0.0038926431307117 -0.0064558212231012 -0.0001100000000416 -0.0064558212231012 -0.0001200000000416 -0.0064558337359839 0.0000393588962254 -0.0064636792854217 0.0000388548498928 -0.0064665837777782 0.0000380956394097 -0.0064773858105641 0.0000384803429398 -0.0064929032341978 0.0000377157447487 -0.0065020522098551 0.0000380936281231 -0.0065246494994908 0.0000384468019771 -0.0065260387110247 0.0003168856105186 -0.0065260407110390 0.0033231795580566 -0.0065337816500953 1.0814276011524906 -0.0065385189735547 1.7436093802724337 -0.0065537792794260 0.2025271157345990 -0.0065557735606561 0.0016734111607941 -0.0065557912032377 -0.0001099999999613 -0.0065557912032377 -0.0001199999999613 -0.0065558036011014 0.0000386056499272 -0.0065565534366594 0.0000391923722385 -0.0065828374862926 0.0000390099794451 -0.0065943572492555 0.0000374428895200 -0.0066014779022905 0.0000380452109255 -0.0066252425664205 0.0000384753381148 -0.0066260387124281 0.0003169580990517 -0.0066260407124427 0.0013316628327037 -0.0066310874987124 0.7052606475948794 -0.0066385173353830 1.7437472888287973 -0.0066537701952743 0.2034529940276088 -0.0066557736941230 0.0016734798797296 -0.0066557913374439 -0.0001099999999828 -0.0066557913374439 -0.0001199999999828 -0.0066558037349312 0.0000386080785922 -0.0066736345688581 0.0000380341781021 -0.0066842752195743 0.0000389796985328 -0.0066947587812287 0.0000375002128980 -0.0067165777306615 0.0000383897512220 -0.0067260386458101 0.0003168604577905 -0.0067260406458252 0.0013237566299361 -0.0067314687532242 0.7583414241890546 -0.0067385173928704 1.7434200733520737 -0.0067537651974923 0.2032628017203277 -0.0067557663615478 0.0016721702877762 -0.0067557839879915 -0.0001099999999809 -0.0067557839879915 -0.0001199999999809 -0.0067557963892533 0.0000385622447651 -0.0067735908163594 0.0000379891529355 -0.0067844523908594 0.0000389781833191 -0.0067939946776170 0.0000374329118999 -0.0068014747995714 0.0000379767131871 -0.0068256838589857 0.0000384409455551 -0.0068260387197676 0.0003168913075324 -0.0068260407197831 0.0013210617691739 -0.0068321037352146 0.8469252992047847 -0.0068385177234125 1.7433161624581228 -0.0068537414086851 0.2055559210280203 -0.0068557652627897 0.0016711029461191 -0.0068557828776320 -0.0001100000000104 -0.0068557828776320 -0.0001200000000104 -0.0068557952792281 0.0000385538049029 -0.0068564493843532 0.0000391390197759 -0.0068838088624948 0.0000389818325962 -0.0068939897223875 0.0000374386129735 -0.0069016681116197 0.0000379787757173 -0.0069250105849429 0.0000383908043013 -0.0069260387183202 0.0003167861321193 -0.0069260407183364 0.0034969904262408 -0.0069353177463418 1.2953951912432584 -0.0069385223126095 1.7427920033236892 -0.0069537414908433 0.2053339869823653 -0.0069557629852600 0.0016696373473194 -0.0069557805842553 -0.0001100000000376 -0.0069557805842553 -0.0001200000000376 -0.0069557929873645 0.0000385371859021 -0.0069736233045138 0.0000379667735769 -0.0069842708242102 0.0000389149967066 -0.0069947460881116 0.0000374358321419 -0.0070165972253588 0.0000383309484496 -0.0070260386433686 0.0003167506024462 -0.0070260406433852 0.0013230341971250 -0.0070315310652102 0.7668857651652981 -0.0070385174006862 1.7430756169694759 -0.0070537526686031 0.2037783946741620 -0.0070557584539110 0.0016705268282498 -0.0070557760596219 -0.0001100000000188 -0.0070557760596219 -0.0001200000000188 -0.0070557884649774 0.0000385112104528 -0.0070735759699490 0.0000379401989897 -0.0070844579424742 0.0000389280416896 -0.0070940103944887 0.0000373802294456 -0.0071014652042359 0.0000379283758037 -0.0071256965981963 0.0000383983566279 -0.0071260387239598 0.0003168066914355 -0.0071260407239769 0.0013207667428175 -0.0071321599699565 0.8546419666703660 -0.0071385177359029 1.7430473991708355 -0.0071537314273719 0.2059824859555281 -0.0071557591267554 0.0016697978631745 -0.0071557767252203 -0.0001099999999761 -0.0071557767252203 -0.0001199999999761 -0.0071557891299858 0.0000385143395726 -0.0071564529459778 0.0000391000000092 -0.0071838061543553 0.0000389445485547 -0.0071939650446348 0.0000374070065500 -0.0072016757166361 0.0000379445759571 -0.0072250043084915 0.0000383588674927 -0.0072260387204954 0.0003167230277613 -0.0072260407205137 0.0041141539386560 -0.0072366790591695 1.4851676042059527 -0.0072385255529796 1.7422677271278639 -0.0072537286882160 0.2061927223736529 -0.0072557584240909 0.0016677471428362 -0.0072557760017745 -0.0001099999999786 -0.0072557760017745 -0.0001199999999786 -0.0072557884072403 0.0000385078767917 -0.0072736076694676 0.0000379382357663 -0.0072842652020358 0.0000388873135437 -0.0072947386396152 0.0000374079785754 -0.0073166138537438 0.0000383054837802 -0.0073260386358443 0.0003167038260851 -0.0073260406358628 0.0013227177588214 -0.0073315634412429 0.7713386442063040 -0.0073385174063573 1.7429284952222102 -0.0073537472109041 0.2040093096030431 -0.0073557550747240 0.0016698191058311 -0.0073557726715173 -0.0001099999999851 -0.0073557726715173 -0.0001199999999851 -0.0073557850786267 0.0000384895190859 -0.0073735686587300 0.0000379192747013 -0.0073842455476214 0.0000388673228362 -0.0073947361136361 0.0000373883423299 -0.0074166201163033 0.0000382875761977 -0.0074260386337687 0.0003166700244440 -0.0074260406337879 0.0013225577688650 -0.0074315774744292 0.7732500488752009 -0.0074385174069151 1.7428238318409464 -0.0074537433493750 0.2041707762765604 -0.0074557526636136 0.0016693028248270 -0.0074557702539367 -0.0001099999999840 -0.0074557702539367 -0.0001199999999840 -0.0074557826622976 0.0000384739748689 -0.0074735635819831 0.0000379043328601 -0.0074842440408531 0.0000388529376230 -0.0074947324892392 0.0000373739060215 -0.0075166274851571 0.0000382743854768 -0.0075260386309125 0.0003166456807294 -0.0075260406309325 0.0013224100568601 -0.0075315933892317 0.7754364635185179 -0.0075385174095618 1.7427472697712076 -0.0075537406603034 0.2042758986370924 -0.0075557509065545 0.0016689552585187 -0.0075557684924461 -0.0001099999999747 -0.0075557684924461 -0.0001199999999747 -0.0075557809017193 0.0000384626745884 -0.0075735598883853 0.0000378934449362 -0.0075842434796282 0.0000388425149121 -0.0075947292579767 0.0000373633517412 -0.0076166348373118 0.0000382647345261 -0.0076260386273646 0.0003166280893162 -0.0076260406273854 0.0013222985178185 -0.0076316067513330 0.7772760636586112 -0.0076385174122086 1.7426917386863654 -0.0076537385445694 0.2043688211285375 -0.0076557496322481 0.0016686817904491 -0.0076557672147116 -0.0001099999999938 -0.0076557672147116 -0.0001199999999938 -0.0076557796246468 0.0000384545061315 -0.0076735569978901 0.0000378855459173 -0.0076842435745471 0.0000388350081324 -0.0076947262691470 0.0000373556472159 -0.0077166423550779 0.0000382576813092 -0.0077260386231735 0.0003166154717895 -0.0077260406231953 0.0013222065830300 -0.0077316183828817 0.7788811429254003 -0.0077385174149125 1.7426516704635804 -0.0077537369987824 0.2044378356869863 -0.0077557487129137 0.0016684850909592 -0.0077557662929084 -0.0001099999999783 -0.0077557662929084 -0.0001199999999783 -0.0077557787033220 0.0000384486451080 -0.0077735546777963 0.0000378798462488 -0.0077842441977543 0.0000388296523658 -0.0077947233981105 0.0000373500352433 -0.0078166502027325 0.0000382525347425 -0.0078260386183552 0.0003166065281459 -0.0078260406183779 0.0013221319604367 -0.0078316289427139 0.7803418381329017 -0.0078385174177380 1.7426230065337474 -0.0078537358176750 0.2044948162381976 -0.0078557480553246 0.0016683371055517 -0.0078557656334792 -0.0001099999999263 -0.0078557656334792 -0.0001199999999263 -0.0078557780442356 0.0000384444884539 -0.0078735527526926 0.0000378757676878 -0.0078842452617329 0.0000388258881176 -0.0078947205443458 0.0000373459604612 -0.0079166585345785 0.0000382487878617 -0.0079260386128977 0.0003166003082380 -0.0079260406129215 0.0013220673356142 -0.0079316389269931 0.7817260597507544 -0.0079385174207402 1.7426027622873508 -0.0079537350032169 0.2045331130039429 -0.0079557475910511 0.0016682399371966 -0.0079557651679771 -0.0001100000000484 -0.0079557651679771 -0.0001200000000484 -0.0079557775789766 0.0000384415953554 -0.0079735510901803 0.0000378728869777 -0.0079842467107997 0.0000388233068410 -0.0079947176231465 0.0000373430155003 -0.0080166675013122 0.0000382460687561 -0.0080260386067636 0.0003165961190099 -0.0080260406067886 0.0013220074269045 -0.0080316487299001 0.7830878404462406 -0.0080385174239735 1.7425887758358929 -0.0080537343677248 0.2045669354531552 -0.0080557472703876 0.0016681670787934 -0.0080557648464055 -0.0001099999999622 -0.0080557648464055 -0.0001199999999622 -0.0080557772575738 0.0000384396444801 -0.0080735495858330 0.0000378708946694 -0.0080842485121168 0.0000388216109489 -0.0080947145592558 0.0000373409014522 -0.0081166772614883 0.0000382441043141 -0.0081260385998903 0.0003165934567745 -0.0081260405999167 0.0013219510137836 -0.0081316586859359 0.7844731470499038 -0.0081385174274963 1.7425794485315669 -0.0081537339963952 0.2045842594855871 -0.0081557470567627 0.0016681322634503 -0.0081557646323093 -0.0001099999999989 -0.0081557646323093 -0.0001199999999989 -0.0081557770435915 0.0000384384022382 -0.0081735481576449 0.0000378695649162 -0.0081842506546107 0.0000388205847829 -0.0081947112806566 0.0000373393988848 -0.0082166879909343 0.0000382426937981 -0.0082260385921885 0.0003165919576372 -0.0082260405922163 0.0013218954720703 -0.0082316690884055 0.7859223929271535 -0.0082385174313735 1.7425736596176864 -0.0082537335428481 0.2046175110805764 -0.0082557469242132 0.0016680847837338 -0.0082557644992065 -0.0001100000000149 -0.0082557644992065 -0.0001200000000149 -0.0082557769105604 0.0000384377001713 -0.0082735467274225 0.0000378687330776 -0.0082842531394022 0.0000388200724864 -0.0082947077144552 0.0000373383457486 -0.0083166998916953 0.0000382416890477 -0.0083260385835382 0.0003165913605098 -0.0083260405835678 0.0013218383614317 -0.0083316802095276 0.7874731938290912 -0.0083385174356767 1.7425705475961992 -0.0083537332637684 0.2046390100511754 -0.0083557468532239 0.0016680637352839 -0.0083557644279598 -0.0001100000000673 -0.0083557644279598 -0.0001200000000673 -0.0083557768393540 0.0000384374174326 -0.0083735452441331 0.0000378682802866 -0.0083842559948093 0.0000388199648419 -0.0083947037802707 0.0000373376237177 -0.0084167132066096 0.0000382409813060 -0.0084260385737828 0.0003165914841255 -0.0084260405738142 0.0013217807511034 -0.0084316923394975 0.7891657857451695 -0.0084385174404977 1.7425695291450809 -0.0084537330738102 0.2046560846186915 -0.0084557468303671 0.0016680570278310 -0.0084557644050137 -0.0001099999999522 -0.0084557644050137 -0.0001199999999522 -0.0084557768164238 0.0000384374704349 -0.0084735436407021 0.0000378681213212 -0.0084842592562515 0.0000388201858493 -0.0084946993864616 0.0000373371445678 -0.0085167282335519 0.0000382404893835 -0.0085260385627188 0.0003165922053706 -0.0085260405627524 0.0013217179847053 -0.0085317057786133 0.7910418974058233 -0.0085385174459433 1.7425701952150787 -0.0085537329143074 0.2046737564323834 -0.0085557468462336 0.0016680565869821 -0.0085557644208733 -0.0001100000000716 -0.0085557644208733 -0.0001200000000716 -0.0085557768322799 0.0000384378028448 -0.0085735418500842 0.0000378681957251 -0.0085842629796028 0.0000388206857532 -0.0085946944223582 0.0000373368421891 -0.0086167453508332 0.0000382401518195 -0.0086260385500818 0.0003165934472376 -0.0086260405501178 0.0013216519694447 -0.0086317208937407 0.7931526115033141 -0.0086385174521551 1.7425722830000956 -0.0086537326116061 0.2047089338308688 -0.0086557468946959 0.0016680373399982 -0.0086557644691581 -0.0001099999999928 -0.0086557644691581 -0.0001199999999928 -0.0086557768805443 0.0000384383800216 -0.0086735397937156 0.0000378684615785 -0.0086842672420283 0.0000388214354977 -0.0086946887495435 0.0000373366656465 -0.0087167650445682 0.0000382399209622 -0.0087260385355241 0.0003165951701240 -0.0087260405355629 0.0013215783927001 -0.0087317381169130 0.7955581588478499 -0.0087385174593102 1.7425755912209691 -0.0087537324575165 0.2047318304135649 -0.0087557469713919 0.0016680434376387 -0.0087557645459424 -0.0001099999999887 -0.0087557645459424 -0.0001199999999887 -0.0087557769572948 0.0000384391852070 -0.0087735373770561 0.0000378688911734 -0.0087842721506222 0.0000388224238153 -0.0087946821885460 0.0000373365742181 -0.0088167879591088 0.0000382397579135 -0.0088260385185824 0.0003165973677020 -0.0088260405186245 0.0013214950258814 -0.0088317580093322 0.7983368422825925 -0.0088385174676475 1.7425800502576934 -0.0088537322891800 0.2047586893598750 -0.0088557470746463 0.0016680516933047 -0.0088557646493187 -0.0001100000000690 -0.0088557646493187 -0.0001200000000690 -0.0088557770606245 0.0000384402179541 -0.0088735344702075 0.0000378694674918 -0.0088842778467299 0.0000388236551150 -0.0088946745008191 0.0000373365320855 -0.0089168149656466 0.0000382396280287 -0.0089260384986271 0.0003166000648636 -0.0089260404986732 0.0013214019552704 -0.0089317813147042 0.8015924784827622 -0.0089385174774913 1.7425856529898964 -0.0089537320770039 0.2047924848509605 -0.0089557472043363 0.0016680589645018 -0.0089557647791324 -0.0001100000000822 -0.0089557647791324 -0.0001200000000822 -0.0089557771903791 0.0000384414937536 -0.0089735308934251 0.0000378701817052 -0.0089842845238026 0.0000388251499881 -0.0089946655916218 0.0000371343493930 -0.0090013236502566 0.0000378112247558 -0.0090252355269940 0.0000382655652760 -0.0090260387170731 0.0003165524387899 -0.0090260407171239 0.0013239591872036 -0.0090314297290465 0.7524703546032170 -0.0090385174009065 1.7424539741538407 -0.0090537208655143 0.2056362524610727 -0.0090557441704581 0.0016671965508555 -0.0090557617348956 -0.0001099999999854 -0.0090557617348956 -0.0001199999999854 -0.0090557741476419 0.0000384222011793 -0.0090572905668641 0.0000390216943541 -0.0090765206698593 0.0000381450724104 -0.0090886176971546 0.0000384731189853 -0.0091095978211091 0.0000387067284310 -0.0091193407417677 0.0000375842532370 -0.0091260385678671 0.0003156330701076 -0.0091260405679236 0.0013164657965754 -0.0091385235501285 1.7373239163422314 -0.0091556689393891 0.0019197077123187 -0.0091556888805692 -0.0001100000000160 -0.0091556888805692 -0.0001200000000160 -0.0091557267014717 0.0000375407890338 -0.0091853565748879 0.0000372792149962 -0.0091909015684574 0.0000364315275381 -0.0092019145203601 0.0000368223196072 -0.0092175077907783 0.0000363234762176 -0.0092260119974814 0.0003116135955930 -0.0092260139975454 0.0013121212470019 -0.0092385191305102 1.7341781580899365 -0.0092532967880202 0.2281580317909376 -0.0092555252927528 0.0018826312490860 -0.0092555448930305 -0.0001100000000097 -0.0092555448930305 -0.0001200000000097 -0.0092555573911292 0.0000373653670341 -0.0092693792648693 0.0000363407955092 -0.0092938654391269 0.0000359090559805 -0.0093016109104712 0.0000364763659605 -0.0093250300056382 0.0000370260440255 -0.0093260388256036 0.0003140889113024 -0.0093260408256773 0.0013178809855585 -0.0093316700708350 0.7825752849671175 -0.0093385171457798 1.7349648787830945 -0.0093534832703589 0.2133805520512338 -0.0093555720234649 0.0016346298748797 -0.0093555891708885 -0.0001100000000102 -0.0093555891708885 -0.0001200000000102 -0.0093556016742237 0.0000373034517161 -0.0093731504810127 0.0000367758116337 -0.0093841246977750 0.0000377642743316 -0.0093944766844771 0.0000361277840806 -0.0094013305820515 0.0000368015455999 -0.0094253815904269 0.0000373560954687 -0.0094260388017769 0.0003147513797902 -0.0094260408018633 0.0013174995015100 -0.0094323293264441 0.8750927701525685 -0.0094385175091708 1.7367986321611197 -0.0094535270473396 0.2130281381903880 -0.0094556151863088 0.0016416371755514 -0.0094556324264059 -0.0001100000000333 -0.0094556324264059 -0.0001200000000333 -0.0094556449066163 0.0000375884521119 -0.0094732547068864 0.0000370467149031 -0.0094842046671657 0.0000380331046235 -0.0094944795237305 0.0000363832126726 -0.0095013125839769 0.0000370570892809 -0.0095253355031239 0.0000375830948484 -0.0095260387685166 0.0003152105753085 -0.0095260407686212 0.0013182159261359 -0.0095322628778970 0.8665635053056624 -0.0095385175467366 1.7382074830079932 -0.0095535711677857 0.2116133360708430 -0.0095556474429626 0.0016476563575558 -0.0095556647602557 -0.0001099999999581 -0.0095556647602557 -0.0001199999999581 -0.0095556772234481 0.0000378020173454 -0.0095572608324457 0.0000384082805666 -0.0095765532775892 0.0000379025940666 -0.0095910327868718 0.0000374996436500 -0.0096048928202732 0.0000379790991196 -0.0096166205872828 0.0000372285047356 -0.0096244671275253 0.0000374257494267 -0.0096260101335102 0.0003149367467343 -0.0096260121336428 0.0013159082581076 -0.0096364540817865 1.4521788631554471 -0.0096385254364827 1.7396512513576012 -0.0096535260727553 0.2166231081430887 -0.0096556493418293 0.0016442851398443 -0.0096556666043274 -0.0001099999999735 -0.0096556666043274 -0.0001199999999735 -0.0096556790863522 0.0000375610864808 -0.0096698955709387 0.0000366687661042 -0.0096956417578628 0.0000364616380696 -0.0097066959944160 0.0000375979025512 -0.0097140952679909 0.0000368982101667 -0.0097260371973640 0.0003126589461869 -0.0097260391975446 0.0013128046588828 -0.0097385152630650 1.7313432286392052 -0.0097554834973554 0.0037705393050635 -0.0097555217355740 -0.0001100000000194 -0.0097555217355740 -0.0001200000000194 -0.0097555343254778 0.0000371232907446 -0.0097687466653267 0.0000361869566714 -0.0097943321087915 0.0000356772273621 -0.0098015626095797 0.0000363836847187 -0.0098242681001467 0.0000368658018260 -0.0098260385954226 0.0003138343978634 -0.0098260405957087 0.0013195274011484 -0.0098311739467854 0.7134391969049488 -0.0098385169517226 1.7343673739133414 -0.0098534739178453 0.2129264775033219 -0.0098555571790559 0.0016326608202269 -0.0098555742988524 -0.0001099999999541 -0.0098555742988524 -0.0001199999999541 -0.0098555868104311 0.0000372432119185 -0.0098573762862988 0.0000378556004547 -0.0098781706224013 0.0000373943646368 -0.0098883869771190 0.0000373398796385 -0.0098920203976829 0.0000365020565025 -0.0099017701834644 0.0000370542495289 -0.0099247963720839 0.0000374382569370 -0.0099260383525195 0.0003151195445537 -0.0099260403531905 0.0013167688253493 -0.0099336950938808 1.0655881875401307 -0.0099385189384606 1.7376096316115288 -0.0099535417637884 0.2136214279808813 -0.0099556372178768 0.0016447491113658 -0.0099556545005482 -0.0001099999999414 -0.0099556545005482 -0.0001199999999414 -0.0099556669690257 0.0000378837350115 -0.0099569598140017 0.0000384826356831 -0.0099874196661002 0.0000385461180899 -0.0099941509019171 0.0000357749633173 +0.0000099628091091 0.0002380965030657 +0.0000105254333052 0.0002378437672754 +0.0000126676683552 0.0002367651556739 +0.0000260265225606 0.0006977164076005 +0.0000260285225657 0.0036977948336304 +0.0000317080137766 1.3302680430462579 +0.0000374047743203 2.6483618426128963 +0.0000385274940067 2.9019874976113993 +0.0000461384996063 2.8027376633342116 +0.0000526124443431 2.6935797273685065 +0.0000597168399138 2.5467346733196048 +0.0000661032010522 2.3859875946425437 +0.0000726166407335 2.1922896525016777 +0.0000792969039790 1.9650449413387476 +0.0000850672776686 1.7457588631770742 +0.0000904347995679 1.5211934909685620 +0.0000956812771543 1.2827090656481768 +0.0001009362726783 1.0277963797680036 +0.0001051112400735 0.8158342081933545 +0.0001099522913166 0.5596239813260836 +0.0001139127237127 0.3411493030480833 +0.0001191028715919 0.0433362940296253 +0.0001198000503996 0.0025248028163989 +0.0001198441048009 -0.0001100000000000 +0.0001198441048009 -0.0001200000000000 +0.0001198683590729 0.0001225507456703 +0.0001233606677782 0.0001203161092549 +0.0001260100086587 0.0004777030044148 +0.0001260120086655 0.0034777654148368 +0.0001313909539705 0.9645893219754983 +0.0001378837065365 2.1151724220497958 +0.0001385213837464 2.2248006643524985 +0.0001482605787781 1.5850036251854176 +0.0001569035449715 1.0000126322171909 +0.0001641075115064 0.5024307654749378 +0.0001712033745219 0.0024641986867813 +0.0001712393240977 -0.0001099999999991 +0.0001712393240977 -0.0001199999999991 +0.0001712664824493 0.0000982468196897 +0.0001771794853455 0.0000974072309924 +0.0001881963233057 0.0000949821715219 +0.0001899403401863 0.0000940925378507 +0.0002091929915674 0.0000909033994187 +0.0002232952348778 0.0000876294175330 +0.0002260100077776 0.0004150021556985 +0.0002260120077821 0.0034156939143521 +0.0002366364672504 1.7405987994574068 +0.0002385213485323 2.0450154547870545 +0.0002566208905392 0.6301292068154396 +0.0002645662390306 0.0022906210566710 +0.0002645961552545 -0.0001099999999999 +0.0002645961552545 -0.0001199999999999 +0.0002646256552184 0.0000810948062245 +0.0002739733856981 0.0000795057551390 +0.0002901813413142 0.0000773818719001 +0.0003060338281814 0.0000759274290512 +0.0003153276321134 0.0000741333843168 +0.0003260314889240 0.0003850110431842 +0.0003260334889284 0.0013892690230483 +0.0003377081625943 1.8285188655709532 +0.0003385193628510 1.9527889457806478 +0.0003612899420436 0.0190891588391436 +0.0003614891957892 0.0020749743127067 +0.0003615145509116 -0.0001100000000009 +0.0003615145509116 -0.0001200000000009 +0.0003615459493684 0.0000691989526272 +0.0003767560999015 0.0000674036567502 +0.0003888826791551 0.0000664307320350 +0.0004110166139088 0.0000646604384746 +0.0004230308509874 0.0000629504991534 +0.0004260364077432 0.0003655541634999 +0.0004260384077483 0.0033660753294401 +0.0004385237861070 1.8903876332458776 +0.0004567457436668 0.2602522350956152 +0.0004596227843643 0.0025255474467098 +0.0004596520121691 -0.0001100000000016 +0.0004596520121691 -0.0001200000000016 +0.0004596849124710 0.0000607696659013 +0.0004720659762176 0.0000591778513034 +0.0004973615424648 0.0000574099304072 +0.0005100451252834 0.0000573850506144 +0.0005260265014273 0.0003519254109128 +0.0005260285014315 0.0013522495757920 +0.0005383831995319 1.8328067410368221 +0.0005385178464088 1.8508429212006632 +0.0005584694403851 0.0016523179787063 +0.0005584882930556 -0.0001100000000036 +0.0005584882930556 -0.0001200000000036 +0.0005585223570377 0.0000546570102315 +0.0005874268048524 0.0000531033635583 +0.0006128670683419 0.0000519187924170 +0.0006260316491956 0.0003418470219475 +0.0006260336491999 0.0013421556638853 +0.0006385126838615 1.8196543754458745 +0.0006512285279859 0.6077932952083462 +0.0006576205531244 0.0028369688150564 +0.0006576514190708 -0.0001100000000034 +0.0006576514190708 -0.0001200000000034 +0.0006576863663219 0.0000501444132554 +0.0006745797734358 0.0000484167822075 +0.0006828349072014 0.0000492155033744 +0.0006995057500947 0.0000475134150338 +0.0007075912390294 0.0000483731357718 +0.0007244017192771 0.0000469957110789 +0.0007260378509901 0.0003342958960527 +0.0007260398509946 0.0013346069570661 +0.0007385135103706 1.7958189142493901 +0.0007569957243804 0.0046692461603850 +0.0007570453058390 -0.0001099999999960 +0.0007570453058390 -0.0001199999999960 +0.0007570572299380 0.0000469940400499 +0.0007656457691796 0.0000460358087937 +0.0007809211522244 0.0000462259812945 +0.0007903351631828 0.0000454520487555 +0.0008070745009701 0.0000455403954864 +0.0008229134947910 0.0000442621994842 +0.0008260381258674 0.0003285623185628 +0.0008260401258726 0.0013334562380789 +0.0008355901812590 1.3628702208422205 +0.0008385164785675 1.7784011346675230 +0.0008552237023629 0.1385614102613718 +0.0008566186369437 0.0021012208634620 +0.0008566411208773 -0.0001099999999993 +0.0008566411208773 -0.0001199999999993 +0.0008566773656909 0.0000443456185659 +0.0008711557052079 0.0000431719114638 +0.0008960636963395 0.0000426887449977 +0.0009209116662807 0.0000422383063885 +0.0009260383161554 0.0003246241730967 +0.0009260403161607 0.0013266087929232 +0.0009369462390744 1.5456070122393879 +0.0009385160974987 1.7663402106801944 +0.0009547368591598 0.1570529445164779 +0.0009563047243790 0.0021929600524788 +0.0009563279604762 -0.0001099999999955 +0.0009563279604762 -0.0001199999999955 +0.0009563400289427 0.0000425614511350 +0.0009707811626010 0.0000414329239880 +0.0009954762617558 0.0000410672790456 +0.0010203475367104 0.0000407292965107 +0.0010260384617379 0.0003216908450217 +0.0010260404617432 0.0013230780955328 +0.0010374363681815 1.6035828699095362 +0.0010385289506868 1.7560409983698542 +0.0010542445294106 0.1858742153569190 +0.0010560916129873 0.0020024392166225 +0.0010561127848035 -0.0001100000000030 +0.0010561127848035 -0.0001200000000030 +0.0010561249620276 0.0000412346677433 +0.0010704666977575 0.0000401279646080 +0.0010949147447970 0.0000398439963314 +0.0011198231752243 0.0000395892409316 +0.0011260385714033 0.0003194917466837 +0.0011260405714087 0.0013206088960264 +0.0011385265443837 1.7494936047861116 +0.0011539646937740 0.1989365724325599 +0.0011559332357353 0.0018609015462892 +0.0011559528875173 -0.0001099999999951 +0.0011559528875173 -0.0001199999999951 +0.0011559651437894 0.0000402379084748 +0.0011702340605252 0.0000391458261993 +0.0011945308669373 0.0000389223418121 +0.0012194392418187 0.0000387291852278 +0.0012260386542995 0.0003178395464557 +0.0012260406543050 0.0013188109219880 +0.0012385262472553 1.7444169393245081 +0.0012537716837178 0.2071913438720471 +0.0012558151387188 0.0017508863355757 +0.0012558336208244 -0.0001099999999908 +0.0012558336208244 -0.0001199999999908 +0.0012558459360496 0.0000394886624752 +0.0012700566622592 0.0000384047806605 +0.0012941905539872 0.0000382241313246 +0.0013191156189941 0.0000380778428854 +0.0013260387168115 0.0003165955652809 +0.0013260407168170 0.0013174762525524 +0.0013385259936527 1.7405889597262059 +0.0013536423243095 0.2118809946798354 +0.0013557475181048 -0.0001099999997544 +0.0013557475181048 -0.0001199999997544 +0.0013557640729138 0.0000389252425444 +0.0013699242305139 0.0000378451426220 +0.0013940662409146 0.0000377989876287 +0.0014104209804893 0.0000387398203305 +0.0014191696790497 0.0000375759093546 +0.0014260387612049 0.0003156428180328 +0.0014260407612105 0.0013164240115437 +0.0014385226674966 1.7372762102561201 +0.0014556562671755 0.0036201575763246 +0.0014556932358427 -0.0001099999999988 +0.0014556932358427 -0.0001199999999988 +0.0014557057179081 0.0000383091886328 +0.0014689852860250 0.0000373624438332 +0.0014947957969933 0.0000376897046519 +0.0015094802481766 0.0000383058112565 +0.0015191458521532 0.0000371878964596 +0.0015260387998851 0.0003148895849811 +0.0015260407998907 0.0013156377271256 +0.0015385224115154 1.7349319450724503 +0.0015555982656913 0.0038320421574074 +0.0015556372754447 -0.0001100000000093 +0.0015556372754447 -0.0001200000000093 +0.0015556497981090 0.0000379499233370 +0.0015687730436505 0.0000370149392793 +0.0015897225668426 0.0000372137036531 +0.0016086709343689 0.0000379247617915 +0.0016260100687095 0.0003138853658566 +0.0016260120687158 0.0033143732588754 +0.0016312606967667 0.7298461442390002 +0.0016385167918419 1.7390154953017398 +0.0016535910496802 0.2061964992028500 +0.0016556085207957 0.0016445837773879 +0.0016556257639300 -0.0001099999999942 +0.0016556257639300 -0.0001199999999942 +0.0016556382702763 0.0000372599586645 +0.0016733839438045 0.0000367654021950 +0.0016838126921159 0.0000377198821506 +0.0017014132463920 0.0000373502422547 +0.0017190122523832 0.0000366349168592 +0.0017260388543207 0.0003138183952528 +0.0017260408543265 0.0013145311208378 +0.0017385185549089 1.7276392961152172 +0.0017479387490838 0.7733354962250378 +0.0017555113739647 0.0027141380840231 +0.0017555393161359 -0.0001100000000029 +0.0017555393161359 -0.0001200000000029 +0.0017555518991011 0.0000377067104575 +0.0017636166710936 0.0000372910628239 +0.0017840957883646 0.0000375975335088 +0.0017939849748734 0.0000364880386951 +0.0018147467317809 0.0000366972033074 +0.0018260384022486 0.0003131019699918 +0.0018260404022533 0.0013132471979829 +0.0018385152537420 1.7324697753337259 +0.0018555119080639 0.0037448100019438 +0.0018555499281248 -0.0001099999999923 +0.0018555499281248 -0.0001199999999923 +0.0018555625001721 0.0000372916197706 +0.0018687660124364 0.0000363608787023 +0.0018897217749510 0.0000365891116030 +0.0019086492161210 0.0000373370215566 +0.0019260100711675 0.0003127355640478 +0.0019260120711741 0.0033132295245828 +0.0019311794947308 0.7171432637527936 +0.0019385166464460 1.7355953951132062 +0.0019534934958653 0.2086655868471180 +0.0019555302522187 0.0016315569736348 +0.0019555473242370 -0.0001099999999879 +0.0019555473242370 -0.0001199999999879 +0.0019555598725364 0.0000367456390992 +0.0019731730802196 0.0000362679222727 +0.0019836160860308 0.0000372540742350 +0.0020012963972110 0.0000368822947172 +0.0020189164951649 0.0000361927741313 +0.0020260388970849 0.0003129712456474 +0.0020260408970909 0.0013136469909357 +0.0020385186216480 1.7250668251711871 +0.0020477388222730 0.7892042564913974 +0.0020554517905589 0.0027551535729454 +0.0020554800832811 -0.0001099999999989 +0.0020554800832811 -0.0001199999999989 +0.0020554927002850 0.0000373038568955 +0.0020636411138820 0.0000369025639539 +0.0020839382706202 0.0000372318609936 +0.0020939061720895 0.0000361289910494 +0.0021146708587628 0.0000363723533333 +0.0021260383419325 0.0003124512413813 +0.0021260403419375 0.0013125965055804 +0.0021385153063547 1.7305038344379948 +0.0021554664977836 0.0037772906778061 +0.0021555047839466 -0.0001099999999819 +0.0021555047839466 -0.0001199999999819 +0.0021555173826956 0.0000369926075171 +0.0021687045091081 0.0000360691643493 +0.0021896603093923 0.0000363253889285 +0.0022085331945403 0.0000370886021681 +0.0022260100742197 0.0003122242886912 +0.0022260120742266 0.0033127174165674 +0.0022311037216026 0.7060383089841228 +0.0022385165691502 1.7341189148884506 +0.0022534558497796 0.2092814831606264 +0.0022554964656547 0.0016264511145053 +0.0022555134691132 -0.0001100000000080 +0.0022555134691132 -0.0001200000000080 +0.0022555260357063 0.0000365227965359 +0.0022730704624547 0.0000360516909197 +0.0022835223761261 0.0000370523609575 +0.0023012424937422 0.0000366785562595 +0.0023188745105794 0.0000360005026242 +0.0023260389150835 0.0003126033353350 +0.0023260409150897 0.0013132637108479 +0.0023385186532133 1.7239499316674738 +0.0023476521521004 0.7961051625006399 +0.0023554259799126 0.0027734475424788 +0.0023554544291857 -0.0001100000000043 +0.0023554544291857 -0.0001200000000043 +0.0023554670610508 0.0000371288233357 +0.0023636521687240 0.0000367336762283 +0.0023838691375466 0.0000370727399722 +0.0023938722304424 0.0000359728437547 +0.0024146385672847 0.0000362311360677 +0.0024260383129768 0.0003121683341642 +0.0024260403129820 0.0013123135981651 +0.0024385153296079 1.7296496290877956 +0.0024554468024808 0.0037914880915719 +0.0024554852048350 -0.0001099999999806 +0.0024554852048350 -0.0001199999999806 +0.0024554978152228 0.0000368626200523 +0.0024686779281574 0.0000359422666361 +0.0024896343692368 0.0000362106921569 +0.0025084832055180 0.0000369806042568 +0.0025260100771125 0.0003120019139954 +0.0025260120771196 0.0033124946444844 +0.0025310707706159 0.7012148483139702 +0.0025385165364829 1.7334767410419598 +0.0025534398550290 0.2095137080841120 +0.0025554817962343 0.0016243001815113 +0.0025554987706065 -0.0001099999999892 +0.0025554987706065 -0.0001199999999892 +0.0025555113451702 0.0000364259121648 +0.0025730257071606 0.0000359576442487 +0.0025834819555286 0.0000369646520716 +0.0026012197307714 0.0000365899807232 +0.0026188561393370 0.0000359168179359 +0.0026260389222601 0.0003124433241779 +0.0026260409222666 0.0013130972576321 +0.0026385186673904 1.7234642806673268 +0.0026476146774966 0.7990889036019154 +0.0026554147688136 0.0027813902172564 +0.0026554432859510 -0.0001100000000055 +0.0026554432859510 -0.0001200000000055 +0.0026554559242889 0.0000370527089499 +0.0026636569332547 0.0000366601851580 +0.0026838387409566 0.0000370034900506 +0.0026938574128239 0.0000359048704889 +0.0027146253785330 0.0000361696531904 +0.0027260382989904 0.0003120452415269 +0.0027260402989959 0.0013121905039632 +0.0027385153398022 1.7292781837316353 +0.0027554382432908 0.0037976774930647 +0.0027554766962719 -0.0001100000000179 +0.0027554766962719 -0.0001200000000179 +0.0027554893117292 0.0000368060852391 +0.0027686662374529 0.0000358870123973 +0.0027896239706338 0.0000361607380155 +0.0028084612248828 0.0000369336556189 +0.0028260100800674 0.0003119051828719 +0.0028260120800747 0.0033123977325771 +0.0028310564338774 0.6991170640228300 +0.0028385165224499 1.7331970903754494 +0.0028534329567429 0.2096087830274344 +0.0028554754154672 0.0016233761367556 +0.0028554923773083 -0.0001099999999845 +0.0028554923773083 -0.0001199999999845 +0.0028555049553432 0.0000363837789292 +0.0028730059074600 0.0000359167040251 +0.0028834642461183 0.0000369265207778 +0.0029012106005720 0.0000365515009393 +0.0029188478864565 0.0000358803568819 +0.0029260389246694 0.0003123736904368 +0.0029260409246762 0.0013130248882897 +0.0029385186736449 1.7232530469960818 +0.0029475984076097 0.8003844680745871 +0.0029554098936927 0.0027848462716648 +0.0029554384403428 -0.0001100000000092 +0.0029554384403428 -0.0001200000000092 +0.0029554510814995 0.0000370196101023 +0.0029636589098071 0.0000366281788849 +0.0029838251383492 0.0000369733514046 +0.0029938508161159 0.0000358752502394 +0.0030146205794031 0.0000361428409083 +0.0030260382916768 0.0003119916630030 +0.0030260402916826 0.0013121369365175 +0.0030385153442510 1.7291166888405254 +0.0030554345211513 0.0038003740440098 +0.0030554729961844 -0.0001099999999787 +0.0030554729961844 -0.0001199999999787 +0.0030554856138493 0.0000367815043983 +0.0030686609542702 0.0000358629245965 +0.0030896204160180 0.0000361389402606 +0.0031084512684784 0.0000369132723991 +0.0031260100832002 0.0003118631289493 +0.0031260120832078 0.0033123556005913 +0.0031310501941617 0.6982040053320472 +0.0031385165163782 1.7330751228709720 +0.0031534298865531 0.2096568983101074 +0.0031554726366681 0.0016229634844053 +0.0031554895929536 -0.0001100000000163 +0.0031554895929536 -0.0001200000000163 +0.0031555021724996 0.0000363654674105 +0.0031729968989231 0.0000358988658597 +0.0031834563151112 0.0000369099656042 +0.0032012074787644 0.0000365348277913 +0.0032188439863895 0.0000358644421214 +0.0032260389249390 0.0003123433775021 +0.0032260409249461 0.0013129934884972 +0.0032385186763858 1.7231612141958514 +0.0032475913263387 0.8009486142477198 +0.0032554077732229 0.0027863546300147 +0.0032554363327557 -0.0001100000000168 +0.0032554363327557 -0.0001200000000168 +0.0032554489751398 0.0000370052306227 +0.0032636596558756 0.0000366142223908 +0.0032838188033863 0.0000369602374661 +0.0032938477655257 0.0000358623177930 +0.0033146195206273 0.0000361311101255 +0.0033260382872113 0.0003119683355355 +0.0033260402872174 0.0013121136467921 +0.0033385153461880 1.7290465656362664 +0.0033554329028394 0.0038015483790672 +0.0033554713874752 -0.0001100000000173 +0.0033554713874752 -0.0001200000000173 +0.0033554840061014 0.0000367708321831 +0.0033686584305902 0.0000358523976868 +0.0033896199319994 0.0000361293903799 +0.0034084464834318 0.0000369044560065 +0.0034260100865825 0.0003118448786596 +0.0034260120865905 0.0033123373144572 +0.0034310474786319 0.6978063947328532 +0.0034385165137438 1.7330217356894335 +0.0034534286311245 0.2096693208660996 +0.0034554714242714 0.0016227974392823 +0.0034554883782725 -0.0001099999999969 +0.0034554883782725 -0.0001199999999969 +0.0034555009584767 0.0000363575260330 +0.0034729925444501 0.0000358910803185 +0.0034834526028043 0.0000369028054254 +0.0035012070537276 0.0000365276537098 +0.0035188419466566 0.0000358574663630 +0.0035260389242030 0.0003123301775595 +0.0035260409242104 0.0013129797642718 +0.0035385186775832 1.7231213576177973 +0.0035475882395287 0.8011947781079158 +0.0035554068513745 0.0027870149423682 +0.0035554354165514 -0.0001100000000012 +0.0035554354165514 -0.0001200000000012 +0.0035554480594700 0.0000369990014627 +0.0035636598530669 0.0000366081199680 +0.0035838155920101 0.0000369545353673 +0.0035938462381950 0.0000358566455642 +0.0036146201898385 0.0000361259379640 +0.0036260382838724 0.0003119581751770 +0.0036260402838788 0.0013121035003279 +0.0036385153470283 1.7290162294453628 +0.0036554322001828 0.0038020597867042 +0.0036554706890002 -0.0001099999999852 +0.0036554706890002 -0.0001199999999852 +0.0036554833080450 0.0000367662168700 +0.0036686570841548 0.0000358477697491 +0.0036896208874948 0.0000361251658137 +0.0037084438989377 0.0000369006802484 +0.0037260100902701 0.0003118369962450 +0.0037260120902784 0.0033123294166370 +0.0037310462966638 0.6976330271564112 +0.0037385165126004 1.7329981812030932 +0.0037534280870784 0.2096741660426027 +0.0037554708934266 0.0016227258957088 +0.0037554878464407 -0.0001100000000010 +0.0037554878464407 -0.0001200000000010 +0.0037555004269315 0.0000363541016743 +0.0037729901708901 0.0000358876685336 +0.0037834506970385 0.0000368997396244 +0.0038012078957350 0.0000365246230380 +0.0038188406816431 0.0000358543770980 +0.0038260389229439 0.0003123244264193 +0.0038260409229517 0.0013129738709839 +0.0038385186781074 1.7231041380665439 +0.0038475868890351 0.8013027623387607 +0.0038554064513171 0.0027873069745467 +0.0038554350189962 -0.0001100000000155 +0.0038554350189962 -0.0001200000000155 +0.0038554476621479 0.0000369963232352 +0.0038636597983663 0.0000366054337672 +0.0038838136943660 0.0000369520606216 +0.0038938453529122 0.0000358541295482 +0.0039146217236027 0.0000361236143284 +0.0039260382808835 0.0003119537460512 +0.0039260402808903 0.0013120990505573 +0.0039385153473895 1.7290032323067863 +0.0039554318962528 0.0038022828859311 +0.0039554703868949 -0.0001100000000081 +0.0039554703868949 -0.0001200000000081 +0.0039554830061220 0.0000367642413364 +0.0039686562242231 0.0000358457051150 +0.0039896225904359 0.0000361232523985 +0.0040084422219957 0.0000368991050983 +0.0040260100944238 0.0003118336335325 +0.0040260120944326 0.0033123260467677 +0.0040310457833570 0.6975573726026794 +0.0040385165122595 1.7329875846043916 +0.0040534278790869 0.2096730126776711 +0.0040554706591046 0.0016226998008202 +0.0040554876117387 -0.0001099999999568 +0.0040554876117387 -0.0001199999999568 +0.0040555001923545 0.0000363526470314 +0.0040729886103204 0.0000358861583369 +0.0040834495473426 0.0000368984615143 +0.0041012093967437 0.0000365234057193 +0.0041188397149591 0.0000358529741294 +0.0041260389214621 0.0003123219171091 +0.0041260409214703 0.0013129711933602 +0.0041385186784909 1.7230967926802443 +0.0041475862942565 0.8013506381626853 +0.0041554062787249 0.0027874388480814 +0.0041554348475400 -0.0001100000000405 +0.0041554348475400 -0.0001200000000405 +0.0041554474907934 0.0000369951942235 +0.0041636596191501 0.0000366042314565 +0.0041838123160741 0.0000369509915330 +0.0041938447240068 0.0000358529823807 +0.0042146237665282 0.0000361225227862 +0.0042260382779877 0.0003119518107535 +0.0042260402779949 0.0013120971341797 +0.0042385153476964 1.7289978108728736 +0.0042554317662858 0.0038023803977829 +0.0042554702577258 -0.0001100000000414 +0.0042554702577258 -0.0001200000000414 +0.0042554828770325 0.0000367634183628 +0.0042686555467258 0.0000358447507131 +0.0042896247563823 0.0000361223369678 +0.0043084408781244 0.0000368984951694 +0.0043260100988976 0.0003118322449556 +0.0043260120989069 0.0033123246550286 +0.0043310455598220 0.6975240550516942 +0.0043385165120470 1.7329825951734201 +0.0043534276805567 0.2096831127396472 +0.0043554705533559 0.0016226712145745 +0.0043554875056551 -0.0001100000000429 +0.0043554875056551 -0.0001200000000429 +0.0043555000863248 0.0000363520536503 +0.0043729873438490 0.0000358854729608 +0.0043834486896273 0.0000368979677598 +0.0044012113085531 0.0000365229888395 +0.0044188388311421 0.0000358522987327 +0.0044260389196188 0.0003123208185487 +0.0044260409196275 0.0013129699004903 +0.0044385186785925 1.7230937525936638 +0.0044475860250935 0.8013726738368372 +0.0044554062049780 0.0027875026753604 +0.0044554347743511 -0.0001100000000027 +0.0044554347743511 -0.0001200000000027 +0.0044554474176490 0.0000369947437556 +0.0044636593685677 0.0000366036714042 +0.0044838111005838 0.0000369505353224 +0.0044938441785612 0.0000358524253369 +0.0045146261872590 0.0000361219586589 +0.0045260382747940 0.0003119509608887 +0.0045260402748018 0.0013120962742980 +0.0045385153477580 1.7289957043798851 +0.0045554317120045 0.0038024230730933 +0.0045554702037938 -0.0001100000000176 +0.0045554702037938 -0.0001200000000176 +0.0045554828231353 0.0000367631016232 +0.0045686549139962 0.0000358442735765 +0.0045896272867790 0.0000361218467175 +0.0046084396102687 0.0000368983144640 +0.0046260101038671 0.0003118317256556 +0.0046260121038768 0.0033123241337714 +0.0046310454633311 0.6975092431993966 +0.0046385165119577 1.7329799956539540 +0.0046534275923425 0.2096872636301245 +0.0046554705031170 0.0016226589297077 +0.0046554874552720 -0.0001099999999785 +0.0046554874552720 -0.0001199999999785 +0.0046555000359652 0.0000363518401292 +0.0046729861387826 0.0000358851437416 +0.0046834479186728 0.0000368978230172 +0.0047012135463321 0.0000365229339619 +0.0047188379299095 0.0000358519327718 +0.0047260389175277 0.0003123203337577 +0.0047260409175369 0.0013129695983299 +0.0047385186786411 1.7230926090748913 +0.0047475858988595 0.8013833705447860 +0.0047554061745712 0.0027875364718734 +0.0047554347442466 -0.0001099999999630 +0.0047554347442466 -0.0001199999999630 +0.0047554473875642 0.0000369945937838 +0.0047636590660490 0.0000366033868762 +0.0047838098843846 0.0000369503473008 +0.0047938436374662 0.0000358521185224 +0.0048146289523354 0.0000361216138310 +0.0048260382712891 0.0003119505827571 +0.0048260402712973 0.0013120959166121 +0.0048385153477794 1.7289950755981525 +0.0048554316910630 0.0038024422279623 +0.0048554701830098 -0.0001099999999921 +0.0048554701830098 -0.0001199999999921 +0.0048554828023667 0.0000367630103371 +0.0048686542599380 0.0000358439968033 +0.0048896301671752 0.0000361215305739 +0.0049084382921646 0.0000368983309769 +0.0049260101094212 0.0003118315950388 +0.0049260121094315 0.0033123240016006 +0.0049310454217310 0.6975023785779793 +0.0049385165119224 1.7329783833638897 +0.0049534275615825 0.2096878118500714 +0.0049554704765159 0.0016226553254810 +0.0049554874286253 -0.0001100000000375 +0.0049554874286253 -0.0001200000000375 +0.0049555000093288 0.0000363517974986 +0.0049729848799941 0.0000358849657470 +0.0049834471363458 0.0000368978389152 +0.0050012160997409 0.0000365230523631 +0.0050188369571476 0.0000358516925588 +0.0050260389151675 0.0003123201154731 +0.0050260409151772 0.0013129692115050 +0.0050385186786638 1.7230923149300177 +0.0050475858312554 0.8013895205257345 +0.0050554061632360 0.0027875592895649 +0.0050554347331231 -0.0001099999999854 +0.0050554347331231 -0.0001199999999854 +0.0050554473764497 0.0000369945803925 +0.0050636587172427 0.0000366032170701 +0.0050838085801580 0.0000369502773063 +0.0050938430596338 0.0000358519124550 +0.0051146320864767 0.0000361213516544 +0.0051260382673830 0.0003119504091177 +0.0051260402673919 0.0013120956860437 +0.0051385153477814 1.7289951263108643 +0.0051554316849806 0.0038024508811880 +0.0051554701769987 -0.0001099999999589 +0.0051554701769987 -0.0001199999999589 +0.0051554827963624 0.0000367630232239 +0.0051686535483176 0.0000358437984030 +0.0051896334296466 0.0000361212768888 +0.0052084368550389 0.0000368984455908 +0.0052260101156703 0.0003118316459755 +0.0052260121156812 0.0033123240511434 +0.0052310454047175 0.6974990078104982 +0.0052385165119112 1.7329771345388751 +0.0052534275913157 0.2096831150508923 +0.0052554704595370 0.0016226613706886 +0.0052554874117016 -0.0001099999999841 +0.0052554874117016 -0.0001199999999841 +0.0052554999924098 0.0000363518358695 +0.0052729835022219 0.0000358848490249 +0.0052834462905976 0.0000368979351491 +0.0053012189985445 0.0000365232650193 +0.0053188358767915 0.0000358514963879 +0.0053260389124969 0.0003123200121910 +0.0053260409125073 0.0013129691134853 +0.0053385186786775 1.7230924166065684 +0.0053475857904540 0.8013935872771774 +0.0053554061604706 0.0027875767729713 +0.0053554347305245 -0.0001099999999800 +0.0053554347305245 -0.0001199999999800 +0.0053554473738554 0.0000369946334925 +0.0053636583184400 0.0000366030911556 +0.0053838071351785 0.0000369502604697 +0.0053938424198224 0.0000358517405147 +0.0054146356404944 0.0000361211104019 +0.0054260382629803 0.0003119503233376 +0.0054260402629898 0.0013120956069057 +0.0054385153477758 1.7289955168096107 +0.0054554316857798 0.0038024550879679 +0.0054554701778331 -0.0001099999999629 +0.0054554701778331 -0.0001199999999629 +0.0054554827971999 0.0000367630887048 +0.0054686527531256 0.0000358436234391 +0.0054896371336750 0.0000361210344483 +0.0055084352474918 0.0000368986177850 +0.0055260101227534 0.0003118317911713 +0.0055260121227650 0.0033123241965336 +0.0055310453985274 0.6974971005968326 +0.0055385165119112 1.7329759852363258 +0.0055534275036341 0.2096907037509350 +0.0055554704462439 0.0016226482091576 +0.0055554873982771 -0.0001099999999794 +0.0055554873982771 -0.0001199999999794 +0.0055554999789870 0.0000363519175761 +0.0055729819552013 0.0000358847534210 +0.0055834453449599 0.0000368980790511 +0.0056012222992971 0.0000365235414462 +0.0056188346568596 0.0000358513063854 +0.0056260389094567 0.0003123199579104 +0.0056260409094678 0.0013129689917428 +0.0056385186786864 1.7230927240568279 +0.0056475857580383 0.8013971150962895 +0.0056554061617402 0.0027875939302270 +0.0056554347319610 -0.0001100000000363 +0.0056554347319610 -0.0001200000000363 +0.0056554473752942 0.0000369947239919 +0.0056636578628750 0.0000366029768173 +0.0056838055023274 0.0000369502687682 +0.0056938416966838 0.0000358515714915 +0.0057146396939434 0.0000361208598071 +0.0057260382579696 0.0003119502743327 +0.0057260402579799 0.0013120955832901 +0.0057385153477655 1.7289961086485730 +0.0057554316900736 0.0038024574496878 +0.0057554701821469 -0.0001099999999734 +0.0057554701821469 -0.0001199999999734 +0.0057554828015154 0.0000367631858970 +0.0057686518502405 0.0000358434456077 +0.0057896413653178 0.0000361207775057 +0.0058084334190372 0.0000368988332985 +0.0058260101308499 0.0003118319955316 +0.0058260121308623 0.0033123243996423 +0.0058310453962996 0.6974956363020302 +0.0058385165119163 1.7329747745910407 +0.0058534274775882 0.2096920628792072 +0.0058554704334691 0.0016226451975870 +0.0058554873854719 -0.0001099999999954 +0.0058554873854719 -0.0001199999999954 +0.0058554999661827 0.0000363520279047 +0.0058729801928939 0.0000358846602087 +0.0058834442691905 0.0000368982591368 +0.0059012260836226 0.0000365238735651 +0.0059188332625795 0.0000358511030956 +0.0059260389059672 0.0003123199236096 +0.0059260409059791 0.0013129689799640 +0.0059385186786952 1.7230931613622864 +0.0059475857274454 0.8014006351438825 +0.0059554061651491 0.0027876121712067 +0.0059554347355490 -0.0001100000000087 +0.0059554347355490 -0.0001200000000087 +0.0059554473788837 0.0000369948412018 +0.0059636573389408 0.0000366028582886 +0.0059838036323347 0.0000369502905072 +0.0059938408680345 0.0000358513890447 +0.0060146443549510 0.0000361205824259 +0.0060260382522117 0.0003119502395465 +0.0060260402522229 0.0013120955537293 +0.0060385153477514 1.7289968540770311 +0.0060554316965014 0.0038024592740244 +0.0060554701885909 -0.0001100000000259 +0.0060554701885909 -0.0001200000000259 +0.0060554828079604 0.0000367633077909 +0.0060686508122488 0.0000358432503580 +0.0060896462435710 0.0000361204899887 +0.0061084313169033 0.0000368990900670 +0.0061260101401937 0.0003118322484263 +0.0061260121402070 0.0033123246517663 +0.0061310453966431 0.6974943695131487 +0.0061385165119246 1.7329734166413653 +0.0061534275361799 0.2096847075166452 +0.0061554704197078 0.0016226561632763 +0.0061554873718183 -0.0001100000000146 +0.0061554873718183 -0.0001200000000146 +0.0061554999525298 0.0000363521628696 +0.0061729781605084 0.0000358845595735 +0.0061834430285678 0.0000368984742198 +0.0062012304628294 0.0000365242647486 +0.0062188316509603 0.0000358508741278 +0.0062260389019223 0.0003123198963177 +0.0062260409019352 0.0013129690316900 +0.0062385186787048 1.7230937056991420 +0.0062475856950555 0.8014044666133623 +0.0062554061699675 0.0027876326027900 +0.0062554347405688 -0.0001100000000017 +0.0062554347405688 -0.0001200000000017 +0.0062554473839047 0.0000369949830971 +0.0062636567307472 0.0000366027264198 +0.0062838014653188 0.0000369503212993 +0.0062938399066451 0.0000358511823660 +0.0063146497709342 0.0000361202647146 +0.0063260382455262 0.0003119502089684 +0.0063260402455385 0.0013120954832721 +0.0063385153477336 1.7289977486066057 +0.0063554317046372 0.0038024606337837 +0.0063554701967388 -0.0001100000000232 +0.0063554701967388 -0.0001200000000232 +0.0063554828161090 0.0000367634542179 +0.0063686496049493 0.0000358430272501 +0.0063896519269671 0.0000361201587707 +0.0064084288704093 0.0000368993931525 +0.0064260101510979 0.0003118325512001 +0.0064260121511123 0.0033123249529925 +0.0064310453983346 0.6974930786419653 +0.0064385165119357 1.7329718661372384 +0.0064534274980107 0.2096870255495948 +0.0064554704043250 0.0016226515442697 +0.0064554873563901 -0.0001100000000186 +0.0064554873563901 -0.0001200000000186 +0.0064554999371017 0.0000363523240638 +0.0064729757859853 0.0000358844449717 +0.0064834415777270 0.0000368987290405 +0.0065012355872172 0.0000365247257024 +0.0065188297655895 0.0000358506087392 +0.0065260388971782 0.0003123198699136 +0.0065260408971923 0.0013129691313023 +0.0065385186787153 1.7230943610434910 +0.0065475856577786 0.8014089167137902 +0.0065554061760034 0.0027876566223620 +0.0065554347468419 -0.0001099999999874 +0.0065554347468419 -0.0001199999999874 +0.0065554473901791 0.0000369951523445 +0.0065636560167777 0.0000366025740406 +0.0065837989217235 0.0000369503600950 +0.0065938387767535 0.0000358509416659 +0.0066146561369456 0.0000361198931990 +0.0066260382376648 0.0003119501773034 +0.0066260402376782 0.0013120954368491 +0.0066385153477126 1.7289988134844008 +0.0066554317144961 0.0038024622600755 +0.0066554702066125 -0.0001100000000009 +0.0066554702066125 -0.0001200000000009 +0.0066554828259835 0.0000367636288854 +0.0066686481819244 0.0000358427659478 +0.0066896586306122 0.0000361197695585 +0.0067084259850685 0.0000368997527862 +0.0067260101639878 0.0003118329126440 +0.0067260121640035 0.0033123253133507 +0.0067310454007267 0.6974916110085426 +0.0067385165119492 1.7329700511210073 +0.0067534273831424 0.2096968924162923 +0.0067554703864793 0.0016226346881209 +0.0067554873383786 -0.0001100000000353 +0.0067554873383786 -0.0001200000000353 +0.0067554999190898 0.0000363525165925 +0.0067729729740544 0.0000358843103905 +0.0067834398574147 0.0000368990327251 +0.0068012416635781 0.0000365252739574 +0.0068188275296305 0.0000358502948038 +0.0068260388915372 0.0003123198412481 +0.0068260408915526 0.0013129690282050 +0.0068385186787265 1.7230951481770478 +0.0068475856137177 0.8014141944706336 +0.0068554061833547 0.0027876852614266 +0.0068554347544762 -0.0001099999999681 +0.0068554347544762 -0.0001199999999681 +0.0068554473978148 0.0000369953550688 +0.0068636551668453 0.0000366023936194 +0.0068837958932611 0.0000369504077178 +0.0068938374293709 0.0000358506555756 +0.0069146637294804 0.0000361194506663 +0.0069260382282903 0.0003119501418136 +0.0069260402283052 0.0013120954654046 +0.0069385153476892 1.7290000890044770 +0.0069554317263931 0.0038024638929899 +0.0069554702185243 -0.0001100000000425 +0.0069554702185243 -0.0001200000000425 +0.0069554828378960 0.0000367638389232 +0.0069686464796955 0.0000358424539344 +0.0069896666565025 0.0000361193039860 +0.0070084225306588 0.0000369001848090 +0.0070260101794603 0.0003118333483003 +0.0070260121794776 0.0033123257465512 +0.0070310454036376 0.6974898567224133 +0.0070385165119656 1.7329678737326422 +0.0070534272758603 0.2097056291041766 +0.0070554703651163 0.0016226194443719 +0.0070554873168658 -0.0001099999999838 +0.0070554873168658 -0.0001199999999838 +0.0070554998975768 0.0000363527490529 +0.0070729695919180 0.0000358841487589 +0.0070834377852623 0.0000368993994345 +0.0071012489844926 0.0000365259356284 +0.0071188248350417 0.0000358499164261 +0.0071260388847183 0.0003123198079936 +0.0071260408847354 0.0013129687903849 +0.0071385186787385 1.7230961028640843 +0.0071475855621650 0.8014204057897216 +0.0071554061923289 0.0027877190288902 +0.0071554347637841 -0.0001099999999700 +0.0071554347637841 -0.0001199999999700 +0.0071554474071243 0.0000369956011509 +0.0071636541376188 0.0000366021756035 +0.0071837922273460 0.0000369504664822 +0.0071938357950455 0.0000358503089098 +0.0072146729385108 0.0000361189138646 +0.0072260382169161 0.0003119500999357 +0.0072260402169327 0.0013120953923284 +0.0072385153476584 1.7290016398200314 +0.0072554317408915 0.0038024660186645 +0.0072554702330422 -0.0001100000000286 +0.0072554702330422 -0.0001200000000286 +0.0072554828524148 0.0000367640953533 +0.0072686444066929 0.0000358420739772 +0.0072896764393572 0.0000361187362415 +0.0073084183214605 0.0000369007126984 +0.0073260101983792 0.0003118338816438 +0.0073260121983983 0.0033123262783500 +0.0073310454077999 0.6974877961010282 +0.0073385165119855 1.7329651924349432 +0.0073534273332010 0.2096971129681322 +0.0073554703387488 0.0016226315954934 +0.0073554872906181 -0.0001100000000289 +0.0073554872906181 -0.0001200000000289 +0.0073554998713294 0.0000363530345697 +0.0073729654477387 0.0000358839503885 +0.0073834352419857 0.0000368998503750 +0.0074012579759903 0.0000365267493981 +0.0074188215246064 0.0000358494509177 +0.0074260388763097 0.0003123197681450 +0.0074260408763288 0.0013129688005382 +0.0074385186787559 1.7230972826261171 +0.0074475854973272 0.8014281984805867 +0.0074554062034403 0.0027877614306519 +0.0074554347753145 -0.0001099999999586 +0.0074554347753145 -0.0001199999999586 +0.0074554474186567 0.0000369959055674 +0.0074636528666282 0.0000366019062274 +0.0074837876968742 0.0000369505401491 +0.0074938337705768 0.0000358498796205 +0.0075146843421809 0.0000361182485570 +0.0075260382028273 0.0003119500490496 +0.0075260402028461 0.0013120953597114 +0.0075385153476212 1.7290035623350386 +0.0075554317588857 0.0038024687426901 +0.0075554702510616 -0.0001099999999901 +0.0075554702510616 -0.0001199999999901 +0.0075554828704353 0.0000367644150309 +0.0075686418270069 0.0000358416007483 +0.0075896886240273 0.0000361180284360 +0.0076084130754926 0.0000369013722078 +0.0076260102220389 0.0003118345490301 +0.0076260122220603 0.0033123269435218 +0.0076310454120006 0.6974850808951295 +0.0076385165120102 1.7329618607872379 +0.0076534272310799 0.2097041744621834 +0.0076554703060923 0.0016226183858025 +0.0076554872578321 -0.0001100000000357 +0.0076554872578321 -0.0001200000000357 +0.0076554998385431 0.0000363533934670 +0.0076729602467314 0.0000358837006883 +0.0076834320422395 0.0000369004182144 +0.0077012692824056 0.0000365277740054 +0.0077188173595434 0.0000358488638881 +0.0077260388656821 0.0003123197186280 +0.0077260408657038 0.0013129689330175 +0.0077385186787783 1.7230987748145454 +0.0077475854158163 0.8014380050877646 +0.0077554062175133 0.0027878148553151 +0.0077554347899156 -0.0001099999999850 +0.0077554347899156 -0.0001199999999850 +0.0077554474332603 0.0000369962915612 +0.0077636512567134 0.0000366015646996 +0.0077837819565119 0.0000369506349711 +0.0077938311976866 0.0000358493339167 +0.0078146988326386 0.0000361174019007 +0.0078260381849219 0.0003119499856482 +0.0078260401849435 0.0013120952815672 +0.0078385153475736 1.7290060068321931 +0.0078554317817867 0.0038024720127466 +0.0078554702739927 -0.0001099999999978 +0.0078554702739927 -0.0001199999999978 +0.0078554828933677 0.0000367648244550 +0.0078686385291718 0.0000358409949171 +0.0078897042227473 0.0000361171208778 +0.0079084063614837 0.0000369022190850 +0.0079260102524762 0.0003118354087815 +0.0079260122525007 0.0033123277997117 +0.0079310454181956 0.6974816979257114 +0.0079385165120421 1.7329575711207901 +0.0079534271461822 0.2097085279621477 +0.0079554702640459 0.0016226089766982 +0.0079554872156936 -0.0001100000000295 +0.0079554872156936 -0.0001200000000295 +0.0079554997964045 0.0000363538579297 +0.0079729535288351 0.0000358833767326 +0.0079834278972402 0.0000369011548821 +0.0080012839308483 0.0000365291036244 +0.0080188119601701 0.0000358481005346 +0.0080260388518240 0.0003123196556818 +0.0080260408518490 0.0013129689881537 +0.0080385186788068 1.7231007225791077 +0.0080475853089329 0.8014508563379416 +0.0080554062358985 0.0027878848976642 +0.0080554348089930 -0.0001099999999924 +0.0080554348089930 -0.0001199999999924 +0.0080554474523410 0.0000369967968866 +0.0080636491517434 0.0000366011174033 +0.0080837744458150 0.0000369507613677 +0.0080938278185174 0.0000358486169040 +0.0081147178569792 0.0000361162882443 +0.0081260381614023 0.0003119499039420 +0.0081260401614275 0.0013120952974361 +0.0081385153475125 1.7290092190571111 +0.0081554318118932 0.0038024765650492 +0.0081554703041412 -0.0001100000000461 +0.0081554703041412 -0.0001200000000461 +0.0081554829235181 0.0000367653674107 +0.0081686341643553 0.0000358401914950 +0.0081897249006822 0.0000361159152781 +0.0082083974586923 0.0000369033465349 +0.0082260102930916 0.0003118365567091 +0.0082260122931201 0.0033123289429028 +0.0082310454259255 0.6974771104356317 +0.0082385165120841 1.7329518378160103 +0.0082534271350595 0.2097039346627477 +0.0082554702078259 0.0016226131044500 +0.0082554871595149 -0.0001100000000321 +0.0082554871595149 -0.0001200000000321 +0.0082554997402260 0.0000363544824295 +0.0082729445170380 0.0000358829394796 +0.0082834223154344 0.0000369021487025 +0.0083013036593047 0.0000365308981001 +0.0083188046819314 0.0000358470672159 +0.0083260388329989 0.0003123195724845 +0.0083260408330284 0.0013129683763086 +0.0083385186788406 1.7231033706293870 +0.0083475851654525 0.8014681422800789 +0.0083554062609245 0.0027879793008281 +0.0083554348349521 -0.0001100000000384 +0.0083554348349521 -0.0001200000000384 +0.0083554474783047 0.0000369974869118 +0.0083636462812202 0.0000366005061944 +0.0083837641985529 0.0000369509381675 +0.0083938231839257 0.0000358476328258 +0.0084147439395377 0.0000361147572248 +0.0084260381291406 0.0003119497951288 +0.0084260401291710 0.0013120950871452 +0.0084385153474246 1.7290136277160535 +0.0084554318532420 0.0038024826680249 +0.0084554703455465 -0.0001099999999884 +0.0084554703455465 -0.0001199999999884 +0.0084554829649257 0.0000367661219440 +0.0084686281153163 0.0000358390749600 +0.0084897536221883 0.0000361142357721 +0.0085083850897340 0.0000369049215741 +0.0085260103500115 0.0003118381671244 +0.0085260123500458 0.0033123305464160 +0.0085310454366089 0.6974706622694717 +0.0085385165121427 1.7329438258927903 +0.0085534269532452 0.2097144394781644 +0.0085554701293961 0.0016225917196702 +0.0085554870808756 -0.0001099999999719 +0.0085554870808756 -0.0001199999999719 +0.0085554996615863 0.0000363553669587 +0.0085729317916063 0.0000358823167709 +0.0085834143904227 0.0000369035628493 +0.0086013316636864 0.0000365334527029 +0.0086187943374817 0.0000358455898136 +0.0086260388059542 0.0003123194576001 +0.0086260408059902 0.0013129686453597 +0.0086385186788963 1.7231071776155664 +0.0086475849604189 0.8014928699964081 +0.0086554062969599 0.0027881144645726 +0.0086554348723237 -0.0001100000000152 +0.0086554348723237 -0.0001200000000152 +0.0086554475156824 0.0000369984853999 +0.0086636421352197 0.0000365996205590 +0.0086837493842870 0.0000369512024572 +0.0086938164347011 0.0000358461981828 +0.0087147819000625 0.0000361125201616 +0.0087260380821456 0.0003119496428416 +0.0087260400821834 0.0013120949565243 +0.0087385153472993 1.7290200529475406 +0.0087554319135509 0.0038024917471336 +0.0087554704059396 -0.0001100000000118 +0.0087554704059396 -0.0001200000000118 +0.0087554830253223 0.0000367672414206 +0.0087686191739058 0.0000358374177428 +0.0087897962120048 0.0000361117343755 +0.0088083667399336 0.0000369072767403 +0.0088260104355157 0.0003118405896976 +0.0088260124355587 0.0033123329612445 +0.0088310454519885 0.6974608864508295 +0.0088385165122293 1.7329317959202444 +0.0088534267009243 0.2097281172123630 +0.0088554700117183 0.0016225629443482 +0.0088554869629162 -0.0001100000000325 +0.0088554869629162 -0.0001200000000325 +0.0088554995436262 0.0000363567162395 +0.0088729124644537 0.0000358813588209 +0.0088834022586211 0.0000369057350724 +0.0089013745346099 0.0000365373802591 +0.0089187784714268 0.0000358433033331 +0.0089260387638068 0.0003123192888548 +0.0089260407638530 0.0013129685529498 +0.0089385186789787 1.7231131186025161 +0.0089475846404435 0.8015314637226205 +0.0089554063532649 0.0027883259115415 +0.0089554349307189 -0.0001099999999521 +0.0089554349307189 -0.0001199999999521 +0.0089554475740874 0.0000370000584017 +0.0089636356216405 0.0000365982218037 +0.0089837260736366 0.0000369516389999 +0.0089938056964695 0.0000358439113118 +0.0090148422402183 0.0000361089419125 +0.0090260380073309 0.0003119494151637 +0.0090260400073808 0.0013120946977178 +0.0090385153470974 1.7290302886452624 +0.0090554320096989 0.0038025069774440 +0.0090554705022296 -0.0001099999999363 +0.0090554705022296 -0.0001199999999363 +0.0090554831216179 0.0000367690745809 +0.0090686046136700 0.0000358347011334 +0.0090898659053351 0.0000361076117013 +0.0091083366851990 0.0000369111826205 +0.0091260105783383 0.0003118446453703 +0.0091260125783959 0.0033123370009727 +0.0091310454758572 0.6974443124262881 +0.0091385165123705 1.7329117106625016 +0.0091534263546419 0.2097433416081984 +0.0091554698154208 0.0016225270425130 +0.0091554867662684 -0.0001099999999792 +0.0091554867662684 -0.0001199999999792 +0.0091554993469772 0.0000363590264022 +0.0091728795998386 0.0000358796949080 +0.0091833813625593 0.0000369094973057 +0.0092014483805922 0.0000365441940069 +0.0092187510500866 0.0000358392911743 +0.0092260386890233 0.0003123190187439 +0.0092260406890876 0.0013129680749023 +0.0092385186791205 1.7231236765660334 +0.0092475840752899 0.8015997035453066 +0.0092554064535041 0.0027887010693861 +0.0092554350346671 -0.0001099999999158 +0.0092554350346671 -0.0001199999999158 +0.0092554476780528 0.0000370029011655 +0.0092636239008036 0.0000365956814131 +0.0092836840227226 0.0000369524910481 +0.0092937859544978 0.0000358396911240 +0.0093149530108465 0.0000361022974438 +0.0093260378695809 0.0003119490429815 +0.0093260398696536 0.0013120943307397 +0.0093385153467248 1.7290491499141787 +0.0093554321870580 0.0038025363785251 +0.0093554706798641 -0.0001099999999356 +0.0093554706798641 -0.0001199999999356 +0.0093554832992627 0.0000367726216710 +0.0093685767132760 0.0000358294302902 +0.0093900006147423 0.0000360995325723 +0.0094082784649820 0.0000369189247524 +0.0094260108650579 0.0003118528200852 +0.0094260128651454 0.0033123451444458 +0.0094310455181416 0.6974102813285737 +0.0094385165126416 1.7328714488549537 +0.0094534256038849 0.2097796781351632 +0.0094554694226106 0.0016224455035347 +0.0094554863726625 -0.0001100000000722 +0.0094554863726625 -0.0001200000000722 +0.0094554989533682 0.0000363638885062 +0.0094728113091573 0.0000358760894354 +0.0094833368529392 0.0000369175988898 +0.0095016057166634 0.0000365589240831 +0.0095186921927872 0.0000358304063668 +0.0095260385199004 0.0003123185349529 +0.0095260405200055 0.0013129674196089 +0.0095385186794322 1.7231475993799172 +0.0095475828142929 0.8017523547365429 +0.0095554066811492 0.0027895455277863 +0.0095554352706616 -0.0001099999999889 +0.0095554352706616 -0.0001199999999889 +0.0095554479140854 0.0000370095864194 +0.0095635965679693 0.0000365896335496 +0.0095835854678431 0.0000369548225696 +0.0095937377628715 0.0000358292855200 +0.0096152225967401 0.0000360856722285 +0.0096260375314151 0.0003119483919418 +0.0096260395315472 0.0013120937212225 +0.0096385153458017 1.7290954934796137 +0.0096554326232907 0.0038026165829299 +0.0096554711168552 -0.0001100000000819 +0.0096554711168552 -0.0001200000000819 +0.0096554837362794 0.0000367823813157 +0.0096685016517983 0.0000358147888337 +0.0096903702786075 0.0000360765050343 +0.0097081172924284 0.0000369416639575 +0.0097260117317582 0.0003118778408853 +0.0097260137319411 0.0033123700843578 +0.0097310456152495 0.6973032745717830 +0.0097385165133759 1.7327500234913540 +0.0097534234360237 0.2098797682504938 +0.0097554682413779 0.0016222130389607 +0.0097554851891661 -0.0001100000000070 +0.0097554851891661 -0.0001200000000070 +0.0097554977698595 0.0000363807056514 +0.0097725834560819 0.0000358624438163 +0.0097831772991621 0.0000369476954784 +0.0098021706951927 0.0000366146046417 +0.0098184742418867 0.0000357937589837 +0.0098260377796568 0.0003123182853375 +0.0098260397799435 0.0013129666989184 +0.0098385186806467 1.7232524443480941 +0.0098475775880409 0.8023907523990748 +0.0098554076801527 0.0027931442403397 +0.0098554363052475 -0.0001100000000847 +0.0098554363052475 -0.0001200000000847 +0.0098554489488331 0.0000370440227067 +0.0098634602119581 0.0000365565497937 +0.0098830853343889 0.0000369752366115 +0.0098934467464536 0.0000357617245456 +0.0099168226320126 0.0000359654176348 +0.0099260353016775 0.0003119568114002 +0.0099260373023513 0.0013121022859122 +0.0099385153397999 1.7294005767190370 +0.0099554354900533 0.0038033030973055 +0.0099554739902251 -0.0001100000000708 +0.0099554739902251 -0.0001200000000708 +0.0099554866098548 0.0000369253903110 +0.0099676571336569 0.0000354620562271 +0.0099746896253343 0.0000364199856058 +0.0099947014851369 0.0000344582609211 diff --git a/src/engine/tests/system/gt_data/interleaved/iL[3].dat b/src/engine/tests/system/gt_data/interleaved/iL[3].dat index 0b7e644d..05bef2ad 100644 --- a/src/engine/tests/system/gt_data/interleaved/iL[3].dat +++ b/src/engine/tests/system/gt_data/interleaved/iL[3].dat @@ -1,1229 +1,1183 @@ 0.0000000000000000 0.0000000000000000 0.0000000166666667 0.0030000000000000 0.0000000173246739 0.0002400003355849 -0.0000099628097338 0.0002380965043729 -0.0000105386164770 0.0002378124003636 -0.0000125791687169 0.0002368815447812 -0.0000131817361328 0.0002365466468390 -0.0000146894176846 0.0002356544739392 -0.0000236834015190 0.0002303182379477 -0.0000291304412869 0.0002269602930809 -0.0000306752506040 0.0002258263579438 -0.0000314949290694 0.0002251774044631 -0.0000325704537829 0.0002243051019013 -0.0000361052310928 0.0002209793644490 -0.0000378886874296 0.0002191360747162 -0.0000510214787689 0.0006489469502334 -0.0000510234787764 0.0036489845032415 -0.0000555916623974 1.0139175260148305 -0.0000598450276857 1.9442163781552242 -0.0000635231978351 2.7358162554125753 -0.0000702145483073 2.5491855853768381 -0.0000769908147467 2.3293688137912074 -0.0000833926520665 2.0949934536497081 -0.0000893256166245 1.8530759706359441 -0.0000951496830262 1.5918202343502801 -0.0001011956471210 1.2993112290250650 -0.0001067254659414 1.0159388240942475 -0.0001108405310475 0.7955644502914602 -0.0001155596285161 0.5325825626584803 -0.0001212687007953 0.2006294911020180 -0.0001245737291345 0.0031993371867602 -0.0001246278998496 -0.0001099999999994 -0.0001246278998496 -0.0001199999999994 -0.0001246524473504 0.0001196049800352 -0.0001475144803416 0.0001066666102786 -0.0001510331509852 0.0004507250137443 -0.0001510351509913 0.0034508162828039 -0.0001576027715312 1.1336819843156050 -0.0001635171750216 2.1438209849951213 -0.0001766398598175 1.2152594917890414 -0.0001868899756924 0.4800574087715190 -0.0001934494584577 0.0024951897081518 -0.0001934846367688 -0.0001099999999997 -0.0001934846367688 -0.0001199999999997 -0.0001935123833441 0.0000934823535181 -0.0001993509637572 0.0000923339218653 -0.0002147650441695 0.0000895055325324 -0.0002325702290409 0.0000865464548294 -0.0002464457453095 0.0000833428290227 -0.0002510100126284 0.0004061455638707 -0.0002510120126331 0.0034066905681658 -0.0002633204124348 1.9886458826476539 -0.0002635188401836 2.0184178759637645 -0.0002804242200449 0.6609343508790467 -0.0002885725533436 0.0015420640849704 -0.0002885926806903 -0.0001099999999984 -0.0002885926806903 -0.0001199999999984 -0.0002886227832975 0.0000775237889560 -0.0003011088773274 0.0000755459841039 -0.0003057358077506 0.0000754887724467 -0.0003333082800209 0.0000721029410293 -0.0003510178904745 0.0003788318910231 -0.0003510198904788 0.0013796449352620 -0.0003617535595693 1.6641971100528035 -0.0003635200889438 1.9345798662236178 -0.0003858867473868 0.0015855776245219 -0.0003859060846259 -0.0001099999999984 -0.0003859060846259 -0.0001199999999984 -0.0003859379869586 0.0000663819044308 -0.0004017461981178 0.0000648922403066 -0.0004238439547071 0.0000626453593056 -0.0004321448964710 0.0000627964614284 -0.0004510363118035 0.0003611295425344 -0.0004510383118076 0.0013614365711277 -0.0004622946301369 1.6969356991933358 -0.0004635190152580 1.8787891975583535 -0.0004842789598411 0.0014478741870107 -0.0004842960140914 -0.0001100000000015 -0.0004842960140914 -0.0001200000000015 -0.0004843292779981 0.0000589364973584 -0.0004966953951503 0.0000569292949533 -0.0005048541238113 0.0000573442944558 -0.0005163737209750 0.0000564128034855 -0.0005334247323105 0.0000560079234440 -0.0005440561867283 0.0000548463227900 -0.0005510323537382 0.0003483057153700 -0.0005510343537425 0.0013486724577364 -0.0005635112153964 1.8424252025487500 -0.0005832372809949 -0.0002563115401515 -0.0005832372809949 -0.0002663115401515 -0.0005832372809949 -0.0002763115401515 -0.0005832432240182 0.0000534879274008 -0.0005934323485180 0.0000519684498935 -0.0006014726916005 0.0000520512667649 -0.0006243276836010 0.0000511309374005 -0.0006357783360367 0.0000515501271466 -0.0006458477529940 0.0000502458939119 -0.0006510375450277 0.0003403635157516 -0.0006510395450328 0.0033426803899136 -0.0006635258840069 1.8134059730846288 -0.0006727304329181 0.9355676645613829 -0.0006798801225503 0.2518539940811826 -0.0006825163065449 0.0032571111464959 -0.0006825515226696 -0.0001100000000025 -0.0006825515226696 -0.0001200000000025 -0.0006825865213816 0.0000498145735553 -0.0007009241845851 0.0000484851496612 -0.0007085074672451 0.0000485622354169 -0.0007135944124380 0.0000480487182204 -0.0007356863470389 0.0000475332888999 -0.0007460071857802 0.0000463287318739 -0.0007510379161663 0.0003326599114763 -0.0007510399161719 0.0016748845686557 -0.0007602909099670 1.3294773062897971 -0.0007635173318112 1.7907694866519110 -0.0007802315867446 0.1646068141540553 -0.0007819152429027 0.0015936842139889 -0.0007819327909386 -0.0001100000000012 -0.0007819327909386 -0.0001200000000012 -0.0007819446256164 0.0000464235638020 -0.0007914201307052 0.0000450984961408 -0.0008003926139305 0.0000449866449419 -0.0008100924537340 0.0000456892859119 -0.0008202903598182 0.0000445314742448 -0.0008510253596155 0.0003275599605966 -0.0008510273596207 0.0013309311860341 -0.0008612203033787 1.4518105237579000 -0.0008635165007669 1.7769044611413554 -0.0008803527694119 0.1179825609547735 -0.0008815330933623 0.0018840196965107 -0.0008815532854519 -0.0001099999999997 -0.0008815532854519 -0.0001199999999997 -0.0008815653141779 0.0000432840017536 -0.0008983642336304 0.0000424199630892 -0.0009075727304320 0.0000429574133824 -0.0009127926677309 0.0000430048614610 -0.0009247977970613 0.0000421285728601 -0.0009299519067252 0.0000427895712965 -0.0009462628783438 0.0000416605573050 -0.0009510383728266 0.0003234669974987 -0.0009510403728319 0.0013253337924261 -0.0009635185594919 1.7568543162371324 -0.0009734901407908 0.7683893688451373 -0.0009804846710914 0.0715784874681548 -0.0009811900918037 0.0017327636390223 -0.0009812086843367 -0.0001099999999978 -0.0009812086843367 -0.0001199999999978 -0.0009812208738300 0.0000420386671466 -0.0009892987983088 0.0000414236732158 -0.0010076629232177 0.0000413128064054 -0.0010195925301225 0.0000404184190051 -0.0010452797340212 0.0000401189419038 -0.0010510385225139 0.0003204880070074 -0.0010510405225192 0.0013217881464956 -0.0010635183624008 1.7478197419372954 -0.0010724406810706 0.8571137617693328 -0.0010799198058215 0.1064781196311617 -0.0010809709452958 0.0016210562916796 -0.0010809882754979 -0.0001099999999990 -0.0010809882754979 -0.0001199999999990 -0.0010810005682869 0.0000405795480435 -0.0010894047846071 0.0000400036822965 -0.0011072454342083 0.0000399652939585 -0.0011193689118786 0.0000391245830159 -0.0011448662156421 0.0000389078307367 -0.0011510386402303 0.0003181488049451 -0.0011510406402357 0.0013191892052145 -0.0011635183120255 1.7442045772625383 -0.0011788068897673 0.2015302221954000 -0.0011807918995804 0.0021929694265388 -0.0011808147836861 -0.0001099999999974 -0.0011808147836861 -0.0001199999999974 -0.0011808271315217 0.0000392982578010 -0.0011952335552304 0.0000377042552199 -0.0012037073884326 0.0000386140832759 -0.0012146444690226 0.0000383844807885 -0.0012320241708062 0.0000387891725788 -0.0012509016006812 0.0000378006560260 -0.0012510100019949 0.0003156424588777 -0.0012510120019992 0.0013157882705779 -0.0012635150297179 1.7433397014986782 -0.0012807109811086 0.0014614025235812 -0.0012807264980274 -0.0001099999999996 -0.0012807264980274 -0.0001199999999996 -0.0012807389460618 0.0000381744070082 -0.0012928462134822 0.0000371588850482 -0.0013019701812103 0.0000375332579186 -0.0013249534749745 0.0000379601064341 -0.0013371756611912 0.0000387006080607 -0.0013430042335445 0.0000377138790633 -0.0013510100281143 0.0003159776670958 -0.0013510120281198 0.0013167880046262 -0.0013635184386760 1.7382076020524428 -0.0013731612538513 0.7661761740809130 -0.0013806998210908 0.0027363673351906 -0.0013807280207100 -0.0001100000000039 -0.0013807280207100 -0.0001200000000039 -0.0013807404794814 0.0000383734402396 -0.0013939629237021 0.0000370525324987 -0.0014014285709439 0.0000375908289844 -0.0014257941213715 0.0000381026404427 -0.0014510249077979 0.0003164050890155 -0.0014510269078035 0.0013172430304221 -0.0014635234647013 1.7408441318291030 -0.0014807242238186 0.0010757004085344 -0.0014807359186254 -0.0001100000000021 -0.0014807359186254 -0.0001200000000021 -0.0014807483097167 0.0000385477367312 -0.0014944177760821 0.0000370547327603 -0.0015014195222375 0.0000376680400201 -0.0015252611294324 0.0000381391159781 -0.0015379349281616 0.0000387070993118 -0.0015429754363446 0.0000378716661724 -0.0015510100288160 0.0003162795327986 -0.0015510120288216 0.0013171139942399 -0.0015635184178504 1.7391144090569479 -0.0015732598902007 0.7578036603592387 -0.0015807211592812 0.0027350478427985 -0.0015807493678449 -0.0001100000000026 -0.0015807493678449 -0.0001200000000026 -0.0015807618157830 0.0000385249512710 -0.0015938604911970 0.0000372219913830 -0.0016014729962642 0.0000377395456011 -0.0016257404128161 0.0000382313116639 -0.0016510238170449 0.0003166302030715 -0.0016510258170506 0.0013174811733809 -0.0016635234901093 1.7417496461422017 -0.0016807435148129 0.0011485305106713 -0.0016807559430947 -0.0001100000000086 -0.0016807559430947 -0.0001200000000086 -0.0016807683296385 0.0000386615328397 -0.0016943200893719 0.0000372296312051 -0.0017013906400043 0.0000378232162361 -0.0017254458260639 0.0000382927186689 -0.0017385807848613 0.0000387149575760 -0.0017429566330819 0.0000380107651994 -0.0017510100295204 0.0003165471711200 -0.0017510120295262 0.0013174007735430 -0.0017635184035379 1.7399231137124405 -0.0017733266763848 0.7524842008251473 -0.0017807400469998 0.0027374800692473 -0.0017807682986317 -0.0001099999999999 -0.0017807682986317 -0.0001199999999999 -0.0017807807370011 0.0000386559684944 -0.0017937979982094 0.0000373625714384 -0.0018015024820048 0.0000378667725828 -0.0018256927413986 0.0000383417729522 -0.0018510228507840 0.0003168229131946 -0.0018510248507899 0.0013176852917743 -0.0018635235097619 1.7425310849761897 -0.0018807600957535 0.0011358488294812 -0.0018807724042531 -0.0001100000000081 -0.0018807724042531 -0.0001200000000081 -0.0018807847837879 0.0000387570981439 -0.0018937826199980 0.0000374011233895 -0.0019017074855123 0.0000379004481197 -0.0019249832003767 0.0000383171755292 -0.0019373014378708 0.0000390223935611 -0.0019429725074833 0.0000380519344158 -0.0019510100301717 0.0003166281778311 -0.0019510120301776 0.0013174823786615 -0.0019635184031985 1.7401753083441722 -0.0019733234800839 0.7532536971058533 -0.0019807458518736 0.0027411894630807 -0.0019807741455839 -0.0001099999999901 -0.0019807741455839 -0.0001199999999901 -0.0019807865809476 0.0000386935644379 -0.0019938077289792 0.0000373965994654 -0.0020014986203282 0.0000379015768350 -0.0020256911235077 0.0000383733139144 -0.0020510227719195 0.0003168803406386 -0.0020510247719255 0.0013177461151925 -0.0020635235217580 1.7427234846035082 -0.0020807645736103 0.0011136664980185 -0.0020807766627713 -0.0001100000000212 -0.0020807766627713 -0.0001200000000212 -0.0020807890397927 0.0000387825812661 -0.0020937807946955 0.0000374275850649 -0.0021017049717819 0.0000379259606139 -0.0021249901186195 0.0000383407401495 -0.0021373141762968 0.0000390425761853 -0.0021429717110352 0.0000380743073026 -0.0021510100309021 0.0003166713914427 -0.0021510120309081 0.0013175282372470 -0.0021635184013726 1.7403064103893222 -0.0021733319263442 0.7526327724548416 -0.0021807489080963 0.0027417506560154 -0.0021807772103717 -0.0001100000000132 -0.0021807772103717 -0.0001200000000132 -0.0021807896441760 0.0000387144360208 -0.0021938009554475 0.0000374182105188 -0.0022015018343568 0.0000379216312717 -0.0022256843972780 0.0000383908399389 -0.0022510226371943 0.0003169111913579 -0.0022510246372005 0.0013177788679496 -0.0022635235253746 1.7428446220196574 -0.0022807671810800 0.0011081375919360 -0.0022807792160360 -0.0001100000000098 -0.0022807792160360 -0.0001200000000098 -0.0022807915916564 0.0000387978904891 -0.0022937864987855 0.0000374405689457 -0.0023017024985462 0.0000379394209407 -0.0023249911273861 0.0000383529041870 -0.0023373146647008 0.0000390543775236 -0.0023429718129984 0.0000380860061596 -0.0023510100316687 0.0003166939896331 -0.0023510120316750 0.0013175521633122 -0.0023635184004693 1.7403749236330399 -0.0023733361718118 0.7523254632122721 -0.0023807505066585 0.0027419223550124 -0.0023807788121866 -0.0001100000000170 -0.0023807788121866 -0.0001200000000170 -0.0023807912451695 0.0000387253047889 -0.0023937978930538 0.0000374293263316 -0.0024015031953731 0.0000379320382272 -0.0024256810204501 0.0000383999487169 -0.0024510225724067 0.0003169273317631 -0.0024510245724131 0.0013177960066096 -0.0024635235274507 1.7429068292764511 -0.0024807685313501 0.0011050541583033 -0.0024807805360392 -0.0001100000000190 -0.0024807805360392 -0.0001200000000190 -0.0024807929109241 0.0000388058673075 -0.0024937896885606 0.0000374472652886 -0.0025017009468953 0.0000379464291618 -0.0025249918371118 0.0000383592604555 -0.0025373156896621 0.0000390603961194 -0.0025429722186892 0.0000380921393805 -0.0025510100324760 0.0003167058071907 -0.0025510120324824 0.0013175646894381 -0.0025635183999920 1.7404105994434300 -0.0025733385677744 0.7521468713746284 -0.0025807513421348 0.0027418297196513 -0.0025807796475416 -0.0001099999999906 -0.0025807796475416 -0.0001199999999906 -0.0025807920800888 0.0000387309777230 -0.0025937963539960 0.0000374350798832 -0.0026015037644261 0.0000379374576237 -0.0026256792089383 0.0000384046861687 -0.0026510225413358 0.0003169358038483 -0.0026510245413423 0.0013178049392692 -0.0026635235286502 1.7429388454621642 -0.0026807692323345 0.0011033198998816 -0.0026807812199802 -0.0001099999999870 -0.0026807812199802 -0.0001199999999870 -0.0026807935944774 0.0000388100399462 -0.0026937914289452 0.0000374507245946 -0.0027016999529056 0.0000379500913158 -0.0027249922593664 0.0000383625883424 -0.0027373167030368 0.0000390634659192 -0.0027429728112940 0.0000380953782667 -0.0027510100333274 0.0003167120186877 -0.0027510120333340 0.0013175712770457 -0.0027635183997376 1.7404291969337469 -0.0027733399879381 0.7520366188729145 -0.0027807517807185 0.0027415932797150 -0.0027807800841853 -0.0001100000000016 -0.0027807800841853 -0.0001200000000016 -0.0027807925164972 0.0000387339453482 -0.0027937956398864 0.0000374380323786 -0.0028015038990053 0.0000379402777231 -0.0028256782294725 0.0000384071469163 -0.0028510225282957 0.0003169402895091 -0.0028510245283024 0.0013178097563885 -0.0028635235294143 1.7429550689647184 -0.0028807695947022 0.0011022656529036 -0.0028807815719662 -0.0001099999999784 -0.0028807815719662 -0.0001199999999784 -0.0028807939462559 0.0000388122327582 -0.0028937924131816 0.0000374524952235 -0.0029016992487774 0.0000379520094944 -0.0029249925076301 0.0000383643365685 -0.0029373176809613 0.0000390650056307 -0.0029429735246855 0.0000380971101678 -0.0029510100342267 0.0003167153094666 -0.0029510120342335 0.0013175747739488 -0.0029635183995985 1.7404388876175230 -0.0029733409126739 0.7519606521442760 -0.0029807520125326 0.0027412698235122 -0.0029807803129911 -0.0001099999999884 -0.0029807803129911 -0.0001199999999884 -0.0029807927451715 0.0000387355037522 -0.0029937953549232 0.0000374395237255 -0.0030015038000370 0.0000379417432789 -0.0030256776800989 0.0000384084207255 -0.0030510225248129 0.0003169427017971 -0.0030510245248198 0.0013178122491765 -0.0030635235299508 1.7429630390875337 -0.0030807697803589 0.0011015660798870 -0.0030807817507160 -0.0001099999999833 -0.0030807817507160 -0.0001199999999833 -0.0030807941248922 0.0000388133947386 -0.0030937929939760 0.0000374533866726 -0.0031016986928456 0.0000379530198785 -0.0031249926549065 0.0000383652615950 -0.0031373186401926 0.0000390657496489 -0.0031429743256884 0.0000380980590781 -0.0031510100351782 0.0003167170814184 -0.0031510120351852 0.0013175766629986 -0.0031635183995196 1.7404439381174734 -0.0031733415812351 0.7519023568853979 -0.0031807521367292 0.0027408909720892 -0.0031807804335221 -0.0001099999999956 -0.0031807804335221 -0.0001199999999956 -0.0031807928656245 0.0000387363268292 -0.0031937953112153 0.0000374402464073 -0.0032015035634318 0.0000379425004111 -0.0032256773592061 0.0000384090741084 -0.0032510225266252 0.0003169440386035 -0.0032510245266323 0.0013178136500040 -0.0032635235303931 1.7429666538794000 -0.0032807698735841 0.0011010240631901 -0.0032807818385731 -0.0001099999999893 -0.0032807818385731 -0.0001199999999893 -0.0032807942126839 0.0000388140198881 -0.0032937933844307 0.0000374538128388 -0.0033016981959536 0.0000379535552483 -0.0033249927556999 0.0000383657570303 -0.0033373196305381 0.0000390660710534 -0.0033429751979557 0.0000380986011573 -0.0033510100361864 0.0003167180618968 -0.0033510120361936 0.0013175777148282 -0.0033635183994716 1.7404465591782921 -0.0033733421319572 0.7518516789910180 -0.0033807522048328 0.0027404692016229 -0.0033807804974773 -0.0001099999999925 -0.0033807804974773 -0.0001199999999925 -0.0033807929295296 0.0000387367665771 -0.0033937953934535 0.0000374405657490 -0.0034015032465133 0.0000379428875652 -0.0034256771517800 0.0000384094027973 -0.0034510225313703 0.0003169448163554 -0.0034510245313777 0.0013178145777226 -0.0034635235307876 1.7429679691608817 -0.0034807699182775 0.0011005643268786 -0.0034807818787022 -0.0001099999999868 -0.0034807818787022 -0.0001199999999868 -0.0034807942527725 0.0000388143656823 -0.0034937936707392 0.0000374539961675 -0.0035016977213668 0.0000379538440101 -0.0035249928292335 0.0000383660291533 -0.0035373206583913 0.0000390661699383 -0.0035429761360234 0.0000380989341494 -0.0035510100372570 0.0003167186333338 -0.0035510120372644 0.0013175783352028 -0.0035635183994390 1.7404479128294856 -0.0035733426344352 0.7518036486000660 -0.0035807522439100 0.0027400105478458 -0.0035807805320097 -0.0001099999999912 -0.0035807805320097 -0.0001199999999912 -0.0035807929640255 0.0000387370072356 -0.0035937955474733 0.0000374406713263 -0.0036015028756323 0.0000379430814523 -0.0036256770004015 0.0000384095614760 -0.0036510225378796 0.0003169453079696 -0.0036510245378872 0.0013178150672680 -0.0036635235311678 1.7429680508447973 -0.0036807699374583 0.0011001345642144 -0.0036807818936089 -0.0001100000000174 -0.0036807818936089 -0.0001200000000174 -0.0036807942676515 0.0000388145672270 -0.0036937939101099 0.0000374540500151 -0.0037016972432271 0.0000379540047372 -0.0037249928932910 0.0000383661857699 -0.0037373217463022 0.0000390661467708 -0.0037429771393194 0.0000380991612699 -0.0037510100383956 0.0003167189954286 -0.0037510120384033 0.0013175787327111 -0.0037635183994144 1.7404486051611565 -0.0037733431217105 0.7517560016246955 -0.0037807522680459 0.0027395180831258 -0.0037807805512485 -0.0001100000000077 -0.0037807805512485 -0.0001200000000077 -0.0037807929832342 0.0000387371439579 -0.0037937957519044 0.0000374406593038 -0.0038015024604907 0.0000379431728924 -0.0038256768781190 0.0000384096299173 -0.0038510225456226 0.0003169456563207 -0.0038510245456304 0.0013178153989179 -0.0038635235315512 1.7429674376850881 -0.0038807699428634 0.0010997095172444 -0.0038807818947824 -0.0001099999999962 -0.0038807818947824 -0.0001199999999962 -0.0038807942688035 0.0000388146942401 -0.0038937941302903 0.0000374540332415 -0.0039016967476488 0.0000379540991464 -0.0039249929515904 0.0000383662831331 -0.0039373228999903 0.0000390660555417 -0.0039429782109342 0.0000380993368350 -0.0039510100396091 0.0003167192526123 -0.0039510120396170 0.0013175790196999 -0.0039635183993929 1.7404489510545100 -0.0039733436188790 0.7517067645165351 -0.0039807522846564 0.0027389900117142 -0.0039807805625989 -0.0001100000000120 -0.0039807805625989 -0.0001200000000120 -0.0039807929945570 0.0000387372276442 -0.0039937959876819 0.0000374405824920 -0.0040015020086761 0.0000379432108187 -0.0040256767658315 0.0000384096506010 -0.0040510225544768 0.0003169459363794 -0.0040510245544849 0.0013178157257571 -0.0040635235322087 1.7429664312572102 -0.0040807699412722 0.0010992662221930 -0.0040807818887754 -0.0001100000000359 -0.0040807818887754 -0.0001200000000359 -0.0040807942627775 0.0000388147843642 -0.0040937943549615 0.0000374539750291 -0.0041016962224552 0.0000379541592820 -0.0041249930145541 0.0000383663503958 -0.0041373241404821 0.0000390659204673 -0.0041429793557158 0.0000380994889825 -0.0041510100411087 0.0003167194588902 -0.0041510120411169 0.0013175792566548 -0.0041635183996268 1.7404491190355837 -0.0041733441378711 0.7516550527417014 -0.0041807522978610 0.0027384247123423 -0.0041807805701679 -0.0001100000000266 -0.0041807805701679 -0.0001200000000266 -0.0041807930020994 0.0000387372838979 -0.0041937962496813 0.0000374404661662 -0.0042015015212656 0.0000379432194948 -0.0042256766544714 0.0000384096445018 -0.0042510225639059 0.0003169461863635 -0.0042510245639142 0.0013178160222699 -0.0042635235326288 1.7429651586093051 -0.0042807699350177 0.0010988077588364 -0.0042807818779527 -0.0001099999999947 -0.0042807818779527 -0.0001199999999947 -0.0042807942519369 0.0000388148561075 -0.0042937945808696 0.0000374538933443 -0.0043016956652616 0.0000379542027333 -0.0043249930818151 0.0000383664035250 -0.0043373254735466 0.0000390657563001 -0.0043429805800957 0.0000380996336380 -0.0043510100424958 0.0003167196445090 -0.0043510120425043 0.0013175794701951 -0.0043635183996066 1.7404491841153753 -0.0043733446866661 0.7516001553886807 -0.0043807523091473 0.0027378187177357 -0.0043807805754104 -0.0001100000000339 -0.0043807805754104 -0.0001200000000339 -0.0043807930073145 0.0000387373270208 -0.0043937965350830 0.0000374403238561 -0.0044015009962922 0.0000379432123726 -0.0044256765410961 0.0000384096237591 -0.0044510225741344 0.0003169464274890 -0.0044510245741431 0.0013178163419582 -0.0044635235330778 1.7429636945308959 -0.0044807699261991 0.0010983193966511 -0.0044807818642673 -0.0001100000000165 -0.0044807818642673 -0.0001200000000165 -0.0044807942382336 0.0000388149207025 -0.0044937948222614 0.0000374537946536 -0.0045016950668656 0.0000379542385220 -0.0045249931574160 0.0000383664511303 -0.0045373269158760 0.0000390655683270 -0.0045429818921880 0.0000380997795604 -0.0045510100439839 0.0003167198257544 -0.0045510120439928 0.0013175796817960 -0.0045635183995857 1.7404491992578672 -0.0045733452717309 0.7515415360608796 -0.0045807523199700 0.0027371681612481 -0.0045807805797436 -0.0001099999999993 -0.0045807805797436 -0.0001199999999993 -0.0045807930116190 0.0000387373643893 -0.0045937968446790 0.0000374401616914 -0.0046015004311320 0.0000379431961385 -0.0046256764212604 0.0000384095938923 -0.0046510225851714 0.0003169466732749 -0.0046510245851804 0.0013178165403138 -0.0046635235335600 1.7429620711054030 -0.0046807699156502 0.0010977944135249 -0.0046807818484862 -0.0001099999999984 -0.0046807818484862 -0.0001199999999984 -0.0046807942224337 0.0000388149836470 -0.0046937950847771 0.0000374536820574 -0.0047016944208460 0.0000379542711812 -0.0047249932451929 0.0000383664975397 -0.0047373284843221 0.0000390653576791 -0.0047429833013032 0.0000380999315106 -0.0047510100455847 0.0003167200111016 -0.0047510120455939 0.0013175799000255 -0.0047635183995633 1.7404491859457740 -0.0047733458984466 0.7514786924085050 -0.0047807523309016 0.0027364683157906 -0.0047807805836933 -0.0001099999999620 -0.0047807805836933 -0.0001199999999620 -0.0047807930155380 0.0000387373995648 -0.0047937971803930 0.0000374399816590 -0.0048014998216378 0.0000379431737755 -0.0048256762933847 0.0000384095574068 -0.0048510225970854 0.0003169469324986 -0.0048510245970948 0.0013178167867120 -0.0048635235340774 1.7429602938300870 -0.0048807699036418 0.0010972317475621 -0.0048807818308698 -0.0001100000000339 -0.0048807818308698 -0.0001200000000339 -0.0048807942047974 0.0000388150477295 -0.0048937953683859 0.0000374535575268 -0.0049016937226829 0.0000379543035359 -0.0049249933430325 0.0000383665453787 -0.0049373301874247 0.0000390651258095 -0.0049429848186175 0.0000381000929968 -0.0049510100473114 0.0003167202063111 -0.0049510120473210 0.0013175801300592 -0.0049635183995393 1.7404491566769067 -0.0049733465751696 0.7514108074184069 -0.0049807523423516 0.0027357128300666 -0.0049807805876061 -0.0001099999999869 -0.0049807805876061 -0.0001199999999869 -0.0049807930194180 0.0000387374353561 -0.0049937975409791 0.0000374397855545 -0.0050014991645764 0.0000379431476923 -0.0050256761540064 0.0000384095160523 -0.0050510226099269 0.0003169472073295 -0.0050510246099366 0.0013178171656873 -0.0050635235346345 1.7429583672848150 -0.0050807698904303 0.0010966267207237 -0.0050807818116281 -0.0001099999999624 -0.0050807818116281 -0.0001199999999624 -0.0050807941855344 0.0000388151153538 -0.0050937956763057 0.0000374534216237 -0.0051016929655422 0.0000379543374563 -0.0051249934564716 0.0000383665964405 -0.0051373320497674 0.0000390648698797 -0.0051429864569627 0.0000381002665061 -0.0051510100491796 0.0003167204155283 -0.0051510120491895 0.0013175803771560 -0.0051635183995134 1.7404491190770612 -0.0051733473020711 0.7513378794220696 -0.0051807523545340 0.0027348966135823 -0.0051807805916449 -0.0001100000000133 -0.0051807805916449 -0.0001200000000133 -0.0051807930234215 0.0000387374719423 -0.0051937979379124 0.0000374395696173 -0.0052014984502581 0.0000379431170600 -0.0052256760049335 0.0000384094693227 -0.0052510226238792 0.0003169475017381 -0.0052510246238894 0.0013178173943647 -0.0052635235352347 1.7429562629781714 -0.0052807698757597 0.0010959742080420 -0.0052807817904540 -0.0001099999999923 -0.0052807817904540 -0.0001199999999923 -0.0052807941643374 0.0000388151869595 -0.0052937960120594 0.0000374532729481 -0.0053016921415944 0.0000379543734227 -0.0053249935846961 0.0000383666516157 -0.0053373340883987 0.0000390645880290 -0.0053429882314976 0.0000381004541184 -0.0053510100512071 0.0003167206412566 -0.0053510120512175 0.0013175806427196 -0.0053635183994853 1.7404490733700066 -0.0053733480920342 0.7512586149895834 -0.0053807523676399 0.0027340100754263 -0.0053807805959055 -0.0001100000000161 -0.0053807805959055 -0.0001200000000161 -0.0053807930276438 0.0000387375109111 -0.0053937983675252 0.0000374393345539 -0.0054014976751289 0.0000379430831545 -0.0054256758407897 0.0000384094177195 -0.0054510226390092 0.0003169478201335 -0.0054510246390199 0.0013178178120043 -0.0054635235358877 1.7429539767828022 -0.0054807698597690 0.0010952652653924 -0.0054807817673972 -0.0001100000000142 -0.0054807817673972 -0.0001200000000142 -0.0054807941412560 0.0000388152643027 -0.0054937963826926 0.0000374531101192 -0.0055016912401158 0.0000379544124231 -0.0055249937341848 0.0000383667122152 -0.0055373363350852 0.0000390642757075 -0.0055429901596421 0.0000381006582550 -0.0055510100534155 0.0003167208867022 -0.0055510120534263 0.0013175809357453 -0.0055635183994541 1.7404490215584527 -0.0055733489532064 0.7511722007317482 -0.0055807523818555 0.0027330442502506 -0.0055807806004848 -0.0001099999999615 -0.0055807806004848 -0.0001199999999615 -0.0055807930321817 0.0000387375530166 -0.0055937988340852 0.0000374390782298 -0.0056014968310033 0.0000379430459661 -0.0056256756593726 0.0000384093609484 -0.0056510226554746 0.0003169481663966 -0.0056510246554858 0.0013178181520937 -0.0056635235366031 1.7429514868013101 -0.0056807698423938 0.0010944872168072 -0.0056807817422671 -0.0001099999999853 -0.0056807817422671 -0.0001199999999853 -0.0056807941160988 0.0000388153486394 -0.0056937967986550 0.0000374529302714 -0.0057016902475961 0.0000379544548537 -0.0057249939108320 0.0000383667792719 -0.0057373388306346 0.0000390639262844 -0.0057429922620880 0.0000381008811519 -0.0057510100558299 0.0003167211548397 -0.0057510120558413 0.0013175812528204 -0.0057635183994202 1.7404489637085296 -0.0057733498906721 0.7510781285729752 -0.0057807523972993 0.0027319889899354 -0.0057807806053997 -0.0001100000000029 -0.0057807806053997 -0.0001200000000029 -0.0057807930370511 0.0000387375976448 -0.0057937993500451 0.0000374387949754 -0.0058014959048433 0.0000379430036105 -0.0058256754612688 0.0000384092973523 -0.0058510226735212 0.0003169485436369 -0.0058510246735329 0.0013178185299687 -0.0058635235373783 1.7429487494562026 -0.0058807698230347 0.0010936450097851 -0.0058807817145136 -0.0001100000000278 -0.0058807817145136 -0.0001200000000278 -0.0058807940883161 0.0000388154397175 -0.0058937972526882 0.0000374527335638 -0.0059016891568395 0.0000379545017188 -0.0059249941132117 0.0000383668535299 -0.0059373415982270 0.0000390635371099 -0.0059429945641291 0.0000381011256150 -0.0059510100584808 0.0003167214489080 -0.0059510120584928 0.0013175816011092 -0.0059635183993827 1.7404488985152136 -0.0059733509182835 0.7509750067868086 -0.0059807524141718 0.0027308305536025 -0.0059807806107135 -0.0001100000000116 -0.0059807806107135 -0.0001200000000116 -0.0059807930423148 0.0000387376457364 -0.0059937999185459 0.0000374384822617 -0.0060014948864259 0.0000379429561087 -0.0060256752415656 0.0000384092263496 -0.0060510226933456 0.0003169489567068 -0.0060510246933579 0.0013178188881990 -0.0060635235382333 1.7429457371359003 -0.0060807698016955 0.0010927153434607 -0.0060807816839083 -0.0001100000000142 -0.0060807816839083 -0.0001200000000142 -0.0060807940576787 0.0000388155394075 -0.0060937977655259 0.0000374525144784 -0.0061016879454295 0.0000379545531399 -0.0061249943530049 0.0000383669365272 -0.0061373447041382 0.0000390630969912 -0.0061429970950485 0.0000381013947102 -0.0061510100614046 0.0003167217725095 -0.0061510120614172 0.0013175819835844 -0.0061635183993409 1.7404488233373263 -0.0061733520481833 0.7508616136041242 -0.0061807524326281 0.0027295534928934 -0.0061807806164274 -0.0001099999999651 -0.0061807806164274 -0.0001199999999651 -0.0061807930479737 0.0000387376970650 -0.0061938005504377 0.0000374381341205 -0.0062014937601139 0.0000379429017771 -0.0062256749981429 0.0000384091460941 -0.0062510227152457 0.0003169494108998 -0.0062510247152586 0.0013178194178529 -0.0062635235391773 1.7429423996217641 -0.0062807697778811 0.0010916895151488 -0.0062807816498692 -0.0001100000000402 -0.0062807816498692 -0.0001200000000402 -0.0062807940236042 0.0000388156483612 -0.0062937983428133 0.0000374522699694 -0.0063016865951590 0.0000379546097964 -0.0063249946373435 0.0000383670294625 -0.0063373482095302 0.0000390625960073 -0.0063429998908228 0.0000381016919322 -0.0063510100646457 0.0003167221293014 -0.0063510120646591 0.0013175824096806 -0.0063635183992944 1.7404487325477720 -0.0063733532991312 0.7507360573775074 -0.0063807524528507 0.0029711982333241 -0.0063807830982676 -0.0001099999999573 -0.0063807830982676 -0.0001199999999573 -0.0063807955507766 0.0000389433431111 -0.0063913978921966 0.0000381141750026 -0.0064039603447252 0.0000384562163124 -0.0064203901089974 0.0000384691980501 -0.0064320396301621 0.0000394629644478 -0.0064506436095772 0.0000384120050417 -0.0064510100049787 0.0003169570474221 -0.0064510120049914 0.0013171108563166 -0.0064635146445870 1.7472520241867091 -0.0064807991866452 0.0015645575743031 -0.0064808157773762 -0.0001100000000361 -0.0064808157773762 -0.0001200000000361 -0.0064808281829657 0.0000387664023240 -0.0064927537677128 0.0000377424070091 -0.0065020520800165 0.0000380936188655 -0.0065246494993625 0.0000384468019789 -0.0065367118390185 0.0000394401768913 -0.0065444058367868 0.0000382325649235 -0.0065510386650461 0.0003168984250523 -0.0065510406650602 0.0013177605465772 -0.0065635233802736 1.7412013628959837 -0.0065807571764023 0.0013689580199064 -0.0065807718168658 -0.0001099999999753 -0.0065807718168658 -0.0001199999999753 -0.0065807841875090 0.0000389245019702 -0.0065941999823467 0.0000374770597422 -0.0066014777691049 0.0000380452017983 -0.0066252425661065 0.0000384753381144 -0.0066378784283747 0.0000390493381542 -0.0066429941163307 0.0000381979603081 -0.0066510100702791 0.0003169090343561 -0.0066510120702937 0.0013177796138187 -0.0066635183926723 1.7410168415447083 -0.0066733801200644 0.7490338395051479 -0.0066807656270452 0.0028548416603646 -0.0066807950621965 -0.0001100000000147 -0.0066807950621965 -0.0001200000000147 -0.0066808074708635 0.0000388550277343 -0.0066945956478939 0.0000373150560666 -0.0067013417382880 0.0000379582420260 -0.0067253614917106 0.0000384252193381 -0.0067382989199652 0.0000389100604787 -0.0067430001321976 0.0000381479343020 -0.0067510100723328 0.0003168143768161 -0.0067510120723478 0.0013176751049661 -0.0067635183990846 1.7407338936380716 -0.0067733355695761 0.7530245652142198 -0.0067807588244340 0.0027346575041372 -0.0067807870639725 -0.0001100000000112 -0.0067807870639725 -0.0001200000000112 -0.0067807994921342 0.0000387760994763 -0.0067938378838115 0.0000374659005757 -0.0068014746550413 0.0000379767035107 -0.0068256838591248 0.0000384409455523 -0.0068510228953081 0.0003170116239933 -0.0068510248953236 0.0013178855514579 -0.0068635235605107 1.7430977207236105 -0.0068807740061267 0.0010657180205030 -0.0068807856208215 -0.0001100000000010 -0.0068807856208215 -0.0001200000000010 -0.0068807979914828 0.0000388438311135 -0.0068938282756074 0.0000374714915173 -0.0069016679532953 0.0000379787646324 -0.0069250105846611 0.0000383908043013 -0.0069373940073960 0.0000390762442928 -0.0069430081865053 0.0000381245499557 -0.0069510100769045 0.0003167654471738 -0.0069510120769205 0.0013176287900884 -0.0069635183972618 1.7405756695886072 -0.0069733667643293 0.7496046682636390 -0.0069807554937561 0.0028486104095137 -0.0069807848573825 -0.0001100000000431 -0.0069807848573825 -0.0001200000000431 -0.0069807972713430 0.0000387890561174 -0.0069945838862375 0.0000372537274713 -0.0070013422954436 0.0000378964915057 -0.0070253729625348 0.0000383698451248 -0.0070383673357342 0.0000388417354986 -0.0070430065917738 0.0000380946860014 -0.0070510100794434 0.0003167108053413 -0.0070510120794600 0.0013175658063214 -0.0070635184029631 1.7404157296003095 -0.0070733207588740 0.7539591365258008 -0.0070807514723418 0.0027291099480602 -0.0070807796494255 -0.0001099999999622 -0.0070807796494255 -0.0001199999999622 -0.0070807920812021 0.0000387259371735 -0.0070938533830290 0.0000374133367724 -0.0071014650408356 0.0000379283648502 -0.0071256965979637 0.0000383983566277 -0.0071510232429178 0.0003169379230742 -0.0071510252429349 0.0013178074378423 -0.0071635235533069 1.7428018561208516 -0.0071807676934015 0.0010653732582934 -0.0071807793025363 -0.0001100000000225 -0.0071807793025363 -0.0001200000000225 -0.0071807916764693 0.0000388045343090 -0.0071938032977952 0.0000374398179164 -0.0072016755368480 0.0000379445633431 -0.0072250043079450 0.0000383588674933 -0.0072374020301996 0.0000390432717863 -0.0072430177601698 0.0000380938383471 -0.0072510100849888 0.0003167057189439 -0.0072510120850065 0.0013175650531987 -0.0072635183999228 1.7403917700379079 -0.0072733534012481 0.7506287416840243 -0.0072807512120541 0.0028475374552783 -0.0072807805609461 -0.0001100000000182 -0.0072807805609461 -0.0001200000000182 -0.0072807929772103 0.0000387609634833 -0.0072945767440149 0.0000372276059124 -0.0073013418266184 0.0000378701562888 -0.0073253768538807 0.0000383460606152 -0.0073384029876069 0.0000388113809976 -0.0073430133170499 0.0000380722212996 -0.0073510100881455 0.0003166668033836 -0.0073510120881640 0.0013175194359098 -0.0073635184046099 1.7402785448228084 -0.0073733160952144 0.7541898155923488 -0.0073807483370372 0.0028564646104817 -0.0073807777719609 -0.0001099999999842 -0.0073807777719609 -0.0001199999999842 -0.0073807901899550 0.0000387415775115 -0.0073945743650003 0.0000372086716995 -0.0074013420899462 0.0000378513736461 -0.0074253774499588 0.0000383289886665 -0.0074384150638722 0.0000387923718387 -0.0074430163329094 0.0000380560153034 -0.0074510100914936 0.0003166352392986 -0.0074510120915128 0.0013174860963811 -0.0074635184058632 1.7401812489395345 -0.0074733115926238 0.7544734187917924 -0.0074807460948824 0.0028551828771764 -0.0074807755149344 -0.0001099999999700 -0.0074807755149344 -0.0001199999999700 -0.0074807879341169 0.0000387269132274 -0.0074945709175493 0.0000371950807511 -0.0075013419495528 0.0000378376661010 -0.0075253797462374 0.0000383166444837 -0.0075384338120703 0.0000387765201697 -0.0075430191115772 0.0000380442835472 -0.0075510100951147 0.0003166123137498 -0.0075510120951347 0.0013174619398336 -0.0075635184067403 1.7401100951688406 -0.0075733088695546 0.7546236196300755 -0.0075807444632679 0.0028537996036672 -0.0075807738680130 -0.0001100000000213 -0.0075807738680130 -0.0001200000000213 -0.0075807862880586 0.0000387162417479 -0.0075945678033240 0.0000371852621896 -0.0076013416662664 0.0000378277328501 -0.0076253813946605 0.0000383076757737 -0.0076384497574801 0.0000387645783349 -0.0076430219905819 0.0000380358426450 -0.0076510100990403 0.0003165957478330 -0.0076510120990611 0.0013174444993626 -0.0076635184073659 1.7400582082486573 -0.0076733072890851 0.7546925563660306 -0.0076807432812072 0.0028523567296222 -0.0076807726704751 -0.0001100000000076 -0.0076807726704751 -0.0001200000000076 -0.0076807850911459 0.0000387085089259 -0.0076945648860417 0.0000371782223937 -0.0077013412622256 0.0000378205782690 -0.0077253825530229 0.0000383011889291 -0.0077384637593332 0.0000387554924893 -0.0077430250216268 0.0000380298298172 -0.0077510101033104 0.0003165838678641 -0.0077510121033322 0.0013174320105658 -0.0077635184078038 1.7400204743627818 -0.0077733065855286 0.7546980199737818 -0.0077807424300445 0.0028508292208579 -0.0077807718033039 -0.0001099999999810 -0.0077807718033039 -0.0001199999999810 -0.0077807842244242 0.0000387029396115 -0.0077945620517547 0.0000371732352003 -0.0078013407502161 0.0000378154733842 -0.0078253833457989 0.0000382965300742 -0.0078384765379467 0.0000387484730412 -0.0078430282518000 0.0000380256143759 -0.0078510101079723 0.0003165754496895 -0.0078510121079951 0.0013174231806367 -0.0078635184081014 1.7399931463091485 -0.0078733065683662 0.7546526353916161 -0.0078807418229381 0.0028491931427647 -0.0078807711793375 -0.0001100000000750 -0.0078807711793375 -0.0001200000000750 -0.0078807836007778 0.0000386989662097 -0.0078945592074810 0.0000371697698653 -0.0079013401366587 0.0000378118850121 -0.0079253838625928 0.0000382932204790 -0.0079384886705907 0.0000387429326054 -0.0079430317281729 0.0000380227359346 -0.0079510101130829 0.0003165695984622 -0.0079510121131068 0.0013174170632777 -0.0079635184082926 1.7399734771636952 -0.0079733071050851 0.7545649437580005 -0.0079807413963690 0.0028474234120550 -0.0079807707347473 -0.0001100000000617 -0.0079807707347473 -0.0001200000000617 -0.0079807831564116 0.0000386961734611 -0.0079945562736794 0.0000371674393331 -0.0080013394227861 0.0000378094238491 -0.0080253841671034 0.0000382909100118 -0.0080385006300812 0.0000387384323833 -0.0080430355004885 0.0000380208595079 -0.0080510101187098 0.0003165656621225 -0.0080510121187349 0.0013174129706592 -0.0080635184084030 1.7399594552926299 -0.0080733081043273 0.7544406328624960 -0.0080807411039513 0.0028454937210358 -0.0080807704228418 -0.0001100000000016 -0.0080807704228418 -0.0001200000000016 -0.0080807828446586 0.0000386942580369 -0.0080945531784722 0.0000371659622128 -0.0081013386050261 0.0000378078063413 -0.0081253843045886 0.0000382893429183 -0.0081385128237078 0.0000387346405389 -0.0081430396234470 0.0000380197425078 -0.0081510101249359 0.0003165631666257 -0.0081510121249625 0.0013174104043511 -0.0081635184084508 1.7399496064599196 -0.0081733095096974 0.7542828136189982 -0.0081807409118872 0.0028433733446848 -0.0081807702094855 -0.0001100000000768 -0.0081807702094855 -0.0001200000000768 -0.0081807826314011 0.0000386929988744 -0.0081945498518014 0.0000371651353254 -0.0082013376753276 0.0000378068269867 -0.0082253843059705 0.0000382883329146 -0.0082385256253452 0.0000387313012573 -0.0082430441613633 0.0000380192105943 -0.0082510101318621 0.0003165617699163 -0.0082510121318901 0.0013174090066184 -0.0082635184084496 1.7399428530816952 -0.0082733112825533 0.7540935065944768 -0.0082807407956073 0.0028410295335117 -0.0082807700697595 -0.0001099999999685 -0.0082807700697595 -0.0001199999999685 -0.0082807824917345 0.0000386922350470 -0.0082945462215171 0.0000371648126923 -0.0083013366210992 0.0000378063374309 -0.0083253841878536 0.0000382877443127 -0.0083385393891842 0.0000387282137520 -0.0083430491860433 0.0000380191409400 -0.0083510101396137 0.0003165612275800 -0.0083510121396435 0.0013174085193975 -0.0083635184084072 1.7399384026628109 -0.0083733134252693 0.7538711035827179 -0.0083807407374702 0.0028384157732301 -0.0083807699855429 -0.0001099999999148 -0.0083807699855429 -0.0001199999999148 -0.0083807824075456 0.0000386918513637 -0.0083945422070364 0.0000371648931303 -0.0084013354242396 0.0000378062335329 -0.0084253839607918 0.0000382874803422 -0.0084385545037817 0.0000387252096750 -0.0084430547880061 0.0000380194495806 -0.0084510101483477 0.0003165613700508 -0.0084510121483794 0.0013174087634403 -0.0084635184083299 1.7399356824259054 -0.0084733159434328 0.7536140625271501 -0.0084807407249431 0.0028354814002289 -0.0084807699437864 -0.0001099999999854 -0.0084807699437864 -0.0001199999999854 -0.0084807823657918 0.0000386917656357 -0.0084945377155194 0.0000371653076444 -0.0085013340604659 0.0000378064430372 -0.0085253836237255 0.0000382874716927 -0.0085385713941217 0.0000387221422535 -0.0085430610774822 0.0000380200823171 -0.0085510101582638 0.0003165620834114 -0.0085510121582977 0.0013174096219940 -0.0085635184082205 1.7399342725610900 -0.0085733188657605 0.7533187856572328 -0.0085807407492976 0.0028321612897236 -0.0085807699351048 -0.0001099999999285 -0.0085807699351048 -0.0001199999999285 -0.0085807823570935 0.0000386919206611 -0.0085945326336578 0.0000371660130480 -0.0086013324973277 0.0000378069186834 -0.0086253831685381 0.0000382876700035 -0.0086385905802384 0.0000387188682824 -0.0086430681923793 0.0000380210089279 -0.0086510101696198 0.0003165632978166 -0.0086510121696563 0.0013174110231806 -0.0086635184080802 1.7399338664789783 -0.0086733222403668 0.7529799277689750 -0.0086807408047079 0.0028283721989761 -0.0086807699528376 -0.0001099999999779 -0.0086807699528376 -0.0001199999999779 -0.0086807823747930 0.0000386922781897 -0.0086945268192879 0.0000371669868144 -0.0087013306915590 0.0000378076330520 -0.0087253825752293 0.0000382880426576 -0.0087386127116737 0.0000387152371449 -0.0087430763085586 0.0000380222197935 -0.0087510101827542 0.0003165649799642 -0.0087510121827936 0.0013174129354701 -0.0087635184079085 1.7399342388360362 -0.0087733261418703 0.7525896278731498 -0.0087807408876530 0.0028240042335387 -0.0087807699923661 -0.0001100000000715 -0.0087807699923661 -0.0001200000000715 -0.0087807824142732 0.0000386928150578 -0.0087945200873368 0.0000371682248003 -0.0088013285848578 0.0000378085757108 -0.0088253818127369 0.0000382885692793 -0.0088386386549086 0.0000387110708166 -0.0088430856538165 0.0000380237245653 -0.0088510101981210 0.0003165671295114 -0.0088510121981638 0.0013174153636649 -0.0088635184077019 1.7399352230000122 -0.0088733306706614 0.7521375479140053 -0.0088807409964735 0.0028189125709763 -0.0088807700505870 -0.0001099999999672 -0.0088807700505870 -0.0001199999999672 -0.0088807824724308 0.0000386935201898 -0.0088945121909154 0.0000371697397590 -0.0089013260975799 0.0000378097515162 -0.0089253808284498 0.0000382892387391 -0.0089386695970388 0.0000387061422442 -0.0089430965287650 0.0000380255528747 -0.0089510102163436 0.0003165697787925 -0.0089510122163905 0.0013174183444285 -0.0089635184074559 1.7399366890244188 -0.0089733359661883 0.7516095034376697 -0.0089807411311288 0.0028128997394106 -0.0089807701254926 -0.0001099999999240 -0.0089807701254926 -0.0001199999999240 -0.0089807825472600 0.0000386943930573 -0.0089945027905670 0.0000371715624830 -0.0090013231071191 0.0000378111873253 -0.0090252355239837 0.0000382655652658 -0.0090380759910463 0.0000388117217150 -0.0090431259953026 0.0000380083390679 -0.0090510102378671 0.0003165321000665 -0.0090510122379190 0.0013173825809651 -0.0090635223055359 1.7438366615289989 -0.0090807490035713 0.0037256911185946 -0.0090807872286717 -0.0001099999999686 -0.0090807872286717 -0.0001199999999686 -0.0090807997691880 0.0000389716143836 -0.0090884788402389 0.0000384808582983 -0.0091095970356909 0.0000387066942843 -0.0091193407373844 0.0000375842530881 -0.0091442643499287 0.0000375508717066 -0.0091510385920356 0.0003150860014802 -0.0091510405920941 0.0033263809403876 -0.0091635163225675 1.7336789372859784 -0.0091763654218863 0.4294979116494212 -0.0091805570319929 0.0041605000207872 -0.0091805988742705 -0.0001100000000360 -0.0091805988742705 -0.0001200000000360 -0.0091806367114978 0.0000369124378299 -0.0091816383148853 0.0000374624816662 -0.0092083919845765 0.0000374849135899 -0.0092175386737872 0.0000363182478602 -0.0092263057998876 0.0000367467526933 -0.0092457778831348 0.0000364300916583 -0.0092510387124841 0.0003132105961104 -0.0092510407125505 0.0013140921197940 -0.0092613763281863 1.4331572168357212 -0.0092635248827730 1.7305880870222234 -0.0092783124518812 0.2233120159558993 -0.0092804938795352 0.0016157881110407 -0.0092805107987967 -0.0001100000000305 -0.0092805107987967 -0.0001200000000305 -0.0092805232621565 0.0000374049921423 -0.0092941387116850 0.0000358541641177 -0.0093016118918967 0.0000364764400494 -0.0093250300142523 0.0000370260440808 -0.0093377637138417 0.0000376803206353 -0.0093432892904344 0.0000368376041669 -0.0093510103395227 0.0003142586209260 -0.0093510123395990 0.0013149910587635 -0.0093635185301600 1.7328573153303495 -0.0093729525347567 0.7780489137190071 -0.0093805779202045 0.0027608946283885 -0.0093806062475759 -0.0001100000000683 -0.0093806062475759 -0.0001200000000683 -0.0093806187571096 0.0000376169694037 -0.0093943081784295 0.0000361650088229 -0.0094013296236034 0.0000368014765543 -0.0094253815808224 0.0000373560953694 -0.0094397369134046 0.0000375869642140 -0.0094431878472911 0.0000371370950234 -0.0094510104042731 0.0003148400099651 -0.0094510124043634 0.0013156054219472 -0.0094635184860416 1.7345940941007192 -0.0094731011800585 0.7660087041710257 -0.0094806184205619 0.0027373145153725 -0.0094806465511948 -0.0001099999999831 -0.0094806465511948 -0.0001199999999831 -0.0094806590385156 0.0000378861706348 -0.0094943078046526 0.0000364213334195 -0.0095013114114618 0.0000370570060815 -0.0095253354889949 0.0000375830947203 -0.0095392728507078 0.0000379079609411 -0.0095432505375422 0.0000373637289129 -0.0095510104874928 0.0003152734667256 -0.0095510124876031 0.0013160601361908 -0.0095635223731908 1.7399040596013211 -0.0095806596086086 0.0040701086122812 -0.0095807010853493 -0.0001100000000549 -0.0095807010853493 -0.0001200000000549 -0.0095807136315594 0.0000383122566559 -0.0095909074507400 0.0000375130594186 -0.0096048916692566 0.0000379789499531 -0.0096166205777814 0.0000372285070675 -0.0096244671274221 0.0000374257494254 -0.0096299437272773 0.0000381889280559 -0.0096446547392392 0.0000371365479341 -0.0096510383206201 0.0003147564850296 -0.0096510403207623 0.0013155611935503 -0.0096635177921112 1.7338618815525952 -0.0096782518698198 0.2343135865728794 -0.0096805444517730 0.0018599437434776 -0.0096805638549687 -0.0001099999999390 -0.0096805638549687 -0.0001199999999390 -0.0096805763277785 0.0000376739304478 -0.0096942467304869 0.0000365792488085 -0.0097066790431539 0.0000375949149357 -0.0097140950502876 0.0000368982242478 -0.0097325291276998 0.0000373264516083 -0.0097510119420767 0.0003125791669229 -0.0097510139422776 0.0033130715436925 -0.0097561369178058 0.7107408740504451 -0.0097635169686848 1.7347936589136550 -0.0097783655701402 0.2205173372386500 -0.0097805389587949 -0.0001100000002743 -0.0097805389587949 -0.0001200000002743 -0.0097805559944819 0.0000373171873783 -0.0097939973780611 0.0000357447390010 -0.0098015565711178 0.0000363832171228 -0.0098242679464661 0.0000368658011126 -0.0098366240503828 0.0000380119521947 -0.0098439839187474 0.0000366935138568 -0.0098510375972208 0.0003140307631299 -0.0098510395975545 0.0013147501952543 -0.0098635224043002 1.7324678070197821 -0.0098805390732288 0.0036957828704653 -0.0098805767847334 -0.0001100000000145 -0.0098805767847334 -0.0001200000000145 -0.0098805894171966 0.0000378722778248 -0.0098883184734639 0.0000373438393639 -0.0098920285366361 0.0000365009269678 -0.0099017704582631 0.0000370542687005 -0.0099247963842532 0.0000374382571229 -0.0099510266079497 0.0003156113363665 -0.0099510286089631 0.0013163977341717 -0.0099635233181141 1.7373733687261148 -0.0099806451100261 0.0009554172051033 -0.0099806555923796 -0.0001099999999596 -0.0099806555923796 -0.0001199999999596 -0.0099806680420834 0.0000383624736008 -0.0099900135361914 0.0000364942355389 +0.0000099628091091 0.0002380965030657 +0.0000105254333052 0.0002378437672754 +0.0000126676683552 0.0002367651556739 +0.0000311440822200 0.0002253743560845 +0.0000316195783685 0.0002249843434354 +0.0000339566221823 0.0002229243706509 +0.0000363067670105 0.0002206144360299 +0.0000385880297138 0.0002181063703120 +0.0000510260009638 0.0006488252020234 +0.0000510280009715 0.0036488622287125 +0.0000556413176449 1.0233162958480773 +0.0000599640866323 1.9681366669132851 +0.0000635240425432 2.7334322018597885 +0.0000702418661721 2.5452237916925831 +0.0000770919491742 2.3220843400766853 +0.0000835677816420 2.0838819909686079 +0.0000885060406187 1.8832380315367485 +0.0000939604247056 1.6417814242195636 +0.0000987366443789 1.4152290300395076 +0.0001051497451324 1.0926139749938060 +0.0001101960809097 0.8250875339195552 +0.0001141565133163 0.6061202944799983 +0.0001194275510537 0.3030439709764180 +0.0001244925471546 0.0020675591679588 +0.0001245281395512 -0.0001099999999998 +0.0001245281395512 -0.0001199999999998 +0.0001245527885140 0.0001196567688033 +0.0001510255374102 0.0004503148412791 +0.0001510275374161 0.0034504145391913 +0.0001578959497033 1.1854462812733737 +0.0001635159817945 2.1453949479440619 +0.0001799488314018 0.9802729841607039 +0.0001854450260851 0.5857343415028601 +0.0001934788169555 0.0012660867017907 +0.0001934973291316 -0.0001099999999995 +0.0001934973291316 -0.0001199999999995 +0.0001935251870329 0.0000933279106496 +0.0002005320140471 0.0000922281816576 +0.0002139198081057 0.0000897497662021 +0.0002316081695597 0.0000869411084755 +0.0002479468546467 0.0000833823449872 +0.0002510100088271 0.0004065352003154 +0.0002510120088316 0.0034073972055845 +0.0002620238533219 1.7809347779172380 +0.0002635207694922 2.0192109457162712 +0.0002832491820129 0.4380385849676779 +0.0002886284598564 0.0029568119488568 +0.0002886659201770 -0.0001099999999981 +0.0002886659201770 -0.0001199999999981 +0.0002886958996885 0.0000776830112305 +0.0002990229147602 0.0000760212354439 +0.0003153257573725 0.0000741337328089 +0.0003314235272716 0.0000729067700233 +0.0003400843221302 0.0000712924270614 +0.0003510337423240 0.0003794697172366 +0.0003510357423283 0.0013803265864513 +0.0003617525098971 1.6641949415024808 +0.0003635200915432 1.9351671633513063 +0.0003859562658762 0.0013751812686197 +0.0003859732308566 -0.0001100000000004 +0.0003859732308566 -0.0001200000000004 +0.0003860050684120 0.0000668124272217 +0.0004021878209416 0.0000652427468603 +0.0004230241236196 0.0000629508891720 +0.0004474309927073 0.0000609459082293 +0.0004510365949665 0.0003613016803954 +0.0004510385949718 0.0033616670124209 +0.0004576157032284 0.9931821519043352 +0.0004635176553214 1.8796290089291283 +0.0004842294922280 0.0069586249500046 +0.0004843072604449 -0.0001099999999992 +0.0004843072604449 -0.0001199999999992 +0.0004843403098010 0.0000590232893682 +0.0005322914880992 0.0000561398566542 +0.0005510268428643 0.0003490592657436 +0.0005510288428686 0.0013493712158637 +0.0005635104235335 1.8427903122018150 +0.0005832344048495 0.0015363544373032 +0.0005832518936271 -0.0001099999999962 +0.0005832518936271 -0.0001199999999962 +0.0005832862095452 0.0000534051154850 +0.0006133845168595 0.0000518831812297 +0.0006388379618236 0.0000507915040657 +0.0006510344083036 0.0003397049871880 +0.0006510364083078 0.0013399298609276 +0.0006635123968159 1.8128404663332547 +0.0006740543261957 0.8047204338104774 +0.0006800943708331 0.2255685637129324 +0.0006824477837748 0.0032070776072821 +0.0006824823763569 -0.0001100000000042 +0.0006824823763569 -0.0001200000000042 +0.0006825175059718 0.0000492304086759 +0.0006991375264143 0.0000475424605735 +0.0007075910435286 0.0000483731442791 +0.0007244017191742 0.0000469957110692 +0.0007333430594675 0.0000476197603110 +0.0007510315894919 0.0003318634053398 +0.0007510335894964 0.0013321504099271 +0.0007635133798797 1.7921176002832779 +0.0007818929982353 0.0045000599776225 +0.0007819406697244 -0.0001100000000024 +0.0007819406697244 -0.0001200000000024 +0.0007819526451570 0.0000463431201143 +0.0007901557123394 0.0000454693503529 +0.0008070744540164 0.0000455403968342 +0.0008229134946668 0.0000442621994828 +0.0008466420280041 0.0000436947750098 +0.0008510381770462 0.0003274672749543 +0.0008510401770515 0.0013307470735871 +0.0008612390388402 1.4526083546190875 +0.0008635164643722 1.7750314322059071 +0.0008801165073779 0.1413756525671161 +0.0008815368087051 0.0020811638270520 +0.0008815590352091 -0.0001100000000053 +0.0008815590352091 -0.0001200000000053 +0.0008815953941763 0.0000438504400599 +0.0008960229561776 0.0000426882363720 +0.0009209126676633 0.0000422383206425 +0.0009457700682991 0.0000418198812414 +0.0009510383566683 0.0003238062306332 +0.0009510403566736 0.0013256095276995 +0.0009619963238484 1.5474060615565168 +0.0009635284872390 1.7626121003190613 +0.0009795765440139 0.1673381269306457 +0.0009812453780615 0.0021268688225640 +0.0009812679052293 -0.0001099999999992 +0.0009812679052293 -0.0001199999999992 +0.0009812800037278 0.0000421949185065 +0.0009957053594435 0.0000410716098743 +0.0010203481796899 0.0000407293095394 +0.0010452208681759 0.0000404141993679 +0.0010510384921598 0.0003210806894708 +0.0010510404921651 0.0013223840445936 +0.0010626019420324 1.6283714437153431 +0.0010635188975927 1.7551627849209384 +0.0010792068477604 0.1854835577813767 +0.0010810475039751 0.0019598338965024 +0.0010810682189813 -0.0001099999999931 +0.0010810682189813 -0.0001199999999931 +0.0010810804177632 0.0000409592603996 +0.0010954096304751 0.0000398558882025 +0.0011198234958747 0.0000395892489709 +0.0011447274314564 0.0000393514317910 +0.0011510385943895 0.0003190336363424 +0.0011510405943949 0.0013201068922574 +0.0011635264650676 1.7480867626223149 +0.0011789087442489 0.2014563324465760 +0.0011809004203096 0.0018311901125469 +0.0011809197549015 -0.0001100000000040 +0.0011809197549015 -0.0001200000000040 +0.0011809320275717 0.0000400301134411 +0.0011951846467679 0.0000389405926357 +0.0012194393835000 0.0000387291893025 +0.0012443521989106 0.0000385490112925 +0.0012510386716173 0.0003174947796329 +0.0012510406716227 0.0013184396200115 +0.0012635261802915 1.7433565486300355 +0.0012787344522418 0.2086237482379566 +0.0012807905813841 0.0017267631075346 +0.0012808088087971 -0.0001099999999976 +0.0012808088087971 -0.0001199999999976 +0.0012808211362597 0.0000393324075924 +0.0012950198889487 0.0000382498327923 +0.0013191155615974 0.0000380778410688 +0.0013440443467983 0.0000379413551376 +0.0013510387298709 0.0003163357871911 +0.0013510407298764 0.0013171989894601 +0.0013635259357561 1.7397888611033234 +0.0013786170719068 0.2126902238539502 +0.0013807082310092 0.0016567822623508 +0.0013807256735127 -0.0001099999999919 +0.0013807256735127 -0.0001199999999919 +0.0013807381027507 0.0000382022058008 +0.0013812994019426 0.0000387884996646 +0.0014100143530431 0.0000387203896866 +0.0014191696842023 0.0000375759095394 +0.0014448637219671 0.0000378817849409 +0.0014510387991456 0.0003150869528913 +0.0014510407991518 0.0033155910109495 +0.0014565890807413 0.7729586025853268 +0.0014635170431995 1.7383955790576231 +0.0014786161599219 0.2071590544799660 +0.0014806483868985 0.0016501464680448 +0.0014806657295209 -0.0001099999999968 +0.0014806657295209 -0.0001199999999968 +0.0014806781931337 0.0000377888402437 +0.0014819993345036 0.0000383934563430 +0.0015016395366979 0.0000379279691023 +0.0015191422237972 0.0000371877616791 +0.0015441850240005 0.0000375074204499 +0.0015510388429241 0.0003141949553315 +0.0015510408429305 0.0033146561185910 +0.0015559403530441 0.6819348467147327 +0.0015635166622817 1.7363861735856292 +0.0015785931517649 0.2049367036376138 +0.0015806003298251 0.0016441645489794 +0.0015806175873921 -0.0001100000000044 +0.0015806175873921 -0.0001200000000044 +0.0015806300769515 0.0000374752537650 +0.0015982232169606 0.0000369662548137 +0.0016086764088220 0.0000379244517264 +0.0016263877702869 0.0000375344540511 +0.0016440320743716 0.0000368150726723 +0.0016510388364974 0.0003141667933890 +0.0016510408365031 0.0013148939139098 +0.0016635185329257 1.7287012512247972 +0.0016730002426147 0.7689390352076315 +0.0016805358254552 0.0027086899728860 +0.0016805637363704 -0.0001099999999926 +0.0016805637363704 -0.0001199999999926 +0.0016805763059559 0.0000378717931399 +0.0016886116891378 0.0000374498296632 +0.0017091506030838 0.0000377468105651 +0.0017190158268983 0.0000366350559502 +0.0017397768206680 0.0000368305078785 +0.0017510384238434 0.0003133685888595 +0.0017510404238481 0.0013135137909194 +0.0017635152319789 1.7332761654898228 +0.0017805305586890 0.0037318037025182 +0.0017805684724812 -0.0001100000000003 +0.0017805684724812 -0.0001200000000003 +0.0017805810336263 0.0000374141393551 +0.0017937913119149 0.0000364803706967 +0.0018147470307716 0.0000366971951818 +0.0018336972345660 0.0000374388122890 +0.0018510100703332 0.0003129449542260 +0.0018510120703397 0.0033134392155351 +0.0018562104652627 0.7216881637623935 +0.0018635166789525 1.7362003839850433 +0.0018785093505441 0.2083721474707844 +0.0018805441179407 0.0016337250642477 +0.0018805612188414 -0.0001100000000095 +0.0018805612188414 -0.0001200000000095 +0.0018805737596598 0.0000368369467813 +0.0018982152023367 0.0000363565108507 +0.0019086549082537 0.0000373367037767 +0.0019263186245133 0.0000369657464390 +0.0019439337651594 0.0000362715071999 +0.0019510388895438 0.0003131219671337 +0.0019510408895497 0.0013138039805811 +0.0019635186091346 1.7255244140922650 +0.0019727745340574 0.7863606235298273 +0.0019804623770128 0.0027476470660960 +0.0019804906054011 -0.0001100000000023 +0.0019804906054011 -0.0001200000000023 +0.0019805032163258 0.0000373755563081 +0.0019886366108462 0.0000369717287918 +0.0020089665149905 0.0000372970014944 +0.0020189201268057 0.0000361929229959 +0.0020396843038326 0.0000364301782677 +0.0020510383532122 0.0003125670933539 +0.0020510403532171 0.0013127123711268 +0.0020635152969041 1.7308537342685570 +0.0020804745714772 0.0037714882394646 +0.0020805128101285 -0.0001100000000185 +0.0020805128101285 -0.0001200000000185 +0.0020805254041166 0.0000370458422322 +0.0020937154033912 0.0000361211132303 +0.0021146711631939 0.0000363723448664 +0.0021335537067570 0.0000371328333175 +0.0021510100734841 0.0003123153407156 +0.0021510120734908 0.0033128086253812 +0.0021561172151202 0.7080144876300654 +0.0021635165826929 1.7343818245254405 +0.0021784623927900 0.2091874653632106 +0.0021805024761218 0.0016273324201730 +0.0021805194915033 -0.0001100000000187 +0.0021805194915033 -0.0001200000000187 +0.0021805320548352 0.0000365624732906 +0.0021980887276044 0.0000360901948897 +0.0022085389610499 0.0000370882799908 +0.0022262520137547 0.0000367148358051 +0.0022438819832741 0.0000360347513871 +0.0022510389119574 0.0003126688496815 +0.0022510409119636 0.0013133319847851 +0.0022635186474875 1.7241488049063929 +0.0022726675337721 0.7948804686481911 +0.0022804305727945 0.0027701931544814 +0.0022804589942429 -0.0001099999999927 +0.0022804589942429 -0.0001199999999927 +0.0022804716234594 0.0000371599920785 +0.0022886501991935 0.0000367637572712 +0.0023088814867335 0.0000371010862857 +0.0023188782703654 0.0000360006601844 +0.0023396442142856 0.0000362562925544 +0.0023510383183397 0.0003122187237169 +0.0023510403183449 0.0013123640089261 +0.0023635153254483 1.7298017408542110 +0.0023804503082656 0.0037889564779993 +0.0023804886899075 -0.0001099999999957 +0.0023804886899075 -0.0001199999999957 +0.0023805012982209 0.0000368857700903 +0.0023936826707137 0.0000359648747824 +0.0024146388814931 0.0000362311272411 +0.0024334921201143 0.0000369998360043 +0.0024510100763890 0.0003120415221438 +0.0024510120763960 0.0033125343249716 +0.0024560766396137 0.7020737392362902 +0.0024635165422593 1.7335911545124756 +0.0024784426639759 0.2094763288291386 +0.0024804844084133 0.0016246763784598 +0.0024805013878963 -0.0001099999999819 +0.0024805013878963 -0.0001199999999819 +0.0024805139610394 0.0000364431665916 +0.0024980337142151 0.0000359743982661 +0.0025084891586563 0.0000369802715183 +0.0025262236912285 0.0000366057513277 +0.0025438594401433 0.0000359317306486 +0.0025510389210688 0.0003124718270344 +0.0025510409210752 0.0013131269696814 +0.0025635186648458 1.7235507763212738 +0.0025726213440371 0.7985580863977961 +0.0025804167651251 0.0027799755094993 +0.0025804452701788 -0.0001099999999916 +0.0025804452701788 -0.0001199999999916 +0.0025804579073633 0.0000370662646015 +0.0025886560950718 0.0000366732796303 +0.0026088442009523 0.0000370158270372 +0.0026188600684250 0.0000359169841616 +0.0026396276125783 0.0000361806124699 +0.0026510383016381 0.0003120671705551 +0.0026510403016435 0.0013122124430451 +0.0026635153379830 1.7293443333282812 +0.0026804397675164 0.0037965743692931 +0.0026804782114756 -0.0001100000000103 +0.0026804782114756 -0.0001200000000103 +0.0026804908260295 0.0000368161537036 +0.0026936683424770 0.0000358968607099 +0.0027146257046560 0.0000361696439891 +0.0027334651851961 0.0000369420133500 +0.0027510100793156 0.0003119224099446 +0.0027510120793229 0.0033124149934072 +0.0027560589880272 0.6994907745569757 +0.0027635165249417 1.7332469426314381 +0.0027784341724501 0.2095932011639542 +0.0027804765523287 0.0016235384919005 +0.0027804935163796 -0.0001100000000012 +0.0027804935163796 -0.0001200000000012 +0.0027805060937959 0.0000363912817242 +0.0027980094814730 0.0000359239998697 +0.0028084674260269 0.0000369333089542 +0.0028262121234089 0.0000365583471394 +0.0028438493937204 0.0000358868580985 +0.0028510389243353 0.0003123860964481 +0.0028510409243420 0.0013130379531252 +0.0028635186725280 1.7232906656652291 +0.0028726013047589 0.8001537477811927 +0.0028804107619755 0.0027842303689175 +0.0028804393033665 -0.0001100000000100 +0.0028804393033665 -0.0001200000000100 +0.0028804519440209 0.0000370255035043 +0.0028886585715111 0.0000366338840650 +0.0029088276118598 0.0000369787203758 +0.0029188520127613 0.0000358805321709 +0.0029396213093668 0.0000361476249632 +0.0029510382931384 0.0003120012092872 +0.0029510402931441 0.0013121464671772 +0.0029635153434583 1.7291454392504608 +0.0029804351840260 0.0037998933632286 +0.0029804736551282 -0.0001100000000163 +0.0029804736551282 -0.0001200000000163 +0.0029804862723997 0.0000367858804008 +0.0029936619226776 0.0000358672212261 +0.0030146209194198 0.0000361428312967 +0.0030334530962127 0.0000369168970955 +0.0030510100823960 0.0003118706145677 +0.0030510120824036 0.0033123630990650 +0.0030560513055484 0.6983666620991095 +0.0030635165174581 1.7330968859996962 +0.0030784304482737 0.2096468563963929 +0.0030804731320274 0.0016230393546071 +0.0030804900893258 -0.0001100000000092 +0.0030804900893258 -0.0001200000000092 +0.0030805026686026 0.0000363687262289 +0.0030979985566334 0.0000359020464721 +0.0031084577595396 0.0000369129094965 +0.0031262079210939 0.0000365377881537 +0.0031438447227617 0.0000358672834233 +0.0031510389249949 0.0003123487787126 +0.0031510409250018 0.0013129989496778 +0.0031635186758957 1.7231775611230999 +0.0031725925883353 0.8008480442320138 +0.0031804081508578 0.0027860854400672 +0.0031804367080910 -0.0001099999999996 +0.0031804367080910 -0.0001199999999996 +0.0031804493502564 0.0000370077888507 +0.0031886595384261 0.0000366167122466 +0.0032088199871880 0.0000369625731439 +0.0032188483332655 0.0000358646271072 +0.0032396195718426 0.0000361332081379 +0.0032510382881767 0.0003119724923736 +0.0032510402881828 0.0013121178035715 +0.0032635153458434 1.7290590361873976 +0.0032804331909412 0.0038013391230392 +0.0032804716738659 -0.0001099999999786 +0.0032804716738659 -0.0001199999999786 +0.0032804842923208 0.0000367727299127 +0.0032936589103313 0.0000358542787629 +0.0033146198762482 0.0000361311000647 +0.0033334473965772 0.0000369060192560 +0.0033510100857099 0.0003118481228413 +0.0033510120857178 0.0033123405661388 +0.0033560479622791 0.6978772481237232 +0.0033635165142125 1.7330312837068516 +0.0033784288731931 0.2096652716257040 +0.0033804716406211 0.0016228299793775 +0.0033804885950583 -0.0001099999999961 +0.0033804885950583 -0.0001199999999961 +0.0033805011751453 0.0000363589369501 +0.0033979933785062 0.0000358924701998 +0.0034084532995150 0.0000369040749169 +0.0034262070048669 0.0000365289206954 +0.0034438423558247 0.0000358587156116 +0.0034510389244482 0.0003123325299449 +0.0034510409244555 0.0013129821497507 +0.0034635186773689 1.7231284427977516 +0.0034725887905879 0.8011507912123902 +0.0034804070154663 0.0027868965724198 +0.0034804355796305 -0.0001100000000056 +0.0034804355796305 -0.0001200000000056 +0.0034804482224539 0.0000370001072430 +0.0034886598349190 0.0000366092108468 +0.0035088162250689 0.0000369555504122 +0.0035188465370852 0.0000358576618622 +0.0035396199190660 0.0000361268682983 +0.0035510382846530 0.0003119599861190 +0.0035510402846593 0.0013121052494187 +0.0035635153468778 1.7290216093177200 +0.0035804323251341 0.0038019687710814 +0.0035804708132074 -0.0001099999999858 +0.0035804708132074 -0.0001199999999858 +0.0035804834321776 0.0000367670350803 +0.0035936573571810 0.0000358486003639 +0.0036146205621139 0.0000361259274282 +0.0036334444278042 0.0000369013445742 +0.0036510100893165 0.0003118383924462 +0.0036510120893248 0.0033123308155102 +0.0036560465077249 0.6976640220212585 +0.0036635165128041 1.7330024316120707 +0.0036784280801136 0.2096839285135904 +0.0036804709885866 0.0016227216367347 +0.0036804879416092 -0.0001099999999940 +0.0036804879416092 -0.0001199999999940 +0.0036805005220485 0.0000363547074484 +0.0036979906571258 0.0000358882794179 +0.0037084510748040 0.0000369002790363 +0.0037262076079325 0.0000365251506065 +0.0037438409574859 0.0000358549345417 +0.0037510389232940 0.0003123254517341 +0.0037510409233017 0.0013129747953692 +0.0037635186780128 1.7231071885187850 +0.0037725871307212 0.8012833959156296 +0.0037804065224298 0.0027872542347608 +0.0037804350896561 -0.0001099999999916 +0.0037804350896561 -0.0001199999999916 +0.0037804477327662 0.0000369967959260 +0.0037886598269224 0.0000366059163438 +0.0038088140995025 0.0000369525005342 +0.0038188455402080 0.0000358545840912 +0.0038396212832030 0.0000361240380275 +0.0038510382816214 0.0003119545359570 +0.0038510402816282 0.0013120997981014 +0.0038635153473247 1.7290055201382808 +0.0038804319501413 0.0038022431302037 +0.0038804704404583 -0.0001100000000025 +0.0038804704404583 -0.0001200000000025 +0.0038804830596530 0.0000367645887939 +0.0038936564141313 0.0000358460796649 +0.0039146221145478 0.0000361236032623 +0.0039334425950861 0.0000368993765244 +0.0039510100932706 0.0003118342234511 +0.0039510120932793 0.0033123266380100 +0.0039560458746442 0.6975708861203336 +0.0039635165121935 1.7329895141854181 +0.0039784279090446 0.2096739696678341 +0.0039804707011426 0.0016227032637051 +0.0039804876538327 -0.0001100000000144 +0.0039804876538327 -0.0001200000000144 +0.0039805002344262 0.0000363529013885 +0.0039979889589447 0.0000358864308005 +0.0040084497950462 0.0000368986816803 +0.0040262089769464 0.0000365236089492 +0.0040438399427871 0.0000358532319522 +0.0040510389219839 0.0003123223650649 +0.0040510409219920 0.0013129715962570 +0.0040635186785490 1.7230980838323617 +0.0040725864011303 0.8013420118490359 +0.0040804063094436 0.0027874148284991 +0.0040804348780512 -0.0001099999999605 +0.0040804348780512 -0.0001199999999605 +0.0040804475212863 0.0000369953904848 +0.0040886596721836 0.0000366044501559 +0.0041088126362666 0.0000369511808808 +0.0041188448691349 0.0000358531937502 +0.0041396232186877 0.0000361227279388 +0.0041510382788515 0.0003119521566281 +0.0041510402788586 0.0013120974352905 +0.0041635153477692 1.7289987470963524 +0.0041804317893011 0.0038023627680434 +0.0041804702805965 -0.0001100000000151 +0.0041804702805965 -0.0001200000000151 +0.0041804828998890 0.0000367635600369 +0.0041936557085239 0.0000358449282557 +0.0042146241782037 0.0000361225111325 +0.0042334411991219 0.0000368985936887 +0.0042510100978360 0.0003118324819463 +0.0042510120978451 0.0033123248923298 +0.0042560455994093 0.6975299951260343 +0.0042635165121843 1.7329835410227319 +0.0042784276711769 0.2096859342323685 +0.0042804705728806 0.0016226689292965 +0.0042804875251668 -0.0001100000000180 +0.0042804875251668 -0.0001200000000180 +0.0042805001058267 0.0000363521540115 +0.0042979876480500 0.0000358855988078 +0.0043084488903324 0.0000368980471917 +0.0043262107979710 0.0000365230477777 +0.0043438390504314 0.0000358524277240 +0.0043510389202025 0.0003123210151373 +0.0043510409202110 0.0013129700966252 +0.0043635186786739 1.7230942728223457 +0.0043725860737330 0.8013686669272840 +0.0043804062180139 0.0027874908639959 +0.0043804347872833 -0.0001099999999575 +0.0043804347872833 -0.0001199999999575 +0.0043804474305733 0.0000369948184745 +0.0043886594367509 0.0000366037761042 +0.0044088114000463 0.0000369506152681 +0.0044188443125022 0.0000358525323092 +0.0044396255497232 0.0000361220711246 +0.0044510382757180 0.0003119511133426 +0.0044510402757256 0.0013120964114240 +0.0044635153478474 1.7289960450313637 +0.0044804317214551 0.0038024152992606 +0.0044804702131805 -0.0001100000000345 +0.0044804702131805 -0.0001200000000345 +0.0044804828325158 0.0000367631524661 +0.0044936550724660 0.0000358443669221 +0.0045146266214323 0.0000361219463679 +0.0045334399280631 0.0000368983352546 +0.0045510101026736 0.0003118318066781 +0.0045510121026831 0.0033123242150940 +0.0045560454805098 0.6975119235297128 +0.0045635165120731 1.7329805161686669 +0.0045784276127615 0.2096861133555790 +0.0045804705127315 0.0016226618099507 +0.0045804874649190 -0.0001099999999610 +0.0045804874649190 -0.0001199999999610 +0.0045805000456080 0.0000363518721398 +0.0045979864419325 0.0000358852065889 +0.0046084481101131 0.0000368978392213 +0.0046262129575050 0.0000365229265846 +0.0046438381598454 0.0000358520076815 +0.0046510389181744 0.0003123204210720 +0.0046510409181834 0.0013129697034721 +0.0046635186787326 1.7230927888985512 +0.0046725859216896 0.8013814165240226 +0.0046804061798595 0.0027875301581591 +0.0046804347494782 -0.0001099999999915 +0.0046804347494782 -0.0001199999999915 +0.0046804473927921 0.0000369946142760 +0.0046886591464455 0.0000366034430645 +0.0047088101937318 0.0000369503792765 +0.0047188437750998 0.0000358521818601 +0.0047396282295070 0.0000361216885864 +0.0047510382723009 0.0003119506513469 +0.0047510402723091 0.0013120959410029 +0.0047635153478759 1.7289951485231820 +0.0047804316945368 0.0038024384762496 +0.0047804701864523 -0.0001100000000012 +0.0047804701864523 -0.0001200000000012 +0.0047804828058063 0.0000367630203348 +0.0047936544280275 0.0000358440555042 +0.0048146294124174 0.0000361216008063 +0.0048334386294898 0.0000368983152509 +0.0048510101080722 0.0003118316051591 +0.0048510121080823 0.0033123240120686 +0.0048560454287733 0.6975036008293791 +0.0048635165120280 1.7329787421658376 +0.0048784275114206 0.2096934580154291 +0.0048804704820879 0.0016226467966979 +0.0048804874341152 -0.0001099999999785 +0.0048804874341152 -0.0001199999999785 +0.0048805000148167 0.0000363517983171 +0.0048979852033612 0.0000358850021668 +0.0049084473360905 0.0000368978253121 +0.0049262154299755 0.0000365230118821 +0.0049438372086447 0.0000358517463059 +0.0049510389158846 0.0003123201553445 +0.0049510409158942 0.0013129693961594 +0.0049635186787601 1.7230923398963489 +0.0049725858446870 0.8013882663099853 +0.0049804061650988 0.0027875543652227 +0.0049804347349397 -0.0001099999999749 +0.0049804347349397 -0.0001199999999749 +0.0049804473782647 0.0000369945757510 +0.0049886588090465 0.0000366032535631 +0.0050088089176245 0.0000369502880846 +0.0050188432092807 0.0000358519589921 +0.0050396312664241 0.0000361214135477 +0.0050510382685026 0.0003119504413396 +0.0050510402685113 0.0013120957249206 +0.0050635153478820 1.7289950732230583 +0.0050804316857557 0.0038024492194443 +0.0050804701777600 -0.0001100000000126 +0.0050804701777600 -0.0001200000000126 +0.0050804827971224 0.0000367630137995 +0.0050936537333088 0.0000358438443649 +0.0051146325747618 0.0000361213378309 +0.0051334372275018 0.0000368984106453 +0.0051510101141356 0.0003118316222747 +0.0051510121141463 0.0033123240280470 +0.0051560454074623 0.6974996276548556 +0.0051635165120125 1.7329774370654660 +0.0051784275322872 0.2096895096932492 +0.0051804704634770 0.0016226514199272 +0.0051804874155444 -0.0001100000000050 +0.0051804874155444 -0.0001200000000050 +0.0051804999962516 0.0000363518213221 +0.0051979838602730 0.0000358848751665 +0.0052084465099257 0.0000368979057652 +0.0052262182384478 0.0000365232051256 +0.0052438361582605 0.0000358515437931 +0.0052510389132965 0.0003123200317611 +0.0052510409133067 0.0013129691792501 +0.0052635186787747 1.7230923671961680 +0.0052725857994309 0.8013926676055888 +0.0052804061607703 0.0027875725897555 +0.0052804347307839 -0.0001100000000000 +0.0052804347307839 -0.0001200000000000 +0.0052804473741139 0.0000369946160224 +0.0052886584232350 0.0000366031207009 +0.0053088075125701 0.0000369502615595 +0.0053188425869869 0.0000358517823446 +0.0053396347091718 0.0000361211706781 +0.0053510382642337 0.0003119503400688 +0.0053510402642431 0.0013120956005177 +0.0053635153478775 1.7289953969964127 +0.0053804316852721 0.0038024541040823 +0.0053804701773168 -0.0001099999999646 +0.0053804701773168 -0.0001199999999646 +0.0053804827966831 0.0000367630688960 +0.0053936529612562 0.0000358436667333 +0.0054146361612305 0.0000361210956596 +0.0054334356666470 0.0000368985705093 +0.0054510101209955 0.0003118317483250 +0.0054510121210069 0.0033123241537809 +0.0054560453991305 0.6974974406005602 +0.0054635165120101 1.7329762630267747 +0.0054784276202555 0.2096791577132235 +0.0054804704493808 0.0016226669433111 +0.0054804874015987 -0.0001100000000053 +0.0054804874015987 -0.0001200000000053 +0.0054804999823088 0.0000363518941209 +0.0054979823610062 0.0000358847766138 +0.0055084455932844 0.0000368980393309 +0.0055262214324630 0.0000365234670310 +0.0055438349763506 0.0000358513545397 +0.0055510389103552 0.0003123199689322 +0.0055510409103662 0.0013129690856643 +0.0055635186787850 1.7230926336119119 +0.0055725857652010 0.8013963197575623 +0.0055804061612773 0.0027875899213781 +0.0055804347314589 -0.0001099999999927 +0.0055804347314589 -0.0001199999999927 +0.0055804473747915 0.0000369946986565 +0.0055886579829283 0.0000366030053408 +0.0056088059306165 0.0000369502650667 +0.0056188418866156 0.0000358516144838 +0.0056396386290176 0.0000361209243615 +0.0056510382593870 0.0003119502847334 +0.0056510402593971 0.0013120955635960 +0.0056635153478682 1.7289959454067023 +0.0056804316888722 0.0038024568126381 +0.0056804701809399 -0.0001099999999880 +0.0056804701809399 -0.0001199999999880 +0.0056804828003080 0.0000367631591856 +0.0056936520876443 0.0000358434912645 +0.0057146402516967 0.0000361208440166 +0.0057334338988332 0.0000368987756881 +0.0057510101288194 0.0003118319395430 +0.0057510121288315 0.0033123243438861 +0.0057560453965258 0.6974959557004777 +0.0057635165120145 1.7329750891156097 +0.0057784274702640 0.2096931473894033 +0.0057804704368239 0.0016226436629525 +0.0057804873888118 -0.0001099999999782 +0.0057804873888118 -0.0001199999999782 +0.0057804999695223 0.0000363519979998 +0.0057979806564727 0.0000358846839264 +0.0058084445523568 0.0000368982108140 +0.0058262250864755 0.0000365237852216 +0.0058438336291548 0.0000358511558792 +0.0058510389069869 0.0003123199313218 +0.0058510409069986 0.0013129692140112 +0.0058635186787946 1.7230930419629618 +0.0058725857342853 0.8013998352439584 +0.0058804061642489 0.0027876079297322 +0.0058804347346072 -0.0001099999999634 +0.0058804347346072 -0.0001199999999634 +0.0058804473779414 0.0000369948096154 +0.0058886574774431 0.0000366028888622 +0.0059088041248468 0.0000369502840385 +0.0059188410866375 0.0000358514365193 +0.0059396431267223 0.0000361206549415 +0.0059510382538316 0.0003119502477237 +0.0059510402538425 0.0013120955419415 +0.0059635153478552 1.7289966539323904 +0.0059804316948332 0.0038024586076241 +0.0059804701869165 -0.0001099999999910 +0.0059804701869165 -0.0001199999999910 +0.0059804828062858 0.0000367632751307 +0.0059936510864092 0.0000358433014351 +0.0060146449551105 0.0000361205654347 +0.0060334318704926 0.0000368990219231 +0.0060510101378255 0.0003118321806720 +0.0060510121378385 0.0033123245848352 +0.0060560453961620 0.6974946353685488 +0.0060635165120222 1.7329737821679561 +0.0060784274398025 0.2096948966695795 +0.0060804704235184 0.0016226400318582 +0.0060804873754703 -0.0001099999999903 +0.0060804873754703 -0.0001199999999903 +0.0060804999561812 0.0000363521268555 +0.0060979786968707 0.0000358845858152 +0.0061084433561089 0.0000368984169331 +0.0061262293046000 0.0000365241608713 +0.0061438320765854 0.0000358509343357 +0.0061510389030926 0.0003123199029410 +0.0061510409031052 0.0013129691568936 +0.0061635186788031 1.7230935599047765 +0.0061725857028393 0.8014035401800654 +0.0061804061687470 0.0027876276304439 +0.0061804347392993 -0.0001100000000343 +0.0061804347392993 -0.0001200000000343 +0.0061804473826350 0.0000369949452358 +0.0061886568920258 0.0000366027610327 +0.0062088020388146 0.0000369503127686 +0.0062188401613849 0.0000358512368030 +0.0062396483377535 0.0000361203485315 +0.0062510382473979 0.0003119502166517 +0.0062510402474098 0.0013120955008840 +0.0062635153478386 1.7289975100265693 +0.0062804317025528 0.0038024600570140 +0.0062804701946490 -0.0001100000000132 +0.0062804701946490 -0.0001200000000132 +0.0062804828140191 0.0000367634152008 +0.0062936499251814 0.0000358430862148 +0.0063146504199634 0.0000361202463393 +0.0063334295185626 0.0000368993126236 +0.0063510101483045 0.0003118324704920 +0.0063510121483186 0.0033123248733325 +0.0063560453979002 0.6974934089218753 +0.0063635165120326 1.7329722851485654 +0.0063784274325270 0.2096941210001894 +0.0063804704086057 0.0016226404104418 +0.0063804873605612 -0.0001100000000340 +0.0063804873605612 -0.0001200000000340 +0.0063804999412724 0.0000363522811384 +0.0063979764158494 0.0000358844752588 +0.0064084419627761 0.0000368986611278 +0.0064262342257042 0.0000365246030142 +0.0064438302659148 0.0000358506790970 +0.0064510388985393 0.0003123198766914 +0.0064510408985531 0.0013129690815853 +0.0064635186788125 1.7230941863326279 +0.0064725856669397 0.8014078191687160 +0.0064804061744789 0.0027876506924869 +0.0064804347452589 -0.0001099999999929 +0.0064804347452589 -0.0001199999999929 +0.0064804473885958 0.0000369951072025 +0.0064886562069581 0.0000366026144427 +0.0065087995981828 0.0000369503495481 +0.0065188390775834 0.0000358510055751 +0.0065396544438893 0.0000361199918894 +0.0065510382398581 0.0003119501856044 +0.0065510402398712 0.0013120954964797 +0.0065635153478194 1.7289985291658712 +0.0065804317119631 0.0038024615691802 +0.0065804702040730 -0.0001099999999951 +0.0065804702040730 -0.0001199999999951 +0.0065804828234437 0.0000367635822790 +0.0065936485612377 0.0000358428355125 +0.0066146568437385 0.0000361198731879 +0.0066334267528298 0.0000368996569136 +0.0066510101606495 0.0003118328161402 +0.0066510121606649 0.0033123252174070 +0.0066560453998272 0.6974919523792120 +0.0066635165120453 1.7329705343657480 +0.0066784274188081 0.2096937579194304 +0.0066804703913228 0.0016226399887120 +0.0066804873432742 -0.0001100000000193 +0.0066804873432742 -0.0001200000000193 +0.0066804999239856 0.0000363524651401 +0.0066979737245464 0.0000358843462784 +0.0067084403169837 0.0000368989514517 +0.0067262400407182 0.0000365251273989 +0.0067438281262868 0.0000358503786017 +0.0067510388931450 0.0003123198488267 +0.0067510408931601 0.0013129689699852 +0.0067635186788229 1.7230949378616049 +0.0067725856245683 0.8014128882215630 +0.0067804061814800 0.0027876781471651 +0.0067804347525312 -0.0001099999999703 +0.0067804347525312 -0.0001199999999703 +0.0067804473958694 0.0000369953007923 +0.0067886553945070 0.0000366024418146 +0.0068087967030669 0.0000369503947989 +0.0068188377901111 0.0000358507320637 +0.0068396616981149 0.0000361195690432 +0.0068510382308998 0.0003119501512503 +0.0068510402309142 0.0013120954090844 +0.0068635153477947 1.7289997473535785 +0.0068804317233054 0.0038024633557487 +0.0068804702154317 -0.0001099999999568 +0.0068804702154317 -0.0001199999999568 +0.0068804828348032 0.0000367637825994 +0.0068936469360073 0.0000358425375516 +0.0069146645051877 0.0000361194287033 +0.0069334234563423 0.0000369000689379 +0.0069510101754086 0.0003118332312436 +0.0069510121754254 0.0033123256292401 +0.0069560454029589 0.6974903277422100 +0.0069635165120610 1.7329684540852324 +0.0069784273379296 0.2096999042529725 +0.0069804703708923 0.0016226289488605 +0.0069804873227353 -0.0001099999999584 +0.0069804873227353 -0.0001199999999584 +0.0069804999034465 0.0000363526865775 +0.0069979705005766 0.0000358841922033 +0.0070084383426677 0.0000368993007251 +0.0070262470170377 0.0000365257577006 +0.0070438255587462 0.0000358500181364 +0.0070510388866531 0.0003123198170361 +0.0070510408866697 0.0013129691078295 +0.0070635186788374 1.7230958464573103 +0.0070725855740649 0.8014189462499199 +0.0070804061900066 0.0027877110700951 +0.0070804347613831 -0.0001099999999832 +0.0070804347613831 -0.0001199999999832 +0.0070804474047229 0.0000369955348533 +0.0070886544153317 0.0000366022342437 +0.0071087932136033 0.0000369504504453 +0.0071188362354919 0.0000358504022657 +0.0071396704581901 0.0000361190584391 +0.0071510382200823 0.0003119501112253 +0.0071510402200985 0.0013120954034011 +0.0071635153477669 1.7290012215782637 +0.0071804317370863 0.0038024652039326 +0.0071804702292294 -0.0001099999999625 +0.0071804702292294 -0.0001199999999625 +0.0071804828486017 0.0000367640261356 +0.0071936449664214 0.0000358421765702 +0.0072146737976209 0.0000361188895393 +0.0072334194566742 0.0000369005701490 +0.0072510101933651 0.0003118337373085 +0.0072510121933837 0.0033123261346727 +0.0072560454063988 0.6974883011432693 +0.0072635165120797 1.7329659051349919 +0.0072784274244428 0.2096885513765129 +0.0072804703458035 0.0016226457269267 +0.0072804872978119 -0.0001100000000032 +0.0072804872978119 -0.0001200000000032 +0.0072804998785235 0.0000363529572425 +0.0072979665699994 0.0000358840041508 +0.0073084359317459 0.0000368997280684 +0.0073262555411298 0.0000365265289160 +0.0073438224208284 0.0000358495770722 +0.0073510388786903 0.0003123197789162 +0.0073510408787089 0.0013129688902261 +0.0073635186788518 1.7230969629481681 +0.0073725855139116 0.8014261975465218 +0.0073804062005237 0.0027877505063618 +0.0073804347722899 -0.0001100000000151 +0.0073804347722899 -0.0001200000000151 +0.0073804474156316 0.0000369958229179 +0.0073886532119902 0.0000366019793498 +0.0074087889264980 0.0000369505199629 +0.0074188343207728 0.0000358499962419 +0.0074396812450685 0.0000361184292847 +0.0074510382067571 0.0003119500629437 +0.0074510402067753 0.0013120953616120 +0.0074635153477316 1.7290030396350640 +0.0074804317541008 0.0038024677018054 +0.0074804702462669 -0.0001100000000311 +0.0074804702462669 -0.0001200000000311 +0.0074804828656402 0.0000367643279979 +0.0074936425295754 0.0000358417296710 +0.0075146853047630 0.0000361182213009 +0.0075334145027332 0.0000369011925263 +0.0075510102156847 0.0003118343669522 +0.0075510122157055 0.0033123267612600 +0.0075560454104568 0.6974857527659002 +0.0075635165121033 1.7329627730384376 +0.0075784272298526 0.2097052212939678 +0.0075804703151486 0.0016226172187800 +0.0075804872668767 -0.0001099999999679 +0.0075804872668767 -0.0001199999999679 +0.0075804998475878 0.0000363532954156 +0.0075979616669859 0.0000358837689945 +0.0076084329169872 0.0000369002628245 +0.0076262661909854 0.0000365274936786 +0.0076438184980148 0.0000358490245406 +0.0076510388686934 0.0003123197321609 +0.0076510408687144 0.0013129688594353 +0.0076635186788720 1.7230983664870092 +0.0076725854369015 0.8014354560789270 +0.0076804062137538 0.0027878009699943 +0.0076804347860188 -0.0001100000000156 +0.0076804347860188 -0.0001200000000156 +0.0076804474293630 0.0000369961856878 +0.0076886516985594 0.0000366016583621 +0.0077087835303659 0.0000369506087128 +0.0077188319042069 0.0000358494837303 +0.0077396948554211 0.0000361176343895 +0.0077510381899393 0.0003119500030091 +0.0077510401899602 0.0013120952548588 +0.0077635153476861 1.7290053354542005 +0.0077804317756021 0.0038024708398994 +0.0077804702677971 -0.0001099999999678 +0.0077804702677971 -0.0001199999999678 +0.0077804828871717 0.0000367647117302 +0.0077936394370759 0.0000358411617889 +0.0078146999267271 0.0000361173709191 +0.0078334082095555 0.0000369019856534 +0.0078510102441775 0.0003118351716707 +0.0078510122442011 0.0033123275631538 +0.0078560454163388 0.6974825972063803 +0.0078635165121330 1.7329587485741147 +0.0078784272244767 0.2097017473901254 +0.0078804702756589 0.0016226205209362 +0.0078804872274200 -0.0001100000000380 +0.0078804872274200 -0.0001200000000380 +0.0078804998081312 0.0000363537294657 +0.0078979553860802 0.0000358834664665 +0.0079084290449503 0.0000369009508020 +0.0079262798770757 0.0000365287354149 +0.0079438134542806 0.0000358483120866 +0.0079510388557689 0.0003123196730803 +0.0079510408557930 0.0013129686795453 +0.0079635186788969 1.7231001825313359 +0.0079725853381001 0.8014473508328919 +0.0079804062308958 0.0027878657763898 +0.0079804348038013 -0.0001099999999207 +0.0079804348038013 -0.0001199999999207 +0.0079804474471484 0.0000369966564778 +0.0079886497366872 0.0000366012417370 +0.0080087765325107 0.0000369507259109 +0.0080188287590456 0.0000358488164414 +0.0080397125647782 0.0000361165982859 +0.0080510381680481 0.0003119499265823 +0.0080510401680724 0.0013120952210759 +0.0080635153476284 1.7290083250835437 +0.0080804318036176 0.0038024750901312 +0.0080804702958519 -0.0001099999999456 +0.0080804702958519 -0.0001199999999456 +0.0080804829152282 0.0000367652157563 +0.0080936353830117 0.0000358404159838 +0.0081147191232800 0.0000361162523832 +0.0081333999436502 0.0000369030312044 +0.0081510102818155 0.0003118362348896 +0.0081510122818429 0.0033123286229206 +0.0081560454231396 0.6974782956775796 +0.0081635165121721 1.7329534443575558 +0.0081784271320976 0.2097058502349804 +0.0081804702236800 0.0016226109410122 +0.0081804871753474 -0.0001100000000817 +0.0081804871753474 -0.0001200000000817 +0.0081804997560585 0.0000363543069859 +0.0081979470466368 0.0000358830625368 +0.0082084238848833 0.0000369018689893 +0.0082262981119635 0.0000365303930577 +0.0082438067285738 0.0000358473583370 +0.0082510388384105 0.0003123195957150 +0.0082510408384388 0.0013129687251779 +0.0082635186789322 1.7231026230956894 +0.0082725852062193 0.8014632460035420 +0.0082804062539616 0.0027879525020396 +0.0082804348277244 -0.0001099999999628 +0.0082804348277244 -0.0001199999999628 +0.0082804474710756 0.0000369972918246 +0.0082886470924634 0.0000366006791139 +0.0083087670957153 0.0000369508876469 +0.0083188244971144 0.0000358479116693 +0.0083397365530206 0.0000361151912823 +0.0083510381383815 0.0003119498257392 +0.0083510401384104 0.0013120951424309 +0.0083635153475497 1.7290123784186755 +0.0083804318416290 0.0038024806828820 +0.0083804703339150 -0.0001100000000137 +0.0083804703339150 -0.0001200000000137 +0.0083804829532936 0.0000367659070737 +0.0083936298366015 0.0000358393930343 +0.0084147454419550 0.0000361147146722 +0.0084333886107545 0.0000369044721031 +0.0084510103338419 0.0003118377063087 +0.0084510123338746 0.0033123300880393 +0.0084560454330596 0.6974724229095786 +0.0084635165122257 1.7329461144416785 +0.0084784270167748 0.2097102686965738 +0.0084804701518889 0.0016225997028888 +0.0084804871034466 -0.0001099999999709 +0.0084804871034466 -0.0001199999999709 +0.0084804996841575 0.0000363551130398 +0.0084979354403802 0.0000358824959768 +0.0085084166680982 0.0000369031559753 +0.0085263236159558 0.0000365327176553 +0.0085437973113140 0.0000358460156444 +0.0085510388138649 0.0003123194902660 +0.0085510408138991 0.0013129684970014 +0.0085635186789798 1.7231060780853082 +0.0085725850189483 0.8014858082852598 +0.0085804062866439 0.0027880758383106 +0.0085804348616258 -0.0001099999999888 +0.0085804348616258 -0.0001199999999888 +0.0085804475049828 0.0000369981961669 +0.0085886433355991 0.0000365998772711 +0.0086087536741449 0.0000369511247942 +0.0086188183952948 0.0000358466150724 +0.0086397708776973 0.0000361131707857 +0.0086510380958992 0.0003119496864677 +0.0086510400959348 0.0013120949892622 +0.0086635153474361 1.7290181858498332 +0.0086804318961295 0.0038024887704428 +0.0086804703884904 -0.0001100000000724 +0.0086804703884904 -0.0001200000000724 +0.0086804830078721 0.0000367669137365 +0.0086936217877700 0.0000358379030354 +0.0087147837459408 0.0000361124678721 +0.0087333721104849 0.0000369065850723 +0.0087510104104520 0.0003118398763408 +0.0087510124104925 0.0033123322480764 +0.0087560454471757 0.6974637097298930 +0.0087635165123036 1.7329353278120112 +0.0087784268440621 0.2097170837053740 +0.0087804700463232 0.0016225826486106 +0.0087804869977146 -0.0001100000000352 +0.0087804869977146 -0.0001200000000352 +0.0087804995784250 0.0000363563165635 +0.0087979181795817 0.0000358816436438 +0.0088084058584344 0.0000369050895993 +0.0088263618160953 0.0000365362129182 +0.0088437831819487 0.0000358439848371 +0.0088510387765058 0.0003123193381006 +0.0088510407765490 0.0013129683739981 +0.0088635186790529 1.7231113425199982 +0.0088725847348801 0.8015200601512722 +0.0088804063365163 0.0027882633491760 +0.0088804349133518 -0.0001099999999687 +0.0088804349133518 -0.0001199999999687 +0.0088804475567174 0.0000369995860175 +0.0088886375759656 0.0000365986423314 +0.0089087330704056 0.0000369515052060 +0.0089188089351252 0.0000358446015685 +0.0089398240506487 0.0000361100234994 +0.0089510380300025 0.0003119494821208 +0.0089510400300488 0.0013120948192389 +0.0089635153472596 1.7290271996714806 +0.0089804319807838 0.0038025020088608 +0.0089804704732679 -0.0001100000000221 +0.0089804704732679 -0.0001200000000221 +0.0089804830926545 0.0000367685148866 +0.0089936090493006 0.0000358355311110 +0.0090148446295162 0.0000361088742082 +0.0090333458614060 0.0000369099835216 +0.0090510105344522 0.0003118433950197 +0.0090510125345053 0.0033123357553040 +0.0090560454679521 0.6974493256801689 +0.0090635165124269 1.7329178850081064 +0.0090784265455791 0.2097300722821542 +0.0090804698757962 0.0016225518566072 +0.0090804868268871 -0.0001099999999874 +0.0090804868268871 -0.0001199999999874 +0.0090804994075967 0.0000363583072650 +0.0090978898008890 0.0000358802161798 +0.0091083878851285 0.0000369083201397 +0.0091264253316177 0.0000365420606073 +0.0091437596213814 0.0000358405537163 +0.0091510387127673 0.0003123191002522 +0.0091510407128258 0.0013129681239256 +0.0091635186791755 1.7231203369683037 +0.0091725842531101 0.8015782239919776 +0.0091804064218745 0.0027885828007234 +0.0091804350018682 -0.0001100000000539 +0.0091804350018682 -0.0001200000000539 +0.0091804476452485 0.0000370019951383 +0.0091886276299179 0.0000365964929602 +0.0092086974152950 0.0000369522105489 +0.0092187922943632 0.0000358410487153 +0.0092399174626231 0.0000361044407817 +0.0092510379139525 0.0003119491560369 +0.0092510399140178 0.0013120944886232 +0.0092635153469459 1.7290430862952211 +0.0092804321301275 0.0038025264876601 +0.0092804706228406 -0.0001099999999541 +0.0092804706228406 -0.0001199999999541 +0.0092804832422359 0.0000367714566875 +0.0092935858387913 0.0000358311639206 +0.0093149563887062 0.0000361022016642 +0.0093332975986249 0.0000369163541663 +0.0093510107694360 0.0003118500858106 +0.0093510127695134 0.0033123424217745 +0.0093560455042360 0.6974216554983580 +0.0093635165126525 1.7328848779170174 +0.0093784259050130 0.2097624002884154 +0.0093804695536214 0.0016224810069218 +0.0093804865040203 -0.0001100000000239 +0.0093804865040203 -0.0001200000000239 +0.0093804990847274 0.0000363622307838 +0.0093978344634339 0.0000358773349422 +0.0094083521106147 0.0000369148080806 +0.0094265517751898 0.0000365538403956 +0.0094437124423034 0.0000358335066288 +0.0094510385795436 0.0003123186859290 +0.0094510405796342 0.0013129676627561 +0.0094635186794245 1.7231391718581885 +0.0094725832555851 0.8016988857622528 +0.0094804066010018 0.0027892489240303 +0.0094804351875816 -0.0001099999999718 +0.0094804351875816 -0.0001199999999718 +0.0094804478309920 0.0000370071907946 +0.0094886063273386 0.0000365918134518 +0.0095086207343390 0.0000369539332006 +0.0095187553226993 0.0000358330956462 +0.0095401244947559 0.0000360918014910 +0.0095510376551295 0.0003119485858140 +0.0095510396552394 0.0013120938962926 +0.0095635153462401 1.7290785494345631 +0.0095804324638641 0.0038025859640640 +0.0095804709571381 -0.0001100000000605 +0.0095804709571381 -0.0001200000000605 +0.0095804835765529 0.0000367786278349 +0.0095935302360450 0.0000358204472193 +0.0096152282996815 0.0000360855101697 +0.0096331794997672 0.0000369326481776 +0.0096510113842192 0.0003118677428360 +0.0096510133843628 0.0033123600185286 +0.0096560455803118 0.6973467211638175 +0.0096635165131950 1.7327986787293874 +0.0096784243720347 0.2098327752876293 +0.0096804687142633 0.0016223175353839 +0.0096804856630696 -0.0001100000000089 +0.0096804856630696 -0.0001200000000089 +0.0096804982437688 0.0000363735389652 +0.0096976790376968 0.0000358684897214 +0.0097082463483169 0.0000369344579130 +0.0097269259844728 0.0000365898979447 +0.0097435701302495 0.0000358106684323 +0.0097510381289547 0.0003123180352064 +0.0097510401291550 0.0013129667276905 +0.0097635186802028 1.7232029946656577 +0.0097725799930553 0.8020957977539459 +0.0097804072091998 0.0027914690264445 +0.0097804358177314 -0.0001099999999987 +0.0097804358177314 -0.0001199999999987 +0.0097804484612414 0.0000370265954889 +0.0097885283261919 0.0000365737133877 +0.0098083367200625 0.0000369629992251 +0.0098186033219214 0.0000357992345324 +0.0098409688957642 0.0000360353085059 +0.0098510365575467 0.0003119489183492 +0.0098510385578805 0.0013120943012519 +0.0098635153432305 1.7292289345986247 +0.0098804338789179 0.0038028957826123 +0.0098804723751552 -0.0001100000000830 +0.0098804723751552 -0.0001200000000830 +0.0098804849946613 0.0000368221232355 +0.0098932184083533 0.0000357521373559 +0.0099168371571887 0.0000359649865974 +0.0099324212795110 0.0000370707638077 +0.0099510168846604 0.0003120499622889 +0.0099510188856813 0.0033125418288581 +0.0099560460395642 0.6966472482555749 +0.0099635165164712 1.7320317007906769 +0.0099784108935074 0.2104470691645962 +0.0099804612981267 0.0016208401637304 +0.0099804782326020 -0.0001099999999161 +0.0099804782326020 -0.0001199999999161 +0.0099804908131773 0.0000367303105797 +0.0099947896298009 0.0000344300920711 diff --git a/src/engine/tests/system/gt_data/interleaved/iL[4].dat b/src/engine/tests/system/gt_data/interleaved/iL[4].dat index 1c464d02..886e3e02 100644 --- a/src/engine/tests/system/gt_data/interleaved/iL[4].dat +++ b/src/engine/tests/system/gt_data/interleaved/iL[4].dat @@ -1,1111 +1,1176 @@ 0.0000000000000000 0.0000000000000000 0.0000000166666667 0.0030000000000000 0.0000000173246739 0.0002400003355849 -0.0000099628097338 0.0002380965043729 -0.0000105386164770 0.0002378124003636 -0.0000125791687169 0.0002368815447812 -0.0000131817361328 0.0002365466468390 -0.0000146894176846 0.0002356544739392 -0.0000236834015190 0.0002303182379477 -0.0000291304412869 0.0002269602930809 -0.0000306752506040 0.0002258263579438 -0.0000314949290694 0.0002251774044631 -0.0000325704537829 0.0002243051019013 -0.0000361052310928 0.0002209793644490 -0.0000378886874296 0.0002191360747162 -0.0000580980388602 0.0001965266774015 -0.0000722113130484 0.0001769540892546 -0.0000760284771663 0.0005839359451864 -0.0000760304771753 0.0035839644087760 -0.0000803631023172 0.8905808491754276 -0.0000838161097726 1.5892579296684359 -0.0000885138717226 2.5260466905789842 -0.0000952077620816 2.2274977325665057 -0.0001024767416165 1.8733595086957127 -0.0001088455572723 1.5417007967749643 -0.0001148562464454 1.2104752190553334 -0.0001208307418498 0.8642853646982109 -0.0001276414497321 0.4550932326068378 -0.0001331299510162 0.1163371562656418 -0.0001349396947609 0.0028840374378529 -0.0001349865699111 -0.0001099999999999 -0.0001349865699111 -0.0001199999999999 -0.0001350117389425 0.0001141025812439 -0.0001475376359948 0.0001066580209136 -0.0001647274780895 0.0000998799357787 -0.0001760302828934 0.0004344126033453 -0.0001760322828979 0.0034347946908109 -0.0001860812710774 1.6960825801077211 -0.0001885222767766 2.1026179350129173 -0.0002037507458638 0.9826099560978472 -0.0002120690846278 0.3639387024559619 -0.0002168688886595 0.0029512317843403 -0.0002169090216524 -0.0001100000000007 -0.0002169090216524 -0.0001200000000007 -0.0002169373511663 0.0000889449053937 -0.0002262469392789 0.0000870082172505 -0.0002395848242284 0.0000848400569617 -0.0002548826537735 0.0000828436684284 -0.0002664619919484 0.0000804450098998 -0.0002760295241164 0.0003968778783611 -0.0002760315241220 0.0033970351397051 -0.0002829047510724 1.0987930977437379 -0.0002885123633921 1.9905869150194422 -0.0003002565096835 1.0258159892427914 -0.0003114500831033 0.1060148753578223 -0.0003127010320139 0.0024479784545763 -0.0003127316367468 -0.0001100000000009 -0.0003127316367468 -0.0001200000000009 -0.0003127621810851 0.0000743038051637 -0.0003259884355046 0.0000725041208177 -0.0003390971130860 0.0000711936266674 -0.0003431414483163 0.0000700691756082 -0.0003543626927834 0.0000696329922317 -0.0003644464395852 0.0000682874188490 -0.0003760355377398 0.0003734786650525 -0.0003760375377439 0.0013739330947717 -0.0003865959670608 1.6239038842929798 -0.0003885199452393 1.9163397769305850 -0.0004103827294992 0.0022687178983136 -0.0004104096328696 -0.0001100000000010 -0.0004104096328696 -0.0001200000000010 -0.0004104418858309 0.0000643881044498 -0.0004234783158124 0.0000626304640922 -0.0004321469138635 0.0000627962092376 -0.0004591987370260 0.0000606668267605 -0.0004760216329353 0.0003577655124952 -0.0004760236329405 0.0033582354331435 -0.0004836092422360 1.1378479282945688 -0.0004885184309238 1.8700925729503823 -0.0005089204037636 0.0058522855340130 -0.0005089852889533 -0.0001100000000025 -0.0005089852889533 -0.0001200000000025 -0.0005090187008324 0.0000571538665297 -0.0005265486273513 0.0000558273542219 -0.0005401832815067 0.0000552064826807 -0.0005509605714272 0.0000545719733521 -0.0005656511916685 0.0000536214666948 -0.0005760370559502 0.0003460079439205 -0.0005760390559543 0.0013462354669874 -0.0005885147779534 1.8341478837660430 -0.0006079699882883 0.0041697883095290 -0.0006080154978575 -0.0001100000000044 -0.0006080154978575 -0.0001200000000044 -0.0006080269437128 0.0000521335606318 -0.0006240490460191 0.0000511472711172 -0.0006357781549182 0.0000515501279548 -0.0006458477528766 0.0000502458939153 -0.0006714390877493 0.0000491469682741 -0.0006760358324663 0.0003380373084211 -0.0006760378324705 0.0013382741621281 -0.0006885142214665 1.8100463997722931 -0.0006998084380598 0.7259268693084018 -0.0007073877355339 0.0010099948959354 -0.0007073993958248 -0.0001099999999980 -0.0007073993958248 -0.0001199999999980 -0.0007074110312777 0.0000490331837779 -0.0007158694732890 0.0000478625575052 -0.0007356858405339 0.0000475332880758 -0.0007460071854620 0.0000463287318743 -0.0007712378947592 0.0000456206278065 -0.0007760379889939 0.0003312562941858 -0.0007760399889991 0.0013516843155667 -0.0007825140253966 0.9271726159949134 -0.0007885120488890 1.7877047633302852 -0.0008067628305533 0.0058730881873933 -0.0008068241995700 -0.0001100000000001 -0.0008068241995700 -0.0001200000000001 -0.0008068361655644 0.0000450886668733 -0.0008106733674855 0.0000457048929035 -0.0008202907033173 0.0000445314662320 -0.0008612001883103 0.0000443278238129 -0.0008714651972646 0.0000431789113484 -0.0008760382242208 0.0003264530718415 -0.0008760402242261 0.0013292212976841 -0.0008885188981006 1.7659588249294422 -0.0008990553276784 0.7268724592881587 -0.0009064219584191 0.0010798004130133 -0.0009064340029866 -0.0001100000000021 -0.0009064340029866 -0.0001200000000021 -0.0009064460493775 0.0000434012919648 -0.0009150895281176 0.0000424485136038 -0.0009247970253307 0.0000421285625990 -0.0009299519072213 0.0000427895712958 -0.0009462628784003 0.0000416605573055 -0.0009643799193671 0.0000413369470169 -0.0009760375185562 0.0003219586793926 -0.0009760395185604 0.0013221281323435 -0.0009885153566507 1.7601171135857077 -0.0010061459348660 0.0040097627583781 -0.0010061875678700 -0.0001099999999950 -0.0010061875678700 -0.0001199999999950 -0.0010061998924290 0.0000417683316962 -0.0010138847581951 0.0000410607267270 -0.0010249507744833 0.0000405274829045 -0.0010302074893493 0.0000412299882529 -0.0010458485813997 0.0000401312155065 -0.0010638957738614 0.0000399183546329 -0.0010760368840341 0.0003190462056058 -0.0010760388840385 0.0013192190299568 -0.0010885153125369 1.7513776301921078 -0.0011059354117352 0.0041045482849630 -0.0011059777108402 -0.0001100000000083 -0.0011059777108402 -0.0001200000000083 -0.0011059901448600 0.0000403938982026 -0.0011140223887939 0.0000397181207153 -0.0011250080278080 0.0000392672524152 -0.0011303267445203 0.0000400011881976 -0.0011455029890109 0.0000389249311247 -0.0011635520728354 0.0000391830167017 -0.0011745123262843 0.0000385391542090 -0.0011760100200444 0.0003171533023165 -0.0011760120200498 0.0013182647409458 -0.0011857003423927 1.3529637380514090 -0.0011885235645576 1.7469181515674426 -0.0012057957875442 0.0023058435342423 -0.0012058198138716 -0.0001100000000027 -0.0012058198138716 -0.0001200000000027 -0.0012058322645655 0.0000389470861834 -0.0012144828720128 0.0000383969115834 -0.0012320241298798 0.0000387891752102 -0.0012509016010027 0.0000378006560877 -0.0012636896329975 0.0000382560399573 -0.0012664118164027 0.0000375126585115 -0.0012760175749248 0.0003139756781937 -0.0012760195749299 0.0013143100996928 -0.0012885181163678 1.7405857181508553 -0.0013056173115505 0.0056454842015722 -0.0013056742914412 -0.0001100000000052 -0.0013056742914412 -0.0001200000000052 -0.0013056869055060 0.0000378013502120 -0.0013247023345220 0.0000379599738543 -0.0013371753954570 0.0000387006626508 -0.0013430042352110 0.0000377138791206 -0.0013737200156212 0.0000375891463431 -0.0013760387062420 0.0003156387163977 -0.0013760407062473 0.0013161520695886 -0.0013885180444941 1.7390422070162213 -0.0014056170146492 0.0052369216195175 -0.0014056699596662 -0.0001099999999892 -0.0014056699596662 -0.0001199999999892 -0.0014056825487240 0.0000378806235579 -0.0014255255151794 0.0000381002662560 -0.0014736548598748 0.0000377933781678 -0.0014760387857556 0.0003155750689316 -0.0014760407857614 0.0033254243890252 -0.0014842709068561 1.1468489119241061 -0.0014885206425032 1.7393380225632562 -0.0015056333151687 0.0049362801902478 -0.0015056833011661 -0.0001099999999985 -0.0015056833011661 -0.0001199999999985 -0.0015056958759231 0.0000379678092896 -0.0015250041021810 0.0000381383103079 -0.0015379345345977 0.0000387071808837 -0.0015429754389678 0.0000378716662598 -0.0015738131913595 0.0000377308761745 -0.0015760387267560 0.0003159280018552 -0.0015760407267615 0.0013164289951918 -0.0015885179679855 1.7399638648099696 -0.0016056377730579 0.0052852363868058 -0.0016056912356205 -0.0001099999999984 -0.0016056912356205 -0.0001199999999984 -0.0016057038143130 0.0000380262326693 -0.0016254726763653 0.0000382292270993 -0.0016749573014213 0.0000378986863522 -0.0016760387790697 0.0003157895999860 -0.0016760407790757 0.0033220665832124 -0.0016837138510438 1.0698911091172179 -0.0016885193307933 1.7404028302928729 -0.0017056553256177 0.0049907390047958 -0.0017057058889572 -0.0001099999999975 -0.0017057058889572 -0.0001199999999975 -0.0017057184517320 0.0000381201766706 -0.0017251845454545 0.0000382915517209 -0.0017385801825216 0.0000387150831670 -0.0017429566370918 0.0000380107653305 -0.0017738731252548 0.0000378562897041 -0.0017760387351280 0.0003161818092421 -0.0017760407351336 0.0013166761352839 -0.0017885179152363 1.7407645776044709 -0.0018056559738654 0.0053108671951373 -0.0018057097239571 -0.0001100000000036 -0.0018057097239571 -0.0001200000000036 -0.0018057222932352 0.0000381514106565 -0.0018254258084444 0.0000383399410672 -0.0018760383227837 0.0003166757315542 -0.0018760403227898 0.0033215765605877 -0.0018834851385718 1.0385018951516791 -0.0018885179790111 1.7410562977835098 -0.0019056604908769 0.0052802018277231 -0.0019057139482280 -0.0001099999999936 -0.0019057139482280 -0.0001199999999936 -0.0019057265179897 0.0000381842842215 -0.0019247312810727 0.0000383172930483 -0.0019373011378792 0.0000390224560322 -0.0019429725094819 0.0000380519344810 -0.0019738670519925 0.0000378953341052 -0.0019760387313277 0.0003162588003831 -0.0019760407313335 0.0013167553663423 -0.0019885179168253 1.7409988107003418 -0.0020056614056939 0.0053042164798281 -0.0020057150988554 -0.0001100000000209 -0.0020057150988554 -0.0001200000000209 -0.0020057276649967 0.0000381862298930 -0.0020254242429797 0.0000383715200464 -0.0020760380768554 0.0003167251550486 -0.0020760400768617 0.0033211951986244 -0.0020834186008720 1.0293675379423286 -0.0020885178551391 1.7412710887700493 -0.0021056647118145 0.0052801706425295 -0.0021057181754433 -0.0001099999999941 -0.0021057181754433 -0.0001199999999941 -0.0021057307430212 0.0000382096655137 -0.0021247380893633 0.0000383408621402 -0.0021373138660406 0.0000390426408392 -0.0021429717131431 0.0000380743073712 -0.0021738737391369 0.0000379156526693 -0.0021760387323782 0.0003162997143163 -0.0021760407323841 0.0013167957812244 -0.0021885179101606 1.7411266768661071 -0.0022056643279263 0.0053066141613826 -0.0022057180501325 -0.0001099999999804 -0.0022057180501325 -0.0001199999999804 -0.0022057306147262 0.0000382060328232 -0.0022254177248898 0.0000383890831632 -0.0022760376341534 0.0003167506395717 -0.0022760396341598 0.0033210778305528 -0.0022833913219014 1.0256871539266601 -0.0022885178188016 1.7414335294546917 -0.0023056675136373 0.0052767016963491 -0.0023057209463012 -0.0001100000000109 -0.0023057209463012 -0.0001200000000109 -0.0023057335126067 0.0000382231819554 -0.0023247391420126 0.0000383530357777 -0.0023373143449557 0.0000390544441718 -0.0023429718152524 0.0000380860062328 -0.0023738767219693 0.0000379262874361 -0.0023760387331956 0.0003163211045731 -0.0023760407332017 0.0013168168888820 -0.0023885179069618 1.7411932147878491 -0.0024056658510188 0.0053076304378440 -0.0024057195860324 -0.0001099999999882 -0.0024057195860324 -0.0001199999999882 -0.0024057321498133 0.0000382163214283 -0.0024254145149916 0.0000383982105183 -0.0024760374234950 0.0003167640623600 -0.0024760394235017 0.0033210171503443 -0.0024833763498223 1.0236609438756026 -0.0024885177990859 1.7415155710952226 -0.0025056689471104 0.0052749329253885 -0.0025057223640187 -0.0001099999999868 -0.0025057223640187 -0.0001199999999868 -0.0025057349296611 0.0000382302274424 -0.0025247399284526 0.0000383593957972 -0.0025373153599921 0.0000390604648456 -0.0025429722209804 0.0000380921394548 -0.0025738781082757 0.0000379318480983 -0.0025760387340312 0.0003163322922895 -0.0025760407340375 0.0013168279882259 -0.0025885179053171 1.7412278194404234 -0.0026056666439060 0.0053081367382279 -0.0026057203853580 -0.0001100000000203 -0.0026057203853580 -0.0001200000000203 -0.0026057329487144 0.0000382216829865 -0.0026254128562835 0.0000384029574029 -0.0026760373246936 0.0003167711619424 -0.0026760393247004 0.0033209844671058 -0.0026833680008821 1.0225273759721654 -0.0026885177881354 1.7415569637287545 -0.0027056696815656 0.0052739631233510 -0.0027057230897843 -0.0001099999999934 -0.0027057230897843 -0.0001199999999934 -0.0027057356550776 0.0000382339140308 -0.0027247404502674 0.0000383627247193 -0.0027373163629561 0.0000390635368219 -0.0027429728137266 0.0000380953783457 -0.0027738786299400 0.0000379347704668 -0.0027760387348894 0.0003163381750499 -0.0027760407348958 0.0013168338571377 -0.0027885179045022 1.7412457961867494 -0.0028056670566487 0.0053083632996148 -0.0028057208010809 -0.0001100000000050 -0.0028057208010809 -0.0001200000000050 -0.0028057333642143 0.0000382244775546 -0.0028254120254359 0.0000384054227690 -0.0028760372858730 0.0003167749826628 -0.0028760392858800 0.0033209644677342 -0.0028833629481470 1.0218371657980068 -0.0028885177814645 1.7415769883640151 -0.0029056700491371 0.0052734388314362 -0.0029057234526383 -0.0001100000000029 -0.0029057234526383 -0.0001200000000029 -0.0029057360177472 0.0000382358501759 -0.0029247408140331 0.0000383644725806 -0.0029373173299065 0.0000390650788263 -0.0029429735272759 0.0000380971102518 -0.0029738786939060 0.0000379363187189 -0.0029760387357869 0.0003163412941924 -0.0029760407357935 0.0013168370851177 -0.0029885179041196 1.7412551027750245 -0.0030056672711885 0.0053084451252407 -0.0030057210168084 -0.0001099999999859 -0.0030057210168084 -0.0001199999999859 -0.0030057335798240 0.0000382259345567 -0.0030254116264954 0.0000384066986711 -0.0030760372789545 0.0003167771014501 -0.0030760392789617 0.0033209522064527 -0.0030833596024158 1.0213764244856334 -0.0030885177769929 1.7415857766728857 -0.0031056702251841 0.0052730887210439 -0.0031057236254614 -0.0001099999999881 -0.0031057236254614 -0.0001199999999881 -0.0031057361904700 0.0000382368751509 -0.0031247410887061 0.0000383653964972 -0.0031373182777479 0.0000390658252249 -0.0031429743283636 0.0000380980591649 -0.0031738784966008 0.0000379371520228 -0.0031760387367267 0.0003163429774505 -0.0031760407367335 0.0013168387996912 -0.0031885179039719 1.7412598797433376 -0.0032056673822647 0.0053084433682861 -0.0032057211280566 -0.0001100000000007 -0.0032057211280566 -0.0001200000000007 -0.0032057336910088 0.0000382266925388 -0.0032254114612852 0.0000384073527861 -0.0032760372898769 0.0003167783393921 -0.0032760392898843 0.0033209425979715 -0.0032833570150463 1.0210168293792949 -0.0032885177734761 1.7415885916733866 -0.0033056702988259 0.0052729238630288 -0.0033057236975962 -0.0001100000000203 -0.0033057236975962 -0.0001200000000203 -0.0033057362625512 0.0000382374240590 -0.0033247413275698 0.0000383658903475 -0.0033373192556192 0.0000390661492292 -0.0033429752008626 0.0000380986012515 -0.0033738781538616 0.0000379376129100 -0.0033760387377204 0.0003163439119385 -0.0033760407377275 0.0013168398378601 -0.0033885179039463 1.7412622852673914 -0.0034056674392094 0.0053083984488251 -0.0034057211846471 -0.0001100000000060 -0.0034057211846471 -0.0001200000000060 -0.0034057337475646 0.0000382270856383 -0.0034254114173504 0.0000384076814940 -0.0034760373108122 0.0003167791258081 -0.0034760393108199 0.0033209349759083 -0.0034833548223621 1.0207097713507232 -0.0034885177704579 1.7415881825715676 -0.0035056703185018 0.0052728166063595 -0.0035057237162727 -0.0001099999999809 -0.0035057237162727 -0.0001199999999809 -0.0035057362811973 0.0000382377259424 -0.0035247415494189 0.0000383661606025 -0.0035373202705817 0.0000390662508057 -0.0035429761389925 0.0000380989342457 -0.0035738777203825 0.0000379378813430 -0.0035760387387748 0.0003163444585416 -0.0035760407387821 0.0013168404209614 -0.0035885179039866 1.7412634494535117 -0.0036056674678765 0.0053083284612870 -0.0036057212126601 -0.0001099999999832 -0.0036057212126601 -0.0001199999999832 -0.0036057337755575 0.0000382272884680 -0.0036254114388278 0.0000384078397986 -0.0036760373379207 0.0003167796854580 -0.0036760393379285 0.0033209275160492 -0.0036833527742014 1.0204214452797782 -0.0036885177676149 1.7415859542376959 -0.0037056703100621 0.0052726209822801 -0.0037057237059214 -0.0001100000000194 -0.0037057237059214 -0.0001200000000194 -0.0037057362708235 0.0000382378999699 -0.0037247417717395 0.0000383663151253 -0.0037373213447226 0.0000390662305125 -0.0037429771425377 0.0000380991613743 -0.0037738772181401 0.0000379380509543 -0.0037760387398930 0.0003163448077553 -0.0037760407399005 0.0013168408826373 -0.0037885179040694 1.7412639560984808 -0.0038056674816527 0.0053082395332185 -0.0038057212255664 -0.0001100000000181 -0.0038057212255664 -0.0001200000000181 -0.0038057337884513 0.0000382273909227 -0.0038254115000766 0.0000384079076267 -0.0038760373694712 0.0003167801372522 -0.0038760393694793 0.0033209186022691 -0.0038833507492204 1.0201354499188324 -0.0038885177647927 1.7415826762467064 -0.0039056702825696 0.0052726592240147 -0.0039057236788237 -0.0001100000000142 -0.0039057236788237 -0.0001200000000142 -0.0039057362437165 0.0000382380083116 -0.0039247419991591 0.0000383664102031 -0.0039373224836558 0.0000390661423618 -0.0039429782143286 0.0000380993369450 -0.0039738766638525 0.0000379381711109 -0.0039760387410851 0.0003163450570479 -0.0039760407410929 0.0013168411857305 -0.0039885179041756 1.7412641147847117 -0.0040056674876105 0.0053081387993149 -0.0040057212305226 -0.0001099999999754 -0.0040057212305226 -0.0001199999999754 -0.0040057337933987 0.0000382274413024 -0.0040254115833633 0.0000384079275500 -0.0040760374047366 0.0003167805424205 -0.0040760394047450 0.0033209128145301 -0.0040833486434976 1.0198375538522051 -0.0040885177622084 1.7415786959799833 -0.0041056702461993 0.0052726274457822 -0.0041057236421427 -0.0001100000000107 -0.0041057236421427 -0.0001200000000107 -0.0041057362070268 0.0000382380832707 -0.0041247422428538 0.0000383664749834 -0.0041373237082688 0.0000390660105968 -0.0041429793593721 0.0000380994891010 -0.0041738760616929 0.0000379382670680 -0.0041760387426611 0.0003163452596075 -0.0041760407426692 0.0013168415053664 -0.0041885179046530 1.7412640875766801 -0.0042056674897371 0.0053080279131999 -0.0042057212315381 -0.0001100000000222 -0.0042057212315381 -0.0001200000000222 -0.0042057337944075 0.0000382274636746 -0.0042254116805543 0.0000384079205885 -0.0042760374427020 0.0003167809353976 -0.0042760394427107 0.0033209047122674 -0.0042833464661071 1.0195292275749457 -0.0042885177591733 1.7415741697230485 -0.0043056702030893 0.0052725443547438 -0.0043057235982068 -0.0001100000000127 -0.0043057235982068 -0.0001200000000127 -0.0043057361630817 0.0000382381423781 -0.0043247425034782 0.0000383665254475 -0.0043373250245981 0.0000390658499233 -0.0043429805839700 0.0000380996337635 -0.0043738754110432 0.0000379383530846 -0.0043760387440229 0.0003163454415949 -0.0043760407440313 0.0013168418262553 -0.0043885179047906 1.7412639457900765 -0.0044056674891571 0.0053079072987065 -0.0044057212297456 -0.0001100000000047 -0.0044057212297456 -0.0001200000000047 -0.0044057337926089 0.0000382274714256 -0.0044254117907025 0.0000384078988982 -0.0044760374838053 0.0003167813352837 -0.0044760394838143 0.0033208959734092 -0.0044833441497729 1.0192010833292393 -0.0044885177559501 1.7415691839837482 -0.0045056701545105 0.0052724671314622 -0.0045057235488577 -0.0001100000000189 -0.0045057235488577 -0.0001200000000189 -0.0045057361137240 0.0000382381949986 -0.0045247427867396 0.0000383665701697 -0.0045373264487635 0.0000390656657390 -0.0045429818963059 0.0000380997796939 -0.0045738747091897 0.0000379384367328 -0.0045760387454837 0.0003163456196968 -0.0045760407454924 0.0013168420784152 -0.0045885179049409 1.7412637389652090 -0.0046056674872845 0.0053077765403582 -0.0046057212265563 -0.0001100000000435 -0.0046057212265563 -0.0001200000000435 -0.0046057337894138 0.0000382274712692 -0.0046254119110991 0.0000384078680057 -0.0046760375281292 0.0003167817540398 -0.0046760395281385 0.0033208867358481 -0.0046833416644452 1.0188489446227800 -0.0046885177524998 1.7415637590915944 -0.0047056701015267 0.0052723550388067 -0.0047057234947552 -0.0001099999999894 -0.0047057234947552 -0.0001199999999894 -0.0047057360596118 0.0000382382458452 -0.0047247430974192 0.0000383666134689 -0.0047373279978690 0.0000390654591271 -0.0047429833057043 0.0000380999316533 -0.0047738739512556 0.0000379385218874 -0.0047760387470541 0.0003163458020657 -0.0047760407470632 0.0013168424278195 -0.0047885179051053 1.7412634855003362 -0.0048056674845667 0.0053076346915022 -0.0048057212224090 -0.0001100000000299 -0.0048057212224090 -0.0001200000000299 -0.0048057337852606 0.0000382274662919 -0.0048254120419089 0.0000384078304029 -0.0048760375759477 0.0003167821984888 -0.0048760395759575 0.0033208771202593 -0.0048833390053334 1.0184721150758165 -0.0048885177488194 1.7415579048206369 -0.0049056700426318 0.0052723611773232 -0.0049057234359156 -0.0001100000000197 -0.0049057234359156 -0.0001200000000197 -0.0049057360007661 0.0000382382978829 -0.0049247434357897 0.0000383666579404 -0.0049373296799032 0.0000390652316504 -0.0049429848233461 0.0000381000931501 -0.0049738731342798 0.0000379386113688 -0.0049760387487491 0.0003163459938142 -0.0049760407487586 0.0013168427744911 -0.0049885179052812 1.7412631980318238 -0.0050056674813050 0.0053074824878801 -0.0050057212176128 -0.0001099999999941 -0.0050057212176128 -0.0001199999999941 -0.0050057337804583 0.0000382274589568 -0.0050254121814864 0.0000384077878533 -0.0050760376275104 0.0003167826748394 -0.0050760396275205 0.0033208680664851 -0.0050833361518849 1.0180677057564471 -0.0050885177448832 1.7415515457021598 -0.0051056699806308 0.0052722011062465 -0.0051057233723172 -0.0001100000000416 -0.0051057233723172 -0.0001200000000416 -0.0051057359371556 0.0000382383530594 -0.0051247438091929 0.0000383667053558 -0.0051373315196925 0.0000390649804286 -0.0051429864620528 0.0000381002666711 -0.0051738722441724 0.0000379387066475 -0.0051760387505793 0.0003163461980865 -0.0051760407505892 0.0013168431345390 -0.0051885179054762 1.7412628748705927 -0.0052056674775183 0.0053073143917647 -0.0052057212121313 -0.0001099999999718 -0.0052057212121313 -0.0001199999999718 -0.0052057337749702 0.0000382274487667 -0.0052254123350481 0.0000384077398306 -0.0052760376835031 0.0003167831892597 -0.0052760396835137 0.0033208581690468 -0.0052833330797850 1.0176322356110346 -0.0052885177406605 1.7415446453716332 -0.0053056699121211 0.0052721298794669 -0.0053057233030923 -0.0001099999999764 -0.0053057233030923 -0.0001199999999764 -0.0053057358679211 0.0000382384121669 -0.0053247442195031 0.0000383667565642 -0.0053373335337926 0.0000390647036980 -0.0053429882369988 0.0000381004542967 -0.0053738712782304 0.0000379388091479 -0.0053760387525670 0.0003163464182790 -0.0053760407525772 0.0013168434763177 -0.0053885179056864 1.7412625186914699 -0.0054056674732781 0.0053071324196884 -0.0054057212060560 -0.0001099999999732 -0.0054057212060560 -0.0001199999999732 -0.0054057337688878 0.0000382274370417 -0.0054254124997404 0.0000384076868422 -0.0054760377442564 0.0003167837481661 -0.0054760397442674 0.0033208456191686 -0.0054833297477326 1.0171599125123834 -0.0054885177360982 1.7415371597504161 -0.0055056698376961 0.0052720663493083 -0.0055057232280279 -0.0001099999999801 -0.0055057232280279 -0.0001199999999801 -0.0055057357928466 0.0000382384764916 -0.0055247446755443 0.0000383668128249 -0.0055373357535884 0.0000390643969852 -0.0055429901656086 0.0000381006584484 -0.0055738702263914 0.0000379389202135 -0.0055760387547319 0.0003163466569023 -0.0055760407547427 0.0013168439186432 -0.0055885179059146 1.7412621277476776 -0.0056056674685866 0.0053069347385109 -0.0056057211993710 -0.0001100000000233 -0.0056057211993710 -0.0001200000000233 -0.0056057337621951 0.0000382274239992 -0.0056254126769476 0.0000384076285683 -0.0056760378104089 0.0003167843537115 -0.0056760398104204 0.0033208329295419 -0.0056833261010839 1.0166430418841443 -0.0056885177311264 1.7415290111172750 -0.0057056697570403 0.0052719723891267 -0.0057057231464295 -0.0001100000000018 -0.0057057231464295 -0.0001200000000018 -0.0057057357112362 0.0000382385467991 -0.0057247451875723 0.0000383668751198 -0.0057373382199420 0.0000390640536553 -0.0057429922686058 0.0000381008813632 -0.0057738690705179 0.0000379390407283 -0.0057760387570962 0.0003163469149332 -0.0057760407571075 0.0013168443592531 -0.0057885179061675 1.7412616920693027 -0.0058056674632856 0.0053067155855378 -0.0058057211918598 -0.0001100000000067 -0.0058057211918598 -0.0001200000000067 -0.0058057337546756 0.0000382274081936 -0.0058254128716454 0.0000384075633359 -0.0058760378828923 0.0003167850177382 -0.0058760398829044 0.0033208204190467 -0.0058833221628592 1.0160846952706308 -0.0058885177257835 1.7415200465080607 -0.0059056696693208 0.0052717972033099 -0.0059057230569592 -0.0001100000000044 -0.0059057230569592 -0.0001200000000044 -0.0059057356217503 0.0000382386241906 -0.0059247457575403 0.0000383669441503 -0.0059373409555983 0.0000390636711490 -0.0059429945712385 0.0000381011258454 -0.0059738677985562 0.0000379391722190 -0.0059760387596907 0.0003163471983463 -0.0059760407597026 0.0013168448669055 -0.0059885179064463 1.7412612076698155 -0.0060056674573322 0.0053064737268468 -0.0060057211834672 -0.0001100000000105 -0.0060057211834672 -0.0001200000000105 -0.0060057337462738 0.0000382273899069 -0.0060254130841655 0.0000384074905519 -0.0060760379625488 0.0003167857453531 -0.0060760399625615 0.0033208058093416 -0.0060833178272774 1.0154700309068130 -0.0060885177199315 1.7415102141745291 -0.0061056695722204 0.0052716874611320 -0.0061057229587574 -0.0001099999999845 -0.0061057229587574 -0.0001199999999845 -0.0061057355235340 0.0000382387095508 -0.0061247464023930 0.0000383670213498 -0.0061373440260901 0.0000390632384205 -0.0061429971028768 0.0000381013949639 -0.0061738663901167 0.0000379393158644 -0.0061760387625496 0.0003163475077041 -0.0061760407625621 0.0013168454261094 -0.0061885179067565 1.7412606627173153 -0.0062056674505354 0.0053062042863257 -0.0062057211739528 -0.0001099999999780 -0.0062057211739528 -0.0001199999999780 -0.0062057337367494 0.0000382273679404 -0.0062254133182152 0.0000384074083426 -0.0062760380505581 0.0003167865473724 -0.0062760400505715 0.0033207897884034 -0.0062833130576709 1.0147937776318510 -0.0062885177135308 1.7414993302320407 -0.0063056694655148 0.0052715117354677 -0.0063057228502934 -0.0001099999999832 -0.0063057228502934 -0.0001199999999832 -0.0063057354150519 0.0000382388039903 -0.0063247471349789 0.0000383671078430 -0.0063373474924182 0.0000390627455922 -0.0063429998994735 0.0000381016922125 -0.0063738648254313 0.0000379394730800 -0.0063760387644295 0.0003157569595064 -0.0063760407610517 0.0013160396713541 -0.0063885154916021 1.7419066633579618 -0.0064056886704131 0.0052712682564492 -0.0064057421920683 -0.0001100000000303 -0.0064057421920683 -0.0001200000000303 -0.0064057547651052 0.0000386453354422 -0.0064202099473694 0.0000384793525012 -0.0064320394230581 0.0000394629789518 -0.0064506436119736 0.0000384120054790 -0.0064638355537939 0.0000388457463142 -0.0064665833063399 0.0000380957034650 -0.0064760184019320 0.0003151803533129 -0.0064760204019454 0.0013155157280356 -0.0064885179239379 1.7440944700326872 -0.0065056993568502 0.0056320015657245 -0.0065057563592377 -0.0001100000000429 -0.0065057563592377 -0.0001200000000429 -0.0065057689279558 0.0000383584130579 -0.0065244080377088 0.0000384478698302 -0.0065367113459655 0.0000394401567896 -0.0065444058360949 0.0000382325648994 -0.0065690193731895 0.0000381585355464 -0.0065760386962706 0.0003163136479496 -0.0065760406962851 0.0033665525620902 -0.0065845757769593 1.1910095749665761 -0.0065885209510148 1.7417514236081300 -0.0066056876219794 0.0050595539576440 -0.0066057389238799 -0.0001100000000088 -0.0066057389238799 -0.0001200000000088 -0.0066057514717959 0.0000383379624651 -0.0066249909933536 0.0000384748617192 -0.0066378774091652 0.0000390495510866 -0.0066429941294914 0.0000381979607299 -0.0066738807989382 0.0000380270142472 -0.0066760387539388 0.0003159329988679 -0.0066760407539539 0.0033168872257936 -0.0066813555581679 0.7420783022955142 -0.0066885182721215 1.7419162862490727 -0.0067056839680308 0.0047842746263677 -0.0067057325145754 -0.0001100000000069 -0.0067057325145754 -0.0001200000000069 -0.0067057450598703 0.0000382611922356 -0.0067251081671312 0.0000384241964345 -0.0067382975692091 0.0000389103416409 -0.0067430001502480 0.0000381479348867 -0.0067738351824360 0.0000379819748093 -0.0067760387529796 0.0003164301427867 -0.0067760407529946 0.0013169349778597 -0.0067885179260599 1.7415025480574451 -0.0068056731731499 0.0052855710893541 -0.0068057267003722 -0.0001099999999954 -0.0068057267003722 -0.0001199999999954 -0.0068057392595314 0.0000382618310588 -0.0068254237003344 0.0000384392079705 -0.0068760387257005 0.0003168439718245 -0.0068760407257165 0.0033204303955759 -0.0068831973652860 0.9986916315090004 -0.0068885175720986 1.7416078537964470 -0.0069056727930408 0.0052569019260410 -0.0069057260388650 -0.0001100000000265 -0.0069057260388650 -0.0001200000000265 -0.0069057386009531 0.0000382635836686 -0.0069247644520077 0.0000383908425049 -0.0069373931305926 0.0000390764273632 -0.0069430081986224 0.0000381245503470 -0.0069738664639937 0.0000379597345178 -0.0069760387589181 0.0003157986832118 -0.0069760407589347 0.0033167573763316 -0.0069813573739735 0.7421533321890011 -0.0069885182546758 1.7415057524800610 -0.0070056743805729 0.0047965329695616 -0.0070057230341677 -0.0001099999999649 -0.0070057230341677 -0.0001199999999649 -0.0070057355849391 0.0000381995549367 -0.0070251206326413 0.0000383687267253 -0.0070383657809391 0.0000388420587737 -0.0070430066142570 0.0000380946867345 -0.0070738170547184 0.0000379331285107 -0.0070760387599331 0.0003163320289754 -0.0070760407599496 0.0013168385672897 -0.0070885179409595 1.7411919961988029 -0.0071056660835026 0.0052800618454426 -0.0071057195433585 -0.0001099999999869 -0.0071057195433585 -0.0001199999999869 -0.0071057321062579 0.0000382141470395 -0.0071254374636314 0.0000383965337998 -0.0071755699213367 0.0000380293270637 -0.0071760387646385 0.0003160570783337 -0.0071760407646561 0.0033198551493021 -0.0071832758798093 1.0094729460421097 -0.0071885176615337 1.7413365229410966 -0.0072056669706190 0.0052705939915665 -0.0072057203434743 -0.0001099999999661 -0.0072057203434743 -0.0001199999999661 -0.0072057329089469 0.0000382290833485 -0.0072247594934922 0.0000383588762676 -0.0072374010552609 0.0000390434752016 -0.0072430177747975 0.0000380938388216 -0.0072738471580482 0.0000379312974517 -0.0072760387594400 0.0003157411337737 -0.0072760407594584 0.0033166989330313 -0.0072813561493313 0.7419064659899778 -0.0072885182455898 1.7413298232719041 -0.0073056702509066 0.0048032373753695 -0.0073057189647449 -0.0001100000000398 -0.0073057189647449 -0.0001200000000398 -0.0073057315179031 0.0000381732451551 -0.0073251258296247 0.0000383448982582 -0.0073384012191600 0.0000388117485355 -0.0073430133449629 0.0000380722222123 -0.0073738060273085 0.0000379123231035 -0.0073760387602410 0.0003156996058745 -0.0073760407602601 0.0033166473327208 -0.0073813412824225 0.7397834016167978 -0.0073885182392323 1.7412093583878270 -0.0074056673869666 0.0048060969776580 -0.0074057161247171 -0.0001100000000408 -0.0074057161247171 -0.0001200000000408 -0.0074057286795248 0.0000381545275505 -0.0074251269646823 0.0000383278041519 -0.0074384132126142 0.0000387927564460 -0.0074430163630944 0.0000380560162919 -0.0074737994668354 0.0000378974283701 -0.0074760387607538 0.0003156697260464 -0.0074760407607737 0.0033166176778949 -0.0074813416488004 0.7397948039188815 -0.0074885182347949 1.7411176908347641 -0.0075056652424501 0.0048093825716723 -0.0075057140095284 -0.0001099999999585 -0.0075057140095284 -0.0001199999999585 -0.0075057265655719 0.0000381408350316 -0.0075251297940841 0.0000383154376299 -0.0075384318632042 0.0000387769249604 -0.0075430191443884 0.0000380442846235 -0.0075737942163284 0.0000378865901564 -0.0075760387607731 0.0003156480660750 -0.0075760407607938 0.0033165966215558 -0.0075813426399647 0.7399038876169960 -0.0075885182312524 1.7410507038140124 -0.0076056636737874 0.0048122240015839 -0.0076057124666748 -0.0001100000000427 -0.0076057124666748 -0.0001200000000427 -0.0076057250236286 0.0000381309048669 -0.0076251320255995 0.0000383064514947 -0.0076384477063954 0.0000387650042881 -0.0076430220263410 0.0000380358438193 -0.0076737896684994 0.0000378787437664 -0.0076760387603941 0.0003156324510267 -0.0076760407604157 0.0033165814236369 -0.0076813440813752 0.7400835102445842 -0.0076885182283333 1.7410018509525975 -0.0077056625282284 0.0048147428701933 -0.0077057113443778 -0.0001099999999814 -0.0077057113443778 -0.0001199999999814 -0.0077057239020023 0.0000381237440982 -0.0077251338218030 0.0000382999507725 -0.0077384616002662 0.0000387559408219 -0.0077430250606482 0.0000380298310992 -0.0077737855686522 0.0000378731004008 -0.0077760387596842 0.0003156212968185 -0.0077760407597067 0.0033165707855758 -0.0077813459216381 0.7403244328542589 -0.0077885182258400 1.7409663237762154 -0.0078056616930184 0.0048170919004630 -0.0078057105312263 -0.0001100000000029 -0.0078057105312263 -0.0001200000000029 -0.0078057230893469 0.0000381186254741 -0.0078251353132126 0.0000382952805530 -0.0078384742639231 0.0000387489452183 -0.0078430282944884 0.0000380256157788 -0.0078737817176741 0.0000378690825675 -0.0078760387586863 0.0003156134405455 -0.0078760407587098 0.0033165635912079 -0.0078813481325503 0.7406212029437366 -0.0078885182236228 1.7409405906917106 -0.0079056610858035 0.0048193571987769 -0.0079057099455944 -0.0001100000000073 -0.0079057099455944 -0.0001200000000073 -0.0079057225040832 0.0000381150169219 -0.0079251365974342 0.0000382919613173 -0.0079384862718948 0.0000387434306555 -0.0079430317749454 0.0000380227374729 -0.0079737779570734 0.0000378662678263 -0.0079760387574246 0.0003156080320332 -0.0079760407574494 0.0033165590128275 -0.0079813507060392 0.7409715789876731 -0.0079885182215660 1.7409220687025568 -0.0080056606458651 0.0048216421726577 -0.0080057095276970 -0.0001100000000136 -0.0080057095276970 -0.0001200000000136 -0.0080057220864618 0.0000381125298204 -0.0080251377477424 0.0000382896423558 -0.0080384980948688 0.0000387389587774 -0.0080430355519960 0.0000380208612022 -0.0080737741535223 0.0000378643476344 -0.0080760387559079 0.0003156044547984 -0.0080760407559339 0.0033165561940536 -0.0080813536495811 0.7413757835631997 -0.0080885182195776 1.7409088565711861 -0.0081056603290611 0.0048239912595232 -0.0081057092337651 -0.0001099999999935 -0.0081057092337651 -0.0001199999999935 -0.0081057217927381 0.0000381108809431 -0.0081251388209590 0.0000382880674790 -0.0081385101382801 0.0000387351981348 -0.0081430396805088 0.0000380197443846 -0.0081737701901507 0.0000378630972092 -0.0081760387541311 0.0003156022586707 -0.0081760407541585 0.0033165547643844 -0.0081813569878953 0.7418366592312493 -0.0081885182175810 1.7408995521685267 -0.0082056601034023 0.0048264064937677 -0.0082057090317798 -0.0001099999999869 -0.0082057090317798 -0.0001199999999869 -0.0082057215909103 0.0000381098647913 -0.0082251398623278 0.0000382870500507 -0.0082385227725516 0.0000387318936262 -0.0082430442248194 0.0000380192126815 -0.0082737659471044 0.0000378623531586 -0.0082760387520761 0.0003156011191072 -0.0082760407521051 0.0033165545843014 -0.0082813607572770 0.7423588196313934 -0.0082885182155092 1.7408931539070267 -0.0083056599437637 0.0048290579202770 -0.0083057088982681 -0.0001100000000872 -0.0083057088982681 -0.0001200000000872 -0.0083057214575234 0.0000381093328425 -0.0083251409068109 0.0000382864541267 -0.0083385363488852 0.0000387288450901 -0.0083430492570990 0.0000380191432768 -0.0083737613232783 0.0000378619981500 -0.0083760387497119 0.0003156008073860 -0.0083760407497426 0.0033165552117358 -0.0083813650207469 0.7429507200197246 -0.0083885182132989 1.7408889010151776 -0.0084056598333355 0.0048319303769013 -0.0084057088162431 -0.0001100000000854 -0.0084057088162431 -0.0001200000000854 -0.0084057213755983 0.0000381091804210 -0.0084251419872248 0.0000382861827050 -0.0084385512512997 0.0000387258851215 -0.0084430548680169 0.0000380194522121 -0.0084737561884891 0.0000378619488403 -0.0084760387469919 0.0003156011646843 -0.0084760407470247 0.0033165566843918 -0.0084813698538515 0.7436226450020709 -0.0084885182108860 1.7408862573486024 -0.0085056597583612 0.0048351622698894 -0.0085057087733036 -0.0001100000000337 -0.0085057087733036 -0.0001200000000337 -0.0085057213327443 0.0000381093345554 -0.0085251431311999 0.0000382861662813 -0.0085385678984845 0.0000387228682566 -0.0085430611683460 0.0000380200853055 -0.0085737503966633 0.0000378621471211 -0.0085760387438512 0.0003156020806953 -0.0085760407438863 0.0033165587698140 -0.0085813753597041 0.7443887806109755 -0.0085885182081993 1.7408848038288944 -0.0086056597097348 0.0048387663513333 -0.0086057087604561 -0.0001099999999713 -0.0086057087604561 -0.0001199999999713 -0.0086057213199723 0.0000381097468833 -0.0086251443673997 0.0000382863563214 -0.0086385868034352 0.0000387196527592 -0.0086430682966013 0.0000380210123545 -0.0086737437680787 0.0000378625540694 -0.0086760387402008 0.0003156034941104 -0.0086760407402385 0.0033165616114832 -0.0086813816742821 0.7452679341880081 -0.0086885182051558 1.7408842478503912 -0.0087056596793742 0.0048429016380465 -0.0087057087711878 -0.0001099999999515 -0.0087057087711878 -0.0001199999999515 -0.0087057213307767 0.0000381103885673 -0.0087251457237875 0.0000382867200433 -0.0087386086049766 0.0000387160902432 -0.0087430764293912 0.0000380222237650 -0.0087737360755031 0.0000378631458664 -0.0087760387359186 0.0003156053719670 -0.0087760407359593 0.0033165651133851 -0.0087813889806349 0.7462855002673792 -0.0087885182016518 1.7408843470447268 -0.0088056596618485 0.0048476432255657 -0.0088057088008064 -0.0001100000000298 -0.0088057088008064 -0.0001200000000298 -0.0088057213604686 0.0000381112472045 -0.0088251472329329 0.0000382872369198 -0.0088386341562361 0.0000387120054718 -0.0088430857956475 0.0000380237292254 -0.0088737270126298 0.0000378639106643 -0.0088760387308351 0.0003156077164558 -0.0088760407308794 0.0033165695053534 -0.0088813975234913 0.7474754831896449 -0.0088885181975529 1.7408849291637407 -0.0089056596511737 0.0048532457282774 -0.0089057088458513 -0.0001099999999934 -0.0089057088458513 -0.0001199999999934 -0.0089057214055951 0.0000381123250411 -0.0089251489294773 0.0000382878956648 -0.0089386646232627 0.0000387071757760 -0.0089430966978127 0.0000380255584276 -0.0089737161587939 0.0000378648465894 -0.0089760387247101 0.0003156105538793 -0.0089760407247587 0.0033165744125225 -0.0089814076400424 0.7488847740952199 -0.0089885181926759 1.7408858058281291 -0.0090056596433332 0.0048598744184697 -0.0090057089039471 -0.0001099999999374 -0.0090057089039471 -0.0001199999999374 -0.0090057214637849 0.0000381136507767 -0.0090250095738754 0.0000382647180731 -0.0090380723654766 0.0000388124766555 -0.0090431261256454 0.0000380083433398 -0.0090569137010088 0.0000390457898687 -0.0090760105247709 0.0003158698302674 -0.0090760125248231 0.0013160143744097 -0.0090885150455409 1.7446450838063703 -0.0091057426666712 0.0035822943843981 -0.0091057792968184 -0.0001099999999865 -0.0091057792968184 -0.0001199999999865 -0.0091057917564554 0.0000385405560810 -0.0091191205094750 0.0000375768966539 -0.0091442665444352 0.0000375508662928 -0.0091679988338447 0.0000368972054630 -0.0091750499659675 0.0000365069965470 -0.0091760388984154 0.0003129395039420 -0.0091760408984763 0.0033135286284864 -0.0091819106801192 0.8164521026307144 -0.0091885179418617 1.7313540464801167 -0.0092055078916630 0.0009436139472814 -0.0092055182152608 -0.0001100000000299 -0.0092055182152608 -0.0001200000000299 -0.0092055307268979 0.0000371914452788 -0.0092173789018089 0.0000363452965210 -0.0092263050070232 0.0000367467094133 -0.0092457778775982 0.0000364300914856 -0.0092710169867889 0.0000364045332723 -0.0092760387185882 0.0003132206038563 -0.0092760407186567 0.0013139321229745 -0.0092885262902428 1.7303283912673695 -0.0093054409589901 0.0053203652235598 -0.0093054944416264 -0.0001100000000303 -0.0093054944416264 -0.0001200000000303 -0.0093055071317538 0.0000367696403777 -0.0093248212190520 0.0000370245213767 -0.0093377594313097 0.0000376811842522 -0.0093432894927114 0.0000368376118358 -0.0093732826849091 0.0000367720411414 -0.0093760387776366 0.0003134109003147 -0.0093760407777167 0.0033143806597277 -0.0093813658063487 0.7401485819636706 -0.0093885178980034 1.7341804278667772 -0.0094055039655639 0.0050465762110736 -0.0094055548275177 -0.0001100000000684 -0.0094055548275177 -0.0001200000000684 -0.0094055674774327 0.0000371057309934 -0.0094251767019932 0.0000373540312209 -0.0094397009895532 0.0000375943010491 -0.0094431900079867 0.0000371371735093 -0.0094733649892853 0.0000370436269762 -0.0094760387296054 0.0003139661434899 -0.0094760407297005 0.0033149548989410 -0.0094814357420475 0.7505775597356396 -0.0094885179461629 1.7358318326033590 -0.0095055420325159 0.0050342573414790 -0.0095055928350389 -0.0001100000000324 -0.0095055928350389 -0.0001200000000324 -0.0095056054631684 0.0000373604632569 -0.0095251422464155 0.0000375813154733 -0.0095392559180831 0.0000379114393605 -0.0095432516925897 0.0000373637697775 -0.0095570764032392 0.0000384196281971 -0.0095760112112097 0.0003145051708099 -0.0095760132113274 0.0033149543970451 -0.0095805728718735 0.6352329493166795 -0.0095885105544878 1.7419193555881902 -0.0096056317717457 0.0048947993597010 -0.0096056814156118 -0.0001099999999527 -0.0096056814156118 -0.0001199999999527 -0.0096056940409152 0.0000380813513419 -0.0096164947542322 0.0000372594133400 -0.0096244659757910 0.0000374257164315 -0.0096299437668544 0.0000381889290143 -0.0096446547398340 0.0000371365479551 -0.0096637478860558 0.0000372862665069 -0.0096747597703787 0.0000368789004306 -0.0096760101258445 0.0003138372894170 -0.0096760121259979 0.0013146733039566 -0.0096865838065951 1.4673972651650986 -0.0096885245364934 1.7361557280400219 -0.0097055385765592 0.0039201173522740 -0.0097055784204505 -0.0001100000000574 -0.0097055784204505 -0.0001200000000574 -0.0097055910864196 0.0000374010514167 -0.0097139306806837 0.0000369088544325 -0.0097325266420150 0.0000373265904968 -0.0097521077341178 0.0000369394252284 -0.0097688588401743 0.0000361912485032 -0.0097760380407496 0.0003130003532103 -0.0097760400409719 0.0013137213716463 -0.0097885263769961 1.7297334242161513 -0.0098054262418973 0.0052418738118515 -0.0098054789225532 -0.0001099999999683 -0.0098054789225532 -0.0001199999999683 -0.0098054916210927 0.0000366847935924 -0.0098241658576567 0.0000368653305525 -0.0098366201855670 0.0000380117736634 -0.0098439838113867 0.0000366935097467 -0.0098708172623583 0.0000369318456389 -0.0098760377129417 0.0003135809339417 -0.0098760397133418 0.0013137206810653 -0.0098885157427207 1.7339472330636168 -0.0099055459282591 0.0015533783488687 -0.0099055622788038 -0.0001099999999517 -0.0099055622788038 -0.0001199999999517 -0.0099055747988071 0.0000373132827719 -0.0099247920913359 0.0000374381908553 -0.0099684878841430 0.0000370342058335 -0.0099760327769932 0.0003147744097869 -0.0099760347790661 0.0013285266517611 -0.0099834815222513 1.0355447449722490 -0.0099885128178854 1.7331564123431400 -0.0099961307961592 0.9630203245378779 +0.0000099628091091 0.0002380965030657 +0.0000105254333052 0.0002378437672754 +0.0000126676683552 0.0002367651556739 +0.0000311440822200 0.0002253743560845 +0.0000316195783685 0.0002249843434354 +0.0000339566221823 0.0002229243706509 +0.0000363067670105 0.0002206144360299 +0.0000385880297138 0.0002181063703120 +0.0000628016594251 0.0001899024496649 +0.0000760157305044 0.0005824793188349 +0.0000760177305135 0.0035825068265697 +0.0000796038073030 0.7382390281823737 +0.0000837290009484 1.5737100166221312 +0.0000880197460253 2.4306604298825980 +0.0000885235797228 2.5271981944277879 +0.0000949218237685 2.2419369621513328 +0.0001019005244971 1.9031905904278708 +0.0001075817324363 1.6099019050438450 +0.0001133733120938 1.2944071189161059 +0.0001191954449295 0.9606808889221167 +0.0001253582325108 0.5939440508431760 +0.0001307372355287 0.2650776061082346 +0.0001349379960504 0.0026798182405505 +0.0001349815770542 -0.0001100000000003 +0.0001349815770542 -0.0001200000000003 +0.0001350067482261 0.0001138757242404 +0.0001569090884135 0.0001033010814223 +0.0001760248435718 0.0004342871976775 +0.0001760268435762 0.0034349171692437 +0.0001856342437065 1.6219277299394865 +0.0001885223213936 2.1036030048947971 +0.0002019376184592 1.1172412214206076 +0.0002116013738687 0.3992265937652726 +0.0002168740973071 0.0029091164251814 +0.0002169137020877 -0.0001100000000000 +0.0002169137020877 -0.0001200000000000 +0.0002169420303476 0.0000890147520410 +0.0002246702729915 0.0000875644232219 +0.0002394069719991 0.0000851594234375 +0.0002562423359058 0.0000828978097130 +0.0002726572954311 0.0000795420853738 +0.0002760100097228 0.0003988989933502 +0.0002760120097273 0.0034000549025262 +0.0002873951095897 1.8194819326137079 +0.0002885201460516 1.9960081118944522 +0.0003096349307690 0.2663463238795821 +0.0003128261651175 0.0029026028151660 +0.0003128622837383 -0.0001100000000010 +0.0003128622837383 -0.0001200000000010 +0.0003128927529246 0.0000745875691084 +0.0003244931277317 0.0000728558203361 +0.0003400825098226 0.0000712927293800 +0.0003575603962587 0.0000697855662440 +0.0003755833981744 0.0000673238667982 +0.0003760100024106 0.0003747055216172 +0.0003760120024147 0.0013751582867254 +0.0003864950951798 1.6147229882277416 +0.0003885200521389 1.9230564469589859 +0.0004105131922214 0.0017303596838585 +0.0004105340129517 -0.0001100000000020 +0.0004105340129517 -0.0001200000000020 +0.0004105662253604 0.0000646900675526 +0.0004226317053034 0.0000629736396883 +0.0004474315564402 0.0000609458619630 +0.0004623609833204 0.0000606444577803 +0.0004724230681066 0.0000591620822909 +0.0004760367386867 0.0003580066515905 +0.0004760387386918 0.0033586826781407 +0.0004885250082159 1.8673143981326228 +0.0005027705634914 0.5657175664125865 +0.0005089725064872 0.0023094758294647 +0.0005089988239779 -0.0001099999999951 +0.0005089988239779 -0.0001199999999951 +0.0005090323203656 0.0000574712810051 +0.0005365005854358 0.0000557900222446 +0.0005606212982350 0.0000544947305619 +0.0005760286615607 0.0003464693518576 +0.0005760306615650 0.0013467809779329 +0.0005885112089100 1.8344446556071119 +0.0006080179144662 0.0014389078866032 +0.0006080342620812 -0.0001100000000037 +0.0006080342620812 -0.0001200000000037 +0.0006080688133659 0.0000522489388031 +0.0006400440802787 0.0000501374005334 +0.0006500663851075 0.0000495848719885 +0.0006645757511810 0.0000492025282315 +0.0006760361556631 0.0003370754753641 +0.0006760381556673 0.0013373024132402 +0.0006885128604487 1.8067728956694715 +0.0006985086239070 0.8463838564822020 +0.0007049083575336 0.2299086259937385 +0.0007072961984806 0.0032399460734990 +0.0007073309837456 -0.0001100000000028 +0.0007073309837456 -0.0001200000000028 +0.0007073662932184 0.0000483828598158 +0.0007239106534250 0.0000469502315108 +0.0007333457856815 0.0000476194292391 +0.0007554177586035 0.0000468301848671 +0.0007658245519147 0.0000460156526736 +0.0007760333130409 0.0003305353798972 +0.0007760353130453 0.0013307873817559 +0.0007885130275413 1.7875760975817279 +0.0008068292361611 -0.0001099999939731 +0.0008068292361611 -0.0001199999939731 +0.0008068348994554 0.0000455471895180 +0.0008225198782470 0.0000442599123812 +0.0008466425504805 0.0000436947795314 +0.0008712169948031 0.0000431725629778 +0.0008760382261287 0.0003264492595600 +0.0008760402261340 0.0013291150198566 +0.0008865084955827 1.4883289962104833 +0.0008885163203819 1.7719241424011436 +0.0009050249252991 0.1432595610858847 +0.0009064613334198 0.0020536732395375 +0.0009064832329730 -0.0001099999999948 +0.0009064832329730 -0.0001199999999948 +0.0009065197000961 0.0000433901021073 +0.0009209019541352 0.0000422381683043 +0.0009457710351323 0.0000418198963685 +0.0009707283304047 0.0000414320009752 +0.0009760383944799 0.0003230511234540 +0.0009760403944852 0.0013246643971909 +0.0009872440660796 1.5802819846927034 +0.0009885288224560 1.7602418344012467 +0.0010044518461539 0.1745194736951782 +0.0010061901911190 0.0020832635634746 +0.0010062122415929 -0.0001100000000093 +0.0010062122415929 -0.0001200000000093 +0.0010062243687244 0.0000418515165394 +0.0010206194916509 0.0000407348073845 +0.0010452214610574 0.0000404142121410 +0.0010700971447856 0.0000401194861039 +0.0010760385204793 0.0003205132101018 +0.0010760405204846 0.0013217363487243 +0.0010881788412556 1.7077874795499983 +0.0010885179561466 1.7534988561855376 +0.0011041254529355 0.1897496656269556 +0.0011060064895827 0.0019275014447463 +0.0011060268542186 -0.0001099999999999 +0.0011060268542186 -0.0001199999999999 +0.0011060390737446 0.0000407010524342 +0.0011203459745934 0.0000396023475508 +0.0011447277226514 0.0000393514393856 +0.0011696266486800 0.0000391294115585 +0.0011760386157804 0.0003186070057905 +0.0011760406157858 0.0013196417065186 +0.0011885263893883 1.7467760722789971 +0.0012038583264508 0.2036431270260871 +0.0012058699090720 0.0018030135207350 +0.0012058889437421 -0.0001099999999996 +0.0012058889437421 -0.0001199999999996 +0.0012059012316470 0.0000398366249850 +0.0012201387953344 0.0000387493012640 +0.0012443522885520 0.0000385490139410 +0.0012692693654199 0.0000383809333952 +0.0012760386877564 0.0003171735968938 +0.0012760406877619 0.0013180943855844 +0.0012885261157985 1.7423683436037851 +0.0013037007144314 0.2098673127402868 +0.0013057677294740 0.0017038306460900 +0.0013057857153712 -0.0001099999999922 +0.0013057857153712 -0.0001199999999922 +0.0013057980542136 0.0000391868870807 +0.0013199856865707 0.0000381053802798 +0.0013440442433035 0.0000379413517978 +0.0013689765825416 0.0000378140082659 +0.0013760387420391 0.0003160937210374 +0.0013760407420446 0.0013169413891811 +0.0013885238573872 1.7387593354103572 +0.0014057070535549 0.0006882751572151 +0.0014057148951778 -0.0001099999999922 +0.0014057148951778 -0.0001199999999922 +0.0014057272816325 0.0000385154582071 +0.0014189683337376 0.0000375687377285 +0.0014448640201255 0.0000378817685599 +0.0014595515046726 0.0000384901750667 +0.0014691866014891 0.0000373697540060 +0.0014760387821154 0.0003152388160048 +0.0014760407821210 0.0013160045586522 +0.0014885226628498 1.7360331805685312 +0.0015056274686355 0.0036373471456272 +0.0015056645746533 -0.0001100000000084 +0.0015056645746533 -0.0001200000000084 +0.0015056770730639 0.0000381224631162 +0.0015189460673947 0.0000371804750024 +0.0015441853180128 0.0000375074028211 +0.0015587204492061 0.0000381129441259 +0.0015689659901153 0.0000370224001680 +0.0015760388141480 0.0003145934777215 +0.0015760408141537 0.0013153118494069 +0.0015885185475568 1.7300522657858792 +0.0015978609949447 0.7853895648423422 +0.0016055653202642 0.0028071990383373 +0.0016055942383602 -0.0001099999999943 +0.0016055942383602 -0.0001199999999943 +0.0016056067963875 0.0000380741347953 +0.0016136503913826 0.0000376408250257 +0.0016341250918314 0.0000379263286478 +0.0016440356156182 0.0000368152078530 +0.0016648027132933 0.0000369961307490 +0.0016760384368543 0.0003136964998649 +0.0016760404368589 0.0013138419082736 +0.0016885151998198 1.7342734921774712 +0.0017055535538649 0.0037181347707254 +0.0017055913598858 -0.0001099999999985 +0.0017055913598858 -0.0001199999999985 +0.0017056039077474 0.0000375649537641 +0.0017188210222401 0.0000366274757054 +0.0017397771184917 0.0000368304998540 +0.0017587550721579 0.0000375643245482 +0.0017760100694594 0.0003132026564937 +0.0017760120694658 0.0033136972049541 +0.0017812479195369 0.7271946198609701 +0.0017885167193776 1.7369459216244849 +0.0018035291696948 0.2079838290021195 +0.0018055612198891 0.0016364433147896 +0.0018055783568732 -0.0001099999999961 +0.0018055783568732 -0.0001199999999961 +0.0018055908884862 0.0000369494445163 +0.0018232670121945 0.0000364656442843 +0.0018337029377438 0.0000374384939617 +0.0018513459760129 0.0000370685238599 +0.0018689551125659 0.0000363684725871 +0.0018760388801987 0.0003133076388825 +0.0018760408802046 0.0013139976964922 +0.0018885185940613 1.7260881275050046 +0.0018978186777045 0.7828457663531446 +0.0019054754281982 0.0027383992344943 +0.0019055035772629 -0.0001100000000067 +0.0019055035772629 -0.0001200000000067 +0.0019055161807063 0.0000374638732705 +0.0019136310998600 0.0000370569149876 +0.0019340012802436 0.0000373772084800 +0.0019439373743906 0.0000362716537976 +0.0019647009343682 0.0000365013957972 +0.0019760383667699 0.0003127097723893 +0.0019760403667747 0.0013128549783518 +0.0019885152853204 1.7312847181201543 +0.0020054845212332 0.0037643511320089 +0.0020055227014242 -0.0001099999999853 +0.0020055227014242 -0.0001199999999853 +0.0020055352895530 0.0000371114044435 +0.0020187288505260 0.0000361850823644 +0.0020396846061854 0.0000364301698931 +0.0020585790449659 0.0000371873053412 +0.0020760100727346 0.0003124274615616 +0.0020760120727413 0.0033129209342573 +0.0020811338315777 0.7104488386715160 +0.0020885165995017 1.7347055565846201 +0.0021034707524201 0.2090413275062094 +0.0021055098807628 0.0016284677639691 +0.0021055269113263 -0.0001100000000053 +0.0021055269113263 -0.0001200000000053 +0.0021055394706452 0.0000366113361465 +0.0021231112176456 0.0000361376099749 +0.0021335594409941 0.0000371325129922 +0.0021512638037477 0.0000367595137413 +0.0021688911806022 0.0000360769191177 +0.0021760389080432 0.0003127495262072 +0.0021760409080493 0.0013134160362620 +0.0021885186404986 1.7243937148494752 +0.0021976865052063 0.7933699570771929 +0.0022054362305815 0.0027661840741226 +0.0022054646177385 -0.0001100000000094 +0.0022054646177385 -0.0001200000000094 +0.0022054772436947 0.0000371983747698 +0.0022136477719510 0.0000368007953472 +0.0022338966612645 0.0000371359862088 +0.0022438857063866 0.0000360349068034 +0.0022646512528835 0.0000362872639324 +0.0022760383247921 0.0003122807679090 +0.0022760403247972 0.0013124259889448 +0.0022885153203359 1.7299890590748064 +0.0023054546262675 0.0037858410451007 +0.0023054929824169 -0.0001099999999922 +0.0023054929824169 -0.0001199999999922 +0.0023055055881769 0.0000369142766750 +0.0023186885002698 0.0000359927075601 +0.0023396445256972 0.0000362562838218 +0.0023585030800211 0.0000370235196502 +0.0023760100756684 0.0003120902922382 +0.0023760120756754 0.0033125831838345 +0.0023810838661772 0.7031314310215699 +0.0023885165493970 1.7337320063088884 +0.0024034461294356 0.2094296512563814 +0.0024054876251159 0.0016251409644732 +0.0024055046109063 -0.0001099999999946 +0.0024055046109063 -0.0001199999999946 +0.0024055171823008 0.0000364644137022 +0.0024230435422766 0.0000359950250998 +0.0024334980195963 0.0000369995062892 +0.0024512286445424 0.0000366251749563 +0.0024688634795857 0.0000359500871201 +0.0024760389195311 0.0003125069208263 +0.0024760409195374 0.0013131634119576 +0.0024885186617232 1.7236572838069986 +0.0024976295567500 0.7979041880629193 +0.0025054192235108 0.0027782339259363 +0.0025054477136870 -0.0001100000000175 +0.0025054477136870 -0.0001200000000175 +0.0025054603494515 0.0000370829570552 +0.0025136550540737 0.0000366893993336 +0.0025338508862499 0.0000370310160540 +0.0025438633239813 0.0000359318946809 +0.0025646304581522 0.0000361941000396 +0.0025760383047745 0.0003120941688035 +0.0025760403047798 0.0013122394775815 +0.0025885153357457 1.7294257927669787 +0.0026054416444939 0.0037952163945396 +0.0026054800773460 -0.0001100000000002 +0.0026054800773460 -0.0001200000000002 +0.0026054926907879 0.0000368285523123 +0.0026186709153944 0.0000359089818230 +0.0026396279357509 0.0000361806033588 +0.0026584700225449 0.0000369523082531 +0.0026760100785733 0.0003119436242329 +0.0026760120785806 0.0033124362474708 +0.0026810621322266 0.6999508253008406 +0.0026885165280142 1.7333082866451397 +0.0027034357334821 0.2095674572851463 +0.0027054779517642 0.0016237489276630 +0.0027054949186397 -0.0001100000000009 +0.0027054949186397 -0.0001200000000009 +0.0027055074952948 0.0000364005215851 +0.0027230138436245 0.0000359329804060 +0.0027334713199916 0.0000369416704031 +0.0027512140828078 0.0000365667833861 +0.0027688512189554 0.0000358948576576 +0.0027760389238464 0.0003124013697745 +0.0027760409238530 0.0013130538884751 +0.0027885186711540 1.7233369910365242 +0.0027976048725752 0.7998696301148480 +0.0028054118311392 0.0027834721859446 +0.0028054403660561 -0.0001099999999864 +0.0028054403660561 -0.0001199999999864 +0.0028054530060922 0.0000370327619189 +0.0028136581435746 0.0000366409055258 +0.0028338306162678 0.0000369853308011 +0.0028438534684662 0.0000358870310663 +0.0028646223095711 0.0000361535089989 +0.0028760382948084 0.0003120129614463 +0.0028760402948141 0.0013121582193157 +0.0028885153424819 1.7291808525234187 +0.0029054360003119 0.0037993018769879 +0.0029054744665772 -0.0001100000000101 +0.0029054744665772 -0.0001200000000101 +0.0029054870833645 0.0000367912705608 +0.0029186630925495 0.0000358725067826 +0.0029396216461131 0.0000361476154474 +0.0029584553036781 0.0000369213650539 +0.0029760100816066 0.0003118798360605 +0.0029760120816142 0.0033123723396885 +0.0029810526747007 0.6985670144510000 +0.0029885165187892 1.7331236638552687 +0.0030034310243137 0.2096462333981843 +0.0030054737418074 0.0016231139589709 +0.0030054907001677 -0.0001099999999806 +0.0030054907001677 -0.0001199999999806 +0.0030055032791127 0.0000363727412389 +0.0030230005537341 0.0000359059601539 +0.0030334595113762 0.0000369165384420 +0.0030512085583590 0.0000365414410275 +0.0030688455954077 0.0000358707766458 +0.0030760389249790 0.0003123554278670 +0.0030760409249859 0.0013130059325223 +0.0030885186752947 1.7231976978715042 +0.0030975941415707 0.8007242910559490 +0.0031054086158964 0.0027857544348918 +0.0031054371703024 -0.0001099999999901 +0.0031054371703024 -0.0001199999999901 +0.0031054498121985 0.0000370109413511 +0.0031136593812268 0.0000366197748745 +0.0031338213996121 0.0000369654492852 +0.0031438490124293 0.0000358674659135 +0.0031646197472321 0.0000361357845038 +0.0031760382892274 0.0003119776094133 +0.0031760402892333 0.0013121229401182 +0.0031885153454191 1.7290744075484406 +0.0032054335458108 0.0038010814878874 +0.0032054720266287 -0.0001100000000199 +0.0032054720266287 -0.0001200000000199 +0.0032054846448728 0.0000367750692661 +0.0032186594764014 0.0000358565900822 +0.0032396199231967 0.0000361331981992 +0.0032584484710589 0.0000369079499647 +0.0032760100848563 0.0003118521226401 +0.0032760120848642 0.0033123445720538 +0.0032810485577989 0.6979644601302413 +0.0032885165147901 1.7330430125906346 +0.0033034291232377 0.2096651421119253 +0.0033054719067457 0.0016228622476079 +0.0033054888616432 -0.0001100000000169 +0.0033054888616432 -0.0001200000000169 +0.0033055014415857 0.0000363606772095 +0.0033229943574960 0.0000358941790511 +0.0033334541281369 0.0000369056428967 +0.0033512070460242 0.0000365304896151 +0.0033688428222177 0.0000358602483611 +0.0033760389246570 0.0003123354254893 +0.0033760409246642 0.0013129853093771 +0.0033885186771072 1.7231371783838083 +0.0033975894680836 0.8010967460893323 +0.0034054072176048 0.0027867514420623 +0.0034054357805281 -0.0001099999999823 +0.0034054357805281 -0.0001199999999823 +0.0034054484232343 0.0000370014718918 +0.0034136597987163 0.0000366105508827 +0.0034338169546852 0.0000369568007685 +0.0034438468832172 0.0000358589084015 +0.0034646197096250 0.0000361280064014 +0.0034760382854631 0.0003119622150795 +0.0034760402854693 0.0013121075030756 +0.0034885153466943 1.7290282527865430 +0.0035054324791600 0.0038018565300296 +0.0035054709663156 -0.0001100000000179 +0.0035054709663156 -0.0001200000000179 +0.0035054835851939 0.0000367680457438 +0.0035186576663446 0.0000358496180039 +0.0035396202868301 0.0000361268578908 +0.0035584450213435 0.0000369021693849 +0.0035760100883841 0.0003118401180160 +0.0035760120883922 0.0033123325449546 +0.0035810467664416 0.6977019914169562 +0.0035885165130543 1.7330075932555959 +0.0036034283976374 0.2096626940498611 +0.0036054711048769 0.0016227696708020 +0.0036054880584342 -0.0001099999999941 +0.0036054880584342 -0.0001199999999941 +0.0036055006388115 0.0000363554566760 +0.0036229912057698 0.0000358890290659 +0.0036334515103394 0.0000369009485838 +0.0036512073668302 0.0000365258103107 +0.0036688412560580 0.0000358556150913 +0.0036760389236223 0.0003123267134930 +0.0036760409236299 0.0013129760177846 +0.0036885186778973 1.7231109585717028 +0.0036975874267675 0.8012597210723522 +0.0037054066101112 0.0027871902273205 +0.0037054351767891 -0.0001100000000211 +0.0037054351767891 -0.0001200000000211 +0.0037054478198480 0.0000369973815190 +0.0037136598468779 0.0000366065071818 +0.0037338145431963 0.0000369530429239 +0.0037438457465678 0.0000358551385623 +0.0037646208778410 0.0000361245517134 +0.0037760382823623 0.0003119555078237 +0.0037760402823689 0.0013121007624498 +0.0037885153472455 1.7290083594333026 +0.0038054320166983 0.0038021942175526 +0.0038054705066152 -0.0001099999999919 +0.0038054705066152 -0.0001199999999919 +0.0038054831257699 0.0000367650202474 +0.0038186566179656 0.0000358465353090 +0.0038396216695416 0.0000361240270924 +0.0038584429936046 0.0000368997182152 +0.0038760100922459 0.0003118349573554 +0.0038760120922545 0.0033123273727409 +0.0038810459872043 0.6975874920638996 +0.0038885165123018 1.7329918584144937 +0.0039034279624902 0.2096734498508882 +0.0039054707527649 0.0016227102399799 +0.0039054877055507 -0.0001100000000046 +0.0039054877055507 -0.0001200000000046 +0.0039055002861168 0.0000363532184359 +0.0039229893307318 0.0000358867634258 +0.0039334500651419 0.0000368989588635 +0.0039512085844682 0.0000365238702758 +0.0039688401779815 0.0000358535429202 +0.0039760389221857 0.0003123229158554 +0.0039760409221937 0.0013129724044441 +0.0039885186782462 1.7230996814346646 +0.0039975865318328 0.8013314501660416 +0.0040054063469546 0.0027873855319396 +0.0040054349153094 -0.0001100000000423 +0.0040054349153094 -0.0001200000000423 +0.0040054475585222 0.0000369956360824 +0.0040136597198554 0.0000366047157237 +0.0040338129690329 0.0000369514150070 +0.0040438450202836 0.0000358534482992 +0.0040646226939451 0.0000361229719092 +0.0040760382797031 0.0003119525815760 +0.0040760402797101 0.0013120978732375 +0.0040885153478359 1.7289999253832664 +0.0041054318178443 0.0038023413648179 +0.0041054703089646 -0.0001099999999858 +0.0041054703089646 -0.0001199999999858 +0.0041054829282396 0.0000367637384689 +0.0041186558742240 0.0000358451406775 +0.0041396236250082 0.0000361227164370 +0.0041584415298960 0.0000368987231509 +0.0041760100968033 0.0003118327827816 +0.0041760120968122 0.0033123251943279 +0.0041810456492165 0.6975374177377283 +0.0041885165123309 1.7329846569206528 +0.0042034277141475 0.2096838093477786 +0.0042054705963900 0.0016226750663285 +0.0042054875487484 -0.0001100000000363 +0.0042054875487484 -0.0001200000000363 +0.0042055001293965 0.0000363522819485 +0.0042229879576920 0.0000358857506146 +0.0042334490973082 0.0000368981520871 +0.0042512103085195 0.0000365231329095 +0.0042688392701135 0.0000358525794742 +0.0042760389207709 0.0003123212564872 +0.0042760409207793 0.0013129704705364 +0.0042885186787520 1.7230949308949504 +0.0042975861329559 0.8013638164026979 +0.0043054062342076 0.0027874767464943 +0.0043054348033534 -0.0001099999999953 +0.0043054348033534 -0.0001199999999953 +0.0043054474466335 0.0000369949150008 +0.0043136595011277 0.0000366039009055 +0.0043338117001899 0.0000369507148156 +0.0043438444468009 0.0000358526576763 +0.0043646249338348 0.0000361221998417 +0.0043760382766234 0.0003119513001875 +0.0043760402766309 0.0013120965790385 +0.0043885153479337 1.7289964929871662 +0.0044054317333297 0.0038024059475153 +0.0044054702249786 -0.0001099999999699 +0.0044054702249786 -0.0001199999999699 +0.0044054828443062 0.0000367632195921 +0.0044186552302566 0.0000358444749871 +0.0044396259783830 0.0000361220589899 +0.0044584402447607 0.0000368983701518 +0.0044760101015149 0.0003118319161140 +0.0044760121015243 0.0033123243243712 +0.0044810455019608 0.6975152217304319 +0.0044885165121923 1.7329811002538373 +0.0045034277203900 0.2096762441723961 +0.0045054705239453 0.0016226788813186 +0.0045054874763059 -0.0001100000000335 +0.0045054874763059 -0.0001200000000335 +0.0045055000569902 0.0000363519164577 +0.0045229867425345 0.0000358852804624 +0.0045334483009347 0.0000368978671112 +0.0045512123884516 0.0000365229315859 +0.0045688383863853 0.0000358520919851 +0.0045760389188049 0.0003123205278539 +0.0045760409188138 0.0013129696013444 +0.0045885186788205 1.7230930298261431 +0.0045975859502225 0.8013789844412600 +0.0046054061865376 0.0027875222960719 +0.0046054347560855 -0.0001099999999764 +0.0046054347560855 -0.0001199999999764 +0.0046054473993952 0.0000369946446226 +0.0046136592232200 0.0000366035076986 +0.0046338104985572 0.0000369504199642 +0.0046438439102839 0.0000358522527325 +0.0046646275265012 0.0000361217698916 +0.0046760382732863 0.0003119507347160 +0.0046760402732943 0.0013120960330301 +0.0046885153479714 1.7289952707270690 +0.0047054316990799 0.0038024343936098 +0.0047054701909620 -0.0001100000000402 +0.0047054701909620 -0.0001200000000402 +0.0047054828103127 0.0000367630377063 +0.0047186545926948 0.0000358441200312 +0.0047396286827132 0.0000361216757564 +0.0047584389636236 0.0000368983062053 +0.0047760101067645 0.0003118316289828 +0.0047760121067745 0.0033123240356990 +0.0047810454389130 0.6975052594679870 +0.0047885165121359 1.7329791253972329 +0.0048034274932441 0.2096959139039271 +0.0048054704883286 0.0016226434741787 +0.0048054874403254 -0.0001100000000065 +0.0048054874403254 -0.0001200000000065 +0.0048055000210245 0.0000363518048812 +0.0048229855195800 0.0000358850430749 +0.0048334475315103 0.0000368978175192 +0.0048512147816968 0.0000365229779653 +0.0048688374545119 0.0000358518035311 +0.0048760389165832 0.0003123202037316 +0.0048760409165926 0.0013129693305772 +0.0048885186788539 1.7230923935645084 +0.0048975858594723 0.8013869210440097 +0.0049054061675788 0.0027875493777416 +0.0049054347373734 -0.0001100000000257 +0.0049054347373734 -0.0001200000000257 +0.0049054473806964 0.0000369945757962 +0.0049136588975938 0.0000366032932921 +0.0049338092462607 0.0000369503027776 +0.0049438433546012 0.0000358520082133 +0.0049646304715010 0.0000361214773216 +0.0049760382695926 0.0003119504799895 +0.0049760402696011 0.0013120957240041 +0.0049885153479808 1.7289950441568727 +0.0050054316870237 0.0038024471821552 +0.0050054701790110 -0.0001099999999823 +0.0050054701790110 -0.0001199999999823 +0.0050054827983719 0.0000367630080056 +0.0050186539135038 0.0000358438922182 +0.0050396317474968 0.0000361213999285 +0.0050584375918573 0.0000368983794726 +0.0050760101126509 0.0003118316049390 +0.0050760121126615 0.0033123240111318 +0.0050810454115576 0.6975004333007138 +0.0050885165121147 1.7329777390594676 +0.0051034275455397 0.2096885661597059 +0.0051054704675688 0.0016226532784817 +0.0051054874196555 -0.0001099999999584 +0.0051054874196555 -0.0001199999999584 +0.0051055000003617 0.0000363518097287 +0.0051229842082379 0.0000358849028911 +0.0051334467227338 0.0000368978797450 +0.0051512175023566 0.0000365231494550 +0.0051688364320078 0.0000358515919605 +0.0051760389140741 0.0003123200549128 +0.0051760409140841 0.0013129693179970 +0.0051885186788723 1.7230923322009932 +0.0051975858087480 0.8013917357388349 +0.0052054061613569 0.0027875685335383 +0.0052054347313317 -0.0001099999999638 +0.0052054347313317 -0.0001199999999638 +0.0052054473746609 0.0000369946010911 +0.0052136585242883 0.0000366031511573 +0.0052338078779724 0.0000369502644942 +0.0052438427486066 0.0000358518246396 +0.0052646338071365 0.0000361212307417 +0.0052760382654505 0.0003119503594922 +0.0052760402654597 0.0013120956238451 +0.0052885153479791 1.7289952908672419 +0.0053054316850070 0.0038024531103882 +0.0053054701770433 -0.0001100000000378 +0.0053054701770433 -0.0001200000000378 +0.0053054827964088 0.0000367630511508 +0.0053186531630716 0.0000358437100499 +0.0053396352217283 0.0000361211561676 +0.0053584360754737 0.0000368985258407 +0.0053760101192974 0.0003118317099073 +0.0053760121193086 0.0033123241146522 +0.0053810454010344 0.6974979547020129 +0.0053885165121100 1.7329765588726853 +0.0054034275588501 0.2096857526783626 +0.0054054704528686 0.0016226566093200 +0.0054054874049852 -0.0001100000000353 +0.0054054874049852 -0.0001200000000353 +0.0054054999856945 0.0000363518726043 +0.0054229827519314 0.0000358848000076 +0.0054334458314014 0.0000368980021799 +0.0054512205938032 0.0000365233960542 +0.0054688352859256 0.0000358514020869 +0.0054760389112273 0.0003123199813884 +0.0054760409112380 0.0013129692666610 +0.0054885186788833 1.7230925511250197 +0.0054975857739341 0.8013953757752055 +0.0055054061609638 0.0027875852458875 +0.0055054347310998 -0.0001099999999848 +0.0055054347310998 -0.0001199999999848 +0.0055054473744319 0.0000369946750554 +0.0055136580981730 0.0000366030337246 +0.0055338063450673 0.0000369502624210 +0.0055438420697794 0.0000358516568287 +0.0055646375990046 0.0000361209875630 +0.0055760382607587 0.0003119502961573 +0.0055760402607686 0.0013120956002141 +0.0055885153479712 1.7289957921447729 +0.0056054316878110 0.0038024563290766 +0.0056054701798747 -0.0001100000000360 +0.0056054701798747 -0.0001200000000360 +0.0056054827992424 0.0000367631339786 +0.0056186523170733 0.0000358435359471 +0.0056396391768770 0.0000361209088511 +0.0056584343638908 0.0000368987205106 +0.0056760101268619 0.0003118318870340 +0.0056760121268739 0.0033123242917097 +0.0056810453973321 0.6974963462477346 +0.0056885165121130 1.7329753849627596 +0.0057034275601682 0.2096843229424106 +0.0057054704399835 0.0016226580151590 +0.0057054873921128 -0.0001100000000390 +0.0057054873921128 -0.0001200000000390 +0.0057054999728235 0.0000363519695853 +0.0057229811039972 0.0000358847072100 +0.0057334448251420 0.0000368981647768 +0.0057512241245679 0.0000365237004937 +0.0057688339835877 0.0000358512072640 +0.0057760389079738 0.0003123199394685 +0.0057760409079853 0.0013129691813005 +0.0057885186788922 1.7230929291882193 +0.0057975857419751 0.8013989566540112 +0.0058054061634434 0.0027876033909480 +0.0058054347337570 -0.0001099999999603 +0.0058054347337570 -0.0001199999999603 +0.0058054473770910 0.0000369947795541 +0.0058136576103630 0.0000366029186645 +0.0058338045996616 0.0000369502782700 +0.0058438412968234 0.0000358514826376 +0.0058646419411714 0.0000361207253391 +0.0058760382553945 0.0003119502560919 +0.0058760402554052 0.0013120955192136 +0.0058885153479578 1.7289964633910206 +0.0059054316932674 0.0038024582810467 +0.0059054701853479 -0.0001099999999973 +0.0059054701853479 -0.0001199999999973 +0.0059054828047170 0.0000367632438727 +0.0059186513504424 0.0000358433508541 +0.0059396437154539 0.0000361206382738 +0.0059584324069844 0.0000368989563446 +0.0059760101355488 0.0003118321162017 +0.0059760121355616 0.0033123245191255 +0.0059810453969103 0.6974950588894877 +0.0059885165121202 1.7329741272038264 +0.0060034274187671 0.2096974003040294 +0.0060054704271063 0.0016226362376566 +0.0060054873790209 -0.0001099999999593 +0.0060054873790209 -0.0001199999999593 +0.0060054999597316 0.0000363520923749 +0.0060229792131096 0.0000358846111943 +0.0060334436706203 0.0000368983621512 +0.0060512281898774 0.0000365240611671 +0.0060688324866315 0.0000358509924812 +0.0060760389042219 0.0003123199097207 +0.0060760409042343 0.0013129691051185 +0.0060885186789006 1.7230934210087154 +0.0060975857103772 0.8014026462905994 +0.0061054061676032 0.0027876228405856 +0.0061054347381083 -0.0001099999999737 +0.0061054347381083 -0.0001199999999737 +0.0061054473814436 0.0000369949090028 +0.0061136570467156 0.0000366027943959 +0.0061338025895336 0.0000369503048088 +0.0061438404055745 0.0000358512892787 +0.0061646469586757 0.0000361204293728 +0.0061760382491993 0.0003119502242542 +0.0061760402492110 0.0013120955228851 +0.0061885153479431 1.7289972818934003 +0.0062054317005692 0.0038024597299409 +0.0062054701926625 -0.0001099999999630 +0.0062054701926625 -0.0001199999999630 +0.0062054828120323 0.0000367633777817 +0.0062186502327664 0.0000358431429109 +0.0062396489737860 0.0000361203305243 +0.0062584301430352 0.0000368992352871 +0.0062760101456268 0.0003118323936600 +0.0062760121456407 0.0033123247953163 +0.0062810453981358 0.6974938159127630 +0.0062885165121298 1.7329726717347025 +0.0063034275119600 0.2096864385248612 +0.0063054704125031 0.0016226529570354 +0.0063054873645821 -0.0001100000000152 +0.0063054873645821 -0.0001200000000152 +0.0063054999452936 0.0000363522399897 +0.0063229770205504 0.0000358845043347 +0.0063334423319071 0.0000368985962012 +0.0063512329200586 0.0000365244855153 +0.0063688307463273 0.0000358507466838 +0.0063760388998482 0.0003123198833774 +0.0063760408998617 0.0013129688894357 +0.0063885186789084 1.7230940193910451 +0.0063975856759351 0.8014067464665666 +0.0064054061730335 0.0027876448650223 +0.0064054347437560 -0.0001100000000072 +0.0064054347437560 -0.0001200000000072 +0.0064054473870925 0.0000369950640215 +0.0064136563887690 0.0000366026531524 +0.0064338002456794 0.0000369503396015 +0.0064438393651010 0.0000358510668659 +0.0064646528204834 0.0000361200866415 +0.0064760382419613 0.0003119501935775 +0.0064760402419741 0.0013120954612035 +0.0064885153479236 1.7289982577989771 +0.0065054317095441 0.0038024612451305 +0.0065054702016511 -0.0001099999999706 +0.0065054702016511 -0.0001199999999706 +0.0065054828210216 0.0000367635376520 +0.0065186489242641 0.0000358429020808 +0.0065396551354237 0.0000361199723104 +0.0065584274905407 0.0000368995650627 +0.0065760101574616 0.0003118327240863 +0.0065760121574766 0.0033123251256864 +0.0065810454001048 0.6974924355899905 +0.0065885165121422 1.7329710016543032 +0.0066034274081195 0.2096953246878512 +0.0066054703960368 0.0016226377430023 +0.0066054873479661 -0.0001100000000284 +0.0066054873479661 -0.0001200000000284 +0.0066054999286773 0.0000363524160139 +0.0066229744409308 0.0000358843805216 +0.0066334407547377 0.0000368988740352 +0.0066512384900142 0.0000365249874468 +0.0066688286968706 0.0000358504587117 +0.0066760388946848 0.0003123198561555 +0.0066760408946996 0.0013129690413222 +0.0066885186789205 1.7230947368833662 +0.0066975856358907 0.8014115434757692 +0.0067054061797025 0.0027876708716960 +0.0067054347506818 -0.0001099999999880 +0.0067054347506818 -0.0001199999999880 +0.0067054473940197 0.0000369952490320 +0.0067136556111639 0.0000366024877958 +0.0067337974757764 0.0000369503826280 +0.0067438381337190 0.0000358508050759 +0.0067646597591738 0.0000361196820979 +0.0067760382333928 0.0003119501602594 +0.0067760402334069 0.0013120954667428 +0.0067885153479017 1.7289994216828661 +0.0068054317203667 0.0038024629531037 +0.0068054702124893 -0.0001099999999580 +0.0068054702124893 -0.0001199999999580 +0.0068054828318606 0.0000367637288885 +0.0068186473709728 0.0000358426172107 +0.0068396624553870 0.0000361195476024 +0.0068584243395453 0.0000368999585151 +0.0068760101715546 0.0003118331201585 +0.0068760121715710 0.0033123255203845 +0.0068810454025844 0.6974908132813094 +0.0068885165121567 1.7329689993737944 +0.0069034274629924 0.2096877344509476 +0.0069054703762933 0.0016226487827411 +0.0069054873283314 -0.0001100000000287 +0.0069054873283314 -0.0001200000000287 +0.0069054999090431 0.0000363526271195 +0.0069229713649620 0.0000358842334540 +0.0069334388720064 0.0000368992070132 +0.0069512451456191 0.0000365255885476 +0.0069688262477462 0.0000358501148966 +0.0069760388884967 0.0003123198254724 +0.0069760408885129 0.0013129690932009 +0.0069885186789335 1.7230956021991017 +0.0069975855879630 0.8014172950674424 +0.0070054061878148 0.0027877020808897 +0.0070054347591025 -0.0001099999999777 +0.0070054347591025 -0.0001199999999777 +0.0070054474024419 0.0000369954719290 +0.0070136546781035 0.0000366022899678 +0.0070337941511787 0.0000369504354381 +0.0070438366531990 0.0000358504909375 +0.0070646681010303 0.0000361191959480 +0.0070760382230903 0.0003119501218253 +0.0070760402231060 0.0013120954451461 +0.0070885153478746 1.7290008252288955 +0.0071054317334733 0.0038024649609481 +0.0071054702256144 -0.0001099999999686 +0.0071054702256144 -0.0001199999999686 +0.0071054828449865 0.0000367639604272 +0.0071186454969784 0.0000358422737750 +0.0071396712946825 0.0000361190347545 +0.0071584205362156 0.0000369004348839 +0.0071760101886207 0.0003118336009283 +0.0071760121886388 0.0033123259989337 +0.0071810454063299 0.6974889527776162 +0.0071885165121749 1.7329665953686204 +0.0072034273765625 0.2096941240532367 +0.0072054703527092 0.0016226371779428 +0.0072054873046333 -0.0001100000000439 +0.0072054873046333 -0.0001200000000439 +0.0072054998853448 0.0000363528841208 +0.0072229676304891 0.0000358840548927 +0.0072334365820665 0.0000368996126279 +0.0072512532372873 0.0000365263203880 +0.0072688232689445 0.0000358496963675 +0.0072760388809454 0.0003123197891666 +0.0072760408809634 0.0013129687935190 +0.0072885186789465 1.7230966605658402 +0.0072975855309923 0.8014241632614362 +0.0073054061977781 0.0027877394669879 +0.0073054347694353 -0.0001099999999744 +0.0073054347694353 -0.0001199999999744 +0.0073054474127765 0.0000369957448943 +0.0073136535373910 0.0000366020483625 +0.0073337900877418 0.0000369505010830 +0.0073438348395358 0.0000358501063061 +0.0073646783204439 0.0000361186000007 +0.0073760382104687 0.0003119500759262 +0.0073760402104863 0.0013120953813761 +0.0073885153478410 1.7290025469442343 +0.0074054317495865 0.0038024671308604 +0.0074054702417475 -0.0001099999999771 +0.0074054702417475 -0.0001199999999771 +0.0074054828611205 0.0000367642459218 +0.0074186431915309 0.0000358418510635 +0.0074396821798673 0.0000361184028156 +0.0074584158509210 0.0000369010231532 +0.0074760102097114 0.0003118341958357 +0.0074760122097316 0.0033123265914205 +0.0074810454103542 0.6974865708121289 +0.0074885165121972 1.7329636331943430 +0.0075034272119109 0.2097079170297845 +0.0075054703237036 0.0016226133870605 +0.0075054872753939 -0.0001099999999753 +0.0075054872753939 -0.0001199999999753 +0.0075054998561048 0.0000363532032694 +0.0075229630015194 0.0000358838330598 +0.0075334337375364 0.0000369001170616 +0.0075512632865487 0.0000365272304444 +0.0075688195678806 0.0000358491753820 +0.0075760388715246 0.0003123197449317 +0.0075760408715449 0.0013129687211027 +0.0075885186789655 1.7230979832452404 +0.0075975854576731 0.8014329642299939 +0.0076054062102383 0.0027877873654858 +0.0076054347823688 -0.0001100000000254 +0.0076054347823688 -0.0001200000000254 +0.0076054474257123 0.0000369960864705 +0.0076136521121528 0.0000366017460969 +0.0076337850054573 0.0000369505843069 +0.0076438325653882 0.0000358496240392 +0.0076646911291854 0.0000361178522142 +0.0076760381946428 0.0003119500192754 +0.0076760401946629 0.0013120953353632 +0.0076885153477991 1.7290047070045802 +0.0077054317698123 0.0038024701605620 +0.0077054702620011 -0.0001100000000236 +0.0077054702620011 -0.0001200000000236 +0.0077054828813754 0.0000367646063149 +0.0077186402857779 0.0000358413176693 +0.0077396959136331 0.0000361176044244 +0.0077584099389937 0.0000369017675615 +0.0077760102364401 0.0003118349504647 +0.0077760122364630 0.0033123273414517 +0.0077810454155253 0.6974835625335392 +0.0077885165122250 1.7329598538733169 +0.0078034272392113 0.2097013625386027 +0.0078054702865976 0.0016226217677033 +0.0078054872383709 -0.0001099999999776 +0.0078054872383709 -0.0001199999999776 +0.0078054998190821 0.0000363536098113 +0.0078229571158526 0.0000358835498866 +0.0078334301120150 0.0000369007610416 +0.0078512761024719 0.0000365283927395 +0.0078688148457369 0.0000358485088833 +0.0078760388594423 0.0003123196893228 +0.0078760408594655 0.0013129688391566 +0.0078885186789906 1.7230996802094194 +0.0078975853658350 0.8014440295763414 +0.0079054062262569 0.0027878476927783 +0.0079054347989837 -0.0001100000000649 +0.0079054347989837 -0.0001200000000649 +0.0079054474423301 0.0000369965261415 +0.0079136502792941 0.0000366013570785 +0.0079337784696127 0.0000369506932749 +0.0079438296306208 0.0000358490014622 +0.0079647076553912 0.0000361168857812 +0.0079760381742170 0.0003119499476209 +0.0079760401742403 0.0013120952011020 +0.0079885153477436 1.7290074963714548 +0.0080054317959497 0.0038024739464429 +0.0080054702881734 -0.0001100000000796 +0.0080054702881734 -0.0001200000000796 +0.0080054829075492 0.0000367650754662 +0.0080186365104358 0.0000358406234959 +0.0080397137831927 0.0000361165637818 +0.0080584022449810 0.0000369027397767 +0.0080760102714170 0.0003118359384948 +0.0080760122714434 0.0033123283264430 +0.0080810454219047 0.6974795731556671 +0.0080885165122615 1.7329549391929790 +0.0081034270211665 0.2097186411591018 +0.0081054702384963 0.0016225912749422 +0.0081054871899700 -0.0001099999999648 +0.0081054871899700 -0.0001199999999648 +0.0081054997706805 0.0000363541454932 +0.0081229493756813 0.0000358831756057 +0.0081334253272562 0.0000369016119539 +0.0081512930071193 0.0000365299286242 +0.0081688086117672 0.0000358476258307 +0.0081760388433853 0.0003123196172103 +0.0081760408434124 0.0013129688194438 +0.0081885186790229 1.7231019375659351 +0.0081975852430994 0.8014588080924199 +0.0082054062475801 0.0027879283003712 +0.0082054348211037 -0.0001099999999897 +0.0082054348211037 -0.0001199999999897 +0.0082054474644538 0.0000369971130531 +0.0082136478358582 0.0000366008374101 +0.0082337697498194 0.0000369508417293 +0.0082438256979818 0.0000358481667477 +0.0082647297925546 0.0000361155882361 +0.0082760381468443 0.0003119498539176 +0.0082760401468719 0.0013120951818963 +0.0082885153476722 1.7290112356984977 +0.0083054318310134 0.0038024790020932 +0.0083054703232838 -0.0001100000000140 +0.0083054703232838 -0.0001200000000140 +0.0083054829426617 0.0000367657112109 +0.0083186314064494 0.0000358396828163 +0.0083397379889103 0.0000361151506154 +0.0083583918225365 0.0000369040630257 +0.0083760103191555 0.0003118372884131 +0.0083760123191867 0.0033123296716491 +0.0083810454310044 0.6974741837057019 +0.0083885165123108 1.7329482089682970 +0.0084034269468748 0.2097194820525477 +0.0084054701725519 0.0016225861188724 +0.0084054871239758 -0.0001100000000001 +0.0084054871239758 -0.0001200000000001 +0.0084054997046862 0.0000363548830922 +0.0084229387467339 0.0000358826578961 +0.0084334187274250 0.0000369027882236 +0.0084513163315261 0.0000365320529756 +0.0084688000020689 0.0000358464001768 +0.0084760388210070 0.0003123195200820 +0.0084760408210394 0.0013129687564522 +0.0084885186790672 1.7231050864691067 +0.0084975850726568 0.8014793469498022 +0.0085054062773614 0.0027880405091502 +0.0085054348519941 -0.0001100000000086 +0.0085054348519941 -0.0001200000000086 +0.0085054474953496 0.0000369979360105 +0.0085136444153462 0.0000366001080180 +0.0085337575335988 0.0000369510557414 +0.0085438201546086 0.0000358469891453 +0.0085647609806090 0.0000361137543042 +0.0085760381082516 0.0003119497260323 +0.0085760401082853 0.0013120950719602 +0.0085885153475693 1.7290165106498072 +0.0086054318805039 0.0038024864761706 +0.0086054703728435 -0.0001100000000074 +0.0086054703728435 -0.0001200000000074 +0.0086054829922243 0.0000367666213133 +0.0086186241224161 0.0000358383358514 +0.0086397726239250 0.0000361131213218 +0.0086583769048426 0.0000369059694316 +0.0086760103881946 0.0003118392431868 +0.0086760123882327 0.0033123316193474 +0.0086810454440321 0.6974663733755012 +0.0086885165123813 1.7329384810351769 +0.0087034268409075 0.2097205596018449 +0.0087054700773029 0.0016225788697390 +0.0087054870286567 -0.0001100000000153 +0.0087054870286567 -0.0001200000000153 +0.0087054996093670 0.0000363559633207 +0.0087229232367734 0.0000358818945717 +0.0087334090344514 0.0000369045206193 +0.0087513505874880 0.0000365351838372 +0.0087687873381069 0.0000358445842695 +0.0087760387876616 0.0003123193821244 +0.0087760407877021 0.0013129683471579 +0.0087885186791308 1.7231097839245944 +0.0087975848193295 0.8015098938740456 +0.0088054063218465 0.0027882076772460 +0.0088054348981318 -0.0001099999999423 +0.0088054348981318 -0.0001199999999423 +0.0088054475414949 0.0000369991730410 +0.0088136392853244 0.0000365990096168 +0.0088337391899996 0.0000369513901862 +0.0088438117564198 0.0000358452025700 +0.0088648081952937 0.0000361109642849 +0.0088760380497613 0.0003119495415735 +0.0088760400498044 0.0013120948736691 +0.0088885153474120 1.7290245101449337 +0.0089054319556148 0.0038024981386705 +0.0089054704480629 -0.0001100000000391 +0.0089054704480629 -0.0001200000000391 +0.0089054830674480 0.0000367680320205 +0.0089186128825893 0.0000358362466345 +0.0089398262763694 0.0000361099604364 +0.0089583537798292 0.0000369089536641 +0.0089760104968781 0.0003118423253436 +0.0089760124969273 0.0033123346894167 +0.0089810454628677 0.6974538511829524 +0.0089885165124903 1.7329232036306108 +0.0090034264528334 0.2097448190381340 +0.0090054699279672 0.0016225312482136 +0.0090054868788545 -0.0001099999999959 +0.0090054868788545 -0.0001199999999959 +0.0090054994595636 0.0000363576968639 +0.0090228984793233 0.0000358806562286 +0.0090333934071967 0.0000369073252884 +0.0090514058080027 0.0000365402582720 +0.0090687668723980 0.0000358416157678 +0.0090760387326780 0.0003123191713721 +0.0090760407327317 0.0013129682891703 +0.0090885186792380 1.7231175397415399 +0.0090975844030272 0.8015601357424474 +0.0091054063954160 0.0027884833302445 +0.0091054349744263 -0.0001099999999134 +0.0091054349744263 -0.0001199999999134 +0.0091054476178021 0.0000370012411968 +0.0091136307373008 0.0000365971668634 +0.0091337085663479 0.0000369519835460 +0.0091437975354485 0.0000358421693890 +0.0091648880559262 0.0000361062059090 +0.0091760379506275 0.0003119492541996 +0.0091760399506867 0.0013120945722439 +0.0091885153471444 1.7290380781743540 +0.0092054320831320 0.0038025186219664 +0.0092054705757714 -0.0001100000000869 +0.0092054705757714 -0.0001200000000869 +0.0092054831951639 0.0000367705122382 +0.0092185932637000 0.0000358325674247 +0.0092399205248873 0.0000361043539705 +0.0092583131015257 0.0000369142904290 +0.0092760106930629 0.0003118479051983 +0.0092760126931324 0.0033123402484324 +0.0092810454936810 0.6974308180400675 +0.0092885165126805 1.7328956260645814 +0.0093034260140205 0.2097620113213406 +0.0093054696586234 0.0016224878461724 +0.0093054866090878 -0.0001100000000193 +0.0093054866090878 -0.0001200000000193 +0.0093054991897953 0.0000363609316234 +0.0093228527012513 0.0000358782991636 +0.0093333640071875 0.0000369126417835 +0.0093515097157744 0.0000365499011069 +0.0093687281786799 0.0000358358840703 +0.0093760386249248 0.0003123188147064 +0.0093760406250045 0.0013129676689958 +0.0093885186794398 1.7231327662245057 +0.0093975835933898 0.8016580052496808 +0.0094054065401408 0.0027890227507287 +0.0094054351244843 -0.0001100000000793 +0.0094054351244843 -0.0001200000000793 +0.0094054477678846 0.0000370053998898 +0.0094136136481968 0.0000365934336404 +0.0094336471345016 0.0000369533079160 +0.0094437682363975 0.0000358358837430 +0.0094650522553576 0.0000360962556251 +0.0094760377458289 0.0003119487605813 +0.0094760397459228 0.0013120940403182 +0.0094885153465870 1.7290661328333374 +0.0095054323470812 0.0038025643307525 +0.0095054708401506 -0.0001100000000859 +0.0095054708401506 -0.0001200000000859 +0.0095054834595585 0.0000367760162968 +0.0095185503306558 0.0000358243631652 +0.0095401293680294 0.0000360916631318 +0.0095582226050988 0.0000369265805251 +0.0095760111532136 0.0003118610777853 +0.0095760131533319 0.0033123533747469 +0.0095810455546435 0.6973752722469321 +0.0095885165130985 1.7328310610143618 +0.0096034249227046 0.2098088889029748 +0.0096054690294073 0.0016223750114832 +0.0096054859787729 -0.0001100000000501 +0.0096054859787729 -0.0001200000000501 +0.0096054985594752 0.0000363690979458 +0.0096227393844060 0.0000358720623088 +0.0096332883531002 0.0000369265668150 +0.0096517772708717 0.0000365753395096 +0.0096686272304486 0.0000358201346314 +0.0096760383190512 0.0003123181734724 +0.0096760403192051 0.0013129669550761 +0.0096885186799853 1.7231760757916319 +0.0096975813476247 0.8019305933060838 +0.0097054069527204 0.0027905399513286 +0.0097054355520656 -0.0001100000000816 +0.0097054355520656 -0.0001200000000816 +0.0097054481955340 0.0000370180390594 +0.0097135624309391 0.0000365818215918 +0.0097334614828718 0.0000369584630050 +0.0097436731338997 0.0000358150489737 +0.0097655824604538 0.0000360622960883 +0.0097760370708028 0.0003119481554958 +0.0097760390710244 0.0013120935301183 +0.0097885153447355 1.7291586543390416 +0.0098054332180628 0.0038027413715343 +0.0098054717128177 -0.0001099999999261 +0.0098054717128177 -0.0001199999999261 +0.0098054843322790 0.0000367986216863 +0.0098183817855462 0.0000357898369772 +0.0098409799932098 0.0000360349894570 +0.0098578430301321 0.0000369855833113 +0.0098760134767739 0.0003119303134025 +0.0098760154771775 0.0033124224123439 +0.0098810457515317 0.6970799137884750 +0.0098885165147778 1.7325063149616804 +0.0099034191620085 0.2100736241003643 +0.0099054658797327 0.0016217515908614 +0.0099054828230389 -0.0001099999999381 +0.0099054828230389 -0.0001199999999381 +0.0099054954036986 0.0000364290995361 +0.0099219913374280 0.0000358116433591 +0.0099326744060907 0.0000370570406409 +0.0099539367008631 0.0000368459927764 +0.0099676705547784 0.0000354593530349 +0.0099746906631838 0.0000364200428776 +0.0099760114857909 0.0003129081884501 +0.0099760134878720 0.0013135550101227 +0.0099885186912869 1.7272123246132893 +0.0099973509826421 0.8281553857028152 diff --git a/src/engine/tests/system/gt_data/interleaved/uC.dat b/src/engine/tests/system/gt_data/interleaved/uC.dat index bd51b4fa..8f51c5b5 100644 --- a/src/engine/tests/system/gt_data/interleaved/uC.dat +++ b/src/engine/tests/system/gt_data/interleaved/uC.dat @@ -1,951 +1,854 @@ 0.0000000000000000 0.0000000000000000 -0.0000022863545910 0.0010000000000000 -0.0000041169851967 0.0106712354726670 -0.0000059447658985 0.0283245129808562 -0.0000081562971631 0.0603439048776052 -0.0000104683222125 0.1078839228279170 -0.0000125500685233 0.1552662759448261 -0.0000131717467634 0.1724073091456649 -0.0000146674108781 0.2166484604026066 -0.0000235399746724 0.4798481269041779 -0.0000258775211850 0.5478124483062129 -0.0000276824026059 0.6016259080696166 -0.0000306499018457 0.7078042367220319 -0.0000314821029596 0.7406632826224199 -0.0000325270750249 0.7828178395004705 -0.0000340195639823 0.8478772652385224 -0.0000343108474761 0.8621927446852924 -0.0000349716371083 0.8933885374024729 -0.0000378191994374 1.0393046194011877 -0.0000404626703042 1.1892647868878652 -0.0000467839015213 1.5366152844673486 -0.0000533208732348 1.8827565505768835 -0.0000568769869933 2.0941350999794590 -0.0000613499136963 2.3879100560735389 -0.0000677401010730 2.8509296386014102 -0.0000739309936272 3.2658818167286916 -0.0000793621112756 3.6001378029525886 -0.0000870191820257 4.1170004508183071 -0.0000912078545590 4.4186026974662180 -0.0000965261177426 4.7479126161937604 -0.0001008846867958 4.9760075076811834 -0.0001041697555800 5.1337374910055962 -0.0001127473166583 5.5497209148342987 -0.0001168187901021 5.7549921076129147 -0.0001223882959610 5.9597088657990227 -0.0001367836792916 6.3598142468886367 -0.0001468377762330 6.6541151607371605 -0.0001646890072654 7.0054781312916230 -0.0001731222416463 7.1105099413040955 -0.0001806225850900 7.1506362814364728 -0.0001978663976237 7.3781193698046543 -0.0002063069563963 7.4152640155368283 -0.0002248755163975 7.6482134719075114 -0.0002317732524096 7.6630579983094540 -0.0002463545158061 7.8326355976997011 -0.0002579169151475 7.8746941377153821 -0.0002726994655157 8.0296054181289449 -0.0002762414464617 8.0571722929575351 -0.0002839543891104 8.0955586492971694 -0.0002891880526653 8.1516095110492515 -0.0002998588340398 8.2241958270880708 -0.0003057077105614 8.2252997691004559 -0.0003246560526663 8.3770906918228594 -0.0003307887491920 8.3751574920362035 -0.0003431274596867 8.4963752409269482 -0.0003459611633875 8.5028267277721898 -0.0003492196886390 8.5281863262963249 -0.0003560421631818 8.5238079094876227 -0.0003753813206812 8.6574813602035512 -0.0003808503293188 8.6477579127725388 -0.0004010441649197 8.7534007177993338 -0.0004140092513948 8.8173402252352808 -0.0004229316289679 8.8695445099030028 -0.0004320965816935 8.8598456393626694 -0.0004506749255452 8.9670780790427163 -0.0004559463665960 8.9503189054952141 -0.0004663409272712 9.0296271518661086 -0.0004772280686398 9.0376401829913195 -0.0004786919035069 9.0381807160702508 -0.0004885079868531 9.0734482182593137 -0.0004937860874497 9.1245772947774775 -0.0004976529015059 9.1539145882817099 -0.0005074526036217 9.1344826008814426 -0.0005253622508435 9.2153251462790671 -0.0005326886379795 9.2012043934925440 -0.0005370735032888 9.2010710919360950 -0.0005433954916138 9.2523608636865866 -0.0005482755510591 9.2822348528664786 -0.0005570457472972 9.2563771795228540 -0.0005649807459474 9.3164997785027879 -0.0005757473385098 9.3455290803078448 -0.0005829347385446 9.3265159453901880 -0.0005870210269620 9.3241273128009219 -0.0005942485331785 9.4020171360856306 -0.0006153174855885 9.4170075158878710 -0.0006261238732658 9.4203852059401374 -0.0006377028426615 9.4324650989807104 -0.0006426000619088 9.4856318423686510 -0.0006551453273117 9.4650797737034100 -0.0006637383162290 9.5105959882772861 -0.0006745028325428 9.5457888560856361 -0.0006822172527648 9.5082733349755273 -0.0006888785442993 9.5551025482727638 -0.0006889562947361 9.5557493415180605 -0.0006973770188624 9.5906299381952191 -0.0007084948055601 9.5718516330159371 -0.0007135848413720 9.5974900518147130 -0.0007271456281535 9.6240752601910717 -0.0007377972464244 9.6329159115023124 -0.0007426200709945 9.6835343729425958 -0.0007550001774549 9.6544910186088497 -0.0007631960190912 9.6722159647503272 -0.0007675593745162 9.7191824493297254 -0.0007789523084257 9.6899700720598894 -0.0007835580086512 9.6966397082950468 -0.0007874209041721 9.6974267954824160 -0.0007931958460925 9.7564109198116729 -0.0008100697287297 9.7156070585706544 -0.0008122553884234 9.7444697654648031 -0.0008161123222132 9.7685117055011794 -0.0008296764236632 9.7550337498468878 -0.0008379431754905 9.7681227760031977 -0.0008426090670026 9.8163085293264203 -0.0008548824392616 9.7817520664159705 -0.0008628221865149 9.7940029413393237 -0.0008676339048546 9.8429709246502348 -0.0008899692429322 9.8605662856784964 -0.0008936107940386 9.8743067642803179 -0.0008981608490143 9.8801784684478573 -0.0009075551646852 9.8521228821690752 -0.0009127640287285 9.8493902868720387 -0.0009176310507973 9.8983794470700275 -0.0009299373913192 9.8605651257879696 -0.0009377516379119 9.8707572400426074 -0.0009426589184268 9.9196484066521258 -0.0009643493701499 9.9330406409995611 -0.0009751508934265 9.9486607672731058 -0.0009822003382314 9.8999850592617680 -0.0010000503432541 9.9624043837444614 -0.0010066040726687 9.9375048309852794 -0.0010124364295455 9.9303093464944840 -0.0010177162309349 9.9809109142973362 -0.0010301929306404 9.9385482246395700 -0.0010375043642336 9.9467918776892930 -0.0010427407663787 9.9967451449452440 -0.0010638650908459 10.0039613580759923 -0.0010746643684882 10.0225541207752187 -0.0010822467504490 9.9710477050763338 -0.0010998212267409 10.0315264774003499 -0.0011067545617802 10.0034042612305942 -0.0011123091835658 9.9949352006962364 -0.0011177607844071 10.0457319500573288 -0.0011303121147727 9.9999920466898971 -0.0011372982904634 10.0065531511677399 -0.0011428139934611 10.0573162039710891 -0.0011634649273274 10.0397327537152190 -0.0011676122303727 10.0817430058278639 -0.0011791885852283 10.0370292008284245 -0.0011874152631930 10.0569434560608126 -0.0011945928595557 10.1100091913549708 -0.0011960528020829 10.1076727107849287 -0.0011991526881757 10.1050230130161331 -0.0012072050534753 10.0521244294647936 -0.0012247353980378 10.1094026285477057 -0.0012317733712005 10.0597856697959518 -0.0012508057228365 10.1109148331151779 -0.0012564435941444 10.0669635790458969 -0.0012664008359045 10.1242596417710615 -0.0012691853351567 10.1277457291324300 -0.0012703889454412 10.1343726991794547 -0.0012859542132703 10.0798704841700761 -0.0012947809231098 10.1493112640615610 -0.0013162749771959 10.1021776571991619 -0.0013272417590060 10.0715673937174053 -0.0013368421561413 10.0616108284482682 -0.0013429711733662 10.1144056037258920 -0.0013647889839332 10.1072643099937647 -0.0013759900520151 10.0942549208651311 -0.0013871119385356 10.0742002762846390 -0.0013945848569354 10.1438147850941114 -0.0014167050521476 10.0988373753532361 -0.0014278808032560 10.0636108998839600 -0.0014369422170995 10.0572911397833558 -0.0014429298983103 10.1095149484653763 -0.0014559521015002 10.0576380265645611 -0.0014661438314141 10.1092259234396167 -0.0014775405979007 10.0811732692575546 -0.0014788775918107 10.0762127977763694 -0.0014874934275482 10.0699993375604464 -0.0014946988510320 10.1401994375624813 -0.0015164334780532 10.0943802897625385 -0.0015274640912889 10.0623627477965094 -0.0015368976075525 10.0539628256219267 -0.0015429472421439 10.1065077033000890 -0.0015648308510521 10.1002980256621822 -0.0015760065348163 10.0870224092410332 -0.0015869892951139 10.0665785727585693 -0.0015945903275891 10.1363885603785047 -0.0016166731404231 10.0919157759054432 -0.0016278295736913 10.0573043650825298 -0.0016369519256526 10.0509519210518938 -0.0016429253259389 10.1031921296189857 -0.0016559388061320 10.0516688900803555 -0.0016660833280716 10.1030551400903832 -0.0016770496017422 10.0758358115164466 -0.0016774128260885 10.0744552929329902 -0.0016874699706569 10.0621910472037435 -0.0016946507665645 10.1320097059057037 -0.0017165218811360 10.0873081722321665 -0.0017275946983504 10.0545728623719377 -0.0017369323240588 10.0471355447225719 -0.0017429325167884 10.0995462801806291 -0.0017648570063687 10.0940517805161978 -0.0017760165740508 10.0806820365811216 -0.0017869143800433 10.0600457296421002 -0.0017945954414943 10.1300045148649804 -0.0018166448570553 10.0859664484872855 -0.0018277847448487 10.0518920920572583 -0.0018369598959357 10.0455080701174815 -0.0018429215565833 10.0977642615597194 -0.0018559288600379 10.0465401183225556 -0.0018660379329851 10.0977853141569724 -0.0018768893433386 10.0712285665310404 -0.0018769344330071 10.0711893098428771 -0.0018867000795963 10.0585354094442128 -0.0018947560446302 10.1295730774438599 -0.0019162823199326 10.0838888497518990 -0.0019272694755940 10.0538810635437112 -0.0019369228230243 10.0450084020475270 -0.0019429384617192 10.0975052011498576 -0.0019648552119102 10.0920372094140305 -0.0019760167543838 10.0787599173183882 -0.0019869258464997 10.0582256930769649 -0.0019945943814817 10.1282066077603972 -0.0020166428522363 10.0843244947410078 -0.0020277816581697 10.0503339275841963 -0.0020369633345744 10.0439909737159212 -0.0020429200390702 10.0962438349255397 -0.0020559228470765 10.0451137134732065 -0.0020660151857572 10.0962573928291111 -0.0020768629519835 10.0699989608649734 -0.0020768718901972 10.0701107467485418 -0.0020867025397787 10.0572081301050549 -0.0020947533067529 10.1282472474906982 -0.0021162850584192 10.0827016463684167 -0.0021272732443742 10.0527072351979267 -0.0021369259480877 10.0438978770395959 -0.0021429370795393 10.0963886155594373 -0.0021648584180109 10.0910176152916264 -0.0021760183193232 10.0777373174567746 -0.0021869177993027 10.0571934356259227 -0.0021945949323054 10.1271952142869370 -0.0022166389927363 10.0833854257268687 -0.0022277755885372 10.0494727463065558 -0.0022369646961943 10.0431302469053261 -0.0022429194061549 10.0953849363986308 -0.0022559210656086 10.0443028226474986 -0.0022660075682142 10.0954206124181542 -0.0022768541869151 10.0692750753614106 -0.0022768799903280 10.0692988564065633 -0.0022867089059710 10.0564864253429356 -0.0022947525312427 10.1275427229301371 -0.0023162850689272 10.0820754752500612 -0.0023272732454792 10.0521039381616291 -0.0023369272412416 10.0433163528373282 -0.0023429364700216 10.0958060777118437 -0.0023648600476075 10.0904835334405671 -0.0023760193133780 10.0772025652061163 -0.0023869142419917 10.0566578299650757 -0.0023945951346070 10.1266696632333559 -0.0024166371854955 10.0828984665290058 -0.0024277727480909 10.0490240089604601 -0.0024369654419183 10.0426833883541242 -0.0024429190627727 10.0949387766955496 -0.0024559200436215 10.0438819151087095 -0.0024660033217212 10.0949844352255234 -0.0024768493014993 10.0689005994696661 -0.0024768846099273 10.0688748236861834 -0.0024867126078846 10.0561112265709625 -0.0024947520128646 10.1271754520219091 -0.0025162853178365 10.0817497053056044 -0.0025272735803317 10.0517874371008560 -0.0025369279799403 10.0430131969199028 -0.0025429361312752 10.0955019822328804 -0.0025648610086468 10.0902049802196210 -0.0025760200769797 10.0769226345190397 -0.0025869125399563 10.0563795016669353 -0.0025945951878044 10.1263960440241139 -0.0026166363667739 10.0826455137360558 -0.0026277714590429 10.0487895719376095 -0.0026369658540636 10.0424509220269460 -0.0026429188748696 10.0947065192182706 -0.0026559194521519 10.0436629997259050 -0.0026660009288357 10.0947564483556445 -0.0026768465478084 10.0687066702637509 -0.0026768872729000 10.0686526647565682 -0.0026867147422762 10.0559158453110520 -0.0026947516585793 10.1269834375996712 -0.0027162856257326 10.0815799589245394 -0.0027272739980156 10.0516205941630314 -0.0027369284111804 10.0428547564089552 -0.0027429359391412 10.0953427652583034 -0.0027648616174199 10.0900592512500591 -0.0027760207299265 10.0767752344342991 -0.0027869118466723 10.0562352469496599 -0.0027945951562128 10.1262536606169995 -0.0028166360797262 10.0825145455360392 -0.0028277710036529 10.0486666681272716 -0.0028369660962646 10.0423301692556386 -0.0028429187664598 10.0945856961849199 -0.0028559190739819 10.0435493493111760 -0.0028659994642194 10.0946367396978562 -0.0028768448602794 10.0686070197428510 -0.0028768889698446 10.0685353784805578 -0.0028867160552495 10.0558142378054356 -0.0028947513914145 10.1268828282547485 -0.0029162859610011 10.0814915241603078 -0.0029272744540103 10.0515317818941732 -0.0029369286811042 10.0427717396463887 -0.0029429358235901 10.0952590631562824 -0.0029648620513262 10.0899827601694092 -0.0029760213415013 10.0766968329626021 -0.0029869116833770 10.0561609006943140 -0.0029945950772518 10.1261796764853287 -0.0030166360772262 10.0824471895509014 -0.0030277709941367 10.0486018458785900 -0.0030369662515145 10.0422676512830780 -0.0030429186988977 10.0945229527529499 -0.0030559188068785 10.0434905644184038 -0.0030659984823238 10.0945734611237405 -0.0030768437268269 10.0685565128100674 -0.0030768901664543 10.0684727303510719 -0.0030867169338825 10.0557615093748520 -0.0030947511678307 10.1268298350484436 -0.0031162863144893 10.0814454498504578 -0.0031272749352559 10.0514835777620402 -0.0031369288679293 10.0427280034703461 -0.0031429357477215 10.0952146848198616 -0.0031648623960740 10.0899422990324332 -0.0031760219453098 10.0766543349736004 -0.0031869118230209 10.0561231387083385 -0.0031945949684924 10.1261414419056877 -0.0032166362353155 10.0824131399129939 -0.0032277712361177 10.0485673054731208 -0.0032369663637151 10.0422355913959489 -0.0032429186516923 10.0944905701549335 -0.0032559185850672 10.0434605002320048 -0.0032659977125436 10.0945394813688800 -0.0032768428363785 10.0685319286370696 -0.0032768911561271 10.0684383489285096 -0.0032867176149022 10.0557343758705233 -0.0032947509603536 10.1268017306974674 -0.0033162866915544 10.0814215534178029 -0.0033272754489524 10.0514564825605923 -0.0033369290149721 10.0427047961377873 -0.0033429356913041 10.0951908341533336 -0.0033648627040970 10.0899206702180386 -0.0033760225640238 10.0766305072140554 -0.0033869121269590 10.0561045318926006 -0.0033945948406844 10.1261218906075481 -0.0034166364854796 10.0823965342092681 -0.0034277716221659 10.0485485362310030 -0.0034369664550811 10.0422194607883082 -0.0034429186145327 10.0944740557866268 -0.0034559183867815 10.0434454487630145 -0.0034659970531764 10.0945208115274720 -0.0034768420723282 10.0685208922501381 -0.0034768920397761 10.0684187257407842 -0.0034867181954768 10.0557206015945582 -0.0034947507566850 10.1267865655196658 -0.0035162870907098 10.0814092147140535 -0.0035272759929633 10.0514402817997777 -0.0035369291439994 10.0426922624826478 -0.0035429356441328 10.0951776394762121 -0.0035648630013727 10.0899088256181386 -0.0035760232101761 10.0766163041854622 -0.0035869125306180 10.0560959766382947 -0.0035945946984916 10.1261121006074841 -0.0036166367941630 10.0823890916917005 -0.0036277720996282 10.0485379384874580 -0.0036369665376065 10.0422116683025493 -0.0036429185818265 10.0944658343907516 -0.0036559181947689 10.0434382627503975 -0.0036659964327119 10.0945100485856880 -0.0036768413525410 10.0685170426858281 -0.0036768928943643 10.0684066708711484 -0.0036867187409329 10.0557138139002529 -0.0036947505482106 10.1267781075873859 -0.0037162875160806 10.0814029212113656 -0.0037272765729965 10.0514296208003664 -0.0037369292676888 10.0426852758160461 -0.0037429356005598 10.0951699579442700 -0.0037648632994950 10.0899020414426666 -0.0037760238905346 10.0766070288899634 -0.0037869130092321 10.0560927914347467 -0.0037945945432576 10.1261074749785163 -0.0038166371465857 10.0823865589051564 -0.0038277726453603 10.0485315814149754 -0.0038369666180556 10.0422083086608609 -0.0038429185504976 10.0944620053515166 -0.0038559180008976 10.0434352600557286 -0.0038659958167120 10.0945033916086970 -0.0038768406374510 10.0685170885713848 -0.0038768937569896 10.0683984934949713 -0.0038867192840244 10.0557107202595617 -0.0038947503304572 10.1267731325402277 -0.0039162879689196 10.0813997825118857 -0.0039272771907341 10.0514217016335916 -0.0039369293924160 10.0426811496395576 -0.0039429355575864 10.0951650949547833 -0.0039648636092130 10.0898978619035837 -0.0039760246131424 10.0766001864156483 -0.0039869135411777 10.0560924695570790 -0.0039945943760678 10.1261055536984106 -0.0040166375339870 10.0823866536349822 -0.0040277732455389 10.0485273663530048 -0.0040369666999066 10.0422072886338913 -0.0040429185191122 10.0944604797217181 -0.0040559177967631 10.0434344819044554 -0.0040659951735486 10.0944987403969293 -0.0040768398906543 10.0685193500337355 -0.0040768946649785 10.0683921295591272 -0.0040867198531622 10.0557095829413257 -0.0040947500991955 10.1267699302514504 -0.0041162884550146 10.0813983365340558 -0.0041272778540713 10.0514150549284444 -0.0041369295227732 10.0426785113641390 -0.0041429355134782 10.0951616674429676 -0.0041648639355670 10.0898950222794959 -0.0041760253835382 10.0765945040354818 -0.0041869141217776 10.0560937687374388 -0.0041945941968769 10.1261051098114834 -0.0042166379533196 10.0823882545346954 -0.0042277738954904 10.0485242448949759 -0.0042369667849429 10.0422075750823634 -0.0042429184864815 10.0944602233554619 -0.0042559175841545 10.0434349383694759 -0.0042659945075731 10.0944951540669390 -0.0042768391173037 10.0685228675510920 -0.0042768956094694 10.0683866925266212 -0.0042867204472256 10.0557094986354159 -0.0042947498524525 10.1267676025961890 -0.0043162889763407 10.0813977675446296 -0.0043272785658909 10.0514088704275615 -0.0043369296610955 10.0426766007630448 -0.0043429354668987 10.0951589068676437 -0.0043648642820641 10.0898928188556063 -0.0043760262072971 10.0765892592414357 -0.0043869147494852 10.0560960096074155 -0.0043945940041878 10.1261054653689122 -0.0044166384063833 10.0823907342248837 -0.0044277745979410 10.0485215940652690 -0.0044369668750709 10.0422085808264434 -0.0044429184519846 10.0944606452043448 -0.0044559173570626 10.0434360873813624 -0.0044659937981251 10.0944919793996082 -0.0044768382935196 10.0685272349165000 -0.0044768966175746 10.0683815103999521 -0.0044867210847800 10.0557099843676720 -0.0044947495871805 10.1267656600716496 -0.0045162895381951 10.0813976615088947 -0.0045272793334068 10.0514026935157990 -0.0045369298097260 10.0426750199711439 -0.0045429354171620 10.0951564069640085 -0.0045648646521523 10.0898908830531440 -0.0045760270909148 10.0765840660931101 -0.0045869154273041 10.0560988604427326 -0.0045945937970875 10.1261062818309959 -0.0046166388944950 10.0823938001948612 -0.0046277753549249 10.0485191176682562 -0.0046369669712304 10.0422100306397919 -0.0046429184152136 10.0944614673109783 -0.0046559171127057 10.0434376735590281 -0.0046659930359369 10.0944889116279537 -0.0046768374086299 10.0685322569998572 -0.0046768977011513 10.0683762705508943 -0.0046867217752628 10.0557108082235196 -0.0046947493006474 10.1267638563952715 -0.0047162901459516 10.0813978226442487 -0.0047272801642044 10.0513962775429899 -0.0047369299709528 10.0426735793309909 -0.0047429353635839 10.0951539660121181 -0.0047648650487920 10.0898890339647167 -0.0047760280412136 10.0765787229036121 -0.0047869161599473 10.0561021829930262 -0.0047945935740158 10.1261074077659927 -0.0048166394209504 10.0823973303433938 -0.0048277761715955 10.0485166614249799 -0.0048369670744281 10.0422118020260136 -0.0048429183757889 10.0944625624820716 -0.0048559168506720 10.0434395778485008 -0.0048659922195045 10.0944858241468083 -0.0048768364608907 10.0685378266190266 -0.0048768988626104 10.0683708440195456 -0.0048867225222431 10.0557118517971755 -0.0048947489907257 10.1267620540080454 -0.0049162908034940 10.0813981268009201 -0.0049272810635552 10.0513894607600101 -0.0049369301460543 10.0426721527158733 -0.0049429353056597 10.0951514508244919 -0.0049648654769578 10.0898871599035420 -0.0049760290671233 10.0765730724390163 -0.0049869169486895 10.0561058758872495 -0.0049945933335445 10.1261087284306441 -0.0050166399888098 10.0824012341052818 -0.0050277770527189 10.0485141039735311 -0.0050369671854896 10.0422138019295151 -0.0050429183333780 10.0944638335305754 -0.0050559165688769 10.0434417147144650 -0.0050659913421840 10.0944825932568634 -0.0050768354426453 10.0685438946628718 -0.0050769001109622 10.0683650946976506 -0.0050867233336015 10.0557130309667642 -0.0050947486540331 10.1267601413562254 -0.0051162915184747 10.0813985219978726 -0.0051272820422554 10.0513821103274985 -0.0051369303378376 10.0426706806918311 -0.0051429352427387 10.0951487861082274 -0.0051648659368745 10.0898851803668421 -0.0051760301758609 10.0765670453295328 -0.0051869178105651 10.0561099946895265 -0.0051945930726540 10.1261102708183639 -0.0052166406052850 10.0824055719445571 -0.0052277780095884 10.0485114233592405 -0.0052369673058367 10.0422160665182290 -0.0052429182874559 10.0944653073042101 -0.0052559162649107 10.0434441178715801 -0.0052659903966124 10.0944792059676782 -0.0052768343453564 10.0685505244670104 -0.0052769014572068 10.0683589838884142 -0.0052867242182265 10.0557143590747327 -0.0052947482872680 10.1267580996358966 -0.0053162922973450 10.0813989870803908 -0.0053272831092731 10.0513741359590973 -0.0053369305483860 10.0426691306756410 -0.0053429351741170 10.0951459253521403 -0.0053648664363158 10.0898830760497269 -0.0053760313804652 10.0765605443049786 -0.0053869187449790 10.0561145083417554 -0.0053945927896033 10.1261119852889507 -0.0054166412743318 10.0824103159975280 -0.0054277790483486 10.0485085485003314 -0.0054369674363216 10.0422185580442314 -0.0054429182376671 10.0944669408692427 -0.0054559159347201 10.0434467594291359 -0.0054659893701766 10.0944755596429712 -0.0054768331544991 10.0685577508395063 -0.0054769029182509 10.0683523823765153 -0.0054867251900194 10.0557158034213536 -0.0054947478856915 10.1267558595750149 -0.0055162931503085 10.0813995068612634 -0.0055272842788661 10.0513654126911476 -0.0055369307810358 10.0426674695164717 -0.0055429350988612 10.0951428147736788 -0.0055648669802320 10.0898808063261001 -0.0055760326933431 10.0765534863974118 -0.0055869197616421 10.0561194488031269 -0.0055945924813908 10.1261138735428080 -0.0056166420030367 10.0824155014322461 -0.0056277801800921 10.0485054342877529 -0.0056369675783750 10.0422212891519003 -0.0056429181834431 10.0944687373865989 -0.0056559155725413 10.0434496608416310 -0.0056659882450756 10.0944715681707748 -0.0056768318495582 10.0685656785992546 -0.0056769045183905 10.0683451611342925 -0.0056867262678324 10.0557173707958274 -0.0056947474434796 10.1267533814686779 -0.0057162940898774 10.0814000934312773 -0.0057272855687408 10.0513558168954855 -0.0057369310404895 10.0426656941927561 -0.0057429350159065 10.0951394224518403 -0.0057648675719348 10.0898783410639812 -0.0057760341284083 10.0765458219890842 -0.0057869208808105 10.0561249418894167 -0.0057945921437796 10.1261160191073074 -0.0058166428016199 10.0824212541212628 -0.0058277814208498 10.0485020881338070 -0.0058369677338605 10.0422243479649378 -0.0058429181241546 10.0944707728663463 -0.0058559151804320 10.0434528894422286 -0.0058659870280977 10.0944673333662749 -0.0058768304383019 10.0685743294889054 -0.0058769062509592 10.0683374167713424 -0.0058867274517580 10.0557190850906082 -0.0058947469563318 10.1267506329990233 -0.0059162951253286 10.0814007359872768 -0.0059272869920032 10.0513452373706436 -0.0059369313302013 10.0426637824139622 -0.0059429349243633 10.0951357038881167 -0.0059648682199487 10.0898756551701378 -0.0059760357045045 10.0765374475407690 -0.0059869221127290 10.0561310354513793 -0.0059945917728552 10.1261184292865121 -0.0060166436793304 10.0824276239671207 -0.0060277827850996 10.0484984548907939 -0.0060369679046362 10.0422277545259355 -0.0060429180590302 10.0944730546277750 -0.0060559147477613 10.0434564857318893 -0.0060659856863944 10.0944626985713075 -0.0060768288829008 10.0685839005752751 -0.0060769081600431 10.0683289189374197 -0.0060867287757362 10.0557209685609976 -0.0060947464151133 10.1267475697660458 -0.0061162962758740 10.0814014604545630 -0.0061272885761170 10.0513334914496824 -0.0061369316579485 10.0426617446337136 -0.0061429348225198 10.0951316204387567 -0.0061648689317132 10.0898727293280679 -0.0061760374429767 10.0765282828513811 -0.0061869234782081 10.0561378667550834 -0.0061945913631933 10.1261211857620221 -0.0062166446491914 10.0824347476354390 -0.0062277842932622 10.0484945209860843 -0.0062369680930849 10.0422315985931974 -0.0062429179871888 10.0944756564532696 -0.0062559142704836 10.0434605338021541 -0.0062659842078697 10.0944576700275093 -0.0062768271694076 10.0685945225336386 -0.0062769102637906 10.0683196304205467 -0.0062867302586956 10.0557230586886490 -0.0062947458111305 10.1267441452272262 -0.0063162975604173 10.0814022920751114 -0.0063272903483246 10.0513203987324609 -0.0063369320319856 10.0426595988347440 -0.0063429347086530 10.0951271369376379 -0.0063648697186861 10.0898695594189078 -0.0063760391736772 10.0763922316571577 -0.0063840159218190 10.0472303141704060 -0.0063965094861236 10.1165891091132689 -0.0064135368597269 10.0571207543870500 -0.0064243382639677 10.0774261854977105 -0.0064319379606287 10.0266148031924587 -0.0064504463354025 10.0812940614005022 -0.0064565004887494 10.0362400435700483 -0.0064665660790444 10.0949982078848173 -0.0064693401099293 10.0982293618117644 -0.0064704868371760 10.1047706927278718 -0.0064858432901171 10.0511481267241702 -0.0064948301416544 10.1211684394965609 -0.0065161063383612 10.0756564754067668 -0.0065270348512162 10.0478243216770249 -0.0065368990633393 10.0378781924354090 -0.0065429462585943 10.0906131796990408 -0.0065560064912288 10.0393098007870787 -0.0065662896792030 10.0918811906115256 -0.0065771902080619 10.0625853644613983 -0.0065778795197051 10.0599112378744877 -0.0065872554762429 10.0506080498904105 -0.0065946823310240 10.1211403575390690 -0.0066164237300083 10.0769497192765307 -0.0066274501891483 10.0456688122610203 -0.0066369332465765 10.0377995111304958 -0.0066429310565393 10.0903189143133982 -0.0066648784076278 10.0854364556375398 -0.0066760426904396 10.0720102700576941 -0.0066778606564984 10.0626449074477957 -0.0066877463949243 10.0550782320211916 -0.0066946915107778 10.1250931170567302 -0.0067164853853402 10.0804088953775768 -0.0067275405297459 10.0479333134851085 -0.0067369093612569 10.0401783972709921 -0.0067429411052991 10.0928184447826084 -0.0067648581725412 10.0875958497250142 -0.0067760364945570 10.0744657581464558 -0.0067869702158370 10.0543552666689813 -0.0067945865163255 10.1243253123464800 -0.0068166516264719 10.0808427233573479 -0.0068277953783477 10.0468849116588963 -0.0068369733701612 10.0407370665572966 -0.0068429157750312 10.0929657334814920 -0.0068559036926340 10.0420589890278276 -0.0068659482995980 10.0928699660058179 -0.0068767858926379 10.0674433662873515 -0.0068769564782495 10.0667125209125832 -0.0068867689464299 10.0544359056045955 -0.0068947389476573 10.1254413954138531 -0.0069163092681362 10.0802625981239178 -0.0069273067782567 10.0500959682369384 -0.0069369381290575 10.0415799965444119 -0.0069429325692702 10.0940221938733767 -0.0069648759046147 10.0888713415262963 -0.0069760448723661 10.0753603148350415 -0.0069778626406878 10.0659766406028801 -0.0069877342902433 10.0582906069076916 -0.0069946901311872 10.1282616480415921 -0.0070164962286238 10.0833404866290284 -0.0070275564365931 10.0506374302248549 -0.0070369050670866 10.0428671045769420 -0.0070429431532593 10.0955011119224860 -0.0070648534623514 10.0900661594325864 -0.0070760384081711 10.0769134362618153 -0.0070869904831574 10.0568616288692247 -0.0070945845217590 10.1267707487116905 -0.0071166625522962 10.0831201806490647 -0.0071278126102547 10.0489557859492500 -0.0071369703812953 10.0428198686265961 -0.0071429171844045 10.0950422664787336 -0.0071559071297163 10.0440223263094559 -0.0071659634286984 10.0948781277110804 -0.0071768229421964 10.0692216634640879 -0.0071769198713813 10.0688764261201147 -0.0071867433546371 10.0562795276518226 -0.0071947404577703 10.1272422006828382 -0.0072163102405194 10.0818973971770038 -0.0072273097122500 10.0516603458628158 -0.0072369378777034 10.0431598292025868 -0.0072429349950473 10.0955841461979645 -0.0072648706986117 10.0902888018243093 -0.0072760459628833 10.0767952533097116 -0.0072778639614089 10.0674028549694636 -0.0072877276773437 10.0596710074817643 -0.0072946888937046 10.1296183040491385 -0.0073165023300998 10.0846021541358848 -0.0073275653908396 10.0517852475182643 -0.0073369034999041 10.0440199137439166 -0.0073429439214106 10.0966496269233588 -0.0073648525274454 10.0911243718394310 -0.0073760412679093 10.0778229396325330 -0.0073778723770721 10.0683569300769573 -0.0073877245701051 10.0606470911771506 -0.0073946889498702 10.1305856737393896 -0.0074165045534273 10.0854932592088602 -0.0074275686399478 10.0526190510564923 -0.0074369019522406 10.0448404503698931 -0.0074429446437250 10.0974697941834819 -0.0074648511548928 10.0918776583979302 -0.0074760420897028 10.0785684388174861 -0.0074778726200017 10.0691013887541168 -0.0074877213282615 10.0613641595187175 -0.0074946883861604 10.1312908593512550 -0.0075165075474301 10.0861481835523961 -0.0075275730497894 10.0532167401931236 -0.0075369010940075 10.0454394147588264 -0.0075429450611034 10.0980667821383001 -0.0075648504689295 10.0924276572079314 -0.0075760431680185 10.0791094516226138 -0.0075778722831126 10.0696469881647932 -0.0075877185799801 10.0618864252136344 -0.0075946877807894 10.1318029013661342 -0.0076165101654819 10.0866256161138068 -0.0076275769075968 10.0536476094853775 -0.0076369005562148 10.0458747386900349 -0.0076429453296700 10.0985001378545434 -0.0076648502228200 10.0928272150372464 -0.0076760444561055 10.0795000155122931 -0.0076778715086867 10.0700464667980185 -0.0076877161627220 10.0622654937368843 -0.0076946871295233 10.1321728528872548 -0.0077165125417899 10.0869726287130330 -0.0077275804102690 10.0539555205760731 -0.0077369002616003 10.0461897146946306 -0.0077429454856613 10.0988131069688034 -0.0077648503238837 10.0931161202225592 -0.0077760459455934 10.0797796886963447 -0.0077778703628150 10.0703387606893049 -0.0077877139493822 10.0625392018249897 -0.0077946864244574 10.1324381005107060 -0.0078165147854348 10.0872237309278869 -0.0078275837184328 10.0541725091310834 -0.0078369001554903 10.0464160507993778 -0.0078429455549094 10.0990373507585787 -0.0078648507065525 10.0933235088577415 -0.0078760476372921 10.0799774195690723 -0.0078778688868494 10.0705524374957367 -0.0078877118407165 10.0627352673016937 -0.0078946856567894 10.1326260069703764 -0.0079165169832197 10.0874042110407824 -0.0079275869602003 10.0543219733412812 -0.0079369001989956 10.0465769618455329 -0.0079429455558619 10.0991960422096430 -0.0079648513269760 10.0934707135456971 -0.0079760495405871 10.0801143632603019 -0.0079778671019126 10.0707084699852061 -0.0079877097567344 10.0628739815030173 -0.0079946848164833 10.1327565740844889 -0.0080165192067475 10.0875325866356285 -0.0080275902415562 10.0544209566995502 -0.0080369003651821 10.0466894233654376 -0.0080429455014380 10.0993061170550256 -0.0080648521566268 10.0935733262277161 -0.0080760516721200 10.0802059511529674 -0.0080778650134026 10.0708222630084787 -0.0080877076302684 10.0629701863564716 -0.0080946838917478 10.1328443954666341 -0.0081165215186286 10.0876224149463702 -0.0081275936554878 10.0544818234517503 -0.0081369006363801 10.0467658336082941 -0.0081429454002437 10.0993799317131092 -0.0081648531810574 10.0936427362251244 -0.0081760540574491 10.0802633934067423 -0.0081778626112400 10.0709051550001352 -0.0081877054010512 10.0630347179210577 -0.0081946828683440 10.1329000799737354 -0.0082165239774857 10.0876836097659499 -0.0082275972893690 10.0545134717248565 -0.0082369010022350 10.0468152205962955 -0.0082429452588920 10.0994264822806965 -0.0082648543919214 10.0936872148014594 -0.0082760567296098 10.0802948239794361 -0.0082778598737445 10.0709655288329305 -0.0082877030116797 10.0630755007791830 -0.0082946817293641 10.1329313340623592 -0.0083165266406159 10.0877234249279031 -0.0083276012288851 10.0545222513891002 -0.0083369014580653 10.0468441470573531 -0.0083429450776115 10.0994522550608199 -0.0083648558007845 10.0937128035021964 -0.0083760597357622 10.0803059937640995 -0.0083778567598740 10.0710095761663165 -0.0083877004027094 10.0630982285460195 -0.0083946804532854 10.1329436177320318 -0.0084165295709686 10.0877471044551239 -0.0084276055686046 10.0545125127467916 -0.0084369020048857 10.0468572939023151 -0.0084429448577429 10.0994618799318143 -0.0084648574194447 10.0937237797793475 -0.0084760631336686 10.0803009622212230 -0.0084778532163592 10.0710419308490149 -0.0084876975092568 10.0631070247068166 -0.0084946790136718 10.1329407974065848 -0.0085165328386389 10.0877584618756266 -0.0085276104142075 10.0544871477178717 -0.0085369026482983 10.0468579926732975 -0.0085429445974678 10.0994586136116133 -0.0085648592715795 10.0937231851883986 -0.0085760669992040 10.0802824711935290 -0.0085778491691087 10.0710661253899101 -0.0085876942551381 10.0631048243404706 -0.0085946773765717 10.1329255019503055 -0.0086165365284653 10.0877602551319860 -0.0086276158941294 10.0544478662229047 -0.0086369033993206 10.0468485522388615 -0.0086429442926954 10.0994446693535540 -0.0086648613912118 10.0937131143853716 -0.0086760714311989 10.0802522494932969 -0.0086778445190494 10.0710849425536502 -0.0086876905474426 10.0630936868045282 -0.0086946754983040 10.1328994136541564 -0.0087165407452850 10.0877544558998196 -0.0087276221677111 10.0543953964264947 -0.0087369042746980 10.0468304925853005 -0.0087429439368902 10.0994214452522435 -0.0087648638274043 10.0936949408077279 -0.0087760765614395 10.0802111853148553 -0.0087778391319324 10.0711006949043469 -0.0087876862672348 10.0630750012299046 -0.0087946733210055 10.1328634345566044 -0.0088165456253406 10.0877424650459826 -0.0088276294429172 10.0543295644286292 -0.0088369052988035 10.0468047123167317 -0.0088429435204703 10.0993896792354452 -0.0088648666442551 10.0936694486800267 -0.0088760825663846 10.0801594690406677 -0.0088778328270959 10.0711154904891611 -0.0088876812575278 10.0630496749363552 -0.0088946707670663 10.1328178277828655 -0.0089165513491147 10.0877252784060207 -0.0089276379965109 10.0542493092436303 -0.0089369065058049 10.0467716051566551 -0.0089429430298976 10.0993495500754431 -0.0089648699292716 10.0936369497788423 -0.0089760896892828 10.0800966302890860 -0.0089778253547872 10.0711315096936840 -0.0089876753043093 10.0630182588194597 -0.0089946677291318 10.1327622559961608 -0.0090164851828114 10.0879552607172975 -0.0090275381536422 10.0556121041600690 -0.0090369235283704 10.0478512161946174 -0.0090429360911014 10.1003088601061037 -0.0090567204617842 10.0475230735632390 -0.0090759363601462 10.0988077575590101 -0.0090814321293742 10.0558895349706070 -0.0091017538633240 10.0821550981076253 -0.0091119236278008 10.0702488618264230 -0.0091179383444381 10.1226731258227112 -0.0091309310615924 10.0706868953837603 -0.0091411061480313 10.1216015313109864 -0.0091676320852593 10.1552112117192230 -0.0091749353651680 10.1739016922669219 -0.0091764622315363 10.1387509447064339 -0.0091811158398684 10.1262190019915295 -0.0091908104245645 10.1773191613916012 -0.0091938337262609 10.1828984808651999 -0.0091961023724840 10.1890975481093804 -0.0092106305962168 10.1251226037655844 -0.0092187636582717 10.1837550530206880 -0.0092383399306526 10.1406395478183473 -0.0092426412221343 10.1828900963338977 -0.0092547407755063 10.1333957419842289 -0.0092618651155372 10.1333996649113587 -0.0092679733417617 10.1851462601983762 -0.0092805025807962 10.1302847351038174 -0.0092868000306627 10.1330423924150725 -0.0092947489767746 10.2026444776716030 -0.0093164678072204 10.1512342730038405 -0.0093275098449599 10.1167396271376102 -0.0093367734770299 10.1066224663525723 -0.0093430054199409 10.1592628945652468 -0.0093647282772636 10.1485727396894934 -0.0093761097767492 10.1349328145303659 -0.0093778910409018 10.1254305023723603 -0.0093874782377542 10.1156784915402032 -0.0093946481808098 10.1846455954780737 -0.0094166558248916 10.1359044602045305 -0.0094277958233821 10.0998773914368165 -0.0094368453793333 10.0918548991334838 -0.0094429731446786 10.1442495841603026 -0.0094647927630729 10.1350732879089360 -0.0094761425141020 10.1211309330365022 -0.0094778330041762 10.1122001532066967 -0.0094874973617883 10.1025810867997734 -0.0094946372579617 10.1716134331766632 -0.0095166495263200 10.1240160122925147 -0.0095277859910791 10.0885032034626878 -0.0095368726556094 10.0808326212014929 -0.0095429605378001 10.1331981546230718 -0.0095566687394579 10.0786725918289282 -0.0095760178075382 10.1084495392253544 -0.0095833018619773 10.0826937324614221 -0.0095976221117568 10.1491380174472585 -0.0096097589622432 10.1000994711365468 -0.0096132850322066 10.0965996120523211 -0.0096176166247680 10.1395687458872263 -0.0096297460198807 10.0918705739652754 -0.0096369883639364 10.0933079909529884 -0.0096429204255823 10.1450382983045291 -0.0096625681035224 10.1213521365500974 -0.0096677460030822 10.1689124961700248 -0.0096797725266219 10.1185289724145431 -0.0096868956455248 10.1387841893518775 -0.0096997348631574 10.1827625823606347 -0.0097068567694958 10.1303257814174295 -0.0097254642971035 10.1801702176232638 -0.0097315495499500 10.1324351367789145 -0.0097512480826247 10.1569691628721959 -0.0097618598792827 10.1384524244941634 -0.0097679710705295 10.1904095339118044 -0.0097804701351793 10.1359190468226537 -0.0097868297917119 10.1386377378855794 -0.0097948176571243 10.2088703179665732 -0.0098163313619432 10.1563657006392525 -0.0098273127974152 10.1232120175912730 -0.0098367370724377 10.1118199461546876 -0.0098430221641342 10.1646130198273177 -0.0098566690164631 10.1079098233529248 -0.0098759637432529 10.1555253763522391 -0.0098815703057926 10.1099452986884319 -0.0098915944032089 10.1682662179412677 -0.0098941935936543 10.1700560512910378 -0.0098945037845344 10.1764008592941462 -0.0099169938077266 10.1293414026930257 -0.0099283753958454 10.0893923475566467 -0.0099369015581781 10.0844519306611851 -0.0099429498522389 10.1365956668902513 -0.0099560341774180 10.0831536505049435 -0.0099665460719599 10.1362719044660015 -0.0099788234344341 10.1106772888956034 -0.0099846737870672 10.1129228142875984 -0.0099888736871914 10.1303056947085910 -0.0099896478991849 10.1346063046685231 +0.0000022863542549 0.0010000000000000 +0.0000041169848599 0.0106712339925147 +0.0000059447655615 0.0283245100203259 +0.0000081562968290 0.0603438796525047 +0.0000103734829134 0.1040934043787156 +0.0000125930743550 0.1595408284538745 +0.0000217254191219 0.4304240520490002 +0.0000273973345512 0.5955123271054623 +0.0000292853964889 0.6599897814466505 +0.0000315684088245 0.7486050976169456 +0.0000338767311185 0.8499597519313669 +0.0000362261967696 0.9650276931187601 +0.0000385578832448 1.0930760577211145 +0.0000449851313793 1.4497610535390806 +0.0000542451932832 1.9456154781933275 +0.0000578619500015 2.1662280226279771 +0.0000617852983763 2.4304157151254207 +0.0000668175187350 2.7975325283303425 +0.0000726476606589 3.1924475576072910 +0.0000809579546316 3.7121086402572328 +0.0000886615976939 4.2498972921764189 +0.0000938526841142 4.5950302404128784 +0.0000989935695955 4.8864006039316976 +0.0001078770795252 5.3095850397731104 +0.0001162670795178 5.7325811944010701 +0.0001217135447301 5.9387473123555043 +0.0001383065285301 6.4030572568656066 +0.0001417775875430 6.5262854720012173 +0.0001479824915446 6.6836422946764396 +0.0001596400843463 6.8879043773924957 +0.0001670215287736 7.0433700791288709 +0.0001755369383303 7.1252969982372578 +0.0001801194144887 7.1446997905366052 +0.0001899285303215 7.2952275111160887 +0.0001989434634408 7.3842855774291927 +0.0002054753155686 7.4095924231526960 +0.0002232089688594 7.6183708823244434 +0.0002308194479341 7.6440071789987893 +0.0002478453242020 7.8307373920343446 +0.0002561473893642 7.8541510764655866 +0.0002725568566991 8.0228009804704978 +0.0002814845709757 8.0431901405385151 +0.0002976362951678 8.1980531374670136 +0.0003066130366868 8.2123113267408865 +0.0003231415327775 8.3577464012271658 +0.0003314250030732 8.3631287524730809 +0.0003492138025342 8.5031519081785465 +0.0003560177777283 8.4994268449794124 +0.0003754850942958 8.6341758401427224 +0.0003807787205853 8.6249116484412180 +0.0004014793106472 8.7355744035093572 +0.0004132941738355 8.7833022540478840 +0.0004173767779500 8.8360493260781130 +0.0004298265652767 8.8456569135428129 +0.0004406279760108 8.9247535274978080 +0.0004514094253758 8.9421881358261004 +0.0004632196303532 8.9788212436445871 +0.0004674251121391 9.0308229891360305 +0.0004798385674101 9.0311741923691375 +0.0004899201230587 9.0980019340892966 +0.0005006838014565 9.1343686210518449 +0.0005060481836406 9.1137684127303427 +0.0005153411135381 9.1807733748337821 +0.0005242580112775 9.2130150534696984 +0.0005314393823274 9.1895166131894257 +0.0005402281474719 9.2536754384175897 +0.0005491457977134 9.2851029852078781 +0.0005565431665729 9.2595413495429550 +0.0005649373926250 9.3198513726664078 +0.0005738566105258 9.3519552078072135 +0.0005817556726375 9.3242119414470057 +0.0005896933839748 9.3811813183229233 +0.0005986138702903 9.4137160899686716 +0.0006069704523437 9.3838193577536799 +0.0006144638306052 9.4378215284035125 +0.0006233855109652 9.4708163569886619 +0.0006322024901555 9.4388071816981203 +0.0006392526217485 9.4902098327049895 +0.0006500217057200 9.5210749747117518 +0.0006564009005906 9.4895441890305072 +0.0006639217151582 9.5372701505682063 +0.0006746905645787 9.5699638266077454 +0.0006815151213590 9.5361585824568991 +0.0006887715702904 9.5819584972990288 +0.0006995393875934 9.6147846790346509 +0.0007066079350974 9.5792495414212588 +0.0007136327943760 9.6233542852535781 +0.0007225629858032 9.6586767106421583 +0.0007332979994291 9.6187073622705626 +0.0007477569606448 9.6968231491496049 +0.0007580298418973 9.6552462488809976 +0.0007733378296716 9.7318181293167605 +0.0007824986532275 9.6895862983230518 +0.0007996042246963 9.7622836056989932 +0.0008066826389274 9.7224651610756840 +0.0008131430846548 9.7415112914211299 +0.0008175761175505 9.7883965421648558 +0.0008297566740673 9.7555495390759628 +0.0008378926432322 9.7683871508187252 +0.0008426178413729 9.8169586268921094 +0.0008548815524105 9.7822594979895676 +0.0008628193545616 9.7943332170097257 +0.0008676344178513 9.8432316168334335 +0.0008799208553531 9.8072316324637718 +0.0008877516582262 9.8184619456990738 +0.0008926508861829 9.8676486574616575 +0.0009049611342659 9.8304217365694662 +0.0009126876889370 9.8408976696680082 +0.0009176671548922 9.8903484146991936 +0.0009300032794604 9.8519625186936519 +0.0009376803375162 9.8620829039997773 +0.0009426717425699 9.9113840476132147 +0.0009550052758467 9.8720668766826343 +0.0009626254904728 9.8814571648082552 +0.0009677015723419 9.9309974373115466 +0.0009801006743234 9.8904432138821825 +0.0009875751253434 9.8994749540893672 +0.0009927161826098 9.9491984759628522 +0.0010051417409576 9.9076758572109451 +0.0010125247039371 9.9162270643290871 +0.0010177309965904 9.9661396240671785 +0.0010301847248653 9.9236938304858544 +0.0010374771202455 9.9318229637961046 +0.0010427454692556 9.9819097483960331 +0.0010552275638999 9.9385897887128767 +0.0010624320276944 9.9463435402411324 +0.0010677691492263 9.9966490983692715 +0.0010803071784685 9.9523501493522790 +0.0010873895443567 9.9598900276012063 +0.0010927803496955 10.0103172830519522 +0.0011053398429603 9.9652710221517022 +0.0011123487877898 9.9724836137000885 +0.0011177922565796 10.0230361643906640 +0.0011303764680198 9.9772683363388381 +0.0011373104357277 9.9842030290806800 +0.0011428051959553 10.0348868914980685 +0.0011554180457835 9.9884140094582268 +0.0011622741149355 9.9951191295507211 +0.0011678177075075 10.0459256587028989 +0.0011804589634088 9.9987848581545116 +0.0011872397202020 10.0052877263472784 +0.0011928298023942 10.0562090326435971 +0.0012054992176934 10.0084353351279365 +0.0012122071537228 10.0147607279061308 +0.0012178414779632 10.0657895454686237 +0.0012305387479061 10.0174161448062886 +0.0012371763163437 10.0235862957466040 +0.0012428527359974 10.0747159629947465 +0.0012555775100943 10.0257742970846433 +0.0012621471145192 10.0318091677733534 +0.0012678635800244 10.0830335654818448 +0.0012806154666228 10.0335534183569202 +0.0012871194599849 10.0394709140671541 +0.0012928740150749 10.0907844103375517 +0.0013056525857824 10.0407940063924261 +0.0013120932694660 10.0466101721022909 +0.0013178840474474 10.0980075733145185 +0.0013306888411935 10.0475336651630816 +0.0013370684560553 10.0532628687313341 +0.0013428936874902 10.1047394286109480 +0.0013557242247860 10.0538073215470369 +0.0013620449609390 10.0594624398596100 +0.0013679029378944 10.1110136697808386 +0.0013807589106298 10.0596481492428111 +0.0013905896569224 10.1076418525136411 +0.0014013949963266 10.0846160766946191 +0.0014117627549620 10.0700448584699238 +0.0014180074173794 10.1232243013763163 +0.0014314470260542 10.0690165088763219 +0.0014516519191741 10.0941138641560322 +0.0014617609226927 10.0805449036814636 +0.0014680088592639 10.1336001332976320 +0.0014814544150139 10.0788852011369681 +0.0015016075323041 10.1037208935740033 +0.0015117339743270 10.0895400609181003 +0.0015180218949737 10.1426419379517903 +0.0015316475927521 10.0870069032092893 +0.0015510600552216 10.1147200559256980 +0.0015616277088558 10.0969151049560466 +0.0015680731725448 10.1505549056504698 +0.0015896847084785 10.1392150803847159 +0.0016004899529711 10.1447097142301637 +0.0016065369436752 10.0977718674511756 +0.0016263560832682 10.1234002302334094 +0.0016366660757892 10.1075321906950162 +0.0016430551498487 10.1610593360520589 +0.0016647649418210 10.1500973976840108 +0.0016755708445799 10.1543803495571918 +0.0016815201684510 10.1076551557822931 +0.0017013816048076 10.1326120354501423 +0.0017116502865369 10.1165467504818629 +0.0017180634211701 10.1700480543234359 +0.0017397387856896 10.1583776502005421 +0.0017505446371598 10.1626825799987337 +0.0017565264154555 10.1156188982085702 +0.0017763471258351 10.1403739740533201 +0.0017866290684315 10.1238188614414479 +0.0017930742777166 10.1773483374628686 +0.0018147084003125 10.1650416116447584 +0.0018255141541638 10.1694659966116951 +0.0018315335334919 10.1220755223396051 +0.0018513137424716 10.1467028899072176 +0.0018616110702810 10.1297173665916382 +0.0018680835580258 10.1832732006079762 +0.0018896828396911 10.1704445395933760 +0.0019004885098541 10.1749761528013334 +0.0019065395908231 10.1273150687677571 +0.0019262860855233 10.1518439856558871 +0.0019365964006738 10.1345053379481449 +0.0019430911825498 10.1880821458160042 +0.0019646619893161 10.1748295390337518 +0.0019754675916857 10.1794495445358351 +0.0019815445877523 10.1315680242259365 +0.0020012635565216 10.1560186312267877 +0.0020115844957116 10.1383925871863365 +0.0020180974111647 10.1919858809554658 +0.0020396450437967 10.1783892516768013 +0.0020504505915218 10.1830813692207212 +0.0020565486866663 10.1350206570248904 +0.0020762452442261 10.1594085629628861 +0.0020865748371645 10.1415488806794212 +0.0020931024916014 10.1951551753084235 +0.0021146312784030 10.1812793626869436 +0.0021254367820520 10.1860302046567739 +0.0021315520414514 10.1378238783410719 +0.0021512303645323 10.1621614327201719 +0.0021615669998831 10.1441118628478719 +0.0021681066319811 10.1977284572765647 +0.0021896200959526 10.1836260382303809 +0.0022004255639986 10.1884246850984077 +0.0022065547833442 10.1401000370396304 +0.0022262182744773 10.1643970762554794 +0.0022365606391782 10.1461931908136425 +0.0022431100040624 10.1998179787567977 +0.0022646110134856 10.1855316110531930 +0.0022754164527528 10.1903691408196941 +0.0022815570212985 10.1419483635427898 +0.0023012084526479 10.1662127406100442 +0.0023115554762237 10.1478834649458634 +0.0023181127489674 10.2015147931973189 +0.0023396036355181 10.1870790805955291 +0.0023504090514945 10.1919482396680134 +0.0023565588464784 10.1434493608193392 +0.0023762004731284 10.1676873746316243 +0.0023865512848559 10.1492562147672825 +0.0023931149824457 10.2028927792648467 +0.0024145976426882 10.1883358067363954 +0.0024254030398068 10.1932306829270729 +0.0024315603337470 10.1446683549959520 +0.0024511939909250 10.1688850634309667 +0.0024615478819549 10.1503711255208948 +0.0024681167991495 10.2040118920493814 +0.0024895927748787 10.1893564547445870 +0.0025003981567176 10.1942722378893897 +0.0025065615449219 10.1456583658841772 +0.0025261887252043 10.1698578407450437 +0.0025365451189826 10.1512766507753192 +0.0025431182764486 10.2049207960333490 +0.0025645888207140 10.1901853975701790 +0.0025753941901661 10.1951181767115830 +0.0025815625307938 10.1464624322157828 +0.0026011844476897 10.1706479572899493 +0.0026115428754507 10.1520121305004807 +0.0026181194775013 10.2056589969905875 +0.0026395856082836 10.1908586577481373 +0.0026503909676879 10.1958052566451869 +0.0026565633330365 10.1471154950296611 +0.0026761809727483 10.1712897233304194 +0.0026865410535876 10.1526095081891423 +0.0026931204537651 10.2062585689178995 +0.0027145829993111 10.1914054899333753 +0.0027253883505659 10.1963633154472060 +0.0027315639854111 10.1476459240256514 +0.0027511781504425 10.1718109958868759 +0.0027615395741864 10.1530947229104118 +0.0027681212471826 10.2067455544874086 +0.0027895808793522 10.1918496368389473 +0.0028003862239910 10.1968165938064637 +0.0028065645160218 10.1480767549878479 +0.0028261758575616 10.1722344068782675 +0.0028365383727515 10.1534888394117058 +0.0028431218919389 10.2071411014076077 +0.0028645791572893 10.1922103890021223 +0.0028753844965575 10.1971847669763136 +0.0028815649473524 10.1484266946722244 +0.0029011739952065 10.1725783296398209 +0.0029115373971067 10.1538089650021348 +0.0029181224157972 10.2074623825698207 +0.0029395777584680 10.1925034081873953 +0.0029503830933764 10.1974838166647626 +0.0029565652978900 10.1487109343289319 +0.0029761724826224 10.1728576888464275 +0.0029865366048337 10.1540689931969776 +0.0029931228414217 10.2077233448266931 +0.0030145766209585 10.1927414070123383 +0.0030253819523185 10.1977267299307606 +0.0030315655830204 10.1489418114711807 +0.0030511712533401 10.1730846120116798 +0.0030615359613607 10.1542802083716825 +0.0030681231871915 10.2079353149654448 +0.0030895756976407 10.1929347275048254 +0.0031003810261241 10.1979240365626236 +0.0031065658144799 10.1491293463432619 +0.0031261702554761 10.1732689359497837 +0.0031365354389311 10.1544517754056880 +0.0031431234680184 10.2081074914619148 +0.0031645749470502 10.1930917512931778 +0.0031753802731947 10.1980843062150797 +0.0031815660026147 10.1492816765132758 +0.0032011694447707 10.1734186632213692 +0.0032115350146899 10.1545911379263885 +0.0032181236961190 10.2082473461578900 +0.0032395743370654 10.1932192949479159 +0.0032503796613085 10.1982144909546442 +0.0032565661554537 10.1494054119172450 +0.0032761687863003 10.1735402878355075 +0.0032865346702322 10.1547043422382437 +0.0032931238813514 10.2083609473161836 +0.0033145738415317 10.1933228944803425 +0.0033253791642284 10.1983202376161159 +0.0033315662795446 10.1495059210864707 +0.0033511682516544 10.1736390845496789 +0.0033615343906017 10.1547962991494636 +0.0033681240317481 10.2084532237139989 +0.0033895734387699 10.1934070439543110 +0.0034003787602098 10.1984061350857065 +0.0034065663803170 10.1495875643977342 +0.0034261678174738 10.1737193395723509 +0.0034365341636129 10.1548709974698053 +0.0034431241538570 10.2085281788988897 +0.0034645731111332 10.1934753935778222 +0.0034753784315488 10.1984759110712488 +0.0034815664621971 10.1496538836963968 +0.0035011674647490 10.1737845347517943 +0.0035115339793606 10.1549316772602438 +0.0035181242529923 10.2085890648316351 +0.0035395728445596 10.1935309098358626 +0.0035503781641397 10.1985325919835308 +0.0035565665287136 10.1497077559729352 +0.0035761671782235 10.1738374972469376 +0.0035865338298298 10.1549809703823399 +0.0035931243334274 10.2086385225256731 +0.0036145726284489 10.1935760064516678 +0.0036253779473541 10.1985786311230253 +0.0036315665825295 10.1497515178501008 +0.0036511669460536 10.1738805196876214 +0.0036615337085922 10.1550210142352348 +0.0036681243987031 10.2086786974284163 +0.0036895724512734 10.1936126282017376 +0.0037003777696183 10.1986160377613242 +0.0037065666265350 10.1497870671886439 +0.0037261667566803 10.1739154767548570 +0.0037365336101370 10.1550535454306647 +0.0037431244516721 10.2087113326390728 +0.0037645723080734 10.1936423791886366 +0.0037753776259681 10.1986464195676376 +0.0037815666619838 10.1498159462393360 +0.0038011666036293 10.1739438730403045 +0.0038115335304218 10.1550799743970366 +0.0038181244945834 10.2087378428851707 +0.0038395721910615 10.1936665410729503 +0.0038503775085832 10.1986711028047647 +0.0038565666908287 10.1498394067396287 +0.0038761664791610 10.1739669457485657 +0.0038865334657967 10.1551014465302707 +0.0038931245293666 10.2087593782797796 +0.0039145720958539 10.1936861660550431 +0.0039253774130749 10.1986911543180074 +0.0039315667141719 10.1498584660781628 +0.0039511663782737 10.1739856921623559 +0.0039615334134858 10.1551188924793649 +0.0039681245575319 10.2087768726302848 +0.0039895720180391 10.1937021039675955 +0.0040003773350119 10.1987074453053808 +0.0040065667331268 10.1498739503403090 +0.0040261662965152 10.1740009262485440 +0.0040365333712826 10.1551330691815327 +0.0040431245804932 10.2087910862683469 +0.0040645719547968 10.1937150503628651 +0.0040753772715627 10.1987206837286024 +0.0040815667487738 10.1498865336664075 +0.0041011662303641 10.1740133088869822 +0.0041115333373654 10.1551445968725051 +0.0041181245986228 10.2088026381445598 +0.0041395719029239 10.1937255694117201 +0.0041503772195210 10.1987314428014457 +0.0041565667610397 10.1498967616238360 +0.0041761661765050 10.1740233757358371 +0.0041865333096572 10.1551539584289117 +0.0041931246140155 10.2088120203680415 +0.0042145718590521 10.1937341039491951 +0.0042253771755028 10.1987401927428039 +0.0042315667712695 10.1499050725306112 +0.0042511661319708 10.1740315646328625 +0.0042615332871866 10.1551615724064330 +0.0042681246259739 10.2088196466684362 +0.0042895718244650 10.1937410362549414 +0.0043003771407971 10.1987472941648996 +0.0043065667792179 10.1499118274984585 +0.0043261660966604 10.1740382187157294 +0.0043365332692164 10.1551677630180492 +0.0043431246355055 10.2088258432317964 +0.0043645717956197 10.1937466678909399 +0.0043753771118541 10.1987530690753694 +0.0043815667860642 10.1499173134146332 +0.0044011660683330 10.1740436272367809 +0.0044115332551834 10.1551727987392404 +0.0044181246429381 10.2088308782490493 +0.0044395717718764 10.1937512406809034 +0.0044503770880305 10.1987577630288406 +0.0044565667911758 10.1499217766231222 +0.0044761660452117 10.1740480298228402 +0.0044865332436479 10.1551768875474675 +0.0044931246496011 10.2088349668486096 +0.0045145717516178 10.1937549490725381 +0.0045253770676972 10.1987615820153916 +0.0045315667953894 10.1499254051369565 +0.0045511660261827 10.1740516149477962 +0.0045615332344130 10.1551802188857998 +0.0045681246544535 10.2088382930920005 +0.0045895717352582 10.1937579556479765 +0.0046003770512760 10.1987646832791317 +0.0046065667986689 10.1499283567191831 +0.0046261660110101 10.1740545337140418 +0.0046365332271294 10.1551829312193131 +0.0046431246582426 10.2088409972878900 +0.0046645717211771 10.1937603983120955 +0.0046753770371433 10.1987672094089383 +0.0046815668017153 10.1499307537253323 +0.0047011659990579 10.1740569089735562 +0.0047115332218006 10.1551851423353661 +0.0047181246609758 10.2088431956171455 +0.0047395717099961 10.1937623837448896 +0.0047503770259181 10.1987692613180183 +0.0047565668035810 10.1499327082452986 +0.0047761659896562 10.1740588458988057 +0.0047865332174198 10.1551869373090700 +0.0047931246638348 10.2088449803503583 +0.0048145716983974 10.1937639820309158 +0.0048253770142685 10.1987709430639324 +0.0048315668055213 10.1499342993745501 +0.0048511659808052 10.1740604353203015 +0.0048615332138758 10.1551884062750055 +0.0048681246656051 10.2088464359182129 +0.0048895716903448 10.1937652818330857 +0.0049003770061795 10.1987723016154508 +0.0049065668066180 10.1499355968880760 +0.0049261659747875 10.1740617287113455 +0.0049365332113695 10.1551896067378280 +0.0049431246668155 10.2088476203424552 +0.0049645716829547 10.1937663374417600 +0.0049753769987571 10.1987734123525016 +0.0049815668078841 10.1499366505116093 +0.0050011659702888 10.1740627843845157 +0.0050115332099512 10.1551905903064252 +0.0050181246674762 10.2088485845725572 +0.0050395716761244 10.1937671902403686 +0.0050503769918941 10.1987743208334596 +0.0050565668085504 10.1499375142793564 +0.0050761659662830 10.1740636547132013 +0.0050865332086739 10.1551913890471912 +0.0050931246686250 10.2088493671743965 +0.0051145716696425 10.1937678770543503 +0.0051253769853795 10.1987750650395199 +0.0051315668090995 10.1499382200144428 +0.0051511659629173 10.1740643719230128 +0.0051615332078436 10.1551920494845067 +0.0051681246689451 10.2088500083438021 +0.0051895716647962 10.1937684307570144 +0.0052003769805054 10.1987756671121570 +0.0052065668092780 10.1499387983837313 +0.0052261659607923 10.1740649611632090 +0.0052365332074886 10.1551925937211305 +0.0052431246690000 10.2088505316378502 +0.0052645716599937 10.1937688801029260 +0.0052753769756764 10.1987761636025507 +0.0052815668097768 10.1499392683770466 +0.0053011659595072 10.1740654457643451 +0.0053115332078549 10.1551930451117602 +0.0053181246686977 10.2088509590378873 +0.0053395716553242 10.1937692405652225 +0.0053503769709799 10.1987765728863291 +0.0053565668097780 10.1499396585709718 +0.0053761659582172 10.1740658527743815 +0.0053865332080748 10.1551934124297620 +0.0053931246690530 10.2088513058800920 +0.0054145716501722 10.1937695250221410 +0.0054253769657962 10.1987769141555660 +0.0054315668098648 10.1499399801819781 +0.0054511659568494 10.1740661962925838 +0.0054615332084637 10.1551937234037428 +0.0054681246687078 10.2088515934044839 +0.0054895716468092 10.1937697539344470 +0.0055003769624108 10.1987771867956045 +0.0055065668095369 10.1499402471643716 +0.0055261659566873 10.1740664812561743 +0.0055365332091849 10.1551939847541028 +0.0055431246682171 10.2088518298435869 +0.0055645716421117 10.1937699333809704 +0.0055753769576825 10.1987774221283996 +0.0055815668098672 10.1499404648650167 +0.0056011659563498 10.1740667243238097 +0.0056115332103655 10.1551942075508599 +0.0056181246674659 10.2088520249073849 +0.0056395716383308 10.1937700790675514 +0.0056503769538766 10.1987776151481810 +0.0056565668094984 10.1499406510600867 +0.0056761659564424 10.1740669330372935 +0.0056865332113785 10.1551943904325217 +0.0056931246673975 10.2088521830893750 +0.0057145716336449 10.1937701873416326 +0.0057253769491593 10.1987777822341155 +0.0057315668093132 10.1499408075452813 +0.0057511659561146 10.1740671175456701 +0.0057615332124398 10.1551945526682896 +0.0057681246667201 10.2088523179911572 +0.0057895716298278 10.1937702685654923 +0.0058003769453123 10.1987779183994238 +0.0058065668089356 10.1499409412042905 +0.0058261659563400 10.1740672780776436 +0.0058365332136823 10.1551946946050702 +0.0058431246659313 10.2088524310229261 +0.0058645716256883 10.1937703330619911 +0.0058753769411451 10.1987780379893600 +0.0058815668089552 10.1499410516028767 +0.0059011659570253 10.1740674175640162 +0.0059115332154382 10.1551948217555434 +0.0059181246648717 10.2088525258415288 +0.0059395716220242 10.1937703830876636 +0.0059503769374534 10.1987781388795682 +0.0059565668083777 10.1499411512292692 +0.0059761659578305 10.1740675446043038 +0.0059865332169493 10.1551949281162024 +0.0059931246645641 10.2088526032008691 +0.0060145716165496 10.1937704086679251 +0.0060253769319405 10.1987782363492823 +0.0060315668081989 10.1499412382420608 +0.0060511659576065 10.1740676678578801 +0.0060615332183968 10.1551950297723899 +0.0060681246636644 10.2088526730892113 +0.0060895716129023 10.1937704270673688 +0.0061003769282633 10.1987783118065742 +0.0061065668075794 10.1499413166296630 +0.0061261659585630 10.1740677768603671 +0.0061365332201030 10.1551951240950213 +0.0061431246626173 10.2088527333184640 +0.0061645716088638 10.1937704397679436 +0.0061753769241950 10.1987783822314970 +0.0061815668073633 10.1499413828020817 +0.0062011659599432 10.1740678758565366 +0.0062115332223085 10.1551952139018002 +0.0062181246613287 10.2088527855703255 +0.0062395716046467 10.1937704437750654 +0.0062503769199457 10.1987784468042832 +0.0062565668067002 10.1499414473138607 +0.0062761659610208 10.1740679741053199 +0.0062865332242033 10.1551952915467965 +0.0062931246608083 10.2088528288951110 +0.0063145715989911 10.1937704331608980 +0.0063253769142496 10.1987785135381372 +0.0063315668063306 10.1499415069248737 +0.0063511659613324 10.1740680745595569 +0.0063615332260748 10.1551953716423107 +0.0063681246597042 10.2088528716359495 +0.0063895715943544 10.1937704171725301 +0.0064003769095760 10.1987785689649044 +0.0064065668057067 10.1499415640889694 +0.0064261659623183 10.1740681702717684 +0.0064365332281340 10.1551954503787414 +0.0064431246584784 10.2088529106835644 +0.0064645715894977 10.1937704017045494 +0.0064753769046810 10.1987786236947127 +0.0064815668054294 10.1499416144495385 +0.0065011659638617 10.1740682606849155 +0.0065115332307211 10.1551955297551899 +0.0065181246569922 10.2088529464034217 +0.0065395715845365 10.1937703821152521 +0.0065503768996820 10.1987786763308588 +0.0065565668046697 10.1499416674905198 +0.0065761659651897 10.1740683543704904 +0.0065865332330224 10.1551956011536113 +0.0065931246562708 10.2088529770048950 +0.0066145715778345 10.1937703495645327 +0.0066253768929322 10.1987787362266911 +0.0066315668042604 10.1499417192175070 +0.0066511659655871 10.1740684552339538 +0.0066615332352888 10.1551956785904682 +0.0066681246549468 10.2088530101072728 +0.0066895715727383 10.1937703174800056 +0.0067003768877934 10.1987787842734949 +0.0067065668034319 10.1499417715163851 +0.0067261659670923 10.1740685519908585 +0.0067365332378279 10.1551957576222289 +0.0067431246534890 10.2088530419415875 +0.0067645715665552 10.1937702831763346 +0.0067753768815655 10.1987788386061524 +0.0067815668031435 10.1499418193616755 +0.0068011659686344 10.1740686496145774 +0.0068115332408380 10.1551958398791005 +0.0068181246517789 10.2088530727837199 +0.0068395715607023 10.1937702489206909 +0.0068503768756662 10.1987788904162215 +0.0068565668022423 10.1499418722216497 +0.0068761659702953 10.1740687512503829 +0.0068865332436352 10.1551959165631320 +0.0068931246507770 10.2088530999122487 +0.0069145715535871 10.1937702053814352 +0.0069253768684993 10.1987789480577309 +0.0069315668015469 10.1499419254239083 +0.0069511659714114 10.1740688598387887 +0.0069615332464848 10.1551960010601494 +0.0069681246491736 10.2088531308434476 +0.0069895715468101 10.1937701561945833 +0.0070003768616673 10.1987790020474627 +0.0070065668007199 10.1499419805923274 +0.0070261659728564 10.1740689714572188 +0.0070365332495205 10.1551960890460844 +0.0070431246474633 10.2088531622617147 +0.0070645715392202 10.1937701073766647 +0.0070753768540207 10.1987790621546655 +0.0070815668003341 10.1499420331275321 +0.0071011659745982 10.1740690848559421 +0.0071115332531004 10.1551961822996759 +0.0071181246454271 10.2088531934486273 +0.0071395715328651 10.1937700639244628 +0.0071503768476147 10.1987791153388230 +0.0071565667990765 10.1499420919348893 +0.0071761659771412 10.1740692000259507 +0.0071865332566098 10.1551962714781592 +0.0071931246440847 10.2088532216333441 +0.0072145715236494 10.1937700026144462 +0.0072253768383313 10.1987791838797754 +0.0072315667983857 10.1499421520722120 +0.0072511659781706 10.1740693303711076 +0.0072615332600682 10.1551963701516499 +0.0072681246421376 10.2088532547336754 +0.0072895715160253 10.1937699428929474 +0.0073003768306464 10.1987792424941652 +0.0073065667972102 10.1499422156512225 +0.0073261659804637 10.1740694602716353 +0.0073365332639007 10.1551964740213769 +0.0073431246400199 10.2088532886111896 +0.0073645715066978 10.1937698784362230 +0.0073753768212483 10.1987793124743682 +0.0073815667966525 10.1499422774680479 +0.0074011659825749 10.1740695971473905 +0.0074115332682605 10.1551965847474115 +0.0074181246376092 10.2088533234337344 +0.0074395714977309 10.1937698148132441 +0.0074503768122118 10.1987793811864993 +0.0074565667953900 10.1499423469989427 +0.0074761659850356 10.1740697414708094 +0.0074865332725397 10.1551966935245197 +0.0074931246358771 10.2088533564059123 +0.0075145714862191 10.1937697352954224 +0.0075253768006143 10.1987794642784273 +0.0075315667945593 10.1499424195212473 +0.0075511659863336 10.1740699018902703 +0.0075615332768876 10.1551968140784670 +0.0075681246334753 10.2088533949402613 +0.0075895714762591 10.1937696569751104 +0.0076003767905736 10.1987795381487487 +0.0076065667931913 10.1499424969211880 +0.0076261659890227 10.1740700641893831 +0.0076365332817039 10.1551969420326049 +0.0076431246308335 10.2088534346792965 +0.0076645714649635 10.1937695754136701 +0.0076753767791931 10.1987796215092548 +0.0076815667922783 10.1499425738749665 +0.0077011659919518 10.1740702339798315 +0.0077115332871928 10.1551970789427770 +0.0077181246278353 10.2088534755958928 +0.0077395714535434 10.1937694912207597 +0.0077503767676853 10.1987797063463645 +0.0077565667907017 10.1499426597557587 +0.0077761659951089 10.1740704154181536 +0.0077865332926797 10.1551972162306825 +0.0077931246254606 10.2088535151001008 +0.0078145714396914 10.1937693909523297 +0.0078253767537283 10.1987798050771410 +0.0078315667894401 10.1499427501572672 +0.0078511659974010 10.1740706149902671 +0.0078615332983862 10.1551973678630496 +0.0078681246223617 10.2088535606225594 +0.0078895714265057 10.1937692860697844 +0.0079003767404378 10.1987798996368184 +0.0079065667877589 10.1499428470236754 +0.0079261660007580 10.1740708229324852 +0.0079365333046348 10.1551975298981070 +0.0079431246189928 10.2088536083332553 +0.0079645714113785 10.1937691739077678 +0.0079753767251966 10.1987800075678638 +0.0079815667865678 10.1499429456540682 +0.0080011660042412 10.1740710444621048 +0.0080115333116774 10.1551977045778425 +0.0080181246152122 10.2088536583659995 +0.0080395713955215 10.1937690550103746 +0.0080503767092168 10.1987801209571440 +0.0080565667847318 10.1499430557735071 +0.0080761660078877 10.1740712842008971 +0.0080865333188659 10.1551978838406782 +0.0080931246119593 10.2088537079595643 +0.0081145713772920 10.1937689192472973 +0.0081253766908490 10.1987802483633825 +0.0081315667830434 10.1499431732294312 +0.0081511660110893 10.1740715463561813 +0.0081615333265187 10.1551980820846435 +0.0081681246078333 10.2088537640608443 +0.0081895713598915 10.1937687779768655 +0.0082003766733117 10.1987803707510540 +0.0082065667807187 10.1499432999572718 +0.0082261660159007 10.1740718210154597 +0.0082365333350053 10.1551982956383142 +0.0082431246032936 10.2088538227349108 +0.0082645713398428 10.1937686232826845 +0.0082753766531085 10.1987805103661362 +0.0082815667788569 10.1499434314313799 +0.0083011660208875 10.1740721175495139 +0.0083115333445397 10.1551985274094090 +0.0083181245982393 10.2088538847214210 +0.0083395713176049 10.1937684516004321 +0.0083503766307010 10.1987806638415357 +0.0083565667764735 10.1499435782001814 +0.0083761660256691 10.1740724449950353 +0.0083865333544501 10.1551987706085693 +0.0083931245935752 10.2088539476127966 +0.0084145712926224 10.1937682584679195 +0.0084253766055288 10.1987808338274242 +0.0084315667740498 10.1499437370186829 +0.0084511660304636 10.1740728043215043 +0.0084615333652289 10.1551990408483714 +0.0084681245878396 10.2088540181387089 +0.0084895712672721 10.1937680500580914 +0.0085003765799800 10.1987810057903143 +0.0085065667709570 10.1499439104203457 +0.0085261660369109 10.1740731902592838 +0.0085365333772471 10.1551993357491632 +0.0085431245814854 10.2088540927102667 +0.0085645712379985 10.1937678174583244 +0.0085753765504813 10.1987812025216549 +0.0085815667682481 10.1499440949929287 +0.0086011660436828 10.1740736143801822 +0.0086115333908087 10.1551996600277050 +0.0086181245743237 10.2088541718351831 +0.0086395712061499 10.1937675608135105 +0.0086503765183862 10.1987814153954055 +0.0086565667646384 10.1499443023322922 +0.0086761660511877 10.1740740839482786 +0.0086865334054598 10.1552000087492722 +0.0086931245672216 10.2088542530557138 +0.0087145711689737 10.1937672624264408 +0.0087253764809272 10.1987816592328251 +0.0087315667610537 10.1499445304587095 +0.0087511660584445 10.1740746116511733 +0.0087615334216329 10.1552004001483080 +0.0087681245587087 10.2088543438781354 +0.0087895711293384 10.1937669300465270 +0.0088003764409834 10.1987819170435081 +0.0088065667566123 10.1499447842692501 +0.0088261660677493 10.1740751939674272 +0.0088365334399552 10.1552008355063474 +0.0088431245491087 10.2088544406287003 +0.0088645710831989 10.1937665501039234 +0.0088753763944891 10.1987822142184825 +0.0088815667523202 10.1499450628203896 +0.0089011660778707 10.1740758489628060 +0.0089115334609486 10.1552013238149943 +0.0089181245381049 10.2088545436724960 +0.0089395710316676 10.1937661187376705 +0.0089503763425600 10.1987825431598935 +0.0089565667467280 10.1499453808975080 +0.0089761660896233 10.1740765906427466 +0.0089865334844890 10.1552018655876513 +0.0089931245264301 10.2088546504208963 +0.0090145709701820 10.1937656046961465 +0.0090253762806038 10.1987829284830696 +0.0090315667409113 10.1499457407329654 +0.0090511661015837 10.1740774470742483 +0.0090615335113087 10.1552024865778687 +0.0090681245123987 10.2088547681349855 +0.0090895709019574 10.1937650127457573 +0.0091003762118490 10.1987833508496770 +0.0091065667334922 10.1499461533066633 +0.0091261661173041 10.1740784239977309 +0.0091365335427135 10.1552031978363342 +0.0091431244960440 10.2088548920316935 +0.0091645708197896 10.1937643046938877 +0.0091753761290482 10.1987838523546532 +0.0091815667256879 10.1499466254642705 +0.0092011661349057 10.1740795673371327 +0.0092115335798268 10.1552040219209356 +0.0092181244767381 10.2088550218505763 +0.0092395707222385 10.1937634529974819 +0.0092503760307449 10.1987844390821518 +0.0092565667158607 10.1499471841457645 +0.0092761661555785 10.1740809235413128 +0.0092865336235740 10.1552049789478946 +0.0092931244546042 10.2088551523064552 +0.0093145706029793 10.1937624016445820 +0.0093253759105668 10.1987851439445318 +0.0093315667043085 10.1499478491061463 +0.0093511661797802 10.1740825597086868 +0.0093615336764404 10.1552061222544232 +0.0093681244271441 10.2088552855829722 +0.0093895704574083 10.1937610892485839 +0.0094003757638669 10.1987859888994858 +0.0094065666897358 10.1499486576959352 +0.0094261662105573 10.1740845627012355 +0.0094365337419133 10.1552075043783692 +0.0094431243932008 10.2088554084690664 +0.0094645702710315 10.1937594012971307 +0.0094753755760489 10.1987870539229704 +0.0094815666721992 10.1499496604754800 +0.0095011662486483 10.1740870875067024 +0.0095115338251107 10.1552092123478825 +0.0095181243501169 10.2088555023102554 +0.0095395700268716 10.1937571636889022 +0.0095503753299995 10.1987884274427447 +0.0095565666489134 10.1499509582941450 +0.0095761662975009 10.1740903784886267 +0.0095865339333696 10.1552113705653344 +0.0095931242946691 10.2088555241150765 +0.0096145696928607 10.1937540713358583 +0.0096253749933987 10.1987902816559082 +0.0096315666175437 10.1499527083608019 +0.0096511663630985 10.1740948543660963 +0.0096615340809629 10.1552142118337194 +0.0096681242183444 10.2088553916904665 +0.0096895692102709 10.1937495631243316 +0.0097003745070524 10.1987929435870601 +0.0097065665724053 10.1499552316927737 +0.0097261664571532 10.1741013226279762 +0.0097365342943167 10.1552181215789794 +0.0097431241081272 10.2088548826799101 +0.0097645684489554 10.1937424755677419 +0.0097753737397971 10.1987971891486655 +0.0097815665021560 10.1499592626638950 +0.0098011666036546 10.1741115779132354 +0.0098115346306561 10.1552238659203571 +0.0098181239345169 10.2088533659736580 +0.0098395670823197 10.1937300031692590 +0.0098503723624128 10.1988051785694687 +0.0098565663699499 10.1499669931438739 +0.0098761668757140 10.1741305442510583 +0.0098865352416313 10.1552331301279608 +0.0098931236201108 10.2088484782430289 +0.0099145639445609 10.1937035251564847 +0.0099253691994771 10.1988262669979264 +0.0099315659933975 10.1499885169356876 +0.0099511676623111 10.1741785017056561 +0.0099615367466967 10.1552500877407610 +0.0099681228419333 10.2088256998778526 +0.0099895016217078 10.1937281078868001 diff --git a/src/test-suite/testFor/testFor.mo b/src/engine/tests/system/gt_data/testFor/testFor.mo similarity index 87% rename from src/test-suite/testFor/testFor.mo rename to src/engine/tests/system/gt_data/testFor/testFor.mo index ef3e2363..a83352f5 100644 --- a/src/test-suite/testFor/testFor.mo +++ b/src/engine/tests/system/gt_data/testFor/testFor.mo @@ -20,7 +20,11 @@ end for; MMO_Description="", MMO_Solver=LIQSS2, MMO_SymDiff=false, + MMO_PartitionMethod=Metis, MMO_Output={u1[:]}, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, StartTime=0.0, StopTime=1.0, Tolerance={1e-3}, diff --git a/src/test-suite/testFor/u1[1].dat b/src/engine/tests/system/gt_data/testFor/u1[1].dat similarity index 100% rename from src/test-suite/testFor/u1[1].dat rename to src/engine/tests/system/gt_data/testFor/u1[1].dat diff --git a/src/test-suite/testFor/u1[2].dat b/src/engine/tests/system/gt_data/testFor/u1[2].dat similarity index 100% rename from src/test-suite/testFor/u1[2].dat rename to src/engine/tests/system/gt_data/testFor/u1[2].dat diff --git a/src/engine/tests/system/models_test.cpp b/src/engine/tests/system/models_test.cpp index 25dc0e85..9439a04c 100644 --- a/src/engine/tests/system/models_test.cpp +++ b/src/engine/tests/system/models_test.cpp @@ -64,17 +64,20 @@ const char* models[] = {"acousticsBase", "adr", "advection", "advection2D", + "advectionFlux", "advectionUpwind", "airconds", "aircondsDOPRI", "aircont", "ar2d2", "bball_downstairs", + "BouncingBall", "boost", "buck", "buckboost", "buck_circuit", "buck_term", + "burgers", "cuk", "cuk2", "cukDASSL", @@ -92,7 +95,9 @@ const char* models[] = {"acousticsBase", "rectifierLIQSS3", "rltest", "spikings", - "TYSON"}; + "testFor", + "TYSON", + "VIRplanoS"}; INSTANTIATE_TEST_SUITE_P(Models, SModelTests, testing::ValuesIn(models)); diff --git a/src/gui/QSSSolverGUI.doxyfile b/src/gui/QSSSolverGUI.doxyfile index fd2a4ec5..24ebaf57 100644 --- a/src/gui/QSSSolverGUI.doxyfile +++ b/src/gui/QSSSolverGUI.doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "QSS Solver GUI" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 4.0.1 +PROJECT_NUMBER = 4.2.0 # 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 diff --git a/src/gui/mmohighlight.cpp b/src/gui/mmohighlight.cpp index 0a132270..46e6ed84 100644 --- a/src/gui/mmohighlight.cpp +++ b/src/gui/mmohighlight.cpp @@ -177,6 +177,10 @@ MmoHighlighter::MmoHighlighter(QTextDocument *parent, h_type file) : QSyntaxHigh << "\\bLIQSS_BDF\\b" << "\\bQSS3\\b" << "\\bLIQSS3\\b" + << "\\bQSS4\\b" + << "\\bmLIQSS\\b" + << "\\bmLIQSS2\\b" + << "\\bmLIQSS3\\b" << "\\bCVODE_AM\\b" << "\\bCVODE_BDF\\b" << "\\bIDA\\b" diff --git a/src/gui/runform.cpp b/src/gui/runform.cpp index 7412096f..ee2564f0 100644 --- a/src/gui/runform.cpp +++ b/src/gui/runform.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -39,6 +40,8 @@ RunDlg::RunDlg(QWidget *parent) : QDialog(parent) _extendedFrame->setVisible(false); _debugChk->setCheckState(Qt::Unchecked); on__parallel_currentIndexChanged(_parallel->currentIndex()); + connect(_test_methods_cbx, &QCheckBox::stateChanged, this, &RunDlg::updateTestMethods); + updateTestMethods(_test_methods_cbx->checkState()); } void RunDlg::on__showAll_stateChanged(int state) @@ -120,6 +123,9 @@ int RunDlg::getSolverIdx(QString str) if (str.trimmed() == "CVODE_BDF") return 11; if (str.trimmed() == "CVODE_AM") return 12; if (str.trimmed() == "IDA") return 13; + if (str.trimmed() == "mLIQSS") return 14; + if (str.trimmed() == "mLIQSS2") return 15; + if (str.trimmed() == "mLIQSS3") return 16; return -1; } @@ -154,6 +160,15 @@ QString RunDlg::getSolverString(int idx) return "CVODE_AM"; case 13: return "IDA"; + case 14: + _test_methods_cbx->setCheckState(Qt::Checked); + return "mLIQSS"; + case 15: + _test_methods_cbx->setCheckState(Qt::Checked); + return "mLIQSS2"; + case 16: + _test_methods_cbx->setCheckState(Qt::Checked); + return "mLIQSS3"; } return QString(); } @@ -280,3 +295,15 @@ QString RunDlg::getDtSynchString(int idx) } return "SD_DT_Asynchronous"; } + +void RunDlg::updateTestMethods(int state) +{ + bool hide = state == Qt::Unchecked; + QListView *solver_list = qobject_cast(_solver->view()); + solver_list->setRowHidden(getSolverIdx("mLIQSS"), hide); + solver_list->setRowHidden(getSolverIdx("mLIQSS2"), hide); + solver_list->setRowHidden(getSolverIdx("mLIQSS3"), hide); + if (hide) { + setSolver("QSS"); + } +} \ No newline at end of file diff --git a/src/gui/runform.h b/src/gui/runform.h index a35ef3cb..0e5c29e6 100644 --- a/src/gui/runform.h +++ b/src/gui/runform.h @@ -97,6 +97,7 @@ class RunDlg : public QDialog, public Ui::RunForm { void on__parallel_currentIndexChanged(int index); void on__showAll_stateChanged(int state); void on__dtSynch_currentIndexChanged(int index); + void updateTestMethods(int state); private: int getOutputTypeIdx(QString str); @@ -116,4 +117,3 @@ class RunDlg : public QDialog, public Ui::RunForm { Utils* _utils; QDoubleValidator* _validate; }; - diff --git a/src/gui/ui/run.ui b/src/gui/ui/run.ui index 0f0cfad7..fc9c4034 100644 --- a/src/gui/ui/run.ui +++ b/src/gui/ui/run.ui @@ -152,6 +152,21 @@ IDA + + + mLIQSS + + + + + mLIQSS2 + + + + + mLIQSS3 + + @@ -221,50 +236,53 @@ QFrame::Raised - - - - false + + + + Logical Processes - - + + - Generate Arch + Debug Graph - - - - false - - - 0.01 - + + + + + BINARY + + + + + RANDOM + + + + + LINEAR + + - - - - Derivative Delta + + + + false - - - - Logical Processes + + + + false - - - - - - @@ -279,117 +297,204 @@ - - + + - Partition Method + Parallel - - + + + + false + - STEP + FALSE - SAMPLED + TRUE + + + + + + Patoh Settings + + + + + + + false + - DENSE + FALSE - - - - - BINARY + TRUE + + + + - RANDOM + FALSE - LINEAR + TRUE - - - - Period + + + + false - - - - - Output Type + 0.01 - - + + - Symbolic Differentiation + BDF Max Step Size: - - - - - + + + + false + - FALSE + ADAPTIVE - TRUE + FIXED - - + + - Scheduler + Zero Crossing Hysteresis - - + + - Minimum Step Size + Derivative Delta - - + + - Zero Crossing Hysteresis + Dt Synchronization - - + + - Parallel + Imbalance + + + + + + + Metis Settings + + + + + + + BDF Partition + + + + Symbolic Differentiation + + + + + + + Scotch Settings + + + + + + + BDF Partition Depth + + + + + + + Output Type + + + + + + + + + + + STEP + + + + + SAMPLED + + + + + DENSE + + + + + + + + Semi-static Partitioning + + + + + + @@ -422,58 +527,37 @@ - - - - Dt Synchronization - - - - - + + false - ADAPTIVE + FALSE - FIXED + TRUE - - - - Dt tolerance - - - - - - - false + + + + 1 - - + + false - - - - Semi-static Partitioning - - - @@ -484,13 +568,6 @@ - - - - Metis Settings - - - @@ -498,48 +575,23 @@ - - - - false - - - - - - - Scotch Settings + + + + 1 - - - - - - Patoh Settings + + 1024 - - + + - Jacobian (CVODE/IDA) + Period - - - - - Sparse - - - - - Dense - - - - @@ -547,112 +599,89 @@ - - + + - Imbalance + Jacobian (CVODE/IDA) - - + + - Debug Graph + Minimum Step Size - - + + false - - - FALSE - - - - - TRUE - - - - - - false + + + + + + + + + + + + + Partition Method - - - FALSE - - - - - TRUE - - - - - - false - + + - FALSE + Sparse - TRUE + Dense - - - - - + + - BDF Partition + Scheduler - - + + - BDF Partition Depth + Generate Arch - - - - 1 + + + + Dt tolerance - - + + - BDF Max Step Size: + - - - - - - - 1 - - - 1024 + + + + QSS Test Methods: diff --git a/src/mmoc/.vscode/launch.json b/src/mmoc/.vscode/launch.json index b926fa7f..29e3b550 100644 --- a/src/mmoc/.vscode/launch.json +++ b/src/mmoc/.vscode/launch.json @@ -5,9 +5,6 @@ "version": "0.2.0", "configurations": [ - - - // Generic per model configurations. // Mixed mode buckt_term model @@ -559,8 +556,25 @@ "ignoreFailures": true } ] - } -] + }, - ] + // cells_deathtime_stim_TDi + { + "name": "cells_deathtime_stim_TDi", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/usr/bin/mmoc", + "args": ["-o /home/joaquin/work/qss-solver/build/cells_deathtime_stim_TDi ", "/home/joaquin/work/qss-solver/src/mmoc/tests/system/gt_data/cells_deathtime_stim_TDi/cells_deathtime_stim_TDi.mo"], + "cwd": "${workspaceFolder}/usr/bin/", + "environment": [], + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] } \ No newline at end of file diff --git a/src/mmoc/MMOCompiler.doxyfile b/src/mmoc/MMOCompiler.doxyfile index ebb07d95..eefe0d4a 100644 --- a/src/mmoc/MMOCompiler.doxyfile +++ b/src/mmoc/MMOCompiler.doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = MicroModelica C Compiler # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 4.0.1 +PROJECT_NUMBER = 4.2.0 # 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 diff --git a/src/mmoc/ast/ast_builder.cpp b/src/mmoc/ast/ast_builder.cpp index d3e50b40..f8b2cadb 100644 --- a/src/mmoc/ast/ast_builder.cpp +++ b/src/mmoc/ast/ast_builder.cpp @@ -17,6 +17,7 @@ ******************************************************************************/ +#include #include #include #include @@ -44,28 +45,37 @@ MCC_Lexer *MCC_Parser::lexer = nullptr; AST_StoredDefinition newAST_StoredDefinition(AST_ClassList cl, AST_String within) { return new AST_StoredDefinition_(cl, within); } -AST_String newAST_String(string s) { return new string(s); } +AST_String AST_SanitizeString(std::string new_string) +{ + if (new_string.find("'") != std::string::npos) { + new_string.erase(std::remove(new_string.begin(), new_string.end(), '\''), new_string.end()); + std::replace(new_string.begin(), new_string.end(), '.', '_'); + } + return new string(new_string); +} -AST_String newAST_String(char *s) { return new string(s); } +AST_String newAST_String(string s) { return AST_SanitizeString(string(s)); } -AST_String newAST_String(const char *s) { return new string(s); } +AST_String newAST_String(char *s) { return AST_SanitizeString(string(s)); } + +AST_String newAST_String(const char *s) { return AST_SanitizeString(string(s)); } AST_String newAST_String(AST_String s) { - AST_String ret = new string(*s); + AST_String ret = AST_SanitizeString(string(*s)); delete s; return ret; } AST_String copyAST_String(AST_String s) { - AST_String ret = new string(*s); + AST_String ret = AST_SanitizeString(string(*s)); return ret; } AST_String newAST_DotString(AST_String s) { - AST_String ret = new string(*s); + AST_String ret = AST_SanitizeString(string(*s)); ret->insert(0, "."); delete s; return ret; @@ -78,7 +88,7 @@ AST_String AST_StringDotAppend(AST_String ret, AST_String a) } if (a != nullptr) { ret->append("."); - ret->append(*a); + ret->append(*AST_SanitizeString(string(*a))); delete a; } return ret; @@ -140,7 +150,10 @@ AST_Argument AST_ArgumentSet(bool each, bool final, AST_Argument arg) AST_EquationList newAST_EquationList() { return new list(); } -AST_Equation newAST_Equation_Equality(AST_Expression left, AST_Expression right, AST_Comment comment) { return new AST_Equation_Equality_(left, right, comment); } +AST_Equation newAST_Equation_Equality(AST_Expression left, AST_Expression right, AST_Comment comment) +{ + return new AST_Equation_Equality_(left, right, comment); +} AST_Equation newAST_Equation_Connect(AST_Expression_ComponentReference cr1, AST_Expression_ComponentReference cr2) { @@ -151,7 +164,7 @@ AST_Expression newAST_Expression_Real(AST_Real r) { return new AST_Expression_Re AST_Expression newAST_Expression_String(AST_String s) { - AST_Expression_String ret = new AST_Expression_String_(*s); + AST_Expression_String ret = new AST_Expression_String_(*AST_SanitizeString(*s)); delete s; return ret; } @@ -173,7 +186,7 @@ AST_Element_Component newAST_Element_Component(AST_DeclarationList cl, AST_Strin AST_Declaration newAST_Declaration(AST_String s, AST_ExpressionList indexes, AST_Modification m) { - AST_Declaration ret = new AST_Declaration_(*s, indexes, m); + AST_Declaration ret = new AST_Declaration_(*AST_SanitizeString(*s), indexes, m); delete s; return ret; } @@ -185,7 +198,7 @@ AST_CompositionElement newAST_CompositionElement(AST_ElementList el) { return ne AST_Expression newAST_Expression_ComponentReferenceExp(AST_String s) { AST_Expression_ComponentReference e = newAST_Expression_ComponentReference(); - e->append(s, newAST_ExpressionList()); + e->append(AST_SanitizeString(*s), newAST_ExpressionList()); return e; } @@ -223,7 +236,7 @@ AST_Expression_ComponentReference AST_Expression_ComponentReference_AddDot(AST_E AST_Expression_ComponentReference AST_Expression_ComponentReference_Add(AST_Expression_ComponentReference cr, AST_String s, AST_ExpressionList subs) { - cr->append(s, subs); + cr->append(AST_SanitizeString(*s), subs); return cr; } @@ -517,7 +530,7 @@ AST_Expression newAST_BracketExpList(AST_ExpressionListList expss) AST_ExpressionList l = newAST_ExpressionList(); foreach (exps_it, expss) { if (current_element(exps_it)->size()) { - foreach (exps_range_it, current_element(exps_it)){ + foreach (exps_range_it, current_element(exps_it)) { if (current_element(exps_range_it)->expressionType() == EXPRANGE) { l = AST_ListAppend(l, current_element(exps_range_it)); } @@ -556,9 +569,9 @@ AST_Statement newAST_Statement_Assign(AST_Expression_ComponentReference cr, AST_ return new AST_Statement_Assign_(cr, exp); } -AST_Equation newAST_Equation_When(AST_Expression cond, AST_EquationList eqs, AST_Equation_ElseList else_list) +AST_Equation newAST_Equation_When(AST_Expression cond, AST_EquationList eqs, AST_Equation_ElseList else_list, AST_Comment comment) { - return new AST_Equation_When_(cond, eqs, else_list); + return new AST_Equation_When_(cond, eqs, else_list, comment); } AST_CompositionEqsAlgs newAST_CompositionInitialEquations(AST_EquationList eqlist) { return new AST_CompositionEqsAlgs_(eqlist, true); } diff --git a/src/mmoc/ast/ast_builder.h b/src/mmoc/ast/ast_builder.h index 07042027..a6c45335 100644 --- a/src/mmoc/ast/ast_builder.h +++ b/src/mmoc/ast/ast_builder.h @@ -17,7 +17,7 @@ ******************************************************************************/ -#pragma once +#pragma once #include @@ -115,7 +115,7 @@ AST_Equation newAST_Equation_Equality(AST_Expression, AST_Expression, AST_Commen AST_Equation newAST_Equation_Connect(AST_Expression_ComponentReference, AST_Expression_ComponentReference); AST_Equation newAST_Equation_If(AST_Expression e, AST_EquationList eql, AST_Equation_ElseList, AST_EquationList); AST_Equation newAST_Equation_For(AST_ForIndexList, AST_EquationList eql); -AST_Equation newAST_Equation_When(AST_Expression, AST_EquationList, AST_Equation_ElseList); +AST_Equation newAST_Equation_When(AST_Expression, AST_EquationList, AST_Equation_ElseList, AST_Comment); AST_Equation newAST_Equation_Call(AST_Expression); AST_ForIndex newAST_ForIndex(AST_String, AST_Expression); AST_ForIndexList newAST_ForIndexList(); diff --git a/src/mmoc/ast/equation.cpp b/src/mmoc/ast/equation.cpp index ccfa0c15..1da638a9 100644 --- a/src/mmoc/ast/equation.cpp +++ b/src/mmoc/ast/equation.cpp @@ -45,7 +45,10 @@ void AST_Equation_Equality_::setLeft(AST_Expression e) { _left = e; } void AST_Equation_Equality_::setRight(AST_Expression e) { _right = e; } -AST_Equation_Equality_::AST_Equation_Equality_(AST_Expression left, AST_Expression right, AST_Comment comment) : _left(left), _right(right), _comment(comment) {} +AST_Equation_Equality_::AST_Equation_Equality_(AST_Expression left, AST_Expression right, AST_Comment comment) + : _left(left), _right(right), _comment(comment) +{ +} AST_Expression AST_Equation_Equality_::left() const { return _left; } @@ -205,8 +208,8 @@ void AST_ForIndex_::accept(AST_Visitor *visitor) /* When Equation Class */ -AST_Equation_When_::AST_Equation_When_(AST_Expression cond, AST_EquationList eql, AST_Equation_ElseList elsewhen) - : _cond(cond), _eql(eql), _else_when(elsewhen) +AST_Equation_When_::AST_Equation_When_(AST_Expression cond, AST_EquationList eql, AST_Equation_ElseList elsewhen, AST_Comment c) + : _cond(cond), _eql(eql), _else_when(elsewhen), _comment(c) { } @@ -220,6 +223,10 @@ AST_Equation_ElseList AST_Equation_When_::equationElseWhen() const { return _els void AST_Equation_When_::setCondition(AST_Expression e) { _cond = e; } +AST_Comment AST_Equation_When_::comment() const { return _comment; } + +bool AST_Equation_When_::hasComment() { return _comment != nullptr; } + string AST_Equation_When_::print() const { stringstream ret(stringstream::out); diff --git a/src/mmoc/ast/equation.h b/src/mmoc/ast/equation.h index d841d549..d2ca932a 100644 --- a/src/mmoc/ast/equation.h +++ b/src/mmoc/ast/equation.h @@ -140,16 +140,19 @@ class AST_Equation_Else_ : public AST_Node_ { class AST_Equation_When_ : public AST_Equation_ { public: - AST_Equation_When_(AST_Expression cond, AST_EquationList eql, AST_Equation_ElseList elsewhen); + AST_Equation_When_(AST_Expression cond, AST_EquationList eql, AST_Equation_ElseList elsewhen, AST_Comment c); string print() const; AST_Expression condition() const; AST_EquationList equationList() const; EquationType equationType(); AST_Equation_ElseList equationElseWhen() const; void setCondition(AST_Expression e); + AST_Comment comment() const; + bool hasComment(); private: AST_Expression _cond; AST_EquationList _eql; AST_Equation_ElseList _else_when; + AST_Comment _comment; }; diff --git a/src/mmoc/ast/parser/mocc.lex b/src/mmoc/ast/parser/mocc.lex index 7f1b798e..e3d8778f 100644 --- a/src/mmoc/ast/parser/mocc.lex +++ b/src/mmoc/ast/parser/mocc.lex @@ -26,7 +26,7 @@ DIGIT [0-9] NUM {DIGIT}* ID [_a-zA-Z][_a-zA-Z0-9]* IDNUM [_a-zA-Z0-9][_a-zA-Z0-9]* -QUOTED [0-9a-zA-Z\-_#]* +QUOTED [0-9a-zA-Z\-_#.!$%&()\*+,/:;<>=?@\[\]^{}|~]* %x str %x line_comment diff --git a/src/mmoc/ast/parser/mocc.y b/src/mmoc/ast/parser/mocc.y index 42df7d4e..7376b1ab 100644 --- a/src/mmoc/ast/parser/mocc.y +++ b/src/mmoc/ast/parser/mocc.y @@ -605,7 +605,7 @@ equation: | simple_expression TOKEQUAL expression comment { $$ = newAST_Equation_Equality($1,$3,$4); } | primary { $$ = newAST_Equation_Call($1); } /* This must be a call only!!!!*/ | for_equation comment { $$ = $1; } - | when_equation comment { $$ = $1; } + | when_equation { $$ = $1; } ; for_indices: @@ -631,7 +631,7 @@ for_equation: ; when_equation: - TOKWHEN expression TOKTHEN equation_list opt_else_when TOKEND TOKWHEN { $$ = newAST_Equation_When($2,$4,$5); } + TOKWHEN expression TOKTHEN equation_list opt_else_when TOKEND TOKWHEN comment { $$ = newAST_Equation_When($2,$4,$5,$8); } ; diff --git a/src/mmoc/deps/builders/merge_graph_builder.cpp b/src/mmoc/deps/builders/merge_graph_builder.cpp index 23726094..f2c0dff8 100644 --- a/src/mmoc/deps/builders/merge_graph_builder.cpp +++ b/src/mmoc/deps/builders/merge_graph_builder.cpp @@ -43,7 +43,9 @@ MergeGraphGenerator::MergeGraphGenerator() } template -MergeGraphGenerator::~MergeGraphGenerator() {} +MergeGraphGenerator::~MergeGraphGenerator() +{ +} template void MergeGraphGenerator::setup(S config) @@ -70,7 +72,8 @@ void MergeGraphGenerator::setup(S config) EventTable::iterator ev_it; for (Event ev = events.begin(ev_it); !events.end(ev_it); ev = events.next(ev_it)) { - list ifr_nodes = createSetVertex(ev, _edge_dom_offset, max_dims, SB::Deps::VERTEX::Influencer, usage, STATEMENT::LHS); + list ifr_nodes = + createSetVertex(ev, _edge_dom_offset, max_dims, SB::Deps::VERTEX::Influencer, usage, STATEMENT::LHS); for (SB::Deps::SetVertex ifr_node : ifr_nodes) { addVertex(ifr_node, _graph); } @@ -83,31 +86,33 @@ void MergeGraphGenerator::setup(S config) addVertex(alg_node.get(), _graph); } } - } template -S MergeGraphGenerator::config() { return _config; } +S MergeGraphGenerator::config() +{ + return _config; +} template Intersections MergeGraphGenerator::computeIntersections(SB::Set variables) { Intersections inters; - // This implementation relies on the fact that both discrete variables vertices + // This implementation relies on the fact that both discrete variables vertices // are added in the same order, so the domain in both cases should match. VertexIt dsc_vertex_it = SB::Deps::findSetVertex(_lhs_dsc_graph, variables); SB::Deps::SetVertex dsc_vertex = _lhs_dsc_graph[*dsc_vertex_it]; SB::Set intersection = dsc_vertex.range().cap(variables); - list edges = SB::Deps::inputEdges(_lhs_dsc_graph, dsc_vertex.name()); + list edges = SB::Deps::inputEdges(_lhs_dsc_graph, dsc_vertex.name()); // As a second step, look for all the input edges that arrives to the discrete variable. for (SB::Deps::Edge edge : edges) { SB::Deps::SetEdge edge_label = _lhs_dsc_graph[edge]; SB::Deps::Vertex E = boost::source(edge, _lhs_dsc_graph); - SB::Deps::SetVertex EV = _lhs_dsc_graph[E]; + SB::Deps::SetVertex EV = _lhs_dsc_graph[E]; if (EV.desc().type() == SB::Deps::VERTEX::Influencer) { SB::Set whole_dom = edge_label.mapU().wholeDom(); - SB::Set input_edge_image = edge_label.mapU().image(whole_dom); + SB::Set input_edge_image = edge_label.mapU().image(whole_dom); SB::Set used_dscs = intersection.cap(input_edge_image); if (!used_dscs.empty()) { IntersectInfo inter_info; @@ -120,16 +125,23 @@ Intersections MergeGraphGenerator::computeIntersections(SB::Set variables) } } return inters; -} +} template -void MergeGraphGenerator::init(SB::Deps::SetVertex vertex) { _nodes.push_back(vertex); } +void MergeGraphGenerator::init(SB::Deps::SetVertex vertex) +{ + _nodes.push_back(vertex); +} template -void MergeGraphGenerator::end() {} +void MergeGraphGenerator::end() +{ +} template -void MergeGraphGenerator::postProcess(SB::Deps::SetVertex vertex) {} +void MergeGraphGenerator::postProcess(SB::Deps::SetVertex vertex) +{ +} template SB::PWLMap MergeGraphGenerator::buildMap(SB::Set dom, int convert_offset, SB::Set dom_map, int graph_offset) @@ -158,9 +170,8 @@ SB::PWLMap MergeGraphGenerator::buildMap(SB::Set dom, int convert_offset, SB: addDims(max_dims, edge_dom.minElem().size(), constant_pwl_map, slope_pwl_map, 1); return buildPWLMap(constant_pwl_map, slope_pwl_map, edge_dom); } - template -SB::Deps::LMapExp MergeGraphGenerator::buildLMapExp(Expression exp, SB::Deps::LMapExp use_map) +SB::Deps::LMapExp MergeGraphGenerator::buildLMapFromExp(IR::Expression exp) { SB::Deps::Constants exp_constants; SB::Deps::Slopes exp_slopes; @@ -169,23 +180,29 @@ SB::Deps::LMapExp MergeGraphGenerator::buildLMapExp(Expression exp, SB::Deps: for (Expression idx : indexes) { PWLMapValues pwl_map_values; pwl_map_values.apply(idx.expression()); - exp_constants.insert(pwl_map_values.constant()); + exp_constants.insert(pwl_map_values.constant()); exp_slopes.insert(pwl_map_values.slope()); exp_init_values.insert(pwl_map_values.constant()); } + return SB::Deps::LMapExp(exp_constants, exp_slopes, exp_init_values); +} + +template +SB::Deps::LMapExp MergeGraphGenerator::buildLMapExp(Expression exp, IR::Expression use_exp, SB::Deps::LMapExp use_map) +{ + SB::Deps::LMapExp use_exp_map = buildLMapFromExp(use_exp); + SB::Deps::LMapExp exp_map = buildLMapFromExp(exp); + // We are dealing with expressions of different dimension, it could happen in merges. - if(use_map.slopes().size() > exp_slopes.size()){ - int end = use_map.slopes().size(); - int init = exp_slopes.size(); - for (int add = init; add < end; add++){ - exp_constants.addDim(); - exp_slopes.addDim(); - exp_init_values.addDim(); - } + if (use_exp_map.slopes().size() > exp_map.slopes().size()) { + exp_map.padDims(use_exp_map.slopes().size()); } - SB::Deps::LMapExp exp_map = SB::Deps::LMapExp(exp_constants, exp_slopes, exp_init_values); - if (!exp_map.isEmpty() && !use_map.isEmpty()) { - exp_map = exp_map.compose(use_map.revert()); + if (!exp_map.isEmpty() && !use_exp_map.isEmpty()) { + SB::Deps::LMapExp apply_map = use_exp_map; + if (!use_map.isEmpty()) { + apply_map = use_map.compose(use_exp_map); + } + exp_map = exp_map.compose(apply_map.revert()); } return exp_map; } @@ -206,7 +223,7 @@ SB::Deps::SetVertex MergeGraphGenerator::findAlgVertex(SB::Set variables) template SB::EdgeMaps MergeGraphGenerator::generatePWLMaps(IntersectInfo inter_info, SB::Deps::SetVertex orig_ife_vertex, - SB::Deps::SetVertex ife_vertex, SB::Deps::VariableDep var_dep) + SB::Deps::SetVertex ife_vertex, SB::Deps::VariableDep var_dep) { SB::Set edge_dom = inter_info.edge.mapU().preImage(inter_info.intersection); SB::Set ifr_nodes = inter_info.edge.mapF().image(edge_dom); @@ -242,7 +259,7 @@ SB::EdgeMaps MergeGraphGenerator::generatePWLMaps(IntersectInfo inter_info, S maps.F = buildMap(ifr_nodes, _graph[*inter_info.node].id() - inter_info.orig_node.id(), dom_nodes, _graph[*inter_info.node].id()); maps.U = buildMap(ife_nodes, ife_vertex.id() - orig_ife_vertex.id(), dom_nodes, ife_vertex.id()); Expression node = _config.exp(_config.getNode(orig_ife_vertex.index())); - maps.map_exp = buildLMapExp(node, var_dep.nMap()); + maps.map_exp = buildLMapExp(node, inter_info.edge.desc().exp(), var_dep.nMap()); _edge_dom_offset += dom_nodes.size(); return maps; } @@ -255,7 +272,7 @@ void MergeGraphGenerator::addEdges(SB::Deps::SetVertex vertex, SB::Deps::Vari VertexIt ife_vertex_it = SB::Deps::findSetVertexByName(_graph, _config.nodeName(vertex.index())); SB::Deps::SetVertex ife_vertex = _graph[*ife_vertex_it]; - for(IntersectInfo inter_info : inters) { + for (IntersectInfo inter_info : inters) { EdgeMaps maps = generatePWLMaps(inter_info, vertex, ife_vertex, var_dep); string edge_name = "E_" + to_string(_edge_dom_offset); LOG << "MapF: " << maps.F << endl; @@ -281,10 +298,13 @@ void MergeGraphGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::Variab } template -void MergeGraphGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex) {} +void MergeGraphGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex) +{ +} template -void MergeGraphGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift) +void MergeGraphGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, + int index_shift) { if (v_vertex.desc().type() != SB::Deps::VERTEX::Equation) { addEdges(v_vertex, var_dep); @@ -293,8 +313,8 @@ void MergeGraphGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetV template void MergeGraphGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, - SB::Deps::LMapExp use_map_exp, IR::Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, - SB::Set intersection) + SB::Deps::LMapExp use_map_exp, IR::Expression use_exp, SB::PWLMap def_map, + SB::Deps::LMapExp def_map_exp, SB::Set intersection) { } @@ -304,7 +324,10 @@ void MergeGraphGenerator::initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge } template -SB::Deps::Graph MergeGraphGenerator::def() { return _graph; } +SB::Deps::Graph MergeGraphGenerator::def() +{ + return _graph; +} template class MergeGraphGenerator; diff --git a/src/mmoc/deps/builders/merge_graph_builder.h b/src/mmoc/deps/builders/merge_graph_builder.h index 43ce9e42..5d0793fa 100644 --- a/src/mmoc/deps/builders/merge_graph_builder.h +++ b/src/mmoc/deps/builders/merge_graph_builder.h @@ -41,7 +41,6 @@ struct IntersectInfo { typedef list Intersections; - template class MergeGraphGenerator { public: @@ -65,7 +64,8 @@ class MergeGraphGenerator { protected: Intersections computeIntersections(SB::Set variables); SB::PWLMap buildMap(SB::Set dom, int convert_offset, SB::Set dom_map, int graph_offset); - SB::Deps::LMapExp buildLMapExp(IR::Expression dom, SB::Deps::LMapExp use_map); + SB::Deps::LMapExp buildLMapExp(IR::Expression dom, IR::Expression use_exp, SB::Deps::LMapExp use_map); + SB::Deps::LMapExp buildLMapFromExp(IR::Expression exp); SB::EdgeMaps generatePWLMaps(IntersectInfo inter_info, SB::Deps::SetVertex orig_ife_vertex, SB::Deps::SetVertex ife_vertex, SB::Deps::VariableDep var_dep); void addEdges(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep); diff --git a/src/mmoc/deps/jacobian_matrices.cpp b/src/mmoc/deps/jacobian_matrices.cpp index cc486d84..e72b2550 100644 --- a/src/mmoc/deps/jacobian_matrices.cpp +++ b/src/mmoc/deps/jacobian_matrices.cpp @@ -42,13 +42,19 @@ void JacMatrixGenerator::postProcess(SB::Deps::SetVertex vertex) {} void JacMatrixGenerator::init(SB::Deps::SetVertex vertex) { - stringstream code; + stringstream code, clean_vectors; FunctionPrinter function_printer; Equation eq = getEquation(vertex); + if (eq.isAlgebraic()) { + clean_vectors << "cleanVector(algebraics, 0, " << ModelConfig::instance().algebraicNbr() << ");" << endl; + } else { + clean_vectors << "cleanVector(states, 0, " << ModelConfig::instance().stateNbr() << ");" << endl; + } code << "for(row = 1; row <= " << vertex.range().size() << "; row++) {" << endl; code << TAB << "c_row = _c_index(row);" << endl; code << function_printer.jacMacrosAccess(eq); _matrix.alloc.append(code.str()); + _matrix.init.append(clean_vectors.str()); _matrix.init.append(code.str()); _tabs++; } @@ -59,7 +65,6 @@ void JacMatrixGenerator::end() _tabs--; _matrix.alloc.append("}\n"); _matrix.init.append("}\n"); - code << "cleanVector(states, 0, " << ModelConfig::instance().stateNbr() << ");" << endl; _matrix.init.append(code.str()); } @@ -78,7 +83,7 @@ string JacMatrixGenerator::guard(string exp, string id) void JacMatrixGenerator::addDependency(Equation v_eq, Equation g_eq, SB::Deps::VariableDep var_dep, int id, string g_map_dom) { stringstream code; - SB::Deps::LMapExp map = var_dep.nMap(); + SB::Deps::LMapExp map = var_dep.nMap(); Range range(var_dep.variables(), var_dep.varOffset()); vector exps = map.apply(range.getDimensionVars()); Expression i_exp = Expression::generate(var_dep.var().name(), exps); @@ -87,21 +92,24 @@ void JacMatrixGenerator::addDependency(Equation v_eq, Equation g_eq, SB::Deps::V string tabs = Utils::instance().tabs(_tabs); string inner_tabs = tabs + TAB; stringstream matrix_eq_id; + string matrix_access_vector; if (v_eq.type() == EQUATION::Algebraic) { matrix_eq_id << "dg_dx"; + matrix_access_vector = "algebraics"; } else { matrix_eq_id << "df_dx"; + matrix_access_vector = "states"; } matrix_eq_id << "[" << id << "]"; string eq_id = matrix_eq_id.str(); if (var_dep.isRecursive() && g_eq.hasRange()) { - code << tabs << g_eq.range().get(); - tabs = Utils::instance().tabs(_tabs+1); - vector exps = g_eq.range()->getIndexes(); - FunctionPrinter printer; - Expression a_exp = Expression::generate(g_eq.LHSVariable()->name(), exps); - Index a_ind(a_exp); - code << TAB << printer.jacMacrosAccess(g_eq, a_ind.print()); + code << tabs << g_eq.range().get(); + tabs = Utils::instance().tabs(_tabs + 1); + vector exps = g_eq.range()->getIndexes(); + FunctionPrinter printer; + Expression a_exp = Expression::generate(g_eq.LHSVariable()->name(), exps); + Index a_ind(a_exp); + code << TAB << printer.jacMacrosAccess(g_eq, a_ind.print()); } if (!map.constantExp()) { code << tabs << "if(" << range.in(exps); @@ -123,7 +131,8 @@ void JacMatrixGenerator::addDependency(Equation v_eq, Equation g_eq, SB::Deps::V code << include_guard; code << TAB << inner_tabs << "modelData->jac_matrices->" << eq_id << "->size[c_row]--;" << endl; code << inner_tabs << "} else {" << endl; - code << TAB << inner_tabs << "modelData->jac_matrices->" << eq_id << "->index[c_row][states[c_row]++] = x_ind;" << endl; + code << TAB << inner_tabs << "modelData->jac_matrices->" << eq_id << "->index[c_row][" << matrix_access_vector << "[c_row]++] = x_ind;" + << endl; code << inner_tabs << "}" << endl; _matrix.init.append(code.str()); code.str(""); @@ -137,7 +146,7 @@ void JacMatrixGenerator::addDependency(Equation v_eq, Equation g_eq, SB::Deps::V _matrix.init.append(code.str()); } -std::string JacMatrixGenerator::guard(SB::Set dom, int offset, SB::Deps::LMapExp map, std::string var_name) +std::string JacMatrixGenerator::guard(SB::Set dom, int offset, SB::Deps::LMapExp map, std::string var_name, Equation v_eq) { if (map.constantExp()) { return ""; @@ -146,33 +155,37 @@ std::string JacMatrixGenerator::guard(SB::Set dom, int offset, SB::Deps::LMapExp vector exps = map.apply(range.getDimensionVars()); Expression map_exp = Expression::generate(var_name, exps); range.applyUsage(Index(map_exp)); + if (v_eq.hasRange()) { + range.update(v_eq.range().get()); + } return range.in(exps); } void JacMatrixGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep) -{ +{ Equation eq = getEquation(vertex); - addDependency(eq, eq,var_dep, eq.arrayId()); + addDependency(eq, eq, var_dep, eq.arrayId()); } void JacMatrixGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex) -{ +{ Equation eq = getEquation(vertex); - Equation gen_eq = getEquation(gen_vertex); - addDependency(eq, eq,var_dep, gen_eq.arrayId()); + Equation gen_eq = getEquation(gen_vertex); + addDependency(eq, eq, var_dep, gen_eq.arrayId()); } void JacMatrixGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift) { Equation v_eq = getEquation(v_vertex); Equation g_eq = getEquation(g_vertex); - addDependency(v_eq, g_eq, var_dep, v_eq.arrayId(), guard(var_dep.equations(), var_dep.eqOffset(), var_dep.mMap(), var_dep.var().name())); + addDependency(v_eq, g_eq, var_dep, v_eq.arrayId(), + guard(var_dep.equations(), var_dep.eqOffset(), var_dep.mMap(), var_dep.var().name(), v_eq)); } -void JacMatrixGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, - SB::Deps::LMapExp def_map_exp, SB::Set intersection) +void JacMatrixGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, + SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, + SB::Set intersection) { - } void JacMatrixGenerator::initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge) {} diff --git a/src/mmoc/deps/jacobian_matrices.h b/src/mmoc/deps/jacobian_matrices.h index 26b300a5..94104200 100644 --- a/src/mmoc/deps/jacobian_matrices.h +++ b/src/mmoc/deps/jacobian_matrices.h @@ -44,19 +44,19 @@ class JacMatrixGenerator { void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep); void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex); void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift); - void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, IR::Expression use_exp, SB::PWLMap def_map, - SB::Deps::LMapExp def_map_exp, SB::Set intersection); + void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, + IR::Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection); void initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge); JacMatrixDef def(); - void setup(IR::EquationTable eqs) {}; + void setup(IR::EquationTable eqs){}; IR::EquationTable config() { return IR::EquationTable(); } protected: void addDependency(IR::Equation v_eq, IR::Equation g_eq, SB::Deps::VariableDep var_dep, int id, std::string g_map_dom = ""); - std::string guard(SB::Set dom, int offset, SB::Deps::LMapExp map, std::string var_name); + std::string guard(SB::Set dom, int offset, SB::Deps::LMapExp map, std::string var_name, IR::Equation v_eq); std::string guard(std::string exp, std::string id); JacMatrixDef _matrix; diff --git a/src/mmoc/deps/sb_dependencies.cpp b/src/mmoc/deps/sb_dependencies.cpp index 46b18802..a3b5a78f 100644 --- a/src/mmoc/deps/sb_dependencies.cpp +++ b/src/mmoc/deps/sb_dependencies.cpp @@ -92,7 +92,7 @@ void SBDependencies::compute(SB::Deps::Graph graph, SB::Dep } template -void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps::Vertex V, Variable visiting_alg) +void SBDependencies::paths(SB::Deps::Graph& graph, SB::Deps::Vertex V, Variable visiting_alg) { int num_gen = 0; boost::graph_traits::out_edge_iterator edge, out_edge_end; @@ -113,6 +113,7 @@ void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps: paths(graph, G, graph[A].desc().var()); } } + SB::Deps::updateVisited(graph, A, true); } } @@ -148,7 +149,17 @@ void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps: SB::Set alg_label_dom = alg_label.mapU().wholeDom(); SB::Set d_intersect = alg_label_dom.cap(alg_variable_dom_edges); SB::Deps::LMapExp G_map = alg_label.desc().mapExp(); + SB::Set alg_visited_dom; if (!d_intersect.empty()) { + list pure_recursive_deps = graph[G].desc().pureRecursiveDeps(); + // Visit pure recursive deps. + for (SB::Deps::VariableDep var_d : pure_recursive_deps) { + SB::Set rec_dom = var_d.fDom(); + alg_visited_dom = alg_visited_dom.cup(rec_dom); + SB::Set rec_matched_eq = var_d.mapF().image(rec_dom); + VertexIt G_vertex_it = findSetVertex(graph, rec_matched_eq); + _gen.visitG(graph[V], graph[*G_vertex_it], var_d, _index_shift[graph[*G_vertex_it].index()]); + } int dep, deps = graph[G].desc().numDeps(); for (dep = 1; dep <= deps; dep++) { // Get the map exp for the intersection @@ -159,27 +170,27 @@ void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps: assert(!inf_vars.empty()); SB::Set inf_vars_by_edge = a_subset.cap(inf_vars); SB::Set inf_eq_dom = map_m_u.preImage(inf_vars_by_edge); - // Get the g subset that we arrived from the a variables. + // Get the g subset that we arrived from the algebraic variables. SB::Set g_subset = alg_label.mapF().image(d_intersect); // Get the pre-image for the F maps. SB::Set g_pre_image = _map_F.preImage(g_subset); SB::Deps::VariableDep state_dep = graph[G].desc().depState(dep); - SB::Set state_intersection = state_dep.mapF().wholeDom().cap(g_pre_image); + SB::Set state_intersection = state_dep.mapF().wholeDom().cap(g_pre_image); if (!state_intersection.empty()) { num_gen++; SB::Set u_dom = state_intersection; // Get variables from the state intersection, it's an algebraic variable. - if (state_dep.mapU().image(state_intersection).empty()){ + if (state_dep.mapU().image(state_intersection).empty()) { list alg_maps_u = state_dep.algLabelMapU(); - list alg_maps_f = state_dep.algLabelMapF(); - list::iterator alg_maps_f_it = alg_maps_f.begin(); + list alg_maps_f = state_dep.algLabelMapF(); + list::iterator alg_maps_f_it = alg_maps_f.begin(); SB::Set vars_alg_eq_defs; for (SB::PWLMap alg_mu : alg_maps_u) { SB::Set alg_mu_dom = alg_mu.wholeDom(); SB::Set alg_mu_image = alg_mu.image(alg_mu_dom); - SB::Set new_alg_inter = vars_alg_eq_defs.cup(alg_mu_image); + SB::Set new_alg_inter = vars_alg_eq_defs.cup(alg_mu_image); if (!new_alg_inter.empty()) { - state_intersection = alg_mu.preImage(new_alg_inter); + state_intersection = alg_mu.preImage(new_alg_inter); } SB::Set inf_vars_from_int = _map_U.image(state_intersection); SB::Set orig_inf_alg_var = alg_mu.preImage(inf_vars_from_int); @@ -200,12 +211,12 @@ void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps: new_alg_maps_u.push_front(alg_label.mapU()); new_alg_maps_f.push_front(alg_label.mapF()); SB::Deps::VariableDep var_dep(state_dep.var(), map_m_f, state_dep.mapU(), alg_label.desc().exp(), false, f_dom, u_dom, - n_map, map_m, state_dep.varOffset(), graph[V].id(), new_alg_maps_f, - new_alg_maps_u); + n_map, map_m, state_dep.varOffset(), graph[V].id(), new_alg_maps_f, new_alg_maps_u); list recursive_deps = state_dep.recursiveDeps(); // Visit recursive deps. for (SB::Deps::VariableDep var_d : recursive_deps) { SB::Set rec_dom = var_d.fDom(); + alg_visited_dom = alg_visited_dom.cup(rec_dom); SB::Set rec_matched_eq = _map_F.image(rec_dom); VertexIt G_vertex_it = findSetVertex(graph, rec_matched_eq); _gen.visitG(graph[V], graph[*G_vertex_it], var_d, _index_shift[graph[*G_vertex_it].index()]); @@ -214,26 +225,34 @@ void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps: SB::Deps::VertexDesc update_desc = graph[V].desc(); update_desc.setDepState(num_gen, var_dep); graph[V].updateDesc(update_desc); - _gen.visitG(graph[V], graph[G], var_dep, _index_shift[graph[G].index()]); + if (recursive_deps.empty() && !d_intersect.subset(alg_visited_dom)) { + SB::Set var_dom = var_dep.fDom(); + alg_visited_dom = alg_visited_dom.cup(var_dom); + _gen.visitG(graph[V], graph[G], var_dep, _index_shift[graph[G].index()]); + } } } - _gen.visitG(graph[V], graph[G], map_m_f, map_m, edge_label.desc().exp(), alg_label.mapF(), G_map, d_intersect); + if (!d_intersect.subset(alg_visited_dom)) { + _gen.visitG(graph[V], graph[G], map_m_f, map_m, edge_label.desc().exp(), alg_label.mapF(), G_map, d_intersect); + } } } } } } // For X_i in Succ(V) + bool no_influencee = true; for (boost::tie(edge, out_edge_end) = out_edges(V, graph); edge != out_edge_end; ++edge) { SB::Deps::SetEdge edge_label = graph[*edge]; SB::Deps::Vertex X = boost::target(*edge, graph); if (graph[X].desc().type() == SB::Deps::VERTEX::Influencee) { + no_influencee = false; // For all map_n in E_V num_gen++; SB::PWLMap map_u = edge_label.mapU(); SB::Deps::VertexDesc update_desc = graph[V].desc(); - SB::Deps::VariableDep var_dep(graph[X].desc().var(), edge_label.mapF(), map_u, edge_label.desc().exp(), - edge_label.desc().mapExp(), graph[X].id(), graph[V].id()); + SB::Deps::VariableDep var_dep(graph[X].desc().var(), edge_label.mapF(), map_u, edge_label.desc().exp(), edge_label.desc().mapExp(), + graph[X].id(), graph[V].id()); update_desc.setDepState(num_gen, var_dep); graph[V].updateDesc(update_desc); _gen.visitF(graph[V], var_dep); @@ -242,49 +261,123 @@ void SBDependencies::paths(SB::Deps::Graph graph, SB::Deps: } } SB::Deps::updateNumDeps(graph, V, num_gen); + // If the algebraic equation has no influencee but have recursive uses + // we should add the only algebraic uses too. + if (no_influencee && !rec_alg_use_maps.empty()) { + recursiveDeps(graph, SB::PWLMap(), V, V, num_gen, rec_alg_use_maps); + } _gen.end(); } template -void SBDependencies::recursiveDeps(SB::Deps::Graph graph, SB::PWLMap map_u, SB::Deps::Vertex V, SB::Deps::Vertex X, +void SBDependencies::recursiveDeps(SB::Deps::Graph& graph, SB::PWLMap map_u, SB::Deps::Vertex V, SB::Deps::Vertex X, int num_gen, list rec_alg_use_maps) { + const bool PURE_ALGEBRAIC = map_u.empty(); for (SB::Deps::SetEdge rec_alg_use : rec_alg_use_maps) { - // Get the whole vertex of the influenced variable. - SB::Set map_u_dom = map_u.wholeDom(); - SB::Set map_u_im = map_u.image(map_u_dom); - SB::Set whole_inf_var = wholeVertex(graph, map_u_im); // Get the algebraic variable image of the recursive use. SB::PWLMap rec_use = rec_alg_use.mapU(); SB::Set rec_use_dom = rec_use.wholeDom(); SB::Set rec_use_im = rec_use.image(rec_use_dom); - // Get the preImage of the algebraic recursive variables. - SB::Set alg_var_pre_im = _map_U.preImage(rec_use_im); - SB::Set rec_map_f_dom = rec_alg_use.mapF().wholeDom(); - alg_var_pre_im = alg_var_pre_im.diff(rec_map_f_dom); - // Iterate over the preImage to get the set vertex that defines them. - for (SB::Set atom_set : alg_var_pre_im.atomize()) { - // Get the F set vertex sub-set for the dom. - SB::Set matched_f = _map_F.image(atom_set); - VertexIt F_vertex_it = findSetVertex(graph, matched_f); + rec_use_im = wholeVertex(graph, rec_use_im); + // Get the whole vertex of the influenced variable. + SB::Set map_u_dom = map_u.wholeDom(); + SB::Set map_u_im = map_u.image(map_u_dom); + if (PURE_ALGEBRAIC) { + map_u_dom = rec_use_dom; + map_u_im = rec_use_im; + } + SB::Set whole_inf_var = wholeVertex(graph, map_u_im); + if (PURE_ALGEBRAIC) { + // Get all the F set vertex for the algebraic variable. + VertexIt A_vertex_it = findSetVertex(graph, rec_use_im); boost::graph_traits::out_edge_iterator rec_edge, rec_out_edge_end; - // For all A_i in Succ(V) - for (boost::tie(rec_edge, rec_out_edge_end) = out_edges(*F_vertex_it, graph); rec_edge != rec_out_edge_end; ++rec_edge) { + // For all A_i in Succ(V), add all the variable definitions for pure algebraics. + for (boost::tie(rec_edge, rec_out_edge_end) = out_edges(*A_vertex_it, graph); rec_edge != rec_out_edge_end; ++rec_edge) { SB::Deps::SetEdge rec_edge_label = graph[*rec_edge]; - SB::Set rec_label_dom = rec_edge_label.mapF().preImage(matched_f); - SB::Set rec_label_im = rec_edge_label.mapU().image(rec_label_dom); - SB::Set inter = whole_inf_var.cap(rec_label_im); - if (!inter.empty()) { - const bool RECURSIVE = true; - SB::Deps::VariableDep rec_var_dep(graph[X].desc().var(), rec_edge_label.mapF(), rec_edge_label.mapU(), rec_alg_use.desc().exp(), - RECURSIVE, atom_set, rec_label_dom, rec_edge_label.desc().mapExp(), graph[X].id(), - graph[*F_vertex_it].id()); + SB::Set rec_label_dom = rec_edge_label.mapU().wholeDom(); + // Get the F set vertex sub-set for the dom. + SB::Set matched_f = _map_F.image(rec_label_dom); + VertexIt F_vertex_it = findSetVertex(graph, matched_f); + const bool RECURSIVE = true; + boost::graph_traits::out_edge_iterator alg_edge, alg_out_edge_end; + bool pure_alg_deps = true; + // For all G in Succ(A_i) + // Fin if there's any state deps in the algebraics and add the dep. + for (boost::tie(alg_edge, alg_out_edge_end) = out_edges(*F_vertex_it, graph); alg_edge != alg_out_edge_end; ++alg_edge) { + SB::Deps::Vertex A = boost::target(*alg_edge, graph); + if (graph[A].desc().var() == graph[*A_vertex_it].desc().var()) { + continue; + } + boost::graph_traits::out_edge_iterator alg_def_edge, alg_def_end; + // For all G in Succ(A_i) + // Find if there's any state deps in the algebraics and add the dep. + for (boost::tie(alg_def_edge, alg_def_end) = out_edges(A, graph); alg_def_edge != alg_def_end; ++alg_def_edge) { + SB::Deps::Vertex G = boost::target(*alg_def_edge, graph); + if (graph[G].desc().type() == SB::Deps::VERTEX::Equation) { + SB::Deps::SetEdge alg_label = graph[*alg_edge]; + SB::Deps::SetEdge alg_def_label = graph[*alg_def_edge]; + SB::Set arriving_affected_alg = alg_label.mapU().wholeDom(); + SB::Set arriving_affected_alg_img = alg_label.mapU().image(arriving_affected_alg); + SB::Set output_alg_def = alg_def_label.mapU().wholeDom(); + SB::Set output_alg_def_img = alg_def_label.mapU().image(output_alg_def); + SB::Set alg_def_intersection = output_alg_def_img.cap(arriving_affected_alg_img); + if (!alg_def_intersection.empty()) { + int dep, deps = graph[G].desc().numDeps(); + for (dep = 1; dep <= deps; dep++) { + SB::Set alg_rec_dom = alg_def_label.mapU().preImage(alg_def_intersection); + SB::Deps::VariableDep v = graph[G].desc().depState(dep); + SB::Deps::VariableDep rec_var_dep(v.var(), rec_edge_label.mapF(), rec_edge_label.mapU(), rec_alg_use.desc().exp(), + RECURSIVE, rec_label_dom, rec_label_dom, rec_edge_label.desc().mapExp(), + graph[*A_vertex_it].id(), graph[*F_vertex_it].id()); + SB::Deps::VertexDesc update_desc = graph[V].desc(); + update_desc.addPureRecursiveDep(rec_var_dep); + graph[V].updateDesc(update_desc); + pure_alg_deps = false; + } + } + } + } + } + if (pure_alg_deps) { + SB::Deps::VariableDep rec_var_dep(graph[*A_vertex_it].desc().var(), rec_edge_label.mapF(), rec_edge_label.mapU(), + rec_alg_use.desc().exp(), RECURSIVE, rec_label_dom, rec_label_dom, + rec_edge_label.desc().mapExp(), graph[*A_vertex_it].id(), graph[*F_vertex_it].id()); SB::Deps::VertexDesc update_desc = graph[V].desc(); - SB::Deps::VariableDep orig_var_dep = update_desc.depState(num_gen); - orig_var_dep.addRecursiveDep(rec_var_dep); - update_desc.setDepState(num_gen, orig_var_dep); + update_desc.addPureRecursiveDep(rec_var_dep); graph[V].updateDesc(update_desc); - _gen.visitF(graph[*F_vertex_it], rec_var_dep, graph[V]); + } + } + } else { + // Get the preImage of the algebraic recursive variables. + SB::Set alg_var_pre_im = _map_U.preImage(rec_use_im); + SB::Set rec_map_f_dom = rec_alg_use.mapF().wholeDom(); + alg_var_pre_im = alg_var_pre_im.diff(rec_map_f_dom); + + // Iterate over the preImage to get the set vertex that defines them. + for (SB::Set atom_set : alg_var_pre_im.atomize()) { + // Get the F set vertex sub-set for the dom. + SB::Set matched_f = _map_F.image(atom_set); + VertexIt F_vertex_it = findSetVertex(graph, matched_f); + boost::graph_traits::out_edge_iterator rec_edge, rec_out_edge_end; + // For all A_i in Succ(V) + for (boost::tie(rec_edge, rec_out_edge_end) = out_edges(*F_vertex_it, graph); rec_edge != rec_out_edge_end; ++rec_edge) { + SB::Deps::SetEdge rec_edge_label = graph[*rec_edge]; + SB::Set rec_label_dom = rec_edge_label.mapF().preImage(matched_f); + SB::Set rec_label_im = rec_edge_label.mapU().image(rec_label_dom); + SB::Set inter = whole_inf_var.cap(rec_label_im); + if (!inter.empty()) { + const bool RECURSIVE = true; + SB::Deps::VariableDep rec_var_dep(graph[X].desc().var(), rec_edge_label.mapF(), rec_edge_label.mapU(), rec_alg_use.desc().exp(), + RECURSIVE, atom_set, rec_label_dom, rec_edge_label.desc().mapExp(), graph[X].id(), + graph[*F_vertex_it].id()); + SB::Deps::VertexDesc update_desc = graph[V].desc(); + SB::Deps::VariableDep orig_var_dep = update_desc.depState(num_gen); + orig_var_dep.addRecursiveDep(rec_var_dep); + update_desc.setDepState(num_gen, orig_var_dep); + graph[V].updateDesc(update_desc); + _gen.visitF(graph[*F_vertex_it], rec_var_dep, graph[V]); + } } } } @@ -295,9 +388,9 @@ template class SBDependencies; template class SBDependencies; -template class SBDependencies; +template class SBDependencies; -template class SBDependencies; +template class SBDependencies; template class SBDependencies, ModelMatrixDef, MATRIX::EQMatrixConfig>; diff --git a/src/mmoc/deps/sb_dependencies.h b/src/mmoc/deps/sb_dependencies.h index 30b818ee..a4b6d87e 100644 --- a/src/mmoc/deps/sb_dependencies.h +++ b/src/mmoc/deps/sb_dependencies.h @@ -51,8 +51,8 @@ class SBDependencies { R def(); protected: - void paths(SB::Deps::Graph graph, SB::Deps::Vertex V, Util::Variable visiting_alg); - void recursiveDeps(SB::Deps::Graph graph, SB::PWLMap map_u, SB::Deps::Vertex V, SB::Deps::Vertex X, int num_gen, + void paths(SB::Deps::Graph& graph, SB::Deps::Vertex V, Util::Variable visiting_alg); + void recursiveDeps(SB::Deps::Graph& graph, SB::PWLMap map_u, SB::Deps::Vertex V, SB::Deps::Vertex X, int num_gen, list rec_alg_use_maps); SB::Deps::IndexShift _index_shift; @@ -65,8 +65,8 @@ class SBDependencies { typedef SBDependencies JacobianMatrixBuilder; typedef SBDependencies JacobianBuilder; -typedef SBDependencies QSSModelBuilder; -typedef SBDependencies QSSModelDepsBuilder; +typedef SBDependencies QSSModelBuilder; +typedef SBDependencies QSSModelDepsBuilder; typedef SBDependencies, IR::ModelMatrixDef, IR::MATRIX::EQMatrixConfig> EQModelMatrixBuilder; diff --git a/src/mmoc/deps/sbg_graph/build_from_exps.cpp b/src/mmoc/deps/sbg_graph/build_from_exps.cpp index 774f566f..6d950f79 100644 --- a/src/mmoc/deps/sbg_graph/build_from_exps.cpp +++ b/src/mmoc/deps/sbg_graph/build_from_exps.cpp @@ -211,7 +211,7 @@ Set generateMapDom(Set dom, Set unk_dom, int offset, size_t max_dim) for (AtomSet atom_set : atom_sets) { MultiInterval dom_intervals = atom_set.atomicSets(); for (Interval inter : dom_intervals.intervals()) { - Real end = inter.size() + offset - 1; + Integer end = inter.size() + offset - 1; edge_set_intervals.addInter(Interval(offset, inter.step(), end)); } addDims(max_dim, dom_intervals.intervals().size(), edge_set_intervals, offset); @@ -467,9 +467,10 @@ void buildEdge(Expression builder, Deps::Vertex e, Deps::Vertex v, Deps::Graph g matching_exps.apply(builder.expression()); set matched_exps = matching_exps.occurrences(); LOG << "Matched exps for: " << v_vertex.name() << " in " << builder << " of " << e_vertex.name() << endl; - LOG << "Equation dom: " << e_dom << endl; for (Expression exp : matched_exps) { LOG << "Expression: " << exp << endl; + LOG << "Equation dom: " << e_dom << endl; + LOG << "Variable dom: " << v_dom << endl; EdgeMaps maps = generatePWLMaps(exp, e_dom, v_dom, offset, e_vertex.name(), max_dim, eq_usage); offset += e_dom.size(); string edge_name = "E_" + to_string(1); diff --git a/src/mmoc/deps/sbg_graph/deps_graph.h b/src/mmoc/deps/sbg_graph/deps_graph.h index d1d95cb2..27fc319e 100644 --- a/src/mmoc/deps/sbg_graph/deps_graph.h +++ b/src/mmoc/deps/sbg_graph/deps_graph.h @@ -19,6 +19,8 @@ #pragma once +#include +#include #include #include @@ -54,8 +56,8 @@ struct VariableDep { _eq_offset(0), _recursive_deps(), _alg_label_map_u(), - _alg_label_map_f() {}; - + _alg_label_map_f(){}; + VariableDep(MicroModelica::Util::Variable var, SB::PWLMap map_f, SB::PWLMap map_u, MicroModelica::IR::Expression exp, LMapExp n_map, int var_offset, int eq_offset) : _var(var), @@ -92,10 +94,10 @@ struct VariableDep { _eq_offset(eq_offset), _recursive_deps(), _alg_label_map_u(), - _alg_label_map_f() {}; + _alg_label_map_f(){}; VariableDep(MicroModelica::Util::Variable var, SB::PWLMap map_f, SB::PWLMap map_u, MicroModelica::IR::Expression exp, bool recursive, - SB::Set f_dom, SB::Set u_dom, LMapExp n_map, LMapExp m_map, int var_offset, int eq_offset, list alg_label_map_f, + SB::Set f_dom, SB::Set u_dom, LMapExp n_map, LMapExp m_map, int var_offset, int eq_offset, list alg_label_map_f, list alg_label_map_u) : _var(var), _map_f(map_f), @@ -110,7 +112,7 @@ struct VariableDep { _eq_offset(eq_offset), _recursive_deps(), _alg_label_map_u(alg_label_map_u), - _alg_label_map_f(alg_label_map_f) {}; + _alg_label_map_f(alg_label_map_f){}; PWLMap mapF() const { return _map_f; }; PWLMap mapU() const { return _map_u; }; @@ -136,14 +138,12 @@ struct VariableDep { int varOffset() const { return _var_offset; } int eqOffset() const { return _eq_offset; } list recursiveDeps() const - { + { list ret; - for (const auto &item : _recursive_deps) - { - ret.push_back(item.second); - } - return ret; + std::transform(_recursive_deps.begin(), _recursive_deps.end(), std::back_inserter(ret), [](auto& map_val) { return map_val.second; }); + return ret; }; + void addRecursiveDep(VariableDep rec_dep) { SB::Set dom = rec_dep.uDom(); @@ -152,14 +152,16 @@ struct VariableDep { OrdIntegerCT::iterator min_elem = init_elems.begin(); _recursive_deps[*min_elem] = rec_dep; }; - + void setRecursiveDeps(list recursive_deps) { for (VariableDep var_dep : recursive_deps) { addRecursiveDep(var_dep); - } + } } + void setRecursive(bool recursive) { _recursive = recursive; } + list algLabelMapU() { return _alg_label_map_u; } list algLabelMapF() { return _alg_label_map_f; } @@ -182,9 +184,12 @@ struct VariableDep { }; struct VertexDesc { - VertexDesc() : _type(VERTEX::Influencer), _visited(false), _var(), _deps(), _num_deps(0) {} - VertexDesc(VERTEX::Type type) : _type(type), _visited(false), _var(), _deps(), _num_deps(0) {} - VertexDesc(VERTEX::Type type, MicroModelica::Util::Variable var) : _type(type), _visited(false), _var(var), _deps(), _num_deps(0) {} + VertexDesc() : _type(VERTEX::Influencer), _visited(false), _var(), _deps(), _num_deps(0), _pure_recursive_deps() {} + VertexDesc(VERTEX::Type type) : _type(type), _visited(false), _var(), _deps(), _num_deps(0), _pure_recursive_deps() {} + VertexDesc(VERTEX::Type type, MicroModelica::Util::Variable var) + : _type(type), _visited(false), _var(var), _deps(), _num_deps(0), _pure_recursive_deps() + { + } VertexDesc(const VertexDesc& other) { _type = other._type; @@ -192,6 +197,7 @@ struct VertexDesc { _var = other._var; _deps = other._deps; _num_deps = other._num_deps; + _pure_recursive_deps = other._pure_recursive_deps; } VERTEX::Type type() { return _type; }; bool visited() const { return _visited; } @@ -202,13 +208,17 @@ struct VertexDesc { void setNumDeps(int num_deps) { _num_deps = num_deps; }; int numDeps() const { return _num_deps; }; VariableDep depState(int id) { return _deps[id]; } + void addPureRecursiveDep(VariableDep dep) { _pure_recursive_deps.push_back(dep); } + list pureRecursiveDeps() { return _pure_recursive_deps; } protected: VERTEX::Type _type; bool _visited; MicroModelica::Util::Variable _var; std::map _deps; + std::map _pure_alg_deps; int _num_deps; + list _pure_recursive_deps; }; struct EdgeDesc { diff --git a/src/mmoc/deps/sbg_graph/lmap_exp.cpp b/src/mmoc/deps/sbg_graph/lmap_exp.cpp index d716991c..0a49662d 100644 --- a/src/mmoc/deps/sbg_graph/lmap_exp.cpp +++ b/src/mmoc/deps/sbg_graph/lmap_exp.cpp @@ -30,7 +30,7 @@ namespace Deps { CoeffContainer::CoeffContainer(std::vector coeffs) : _coeffs(coeffs), _valid_dims() { - for(size_t i = 0; i < _coeffs.size(); i++) { + for (size_t i = 0; i < _coeffs.size(); i++) { _valid_dims.push_back(true); } } @@ -39,7 +39,7 @@ CoeffContainer::CoeffContainer(std::vector coeffs, std::vector valid_ CoeffContainer::CoeffContainer() : _coeffs(), _valid_dims() {} -CoeffContainer& CoeffContainer::operator=(const CoeffContainer& other) +CoeffContainer& CoeffContainer::operator=(const CoeffContainer& other) { _coeffs = other._coeffs; _valid_dims = other._valid_dims; @@ -66,10 +66,7 @@ void CoeffContainer::addDim() _coeffs.push_back(0); } -bool CoeffContainer::isValid(int i) const -{ - return _valid_dims[i]; -} +bool CoeffContainer::isValid(int i) const { return _valid_dims[i]; } bool CoeffContainer::isZeros() { @@ -161,6 +158,8 @@ CoeffContainer::const_iterator CoeffContainer::end() const { return _coeffs.end( unsigned int CoeffContainer::size() const { return _coeffs.size(); } +std::vector CoeffContainer::coeffs() const { return _coeffs; } + std::ostream& operator<<(std::ostream& os, const CoeffContainer& coeffs) { std::list coeffs_str; @@ -198,7 +197,13 @@ bool LMapExp::operator==(const LMapExp& other) const return (_constants == other._constants) && (_slopes == other._slopes) && (_init_values == other._init_values); } -bool LMapExp::operator<(const LMapExp& other) const { return print() < other.print(); } +bool LMapExp::operator<(const LMapExp& other) const +{ + if (print() != other.print()) { + return print() < other.print(); + } + return appliedInitValues() < other.appliedInitValues(); +} bool LMapExp::constantExp() const { @@ -274,6 +279,8 @@ Constants LMapExp::constants() const { return _constants; } InitValues LMapExp::initValues() const { return _init_values; } +InitValues LMapExp::appliedInitValues() const { return InitValues(apply(_init_values.coeffs())); } + LMapExp LMapExp::compose(const LMapExp& other) { if (other.isEmpty() || isEmpty()) { @@ -284,6 +291,16 @@ LMapExp LMapExp::compose(const LMapExp& other) return LMapExp(new_constants, new_slopes, initValues()); } +void LMapExp::padDims(int max) +{ + int init = _slopes.size(); + for (int add = init; add < max; add++) { + _constants.addDim(); + _slopes.addDim(); + _init_values.addDim(); + } +} + LMapExp LMapExp::solve(const LMapExp& other) { if (other.isEmpty()) { diff --git a/src/mmoc/deps/sbg_graph/lmap_exp.h b/src/mmoc/deps/sbg_graph/lmap_exp.h index afdf8bcf..209d5181 100644 --- a/src/mmoc/deps/sbg_graph/lmap_exp.h +++ b/src/mmoc/deps/sbg_graph/lmap_exp.h @@ -30,7 +30,7 @@ class CoeffContainer { CoeffContainer(); CoeffContainer(std::vector CoeffContainer); CoeffContainer(std::vector coeffs, std::vector valid_dims); - CoeffContainer& operator=(const CoeffContainer& other); + CoeffContainer& operator=(const CoeffContainer& other); bool operator<(const CoeffContainer& other) const; bool operator==(const CoeffContainer& other) const; bool operator!=(const CoeffContainer& other) const; @@ -51,8 +51,9 @@ class CoeffContainer { const_iterator end() const; unsigned int size() const; void addDim(); - bool isValid(int i) const; + bool isValid(int i) const; friend std::ostream& operator<<(std::ostream& os, const CoeffContainer& CoeffContainer); + std::vector coeffs() const; protected: std::vector _coeffs; @@ -76,10 +77,12 @@ class LMapExp { Slopes slopes() const; Constants constants() const; InitValues initValues() const; + InitValues appliedInitValues() const; LMapExp compose(const LMapExp& other); LMapExp solve(const LMapExp& other); LMapExp revert(); LMapExp applyIndexShift(CoeffContainer index_shift); + void padDims(int max); bool constantExp() const; bool isEmpty() const; std::string print() const; @@ -94,5 +97,5 @@ class LMapExp { InitValues _init_values; }; -} // Namspace Deps -} // Namespace SB \ No newline at end of file +} // namespace Deps +} // Namespace SB \ No newline at end of file diff --git a/src/mmoc/generator/model_instance.cpp b/src/mmoc/generator/model_instance.cpp index aada5fa2..60bec48a 100644 --- a/src/mmoc/generator/model_instance.cpp +++ b/src/mmoc/generator/model_instance.cpp @@ -424,6 +424,7 @@ void ModelInstance::freeVector(string name, int size) const void ModelInstance::allocateVectors() const { + allocateVector("algebraics", _model.algebraicNbr()); allocateVector("states", _model.stateNbr()); allocateVector("discretes", _model.discreteNbr()); allocateVector("events", _model.eventNbr()); @@ -432,6 +433,7 @@ void ModelInstance::allocateVectors() const void ModelInstance::freeVectors() const { + freeVector("algebraics", _model.algebraicNbr()); freeVector("states", _model.stateNbr()); freeVector("discretes", _model.discreteNbr()); freeVector("events", _model.eventNbr()); @@ -588,7 +590,7 @@ void QSSModelInstance::initializeDataStructures() inputs(); // Initialize Jacobian matrices. - initializeMatrix(deps.JAC(), WRITER::Alloc_Data, WRITER::Init_Data, _model.stateNbr()); + initializeMatrix(deps.JAC(), WRITER::Alloc_Data, WRITER::Init_Data, 0); // Initialize Event Data Structures. initializeMatrix(deps.SZ(), WRITER::Alloc_Data, WRITER::Init_Data, _model.stateNbr()); @@ -600,7 +602,7 @@ void QSSModelInstance::initializeDataStructures() initializeMatrix(deps.LHSSt(), WRITER::Alloc_Data, WRITER::Init_Data, _model.eventNbr()); initializeMatrix(deps.RHSSt(), WRITER::Alloc_Data, WRITER::Init_Data, _model.eventNbr()); if (PARALLEL) { - initializeMatrix(deps.DH(), WRITER::Alloc_Data, WRITER::Init_Data, _model.eventNbr()); + initializeMatrix(deps.DH(), WRITER::Alloc_Data, WRITER::Init_Data, _model.discreteNbr()); initializeMatrix(deps.SH(), WRITER::Alloc_Data, WRITER::Init_Data, _model.stateNbr()); initializeMatrix(deps.HH(), WRITER::Alloc_Data, WRITER::Init_Data, _model.eventNbr()); } diff --git a/src/mmoc/generator/model_instance.h b/src/mmoc/generator/model_instance.h index 585feea1..5a81efb1 100644 --- a/src/mmoc/generator/model_instance.h +++ b/src/mmoc/generator/model_instance.h @@ -17,19 +17,18 @@ ******************************************************************************/ -#ifndef MMO_MODEL_INSTANCE_H_ -#define MMO_MODEL_INSTANCE_H_ +#pragma once #include #include -#include "../ir/class.h" -#include "../util/compile_flags.h" -#include "../util/graph.h" +#include +#include +#include +#include #include -#include "../util/symbol_table.h" -#include "../util/util_types.h" -#include "writer.h" +#include +#include namespace MicroModelica { namespace Generator { @@ -86,15 +85,16 @@ class ModelInstance { void initializeMatrix(DM vdm, WRITER::Section alloc, WRITER::Section init, int size) { _writer->write(vdm.alloc(), alloc); - if (!vdm.empty()) { + if (!vdm.empty() && size > 0) { std::stringstream buffer; buffer << "cleanVector(" << vdm.accessVector() << ", 0, " << size << ");"; _writer->write(buffer.str(), init); } _writer->write(vdm.init(), init); } - template - void generateDef(IR::EquationTable eqs, WRITER::Section model_def, WRITER::Section simple, WRITER::Section generic) { + template + void generateDef(IR::EquationTable eqs, WRITER::Section model_def, WRITER::Section simple, WRITER::Section generic) + { Builder model; Util::ModelConfig::instance().clearLocalSymbols(); IR::FunctionPrinter printer; @@ -108,7 +108,6 @@ class ModelInstance { } } - private: IR::Model _model; Util::CompileFlags _flags; @@ -163,4 +162,3 @@ class ClassicModelInstance : public ModelInstance { typedef std::shared_ptr ModelInstancePtr; } // namespace Generator } // namespace MicroModelica -#endif /* MMO_MODEL_INSTANCE_H */ diff --git a/src/mmoc/ir/annotation.cpp b/src/mmoc/ir/annotation.cpp index e79dd35c..81f11fa5 100644 --- a/src/mmoc/ir/annotation.cpp +++ b/src/mmoc/ir/annotation.cpp @@ -296,7 +296,7 @@ void ModelAnnotation::processList(AST_Expression x, list *l) AST_ExpressionListIterator it; foreach (it, el) { if (current_element(it)->expressionType() == EXPOUTPUT) { - // If we have a pair, select the first element as the + // If we have a pair, select the first element as the // value and the second as the size. // This is used for DQMin and DQRel for arrays. AST_Expression_Output out = current_element(it)->getAsOutput(); @@ -308,7 +308,7 @@ void ModelAnnotation::processList(AST_Expression x, list *l) AST_ExpressionListIterator pair_exp_it; bool first = true; AnnotationValue size; - foreach (pair_exp_it, pair_exp) { + foreach (pair_exp_it, pair_exp) { if (first) { av = ea.apply(current_element(pair_exp_it)); first = false; @@ -448,11 +448,23 @@ Solver ModelAnnotation::getSolver(string s) _order = 4; _polyCoeffs = 5; return QSS4; + } else if (!s.compare("mLIQSS")) { + _order = 1; + _polyCoeffs = 2; + return mLIQSS; + } else if (!s.compare("mLIQSS2")) { + _order = 2; + _polyCoeffs = 3; + return mLIQSS2; + } else if (!s.compare("mLIQSS3")) { + _order = 3; + _polyCoeffs = 4; + return mLIQSS3; } return QSS; } -void ModelAnnotation::parseMatrix(AST_Expression exp, IR::MATRIX::UserDefMatrixExps& matrix) +void ModelAnnotation::parseMatrix(AST_Expression exp, IR::MATRIX::UserDefMatrixExps &matrix) { AST_ExpressionList matrix_exps = newAST_ExpressionList(); processExpressionList(exp, matrix_exps); @@ -727,6 +739,9 @@ EvalAnnotation::EvalAnnotation() : _tokens() _tokens.insert(pair("LIQSS_BDF", "LIQSS_BDF")); _tokens.insert(pair("LIQSS3", "LIQSS3")); _tokens.insert(pair("QSS4", "QSS4")); + _tokens.insert(pair("mLIQSS", "mLIQSS")); + _tokens.insert(pair("mLIQSS2", "mLIQSS2")); + _tokens.insert(pair("mLIQSS3", "mLIQSS3")); _tokens.insert(pair("DASSL", "DASSL")); _tokens.insert(pair("DOPRI", "DOPRI")); _tokens.insert(pair("CVODE_AM", "CVODE_AM")); diff --git a/src/mmoc/ir/annotation.h b/src/mmoc/ir/annotation.h index a578ea17..2b5300fd 100644 --- a/src/mmoc/ir/annotation.h +++ b/src/mmoc/ir/annotation.h @@ -32,7 +32,25 @@ namespace MicroModelica { namespace IR { -typedef enum { QSS, CQSS, LIQSS, QSS2, LIQSS2, LIQSS_BDF, QSS3, LIQSS3, QSS4, DASSL, DOPRI, CVODE_BDF, CVODE_AM, IDA } Solver; +typedef enum { + QSS, + CQSS, + LIQSS, + QSS2, + LIQSS2, + LIQSS_BDF, + QSS3, + LIQSS3, + QSS4, + DASSL, + DOPRI, + CVODE_BDF, + CVODE_AM, + IDA, + mLIQSS, + mLIQSS2, + mLIQSS3 +} Solver; typedef enum { Metis, HMetis, Scotch, Patoh, MTPL, MTPL_IT, Manual } PartitionMethod; @@ -175,7 +193,7 @@ class ModelAnnotation { Solver getSolver(string s); PartitionMethod getPartitionMethod(string s); DT_Synch getDtSynch(string s); - void parseMatrix(AST_Expression exp, IR::MATRIX::UserDefMatrixExps& matrix); + void parseMatrix(AST_Expression exp, IR::MATRIX::UserDefMatrixExps &matrix); Solver _solver; string _solverString; diff --git a/src/mmoc/ir/class.cpp b/src/mmoc/ir/class.cpp index 82a2cacc..c69570b5 100644 --- a/src/mmoc/ir/class.cpp +++ b/src/mmoc/ir/class.cpp @@ -461,14 +461,16 @@ void Model::addEquation(AST_Equation eq, Option range) void Model::reduceEquation(AST_Equation_Equality eq, list &new_eqs) { - ReductionFunctions reduction_functions(eq->right(), Utils::instance().variable(eq->left())); - AST_Expression new_exp = reduction_functions.apply(); - eq->setRight(new_exp); - list code = reduction_functions.code(); - new_eqs.insert(new_eqs.end(), code.begin(), code.end()); - list variables = reduction_functions.variables(); - for (Variable v : variables) { - setVariableOffset(v, _algebraic_nbr, Variable::RealType::Algebraic); + if (eq->left()->expressionType() != EXPOUTPUT) { + ReductionFunctions reduction_functions(eq->right(), Utils::instance().variable(eq->left())); + AST_Expression new_exp = reduction_functions.apply(); + eq->setRight(new_exp); + list code = reduction_functions.code(); + new_eqs.insert(new_eqs.end(), code.begin(), code.end()); + list variables = reduction_functions.variables(); + for (Variable v : variables) { + setVariableOffset(v, _algebraic_nbr, Variable::RealType::Algebraic); + } } } @@ -480,7 +482,7 @@ EquationTable Model::BDFDerivatives() Equation bdf_der = der; bdf_der.setType(EQUATION::QSSBDFDerivative); bdf_equations.insert(bdf_der.id(), bdf_der); - } + } return bdf_equations; } @@ -503,9 +505,8 @@ void Model::orderEquations() } EquationOrderMap::iterator map_it; - for (map_it = equation_map.begin(); map_it != equation_map.end(); map_it++) - { - Option var = ModelConfig::instance().lookup(map_it->first.variable()); + for (map_it = equation_map.begin(); map_it != equation_map.end(); map_it++) { + Option var = ModelConfig::instance().lookup(map_it->first.variable()); assert(var); list current_eqs = orderded_derivatives[var->offset()]; current_eqs.push_back(map_it->second); @@ -513,8 +514,7 @@ void Model::orderEquations() } OrderedEquations::iterator ord_eq_it; int total_ord = 1; - for (ord_eq_it = orderded_derivatives.begin(); ord_eq_it != orderded_derivatives.end(); ord_eq_it++) - { + for (ord_eq_it = orderded_derivatives.begin(); ord_eq_it != orderded_derivatives.end(); ord_eq_it++) { list ordered_eqs = ord_eq_it->second; for (Equation ord_eq : ordered_eqs) { _ordered_derivatives.insert(total_ord++, ord_eq); @@ -581,13 +581,29 @@ void Model::addVariable(int id, Option range, EQUATION::Type type, unsign setVariableOffset(variable.get(), offset, Variable::RealType::NotAssigned, DONT_INCREASE_OFFSET); } +int Model::computeEventOffsetShift(Option range) +{ + int offset_shift = 0; + if (range) { + RangeDefinitionTable rdt = range->definition(); + RangeDefinitionTable::iterator it; + int i = 0; + for (RangeDefinition rd = rdt.begin(it); !rdt.end(it); rd = rdt.next(it), i++) { + offset_shift += i * range->rowSize(i) + rd.cBegin(); + } + } + return offset_shift; +} + void Model::addEvent(AST_Statement stm, Option range) { if (stm->statementType() == STWHEN) { + int new_event = false; + unsigned int event_offset = _event_nbr - computeEventOffsetShift(range); AST_Statement_When sw = stm->getAsWhen(); _annotations.expComment(sw->comment(), _event_id); - addVariable(_event_id, range, EQUATION::Type::ZeroCrossing, _event_nbr); - Event event(sw->condition(), _event_id, _event_nbr, range, _annotations.EventId()); + addVariable(_event_id, range, EQUATION::Type::ZeroCrossing, event_offset); + Event event(sw->condition(), _event_id, event_offset, range, _annotations.EventId()); _event_nbr += (range ? range->size() : 1); AST_StatementList stl = sw->statements(); AST_StatementListIterator it; @@ -595,15 +611,15 @@ void Model::addEvent(AST_Statement stm, Option range) event.add(current_element(it)); } if (sw->hasElsewhen()) { - int new_event = false; AST_Statement_ElseList ewl = sw->else_when(); AST_Statement_ElseListIterator ewit; foreach (ewit, ewl) { AST_Statement_Else se = current_element(ewit); Event else_event = event; if (!else_event.compare(se->condition())) { - addVariable(_event_id + 1, range, EQUATION::Type::ZeroCrossing, _event_nbr); - else_event = Event(se->condition(), _event_id + 1, _event_nbr, range, _annotations.EventId()); + event_offset = _event_nbr - computeEventOffsetShift(range); + addVariable(_event_id + 1, range, EQUATION::Type::ZeroCrossing, event_offset); + else_event = Event(se->condition(), _event_id + 1, event_offset, range, _annotations.EventId()); _event_nbr += (range ? range->size() : 1); new_event = true; } @@ -613,13 +629,16 @@ void Model::addEvent(AST_Statement stm, Option range) else_event.add(current_element(steit)); } if (new_event) { - _events.insert(_event_id++, else_event); + _events.insert(_event_id + 1, else_event); } else { event = else_event; } } } _events.insert(_event_id++, event); + if (new_event) { + _event_id++; + } } } @@ -666,7 +685,7 @@ void Model::setEvents() addEvent(stm, Option()); } else if (stm->statementType() == STFOR) { AST_Statement_For stf = stm->getAsFor(); - Range range(stf); + Range range(stf, RANGE::For); AST_StatementList sts = stf->statements(); AST_StatementListIterator stit; foreach (stit, sts) { @@ -726,6 +745,7 @@ void Model::setModelConfig() ModelConfig::instance().setDerivatives(_derivatives); ModelConfig::instance().setOrderedDerivatives(_ordered_derivatives); ModelConfig::instance().setStateNbr(_state_nbr); + ModelConfig::instance().setAlgebraicNbr(_algebraic_nbr); ModelConfig::instance().setEvents(_events); } } // namespace IR diff --git a/src/mmoc/ir/class.h b/src/mmoc/ir/class.h index 112ebb18..58235bd4 100644 --- a/src/mmoc/ir/class.h +++ b/src/mmoc/ir/class.h @@ -142,7 +142,7 @@ class Model : public Class { inline Util::ImportTable imports() const { return _imports; }; inline ModelAnnotation annotations() const { return _annotations; }; inline FunctionTable calledFunctions() const { return _called_functions; }; - inline int algebraicNbr() { return _algebraic_nbr; }; + inline int algebraicNbr() const { return _algebraic_nbr; }; inline int stateNbr() const { return _state_nbr; }; inline int discreteNbr() const { return _discrete_nbr; }; inline int inputNbr() const { return _input_nbr; }; @@ -175,7 +175,7 @@ class Model : public Class { * @param[in] id The identifier * @param[in] size The size * @param[in] type The type - */ + */ void addVariable(int id, Option range, EQUATION::Type type, unsigned int& offset); void setVariableOffset(Util::Variable var, unsigned int& offset, Util::Variable::RealType type, bool set_variable_count = true); void setRealVariables(AST_Equation eq); @@ -186,7 +186,8 @@ class Model : public Class { void addFunction(Util::SymbolTable symbols, FunctionTable& fs); void addInput(Equation eq); void orderEquations(); - EquationDefOrder getEquationDefOrder(Equation eq); + EquationDefOrder getEquationDefOrder(Equation eq); + int computeEventOffsetShift(Option range); std::string _name; Util::ImportTable _imports; diff --git a/src/mmoc/ir/compute_deps.cpp b/src/mmoc/ir/compute_deps.cpp index c11f0acb..66a1519b 100644 --- a/src/mmoc/ir/compute_deps.cpp +++ b/src/mmoc/ir/compute_deps.cpp @@ -45,7 +45,6 @@ Expression getUseExp(Variable variable, DepData dep_data) return Expression::generate(variable.name(), vector()); } - bool findDep(DepsMap deps, DepData dep_data, bool multiple_nodes) { string var_name = dep_data.var_dep.var().name(); @@ -72,7 +71,6 @@ bool findDep(DepsMap deps, DepData dep_data, bool multiple_nodes) return false; } - bool findAlgDep(PrintedDeps printed_deps, int id, SB::Set range, SB::Deps::LMapExp use_map, SB::Deps::LMapExp eq_use_map) { for (PrintedDep dep : printed_deps) { @@ -87,22 +85,42 @@ bool findAlgDep(PrintedDeps printed_deps, int id, SB::Set range, SB::Deps::LMapE return false; } -string addAlgDeps(Equation eq, SB::Deps::LMapExp eq_use, AlgDepsMap alg_deps, AlgDepsMap deps, PrintedDeps& printed_deps) +bool checkAlgRecursiveDeps(Equation eq, AlgDepsMap alg_deps, AlgDepsMap deps) +{ + AlgDeps algs = alg_deps[eq.id()]; + bool recursive_deps = false; + for (DefAlgDepsUse alg : algs) { + recursive_deps = recursive_deps || checkAlgRecursiveDeps(alg.eq, deps, deps); + if (recursive_deps) { + return recursive_deps; + } + } + for (DefAlgDepsUse alg : algs) { + recursive_deps = recursive_deps || alg.recursive; + if (recursive_deps) { + return recursive_deps; + } + } + return recursive_deps; +} +string addAlgDeps(Equation eq, SB::Deps::LMapExp eq_use, AlgDepsMap alg_deps, AlgDepsMap deps, PrintedDeps& printed_deps, + bool comes_from_rec) { AlgDeps algs = alg_deps[eq.id()]; stringstream code; for (DefAlgDepsUse alg : algs) { - code << addAlgDeps(alg.eq, alg.use_map, deps, deps, printed_deps); + code << addAlgDeps(alg.eq, alg.use_map, deps, deps, printed_deps, alg.recursive); } for (DefAlgDepsUse alg : algs) { + bool RECURSIVE = alg.recursive || comes_from_rec; Index use(alg.exp); vector vars = use.variables(); SB::Set var_range = alg.use.image(alg.range); Range range(var_range, alg.offset, vars); EquationTable equations = ModelConfig::instance().algebraics(); - Option eq = equations[alg.eq.id()]; - assert(eq); - Equation gen_eq = eq.get(); + Option alg_eq = equations[alg.eq.id()]; + assert(alg_eq); + Equation gen_eq = alg_eq.get(); SB::Deps::LMapExp eq_use_exp = eq_use; if (!eq_use.constantExp()) { eq_use_exp = eq_use.revert(); @@ -123,14 +141,13 @@ string addAlgDeps(Equation eq, SB::Deps::LMapExp eq_use, AlgDepsMap alg_deps, Al printed_deps.push_back(printed_dep); Expression use_exp = Expression::generate(alg.exp.reference().get().name(), exps); Index use_idx = Index(use_exp); - if (gen_eq.hasRange() && alg.recursive) { - code << gen_eq.range()->print(true, true); + if (gen_eq.hasRange() && RECURSIVE) { + Range range = gen_eq.range().get(); + range.update(gen_eq.LHSVariable()->offset()); + code << range.print(true, true); code << "_get" << gen_eq.LHSVariable().get() << "_idxs(" << range.getDimensionVarsString(true) << ");" << endl; use_idx = Index(gen_eq.lhs()); } - if (eq->hasRange() && !alg.recursive) { - gen_eq.setRange(range); - } FunctionPrinter printer; if (use_idx.isConstant() && gen_eq.hasRange()) { if (!gen_eq.range()->checkUsage(use_idx, gen_eq.index())) { @@ -143,7 +160,7 @@ string addAlgDeps(Equation eq, SB::Deps::LMapExp eq_use, AlgDepsMap alg_deps, Al code << printer.printAlgebraicGuards(gen_eq, use_idx); code << TAB << gen_eq; code << printer.endDimGuards(gen_eq.range()); - if (gen_eq.hasRange() && alg.recursive) { + if (gen_eq.hasRange() && RECURSIVE) { code << TAB << gen_eq.range()->end() << endl; } } @@ -183,8 +200,8 @@ vector getVariables(Index index, Range range) for (string idx_var : index_vars) { ret_vars.push_back(idx_var); } - sort(ret_vars.begin(), ret_vars.end() ); - ret_vars.erase(unique(ret_vars.begin(), ret_vars.end() ), ret_vars.end() ); + sort(ret_vars.begin(), ret_vars.end()); + ret_vars.erase(unique(ret_vars.begin(), ret_vars.end()), ret_vars.end()); return ret_vars; } diff --git a/src/mmoc/ir/compute_deps.h b/src/mmoc/ir/compute_deps.h index 221d5b09..a3e5a0fa 100644 --- a/src/mmoc/ir/compute_deps.h +++ b/src/mmoc/ir/compute_deps.h @@ -25,6 +25,11 @@ namespace MicroModelica { namespace IR { +struct QSSModelConfig { + EquationTable eqs; + SB::Deps::Graph graph; +}; + struct DefAlgDepsUse { DefAlgDepsUse(Equation e, SB::Deps::VariableDep var_dep) { @@ -38,13 +43,13 @@ struct DefAlgDepsUse { def_map = SB::Deps::LMapExp(); } DefAlgDepsUse(Equation e, SB::PWLMap pwl_def_map, Expression use_exp, SB::Deps::LMapExp use_map_exp, SB::Deps::LMapExp def_map_exp, - int off) + int off, bool rec = false) { eq = e; use = pwl_def_map; range = pwl_def_map.wholeDom(); exp = use_exp; - recursive = false; + recursive = rec; use_map = use_map_exp; def_map = def_map_exp; offset = off; @@ -74,7 +79,20 @@ struct CompDef { bool operator()(const DefAlgDepsUse& lhs, const DefAlgDepsUse& rhs) const { if (lhs.eq.id() != rhs.eq.id()) { - return lhs.eq.id() < rhs.eq.id(); + if (lhs.use_map.constantExp() && rhs.use_map.constantExp()) { + return lhs.eq.id() < rhs.eq.id(); + } + if (lhs.use_map.constantExp() && !rhs.use_map.constantExp()) { + return lhs.use_map.constants() < rhs.use_map.appliedInitValues(); + } + if (!lhs.use_map.constantExp() && rhs.use_map.constantExp()) { + return lhs.use_map.appliedInitValues() < rhs.use_map.constants(); + } + if (!lhs.use_map.constantExp() && !rhs.use_map.constantExp()) { + return lhs.use_map.appliedInitValues() < rhs.use_map.appliedInitValues(); + } + assert(false); + return false; } else { return lhs.use_map < rhs.use_map; } @@ -107,7 +125,7 @@ typedef list DepsData; typedef std::map DepsMap; string addAlgDeps(Equation eq, SB::Deps::LMapExp eq_use, std::map der_deps, std::map alg_deps, - PrintedDeps& printed_deps); + PrintedDeps& printed_deps, bool comes_from_rec = false); void insertAlg(AlgDepsMap& map, int id, DefAlgDepsUse new_dep); @@ -118,26 +136,35 @@ bool checkEventRange(Index index, Range range); std::vector getVariables(Index index, Range range); template -Option getUseRange(Util::Variable variable, DepData dep_data, N node, bool event = false) +Option getUseRange(Util::Variable variable, DepData dep_data, N node, bool event = false, bool path_recursive_deps = false) { Expression use_exp = dep_data.var_dep.exp(); const bool SCALAR_EXP = dep_data.var_dep.nMap().constantExp(); + if (variable.isScalar()) { + return Option(); + } + /// If the variable is recursive, return the entire variable range. + if (variable.isArray() && path_recursive_deps) { + return Range(variable); + } if (dep_data.var_dep.isRecursive()) { return Range(dep_data.var_dep.var()); } + if (SCALAR_EXP) { + return Option(); + } Index use_idx(use_exp); std::vector var_names = (use_idx.isConstant() && node.range()) ? node.range()->getIndexes() : use_idx.variables(); + /// If a range of variables affects one equation, generate a range with variable size and offsets, + /// the same is done if the opposite condition is met, return the range of the equations. if (dep_data.var_dep.equations().size() == 1 && dep_data.var_dep.variables().size() > 1) { return Range(dep_data.var_dep.variables(), dep_data.var_dep.varOffset(), var_names); } else if (dep_data.var_dep.equations().size() > 1 && dep_data.var_dep.variables().size() == 1) { return Range(dep_data.var_dep.equations(), dep_data.var_dep.eqOffset(), var_names); } - if (variable.isScalar() || SCALAR_EXP) { - return Option(); - } if (!SCALAR_EXP) { if (dep_data.from_alg) { - return Range(dep_data.var_dep.equations(), dep_data.var_dep.eqOffset(), use_idx.variables()); + return Range(dep_data.var_dep.equations(), dep_data.var_dep.eqOffset(), use_idx.variables(), node.range()); } if (event) { if (!node.range()) { @@ -157,5 +184,7 @@ Option getUseRange(Util::Variable variable, DepData dep_data); bool findDep(DepsMap deps, DepData dep_data, bool multiple_nodes = false); +bool checkAlgRecursiveDeps(Equation eq, AlgDepsMap alg_deps, AlgDepsMap deps); + } // namespace IR } // namespace MicroModelica diff --git a/src/mmoc/ir/equation.cpp b/src/mmoc/ir/equation.cpp index bd96a709..d6b3e7c6 100644 --- a/src/mmoc/ir/equation.cpp +++ b/src/mmoc/ir/equation.cpp @@ -22,24 +22,24 @@ #include #include -#include "../ast/ast_builder.h" -#include "../ast/equation.h" -#include "../ast/expression.h" +#include +#include +#include #include -#include "../util/error.h" -#include "../util/model_config.h" -#include "../util/util.h" -#include "../util/visitors/algebraics.h" -#include "../util/visitors/autonomous.h" -#include "../util/visitors/called_functions.h" -#include "../util/visitors/get_index_variables.h" -#include "../util/visitors/is_recursive_def.h" -#include "../util/visitors/replace_der.h" -#include "../util/visitors/revert_index.h" -#include "alg_usage.h" -#include "derivative.h" -#include "equation_printer.h" -#include "helpers.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace MicroModelica { using namespace Util; diff --git a/src/mmoc/ir/event.cpp b/src/mmoc/ir/event.cpp index 811fc8e4..ef460ea4 100644 --- a/src/mmoc/ir/event.cpp +++ b/src/mmoc/ir/event.cpp @@ -63,7 +63,7 @@ Event::Event(AST_Expression cond, int id, int offset, Option range, strin _event_id(event_id) { ConvertCondition cc; - _zero_crossing = Equation(cc.apply(getExpression(cond)), range, EQUATION::ZeroCrossing, id, offset); + _zero_crossing = Equation(cc.apply(getExpression(cond)), range, EQUATION::ZeroCrossing, id, _offset); _type = cc.zeroCrossing(); _current = _type; _zc_relation = cc.zeroCrossingRelation(); diff --git a/src/mmoc/ir/helpers.cpp b/src/mmoc/ir/helpers.cpp index 69b044c0..56b69615 100644 --- a/src/mmoc/ir/helpers.cpp +++ b/src/mmoc/ir/helpers.cpp @@ -203,12 +203,10 @@ string FunctionPrinter::beginExpression(string token, Option range) const stringstream buffer; if (range) { buffer << "if (_is_var" << token << "(idx)) {" << endl; - } else { - buffer << TAB << "case " << token << ": {" << endl; - } - if (range) { buffer << TAB << "_get" << token << "_idxs(idx);" << endl; range->addLocalVariables(); + } else { + buffer << TAB << "case " << token << ": {" << endl; } return buffer.str(); } diff --git a/src/mmoc/ir/index.cpp b/src/mmoc/ir/index.cpp index 9cfea27c..58589227 100644 --- a/src/mmoc/ir/index.cpp +++ b/src/mmoc/ir/index.cpp @@ -129,10 +129,10 @@ void Index::setExp(Expression exp) parseIndexes(); } -string Index::identifier() const +string Index::identifier(bool recursive_use) const { stringstream buffer; - if (isConstant()) { + if (isConstant() && !recursive_use) { buffer << "_eval" << _exp; } else { buffer << variable(); @@ -270,10 +270,11 @@ Range::Range(AST_Equation_For eqf, RANGE::Type type) : _ranges(), _index_pos(), setRangeDefinition(fil); } -Range::Range(AST_Statement_For stf, RANGE::Type type) : _ranges(), _index_pos(), _size(1), _type(type), _fixed(true), _merged_dims(false) +Range::Range(AST_Statement_For stf, RANGE::Type type, bool from_event) + : _ranges(), _index_pos(), _size(1), _type(type), _fixed(true), _merged_dims(false) { AST_ForIndexList fil = stf->forIndexList(); - setRangeDefinition(fil); + setRangeDefinition(fil, from_event); } Range::Range(Variable var, RANGE::Type type) : _ranges(), _index_pos(), _size(1), _type(type), _fixed(true), _merged_dims(false) @@ -286,10 +287,10 @@ Range::Range(AST_Expression exp) : _ranges(), _index_pos(), _size(1), _type(RANG generate(exp); } -Range::Range(SB::Set set, int offset, vector vars) +Range::Range(SB::Set set, int offset, vector vars, Option orig_range) : _ranges(), _index_pos(), _size(1), _type(RANGE::For), _fixed(true), _merged_dims(false) { - generate(set, offset, vars); + generate(set, offset, vars, orig_range); } void Range::updateRangeDefinition(std::string index_def, RangeDefinition def, int pos) @@ -321,7 +322,7 @@ bool Range::testExpression(AST_Expression exp) return false; } -void Range::setRangeDefinition(AST_ForIndexList fil) +void Range::setRangeDefinition(AST_ForIndexList fil, bool from_event) { AST_ForIndexListIterator filit; int pos = 0; @@ -347,8 +348,12 @@ void Range::setRangeDefinition(AST_ForIndexList fil) } else { end = eval.apply(ast_end_exp); } + if (from_event) { + end = eval.apply(ast_end_exp) - begin + 1; + begin = 1; + } if (end < begin) { - Error::instance().add(AST_ListFirst(el)->lineNum(), EM_IR | EM_UNKNOWN_ODE, ER_Error, "Wrong equation range."); + Error::instance().add(AST_ListFirst(el)->lineNum(), EM_IR | EM_WRONG_EXP, ER_Fatal, "Wrong equation range."); } string index = fi->variable()->c_str(); updateRangeDefinition(index, @@ -410,6 +415,36 @@ Expression Range::getExp(std::vector exps, size_t pos) return exps[pos]; } +void Range::generate(SB::Set set, int offset, vector vars, Option orig_range) +{ + unsigned int pos = 0; + const bool MAP_RANGE = orig_range.has_value(); + SB::UnordAtomSet a_sets = set.atomicSets(); + for (SB::AtomSet a_set : a_sets) { + SB::MultiInterval intervals = a_set.atomicSets(); + int exp_pos = 0; + for (SB::Interval interval : intervals.intervals()) { + int begin = interval.lo() - offset + 1; + int end = begin + interval.hi() - interval.lo(); + int step = interval.step(); + if (MAP_RANGE) { + RangeDefinition orig_def = orig_range->definition().value(exp_pos); + begin = orig_def.begin() + (begin - 1) * orig_def.step(); + end = orig_def.begin() + (end - 1) * orig_def.step(); + } + if (end < begin) { + Error::instance().add(0, EM_IR | EM_UNKNOWN_ODE, ER_Error, "Wrong range in dependency matrix."); + } + string index = Utils::instance().iteratorVar(pos); + if (!vars.empty() && pos < vars.size() && isVariable(vars[pos])) { + index = vars[pos]; + } + updateRangeDefinition(index, RangeDefinition(begin, end, step), pos++); + exp_pos++; + } + } +} + void Range::generate(SB::Set set, int offset, vector vars, std::vector begin_exps, std::vector end_exps) { unsigned int pos = 0; @@ -655,6 +690,41 @@ void Range::applyUsage(Index usage) } } +void Range::update(int offset) +{ + RangeDefinitionTable::iterator it; + int i = 0; + map updated_ranges; + for (RangeDefinition r = _ranges.begin(it); !_ranges.end(it); r = _ranges.next(it), i++) { + int new_begin = r.begin() + offset; + int new_end = r.end() + offset; + RangeDefinition new_range(new_begin, new_end, r.step()); + updated_ranges[_ranges.key(it)] = new_range; + } + for (auto update_range : updated_ranges) { + _ranges.insert(update_range.first, update_range.second); + } +} + +void Range::update(Range other) +{ + RangeDefinitionTable::iterator it; + RangeDefinitionTable::iterator other_it; + RangeDefinitionTable other_ranges = other.definition(); + assert(other_ranges.size() == _ranges.size()); + map updated_ranges; + RangeDefinition other_def = other_ranges.begin(other_it); + for (RangeDefinition r = _ranges.begin(it); !_ranges.end(it); r = _ranges.next(it), other_def = other_ranges.next(other_it)) { + int new_begin = r.begin() + other_def.begin() - 1; + int new_end = r.end() + other_def.begin() - 1; + RangeDefinition new_range(new_begin, new_end, r.step()); + updated_ranges[_ranges.key(it)] = new_range; + } + for (auto update_range : updated_ranges) { + _ranges.insert(update_range.first, update_range.second); + } +} + bool Range::checkUsage(Index usage, Index def) { int dimension = def.dimension(); @@ -720,37 +790,84 @@ map Range::initExps() return init_exps; } +bool Range::checkRangeVariable(string var, set& added_vars, vector& old_keys, int& pos) +{ + if (added_vars.find(var) == added_vars.end()) { + Option r = _ranges[var]; + if (r.has_value()) { + added_vars.insert(var); + string index = getDimensionVar(pos); + if (index != var) { + old_keys.push_back(var); + _ranges.insert(index, r.get()); + } + pos++; + return true; + } + } + return false; +} + +bool Range::checkRangeVariables(string ife_idx, string ifr_idx, set& added_vars, vector& old_keys, int& pos) +{ + if ((!isVariable(ife_idx) || ife_idx.empty()) && (!isVariable(ifr_idx) || ifr_idx.empty())) { + return true; + } + bool found = false; + if (isVariable(ife_idx)) { + found = checkRangeVariable(ife_idx, added_vars, old_keys, pos); + } + if (!found && isVariable(ifr_idx)) { + found = checkRangeVariable(ifr_idx, added_vars, old_keys, pos); + } + return found; +} + void Range::replace(Index ife_usage, Index ifr_usage) { - vector variables = ife_usage.variables(); + const bool SELECT_IFE_USAGE = ife_usage.variables().size() > ifr_usage.variables().size(); + vector max_usage = (SELECT_IFE_USAGE) ? ife_usage.variables() : ifr_usage.variables(); + vector min_usage = (!SELECT_IFE_USAGE) ? ife_usage.variables() : ifr_usage.variables(); + vector> used_variables; + + int min_usage_idx = 0; + int min_usage_size = min_usage.size(); + for (string max_usage_str : max_usage) { + string min_usage_str = ""; + if (min_usage_idx < min_usage_size) { + min_usage_str = min_usage[min_usage_idx]; + } + used_variables.push_back(make_pair(max_usage_str, min_usage_str)); + min_usage_idx++; + } + + // Add only variables from the ifr index that are higher than the ife usage + // the rest should be replaced by variables in the original range. + /*int variables_size = variables.size(); + int ifr_vars = 1; if (!ifr_usage.isEmpty()) { for (string ifr_var : ifr_usage.variables()) { - variables.push_back(ifr_var); + if (ifr_vars > variables_size) { + variables.push_back(ifr_var); + } + ifr_vars++; } sort(variables.begin(), variables.end()); variables.erase(unique(variables.begin(), variables.end()), variables.end()); - } + }*/ // In case of a scalar usage in N<->1 relations. - if (variables.empty()) { - variables = getIndexes(); + if (used_variables.empty()) { + max_usage = getIndexes(); + for (string max_usage_str : max_usage) { + string min_usage_str = ""; + used_variables.push_back(make_pair(max_usage_str, min_usage_str)); + } } set added_vars; vector old_keys; int pos = 1; - for (string var : variables) { - if (isVariable(var)) { - if (added_vars.find(var) == added_vars.end()) { - added_vars.insert(var); - Option r = _ranges[var]; - assert(r); - string index = getDimensionVar(pos); - if (index != var) { - old_keys.push_back(var); - _ranges.insert(index, r.get()); - } - } - pos++; - } + for (pair vars : used_variables) { + assert(checkRangeVariables(vars.first, vars.second, added_vars, old_keys, pos)); } for (string key : old_keys) { _ranges.remove(key); diff --git a/src/mmoc/ir/index.h b/src/mmoc/ir/index.h index 1921ac93..2f2dacb2 100644 --- a/src/mmoc/ir/index.h +++ b/src/mmoc/ir/index.h @@ -67,7 +67,7 @@ class Index { int dimension(); void setExp(Expression exp); std::string print() const; - std::string identifier() const; + std::string identifier(bool recursive_use = false) const; Range range() const; Index revert() const; Index replace(bool range_idx = false) const; @@ -131,10 +131,10 @@ class Range { public: Range(); Range(AST_Equation_For eqf, RANGE::Type type = RANGE::For); - Range(AST_Statement_For stf, RANGE::Type type = RANGE::For); + Range(AST_Statement_For stf, RANGE::Type type = RANGE::For, bool from_event = false); Range(Util::Variable var, RANGE::Type type = RANGE::For); Range(AST_Expression exp); - Range(SB::Set set, int offset, std::vector vars = std::vector()); + Range(SB::Set set, int offset, std::vector vars = std::vector(), Option orig_range = Option()); ~Range() = default; @@ -176,18 +176,23 @@ class Range { bool hasMergedDims() const; bool isDimensionVar(std::string var); + void update(int offset); + void update(Range other); protected: void generate(Util::Variable var); void generate(AST_Expression exp); + void generate(SB::Set set, int offset, std::vector vars, Option orig_range); void updateRangeDefinition(std::string index_def, RangeDefinition def, int pos); void addRangeVariables(int i, string index) const; bool isVariable(std::string var); bool testExpression(AST_Expression exp); Expression getExp(std::vector exps, size_t pos); + bool checkRangeVariable(string var, set& added_vars, vector& old_keys, int& pos); + bool checkRangeVariables(string ife_idx, string ifr_idx, set& added_vars, vector& old_keys, int& pos); private: - void setRangeDefinition(AST_ForIndexList fil); + void setRangeDefinition(AST_ForIndexList fil, bool from_event = false); RangeDefinitionTable _ranges; ModelTable _index_pos; int _size; diff --git a/src/mmoc/ir/jacobian.cpp b/src/mmoc/ir/jacobian.cpp index d70b533e..9c059c27 100644 --- a/src/mmoc/ir/jacobian.cpp +++ b/src/mmoc/ir/jacobian.cpp @@ -74,7 +74,7 @@ void JacGenerator::end() _tabs--; } -std::string JacGenerator::guard(SB::Set dom, int offset, std::string var_name, SB::Deps::LMapExp map) +std::string JacGenerator::guard(SB::Set dom, int offset, std::string var_name, SB::Deps::LMapExp map, Equation v_eq) { if (map.constantExp()) { return ""; @@ -84,6 +84,9 @@ std::string JacGenerator::guard(SB::Set dom, int offset, std::string var_name, S vector exps = map.apply(range.getDimensionVars()); Expression map_exp = Expression::generate(var_name, exps); range.applyUsage(Index(map_exp)); + if (v_eq.hasRange()) { + range.update(v_eq.range().get()); + } return range.in(exps); } @@ -91,7 +94,7 @@ void JacGenerator::dependencyPrologue(Equation eq, SB::Deps::VariableDep var_dep { stringstream code; string tabs = Utils::instance().tabs(_tabs); - SB::Deps::LMapExp map = var_dep.nMap(); + SB::Deps::LMapExp map = var_dep.nMap(); Range range(var_dep.variables(), var_dep.varOffset()); if (var_dep.isRecursive() && eq.hasRange()) { FunctionPrinter printer; @@ -105,7 +108,7 @@ void JacGenerator::dependencyPrologue(Equation eq, SB::Deps::VariableDep var_dep } vector exps = map.apply(range.getDimensionVars()); if (!map.constantExp()) { - code << tabs << "if(" << range.in(exps); + code << tabs << "if(" << range.in(exps); if (!guard.empty()) { code << " && " << guard; } @@ -211,12 +214,13 @@ void JacGenerator::Fvisitor(SB::Deps::SetVertex vertex, SB::Deps::VariableDep va void JacGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift) { stringstream code; + const bool REC_DEPS = var_dep.isRecursive(); Equation v_eq = getEquation(v_vertex); Equation g_eq = getEquation(g_vertex); // Generate composed expression for guards SB::Deps::LMapExp map_m = var_dep.mMap(); SB::Deps::LMapExp n_map = var_dep.nMap(); - string dom_guard = guard(var_dep.equations(), var_dep.eqOffset(), var_dep.var().name(), map_m); + string dom_guard = guard(var_dep.equations(), var_dep.eqOffset(), var_dep.var().name(), map_m, v_eq); dependencyPrologue(g_eq, var_dep, dom_guard); generatePos(v_eq.arrayId(), v_eq.type()); vector variables; @@ -228,23 +232,24 @@ void JacGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_ve } else { Option v_lhs = v_eq.LHSVariable(); Option g_lhs = g_eq.LHSVariable(); - if (var_dep.isRecursive()) { + if (REC_DEPS || g_lhs->isArray()) { Range range(var_dep.variables(), var_dep.varOffset()); exps = n_map.apply(range.getDimensionVars(USE_RANGE_IDXS)); - } else if (g_lhs->isArray()) { - Range range(var_dep.variables(), var_dep.varOffset()); - exps = range.getInitValues(); } else if (v_lhs->isArray()) { + // Is this condition possible? for (Expression exp : v_eq.lhs().indexes()) { exps.push_back(exp.print()); } - } + } } Expression a_exp = Expression::generate(g_eq.LHSVariable()->name(), exps); Index a_ind(a_exp); - code << tab << "c_row_g = "; - code << a_ind << " - " << index_shift; - code << ";" << endl; + code << tab << "c_row_g = " << a_ind << " - "; + int eq_shift = g_eq.LHSVariable()->offset(); + if (g_eq.hasRange()) { + eq_shift += index_shift; + } + code << eq_shift << ";" << endl; _jac_def.code.append(code.str()); int g_eq_id = g_eq.arrayId(); generatePos(g_eq_id, g_eq.type(), "c_row_g", "col_g"); @@ -252,10 +257,9 @@ void JacGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_ve dependencyEpilogue(g_eq, var_dep); } -void JacGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, - SB::Deps::LMapExp def_map_exp, SB::Set intersection) +void JacGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, + Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection) { - } void JacGenerator::initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge) @@ -279,6 +283,7 @@ void Jacobian::build() VarSymbolTable symbols = ModelConfig::instance().symbols(); JacobianBuilder jac; IndexShiftBuilder index_shifts(algebraics); + jac.setup(algebraics); SDSBGraphBuilder SDSBGraph = SDSBGraphBuilder(derivatives, algebraics); SDSBGraph.setOrigEquations(ModelConfig::instance().derivatives()); jac.compute(SDSBGraph.build(), index_shifts.build()); diff --git a/src/mmoc/ir/jacobian.h b/src/mmoc/ir/jacobian.h index 62d7fed7..f81871c6 100644 --- a/src/mmoc/ir/jacobian.h +++ b/src/mmoc/ir/jacobian.h @@ -45,13 +45,13 @@ class JacGenerator { void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep); void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex); void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift); - void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, - SB::Deps::LMapExp def_map_exp, SB::Set intersection); + void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, + Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection); void initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge); JacDef def(); - void setup(EquationTable eqs) {}; - EquationTable config() { return EquationTable(); } - + void setup(EquationTable algebraics) { _algebraics = algebraics; }; + EquationTable config() { return _algebraics; } + protected: IR::Expression generateExp(string var_name, vector indices); void dependencyPrologue(Equation eq, SB::Deps::VariableDep var_dep, std::string guard = ""); @@ -61,10 +61,11 @@ class JacGenerator { void generateEquation(int id, EQUATION::Type type); void generateEquation(int v_id, int g_id, EQUATION::Type type); std::string getVariableIndexes(Equation eq); - std::string guard(SB::Set dom, int offset, std::string var_name, SB::Deps::LMapExp map); + std::string guard(SB::Set dom, int offset, std::string var_name, SB::Deps::LMapExp map, Equation v_eq); void Fvisitor(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, int eq_id); JacDef _jac_def; int _tabs; + EquationTable _algebraics; }; class Jacobian { diff --git a/src/mmoc/ir/mmo_ir.cpp b/src/mmoc/ir/mmo_ir.cpp index bfb78945..0afdd582 100644 --- a/src/mmoc/ir/mmo_ir.cpp +++ b/src/mmoc/ir/mmo_ir.cpp @@ -21,23 +21,23 @@ #include -#include "../ast/class.h" -#include "../ast/composition.h" -#include "../ast/element.h" -#include "../ast/equation.h" -#include "../ast/expression.h" -#include "../ast/modification.h" -#include "../ast/statement.h" -#include "../util/visitors/eval_init_exp.h" -#include "../util/visitors/array_use.h" -#include "../util/visitors/discrete_assignment.h" -#include "../util/error.h" -#include "../util/symbol_table.h" -#include "../util/type.h" -#include "class.h" -#include "expression.h" -#include "helpers.h" -#include "stored_definition.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include namespace MicroModelica { using namespace Util; @@ -162,8 +162,124 @@ void MicroModelicaIR::leave(AST_Modification x) void MicroModelicaIR::visit(AST_Comment x) {} +AST_StatementList MicroModelicaIR::getStatementList(AST_EquationList eqs) +{ + AST_StatementList stms = newAST_StatementList(); + AST_EquationListIterator eqs_it; + foreach (eqs_it, eqs) { + AST_Statement stm = transformEquation(current_element(eqs_it)); + if (stm) { + stms = AST_ListAppend(stms, stm); + } + } + return stms; +} + +bool MicroModelicaIR::checkForEquation(AST_Equation_For for_eq) +{ + AST_EquationList for_eqs = for_eq->equationList(); + AST_EquationListIterator eqs_it; + AST_StatementList when_stms = newAST_StatementList(); + AST_EquationList split_for_eqs = newAST_EquationList(); + foreach (eqs_it, for_eqs) { + if (current_element(eqs_it)->equationType() == EQWHEN) { + when_stms = AST_ListAppend(when_stms, transformWhenEquation(current_element(eqs_it)->getAsWhen())); + } else { + split_for_eqs = AST_ListAppend(split_for_eqs, current_element(eqs_it)); + } + } + if (!when_stms->empty()) { + AST_Statement stm = newAST_Statement_For(for_eq->forIndexList(), when_stms); + visit(stm); + } + if (!split_for_eqs->empty()) { + AST_ForIndexList fil = for_eq->forIndexList(); + AST_ForIndexListIterator it; + foreach (it, fil) { + visit(current_element(it)); + } + AST_Equation eq = newAST_Equation_For(for_eq->forIndexList(), split_for_eqs); + _class->insert(eq); + } + return when_stms->empty(); +} + +AST_Statement MicroModelicaIR::transformWhenEquation(AST_Equation_When when_eq) +{ + AST_StatementList true_stms = getStatementList(when_eq->equationList()); + AST_Statement_ElseList else_when_stms = newAST_Statement_ElseList(); + AST_Equation_ElseList else_when_eqs = when_eq->equationElseWhen(); + AST_Equation_ElseListIterator else_when_eqs_it; + foreach (else_when_eqs_it, else_when_eqs) { + AST_Equation_Else eq_else_when = current_element(else_when_eqs_it); + AST_StatementList current_else_when_stms = getStatementList(eq_else_when->equations()); + AST_Statement_Else add_stm_else = newAST_Statement_Else(eq_else_when->condition(), current_else_when_stms); + else_when_stms = AST_ListAppend(else_when_stms, add_stm_else); + } + return newAST_Statement_When(when_eq->condition(), true_stms, else_when_stms, when_eq->comment()); +} + +bool MicroModelicaIR::checkWhenEquation(AST_Equation eq) +{ + AST_Statement stm = nullptr; + if (eq->equationType() == EQFOR) { + return checkForEquation(eq->getAsFor()); + } else if (eq->equationType() == EQWHEN) { + stm = transformWhenEquation(eq->getAsWhen()); + visit(stm); + return true; + } + return false; +} + +AST_Statement MicroModelicaIR::transformEquation(AST_Equation x) +{ + AST_Statement stm = nullptr; + if (x->equationType() == EQEQUALITY) { + AST_Equation_Equality eqe = x->getAsEquality(); + AST_Expression_ComponentReference lhs = eqe->left()->getAsComponentReference(); + stm = newAST_Statement_Assign(lhs, eqe->right()); + } else if (x->equationType() == EQCALL) { + AST_Equation_Call eq_call = x->getAsCall(); + AST_Expression call = eq_call->call(); + if (call->expressionType() == EXPCALL) { + AST_Expression_Call exp_call = call->getAsCall(); + AST_Expression_ComponentReference output_name = newAST_Expression_ComponentReference(); + AST_ExpressionList l = newAST_ExpressionList(); + output_name = AST_Expression_ComponentReference_Add(output_name, newAST_String(exp_call->name()), l); + stm = newAST_Statement_OutputAssign(exp_call->outputArguments(), output_name, exp_call->arguments()); + } + } else if (x->equationType() == EQFOR) { + AST_Equation_For for_eq = x->getAsFor(); + AST_StatementList stms = getStatementList(for_eq->equationList()); + stm = newAST_Statement_For(for_eq->forIndexList(), stms); + } else if (x->equationType() == EQIF) { + AST_Equation_If if_eq = x->getAsIf(); + AST_StatementList true_stms = getStatementList(if_eq->equationList()); + AST_StatementList else_stms = getStatementList(if_eq->equationElseList()); + AST_Statement_ElseList else_if_stms = newAST_Statement_ElseList(); + AST_Equation_ElseList else_if_eqs = if_eq->equationElseIf(); + AST_Equation_ElseListIterator else_if_eqs_it; + foreach (else_if_eqs_it, else_if_eqs) { + AST_Equation_Else eq_else_if = current_element(else_if_eqs_it); + AST_StatementList current_else_if_stms = getStatementList(eq_else_if->equations()); + AST_Statement_Else add_stm_else = newAST_Statement_Else(eq_else_if->condition(), current_else_if_stms); + else_if_stms = AST_ListAppend(else_if_stms, add_stm_else); + } + stm = newAST_Statement_If(if_eq->condition(), true_stms, else_if_stms, else_stms); + } + return stm; +} + void MicroModelicaIR::visit(AST_Equation x) { + if (_initialCode) { + visit(transformEquation(x)); + return; + } + if (checkWhenEquation(x)) { + return; + } if (x->equationType() == EQFOR) { AST_ForIndexList fil = x->getAsFor()->forIndexList(); AST_ForIndexListIterator it; diff --git a/src/mmoc/ir/mmo_ir.h b/src/mmoc/ir/mmo_ir.h index 03747f24..6a10b29b 100644 --- a/src/mmoc/ir/mmo_ir.h +++ b/src/mmoc/ir/mmo_ir.h @@ -22,9 +22,9 @@ #include #include -#include "../ast/ast_types.h" -#include "../util/ast_util.h" -#include "../ir/stored_definition.h" +#include +#include +#include namespace MicroModelica { namespace IR { @@ -63,6 +63,11 @@ class MicroModelicaIR : public AST_Visitor { protected: void visitForStms(AST_Statement_For for_stm); + AST_Statement transformEquation(AST_Equation eq); + AST_StatementList getStatementList(AST_EquationList eqs); + bool checkForEquation(AST_Equation_For for_eq); + bool checkWhenEquation(AST_Equation eq); + AST_Statement transformWhenEquation(AST_Equation_When when_eq); private: StoredDefinition _std; diff --git a/src/mmoc/ir/mmo_model_checker.cpp b/src/mmoc/ir/mmo_model_checker.cpp index aab66b4d..f3ce6ce5 100644 --- a/src/mmoc/ir/mmo_model_checker.cpp +++ b/src/mmoc/ir/mmo_model_checker.cpp @@ -19,16 +19,16 @@ #include "mmo_model_checker.h" -#include "../ast/class.h" -#include "../ast/composition.h" -#include "../ast/element.h" -#include "../ast/equation.h" -#include "../ast/expression.h" -#include "../ast/modification.h" -#include "../ast/statement.h" -#include "../ast/stored_definition.h" -#include "../util/error.h" -#include "../util/util.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include using namespace MicroModelica::Util; @@ -37,7 +37,9 @@ namespace IR { /* MicroModelica model checker interface */ -ModelChecker::ModelChecker(string name) : _has_parent(false), _class_name(), _class_prefix(0), _class_modification(false), _else_when(false) {} +ModelChecker::ModelChecker(string name) : _has_parent(false), _class_name(), _class_prefix(0), _class_modification(false), _else_when(false) +{ +} ModelChecker::~ModelChecker() {} @@ -141,11 +143,6 @@ void ModelChecker::leave(AST_CompositionElement x) {} void ModelChecker::visit(AST_CompositionEqsAlgs x) { - if (_class_prefix == CP_MODEL) { - if (x->hasEquations() && x->isInitial()) { - Error::instance().add(x->lineNum(), EM_AST | EM_CLASS_DEFINITION, ER_Error, "Initial Equation section inside Model Class."); - } - } if (_class_prefix == CP_FUNCTION || _class_prefix == CP_PURE || _class_prefix == CP_IMPURE) { if (x->isInitial() && !_has_parent) { Error::instance().add(x->lineNum(), EM_AST | EM_CLASS_DEFINITION, ER_Error, "Initial section inside function definition."); @@ -300,7 +297,7 @@ bool ModelChecker::_lValue(AST_Expression left) void ModelChecker::visit(AST_Equation x) { EquationType e = x->equationType(); - if (e == EQCALL || e == EQCONNECT || e == EQWHEN || e == EQIF) { + if (e == EQCALL || e == EQCONNECT || e == EQIF) { Error::instance().add(x->lineNum(), EM_AST | EM_CLASS_DEFINITION, ER_Error, "Equation type not allowed %d.", e); } if (e == EQEQUALITY) { diff --git a/src/mmoc/ir/model_matrix_gen.cpp b/src/mmoc/ir/model_matrix_gen.cpp index b5d0793d..bc3c7dcc 100644 --- a/src/mmoc/ir/model_matrix_gen.cpp +++ b/src/mmoc/ir/model_matrix_gen.cpp @@ -39,13 +39,21 @@ using namespace Util; namespace IR { template -ModelMatrixGenerator::ModelMatrixGenerator() : _model_matrix_def(), _tabs(0), _deps(), _post_process_eval(false), _config() {} +ModelMatrixGenerator::ModelMatrixGenerator() : _model_matrix_def(), _tabs(0), _deps(), _post_process_eval(false), _config() +{ +} template -void ModelMatrixGenerator::setup(Config config) { _config = config; } +void ModelMatrixGenerator::setup(Config config) +{ + _config = config; +} template -Config ModelMatrixGenerator::config() { return _config; } +Config ModelMatrixGenerator::config() +{ + return _config; +} template void ModelMatrixGenerator::addCode(MatrixCode dep_code, std::stringstream& code) @@ -102,7 +110,7 @@ void ModelMatrixGenerator::printMatrix(MATRIX::Method method, MAT ifr_node = _config.selector.getScalarUsage(var_dep.var_dep.equations(), use_exp, ifr_node, ifr_idx); Index ife_idx(_config.selector.exp(ifr_node)); Index ife_orig_idx = ife_idx; - Index ifr_orig_idx = ifr_idx; + Index ifr_orig_idx = ifr_idx; if (mode == MATRIX::Transpose) { Index swap = ifr_idx; ifr_idx = ife_idx; @@ -129,7 +137,8 @@ void ModelMatrixGenerator::printMatrix(MATRIX::Method method, MAT Range der_range = ifr_node.range().get(); der_range.replace(ife_orig_idx); dep_code.begin.push_back(der_range.print()); - dep_code.end.push_back(der_range.end()); + dep_code.end.push_back(der_range.end()); + buffer << der_range.block(); } else { dep_code.begin.push_back(""); dep_code.end.push_back(""); @@ -170,10 +179,14 @@ void ModelMatrixGenerator::postProcess(SB::Deps::SetVertex vertex } template -void ModelMatrixGenerator::init(SB::Deps::SetVertex vertex) {} +void ModelMatrixGenerator::init(SB::Deps::SetVertex vertex) +{ +} template -void ModelMatrixGenerator::end() {} +void ModelMatrixGenerator::end() +{ +} template void ModelMatrixGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep) @@ -190,16 +203,22 @@ void ModelMatrixGenerator::visitF(SB::Deps::SetVertex vertex, SB: } template -void ModelMatrixGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex) {} +void ModelMatrixGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex) +{ +} template void ModelMatrixGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, - int index_shift) + int index_shift) { - if (!_config.selector.isAlgebraic(v_vertex)) { + list pure_recursive_deps = g_vertex.desc().pureRecursiveDeps(); + if (!_config.selector.isAlgebraic(v_vertex) && !var_dep.var().isAlgebraic()) { string var_name = var_dep.var().name(); const bool FROM_ALG = true; - DepData dep_data(_config.selector.id(v_vertex), var_dep, FROM_ALG); + const bool REC_DEPS = pure_recursive_deps.size() > 0 || var_dep.isRecursive(); + SB::Deps::VariableDep dep = var_dep; + dep.setRecursive(REC_DEPS); + DepData dep_data(_config.selector.id(v_vertex), dep, FROM_ALG); if (!findDep(_deps, dep_data, _config.selector.multipleNodes())) { list deps = _deps[var_name]; deps.push_back(dep_data); @@ -210,24 +229,29 @@ void ModelMatrixGenerator::visitG(SB::Deps::SetVertex v_vertex, S template void ModelMatrixGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, - SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, - SB::Set intersection) + SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, + SB::Deps::LMapExp def_map_exp, SB::Set intersection) { } template -void ModelMatrixGenerator::initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge) {} +void ModelMatrixGenerator::initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge) +{ +} template -ModelMatrixDef ModelMatrixGenerator::def() { return _model_matrix_def; } +ModelMatrixDef ModelMatrixGenerator::def() +{ + return _model_matrix_def; +} namespace MATRIX { -template class MatrixConfig; +template class MatrixConfig; -template class MatrixConfig; +template class MatrixConfig; -} // namespace MATRIX +} // namespace MATRIX template class ModelMatrixGenerator; diff --git a/src/mmoc/ir/qss_model.cpp b/src/mmoc/ir/qss_model.cpp index 06505f66..c537cd27 100644 --- a/src/mmoc/ir/qss_model.cpp +++ b/src/mmoc/ir/qss_model.cpp @@ -40,14 +40,14 @@ namespace IR { QSSModelGenerator::QSSModelGenerator() : _qss_model_def(), _tabs(0), _post_process_eval(false) {} -void QSSModelGenerator::setup(EquationTable eqs) { _eqs = eqs; } +void QSSModelGenerator::setup(QSSModelConfig config) { _config = config; } void QSSModelGenerator::postProcess(SB::Deps::SetVertex vertex) { if (_post_process_eval) { return; } - EquationTable equations = _eqs; + EquationTable equations = _config.eqs; EquationTable::iterator it; std::stringstream simple; std::stringstream generic; @@ -77,10 +77,10 @@ void QSSModelGenerator::visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep void QSSModelGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift) { if (var_dep.isRecursive()) { - Equation v_eq = getEquation(v_vertex, _eqs); - Equation g_eq = getEquation(g_vertex, _eqs); + Equation v_eq = getEquation(v_vertex, _config.eqs); + Equation g_eq = getEquation(g_vertex, _config.eqs); DefAlgDepsUse new_dep(g_eq, var_dep); - insertAlg(_der_deps, v_eq.id(), new_dep); + insertAlg(((v_eq.type() == IR::EQUATION::Algebraic) ? _alg_deps : _der_deps), v_eq.id(), new_dep); } } @@ -88,8 +88,8 @@ void QSSModelGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection) { - Equation v_eq = getEquation(v_vertex, _eqs); - Equation g_eq = getEquation(g_vertex, _eqs); + Equation v_eq = getEquation(v_vertex, _config.eqs); + Equation g_eq = getEquation(g_vertex, _config.eqs); DefAlgDepsUse new_dep(g_eq, def_map, use_exp, use_map_exp, def_map_exp, g_vertex.id()); insertAlg(((v_eq.type() == IR::EQUATION::Algebraic) ? _alg_deps : _der_deps), v_eq.id(), new_dep); } @@ -98,10 +98,12 @@ void QSSModelGenerator::initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge QSSModelDef QSSModelGenerator::def() { return _qss_model_def; } -template -QSSModel::QSSModel() {} +template +QSSModel::QSSModel() +{ +} -template +template void QSSModel::build(EquationTable eqs) { EquationTable algebraics = ModelConfig::instance().algebraics(); @@ -109,16 +111,26 @@ void QSSModel::build(EquationTable eqs) QSSModelBuilder qss_model; IndexShiftBuilder index_shifts(algebraics); GraphBuilder EQSBGraph(eqs, algebraics); - qss_model.setup(eqs); - qss_model.compute(EQSBGraph.build(), index_shifts.build()); + SB::Deps::Graph graph = EQSBGraph.build(); + QSSModelConfig config; + config.eqs = eqs; + config.graph = graph; + qss_model.setup(config); + qss_model.compute(graph, index_shifts.build()); _qss_model_def = qss_model.def(); } -template -string QSSModel::simpleDef() { return _qss_model_def.simple; } +template +string QSSModel::simpleDef() +{ + return _qss_model_def.simple; +} -template -string QSSModel::genericDef() { return _qss_model_def.generic; } +template +string QSSModel::genericDef() +{ + return _qss_model_def.generic; +} template class QSSModel; diff --git a/src/mmoc/ir/qss_model.h b/src/mmoc/ir/qss_model.h index e9f85fdb..815ac3f3 100644 --- a/src/mmoc/ir/qss_model.h +++ b/src/mmoc/ir/qss_model.h @@ -37,7 +37,6 @@ struct QSSModelDef { std::string generic; }; - class QSSModelGenerator { public: QSSModelGenerator(); @@ -48,14 +47,14 @@ class QSSModelGenerator { void postProcess(SB::Deps::SetVertex vertex); void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep); void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex); - void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift); - void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, - SB::Deps::LMapExp def_map_exp, SB::Set intersection); + void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift = 0); + void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, + Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection); void initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge); QSSModelDef def(); - void setup(EquationTable eqs); - EquationTable config() { return EquationTable(); } + void setup(QSSModelConfig config); + QSSModelConfig config() { return _config; } protected: QSSModelDef _qss_model_def; @@ -63,10 +62,10 @@ class QSSModelGenerator { AlgDepsMap _der_deps; AlgDepsMap _alg_deps; bool _post_process_eval; - EquationTable _eqs; + QSSModelConfig _config; }; -template +template class QSSModel { public: QSSModel(); @@ -88,6 +87,5 @@ typedef QSSModel ZCModelGen; typedef QSSModel OutputModelGen; - } // namespace IR } // namespace MicroModelica diff --git a/src/mmoc/ir/qss_model_deps.cpp b/src/mmoc/ir/qss_model_deps.cpp index 05eee412..7cff7744 100644 --- a/src/mmoc/ir/qss_model_deps.cpp +++ b/src/mmoc/ir/qss_model_deps.cpp @@ -41,6 +41,10 @@ namespace IR { QSSModelDepsGenerator::QSSModelDepsGenerator() : _qss_model_deps_def(), _tabs(0), _deps(), _post_process_eval(false) {} +void QSSModelDepsGenerator::setup(QSSModelConfig config) { _config = config; } + +QSSModelConfig QSSModelDepsGenerator::config() { return _config; } + void QSSModelDepsGenerator::addCode(DepCode dep_code, std::stringstream& code) { if (dep_code.scalar) { @@ -89,23 +93,24 @@ void QSSModelDepsGenerator::postProcess(SB::Deps::SetVertex vertex) assert(eq); vector exps; Expression use_exp = getUseExp(ifr.get(), var_dep); - Option range = getUseRange(ifr.get(), var_dep, eq.get()); + bool alg_recursive_use = checkAlgRecursiveDeps(eq.get(), _der_deps, _alg_deps); + Option range = getUseRange(ifr.get(), var_dep, eq.get(), false, alg_recursive_use); Index use_idx(use_exp); - string use_id = use_idx.identifier(); + string use_id = use_idx.identifier(alg_recursive_use && !ifr.get().isScalar()); Equation der = eq.get(); der.setType(IR::EQUATION::Dependency); der.setUsage(use_idx); if (range && der.hasRange()) { der.setRange(range); } - if ((var_dep.var_dep.equations().size() == 1) && use_exp.isScalar() && der.hasRange()) { + if ((var_dep.var_dep.equations().size() == 1) && use_exp.isScalar() && der.hasRange() && !alg_recursive_use) { Equation use_eq = der; use_eq.applyUsage(use_idx); der = use_eq; } if (deps_code.find(use_id) == deps_code.end()) { DepCode dep_code; - dep_code.scalar = use_exp.isScalar(); + dep_code.scalar = (use_exp.isScalar() && !alg_recursive_use) || ifr.get().isScalar(); deps_code[use_id] = dep_code; } DepCode dep_code = deps_code[use_id]; @@ -152,9 +157,9 @@ void QSSModelDepsGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVe Equation g_eq = getEquation(g_vertex); if (var_dep.isRecursive()) { DefAlgDepsUse new_dep(g_eq, var_dep); - insertAlg(_der_deps, v_eq.id(), new_dep); + insertAlg(((v_eq.type() == IR::EQUATION::Algebraic) ? _alg_deps : _der_deps), v_eq.id(), new_dep); } - if (v_eq.type() == EQUATION::QSSDerivative) { + if (v_eq.type() == EQUATION::QSSDerivative && var_dep.var().isState()) { string var_name = var_dep.var().name(); DepData dep_data(v_eq.id(), var_dep); if (!findDep(_deps, dep_data)) { @@ -171,7 +176,7 @@ void QSSModelDepsGenerator::visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVe { Equation v_eq = getEquation(v_vertex); Equation g_eq = getEquation(g_vertex); - DefAlgDepsUse new_dep(g_eq, def_map, use_exp, use_map_exp, def_map_exp, g_vertex.id()); + DefAlgDepsUse new_dep(g_eq, def_map, use_exp, use_map_exp, def_map_exp, g_vertex.id()); insertAlg(((v_eq.type() == IR::EQUATION::Algebraic) ? _alg_deps : _der_deps), v_eq.id(), new_dep); } @@ -188,7 +193,12 @@ void QSSModelDeps::build(EquationTable eqs) QSSModelDepsBuilder qss_model_deps; IndexShiftBuilder index_shifts(algebraics); SDSBGraphBuilder SDSBGraph = SDSBGraphBuilder(eqs, algebraics); - qss_model_deps.compute(SDSBGraph.build(), index_shifts.build()); + SB::Deps::Graph graph = SDSBGraph.build(); + QSSModelConfig config; + config.eqs = eqs; + config.graph = graph; + qss_model_deps.setup(config); + qss_model_deps.compute(graph, index_shifts.build()); _qss_model_deps_def = qss_model_deps.def(); } diff --git a/src/mmoc/ir/qss_model_deps.h b/src/mmoc/ir/qss_model_deps.h index afb1e74e..8fe80919 100644 --- a/src/mmoc/ir/qss_model_deps.h +++ b/src/mmoc/ir/qss_model_deps.h @@ -54,24 +54,25 @@ class QSSModelDepsGenerator { void postProcess(SB::Deps::SetVertex vertex); void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep); void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex); - void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift); - void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, Expression use_exp, SB::PWLMap def_map, - SB::Deps::LMapExp def_map_exp, SB::Set intersection); + void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep, int index_shift = 0); + void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp, + Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection); void initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge); QSSModelDepsDef def(); - void setup(EquationTable eqs) {}; - EquationTable config() { return EquationTable(); } + void setup(QSSModelConfig _config); + QSSModelConfig config(); protected: void addCode(DepCode dep_code, std::stringstream& code); - + QSSModelDepsDef _qss_model_deps_def; int _tabs; AlgDepsMap _der_deps; AlgDepsMap _alg_deps; DepsMap _deps; bool _post_process_eval; + QSSModelConfig _config; }; class QSSModelDeps { diff --git a/src/mmoc/main.cpp b/src/mmoc/main.cpp index e6db6895..176d4ae8 100644 --- a/src/mmoc/main.cpp +++ b/src/mmoc/main.cpp @@ -89,7 +89,7 @@ void usage() void version() { - cout << "MicroModelica C Compiler 4.0.1" << endl; + cout << "MicroModelica C Compiler 4.2.0" << endl; cout << "License GPLv3+: GNU GPL version 3 or later " << endl; cout << "This is free software: you are free to change and redistribute it." << endl; cout << "There is NO WARRANTY, to the extent permitted by law." << endl; diff --git a/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.c b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.c new file mode 100644 index 00000000..10a99c21 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.c @@ -0,0 +1,710 @@ +#include +#include +#include +#include + +#include "BouncingBall.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = TRUE; + settings->method = 7; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + switch(idx) { + case _eval_ball1_y(0): { + _der_ball1_y(0) = _ball1_v(0); + _der_ball1_y(1) = (0)/2; + _der_ball1_y(2) = (0)/6; + + return; + } + case _eval_ball1_v(0): { + _fixed1_flange1_v(0) = 0; + _fixed1_flange1_v(1) = 0; + _fixed1_flange1_v(2) = 0; + _ball1_flange1_v(0) = _ball1_v(0); + _ball1_flange1_v(1) = 0; + _ball1_flange1_v(2) = 0; + _spring1_flange2_v(0) = _fixed1_flange1_v(0); + _spring1_flange2_v(1) = 0; + _spring1_flange2_v(2) = 0; + _spring1_flange1_v(0) = _ball1_flange1_v(0); + _spring1_flange1_v(1) = 0; + _spring1_flange1_v(2) = 0; + _fixed1_flange1_s(0) = _fixed1_s0; + _fixed1_flange1_s(1) = 0; + _fixed1_flange1_s(2) = 0; + _ball1_flange1_s(0) = _ball1_y(0); + _ball1_flange1_s(1) = 0; + _ball1_flange1_s(2) = 0; + _spring1_flange2_s(0) = _fixed1_flange1_s(0); + _spring1_flange2_s(1) = 0; + _spring1_flange2_s(2) = 0; + _spring1_flange1_s(0) = _ball1_flange1_s(0); + _spring1_flange1_s(1) = 0; + _spring1_flange1_s(2) = 0; + _spring1_dv(0) = _spring1_flange1_v(0)-_spring1_flange2_v(0); + _spring1_dv(1) = 0; + _spring1_dv(2) = 0; + _spring1_dy(0) = _spring1_flange1_s(0)-_spring1_flange2_s(0); + _spring1_dy(1) = 0; + _spring1_dy(2) = 0; + _spring1_flange1_f(0) = _d0*(_spring1_b*_spring1_dv(0)+_spring1_k*_spring1_dy(0))+(1-_d0)*(0); + _spring1_flange1_f(1) = 0; + _spring1_flange1_f(2) = 0; + _ball1_flange1_f(0) = (-_spring1_flange1_f(0)); + _ball1_flange1_f(1) = 0; + _ball1_flange1_f(2) = 0; + _der_ball1_v(0) = (_ball1_flange1_f(0)-_ball1_m*_ball1_g)*(1/(_ball1_m)); + _der_ball1_v(1) = (0)/2; + _der_ball1_v(2) = (0)/6; + + return; + } + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ + switch(idx) { + case _eval_event_1: { + _fixed1_flange1_s(0) = _fixed1_s0; + _fixed1_flange1_s(1) = 0; + _fixed1_flange1_s(2) = 0; + _ball1_flange1_s(0) = _ball1_y(0); + _ball1_flange1_s(1) = 0; + _ball1_flange1_s(2) = 0; + _spring1_flange2_s(0) = _fixed1_flange1_s(0); + _spring1_flange2_s(1) = 0; + _spring1_flange2_s(2) = 0; + _spring1_flange1_s(0) = _ball1_flange1_s(0); + _spring1_flange1_s(1) = 0; + _spring1_flange1_s(2) = 0; + _spring1_dy(0) = _spring1_flange1_s(0)-_spring1_flange2_s(0); + _spring1_dy(1) = 0; + _spring1_dy(2) = 0; + _zc(0) = _spring1_dy(0)-(0); + _zc(1) = (0)/1; + _zc(2) = (0)/2; + + return; + } + case _eval_event_2: { + _zc(0) = _d0-(0); + _zc(1) = (0)/1; + _zc(2) = (0)/2; + + return; + } + case _eval_event_3: { + _zc(0) = _d0-(1); + _zc(1) = (0)/1; + _zc(2) = (0)/2; + + return; + } + } +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ + switch(idx) { + case _eval_event_1: { + _d0 = 0; + return; + } + case _eval_event_2: { + _d1 = 1; + return; + } + } +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ + switch(idx) { + case _eval_event_1: { + _d0 = 1; + return; + } + case _eval_event_3: { + _d1 = 0; + return; + } + } +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + switch(idx) { + case _eval_out_exp_1: { + _out = _ball1_y(0); + return; + } + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[2]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_v(0); + col = pos(dvdx->dg_dx[7]->index[c_row], dvdx->dg_dx[7]->size[c_row], x_ind); + c_row_g = _idx_ball1_flange1_v(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->dg_dx[7]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_v(0); + col = pos(dvdx->dg_dx[8]->index[c_row], dvdx->dg_dx[8]->size[c_row], x_ind); + c_row_g = _idx_spring1_flange1_v(0) - 7; + col_g = pos(dvdx->dg_dx[7]->index[c_row_g], dvdx->dg_dx[7]->size[c_row_g], x_ind); + dvdx->dg_dx[8]->value[c_row][col] += aux * dvdx->dg_dx[7]->value[c_row_g][col_g]; + aux = 0; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_y(0); + col = pos(dvdx->dg_dx[3]->index[c_row], dvdx->dg_dx[3]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[3]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_y(0); + col = pos(dvdx->dg_dx[6]->index[c_row], dvdx->dg_dx[6]->size[c_row], x_ind); + c_row_g = _idx_ball1_flange1_s(0) - 3; + col_g = pos(dvdx->dg_dx[3]->index[c_row_g], dvdx->dg_dx[3]->size[c_row_g], x_ind); + dvdx->dg_dx[6]->value[c_row][col] += aux * dvdx->dg_dx[3]->value[c_row_g][col_g]; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_y(0); + col = pos(dvdx->dg_dx[9]->index[c_row], dvdx->dg_dx[9]->size[c_row], x_ind); + c_row_g = _idx_spring1_flange1_s(0) - 6; + col_g = pos(dvdx->dg_dx[6]->index[c_row_g], dvdx->dg_dx[6]->size[c_row_g], x_ind); + dvdx->dg_dx[9]->value[c_row][col] += aux * dvdx->dg_dx[6]->value[c_row_g][col_g]; + aux = 0; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_v(0); + col = pos(dvdx->dg_dx[10]->index[c_row], dvdx->dg_dx[10]->size[c_row], x_ind); + c_row_g = _idx_spring1_dv(0) - 8; + col_g = pos(dvdx->dg_dx[8]->index[c_row_g], dvdx->dg_dx[8]->size[c_row_g], x_ind); + dvdx->dg_dx[10]->value[c_row][col] += aux * dvdx->dg_dx[8]->value[c_row_g][col_g]; + aux = 0; + x_ind = _idx_ball1_y(0); + col = pos(dvdx->dg_dx[10]->index[c_row], dvdx->dg_dx[10]->size[c_row], x_ind); + c_row_g = _idx_spring1_dy(0) - 9; + col_g = pos(dvdx->dg_dx[9]->index[c_row_g], dvdx->dg_dx[9]->size[c_row_g], x_ind); + dvdx->dg_dx[10]->value[c_row][col] += aux * dvdx->dg_dx[9]->value[c_row_g][col_g]; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_v(0); + col = pos(dvdx->dg_dx[12]->index[c_row], dvdx->dg_dx[12]->size[c_row], x_ind); + c_row_g = _idx_spring1_flange1_f(0) - 10; + col_g = pos(dvdx->dg_dx[10]->index[c_row_g], dvdx->dg_dx[10]->size[c_row_g], x_ind); + dvdx->dg_dx[12]->value[c_row][col] += aux * dvdx->dg_dx[10]->value[c_row_g][col_g]; + x_ind = _idx_ball1_y(0); + col = pos(dvdx->dg_dx[12]->index[c_row], dvdx->dg_dx[12]->size[c_row], x_ind); + c_row_g = _idx_spring1_flange1_f(0) - 10; + col_g = pos(dvdx->dg_dx[10]->index[c_row_g], dvdx->dg_dx[10]->size[c_row_g], x_ind); + dvdx->dg_dx[12]->value[c_row][col] += aux * dvdx->dg_dx[10]->value[c_row_g][col_g]; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_ball1_v(0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_ball1_flange1_f(0) - 12; + col_g = pos(dvdx->dg_dx[12]->index[c_row_g], dvdx->dg_dx[12]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[12]->value[c_row_g][col_g]; + x_ind = _idx_ball1_y(0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_ball1_flange1_f(0) - 12; + col_g = pos(dvdx->dg_dx[12]->index[c_row_g], dvdx->dg_dx[12]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[12]->value[c_row_g][col_g]; + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + switch(idx) { + case _eval_ball1_v(0): { + _fixed1_flange1_v(0) = 0; + _fixed1_flange1_v(1) = 0; + _fixed1_flange1_v(2) = 0; + _ball1_flange1_v(0) = _ball1_v(0); + _ball1_flange1_v(1) = 0; + _ball1_flange1_v(2) = 0; + _spring1_flange2_v(0) = _fixed1_flange1_v(0); + _spring1_flange2_v(1) = 0; + _spring1_flange2_v(2) = 0; + _spring1_flange1_v(0) = _ball1_flange1_v(0); + _spring1_flange1_v(1) = 0; + _spring1_flange1_v(2) = 0; + _fixed1_flange1_s(0) = _fixed1_s0; + _fixed1_flange1_s(1) = 0; + _fixed1_flange1_s(2) = 0; + _ball1_flange1_s(0) = _ball1_y(0); + _ball1_flange1_s(1) = 0; + _ball1_flange1_s(2) = 0; + _spring1_flange2_s(0) = _fixed1_flange1_s(0); + _spring1_flange2_s(1) = 0; + _spring1_flange2_s(2) = 0; + _spring1_flange1_s(0) = _ball1_flange1_s(0); + _spring1_flange1_s(1) = 0; + _spring1_flange1_s(2) = 0; + _spring1_dv(0) = _spring1_flange1_v(0)-_spring1_flange2_v(0); + _spring1_dv(1) = 0; + _spring1_dv(2) = 0; + _spring1_dy(0) = _spring1_flange1_s(0)-_spring1_flange2_s(0); + _spring1_dy(1) = 0; + _spring1_dy(2) = 0; + _spring1_flange1_f(0) = _d0*(_spring1_b*_spring1_dv(0)+_spring1_k*_spring1_dy(0))+(1-_d0)*(0); + _spring1_flange1_f(1) = 0; + _spring1_flange1_f(2) = 0; + _ball1_flange1_f(0) = (-_spring1_flange1_f(0)); + _ball1_flange1_f(1) = 0; + _ball1_flange1_f(2) = 0; + _eval_dep_ball1_y(1) = _ball1_v(0); + _eval_dep_ball1_y(2) = (0)/2; + _eval_dep_ball1_y(3) = (0)/6; + _eval_dep_ball1_v(1) = (_ball1_flange1_f(0)-_ball1_m*_ball1_g)*(1/(_ball1_m)); + _eval_dep_ball1_v(2) = (0)/2; + _eval_dep_ball1_v(3) = (0)/6; + break; + } + case _eval_ball1_y(0): { + _fixed1_flange1_v(0) = 0; + _fixed1_flange1_v(1) = 0; + _fixed1_flange1_v(2) = 0; + _ball1_flange1_v(0) = _ball1_v(0); + _ball1_flange1_v(1) = 0; + _ball1_flange1_v(2) = 0; + _spring1_flange2_v(0) = _fixed1_flange1_v(0); + _spring1_flange2_v(1) = 0; + _spring1_flange2_v(2) = 0; + _spring1_flange1_v(0) = _ball1_flange1_v(0); + _spring1_flange1_v(1) = 0; + _spring1_flange1_v(2) = 0; + _fixed1_flange1_s(0) = _fixed1_s0; + _fixed1_flange1_s(1) = 0; + _fixed1_flange1_s(2) = 0; + _ball1_flange1_s(0) = _ball1_y(0); + _ball1_flange1_s(1) = 0; + _ball1_flange1_s(2) = 0; + _spring1_flange2_s(0) = _fixed1_flange1_s(0); + _spring1_flange2_s(1) = 0; + _spring1_flange2_s(2) = 0; + _spring1_flange1_s(0) = _ball1_flange1_s(0); + _spring1_flange1_s(1) = 0; + _spring1_flange1_s(2) = 0; + _spring1_dv(0) = _spring1_flange1_v(0)-_spring1_flange2_v(0); + _spring1_dv(1) = 0; + _spring1_dv(2) = 0; + _spring1_dy(0) = _spring1_flange1_s(0)-_spring1_flange2_s(0); + _spring1_dy(1) = 0; + _spring1_dy(2) = 0; + _spring1_flange1_f(0) = _d0*(_spring1_b*_spring1_dv(0)+_spring1_k*_spring1_dy(0))+(1-_d0)*(0); + _spring1_flange1_f(1) = 0; + _spring1_flange1_f(2) = 0; + _ball1_flange1_f(0) = (-_spring1_flange1_f(0)); + _ball1_flange1_f(1) = 0; + _ball1_flange1_f(2) = 0; + _eval_dep_ball1_v(1) = (_ball1_flange1_f(0)-_ball1_m*_ball1_g)*(1/(_ball1_m)); + _eval_dep_ball1_v(2) = (0)/2; + _eval_dep_ball1_v(3) = (0)/6; + break; + } + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + switch(idx) { + case _eval_ball1_y(0): { + _eval_dep_ball1_y(1) = _ball1_v(0); + + + continue; + } + case _eval_ball1_v(0): { + _fixed1_flange1_v(0) = 0; + + _ball1_flange1_v(0) = _ball1_v(0); + + _spring1_flange2_v(0) = _fixed1_flange1_v(0); + + _spring1_flange1_v(0) = _ball1_flange1_v(0); + + _fixed1_flange1_s(0) = _fixed1_s0; + + _ball1_flange1_s(0) = _ball1_y(0); + + _spring1_flange2_s(0) = _fixed1_flange1_s(0); + + _spring1_flange1_s(0) = _ball1_flange1_s(0); + + _spring1_dv(0) = _spring1_flange1_v(0)-_spring1_flange2_v(0); + + _spring1_dy(0) = _spring1_flange1_s(0)-_spring1_flange2_s(0); + + _spring1_flange1_f(0) = _d0*(_spring1_b*_spring1_dv(0)+_spring1_k*_spring1_dy(0))+(1-_d0)*(0); + + _ball1_flange1_f(0) = (-_spring1_flange1_f(0)); + + _eval_dep_ball1_v(1) = (_ball1_flange1_f(0)-_ball1_m*_ball1_g)*(1/(_ball1_m)); + + + continue; + } + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(2,2,3,0,14,2,14,"BouncingBall"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(14*sizeof(int)); + int* states = (int*) malloc(2*sizeof(int)); + int* discretes = (int*) malloc(2*sizeof(int)); + int* events = (int*) malloc(3*sizeof(int)); + int* outputs = (int*) malloc(1*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + _ball1_g = 9.800000e+00; + _ball1_m = 1; + _init_ball1_y(0) = 10; + _fixed1_s0 = 0; + _spring1_b = 10; + _spring1_k = 10000; + modelData->nSD[_idx_ball1_v(0)]++; + modelData->nSD[_idx_ball1_v(0)]++; + modelData->nSD[_idx_ball1_y(0)]++; + modelData->nDS[_idx_ball1_y(0)]++; + modelData->nDS[_idx_ball1_v(0)]++; + modelData->nDS[_idx_ball1_v(0)]++; + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[7]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[8]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[3]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[6]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[9]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[10]->size[c_row]++; + modelData->jac_matrices->dg_dx[10]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[12]->size[c_row]++; + modelData->jac_matrices->dg_dx[12]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[1]->size[c_row]++; + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + modelData->nSZ[_idx_ball1_y(0)]++; + modelData->nZS[_idx_event_1]++; + modelData->nHZ[_idx_event_1]++; + modelData->nHZ[_idx_event_1]++; + modelData->nHD[_idx_event_1]++; + modelData->event[_idx_event_1].nLHSDsc++; + modelData->event[_idx_event_2].nLHSDsc++; + modelData->event[_idx_event_3].nLHSDsc++; + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 2); + modelData->SD[_idx_ball1_v(0)][states[_idx_ball1_v(0)]++] = _idx_ball1_y(0); + modelData->SD[_idx_ball1_v(0)][states[_idx_ball1_v(0)]++] = _idx_ball1_v(0); + modelData->SD[_idx_ball1_y(0)][states[_idx_ball1_y(0)]++] = _idx_ball1_v(0); + cleanVector(states, 0, 2); + modelData->DS[_idx_ball1_y(0)][states[_idx_ball1_y(0)]++] = _idx_ball1_v(0); + modelData->DS[_idx_ball1_v(0)][states[_idx_ball1_v(0)]++] = _idx_ball1_v(0); + modelData->DS[_idx_ball1_v(0)][states[_idx_ball1_v(0)]++] = _idx_ball1_y(0); + cleanVector(states, 0, 2); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->dg_dx[7]->index[c_row],modelData->jac_matrices->dg_dx[7]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[7]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[7]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->dg_dx[8]->index[c_row],modelData->jac_matrices->dg_dx[8]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[8]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[8]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_y(0); + if(in(modelData->jac_matrices->dg_dx[3]->index[c_row],modelData->jac_matrices->dg_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[3]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_y(0); + if(in(modelData->jac_matrices->dg_dx[6]->index[c_row],modelData->jac_matrices->dg_dx[6]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[6]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[6]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_y(0); + if(in(modelData->jac_matrices->dg_dx[9]->index[c_row],modelData->jac_matrices->dg_dx[9]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[9]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[9]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->dg_dx[10]->index[c_row],modelData->jac_matrices->dg_dx[10]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[10]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[10]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_ball1_y(0); + if(in(modelData->jac_matrices->dg_dx[10]->index[c_row],modelData->jac_matrices->dg_dx[10]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[10]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[10]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 14); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->dg_dx[12]->index[c_row],modelData->jac_matrices->dg_dx[12]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[12]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[12]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_ball1_y(0); + if(in(modelData->jac_matrices->dg_dx[12]->index[c_row],modelData->jac_matrices->dg_dx[12]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[12]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[12]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 2); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_ball1_v(0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_ball1_y(0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 2); + modelData->SZ[_idx_ball1_y(0)][states[_idx_ball1_y(0)]++] = _idx_event_1; + cleanVector(events, 0, 3); + modelData->ZS[_idx_event_1][events[_idx_event_1]++] = _idx_ball1_y(0); + cleanVector(events, 0, 3); + modelData->HZ[_idx_event_1][events[_idx_event_1]++] = _idx_event_2; + modelData->HZ[_idx_event_1][events[_idx_event_1]++] = _idx_event_3; + cleanVector(events, 0, 3); + modelData->HD[_idx_event_1][events[_idx_event_1]++] = _idx_ball1_v(0); + cleanVector(events, 0, 3); + modelData->event[_idx_event_1].LHSDsc[events[_idx_event_1]++] = _idx_d0; + modelData->event[_idx_event_2].LHSDsc[events[_idx_event_2]++] = _idx_d1; + modelData->event[_idx_event_3].LHSDsc[events[_idx_event_3]++] = _idx_d1; + modelData->event[_idx_event_1].direction = 0; + modelData->event[_idx_event_1].relation = 0; + modelData->event[_idx_event_2].direction = 1; + modelData->event[_idx_event_2].relation = 2; + modelData->event[_idx_event_3].direction = -1; + modelData->event[_idx_event_3].relation = 0; + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(2,3,0,0,ST_Binary, NULL); + double period[1]; + period[0] = 0.01; + simulator->output = SD_Output("BouncingBall",1,2,2,period,1,0,CI_Sampled,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + modelOutput->nOS[_idx_out_exp_1]++; + modelOutput->nSO[_idx_ball1_y(0)]++; + SD_allocOutputMatrix(modelOutput, 2, 2); + sprintf(modelOutput->variable[_idx_out_exp_1].name, "ball1_y"); + cleanVector(outputs, 0, 1); + modelOutput->OS[_idx_out_exp_1][outputs[_idx_out_exp_1]++] = _idx_ball1_y(0); + cleanVector(states, 0, 2); + modelOutput->SO[_idx_ball1_y(0)][states[_idx_ball1_y(0)]++] = _idx_out_exp_1; + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); + free(states); + free(discretes); + free(events); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.h b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.h new file mode 100644 index 00000000..dd7eef96 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.h @@ -0,0 +1,226 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; \ + double* d = m->d; \ + double* a = m->alg; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 +#define COEFF_MULTIPLIER_3 6 + +// Model Variables Macros + +// Macros definition for variable: _event_1 +#define _idx_event_1 0 +#define _eval_event_1 0 + +// Macros definition for variable: _event_2 +#define _idx_event_2 1 +#define _eval_event_2 1 + +// Macros definition for variable: _event_3 +#define _idx_event_3 2 +#define _eval_event_3 2 + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1 0 +#define _eval_out_exp_1 0 + +// Macros definition for variable: ball1_flange1_f +#define _idx_ball1_flange1_f(coeff) 12 +#define _state_idx_ball1_flange1_f(coeff) 12*4 + coeff +#define _ball1_flange1_f(coeff) a[_state_idx_ball1_flange1_f(coeff)] + +// Macros definition for variable: ball1_flange1_s +#define _idx_ball1_flange1_s(coeff) 3 +#define _state_idx_ball1_flange1_s(coeff) 3*4 + coeff +#define _ball1_flange1_s(coeff) a[_state_idx_ball1_flange1_s(coeff)] + +// Macros definition for variable: ball1_flange1_v +#define _idx_ball1_flange1_v(coeff) 2 +#define _state_idx_ball1_flange1_v(coeff) 2*4 + coeff +#define _ball1_flange1_v(coeff) a[_state_idx_ball1_flange1_v(coeff)] + +// Macros definition for variable: ball1_g +#define _ball1_g __PAR__ball1_g + +// Macros definition for variable: ball1_m +#define _ball1_m __PAR__ball1_m + +// Macros definition for variable: ball1_v +#define _idx_ball1_v(coeff) 1 +#define _state_idx_ball1_v(coeff) 1*4 + coeff +#define _ball1_v(coeff) x[_state_idx_ball1_v(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_ball1_v(coeff) x[_state_idx_ball1_v(coeff)] +#define _q_ball1_v(coeff) q[_state_idx_ball1_v(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_ball1_v(coeff) 1 +#define _eval_dep_ball1_v(coeff) dx[_state_idx_ball1_v(coeff)] + +// Macros definition for variable: ball1_y +#define _idx_ball1_y(coeff) 0 +#define _state_idx_ball1_y(coeff) 0*4 + coeff +#define _ball1_y(coeff) x[_state_idx_ball1_y(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_ball1_y(coeff) x[_state_idx_ball1_y(coeff)] +#define _q_ball1_y(coeff) q[_state_idx_ball1_y(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_ball1_y(coeff) 0 +#define _eval_dep_ball1_y(coeff) dx[_state_idx_ball1_y(coeff)] + +// Macros definition for variable: d0 +#define _idx_d0 0 +#define _d0 d[_idx_d0] + +// Macros definition for variable: d1 +#define _idx_d1 1 +#define _d1 d[_idx_d1] + +// Macros definition for variable: fixed1_flange1_f +#define _idx_fixed1_flange1_f(coeff) 13 +#define _state_idx_fixed1_flange1_f(coeff) 13*4 + coeff +#define _fixed1_flange1_f(coeff) a[_state_idx_fixed1_flange1_f(coeff)] + +// Macros definition for variable: fixed1_flange1_s +#define _idx_fixed1_flange1_s(coeff) 0 +#define _state_idx_fixed1_flange1_s(coeff) 0*4 + coeff +#define _fixed1_flange1_s(coeff) a[_state_idx_fixed1_flange1_s(coeff)] + +// Macros definition for variable: fixed1_flange1_v +#define _idx_fixed1_flange1_v(coeff) 1 +#define _state_idx_fixed1_flange1_v(coeff) 1*4 + coeff +#define _fixed1_flange1_v(coeff) a[_state_idx_fixed1_flange1_v(coeff)] + +// Macros definition for variable: fixed1_s0 +#define _fixed1_s0 __PAR__fixed1_s0 + +// Macros definition for variable: spring1_b +#define _spring1_b __PAR__spring1_b + +// Macros definition for variable: spring1_dv +#define _idx_spring1_dv(coeff) 8 +#define _state_idx_spring1_dv(coeff) 8*4 + coeff +#define _spring1_dv(coeff) a[_state_idx_spring1_dv(coeff)] + +// Macros definition for variable: spring1_dy +#define _idx_spring1_dy(coeff) 9 +#define _state_idx_spring1_dy(coeff) 9*4 + coeff +#define _spring1_dy(coeff) a[_state_idx_spring1_dy(coeff)] + +// Macros definition for variable: spring1_flange1_f +#define _idx_spring1_flange1_f(coeff) 10 +#define _state_idx_spring1_flange1_f(coeff) 10*4 + coeff +#define _spring1_flange1_f(coeff) a[_state_idx_spring1_flange1_f(coeff)] + +// Macros definition for variable: spring1_flange1_s +#define _idx_spring1_flange1_s(coeff) 6 +#define _state_idx_spring1_flange1_s(coeff) 6*4 + coeff +#define _spring1_flange1_s(coeff) a[_state_idx_spring1_flange1_s(coeff)] + +// Macros definition for variable: spring1_flange1_v +#define _idx_spring1_flange1_v(coeff) 7 +#define _state_idx_spring1_flange1_v(coeff) 7*4 + coeff +#define _spring1_flange1_v(coeff) a[_state_idx_spring1_flange1_v(coeff)] + +// Macros definition for variable: spring1_flange2_f +#define _idx_spring1_flange2_f(coeff) 11 +#define _state_idx_spring1_flange2_f(coeff) 11*4 + coeff +#define _spring1_flange2_f(coeff) a[_state_idx_spring1_flange2_f(coeff)] + +// Macros definition for variable: spring1_flange2_s +#define _idx_spring1_flange2_s(coeff) 4 +#define _state_idx_spring1_flange2_s(coeff) 4*4 + coeff +#define _spring1_flange2_s(coeff) a[_state_idx_spring1_flange2_s(coeff)] + +// Macros definition for variable: spring1_flange2_v +#define _idx_spring1_flange2_v(coeff) 5 +#define _state_idx_spring1_flange2_v(coeff) 5*4 + coeff +#define _spring1_flange2_v(coeff) a[_state_idx_spring1_flange2_v(coeff)] + +// Macros definition for variable: spring1_k +#define _spring1_k __PAR__spring1_k + + +// Model Parameters Declaration + +// Macro for parameter: ball1_g +double __PAR__ball1_g; +// Macro for parameter: ball1_m +double __PAR__ball1_m; +// Macro for parameter: fixed1_s0 +double __PAR__fixed1_s0; +// Macro for parameter: spring1_b +double __PAR__spring1_b; +// Macro for parameter: spring1_k +double __PAR__spring1_k; + +// Derivative Equations Macros + +// Macros for equation: 1 + +// Macros for equation: 2 + + +// Algebraic Equations Macros + +// Macros for algebraic equation: 1 + +// Macros for algebraic equation: 2 + +// Macros for algebraic equation: 3 + +// Macros for algebraic equation: 4 + +// Macros for algebraic equation: 5 + +// Macros for algebraic equation: 6 + +// Macros for algebraic equation: 7 + +// Macros for algebraic equation: 8 + +// Macros for algebraic equation: 9 + +// Macros for algebraic equation: 10 + +// Macros for algebraic equation: 11 + +// Macros for algebraic equation: 12 + +// Macros for algebraic equation: 13 + +// Macros for algebraic equation: 14 + + +// Event Macros + +// Macros for event: 1 + +// Macros for event: 2 + +// Macros for event: 3 + +#define _zc(coeff) zc[coeff] + +// Output Equations Macros + +// Macros for output equation: 1 + +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: ball1_v +#define _der_ball1_v(coeff) dx[coeff+1] +// Derivative definition for variable: ball1_y +#define _der_ball1_y(coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.ini b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.ini new file mode 100644 index 00000000..bf135791 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=1; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=1.00000e+01; +sol="LIQSS3"; +dqmin=(1.00000e-06); +dqrel=(1.00000e-03); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/test-suite/BouncingBall/BouncingBall.mo b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.mo similarity index 96% rename from src/test-suite/BouncingBall/BouncingBall.mo rename to src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.mo index d52b78b3..8e9fc9c4 100644 --- a/src/test-suite/BouncingBall/BouncingBall.mo +++ b/src/mmoc/tests/system/gt_data/BouncingBall/BouncingBall.mo @@ -54,11 +54,13 @@ algorithm experiment( MMO_Description="", - MMO_Solver=QSS3, + MMO_Solver=LIQSS3, MMO_PartitionMethod=Metis, MMO_Output={ball1_y}, MMO_OutputType=CI_Sampled, Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, StartTime=0.0, StopTime=10, Tolerance={1e-3}, diff --git a/src/mmoc/tests/system/gt_data/NeuralNetwork1/NeuralNetwork1.c b/src/mmoc/tests/system/gt_data/NeuralNetwork1/NeuralNetwork1.c index bf323962..1e1ba48c 100644 --- a/src/mmoc/tests/system/gt_data/NeuralNetwork1/NeuralNetwork1.c +++ b/src/mmoc/tests/system/gt_data/NeuralNetwork1/NeuralNetwork1.c @@ -23,14 +23,13 @@ void MOD_settings(SD_simulationSettings settings) void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) { int _d1; - int _d2; int i; if (_is_var_V(idx)) { _get_V_idxs(idx); _apply_usage_alg_eq_1(_d1); if ((i >= 1 && i <= 100)) { - _Is(i,0) = _Islast(i)*exp(-(_time-_tlast(i))/_taus); - _Is(i,1) = 0; + _Is(i,0) = _Islast(i)*exp(-(_time-_tlast(i))/_taus); + _Is(i,1) = 0; } _apply_usage_eq_1(_d1); if ((i >= 1 && i <= 100)) { @@ -175,14 +174,13 @@ void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) { int _d1; - int _d2; int i; if (_is_var_V(idx)) { _get_V_idxs(idx); _apply_usage_alg_eq_1(_d1); if ((i >= 1 && i <= 100)) { - _Is(i,0) = _Islast(i)*exp(-(_time-_tlast(i))/_taus); - _Is(i,1) = 0; + _Is(i,0) = _Islast(i)*exp(-(_time-_tlast(i))/_taus); + _Is(i,1) = 0; } _apply_usage_eq_1(_d1); if ((i >= 1 && i <= 100)) { @@ -199,13 +197,12 @@ void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, i for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { idx = BDFMap[__bdf_it]; int _d1; - int _d2; int i; if (_is_var_V(idx)) { _get_V_idxs(idx); _apply_usage_alg_eq_1(_d1); if ((i >= 1 && i <= 100)) { - _Is(i,0) = _Islast(i)*exp(-(_time-_tlast(i))/_taus); + _Is(i,0) = _Islast(i)*exp(-(_time-_tlast(i))/_taus); } _apply_usage_eq_1(_d1); @@ -224,6 +221,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(100,500,300,0,100,1,1,"NeuralNetwork1"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(100*sizeof(int)); int* states = (int*) malloc(100*sizeof(int)); int* discretes = (int*) malloc(500*sizeof(int)); int* events = (int*) malloc(300*sizeof(int)); @@ -236,38 +234,38 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int i; int j; int k; - _Cm = 2.5e-10; - _EL = -0.065; - _Jmean = (8.78e-11)/1; - _Ne = 0.8*100; - _Ni = 0.2*100; - _Vr = -0.065; + _Cm = 2.500000e-10; + _EL = -6.500000e-02; + _Jmean = (8.780000e-11)/(double)1; + _Ne = 8.000000e-01*100; + _Ni = 2.000000e-01*100; + _Vr = -6.500000e-02; for(_d1 = 1; _d1<=100; _d1+=1) { _active(_d1) = 1; } - _cI = 1e+09; - _cV = 1000; - _ce = 10*0.8; - _ci = 10*0.2; + _cI = 1.000000e+09; + _cV = 1.000000e+03; + _ce = 10*8.000000e-01; + _ci = 10*2.000000e-01; _g = 4; _kext = 940; - _taum = 0.01; - _taur = 0.002; - _taus = 0.0005; - _theta = -0.05; + _taum = 1.000000e-02; + _taur = 2.000000e-03; + _taus = 5.000000e-04; + _theta = -5.000000e-02; for(_d1 = 1; _d1<=100; _d1+=1) { _tnextr(_d1) = -1; } _vbg = 8; _vext = _vbg*_kext; for(i = 1; i<=100; i+=1) { - _Islast(i) = __math__rand(1)*1e-10*_cI+0.4; + _Islast(i) = __math__rand(1)*1.000000e-10*_cI+4.000000e-01; _init_V(i,0) = __math__rand(15)-65; _Cn(i) = 0; - if(i<100*0.8) { - _J(i) = (_Jmean+__math__normal(_Jmean*0.1/3)); + if(i<100*8.000000e-01) { + _J(i) = (_Jmean+__math__normal(_Jmean*1.000000e-01/(double)3)); } else { - _J(i) = -(_Jmean*_g+__math__normal(_Jmean*_g*0.1/3)); + _J(i) = -(_Jmean*_g+__math__normal(_Jmean*_g*1.000000e-01/(double)3)); } _tnext(i) = __math__exponential(1/_vext); } @@ -383,7 +381,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(_d1 = 1; _d1<=100; _d1+=1) { modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_V(_d1,0); } - cleanVector(states, 0, 100); + cleanVector(algebraics, 0, 100); for(row = 1; row <= 100; row++) { c_row = _c_index(row); _get_alg_eq_1_var_idxs(row, eq_var); @@ -404,7 +402,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 100); - cleanVector(states, 0, 100); for(_d1 = 1; _d1<=100; _d1+=1) { modelData->SZ[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_event_1(_d1); } @@ -495,6 +492,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_V(10*_d1-9,0)][states[_idx_V(10*_d1-9,0)]++] = _idx_out_exp_1(_d1); } simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/TYSON/TYSON.c b/src/mmoc/tests/system/gt_data/TYSON/TYSON.c new file mode 100644 index 00000000..37541edb --- /dev/null +++ b/src/mmoc/tests/system/gt_data/TYSON/TYSON.c @@ -0,0 +1,916 @@ +#include +#include +#include +#include + +#include "TYSON.h" +#include "pkg_math.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = FALSE; + settings->method = 4; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + switch(idx) { + case _eval_C2(0): { + _der_C2(0) = _k6*_M(0)-_k8*_C2(0)+_k9*_CP(0); + + + return; + } + case _eval_CP(0): { + _der_CP(0) = -_k3*_CP(0)*_Y(0)+_k8*_C2(0)-_k9*_CP(0); + + + return; + } + case _eval_pM(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _der_pM(0) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + + + return; + } + case _eval_M(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _der_M(0) = _pM(0)*_F(0)-_k5*_M(0)-_k6*_M(0); + + + return; + } + case _eval_Y(0): { + _der_Y(0) = _k1-_k2*_Y(0)-_k3*_CP(0)*_Y(0); + + + return; + } + case _eval_yP(0): { + _der_yP(0) = _k6*_M(0)-_k7*_yP(0); + + + return; + } + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + switch(idx) { + case _eval_out_exp_1: { + _out = _C2(0); + return; + } + case _eval_out_exp_2: { + _out = _CP(0); + return; + } + case _eval_out_exp_3: { + _out = _pM(0); + return; + } + case _eval_out_exp_4: { + _out = _M(0); + return; + } + case _eval_out_exp_5: { + _out = _Y(0); + return; + } + case _eval_out_exp_6: { + _out = _yP(0); + return; + } + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + x_ind = _idx_CP(0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + x_ind = _idx_CP(0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + x_ind = _idx_Y(0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + x_ind = _idx_CP(0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + x_ind = _idx_M(0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + x_ind = _idx_pM(0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_C2(0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + c_row_g = _idx_CT(0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->dg_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + x_ind = _idx_CP(0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + c_row_g = _idx_CT(0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->dg_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + c_row_g = _idx_CT(0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->dg_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + x_ind = _idx_pM(0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + c_row_g = _idx_CT(0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->dg_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->dg_dx[2]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_C2(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_CP(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_pM(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_CP(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + x_ind = _idx_Y(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + x_ind = _idx_pM(0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_C2(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_CP(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_pM(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_F(0) - 2; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[3]->value[c_row][col] += aux; + x_ind = _idx_pM(0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[3]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_CP(0); + col = pos(dvdx->df_dx[4]->index[c_row], dvdx->df_dx[4]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[4]->value[c_row][col] += aux; + x_ind = _idx_Y(0); + col = pos(dvdx->df_dx[4]->index[c_row], dvdx->df_dx[4]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[4]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_M(0); + col = pos(dvdx->df_dx[5]->index[c_row], dvdx->df_dx[5]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[5]->value[c_row][col] += aux; + x_ind = _idx_yP(0); + col = pos(dvdx->df_dx[5]->index[c_row], dvdx->df_dx[5]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[5]->value[c_row][col] += aux; + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 2 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[2]->size[row]; col++) { + row_t = dvdx->df_dx[2]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[2]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 3 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[3]->size[row]; col++) { + row_t = dvdx->df_dx[3]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[3]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 4 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[4]->size[row]; col++) { + row_t = dvdx->df_dx[4]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[4]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 5 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[5]->size[row]; col++) { + row_t = dvdx->df_dx[5]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[5]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + switch(idx) { + case _eval_C2(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_C2(1) = _k6*_M(0)-_k8*_C2(0)+_k9*_CP(0); + _eval_dep_CP(1) = -_k3*_CP(0)*_Y(0)+_k8*_C2(0)-_k9*_CP(0); + _eval_dep_pM(1) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + _eval_dep_M(1) = _pM(0)*_F(0)-_k5*_M(0)-_k6*_M(0); + break; + } + case _eval_CP(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_C2(1) = _k6*_M(0)-_k8*_C2(0)+_k9*_CP(0); + _eval_dep_CP(1) = -_k3*_CP(0)*_Y(0)+_k8*_C2(0)-_k9*_CP(0); + _eval_dep_pM(1) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + _eval_dep_M(1) = _pM(0)*_F(0)-_k5*_M(0)-_k6*_M(0); + _eval_dep_Y(1) = _k1-_k2*_Y(0)-_k3*_CP(0)*_Y(0); + break; + } + case _eval_M(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_C2(1) = _k6*_M(0)-_k8*_C2(0)+_k9*_CP(0); + _eval_dep_pM(1) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + _eval_dep_M(1) = _pM(0)*_F(0)-_k5*_M(0)-_k6*_M(0); + _eval_dep_yP(1) = _k6*_M(0)-_k7*_yP(0); + break; + } + case _eval_Y(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_CP(1) = -_k3*_CP(0)*_Y(0)+_k8*_C2(0)-_k9*_CP(0); + _eval_dep_pM(1) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + _eval_dep_Y(1) = _k1-_k2*_Y(0)-_k3*_CP(0)*_Y(0); + break; + } + case _eval_pM(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_pM(1) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + _eval_dep_M(1) = _pM(0)*_F(0)-_k5*_M(0)-_k6*_M(0); + break; + } + case _eval_yP(0): { + _eval_dep_yP(1) = _k6*_M(0)-_k7*_yP(0); + break; + } + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + switch(idx) { + case _eval_C2(0): { + _eval_dep_C2(1) = _k6*_M(0)-_k8*_C2(0)+_k9*_CP(0); + + + continue; + } + case _eval_CP(0): { + _eval_dep_CP(1) = -_k3*_CP(0)*_Y(0)+_k8*_C2(0)-_k9*_CP(0); + + + continue; + } + case _eval_pM(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_pM(1) = _k3*_CP(0)*_Y(0)+-_pM(0)*_F(0)+_k5*_M(0); + + + continue; + } + case _eval_M(0): { + _CT(0) = _C2(0)+_CP(0)+_pM(0)+_M(0); + + _F(0) = _k4prim+_k4*__math__pow((_M(0)*1.000000e+00/_CT(0)), 2); + + _eval_dep_M(1) = _pM(0)*_F(0)-_k5*_M(0)-_k6*_M(0); + + + continue; + } + case _eval_Y(0): { + _eval_dep_Y(1) = _k1-_k2*_Y(0)-_k3*_CP(0)*_Y(0); + + + continue; + } + case _eval_yP(0): { + _eval_dep_yP(1) = _k6*_M(0)-_k7*_yP(0); + + + continue; + } + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(6,0,0,0,4,6,4,"TYSON"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(4*sizeof(int)); + int* states = (int*) malloc(6*sizeof(int)); + int* outputs = (int*) malloc(6*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + _init_C2(0) = 0.000000e+00; + _init_CP(0) = 7.500000e-01; + _init_M(0) = 0.000000e+00; + _init_Y(0) = 0.000000e+00; + _k1 = 1.500000e-02; + _k2 = 0.000000e+00; + _k3 = 200; + _k4 = 180; + _k4prim = 1.800000e-02; + _k5 = 0.000000e+00; + _k6 = 1.000000e+00; + _k7 = 6.000000e-01; + _k8 = 1.000000e+06; + _k9 = 1.000000e+03; + _init_pM(0) = 2.500000e-01; + _init_yP(0) = 0.000000e+00; + modelData->nSD[_idx_C2(0)]++; + modelData->nSD[_idx_C2(0)]++; + modelData->nSD[_idx_C2(0)]++; + modelData->nSD[_idx_C2(0)]++; + modelData->nSD[_idx_CP(0)]++; + modelData->nSD[_idx_CP(0)]++; + modelData->nSD[_idx_CP(0)]++; + modelData->nSD[_idx_CP(0)]++; + modelData->nSD[_idx_CP(0)]++; + modelData->nSD[_idx_M(0)]++; + modelData->nSD[_idx_M(0)]++; + modelData->nSD[_idx_M(0)]++; + modelData->nSD[_idx_M(0)]++; + modelData->nSD[_idx_Y(0)]++; + modelData->nSD[_idx_Y(0)]++; + modelData->nSD[_idx_Y(0)]++; + modelData->nSD[_idx_pM(0)]++; + modelData->nSD[_idx_pM(0)]++; + modelData->nSD[_idx_yP(0)]++; + modelData->nDS[_idx_C2(0)]++; + modelData->nDS[_idx_CP(0)]++; + modelData->nDS[_idx_pM(0)]++; + modelData->nDS[_idx_M(0)]++; + modelData->nDS[_idx_C2(0)]++; + modelData->nDS[_idx_CP(0)]++; + modelData->nDS[_idx_pM(0)]++; + modelData->nDS[_idx_M(0)]++; + modelData->nDS[_idx_Y(0)]++; + modelData->nDS[_idx_C2(0)]++; + modelData->nDS[_idx_pM(0)]++; + modelData->nDS[_idx_M(0)]++; + modelData->nDS[_idx_yP(0)]++; + modelData->nDS[_idx_CP(0)]++; + modelData->nDS[_idx_pM(0)]++; + modelData->nDS[_idx_Y(0)]++; + modelData->nDS[_idx_pM(0)]++; + modelData->nDS[_idx_M(0)]++; + modelData->nDS[_idx_yP(0)]++; + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[0]->size[c_row]++; + modelData->jac_matrices->df_dx[0]->size[c_row]++; + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[1]->size[c_row]++; + modelData->jac_matrices->df_dx[1]->size[c_row]++; + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[3]->size[c_row]++; + modelData->jac_matrices->df_dx[3]->size[c_row]++; + modelData->jac_matrices->df_dx[3]->size[c_row]++; + modelData->jac_matrices->df_dx[3]->size[c_row]++; + modelData->jac_matrices->df_dx[3]->size[c_row]++; + modelData->jac_matrices->df_dx[3]->size[c_row]++; + modelData->jac_matrices->df_dx[3]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[4]->size[c_row]++; + modelData->jac_matrices->df_dx[4]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[5]->size[c_row]++; + modelData->jac_matrices->df_dx[5]->size[c_row]++; + } + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 6); + modelData->SD[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_C2(0); + modelData->SD[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_CP(0); + modelData->SD[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_pM(0); + modelData->SD[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_M(0); + modelData->SD[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_C2(0); + modelData->SD[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_CP(0); + modelData->SD[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_pM(0); + modelData->SD[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_M(0); + modelData->SD[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_Y(0); + modelData->SD[_idx_M(0)][states[_idx_M(0)]++] = _idx_C2(0); + modelData->SD[_idx_M(0)][states[_idx_M(0)]++] = _idx_pM(0); + modelData->SD[_idx_M(0)][states[_idx_M(0)]++] = _idx_M(0); + modelData->SD[_idx_M(0)][states[_idx_M(0)]++] = _idx_yP(0); + modelData->SD[_idx_Y(0)][states[_idx_Y(0)]++] = _idx_CP(0); + modelData->SD[_idx_Y(0)][states[_idx_Y(0)]++] = _idx_pM(0); + modelData->SD[_idx_Y(0)][states[_idx_Y(0)]++] = _idx_Y(0); + modelData->SD[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_pM(0); + modelData->SD[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_M(0); + modelData->SD[_idx_yP(0)][states[_idx_yP(0)]++] = _idx_yP(0); + cleanVector(states, 0, 6); + modelData->DS[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_C2(0); + modelData->DS[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_C2(0); + modelData->DS[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_C2(0); + modelData->DS[_idx_M(0)][states[_idx_M(0)]++] = _idx_C2(0); + modelData->DS[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_CP(0); + modelData->DS[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_CP(0); + modelData->DS[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_CP(0); + modelData->DS[_idx_M(0)][states[_idx_M(0)]++] = _idx_CP(0); + modelData->DS[_idx_Y(0)][states[_idx_Y(0)]++] = _idx_CP(0); + modelData->DS[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_M(0); + modelData->DS[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_M(0); + modelData->DS[_idx_M(0)][states[_idx_M(0)]++] = _idx_M(0); + modelData->DS[_idx_yP(0)][states[_idx_yP(0)]++] = _idx_M(0); + modelData->DS[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_Y(0); + modelData->DS[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_Y(0); + modelData->DS[_idx_Y(0)][states[_idx_Y(0)]++] = _idx_Y(0); + modelData->DS[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_pM(0); + modelData->DS[_idx_M(0)][states[_idx_M(0)]++] = _idx_pM(0); + modelData->DS[_idx_yP(0)][states[_idx_yP(0)]++] = _idx_yP(0); + cleanVector(states, 0, 6); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 6); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_Y(0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 4); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_pM(0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 4); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_pM(0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 6); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_pM(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_Y(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_pM(0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 6); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_C2(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_pM(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_pM(0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 6); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_CP(0); + if(in(modelData->jac_matrices->df_dx[4]->index[c_row],modelData->jac_matrices->df_dx[4]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[4]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[4]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_Y(0); + if(in(modelData->jac_matrices->df_dx[4]->index[c_row],modelData->jac_matrices->df_dx[4]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[4]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[4]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 6); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_M(0); + if(in(modelData->jac_matrices->df_dx[5]->index[c_row],modelData->jac_matrices->df_dx[5]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[5]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[5]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_yP(0); + if(in(modelData->jac_matrices->df_dx[5]->index[c_row],modelData->jac_matrices->df_dx[5]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[5]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[5]->index[c_row][states[c_row]++] = x_ind; + } + } + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(6,0,0,0,ST_Binary, NULL); + simulator->output = SD_Output("TYSON",6,0,6,NULL,0,0,CI_Step,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + modelOutput->nOS[_idx_out_exp_1]++; + modelOutput->nOS[_idx_out_exp_2]++; + modelOutput->nOS[_idx_out_exp_4]++; + modelOutput->nOS[_idx_out_exp_5]++; + modelOutput->nOS[_idx_out_exp_3]++; + modelOutput->nOS[_idx_out_exp_6]++; + modelOutput->nSO[_idx_C2(0)]++; + modelOutput->nSO[_idx_CP(0)]++; + modelOutput->nSO[_idx_M(0)]++; + modelOutput->nSO[_idx_Y(0)]++; + modelOutput->nSO[_idx_pM(0)]++; + modelOutput->nSO[_idx_yP(0)]++; + SD_allocOutputMatrix(modelOutput, 6, 0); + sprintf(modelOutput->variable[_idx_out_exp_1].name, "C2"); + sprintf(modelOutput->variable[_idx_out_exp_2].name, "CP"); + sprintf(modelOutput->variable[_idx_out_exp_3].name, "pM"); + sprintf(modelOutput->variable[_idx_out_exp_4].name, "M"); + sprintf(modelOutput->variable[_idx_out_exp_5].name, "Y"); + sprintf(modelOutput->variable[_idx_out_exp_6].name, "yP"); + cleanVector(outputs, 0, 6); + modelOutput->OS[_idx_out_exp_1][outputs[_idx_out_exp_1]++] = _idx_C2(0); + modelOutput->OS[_idx_out_exp_2][outputs[_idx_out_exp_2]++] = _idx_CP(0); + modelOutput->OS[_idx_out_exp_4][outputs[_idx_out_exp_4]++] = _idx_M(0); + modelOutput->OS[_idx_out_exp_5][outputs[_idx_out_exp_5]++] = _idx_Y(0); + modelOutput->OS[_idx_out_exp_3][outputs[_idx_out_exp_3]++] = _idx_pM(0); + modelOutput->OS[_idx_out_exp_6][outputs[_idx_out_exp_6]++] = _idx_yP(0); + cleanVector(states, 0, 6); + modelOutput->SO[_idx_C2(0)][states[_idx_C2(0)]++] = _idx_out_exp_1; + modelOutput->SO[_idx_CP(0)][states[_idx_CP(0)]++] = _idx_out_exp_2; + modelOutput->SO[_idx_M(0)][states[_idx_M(0)]++] = _idx_out_exp_4; + modelOutput->SO[_idx_Y(0)][states[_idx_Y(0)]++] = _idx_out_exp_5; + modelOutput->SO[_idx_pM(0)][states[_idx_pM(0)]++] = _idx_out_exp_3; + modelOutput->SO[_idx_yP(0)][states[_idx_yP(0)]++] = _idx_out_exp_6; + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); + free(states); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/TYSON/TYSON.h b/src/mmoc/tests/system/gt_data/TYSON/TYSON.h new file mode 100644 index 00000000..594727ca --- /dev/null +++ b/src/mmoc/tests/system/gt_data/TYSON/TYSON.h @@ -0,0 +1,231 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; \ + double* a = m->alg; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 + +// Model Variables Macros + +// Macros definition for variable: C2 +#define _idx_C2(coeff) 0 +#define _state_idx_C2(coeff) 0*3 + coeff +#define _C2(coeff) x[_state_idx_C2(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_C2(coeff) x[_state_idx_C2(coeff)] +#define _q_C2(coeff) q[_state_idx_C2(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_C2(coeff) 0 +#define _eval_dep_C2(coeff) dx[_state_idx_C2(coeff)] + +// Macros definition for variable: CP +#define _idx_CP(coeff) 1 +#define _state_idx_CP(coeff) 1*3 + coeff +#define _CP(coeff) x[_state_idx_CP(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_CP(coeff) x[_state_idx_CP(coeff)] +#define _q_CP(coeff) q[_state_idx_CP(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_CP(coeff) 1 +#define _eval_dep_CP(coeff) dx[_state_idx_CP(coeff)] + +// Macros definition for variable: CT +#define _idx_CT(coeff) 0 +#define _state_idx_CT(coeff) 0*3 + coeff +#define _CT(coeff) a[_state_idx_CT(coeff)] + +// Macros definition for variable: F +#define _idx_F(coeff) 2 +#define _state_idx_F(coeff) 2*3 + coeff +#define _F(coeff) a[_state_idx_F(coeff)] + +// Macros definition for variable: M +#define _idx_M(coeff) 3 +#define _state_idx_M(coeff) 3*3 + coeff +#define _M(coeff) x[_state_idx_M(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_M(coeff) x[_state_idx_M(coeff)] +#define _q_M(coeff) q[_state_idx_M(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_M(coeff) 3 +#define _eval_dep_M(coeff) dx[_state_idx_M(coeff)] + +// Macros definition for variable: Y +#define _idx_Y(coeff) 4 +#define _state_idx_Y(coeff) 4*3 + coeff +#define _Y(coeff) x[_state_idx_Y(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_Y(coeff) x[_state_idx_Y(coeff)] +#define _q_Y(coeff) q[_state_idx_Y(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_Y(coeff) 4 +#define _eval_dep_Y(coeff) dx[_state_idx_Y(coeff)] + +// Macros definition for variable: YT +#define _idx_YT(coeff) 1 +#define _state_idx_YT(coeff) 1*3 + coeff +#define _YT(coeff) a[_state_idx_YT(coeff)] + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1 0 +#define _eval_out_exp_1 0 + +// Macros definition for variable: _out_exp_2 +#define _idx_out_exp_2 1 +#define _eval_out_exp_2 1 + +// Macros definition for variable: _out_exp_3 +#define _idx_out_exp_3 2 +#define _eval_out_exp_3 2 + +// Macros definition for variable: _out_exp_4 +#define _idx_out_exp_4 3 +#define _eval_out_exp_4 3 + +// Macros definition for variable: _out_exp_5 +#define _idx_out_exp_5 4 +#define _eval_out_exp_5 4 + +// Macros definition for variable: _out_exp_6 +#define _idx_out_exp_6 5 +#define _eval_out_exp_6 5 + +// Macros definition for variable: k1 +#define _k1 __PAR__k1 + +// Macros definition for variable: k2 +#define _k2 __PAR__k2 + +// Macros definition for variable: k3 +#define _k3 __PAR__k3 + +// Macros definition for variable: k4 +#define _k4 __PAR__k4 + +// Macros definition for variable: k4prim +#define _k4prim __PAR__k4prim + +// Macros definition for variable: k5 +#define _k5 __PAR__k5 + +// Macros definition for variable: k6 +#define _k6 __PAR__k6 + +// Macros definition for variable: k7 +#define _k7 __PAR__k7 + +// Macros definition for variable: k8 +#define _k8 __PAR__k8 + +// Macros definition for variable: k9 +#define _k9 __PAR__k9 + +// Macros definition for variable: pM +#define _idx_pM(coeff) 2 +#define _state_idx_pM(coeff) 2*3 + coeff +#define _pM(coeff) x[_state_idx_pM(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_pM(coeff) x[_state_idx_pM(coeff)] +#define _q_pM(coeff) q[_state_idx_pM(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_pM(coeff) 2 +#define _eval_dep_pM(coeff) dx[_state_idx_pM(coeff)] + +// Macros definition for variable: yP +#define _idx_yP(coeff) 5 +#define _state_idx_yP(coeff) 5*3 + coeff +#define _yP(coeff) x[_state_idx_yP(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_yP(coeff) x[_state_idx_yP(coeff)] +#define _q_yP(coeff) q[_state_idx_yP(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_yP(coeff) 5 +#define _eval_dep_yP(coeff) dx[_state_idx_yP(coeff)] + +// Macros definition for variable: yt +#define _idx_yt(coeff) 3 +#define _state_idx_yt(coeff) 3*3 + coeff +#define _yt(coeff) a[_state_idx_yt(coeff)] + + +// Model Parameters Declaration + +// Macro for parameter: k1 +double __PAR__k1; +// Macro for parameter: k2 +double __PAR__k2; +// Macro for parameter: k3 +double __PAR__k3; +// Macro for parameter: k4 +double __PAR__k4; +// Macro for parameter: k4prim +double __PAR__k4prim; +// Macro for parameter: k5 +double __PAR__k5; +// Macro for parameter: k6 +double __PAR__k6; +// Macro for parameter: k7 +double __PAR__k7; +// Macro for parameter: k8 +double __PAR__k8; +// Macro for parameter: k9 +double __PAR__k9; + +// Derivative Equations Macros + +// Macros for equation: 1 + +// Macros for equation: 2 + +// Macros for equation: 3 + +// Macros for equation: 4 + +// Macros for equation: 5 + +// Macros for equation: 6 + + +// Algebraic Equations Macros + +// Macros for algebraic equation: 1 + +// Macros for algebraic equation: 2 + +// Macros for algebraic equation: 3 + +// Macros for algebraic equation: 4 + + +// Output Equations Macros + +// Macros for output equation: 1 + +// Macros for output equation: 2 + +// Macros for output equation: 3 + +// Macros for output equation: 4 + +// Macros for output equation: 5 + +// Macros for output equation: 6 + +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: C2 +#define _der_C2(coeff) dx[coeff+1] +// Derivative definition for variable: CP +#define _der_CP(coeff) dx[coeff+1] +// Derivative definition for variable: M +#define _der_M(coeff) dx[coeff+1] +// Derivative definition for variable: Y +#define _der_Y(coeff) dx[coeff+1] +// Derivative definition for variable: pM +#define _der_pM(coeff) dx[coeff+1] +// Derivative definition for variable: yP +#define _der_yP(coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/TYSON/TYSON.ini b/src/mmoc/tests/system/gt_data/TYSON/TYSON.ini new file mode 100644 index 00000000..1a4307cd --- /dev/null +++ b/src/mmoc/tests/system/gt_data/TYSON/TYSON.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=0; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=1.00000e+02; +sol="LIQSS2"; +dqmin=(1.00000e-06); +dqrel=(1.00000e-03); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/mmoc/tests/system/gt_data/TYSON/TYSON.mo b/src/mmoc/tests/system/gt_data/TYSON/TYSON.mo new file mode 100644 index 00000000..f69ba786 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/TYSON/TYSON.mo @@ -0,0 +1,64 @@ +model TYSON + import math; + // BioRica Constant k1 + parameter Real k1 = 0.015; + // BioRica Constant k2 + parameter Real k2 = 0.0; + // BioRica Constant k3 + parameter Real k3 = 200; + // BioRica Constant k4 + parameter Real k4 = 180; + // BioRica Constant k4prim + parameter Real k4prim = 0.018; + // BioRica Constant k5 + parameter Real k5 = 0.0; + // BioRica Constant k6 + parameter Real k6 = 1.0; + // BioRica Constant k7 + parameter Real k7 = 0.6; + // BioRica Constant k8 + parameter Real k8 = 1000000.0; + // BioRica Constant k9 + parameter Real k9 = 1000.0; + Real CP(start = 0.75); + Real yt; + Real C2(start = 0.0); + Real M(start = 0.0); + Real pM(start = 0.25); + Real CT; + Real Y(start = 0.0); + Real YT; + Real F; + Real yP(start = 0.0); + equation + + // BioRica Formula CT instance: + CT = C2+CP+pM+M; + // BioRica Formula YT instance: + YT = Y+yP+pM+M; + // BioRica Formula F instance: + F = k4prim+k4*pow((M*1.0/CT),2); + yt = YT; + der(C2) = k6*M-k8*C2+k9*CP; + der(CP) = -k3*CP*Y+k8*C2-k9*CP; + der(pM) = k3*CP*Y+-pM*F+k5*M; + der(M) = pM*F-k5*M-k6*M; + der(Y) = k1-k2*Y-k3*CP*Y; + der(yP) = k6*M-k7*yP; + annotation( + + experiment( + MMO_Description="TYSON automatic model translation.", + MMO_Solver=LIQSS2, + MMO_SymDiff=false, + MMO_PartitionMethod=Metis, + MMO_Output={C2,CP,pM,M,Y,yP}, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + StartTime=0.0, + StopTime=100, + Tolerance={1e-3}, + AbsTolerance={1e-6} + )); +end TYSON; diff --git a/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.c b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.c new file mode 100644 index 00000000..7be0ee2a --- /dev/null +++ b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.c @@ -0,0 +1,2713 @@ +#include +#include +#include +#include + +#include "VIRplanoS.h" +#include "pkg_math.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = TRUE; + settings->method = 4; + settings->random_seed = 1; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + int _d1; + int _rg_d1; + int i; + switch(idx) { + case _eval_Vr(0): { + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + _Vpar(i,1) = 0; + } + } + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + _Vpar(i,1) = 0; + } + } + _sum_0(1,0) = _Vpar(1,0); + _sum_0(1,1) = 0; + for(_rg_d1 = 9; _rg_d1<=11; _rg_d1+=1) { + _get_sum_0_idxs(_rg_d1); + _apply_usage_alg_eq_4(_d1); + if ((i >= 2 && i <= 4)) { + _sum_0(i,0) = _sum_0(i-1,0)+_Vpar(i,0); + _sum_0(i,1) = 0; + } + } + _der_Vr(0) = _sum_0(4,0)*100/(double)4-_cr*_Vr(0); + _der_Vr(1) = (0)/2; + + return; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _der_V(i,0) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _der_V(i,1) = (0)/2; + + } + return; + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _der_H(i,0) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + _der_H(i,1) = (0)/2; + + } + return; + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_3(_d1); + if ((i >= 1 && i <= 4)) { + _der_I(i,0) = _ghv(i)*_V(i,0)*_H(i,0)-_bie(i)*_E(i,0)*_I(i,0)-_ai(i)*_I(i,0); + _der_I(i,1) = (0)/2; + + } + return; + } + if (_is_var_M(idx)) { + _get_M_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _der_M(i,0) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + _der_M(i,1) = (0)/2; + + } + return; + } + if (_is_var_F(idx)) { + _get_F_idxs(idx); + _apply_usage_eq_5(_d1); + if ((i >= 1 && i <= 4)) { + _der_F(i,0) = _bf(i)*_M(i,0)+_cf(i)*_I(i,0)-_bfh(i)*_H(i,0)*_F(i,0)-_af(i)*_F(i,0); + _der_F(i,1) = (0)/2; + + } + return; + } + if (_is_var_R(idx)) { + _get_R_idxs(idx); + _apply_usage_eq_6(_d1); + if ((i >= 1 && i <= 4)) { + _der_R(i,0) = _bhf(i)*_F(i,0)*_H(i,0)-_ar(i)*_R(i,0); + _der_R(i,1) = (0)/2; + + } + return; + } + if (_is_var_E(idx)) { + _get_E_idxs(idx); + _apply_usage_eq_7(_d1); + if ((i >= 1 && i <= 4)) { + _der_E(i,0) = _bem(i)*_M(i,0)*_E(i,0)-_bei(i)*_I(i,0)*_E(i,0)+_ae(i)*(1-_E(i,0)); + _der_E(i,1) = (0)/2; + + } + return; + } + if (_is_var_P(idx)) { + _get_P_idxs(idx); + _apply_usage_eq_8(_d1); + if ((i >= 1 && i <= 4)) { + _der_P(i,0) = _bpm(i)*_M(i,0)*_P(i,0)+_ap(i)*(1-_P(i,0)); + _der_P(i,1) = (0)/2; + + } + return; + } + if (_is_var_A(idx)) { + _get_A_idxs(idx); + _apply_usage_eq_9(_d1); + if ((i >= 1 && i <= 4)) { + _der_A(i,0) = _ba(i)*_P(i,0)-_gav(i)*_S(i,0)*_A(i,0)*_V(i,0)-_aa(i)*_A(i,0); + _der_A(i,1) = (0)/2; + + } + return; + } + if (_is_var_S(idx)) { + _get_S_idxs(idx); + _apply_usage_eq_10(_d1); + if ((i >= 1 && i <= 4)) { + _der_S(i,0) = _r(i)*_P(i,0)*(1-_S(i,0)); + _der_S(i,1) = (0)/2; + + } + return; + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ + int _d1; + int i; + if (_is_var_event_1(idx)) { + _get_event_1_idxs(idx); + _apply_usage_event_1(_d1); + if ((i >= 1 && i <= 4)) { + _zc(0) = _time-(_inst(i)); + _zc(1) = (0)/1; + + } + return; + } + if (_is_var_event_2(idx)) { + _get_event_2_idxs(idx); + _apply_usage_event_2(_d1); + if ((i >= 1 && i <= 4)) { + _zc(0) = _V(i,0)-(1); + _zc(1) = (0)/1; + + } + return; + } + if (_is_var_event_3(idx)) { + _get_event_3_idxs(idx); + _apply_usage_event_3(_d1); + if ((i >= 1 && i <= 4)) { + _zc(0) = _time-(_day(i)); + _zc(1) = (0)/1; + + } + return; + } +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ + int _d1; + int i; + if (_is_var_event_1(idx)) { + _get_event_1_idxs(idx); + _apply_usage_event_1(_d1); + if ((i >= 1 && i <= 4)) { + if(_inside(i)==0) { + _inside(i) = 1-_inside(i); + _inst(i) = _inst(i)+__math__rand(8.330000e-02); + }else { + _inside(i) = 1-_inside(i); + _inst(i) = _inst(i)+__math__rand(2.075000e-01)+8.330000e-01; + } + } + return; + } + if (_is_var_event_2(idx)) { + _get_event_2_idxs(idx); + _apply_usage_event_2(_d1); + if ((i >= 1 && i <= 4)) { + _Su = _Su-1; + _In1 = _In1+1; + _day(i) = _time+10; + } + return; + } + if (_is_var_event_3(idx)) { + _get_event_3_idxs(idx); + _apply_usage_event_3(_d1); + if ((i >= 1 && i <= 4)) { + _In1 = _In1-1; + _Rec = _Rec+1; + } + return; + } +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + switch(idx) { + case _eval_out_exp_1: { + _out = _In1; + return; + } + case _eval_out_exp_2: { + _out = _Rec; + return; + } + case _eval_out_exp_3: { + _out = _Su; + return; + } + case _eval_out_exp_4: { + _out = _Vr(0); + return; + } + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + int _d1; + int _rg_d1; + int i; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_1_var_idxs(row, eq_var); + _get_V_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_A(_d1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + _apply_usage_eq_1(_d1); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + _apply_usage_eq_1(_d1); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + _apply_usage_eq_1(_d1); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_S(_d1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + _apply_usage_eq_1(_d1); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + _apply_usage_eq_1(_d1); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + x_ind = _idx_Vr(0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + _apply_usage_eq_1(_d1); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_alg_eq_1_var_idxs(row, eq_var); + _get_D_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + _apply_usage_alg_eq_1(_d1); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + _apply_usage_alg_eq_1(_d1); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + col = pos(dvdx->dg_dx[0]->index[c_row], dvdx->dg_dx[0]->size[c_row], x_ind); + _apply_usage_alg_eq_1(_d1); + aux = 0; + dvdx->dg_dx[0]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_H_idxs(eq_var); + _apply_usage_eq_2(_d1); + aux = 0; + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_D(_rg_d1,0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_D(_rg_d1,0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_D(_rg_d1,0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_F(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_3_var_idxs(row, eq_var); + _get_I_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_E(_d1,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + _apply_usage_eq_3(_d1); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + _apply_usage_eq_3(_d1); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + _apply_usage_eq_3(_d1); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + _apply_usage_eq_3(_d1); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_4_var_idxs(row, eq_var); + _get_M_idxs(eq_var); + _apply_usage_eq_4(_d1); + aux = 0; + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_D(_rg_d1,0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_D(_rg_d1,0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + c_row_g = _idx_D(_rg_d1,0) - 0; + col_g = pos(dvdx->dg_dx[0]->index[c_row_g], dvdx->dg_dx[0]->size[c_row_g], x_ind); + dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[0]->value[c_row_g][col_g]; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + _apply_usage_eq_4(_d1); + aux = 0; + dvdx->df_dx[3]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); + _apply_usage_eq_4(_d1); + aux = 0; + dvdx->df_dx[3]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_5_var_idxs(row, eq_var); + _get_F_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_F(_d1,0); + col = pos(dvdx->df_dx[4]->index[c_row], dvdx->df_dx[4]->size[c_row], x_ind); + _apply_usage_eq_5(_d1); + aux = 0; + dvdx->df_dx[4]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[4]->index[c_row], dvdx->df_dx[4]->size[c_row], x_ind); + _apply_usage_eq_5(_d1); + aux = 0; + dvdx->df_dx[4]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->df_dx[4]->index[c_row], dvdx->df_dx[4]->size[c_row], x_ind); + _apply_usage_eq_5(_d1); + aux = 0; + dvdx->df_dx[4]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + col = pos(dvdx->df_dx[4]->index[c_row], dvdx->df_dx[4]->size[c_row], x_ind); + _apply_usage_eq_5(_d1); + aux = 0; + dvdx->df_dx[4]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_6_var_idxs(row, eq_var); + _get_R_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_F(_d1,0); + col = pos(dvdx->df_dx[5]->index[c_row], dvdx->df_dx[5]->size[c_row], x_ind); + _apply_usage_eq_6(_d1); + aux = 0; + dvdx->df_dx[5]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + col = pos(dvdx->df_dx[5]->index[c_row], dvdx->df_dx[5]->size[c_row], x_ind); + _apply_usage_eq_6(_d1); + aux = 0; + dvdx->df_dx[5]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + col = pos(dvdx->df_dx[5]->index[c_row], dvdx->df_dx[5]->size[c_row], x_ind); + _apply_usage_eq_6(_d1); + aux = 0; + dvdx->df_dx[5]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_7_var_idxs(row, eq_var); + _get_E_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_E(_d1,0); + col = pos(dvdx->df_dx[6]->index[c_row], dvdx->df_dx[6]->size[c_row], x_ind); + _apply_usage_eq_7(_d1); + aux = 0; + dvdx->df_dx[6]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + col = pos(dvdx->df_dx[6]->index[c_row], dvdx->df_dx[6]->size[c_row], x_ind); + _apply_usage_eq_7(_d1); + aux = 0; + dvdx->df_dx[6]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + col = pos(dvdx->df_dx[6]->index[c_row], dvdx->df_dx[6]->size[c_row], x_ind); + _apply_usage_eq_7(_d1); + aux = 0; + dvdx->df_dx[6]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_8_var_idxs(row, eq_var); + _get_P_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + col = pos(dvdx->df_dx[7]->index[c_row], dvdx->df_dx[7]->size[c_row], x_ind); + _apply_usage_eq_8(_d1); + aux = 0; + dvdx->df_dx[7]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_P(_d1,0); + col = pos(dvdx->df_dx[7]->index[c_row], dvdx->df_dx[7]->size[c_row], x_ind); + _apply_usage_eq_8(_d1); + aux = 0; + dvdx->df_dx[7]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_9_var_idxs(row, eq_var); + _get_A_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_A(_d1,0); + col = pos(dvdx->df_dx[8]->index[c_row], dvdx->df_dx[8]->size[c_row], x_ind); + _apply_usage_eq_9(_d1); + aux = 0; + dvdx->df_dx[8]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_P(_d1,0); + col = pos(dvdx->df_dx[8]->index[c_row], dvdx->df_dx[8]->size[c_row], x_ind); + _apply_usage_eq_9(_d1); + aux = 0; + dvdx->df_dx[8]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_S(_d1,0); + col = pos(dvdx->df_dx[8]->index[c_row], dvdx->df_dx[8]->size[c_row], x_ind); + _apply_usage_eq_9(_d1); + aux = 0; + dvdx->df_dx[8]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->df_dx[8]->index[c_row], dvdx->df_dx[8]->size[c_row], x_ind); + _apply_usage_eq_9(_d1); + aux = 0; + dvdx->df_dx[8]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_10_var_idxs(row, eq_var); + _get_S_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_P(_d1,0); + col = pos(dvdx->df_dx[9]->index[c_row], dvdx->df_dx[9]->size[c_row], x_ind); + _apply_usage_eq_10(_d1); + aux = 0; + dvdx->df_dx[9]->value[c_row][col] += aux; + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_S(_d1,0); + col = pos(dvdx->df_dx[9]->index[c_row], dvdx->df_dx[9]->size[c_row], x_ind); + _apply_usage_eq_10(_d1); + aux = 0; + dvdx->df_dx[9]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_alg_eq_2_var_idxs(row, eq_var); + _get_Vpar_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->dg_dx[1]->index[c_row], dvdx->dg_dx[1]->size[c_row], x_ind); + _apply_usage_alg_eq_2(_d1); + aux = 0; + dvdx->dg_dx[1]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_V(1,0); + col = pos(dvdx->dg_dx[2]->index[c_row], dvdx->dg_dx[2]->size[c_row], x_ind); + c_row_g = _idx_Vpar(1,0) - 4; + col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); + dvdx->dg_dx[2]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; + } + for(row = 1; row <= 3; row++) { + c_row = _c_index(row); + _get_alg_eq_4_var_idxs(row, eq_var); + _get_sum_0_idxs(eq_var); + _apply_usage_alg_eq_4(_d1); + aux = 0; + if((2 <= _d1 && _d1 <= 4) && (2 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->dg_dx[3]->index[c_row], dvdx->dg_dx[3]->size[c_row], x_ind); + c_row_g = _idx_Vpar(_rg_d1,0) - 4; + col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); + dvdx->dg_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + x_ind = _idx_V(1,0); + col = pos(dvdx->df_dx[10]->index[c_row], dvdx->df_dx[10]->size[c_row], x_ind); + c_row_g = _idx_sum_0(1,0) - 8; + col_g = pos(dvdx->dg_dx[2]->index[c_row_g], dvdx->dg_dx[2]->size[c_row_g], x_ind); + dvdx->df_dx[10]->value[c_row][col] += aux * dvdx->dg_dx[2]->value[c_row_g][col_g]; + for(i = 2; i<=4; i+=1) { + _get_alg_eq_4_var_idxs(_idx_sum_0(i,0), eq_var); + _get_sum_0_idxs(eq_var); + if((2 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + col = pos(dvdx->df_dx[10]->index[c_row], dvdx->df_dx[10]->size[c_row], x_ind); + c_row_g = _idx_sum_0(_rg_d1,0) - 9; + col_g = pos(dvdx->dg_dx[3]->index[c_row_g], dvdx->dg_dx[3]->size[c_row_g], x_ind); + dvdx->df_dx[10]->value[c_row][col] += aux * dvdx->dg_dx[3]->value[c_row_g][col_g]; + } + } x_ind = _idx_Vr(0); + col = pos(dvdx->df_dx[10]->index[c_row], dvdx->df_dx[10]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[10]->value[c_row][col] += aux; + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 2 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[2]->size[row]; col++) { + row_t = dvdx->df_dx[2]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[2]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 3 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[3]->size[row]; col++) { + row_t = dvdx->df_dx[3]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[3]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 4 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[4]->size[row]; col++) { + row_t = dvdx->df_dx[4]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[4]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 5 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[5]->size[row]; col++) { + row_t = dvdx->df_dx[5]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[5]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 6 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[6]->size[row]; col++) { + row_t = dvdx->df_dx[6]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[6]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 7 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[7]->size[row]; col++) { + row_t = dvdx->df_dx[7]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[7]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 8 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[8]->size[row]; col++) { + row_t = dvdx->df_dx[8]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[8]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 9 + for (row = 0; row < 4; row++) { + for (col = 0; col < dvdx->df_dx[9]->size[row]; col++) { + row_t = dvdx->df_dx[9]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[9]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 10 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[10]->size[row]; col++) { + row_t = dvdx->df_dx[10]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[10]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + int _d1; + int _rg_d1; + int i; + switch(idx) { + case _eval_Vr(0): { + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + _Vpar(i,1) = 0; + } + } + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + _Vpar(i,1) = 0; + } + } + _sum_0(1,0) = _Vpar(1,0); + _sum_0(1,1) = 0; + for(_rg_d1 = 9; _rg_d1<=11; _rg_d1+=1) { + _get_sum_0_idxs(_rg_d1); + _apply_usage_alg_eq_4(_d1); + if ((i >= 2 && i <= 4)) { + _sum_0(i,0) = _sum_0(i-1,0)+_Vpar(i,0); + _sum_0(i,1) = 0; + } + } + for(i = 1; i<=4; i+=1) { + _apply_usage_eq_1(i); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _eval_dep_V(i,2) = (0)/2; + } + } + _eval_dep_Vr(1) = _sum_0(4,0)*100/(double)4-_cr*_Vr(0); + _eval_dep_Vr(2) = (0)/2; + break; + } + } + if (_is_var_A(idx)) { + _get_A_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _eval_dep_V(i,2) = (0)/2; + } + } + if (_is_var_A(idx)) { + _get_A_idxs(idx); + _apply_usage_eq_9(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_A(i,1) = _ba(i)*_P(i,0)-_gav(i)*_S(i,0)*_A(i,0)*_V(i,0)-_aa(i)*_A(i,0); + _eval_dep_A(i,2) = (0)/2; + } + } + if (_is_var_E(idx)) { + _get_E_idxs(idx); + _apply_usage_eq_3(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_I(i,1) = _ghv(i)*_V(i,0)*_H(i,0)-_bie(i)*_E(i,0)*_I(i,0)-_ai(i)*_I(i,0); + _eval_dep_I(i,2) = (0)/2; + } + } + if (_is_var_E(idx)) { + _get_E_idxs(idx); + _apply_usage_eq_7(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_E(i,1) = _bem(i)*_M(i,0)*_E(i,0)-_bei(i)*_I(i,0)*_E(i,0)+_ae(i)*(1-_E(i,0)); + _eval_dep_E(i,2) = (0)/2; + } + } + if (_is_var_F(idx)) { + _get_F_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_H(i,1) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + _eval_dep_H(i,2) = (0)/2; + } + } + if (_is_var_F(idx)) { + _get_F_idxs(idx); + _apply_usage_eq_5(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_F(i,1) = _bf(i)*_M(i,0)+_cf(i)*_I(i,0)-_bfh(i)*_H(i,0)*_F(i,0)-_af(i)*_F(i,0); + _eval_dep_F(i,2) = (0)/2; + } + } + if (_is_var_F(idx)) { + _get_F_idxs(idx); + _apply_usage_eq_6(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_R(i,1) = _bhf(i)*_F(i,0)*_H(i,0)-_ar(i)*_R(i,0); + _eval_dep_R(i,2) = (0)/2; + } + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _eval_dep_V(i,2) = (0)/2; + } + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_H(i,1) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + _eval_dep_H(i,2) = (0)/2; + } + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_eq_3(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_I(i,1) = _ghv(i)*_V(i,0)*_H(i,0)-_bie(i)*_E(i,0)*_I(i,0)-_ai(i)*_I(i,0); + _eval_dep_I(i,2) = (0)/2; + } + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_M(i,1) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + _eval_dep_M(i,2) = (0)/2; + } + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_eq_5(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_F(i,1) = _bf(i)*_M(i,0)+_cf(i)*_I(i,0)-_bfh(i)*_H(i,0)*_F(i,0)-_af(i)*_F(i,0); + _eval_dep_F(i,2) = (0)/2; + } + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_eq_6(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_R(i,1) = _bhf(i)*_F(i,0)*_H(i,0)-_ar(i)*_R(i,0); + _eval_dep_R(i,2) = (0)/2; + } + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _eval_dep_V(i,2) = (0)/2; + } + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_H(i,1) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + _eval_dep_H(i,2) = (0)/2; + } + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_3(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_I(i,1) = _ghv(i)*_V(i,0)*_H(i,0)-_bie(i)*_E(i,0)*_I(i,0)-_ai(i)*_I(i,0); + _eval_dep_I(i,2) = (0)/2; + } + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_M(i,1) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + _eval_dep_M(i,2) = (0)/2; + } + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_5(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_F(i,1) = _bf(i)*_M(i,0)+_cf(i)*_I(i,0)-_bfh(i)*_H(i,0)*_F(i,0)-_af(i)*_F(i,0); + _eval_dep_F(i,2) = (0)/2; + } + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_7(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_E(i,1) = _bem(i)*_M(i,0)*_E(i,0)-_bei(i)*_I(i,0)*_E(i,0)+_ae(i)*(1-_E(i,0)); + _eval_dep_E(i,2) = (0)/2; + } + } + if (_is_var_M(idx)) { + _get_M_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_M(i,1) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + _eval_dep_M(i,2) = (0)/2; + } + } + if (_is_var_M(idx)) { + _get_M_idxs(idx); + _apply_usage_eq_5(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_F(i,1) = _bf(i)*_M(i,0)+_cf(i)*_I(i,0)-_bfh(i)*_H(i,0)*_F(i,0)-_af(i)*_F(i,0); + _eval_dep_F(i,2) = (0)/2; + } + } + if (_is_var_M(idx)) { + _get_M_idxs(idx); + _apply_usage_eq_7(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_E(i,1) = _bem(i)*_M(i,0)*_E(i,0)-_bei(i)*_I(i,0)*_E(i,0)+_ae(i)*(1-_E(i,0)); + _eval_dep_E(i,2) = (0)/2; + } + } + if (_is_var_M(idx)) { + _get_M_idxs(idx); + _apply_usage_eq_8(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_P(i,1) = _bpm(i)*_M(i,0)*_P(i,0)+_ap(i)*(1-_P(i,0)); + _eval_dep_P(i,2) = (0)/2; + } + } + if (_is_var_P(idx)) { + _get_P_idxs(idx); + _apply_usage_eq_8(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_P(i,1) = _bpm(i)*_M(i,0)*_P(i,0)+_ap(i)*(1-_P(i,0)); + _eval_dep_P(i,2) = (0)/2; + } + } + if (_is_var_P(idx)) { + _get_P_idxs(idx); + _apply_usage_eq_9(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_A(i,1) = _ba(i)*_P(i,0)-_gav(i)*_S(i,0)*_A(i,0)*_V(i,0)-_aa(i)*_A(i,0); + _eval_dep_A(i,2) = (0)/2; + } + } + if (_is_var_P(idx)) { + _get_P_idxs(idx); + _apply_usage_eq_10(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_S(i,1) = _r(i)*_P(i,0)*(1-_S(i,0)); + _eval_dep_S(i,2) = (0)/2; + } + } + if (_is_var_R(idx)) { + _get_R_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_H(i,1) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + _eval_dep_H(i,2) = (0)/2; + } + } + if (_is_var_R(idx)) { + _get_R_idxs(idx); + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_M(i,1) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + _eval_dep_M(i,2) = (0)/2; + } + } + if (_is_var_R(idx)) { + _get_R_idxs(idx); + _apply_usage_eq_6(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_R(i,1) = _bhf(i)*_F(i,0)*_H(i,0)-_ar(i)*_R(i,0); + _eval_dep_R(i,2) = (0)/2; + } + } + if (_is_var_S(idx)) { + _get_S_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _eval_dep_V(i,2) = (0)/2; + } + } + if (_is_var_S(idx)) { + _get_S_idxs(idx); + _apply_usage_eq_9(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_A(i,1) = _ba(i)*_P(i,0)-_gav(i)*_S(i,0)*_A(i,0)*_V(i,0)-_aa(i)*_A(i,0); + _eval_dep_A(i,2) = (0)/2; + } + } + if (_is_var_S(idx)) { + _get_S_idxs(idx); + _apply_usage_eq_10(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_S(i,1) = _r(i)*_P(i,0)*(1-_S(i,0)); + _eval_dep_S(i,2) = (0)/2; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + _eval_dep_V(i,2) = (0)/2; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + _D(i,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_H(i,1) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + _eval_dep_H(i,2) = (0)/2; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_eq_3(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_I(i,1) = _ghv(i)*_V(i,0)*_H(i,0)-_bie(i)*_E(i,0)*_I(i,0)-_ai(i)*_I(i,0); + _eval_dep_I(i,2) = (0)/2; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_M(i,1) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + _eval_dep_M(i,2) = (0)/2; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_eq_9(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_A(i,1) = _ba(i)*_P(i,0)-_gav(i)*_S(i,0)*_A(i,0)*_V(i,0)-_aa(i)*_A(i,0); + _eval_dep_A(i,2) = (0)/2; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + _Vpar(i,1) = 0; + } + } + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + _Vpar(i,1) = 0; + } + } + _sum_0(1,0) = _Vpar(1,0); + _sum_0(1,1) = 0; + for(_rg_d1 = 9; _rg_d1<=11; _rg_d1+=1) { + _get_sum_0_idxs(_rg_d1); + _apply_usage_alg_eq_4(_d1); + if ((i >= 2 && i <= 4)) { + _sum_0(i,0) = _sum_0(i-1,0)+_Vpar(i,0); + _sum_0(i,1) = 0; + } + } + _eval_dep_Vr(1) = _sum_0(4,0)*100/(double)4-_cr*_Vr(0); + _eval_dep_Vr(2) = (0)/2; + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + int _d1; + int _rg_d1; + int i; + switch(idx) { + case _eval_Vr(0): { + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + + } + } + for(_rg_d1 = 4; _rg_d1<=7; _rg_d1+=1) { + _get_Vpar_idxs(_rg_d1); + _apply_usage_alg_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _Vpar(i,0) = _V(i,0)*_tr(i)*_inside(i); + + } + } + _sum_0(1,0) = _Vpar(1,0); + + for(_rg_d1 = 9; _rg_d1<=11; _rg_d1+=1) { + _get_sum_0_idxs(_rg_d1); + _apply_usage_alg_eq_4(_d1); + if ((i >= 2 && i <= 4)) { + _sum_0(i,0) = _sum_0(i-1,0)+_Vpar(i,0); + + } + } + _eval_dep_Vr(1) = _sum_0(4,0)*100/(double)4-_cr*_Vr(0); + + + continue; + } + } + if (_is_var_V(idx)) { + _get_V_idxs(idx); + _apply_usage_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_V(i,1) = _gv(i)*_I(i,0)-_gva(i)*_S(i,0)*_A(i,0)*_V(i,0)-_gvh(i)*_H(i,0)*_V(i,0)-_av(i)*_V(i,0)-_av1(i)*_V(i,0)/(1+_av2(i)*_V(i,0))+_inside(i)*_re(i)*_Vr(0); + + + } + continue; + } + if (_is_var_H(idx)) { + _get_H_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + + } + _apply_usage_eq_2(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_H(i,1) = _bhd(i)*_D(i,0)*(_H(i,0)+_R(i,0))+_ar(i)*_R(i,0)-_ghv(i)*_V(i,0)*_H(i,0)-_bhf(i)*_F(i,0)*_H(i,0); + + + } + continue; + } + if (_is_var_I(idx)) { + _get_I_idxs(idx); + _apply_usage_eq_3(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_I(i,1) = _ghv(i)*_V(i,0)*_H(i,0)-_bie(i)*_E(i,0)*_I(i,0)-_ai(i)*_I(i,0); + + + } + continue; + } + if (_is_var_M(idx)) { + _get_M_idxs(idx); + _apply_usage_alg_eq_1(_d1); + if ((i >= 1 && i <= 4)) { + _D(i,0) = 1-_H(i,0)-_R(i,0)-_I(i,0); + + } + _apply_usage_eq_4(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_M(i,1) = (_bmd(i)*_D(i,0)+_bmv(i)*_V(i,0))*(1-_M(i,0))-_am(i)*_M(i,0); + + + } + continue; + } + if (_is_var_F(idx)) { + _get_F_idxs(idx); + _apply_usage_eq_5(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_F(i,1) = _bf(i)*_M(i,0)+_cf(i)*_I(i,0)-_bfh(i)*_H(i,0)*_F(i,0)-_af(i)*_F(i,0); + + + } + continue; + } + if (_is_var_R(idx)) { + _get_R_idxs(idx); + _apply_usage_eq_6(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_R(i,1) = _bhf(i)*_F(i,0)*_H(i,0)-_ar(i)*_R(i,0); + + + } + continue; + } + if (_is_var_E(idx)) { + _get_E_idxs(idx); + _apply_usage_eq_7(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_E(i,1) = _bem(i)*_M(i,0)*_E(i,0)-_bei(i)*_I(i,0)*_E(i,0)+_ae(i)*(1-_E(i,0)); + + + } + continue; + } + if (_is_var_P(idx)) { + _get_P_idxs(idx); + _apply_usage_eq_8(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_P(i,1) = _bpm(i)*_M(i,0)*_P(i,0)+_ap(i)*(1-_P(i,0)); + + + } + continue; + } + if (_is_var_A(idx)) { + _get_A_idxs(idx); + _apply_usage_eq_9(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_A(i,1) = _ba(i)*_P(i,0)-_gav(i)*_S(i,0)*_A(i,0)*_V(i,0)-_aa(i)*_A(i,0); + + + } + continue; + } + if (_is_var_S(idx)) { + _get_S_idxs(idx); + _apply_usage_eq_10(_d1); + if ((i >= 1 && i <= 4)) { + _eval_dep_S(i,1) = _r(i)*_P(i,0)*(1-_S(i,0)); + + + } + continue; + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(41,16,12,0,12,11,4,"VIRplanoS"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(12*sizeof(int)); + int* states = (int*) malloc(41*sizeof(int)); + int* discretes = (int*) malloc(16*sizeof(int)); + int* events = (int*) malloc(12*sizeof(int)); + int* outputs = (int*) malloc(4*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + int _d1; + int _rg_d1; + int i; + for(_d1 = 1; _d1<=4; _d1+=1) { + _init_A(_d1,0) = 1; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + _init_E(_d1,0) = 1; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + _init_H(_d1,0) = 1; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + _init_P(_d1,0) = 1; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + _init_S(_d1,0) = 1.000000e-01; + } + _cr = 100; + _u = __math__rand(1); + for(i = 1; i<=4; i+=1) { + _gv(i) = 510; + _gva(i) = 6.192000e+02; + _gvh(i) = 1.020000e+00; + _av(i) = 1.700000e+00; + _av1(i) = 100; + _av2(i) = 23000; + _bhd(i) = 4; + _ar(i) = 1; + _ghv(i) = 3.400000e-01; + _bhf(i) = 1.000000e-02; + _bie(i) = 6.600000e-02; + _ai(i) = 1.500000e+00; + _bmd(i) = 1; + _bmv(i) = 3.700000e-03; + _am(i) = 1; + _bf(i) = 250000; + _cf(i) = 2000; + _bfh(i) = 17; + _af(i) = 8; + _bem(i) = 8.300000e+00; + _bei(i) = 2.720000e+00; + _ae(i) = 4.000000e-01; + _bpm(i) = 1.150000e+01; + _ap(i) = 4.000000e-01; + _ba(i) = 4.300000e-02; + _gav(i) = 1.462000e+02; + _aa(i) = 4.300000e-02; + _r(i) = 3.000000e-05; + } + for(i = 1; i<=2; i+=1) { + _re(i) = __math__rand(2.200000e-01)+1.800000e-01; + _tr(i) = _re(i); + } + for(i = 3; i<=4; i+=1) { + _re(i) = __math__rand(6.000000e-02)+4.000000e-02; + _tr(i) = _re(i); + } + _init_V(1,0) = 10; + _inside(1) = 1; + for(i = 1; i<=4; i+=1) { + _inst(i) = __math__rand(2); + _day(i) = 1000; + } + for(i = 1; i<=2; i+=1) { + _init_V(i,0) = 10; + _inside(i) = 1; + } + _Su = 4; + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_A(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_A(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_E(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_E(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_P(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_P(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_P(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_R(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_R(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_R(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_S(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_S(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_S(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSD[_idx_Vr(0)]++; + } + modelData->nSD[_idx_Vr(0)]++; + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_A(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_E(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_R(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_R(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_E(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_F(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_E(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_P(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_P(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_A(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_S(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_R(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_A(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_S(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_H(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_I(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_M(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_A(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_Vr(0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nDS[_idx_V(_d1,0)]++; + } + modelData->nDS[_idx_Vr(0)]++; + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_1_var_idxs(row, eq_var); + _get_V_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_alg_eq_1_var_idxs(row, eq_var); + _get_D_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->dg_dx[0]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_H_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_3_var_idxs(row, eq_var); + _get_I_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[2]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[2]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[2]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[2]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_4_var_idxs(row, eq_var); + _get_M_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[3]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[3]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[3]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[3]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[3]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_5_var_idxs(row, eq_var); + _get_F_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[4]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[4]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[4]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[4]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_6_var_idxs(row, eq_var); + _get_R_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[5]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[5]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[5]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_7_var_idxs(row, eq_var); + _get_E_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[6]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[6]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[6]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_8_var_idxs(row, eq_var); + _get_P_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[7]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[7]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_9_var_idxs(row, eq_var); + _get_A_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[8]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[8]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[8]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[8]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_10_var_idxs(row, eq_var); + _get_S_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[9]->size[c_row]++; + } + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[9]->size[c_row]++; + } + } + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_alg_eq_2_var_idxs(row, eq_var); + _get_Vpar_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->dg_dx[1]->size[c_row]++; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->dg_dx[2]->size[c_row]++; + } + for(row = 1; row <= 3; row++) { + c_row = _c_index(row); + _get_alg_eq_4_var_idxs(row, eq_var); + _get_sum_0_idxs(eq_var); + if((2 <= _d1 && _d1 <= 4) && (2 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->dg_dx[3]->size[c_row]++; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[10]->size[c_row]++; + for(i = 2; i<=4; i+=1) { + _get_alg_eq_4_var_idxs(_idx_sum_0(i,0), eq_var); + _get_sum_0_idxs(eq_var); + if((2 <= _d1 && _d1 <= 4)) { + modelData->jac_matrices->df_dx[10]->size[c_row]++; + } + } modelData->jac_matrices->df_dx[10]->size[c_row]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nSZ[_idx_V(_d1,0)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nZS[_idx_event_2(_d1)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nHZ[_idx_event_1(_d1)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nHZ[_idx_event_2(_d1)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->nHD[_idx_event_1(_d1)]++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_2(_d1)].nLHSDsc++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_2(_d1)].nLHSDsc++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_3(_d1)].nLHSDsc++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_3(_d1)].nLHSDsc++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_2(_d1)].nLHSDsc++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_1(_d1)].nLHSDsc++; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_1(_d1)].nLHSDsc++; + } + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 41); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_A(_d1,0)][states[_idx_A(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_A(_d1,0)][states[_idx_A(_d1,0)]++] = _idx_A(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_E(_d1,0)][states[_idx_E(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_E(_d1,0)][states[_idx_E(_d1,0)]++] = _idx_E(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_R(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_R(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_E(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_E(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_P(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_P(_d1,0)][states[_idx_P(_d1,0)]++] = _idx_P(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_P(_d1,0)][states[_idx_P(_d1,0)]++] = _idx_A(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_P(_d1,0)][states[_idx_P(_d1,0)]++] = _idx_S(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_R(_d1,0)][states[_idx_R(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_R(_d1,0)][states[_idx_R(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_R(_d1,0)][states[_idx_R(_d1,0)]++] = _idx_R(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_S(_d1,0)][states[_idx_S(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_S(_d1,0)][states[_idx_S(_d1,0)]++] = _idx_A(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_S(_d1,0)][states[_idx_S(_d1,0)]++] = _idx_S(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_A(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_Vr(0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SD[_idx_Vr(0)][states[_idx_Vr(0)]++] = _idx_V(_d1,0); + } + modelData->SD[_idx_Vr(0)][states[_idx_Vr(0)]++] = _idx_Vr(0); + cleanVector(states, 0, 41); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_A(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_A(_d1,0)][states[_idx_A(_d1,0)]++] = _idx_A(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_E(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_E(_d1,0)][states[_idx_E(_d1,0)]++] = _idx_E(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_R(_d1,0)][states[_idx_R(_d1,0)]++] = _idx_F(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_R(_d1,0)][states[_idx_R(_d1,0)]++] = _idx_H(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_E(_d1,0)][states[_idx_E(_d1,0)]++] = _idx_I(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_F(_d1,0)][states[_idx_F(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_E(_d1,0)][states[_idx_E(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_P(_d1,0)][states[_idx_P(_d1,0)]++] = _idx_M(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_P(_d1,0)][states[_idx_P(_d1,0)]++] = _idx_P(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_A(_d1,0)][states[_idx_A(_d1,0)]++] = _idx_P(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_S(_d1,0)][states[_idx_S(_d1,0)]++] = _idx_P(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_R(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_R(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_R(_d1,0)][states[_idx_R(_d1,0)]++] = _idx_R(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_S(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_A(_d1,0)][states[_idx_A(_d1,0)]++] = _idx_S(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_S(_d1,0)][states[_idx_S(_d1,0)]++] = _idx_S(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_H(_d1,0)][states[_idx_H(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_I(_d1,0)][states[_idx_I(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_M(_d1,0)][states[_idx_M(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_A(_d1,0)][states[_idx_A(_d1,0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_Vr(0)][states[_idx_Vr(0)]++] = _idx_V(_d1,0); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->DS[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_Vr(0); + } + modelData->DS[_idx_Vr(0)][states[_idx_Vr(0)]++] = _idx_Vr(0); + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_1_var_idxs(row, eq_var); + _get_V_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_A(_d1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_S(_d1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + x_ind = _idx_Vr(0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 12); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_alg_eq_1_var_idxs(row, eq_var); + _get_D_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_H_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_F(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_3_var_idxs(row, eq_var); + _get_I_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_E(_d1,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_4_var_idxs(row, eq_var); + _get_M_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4) && (1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->df_dx[3]->index[c_row],modelData->jac_matrices->df_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[3]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_5_var_idxs(row, eq_var); + _get_F_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_F(_d1,0); + if(in(modelData->jac_matrices->df_dx[4]->index[c_row],modelData->jac_matrices->df_dx[4]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[4]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[4]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[4]->index[c_row],modelData->jac_matrices->df_dx[4]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[4]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[4]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->df_dx[4]->index[c_row],modelData->jac_matrices->df_dx[4]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[4]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[4]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + if(in(modelData->jac_matrices->df_dx[4]->index[c_row],modelData->jac_matrices->df_dx[4]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[4]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[4]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_6_var_idxs(row, eq_var); + _get_R_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_F(_d1,0); + if(in(modelData->jac_matrices->df_dx[5]->index[c_row],modelData->jac_matrices->df_dx[5]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[5]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[5]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_H(_d1,0); + if(in(modelData->jac_matrices->df_dx[5]->index[c_row],modelData->jac_matrices->df_dx[5]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[5]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[5]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_R(_d1,0); + if(in(modelData->jac_matrices->df_dx[5]->index[c_row],modelData->jac_matrices->df_dx[5]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[5]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[5]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_7_var_idxs(row, eq_var); + _get_E_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_E(_d1,0); + if(in(modelData->jac_matrices->df_dx[6]->index[c_row],modelData->jac_matrices->df_dx[6]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[6]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[6]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_I(_d1,0); + if(in(modelData->jac_matrices->df_dx[6]->index[c_row],modelData->jac_matrices->df_dx[6]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[6]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[6]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + if(in(modelData->jac_matrices->df_dx[6]->index[c_row],modelData->jac_matrices->df_dx[6]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[6]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[6]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_8_var_idxs(row, eq_var); + _get_P_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_M(_d1,0); + if(in(modelData->jac_matrices->df_dx[7]->index[c_row],modelData->jac_matrices->df_dx[7]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[7]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[7]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_P(_d1,0); + if(in(modelData->jac_matrices->df_dx[7]->index[c_row],modelData->jac_matrices->df_dx[7]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[7]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[7]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_9_var_idxs(row, eq_var); + _get_A_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_A(_d1,0); + if(in(modelData->jac_matrices->df_dx[8]->index[c_row],modelData->jac_matrices->df_dx[8]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[8]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[8]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_P(_d1,0); + if(in(modelData->jac_matrices->df_dx[8]->index[c_row],modelData->jac_matrices->df_dx[8]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[8]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[8]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_S(_d1,0); + if(in(modelData->jac_matrices->df_dx[8]->index[c_row],modelData->jac_matrices->df_dx[8]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[8]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[8]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->df_dx[8]->index[c_row],modelData->jac_matrices->df_dx[8]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[8]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[8]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_eq_10_var_idxs(row, eq_var); + _get_S_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_P(_d1,0); + if(in(modelData->jac_matrices->df_dx[9]->index[c_row],modelData->jac_matrices->df_dx[9]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[9]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[9]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_S(_d1,0); + if(in(modelData->jac_matrices->df_dx[9]->index[c_row],modelData->jac_matrices->df_dx[9]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[9]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[9]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(algebraics, 0, 12); + for(row = 1; row <= 4; row++) { + c_row = _c_index(row); + _get_alg_eq_2_var_idxs(row, eq_var); + _get_Vpar_idxs(eq_var); + if((1 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + } + cleanVector(algebraics, 0, 12); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_V(1,0); + if(in(modelData->jac_matrices->dg_dx[2]->index[c_row],modelData->jac_matrices->dg_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[2]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + cleanVector(algebraics, 0, 12); + for(row = 1; row <= 3; row++) { + c_row = _c_index(row); + _get_alg_eq_4_var_idxs(row, eq_var); + _get_sum_0_idxs(eq_var); + if((2 <= _d1 && _d1 <= 4) && (2 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->dg_dx[3]->index[c_row],modelData->jac_matrices->dg_dx[3]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[3]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[3]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 41); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_V(1,0); + if(in(modelData->jac_matrices->df_dx[10]->index[c_row],modelData->jac_matrices->df_dx[10]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[10]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[10]->index[c_row][states[c_row]++] = x_ind; + } + for(i = 2; i<=4; i+=1) { + _get_alg_eq_4_var_idxs(_idx_sum_0(i,0), eq_var); + _get_sum_0_idxs(eq_var); + if((2 <= _d1 && _d1 <= 4)) { + x_ind = _idx_V(_d1,0); + if(in(modelData->jac_matrices->df_dx[10]->index[c_row],modelData->jac_matrices->df_dx[10]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[10]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[10]->index[c_row][states[c_row]++] = x_ind; + } + } + } x_ind = _idx_Vr(0); + if(in(modelData->jac_matrices->df_dx[10]->index[c_row],modelData->jac_matrices->df_dx[10]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[10]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[10]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 41); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->SZ[_idx_V(_d1,0)][states[_idx_V(_d1,0)]++] = _idx_event_2(_d1); + } + cleanVector(events, 0, 12); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->ZS[_idx_event_2(_d1)][events[_idx_event_2(_d1)]++] = _idx_V(_d1,0); + } + cleanVector(events, 0, 12); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->HZ[_idx_event_1(_d1)][events[_idx_event_1(_d1)]++] = _idx_event_1(_d1); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->HZ[_idx_event_2(_d1)][events[_idx_event_2(_d1)]++] = _idx_event_3(_d1); + } + cleanVector(events, 0, 12); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->HD[_idx_event_1(_d1)][events[_idx_event_1(_d1)]++] = _idx_V(_d1,0); + } + cleanVector(events, 0, 12); + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_2(_d1)].LHSDsc[events[_idx_event_2(_d1)]++] = _idx_day(_d1); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_2(_d1)].LHSDsc[events[_idx_event_2(_d1)]++] = _idx_In1; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_3(_d1)].LHSDsc[events[_idx_event_3(_d1)]++] = _idx_In1; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_3(_d1)].LHSDsc[events[_idx_event_3(_d1)]++] = _idx_Rec; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_2(_d1)].LHSDsc[events[_idx_event_2(_d1)]++] = _idx_Su; + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_1(_d1)].LHSDsc[events[_idx_event_1(_d1)]++] = _idx_inside(_d1); + } + for(_d1 = 1; _d1<=4; _d1+=1) { + modelData->event[_idx_event_1(_d1)].LHSDsc[events[_idx_event_1(_d1)]++] = _idx_inst(_d1); + } + for(i = 1; i<=4; i+=1) { + modelData->event[_idx_event_1(i)].direction = 1; + modelData->event[_idx_event_1(i)].relation = 2; + } + for(i = 1; i<=4; i+=1) { + modelData->event[_idx_event_2(i)].direction = 1; + modelData->event[_idx_event_2(i)].relation = 2; + } + for(i = 1; i<=4; i+=1) { + modelData->event[_idx_event_3(i)].direction = 1; + modelData->event[_idx_event_3(i)].relation = 2; + } + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(41,12,0,0,ST_Binary, NULL); + double period[1]; + period[0] = 0.01; + simulator->output = SD_Output("VIRplanoS",4,16,41,period,1,0,CI_Sampled,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + modelOutput->nOS[_idx_out_exp_4]++; + modelOutput->nOD[_idx_out_exp_1]++; + modelOutput->nOD[_idx_out_exp_2]++; + modelOutput->nOD[_idx_out_exp_3]++; + modelOutput->nSO[_idx_Vr(0)]++; + modelOutput->nDO[_idx_In1]++; + modelOutput->nDO[_idx_Rec]++; + modelOutput->nDO[_idx_Su]++; + SD_allocOutputMatrix(modelOutput, 41, 16); + sprintf(modelOutput->variable[_idx_out_exp_1].name, "In1"); + sprintf(modelOutput->variable[_idx_out_exp_2].name, "Rec"); + sprintf(modelOutput->variable[_idx_out_exp_3].name, "Su"); + sprintf(modelOutput->variable[_idx_out_exp_4].name, "Vr"); + cleanVector(outputs, 0, 4); + modelOutput->OS[_idx_out_exp_4][outputs[_idx_out_exp_4]++] = _idx_Vr(0); + cleanVector(outputs, 0, 4); + modelOutput->OD[_idx_out_exp_1][outputs[_idx_out_exp_1]++] = _idx_In1; + modelOutput->OD[_idx_out_exp_2][outputs[_idx_out_exp_2]++] = _idx_Rec; + modelOutput->OD[_idx_out_exp_3][outputs[_idx_out_exp_3]++] = _idx_Su; + cleanVector(states, 0, 41); + modelOutput->SO[_idx_Vr(0)][states[_idx_Vr(0)]++] = _idx_out_exp_4; + cleanVector(discretes, 0, 16); + modelOutput->DO[_idx_In1][discretes[_idx_In1]++] = _idx_out_exp_1; + modelOutput->DO[_idx_Rec][discretes[_idx_Rec]++] = _idx_out_exp_2; + modelOutput->DO[_idx_Su][discretes[_idx_Su]++] = _idx_out_exp_3; + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); + free(states); + free(discretes); + free(events); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.h b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.h new file mode 100644 index 00000000..56608dac --- /dev/null +++ b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.h @@ -0,0 +1,577 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; \ + double* d = m->d; \ + double* a = m->alg; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 + +// Model Variables Macros + +// Macros definition for variable: A +#define _idx_A(d1,coeff) (32+(d1-1)) +#define _state_idx_A(d1,coeff) (32+(d1-1))*3 + coeff +#define _A(d1,coeff) x[_state_idx_A(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_A(d1,coeff) x[_state_idx_A(d1,coeff)] +#define _q_A(d1,coeff) q[_state_idx_A(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_A(d1,coeff) (32+(d1-1)) +#define _is_var_A(idx) idx >= 32 && idx < 36 +#define _get_A_idxs(idx)\ + _d1 = (idx-32)+ 1; +#define _eval_dep_A(d1,coeff) dx[_state_idx_A(d1,coeff)] + +// Macros definition for variable: D +#define _idx_D(d1,coeff) ((d1-1)) +#define _state_idx_D(d1,coeff) ((d1-1))*3 + coeff +#define _D(d1,coeff) a[_state_idx_D(d1,coeff)] +#define _is_var_D(idx) idx >= 0 && idx < 4 +#define _get_D_idxs(idx)\ + _d1 = (idx)+ 1; + +// Macros definition for variable: E +#define _idx_E(d1,coeff) (24+(d1-1)) +#define _state_idx_E(d1,coeff) (24+(d1-1))*3 + coeff +#define _E(d1,coeff) x[_state_idx_E(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_E(d1,coeff) x[_state_idx_E(d1,coeff)] +#define _q_E(d1,coeff) q[_state_idx_E(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_E(d1,coeff) (24+(d1-1)) +#define _is_var_E(idx) idx >= 24 && idx < 28 +#define _get_E_idxs(idx)\ + _d1 = (idx-24)+ 1; +#define _eval_dep_E(d1,coeff) dx[_state_idx_E(d1,coeff)] + +// Macros definition for variable: F +#define _idx_F(d1,coeff) (16+(d1-1)) +#define _state_idx_F(d1,coeff) (16+(d1-1))*3 + coeff +#define _F(d1,coeff) x[_state_idx_F(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_F(d1,coeff) x[_state_idx_F(d1,coeff)] +#define _q_F(d1,coeff) q[_state_idx_F(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_F(d1,coeff) (16+(d1-1)) +#define _is_var_F(idx) idx >= 16 && idx < 20 +#define _get_F_idxs(idx)\ + _d1 = (idx-16)+ 1; +#define _eval_dep_F(d1,coeff) dx[_state_idx_F(d1,coeff)] + +// Macros definition for variable: H +#define _idx_H(d1,coeff) (4+(d1-1)) +#define _state_idx_H(d1,coeff) (4+(d1-1))*3 + coeff +#define _H(d1,coeff) x[_state_idx_H(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_H(d1,coeff) x[_state_idx_H(d1,coeff)] +#define _q_H(d1,coeff) q[_state_idx_H(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_H(d1,coeff) (4+(d1-1)) +#define _is_var_H(idx) idx >= 4 && idx < 8 +#define _get_H_idxs(idx)\ + _d1 = (idx-4)+ 1; +#define _eval_dep_H(d1,coeff) dx[_state_idx_H(d1,coeff)] + +// Macros definition for variable: I +#define _idx_I(d1,coeff) (8+(d1-1)) +#define _state_idx_I(d1,coeff) (8+(d1-1))*3 + coeff +#define _I(d1,coeff) x[_state_idx_I(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_I(d1,coeff) x[_state_idx_I(d1,coeff)] +#define _q_I(d1,coeff) q[_state_idx_I(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_I(d1,coeff) (8+(d1-1)) +#define _is_var_I(idx) idx >= 8 && idx < 12 +#define _get_I_idxs(idx)\ + _d1 = (idx-8)+ 1; +#define _eval_dep_I(d1,coeff) dx[_state_idx_I(d1,coeff)] + +// Macros definition for variable: In1 +#define _idx_In1 9 +#define _In1 d[_idx_In1] + +// Macros definition for variable: M +#define _idx_M(d1,coeff) (12+(d1-1)) +#define _state_idx_M(d1,coeff) (12+(d1-1))*3 + coeff +#define _M(d1,coeff) x[_state_idx_M(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_M(d1,coeff) x[_state_idx_M(d1,coeff)] +#define _q_M(d1,coeff) q[_state_idx_M(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_M(d1,coeff) (12+(d1-1)) +#define _is_var_M(idx) idx >= 12 && idx < 16 +#define _get_M_idxs(idx)\ + _d1 = (idx-12)+ 1; +#define _eval_dep_M(d1,coeff) dx[_state_idx_M(d1,coeff)] + +// Macros definition for variable: P +#define _idx_P(d1,coeff) (28+(d1-1)) +#define _state_idx_P(d1,coeff) (28+(d1-1))*3 + coeff +#define _P(d1,coeff) x[_state_idx_P(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_P(d1,coeff) x[_state_idx_P(d1,coeff)] +#define _q_P(d1,coeff) q[_state_idx_P(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_P(d1,coeff) (28+(d1-1)) +#define _is_var_P(idx) idx >= 28 && idx < 32 +#define _get_P_idxs(idx)\ + _d1 = (idx-28)+ 1; +#define _eval_dep_P(d1,coeff) dx[_state_idx_P(d1,coeff)] + +// Macros definition for variable: R +#define _idx_R(d1,coeff) (20+(d1-1)) +#define _state_idx_R(d1,coeff) (20+(d1-1))*3 + coeff +#define _R(d1,coeff) x[_state_idx_R(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_R(d1,coeff) x[_state_idx_R(d1,coeff)] +#define _q_R(d1,coeff) q[_state_idx_R(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_R(d1,coeff) (20+(d1-1)) +#define _is_var_R(idx) idx >= 20 && idx < 24 +#define _get_R_idxs(idx)\ + _d1 = (idx-20)+ 1; +#define _eval_dep_R(d1,coeff) dx[_state_idx_R(d1,coeff)] + +// Macros definition for variable: Rec +#define _idx_Rec 10 +#define _Rec d[_idx_Rec] + +// Macros definition for variable: S +#define _idx_S(d1,coeff) (36+(d1-1)) +#define _state_idx_S(d1,coeff) (36+(d1-1))*3 + coeff +#define _S(d1,coeff) x[_state_idx_S(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_S(d1,coeff) x[_state_idx_S(d1,coeff)] +#define _q_S(d1,coeff) q[_state_idx_S(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_S(d1,coeff) (36+(d1-1)) +#define _is_var_S(idx) idx >= 36 && idx < 40 +#define _get_S_idxs(idx)\ + _d1 = (idx-36)+ 1; +#define _eval_dep_S(d1,coeff) dx[_state_idx_S(d1,coeff)] + +// Macros definition for variable: Su +#define _idx_Su 8 +#define _Su d[_idx_Su] + +// Macros definition for variable: V +#define _idx_V(d1,coeff) ((d1-1)) +#define _state_idx_V(d1,coeff) ((d1-1))*3 + coeff +#define _V(d1,coeff) x[_state_idx_V(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_V(d1,coeff) x[_state_idx_V(d1,coeff)] +#define _q_V(d1,coeff) q[_state_idx_V(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_V(d1,coeff) ((d1-1)) +#define _is_var_V(idx) idx >= 0 && idx < 4 +#define _get_V_idxs(idx)\ + _d1 = (idx)+ 1; +#define _eval_dep_V(d1,coeff) dx[_state_idx_V(d1,coeff)] + +// Macros definition for variable: Vpar +#define _idx_Vpar(d1,coeff) (4+(d1-1)) +#define _state_idx_Vpar(d1,coeff) (4+(d1-1))*3 + coeff +#define _Vpar(d1,coeff) a[_state_idx_Vpar(d1,coeff)] +#define _is_var_Vpar(idx) idx >= 4 && idx < 8 +#define _get_Vpar_idxs(idx)\ + _d1 = (idx-4)+ 1; + +// Macros definition for variable: Vr +#define _idx_Vr(coeff) 40 +#define _state_idx_Vr(coeff) 40*3 + coeff +#define _Vr(coeff) x[_state_idx_Vr(coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_Vr(coeff) x[_state_idx_Vr(coeff)] +#define _q_Vr(coeff) q[_state_idx_Vr(coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_Vr(coeff) 40 +#define _eval_dep_Vr(coeff) dx[_state_idx_Vr(coeff)] + +// Macros definition for variable: _event_1 +#define _idx_event_1(d1) ((d1-1)) +#define _eval_event_1(d1) ((d1-1)) +#define _is_var_event_1(idx) idx >= 0 && idx < 4 +#define _get_event_1_idxs(idx)\ + _d1 = (idx)+ 1; + +// Macros definition for variable: _event_2 +#define _idx_event_2(d1) (4+(d1-1)) +#define _eval_event_2(d1) (4+(d1-1)) +#define _is_var_event_2(idx) idx >= 4 && idx < 8 +#define _get_event_2_idxs(idx)\ + _d1 = (idx-4)+ 1; + +// Macros definition for variable: _event_3 +#define _idx_event_3(d1) (8+(d1-1)) +#define _eval_event_3(d1) (8+(d1-1)) +#define _is_var_event_3(idx) idx >= 8 && idx < 12 +#define _get_event_3_idxs(idx)\ + _d1 = (idx-8)+ 1; + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1 0 +#define _eval_out_exp_1 0 + +// Macros definition for variable: _out_exp_2 +#define _idx_out_exp_2 1 +#define _eval_out_exp_2 1 + +// Macros definition for variable: _out_exp_3 +#define _idx_out_exp_3 2 +#define _eval_out_exp_3 2 + +// Macros definition for variable: _out_exp_4 +#define _idx_out_exp_4 3 +#define _eval_out_exp_4 3 + +// Macros definition for variable: _sum_0 +#define _idx_sum_0(d1,coeff) (8+(d1-1)) +#define _state_idx_sum_0(d1,coeff) (8+(d1-1))*3 + coeff +#define _sum_0(d1,coeff) a[_state_idx_sum_0(d1,coeff)] +#define _is_var_sum_0(idx) idx >= 8 && idx < 12 +#define _get_sum_0_idxs(idx)\ + _d1 = (idx-8)+ 1; + +// Macros definition for variable: aa +#define _idx_aa(d1) ((d1-1)) +#define _aa(d1) __PAR__aa[_idx_aa(d1)] + +// Macros definition for variable: ae +#define _idx_ae(d1) ((d1-1)) +#define _ae(d1) __PAR__ae[_idx_ae(d1)] + +// Macros definition for variable: af +#define _idx_af(d1) ((d1-1)) +#define _af(d1) __PAR__af[_idx_af(d1)] + +// Macros definition for variable: ai +#define _idx_ai(d1) ((d1-1)) +#define _ai(d1) __PAR__ai[_idx_ai(d1)] + +// Macros definition for variable: am +#define _idx_am(d1) ((d1-1)) +#define _am(d1) __PAR__am[_idx_am(d1)] + +// Macros definition for variable: ap +#define _idx_ap(d1) ((d1-1)) +#define _ap(d1) __PAR__ap[_idx_ap(d1)] + +// Macros definition for variable: ar +#define _idx_ar(d1) ((d1-1)) +#define _ar(d1) __PAR__ar[_idx_ar(d1)] + +// Macros definition for variable: av +#define _idx_av(d1) ((d1-1)) +#define _av(d1) __PAR__av[_idx_av(d1)] + +// Macros definition for variable: av1 +#define _idx_av1(d1) ((d1-1)) +#define _av1(d1) __PAR__av1[_idx_av1(d1)] + +// Macros definition for variable: av2 +#define _idx_av2(d1) ((d1-1)) +#define _av2(d1) __PAR__av2[_idx_av2(d1)] + +// Macros definition for variable: ba +#define _idx_ba(d1) ((d1-1)) +#define _ba(d1) __PAR__ba[_idx_ba(d1)] + +// Macros definition for variable: bei +#define _idx_bei(d1) ((d1-1)) +#define _bei(d1) __PAR__bei[_idx_bei(d1)] + +// Macros definition for variable: bem +#define _idx_bem(d1) ((d1-1)) +#define _bem(d1) __PAR__bem[_idx_bem(d1)] + +// Macros definition for variable: bf +#define _idx_bf(d1) ((d1-1)) +#define _bf(d1) __PAR__bf[_idx_bf(d1)] + +// Macros definition for variable: bfh +#define _idx_bfh(d1) ((d1-1)) +#define _bfh(d1) __PAR__bfh[_idx_bfh(d1)] + +// Macros definition for variable: bhd +#define _idx_bhd(d1) ((d1-1)) +#define _bhd(d1) __PAR__bhd[_idx_bhd(d1)] + +// Macros definition for variable: bhf +#define _idx_bhf(d1) ((d1-1)) +#define _bhf(d1) __PAR__bhf[_idx_bhf(d1)] + +// Macros definition for variable: bie +#define _idx_bie(d1) ((d1-1)) +#define _bie(d1) __PAR__bie[_idx_bie(d1)] + +// Macros definition for variable: bmd +#define _idx_bmd(d1) ((d1-1)) +#define _bmd(d1) __PAR__bmd[_idx_bmd(d1)] + +// Macros definition for variable: bmv +#define _idx_bmv(d1) ((d1-1)) +#define _bmv(d1) __PAR__bmv[_idx_bmv(d1)] + +// Macros definition for variable: bpm +#define _idx_bpm(d1) ((d1-1)) +#define _bpm(d1) __PAR__bpm[_idx_bpm(d1)] + +// Macros definition for variable: cf +#define _idx_cf(d1) ((d1-1)) +#define _cf(d1) __PAR__cf[_idx_cf(d1)] + +// Macros definition for variable: cr +#define _cr __PAR__cr + +// Macros definition for variable: day +#define _idx_day(d1) (12+(d1-1)) +#define _day(d1) d[_idx_day(d1)] + +// Macros definition for variable: gav +#define _idx_gav(d1) ((d1-1)) +#define _gav(d1) __PAR__gav[_idx_gav(d1)] + +// Macros definition for variable: ghv +#define _idx_ghv(d1) ((d1-1)) +#define _ghv(d1) __PAR__ghv[_idx_ghv(d1)] + +// Macros definition for variable: gv +#define _idx_gv(d1) ((d1-1)) +#define _gv(d1) __PAR__gv[_idx_gv(d1)] + +// Macros definition for variable: gva +#define _idx_gva(d1) ((d1-1)) +#define _gva(d1) __PAR__gva[_idx_gva(d1)] + +// Macros definition for variable: gvh +#define _idx_gvh(d1) ((d1-1)) +#define _gvh(d1) __PAR__gvh[_idx_gvh(d1)] + +// Macros definition for variable: inside +#define _idx_inside(d1) ((d1-1)) +#define _inside(d1) d[_idx_inside(d1)] + +// Macros definition for variable: inst +#define _idx_inst(d1) (4+(d1-1)) +#define _inst(d1) d[_idx_inst(d1)] + +// Macros definition for variable: r +#define _idx_r(d1) ((d1-1)) +#define _r(d1) __PAR__r[_idx_r(d1)] + +// Macros definition for variable: re +#define _idx_re(d1) ((d1-1)) +#define _re(d1) __PAR__re[_idx_re(d1)] + +// Macros definition for variable: tr +#define _idx_tr(d1) ((d1-1)) +#define _tr(d1) __PAR__tr[_idx_tr(d1)] + +// Macros definition for variable: u +#define _idx_u 11 +#define _u d[_idx_u] + + +// Model Parameters Declaration + +// Macro for parameter: aa +double __PAR__aa[4]; +// Macro for parameter: ae +double __PAR__ae[4]; +// Macro for parameter: af +double __PAR__af[4]; +// Macro for parameter: ai +double __PAR__ai[4]; +// Macro for parameter: am +double __PAR__am[4]; +// Macro for parameter: ap +double __PAR__ap[4]; +// Macro for parameter: ar +double __PAR__ar[4]; +// Macro for parameter: av +double __PAR__av[4]; +// Macro for parameter: av1 +double __PAR__av1[4]; +// Macro for parameter: av2 +double __PAR__av2[4]; +// Macro for parameter: ba +double __PAR__ba[4]; +// Macro for parameter: bei +double __PAR__bei[4]; +// Macro for parameter: bem +double __PAR__bem[4]; +// Macro for parameter: bf +double __PAR__bf[4]; +// Macro for parameter: bfh +double __PAR__bfh[4]; +// Macro for parameter: bhd +double __PAR__bhd[4]; +// Macro for parameter: bhf +double __PAR__bhf[4]; +// Macro for parameter: bie +double __PAR__bie[4]; +// Macro for parameter: bmd +double __PAR__bmd[4]; +// Macro for parameter: bmv +double __PAR__bmv[4]; +// Macro for parameter: bpm +double __PAR__bpm[4]; +// Macro for parameter: cf +double __PAR__cf[4]; +// Macro for parameter: cr +double __PAR__cr; +// Macro for parameter: gav +double __PAR__gav[4]; +// Macro for parameter: ghv +double __PAR__ghv[4]; +// Macro for parameter: gv +double __PAR__gv[4]; +// Macro for parameter: gva +double __PAR__gva[4]; +// Macro for parameter: gvh +double __PAR__gvh[4]; +// Macro for parameter: r +double __PAR__r[4]; +// Macro for parameter: re +double __PAR__re[4]; +// Macro for parameter: tr +double __PAR__tr[4]; + +// Derivative Equations Macros + +// Macros for equation: 1 +#define _apply_usage_eq_1(_d1) \ + i = _d1; +#define _get_eq_1_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_V(_rg_d1,0); +// Macros for equation: 2 +#define _apply_usage_eq_2(_d1) \ + i = _d1; +#define _get_eq_2_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_H(_rg_d1,0); +// Macros for equation: 3 +#define _apply_usage_eq_3(_d1) \ + i = _d1; +#define _get_eq_3_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_I(_rg_d1,0); +// Macros for equation: 4 +#define _apply_usage_eq_4(_d1) \ + i = _d1; +#define _get_eq_4_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_M(_rg_d1,0); +// Macros for equation: 5 +#define _apply_usage_eq_5(_d1) \ + i = _d1; +#define _get_eq_5_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_F(_rg_d1,0); +// Macros for equation: 6 +#define _apply_usage_eq_6(_d1) \ + i = _d1; +#define _get_eq_6_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_R(_rg_d1,0); +// Macros for equation: 7 +#define _apply_usage_eq_7(_d1) \ + i = _d1; +#define _get_eq_7_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_E(_rg_d1,0); +// Macros for equation: 8 +#define _apply_usage_eq_8(_d1) \ + i = _d1; +#define _get_eq_8_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_P(_rg_d1,0); +// Macros for equation: 9 +#define _apply_usage_eq_9(_d1) \ + i = _d1; +#define _get_eq_9_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_A(_rg_d1,0); +// Macros for equation: 10 +#define _apply_usage_eq_10(_d1) \ + i = _d1; +#define _get_eq_10_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_S(_rg_d1,0); +// Macros for equation: 11 + + +// Algebraic Equations Macros + +// Macros for algebraic equation: 1 +#define _apply_usage_alg_eq_1(_d1) \ + i = _d1; +#define _get_alg_eq_1_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_D(_rg_d1,0); +// Macros for algebraic equation: 2 +#define _apply_usage_alg_eq_2(_d1) \ + i = _d1; +#define _get_alg_eq_2_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_Vpar(_rg_d1,0); +// Macros for algebraic equation: 3 + +// Macros for algebraic equation: 4 +#define _apply_usage_alg_eq_4(_d1) \ + i = _d1; +#define _get_alg_eq_4_var_idxs(row, var)\ + _rg_d1 = 1 + (row-1)+ 1;\ + var = _idx_sum_0(_rg_d1,0); + +// Event Macros + +// Macros for event: 1 +#define _apply_usage_event_1(_d1) \ + i = _d1; +#define _get_event_1_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_event_1(_rg_d1); +// Macros for event: 2 +#define _apply_usage_event_2(_d1) \ + i = _d1; +#define _get_event_2_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_event_2(_rg_d1); +// Macros for event: 3 +#define _apply_usage_event_3(_d1) \ + i = _d1; +#define _get_event_3_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_event_3(_rg_d1); +#define _zc(coeff) zc[coeff] + +// Output Equations Macros + +// Macros for output equation: 1 + +// Macros for output equation: 2 + +// Macros for output equation: 3 + +// Macros for output equation: 4 + +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: A +#define _der_A(d1,coeff) dx[coeff+1] +// Derivative definition for variable: E +#define _der_E(d1,coeff) dx[coeff+1] +// Derivative definition for variable: F +#define _der_F(d1,coeff) dx[coeff+1] +// Derivative definition for variable: H +#define _der_H(d1,coeff) dx[coeff+1] +// Derivative definition for variable: I +#define _der_I(d1,coeff) dx[coeff+1] +// Derivative definition for variable: M +#define _der_M(d1,coeff) dx[coeff+1] +// Derivative definition for variable: P +#define _der_P(d1,coeff) dx[coeff+1] +// Derivative definition for variable: R +#define _der_R(d1,coeff) dx[coeff+1] +// Derivative definition for variable: S +#define _der_S(d1,coeff) dx[coeff+1] +// Derivative definition for variable: V +#define _der_V(d1,coeff) dx[coeff+1] +// Derivative definition for variable: Vr +#define _der_Vr(coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.ini b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.ini new file mode 100644 index 00000000..df481637 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=1; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=6.00000e+01; +sol="LIQSS2"; +dqmin=(1.00000e-06); +dqrel=(1.00000e-02); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.mo b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.mo new file mode 100644 index 00000000..6fc4cddc --- /dev/null +++ b/src/mmoc/tests/system/gt_data/VIRplanoS/VIRplanoS.mo @@ -0,0 +1,151 @@ +model VIRplanoS + +//SIN INMUNIDAD (S START=0.1) , 50% BARBIJOS (re, tr ) , VENTILADO medio ) +function SRND + input Real y; + output Real r; + external "C" r=srnd(y) annotation(IncludeDirectory="modelica://VIRplanoS", + Include="#include \"srnd.c\""); + end SRND; + function RND + input Real y; + output Real r; + external "C" r=rnd(y) annotation(IncludeDirectory="modelica://VIRplanoS", + Include="#include \"rnd.c\""); + end RND; +import math; + constant Integer N = 4; //maximum number of people in the room + Real V[N], H[N](each start = 1), I[N], M[N], F[N], R[N], E[N](each start = 1), P[N](each start = 1), A[N](each start = 1), S[N](each start = 0.1), D[N]; //// viral load, healthy cells, infected cells, activated antigen presenting cells, interferon, resistant cells, effector cells, plasma cells, antibodies, antigenic distance, dead cells + parameter Real gv[N](each fixed=false) , gva[N](each fixed=false), gvh[N](each fixed=false) , av[N](each fixed=false), av1[N](each fixed=false), av2[N](each fixed=false), bhd[N](each fixed=false), ar[N](each fixed=false), ghv[N](each fixed=false), bhf[N](each fixed=false) , bie[N](each fixed=false) , ai[N](each fixed=false), bmd[N](each fixed=false) , bmv[N](each fixed=false) , am[N](each fixed=false), bf[N](each fixed=false) , cf[N](each fixed=false), bfh[N](each fixed=false) , af[N](each fixed=false), bem[N](each fixed=false) , bei[N](each fixed=false) , ae[N](each fixed=false) , bpm[N](each fixed=false) , ap[N], ba[N](each fixed=false) , gav[N](each fixed=false) , aa[N](each fixed=false) , r[N](each fixed=false) ; // parameters characterizing disease processe + parameter Real re[N](each fixed=false) , tr[N](each fixed=false), cr = 100; //reception rate of viral load,transmission rate of viral load,decay rate of viral load inside the room + Real Vr, Vtot, Vpar[N]; //total viral load inside the room, viral load of people inside the room, Aux Var + discrete Real inside[N],inst[N]; // state: inside(1) o outside(0) of the room; time of change of state + discrete Real Su,In1,Rec; //Susceptible, Infected , Recovered people + discrete Real u,day[N]; //day=first day of non-contagion after infection + + +initial algorithm + u :=rand(1); + +//parameter definition + for i in 1:N loop + gv[i] := 510; + gva[i] := 619.2; + gvh[i] := 1.02; + av[i] := 1.7; + av1[i] := 100; + av2[i] := 23000; + bhd[i] := 4; + ar[i] :=1; + ghv[i] := 0.34; + bhf[i] := 0.01; + bie[i] := 0.066; + ai[i] := 1.5; + bmd[i]:= 1; + bmv[i] := 0.0037; + am[i] := 1; + bf[i] := 250000; + cf[i] := 2000; + bfh[i] := 17; + af[i] := 8; + bem[i] := 8.3; + bei[i] := 2.72; + ae[i] := 0.4; + bpm[i] := 11.5; + ap[i] := 0.4; + ba[i] := 0.043; + gav[i] := 146.2; + aa[i] := 0.043; + r[i] := 3e-5; + end for; + +// initialization of people's parameters + for i in 1:N/2 loop + re[i]:= rand(0.22) + 0.18; + tr[i]:= re[i]; + end for; + for i in N/2+1:N loop + re[i]:= rand(0.06) + 0.04; + tr[i]:= re[i]; + end for; + V[1] := 10; //one infected + inside[1]:= 1; + + for i in 1:N loop + inst[i] := rand(2); + day[i] :=1000; + end for; + +for i in 1:2 loop //(N*1/100) loop //1% of people start infected +V[i] :=10; +inside[i] :=1; +end for; + +Su := N; + +equation +for i in 1:N loop + der(V[i]) = gv[i] * I[i] - gva[i] * S[i] * A[i] * V[i] - gvh[i] * H[i] * V[i] - av[i] * V[i] - av1[i] * V[i] / (1 + av2[i] * V[i]) + inside[i]*re[i] * Vr; + der(H[i]) = bhd[i] * D[i] * (H[i] + R[i]) + ar[i] * R[i] - ghv[i] * V[i] * H[i] - bhf[i] * F[i] * H[i]; + der(I[i]) = ghv[i] * V[i] * H[i] - bie[i] * E[i] * I[i] - ai[i] * I[i]; + der(M[i]) = (bmd[i] * D[i] + bmv[i] * V[i]) * (1 - M[i]) - am[i] * M[i]; + der(F[i]) = bf[i] * M[i] + cf[i] * I[i] - bfh[i] * H[i] * F[i] - af[i] * F[i]; + der(R[i]) = bhf[i] * F[i] * H[i] - ar[i] * R[i]; + der(E[i]) = bem[i] * M[i] * E[i] - bei[i] * I[i] * E[i] + ae[i] * (1 - E[i]); + der(P[i]) = bpm[i] * M[i] * P[i] + ap[i] * (1 - P[i]); + der(A[i]) = ba[i] * P[i] - gav[i] * S[i] * A[i] * V[i] - aa[i] * A[i]; + der(S[i]) = r[i] * P[i] * (1 - S[i]); + D[i] = 1 - H[i] - R[i] - I[i]; +end for; + der(Vr)=sum(Vpar) *100/N- cr * Vr; + +for i in 1:N loop + Vpar[i]=V[i]*tr[i]*inside[i]; + end for; + + //Vtot= sum(Vpar); + + algorithm +u:=u; + +for i in 1:N loop + when time > inst[i] then + if inside[i]==0 then + inside[i]:= 1- inside[i]; + inst[i]:=inst[i]+rand(0.0833); + else + inside[i]:= 1- inside[i]; + inst[i]:=inst[i]+ rand(0.2075)+0.833; +end if; + end when; +end for; + + for i in 1:N loop + when V[i] > 1 then + Su:=Su-1; + In1:=In1+1; + day[i]:=time+10; + end when; + when time > day[i] then + In1:=In1-1; + Rec:=Rec+1; +end when; +end for; + annotation( + + experiment( + MMO_Description="", + MMO_Solver=LIQSS2, + MMO_PartitionMethod=Metis, + MMO_Output={In1,Rec,Su,Vr}, + MMO_OutputType=CI_Sampled, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + MMO_RandomSeed=1, + StartTime=0.0, + StopTime=60, + Tolerance={1e-2}, + AbsTolerance={1e-6} + )); +end VIRplanoS; diff --git a/src/mmoc/tests/system/gt_data/VIRplanoS/rnd.c b/src/mmoc/tests/system/gt_data/VIRplanoS/rnd.c new file mode 100644 index 00000000..36d3e072 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/VIRplanoS/rnd.c @@ -0,0 +1,10 @@ +#include +#include +#include +double rnd(double y) +{ +// srand(time(0)); + double r; + r= 1.0*y*rand()/RAND_MAX; + return r; +} diff --git a/src/mmoc/tests/system/gt_data/VIRplanoS/srnd.c b/src/mmoc/tests/system/gt_data/VIRplanoS/srnd.c new file mode 100644 index 00000000..591af940 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/VIRplanoS/srnd.c @@ -0,0 +1,9 @@ +#include +#include +#include +double srnd() +{ + srand(time(0)); + double r=0; + return r; +} diff --git a/src/mmoc/tests/system/gt_data/adr/adr.c b/src/mmoc/tests/system/gt_data/adr/adr.c index fde9ac4d..3125724e 100644 --- a/src/mmoc/tests/system/gt_data/adr/adr.c +++ b/src/mmoc/tests/system/gt_data/adr/adr.c @@ -252,14 +252,14 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int i; _L = 10; _a = 1; - _dx = _L/1000; + _dx = _L/(double)1000; _dx2 = pow(_dx,2); _r = 1000; for(i = 500; i<=1000; i+=1) { - _d(i) = 10; + _d(i) = 1.000000e+01; } for(i = 1; i<=499; i+=1) { - _d(i) = 1e-06; + _d(i) = 1.000000e-06; } modelData->nSD[_idx_u(1,0)]++; modelData->nSD[_idx_u(1000,0)]++; @@ -402,7 +402,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; } } - cleanVector(states, 0, 1000); SD_setupJacMatrices(modelData->jac_matrices); simulator->time = QSS_Time(1000,0,0,0,ST_Binary, NULL); double period[1]; diff --git a/src/mmoc/tests/system/gt_data/adr/adr.ini b/src/mmoc/tests/system/gt_data/adr/adr.ini index d7207e00..3f8175bf 100644 --- a/src/mmoc/tests/system/gt_data/adr/adr.ini +++ b/src/mmoc/tests/system/gt_data/adr/adr.ini @@ -4,7 +4,7 @@ derdelta=1.00000e-08; symdiff=1; lps=0; nodesize=10000; -jacobian=1; +jacobian=0; it=0.00000e+00; ft=1.00000e+01; sol="LIQSS_BDF"; diff --git a/src/mmoc/tests/system/gt_data/adr/adr.mo b/src/mmoc/tests/system/gt_data/adr/adr.mo index 064b9b41..71a19210 100644 --- a/src/mmoc/tests/system/gt_data/adr/adr.mo +++ b/src/mmoc/tests/system/gt_data/adr/adr.mo @@ -35,7 +35,7 @@ equation MMO_PartitionMethod=Metis, MMO_Output={u[750]}, MMO_OutputType=CI_Sampled, - Jacobian=Dense, + Jacobian=Sparse, MMO_BDF_Part={u[N/2:N]}, MMO_BDF_PDepth=1, MMO_BDF_Max_Step=0, diff --git a/src/mmoc/tests/system/gt_data/advection/advection.c b/src/mmoc/tests/system/gt_data/advection/advection.c index 87f20efb..e50e4d89 100644 --- a/src/mmoc/tests/system/gt_data/advection/advection.c +++ b/src/mmoc/tests/system/gt_data/advection/advection.c @@ -187,7 +187,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int _rg_d1; int i; int j; - _alpha = 0.5; + _alpha = 5.000000e-01; _mu = 1000; for(i = 1; i<=6666; i+=1) { _init_u(i,0) = 1; @@ -270,7 +270,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } } - cleanVector(states, 0, 20000); SD_setupJacMatrices(modelData->jac_matrices); simulator->time = QSS_Time(20000,0,0,0,ST_Binary, NULL); simulator->output = SD_Output("advection",1,0,20000,NULL,0,0,CI_Step,SD_Memory,MOD_output); diff --git a/src/mmoc/tests/system/gt_data/advection2D/advection2D.c b/src/mmoc/tests/system/gt_data/advection2D/advection2D.c index 6107bbac..17839af4 100644 --- a/src/mmoc/tests/system/gt_data/advection2D/advection2D.c +++ b/src/mmoc/tests/system/gt_data/advection2D/advection2D.c @@ -355,6 +355,7 @@ void CLC_initializeDataStructs(CLC_simulator simulator) } } cleanVector(states, 0, 400); + cleanVector(states, 0, 400); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_u(1,1); @@ -438,7 +439,6 @@ void CLC_initializeDataStructs(CLC_simulator simulator) } } } - cleanVector(states, 0, 400); SD_setupJacMatrices(modelData->jac_matrices); simulator->output = SD_Output("advection2D",2,0,400,NULL,0,0,CI_Step,SD_Memory,MOD_output); SD_output modelOutput = simulator->output; diff --git a/src/mmoc/tests/system/gt_data/advection2D_LI/advection2D_LI.c b/src/mmoc/tests/system/gt_data/advection2D_LI/advection2D_LI.c index 1668cacf..f2c1ba7f 100644 --- a/src/mmoc/tests/system/gt_data/advection2D_LI/advection2D_LI.c +++ b/src/mmoc/tests/system/gt_data/advection2D_LI/advection2D_LI.c @@ -586,7 +586,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } } - cleanVector(states, 0, 400); SD_setupJacMatrices(modelData->jac_matrices); simulator->time = QSS_Time(400,0,0,0,ST_Binary, NULL); simulator->output = SD_Output("advection2D_LI",2,0,400,NULL,0,0,CI_Step,SD_Memory,MOD_output); diff --git a/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.c b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.c new file mode 100644 index 00000000..1cc1e8cb --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.c @@ -0,0 +1,400 @@ +#include +#include +#include +#include + +#include "advectionFlux.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = FALSE; + settings->method = 4; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + int _d1; + int j; + switch(idx) { + case _eval_u(1,0): { + _F(1,0) = _v*_inVal; + _F(1,1) = 0; + _F(2,0) = _v*_u(1,0); + _F(2,1) = 0; + _der_u(1,0) = -(_F(2,0)-_F(1,0))*100/_L; + _der_u(1,1) = (0)/2; + + return; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_alg_eq_2(_d1+1); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + _F(j,1) = 0; + } + _apply_usage_alg_eq_2(_d1); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + _F(j,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 100)) { + _der_u(j,0) = -(_F(j+1,0)-_F(j,0))*100/_L; + _der_u(j,1) = (0)/2; + + } + return; + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + switch(idx) { + case _eval_out_exp_1: { + _out = _u(100,0); + return; + } + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + int _d1; + int _rg_d1; + int j; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 100; row++) { + c_row = _c_index(row); + _get_alg_eq_2_var_idxs(row, eq_var); + _get_F_idxs(eq_var); + if((1 <= _d1-1 && _d1-1 <= 100)) { + x_ind = _idx_u(_d1-1,0); + col = pos(dvdx->dg_dx[1]->index[c_row], dvdx->dg_dx[1]->size[c_row], x_ind); + _apply_usage_alg_eq_2(_d1); + aux = 0; + dvdx->dg_dx[1]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + aux = 0; + aux = 0; + x_ind = _idx_u(1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + c_row_g = _idx_F(1,0) - 1; + col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); + dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; + } + for(row = 1; row <= 99; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_idxs(eq_var); + _apply_usage_eq_2(_d1); + aux = 0; + if((2 <= _d1 && _d1 <= 100) && (3 <= _d1 + 1 && _d1 + 1 <= 101)) { + x_ind = _idx_u(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_F(_rg_d1+1,0) - 1; + col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; + } + _apply_usage_eq_2(_d1); + aux = 0; + if((1 <= _d1-1 && _d1-1 <= 99) && (2 <= _d1 && _d1 <= 100)) { + x_ind = _idx_u(_d1-1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + c_row_g = _idx_F(_rg_d1,0) - 1; + col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); + dvdx->df_dx[1]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; + } + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 99; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + int _d1; + int j; + switch(idx) { + case _eval_u(1,0): { + _F(1,0) = _v*_inVal; + _F(1,1) = 0; + _F(2,0) = _v*_u(1,0); + _F(2,1) = 0; + _eval_dep_u(1,1) = -(_F(2,0)-_F(1,0))*100/_L; + _eval_dep_u(1,2) = (0)/2; + break; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_alg_eq_2(_d1+1); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + _F(j,1) = 0; + } + _apply_usage_alg_eq_2(_d1); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + _F(j,1) = 0; + } + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 100)) { + _eval_dep_u(j,1) = -(_F(j+1,0)-_F(j,0))*100/_L; + _eval_dep_u(j,2) = (0)/2; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_alg_eq_2(_d1+2); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + _F(j,1) = 0; + } + _apply_usage_eq_2(_d1+1); + if ((j >= 2 && j <= 100)) { + _eval_dep_u(j,1) = -(_F(j+1,0)-_F(j,0))*100/_L; + _eval_dep_u(j,2) = (0)/2; + } + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + int _d1; + int j; + switch(idx) { + case _eval_u(1,0): { + _F(1,0) = _v*_inVal; + + _F(2,0) = _v*_u(1,0); + + _eval_dep_u(1,1) = -(_F(2,0)-_F(1,0))*100/_L; + + + continue; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_alg_eq_2(_d1+1); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + + } + _apply_usage_alg_eq_2(_d1); + if ((j >= 2 && j <= 101)) { + _F(j,0) = _v*_u(j-1,0); + + } + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 100)) { + _eval_dep_u(j,1) = -(_F(j+1,0)-_F(j,0))*100/_L; + + + } + continue; + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(100,0,0,0,101,2,2,"advectionFlux"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(101*sizeof(int)); + int* states = (int*) malloc(100*sizeof(int)); + int* outputs = (int*) malloc(1*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + int _d1; + int _rg_d1; + int i; + int j; + _L = 1.000000e+00; + _beta = 1.000000e+02; + _diff = 0.000000e+00; + _gam = 0.000000e+00; + _inVal = 0; + _outVal = 1; + _v = 1.000000e+00; + _x0 = 5.000000e-01; + for(i = 1; i<=50; i+=1) { + _x(i) = 1.000000e+00*i/(double)100; + _init_u(i,0) = 1; + } + modelData->nSD[_idx_u(1,0)]++; + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->nSD[_idx_u(_d1,0)]++; + } + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->nSD[_idx_u(_d1-1,0)]++; + } + modelData->nDS[_idx_u(1,0)]++; + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->nDS[_idx_u(_d1,0)]++; + } + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->nDS[_idx_u(_d1,0)]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + for(row = 1; row <= 100; row++) { + c_row = _c_index(row); + _get_alg_eq_2_var_idxs(row, eq_var); + _get_F_idxs(eq_var); + if((1 <= _d1-1 && _d1-1 <= 100)) { + modelData->jac_matrices->dg_dx[1]->size[c_row]++; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 99; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_idxs(eq_var); + if((2 <= _d1 && _d1 <= 100) && (3 <= _d1 + 1 && _d1 + 1 <= 101)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1-1 && _d1-1 <= 99) && (2 <= _d1 && _d1 <= 100)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + } + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 100); + modelData->SD[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(1,0); + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->SD[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1,0); + } + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->SD[_idx_u(_d1-1,0)][states[_idx_u(_d1-1,0)]++] = _idx_u(_d1,0); + } + cleanVector(states, 0, 100); + modelData->DS[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(1,0); + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->DS[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1,0); + } + for(_d1 = 2; _d1<=100; _d1+=1) { + modelData->DS[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1-1,0); + } + cleanVector(algebraics, 0, 101); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + } + cleanVector(algebraics, 0, 101); + for(row = 1; row <= 100; row++) { + c_row = _c_index(row); + _get_alg_eq_2_var_idxs(row, eq_var); + _get_F_idxs(eq_var); + if((1 <= _d1-1 && _d1-1 <= 100)) { + x_ind = _idx_u(_d1-1,0); + if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->dg_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 100); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u(1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 100); + for(row = 1; row <= 99; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_idxs(eq_var); + if((2 <= _d1 && _d1 <= 100) && (3 <= _d1 + 1 && _d1 + 1 <= 101)) { + x_ind = _idx_u(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1-1 && _d1-1 <= 99) && (2 <= _d1 && _d1 <= 100)) { + x_ind = _idx_u(_d1-1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + } + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(100,0,0,0,ST_Binary, NULL); + simulator->output = SD_Output("advectionFlux",1,0,100,NULL,0,0,CI_Step,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + modelOutput->nOS[_idx_out_exp_1]++; + modelOutput->nSO[_idx_u(100,0)]++; + SD_allocOutputMatrix(modelOutput, 100, 0); + sprintf(modelOutput->variable[_idx_out_exp_1].name, "u[100]"); + cleanVector(outputs, 0, 1); + modelOutput->OS[_idx_out_exp_1][outputs[_idx_out_exp_1]++] = _idx_u(100,0); + cleanVector(states, 0, 100); + modelOutput->SO[_idx_u(100,0)][states[_idx_u(100,0)]++] = _idx_out_exp_1; + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); + free(states); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.h b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.h new file mode 100644 index 00000000..bd84dde8 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.h @@ -0,0 +1,129 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; \ + double* a = m->alg; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 + +// Model Variables Macros + +// Macros definition for variable: F +#define _idx_F(d1,coeff) ((d1-1)) +#define _state_idx_F(d1,coeff) ((d1-1))*3 + coeff +#define _F(d1,coeff) a[_state_idx_F(d1,coeff)] +#define _is_var_F(idx) idx >= 0 && idx < 101 +#define _get_F_idxs(idx)\ + _d1 = (idx)+ 1; + +// Macros definition for variable: L +#define _L __PAR__L + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1 0 +#define _eval_out_exp_1 0 + +// Macros definition for variable: beta +#define _beta __PAR__beta + +// Macros definition for variable: diff +#define _diff __PAR__diff + +// Macros definition for variable: gam +#define _gam __PAR__gam + +// Macros definition for variable: inVal +#define _inVal __PAR__inVal + +// Macros definition for variable: outVal +#define _outVal __PAR__outVal + +// Macros definition for variable: u +#define _idx_u(d1,coeff) ((d1-1)) +#define _state_idx_u(d1,coeff) ((d1-1))*3 + coeff +#define _u(d1,coeff) x[_state_idx_u(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_u(d1,coeff) x[_state_idx_u(d1,coeff)] +#define _q_u(d1,coeff) q[_state_idx_u(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_u(d1,coeff) ((d1-1)) +#define _is_var_u(idx) idx >= 0 && idx < 100 +#define _get_u_idxs(idx)\ + _d1 = (idx)+ 1; +#define _eval_dep_u(d1,coeff) dx[_state_idx_u(d1,coeff)] + +// Macros definition for variable: v +#define _v __PAR__v + +// Macros definition for variable: x +#define _idx_x(d1) ((d1-1)) +#define _x(d1) __PAR__x[_idx_x(d1)] + +// Macros definition for variable: x0 +#define _x0 __PAR__x0 + + +// Model Parameters Declaration + +// Macro for parameter: L +double __PAR__L; +// Macro for parameter: beta +double __PAR__beta; +// Macro for parameter: diff +double __PAR__diff; +// Macro for parameter: gam +double __PAR__gam; +// Macro for parameter: inVal +double __PAR__inVal; +// Macro for parameter: outVal +double __PAR__outVal; +// Macro for parameter: v +double __PAR__v; +// Macro for parameter: x +double __PAR__x[100]; +// Macro for parameter: x0 +double __PAR__x0; + +// Derivative Equations Macros + +// Macros for equation: 1 + +// Macros for equation: 2 +#define _apply_usage_eq_2(_d1) \ + j = _d1; +#define _get_eq_2_var_idxs(row, var)\ + _rg_d1 = 1 + (row-1)+ 1;\ + var = _idx_u(_rg_d1,0); + +// Algebraic Equations Macros + +// Macros for algebraic equation: 1 + +// Macros for algebraic equation: 2 +#define _apply_usage_alg_eq_2(_d1) \ + j = _d1; +#define _get_alg_eq_2_var_idxs(row, var)\ + _rg_d1 = 1 + (row-1)+ 1;\ + var = _idx_F(_rg_d1,0); + +// Output Equations Macros + +// Macros for output equation: 1 + +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: u +#define _der_u(d1,coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.ini b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.ini new file mode 100644 index 00000000..333f4a05 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=1; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=1.00000e+00; +sol="LIQSS2"; +dqmin=(1.00000e-05); +dqrel=(1.00000e-05); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/test-suite/advectionFlux/advectionFlux.mo b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.mo similarity index 95% rename from src/test-suite/advectionFlux/advectionFlux.mo rename to src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.mo index 58fdfb46..2817ee23 100644 --- a/src/test-suite/advectionFlux/advectionFlux.mo +++ b/src/mmoc/tests/system/gt_data/advectionFlux/advectionFlux.mo @@ -27,6 +27,8 @@ end for; MMO_PartitionMethod=Metis, MMO_Output={u[N]}, Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, StartTime= 0.0, StopTime= 1, Tolerance={1e-5}, diff --git a/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.c b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.c new file mode 100644 index 00000000..73b96f47 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.c @@ -0,0 +1,293 @@ +#include +#include +#include +#include + +#include "advection_quoted.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = FALSE; + settings->method = 4; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + int _d1; + int j; + switch(idx) { + case _eval_u_a(1,0): { + _der_u_a(1,0) = (-_u_a(1,0)+1)*20000-_mu*_u_a(1,0)*(_u_a(1,0)-_alpha)*(_u_a(1,0)-1); + _der_u_a(1,1) = (0)/2; + + return; + } + } + if (_is_var_u_a(idx)) { + _get_u_a_idxs(idx); + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 20000)) { + _der_u_a(j,0) = (-_u_a(j,0)+_u_a(j-1,0))*20000-_mu*_u_a(j,0)*(_u_a(j,0)-_alpha)*(_u_a(j,0)-1); + _der_u_a(j,1) = (0)/2; + + } + return; + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + switch(idx) { + case _eval_out_exp_1: { + _out = _u_a(20000,0); + return; + } + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + int _d1; + int _rg_d1; + int j; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u_a(1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 19999; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_a_idxs(eq_var); + if((2 <= _d1 && _d1 <= 20000)) { + x_ind = _idx_u_a(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((1 <= _d1-1 && _d1-1 <= 19999)) { + x_ind = _idx_u_a(_d1-1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 19999; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + int _d1; + int j; + switch(idx) { + case _eval_u_a(1,0): { + _eval_dep_u_a(1,1) = (-_u_a(1,0)+1)*20000-_mu*_u_a(1,0)*(_u_a(1,0)-_alpha)*(_u_a(1,0)-1); + _eval_dep_u_a(1,2) = (0)/2; + break; + } + } + if (_is_var_u_a(idx)) { + _get_u_a_idxs(idx); + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 20000)) { + _eval_dep_u_a(j,1) = (-_u_a(j,0)+_u_a(j-1,0))*20000-_mu*_u_a(j,0)*(_u_a(j,0)-_alpha)*(_u_a(j,0)-1); + _eval_dep_u_a(j,2) = (0)/2; + } + } + if (_is_var_u_a(idx)) { + _get_u_a_idxs(idx); + _apply_usage_eq_2(_d1+1); + if ((j >= 2 && j <= 20000)) { + _eval_dep_u_a(j,1) = (-_u_a(j,0)+_u_a(j-1,0))*20000-_mu*_u_a(j,0)*(_u_a(j,0)-_alpha)*(_u_a(j,0)-1); + _eval_dep_u_a(j,2) = (0)/2; + } + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + int _d1; + int j; + switch(idx) { + case _eval_u_a(1,0): { + _eval_dep_u_a(1,1) = (-_u_a(1,0)+1)*20000-_mu*_u_a(1,0)*(_u_a(1,0)-_alpha)*(_u_a(1,0)-1); + + + continue; + } + } + if (_is_var_u_a(idx)) { + _get_u_a_idxs(idx); + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 20000)) { + _eval_dep_u_a(j,1) = (-_u_a(j,0)+_u_a(j-1,0))*20000-_mu*_u_a(j,0)*(_u_a(j,0)-_alpha)*(_u_a(j,0)-1); + + + } + continue; + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(20000,0,0,0,0,2,0,"advection_quoted"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* states = (int*) malloc(20000*sizeof(int)); + int* outputs = (int*) malloc(1*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + int _d1; + int _rg_d1; + int i; + int j; + _alpha = 5.000000e-01; + _mu = 1000; + for(i = 1; i<=6666; i+=1) { + _init_u_a(i,0) = 1; + } + modelData->nSD[_idx_u_a(1,0)]++; + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->nSD[_idx_u_a(_d1,0)]++; + } + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->nSD[_idx_u_a(_d1-1,0)]++; + } + modelData->nDS[_idx_u_a(1,0)]++; + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->nDS[_idx_u_a(_d1,0)]++; + } + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->nDS[_idx_u_a(_d1,0)]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 19999; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_a_idxs(eq_var); + if((2 <= _d1 && _d1 <= 20000)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1-1 && _d1-1 <= 19999)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + } + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 20000); + modelData->SD[_idx_u_a(1,0)][states[_idx_u_a(1,0)]++] = _idx_u_a(1,0); + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->SD[_idx_u_a(_d1,0)][states[_idx_u_a(_d1,0)]++] = _idx_u_a(_d1,0); + } + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->SD[_idx_u_a(_d1-1,0)][states[_idx_u_a(_d1-1,0)]++] = _idx_u_a(_d1,0); + } + cleanVector(states, 0, 20000); + modelData->DS[_idx_u_a(1,0)][states[_idx_u_a(1,0)]++] = _idx_u_a(1,0); + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->DS[_idx_u_a(_d1,0)][states[_idx_u_a(_d1,0)]++] = _idx_u_a(_d1,0); + } + for(_d1 = 2; _d1<=20000; _d1+=1) { + modelData->DS[_idx_u_a(_d1,0)][states[_idx_u_a(_d1,0)]++] = _idx_u_a(_d1-1,0); + } + cleanVector(states, 0, 20000); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u_a(1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 20000); + for(row = 1; row <= 19999; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_a_idxs(eq_var); + if((2 <= _d1 && _d1 <= 20000)) { + x_ind = _idx_u_a(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1-1 && _d1-1 <= 19999)) { + x_ind = _idx_u_a(_d1-1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + } + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(20000,0,0,0,ST_Binary, NULL); + simulator->output = SD_Output("advection_quoted",1,0,20000,NULL,0,0,CI_Step,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + modelOutput->nOS[_idx_out_exp_1]++; + modelOutput->nSO[_idx_u_a(20000,0)]++; + SD_allocOutputMatrix(modelOutput, 20000, 0); + sprintf(modelOutput->variable[_idx_out_exp_1].name, "u_a[20000]"); + cleanVector(outputs, 0, 1); + modelOutput->OS[_idx_out_exp_1][outputs[_idx_out_exp_1]++] = _idx_u_a(20000,0); + cleanVector(states, 0, 20000); + modelOutput->SO[_idx_u_a(20000,0)][states[_idx_u_a(20000,0)]++] = _idx_out_exp_1; + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(states); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.h b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.h new file mode 100644 index 00000000..5159065e --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.h @@ -0,0 +1,73 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 + +// Model Variables Macros + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1 0 +#define _eval_out_exp_1 0 + +// Macros definition for variable: alpha +#define _alpha __PAR__alpha + +// Macros definition for variable: mu +#define _mu __PAR__mu + +// Macros definition for variable: u_a +#define _idx_u_a(d1,coeff) ((d1-1)) +#define _state_idx_u_a(d1,coeff) ((d1-1))*3 + coeff +#define _u_a(d1,coeff) x[_state_idx_u_a(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_u_a(d1,coeff) x[_state_idx_u_a(d1,coeff)] +#define _q_u_a(d1,coeff) q[_state_idx_u_a(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_u_a(d1,coeff) ((d1-1)) +#define _is_var_u_a(idx) idx >= 0 && idx < 20000 +#define _get_u_a_idxs(idx)\ + _d1 = (idx)+ 1; +#define _eval_dep_u_a(d1,coeff) dx[_state_idx_u_a(d1,coeff)] + + +// Model Parameters Declaration + +// Macro for parameter: alpha +double __PAR__alpha; +// Macro for parameter: mu +double __PAR__mu; + +// Derivative Equations Macros + +// Macros for equation: 1 + +// Macros for equation: 2 +#define _apply_usage_eq_2(_d1) \ + j = _d1; +#define _get_eq_2_var_idxs(row, var)\ + _rg_d1 = 1 + (row-1)+ 1;\ + var = _idx_u_a(_rg_d1,0); + +// Output Equations Macros + +// Macros for output equation: 1 + +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: u_a +#define _der_u_a(d1,coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.ini b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.ini new file mode 100644 index 00000000..36afc887 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=1; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=1.00000e+00; +sol="LIQSS2"; +dqmin=(1.00000e-03); +dqrel=(1.00000e-03); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.mo b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.mo new file mode 100644 index 00000000..fcf9af27 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/advection_quoted/advection_quoted.mo @@ -0,0 +1,32 @@ +model advection_quoted + parameter Real alpha=0.5,mu=1000; + constant Integer N = 20000; + Real 'u.a'[N]; + initial algorithm + for i in 1:N/3 loop + 'u.a'[i]:=1; + end for; + + equation + der('u.a'[1])=(-'u.a'[1]+1)*N-mu*'u.a'[1]*('u.a'[1]-alpha)*('u.a'[1]-1); + for j in 2:N loop + der('u.a'[j])=(-'u.a'[j]+'u.a'[j-1])*N-mu*'u.a'[j]*('u.a'[j]-alpha)*('u.a'[j]-1); + end for; + annotation( + + experiment( + MMO_Description="", + MMO_Solver=LIQSS2, + MMO_PartitionMethod=Scotch, + MMO_LPS=2, + MMO_DT_Min=2, + MMO_Output={'u.a'[N]}, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + StartTime=0.0, + StopTime=1.0, + Tolerance={1e-3}, + AbsTolerance={1e-3} + )); +end advection_quoted; diff --git a/src/mmoc/tests/system/gt_data/airconds/airconds.c b/src/mmoc/tests/system/gt_data/airconds/airconds.c index 99573957..bd256953 100644 --- a/src/mmoc/tests/system/gt_data/airconds/airconds.c +++ b/src/mmoc/tests/system/gt_data/airconds/airconds.c @@ -43,7 +43,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_1_idxs(idx); _apply_usage_event_1(_d1); if ((i >= 1 && i <= 20000)) { - _zc(0) = _th(i,0)-_tref(i)+_on(i)-0.5-(0); + _zc(0) = _th(i,0)-_tref(i)+_on(i)-5.000000e-01-(0); _zc(1) = (0)/1; _zc(2) = (0)/2; @@ -102,7 +102,7 @@ void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double _get_event_2_idxs(idx); _apply_usage_event_2(_d1); if ((i >= 1 && i <= 20000)) { - _tref(i) = 20.5; + _tref(i) = 2.050000e+01; } return; } @@ -240,7 +240,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(i = 1; i<=20000; i+=1) { _init_th(i,0) = 4+18; _CAP(i) = 100+550; - _RES(i) = 0.4+1.8; + _RES(i) = 4.000000e-01+1.800000e+00; _POT(i) = 2+13; _pmax = _pmax+_POT(i); _nextSample(i) = 1; @@ -248,7 +248,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) _tref(i) = 20; } for(i = 1; i<=20000; i+=1) { - if(_init_th(i,0)-_tref(i)-0.5>0) { + if(_init_th(i,0)-_tref(i)-5.000000e-01>0) { _on(i) = 1; _ptotal = _ptotal+_POT(i); } else if(_init_th(i,0)-_tref(i)<0) { @@ -335,7 +335,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 20000); - cleanVector(states, 0, 20000); for(_d1 = 1; _d1<=20000; _d1+=1) { modelData->SZ[_idx_th(_d1,0)][states[_idx_th(_d1,0)]++] = _idx_event_1(_d1); } diff --git a/src/mmoc/tests/system/gt_data/aircont/aircont.c b/src/mmoc/tests/system/gt_data/aircont/aircont.c index 20c8615d..18bd3093 100644 --- a/src/mmoc/tests/system/gt_data/aircont/aircont.c +++ b/src/mmoc/tests/system/gt_data/aircont/aircont.c @@ -56,7 +56,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_1_idxs(idx); _apply_usage_event_1(_d1); if ((i >= 1 && i <= 200)) { - _zc = _th(i)-_tref-_dtref+_on(i)-0.5-(0); + _zc = _th(i)-_tref-_dtref+_on(i)-5.000000e-01-(0); } @@ -70,11 +70,11 @@ void MOD_handlerPos(int idx, double *x, double *d, double *a, double t) int i; switch(idx) { case _eval_event_2: { - _pref = 0.4; + _pref = 4.000000e-01; return; } case _eval_event_3: { - _pref = 0.5; + _pref = 5.000000e-01; return; } case _eval_event_4: { @@ -182,17 +182,17 @@ void CLC_initializeDataStructs(CLC_simulator simulator) _nextSample = 1; _noise = 2-1; _pmax = 0; - _pref = 0.5; + _pref = 5.000000e-01; _tref = 20; for(i = 1; i<=200; i+=1) { _init_th(i) = 4+18; _CAP(i) = 100+550; - _RES(i) = 0.4+1.8; - _POT(i) = 0.2+13; + _RES(i) = 4.000000e-01+1.800000e+00; + _POT(i) = 2.000000e-01+13; _pmax = _pmax+_POT(i); } for(i = 1; i<=200; i+=1) { - if(_init_th(i)-_tref-0.5>0) { + if(_init_th(i)-_tref-5.000000e-01>0) { _on(i) = 1; _ptotal = _ptotal+_POT(i); } @@ -234,6 +234,7 @@ void CLC_initializeDataStructs(CLC_simulator simulator) modelData->event[_idx_event_4].direction = 1; modelData->event[_idx_event_4].relation = 2; cleanVector(states, 0, 201); + cleanVector(states, 0, 201); for(row = 1; row <= 200; row++) { c_row = _c_index(row); _get_eq_1_var_idxs(row, eq_var); @@ -251,7 +252,6 @@ void CLC_initializeDataStructs(CLC_simulator simulator) for(row = 1; row <= 1; row++) { c_row = _c_index(row); } - cleanVector(states, 0, 201); SD_setupJacMatrices(modelData->jac_matrices); simulator->output = SD_Output("aircont",1,206,201,NULL,0,0,CI_Step,SD_Memory,MOD_output); SD_output modelOutput = simulator->output; diff --git a/src/mmoc/tests/system/gt_data/bball_downstairs/bball_downstairs.c b/src/mmoc/tests/system/gt_data/bball_downstairs/bball_downstairs.c index d820fa8f..0a6186a3 100644 --- a/src/mmoc/tests/system/gt_data/bball_downstairs/bball_downstairs.c +++ b/src/mmoc/tests/system/gt_data/bball_downstairs/bball_downstairs.c @@ -29,7 +29,7 @@ void MOD_definition(int idx, double *x, double *d, double *a, double t, double * return; } case _eval_vy(0): { - _der_vy(0) = -9.8-0.1*_vy(0)-_contact*((_y(0)-_stair)*1e+06+_vy(0)*30); + _der_vy(0) = -9.800000e+00-1.000000e-01*_vy(0)-_contact*((_y(0)-_stair)*1.000000e+06+_vy(0)*30); _der_vy(1) = (0)/2; _der_vy(2) = (0)/6; @@ -43,7 +43,7 @@ void MOD_definition(int idx, double *x, double *d, double *a, double t, double * return; } case _eval_vx(0): { - _der_vx(0) = -0.1*_vx(0); + _der_vx(0) = -1.000000e-01*_vx(0); _der_vx(1) = (0)/2; _der_vx(2) = (0)/6; @@ -182,7 +182,7 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double _eval_dep_x(1) = _vx(0); _eval_dep_x(2) = (0)/2; _eval_dep_x(3) = (0)/6; - _eval_dep_vx(1) = -0.1*_vx(0); + _eval_dep_vx(1) = -1.000000e-01*_vx(0); _eval_dep_vx(2) = (0)/2; _eval_dep_vx(3) = (0)/6; break; @@ -191,13 +191,13 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double _eval_dep_y(1) = _vy(0); _eval_dep_y(2) = (0)/2; _eval_dep_y(3) = (0)/6; - _eval_dep_vy(1) = -9.8-0.1*_vy(0)-_contact*((_y(0)-_stair)*1e+06+_vy(0)*30); + _eval_dep_vy(1) = -9.800000e+00-1.000000e-01*_vy(0)-_contact*((_y(0)-_stair)*1.000000e+06+_vy(0)*30); _eval_dep_vy(2) = (0)/2; _eval_dep_vy(3) = (0)/6; break; } case _eval_y(0): { - _eval_dep_vy(1) = -9.8-0.1*_vy(0)-_contact*((_y(0)-_stair)*1e+06+_vy(0)*30); + _eval_dep_vy(1) = -9.800000e+00-1.000000e-01*_vy(0)-_contact*((_y(0)-_stair)*1.000000e+06+_vy(0)*30); _eval_dep_vy(2) = (0)/2; _eval_dep_vy(3) = (0)/6; break; @@ -219,7 +219,7 @@ void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, i continue; } case _eval_vy(0): { - _eval_dep_vy(1) = -9.8-0.1*_vy(0)-_contact*((_y(0)-_stair)*1e+06+_vy(0)*30); + _eval_dep_vy(1) = -9.800000e+00-1.000000e-01*_vy(0)-_contact*((_y(0)-_stair)*1.000000e+06+_vy(0)*30); continue; @@ -231,7 +231,7 @@ void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, i continue; } case _eval_vx(0): { - _eval_dep_vx(1) = -0.1*_vx(0); + _eval_dep_vx(1) = -1.000000e-01*_vx(0); continue; @@ -252,9 +252,9 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int row, eq_var, c_row; int x_ind; _stair = 10; - _init_vx(0) = 0.5; - _init_x(0) = 0.575; - _init_y(0) = 10.5; + _init_vx(0) = 5.000000e-01; + _init_x(0) = 5.750000e-01; + _init_y(0) = 1.050000e+01; modelData->nSD[_idx_vx(0)]++; modelData->nSD[_idx_vx(0)]++; modelData->nSD[_idx_vy(0)]++; @@ -352,7 +352,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 4); - cleanVector(states, 0, 4); modelData->SZ[_idx_x(0)][states[_idx_x(0)]++] = _idx_event_2; modelData->SZ[_idx_y(0)][states[_idx_y(0)]++] = _idx_event_1; cleanVector(events, 0, 2); diff --git a/src/mmoc/tests/system/gt_data/boost/boost.c b/src/mmoc/tests/system/gt_data/boost/boost.c index 07f1c25c..7e8a305b 100644 --- a/src/mmoc/tests/system/gt_data/boost/boost.c +++ b/src/mmoc/tests/system/gt_data/boost/boost.c @@ -60,7 +60,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _iD(1) = 0; _s(0) = _diodeon*_iD(0)+(1-_diodeon)*_iD(0)*_Rd; _s(1) = 0; - _zc(0) = _s(0)-(0.6); + _zc(0) = _s(0)-(6.000000e-01); _zc(1) = (0)/1; return; @@ -250,21 +250,22 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(2,5,4,0,2,2,2,"boost"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(2*sizeof(int)); int* states = (int*) malloc(2*sizeof(int)); int* discretes = (int*) malloc(5*sizeof(int)); int* events = (int*) malloc(4*sizeof(int)); int* outputs = (int*) malloc(2*sizeof(int)); int row, eq_var, c_row; int x_ind; - _C = 0.0001; - _DC = 0.5; - _L = 0.0001; + _C = 1.000000e-04; + _DC = 5.000000e-01; + _L = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; - _Rd = 100000; - _Rs = 1e-05; - _T = 0.0001; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; + _Rd = 1.000000e+05; + _Rs = 1.000000e-05; + _T = 1.000000e-04; _U = 24; _nextT = _T; modelData->nSD[_idx_iL(0)]++; @@ -337,20 +338,20 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_iL(0); modelData->DS[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_uC(0); modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_uC(0); - cleanVector(states, 0, 2); + cleanVector(algebraics, 0, 2); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_uC(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 2); @@ -398,7 +399,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 2); - cleanVector(states, 0, 2); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_3; modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_4; modelData->SZ[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_event_3; @@ -463,6 +463,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_out_exp_2; modelOutput->SO[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_out_exp_1; simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/buck/buck.c b/src/mmoc/tests/system/gt_data/buck/buck.c index 810dcd1d..db67fae3 100644 --- a/src/mmoc/tests/system/gt_data/buck/buck.c +++ b/src/mmoc/tests/system/gt_data/buck/buck.c @@ -220,21 +220,22 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(2,5,3,0,2,2,2,"buck"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(2*sizeof(int)); int* states = (int*) malloc(2*sizeof(int)); int* discretes = (int*) malloc(5*sizeof(int)); int* events = (int*) malloc(3*sizeof(int)); int* outputs = (int*) malloc(2*sizeof(int)); int row, eq_var, c_row; int x_ind; - _C = 0.0001; - _DC = 0.5; - _L = 0.0001; + _C = 1.000000e-04; + _DC = 5.000000e-01; + _L = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; - _Rd = 100000; - _Rs = 1e-05; - _T = 0.0001; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; + _Rd = 1.000000e+05; + _Rs = 1.000000e-05; + _T = 1.000000e-04; _U = 24; _nextT = _T; modelData->nSD[_idx_iL(0)]++; @@ -286,14 +287,14 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->DS[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_iL(0); modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_uC(0); modelData->DS[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_uC(0); - cleanVector(states, 0, 2); + cleanVector(algebraics, 0, 2); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 2); @@ -329,7 +330,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 2); - cleanVector(states, 0, 2); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_3; cleanVector(events, 0, 3); modelData->ZS[_idx_event_3][events[_idx_event_3]++] = _idx_iL(0); @@ -374,6 +374,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_out_exp_2; modelOutput->SO[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_out_exp_1; simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/buck_circuit/buck_circuit.c b/src/mmoc/tests/system/gt_data/buck_circuit/buck_circuit.c index 9b8ad9f2..ac49560d 100644 --- a/src/mmoc/tests/system/gt_data/buck_circuit/buck_circuit.c +++ b/src/mmoc/tests/system/gt_data/buck_circuit/buck_circuit.c @@ -201,19 +201,19 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int* outputs = (int*) malloc(2*sizeof(int)); int row, eq_var, c_row; int x_ind; - _C = 0.0001; - _DC = 0.5; - _L = 0.0001; + _C = 1.000000e-04; + _DC = 5.000000e-01; + _L = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; - _T = 0.0001; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; + _T = 1.000000e-04; _U = 24; _nextT = _T; _lastT = 0; _init_uC(0) = 0; - _Rs = 100000; - _Rd = 100000; + _Rs = 1.000000e+05; + _Rd = 1.000000e+05; _init_iL(0) = 0; modelData->nSD[_idx_iL(0)]++; modelData->nSD[_idx_iL(0)]++; @@ -291,7 +291,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 2); - cleanVector(states, 0, 2); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_3; cleanVector(events, 0, 3); modelData->ZS[_idx_event_3][events[_idx_event_3]++] = _idx_iL(0); diff --git a/src/mmoc/tests/system/gt_data/buck_term/buck_term.c b/src/mmoc/tests/system/gt_data/buck_term/buck_term.c index 55f43a22..d9a2b5a8 100644 --- a/src/mmoc/tests/system/gt_data/buck_term/buck_term.c +++ b/src/mmoc/tests/system/gt_data/buck_term/buck_term.c @@ -40,7 +40,7 @@ void MOD_definition(int idx, double *x, double *d, double *a, double t, double * case _eval_u(1,0): { _pS(0) = (_on+_off); _pS(1) = 0; - _der_u(1,0) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(_l*_l/100/100); + _der_u(1,0) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(double)(_l*_l/100/100); _der_u(1,1) = (0)/2; return; @@ -74,7 +74,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double return; } case _eval_event_2: { - _zc(0) = _time-_lastT-0.013*_Ts-(0); + _zc(0) = _time-_lastT-1.300000e-02*_Ts-(0); _zc(1) = (0)/1; return; @@ -86,7 +86,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double return; } case _eval_event_4: { - _zc(0) = _time-_lastT-_DC*_Ts-0.055*_Ts-(0); + _zc(0) = _time-_lastT-_DC*_Ts-5.500000e-02*_Ts-(0); _zc(1) = (0)/1; return; @@ -111,7 +111,7 @@ void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double _lastT = _nextT; _nextT = _nextT+_Ts; _Rs = _ROn; - _on = 100; + _on = 1.000000e+02; return; } case _eval_event_2: { @@ -120,7 +120,7 @@ void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double } case _eval_event_3: { _Rs = _ROff; - _off = 100; + _off = 1.000000e+02; return; } case _eval_event_4: { @@ -303,7 +303,7 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double case _eval_u(1,0): { _pS(0) = (_on+_off); _pS(1) = 0; - _eval_dep_u(1,1) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(_l*_l/100/100); + _eval_dep_u(1,1) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(double)(_l*_l/100/100); _eval_dep_u(1,2) = (0)/2; break; } @@ -315,7 +315,7 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double case _eval_u(2,0): { _pS(0) = (_on+_off); _pS(1) = 0; - _eval_dep_u(1,1) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(_l*_l/100/100); + _eval_dep_u(1,1) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(double)(_l*_l/100/100); _eval_dep_u(1,2) = (0)/2; break; } @@ -386,7 +386,7 @@ void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, i case _eval_u(1,0): { _pS(0) = (_on+_off); - _eval_dep_u(1,1) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(_l*_l/100/100); + _eval_dep_u(1,1) = _sigma*(_pS(0)*_c+298-2*_u(1,0)+_u(2,0))/(double)(_l*_l/100/100); continue; @@ -416,6 +416,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(102,7,5,0,4,5,4,"buck_term"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(4*sizeof(int)); int* states = (int*) malloc(102*sizeof(int)); int* discretes = (int*) malloc(7*sizeof(int)); int* events = (int*) malloc(5*sizeof(int)); @@ -425,28 +426,28 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int _d1; int _rg_d1; int i; - _C = 0.0001; - _DC = 0.5; - _L = 0.0001; + _C = 1.000000e-04; + _DC = 5.000000e-01; + _L = 1.000000e-04; _R0 = 10; - _ROff = 10000; - _ROn = 0.0001; - _Rd = 100000; - _Rs = 1e-05; - _Ts = 0.0001; + _ROff = 1.000000e+04; + _ROn = 1.000000e-04; + _Rd = 1.000000e+05; + _Rs = 1.000000e-05; + _Ts = 1.000000e-04; _U = 24; - _c = 7.5; - _l = 0.025; + _c = 7.500000e+00; + _l = 2.500000e-02; _nextT = _Ts; _off = 0; _on = 1; - _sigma = 8.61e-06; - _toff = 5.5e-06; - _ton = 1.3e-06; + _sigma = 8.610000e-06; + _toff = 5.500000e-06; + _ton = 1.300000e-06; for(_d1 = 1; _d1<=100; _d1+=1) { _init_u(_d1,0) = 298; } - _vc0 = 0.2; + _vc0 = 2.000000e-01; modelData->nSD[_idx_iL(0)]++; modelData->nSD[_idx_iL(0)]++; modelData->nSD[_idx_u(1,0)]++; @@ -585,14 +586,14 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(_d1 = 2; _d1<=99; _d1+=1) { modelData->DS[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1-1,0); } - cleanVector(states, 0, 102); + cleanVector(algebraics, 0, 4); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 102); @@ -627,7 +628,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; } } - cleanVector(states, 0, 102); + cleanVector(algebraics, 0, 4); for(row = 1; row <= 1; row++) { c_row = _c_index(row); } @@ -694,7 +695,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 102); - cleanVector(states, 0, 102); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_5; cleanVector(events, 0, 5); modelData->ZS[_idx_event_5][events[_idx_event_5]++] = _idx_iL(0); @@ -750,6 +750,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) cleanVector(states, 0, 102); modelOutput->SO[_idx_u(50,0)][states[_idx_u(50,0)]++] = _idx_out_exp_1; simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/buckboost/buckboost.c b/src/mmoc/tests/system/gt_data/buckboost/buckboost.c index 761a8a31..c360734e 100644 --- a/src/mmoc/tests/system/gt_data/buckboost/buckboost.c +++ b/src/mmoc/tests/system/gt_data/buckboost/buckboost.c @@ -240,21 +240,22 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(2,5,3,0,2,2,2,"buckboost"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(2*sizeof(int)); int* states = (int*) malloc(2*sizeof(int)); int* discretes = (int*) malloc(5*sizeof(int)); int* events = (int*) malloc(3*sizeof(int)); int* outputs = (int*) malloc(2*sizeof(int)); int row, eq_var, c_row; int x_ind; - _C = 0.0001; - _DC = 0.25; - _L = 0.0001; + _C = 1.000000e-04; + _DC = 2.500000e-01; + _L = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; - _Rd = 100000; - _Rs = 1e-05; - _T = 0.0001; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; + _Rd = 1.000000e+05; + _Rs = 1.000000e-05; + _T = 1.000000e-04; _U = 24; _nextT = _T; modelData->nSD[_idx_iL(0)]++; @@ -314,20 +315,20 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_iL(0); modelData->DS[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_uC(0); modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_uC(0); - cleanVector(states, 0, 2); + cleanVector(algebraics, 0, 2); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_uC(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 2); @@ -375,7 +376,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 2); - cleanVector(states, 0, 2); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_3; modelData->SZ[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_event_3; cleanVector(events, 0, 3); @@ -425,6 +425,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_out_exp_2; modelOutput->SO[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_out_exp_1; simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/burgers/burgers.c b/src/mmoc/tests/system/gt_data/burgers/burgers.c new file mode 100644 index 00000000..9b6e78b1 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/burgers/burgers.c @@ -0,0 +1,553 @@ +#include +#include +#include +#include + +#include "burgers.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = TRUE; + settings->method = 4; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + int _d1; + int j; + switch(idx) { + case _eval_u(1,0): { + _der_u(1,0) = _ap(1)*(_u(1,0)+_u(1000,0))/(double)2*(-_u(1,0)+_u(1000,0))*1000+(1-_ap(1))*(_u(2,0)+_u(1,0))/2*(-_u(2,0)+_u(1,0))*1000; + + + return; + } + case _eval_u(1000,0): { + _der_u(1000,0) = _ap(1000)*(_u(1000,0)+_u(999,0))/(double)2*(-_u(1000,0)+_u(999,0))*1000+(1-_ap(1000))*(_u(1,0)+_u(1000,0))*(-_u(1,0)+_u(1000,0))*1000; + + + return; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 999)) { + _der_u(j,0) = _ap(j)*(_u(j,0)+_u(j-1,0))/(double)2*(-_u(j,0)+_u(j-1,0))*1000+(1-_ap(j))*(_u(j+1,0)+_u(j,0))*(-_u(j+1,0)+_u(j,0))*1000; + + + } + return; + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ + int _d1; + int i; + if (_is_var_event_1(idx)) { + _get_event_1_idxs(idx); + _apply_usage_event_1(_d1); + if ((i >= 1 && i <= 1000)) { + _zc(0) = _u(i,0)-(0); + + + } + return; + } +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ + int _d1; + int i; + if (_is_var_event_1(idx)) { + _get_event_1_idxs(idx); + _apply_usage_event_1(_d1); + if ((i >= 1 && i <= 1000)) { + _ap(i) = 1; + } + return; + } +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ + int _d1; + int i; + if (_is_var_event_1(idx)) { + _get_event_1_idxs(idx); + _apply_usage_event_1(_d1); + if ((i >= 1 && i <= 1000)) { + _ap(i) = 0; + } + return; + } +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + int _d1; + if (_is_var_out_exp_1(idx)) { + _get_out_exp_1_idxs(idx); + _apply_usage_out_exp_1(_d1); + if ((_d1 >= 1 && _d1 <= 5)) { + _out = _u(200*_d1-199,0); + } + return; + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + int _d1; + int _rg_d1; + int j; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u(1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + x_ind = _idx_u(1000,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + x_ind = _idx_u(2,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 998; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_idxs(eq_var); + if((3 <= _d1 + 1 && _d1 + 1 <= 1000)) { + x_ind = _idx_u(_d1+1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((2 <= _d1 && _d1 <= 999)) { + x_ind = _idx_u(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((1 <= _d1-1 && _d1-1 <= 998)) { + x_ind = _idx_u(_d1-1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u(1,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + x_ind = _idx_u(1000,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + x_ind = _idx_u(999,0); + col = pos(dvdx->df_dx[2]->index[c_row], dvdx->df_dx[2]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[2]->value[c_row][col] += aux; + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 998; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 2 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[2]->size[row]; col++) { + row_t = dvdx->df_dx[2]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[2]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + int _d1; + int j; + switch(idx) { + case _eval_u(1,0): { + _eval_dep_u(1,1) = _ap(1)*(_u(1,0)+_u(1000,0))/(double)2*(-_u(1,0)+_u(1000,0))*1000+(1-_ap(1))*(_u(2,0)+_u(1,0))/2*(-_u(2,0)+_u(1,0))*1000; + _eval_dep_u(1000,1) = _ap(1000)*(_u(1000,0)+_u(999,0))/(double)2*(-_u(1000,0)+_u(999,0))*1000+(1-_ap(1000))*(_u(1,0)+_u(1000,0))*(-_u(1,0)+_u(1000,0))*1000; + break; + } + case _eval_u(1000,0): { + _eval_dep_u(1,1) = _ap(1)*(_u(1,0)+_u(1000,0))/(double)2*(-_u(1,0)+_u(1000,0))*1000+(1-_ap(1))*(_u(2,0)+_u(1,0))/2*(-_u(2,0)+_u(1,0))*1000; + _eval_dep_u(1000,1) = _ap(1000)*(_u(1000,0)+_u(999,0))/(double)2*(-_u(1000,0)+_u(999,0))*1000+(1-_ap(1000))*(_u(1,0)+_u(1000,0))*(-_u(1,0)+_u(1000,0))*1000; + break; + } + case _eval_u(2,0): { + _eval_dep_u(1,1) = _ap(1)*(_u(1,0)+_u(1000,0))/(double)2*(-_u(1,0)+_u(1000,0))*1000+(1-_ap(1))*(_u(2,0)+_u(1,0))/2*(-_u(2,0)+_u(1,0))*1000; + break; + } + case _eval_u(999,0): { + _eval_dep_u(1000,1) = _ap(1000)*(_u(1000,0)+_u(999,0))/(double)2*(-_u(1000,0)+_u(999,0))*1000+(1-_ap(1000))*(_u(1,0)+_u(1000,0))*(-_u(1,0)+_u(1000,0))*1000; + break; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_eq_2(_d1-1); + if ((j >= 2 && j <= 999)) { + _eval_dep_u(j,1) = _ap(j)*(_u(j,0)+_u(j-1,0))/(double)2*(-_u(j,0)+_u(j-1,0))*1000+(1-_ap(j))*(_u(j+1,0)+_u(j,0))*(-_u(j+1,0)+_u(j,0))*1000; + + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 999)) { + _eval_dep_u(j,1) = _ap(j)*(_u(j,0)+_u(j-1,0))/(double)2*(-_u(j,0)+_u(j-1,0))*1000+(1-_ap(j))*(_u(j+1,0)+_u(j,0))*(-_u(j+1,0)+_u(j,0))*1000; + + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_eq_2(_d1+1); + if ((j >= 2 && j <= 999)) { + _eval_dep_u(j,1) = _ap(j)*(_u(j,0)+_u(j-1,0))/(double)2*(-_u(j,0)+_u(j-1,0))*1000+(1-_ap(j))*(_u(j+1,0)+_u(j,0))*(-_u(j+1,0)+_u(j,0))*1000; + + } + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + int _d1; + int j; + switch(idx) { + case _eval_u(1,0): { + _eval_dep_u(1,1) = _ap(1)*(_u(1,0)+_u(1000,0))/(double)2*(-_u(1,0)+_u(1000,0))*1000+(1-_ap(1))*(_u(2,0)+_u(1,0))/2*(-_u(2,0)+_u(1,0))*1000; + + + continue; + } + case _eval_u(1000,0): { + _eval_dep_u(1000,1) = _ap(1000)*(_u(1000,0)+_u(999,0))/(double)2*(-_u(1000,0)+_u(999,0))*1000+(1-_ap(1000))*(_u(1,0)+_u(1000,0))*(-_u(1,0)+_u(1000,0))*1000; + + + continue; + } + } + if (_is_var_u(idx)) { + _get_u_idxs(idx); + _apply_usage_eq_2(_d1); + if ((j >= 2 && j <= 999)) { + _eval_dep_u(j,1) = _ap(j)*(_u(j,0)+_u(j-1,0))/(double)2*(-_u(j,0)+_u(j-1,0))*1000+(1-_ap(j))*(_u(j+1,0)+_u(j,0))*(-_u(j+1,0)+_u(j,0))*1000; + + + } + continue; + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(1000,1000,1000,0,0,3,0,"burgers"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* states = (int*) malloc(1000*sizeof(int)); + int* discretes = (int*) malloc(1000*sizeof(int)); + int* events = (int*) malloc(1000*sizeof(int)); + int* outputs = (int*) malloc(5*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + int _d1; + int _rg_d1; + int i; + int j; + _ap(_d1) = 0; + _beta = 100; + _inVal = 1; + _outVal = 1; + _pi = 3.141590e+00; + _x0 = 5.000000e-01; + for(i = 1; i<=1000; i+=1) { + _x(i) = 1.000000e+00*i/(double)1000; + _init_u(i,0) = sin(_pi*2*_x(i)); + if(_init_u(i,0)>0) { + _ap(i) = 1; + } else { + _ap(i) = 0; + } + } + modelData->nSD[_idx_u(1,0)]++; + modelData->nSD[_idx_u(1,0)]++; + modelData->nSD[_idx_u(1000,0)]++; + modelData->nSD[_idx_u(1000,0)]++; + modelData->nSD[_idx_u(2,0)]++; + modelData->nSD[_idx_u(999,0)]++; + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nSD[_idx_u(_d1+1,0)]++; + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nSD[_idx_u(_d1,0)]++; + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nSD[_idx_u(_d1-1,0)]++; + } + modelData->nDS[_idx_u(1,0)]++; + modelData->nDS[_idx_u(1000,0)]++; + modelData->nDS[_idx_u(1,0)]++; + modelData->nDS[_idx_u(1000,0)]++; + modelData->nDS[_idx_u(1,0)]++; + modelData->nDS[_idx_u(1000,0)]++; + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nDS[_idx_u(_d1,0)]++; + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nDS[_idx_u(_d1,0)]++; + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nDS[_idx_u(_d1,0)]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[0]->size[c_row]++; + modelData->jac_matrices->df_dx[0]->size[c_row]++; + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 998; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_idxs(eq_var); + if((3 <= _d1 + 1 && _d1 + 1 <= 1000)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((2 <= _d1 && _d1 <= 999)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1-1 && _d1-1 <= 998)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + modelData->jac_matrices->df_dx[2]->size[c_row]++; + } + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->nSZ[_idx_u(_d1,0)]++; + } + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->nZS[_idx_event_1(_d1)]++; + } + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->nHD[_idx_event_1(_d1)]++; + } + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->nHD[_idx_event_1(_d1)]++; + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->nHD[_idx_event_1(_d1)]++; + } + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->event[_idx_event_1(_d1)].nLHSDsc++; + } + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 1000); + modelData->SD[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(1,0); + modelData->SD[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(1000,0); + modelData->SD[_idx_u(1000,0)][states[_idx_u(1000,0)]++] = _idx_u(1,0); + modelData->SD[_idx_u(1000,0)][states[_idx_u(1000,0)]++] = _idx_u(1000,0); + modelData->SD[_idx_u(2,0)][states[_idx_u(2,0)]++] = _idx_u(1,0); + modelData->SD[_idx_u(999,0)][states[_idx_u(999,0)]++] = _idx_u(1000,0); + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->SD[_idx_u(_d1+1,0)][states[_idx_u(_d1+1,0)]++] = _idx_u(_d1,0); + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->SD[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1,0); + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->SD[_idx_u(_d1-1,0)][states[_idx_u(_d1-1,0)]++] = _idx_u(_d1,0); + } + cleanVector(states, 0, 1000); + modelData->DS[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(1,0); + modelData->DS[_idx_u(1000,0)][states[_idx_u(1000,0)]++] = _idx_u(1,0); + modelData->DS[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(1000,0); + modelData->DS[_idx_u(1000,0)][states[_idx_u(1000,0)]++] = _idx_u(1000,0); + modelData->DS[_idx_u(1,0)][states[_idx_u(1,0)]++] = _idx_u(2,0); + modelData->DS[_idx_u(1000,0)][states[_idx_u(1000,0)]++] = _idx_u(999,0); + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->DS[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1+1,0); + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->DS[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1,0); + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->DS[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_u(_d1-1,0); + } + cleanVector(states, 0, 1000); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u(1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_u(1000,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_u(2,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 1000); + for(row = 1; row <= 998; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u_idxs(eq_var); + if((3 <= _d1 + 1 && _d1 + 1 <= 1000)) { + x_ind = _idx_u(_d1+1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((2 <= _d1 && _d1 <= 999)) { + x_ind = _idx_u(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1-1 && _d1-1 <= 998)) { + x_ind = _idx_u(_d1-1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + } + cleanVector(states, 0, 1000); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u(1,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_u(1000,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + x_ind = _idx_u(999,0); + if(in(modelData->jac_matrices->df_dx[2]->index[c_row],modelData->jac_matrices->df_dx[2]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[2]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 1000); + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->SZ[_idx_u(_d1,0)][states[_idx_u(_d1,0)]++] = _idx_event_1(_d1); + } + cleanVector(events, 0, 1000); + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->ZS[_idx_event_1(_d1)][events[_idx_event_1(_d1)]++] = _idx_u(_d1,0); + } + cleanVector(events, 0, 1000); + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->HD[_idx_event_1(_d1)][events[_idx_event_1(_d1)]++] = _idx_u(1,0); + } + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->HD[_idx_event_1(_d1)][events[_idx_event_1(_d1)]++] = _idx_u(1000,0); + } + for(_d1 = 2; _d1<=999; _d1+=1) { + modelData->HD[_idx_event_1(_d1)][events[_idx_event_1(_d1)]++] = _idx_u(i,0); + } + cleanVector(events, 0, 1000); + for(_d1 = 1; _d1<=1000; _d1+=1) { + modelData->event[_idx_event_1(_d1)].LHSDsc[events[_idx_event_1(_d1)]++] = _idx_ap(_d1); + } + for(i = 1; i<=1000; i+=1) { + modelData->event[_idx_event_1(i)].direction = 0; + modelData->event[_idx_event_1(i)].relation = 2; + } + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(1000,1000,0,0,ST_Binary, NULL); + double period[1]; + period[0] = 0.01; + simulator->output = SD_Output("burgers",5,1000,1000,period,1,0,CI_Sampled,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + for(_d1 = 1; _d1<=5; _d1+=1) { + modelOutput->nOS[_idx_out_exp_1(_d1)]++; + } + for(_d1 = 1; _d1<=5; _d1+=1) { + modelOutput->nSO[_idx_u(200*_d1-199,0)]++; + } + SD_allocOutputMatrix(modelOutput, 1000, 1000); + for(_d1 = 1; _d1<=5; _d1+=1) { + sprintf(modelOutput->variable[_idx_out_exp_1(_d1)].name, "u[%d]",200*_d1-199); + } + cleanVector(outputs, 0, 5); + for(_d1 = 1; _d1<=5; _d1+=1) { + modelOutput->OS[_idx_out_exp_1(_d1)][outputs[_idx_out_exp_1(_d1)]++] = _idx_u(200*_d1-199,0); + } + cleanVector(states, 0, 1000); + for(_d1 = 1; _d1<=5; _d1+=1) { + modelOutput->SO[_idx_u(200*_d1-199,0)][states[_idx_u(200*_d1-199,0)]++] = _idx_out_exp_1(_d1); + } + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(states); + free(discretes); + free(events); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/burgers/burgers.h b/src/mmoc/tests/system/gt_data/burgers/burgers.h new file mode 100644 index 00000000..473900f1 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/burgers/burgers.h @@ -0,0 +1,125 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; \ + double* d = m->d; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 + +// Model Variables Macros + +// Macros definition for variable: _event_1 +#define _idx_event_1(d1) ((d1-1)) +#define _eval_event_1(d1) ((d1-1)) +#define _is_var_event_1(idx) idx >= 0 && idx < 1000 +#define _get_event_1_idxs(idx)\ + _d1 = (idx)+ 1; + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1(d1) ((d1-1)) +#define _eval_out_exp_1(d1) ((d1-1)) +#define _is_var_out_exp_1(idx) idx >= 0 && idx < 5 +#define _get_out_exp_1_idxs(idx)\ + _d1 = (idx)+ 1; + +// Macros definition for variable: ap +#define _idx_ap(d1) ((d1-1)) +#define _ap(d1) d[_idx_ap(d1)] + +// Macros definition for variable: beta +#define _beta __PAR__beta + +// Macros definition for variable: inVal +#define _inVal __PAR__inVal + +// Macros definition for variable: outVal +#define _outVal __PAR__outVal + +// Macros definition for variable: pi +#define _pi __PAR__pi + +// Macros definition for variable: u +#define _idx_u(d1,coeff) ((d1-1)) +#define _state_idx_u(d1,coeff) ((d1-1))*3 + coeff +#define _u(d1,coeff) x[_state_idx_u(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_u(d1,coeff) x[_state_idx_u(d1,coeff)] +#define _q_u(d1,coeff) q[_state_idx_u(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_u(d1,coeff) ((d1-1)) +#define _is_var_u(idx) idx >= 0 && idx < 1000 +#define _get_u_idxs(idx)\ + _d1 = (idx)+ 1; +#define _eval_dep_u(d1,coeff) dx[_state_idx_u(d1,coeff)] + +// Macros definition for variable: x +#define _idx_x(d1) ((d1-1)) +#define _x(d1) __PAR__x[_idx_x(d1)] + +// Macros definition for variable: x0 +#define _x0 __PAR__x0 + + +// Model Parameters Declaration + +// Macro for parameter: beta +double __PAR__beta; +// Macro for parameter: inVal +double __PAR__inVal; +// Macro for parameter: outVal +double __PAR__outVal; +// Macro for parameter: pi +double __PAR__pi; +// Macro for parameter: x +double __PAR__x[1000]; +// Macro for parameter: x0 +double __PAR__x0; + +// Derivative Equations Macros + +// Macros for equation: 1 + +// Macros for equation: 2 +#define _apply_usage_eq_2(_d1) \ + j = _d1; +#define _get_eq_2_var_idxs(row, var)\ + _rg_d1 = 1 + (row-1)+ 1;\ + var = _idx_u(_rg_d1,0); +// Macros for equation: 3 + + +// Event Macros + +// Macros for event: 1 +#define _apply_usage_event_1(_d1) \ + i = _d1; +#define _get_event_1_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_event_1(_rg_d1); +#define _zc(coeff) zc[coeff] + +// Output Equations Macros + +// Macros for output equation: 1 +#define _apply_usage_out_exp_1(_d1) \ + _d1 = _d1; +#define _get_out_exp_1_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_out_exp_1(_rg_d1); +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: u +#define _der_u(d1,coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/burgers/burgers.ini b/src/mmoc/tests/system/gt_data/burgers/burgers.ini new file mode 100644 index 00000000..28fe2f45 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/burgers/burgers.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=0; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=1.00000e+00; +sol="LIQSS2"; +dqmin=(1.00000e-05); +dqrel=(1.00000e-05); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/mmoc/tests/system/gt_data/burgers/burgers.mo b/src/mmoc/tests/system/gt_data/burgers/burgers.mo new file mode 100644 index 00000000..7f4a8cc0 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/burgers/burgers.mo @@ -0,0 +1,57 @@ +model burgers + constant Integer N = 1000; + parameter Real beta=100,x0=0.5,pi=3.14159,x[N],inVal=1,outVal=1; + discrete Real ap[N](start=0); + Real u[N]; + initial algorithm + for i in 1:N loop + x[i]:=1.0*i/N; + // u[i]:=sin(pi*2*x[i])+2; //Condici�n inicial que mantiene u>0 en todo el dominio + u[i]:=sin(pi*2*x[i]); //Condici�n inicial con u<0 //Sin la suma convexa, el esquema falla. + if u[i] > 0 then + ap[i]:=1; + else + ap[i]:=0; + end if; + end for; + + equation +//Eq. Burgers inv�scida: u_t+(1/2)*(u^2)_x=0 +//T�rmino viscoso: eps*uxx (t�rmino fuente a la derecha) +//Forma cuasi-lineal: u_t+u*u_x=0 (lamb=u) +//La velocidad de propagaci�n es igual a la variable. +//Upwind: +// der(u[1])=(u[1]+u[N])/2*(-u[1]+u[N])*N; //Condici�n peri�dica para u>0 + der(u[1])=ap[1]*(u[1]+u[N])/2*(-u[1]+u[N])*N+(1-ap[1])*(u[2]+u[1])/2*(-u[2]+u[1])*N; //No puedo hacer andar esta suma convexa. + for j in 2:N-1 loop + // der(u[j])=(u[j]+u[j-1])/2*(-u[j]+u[j-1])*N; + der(u[j])=ap[j]*(u[j]+u[j-1])/2*(-u[j]+u[j-1])*N+(1-ap[j])*(u[j+1]+u[j])*(-u[j+1]+u[j])*N; //No puedo hacer andar esta suma convexa. + end for; + der(u[N])=ap[N]*(u[N]+u[N-1])/2*(-u[N]+u[N-1])*N+(1-ap[N])*(u[1]+u[N])*(-u[1]+u[N])*N; //No puedo hacer andar esta suma convexa. +algorithm + for i in 1:N loop + when u[i] > 0 then + ap[i]:=1; elsewhen u[i] < 0 then + ap[i]:=0; + end when; + end for; + +//Lax-Wendroff: esquema 2 orden: Problema para implementarlo: necesito afectar el avance temporal con elementos de la discretizaci�n espacial + annotation( + + experiment( + MMO_Description="Burgers Equation", + MMO_Solver=LIQSS2, + MMO_SymDiff=false, + MMO_PartitionMethod=Metis, + MMO_Output={u[1:N/5:N]}, + MMO_OutputType=CI_Sampled, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + StartTime=0.0, + StopTime=1.0, + Tolerance={1e-5}, + AbsTolerance={1e-5} + )); +end burgers; diff --git a/src/mmoc/tests/system/gt_data/cuk/cuk.c b/src/mmoc/tests/system/gt_data/cuk/cuk.c index 4fb637c5..c59319cf 100644 --- a/src/mmoc/tests/system/gt_data/cuk/cuk.c +++ b/src/mmoc/tests/system/gt_data/cuk/cuk.c @@ -364,23 +364,24 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(4,5,3,0,2,4,2,"cuk"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(2*sizeof(int)); int* states = (int*) malloc(4*sizeof(int)); int* discretes = (int*) malloc(5*sizeof(int)); int* events = (int*) malloc(3*sizeof(int)); int* outputs = (int*) malloc(4*sizeof(int)); int row, eq_var, c_row; int x_ind; - _C = 0.0001; - _C1 = 0.0001; - _DC = 0.25; - _L = 0.0001; - _L1 = 0.0001; + _C = 1.000000e-04; + _C1 = 1.000000e-04; + _DC = 2.500000e-01; + _L = 1.000000e-04; + _L1 = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; - _Rd = 100000; - _Rs = 1e-05; - _T = 0.0001; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; + _Rd = 1.000000e+05; + _Rs = 1.000000e-05; + _T = 1.000000e-04; _U = 24; _nextT = _T; modelData->nSD[_idx_iL(0)]++; @@ -492,26 +493,26 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->DS[_idx_uC1(0)][states[_idx_uC1(0)]++] = _idx_uC1(0); modelData->DS[_idx_iL1(0)][states[_idx_iL1(0)]++] = _idx_uC1(0); modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_uC1(0); - cleanVector(states, 0, 4); + cleanVector(algebraics, 0, 2); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_iL1(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_uC1(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 4); @@ -615,7 +616,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 4); - cleanVector(states, 0, 4); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_3; modelData->SZ[_idx_iL1(0)][states[_idx_iL1(0)]++] = _idx_event_3; modelData->SZ[_idx_uC1(0)][states[_idx_uC1(0)]++] = _idx_event_3; @@ -680,6 +680,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_out_exp_1; modelOutput->SO[_idx_uC1(0)][states[_idx_uC1(0)]++] = _idx_out_exp_3; simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/cuk2/cuk2.c b/src/mmoc/tests/system/gt_data/cuk2/cuk2.c index a26d5bbc..04b2eb4e 100644 --- a/src/mmoc/tests/system/gt_data/cuk2/cuk2.c +++ b/src/mmoc/tests/system/gt_data/cuk2/cuk2.c @@ -187,22 +187,22 @@ void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx aux = 0; x_ind = _idx_iL(0); col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_phi(0); col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_iL(0); col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_uC1(0); col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_iL(0); @@ -237,22 +237,22 @@ void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx aux = 0; x_ind = _idx_iL(0); col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_phi(0); col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_iL(0); col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_uC1(0); col = pos(dvdx->df_dx[3]->index[c_row], dvdx->df_dx[3]->size[c_row], x_ind); - c_row_g = _idx_iD(0) - 0; + c_row_g = _idx_iD(0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[3]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; x_ind = _idx_uC(0); @@ -383,23 +383,24 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(4,5,3,0,3,4,3,"cuk2"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(3*sizeof(int)); int* states = (int*) malloc(4*sizeof(int)); int* discretes = (int*) malloc(5*sizeof(int)); int* events = (int*) malloc(3*sizeof(int)); int* outputs = (int*) malloc(4*sizeof(int)); int row, eq_var, c_row; int x_ind; - _C = 0.0001; - _C1 = 0.0001; - _DC = 0.25; - _L = 0.0001; - _L1 = 0.0001; + _C = 1.000000e-04; + _C1 = 1.000000e-04; + _DC = 2.500000e-01; + _L = 1.000000e-04; + _L1 = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; - _Rd = 100000; - _Rs = 1e-05; - _T = 0.0001; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; + _Rd = 1.000000e+05; + _Rs = 1.000000e-05; + _T = 1.000000e-04; _U = 24; _nextT = _T; modelData->nSD[_idx_iL(0)]++; @@ -510,48 +511,48 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->DS[_idx_uC1(0)][states[_idx_uC1(0)]++] = _idx_uC1(0); modelData->DS[_idx_phi(0)][states[_idx_phi(0)]++] = _idx_uC1(0); modelData->DS[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_uC1(0); - cleanVector(states, 0, 4); + cleanVector(algebraics, 0, 3); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_phi(0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } - cleanVector(states, 0, 4); + cleanVector(algebraics, 0, 3); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_phi(0); if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_iL(0); if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } x_ind = _idx_uC1(0); if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 4); @@ -655,7 +656,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 4); - cleanVector(states, 0, 4); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_3; modelData->SZ[_idx_phi(0)][states[_idx_phi(0)]++] = _idx_event_3; modelData->SZ[_idx_uC1(0)][states[_idx_uC1(0)]++] = _idx_event_3; @@ -721,6 +721,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_out_exp_3; modelOutput->SO[_idx_uC1(0)][states[_idx_uC1(0)]++] = _idx_out_exp_4; simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/interleaved/interleaved.c b/src/mmoc/tests/system/gt_data/interleaved/interleaved.c index 504cc5a1..beaabbd8 100644 --- a/src/mmoc/tests/system/gt_data/interleaved/interleaved.c +++ b/src/mmoc/tests/system/gt_data/interleaved/interleaved.c @@ -69,7 +69,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_2_idxs(idx); _apply_usage_event_2(_d1); if ((i >= 1 && i <= 4)) { - _zc(0) = _time-_lastT-_T*(i-1)/4-0.01*_T-(0); + _zc(0) = _time-_lastT-_T*(i-1)/4-1.000000e-02*_T-(0); _zc(1) = (0)/1; } @@ -79,7 +79,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_3_idxs(idx); _apply_usage_event_3(_d1); if ((i >= 1 && i <= 4)) { - _zc(0) = _time-_lastT-_T*(i-1)/4-_DC*_T/4-0.01*_T-(0); + _zc(0) = _time-_lastT-_T*(i-1)/4-_DC*_T/4-1.000000e-02*_T-(0); _zc(1) = (0)/1; } @@ -192,7 +192,7 @@ void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx for(i = 2; i<=4; i+=1) { _get_alg_eq_2_var_idxs(_idx_sum_0(i,0), eq_var); _get_sum_0_idxs(eq_var); - if((2 <= _d1 && _d1 <= 3)) { + if((2 <= _d1 && _d1 <= 4)) { x_ind = _idx_iL(_d1,0); col = pos(dvdx->dg_dx[1]->index[c_row], dvdx->dg_dx[1]->size[c_row], x_ind); _apply_usage_alg_eq_2(_d1); @@ -215,19 +215,14 @@ void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx for(i = 2; i<=4; i+=1) { _get_alg_eq_2_var_idxs(_idx_sum_0(i,0), eq_var); _get_sum_0_idxs(eq_var); - if((2 <= _d1 && _d1 <= 3)) { + if((2 <= _d1 && _d1 <= 4)) { x_ind = _idx_iL(_d1,0); col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); c_row_g = _idx_sum_0(_rg_d1,0) - 1; col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; } - } x_ind = _idx_iL(4,0); - col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); - c_row_g = _idx_sum_0(4,0) - 1; - col_g = pos(dvdx->dg_dx[1]->index[c_row_g], dvdx->dg_dx[1]->size[c_row_g], x_ind); - dvdx->df_dx[0]->value[c_row][col] += aux * dvdx->dg_dx[1]->value[c_row_g][col_g]; - x_ind = _idx_uC(0); + } x_ind = _idx_uC(0); col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); aux = 0; dvdx->df_dx[0]->value[c_row][col] += aux; @@ -271,21 +266,6 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double int _rg_d1; int i; switch(idx) { - case _eval_iL(4,0): { - _sum_0(1,0) = _iL(1,0); - _sum_0(1,1) = 0; - for(_rg_d1 = 1; _rg_d1<=3; _rg_d1+=1) { - _get_sum_0_idxs(_rg_d1); - _apply_usage_alg_eq_2(_d1); - if ((i >= 2 && i <= 4)) { - _sum_0(i,0) = _sum_0(i-1,0)+_iL(i,0); - _sum_0(i,1) = 0; - } - } - _eval_dep_uC(1) = (_sum_0(4,0)-_uC(0)/_R)/_C; - _eval_dep_uC(2) = (0)/2; - break; - } case _eval_uC(0): { _sum_0(1,0) = _iL(1,0); _sum_0(1,1) = 0; @@ -379,6 +359,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(5,10,13,0,4,2,2,"interleaved"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(4*sizeof(int)); int* states = (int*) malloc(5*sizeof(int)); int* discretes = (int*) malloc(10*sizeof(int)); int* events = (int*) malloc(13*sizeof(int)); @@ -388,22 +369,21 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int _d1; int _rg_d1; int i; - _C = 0.0001; - _DC = 0.5; - _L = 0.0001; + _C = 1.000000e-04; + _DC = 5.000000e-01; + _L = 1.000000e-04; _R = 10; - _ROff = 100000; - _ROn = 1e-05; + _ROff = 1.000000e+05; + _ROn = 1.000000e-05; for(_d1 = 1; _d1<=4; _d1+=1) { - _Rd(_d1) = 100000; + _Rd(_d1) = 1.000000e+05; } for(_d1 = 1; _d1<=4; _d1+=1) { - _Rs(_d1) = 100000; + _Rs(_d1) = 1.000000e+05; } - _T = 0.0001; + _T = 1.000000e-04; _U = 24; - _nextT = 1e-08; - modelData->nSD[_idx_iL(4,0)]++; + _nextT = 1.000000e-08; modelData->nSD[_idx_uC(0)]++; for(_d1 = 1; _d1<=4; _d1+=1) { modelData->nSD[_idx_uC(0)]++; @@ -415,7 +395,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->nSD[_idx_iL(_d1,0)]++; } modelData->nDS[_idx_uC(0)]++; - modelData->nDS[_idx_uC(0)]++; for(_d1 = 1; _d1<=4; _d1+=1) { modelData->nDS[_idx_iL(_d1,0)]++; } @@ -439,7 +418,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(i = 2; i<=4; i+=1) { _get_alg_eq_2_var_idxs(_idx_sum_0(i,0), eq_var); _get_sum_0_idxs(eq_var); - if((2 <= _d1 && _d1 <= 3)) { + if((2 <= _d1 && _d1 <= 4)) { modelData->jac_matrices->dg_dx[1]->size[c_row]++; } } modelData->jac_matrices->dg_dx[1]->size[c_row]++; @@ -450,11 +429,10 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(i = 2; i<=4; i+=1) { _get_alg_eq_2_var_idxs(_idx_sum_0(i,0), eq_var); _get_sum_0_idxs(eq_var); - if((2 <= _d1 && _d1 <= 3)) { + if((2 <= _d1 && _d1 <= 4)) { modelData->jac_matrices->df_dx[0]->size[c_row]++; } } modelData->jac_matrices->df_dx[0]->size[c_row]++; - modelData->jac_matrices->df_dx[0]->size[c_row]++; } for(row = 1; row <= 4; row++) { c_row = _c_index(row); @@ -506,7 +484,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->event[_idx_event_1].nLHSDsc++; QSS_allocDataMatrix(modelData); cleanVector(states, 0, 5); - modelData->SD[_idx_iL(4,0)][states[_idx_iL(4,0)]++] = _idx_uC(0); modelData->SD[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_uC(0); for(_d1 = 1; _d1<=4; _d1+=1) { modelData->SD[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_iL(_d1,0); @@ -518,7 +495,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->SD[_idx_iL(_d1,0)][states[_idx_iL(_d1,0)]++] = _idx_iL(_d1,0); } cleanVector(states, 0, 5); - modelData->DS[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_iL(4,0); modelData->DS[_idx_uC(0)][states[_idx_uC(0)]++] = _idx_uC(0); for(_d1 = 1; _d1<=4; _d1+=1) { modelData->DS[_idx_iL(_d1,0)][states[_idx_iL(_d1,0)]++] = _idx_uC(0); @@ -529,17 +505,17 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(_d1 = 1; _d1<=4; _d1+=1) { modelData->DS[_idx_iL(_d1,0)][states[_idx_iL(_d1,0)]++] = _idx_iL(_d1,0); } - cleanVector(states, 0, 5); + cleanVector(algebraics, 0, 4); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_iL(1,0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } - cleanVector(states, 0, 5); + cleanVector(algebraics, 0, 4); for(row = 1; row <= 3; row++) { c_row = _c_index(row); _get_alg_eq_2_var_idxs(row, eq_var); @@ -549,25 +525,25 @@ void QSS_initializeDataStructs(QSS_simulator simulator) if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } for(i = 2; i<=4; i+=1) { _get_alg_eq_2_var_idxs(_idx_sum_0(i,0), eq_var); _get_sum_0_idxs(eq_var); - if((2 <= _d1 && _d1 <= 3)) { + if((2 <= _d1 && _d1 <= 4)) { x_ind = _idx_iL(_d1,0); if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } } x_ind = _idx_iL(1,0); if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } cleanVector(states, 0, 5); @@ -582,7 +558,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(i = 2; i<=4; i+=1) { _get_alg_eq_2_var_idxs(_idx_sum_0(i,0), eq_var); _get_sum_0_idxs(eq_var); - if((2 <= _d1 && _d1 <= 3)) { + if((2 <= _d1 && _d1 <= 4)) { x_ind = _idx_iL(_d1,0); if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->df_dx[0]->size[c_row]--; @@ -590,13 +566,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; } } - } x_ind = _idx_iL(4,0); - if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ - modelData->jac_matrices->df_dx[0]->size[c_row]--; - } else { - modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; - } - x_ind = _idx_uC(0); + } x_ind = _idx_uC(0); if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->df_dx[0]->size[c_row]--; } else { @@ -624,7 +594,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 5); - cleanVector(states, 0, 5); for(_d1 = 1; _d1<=4; _d1+=1) { modelData->SZ[_idx_iL(_d1,0)][states[_idx_iL(_d1,0)]++] = _idx_event_4(_d1); } @@ -710,6 +679,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_iL(_d1,0)][states[_idx_iL(_d1,0)]++] = _idx_out_exp_2(_d1); } simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(discretes); free(events); diff --git a/src/mmoc/tests/system/gt_data/inverters/inverters.c b/src/mmoc/tests/system/gt_data/inverters/inverters.c index e35db840..23736314 100644 --- a/src/mmoc/tests/system/gt_data/inverters/inverters.c +++ b/src/mmoc/tests/system/gt_data/inverters/inverters.c @@ -89,11 +89,11 @@ void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double _uslope = 0; _nextchange = 15; }else if(_nextchange==15) { - _uslope = -2.5; + _uslope = -2.500000e+00; _nextchange = 17; }else { _uslope = 0; - _nextchange = 1e+10; + _nextchange = 1.000000e+10; } return; } @@ -271,7 +271,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) _nextchange = 5; for(i = 1; i<=250; i+=1) { _init_x(2*i,0) = 5; - _init_x(2*i+1,0) = 0.006247; + _init_x(2*i+1,0) = 6.247000e-03; } for(i = 1; i<=501; i+=1) { if(_init_x(i,0)>_UTH) { @@ -387,7 +387,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 502); - cleanVector(states, 0, 502); for(_d1 = 1; _d1<=501; _d1+=1) { modelData->SZ[_idx_x(_d1,0)][states[_idx_x(_d1,0)]++] = _idx_event_1(_d1); } diff --git a/src/mmoc/tests/system/gt_data/lc_line/lc_line.c b/src/mmoc/tests/system/gt_data/lc_line/lc_line.c index 557f5373..ceb19dbe 100644 --- a/src/mmoc/tests/system/gt_data/lc_line/lc_line.c +++ b/src/mmoc/tests/system/gt_data/lc_line/lc_line.c @@ -358,7 +358,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; } } - cleanVector(states, 0, 200); cleanVector(events, 0, 1); modelData->HD[_idx_event_1][events[_idx_event_1]++] = _idx_x(1,0); cleanVector(events, 0, 1); diff --git a/src/mmoc/tests/system/gt_data/lotka_volterra/lotka_volterra.c b/src/mmoc/tests/system/gt_data/lotka_volterra/lotka_volterra.c index 10aed0cf..56b933b2 100644 --- a/src/mmoc/tests/system/gt_data/lotka_volterra/lotka_volterra.c +++ b/src/mmoc/tests/system/gt_data/lotka_volterra/lotka_volterra.c @@ -22,14 +22,14 @@ void MOD_definition(int idx, double *x, double *d, double *a, double t, double * { switch(idx) { case _eval_x(1,0): { - _der_x(1,0) = 0.1*_x(1,0)-0.1*_x(1,0)*_x(2,0); + _der_x(1,0) = 1.000000e-01*_x(1,0)-1.000000e-01*_x(1,0)*_x(2,0); _der_x(1,1) = (0)/2; _der_x(1,2) = (0)/6; return; } case _eval_x(2,0): { - _der_x(2,0) = 0.1*_x(1,0)*_x(2,0)-0.1*_x(2,0); + _der_x(2,0) = 1.000000e-01*_x(1,0)*_x(2,0)-1.000000e-01*_x(2,0); _der_x(2,1) = (0)/2; _der_x(2,2) = (0)/6; @@ -112,19 +112,19 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double { switch(idx) { case _eval_x(1,0): { - _eval_dep_x(1,1) = 0.1*_x(1,0)-0.1*_x(1,0)*_x(2,0); + _eval_dep_x(1,1) = 1.000000e-01*_x(1,0)-1.000000e-01*_x(1,0)*_x(2,0); _eval_dep_x(1,2) = (0)/2; _eval_dep_x(1,3) = (0)/6; - _eval_dep_x(2,1) = 0.1*_x(1,0)*_x(2,0)-0.1*_x(2,0); + _eval_dep_x(2,1) = 1.000000e-01*_x(1,0)*_x(2,0)-1.000000e-01*_x(2,0); _eval_dep_x(2,2) = (0)/2; _eval_dep_x(2,3) = (0)/6; break; } case _eval_x(2,0): { - _eval_dep_x(1,1) = 0.1*_x(1,0)-0.1*_x(1,0)*_x(2,0); + _eval_dep_x(1,1) = 1.000000e-01*_x(1,0)-1.000000e-01*_x(1,0)*_x(2,0); _eval_dep_x(1,2) = (0)/2; _eval_dep_x(1,3) = (0)/6; - _eval_dep_x(2,1) = 0.1*_x(1,0)*_x(2,0)-0.1*_x(2,0); + _eval_dep_x(2,1) = 1.000000e-01*_x(1,0)*_x(2,0)-1.000000e-01*_x(2,0); _eval_dep_x(2,2) = (0)/2; _eval_dep_x(2,3) = (0)/6; break; @@ -140,13 +140,13 @@ void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, i idx = BDFMap[__bdf_it]; switch(idx) { case _eval_x(1,0): { - _eval_dep_x(1,1) = 0.1*_x(1,0)-0.1*_x(1,0)*_x(2,0); + _eval_dep_x(1,1) = 1.000000e-01*_x(1,0)-1.000000e-01*_x(1,0)*_x(2,0); continue; } case _eval_x(2,0): { - _eval_dep_x(2,1) = 0.1*_x(1,0)*_x(2,0)-0.1*_x(2,0); + _eval_dep_x(2,1) = 1.000000e-01*_x(1,0)*_x(2,0)-1.000000e-01*_x(2,0); continue; @@ -165,8 +165,8 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int row, eq_var, c_row; int x_ind; int _d1; - _init_x(1,0) = 0.5; - _init_x(2,0) = 0.5; + _init_x(1,0) = 5.000000e-01; + _init_x(2,0) = 5.000000e-01; modelData->nSD[_idx_x(1,0)]++; modelData->nSD[_idx_x(1,0)]++; modelData->nSD[_idx_x(2,0)]++; @@ -228,7 +228,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; } } - cleanVector(states, 0, 2); SD_setupJacMatrices(modelData->jac_matrices); simulator->time = QSS_Time(2,0,0,0,ST_Binary, NULL); simulator->output = SD_Output("lotka_volterra",2,0,2,NULL,0,0,CI_Step,SD_Memory,MOD_output); diff --git a/src/mmoc/tests/system/gt_data/par_airconds/par_airconds.c b/src/mmoc/tests/system/gt_data/par_airconds/par_airconds.c index ae1bc9fd..77e56680 100644 --- a/src/mmoc/tests/system/gt_data/par_airconds/par_airconds.c +++ b/src/mmoc/tests/system/gt_data/par_airconds/par_airconds.c @@ -43,7 +43,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_1_idxs(idx); _apply_usage_event_1(_d1); if ((i >= 1 && i <= 4000)) { - _zc(0) = _th(i,0)-_tref(i)+_on(i)-0.5-(0); + _zc(0) = _th(i,0)-_tref(i)+_on(i)-5.000000e-01-(0); _zc(1) = (0)/1; } @@ -88,7 +88,7 @@ void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double _apply_usage_event_2(_d1); if ((i >= 1 && i <= 4000)) { if((_nextTref(i)==1000)) { - _tref(i) = 20.5; + _tref(i) = 2.050000e+01; }else { _tref(i) = 20; } @@ -218,7 +218,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(i = 1; i<=4000; i+=1) { _init_th(i,0) = __math__rand(4)+18; _CAP(i) = __math__rand(100)+550; - _RES(i) = __math__rand(0.4)+1.8; + _RES(i) = __math__rand(4.000000e-01)+1.800000e+00; _POT(i) = __math__rand(2)+13; _pmax = _pmax+_POT(i); _nextSample(i) = 1; @@ -227,7 +227,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) _nextTref(i) = 1000; } for(i = 1; i<=4000; i+=1) { - if(_init_th(i,0)-_tref(i)-0.5>0) { + if(_init_th(i,0)-_tref(i)-5.000000e-01>0) { _on(i) = 1; } } @@ -329,7 +329,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 4000); - cleanVector(states, 0, 4000); for(_d1 = 1; _d1<=4000; _d1+=1) { modelData->SZ[_idx_th(_d1,0)][states[_idx_th(_d1,0)]++] = _idx_event_1(_d1); } @@ -373,7 +372,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(_d1 = 1; _d1<=4000; _d1+=1) { modelData->event[_idx_event_2(_d1)].LHSDsc[events[_idx_event_2(_d1)]++] = _idx_tref(_d1); } - cleanVector(discretes, 0, 12000); + cleanVector(discretes, 0, 20000); for(_d1 = 1; _d1<=4000; _d1+=1) { modelData->DH[_idx_nextSample(_d1)][discretes[_idx_nextSample(_d1)]++] = _idx_event_3(_d1); } diff --git a/src/mmoc/tests/system/gt_data/par_airconds_cont/par_airconds_cont.c b/src/mmoc/tests/system/gt_data/par_airconds_cont/par_airconds_cont.c index abf76529..267849d8 100644 --- a/src/mmoc/tests/system/gt_data/par_airconds_cont/par_airconds_cont.c +++ b/src/mmoc/tests/system/gt_data/par_airconds_cont/par_airconds_cont.c @@ -95,7 +95,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_2_idxs(idx); _apply_usage_event_2(_d1); if ((i >= 1 && i <= 4)) { - _zc(0) = _update(i)-(0.5); + _zc(0) = _update(i)-(5.000000e-01); _zc(1) = (0)/1; _zc(2) = (0)/2; @@ -106,7 +106,7 @@ void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double _get_event_6_idxs(idx); _apply_usage_event_6(_d1); if ((i >= 1 && i <= 4000)) { - _zc(0) = _th(i,0)-_tref-_dtref+_on(i)-0.5-(0); + _zc(0) = _th(i,0)-_tref-_dtref+_on(i)-5.000000e-01-(0); _zc(1) = (0)/1; _zc(2) = (0)/2; @@ -132,11 +132,11 @@ void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double int i; switch(idx) { case _eval_event_3: { - _pref = 0.4; + _pref = 4.000000e-01; return; } case _eval_event_4: { - _pref = 0.5; + _pref = 5.000000e-01; return; } case _eval_event_5: { @@ -339,24 +339,24 @@ void QSS_initializeDataStructs(QSS_simulator simulator) _partSample(_d1) = 1; } _pmax = 0; - _pref = 0.5; + _pref = 5.000000e-01; _tref = 20; for(i = 1; i<=4000; i+=1) { _init_th(i,0) = __math__random(4)+18; _CAP(i) = __math__random(100)+550; - _RES(i) = __math__random(0.4)+1.8; - _POT(i) = __math__random(0.2)+13; + _RES(i) = __math__random(4.000000e-01)+1.800000e+00; + _POT(i) = __math__random(2.000000e-01)+13; _pmax = _pmax+_POT(i); _noise(i) = 2*pow(sin(i),2); _sampleNoise(i) = __math__random(2); _sections(i) = __getSection(i); } for(i = 1; i<=4; i+=1) { - _sections_init(i) = (i-1)*4000/4; - _sections_end(i) = i*4000/4; + _sections_init(i) = (i-1)*4000/(double)4; + _sections_end(i) = i*4000/(double)4; } for(i = 1; i<=4000; i+=1) { - if(_init_th(i,0)-_tref-0.5>0) { + if(_init_th(i,0)-_tref-5.000000e-01>0) { _on(i) = 1; _init_ptotal(0) = _init_ptotal(0)+_POT(i); } @@ -557,7 +557,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) c_row = _c_index(row); } cleanVector(states, 0, 4002); - cleanVector(states, 0, 4002); for(_d1 = 1; _d1<=4000; _d1+=1) { modelData->SZ[_idx_th(_d1,0)][states[_idx_th(_d1,0)]++] = _idx_event_6(_d1); } @@ -647,7 +646,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->event[_idx_event_2(_d1)].RHSSt[events[_idx_event_2(_d1)]++] = _idx_ptotal(0); } modelData->event[_idx_event_5].RHSSt[events[_idx_event_5]++] = _idx_ptotal(0); - cleanVector(discretes, 0, 8011); + cleanVector(discretes, 0, 16020); modelData->DH[_idx_dtref][discretes[_idx_dtref]++] = _idx_event_5; modelData->DH[_idx_nextSample][discretes[_idx_nextSample]++] = _idx_event_5; modelData->DH[_idx_pref][discretes[_idx_pref]++] = _idx_event_3; diff --git a/src/mmoc/tests/system/gt_data/rectifier/rectifier.c b/src/mmoc/tests/system/gt_data/rectifier/rectifier.c index 712333c7..6832f75e 100644 --- a/src/mmoc/tests/system/gt_data/rectifier/rectifier.c +++ b/src/mmoc/tests/system/gt_data/rectifier/rectifier.c @@ -181,13 +181,13 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int* outputs = (int*) malloc(2*sizeof(int)); int row, eq_var, c_row; int x_ind; - _L = 0.001; + _L = 1.000000e-03; _R = 10; - _Rd = 100000; - _Roff = 100000; - _Ron = 1e-05; + _Rd = 1.000000e+05; + _Roff = 1.000000e+05; + _Ron = 1.000000e-05; _U = 311; - _w = 314.16; + _w = 3.141600e+02; modelData->nSD[_idx_iL(0)]++; modelData->nSD[_idx_u(0)]++; modelData->nSD[_idx_u(0)]++; @@ -247,7 +247,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 2); - cleanVector(states, 0, 2); modelData->SZ[_idx_iL(0)][states[_idx_iL(0)]++] = _idx_event_1; modelData->SZ[_idx_u(0)][states[_idx_u(0)]++] = _idx_event_2; cleanVector(events, 0, 2); diff --git a/src/mmoc/tests/system/gt_data/rltest/rltest.c b/src/mmoc/tests/system/gt_data/rltest/rltest.c index d6e758e6..4fd443de 100644 --- a/src/mmoc/tests/system/gt_data/rltest/rltest.c +++ b/src/mmoc/tests/system/gt_data/rltest/rltest.c @@ -199,6 +199,7 @@ void CLC_initializeDataStructs(CLC_simulator simulator) simulator->data = CLC_Data(11,0,0,0,10,3,2,"rltest"); CLC_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(10*sizeof(int)); int* states = (int*) malloc(11*sizeof(int)); int* outputs = (int*) malloc(11*sizeof(int)); int row, eq_var, c_row; @@ -314,16 +315,17 @@ void CLC_initializeDataStructs(CLC_simulator simulator) modelData->DS[_idx_x1(_d1)][states[_idx_x1(_d1)]++] = _idx_x1(_d1+1); } cleanVector(states, 0, 11); + cleanVector(algebraics, 0, 10); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_x1(1); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } - cleanVector(states, 0, 11); + cleanVector(algebraics, 0, 10); for(row = 1; row <= 9; row++) { c_row = _c_index(row); _get_alg_eq_2_var_idxs(row, eq_var); @@ -333,7 +335,7 @@ void CLC_initializeDataStructs(CLC_simulator simulator) if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } if((2 <= _d1 + 1 && _d1 + 1 <= 10)) { @@ -341,7 +343,7 @@ void CLC_initializeDataStructs(CLC_simulator simulator) if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } } @@ -423,7 +425,6 @@ void CLC_initializeDataStructs(CLC_simulator simulator) modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; } } - cleanVector(states, 0, 11); SD_setupJacMatrices(modelData->jac_matrices); simulator->output = SD_Output("rltest",11,0,11,NULL,0,0,CI_Step,SD_Memory,MOD_output); SD_output modelOutput = simulator->output; @@ -451,6 +452,7 @@ void CLC_initializeDataStructs(CLC_simulator simulator) modelOutput->SO[_idx_x1(_d1)][states[_idx_x1(_d1)]++] = _idx_out_exp_1(_d1); } simulator->model = CLC_Model(MOD_definition, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian); + free(algebraics); free(states); free(outputs); } diff --git a/src/mmoc/tests/system/gt_data/rltest_LI/rltest_LI.c b/src/mmoc/tests/system/gt_data/rltest_LI/rltest_LI.c index 401212e1..d71131dd 100644 --- a/src/mmoc/tests/system/gt_data/rltest_LI/rltest_LI.c +++ b/src/mmoc/tests/system/gt_data/rltest_LI/rltest_LI.c @@ -365,6 +365,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) simulator->data = QSS_Data(11,0,0,0,10,3,2,"rltest_LI"); QSS_data modelData = simulator->data; MODEL_DATA_ACCESS(modelData) + int* algebraics = (int*) malloc(10*sizeof(int)); int* states = (int*) malloc(11*sizeof(int)); int* outputs = (int*) malloc(11*sizeof(int)); int row, eq_var, c_row; @@ -479,17 +480,17 @@ void QSS_initializeDataStructs(QSS_simulator simulator) for(_d1 = 2; _d1<=9; _d1+=1) { modelData->DS[_idx_x1(_d1,0)][states[_idx_x1(_d1,0)]++] = _idx_x1(_d1-1,0); } - cleanVector(states, 0, 11); + cleanVector(algebraics, 0, 10); for(row = 1; row <= 1; row++) { c_row = _c_index(row); x_ind = _idx_x1(1,0); if(in(modelData->jac_matrices->dg_dx[0]->index[c_row],modelData->jac_matrices->dg_dx[0]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[0]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[0]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[0]->index[c_row][algebraics[c_row]++] = x_ind; } } - cleanVector(states, 0, 11); + cleanVector(algebraics, 0, 10); for(row = 1; row <= 9; row++) { c_row = _c_index(row); _get_alg_eq_2_var_idxs(row, eq_var); @@ -499,7 +500,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } if((1 <= _d1 && _d1 <= 9)) { @@ -507,7 +508,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) if(in(modelData->jac_matrices->dg_dx[1]->index[c_row],modelData->jac_matrices->dg_dx[1]->size[c_row], x_ind)){ modelData->jac_matrices->dg_dx[1]->size[c_row]--; } else { - modelData->jac_matrices->dg_dx[1]->index[c_row][states[c_row]++] = x_ind; + modelData->jac_matrices->dg_dx[1]->index[c_row][algebraics[c_row]++] = x_ind; } } } @@ -589,7 +590,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelData->jac_matrices->df_dx[2]->index[c_row][states[c_row]++] = x_ind; } } - cleanVector(states, 0, 11); SD_setupJacMatrices(modelData->jac_matrices); simulator->time = QSS_Time(11,0,0,0,ST_Binary, NULL); simulator->output = SD_Output("rltest_LI",11,0,11,NULL,0,0,CI_Step,SD_Memory,MOD_output); @@ -618,6 +618,7 @@ void QSS_initializeDataStructs(QSS_simulator simulator) modelOutput->SO[_idx_x1(_d1,0)][states[_idx_x1(_d1,0)]++] = _idx_out_exp_1(_d1); } simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(algebraics); free(states); free(outputs); } diff --git a/src/mmoc/tests/system/gt_data/spikings/spikings.c b/src/mmoc/tests/system/gt_data/spikings/spikings.c index e15bea3e..e8b953bd 100644 --- a/src/mmoc/tests/system/gt_data/spikings/spikings.c +++ b/src/mmoc/tests/system/gt_data/spikings/spikings.c @@ -26,7 +26,7 @@ void MOD_definition(int idx, double *x, double *d, double *a, double t, double * _get_v_idxs(idx); _apply_usage_eq_1(_d1); if ((i >= 1 && i <= 1000)) { - _der_v(i,0) = 0.04*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); + _der_v(i,0) = 4.000000e-02*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); _der_v(i,1) = (0)/2; _der_v(i,2) = (0)/6; @@ -168,7 +168,7 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double _get_u_idxs(idx); _apply_usage_eq_1(_d1); if ((i >= 1 && i <= 1000)) { - _eval_dep_v(i,1) = 0.04*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); + _eval_dep_v(i,1) = 4.000000e-02*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); _eval_dep_v(i,2) = (0)/2; _eval_dep_v(i,3) = (0)/6; } @@ -186,7 +186,7 @@ void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double _get_v_idxs(idx); _apply_usage_eq_1(_d1); if ((i >= 1 && i <= 1000)) { - _eval_dep_v(i,1) = 0.04*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); + _eval_dep_v(i,1) = 4.000000e-02*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); _eval_dep_v(i,2) = (0)/2; _eval_dep_v(i,3) = (0)/6; } @@ -214,7 +214,7 @@ void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, i _get_v_idxs(idx); _apply_usage_eq_1(_d1); if ((i >= 1 && i <= 1000)) { - _eval_dep_v(i,1) = 0.04*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); + _eval_dep_v(i,1) = 4.000000e-02*_v(i,0)*_v(i,0)+5*_v(i,0)+140-_u(i,0)+_I(i); } @@ -246,8 +246,8 @@ void QSS_initializeDataStructs(QSS_simulator simulator) int _d1; int _rg_d1; int i; - _a = 0.02; - _b = 0.2; + _a = 2.000000e-02; + _b = 2.000000e-01; for(i = 1; i<=1000; i+=1) { _init_v(i,0) = -60; _init_u(i,0) = 0; @@ -392,7 +392,6 @@ void QSS_initializeDataStructs(QSS_simulator simulator) } } cleanVector(states, 0, 2000); - cleanVector(states, 0, 2000); for(_d1 = 1; _d1<=1000; _d1+=1) { modelData->SZ[_idx_v(_d1,0)][states[_idx_v(_d1,0)]++] = _idx_event_1(_d1); } diff --git a/src/mmoc/tests/system/gt_data/testFor/testFor.c b/src/mmoc/tests/system/gt_data/testFor/testFor.c new file mode 100644 index 00000000..ace0cf17 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/testFor/testFor.c @@ -0,0 +1,307 @@ +#include +#include +#include +#include + +#include "testFor.h" +#include +#include +#include +#include +#include + +void MOD_settings(SD_simulationSettings settings) +{ + settings->debug = 0; + settings->parallel = FALSE; + settings->hybrid = FALSE; + settings->method = 4; +} + +void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) +{ + int _d1; + int i; + switch(idx) { + case _eval_u1(1,0): { + _der_u1(1,0) = (-_u1(1,0)*_ax/_dx)+(-_u1(1,0)*_ay/_dy); + + + return; + } + } + if (_is_var_u1(idx)) { + _get_u1_idxs(idx); + _apply_usage_eq_2(_d1); + if ((i >= 2 && i <= 2)) { + _der_u1(i,0) = (-_u1(i,0)+_u1(i-1,0))*_ax/_dx+(-_u1(i,0)*_ay/_dy); + + + } + return; + } +} + +void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) +{ +} + +void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) +{ +} + +void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) +{ + int _d1; + if (_is_var_out_exp_1(idx)) { + _get_out_exp_1_idxs(idx); + _apply_usage_out_exp_1(_d1); + if ((_d1 >= 1 && _d1 <= 2)) { + _out = _u1(_d1,0); + } + return; + } +} + +void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) +{ + int row, row_t, eq_var, c_row, c_row_g; + int col, col_g, col_t; + int x_ind; + double aux; + int _d1; + int _rg_d1; + int i; + SD_cleanJacMatrices(dvdx); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u1(1,0); + col = pos(dvdx->df_dx[0]->index[c_row], dvdx->df_dx[0]->size[c_row], x_ind); + aux = 0; + dvdx->df_dx[0]->value[c_row][col] += aux; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u1_idxs(eq_var); + if((2 <= _d1 && _d1 <= 2)) { + x_ind = _idx_u1(_d1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + if((1 <= _d1-1 && _d1-1 <= 1)) { + x_ind = _idx_u1(_d1-1,0); + col = pos(dvdx->df_dx[1]->index[c_row], dvdx->df_dx[1]->size[c_row], x_ind); + _apply_usage_eq_2(_d1); + aux = 0; + dvdx->df_dx[1]->value[c_row][col] += aux; + } + } + // Assign Jacobian Matrix values for equation: 0 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { + row_t = dvdx->df_dx[0]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); + } + } + // Assign Jacobian Matrix values for equation: 1 + for (row = 0; row < 1; row++) { + for (col = 0; col < dvdx->df_dx[1]->size[row]; col++) { + row_t = dvdx->df_dx[1]->index[row][col]; + _assign_jac(row_t, dvdx->df_dx[1]->value[row][col]); + } + } +} + +void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) +{ + int _d1; + int i; + switch(idx) { + case _eval_u1(1,0): { + _eval_dep_u1(1,1) = (-_u1(1,0)*_ax/_dx)+(-_u1(1,0)*_ay/_dy); + break; + } + } + if (_is_var_u1(idx)) { + _get_u1_idxs(idx); + _apply_usage_eq_2(_d1); + if ((i >= 2 && i <= 2)) { + _eval_dep_u1(i,1) = (-_u1(i,0)+_u1(i-1,0))*_ax/_dx+(-_u1(i,0)*_ay/_dy); + + } + } + if (_is_var_u1(idx)) { + _get_u1_idxs(idx); + _apply_usage_eq_2(_d1+1); + if ((i >= 2 && i <= 2)) { + _eval_dep_u1(i,1) = (-_u1(i,0)+_u1(i-1,0))*_ax/_dx+(-_u1(i,0)*_ay/_dy); + + } + } +} + +void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) +{ + int idx; + int __bdf_it; + for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { + idx = BDFMap[__bdf_it]; + int _d1; + int i; + switch(idx) { + case _eval_u1(1,0): { + _eval_dep_u1(1,1) = (-_u1(1,0)*_ax/_dx)+(-_u1(1,0)*_ay/_dy); + + + continue; + } + } + if (_is_var_u1(idx)) { + _get_u1_idxs(idx); + _apply_usage_eq_2(_d1); + if ((i >= 2 && i <= 2)) { + _eval_dep_u1(i,1) = (-_u1(i,0)+_u1(i-1,0))*_ax/_dx+(-_u1(i,0)*_ay/_dy); + + + } + continue; + } + } +} + +void QSS_initializeDataStructs(QSS_simulator simulator) +{ + simulator->data = QSS_Data(2,0,0,0,0,2,0,"testFor"); + QSS_data modelData = simulator->data; + MODEL_DATA_ACCESS(modelData) + int* states = (int*) malloc(2*sizeof(int)); + int* outputs = (int*) malloc(2*sizeof(int)); + int row, eq_var, c_row; + int x_ind; + int _d1; + int _rg_d1; + int i; + _ax = 1; + _ay = 1; + _dx = 10/(double)100; + _dy = 10/(double)100; + _r = 1000; + for(i = 1; i<=2; i+=1) { + _init_u1(i,0) = 1; + } + modelData->nSD[_idx_u1(1,0)]++; + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->nSD[_idx_u1(_d1,0)]++; + } + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->nSD[_idx_u1(_d1-1,0)]++; + } + modelData->nDS[_idx_u1(1,0)]++; + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->nDS[_idx_u1(_d1,0)]++; + } + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->nDS[_idx_u1(_d1,0)]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + modelData->jac_matrices->df_dx[0]->size[c_row]++; + } + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u1_idxs(eq_var); + if((2 <= _d1 && _d1 <= 2)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + if((1 <= _d1-1 && _d1-1 <= 1)) { + modelData->jac_matrices->df_dx[1]->size[c_row]++; + } + } + QSS_allocDataMatrix(modelData); + cleanVector(states, 0, 2); + modelData->SD[_idx_u1(1,0)][states[_idx_u1(1,0)]++] = _idx_u1(1,0); + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->SD[_idx_u1(_d1,0)][states[_idx_u1(_d1,0)]++] = _idx_u1(_d1,0); + } + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->SD[_idx_u1(_d1-1,0)][states[_idx_u1(_d1-1,0)]++] = _idx_u1(_d1,0); + } + cleanVector(states, 0, 2); + modelData->DS[_idx_u1(1,0)][states[_idx_u1(1,0)]++] = _idx_u1(1,0); + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->DS[_idx_u1(_d1,0)][states[_idx_u1(_d1,0)]++] = _idx_u1(_d1,0); + } + for(_d1 = 2; _d1<=2; _d1+=1) { + modelData->DS[_idx_u1(_d1,0)][states[_idx_u1(_d1,0)]++] = _idx_u1(_d1-1,0); + } + cleanVector(states, 0, 2); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + x_ind = _idx_u1(1,0); + if(in(modelData->jac_matrices->df_dx[0]->index[c_row],modelData->jac_matrices->df_dx[0]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[0]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[0]->index[c_row][states[c_row]++] = x_ind; + } + } + cleanVector(states, 0, 2); + for(row = 1; row <= 1; row++) { + c_row = _c_index(row); + _get_eq_2_var_idxs(row, eq_var); + _get_u1_idxs(eq_var); + if((2 <= _d1 && _d1 <= 2)) { + x_ind = _idx_u1(_d1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + if((1 <= _d1-1 && _d1-1 <= 1)) { + x_ind = _idx_u1(_d1-1,0); + if(in(modelData->jac_matrices->df_dx[1]->index[c_row],modelData->jac_matrices->df_dx[1]->size[c_row], x_ind)){ + modelData->jac_matrices->df_dx[1]->size[c_row]--; + } else { + modelData->jac_matrices->df_dx[1]->index[c_row][states[c_row]++] = x_ind; + } + } + } + SD_setupJacMatrices(modelData->jac_matrices); + simulator->time = QSS_Time(2,0,0,0,ST_Binary, NULL); + simulator->output = SD_Output("testFor",2,0,2,NULL,0,0,CI_Step,SD_Memory,MOD_output); + SD_output modelOutput = simulator->output; + for(_d1 = 1; _d1<=2; _d1+=1) { + modelOutput->nOS[_idx_out_exp_1(_d1)]++; + } + for(_d1 = 1; _d1<=2; _d1+=1) { + modelOutput->nSO[_idx_u1(_d1,0)]++; + } + SD_allocOutputMatrix(modelOutput, 2, 0); + for(_d1 = 1; _d1<=2; _d1+=1) { + sprintf(modelOutput->variable[_idx_out_exp_1(_d1)].name, "u1[%d]",_d1); + } + cleanVector(outputs, 0, 2); + for(_d1 = 1; _d1<=2; _d1+=1) { + modelOutput->OS[_idx_out_exp_1(_d1)][outputs[_idx_out_exp_1(_d1)]++] = _idx_u1(_d1,0); + } + cleanVector(states, 0, 2); + for(_d1 = 1; _d1<=2; _d1+=1) { + modelOutput->SO[_idx_u1(_d1,0)][states[_idx_u1(_d1,0)]++] = _idx_out_exp_1(_d1); + } + simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); + free(states); + free(outputs); +} + +void CLC_initializeDataStructs(CLC_simulator simulator) +{ +} + diff --git a/src/mmoc/tests/system/gt_data/testFor/testFor.h b/src/mmoc/tests/system/gt_data/testFor/testFor.h new file mode 100644 index 00000000..cf5c1430 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/testFor/testFor.h @@ -0,0 +1,95 @@ +// Model data access macro. + +#define MODEL_DATA_ACCESS(m) \ + double* x = m->x; + +// Coeff multipliers definition. + +#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c +#define COEFF_MULTIPLIER_0 1 +#define COEFF_MULTIPLIER_1 1 +#define COEFF_MULTIPLIER_2 2 + +// Model Variables Macros + +// Macros definition for variable: _out_exp_1 +#define _idx_out_exp_1(d1) ((d1-1)) +#define _eval_out_exp_1(d1) ((d1-1)) +#define _is_var_out_exp_1(idx) idx >= 0 && idx < 2 +#define _get_out_exp_1_idxs(idx)\ + _d1 = (idx)+ 1; + +// Macros definition for variable: ax +#define _ax __PAR__ax + +// Macros definition for variable: ay +#define _ay __PAR__ay + +// Macros definition for variable: dx +#define _dx __PAR__dx + +// Macros definition for variable: dy +#define _dy __PAR__dy + +// Macros definition for variable: r +#define _r __PAR__r + +// Macros definition for variable: u1 +#define _idx_u1(d1,coeff) ((d1-1)) +#define _state_idx_u1(d1,coeff) ((d1-1))*3 + coeff +#define _u1(d1,coeff) x[_state_idx_u1(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _init_u1(d1,coeff) x[_state_idx_u1(d1,coeff)] +#define _q_u1(d1,coeff) q[_state_idx_u1(d1,coeff)] * COEFF_MULTIPLIER(coeff) +#define _eval_u1(d1,coeff) ((d1-1)) +#define _is_var_u1(idx) idx >= 0 && idx < 2 +#define _get_u1_idxs(idx)\ + _d1 = (idx)+ 1; +#define _eval_dep_u1(d1,coeff) dx[_state_idx_u1(d1,coeff)] + + +// Model Parameters Declaration + +// Macro for parameter: ax +double __PAR__ax; +// Macro for parameter: ay +double __PAR__ay; +// Macro for parameter: dx +double __PAR__dx; +// Macro for parameter: dy +double __PAR__dy; +// Macro for parameter: r +double __PAR__r; + +// Derivative Equations Macros + +// Macros for equation: 1 + +// Macros for equation: 2 +#define _apply_usage_eq_2(_d1) \ + i = _d1; +#define _get_eq_2_var_idxs(row, var)\ + _rg_d1 = 1 + (row-1)+ 1;\ + var = _idx_u1(_rg_d1,0); + +// Output Equations Macros + +// Macros for output equation: 1 +#define _apply_usage_out_exp_1(_d1) \ + _d1 = _d1; +#define _get_out_exp_1_var_idxs(row, var)\ + _rg_d1 = 0 + (row-1)+ 1;\ + var = _idx_out_exp_1(_rg_d1); +#define _out out[0] + +// Jacobian Macros definition. +#define _assign_jac(r, val) \ + col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ + dvdx->df_dx_t->index[r][0]++; \ + jac[col_t] = val; +#define _c_index(i) (i-1) + +#define _time t + +// Derivative Macros definition. +// Derivative definition for variable: u1 +#define _der_u1(d1,coeff) dx[coeff+1] diff --git a/src/mmoc/tests/system/gt_data/testFor/testFor.ini b/src/mmoc/tests/system/gt_data/testFor/testFor.ini new file mode 100644 index 00000000..0995aa8c --- /dev/null +++ b/src/mmoc/tests/system/gt_data/testFor/testFor.ini @@ -0,0 +1,15 @@ +minstep=1.00000e-14; +zchyst=1.00000e-12; +derdelta=1.00000e-08; +symdiff=0; +lps=0; +nodesize=10000; +jacobian=1; +it=0.00000e+00; +ft=1.00000e+00; +sol="LIQSS2"; +dqmin=(1.00000e-03); +dqrel=(1.00000e-03); +bdf=0; +BDFPartitionDepth=1; +BDFMaxStep=0.00000e+00; diff --git a/src/mmoc/tests/system/gt_data/testFor/testFor.mo b/src/mmoc/tests/system/gt_data/testFor/testFor.mo new file mode 100644 index 00000000..a83352f5 --- /dev/null +++ b/src/mmoc/tests/system/gt_data/testFor/testFor.mo @@ -0,0 +1,33 @@ +model testFor + Real u1[2]; + parameter Real ax=1,ay=1,r=1000; + constant Integer N = 100, M=100; + parameter Real dx=10/N; + parameter Real dy=10/M; + +initial algorithm + for i in 1:2 loop + u1[i]:=1; + end for; +equation + der(u1[1])=(-u1[1]*ax/dx)+(-u1[1]*ay/dy) /*+ r*(u1[1]^2- u1[1]^3)*/; + for i in 2:2 loop + der(u1[i])=(-u1[i]+u1[i-1])*ax/dx+(-u1[i]*ay/dy) /*+ r*(u1[1]^2- u1[1]^3)*/; +end for; + annotation( + + experiment( + MMO_Description="", + MMO_Solver=LIQSS2, + MMO_SymDiff=false, + MMO_PartitionMethod=Metis, + MMO_Output={u1[:]}, + Jacobian=Dense, + MMO_BDF_PDepth=1, + MMO_BDF_Max_Step=0, + StartTime=0.0, + StopTime=1.0, + Tolerance={1e-3}, + AbsTolerance={1e-3} + )); +end testFor; diff --git a/src/mmoc/tests/system/models_test.cpp b/src/mmoc/tests/system/models_test.cpp index e8133677..2b45c852 100644 --- a/src/mmoc/tests/system/models_test.cpp +++ b/src/mmoc/tests/system/models_test.cpp @@ -56,10 +56,38 @@ TEST_P(IModelTests, GenerateCode) EXPECT_TRUE(result.good()); } -const char* models[] = {"adr", "advection", "advection2D", "advection2D_LI", "airconds", "aircont", "bball_downstairs", - "boost", "buck", "buckboost", "buck_circuit", "buck_term", "cuk", "cuk2", - "interleaved", "inverters", "lc_line", "lotka_volterra", "NeuralNetwork1", "par_airconds", "par_airconds_cont", - "rectifier", "rltest", "rltest_LI", "spikings"}; +const char* models[] = {"adr", + "advection", + "advection2D", + "advection2D_LI", + "advection_quoted", + "advectionFlux", + "airconds", + "aircont", + "bball_downstairs", + "boost", + "BouncingBall", + "buck", + "buckboost", + "buck_circuit", + "buck_term", + "burgers", + "cuk", + "cuk2", + "interleaved", + "inverters", + "lc_line", + "lotka_volterra", + "NeuralNetwork1", + "par_airconds", + "par_airconds_cont", + "rectifier", + "rltest", + "rltest_LI", + "spikings", + "testFor", + "TYSON", + "VIRplanoS"}; INSTANTIATE_TEST_SUITE_P(Models, IModelTests, testing::ValuesIn(models)); diff --git a/src/mmoc/util/ast_util.h b/src/mmoc/util/ast_util.h index d3b21929..46354838 100644 --- a/src/mmoc/util/ast_util.h +++ b/src/mmoc/util/ast_util.h @@ -82,14 +82,21 @@ class AST_Expression_Traverse { template class AST_Expression_Visitor { public: + AST_Expression_Visitor() : _left(nullptr), _right(nullptr), _in_bin_op(false){}; virtual ~AST_Expression_Visitor() = default; R apply(AST_Expression e) { switch (e->expressionType()) { case EXPBINOP: { AST_Expression_BinOp b = e->getAsBinOp(); - AST_Expression left = b->left(), right = b->right(); - return (foldTraverseElement(apply(left), apply(right), b->binopType())); + if (!_in_bin_op) { + _in_bin_op = true; + _left = b->left(); + _right = b->right(); + } + R ret = foldTraverseElement(apply(b->left()), apply(b->right()), b->binopType()); + _in_bin_op = false; + return ret; } case EXPUMINUS: return foldTraverseElementUMinus(e); @@ -98,6 +105,11 @@ class AST_Expression_Visitor { } }; + protected: + AST_Expression _left; + AST_Expression _right; + bool _in_bin_op; + private: virtual R foldTraverseElement(AST_Expression) = 0; virtual R foldTraverseElementUMinus(AST_Expression) = 0; diff --git a/src/mmoc/util/model_config.h b/src/mmoc/util/model_config.h index 30bbd9ee..e9ceb94e 100644 --- a/src/mmoc/util/model_config.h +++ b/src/mmoc/util/model_config.h @@ -62,6 +62,8 @@ class ModelConfig { inline bool algorithm() { return _algorithm; }; inline void setStateNbr(int state_nbr) { _state_nbr = state_nbr; } inline int stateNbr() const { return _state_nbr; } + inline void setAlgebraicNbr(int algebraic_nbr) { _algebraic_nbr = algebraic_nbr; } + inline int algebraicNbr() const { return _algebraic_nbr; } inline void setSymDiff(bool sym_diff) { _sym_diff = sym_diff; } inline bool symDiff() const { return _sym_diff; } @@ -105,6 +107,7 @@ class ModelConfig { _ordered_derivatives(), _events(), _algorithm(false), + _algebraic_nbr(0), _state_nbr(0), _symbols(), _local_symbols(), @@ -128,6 +131,7 @@ class ModelConfig { IR::EquationTable _ordered_derivatives; IR::EventTable _events; bool _algorithm; + int _algebraic_nbr; int _state_nbr; VarSymbolTable _symbols; SymbolTable _local_symbols; diff --git a/src/mmoc/util/symbol_table.cpp b/src/mmoc/util/symbol_table.cpp index 3e0b2f3c..775e727d 100644 --- a/src/mmoc/util/symbol_table.cpp +++ b/src/mmoc/util/symbol_table.cpp @@ -19,15 +19,15 @@ #include "symbol_table.h" -#include #include +#include -#include "../ast/ast_builder.h" -#include "../ast/expression.h" -#include "../ir/equation.h" -#include "../ir/expression.h" -#include "../ir/helpers.h" -#include "util.h" +#include +#include +#include +#include +#include +#include namespace MicroModelica { using namespace IR; @@ -122,7 +122,6 @@ Variable &Variable::operator=(const Variable &other) _hasOffset = other._hasOffset; _offset = other._offset; _realType = other._realType; - return *this; } @@ -175,6 +174,8 @@ void Variable::processModification() } } +void Variable::setName(string name) { _name = name; } + unsigned int Variable::size() { vector::const_iterator it; @@ -217,9 +218,9 @@ string Variable::declaration(string prefix) { stringstream buffer; if (type()->print() == "Integer") { - buffer << "int "; + buffer << "int "; } else { - buffer << "double "; + buffer << "double "; } buffer << prefix << name(); if (isArray()) { @@ -271,6 +272,10 @@ void VarSymbolTable::initialize(TypeSymbolTable ty) reinit.setBuiltIn(); reinit.setName("reinit"); insert("reinit", reinit); + Variable terminate(ty["Real"].get(), 0, nullptr, nullptr, vector(1, 0), false); + terminate.setBuiltIn(); + terminate.setName("terminate"); + insert("terminate", terminate); Variable chain_rule(ty["Real"].get(), TP_LOCAL, nullptr, nullptr, vector(1, 0), false); chain_rule.setBuiltIn(); chain_rule.setName("aux"); diff --git a/src/mmoc/util/symbol_table.h b/src/mmoc/util/symbol_table.h index 04328f40..2181d945 100644 --- a/src/mmoc/util/symbol_table.h +++ b/src/mmoc/util/symbol_table.h @@ -96,7 +96,7 @@ class Variable { inline bool hasEachModifier() { return _hasEach; }; inline void setEachModifier(bool each) { _hasEach = each; }; inline string name() const { return _name; }; - inline void setName(string n) { _name = n; }; + void setName(string name); inline AST_Expression exp() { return _exp; }; inline bool isArray() const { return _isArray; }; inline bool isScalar() { return !isArray(); }; diff --git a/src/mmoc/util/table.h b/src/mmoc/util/table.h index 98ee39dc..5adf4c90 100644 --- a/src/mmoc/util/table.h +++ b/src/mmoc/util/table.h @@ -21,7 +21,7 @@ #include -#include +#include template class ModelTable { @@ -64,6 +64,16 @@ class ModelTable { return (end(it) ? Value() : value(it)); } inline Value value(iterator& it) { return it->second; } + Value value(int pos) + { + iterator it = _map.begin(); + int current_pos = 0; + while (current_pos < pos && it != _map.end()) { + it++; + current_pos++; + } + return (end(it) ? Value() : value(it)); + } inline Key key(iterator& it) { return it->first; }; void merge(ModelTable other) { @@ -81,12 +91,13 @@ class ModelTable { bool empty() { return _map.empty(); }; const int size() const { return _map.size(); }; - std::list keys() { + std::list keys() + { std::list ret; ModelTable::iterator it; for (Value v = begin(it); !end(it); v = next(it)) { ret.push_back(key(it)); - } + } return ret; } diff --git a/src/mmoc/util/util.cpp b/src/mmoc/util/util.cpp index 8fe0bcc3..eee6bfe9 100644 --- a/src/mmoc/util/util.cpp +++ b/src/mmoc/util/util.cpp @@ -142,7 +142,7 @@ Option Utils::readPackage(string file_name, bool full_path, str { fstream package; string name; - string compiled_package_name = file_name; + string compiled_package_name = file_name; if (full_path) { name = file_name; assert(!compiled_package_name.empty()); @@ -359,7 +359,7 @@ Variable Utils::variable(AST_Expression exp) } Option var = ModelConfig::instance().lookup(var_name); if (!var) { - Error::instance().add(exp->lineNum(), EM_IR | EM_VARIABLE_NOT_FOUND, ER_Error, "utils.cpp:342 %s", var_name.c_str()); + Error::instance().add(exp->lineNum(), EM_IR | EM_VARIABLE_NOT_FOUND, ER_Error, "utils.cpp:362 %s", var_name.c_str()); } return var.get(); } diff --git a/src/mmoc/util/visitors/expression_printer.cpp b/src/mmoc/util/visitors/expression_printer.cpp index c8fa648a..2e83a19e 100644 --- a/src/mmoc/util/visitors/expression_printer.cpp +++ b/src/mmoc/util/visitors/expression_printer.cpp @@ -19,6 +19,7 @@ #include "expression_printer.h" +#include #include #include @@ -27,6 +28,7 @@ #include #include #include +#include namespace MicroModelica { using namespace IR; @@ -118,7 +120,7 @@ string ExpressionPrinter::foldTraverseElement(AST_Expression exp) break; } case EXPREAL: - buffer << exp->getAsReal()->val(); + buffer << std::scientific << exp->getAsReal()->val(); break; case EXPSTRING: buffer << exp->getAsString()->str(); @@ -163,9 +165,10 @@ string ExpressionPrinter::foldTraverseElement(string l, string r, BinOpType bot) case BINOPSUB: buffer << l << "-" << r; break; - case BINOPDIV: - buffer << l << "/" << r; - break; + case BINOPDIV: { + IsConstantExpression constant_exp(true, true); + buffer << l << "/" << ((constant_exp.apply(_right)) ? "(double)" : "") << r; + } break; case BINOPMULT: buffer << l << "*" << r; break; diff --git a/src/mmoc/util/visitors/is_constant_expression.cpp b/src/mmoc/util/visitors/is_constant_expression.cpp index 6344a705..4b30d443 100644 --- a/src/mmoc/util/visitors/is_constant_expression.cpp +++ b/src/mmoc/util/visitors/is_constant_expression.cpp @@ -27,9 +27,12 @@ namespace MicroModelica { using namespace IR; namespace Util { -IsConstantExpression::IsConstantExpression() : _in_index_list(false), _eval_int(false) {} +IsConstantExpression::IsConstantExpression() : _in_index_list(false), _eval_int(false), _integer_valued(false) {} -IsConstantExpression::IsConstantExpression(bool eval_int) : _in_index_list(false), _eval_int(eval_int) {} +IsConstantExpression::IsConstantExpression(bool eval_int, bool integer_valued) + : _in_index_list(false), _eval_int(eval_int), _integer_valued(integer_valued) +{ +} bool IsConstantExpression::foldTraverseElement(AST_Expression exp) { @@ -44,7 +47,9 @@ bool IsConstantExpression::foldTraverseElement(AST_Expression exp) cr->name().c_str()); break; } - if (!var->isConstant() && !var->isParameter() && (var->name() != "_chain_rule")) { + if (_integer_valued) { + ret = var->isConstant(); + } else if (!var->isConstant() && !var->isParameter() && (var->name() != "_chain_rule")) { ret = false; } break; @@ -55,6 +60,12 @@ bool IsConstantExpression::foldTraverseElement(AST_Expression exp) } break; } + case EXPREAL: { + if (_integer_valued) { + ret = false; + } + break; + } case EXPOUTPUT: { AST_Expression_Output out = exp->getAsOutput(); AST_ExpressionListIterator it; diff --git a/src/mmoc/util/visitors/is_constant_expression.h b/src/mmoc/util/visitors/is_constant_expression.h index 54453170..fe8eb78b 100644 --- a/src/mmoc/util/visitors/is_constant_expression.h +++ b/src/mmoc/util/visitors/is_constant_expression.h @@ -17,7 +17,7 @@ ******************************************************************************/ -#pragma once +#pragma once #include #include @@ -27,7 +27,7 @@ namespace Util { class IsConstantExpression : public AST_Expression_Visitor { public: IsConstantExpression(); - IsConstantExpression(bool eval_int); + IsConstantExpression(bool eval_int, bool integer_valued = false); ~IsConstantExpression() = default; private: @@ -36,6 +36,7 @@ class IsConstantExpression : public AST_Expression_Visitor { inline bool foldTraverseElement(bool l, bool r, BinOpType bot) { return l && r; } bool _in_index_list; bool _eval_int; + bool _integer_valued; }; } // namespace Util diff --git a/src/mmoc/util/visitors/is_constant_index.cpp b/src/mmoc/util/visitors/is_constant_index.cpp index 3cd66992..32ed42ea 100644 --- a/src/mmoc/util/visitors/is_constant_index.cpp +++ b/src/mmoc/util/visitors/is_constant_index.cpp @@ -19,9 +19,9 @@ #include "is_constant_index.h" -#include "../error.h" -#include "../model_config.h" -#include "../util.h" +#include +#include +#include namespace MicroModelica { using namespace Deps; @@ -74,8 +74,7 @@ bool CheckIndexExpression::foldTraverseElement(AST_Expression exp) bool CheckIndexExpression::isConstant() const { return _is_constant; } -bool CheckIndexExpression::hasParameters() const { return _has_parameters; } - +bool CheckIndexExpression::hasParameters() const { return _has_parameters; } } // namespace Util } // namespace MicroModelica diff --git a/src/mmoc/util/visitors/is_constant_index.h b/src/mmoc/util/visitors/is_constant_index.h index c854ecaf..00bb7df3 100644 --- a/src/mmoc/util/visitors/is_constant_index.h +++ b/src/mmoc/util/visitors/is_constant_index.h @@ -19,9 +19,9 @@ #pragma once -#include "../../ast/ast_builder.h" -#include "../../ir/index.h" -#include "../ast_util.h" +#include +#include +#include namespace MicroModelica { namespace Util { diff --git a/src/mmoc/util/visitors/partial_eval_exp.cpp b/src/mmoc/util/visitors/partial_eval_exp.cpp index a085ac38..3607f7ef 100644 --- a/src/mmoc/util/visitors/partial_eval_exp.cpp +++ b/src/mmoc/util/visitors/partial_eval_exp.cpp @@ -211,7 +211,7 @@ int PartialEvalExp::getValue(AST_Expression exp) AST_Expression_ComponentReference ref = exp->getAsComponentReference(); Option var = ModelConfig::instance().lookup(ref->name()); if (!var) { - Error::instance().add(exp->lineNum(), EM_IR | EM_VARIABLE_NOT_FOUND, ER_Error, "partial_eval_exp.cpp:148 %s", ref->name().c_str()); + Error::instance().add(exp->lineNum(), EM_IR | EM_VARIABLE_NOT_FOUND, ER_Error, "partial_eval_exp.cpp:214 %s", ref->name().c_str()); return 0; } assert(var->isConstant()); diff --git a/src/mmoc/util/visitors/pwl_map_values.cpp b/src/mmoc/util/visitors/pwl_map_values.cpp index ddc860d6..1a34c478 100644 --- a/src/mmoc/util/visitors/pwl_map_values.cpp +++ b/src/mmoc/util/visitors/pwl_map_values.cpp @@ -47,8 +47,10 @@ AST_Expression PWLMapValues::foldTraverseElement(AST_Expression exp) break; } case EXPINTEGER: - _constant = exp->getAsInteger()->val(); - _slope = 0; + if (!_in_bin_op) { + _constant = exp->getAsInteger()->val(); + _slope = 0; + } break; default: return exp; @@ -57,7 +59,7 @@ AST_Expression PWLMapValues::foldTraverseElement(AST_Expression exp) } AST_Expression PWLMapValues::foldTraverseElement(AST_Expression left, AST_Expression right, BinOpType type) -{ +{ EvalInitExp eval_exp; static const bool EVAL_INT = true; IsConstantExpression constant_exp(EVAL_INT); @@ -101,7 +103,7 @@ void PWLMapValues::assign(AST_Expression left, AST_Expression right, bool cte_le { EvalInitExp eval_exp; if (cte_left && cte_right) { - _constant = sign * (eval_exp.apply(left) + eval_exp.apply(right)); + _constant = eval_exp.apply(left) + sign * eval_exp.apply(right); } else if (cte_right) { _constant = sign * eval_exp.apply(right); } else { @@ -109,13 +111,13 @@ void PWLMapValues::assign(AST_Expression left, AST_Expression right, bool cte_le } } -int PWLMapValues::constant() const { return _constant; } +int PWLMapValues::constant() const { return _constant; } -int PWLMapValues::slope() const { return _slope; } +int PWLMapValues::slope() const { return _slope; } -std::string PWLMapValues::variable() const { return _variable; } +std::string PWLMapValues::variable() const { return _variable; } -bool PWLMapValues::isScalar() const { return _slope == 0;} +bool PWLMapValues::isScalar() const { return _slope == 0; } } // namespace Util } // namespace MicroModelica diff --git a/src/test-suite/BouncingBall/BouncingBall.c b/src/test-suite/BouncingBall/BouncingBall.c deleted file mode 100644 index 61e5eb5d..00000000 --- a/src/test-suite/BouncingBall/BouncingBall.c +++ /dev/null @@ -1,357 +0,0 @@ -#include -#include -#include -#include - -#include - - -#include -#include -#include -#include - -double __PAR_spring1_b = 0; -double __PAR_spring1_k = 0; -double __PAR_fixed1_s0 = 0; -double __PAR_ball1_m = 0; -double __PAR_ball1_g = 0; - -void -MOD_settings(SD_simulationSettings settings) -{ - settings->debug = 0; - settings->parallel = FALSE; - settings->hybrid = TRUE; - settings->method = 5; -} - -void -MOD_definition(int i, double *x, double *d, double *alg, double t, double *dx) -{ - switch(i) - { - case 0: - dx[1] = x[4]; - dx[2] = (x[5])/2; - dx[3] = (x[6]*2)/6; - return; - case 1: - alg[0] = __PAR_fixed1_s0; - alg[0 + 1] = 0.0; - alg[0 + 2] = 0.0; - alg[4] = 0.0; - alg[4 + 1] = 0.0; - alg[4 + 2] = 0.0; - alg[8] = x[4]; - alg[8 + 1] = x[5]; - alg[8 + 2] = x[6]*2; - alg[12] = x[0]; - alg[12 + 1] = x[1]; - alg[12 + 2] = x[2]*2; - alg[16] = alg[0]; - alg[16 + 1] = alg[1]; - alg[16 + 2] = alg[2]; - alg[20] = alg[4]; - alg[20 + 1] = alg[5]; - alg[20 + 2] = alg[6]; - alg[24] = alg[12]; - alg[24 + 1] = alg[13]; - alg[24 + 2] = alg[14]; - alg[28] = alg[8]; - alg[28 + 1] = alg[9]; - alg[28 + 2] = alg[10]; - alg[32] = alg[28]-alg[20]; - alg[32 + 1] = -alg[21]+alg[29]; - alg[32 + 2] = alg[30]-alg[22]; - alg[36] = alg[24]-alg[16]; - alg[36 + 1] = -alg[17]+alg[25]; - alg[36 + 2] = alg[26]-alg[18]; - alg[40] = d[(0)]*(__PAR_spring1_b*alg[32]+__PAR_spring1_k*alg[36])+(1.0-d[(0)])*(0.0); - alg[40 + 1] = (__PAR_spring1_k*alg[37]+__PAR_spring1_b*alg[33])*d[(0)]; - alg[40 + 2] = d[(0)]*(alg[38]*__PAR_spring1_k+alg[34]*__PAR_spring1_b); - alg[48] = (-alg[40]); - alg[48 + 1] = -alg[41]; - alg[48 + 2] = -alg[42]; - dx[1] = (alg[48]-__PAR_ball1_m*__PAR_ball1_g)*(1.0/(__PAR_ball1_m)); - dx[2] = ((1.0/(__PAR_ball1_m))*alg[49])/2; - dx[3] = (alg[50]*(1.0/(__PAR_ball1_m)))/6; - return; - } -} - -void -MOD_dependencies(int i, double *x, double *d, double *alg, double t, double *der, int *map) -{ - switch(i) - { - case 0: - alg[0] = __PAR_fixed1_s0; - alg[0 + 1] = 0.0; - alg[0 + 2] = 0.0; - alg[4] = 0.0; - alg[4 + 1] = 0.0; - alg[4 + 2] = 0.0; - alg[8] = x[4]; - alg[8 + 1] = x[5]; - alg[8 + 2] = x[6]*2; - alg[12] = x[0]; - alg[12 + 1] = x[1]; - alg[12 + 2] = x[2]*2; - alg[16] = alg[0]; - alg[16 + 1] = alg[1]; - alg[16 + 2] = alg[2]; - alg[20] = alg[4]; - alg[20 + 1] = alg[5]; - alg[20 + 2] = alg[6]; - alg[24] = alg[12]; - alg[24 + 1] = alg[13]; - alg[24 + 2] = alg[14]; - alg[28] = alg[8]; - alg[28 + 1] = alg[9]; - alg[28 + 2] = alg[10]; - alg[32] = alg[28]-alg[20]; - alg[32 + 1] = -alg[21]+alg[29]; - alg[32 + 2] = alg[30]-alg[22]; - alg[36] = alg[24]-alg[16]; - alg[36 + 1] = -alg[17]+alg[25]; - alg[36 + 2] = alg[26]-alg[18]; - alg[40] = d[(0)]*(__PAR_spring1_b*alg[32]+__PAR_spring1_k*alg[36])+(1.0-d[(0)])*(0.0); - alg[40 + 1] = (__PAR_spring1_k*alg[37]+__PAR_spring1_b*alg[33])*d[(0)]; - alg[40 + 2] = d[(0)]*(alg[38]*__PAR_spring1_k+alg[34]*__PAR_spring1_b); - alg[48] = (-alg[40]); - alg[48 + 1] = -alg[41]; - alg[48 + 2] = -alg[42]; - der[4 + 1] = (alg[48]-__PAR_ball1_m*__PAR_ball1_g)*(1.0/(__PAR_ball1_m)); - der[4 + 2] = ((1.0/(__PAR_ball1_m))*alg[49])/2; - der[4 + 3] = (alg[50]*(1.0/(__PAR_ball1_m)))/6; - return; - case 1: - alg[0] = __PAR_fixed1_s0; - alg[0 + 1] = 0.0; - alg[0 + 2] = 0.0; - alg[4] = 0.0; - alg[4 + 1] = 0.0; - alg[4 + 2] = 0.0; - alg[8] = x[4]; - alg[8 + 1] = x[5]; - alg[8 + 2] = x[6]*2; - alg[12] = x[0]; - alg[12 + 1] = x[1]; - alg[12 + 2] = x[2]*2; - alg[16] = alg[0]; - alg[16 + 1] = alg[1]; - alg[16 + 2] = alg[2]; - alg[20] = alg[4]; - alg[20 + 1] = alg[5]; - alg[20 + 2] = alg[6]; - alg[24] = alg[12]; - alg[24 + 1] = alg[13]; - alg[24 + 2] = alg[14]; - alg[28] = alg[8]; - alg[28 + 1] = alg[9]; - alg[28 + 2] = alg[10]; - alg[32] = alg[28]-alg[20]; - alg[32 + 1] = -alg[21]+alg[29]; - alg[32 + 2] = alg[30]-alg[22]; - alg[36] = alg[24]-alg[16]; - alg[36 + 1] = -alg[17]+alg[25]; - alg[36 + 2] = alg[26]-alg[18]; - alg[40] = d[(0)]*(__PAR_spring1_b*alg[32]+__PAR_spring1_k*alg[36])+(1.0-d[(0)])*(0.0); - alg[40 + 1] = (__PAR_spring1_k*alg[37]+__PAR_spring1_b*alg[33])*d[(0)]; - alg[40 + 2] = d[(0)]*(alg[38]*__PAR_spring1_k+alg[34]*__PAR_spring1_b); - alg[48] = (-alg[40]); - alg[48 + 1] = -alg[41]; - alg[48 + 2] = -alg[42]; - der[0 + 1] = x[4]; - der[0 + 2] = (x[5])/2; - der[0 + 3] = (x[6]*2)/6; - der[4 + 1] = (alg[48]-__PAR_ball1_m*__PAR_ball1_g)*(1.0/(__PAR_ball1_m)); - der[4 + 2] = ((1.0/(__PAR_ball1_m))*alg[49])/2; - der[4 + 3] = (alg[50]*(1.0/(__PAR_ball1_m)))/6; - return; - } -} - -void -MOD_zeroCrossing(int i, double *x, double *d, double *alg, double t, double *zc) -{ - int i0 = i; - switch(i) - { - case 0: - alg[0] = __PAR_fixed1_s0; - alg[0 + 1] = 0.0; - alg[0 + 2] = 0.0; - alg[12] = x[0]; - alg[12 + 1] = x[1]; - alg[12 + 2] = x[2]*2; - alg[16] = alg[0]; - alg[16 + 1] = alg[1]; - alg[16 + 2] = alg[2]; - alg[24] = alg[12]; - alg[24 + 1] = alg[13]; - alg[24 + 2] = alg[14]; - alg[36] = alg[24]-alg[16]; - alg[36 + 1] = -alg[17]+alg[25]; - alg[36 + 2] = alg[26]-alg[18]; - zc[0] = alg[36]-(0.0); - zc[1] = alg[37]; - zc[2] = (alg[38])/2; - return; - case 1: - zc[0] = d[(0)]-(0.0); - zc[1] = 0.0; - zc[2] = (0.0)/2; - return; - case 2: - zc[0] = d[(0)]-(1.0); - zc[1] = 0.0; - zc[2] = (0.0)/2; - return; - } -} - -void -MOD_handlerPos(int i, double *x, double *d, double *alg, double t) -{ - int i0 = i; - switch(i) - { - case 0: - d[(0)] = 0.0; - return; - case 1: - d[(1)] = 1.0; - return; - } -} - -void -MOD_handlerNeg(int i, double *x, double *d, double *alg, double t) -{ - int i0 = i; - switch(i) - { - case 0: - d[(0)] = 1.0; - return; - case 2: - d[(1)] = 0.0; - return; - } -} - -void -MOD_output(int i, double *x, double *d, double *alg, double t, double *out) -{ - switch(i) - { - case 0: - out[0] = x[0]; - return; - } -} - -void -QSS_initializeDataStructs(QSS_simulator simulator) -{ - int *discretes = (int*)malloc(2*sizeof(int)); - int *events = (int*)malloc(3*sizeof(int)); - int *outputs = (int*)malloc(1*sizeof(int)); - int *states = (int*)malloc(2*sizeof(int)); - int i0; - simulator->data = QSS_Data(2,2,3,0,14,"BouncingBall"); - QSS_data modelData = simulator->data; - const double t = 0; - - // Allocate main data structures. - __PAR_spring1_b = 10.0; - __PAR_spring1_k = 10000.0; - __PAR_fixed1_s0 = 0.0; - __PAR_ball1_m = 1.0; - __PAR_ball1_g = 9.800000000000000710542736e+00; - modelData->x[0] = 10.0; - // Initialize model code. - modelData->nDS[0] = 1; - modelData->nDS[1]++; - modelData->nDS[1]++; - modelData->nSD[1]++; - modelData->nSD[0]++; - modelData->nSD[1]++; - modelData->nZS[0]++; - modelData->nSZ[0]++; - modelData->nHZ[0] += 2; - modelData->nHD[0] = 1; - modelData->event[0].nLHSDsc = 1; - modelData->event[1].nLHSDsc = 1; - modelData->event[2].nLHSDsc = 1; - QSS_allocDataMatrix(modelData); - // Initialize model data. - // Initialize model time. - cleanVector(states,0,2); - - modelData->DS[0][states[0]++] = 1; - modelData->DS[1][states[1]++] = 0; - modelData->DS[1][states[1]++] = 1; - cleanVector(states,0,2); - - modelData->SD[1][states[1]++] = 0; - modelData->SD[0][states[0]++] = 1; - modelData->SD[1][states[1]++] = 1; - cleanVector(events,0,3); - - modelData->ZS[0][events[0]++] = 0; - cleanVector(states,0,2); - - modelData->SZ[0][states[0]++] = 0; - cleanVector(events,0,3); - - modelData->HZ[0][events[0]++] = 1; - modelData->HZ[0][events[0]++] = 2; - cleanVector(events,0,3); - - modelData->HD[0][events[0]++] = 1; - cleanVector(events,0,3); - - modelData->event[0].LHSDsc[events[0]++] = 0; - modelData->event[1].LHSDsc[events[1]++] = 1; - modelData->event[2].LHSDsc[events[2]++] = 1; - cleanVector(events,0,3); - - modelData->event[0].direction = 0; - modelData->event[0].relation = 0; - modelData->event[1].direction = 1; - modelData->event[1].relation = 2; - modelData->event[2].direction = -1; - modelData->event[2].relation = 0; - simulator->time = QSS_Time(2,3,0,0,ST_Binary,NULL); - - double period[1]; - period[0] = 0.01; - simulator->output = SD_Output("BouncingBall",1,2,2,period,1,0,CI_Sampled,SD_Memory,MOD_output); - SD_output modelOutput = simulator->output; - - modelOutput->nOS[0] = 1; - modelOutput->nSO[0]++; - SD_allocOutputMatrix(modelOutput,2,2); - cleanVector(states,0,2); - - cleanVector(outputs,0,1); - - sprintf(modelOutput->variable[0].name,"ball1_y"); - cleanVector(outputs,0,1); - - modelOutput->SO[0][states[0]++] = 0; - modelOutput->OS[0][outputs[0]++] = 0; - simulator->model = QSS_Model(MOD_definition,MOD_dependencies,MOD_zeroCrossing,MOD_handlerPos,MOD_handlerNeg); - free(discretes); - free(events); - free(outputs); - free(states); -} - -void -CLC_initializeDataStructs (CLC_simulator simulator) -{ -} diff --git a/src/test-suite/BouncingBall/ball1_y.dat b/src/test-suite/BouncingBall/ball1_y.dat deleted file mode 100644 index a42cabc8..00000000 --- a/src/test-suite/BouncingBall/ball1_y.dat +++ /dev/null @@ -1,1001 +0,0 @@ -0.0000000000000000 10.0000000000000000 -0.0100000000000000 10.0000000000000000 -0.0200000000000000 10.0000000000000000 -0.0300000000000000 10.0000000000000000 -0.0400000000000000 10.0000000000000000 -0.0500000000000000 9.9877500000000499 -0.0600000000000000 9.9823600000000496 -0.0700000000000000 9.9759900000000510 -0.0800000000000000 9.9686400000000503 -0.0900000000000000 9.9603100000000513 -0.1000000000000000 9.9510000000000520 -0.1100000000000000 9.9407100000000508 -0.1200000000000000 9.9294400000000511 -0.1300000000000000 9.9171900000000512 -0.1400000000000000 9.9039600000000512 -0.1500000000000000 9.8897500000000527 -0.1600000000000000 9.8745600000000504 -0.1700000000000000 9.8583900000000515 -0.1800000000000000 9.8412400000000506 -0.1900000000000000 9.8231100000000513 -0.2000000000000000 9.8040000000000518 -0.2100000000000000 9.7839100000000503 -0.2200000000000000 9.7628400000000504 -0.2300000000000000 9.7407900000000502 -0.2400000000000000 9.7177600000000517 -0.2500000000000000 9.6937500000000512 -0.2600000000000000 9.6687600000000504 -0.2700000000000000 9.6427900000000513 -0.2800000000000000 9.6158400000000501 -0.2900000000000000 9.5879100000000506 -0.3000000000000000 9.5590000000000508 -0.3100000000000000 9.5291100000000508 -0.3200000000000000 9.4982400000000506 -0.3300000000000000 9.4663900000000503 -0.3400000000000000 9.4335600000000515 -0.3500000000000000 9.3997500000000507 -0.3600000000000000 9.3649600000000497 -0.3700000000000000 9.3291900000000503 -0.3800000000000000 9.2924400000000507 -0.3900000000000000 9.2547100000000508 -0.4000000000000000 9.2160000000000508 -0.4100000000000000 9.1763100000000488 -0.4200000000000000 9.1356400000000502 -0.4300000000000000 9.0939900000000495 -0.4400000000000000 9.0513600000000505 -0.4500000000000000 9.0077500000000512 -0.4600000000000000 8.9631600000000500 -0.4700000000000000 8.9175900000000503 -0.4800000000000000 8.8710400000000504 -0.4900000000000000 8.8235100000000504 -0.5000000000000000 8.7750000000000501 -0.5100000000000000 8.7255100000000496 -0.5200000000000000 8.6750400000000489 -0.5300000000000000 8.6235900000000498 -0.5400000000000000 8.5711600000000487 -0.5500000000000000 8.5177500000000510 -0.5600000000000001 8.4633600000000513 -0.5700000000000001 8.4079900000000496 -0.5800000000000000 8.3516400000000495 -0.5900000000000000 8.2943100000000491 -0.6000000000000000 8.2360000000000504 -0.6100000000000000 8.1767100000000497 -0.6200000000000000 8.1164400000000487 -0.6300000000000000 8.0551900000000494 -0.6400000000000000 7.9929600000000489 -0.6500000000000000 7.9297500000000491 -0.6600000000000000 7.8655600000000501 -0.6700000000000000 7.8003900000000481 -0.6800000000000000 7.7342400000000486 -0.6900000000000001 7.6671100000000489 -0.7000000000000001 7.5990000000000482 -0.7100000000000000 7.5299100000000490 -0.7200000000000000 7.4598400000000478 -0.7300000000000000 7.3887900000000482 -0.7400000000000000 7.3167600000000483 -0.7500000000000000 7.2437500000000483 -0.7600000000000000 7.1697600000000481 -0.7700000000000000 7.0947900000000477 -0.7800000000000000 7.0188400000000470 -0.7900000000000000 6.9419100000000480 -0.8000000000000000 6.8640000000000478 -0.8100000000000001 6.7851100000000475 -0.8200000000000001 6.7052400000000461 -0.8300000000000001 6.6243900000000462 -0.8400000000000000 6.5425600000000470 -0.8500000000000000 6.4597500000000467 -0.8600000000000000 6.3759600000000471 -0.8700000000000000 6.2911900000000465 -0.8800000000000000 6.2054400000000456 -0.8900000000000000 6.1187100000000463 -0.9000000000000000 6.0310000000000468 -0.9100000000000000 5.9423100000000471 -0.9200000000000000 5.8526400000000454 -0.9300000000000000 5.7619900000000452 -0.9400000000000001 5.6703600000000458 -0.9500000000000001 5.5777500000000453 -0.9600000000000000 5.4841600000000454 -0.9700000000000000 5.3895900000000445 -0.9800000000000000 5.2940400000000443 -0.9900000000000000 5.1975100000000447 -1.0000000000000000 5.1000000000000449 -1.0100000000000000 5.0015100000000450 -1.0200000000000000 4.9020400000000439 -1.0300000000000000 4.8015900000000435 -1.0400000000000000 4.7001600000000439 -1.0500000000000000 4.5977500000000457 -1.0600000000000001 4.4943600000000457 -1.0700000000000001 4.3899900000000454 -1.0800000000000001 4.2846400000000440 -1.0900000000000001 4.1783100000000442 -1.1000000000000001 4.0710000000000441 -1.1100000000000001 3.9627100000000448 -1.1200000000000001 3.8534400000000453 -1.1300000000000001 3.7431900000000429 -1.1400000000000001 3.6319600000000429 -1.1500000000000001 3.5197500000000437 -1.1599999999999999 3.4065600000000442 -1.1699999999999999 3.2923900000000446 -1.1799999999999999 3.1772400000000429 -1.1899999999999999 3.0611100000000420 -1.2000000000000000 2.9440000000000426 -1.2100000000000000 2.8259100000000430 -1.2200000000000000 2.7068400000000423 -1.2300000000000000 2.5867900000000414 -1.2400000000000000 2.4657600000000413 -1.2500000000000000 2.3437500000000417 -1.2600000000000000 2.2207600000000411 -1.2700000000000000 2.0967900000000412 -1.2800000000000000 1.9718400000000402 -1.2900000000000000 1.8459100000000408 -1.3000000000000000 1.7190000000000412 -1.3100000000000001 1.5911100000000404 -1.3200000000000001 1.4622400000000413 -1.3300000000000001 1.3323900000000393 -1.3400000000000001 1.2015600000000397 -1.3500000000000001 1.0697500000000399 -1.3600000000000001 0.9369600000000400 -1.3700000000000001 0.8031900000000398 -1.3800000000000001 0.6684400000000377 -1.3900000000000001 0.5327100000000389 -1.4000000000000001 0.3960000000000381 -1.4099999999999999 0.2583100000000389 -1.4199999999999999 0.1196400000000377 -1.4299999999999999 -0.0200099999999619 -1.4399999999999999 -0.1198764906502929 -1.4500000000000000 -0.1057747449688716 -1.4600000000000000 -0.0013440288307393 -1.4700000000000000 0.1162107002406769 -1.4800000000000000 0.2327859878628523 -1.4900000000000000 0.3483812754850276 -1.5000000000000000 0.4629965631072030 -1.5100000000000000 0.5766318507293784 -1.5200000000000000 0.6892871383515538 -1.5300000000000000 0.8009624259737292 -1.5400000000000000 0.9116577135959045 -1.5500000000000000 1.0213730012180799 -1.5600000000000001 1.1301082888402552 -1.5700000000000001 1.2378635764624304 -1.5800000000000001 1.3446388640846056 -1.5900000000000001 1.4504341517067811 -1.6000000000000001 1.5552494393289567 -1.6100000000000001 1.6590847269511320 -1.6200000000000001 1.7619400145733075 -1.6300000000000001 1.8638153021954829 -1.6400000000000001 1.9647105898176582 -1.6500000000000001 2.0646258774398336 -1.6600000000000001 2.1635611650620090 -1.6699999999999999 2.2615164526841847 -1.6799999999999999 2.3584917403063601 -1.6899999999999999 2.4544870279285353 -1.7000000000000000 2.5495023155507108 -1.7100000000000000 2.6435376031728866 -1.7200000000000000 2.7365928907950616 -1.7300000000000000 2.8286681784172369 -1.7400000000000000 2.9197634660394125 -1.7500000000000000 3.0098787536615883 -1.7600000000000000 3.0990140412837635 -1.7700000000000000 3.1871693289059388 -1.7800000000000000 3.2743446165281140 -1.7900000000000000 3.3605399041502895 -1.8000000000000000 3.4457551917724651 -1.8100000000000001 3.5299904793946406 -1.8200000000000001 3.6132457670168168 -1.8300000000000001 3.6955210546389923 -1.8400000000000001 3.7768163422611671 -1.8500000000000001 3.8571316298833427 -1.8600000000000001 3.9364669175055180 -1.8700000000000001 4.0148222051276932 -1.8800000000000001 4.0921974927498681 -1.8900000000000001 4.1685927803720437 -1.9000000000000001 4.2440080679942200 -1.9100000000000001 4.3184433556163953 -1.9199999999999999 4.3918986432385712 -1.9299999999999999 4.4643739308607460 -1.9399999999999999 4.5358692184829215 -1.9500000000000000 4.6063845061050968 -1.9600000000000000 4.6759197937272718 -1.9700000000000000 4.7444750813494467 -1.9800000000000000 4.8120503689716223 -1.9900000000000000 4.8786456565937986 -2.0000000000000000 4.9442609442159737 -2.0100000000000002 5.0088962318381487 -2.0200000000000000 5.0725515194603243 -2.0300000000000002 5.1352268070824998 -2.0400000000000000 5.1969220947046750 -2.0499999999999998 5.2576373823268501 -2.0600000000000001 5.3173726699490258 -2.0699999999999998 5.3761279575712013 -2.0800000000000001 5.4339032451933766 -2.0899999999999999 5.4906985328155518 -2.1000000000000001 5.5465138204377276 -2.1099999999999999 5.6013491080599032 -2.1200000000000001 5.6552043956820777 -2.1299999999999999 5.7080796833042537 -2.1400000000000001 5.7599749709264287 -2.1499999999999999 5.8108902585486035 -2.1600000000000001 5.8608255461707790 -2.1699999999999999 5.9097808337929543 -2.1800000000000002 5.9577561214151293 -2.1899999999999999 6.0047514090373042 -2.2000000000000002 6.0507666966594797 -2.2100000000000000 6.0958019842816551 -2.2200000000000002 6.1398572719038302 -2.2300000000000000 6.1829325595260052 -2.2400000000000002 6.2250278471481808 -2.2500000000000000 6.2661431347703562 -2.2600000000000002 6.3062784223925314 -2.2700000000000000 6.3454337100147065 -2.2800000000000002 6.3836089976368839 -2.2900000000000000 6.4208042852590586 -2.3000000000000003 6.4570195728812347 -2.3100000000000001 6.4922548605034098 -2.3199999999999998 6.5265101481255847 -2.3300000000000001 6.5597854357477594 -2.3399999999999999 6.5920807233699348 -2.3500000000000001 6.6233960109921100 -2.3599999999999999 6.6537312986142858 -2.3700000000000001 6.6830865862364606 -2.3799999999999999 6.7114618738586360 -2.3900000000000001 6.7388571614808113 -2.3999999999999999 6.7652724491029863 -2.4100000000000001 6.7907077367251611 -2.4199999999999999 6.8151630243473367 -2.4300000000000002 6.8386383119695120 -2.4399999999999999 6.8611335995916871 -2.4500000000000002 6.8826488872138638 -2.4600000000000000 6.9031841748360385 -2.4700000000000002 6.9227394624582139 -2.4800000000000000 6.9413147500803882 -2.4900000000000002 6.9589100377025632 -2.5000000000000000 6.9755253253247389 -2.5100000000000002 6.9911606129469144 -2.5200000000000000 7.0058159005690896 -2.5300000000000002 7.0194911881912656 -2.5400000000000000 7.0321864758134405 -2.5500000000000003 7.0439017634356151 -2.5600000000000001 7.0546370510577905 -2.5699999999999998 7.0643923386799656 -2.5800000000000001 7.0731676263021424 -2.5899999999999999 7.0809629139243180 -2.6000000000000001 7.0877782015464934 -2.6099999999999999 7.0936134891686677 -2.6200000000000001 7.0984687767908436 -2.6299999999999999 7.1023440644130185 -2.6400000000000001 7.1052393520351931 -2.6499999999999999 7.1071546396573693 -2.6600000000000001 7.1080899272795444 -2.6699999999999999 7.1080452149017193 -2.6800000000000002 7.1070205025238948 -2.6899999999999999 7.1050157901460693 -2.7000000000000002 7.1020310777682445 -2.7100000000000000 7.0980663653904204 -2.7200000000000002 7.0931216530125951 -2.7300000000000000 7.0871969406347697 -2.7400000000000002 7.0802922282569458 -2.7500000000000000 7.0724075158791226 -2.7600000000000002 7.0635428035012975 -2.7700000000000000 7.0536980911234721 -2.7800000000000002 7.0428733787456483 -2.7900000000000000 7.0310686663678226 -2.8000000000000003 7.0182839539899966 -2.8100000000000001 7.0045192416121722 -2.8199999999999998 6.9897745292343476 -2.8300000000000001 6.9740498168565246 -2.8399999999999999 6.9573451044787014 -2.8500000000000001 6.9396603921008744 -2.8599999999999999 6.9209956797230525 -2.8700000000000001 6.9013509673452251 -2.8799999999999999 6.8807262549674029 -2.8900000000000001 6.8591215425895751 -2.8999999999999999 6.8365368302117524 -2.9100000000000001 6.8129721178339260 -2.9199999999999999 6.7884274054561029 -2.9300000000000002 6.7629026930782778 -2.9399999999999999 6.7363979807004544 -2.9500000000000002 6.7089132683226271 -2.9600000000000000 6.6804485559448032 -2.9700000000000002 6.6510038435669774 -2.9800000000000000 6.6205791311891549 -2.9900000000000002 6.5891744188113286 -3.0000000000000000 6.5567897064335021 -3.0100000000000002 6.5234249940556808 -3.0200000000000000 6.4890802816778539 -3.0300000000000002 6.4537555693000321 -3.0400000000000000 6.4174508569222031 -3.0500000000000003 6.3801661445443809 -3.0600000000000001 6.3419014321665532 -3.0700000000000003 6.3026567197887324 -3.0800000000000001 6.2624320074109043 -3.0899999999999999 6.2212272950330814 -3.1000000000000001 6.1790425826552546 -3.1099999999999999 6.1358778702774313 -3.1200000000000001 6.0917331578996041 -3.1299999999999999 6.0466084455217821 -3.1400000000000001 6.0005037331439564 -3.1499999999999999 5.9534190207661322 -3.1600000000000001 5.9053543083883060 -3.1699999999999999 5.8563095960104832 -3.1800000000000002 5.8062848836326602 -3.1899999999999999 5.7552801712548334 -3.2000000000000002 5.7032954588770099 -3.2100000000000000 5.6503307464991810 -3.2200000000000002 5.5963860341213589 -3.2300000000000000 5.5414613217435331 -3.2400000000000002 5.4855566093657089 -3.2500000000000000 5.4286718969878827 -3.2600000000000002 5.3708071846100580 -3.2700000000000000 5.3119624722322314 -3.2800000000000002 5.2521377598544099 -3.2900000000000000 5.1913330474765829 -3.3000000000000003 5.1295483350987610 -3.3100000000000001 5.0667836227209335 -3.3200000000000003 5.0030389103431077 -3.3300000000000001 4.9383141979652834 -3.3399999999999999 4.8726094855874607 -3.3500000000000001 4.8059247732096360 -3.3599999999999999 4.7382600608318093 -3.3700000000000001 4.6696153484539877 -3.3799999999999999 4.5999906360761607 -3.3900000000000001 4.5293859236983387 -3.3999999999999999 4.4578012113205077 -3.4100000000000001 4.3852364989426853 -3.4199999999999999 4.3116917865648610 -3.4300000000000002 4.2371670741870382 -3.4399999999999999 4.1616623618092099 -3.4500000000000002 4.0851776494313867 -3.4600000000000000 4.0077129370535580 -3.4700000000000002 3.9292682246757380 -3.4800000000000000 3.8498435122979160 -3.4900000000000002 3.7694387999200885 -3.5000000000000000 3.6880540875422660 -3.5100000000000002 3.6056893751644452 -3.5200000000000000 3.5223446627866224 -3.5300000000000002 3.4380199504087976 -3.5400000000000000 3.3527152380309744 -3.5500000000000003 3.2664305256531527 -3.5600000000000001 3.1791658132753327 -3.5700000000000003 3.0909211008975106 -3.5800000000000001 3.0016963885196830 -3.5899999999999999 2.9114916761418570 -3.6000000000000001 2.8203069637640397 -3.6099999999999999 2.7281422513862168 -3.6200000000000001 2.6349975390083991 -3.6299999999999999 2.5408728266305758 -3.6400000000000001 2.4457681142527470 -3.6499999999999999 2.3496834018749269 -3.6600000000000001 2.2526186894971048 -3.6699999999999999 2.1545739771192807 -3.6800000000000002 2.0555492647414617 -3.6899999999999999 1.9555445523636372 -3.7000000000000002 1.8545598399858143 -3.7100000000000000 1.7525951276079930 -3.7200000000000002 1.6496504152301732 -3.7300000000000000 1.5457257028523479 -3.7400000000000002 1.4408209904745242 -3.7500000000000000 1.3349362780967056 -3.7600000000000002 1.2280715657188814 -3.7700000000000000 1.1202268533410624 -3.7800000000000002 1.0114021409632414 -3.7900000000000000 0.9015974285854149 -3.8000000000000003 0.7908127162075971 -3.8100000000000001 0.6790480038297737 -3.8200000000000003 0.5663032914519519 -3.8300000000000001 0.4525785790741281 -3.8399999999999999 0.3378738666963095 -3.8500000000000001 0.2221891543184888 -3.8599999999999999 0.1055244419406662 -3.8700000000000001 -0.0120374028688293 -3.8799999999999999 -0.1002340520430320 -3.8900000000000001 -0.0931949903748843 -3.8999999999999999 -0.0061656592490711 -3.9100000000000001 0.0940390718212591 -3.9199999999999999 0.1932506669056753 -3.9300000000000002 0.2914822619900915 -3.9399999999999999 0.3887338570745077 -3.9500000000000002 0.4850054521589239 -3.9600000000000000 0.5802970472433402 -3.9700000000000002 0.6746086423277563 -3.9800000000000000 0.7679402374121725 -3.9900000000000002 0.8602918324965886 -4.0000000000000000 0.9516634275810048 -4.0099999999999998 1.0420550226654208 -4.0200000000000005 1.1314666177498371 -4.0300000000000002 1.2198982128342530 -4.0400000000000000 1.3073498079186694 -4.0499999999999998 1.3938214030030858 -4.0600000000000005 1.4793129980875019 -4.0700000000000003 1.5638245931719181 -4.0800000000000001 1.6473561882563346 -4.0899999999999999 1.7299077833407508 -4.0999999999999996 1.8114793784251668 -4.1100000000000003 1.8920709735095831 -4.1200000000000001 1.9716825685939994 -4.1299999999999999 2.0503141636784155 -4.1399999999999997 2.1279657587628318 -4.1500000000000004 2.2046373538472483 -4.1600000000000001 2.2803289489316643 -4.1699999999999999 2.3550405440160809 -4.1799999999999997 2.4287721391004968 -4.1900000000000004 2.5015237341849130 -4.2000000000000002 2.5732953292693295 -4.2100000000000000 2.6440869243537457 -4.2199999999999998 2.7138985194381617 -4.2300000000000004 2.7827301145225780 -4.2400000000000002 2.8505817096069945 -4.2500000000000000 2.9174533046914108 -4.2599999999999998 2.9833448997758270 -4.2700000000000005 3.0482564948602433 -4.2800000000000002 3.1121880899446595 -4.2900000000000000 3.1751396850290758 -4.2999999999999998 3.2371112801134920 -4.3100000000000005 3.2981028751979076 -4.3200000000000003 3.3581144702823242 -4.3300000000000001 3.4171460653667403 -4.3399999999999999 3.4751976604511565 -4.3500000000000005 3.5322692555355726 -4.3600000000000003 3.5883608506199893 -4.3700000000000001 3.6434724457044050 -4.3799999999999999 3.6976040407888218 -4.3899999999999997 3.7507556358732375 -4.4000000000000004 3.8029272309576543 -4.4100000000000001 3.8541188260420700 -4.4199999999999999 3.9043304211264864 -4.4299999999999997 3.9535620162109022 -4.4400000000000004 4.0018136112953187 -4.4500000000000002 4.0490852063797345 -4.4600000000000000 4.0953768014641518 -4.4699999999999998 4.1406883965485672 -4.4800000000000004 4.1850199916329824 -4.4900000000000002 4.2283715867173992 -4.5000000000000000 4.2707431818018158 -4.5099999999999998 4.3121347768862321 -4.5200000000000005 4.3525463719706474 -4.5300000000000002 4.3919779670550643 -4.5400000000000000 4.4304295621394800 -4.5499999999999998 4.4679011572238974 -4.5600000000000005 4.5043927523083127 -4.5700000000000003 4.5399043473927296 -4.5800000000000001 4.5744359424771446 -4.5899999999999999 4.6079875375615611 -4.6000000000000005 4.6405591326459774 -4.6100000000000003 4.6721507277303935 -4.6200000000000001 4.7027623228148094 -4.6299999999999999 4.7323939178992260 -4.6399999999999997 4.7610455129836424 -4.6500000000000004 4.7887171080680586 -4.6600000000000001 4.8154087031524746 -4.6699999999999999 4.8411202982368913 -4.6799999999999997 4.8658518933213060 -4.6900000000000004 4.8896034884057231 -4.7000000000000002 4.9123750834901401 -4.7100000000000000 4.9341666785745559 -4.7199999999999998 4.9549782736589716 -4.7300000000000004 4.9748098687433888 -4.7400000000000002 4.9936614638278032 -4.7500000000000000 5.0115330589122209 -4.7599999999999998 5.0284246539966375 -4.7700000000000005 5.0443362490810530 -4.7800000000000002 5.0592678441654684 -4.7900000000000000 5.0732194392498844 -4.7999999999999998 5.0861910343343020 -4.8100000000000005 5.0981826294187176 -4.8200000000000003 5.1091942245031330 -4.8300000000000001 5.1192258195875491 -4.8399999999999999 5.1282774146719659 -4.8500000000000005 5.1363490097563824 -4.8600000000000003 5.1434406048407970 -4.8700000000000001 5.1495521999252141 -4.8799999999999999 5.1546837950096309 -4.8899999999999997 5.1588353900940467 -4.9000000000000004 5.1620069851784613 -4.9100000000000001 5.1641985802628776 -4.9199999999999999 5.1654101753472936 -4.9299999999999997 5.1656417704317112 -4.9400000000000004 5.1648933655161278 -4.9500000000000002 5.1631649606005414 -4.9600000000000000 5.1604565556849593 -4.9699999999999998 5.1567681507693752 -4.9800000000000004 5.1520997458537927 -4.9900000000000002 5.1464513409382064 -5.0000000000000000 5.1398229360226235 -5.0099999999999998 5.1322145311070395 -5.0200000000000005 5.1236261261914562 -5.0300000000000002 5.1140577212758718 -5.0400000000000000 5.1035093163602872 -5.0499999999999998 5.0919809114447041 -5.0600000000000005 5.0794725065291209 -5.0700000000000003 5.0659841016135356 -5.0800000000000001 5.0515156966979520 -5.0899999999999999 5.0360672917823681 -5.1000000000000005 5.0196388868667858 -5.1100000000000003 5.0022304819512007 -5.1200000000000001 4.9838420770356171 -5.1299999999999999 4.9644736721200324 -5.1399999999999997 4.9441252672044476 -5.1500000000000004 4.9227968622888643 -5.1600000000000001 4.9004884573732808 -5.1699999999999999 4.8772000524576979 -5.1799999999999997 4.8529316475421123 -5.1900000000000004 4.8276832426265290 -5.2000000000000002 4.8014548377109456 -5.2100000000000000 4.7742464327953620 -5.2199999999999998 4.7460580278797764 -5.2300000000000004 4.7168896229641923 -5.2400000000000002 4.6867412180486099 -5.2500000000000000 4.6556128131330254 -5.2599999999999998 4.6235044082174408 -5.2700000000000005 4.5904160033018577 -5.2800000000000002 4.5563475983862727 -5.2900000000000000 4.5212991934706910 -5.2999999999999998 4.4852707885551055 -5.3100000000000005 4.4482623836395216 -5.3200000000000003 4.4102739787239376 -5.3300000000000001 4.3713055738083550 -5.3399999999999999 4.3313571688927706 -5.3500000000000005 4.2904287639771841 -5.3600000000000003 4.2485203590616027 -5.3700000000000001 4.2056319541460194 -5.3799999999999999 4.1617635492304323 -5.3899999999999997 4.1169151443148504 -5.4000000000000004 4.0710867393992665 -5.4100000000000001 4.0242783344836806 -5.4199999999999999 3.9764899295680980 -5.4299999999999997 3.9277215246525135 -5.4400000000000004 3.8779731197369305 -5.4500000000000002 3.8272447148213455 -5.4600000000000000 3.7755363099057622 -5.4699999999999998 3.7228479049901786 -5.4800000000000004 3.6691795000745948 -5.4900000000000002 3.6145310951590091 -5.5000000000000000 3.5589026902434249 -5.5099999999999998 3.5022942853278405 -5.5200000000000005 3.4447058804122541 -5.5300000000000002 3.3861374754966729 -5.5400000000000000 3.3265890705810879 -5.5499999999999998 3.2660606656655027 -5.5600000000000005 3.2045522607499208 -5.5700000000000003 3.1420638558343352 -5.5800000000000001 3.0785954509187548 -5.5899999999999999 3.0141470460031687 -5.6000000000000005 2.9487186410875843 -5.6100000000000003 2.8823102361720014 -5.6200000000000001 2.8149218312564166 -5.6299999999999999 2.7465534263408298 -5.6399999999999997 2.6772050214252499 -5.6500000000000004 2.6068766165096644 -5.6600000000000001 2.5355682115940787 -5.6699999999999999 2.4632798066784964 -5.6799999999999997 2.3900114017629104 -5.6900000000000004 2.3157629968473294 -5.7000000000000002 2.2405345919317430 -5.7100000000000000 2.1643261870161581 -5.7199999999999998 2.0871377821005765 -5.7300000000000004 2.0089693771849895 -5.7400000000000002 1.9298209722694075 -5.7500000000000000 1.8496925673538236 -5.7599999999999998 1.7685841624382412 -5.7700000000000005 1.6864957575226569 -5.7800000000000002 1.6034273526070706 -5.7900000000000000 1.5193789476914894 -5.7999999999999998 1.4343505427759062 -5.8100000000000005 1.3483421378603211 -5.8200000000000003 1.2613537329447340 -5.8300000000000001 1.1733853280291520 -5.8399999999999999 1.0844369231135680 -5.8500000000000005 0.9945085181979856 -5.8600000000000003 0.9036001132824012 -5.8700000000000001 0.8117117083668148 -5.8799999999999999 0.7188433034512300 -5.8899999999999997 0.6249948985356468 -5.9000000000000004 0.5301664936200616 -5.9100000000000001 0.4343580887044780 -5.9199999999999999 0.3375696837888995 -5.9299999999999997 0.2398012788733190 -5.9400000000000004 0.1410528739577330 -5.9500000000000002 0.0413244690421521 -5.9600000000000000 -0.0543979629106097 -5.9699999999999998 -0.0939588240298430 -5.9800000000000004 -0.0484331626298437 -5.9900000000000002 0.0360653430314421 -6.0000000000000000 0.1209144989736455 -6.0099999999999998 0.2047836549158489 -6.0200000000000005 0.2876728108580524 -6.0300000000000002 0.3695819668002558 -6.0400000000000000 0.4505111227424592 -6.0499999999999998 0.5304602786846626 -6.0600000000000005 0.6094294346268661 -6.0700000000000003 0.6874185905690693 -6.0800000000000001 0.7644277465112727 -6.0899999999999999 0.8404569024534760 -6.1000000000000005 0.9155060583956793 -6.1100000000000003 0.9895752143378828 -6.1200000000000001 1.0626643702800862 -6.1299999999999999 1.1347735262222898 -6.1400000000000006 1.2059026821644931 -6.1500000000000004 1.2760518381066968 -6.1600000000000001 1.3452209940489002 -6.1699999999999999 1.4134101499911036 -6.1799999999999997 1.4806193059333070 -6.1900000000000004 1.5468484618755105 -6.2000000000000002 1.6120976178177140 -6.2100000000000000 1.6763667737599175 -6.2199999999999998 1.7396559297021210 -6.2300000000000004 1.8019650856443246 -6.2400000000000002 1.8632942415865277 -6.2500000000000000 1.9236433975287310 -6.2599999999999998 1.9830125534709344 -6.2700000000000005 2.0414017094131380 -6.2800000000000002 2.0988108653553414 -6.2900000000000000 2.1552400212975451 -6.2999999999999998 2.2106891772397481 -6.3100000000000005 2.2651583331819518 -6.3200000000000003 2.3186474891241553 -6.3300000000000001 2.3711566450663586 -6.3399999999999999 2.4226858010085621 -6.3500000000000005 2.4732349569507655 -6.3600000000000003 2.5228041128929690 -6.3700000000000001 2.5713932688351724 -6.3799999999999999 2.6190024247773760 -6.3900000000000006 2.6656315807195794 -6.4000000000000004 2.7112807366617826 -6.4100000000000001 2.7559498926039860 -6.4199999999999999 2.7996390485461893 -6.4299999999999997 2.8423482044883928 -6.4400000000000004 2.8840773604305960 -6.4500000000000002 2.9248265163728000 -6.4600000000000000 2.9645956723150038 -6.4699999999999998 3.0033848282572073 -6.4800000000000004 3.0411939841994107 -6.4900000000000002 3.0780231401416134 -6.5000000000000000 3.1138722960838168 -6.5099999999999998 3.1487414520260200 -6.5200000000000005 3.1826306079682234 -6.5300000000000002 3.2155397639104266 -6.5400000000000000 3.2474689198526301 -6.5499999999999998 3.2784180757948338 -6.5600000000000005 3.3083872317370373 -6.5700000000000003 3.3373763876792406 -6.5800000000000001 3.3653855436214437 -6.5899999999999999 3.3924146995636471 -6.6000000000000005 3.4184638555058506 -6.6100000000000003 3.4435330114480540 -6.6200000000000001 3.4676221673902576 -6.6299999999999999 3.4907313233324606 -6.6400000000000006 3.5128604792746643 -6.6500000000000004 3.5340096352168677 -6.6600000000000001 3.5541787911590710 -6.6699999999999999 3.5733679471012740 -6.6799999999999997 3.5915771030434778 -6.6900000000000004 3.6088062589856809 -6.7000000000000002 3.6250554149278846 -6.7100000000000000 3.6403245708700873 -6.7199999999999998 3.6546137268122911 -6.7300000000000004 3.6679228827544943 -6.7400000000000002 3.6802520386966977 -6.7500000000000000 3.6916011946389014 -6.7599999999999998 3.7019703505811048 -6.7700000000000005 3.7113595065233080 -6.7800000000000002 3.7197686624655115 -6.7900000000000000 3.7271978184077148 -6.7999999999999998 3.7336469743499179 -6.8100000000000005 3.7391161302921212 -6.8200000000000003 3.7436052862343252 -6.8300000000000001 3.7471144421765281 -6.8399999999999999 3.7496435981187317 -6.8500000000000005 3.7511927540609351 -6.8600000000000003 3.7517619100031379 -6.8700000000000001 3.7513510659453417 -6.8799999999999999 3.7499602218875450 -6.8900000000000006 3.7475893778297484 -6.9000000000000004 3.7442385337719513 -6.9100000000000001 3.7399076897141548 -6.9199999999999999 3.7345968456563590 -6.9299999999999997 3.7283060015985621 -6.9400000000000004 3.7210351575407659 -6.9500000000000002 3.7127843134829694 -6.9600000000000000 3.7035534694251728 -6.9699999999999998 3.6933426253673760 -6.9800000000000004 3.6821517813095790 -6.9900000000000002 3.6699809372517826 -7.0000000000000000 3.6568300931939861 -7.0099999999999998 3.6426992491361885 -7.0200000000000005 3.6275884050783924 -7.0300000000000002 3.6114975610205962 -7.0400000000000000 3.5944267169627997 -7.0499999999999998 3.5763758729050030 -7.0600000000000005 3.5573450288472053 -7.0700000000000003 3.5373341847894091 -7.0800000000000001 3.5163433407316127 -7.0899999999999999 3.4943724966738152 -7.1000000000000005 3.4714216526160193 -7.1100000000000003 3.4474908085582223 -7.1200000000000001 3.4225799645004251 -7.1299999999999999 3.3966891204426286 -7.1400000000000006 3.3698182763848319 -7.1500000000000004 3.3419674323270350 -7.1600000000000001 3.3131365882692387 -7.1699999999999999 3.2833257442114423 -7.1799999999999997 3.2525349001536448 -7.1900000000000004 3.2207640560958488 -7.2000000000000002 3.1880132120380518 -7.2100000000000000 3.1542823679802545 -7.2199999999999998 3.1195715239224588 -7.2300000000000004 3.0838806798646621 -7.2400000000000002 3.0472098358068651 -7.2500000000000000 3.0095589917490688 -7.2599999999999998 2.9709281476912714 -7.2700000000000005 2.9313173036334739 -7.2800000000000002 2.8907264595756779 -7.2900000000000000 2.8491556155178817 -7.2999999999999998 2.8066047714600835 -7.3100000000000005 2.7630739274022886 -7.3200000000000003 2.7185630833444918 -7.3300000000000001 2.6730722392866948 -7.3399999999999999 2.6266013952288976 -7.3500000000000005 2.5791505511711001 -7.3600000000000003 2.5307197071133043 -7.3700000000000001 2.4813088630555065 -7.3799999999999999 2.4309180189977102 -7.3900000000000006 2.3795471749399137 -7.4000000000000004 2.3271963308821171 -7.4100000000000001 2.2738654868243220 -7.4199999999999999 2.2195546427665249 -7.4299999999999997 2.1642637987087276 -7.4400000000000004 2.1079929546509302 -7.4500000000000002 2.0507421105931343 -7.4600000000000000 1.9925112665353364 -7.4699999999999998 1.9333004224775383 -7.4800000000000004 1.8731095784197436 -7.4900000000000002 1.8119387343619469 -7.5000000000000000 1.7497878903041482 -7.5099999999999998 1.6866570462463528 -7.5200000000000005 1.6225462021885573 -7.5300000000000002 1.5574553581307580 -7.5400000000000000 1.4913845140729638 -7.5499999999999998 1.4243336700151659 -7.5600000000000005 1.3563028259573695 -7.5700000000000003 1.2872919818995729 -7.5800000000000001 1.2173011378417744 -7.5899999999999999 1.1463302937839774 -7.6000000000000005 1.0743794497261820 -7.6100000000000003 1.0014486056683847 -7.6200000000000001 0.9275377616105889 -7.6299999999999999 0.8526469175527911 -7.6400000000000006 0.7767760734949949 -7.6500000000000004 0.6999252294371985 -7.6600000000000001 0.6220943853794019 -7.6699999999999999 0.5432835413216033 -7.6799999999999997 0.4634926972638063 -7.6900000000000004 0.3827218532060108 -7.7000000000000002 0.3009710091482152 -7.7100000000000000 0.2182401650904158 -7.7199999999999998 0.1345293210326197 -7.7300000000000004 0.0498384769748217 -7.7400000000000002 -0.0340844037497710 -7.7500000000000000 -0.0797948950024611 -7.7599999999999998 -0.0521601638431941 -7.7700000000000005 0.0179655125160269 -7.7800000000000002 0.0902870722836656 -7.7900000000000000 0.1616286320513043 -7.7999999999999998 0.2319901918189431 -7.8100000000000005 0.3013717515865819 -7.8200000000000003 0.3697733113542206 -7.8300000000000001 0.4371948711218594 -7.8399999999999999 0.5036364308894982 -7.8500000000000005 0.5690979906571367 -7.8600000000000003 0.6335795504247755 -7.8700000000000001 0.6970811101924143 -7.8799999999999999 0.7596026699600530 -7.8900000000000006 0.8211442297276916 -7.9000000000000004 0.8817057894953304 -7.9100000000000001 0.9412873492629689 -7.9199999999999999 0.9998889090306078 -7.9300000000000006 1.0575104687982466 -7.9400000000000004 1.1141520285658855 -7.9500000000000002 1.1698135883335241 -7.9600000000000000 1.2244951481011630 -7.9699999999999998 1.2781967078688017 -7.9800000000000004 1.3309182676364404 -7.9900000000000002 1.3826598274040793 -8.0000000000000000 1.4334213871717181 -8.0099999999999998 1.4832029469393566 -8.0199999999999996 1.5320045067069954 -8.0299999999999994 1.5798260664746342 -8.0400000000000009 1.6266676262422730 -8.0500000000000007 1.6725291860099119 -8.0600000000000005 1.7174107457775505 -8.0700000000000003 1.7613123055451891 -8.0800000000000001 1.8042338653128283 -8.0899999999999999 1.8461754250804667 -8.0999999999999996 1.8871369848481054 -8.1099999999999994 1.9271185446157446 -8.1200000000000010 1.9661201043833829 -8.1300000000000008 2.0041416641510219 -8.1400000000000006 2.0411832239186607 -8.1500000000000004 2.0772447836862993 -8.1600000000000001 2.1123263434539377 -8.1699999999999999 2.1464279032215767 -8.1799999999999997 2.1795494629892156 -8.1899999999999995 2.2116910227568543 -8.1999999999999993 2.2428525825244932 -8.2100000000000009 2.2730341422921319 -8.2200000000000006 2.3022357020597708 -8.2300000000000004 2.3304572618274095 -8.2400000000000002 2.3576988215950481 -8.2500000000000000 2.3839603813626868 -8.2599999999999998 2.4092419411303254 -8.2699999999999996 2.4335435008979638 -8.2799999999999994 2.4568650606656028 -8.2900000000000009 2.4792066204332412 -8.3000000000000007 2.5005681802008803 -8.3100000000000005 2.5209497399685192 -8.3200000000000003 2.5403512997361579 -8.3300000000000001 2.5587728595037964 -8.3399999999999999 2.5762144192714347 -8.3499999999999996 2.5926759790390745 -8.3599999999999994 2.6081575388067124 -8.3700000000000010 2.6226590985743514 -8.3800000000000008 2.6361806583419898 -8.3900000000000006 2.6487222181096284 -8.4000000000000004 2.6602837778772672 -8.4100000000000001 2.6708653376449063 -8.4199999999999999 2.6804668974125452 -8.4299999999999997 2.6890884571801834 -8.4399999999999995 2.6967300169478223 -8.4499999999999993 2.7033915767154606 -8.4600000000000009 2.7090731364830991 -8.4700000000000006 2.7137746962507383 -8.4800000000000004 2.7174962560183769 -8.4900000000000002 2.7202378157860156 -8.5000000000000000 2.7219993755536542 -8.5099999999999998 2.7227809353212926 -8.5199999999999996 2.7225824950889312 -8.5299999999999994 2.7214040548565710 -8.5400000000000009 2.7192456146242092 -8.5500000000000007 2.7161071743918477 -8.5600000000000005 2.7119887341594859 -8.5700000000000003 2.7068902939271249 -8.5800000000000001 2.7008118536947641 -8.5899999999999999 2.6937534134624026 -8.5999999999999996 2.6857149732300414 -8.6099999999999994 2.6766965329976800 -8.6200000000000010 2.6666980927653188 -8.6300000000000008 2.6557196525329569 -8.6400000000000006 2.6437612123005962 -8.6500000000000004 2.6308227720682349 -8.6600000000000001 2.6169043318358733 -8.6699999999999999 2.6020058916035120 -8.6799999999999997 2.5861274513711496 -8.6899999999999995 2.5692690111387888 -8.7000000000000011 2.5514305709064278 -8.7100000000000009 2.5326121306740665 -8.7200000000000006 2.5128136904417051 -8.7300000000000004 2.4920352502093435 -8.7400000000000002 2.4702768099769825 -8.7500000000000000 2.4475383697446205 -8.7599999999999998 2.4238199295122600 -8.7699999999999996 2.3991214892798993 -8.7799999999999994 2.3734430490475367 -8.7900000000000009 2.3467846088151756 -8.8000000000000007 2.3191461685828143 -8.8100000000000005 2.2905277283504528 -8.8200000000000003 2.2609292881180920 -8.8300000000000001 2.2303508478857301 -8.8399999999999999 2.1987924076533689 -8.8499999999999996 2.1662539674210066 -8.8599999999999994 2.1327355271886459 -8.8700000000000010 2.0982370869562850 -8.8800000000000008 2.0627586467239230 -8.8900000000000006 2.0263002064915625 -8.9000000000000004 1.9888617662592010 -8.9100000000000001 1.9504433260268392 -8.9199999999999999 1.9110448857944782 -8.9299999999999997 1.8706664455621151 -8.9399999999999995 1.8293080053297555 -8.9500000000000011 1.7869695650973929 -8.9600000000000009 1.7436511248650328 -8.9700000000000006 1.6993526846326716 -8.9800000000000004 1.6540742444003085 -8.9900000000000002 1.6078158041679487 -9.0000000000000000 1.5605773639355860 -9.0099999999999998 1.5123589237032249 -9.0199999999999996 1.4631604834708654 -9.0299999999999994 1.4129820432385021 -9.0400000000000009 1.3618236030061412 -9.0500000000000007 1.3096851627737784 -9.0600000000000005 1.2565667225414181 -9.0700000000000003 1.2024682823090576 -9.0800000000000001 1.1473898420766950 -9.0899999999999999 1.0913314018443341 -9.0999999999999996 1.0342929616119712 -9.1099999999999994 0.9762745213796116 -9.1200000000000010 0.9172760811472482 -9.1300000000000008 0.8572976409148882 -9.1400000000000006 0.7963392006825263 -9.1500000000000004 0.7344007604501641 -9.1600000000000001 0.6714823202178035 -9.1699999999999999 0.6075838799854409 -9.1799999999999997 0.5427054397530817 -9.1899999999999995 0.4768469995207205 -9.2000000000000011 0.4100085592883573 -9.2100000000000009 0.3421901190559957 -9.2200000000000006 0.2733916788236357 -9.2300000000000004 0.2036132385912754 -9.2400000000000002 0.1328547983589115 -9.2500000000000000 0.0611163581265508 -9.2599999999999998 -0.0114618243735971 -9.2699999999999996 -0.0637587397772830 -9.2799999999999994 -0.0561510622104738 -9.2900000000000009 -0.0010097415140786 -9.3000000000000007 0.0607229545122772 -9.3100000000000005 0.1214761968734569 -9.3200000000000003 0.1812494392346365 -9.3300000000000001 0.2400426815958162 -9.3399999999999999 0.2978559239569958 -9.3499999999999996 0.3546891663181755 -9.3599999999999994 0.4105424086793552 -9.3700000000000010 0.4654156510405347 -9.3800000000000008 0.5193088934017144 -9.3900000000000006 0.5722221357628940 -9.4000000000000004 0.6241553781240736 -9.4100000000000001 0.6751086204852533 -9.4199999999999999 0.7250818628464329 -9.4299999999999997 0.7740751052076127 -9.4399999999999995 0.8220883475687923 -9.4500000000000011 0.8691215899299720 -9.4600000000000009 0.9151748322911515 -9.4700000000000006 0.9602480746523312 -9.4800000000000004 1.0043413170135111 -9.4900000000000002 1.0474545593746907 -9.5000000000000000 1.0895878017358704 -9.5099999999999998 1.1307410440970498 -9.5199999999999996 1.1709142864582296 -9.5299999999999994 1.2101075288194094 -9.5400000000000009 1.2483207711805888 -9.5500000000000007 1.2855540135417687 -9.5600000000000005 1.3218072559029481 -9.5700000000000003 1.3570804982641280 -9.5800000000000001 1.3913737406253077 -9.5899999999999999 1.4246869829864872 -9.5999999999999996 1.4570202253476670 -9.6099999999999994 1.4883734677088465 -9.6200000000000010 1.5187467100700263 -9.6300000000000008 1.5481399524312058 -9.6400000000000006 1.5765531947923856 -9.6500000000000004 1.6039864371535653 -9.6600000000000001 1.6304396795147449 -9.6699999999999999 1.6559129218759248 -9.6799999999999997 1.6804061642371042 -9.6899999999999995 1.7039194065982837 -9.7000000000000011 1.7264526489594632 -9.7100000000000009 1.7480058913206431 -9.7200000000000006 1.7685791336818226 -9.7300000000000004 1.7881723760430019 -9.7400000000000002 1.8067856184041822 -9.7500000000000000 1.8244188607653615 -9.7599999999999998 1.8410721031265411 -9.7699999999999996 1.8567453454877210 -9.7799999999999994 1.8714385878489006 -9.7900000000000009 1.8851518302100800 -9.8000000000000007 1.8978850725712595 -9.8100000000000005 1.9096383149324394 -9.8200000000000003 1.9204115572936189 -9.8300000000000001 1.9302047996547984 -9.8399999999999999 1.9390180420159784 -9.8499999999999996 1.9468512843771577 -9.8599999999999994 1.9537045267383371 -9.8700000000000010 1.9595777690995171 -9.8800000000000008 1.9644710114606965 -9.8900000000000006 1.9683842538218759 -9.9000000000000004 1.9713174961830560 -9.9100000000000001 1.9732707385442354 -9.9199999999999999 1.9742439809054151 -9.9299999999999997 1.9742372232665946 -9.9399999999999995 1.9732504656277743 -9.9500000000000011 1.9712837079889538 -9.9600000000000009 1.9683369503501331 -9.9700000000000006 1.9644101927113127 -9.9800000000000004 1.9595034350724920 -9.9900000000000002 1.9536166774336725 -10.0000000000000000 1.9467499197948519 diff --git a/src/test-suite/advectionFlux/advectionFlux.c b/src/test-suite/advectionFlux/advectionFlux.c deleted file mode 100644 index 076b7a09..00000000 --- a/src/test-suite/advectionFlux/advectionFlux.c +++ /dev/null @@ -1,249 +0,0 @@ -#include -#include -#include -#include - -#include - - -#include -#include -#include -#include - -double __PAR_L = 0; -double __PAR_v = 0; -double __PAR_beta = 0; -double __PAR_x0 = 0; -double __PAR_diff = 0; -double __PAR_gam = 0; -double __PAR_x[100]; -double __PAR_inVal = 0; -double __PAR_outVal = 0; - -void -MOD_settings(SD_simulationSettings settings) -{ - settings->debug = 0; - settings->parallel = FALSE; - settings->hybrid = FALSE; - settings->method = 4; -} - -void -MOD_definition(int i, double *x, double *d, double *alg, double t, double *dx) -{ - int i0 = i; - int j0 = 0; - int j10 = 0; - int j20 = 0; - switch(i) - { - case 0: - alg[0] = __PAR_v*__PAR_inVal; - alg[0 + 1] = 0.0; - alg[3] = __PAR_v*x[0]; - alg[3 + 1] = __PAR_v*x[1]; - dx[1] = -(alg[3]-alg[0])*100/__PAR_L; - dx[2] = ((alg[1]-alg[4])*(1.0/(__PAR_L))*100)/2; - return; - default: - j0 = i0; - if(j0 >=1 && j0 <= 99) - { - j10 = j0; - if (j10 >= 1 && j10 <= 100) - { - alg[(j0) * 3] = __PAR_v*x[(j10-1) * 3]; - alg[(j0) * 3 + 1] = __PAR_v*x[(j10-1) * 3 + 1]; - } - j10 = j0; - if (j10 >= 1 && j10 <= 100) - { - j20 = j10+1; - if (j10 >= 1 && j10 <= 99) - { - alg[(j10+1) * 3] = __PAR_v*x[(j20-1) * 3]; - alg[(j10+1) * 3 + 1] = __PAR_v*x[(j20-1) * 3 + 1]; - } - } - dx[1] = -(alg[(j0+1) * 3]-alg[(j0) * 3])*100/__PAR_L; - dx[2] = (-(1.0/(__PAR_L))*(alg[(j0+1) * 3 + 1]-alg[(j0) * 3 + 1])*100)/2; - } - } -} - -void -MOD_dependencies(int i, double *x, double *d, double *alg, double t, double *der, int *map) -{ - int i0 = i; - int j0 = 0; - int j030 = 0; - int j050 = 0; - int j10 = 0; - int j20 = 0; - int j40 = 0; - int j60 = 0; - switch(i) - { - case 0: - alg[0] = __PAR_v*__PAR_inVal; - alg[0 + 1] = 0.0; - alg[3] = __PAR_v*x[0]; - alg[3 + 1] = __PAR_v*x[1]; - der[0 + 1] = -(alg[3]-alg[0])*100/__PAR_L; - der[0 + 2] = ((alg[1]-alg[4])*(1.0/(__PAR_L))*100)/2; - break; - } - j0 = i0+1; - if(j0 >=1 && j0 <= 99) - { - j030 = j0; - if (j030 >= 1 && j030 <= 100) - { - alg[(j0) * 3] = __PAR_v*x[(j030-1) * 3]; - alg[(j0) * 3 + 1] = __PAR_v*x[(j030-1) * 3 + 1]; - } - j030 = j0; - if (j030 >= 1 && j030 <= 100) - { - j40 = j030+1; - if (j030 >= 1 && j030 <= 99) - { - alg[(j0+1) * 3] = __PAR_v*x[(j40-1) * 3]; - alg[(j0+1) * 3 + 1] = __PAR_v*x[(j40-1) * 3 + 1]; - } - } - der[(j0) * 3 + 1] = -(alg[(j0+1) * 3]-alg[(j0) * 3])*100/__PAR_L; - der[(j0) * 3 + 2] = (-(1.0/(__PAR_L))*(alg[(j0+1) * 3 + 1]-alg[(j0) * 3 + 1])*100)/2; - } - j0 = i0; - if(j0 >=1 && j0 <= 99) - { - j050 = j0; - if (j050 >= 1 && j050 <= 100) - { - alg[(j0) * 3] = __PAR_v*x[(j050-1) * 3]; - alg[(j0) * 3 + 1] = __PAR_v*x[(j050-1) * 3 + 1]; - } - j050 = j0; - if (j050 >= 1 && j050 <= 100) - { - j60 = j050+1; - if (j050 >= 1 && j050 <= 99) - { - alg[(j0+1) * 3] = __PAR_v*x[(j60-1) * 3]; - alg[(j0+1) * 3 + 1] = __PAR_v*x[(j60-1) * 3 + 1]; - } - } - der[(j0) * 3 + 1] = -(alg[(j0+1) * 3]-alg[(j0) * 3])*100/__PAR_L; - der[(j0) * 3 + 2] = (-(1.0/(__PAR_L))*(alg[(j0+1) * 3 + 1]-alg[(j0) * 3 + 1])*100)/2; - } -} - -void -MOD_output(int i, double *x, double *d, double *alg, double t, double *out) -{ - switch(i) - { - case 0: - out[0] = x[297]; - return; - } -} - -void -QSS_initializeDataStructs(QSS_simulator simulator) -{ - int *outputs = (int*)malloc(1*sizeof(int)); - int *states = (int*)malloc(100*sizeof(int)); - int i0; - int j0 = 0; - simulator->data = QSS_Data(100,0,0,0,101,"advectionFlux"); - QSS_data modelData = simulator->data; - const double t = 0; - - // Allocate main data structures. - __PAR_L = 1.000000000000000000000000e+00; - __PAR_v = 1.000000000000000000000000e+00; - __PAR_beta = 1.000000000000000000000000e+02; - __PAR_x0 = 5.000000000000000000000000e-01; - __PAR_diff = 0.000000000000000000000000e+00; - __PAR_gam = 0.000000000000000000000000e+00; - __PAR_inVal = 0.0; - __PAR_outVal = 1.0; - // Initialize model code. - for(i0 = 0; i0 <= 49; i0++) - { - __PAR_x[(i0)] = 1.000000000000000000000000e+00*(i0+1)/100; - modelData->x[(i0) * 3] = 1.0; - } - modelData->nDS[0]++; - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->nDS[i0]++; - } - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->nDS[i0]++; - } - modelData->nSD[0]++; - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->nSD[i0-1]++; - } - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->nSD[i0]++; - } - QSS_allocDataMatrix(modelData); - // Initialize model data. - // Initialize model time. - cleanVector(states,0,100); - - modelData->DS[0][states[0]++] = 0; - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->DS[i0][states[i0]++] = i0-1; - } - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->DS[i0][states[i0]++] = i0; - } - cleanVector(states,0,100); - - modelData->SD[0][states[0]++] = 0; - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->SD[i0-1][states[i0-1]++] = i0; - } - for ( i0 = 1; i0 <= 99; i0++) - { - modelData->SD[i0][states[i0]++] = i0; - } - simulator->time = QSS_Time(100,0,0,0,ST_Binary,NULL); - - simulator->output = SD_Output("advectionFlux",1,0,100,NULL,0,0,CI_Step,SD_Memory,MOD_output); -SD_output modelOutput = simulator->output; - - modelOutput->nOS[0] = 1; - modelOutput->nSO[99]++; - SD_allocOutputMatrix(modelOutput,100,0); - cleanVector(states,0,100); - - cleanVector(outputs,0,1); - - sprintf(modelOutput->variable[0].name,"u[100]"); - cleanVector(outputs,0,1); - - modelOutput->SO[99][states[99]++] = 0; - modelOutput->OS[0][outputs[0]++] = 99; - simulator->model = QSS_Model(MOD_definition,MOD_dependencies,NULL,NULL,NULL); - free(outputs); - free(states); -} - -void -CLC_initializeDataStructs (CLC_simulator simulator) -{ -} diff --git a/src/test-suite/advectionFlux/u[100].dat b/src/test-suite/advectionFlux/u[100].dat deleted file mode 100644 index 48916cba..00000000 --- a/src/test-suite/advectionFlux/u[100].dat +++ /dev/null @@ -1,326 +0,0 @@ -0.0000000000000000 0.0000000000000000 -0.2632965841216383 0.0000100000000000 -0.2677927057633782 0.0000168566095587 -0.2781598221342902 0.0000838049805599 -0.2849029315377468 0.0001548693479445 -0.2921972608493499 0.0002800365415889 -0.2976747364710849 0.0004261031332452 -0.3024096852815671 0.0006016539286556 -0.3066206705756946 0.0008062924163931 -0.3105828411347062 0.0010529686436315 -0.3142288730748871 0.0013375233862086 -0.3177403314280079 0.0016697203832971 -0.3209043332158097 0.0020288610535565 -0.3239949341721892 0.0024442198685509 -0.3269812311539388 0.0029112998519534 -0.3303679995038273 0.0035338389120891 -0.3334613786552988 0.0041974592266566 -0.3362416485877385 0.0048819693229082 -0.3386919685021552 0.0055629431800845 -0.3410796710329491 0.0063019246405879 -0.3433955663843240 0.0070954071490386 -0.3454372785834184 0.0078625055826525 -0.3476066856217008 0.0087545007142811 -0.3497099424301822 0.0096977842126652 -0.3517695688791835 0.0107013979735847 -0.3535811920002684 0.0116534175295881 -0.3555707895710414 0.0127799125586130 -0.3574969195654025 0.0139538757613569 -0.3593918511440254 0.0151933639956416 -0.3612309492424892 0.0164805627625513 -0.3628384018854288 0.0176767034056121 -0.3646644378923002 0.0191205525571938 -0.3664340591898446 0.0206086460746333 -0.3681664259677132 0.0221539737592817 -0.3698628722953001 0.0237555501000364 -0.3715226839981286 0.0254101625279924 -0.3729688168282582 0.0269245890231957 -0.3746198114144275 0.0287401947164916 -0.3760247386668072 0.0303591982931231 -0.3776297986680529 0.0322958439241013 -0.3789993995301154 0.0340226728009981 -0.3805660993304380 0.0360854464495038 -0.3819035711334395 0.0379209886734072 -0.3834384419358055 0.0401154161329610 -0.3850693433910210 0.0425523019841024 -0.3866799275804635 0.0450669245556476 -0.3882540940748059 0.0476316566835533 -0.3898071468171144 0.0502678520122500 -0.3913378425723069 0.0529711001962025 -0.3928473868164493 0.0557411162330656 -0.3943366345691286 0.0585770986451342 -0.3958061531130037 0.0614777481593928 -0.3972563637116554 0.0644414738500792 -0.3986877169783773 0.0674667287224568 -0.4001008621545157 0.0705524039377483 -0.4014967771748532 0.0736982034573660 -0.4028768348840858 0.0769049220401582 -0.4042427964272028 0.0801745736408767 -0.4055964194168259 0.0835094584026483 -0.4067595882823659 0.0864509849900218 -0.4081368876945695 0.0900262852751117 -0.4094955248267018 0.0936510613203511 -0.4108462343479901 0.0973519701574846 -0.4121917381189766 0.1011356336271974 -0.4135345228526278 0.1050086876016445 -0.4148768026850295 0.1089775899266907 -0.4162204444269159 0.1130482988471606 -0.4175670171213525 0.1172263059043431 -0.4189178566134272 0.1215167365047066 -0.4202741027107105 0.1259243874969185 -0.4216367377934285 0.1304537841736650 -0.4230066131769640 0.1351092108287143 -0.4243844204454573 0.1398945606640930 -0.4257706735192093 0.1448132038116639 -0.4271659015881943 0.1498686237904066 -0.4285706716332899 0.1550645004918972 -0.4299855107443381 0.1604044219823036 -0.4314109177047024 0.1658919071812211 -0.4328467038518736 0.1715278044159652 -0.4342930655523506 0.1773142566445081 -0.4357509352189645 0.1832563840401001 -0.4372208332912196 0.1893577113601457 -0.4387036475324302 0.1956233234543505 -0.4402000938157206 0.2020576412086299 -0.4417027655849440 0.2086296534403413 -0.4432118220898826 0.2153386902962890 -0.4447387983452099 0.2222371392700453 -0.4462869902616232 0.2293417724085288 -0.4478575927529850 0.2366602146934643 -0.4494505865776623 0.2441942848595023 -0.4507358842462564 0.2503525071054605 -0.4522636755370950 0.2577636003743617 -0.4538555947484180 0.2655863205727504 -0.4555011652362998 0.2737777048215184 -0.4571558068674548 0.2821175570518290 -0.4588769688656738 0.2908984322439844 -0.4606627174127459 0.3001176636471958 -0.4625102117900403 0.3097665024416741 -0.4640043112404982 0.3176478625911687 -0.4658535931096113 0.3274949570850858 -0.4678187225796562 0.3380627109260917 -0.4698823097583463 0.3492656784866817 -0.4720506941506480 0.3611438114382873 -0.4743724909525531 0.3739722408091564 -0.4762953333773947 0.3846716483902598 -0.4784525138439191 0.3967437546733066 -0.4811881184224255 0.4121430397294852 -0.4846745303329769 0.4318794954747482 -0.4897245706070092 0.4605858148469543 -0.4931085303505209 0.4798409613083879 -0.4972641646505004 0.5034124294867245 -0.4999663201594600 0.5186687433179045 -0.5028605128866226 0.5349170618676840 -0.5054144422352639 0.5491568238523723 -0.5076872221399416 0.5617370055126512 -0.5097287837267637 0.5729532392137031 -0.5119338413158485 0.5849679831528013 -0.5140312170856636 0.5962911022125941 -0.5159366684887249 0.6064830016401878 -0.5179228454337248 0.6170032438092866 -0.5198457675887508 0.6270813183973872 -0.5216531364496176 0.6364533266832704 -0.5234071252490358 0.6454508413586209 -0.5251158988026369 0.6541201519510537 -0.5267860309355944 0.6624982967203492 -0.5284218250804001 0.6706100761666549 -0.5300261006799438 0.6784724510465973 -0.5316009420763186 0.6860986675733550 -0.5329523255859860 0.6925686339748192 -0.5345284577642300 0.7000253462578675 -0.5360617916170436 0.7071865678503533 -0.5373806556186661 0.7132714816212301 -0.5389168079505324 0.7202694616321440 -0.5404165268442620 0.7270082859041993 -0.5417092477002089 0.7327421675918708 -0.5432233423626396 0.7393678199387191 -0.5447096929460794 0.7457773775339712 -0.5461829115489747 0.7520365729532948 -0.5476473354007388 0.7581651032854796 -0.5491066486316858 0.7641789974283156 -0.5505638770058305 0.7700907890488672 -0.5520214551967773 0.7759099814672007 -0.5534813226799082 0.7816436012957713 -0.5549450202864463 0.7872967206580551 -0.5564137748390147 0.7928728997943369 -0.5578885681420445 0.7983745410607155 -0.5593701908049291 0.8038031626068769 -0.5608592833107352 0.8091596067941833 -0.5623563570727704 0.8144441630441605 -0.5638618257679665 0.8196567193385409 -0.5653760329842399 0.8247968889102752 -0.5668992645417944 0.8298640761935794 -0.5684317652742930 0.8348575519717888 -0.5699737556892365 0.8397765216089551 -0.5715253512917680 0.8446198809128744 -0.5730833717513715 0.8493766499752952 -0.5746483640400069 0.8540477634134759 -0.5762212410959029 0.8586351561643334 -0.5778030632153034 0.8631410210518595 -0.5793948902309815 0.8675673514638962 -0.5809977807714971 0.8719159440973387 -0.5826120180991448 0.8761863720537816 -0.5842380942501820 0.8803787496078289 -0.5858765298053785 0.8844932248926011 -0.5875277910527730 0.8885297748404565 -0.5891922204055133 0.8924880631957911 -0.5908699845899248 0.8963673659749006 -0.5922189055084126 0.8994072516389073 -0.5937722212092036 0.9028199814746742 -0.5951310091889853 0.9057312978476225 -0.5967470244206539 0.9091030009625451 -0.5983817713460554 0.9124162629173722 -0.6000539709254245 0.9157055928158320 -0.6017467218658489 0.9189341245288135 -0.6034644285782946 0.9221080899319908 -0.6052108190025887 0.9252316362778015 -0.6069887816594454 0.9283067509299070 -0.6087978325306046 0.9313293214115105 -0.6106380384336770 0.9342963799165537 -0.6125093505754189 0.9372049417489302 -0.6144113069113279 0.9400516085526632 -0.6163428473481355 0.9428324302732035 -0.6182895069765321 0.9455252392877751 -0.6202537278007149 0.9481348631258455 -0.6222537633993797 0.9506835779034362 -0.6242774060571152 0.9531542709667437 -0.6263350296936583 0.9555583234011936 -0.6284321314397850 0.9578999638915296 -0.6305722041256410 0.9601804343168279 -0.6322956550611273 0.9619399942455547 -0.6342650400926892 0.9638668668823487 -0.6363590710926216 0.9658237324514117 -0.6385576966220735 0.9677793519386544 -0.6408386881098371 0.9697047739930108 -0.6430734406266888 0.9714931605842071 -0.6453886365765019 0.9732476833065344 -0.6477968393410121 0.9749712697452966 -0.6502971338977118 0.9766562493264702 -0.6528854804804459 0.9782936559231015 -0.6549746192307340 0.9795402688565360 -0.6573254439473322 0.9808636073334140 -0.6598862761417233 0.9822176455594964 -0.6626153922655655 0.9835643679141649 -0.6654915981719486 0.9848817829933719 -0.6684797508818122 0.9861455554364059 -0.6714306053129956 0.9872957846411589 -0.6745209090877766 0.9884021150938511 -0.6777746495143351 0.9894655521660488 -0.6811884810344064 0.9904769254767134 -0.6847249380338488 0.9914198725878530 -0.6875568535543026 0.9921041449921462 -0.6906504013161912 0.9927800664325732 -0.6941958110339420 0.9934745353688708 -0.6980525481168418 0.9941375849410699 -0.7021558597196327 0.9947442398988553 -0.7064292692429198 0.9952745129015167 -0.7104635296727271 0.9956870796441686 -0.7146619509202260 0.9960304094774652 -0.7190300760869761 0.9962993485078302 -0.7235019175044795 0.9964848210210459 -0.7280055403049543 0.9965818650858150 -0.7324944949698255 0.9965899827025877 -0.7369217497482634 0.9965111306599125 -0.7412423270549352 0.9963496508482700 -0.7453992246139299 0.9961130025715618 -0.7493538725798715 0.9958107580661709 -0.7530929064279493 0.9954524752931371 -0.7566226255303378 0.9950467680987939 -0.7607886143868656 0.9944757211831052 -0.7647388682348761 0.9938399487531390 -0.7684358322354843 0.9931545416432499 -0.7718922084557925 0.9924295299377756 -0.7751362249007859 0.9916703165168156 -0.7781887120827706 0.9908824452861817 -0.7808926225955575 0.9901207572450169 -0.7839133808696270 0.9891946713629383 -0.7868705255773124 0.9882090882476466 -0.7897828934718554 0.9871573316896534 -0.7926402987370395 0.9860430875000330 -0.7954236182952686 0.9848752594889448 -0.7981263835527989 0.9836595036256544 -0.8007501644631397 0.9823986851105901 -0.8032970027301568 0.9810955565683018 -0.8057713276567708 0.9797519380828908 -0.8079874748592435 0.9784814578537200 -0.8103695398825180 0.9770396123086303 -0.8127694286408261 0.9755073886267797 -0.8151936421963681 0.9738752007121541 -0.8175906388870213 0.9721748951471865 -0.8199449394809651 0.9704182941246311 -0.8222157889707338 0.9686395593821683 -0.8247432448014371 0.9665602906337087 -0.8272155358470489 0.9644202553917155 -0.8295954114245948 0.9622595419743779 -0.8319070895789287 0.9600626810067784 -0.8341576299927581 0.9578286297953138 -0.8363530227062751 0.9555564357149426 -0.8385009569733158 0.9532424605346058 -0.8406090578716089 0.9508820201589688 -0.8426840834867833 0.9484703223177995 -0.8447315734792367 0.9460030571019679 -0.8467557745522776 0.9434767296442759 -0.8487597434388939 0.9408887845108379 -0.8507455425254699 0.9382375840311062 -0.8527144719545189 0.9355222903464530 -0.8546673080890544 0.9327426819759566 -0.8566045336028631 0.9298989230299338 -0.8585265498361291 0.9269913002473020 -0.8604333436918301 0.9240209506978941 -0.8621105938746436 0.9213369573861450 -0.8640617409704049 0.9181285209256884 -0.8659709486442797 0.9148996169490581 -0.8678599096690329 0.9116167349195164 -0.8697332444900575 0.9082735482373246 -0.8715952377814963 0.9048635668913276 -0.8734497725101321 0.9013803352843600 -0.8753003016436934 0.8978175745550320 -0.8771498489212757 0.8941692750128679 -0.8790010383929249 0.8904297306607515 -0.8808561184126366 0.8865935779320199 -0.8827169919225584 0.8826558157488579 -0.8845852605399196 0.8786117886915047 -0.8864622770948828 0.8744571405625400 -0.8883491989250875 0.8701877528177047 -0.8902470322249392 0.8657996898232685 -0.8921566674263319 0.8612891537625744 -0.8940789055692205 0.8566524521230630 -0.8960145330304290 0.8518858396912158 -0.8979640148984039 0.8469863002714964 -0.8999279350397981 0.8419504998234111 -0.9019066520588988 0.8367756671666254 -0.9039005663904607 0.8314589399041187 -0.9059102088341868 0.8259971197953847 -0.9079362335054711 0.8203866678778080 -0.9099793939116804 0.8146237500822564 -0.9120404968653141 0.8087043550403159 -0.9141203498396611 0.8026244462294850 -0.9162184533403703 0.7963838527006053 -0.9183326515152078 0.7899878259785291 -0.9204663466692463 0.7834248815079188 -0.9226166011396740 0.7767031391954468 -0.9247875113716918 0.7698088708049866 -0.9269831990861126 0.7627277114506550 -0.9292068752572935 0.7554477394699044 -0.9314613645999698 0.7479579633441437 -0.9332607914309345 0.7419036446433632 -0.9353162965525069 0.7349046422781432 -0.9374950977723863 0.7273943270900405 -0.9397755154953720 0.7194352681516890 -0.9419810612569346 0.7116444207614390 -0.9442833291482923 0.7034180203267604 -0.9466969996020137 0.6946948414081577 -0.9491893965451680 0.6855855173647832 -0.9517848841631997 0.6759951762141080 -0.9544926736280320 0.6658828750787306 -0.9566736655617748 0.6576634982889573 -0.9592222869958128 0.6479774155324928 -0.9620749589087596 0.6370432215708852 -0.9649246700504919 0.6260294098209894 -0.9681541250691511 0.6134502316747793 -0.9716591514419530 0.5996923864174867 -0.9745944139846048 0.5881013278010362 -0.9786079085345719 0.5721667226228265 -0.9822499966674897 0.5576418307466099 -0.9907367560047035 0.5236574646083170 -0.9972862252965460 0.4974580843158899 diff --git a/src/test-suite/burgers/burgers.c b/src/test-suite/burgers/burgers.c deleted file mode 100644 index c59c1064..00000000 --- a/src/test-suite/burgers/burgers.c +++ /dev/null @@ -1,305 +0,0 @@ -#include -#include -#include -#include - -#include - - -#include -#include -#include -#include - -double __PAR_beta = 0; -double __PAR_x0 = 0; -double __PAR_pi = 0; -double __PAR_x[1000]; -double __PAR_inVal = 0; -double __PAR_outVal = 0; - -void -MOD_settings(SD_simulationSettings settings) -{ - settings->debug = 0; - settings->parallel = FALSE; - settings->hybrid = TRUE; - settings->method = 4; -} - -void -MOD_definition(int i, double *x, double *d, double *alg, double t, double *dx) -{ - int i0 = i; - int j0 = 0; - switch(i) - { - case 0: - dx[1] = d[0]*(x[0]+x[2997])/2.0*(-x[0]+x[2997])*1000+(1.0-d[0])*(x[3]+x[0])/2.0*(-x[3]+x[0])*1000; - return; - case 999: - dx[1] = d[999]*(x[2997]+x[2994])/2.0*(-x[2997]+x[2994])*1000+(1.0-d[999])*(x[0]+x[2997])*(-x[0]+x[2997])*1000; - return; - default: - j0 = i0; - if(j0 >=1 && j0 <= 998) - { - dx[1] = d[(j0)]*(x[(j0) * 3]+x[(j0-1) * 3])/2.0*(-x[(j0) * 3]+x[(j0-1) * 3])*1000+(1.0-d[(j0)])*(x[(j0+1) * 3]+x[(j0) * 3])*(-x[(j0+1) * 3]+x[(j0) * 3])*1000; - } - } -} - -void -MOD_dependencies(int i, double *x, double *d, double *alg, double t, double *der, int *map) -{ - int i0 = i; - int j0 = 0; - switch(i) - { - case 0: - der[0 + 1] = d[0]*(x[0]+x[2997])/2.0*(-x[0]+x[2997])*1000+(1.0-d[0])*(x[3]+x[0])/2.0*(-x[3]+x[0])*1000; - der[2997 + 1] = d[999]*(x[2997]+x[2994])/2.0*(-x[2997]+x[2994])*1000+(1.0-d[999])*(x[0]+x[2997])*(-x[0]+x[2997])*1000; - break; - case 1: - der[0 + 1] = d[0]*(x[0]+x[2997])/2.0*(-x[0]+x[2997])*1000+(1.0-d[0])*(x[3]+x[0])/2.0*(-x[3]+x[0])*1000; - break; - case 998: - der[2997 + 1] = d[999]*(x[2997]+x[2994])/2.0*(-x[2997]+x[2994])*1000+(1.0-d[999])*(x[0]+x[2997])*(-x[0]+x[2997])*1000; - break; - case 999: - der[0 + 1] = d[0]*(x[0]+x[2997])/2.0*(-x[0]+x[2997])*1000+(1.0-d[0])*(x[3]+x[0])/2.0*(-x[3]+x[0])*1000; - der[2997 + 1] = d[999]*(x[2997]+x[2994])/2.0*(-x[2997]+x[2994])*1000+(1.0-d[999])*(x[0]+x[2997])*(-x[0]+x[2997])*1000; - break; - } - j0 = i0+1; - if(j0 >=1 && j0 <= 998) - { - der[(j0) * 3 + 1] = d[(j0)]*(x[(j0) * 3]+x[(j0-1) * 3])/2.0*(-x[(j0) * 3]+x[(j0-1) * 3])*1000+(1.0-d[(j0)])*(x[(j0+1) * 3]+x[(j0) * 3])*(-x[(j0+1) * 3]+x[(j0) * 3])*1000; - } - j0 = i0; - if(j0 >=1 && j0 <= 998) - { - der[(j0) * 3 + 1] = d[(j0)]*(x[(j0) * 3]+x[(j0-1) * 3])/2.0*(-x[(j0) * 3]+x[(j0-1) * 3])*1000+(1.0-d[(j0)])*(x[(j0+1) * 3]+x[(j0) * 3])*(-x[(j0+1) * 3]+x[(j0) * 3])*1000; - } - j0 = i0-1; - if(j0 >=1 && j0 <= 998) - { - der[(j0) * 3 + 1] = d[(j0)]*(x[(j0) * 3]+x[(j0-1) * 3])/2.0*(-x[(j0) * 3]+x[(j0-1) * 3])*1000+(1.0-d[(j0)])*(x[(j0+1) * 3]+x[(j0) * 3])*(-x[(j0+1) * 3]+x[(j0) * 3])*1000; - } -} - -void -MOD_zeroCrossing(int i, double *x, double *d, double *alg, double t, double *zc) -{ - int i0 = i; - if(i0 >= 0 && i0 <= 999) - { - zc[0] = x[(i0) * 3]-(0.0); - } -} - -void -MOD_handlerPos(int i, double *x, double *d, double *alg, double t) -{ - int i0 = i; - if(i0 >= 0 && i0 <= 999) - { - d[(i0)] = 1.0; - } -} - -void -MOD_handlerNeg(int i, double *x, double *d, double *alg, double t) -{ - int i0 = i; - if(i0 >= 0 && i0 <= 999) - { - d[(i0)] = 0.0; - } -} - -void -MOD_output(int i, double *x, double *d, double *alg, double t, double *out) -{ - int i0 = i; - int j0 = 0; - j0 = i0; - if(j0 >=0 && j0 <= 4) - { - out[0] = x[(200*j0) * 3]; - } -} - -void -QSS_initializeDataStructs(QSS_simulator simulator) -{ - int *discretes = (int*)malloc(1000*sizeof(int)); - int *events = (int*)malloc(1000*sizeof(int)); - int *outputs = (int*)malloc(5*sizeof(int)); - int *states = (int*)malloc(1000*sizeof(int)); - int i0; - int j0 = 0; - simulator->data = QSS_Data(1000,1000,1000,0,0,"burgers"); - QSS_data modelData = simulator->data; - const double t = 0; - - // Allocate main data structures. - __PAR_beta = 100.0; - __PAR_x0 = 5.000000000000000000000000e-01; - __PAR_pi = 3.141589999999999882618340e+00; - __PAR_inVal = 1.0; - __PAR_outVal = 1.0; - modelData->d[(0)] = 0.0; - // Initialize model code. - for(i0 = 0; i0 <= 999; i0++) - { - __PAR_x[(i0)] = 1.000000000000000000000000e+00*(i0+1)/1000; - modelData->x[(i0) * 3] = sin(__PAR_pi*2.0*__PAR_x[(i0)]); - if(modelData->x[(i0) * 3]>0.0) - { - modelData->d[(i0)] = 1.0; - } - else - { - modelData->d[(i0)] = 0.0; - } - } - modelData->nDS[0] = 3; - for(i0 = 1; i0 <= 998; i0++) - { - modelData->nDS[i0] = 3; - } - modelData->nDS[999] = 3; - modelData->nSD[0]++; - modelData->nSD[1]++; - modelData->nSD[999]++; - for(i0 = 1; i0 <= 998; i0++) - { - modelData->nSD[i0-1]++; - modelData->nSD[i0]++; - modelData->nSD[i0+1]++; - } - modelData->nSD[0]++; - modelData->nSD[998]++; - modelData->nSD[999]++; - for(i0 = 0; i0 <= 999; i0++) - { - modelData->nZS[i0] = 1; - } - for(i0 = 0; i0 <= 999; i0++) - { - modelData->nSZ[i0]++; - } - modelData->nHD[0]++; - for(i0 = 1; i0 <= 998; i0++) - { - modelData->nHD[i0]++; - } - modelData->nHD[999]++; - for(i0 = 0; i0 <= 999; i0++) - { - modelData->event[i0].nLHSDsc = 1; - } - QSS_allocDataMatrix(modelData); - // Initialize model data. - // Initialize model time. - cleanVector(states,0,1000); - - modelData->DS[0][states[0]++] = 0; - modelData->DS[0][states[0]++] = 1; - modelData->DS[0][states[0]++] = 999; - for(i0 = 1; i0 <= 998; i0++) - { - modelData->DS[i0][states[i0]++] = i0-1; - modelData->DS[i0][states[i0]++] = i0; - modelData->DS[i0][states[i0]++] = i0+1; - } - modelData->DS[999][states[999]++] = 0; - modelData->DS[999][states[999]++] = 998; - modelData->DS[999][states[999]++] = 999; - cleanVector(states,0,1000); - - modelData->SD[0][states[0]++] = 0; - modelData->SD[1][states[1]++] = 0; - modelData->SD[999][states[999]++] = 0; - for(i0 = 1; i0 <= 998; i0++) - { - modelData->SD[i0-1][states[i0-1]++] = i0; - modelData->SD[i0][states[i0]++] = i0; - modelData->SD[i0+1][states[i0+1]++] = i0; - } - modelData->SD[0][states[0]++] = 999; - modelData->SD[998][states[998]++] = 999; - modelData->SD[999][states[999]++] = 999; - cleanVector(events,0,1000); - - for(i0 = 0; i0 <= 999; i0++) - { - modelData->ZS[i0][events[i0]++] = i0; - } - cleanVector(states,0,1000); - - for(i0 = 0; i0 <= 999; i0++) - { - modelData->SZ[i0][states[i0]++] = i0; - } - cleanVector(events,0,1000); - - modelData->HD[0][events[0]++] = 0; - for(i0 = 1; i0 <= 998; i0++) - { - modelData->HD[i0][events[i0]++] = i0; - } - modelData->HD[999][events[999]++] = 999; - cleanVector(events,0,1000); - - for(i0 = 0; i0 <= 999; i0++) - { - modelData->event[i0].LHSDsc[events[i0]++] = i0; - } - cleanVector(events,0,1000); - - for(i0 = 0; i0 <= 999; i0++) - { - modelData->event[i0].direction = 0; - modelData->event[i0].relation = 2; - } - simulator->time = QSS_Time(1000,1000,0,0,ST_Binary,NULL); - - double period[1]; - period[0] = 0.01; - simulator->output = SD_Output("burgers",5,1000,1000,period,1,0,CI_Sampled,SD_Memory,MOD_output); - SD_output modelOutput = simulator->output; - - for(i0 = 0; i0 <= 4; i0++) - { - modelOutput->nOS[i0] = 1; - modelOutput->nSO[200*i0]++; - } - SD_allocOutputMatrix(modelOutput,1000,1000); - cleanVector(states,0,1000); - - cleanVector(outputs,0,5); - - for(i0 = 0; i0 <= 4; i0++) - { - sprintf(modelOutput->variable[i0].name,"u[%d]",200*i0+1); - } - cleanVector(outputs,0,5); - - for(i0 = 0; i0 <= 4; i0++) - { - modelOutput->SO[200*i0][states[200*i0]++] = i0; - modelOutput->OS[i0][outputs[i0]++] = 200*i0; - } - simulator->model = QSS_Model(MOD_definition,MOD_dependencies,MOD_zeroCrossing,MOD_handlerPos,MOD_handlerNeg); - free(discretes); - free(events); - free(outputs); - free(states); -} - -void -CLC_initializeDataStructs (CLC_simulator simulator) -{ -} diff --git a/src/test-suite/burgers/u[1].dat b/src/test-suite/burgers/u[1].dat deleted file mode 100644 index 13a49d11..00000000 --- a/src/test-suite/burgers/u[1].dat +++ /dev/null @@ -1,101 +0,0 @@ -0.0000000000000000 0.0062831386584841 -0.0100000000000000 0.0060912342888359 -0.0200000000000000 0.0059104569434092 -0.0300000000000000 0.0057296795979824 -0.0400000000000000 0.0055945719220567 -0.0500000000000000 0.0054501901064139 -0.0600000000000000 0.0053058082907711 -0.0700000000000000 0.0052072174891482 -0.0800000000000000 0.0050972616743076 -0.0900000000000000 0.0049873058594671 -0.1000000000000000 0.0049157689199737 -0.1100000000000000 0.0048375439738966 -0.1200000000000000 0.0047593190278196 -0.1300000000000000 0.0046968326685768 -0.1400000000000000 0.0046464362235174 -0.1500000000000000 0.0045960397784580 -0.1600000000000000 0.0045456433333986 -0.1700000000000000 0.0044952468883393 -0.1800000000000000 0.0044692550822102 -0.1900000000000000 0.0044418034767929 -0.2000000000000000 0.0044143518713755 -0.2100000000000000 0.0043869002659582 -0.2200000000000000 0.0043594486605408 -0.2300000000000000 0.0043319970551235 -0.2400000000000000 0.0043214950838578 -0.2500000000000000 0.0043105028311560 -0.2600000000000000 0.0042995105784542 -0.2700000000000000 0.0042885183257524 -0.2800000000000000 0.0042775260730507 -0.2900000000000000 0.0042665338203489 -0.3000000000000000 0.0042555415676471 -0.3100000000000000 0.0042445493149453 -0.3200000000000000 0.0042335570622435 -0.3300000000000000 0.0042225648095417 -0.3400000000000000 0.0042267681295442 -0.3500000000000000 0.0042241231056710 -0.3600000000000000 0.0042214780817978 -0.3700000000000000 0.0042188330579247 -0.3800000000000000 0.0042161880340515 -0.3900000000000000 0.0042135430101784 -0.4000000000000000 0.0042108979863052 -0.4100000000000000 0.0042082529624321 -0.4200000000000000 0.0042056079385589 -0.4300000000000000 0.0042029629146858 -0.4400000000000000 0.0042003178908126 -0.4500000000000000 0.0041976728669394 -0.4600000000000000 0.0041950278430663 -0.4700000000000000 0.0041923828191931 -0.4800000000000000 0.0041897377953200 -0.4900000000000000 0.0041870927714468 -0.5000000000000000 0.0041844477475737 -0.5100000000000000 0.0041818027237005 -0.5200000000000000 0.0041791576998273 -0.5300000000000000 0.0041950057534093 -0.5400000000000000 0.0041952234505656 -0.5500000000000000 0.0041954411477219 -0.5600000000000001 0.0041956588448782 -0.5700000000000001 0.0041958765420346 -0.5800000000000000 0.0041960942391909 -0.5900000000000000 0.0041963119363472 -0.6000000000000000 0.0041965296335035 -0.6100000000000000 0.0041967473306598 -0.6200000000000000 0.0041969650278161 -0.6300000000000000 0.0041971827249725 -0.6400000000000000 0.0041974004221288 -0.6500000000000000 0.0041976181192851 -0.6600000000000000 0.0041978358164414 -0.6700000000000000 0.0041980535135977 -0.6800000000000000 0.0041982712107540 -0.6900000000000001 0.0041984889079103 -0.7000000000000001 0.0041987066050667 -0.7100000000000000 0.0041989243022230 -0.7200000000000000 0.0041991419993793 -0.7300000000000000 0.0041993596965356 -0.7400000000000000 0.0041995773936919 -0.7500000000000000 0.0041997950908482 -0.7600000000000000 0.0042000127880046 -0.7700000000000000 0.0042002304851609 -0.7800000000000000 0.0042004481823172 -0.7900000000000000 0.0042006658794735 -0.8000000000000000 0.0042008835766298 -0.8100000000000001 0.0042011012737861 -0.8200000000000001 0.0042013189709424 -0.8300000000000001 0.0042015366680988 -0.8400000000000000 0.0042017543652551 -0.8500000000000000 0.0042019720624114 -0.8600000000000000 0.0042021897595677 -0.8700000000000000 0.0042024074567240 -0.8800000000000000 0.0042026251538803 -0.8900000000000000 0.0042028428510367 -0.9000000000000000 0.0042030605481930 -0.9100000000000000 0.0042032782453493 -0.9200000000000000 0.0042034959425056 -0.9300000000000000 0.0042037136396619 -0.9400000000000001 0.0042039313368182 -0.9500000000000001 0.0042041490339746 -0.9600000000000000 0.0042043667311309 -0.9700000000000000 0.0042045844282872 -0.9800000000000000 0.0042048021254435 -0.9900000000000000 0.0042050198225998 -1.0000000000000000 0.0041853886026851 diff --git a/src/test-suite/burgers/u[201].dat b/src/test-suite/burgers/u[201].dat deleted file mode 100644 index a8e64818..00000000 --- a/src/test-suite/burgers/u[201].dat +++ /dev/null @@ -1,101 +0,0 @@ -0.0000000000000000 0.9529790182558946 -0.0100000000000000 0.9334327065749853 -0.0200000000000000 0.9118465083397632 -0.0300000000000000 0.8888027487992198 -0.0400000000000000 0.8648782890305808 -0.0500000000000000 0.8405271652325419 -0.0600000000000000 0.8160865397399698 -0.0700000000000000 0.7920208302998382 -0.0800000000000000 0.7684442343947895 -0.0900000000000000 0.7454886687160405 -0.1000000000000000 0.7232912145094290 -0.1100000000000000 0.7019035904105527 -0.1200000000000000 0.6813586268771890 -0.1300000000000000 0.6616618797646135 -0.1400000000000000 0.6428272414621684 -0.1500000000000000 0.6248267165526538 -0.1600000000000000 0.6076389748161598 -0.1700000000000000 0.5912232628353955 -0.1800000000000000 0.5755555469855156 -0.1900000000000000 0.5606017129446056 -0.2000000000000000 0.5463112722087073 -0.2100000000000000 0.5326744019167635 -0.2200000000000000 0.5196465166099212 -0.2300000000000000 0.5071857049044436 -0.2400000000000000 0.4952550953810937 -0.2500000000000000 0.4838541970094430 -0.2600000000000000 0.4729181953655222 -0.2700000000000000 0.4624537686240845 -0.2800000000000000 0.4524124479593266 -0.2900000000000000 0.4427722217875450 -0.3000000000000000 0.4335143437494938 -0.3100000000000000 0.4246406065753716 -0.3200000000000000 0.4160992785792966 -0.3300000000000000 0.4078823153332966 -0.3400000000000000 0.3999727979122078 -0.3500000000000000 0.3923542726875080 -0.3600000000000000 0.3850001218281622 -0.3700000000000000 0.3779293551436000 -0.3800000000000000 0.3711064711314244 -0.3900000000000000 0.3645167756615323 -0.4000000000000000 0.3581319753992360 -0.4100000000000000 0.3519926709300974 -0.4200000000000000 0.3460481546138321 -0.4300000000000000 0.3402823871041563 -0.4400000000000000 0.3347236237340729 -0.4500000000000000 0.3293172915278404 -0.4600000000000000 0.3241059926952256 -0.4700000000000000 0.3190320069068281 -0.4800000000000000 0.3141312556651046 -0.4900000000000000 0.3093633994453002 -0.5000000000000000 0.3047266917318541 -0.5100000000000000 0.3002566754000452 -0.5200000000000000 0.2958942541960224 -0.5300000000000000 0.2916482502938679 -0.5400000000000000 0.2875411230292578 -0.5500000000000000 0.2835362273788328 -0.5600000000000001 0.2796377269573547 -0.5700000000000001 0.2758457424539998 -0.5800000000000000 0.2721633212855557 -0.5900000000000000 0.2685621688895850 -0.6000000000000000 0.2650709136170638 -0.6100000000000000 0.2616627737530312 -0.6200000000000000 0.2583254785001563 -0.6300000000000000 0.2550904732254546 -0.6400000000000000 0.2519251127972962 -0.6500000000000000 0.2488437076440579 -0.6600000000000000 0.2458303608575245 -0.6700000000000000 0.2428886167218222 -0.6800000000000000 0.2400274159401582 -0.6900000000000001 0.2372136252700188 -0.7000000000000001 0.2344847453567959 -0.7100000000000000 0.2317982865000475 -0.7200000000000000 0.2291887525930974 -0.7300000000000000 0.2266239569378810 -0.7400000000000000 0.2241366667584916 -0.7500000000000000 0.2216722411796343 -0.7600000000000000 0.2192912025010634 -0.7700000000000000 0.2169393950175244 -0.7800000000000000 0.2146516092700652 -0.7900000000000000 0.2124052461542960 -0.8000000000000000 0.2102029265032100 -0.8100000000000001 0.2080494907812366 -0.8200000000000001 0.2059365561104037 -0.8300000000000001 0.2038673136767842 -0.8400000000000000 0.2018397357792156 -0.8500000000000000 0.1998488630322856 -0.8600000000000000 0.1979004075870890 -0.8700000000000000 0.1959962526690044 -0.8800000000000000 0.1941195019324728 -0.8900000000000000 0.1922882356484358 -0.9000000000000000 0.1904604960784067 -0.9100000000000000 0.1886937662208462 -0.9200000000000000 0.1869560684815931 -0.9300000000000000 0.1852589221860176 -0.9400000000000001 0.1835690277553636 -0.9500000000000001 0.1819240702658496 -0.9600000000000000 0.1803112723646431 -0.9700000000000000 0.1787103295603847 -0.9800000000000000 0.1771541876224747 -0.9900000000000000 0.1756282875447711 -1.0000000000000000 0.1741255905969857 diff --git a/src/test-suite/burgers/u[401].dat b/src/test-suite/burgers/u[401].dat deleted file mode 100644 index b121f039..00000000 --- a/src/test-suite/burgers/u[401].dat +++ /dev/null @@ -1,101 +0,0 @@ -0.0000000000000000 0.5826922092259220 -0.0100000000000000 0.6136181751841692 -0.0200000000000000 0.6468066493255635 -0.0300000000000000 0.6821033769705430 -0.0400000000000000 0.7192009306883728 -0.0500000000000000 0.7576073617018740 -0.0600000000000000 0.7965598680012973 -0.0700000000000000 0.8348367865414260 -0.0800000000000000 0.8711679565188247 -0.0900000000000000 0.9043161234804122 -0.1000000000000000 0.9330941334625623 -0.1100000000000000 0.9566801553382221 -0.1200000000000000 0.9746767402202894 -0.1300000000000000 0.9871030859953254 -0.1400000000000000 0.9943580085933424 -0.1500000000000000 0.9969979111546025 -0.1600000000000000 0.9956761159458773 -0.1700000000000000 0.9910650805429196 -0.1800000000000000 0.9837892011692444 -0.1900000000000000 0.9744225789309284 -0.2000000000000000 0.9633935169745766 -0.2100000000000000 0.9511335946208695 -0.2200000000000000 0.9379751374801671 -0.2300000000000000 0.9241595831329589 -0.2400000000000000 0.9099329658379562 -0.2500000000000000 0.8954374610362497 -0.2600000000000000 0.8808350535735157 -0.2700000000000000 0.8661859732450368 -0.2800000000000000 0.8515228646233826 -0.2900000000000000 0.8371053258244017 -0.3000000000000000 0.8230095610182813 -0.3100000000000000 0.8090621356934583 -0.3200000000000000 0.7953853580065933 -0.3300000000000000 0.7819811909060898 -0.3400000000000000 0.7688540442721290 -0.3500000000000000 0.7560241788689621 -0.3600000000000000 0.7435050121782558 -0.3700000000000000 0.7312964204139045 -0.3800000000000000 0.7193769581317251 -0.3900000000000000 0.7077718463311323 -0.4000000000000000 0.6964729838855837 -0.4100000000000000 0.6854547888424525 -0.4200000000000000 0.6747454986921855 -0.4300000000000000 0.6643115034370534 -0.4400000000000000 0.6541446219654857 -0.4500000000000000 0.6442581272366353 -0.4600000000000000 0.6346318271042426 -0.4700000000000000 0.6252453848172410 -0.4800000000000000 0.6161422635462956 -0.4900000000000000 0.6072495630503644 -0.5000000000000000 0.5985876596324224 -0.5100000000000000 0.5901569307629055 -0.5200000000000000 0.5819403800681123 -0.5300000000000000 0.5739428935290101 -0.5400000000000000 0.5661259692181528 -0.5500000000000000 0.5585224104611112 -0.5600000000000001 0.5511092466285594 -0.5700000000000001 0.5438874397803382 -0.5800000000000000 0.5368235230384800 -0.5900000000000000 0.5299426006183101 -0.6000000000000000 0.5232250197679805 -0.6100000000000000 0.5166733655888215 -0.6200000000000000 0.5102729445071369 -0.6300000000000000 0.5040220292013602 -0.6400000000000000 0.4979133237631005 -0.6500000000000000 0.4919607622651830 -0.6600000000000000 0.4861303952124321 -0.6700000000000000 0.4804364718980105 -0.6800000000000000 0.4748742759104301 -0.6900000000000001 0.4694286630366646 -0.7000000000000001 0.4641035630401866 -0.7100000000000000 0.4588905884732466 -0.7200000000000000 0.4538004848628937 -0.7300000000000000 0.4488119701383928 -0.7400000000000000 0.4439346886107606 -0.7500000000000000 0.4391487648533765 -0.7600000000000000 0.4344780983891446 -0.7700000000000000 0.4298969112593130 -0.7800000000000000 0.4254027189833263 -0.7900000000000000 0.4210128353179027 -0.8000000000000000 0.4167112921196364 -0.8100000000000001 0.4124800342470145 -0.8200000000000001 0.4083437404531595 -0.8300000000000001 0.4042861282313198 -0.8400000000000000 0.4003019246505161 -0.8500000000000000 0.3963928261607777 -0.8600000000000000 0.3925752680320508 -0.8700000000000000 0.3888070629279689 -0.8800000000000000 0.3851201633942554 -0.8900000000000000 0.3815065032395413 -0.9000000000000000 0.3779546244681832 -0.9100000000000000 0.3744514807415477 -0.9200000000000000 0.3710320474937902 -0.9300000000000000 0.3676777011806237 -0.9400000000000001 0.3643730168265684 -0.9500000000000001 0.3611139853123269 -0.9600000000000000 0.3579412422898196 -0.9700000000000000 0.3548109057753507 -0.9800000000000000 0.3517301522505214 -0.9900000000000000 0.3487041831708156 -1.0000000000000000 0.3457348068762739 diff --git a/src/test-suite/burgers/u[601].dat b/src/test-suite/burgers/u[601].dat deleted file mode 100644 index 4e3be108..00000000 --- a/src/test-suite/burgers/u[601].dat +++ /dev/null @@ -1,101 +0,0 @@ -0.0000000000000000 -0.5928542515359865 -0.0100000000000000 -0.6573236540422160 -0.0200000000000000 -0.7296284735841136 -0.0300000000000000 -0.8062176676207004 -0.0400000000000000 -0.8790963444801786 -0.0500000000000000 -0.9386450366191493 -0.0600000000000000 -0.9777075046505560 -0.0700000000000000 -0.9952840965588096 -0.0800000000000000 -0.9950368485849332 -0.0900000000000000 -0.9820554770412125 -0.1000000000000000 -0.9609501972600101 -0.1100000000000000 -0.9350831463356332 -0.1200000000000000 -0.9067621291345060 -0.1300000000000000 -0.8774793715397962 -0.1400000000000000 -0.8481301290914611 -0.1500000000000000 -0.8195838647764067 -0.1600000000000000 -0.7919765793169822 -0.1700000000000000 -0.7654770795558192 -0.1800000000000000 -0.7401987028739497 -0.1900000000000000 -0.7161107481777077 -0.2000000000000000 -0.6932536189848376 -0.2100000000000000 -0.6716067717513502 -0.2200000000000000 -0.6510809210563702 -0.2300000000000000 -0.6316301871256773 -0.2400000000000000 -0.6132009435955568 -0.2500000000000000 -0.5957350008890433 -0.2600000000000000 -0.5791481586983491 -0.2700000000000000 -0.5634134239645964 -0.2800000000000000 -0.5484548120566668 -0.2900000000000000 -0.5342288544715607 -0.3000000000000000 -0.5206965622756563 -0.3100000000000000 -0.5078055649411707 -0.3200000000000000 -0.4954966892993765 -0.3300000000000000 -0.4837557859102183 -0.3400000000000000 -0.4725499570749743 -0.3500000000000000 -0.4618295876340757 -0.3600000000000000 -0.4515763642348493 -0.3700000000000000 -0.4417687196567197 -0.3800000000000000 -0.4323380740145731 -0.3900000000000000 -0.4233157912498030 -0.4000000000000000 -0.4146462418844670 -0.4100000000000000 -0.4063246755743611 -0.4200000000000000 -0.3983230246312242 -0.4300000000000000 -0.3906368963178505 -0.4400000000000000 -0.3832353199131286 -0.4500000000000000 -0.3760902449836923 -0.4600000000000000 -0.3692188036577363 -0.4700000000000000 -0.3625695483948667 -0.4800000000000000 -0.3561758220991791 -0.4900000000000000 -0.3499782834740184 -0.5000000000000000 -0.3440156897475055 -0.5100000000000000 -0.3382374723939017 -0.5200000000000000 -0.3326522037367921 -0.5300000000000000 -0.3272463479459404 -0.5400000000000000 -0.3220143332122386 -0.5500000000000000 -0.3169307231518221 -0.5600000000000001 -0.3120313525490255 -0.5700000000000001 -0.3072551837744014 -0.5800000000000000 -0.3026310444448793 -0.5900000000000000 -0.2981573042395253 -0.6000000000000000 -0.2937827540447861 -0.6100000000000000 -0.2895567433312743 -0.6200000000000000 -0.2854539388422532 -0.6300000000000000 -0.2814459580325111 -0.6400000000000000 -0.2775663411705865 -0.6500000000000000 -0.2737811842023825 -0.6600000000000000 -0.2701060129946309 -0.6700000000000000 -0.2665163037066847 -0.6800000000000000 -0.2630231910150626 -0.6900000000000001 -0.2596144940955652 -0.7000000000000001 -0.2563139607471939 -0.7100000000000000 -0.2530830103003943 -0.7200000000000000 -0.2499221676996750 -0.7300000000000000 -0.2468578275563109 -0.7400000000000000 -0.2438698541423845 -0.7500000000000000 -0.2409356306685600 -0.7600000000000000 -0.2380778794136302 -0.7700000000000000 -0.2352887663429328 -0.7800000000000000 -0.2325588002456273 -0.7900000000000000 -0.2298948138729742 -0.8000000000000000 -0.2272892058215836 -0.8100000000000001 -0.2247533095565584 -0.8200000000000001 -0.2222525823500957 -0.8300000000000001 -0.2198229863043492 -0.8400000000000000 -0.2174449680901729 -0.8500000000000000 -0.2151136909305334 -0.8600000000000000 -0.2128297524513124 -0.8700000000000000 -0.2105915781077546 -0.8800000000000000 -0.2083986275121948 -0.8900000000000000 -0.2062562688975217 -0.9000000000000000 -0.2041600207703163 -0.9100000000000000 -0.2021189078010119 -0.9200000000000000 -0.2000961176991110 -0.9300000000000000 -0.1981139099250242 -0.9400000000000001 -0.1961812928953957 -0.9500000000000001 -0.1942870318666229 -0.9600000000000000 -0.1924132988553596 -0.9700000000000000 -0.1905884277901636 -0.9800000000000000 -0.1888002353612145 -0.9900000000000000 -0.1870422838030692 -1.0000000000000000 -0.1853156209965237 diff --git a/src/test-suite/burgers/u[801].dat b/src/test-suite/burgers/u[801].dat deleted file mode 100644 index cbfb80ff..00000000 --- a/src/test-suite/burgers/u[801].dat +++ /dev/null @@ -1,101 +0,0 @@ -0.0000000000000000 -0.9490974840054306 -0.0100000000000000 -0.9068834349917206 -0.0200000000000000 -0.8592438188497802 -0.0300000000000000 -0.8101065408063365 -0.0400000000000000 -0.7623574209451927 -0.0500000000000000 -0.7172270457398220 -0.0600000000000000 -0.6754453363488335 -0.0700000000000000 -0.6370855484447385 -0.0800000000000000 -0.6020923585113339 -0.0900000000000000 -0.5702312983136776 -0.1000000000000000 -0.5412030373478461 -0.1100000000000000 -0.5147266575134120 -0.1200000000000000 -0.4905357560161529 -0.1300000000000000 -0.4683928680052338 -0.1400000000000000 -0.4480426081355073 -0.1500000000000000 -0.4293387291676777 -0.1600000000000000 -0.4120633492580045 -0.1700000000000000 -0.3960755365732847 -0.1800000000000000 -0.3812619988232698 -0.1900000000000000 -0.3674806443802342 -0.2000000000000000 -0.3546450446587746 -0.2100000000000000 -0.3426554776448638 -0.2200000000000000 -0.3314378960204946 -0.2300000000000000 -0.3209043018948003 -0.2400000000000000 -0.3110398978512729 -0.2500000000000000 -0.3017493132920591 -0.2600000000000000 -0.2929908901623396 -0.2700000000000000 -0.2847101742405270 -0.2800000000000000 -0.2768850769447290 -0.2900000000000000 -0.2694744434195770 -0.3000000000000000 -0.2624486396099040 -0.3100000000000000 -0.2557787512593536 -0.3200000000000000 -0.2494466956592853 -0.3300000000000000 -0.2434086609584738 -0.3400000000000000 -0.2376521820756197 -0.3500000000000000 -0.2321645394145828 -0.3600000000000000 -0.2269272279594359 -0.3700000000000000 -0.2219210194505082 -0.3800000000000000 -0.2171268192244523 -0.3900000000000000 -0.2125320785450084 -0.4000000000000000 -0.2081162358417753 -0.4100000000000000 -0.2039040296386981 -0.4200000000000000 -0.1998539131602172 -0.4300000000000000 -0.1959458104979928 -0.4400000000000000 -0.1922011009978809 -0.4500000000000000 -0.1885837516975167 -0.4600000000000000 -0.1851202549012711 -0.4700000000000000 -0.1817629764461554 -0.4800000000000000 -0.1785278043102651 -0.4900000000000000 -0.1754165653950887 -0.5000000000000000 -0.1723983655908259 -0.5100000000000000 -0.1694950160118911 -0.5200000000000000 -0.1666669111305960 -0.5300000000000000 -0.1639525595993092 -0.5400000000000000 -0.1613099028506563 -0.5500000000000000 -0.1587606870210639 -0.5600000000000001 -0.1563001298948762 -0.5700000000000001 -0.1538945097459522 -0.5800000000000000 -0.1515691615905079 -0.5900000000000000 -0.1493151044905797 -0.6000000000000000 -0.1471221080867060 -0.6100000000000000 -0.1449975622443832 -0.6200000000000000 -0.1429463298509454 -0.6300000000000000 -0.1409407460254133 -0.6400000000000000 -0.1389776209862229 -0.6500000000000000 -0.1370816924474654 -0.6600000000000000 -0.1352278447473293 -0.6700000000000000 -0.1334424557405618 -0.6800000000000000 -0.1316918412235001 -0.6900000000000001 -0.1299816324290909 -0.7000000000000001 -0.1283191752724924 -0.7100000000000000 -0.1266991146541116 -0.7200000000000000 -0.1251200061111497 -0.7300000000000000 -0.1235760210823623 -0.7400000000000000 -0.1220815554607936 -0.7500000000000000 -0.1206105558335196 -0.7600000000000000 -0.1191914660276173 -0.7700000000000000 -0.1177766147008411 -0.7800000000000000 -0.1164139586747653 -0.7900000000000000 -0.1150813165476201 -0.8000000000000000 -0.1137758131343205 -0.8100000000000001 -0.1125097621902473 -0.8200000000000001 -0.1112490168468108 -0.8300000000000001 -0.1100388731826755 -0.8400000000000000 -0.1088517586360724 -0.8500000000000000 -0.1076822949796885 -0.8600000000000000 -0.1065293902371639 -0.8700000000000000 -0.1054161308022891 -0.8800000000000000 -0.1043273535183129 -0.8900000000000000 -0.1032507948923131 -0.9000000000000000 -0.1021935770173760 -0.9100000000000000 -0.1011688847150455 -0.9200000000000000 -0.1001614402167363 -0.9300000000000000 -0.0991648905224382 -0.9400000000000001 -0.0982005608994688 -0.9500000000000001 -0.0972540449510211 -0.9600000000000000 -0.0963256873050773 -0.9700000000000000 -0.0954031153766938 -0.9800000000000000 -0.0945028163722006 -0.9900000000000000 -0.0936307968232454 -1.0000000000000000 -0.0927738358625210 diff --git a/src/test-suite/testFor/testFor.c b/src/test-suite/testFor/testFor.c deleted file mode 100644 index e051d094..00000000 --- a/src/test-suite/testFor/testFor.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include -#include -#include - -#include - - -#include -#include -#include -#include - -double __PAR_ax = 0; -double __PAR_ay = 0; -double __PAR_r = 0; -double __PAR_dx = 0; -double __PAR_dy = 0; - -void -MOD_settings(SD_simulationSettings settings) -{ - settings->debug = 0; - settings->parallel = FALSE; - settings->hybrid = FALSE; - settings->method = 4; -} - -void -MOD_definition(int i, double *x, double *d, double *alg, double t, double *dx) -{ - int i0 = i; - int j0 = 0; - switch(i) - { - case 0: - dx[1] = (-x[0]*__PAR_ax/__PAR_dx)+(-x[0]*__PAR_ay/__PAR_dy); - return; - default: - j0 = i0; - if(j0 >=1 && j0 <= 1) - { - dx[1] = (-x[(j0) * 3]+x[(j0-1) * 3])*__PAR_ax/__PAR_dx+(-x[(j0) * 3]*__PAR_ay/__PAR_dy); - } - } -} - -void -MOD_dependencies(int i, double *x, double *d, double *alg, double t, double *der, int *map) -{ - int i0 = i; - int j0 = 0; - switch(i) - { - case 0: - der[0 + 1] = (-x[0]*__PAR_ax/__PAR_dx)+(-x[0]*__PAR_ay/__PAR_dy); - break; - } - j0 = i0+1; - if(j0 >=1 && j0 <= 1) - { - der[(j0) * 3 + 1] = (-x[(j0) * 3]+x[(j0-1) * 3])*__PAR_ax/__PAR_dx+(-x[(j0) * 3]*__PAR_ay/__PAR_dy); - } - j0 = i0; - if(j0 >=1 && j0 <= 1) - { - der[(j0) * 3 + 1] = (-x[(j0) * 3]+x[(j0-1) * 3])*__PAR_ax/__PAR_dx+(-x[(j0) * 3]*__PAR_ay/__PAR_dy); - } -} - -void -MOD_output(int i, double *x, double *d, double *alg, double t, double *out) -{ - int i0 = i; - int j0 = 0; - j0 = i0; - if(j0 >=0 && j0 <= 1) - { - out[0] = x[(j0) * 3]; - } -} - -void -QSS_initializeDataStructs(QSS_simulator simulator) -{ - int *outputs = (int*)malloc(2*sizeof(int)); - int *states = (int*)malloc(2*sizeof(int)); - int i0; - int j0 = 0; - simulator->data = QSS_Data(2,0,0,0,0,"testFor"); - QSS_data modelData = simulator->data; - const double t = 0; - - // Allocate main data structures. - __PAR_ax = 1.0; - __PAR_ay = 1.0; - __PAR_r = 1000.0; - __PAR_dx = 10.0/100; - __PAR_dy = 10.0/100; - // Initialize model code. - for(i0 = 0; i0 <= 1; i0++) - { - modelData->x[(i0) * 3] = 1.0; - } - modelData->nDS[0] = 1; - for(i0 = 1; i0 <= 1; i0++) - { - modelData->nDS[i0] = 2; - } - modelData->nSD[0]++; - for(i0 = 1; i0 <= 1; i0++) - { - modelData->nSD[i0-1]++; - modelData->nSD[i0]++; - } - QSS_allocDataMatrix(modelData); - // Initialize model data. - // Initialize model time. - cleanVector(states,0,2); - - modelData->DS[0][states[0]++] = 0; - for(i0 = 1; i0 <= 1; i0++) - { - modelData->DS[i0][states[i0]++] = i0-1; - modelData->DS[i0][states[i0]++] = i0; - } - cleanVector(states,0,2); - - modelData->SD[0][states[0]++] = 0; - for(i0 = 1; i0 <= 1; i0++) - { - modelData->SD[i0-1][states[i0-1]++] = i0; - modelData->SD[i0][states[i0]++] = i0; - } - simulator->time = QSS_Time(2,0,0,0,ST_Binary,NULL); - - simulator->output = SD_Output("testFor",2,0,2,NULL,0,0,CI_Step,SD_Memory,MOD_output); -SD_output modelOutput = simulator->output; - - for(i0 = 0; i0 <= 1; i0++) - { - modelOutput->nOS[i0] = 1; - modelOutput->nSO[i0]++; - } - SD_allocOutputMatrix(modelOutput,2,0); - cleanVector(states,0,2); - - cleanVector(outputs,0,2); - - for(i0 = 0; i0 <= 1; i0++) - { - sprintf(modelOutput->variable[i0].name,"u1[%d]",i0+1); - } - cleanVector(outputs,0,2); - - for(i0 = 0; i0 <= 1; i0++) - { - modelOutput->SO[i0][states[i0]++] = i0; - modelOutput->OS[i0][outputs[i0]++] = i0; - } - simulator->model = QSS_Model(MOD_definition,MOD_dependencies,NULL,NULL,NULL); - free(outputs); - free(states); -} - -void -CLC_initializeDataStructs (CLC_simulator simulator) -{ -}