diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 4ee9df9920..80714b8b1f 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ##### # Contains variables and settings used # by the CMake build system in order to @@ -72,7 +78,7 @@ IF(NC_DPKG) ENDMACRO(getdpkg_arch) getdpkg_arch(dpkg_arch) - SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev") + SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev") SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${dpkg_arch}") SET(CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g (>= 1:1.2.3.4), libhdf5-7 (>= 1.8.11), libcurl4-openssl-dev (>= 7.22.0)") ENDIF() @@ -127,4 +133,4 @@ set(CPACK_COMPONENT_DEPENDENCIES_DESCRIPTION set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "The NetCDF-C user documentation.") -INCLUDE(CPack) \ No newline at end of file +INCLUDE(CPack) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0374c5c6b9..897d730e9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1150,8 +1150,8 @@ IF (ENABLE_PARALLEL_TESTS AND NOT USE_PARALLEL) ENDIF() # Enable special filter test; experimental when using cmake. -OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" OFF) -IF(NOT ENABLE_NETCDF4) +OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" ON) +IF(ENABLE_FILTER_TESTING AND NOT ENABLE_NETCDF_4) MESSAGE(WARNING "ENABLE_FILTER_TESTING requires netCDF-4. Disabling.") SET(ENABLE_FILTER_TESTING OFF CACHE BOOL "") ENDIF() diff --git a/COPYRIGHT b/COPYRIGHT index 0994357664..af669df4d9 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,39 +1,11 @@ -The NetCDF Copyright. +Copyright 2018 Unidata -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -2015, 2016 -University Corporation for Atmospheric Research/Unidata. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Portions of this software were developed by the Unidata Program at the -University Corporation for Atmospheric Research. - -Access and use of this software shall impose the following obligations -and understandings on the user. The user is granted the right, without -any fee or cost, to use, copy, modify, alter, enhance and distribute -this software, and any derivative works thereof, and its supporting -documentation for any purpose whatsoever, provided that this entire -notice appears in all copies of the software, derivative works and -supporting documentation. Further, UCAR requests that the user credit -UCAR/Unidata in any publications that result from the use of this -software or in any product that includes this software, although this -is not an obligation. The names UCAR and/or Unidata, however, may not -be used in any advertising or publicity to endorse or promote any -products or commercial entity unless specific written permission is -obtained from UCAR/Unidata. The user also understands that -UCAR/Unidata is not obligated to provide the user with any support, -consulting, training or assistance of any kind with regard to the use, -operation and performance of this software nor to provide the user -with any updates, revisions, new versions or "bug fixes." - -THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING -FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/CTestConfig.cmake.in b/CTestConfig.cmake.in index 6c992f34c7..fd83217684 100644 --- a/CTestConfig.cmake.in +++ b/CTestConfig.cmake.in @@ -1,4 +1,10 @@ -## This file should be placed in the root directory of your project. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. +# This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. ## diff --git a/CTestCustom.cmake b/CTestCustom.cmake index 4909748ece..7483a775f0 100644 --- a/CTestCustom.cmake +++ b/CTestCustom.cmake @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ## This file is used to customize CTest. ## See: ## diff --git a/FixBundle.cmake.in b/FixBundle.cmake.in index 02d43428e8..d22728a014 100644 --- a/FixBundle.cmake.in +++ b/FixBundle.cmake.in @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. INCLUDE(BundleUtilities) # Set bundle to the full path name of the executable diff --git a/Makefile.am b/Makefile.am index 190ee19da2..57cdbc0358 100644 --- a/Makefile.am +++ b/Makefile.am @@ -40,8 +40,12 @@ endif # Is the user building netCDF-4? if USE_NETCDF4 -H5_TEST_DIR = h5_test LIBSRC4_DIR = libsrc4 +endif + +# Is the user building with HDF5? +if USE_HDF5 +H5_TEST_DIR = h5_test LIBHDF5 = libhdf5 NC_TEST4 = nc_test4 endif diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index bd493bd4d8..61e9a48089 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -7,6 +7,9 @@ This file contains a high-level description of this package's evolution. Release ## 4.6.3 - TBD +* Update the license from the home-brewed NetCDF license to the standard 3-Clause BSD License. This change does not result in any new restrictions; it is merely the adoption of a standard, well-known and well-understood license in place of the historic NetCDF license written at Unidata. This is part of a broader push by Unidata to adopt modern, standardized licensing. + + * [BugFix][Enhancement] Modified `nccopy` so that `_NCProperties` is not copied over verbatim but is instead generated based on the version of `libnetcdf` used when copying the file. Additionally, `_NCProperties` are displayed if/when associated with a netcdf3 file, now. See [GitHub #803](https://github.com/Unidata/netcdf-c/issues/803) for more information. ## 4.6.2 - November 16, 2018 diff --git a/appveyor.yml b/appveyor.yml index e6d010fafa..d617344060 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -36,7 +36,7 @@ build: off build_script: - cmd: mkdir build - cmd: cd build - - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%INSTALL_LOC% -DENABLE_BASH_SCRIPT_TESTING=OFF + - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%INSTALL_LOC% -DENABLE_BASH_SCRIPT_TESTING=OFF -DENABLE_FILTER_TESTING=OFF - cmd: if errorlevel 1 exit 1 - cmd: cmake --build . --config Release -- /maxcpucount:4 diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in index ace1e7122d..9dc757d1a4 100644 --- a/cmake_uninstall.cmake.in +++ b/cmake_uninstall.cmake.in @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. CMAKE_POLICY(SET CMP0007 OLD) if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") diff --git a/config.h.cmake.in b/config.h.cmake.in index 912495581e..a806a9b000 100644 --- a/config.h.cmake.in +++ b/config.h.cmake.in @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #ifndef CONFIG_H #define CONFIG_H diff --git a/configure.ac b/configure.ac index 18e91b82a7..b3de7bc304 100644 --- a/configure.ac +++ b/configure.ac @@ -193,10 +193,6 @@ AC_ARG_ENABLE([netcdf-4], [AS_HELP_STRING([--disable-netcdf-4], [do not build with netcdf-4 (else HDF5 and zlib required)])]) test "x$enable_netcdf_4" = xno || enable_netcdf_4=yes -enable_hdf5=$enable_netcdf_4 -AC_MSG_CHECKING([whether we should build with HDF5]) -AC_MSG_RESULT([$enable_hdf5]) - # Synonym AC_ARG_ENABLE([netcdf4], [AS_HELP_STRING([--disable-netcdf4], [(just a synonym for --disable-netcdf-4)])]) @@ -206,6 +202,17 @@ enable_netcdf_4=no fi AC_MSG_RESULT([$enable_netcdf_4]) +# Does the user want to use HDF5? +AC_MSG_CHECKING([whether we should build with HDF5]) +#enable_hdf5=$enable_netcdf_4 +AC_ARG_ENABLE([hdf5], [AS_HELP_STRING([--disable-hdf5], + [do not build with HDF5])]) +test "x$enable_hdf5" = xno || enable_hdf5=yes +if test "x$enable_netcdf_4" = xno ; then +enable_hdf5=no +fi +AC_MSG_RESULT([$enable_hdf5]) + # Does the user require dynamic loading? # This is only for those hdf5 installs that support it. AC_MSG_CHECKING([do we require hdf5 dynamic-loading support]) @@ -852,7 +859,8 @@ AC_CHECK_FUNCS([strlcat snprintf \ getrlimit gettimeofday fsync MPI_Comm_f2c MPI_Info_f2c]) # disable dap4 if netcdf-4 is disabled -if test "x$enable_netcdf_4" = "xno" ; then +#if test "x$enable_netcdf_4" = "xno" ; then +if test "x$enable_hdf5" = "xno" ; then AC_MSG_WARN([netcdf-4 not enabled; disabling DAP4]) enable_dap4=no fi @@ -1006,9 +1014,13 @@ AC_CHECK_LIB([m], [floor], [], [AC_MSG_ERROR([Can't find or link to the math library.])]) if test "x$enable_netcdf_4" = xyes; then + AC_DEFINE([USE_NETCDF4], [1], [if true, build netCDF-4]) +fi + +hdf5_parallel=no +if test "x$enable_hdf5" = xyes; then AC_DEFINE([USE_HDF5], [1], [if true, use HDF5]) - AC_DEFINE([USE_NETCDF4], [1], [if true, build netCDF-4]) AC_DEFINE([H5_USE_16_API], [1], [use HDF5 1.6 API]) # Check for the main hdf5 and hdf5_hl library. @@ -1020,20 +1032,10 @@ if test "x$enable_netcdf_4" = xyes; then AC_CHECK_HEADERS([hdf5.h], [], [AC_MSG_ERROR([Compiling a test with HDF5 failed. Either hdf5.h cannot be found, or config.log should be checked for other reason.])]) AC_CHECK_FUNCS([H5Z_SZIP]) - hdf5_parallel=no # H5Pset_fapl_mpiposix and H5Pget_fapl_mpiposix have been removed since HDF5 1.8.12. # Use H5Pset_fapl_mpio and H5Pget_fapl_mpio, instead. AC_CHECK_FUNCS([H5Pget_fapl_mpio H5Pset_deflate H5Z_SZIP H5free_memory H5Pset_libver_bounds H5Pset_all_coll_metadata_ops]) - # The user may have parallel HDF5 based on MPI POSIX. - # if test "x$ac_cv_func_H5Pget_fapl_mpiposix" = xyes; then - # AC_DEFINE([USE_PARALLEL_POSIX], [1], [if true, compile in parallel netCDF-4 based on MPI/POSIX]) - # fi - - # The user may have parallel HDF5 based on MPI mumble mumble. - # if test "x$ac_cv_func_H5Pget_fapl_mpio" = xyes; then - # AC_DEFINE([USE_PARALLEL_MPIO], [1], [if true, compile in parallel netCDF-4 based on MPI/IO]) - # fi # Check to see if HDF5 library has collective metadata APIs, (HDF5 >= 1.10.0) if test "x$ac_cv_func_H5Pset_all_coll_metadata_ops" = xyes; then @@ -1041,7 +1043,6 @@ if test "x$enable_netcdf_4" = xyes; then fi # If parallel is available in hdf5, enable it in the C code. Also add some stuff to netcdf.h. - hdf5_parallel=no if test "x$ac_cv_func_H5Pget_fapl_mpio" = xyes -o "x$ac_cv_func_H5Pget_fapl_mpiposix" = xyes; then hdf5_parallel=yes fi @@ -1072,21 +1073,22 @@ if test "x$enable_netcdf_4" = xyes; then AC_DEFINE([HDF5_HAS_LIBVER_BOUNDS], [1], [if true, netcdf4 file properties will be set using H5Pset_libver_bounds]) fi - # If the user wants hdf4 built in, check it out. - if test "x$enable_hdf4" = xyes; then - AC_CHECK_LIB([jpeg], [jpeg_CreateCompress], [], - [AC_MSG_ERROR([Jpeg library required for --enable-hdf4 builds.])]) - AC_CHECK_HEADERS([mfhdf.h], [], [nc_mfhdf_h_missing=yes]) - if test "x$nc_mfhdf_h_missing" = xyes; then - AC_MSG_ERROR([Cannot find mfhdf.h, yet --enable-hdf4 was used.]) - fi - AC_CHECK_LIB([df], [Hclose], [], [AC_MSG_ERROR([Can't find or link to the hdf4 df library. See config.log for errors.])]) - AC_CHECK_LIB([mfhdf], [NC_arrayfill], [AC_MSG_ERROR([HDF4 library must be built with --disable-netcdf.])], []) - AC_CHECK_LIB([mfhdf], [SDcreate], [], [AC_MSG_ERROR([Can't find or link to the hdf4 mfhdf library. See config.log for errors.])]) +fi - AC_CHECK_LIB([jpeg], [jpeg_set_quality], [], [AC_MSG_ERROR([Can't find or link to the jpeg library (required by hdf4). See config.log for errors.])]) - AC_DEFINE([USE_HDF4], [1], [if true, use HDF4 too]) +# If the user wants hdf4 built in, check it out. +if test "x$enable_hdf4" = xyes; then + AC_CHECK_LIB([jpeg], [jpeg_CreateCompress], [], + [AC_MSG_ERROR([Jpeg library required for --enable-hdf4 builds.])]) + AC_CHECK_HEADERS([mfhdf.h], [], [nc_mfhdf_h_missing=yes]) + if test "x$nc_mfhdf_h_missing" = xyes; then + AC_MSG_ERROR([Cannot find mfhdf.h, yet --enable-hdf4 was used.]) fi + AC_CHECK_LIB([df], [Hclose], [], [AC_MSG_ERROR([Can't find or link to the hdf4 df library. See config.log for errors.])]) + AC_CHECK_LIB([mfhdf], [NC_arrayfill], [AC_MSG_ERROR([HDF4 library must be built with --disable-netcdf.])], []) + AC_CHECK_LIB([mfhdf], [SDcreate], [], [AC_MSG_ERROR([Can't find or link to the hdf4 mfhdf library. See config.log for errors.])]) + + AC_CHECK_LIB([jpeg], [jpeg_set_quality], [], [AC_MSG_ERROR([Can't find or link to the jpeg library (required by hdf4). See config.log for errors.])]) + AC_DEFINE([USE_HDF4], [1], [if true, use HDF4 too]) fi # There are several cases for parallelism: @@ -1096,7 +1098,7 @@ fi # b. do want to use it for netcdf4 # Should we provide parallel io for netcdf-4? -if test "x$enable_netcdf_4" = xyes ; then +if test "x$enable_hdf5" = xyes ; then AC_ARG_ENABLE([parallel4], [AS_HELP_STRING([--disable-parallel4], [disable parallel I/O for netcdf-4, even if it's enabled in libhdf5])], diff --git a/dap4_test/CMakeLists.txt b/dap4_test/CMakeLists.txt index d044b1aba1..a0271057ed 100644 --- a/dap4_test/CMakeLists.txt +++ b/dap4_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) remove_definitions(-DDLL_EXPORT) diff --git a/dap4_test/Makefile.am b/dap4_test/Makefile.am index 676cb49df2..bf1ab308e2 100644 --- a/dap4_test/Makefile.am +++ b/dap4_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2011, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs DAP4 tests. diff --git a/dap4_test/baseline/CMakeLists.txt b/dap4_test/baseline/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/baseline/CMakeLists.txt +++ b/dap4_test/baseline/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/baselineraw/CMakeLists.txt b/dap4_test/baselineraw/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/baselineraw/CMakeLists.txt +++ b/dap4_test/baselineraw/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/baselineremote/CMakeLists.txt b/dap4_test/baselineremote/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/baselineremote/CMakeLists.txt +++ b/dap4_test/baselineremote/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/cdltestfiles/CMakeLists.txt b/dap4_test/cdltestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/cdltestfiles/CMakeLists.txt +++ b/dap4_test/cdltestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/daptestfiles/CMakeLists.txt b/dap4_test/daptestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/daptestfiles/CMakeLists.txt +++ b/dap4_test/daptestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/dmrtestfiles/CMakeLists.txt b/dap4_test/dmrtestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/dmrtestfiles/CMakeLists.txt +++ b/dap4_test/dmrtestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/misctestfiles/CMakeLists.txt b/dap4_test/misctestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/misctestfiles/CMakeLists.txt +++ b/dap4_test/misctestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/nctestfiles/CMakeLists.txt b/dap4_test/nctestfiles/CMakeLists.txt index 2332d8f855..85d40c3a9b 100644 --- a/dap4_test/nctestfiles/CMakeLists.txt +++ b/dap4_test/nctestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 70a8bf7add..0132cd3b00 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + ##### # Build doxygen documentation, if need be. ##### diff --git a/docs/COPYRIGHT.dox b/docs/COPYRIGHT.dox deleted file mode 100644 index 1062dd5299..0000000000 --- a/docs/COPYRIGHT.dox +++ /dev/null @@ -1,37 +0,0 @@ -/*! \page copyright COPYRIGHT - -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -University Corporation for Atmospheric Research/Unidata. - -Portions of this software were developed by the Unidata Program at the -University Corporation for Atmospheric Research. - -Access and use of this software shall impose the following obligations -and understandings on the user. The user is granted the right, without -any fee or cost, to use, copy, modify, alter, enhance and distribute -this software, and any derivative works thereof, and its supporting -documentation for any purpose whatsoever, provided that this entire -notice appears in all copies of the software, derivative works and -supporting documentation. Further, UCAR requests that the user credit -UCAR/Unidata in any publications that result from the use of this -software or in any product that includes this software, although this -is not an obligation. The names UCAR and/or Unidata, however, may not -be used in any advertising or publicity to endorse or promote any -products or commercial entity unless specific written permission is -obtained from UCAR/Unidata. The user also understands that -UCAR/Unidata is not obligated to provide the user with any support, -consulting, training or assistance of any kind with regard to the use, -operation and performance of this software nor to provide the user -with any updates, revisions, new versions or "bug fixes." - -THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING -FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. - -*/ \ No newline at end of file diff --git a/docs/COPYRIGHT.md b/docs/COPYRIGHT.md new file mode 100644 index 0000000000..a1d249f5a1 --- /dev/null +++ b/docs/COPYRIGHT.md @@ -0,0 +1,16 @@ +COPYRIGHT {#copyright} +===================== + +Copyright 2018 Unidata + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index 6c5e98a996..5aebe4a52a 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -761,7 +761,7 @@ INPUT = \ @abs_top_srcdir@/docs/all-error-codes.md \ @abs_top_srcdir@/docs/FAQ.md \ @abs_top_srcdir@/docs/known_problems.md \ - @abs_top_srcdir@/docs/COPYRIGHT.dox \ + @abs_top_srcdir@/docs/COPYRIGHT.md \ @abs_top_srcdir@/docs/credits.md \ @abs_top_srcdir@/docs/bestpractices.md \ @abs_top_srcdir@/docs/tutorial.dox \ diff --git a/docs/Makefile.am b/docs/Makefile.am index 3290059a11..2e8ea4704a 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,6 +1,10 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005-2011, see the COPYRIGHT file for more information. -# This file builds the netcdf documentation. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # These files will be included with the dist. EXTRA_DIST = netcdf.m4 DoxygenLayout.xml Doxyfile.in footer.html \ @@ -10,7 +14,7 @@ building-with-cmake.md CMakeLists.txt groups.dox install.md notes.md \ install-fortran.md all-error-codes.md credits.md auth.md \ obsolete/fan_utils.html bestpractices.md filters.md indexing.dox \ inmemory.md DAP2.dox attribute_conventions.md FAQ.md \ -file_format_specifications.md known_problems.md COPYRIGHT.dox \ +file_format_specifications.md known_problems.md COPYRIGHT.md \ user_defined_formats.md inmeminternal.dox DAP4.md DAP4.dox # Turn off parallel builds in this directory. diff --git a/docs/images/Makefile.am b/docs/images/Makefile.am index 341f444a03..4bae23eccc 100644 --- a/docs/images/Makefile.am +++ b/docs/images/Makefile.am @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + EXTRA_DIST = aqua.jpg chunking2.png compatibility3.png compression.png \ groups.png nc4-model.png ncatts.png nc-classic-uml.png nccoords.png \ ncfile.png pnetcdf.png terra.jpg netcdf_architecture.png \ diff --git a/docs/user_defined_formats.md b/docs/user_defined_formats.md index 1d874c4027..f8ea7f9adf 100644 --- a/docs/user_defined_formats.md +++ b/docs/user_defined_formats.md @@ -111,4 +111,3 @@ user-defined format. (This is unnecessary if you just want to read HDF4 SD files, since the netCDF C library already includes an HDF4 SD file reader. This user-defined format library uses the same code. It is repackaged as a user-defined library to provide a working sample.) - diff --git a/examples/C/CMakeLists.txt b/examples/C/CMakeLists.txt index 191bc2d741..bea8f4c41d 100644 --- a/examples/C/CMakeLists.txt +++ b/examples/C/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(exam_C_tests simple_xy_wr simple_xy_rd sfc_pres_temp_wr sfc_pres_temp_rd pres_temp_4D_wr pres_temp_4D_rd) SET(exam_C_tests_source "") FOREACH(F ${exam_C_tests}) diff --git a/examples/C/Makefile.am b/examples/C/Makefile.am index c4996e5e8e..bd8c545574 100644 --- a/examples/C/Makefile.am +++ b/examples/C/Makefile.am @@ -1,5 +1,5 @@ # This is a automake file, part of Unidata's netCDF package. -# Copyright 2006, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds the C examples. @@ -20,7 +20,7 @@ sfc_pres_temp_rd pres_temp_4D_wr pres_temp_4D_rd TESTS = run_examples.sh # To build netcdf-4, or not to build netcdf-4, that is the question... -if USE_NETCDF4 +if USE_HDF5 # These are the extra netCDF-4 examples. check_PROGRAMS += simple_nc4_wr simple_nc4_rd simple_xy_nc4_wr \ simple_xy_nc4_rd @@ -31,7 +31,7 @@ check_PROGRAMS += filter_example TESTS += run_filter.sh endif -endif #USE_NETCDF4 +endif #USE_HDF5 if USE_PNETCDF # These are the extra netCDF-4 examples. @@ -42,9 +42,9 @@ endif #USE_PNETCDF AM_CPPFLAGS += -I$(top_builddir)/liblib AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la -if USE_NETCDF4 +if USE_HDF5 TESTS += run_examples4.sh -endif #USE_NETCDF4 +endif #USE_HDF5 # These files are created by the tests. CLEANFILES = *.nc diff --git a/examples/C/file.c b/examples/C/file.c index f1781d2451..836f044df2 100644 --- a/examples/C/file.c +++ b/examples/C/file.c @@ -1,5 +1,17 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program demonstrates various ways to create a netCDF file, open an existing file, and close a file. @@ -18,7 +30,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return e; \ -} while (0) +} while (0) #define FILENAME "test.nc" #define VARNAME "var1" @@ -31,7 +43,7 @@ int main() { /* These are netCDF IDs for file, dimension, and variable. */ - int ncid, dimid, varid; + int ncid, dimid, varid; /* This array will hold one ID for each dimension in the variable, in this case, one. */ @@ -41,7 +53,7 @@ main() int data_out[] = {0,1,2,3,4,5,6,7,8,9}; int data_in[DIMLEN]; - int i, res; + int i, res; /* Create a classic format netCDF file, overwritting any file of this name that may already exist. */ @@ -99,11 +111,10 @@ main() fprintf(stderr, "Unexpected value!\n"); return ERROR; } - + /* Close the file again. */ if ((res = nc_close(ncid))) BAIL(res); return 0; } - diff --git a/examples/C/format.c b/examples/C/format.c index 79b0f78346..5559512035 100644 --- a/examples/C/format.c +++ b/examples/C/format.c @@ -1,5 +1,17 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This example shows how to create and deal with files of different netcdf formats (i.e. classic vs. 64-bit-offset). @@ -19,7 +31,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 2 #define NUMVARS 1 @@ -33,7 +45,7 @@ main() float temp[LAT_LEN][LON_LEN], *fp; char classic_file[] = "classic.nc", offset64_file[] = "offset.nc"; char *file = classic_file; - int i, res; + int i, res; /* Create a bunch of phoney data so we have something to write in the example file. */ @@ -59,12 +71,12 @@ main() BAIL(res); if ((res = nc_def_dim(ncid, "longitude", LON_LEN, &dimids[1]))) BAIL(res); - + /* Define the variable. */ - if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, + if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, dimids, &temp_varid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -79,4 +91,3 @@ main() return 0; } - diff --git a/examples/C/large_files.c b/examples/C/large_files.c index 12511aee2d..d4642d7092 100644 --- a/examples/C/large_files.c +++ b/examples/C/large_files.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -135,7 +146,7 @@ main() { /* create rec2Gp.nc */ for(j=0; j function, which can write any array subset of the variable. */ start[0] = rec; /* We want to write *this* record. */ - if ((res = nc_put_vara_float(ncid, temp_varid, start, count, + if ((res = nc_put_vara_float(ncid, temp_varid, start, count, (float *)temp))) BAIL(res); if ((res = nc_put_vara_float(ncid, pres_varid, start, count, (float *)pres))) BAIL(res); /* We're done writing one record. */ - } + } /* Close the file. We're done, so we can go out and see the new Harry Potter movie! */ @@ -278,4 +289,3 @@ main() return 0; } - diff --git a/examples/C/parallel_vara.c b/examples/C/parallel_vara.c index 240d283600..d958f36b37 100644 --- a/examples/C/parallel_vara.c +++ b/examples/C/parallel_vara.c @@ -188,4 +188,3 @@ int main(int argc, char** argv) MPI_Finalize(); return 0; } - diff --git a/examples/C/pres_temp_4D_wr.c b/examples/C/pres_temp_4D_wr.c index 7524c63b27..b2848ce2d0 100644 --- a/examples/C/pres_temp_4D_wr.c +++ b/examples/C/pres_temp_4D_wr.c @@ -6,7 +6,7 @@ temperatures. It is intended to illustrate the use of the netCDF C API. The companion program pres_temp_4D_rd.c shows how to read the netCDF data file created by this program. -Copyright 2006 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -76,7 +76,7 @@ main() /* Loop indexes. */ int lvl, lat, lon, rec, i = 0; - + /* Error handling. */ int retval; @@ -87,7 +87,7 @@ main() lats[lat] = START_LAT + 5.*lat; for (lon = 0; lon < NLON; lon++) lons[lon] = START_LON + 5.*lon; - + for (lvl = 0; lvl < NLVL; lvl++) for (lat = 0; lat < NLAT; lat++) for (lon = 0; lon < NLON; lon++) @@ -118,18 +118,18 @@ main() since coordinate variables only have one dimension, we can simply provide the address of that dimension ID (&lat_dimid) and similarly for (&lon_dimid). */ - if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, + if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, + if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid))) ERR(retval); /* Assign units attributes to coordinate variables. */ - if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, strlen(DEGREES_NORTH), DEGREES_NORTH))) ERR(retval); - if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, strlen(DEGREES_EAST), DEGREES_EAST))) ERR(retval); @@ -144,18 +144,18 @@ main() /* Define the netCDF variables for the pressure and temperature * data. */ - if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, dimids, &pres_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, dimids, &temp_varid))) ERR(retval); /* Assign units attributes to the netCDF variables. */ - if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, + if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, strlen(PRES_UNITS), PRES_UNITS))) ERR(retval); - if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, + if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, strlen(TEMP_UNITS), TEMP_UNITS))) ERR(retval); @@ -188,10 +188,10 @@ main() for (rec = 0; rec < NREC; rec++) { start[0] = rec; - if ((retval = nc_put_vara_float(ncid, pres_varid, start, count, + if ((retval = nc_put_vara_float(ncid, pres_varid, start, count, &pres_out[0][0][0]))) ERR(retval); - if ((retval = nc_put_vara_float(ncid, temp_varid, start, count, + if ((retval = nc_put_vara_float(ncid, temp_varid, start, count, &temp_out[0][0][0]))) ERR(retval); } @@ -199,7 +199,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) ERR(retval); - + printf("*** SUCCESS writing example file %s!\n", FILE_NAME); return 0; } diff --git a/examples/C/quick_large_files.c b/examples/C/quick_large_files.c index 4ba7a5b394..f5aaa29898 100644 --- a/examples/C/quick_large_files.c +++ b/examples/C/quick_large_files.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program (quickly, but not thoroughly) tests the large file features. @@ -19,14 +30,14 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 1 #define NUMVARS 2 /* This dim len is the max size for an 8-byte type in 64-bit offset format: (2*32 - 4) / 8, that is, 4 GB minus a bit, on an 8 byte boundary. */ -#define DIM_LEN 536870911 +#define DIM_LEN 536870911 int main() @@ -34,7 +45,7 @@ main() int ncid, spockid, kirkid, dimids[NUMDIMS]; double val_in, val_out = 999.99; size_t index[NUMDIMS] = {DIM_LEN-1}; - int i, res; + int i, res; /* Create the netCDF 64-bit offset format file. */ if ((res = nc_create("example.nc", NC_CLOBBER|NC_64BIT_OFFSET, &ncid))) @@ -47,15 +58,15 @@ main() /* Define dimension. */ if ((res = nc_def_dim(ncid, "longdim", DIM_LEN, dimids))) BAIL(res); - + /* Define two variables. */ - if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, dimids, &spockid))) BAIL(res); - if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, dimids, &kirkid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -69,9 +80,3 @@ main() return 0; } - - - - - - diff --git a/examples/C/quick_small_files.c b/examples/C/quick_small_files.c index 9be8dab686..70f281a619 100644 --- a/examples/C/quick_small_files.c +++ b/examples/C/quick_small_files.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program will create a large file in netCDF classic format. From the netcdf docs: @@ -25,7 +36,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 1 #define NUMVARS 2 @@ -40,7 +51,7 @@ main() int ncid, spockid, kirkid, dimids[NUMDIMS]; double val_in, val_out = 999.99; size_t index[NUMDIMS] = {1}; - int i, res; + int i, res; /* Create the netCDF classic format file. */ if ((res = nc_create("example.nc", NC_CLOBBER, &ncid))) @@ -53,15 +64,15 @@ main() /* Define dimension. */ if ((res = nc_def_dim(ncid, "longdim", DIM_LEN, dimids))) BAIL(res); - + /* Define two variables. */ - if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, dimids, &spockid))) BAIL(res); - if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, dimids, &kirkid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -75,4 +86,3 @@ main() return 0; } - diff --git a/examples/C/run_examples.sh b/examples/C/run_examples.sh index 655314bfae..e7e08bf2c1 100755 --- a/examples/C/run_examples.sh +++ b/examples/C/run_examples.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the examples. # Ed Hartnett diff --git a/examples/C/run_examples4.sh b/examples/C/run_examples4.sh index 24691af4e1..5cecfa3a7b 100755 --- a/examples/C/run_examples4.sh +++ b/examples/C/run_examples4.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the examples for netCDF4. # Ed Hartnett diff --git a/examples/C/run_filter.sh b/examples/C/run_filter.sh index acd2f787f9..64d1a0a541 100755 --- a/examples/C/run_filter.sh +++ b/examples/C/run_filter.sh @@ -1,6 +1,10 @@ #!/bin/sh -# This shell script runs the examples for netCDF4. -# Ed Hartnett +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../../test_common.sh diff --git a/examples/C/sfc_pres_temp_more.c b/examples/C/sfc_pres_temp_more.c index 0dd51b6ef5..d2780a68c9 100644 --- a/examples/C/sfc_pres_temp_more.c +++ b/examples/C/sfc_pres_temp_more.c @@ -1,6 +1,6 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a simple example which writes and then reads some surface @@ -72,7 +72,7 @@ main() * applies to the entire file, not just to one variable. Don't * forget that sizeof does not include the null terminator, so if * you want it, you need to add one more byte. */ - if ((retval = nc_put_att_text(ncid, NC_GLOBAL, SONNET_NAME, + if ((retval = nc_put_att_text(ncid, NC_GLOBAL, SONNET_NAME, sizeof(poem) + 1, poem))) return retval; @@ -118,7 +118,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) return retval; - + /* Open the file and check that everything's OK. */ if ((retval = nc_open(FILE_NAME, 0, &ncid))) return retval; @@ -134,7 +134,7 @@ main() free(att_in); if (error) return -2; - + /* Read the data. */ if ((retval = nc_get_var_float(ncid, pres_varid, pres_in))) return retval; diff --git a/examples/C/sfc_pres_temp_rd.c b/examples/C/sfc_pres_temp_rd.c index 315f1bcbeb..d8ff39383c 100644 --- a/examples/C/sfc_pres_temp_rd.c +++ b/examples/C/sfc_pres_temp_rd.c @@ -5,8 +5,8 @@ This is an example which reads some surface pressure and temperatures. The data file read by this program is produced by the companion program sfc_pres_temp_wr.c. It is intended to illustrate the use of the netCDF C API. - -Copyright 2006 University Corporation for Atmospheric + +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -82,14 +82,14 @@ main() many netCDF variables, dimensions, and global attributes are in the file; also the dimension id of the unlimited dimension, if there is one. */ - if ((retval = nc_inq(ncid, &ndims_in, &nvars_in, &ngatts_in, + if ((retval = nc_inq(ncid, &ndims_in, &nvars_in, &ngatts_in, &unlimdimid_in))) ERR(retval); /* In this case we know that there are 2 netCDF dimensions, 4 netCDF variables, no global attributes, and no unlimited dimension. */ - if (ndims_in != 2 || nvars_in != 4 || ngatts_in != 0 || + if (ndims_in != 2 || nvars_in != 4 || ngatts_in != 0 || unlimdimid_in != -1) return 2; /* Get the varids of the latitude and longitude coordinate @@ -139,12 +139,12 @@ main() them and check them. */ if ((retval = nc_get_att_text(ncid, lat_varid, UNITS, lat_units_in))) ERR(retval); - if (strncmp(lat_units_in, LAT_UNITS, strlen(LAT_UNITS))) + if (strncmp(lat_units_in, LAT_UNITS, strlen(LAT_UNITS))) return 2; if ((retval = nc_get_att_text(ncid, lon_varid, UNITS, lon_units_in))) ERR(retval); - if (strncmp(lon_units_in, LON_UNITS, strlen(LON_UNITS))) + if (strncmp(lon_units_in, LON_UNITS, strlen(LON_UNITS))) return 2; if ((retval = nc_get_att_text(ncid, pres_varid, UNITS, pres_units_in))) diff --git a/examples/C/sfc_pres_temp_wr.c b/examples/C/sfc_pres_temp_wr.c index 9928368a4d..803baf0a49 100644 --- a/examples/C/sfc_pres_temp_wr.c +++ b/examples/C/sfc_pres_temp_wr.c @@ -5,8 +5,8 @@ This example writes some surface pressure and temperatures. It is intended to illustrate the use of the netCDF C API. The companion program sfc_pres_temp_rd.c shows how to read the netCDF data file created by this program. - -Copyright 2006 University Corporation for Atmospheric + +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -68,7 +68,7 @@ main() /* Loop indexes. */ int lat, lon; - + /* Error handling. */ int retval; @@ -79,7 +79,7 @@ main() lats[lat] = START_LAT + 5.*lat; for (lon = 0; lon < NLON; lon++) lons[lon] = START_LON + 5.*lon; - + for (lat = 0; lat < NLAT; lat++) for (lon = 0; lon < NLON; lon++) { @@ -100,10 +100,10 @@ main() /* Define coordinate netCDF variables. They will hold the coordinate information, that is, the latitudes and longitudes. A varid is returned for each.*/ - if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, + if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, + if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid))) ERR(retval); @@ -114,10 +114,10 @@ main() not use null-terminated strings. In general it is up to the reading C program to ensure that it puts null-terminators on strings where necessary.*/ - if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, strlen(DEGREES_NORTH), DEGREES_NORTH))) ERR(retval); - if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, strlen(DEGREES_EAST), DEGREES_EAST))) ERR(retval); @@ -125,18 +125,18 @@ main() the dimids of the dimensions of the variables.*/ dimids[0] = lat_dimid; dimids[1] = lon_dimid; - if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, dimids, &pres_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, dimids, &temp_varid))) ERR(retval); /* Define units attributes for vars. */ - if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, + if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, strlen(pres_units), pres_units))) ERR(retval); - if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, + if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, strlen(temp_units), temp_units))) ERR(retval); @@ -162,7 +162,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) ERR(retval); - + printf("*** SUCCESS writing example file sfc_pres_temp.nc!\n"); return 0; } diff --git a/examples/C/simple.c b/examples/C/simple.c index a2a3db3ab2..6091596740 100644 --- a/examples/C/simple.c +++ b/examples/C/simple.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. How about a short, but meaningful, netCDF program? @@ -18,7 +29,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 2 #define NUMVARS 1 @@ -31,7 +42,7 @@ main() { int ncid, temp_varid, dimids[NUMDIMS]; float temp[LAT_LEN][LON_LEN], *fp; - int i, res; + int i, res; /* Create a bunch of phoney data so we have something to write in the example file. */ @@ -47,14 +58,14 @@ main() BAIL(res); if ((res = nc_def_dim(ncid, "longitude", LON_LEN, &dimids[1]))) BAIL(res); - + /* Define the variable. */ - if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, + if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, dimids, &temp_varid))) BAIL(res); - + /* We'll store the units. */ - if ((res = nc_put_att_text(ncid, temp_varid, "units", + if ((res = nc_put_att_text(ncid, temp_varid, "units", strlen(CELSIUS), CELSIUS))) BAIL(res); @@ -71,4 +82,3 @@ main() return 0; } - diff --git a/examples/C/simple_nc4_rd.c b/examples/C/simple_nc4_rd.c index cf2adc031a..55768cefc8 100644 --- a/examples/C/simple_nc4_rd.c +++ b/examples/C/simple_nc4_rd.c @@ -7,7 +7,7 @@ features of netCDF-4.0. This example reads a simple file created by simple_nc4_wr.c. This is intended to illustrate the use of the netCDF-4 C API. -This is part of the netCDF package. Copyright 2006-2011 University +This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. Full documentation of the netCDF can be found at http://www.unidata.ucar.edu/software/netcdf/docs. @@ -41,7 +41,7 @@ main() int x, y, retval; /* The following struct is written as a compound type. */ - struct s1 + struct s1 { int i1; int i2; @@ -61,7 +61,7 @@ main() /* Get the varid of the uint64 data variable, based on its name, in * grp1. */ - if ((retval = nc_inq_varid(grp1id, "data", &varid1))) + if ((retval = nc_inq_varid(grp1id, "data", &varid1))) ERR(retval); /* Read the data. */ @@ -70,7 +70,7 @@ main() /* Get the varid of the compound data variable, based on its name, * in grp2. */ - if ((retval = nc_inq_varid(grp2id, "data", &varid2))) + if ((retval = nc_inq_varid(grp2id, "data", &varid2))) ERR(retval); /* Read the data. */ diff --git a/examples/C/simple_nc4_wr.c b/examples/C/simple_nc4_wr.c index b14b822adc..407db6db7a 100644 --- a/examples/C/simple_nc4_wr.c +++ b/examples/C/simple_nc4_wr.c @@ -6,7 +6,7 @@ some netCDF variables in different subgroups. The variables will include a compound and an enum type, as well as some of the new atomic types, like the unsigned 64-bit integer. -This is part of the netCDF package. Copyright 2006-2011 University +This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. Full documentation of the netCDF can be found at http://www.unidata.ucar.edu/software/netcdf/docs. @@ -45,7 +45,7 @@ main() int x, y, retval; /* The following struct is written as a compound type. */ - struct s1 + struct s1 { int i1; int i2; @@ -85,7 +85,7 @@ main() /* Define an unsigned 64bit integer variable in grp1, using dimensions * in the root group. */ - if ((retval = nc_def_var(grp1id, "data", NC_UINT64, NDIMS, + if ((retval = nc_def_var(grp1id, "data", NC_UINT64, NDIMS, dimids, &varid1))) ERR(retval); @@ -95,19 +95,19 @@ main() ERR(retval); /* Create a compound type. This will cause nc_reddef to be called. */ - if (nc_def_compound(grp2id, sizeof(struct s1), "sample_compound_type", + if (nc_def_compound(grp2id, sizeof(struct s1), "sample_compound_type", &typeid)) ERR(retval); - if (nc_insert_compound(grp2id, typeid, "i1", + if (nc_insert_compound(grp2id, typeid, "i1", offsetof(struct s1, i1), NC_INT)) ERR(retval); - if (nc_insert_compound(grp2id, typeid, "i2", + if (nc_insert_compound(grp2id, typeid, "i2", offsetof(struct s1, i2), NC_INT)) ERR(retval); /* Define a compound type variable in grp2, using dimensions * in the root group. */ - if ((retval = nc_def_var(grp2id, "data", typeid, NDIMS, + if ((retval = nc_def_var(grp2id, "data", typeid, NDIMS, dimids, &varid2))) ERR(retval); diff --git a/examples/C/simple_xy_wr.c b/examples/C/simple_xy_wr.c index 5aba7c417c..441aa2e30b 100644 --- a/examples/C/simple_xy_wr.c +++ b/examples/C/simple_xy_wr.c @@ -1,6 +1,11 @@ /*! \file An example program demonstrating a simple 2D write. +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. +See netcdf-c/COPYRIGHT file for more info. */ #include @@ -65,7 +70,7 @@ main() /* Define the variable. The type of the variable in this case is * NC_INT (4-byte integer). */ - if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS, + if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS, dimids, &varid))) ERR(retval); diff --git a/examples/CDL/CMakeLists.txt b/examples/CDL/CMakeLists.txt index 6507bb7d5d..2c06bf14be 100644 --- a/examples/CDL/CMakeLists.txt +++ b/examples/CDL/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(CDL_EXAMPLE_TESTS do_comps) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl) diff --git a/examples/CDL/Makefile.am b/examples/CDL/Makefile.am index 0af9bd3aa5..77123a117e 100644 --- a/examples/CDL/Makefile.am +++ b/examples/CDL/Makefile.am @@ -1,6 +1,11 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2006, see the COPYRIGHT file for more information. -# This file builds CDL examples. + +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Ed Hartnett # Note which tests depend on other tests. Necessary for make -j check. diff --git a/examples/CDL/do_comps.sh b/examples/CDL/do_comps.sh index 88f80f91f2..ed6709d550 100755 --- a/examples/CDL/do_comps.sh +++ b/examples/CDL/do_comps.sh @@ -1,4 +1,11 @@ #!/bin/sh + +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the cmp test on the example programs. # $Id: do_comps.sh,v 1.1 2006/06/27 17:44:54 ed Exp $ diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 5a253c245a..4200674d70 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ADD_SUBDIRECTORY(C) IF(BUILD_UTILITIES) diff --git a/examples/Makefile.am b/examples/Makefile.am index 52b9dd177d..58f1a88be3 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,16 +1,18 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. -# This is the main automake file for netCDF. It builds the different -# netcdf directories. Not all directories are built, depending on the -# options selected during configure. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Build ncgen/ncdump. if BUILD_UTILITIES CDL_DIR = CDL endif -# These are the subdirectories that will be built. +# These are the subdirectories that will be built. SUBDIRS = C $(CDL_DIR) EXTRA_DIST=CMakeLists.txt diff --git a/h5_test/CMakeLists.txt b/h5_test/CMakeLists.txt index 5b51ddfd86..c6838aecbf 100644 --- a/h5_test/CMakeLists.txt +++ b/h5_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(H5TESTS tst_h_files tst_h_files2 tst_h_files4 tst_h_atts tst_h_atts3 tst_h_atts4 tst_h_vars tst_h_vars2 tst_h_vars3 tst_h_grps tst_h_compounds tst_h_compounds2 tst_h_wrt_cmp tst_h_vl tst_h_opaques tst_h_strings tst_h_strings1 tst_h_strings2 tst_h_ints tst_h_dimscales tst_h_dimscales1 tst_h_dimscales2 tst_h_dimscales3 tst_h_enums tst_h_dimscales4) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h5 ${CMAKE_CURRENT_SOURCE_DIR}/*.nc) diff --git a/h5_test/Makefile.am b/h5_test/Makefile.am index f114d7cebd..9518ab6e21 100644 --- a/h5_test/Makefile.am +++ b/h5_test/Makefile.am @@ -1,5 +1,5 @@ # This is part of the netCDF package. -# Copyright 2011 University Corporation for Atmospheric Research/Unidata +# Copyright 2018 University Corporation for Atmospheric Research/Unidata # See COPYRIGHT file for conditions of use. # # This entire directory will be skipped, unless the configure script diff --git a/h5_test/h5_err_macros.h b/h5_test/h5_err_macros.h index d2889b39da..81c729ec72 100644 --- a/h5_test/h5_err_macros.h +++ b/h5_test/h5_err_macros.h @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/run_par_tests.sh b/h5_test/run_par_tests.sh index ee0b8c7489..a594a208b7 100755 --- a/h5_test/run_par_tests.sh +++ b/h5_test/run_par_tests.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../test_common.sh diff --git a/h5_test/tst_h_atts.c b/h5_test/tst_h_atts.c index a321093816..ecefb26656 100644 --- a/h5_test/tst_h_atts.c +++ b/h5_test/tst_h_atts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -52,14 +52,14 @@ main() { float val = 99; - char emp[NUM_EMPS][MAX_LEN + 1] = {"Augustus", "Tiberius", - "Caligula", "Claudius", + char emp[NUM_EMPS][MAX_LEN + 1] = {"Augustus", "Tiberius", + "Caligula", "Claudius", "Ne_r_o", "V.esp.asi.an"}; char obj_name[MAX_LEN + 1]; int e, i; /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, EMP_GRP, 0)) < 0) ERR; @@ -69,7 +69,7 @@ main() /* Attach some zero-length float attributes! */ for (e = 0; e < NUM_EMPS; e++) { - if ((attid = H5Acreate(grpid, emp[e], H5T_NATIVE_FLOAT, spaceid, + if ((attid = H5Acreate(grpid, emp[e], H5T_NATIVE_FLOAT, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_FLOAT, &val) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -79,15 +79,15 @@ main() if (H5Sclose(spaceid) < 0) ERR; if (H5Gclose(grpid) < 0) ERR; if (H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attributes. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, EMP_GRP)) < 0) ERR; /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != NUM_EMPS) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -104,7 +104,7 @@ main() printf("*** Checking HDF5 attribute deletes..."); { /* Create a file and open the root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; @@ -112,7 +112,7 @@ main() if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; @@ -121,7 +121,7 @@ main() if (H5Adelete(grpid, ATT1_NAME) < 0) ERR; /* Create and write it again. */ - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; @@ -137,7 +137,7 @@ main() printf("*** Checking HDF5 attributes attached to the fileid..."); { /* See if we can write an attribute to the root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; @@ -145,7 +145,7 @@ main() if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; if (H5Aclose(attid) < 0 || @@ -158,15 +158,15 @@ main() printf("*** Checking HDF5 attributes in a group..."); { /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, GRP_NAME, 0)) < 0) ERR; - + /* Attach a text attribute with some of Hamlet's lines. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; if (H5Aclose(attid) < 0 || @@ -176,7 +176,7 @@ main() H5Fclose(fileid) < 0) ERR; /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT1_NAME)) < 0) ERR; @@ -221,19 +221,19 @@ main() float val = 99; /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, GRP_NAME, 0)) < 0) ERR; - + /* Attach a float attribute with no data. The * hell with Hamlet anyway! */ if ((spaceid = H5Screate(H5S_NULL)) < 0) ERR; if ((typeid = H5Tcopy(H5T_NATIVE_FLOAT)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_FLOAT, &val) < 0) ERR; @@ -242,9 +242,9 @@ main() if (H5Tclose(typeid) < 0) ERR; if (H5Gclose(grpid) < 0) ERR; if (H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT1_NAME)) < 0) ERR; @@ -258,7 +258,7 @@ main() if ((spaceid = H5Screate(H5S_NULL)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, 1) < 0) ERR; - if ((attid1 = H5Acreate(grpid, ATT2_NAME, typeid, spaceid, + if ((attid1 = H5Acreate(grpid, ATT2_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_FLOAT, &val) < 0) ERR; if (H5Sclose(spaceid) < 0 || @@ -267,9 +267,9 @@ main() H5Tclose(typeid) < 0 || H5Gclose(grpid) < 0 || H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT2_NAME)) < 0) ERR; @@ -322,21 +322,21 @@ main() "So tell him, with th' occurrents, more and less,\n" "Which have solicited- the rest is silence."}; - char speech_name[NUM_SPEECHES][MAX_LEN + 1] = {"Act_1_Scene_2", - "Act_3_Scene_2", + char speech_name[NUM_SPEECHES][MAX_LEN + 1] = {"Act_1_Scene_2", + "Act_3_Scene_2", "Act_5_Scene_2"}; char obj_name[MAX_LEN + 1]; int i; /* Create a file and get its root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; /* Create a dataset. */ dims[0] = DIM1_LEN; if ((var_spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; - if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, + if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, var_spaceid, H5P_DEFAULT)) < 0) ERR; /* Attach three text attributes with some of Hamlet's lines to @@ -347,7 +347,7 @@ main() for (i = 0; i < NUM_SPEECHES; i++) { if (H5Tset_size(typeid, strlen(speech[i]) + 1) < 0) ERR; - if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, + if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, speech[i]) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -364,14 +364,14 @@ main() * attributes). */ /* Open file, group, and dataset. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; if ((datasetid = H5Dopen1(grpid, VAR_NAME)) < 0) ERR; /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(datasetid)) != NUM_SPEECHES) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -387,7 +387,7 @@ main() /* Recreate it and add the attributes again. */ if ((var_spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; - if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, + if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, var_spaceid, H5P_DEFAULT)) < 0) ERR; /* Attach three text attributes with some of Hamlet's lines to @@ -398,7 +398,7 @@ main() for (i = 0; i < NUM_SPEECHES; i++) { if (H5Tset_size(typeid, strlen(speech[i]) + 1) < 0) ERR; - if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, + if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, speech[i]) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -406,7 +406,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(datasetid)) != NUM_SPEECHES) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -448,7 +448,7 @@ main() /* Write an attribute. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; - if ((attid = H5Acreate2(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, + if ((attid = H5Acreate2(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Sclose(spaceid) < 0) ERR; @@ -456,15 +456,15 @@ main() H5Fflush(hdfid, H5F_SCOPE_GLOBAL); dims[0] = 1; if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "l", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "l", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; @@ -506,7 +506,7 @@ main() /* Write an attribute. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; - if ((attid = H5Acreate(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, + if ((attid = H5Acreate(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Sclose(spaceid) < 0) ERR; @@ -514,15 +514,15 @@ main() H5Fflush(hdfid, H5F_SCOPE_GLOBAL); dims[0] = 1; if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "z", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "z", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; @@ -579,10 +579,10 @@ main() if ((dimscaleid = H5Dcreate(grpid, "D1", H5T_IEEE_F32BE, spaceid, H5P_DEFAULT)) < 0) ERR; - + /* Indicate that this is a scale. */ if (H5DSset_scale(dimscaleid, NULL) < 0) ERR; - + /* Add another attribute to the group. Call it "third". */ if ((attid = H5Acreate(grpid , att_name[2], H5T_NATIVE_UCHAR, att_spaceid, H5P_DEFAULT)) < 0) ERR; @@ -610,7 +610,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != 3) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -676,7 +676,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != NUM_SIMPLE_ATTS) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { diff --git a/h5_test/tst_h_atts3.c b/h5_test/tst_h_atts3.c index 7976821b0f..c65968c805 100644 --- a/h5_test/tst_h_atts3.c +++ b/h5_test/tst_h_atts3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -25,10 +25,10 @@ #define X_NAME "x" #define Y_NAME "y" #define S1_NAME "s1" -#define VLEN_TYPE_NAME "Magna_Carta_VLEN" +#define VLEN_TYPE_NAME "Magna_Carta_VLEN" #define S3_ATT_NAME "King_John" #define S3_TYPE_NAME "barons" -#define VL_NAME "No scutage or aid may be levied in our kingdom without its general consent" +#define VL_NAME "No scutage or aid may be levied in our kingdom without its general consent" #define ATT_LEN 1 int @@ -67,7 +67,7 @@ main() for (i = 0; i < ATT_LEN; i++) for (j = 0; j < NUM_VL; j++) { - cvc_out[i].data[j].len = i + 1; + cvc_out[i].data[j].len = i + 1; if (!(cvc_out[i].data[j].p = calloc(sizeof(struct s1), cvc_out[i].data[j].len))) ERR; for (k = 0; k < cvc_out[i].data[j].len; k++) { @@ -80,14 +80,14 @@ main() * all the timmings. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_STRONG)) ERR; - if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, + if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, chunk_cache_preemption) < 0) ERR; - if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, + if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; @@ -98,9 +98,9 @@ main() /* Create the compound type for struct s1. */ if ((s1_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; - if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), + if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), H5T_NATIVE_FLOAT) < 0) ERR; - if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), + if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), H5T_NATIVE_DOUBLE) < 0) ERR; if (H5Tcommit(grpid, S1_TYPE_NAME, s1_typeid) < 0) ERR; @@ -110,13 +110,13 @@ main() /* Create the struct s3 type, which contains the vlen. */ if ((s3_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s3))) < 0) ERR; - if (H5Tinsert(s3_typeid, VL_NAME, offsetof(struct s3, data), + if (H5Tinsert(s3_typeid, VL_NAME, offsetof(struct s3, data), vlen_typeid) < 0) ERR; if (H5Tcommit(grpid, S3_TYPE_NAME, s3_typeid) < 0) ERR; /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, S3_ATT_NAME, s3_typeid, spaceid, + if ((attid = H5Acreate(grpid, S3_ATT_NAME, s3_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, s3_typeid, cvc_out) < 0) ERR; @@ -127,7 +127,7 @@ main() /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; @@ -156,7 +156,7 @@ main() /* Get the typeid and native typeid. */ if ((file_typeid1[i] = H5Topen2(grpid, obj_name, H5P_DEFAULT)) < 0) ERR; - if ((native_typeid1[i] = H5Tget_native_type(file_typeid1[i], + if ((native_typeid1[i] = H5Tget_native_type(file_typeid1[i], H5T_DIR_DEFAULT)) < 0) ERR; } @@ -211,42 +211,42 @@ main() * int. */ for (i = 0; i < ATT_LEN; i++) { - vc_out[i].len = i + 1; + vc_out[i].len = i + 1; if (!(vc_out[i].p = calloc(sizeof(int), vc_out[i].len))) ERR; for (k = 0; k < vc_out[i].len; k++) ((int *)vc_out[i].p)[k] = 42; } - + /* Create the HDF5 file with creation order. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; if (H5Pclose(fcpl_id) < 0) ERR; - + /* Open the root group. */ if ((grpid = H5Gopen2(fileid, "/", H5P_DEFAULT)) < 0) ERR; - + /* Create a vlen type. Its a vlen of int. */ if ((vlen_typeid = H5Tvlen_create(H5T_NATIVE_INT)) < 0) ERR; if (H5Tcommit(grpid, VLEN_TYPE_NAME, vlen_typeid) < 0) ERR; - + /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, vlen_typeid, vc_out) < 0) ERR; - + /* Close the type. */ if (H5Tclose(vlen_typeid) < 0) ERR; - + /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; diff --git a/h5_test/tst_h_atts4.c b/h5_test/tst_h_atts4.c index 6228dd6619..e42cd171ef 100644 --- a/h5_test/tst_h_atts4.c +++ b/h5_test/tst_h_atts4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -26,10 +26,10 @@ #define X_NAME "x" #define Y_NAME "y" #define S1_NAME "s1" -#define VLEN_TYPE_NAME "Percy_Jackson_VLEN" +#define VLEN_TYPE_NAME "Percy_Jackson_VLEN" #define ATT_NAME "Poseidon" #define S3_TYPE_NAME "Olympus" -#define VL_NAME "Trident" +#define VL_NAME "Trident" #define ATT_LEN 1 int @@ -67,7 +67,7 @@ main() if (!(vc_out = calloc(sizeof(hvl_t), ATT_LEN))) ERR; for (i = 0; i < ATT_LEN; i++) { - vc_out[i].len = i + 1; + vc_out[i].len = i + 1; if (!(vc_out[i].p = calloc(sizeof(struct s1), vc_out[i].len))) ERR; for (k = 0; k < vc_out[i].len; k++) { @@ -75,50 +75,50 @@ main() ((struct s1 *)vc_out[i].p)[k].y = 2.0; } } - + /* Create the HDF5 file, with cache control, creation order, and * all the timmings. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_STRONG)) ERR; - if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, + if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, chunk_cache_preemption) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; if (H5Pclose(fcpl_id) < 0) ERR; - + /* Open the root group. */ if ((grpid = H5Gopen2(fileid, "/", H5P_DEFAULT)) < 0) ERR; - + /* Create the compound type for struct s1. */ if ((s1_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; - if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), + if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), H5T_NATIVE_FLOAT) < 0) ERR; - if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), + if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), H5T_NATIVE_DOUBLE) < 0) ERR; if (H5Tcommit(grpid, S1_TYPE_NAME, s1_typeid) < 0) ERR; - + /* Create a vlen type. Its a vlen of struct s1. */ if ((vlen_typeid = H5Tvlen_create(s1_typeid)) < 0) ERR; if (H5Tcommit(grpid, VLEN_TYPE_NAME, vlen_typeid) < 0) ERR; - + /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, vlen_typeid, vc_out) < 0) ERR; - + /* Close the types. */ if (H5Tclose(s1_typeid) < 0 || H5Tclose(vlen_typeid) < 0) ERR; - + /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; diff --git a/h5_test/tst_h_compounds.c b/h5_test/tst_h_compounds.c index b14b00b55d..a38d221ad2 100644 --- a/h5_test/tst_h_compounds.c +++ b/h5_test/tst_h_compounds.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -42,11 +42,11 @@ main() /* REALLY initialize the data (even the gaps in the structs). This * is only needed to pass valgrind. */ if (!(dummy = calloc(sizeof(struct s2), DIM1_LEN))) ERR; - memcpy((void *)data2, (void *)dummy, sizeof(struct s2) * DIM1_LEN); - free(dummy); + memcpy((void *)data2, (void *)dummy, sizeof(struct s2) * DIM1_LEN); + free(dummy); if (!(dummy = calloc(sizeof(struct s1), DIM1_LEN))) ERR; - memcpy((void *)data2, (void *)dummy, sizeof(struct s1) * DIM1_LEN); - free(dummy); + memcpy((void *)data2, (void *)dummy, sizeof(struct s1) * DIM1_LEN); + free(dummy); for (i=0; i diff --git a/include/nc_logging.h b/include/nc_logging.h index c4735b71f6..2ed73a43b4 100644 --- a/include/nc_logging.h +++ b/include/nc_logging.h @@ -1,4 +1,4 @@ -/* Copyright 2010, University Corporation for Atmospheric Research. See +/* Copyright 2018, University Corporation for Atmospheric Research. See COPYRIGHT file for copying and redistribution conditions. */ /** * @file @internal This file is part of netcdf-4, a netCDF-like diff --git a/include/nc_provenance.h b/include/nc_provenance.h index ef9825a3dc..685ad5acd7 100644 --- a/include/nc_provenance.h +++ b/include/nc_provenance.h @@ -1,14 +1,12 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ -/** /** * @file * @internal Contains information for creating provenance * info and/or displaying provenance info. * * @author Dennis Heimbigner, Ward Fisher - -/**************************************************/ + */ /** It has come to pass that we can't guarantee that this information is diff --git a/include/nc_tests.h b/include/nc_tests.h index bca0ec1290..8d975f66df 100644 --- a/include/nc_tests.h +++ b/include/nc_tests.h @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University * Corporation for Atmospheric Research/Unidata. See \ref copyright * file for conditions of use. */ /** @internal @file diff --git a/include/ncauth.h b/include/ncauth.h index a3087eb8f6..f18bad7201 100644 --- a/include/ncauth.h +++ b/include/ncauth.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* diff --git a/include/ncbytes.h b/include/ncbytes.h index 824f7c70be..29feaa10e9 100644 --- a/include/ncbytes.h +++ b/include/ncbytes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCBYTES_H diff --git a/include/ncconfigure.h b/include/ncconfigure.h index 0e00727bb9..42085dc88b 100644 --- a/include/ncconfigure.h +++ b/include/ncconfigure.h @@ -1,5 +1,5 @@ /* - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This header file is for the parallel I/O functions of netCDF. diff --git a/include/ncdap.h b/include/ncdap.h index 6dac5aa9f9..40894ba612 100644 --- a/include/ncdap.h +++ b/include/ncdap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/include/ncdimscale.h b/include/ncdimscale.h index e4e206005d..8853708ef9 100644 --- a/include/ncdimscale.h +++ b/include/ncdimscale.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/ncdispatch.h b/include/ncdispatch.h index ba3593e6aa..5b18be38f9 100644 --- a/include/ncdispatch.h +++ b/include/ncdispatch.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file @@ -108,10 +108,6 @@ typedef struct NC_MPI_INFO { /* Define known dispatch tables and initializers */ -/*Forward*/ -// typedef struct NC_Dispatch NC_Dispatch; - - extern int NCDISPATCH_initialize(void); extern int NCDISPATCH_finalize(void); diff --git a/include/ncexternl.h b/include/ncexternl.h index e3e8e52c92..3fa65a7499 100644 --- a/include/ncexternl.h +++ b/include/ncexternl.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncfilter.h b/include/ncfilter.h index 17806e7142..3c0078463c 100644 --- a/include/ncfilter.h +++ b/include/ncfilter.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCFILTER_H diff --git a/include/nchashmap.h b/include/nchashmap.h index f89c4b8261..0606d6a2f5 100644 --- a/include/nchashmap.h +++ b/include/nchashmap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncindex.h b/include/ncindex.h index 5e83390acc..20e2895b67 100644 --- a/include/ncindex.h +++ b/include/ncindex.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #ifndef NCINDEX_H @@ -100,7 +100,7 @@ static int ncindexsize(NCindex* index) { int i; if(index == NULL) return 0; - i = nclistlength(index->list); + i = nclistlength(index->list); return i; } #else diff --git a/include/nclist.h b/include/nclist.h index a47ba401c1..73d5f225bf 100644 --- a/include/nclist.h +++ b/include/nclist.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCLIST_H #define NCLIST_H 1 diff --git a/include/nclog.h b/include/nclog.h index dd9fe85cea..ce4c84d14c 100644 --- a/include/nclog.h +++ b/include/nclog.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncoffsets.h b/include/ncoffsets.h index 36381432bb..dad9a29dd5 100644 --- a/include/ncoffsets.h +++ b/include/ncoffsets.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/include/ncrc.h b/include/ncrc.h index 4998efb494..27db1cb0d1 100644 --- a/include/ncrc.h +++ b/include/ncrc.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* diff --git a/include/nctestserver.h b/include/nctestserver.h index 175574efab..cbe9c4fec9 100644 --- a/include/nctestserver.h +++ b/include/nctestserver.h @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -26,7 +37,7 @@ parseServers(const char* remotetestservers) char* p; char* svc; char** l; - + list = (char**)malloc(sizeof(char*) * (int)(strlen(remotetestservers)/2)); if(list == NULL) return NULL; rts = strdup(remotetestservers); @@ -71,7 +82,7 @@ nc_findtestserver(const char* path, int isdap4, const char* serverlist) return NULL; } for(svc=svclist;*svc;svc++) { - if(strlen(*svc) == 0) + if(strlen(*svc) == 0) goto done; if(path == NULL) path = ""; if(strlen(path) > 0 && path[0] == '/') @@ -87,7 +98,7 @@ nc_findtestserver(const char* path, int isdap4, const char* serverlist) } done: /* Free up the envv list of servers */ - if(svclist != NULL) { + if(svclist != NULL) { char** p; for(p=svclist;*p;p++) free(*p); diff --git a/include/nctime.h b/include/nctime.h index d740f9c7bc..bbab97228e 100644 --- a/include/nctime.h +++ b/include/nctime.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.h,v 1.6 2010/03/18 19:24:26 russ Exp $ *********************************************************************/ diff --git a/include/ncuri.h b/include/ncuri.h index a60febf526..bab9cd589b 100644 --- a/include/ncuri.h +++ b/include/ncuri.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/include/ncutf8.h b/include/ncutf8.h index fca22ca140..cff2efa221 100644 --- a/include/ncutf8.h +++ b/include/ncutf8.h @@ -1,5 +1,5 @@ /* - * Copyright 2017, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/include/ncwinpath.h b/include/ncwinpath.h index e62368d971..e899a27d14 100644 --- a/include/ncwinpath.h +++ b/include/ncwinpath.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ #ifndef _NCWINIO_H_ diff --git a/include/netcdf.h b/include/netcdf.h index 96790560b7..3570cdde14 100644 --- a/include/netcdf.h +++ b/include/netcdf.h @@ -2,8 +2,9 @@ Main header file for the C API. -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 +Copyright 2018, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. diff --git a/include/netcdf_aux.h b/include/netcdf_aux.h index ef96cc0377..5ea0c042cf 100644 --- a/include/netcdf_aux.h +++ b/include/netcdf_aux.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id$ * $Header$ diff --git a/include/netcdf_f.h b/include/netcdf_f.h index 9f064cedfb..e7bd2db6b9 100644 --- a/include/netcdf_f.h +++ b/include/netcdf_f.h @@ -1,6 +1,6 @@ /* - * Copyright 1993-2011 University Corporation for Atmospheric Research/Unidata - * + * Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata + * * This header contains prototypes for functions only called by fortran 77. */ #ifndef _NETCDF_F_ @@ -19,11 +19,11 @@ EXTERNL int nc_def_var_chunking_ints(int ncid, int varid, int contiguous, int *chunksizesp); EXTERNL int -nc_open_par_fortran(const char *path, int mode, int comm, +nc_open_par_fortran(const char *path, int mode, int comm, int info, int *ncidp); EXTERNL int -nc_create_par_fortran(const char *path, int cmode, int comm, +nc_create_par_fortran(const char *path, int cmode, int comm, int info, int *ncidp); EXTERNL int @@ -33,27 +33,27 @@ EXTERNL int nc_get_chunk_cache_ints(int *sizep, int *nelemsp, int *preemptionp); EXTERNL int -nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, +nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, int preemption); EXTERNL int -nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, +nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, int *nelemsp, int *preemptionp); /* Prototypes for some extra functions in fort-lib.c. */ -EXTERNL int +EXTERNL int nc_inq_varids_f(int ncid, int *nvars, int *fvarids); -EXTERNL int +EXTERNL int nc_inq_dimids_f(int ncid, int *ndims, int *fdimids, int parent); -EXTERNL int -nc_insert_array_compound_f(int ncid, int typeid1, char *name, +EXTERNL int +nc_insert_array_compound_f(int ncid, int typeid1, char *name, size_t offset, nc_type field_typeid, int ndims, int *dim_sizesp); -EXTERNL int -nc_inq_compound_field_f(int ncid, nc_type xtype, int fieldid, char *name, - size_t *offsetp, nc_type *field_typeidp, int *ndimsp, +EXTERNL int +nc_inq_compound_field_f(int ncid, nc_type xtype, int fieldid, char *name, + size_t *offsetp, nc_type *field_typeidp, int *ndimsp, int *dim_sizesp); #if defined(__cplusplus) diff --git a/include/netcdf_mem.h b/include/netcdf_mem.h index 3024473f4f..8f7769aa9b 100644 --- a/include/netcdf_mem.h +++ b/include/netcdf_mem.h @@ -2,7 +2,7 @@ * * Main header file for in-memory (diskless) functionality. * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * See \ref copyright file for more info. diff --git a/include/netcdf_meta.h.in b/include/netcdf_meta.h.in index e3859aef36..f9b9604560 100644 --- a/include/netcdf_meta.h.in +++ b/include/netcdf_meta.h.in @@ -13,8 +13,10 @@ * in conditionals. * * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 * University Corporation for Atmospheric Research/Unidata. + * * See \ref copyright file for more info. */ diff --git a/include/netcdf_par.h b/include/netcdf_par.h index f35365b997..13da607bdc 100644 --- a/include/netcdf_par.h +++ b/include/netcdf_par.h @@ -2,7 +2,7 @@ * * Main header file for the Parallel C API. * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This header file is for the parallel I/O functions of netCDF. diff --git a/include/onstack.h b/include/onstack.h index 29d84d8c44..bd3b8e39e9 100644 --- a/include/onstack.h +++ b/include/onstack.h @@ -1,5 +1,5 @@ /* - * Copyright 1997, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: onstack.h,v 2.7 2006/09/15 20:40:39 ed Exp $ */ diff --git a/include/rnd.h b/include/rnd.h index 90da7d2a14..d06b0e0f91 100644 --- a/include/rnd.h +++ b/include/rnd.h @@ -1,4 +1,4 @@ -/* Copyright 1996-2018, University Corporation for Atmospheric +/* Copyright 2018-2018, University Corporation for Atmospheric * Research See netcdf/COPYRIGHT file for copying and redistribution * conditions. * diff --git a/lib_flags.am b/lib_flags.am index 58accdf60f..72f45e5978 100644 --- a/lib_flags.am +++ b/lib_flags.am @@ -1,20 +1,16 @@ # This is part of the netCDF package. -# Copyright 2005 University Corporation for Atmospheric Research/Unidata +# Copyright 2018 University Corporation for Atmospheric Research/Unidata # See COPYRIGHT file for conditions of use. -# +# # Assemble the CPPFLAGS and LDFLAGS that point to all the needed # libraries for netCDF-4. # -AM_CPPFLAGS = -I$(top_srcdir)/include -AM_LDFLAGS = +AM_CPPFLAGS = -I$(top_srcdir)/include +AM_LDFLAGS = if USE_DAP AM_CPPFLAGS += -I${top_srcdir}/oc2 endif -AM_TESTS_ENVIRONMENT = export TOPSRCDIR=${abs_top_srcdir}; export TOPBUILDDIR=${abs_top_builddir}; - - - - +AM_TESTS_ENVIRONMENT = export TOPSRCDIR=${abs_top_srcdir}; export TOPBUILDDIR=${abs_top_builddir}; diff --git a/libdap2/CMakeLists.txt b/libdap2/CMakeLists.txt index a5bfb1023e..126385c97b 100644 --- a/libdap2/CMakeLists.txt +++ b/libdap2/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(dap2_SOURCES constraints.c dapcvt.c dapodom.c daputil.c ncdaperr.c cdf.c cache.c dapdump.c dapdebug.c dapattr.c ncd2dispatch.c getvara.c dceconstraints.c dcetab.c dceparse.c dcelex.c) add_library(dap2 OBJECT ${dap2_SOURCES}) diff --git a/libdap2/Makefile.am b/libdap2/Makefile.am index 01bf244c17..765a2f2fcc 100644 --- a/libdap2/Makefile.am +++ b/libdap2/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to libdap2. Whatever that # is! diff --git a/libdap2/cache.c b/libdap2/cache.c index 61b44f70ab..b058700580 100644 --- a/libdap2/cache.c +++ b/libdap2/cache.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/cdf.c b/libdap2/cdf.c index c213cad529..e22e2c209b 100644 --- a/libdap2/cdf.c +++ b/libdap2/cdf.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/common.c b/libdap2/common.c index cf366c1960..1bfb2c4e8d 100644 --- a/libdap2/common.c +++ b/libdap2/common.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/constraints.c b/libdap2/constraints.c index 0be99dd07d..52976f6424 100644 --- a/libdap2/constraints.c +++ b/libdap2/constraints.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT filey for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/constraints.h b/libdap2/constraints.h index 2231b432d1..0bb2df32cb 100644 --- a/libdap2/constraints.h +++ b/libdap2/constraints.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef CONSTRAINTS_H diff --git a/libdap2/dapattr.c b/libdap2/dapattr.c index f491cf9ca9..03a31e9391 100644 --- a/libdap2/dapattr.c +++ b/libdap2/dapattr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapcvt.c b/libdap2/dapcvt.c index 2e4009af0e..c4dc3bc7b4 100644 --- a/libdap2/dapcvt.c +++ b/libdap2/dapcvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap2/dapdebug.c b/libdap2/dapdebug.c index e9b504f151..2c7856d3ef 100644 --- a/libdap2/dapdebug.c +++ b/libdap2/dapdebug.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap2/dapdebug.h b/libdap2/dapdebug.h index dde23e53de..55ff86cad2 100644 --- a/libdap2/dapdebug.h +++ b/libdap2/dapdebug.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DEBUG_H diff --git a/libdap2/dapdump.c b/libdap2/dapdump.c index a457862c0d..4f65a2bc17 100644 --- a/libdap2/dapdump.c +++ b/libdap2/dapdump.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapdump.h b/libdap2/dapdump.h index c5488a45f8..17d631d7a8 100644 --- a/libdap2/dapdump.h +++ b/libdap2/dapdump.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DUMP_H diff --git a/libdap2/dapincludes.h b/libdap2/dapincludes.h index c8b02bd9ee..6275b662b9 100644 --- a/libdap2/dapincludes.h +++ b/libdap2/dapincludes.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPINCLUDES_H diff --git a/libdap2/dapnc.h b/libdap2/dapnc.h index afac5f09ae..bc99fe8f48 100644 --- a/libdap2/dapnc.h +++ b/libdap2/dapnc.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPNC_H diff --git a/libdap2/dapodom.c b/libdap2/dapodom.c index 965f335e21..ce5cc7cb1f 100644 --- a/libdap2/dapodom.c +++ b/libdap2/dapodom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapodom.h b/libdap2/dapodom.h index 8e79c1743a..8093ef09eb 100644 --- a/libdap2/dapodom.h +++ b/libdap2/dapodom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/daputil.c b/libdap2/daputil.c index bef69c2029..d2348c0e0e 100644 --- a/libdap2/daputil.c +++ b/libdap2/daputil.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/daputil.h b/libdap2/daputil.h index 816b063d86..836e064176 100644 --- a/libdap2/daputil.h +++ b/libdap2/daputil.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPUTIL_H diff --git a/libdap2/dce.y b/libdap2/dce.y index e7030a4c53..b0e30c6297 100644 --- a/libdap2/dce.y +++ b/libdap2/dce.y @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /*The lines down to DO NOT DELETE ... comment are specific to the C Parser. @@ -82,7 +82,7 @@ segment: {$$=segment(parsestate,$1,$2);} ; -rangelist: +rangelist: range {$$=rangelist(parsestate,null,$1);} | rangelist range diff --git a/libdap2/dceconstraints.c b/libdap2/dceconstraints.c index 2e5a851655..754e289f8e 100644 --- a/libdap2/dceconstraints.c +++ b/libdap2/dceconstraints.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dceconstraints.h b/libdap2/dceconstraints.h index f4fa22a0fd..1b6c2975ba 100644 --- a/libdap2/dceconstraints.h +++ b/libdap2/dceconstraints.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dcelex.c b/libdap2/dcelex.c index c6153711a0..58f39ad0c6 100644 --- a/libdap2/dcelex.c +++ b/libdap2/dcelex.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #define URLDECODE diff --git a/libdap2/dceparse.c b/libdap2/dceparse.c index c356a7d286..02239b889b 100644 --- a/libdap2/dceparse.c +++ b/libdap2/dceparse.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /* Parser actions for constraint expressions */ diff --git a/libdap2/dceparselex.h b/libdap2/dceparselex.h index 88bc9ae80e..4b1ff9ad28 100644 --- a/libdap2/dceparselex.h +++ b/libdap2/dceparselex.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef DCEPARSELEX_H diff --git a/libdap2/getvara.c b/libdap2/getvara.c index a2c0283c29..b425685671 100644 --- a/libdap2/getvara.c +++ b/libdap2/getvara.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribuution conditions. *********************************************************************/ diff --git a/libdap2/getvara.h b/libdap2/getvara.h index 1b9b1238fc..c22b034870 100644 --- a/libdap2/getvara.h +++ b/libdap2/getvara.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef GETVARA_H diff --git a/libdap2/main.c b/libdap2/main.c index 8111ebad64..cb001f112a 100644 --- a/libdap2/main.c +++ b/libdap2/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/nccommon.h b/libdap2/nccommon.h index e3bbdedd55..4b9b734fe4 100644 --- a/libdap2/nccommon.h +++ b/libdap2/nccommon.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncd2dispatch.c b/libdap2/ncd2dispatch.c index d9f2dd2249..6bc51100b3 100644 --- a/libdap2/ncd2dispatch.c +++ b/libdap2/ncd2dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncd2dispatch.h b/libdap2/ncd2dispatch.h index fd6731d227..622806dce3 100644 --- a/libdap2/ncd2dispatch.h +++ b/libdap2/ncd2dispatch.h @@ -1,5 +1,5 @@ /* - * Copyright 1993-1996 University Corporation for Atmospheric Research/Unidata + * Copyright 1993-2018 University Corporation for Atmospheric Research/Unidata * * Portions of this software were developed by the Unidata Program at the * University Corporation for Atmospheric Research. diff --git a/libdap2/ncdap.c b/libdap2/ncdap.c index 62aaea4547..d4aeb18a8b 100644 --- a/libdap2/ncdap.c +++ b/libdap2/ncdap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncdapa.c b/libdap2/ncdapa.c index 12a912a847..0aa5580fc3 100644 --- a/libdap2/ncdapa.c +++ b/libdap2/ncdapa.c @@ -1,5 +1,5 @@ /********************************************************************* \ - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncdaperr.c b/libdap2/ncdaperr.c index 1833280c2b..c616e3891f 100644 --- a/libdap2/ncdaperr.c +++ b/libdap2/ncdaperr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/test_vara.c b/libdap2/test_vara.c index a2c9e87151..d45cc4a53f 100644 --- a/libdap2/test_vara.c +++ b/libdap2/test_vara.c @@ -1,3 +1,15 @@ + +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -7,7 +19,7 @@ #define DTSTEST "/dts/test.06" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: t = 10 ; @@ -41,7 +53,7 @@ netcdf test { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -81,7 +93,7 @@ main() size_t count[RANK]; char URL[4096]; const char* svc = NULL; - + /* Find Test Server */ svc = nc_findtestserver("dts",0); if(svc == NULL) { @@ -181,7 +193,7 @@ static void odom_reclaim(Odom* odom) } -static void odom_set(Odom* odom, size_t* start, size_t* count) +static void odom_set(Odom* odom, size_t* start, size_t* count) { int i; /* Init the odometer */ @@ -203,7 +215,7 @@ static int odom_more(Odom* odom) static int odom_incr(Odom* odom) { int i; /* do not make unsigned */ - if(odom->rank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -221,364 +233,364 @@ static size_t odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } static float target_data[X][Y][Z] = { - 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, - 0.999200106660978, 0.998750260394966, 0.998200539935204, + 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, + 0.999200106660978, 0.998750260394966, 0.998200539935204, 0.99755100025328, 0.996801706302619, 0.995952733011994, - 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, - 0.990215996212637, 0.988771077936042, 0.987227283375627, + 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, + 0.990215996212637, 0.988771077936042, 0.987227283375627, 0.985584766909561, 0.983843692788121, 0.98200423511727, - 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, - 0.97133797485203, 0.968912421710645, 0.966389978134513, + 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, + 0.97133797485203, 0.968912421710645, 0.966389978134513, 0.963770896365891, 0.961055438310771, 0.958243875512697, - 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, - 0.942754665528346, 0.939372712847379, 0.935896823677935, + 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, + 0.942754665528346, 0.939372712847379, 0.935896823677935, 0.932327345606034, 0.92866463557651, 0.924909059857313, - 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, - 0.904751663219963, 0.900447102352677, 0.896052497525525, + 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, + 0.904751663219963, 0.900447102352677, 0.896052497525525, 0.891568288195329, 0.886994922779284, 0.882332858610121, - 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, - 0.857708681363824, 0.852524522059506, 0.847255111013416, + 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, + 0.857708681363824, 0.852524522059506, 0.847255111013416, 0.841900975162269, 0.836462649915187, 0.830940679100164, - 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, - 0.802095757884293, 0.796083798549056, 0.789992231497365, + 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, + 0.802095757884293, 0.796083798549056, 0.789992231497365, 0.783821665880849, 0.777572718750928, 0.771246014997107, - 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, - 0.738468558729588, 0.731688868873821, 0.724836010740905, + 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, + 0.738468558729588, 0.731688868873821, 0.724836010740905, 0.717910669610943, 0.710913538012277, 0.703845315652236, - 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, - 0.667462825841308, 0.659983145884982, 0.652437468164052, + 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, + 0.667462825841308, 0.659983145884982, 0.652437468164052, 0.644826547240001, 0.63715114419858, 0.629412026573697, - 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, - 0.589788025031098, 0.581683089463883, 0.573519986072457, + 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, + 0.589788025031098, 0.581683089463883, 0.573519986072457, 0.565299531160354, 0.557022546766217, 0.548689860581588, - 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, - 0.506220257232778, 0.497571047891727, 0.488872081860527, + 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, + 0.506220257232778, 0.497571047891727, 0.488872081860527, 0.480124229028534, 0.47132836417374, 0.462485366875301, - 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, - 0.417594503958358, 0.408487440884157, 0.399339529406273, + 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, + 0.417594503958358, 0.408487440884157, 0.399339529406273, 0.39015168430823, 0.380924824366882, 0.371659872260533, - 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, - 0.324796284438776, 0.315322362395269, 0.305816908378289, + 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, + 0.324796284438776, 0.315322362395269, 0.305816908378289, 0.296280872925319, 0.286715209631956, 0.277120875056558, - 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, - 0.228752807808459, 0.219006687093041, 0.209238665891419, + 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, + 0.228752807808459, 0.219006687093041, 0.209238665891419, 0.199449720997573, 0.189640831297834, 0.179812977673, - 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, - 0.130423708738146, 0.120502769367367, 0.11056977982007, + 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, + 0.130423708738146, 0.120502769367367, 0.11056977982007, 0.100625733386932, 0.0906716244643097, 0.0807084484548006, - 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, - 0.040785011241591, 0.0307914590824661, 0.0207948278030924, - 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, + 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, + 0.040785011241591, 0.0307914590824661, 0.0207948278030924, + 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, -0.0192024929016926, - -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, - -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, - -0.089085416936459, -0.099041036598728, -0.108986752239871, + -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, + -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, + -0.089085416936459, -0.099041036598728, -0.108986752239871, -0.118921569296612, - -0.128844494295525, -0.138754534952378, -0.148650700271364, - -0.158532000644198, -0.168397447949077, -0.178246055649492, - -0.18807683889288, -0.197888814609109, -0.207681001608784, + -0.128844494295525, -0.138754534952378, -0.148650700271364, + -0.158532000644198, -0.168397447949077, -0.178246055649492, + -0.18807683889288, -0.197888814609109, -0.207681001608784, -0.217452420681365, - -0.227202094693087, -0.236929048684675, -0.246632309968834, - -0.256310908227523, -0.26596387560898, -0.275590246824513, - -0.285189059245021, -0.294759352997261, -0.304300171059833, + -0.227202094693087, -0.236929048684675, -0.246632309968834, + -0.256310908227523, -0.26596387560898, -0.275590246824513, + -0.285189059245021, -0.294759352997261, -0.304300171059833, -0.313810559358882, - -0.323289566863503, -0.332736245680845, -0.342149651150898, - -0.35152884194096, -0.360872880139767, -0.370180831351287, - -0.379451764788155, -0.388684753364752, -0.397878873789916, + -0.323289566863503, -0.332736245680845, -0.342149651150898, + -0.35152884194096, -0.360872880139767, -0.370180831351287, + -0.379451764788155, -0.388684753364752, -0.397878873789916, -0.407033206659266, - -0.416146836547142, -0.425218852098152, -0.4342483461183, - -0.443234415665709, -0.452176162140912, -0.461072691376713, - -0.469923113727602, -0.47872654415872, -0.487482102334359, + -0.416146836547142, -0.425218852098152, -0.4342483461183, + -0.443234415665709, -0.452176162140912, -0.461072691376713, + -0.469923113727602, -0.47872654415872, -0.487482102334359, -0.496188912705999, - -0.504846104599858, -0.513452812303959, -0.522008175154707, - -0.530511337622945, -0.538961449399512, -0.547357665480271, - -0.555699146250613, -0.56398505756941, -0.572214570852437, + -0.504846104599858, -0.513452812303959, -0.522008175154707, + -0.530511337622945, -0.538961449399512, -0.547357665480271, + -0.555699146250613, -0.56398505756941, -0.572214570852437, -0.580386863155222, - -0.588501117255346, -0.59655652173416, -0.60455227105793, - -0.612487565658385, -0.62036161201268, -0.628173622722739, - -0.635922816594002, -0.643608418713541, -0.651229660527546, + -0.588501117255346, -0.59655652173416, -0.60455227105793, + -0.612487565658385, -0.62036161201268, -0.628173622722739, + -0.635922816594002, -0.643608418713541, -0.651229660527546, -0.658785779918188, - -0.666276021279824, -0.673699635594561, -0.681055880507152, - -0.688344020399238, -0.695563326462902, -0.702713076773554, - -0.70979255636212, -0.716801057286543, -0.723737878702569, + -0.666276021279824, -0.673699635594561, -0.681055880507152, + -0.688344020399238, -0.695563326462902, -0.702713076773554, + -0.70979255636212, -0.716801057286543, -0.723737878702569, -0.730602326933837, - -0.737393715541245, -0.744111365391593, -0.750754604725491, - -0.757322769224544, -0.763815202077774, -0.770231254047307, - -0.776570283533293, -0.782831656638065, -0.789014747229531, + -0.737393715541245, -0.744111365391593, -0.750754604725491, + -0.757322769224544, -0.763815202077774, -0.770231254047307, + -0.776570283533293, -0.782831656638065, -0.789014747229531, -0.795118937003784, - -0.801143615546934, -0.807088180396146, -0.81295203709989, - -0.818734599277382, -0.824435288677222, -0.830053535235222, - -0.835588777131408, -0.841040460846201, -0.846408041215776, + -0.801143615546934, -0.807088180396146, -0.81295203709989, + -0.818734599277382, -0.824435288677222, -0.830053535235222, + -0.835588777131408, -0.841040460846201, -0.846408041215776, -0.851690981486566, - -0.856888753368947, -0.862000837090063, -0.867026721445802, - -0.871965903851917, -0.876817890394281, -0.881582195878286, - -0.886258343877352, -0.890845866780576, -0.895344305839492, + -0.856888753368947, -0.862000837090063, -0.867026721445802, + -0.871965903851917, -0.876817890394281, -0.881582195878286, + -0.886258343877352, -0.890845866780576, -0.895344305839492, -0.899753211213941, - -0.904072142017061, -0.90830066635937, -0.912438361391958, - -0.916484813348769, -0.920439617587981, -0.924302378632464, - -0.928072710209333, -0.931750235288572, -0.935334586120739, + -0.904072142017061, -0.90830066635937, -0.912438361391958, + -0.916484813348769, -0.920439617587981, -0.924302378632464, + -0.928072710209333, -0.931750235288572, -0.935334586120739, -0.938825404273736, - -0.942222340668658, -0.945525055614696, -0.948733218843107, - -0.951846509540242, -0.954864616379626, -0.95778723755309, - -0.960614080800952, -0.963344863441243, -0.965979312397975, + -0.942222340668658, -0.945525055614696, -0.948733218843107, + -0.951846509540242, -0.954864616379626, -0.95778723755309, + -0.960614080800952, -0.963344863441243, -0.965979312397975, -0.968517164228447, - -0.970958165149591, -0.973302071063349, -0.975548647581083, - -0.977697670047013, -0.979748923560684, -0.981702202998454, - -0.983557313034006, -0.985314068157884, -0.986972292696038, + -0.970958165149591, -0.973302071063349, -0.975548647581083, + -0.977697670047013, -0.979748923560684, -0.981702202998454, + -0.983557313034006, -0.985314068157884, -0.986972292696038, -0.988531820827396, - -0.989992496600445, -0.991354173948826, -0.992616716705937, - -0.993779998618556, -0.994843903359459, -0.995808324539061, - -0.996673165716047, -0.997438340407019, -0.998103772095146, + -0.989992496600445, -0.991354173948826, -0.992616716705937, + -0.993779998618556, -0.994843903359459, -0.995808324539061, + -0.996673165716047, -0.997438340407019, -0.998103772095146, -0.998669394237814, - -0.999135150273279, -0.999500993626328, -0.999766887712928, - -0.999932805943894, -0.99999873172754, -0.999964658471342, - -0.999830589582598, -0.999596538468086, -0.999262528532721, + -0.999135150273279, -0.999500993626328, -0.999766887712928, + -0.999932805943894, -0.99999873172754, -0.999964658471342, + -0.999830589582598, -0.999596538468086, -0.999262528532721, -0.998828593177219, - -0.998294775794753, -0.997661129766618, -0.996927718456887, - -0.996094615206081, -0.99516190332383, -0.994129676080546, - -0.992998036698093, -0.991767098339465, -0.990436984097473, + -0.998294775794753, -0.997661129766618, -0.996927718456887, + -0.996094615206081, -0.99516190332383, -0.994129676080546, + -0.992998036698093, -0.991767098339465, -0.990436984097473, -0.989007826982433, - -0.987479769908865, -0.985852965681203, -0.984127576978514, - -0.982303776338232, -0.980381746138899, -0.978361678581934, - -0.97624377567241, -0.974028249198852, -0.971715320712062, + -0.987479769908865, -0.985852965681203, -0.984127576978514, + -0.982303776338232, -0.980381746138899, -0.978361678581934, + -0.97624377567241, -0.974028249198852, -0.971715320712062, -0.969305221502961, - -0.966798192579461, -0.964194484642366, -0.961494358060299, - -0.958698082843669, -0.955805938617666, -0.952818214594305, - -0.949735209543496, -0.946557231763177, -0.943284599048476, + -0.966798192579461, -0.964194484642366, -0.961494358060299, + -0.958698082843669, -0.955805938617666, -0.952818214594305, + -0.949735209543496, -0.946557231763177, -0.943284599048476, -0.939917638659938, - -0.936456687290796, -0.932902091033304, -0.929254205344123, - -0.925513395008784, -0.921680034105203, -0.917754505966276, - -0.913737203141545, -0.909628527357945, -0.90542888947963, + -0.936456687290796, -0.932902091033304, -0.929254205344123, + -0.925513395008784, -0.921680034105203, -0.917754505966276, + -0.913737203141545, -0.909628527357945, -0.90542888947963, -0.901138709466889, - -0.896758416334147, -0.892288448107068, -0.88772925177875, - -0.883081283265026, -0.878345007358874, -0.873520897683938, - -0.868609436647165, -0.863611115390566, -0.858526433742102, + -0.896758416334147, -0.892288448107068, -0.88772925177875, + -0.883081283265026, -0.878345007358874, -0.873520897683938, + -0.868609436647165, -0.863611115390566, -0.858526433742102, -0.8533559001657, - -0.848100031710408, -0.842759353958694, -0.83733440097388, - -0.831825715246746, -0.826233847641272, -0.820559357339561, - -0.814802811785913, -0.808964786630086, -0.803045865669731, + -0.848100031710408, -0.842759353958694, -0.83733440097388, + -0.831825715246746, -0.826233847641272, -0.820559357339561, + -0.814802811785913, -0.808964786630086, -0.803045865669731, -0.797046640792012, - -0.790967711914417, -0.784809686924768, -0.778573181620433, - -0.772258819646744, -0.765867232434637, -0.759399059137508, - -0.752854946567295, -0.746235549129803, -0.739541528759258, + -0.790967711914417, -0.784809686924768, -0.778573181620433, + -0.772258819646744, -0.765867232434637, -0.759399059137508, + -0.752854946567295, -0.746235549129803, -0.739541528759258, -0.73277355485212, - -0.72593230420014, -0.719018460922681, -0.71203271639831, - -0.704975769195658, -0.697848325003564, -0.690651096560507, - -0.683384803583336, -0.676050172695292, -0.668647937353351, + -0.72593230420014, -0.719018460922681, -0.71203271639831, + -0.704975769195658, -0.697848325003564, -0.690651096560507, + -0.683384803583336, -0.676050172695292, -0.668647937353351, -0.66117883777488, - -0.653643620863612, -0.646043040134959, -0.63837785564066, - -0.630648833892775, -0.622856747787041, -0.615002376525574, - -0.607086505538955, -0.599109926407685, -0.591073436783031, + -0.653643620863612, -0.646043040134959, -0.63837785564066, + -0.630648833892775, -0.622856747787041, -0.615002376525574, + -0.607086505538955, -0.599109926407685, -0.591073436783031, -0.582977840307259, - -0.574823946533269, -0.566612570843644, -0.55834453436911, - -0.550020663906425, -0.541641791835699, -0.533208756037154, - -0.524722399807346, -0.516183571774825, -0.507593125815277, + -0.574823946533269, -0.566612570843644, -0.55834453436911, + -0.550020663906425, -0.541641791835699, -0.533208756037154, + -0.524722399807346, -0.516183571774825, -0.507593125815277, -0.49895192096614, - -0.490260821340699, -0.481520696041674, -0.47273241907431, - -0.46389686925898, -0.455014930143305, -0.446087489913793, - -0.437115441307028, -0.428099681520394, -0.419041112122356, + -0.490260821340699, -0.481520696041674, -0.47273241907431, + -0.46389686925898, -0.455014930143305, -0.446087489913793, + -0.437115441307028, -0.428099681520394, -0.419041112122356, -0.409940638962306, - -0.400799172079975, -0.391617625614436, -0.38239691771268, - -0.373137970437818, -0.363841709676858, -0.354509065048132, - -0.345140969808323, -0.335738360759151, -0.326302178153684, + -0.400799172079975, -0.391617625614436, -0.38239691771268, + -0.373137970437818, -0.363841709676858, -0.354509065048132, + -0.345140969808323, -0.335738360759151, -0.326302178153684, -0.316833365602319, - -0.307332869978419, -0.297801641323633, -0.288240632752882, - -0.278650800359055, -0.269033103117399, -0.259388502789626, - -0.249717963827731, -0.24002245327755, -0.230302940682059, + -0.307332869978419, -0.297801641323633, -0.288240632752882, + -0.278650800359055, -0.269033103117399, -0.259388502789626, + -0.249717963827731, -0.24002245327755, -0.230302940682059, -0.220560397984419, - -0.21079579943078, -0.20101012147286, -0.191204342670302, - -0.181379443592811, -0.171536406722112, -0.161676216353687, - -0.151799858498356, -0.141908320783673, -0.13200259235517, + -0.21079579943078, -0.20101012147286, -0.191204342670302, + -0.181379443592811, -0.171536406722112, -0.161676216353687, + -0.151799858498356, -0.141908320783673, -0.13200259235517, -0.122083663777433, - -0.112152526935055, -0.102210174933442, -0.0922576019995117, - -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, - -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, + -0.112152526935055, -0.102210174933442, -0.0922576019995117, + -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, + -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, -0.0223871099574771, - -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, - 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, - 0.0475930341377878, 0.057579156123846, 0.0675595202422752, + -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, + 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, + 0.0475930341377878, 0.057579156123846, 0.0675595202422752, 0.0775331284649787, - 0.0874989834394464, 0.0974560885884857, 0.10740344820988, - 0.117340067575955, 0.127264953033056, 0.137177112100907, + 0.0874989834394464, 0.0974560885884857, 0.10740344820988, + 0.117340067575955, 0.127264953033056, 0.137177112100907, 0.147075553571863, 0.156959287610023, 0.166827325850222, 0.176678681496857, - 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, - 0.225650805269396, 0.235381442954451, 0.245088542691362, + 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, + 0.225650805269396, 0.235381442954451, 0.245088542691362, 0.254771133778243, 0.264428247964056, 0.274058919545427, - 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, - 0.321782029249722, 0.331233920236754, 0.340652688107789, + 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, + 0.321782029249722, 0.331233920236754, 0.340652688107789, 0.350037390993891, 0.35938709043259, 0.368700851461733, - 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, - 0.414698113560782, 0.423776817679428, 0.432813144469452, + 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, + 0.414698113560782, 0.423776817679428, 0.432813144469452, 0.441806190305705, 0.450755055891099, 0.459658846346532, - 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, - 0.503470671402114, 0.512085477241841, 0.520649074960579, + 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, + 0.503470671402114, 0.512085477241841, 0.520649074960579, 0.529160608205695, 0.537619225830956, 0.546024081981648, - 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, - 0.587212716720073, 0.595277547988606, 0.603282851998404, + 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, + 0.587212716720073, 0.595277547988606, 0.603282851998404, 0.611227828225735, 0.619111682179599, 0.626933625481169, - 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, - 0.665087526679283, 0.672521802248466, 0.679888826197857, + 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, + 0.665087526679283, 0.672521802248466, 0.679888826197857, 0.687187861831201, 0.694418179251016, 0.701579055431586, - 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, - 0.736317001920619, 0.74304644096641, 0.749701575987307, + 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, + 0.736317001920619, 0.74304644096641, 0.749701575987307, 0.756281741475356, 0.762786279419489, 0.769214539371333, - 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, - 0.800189441072806, 0.806146805264716, 0.812023555447886, + 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, + 0.800189441072806, 0.806146805264716, 0.812023555447886, 0.817819103952194, 0.823532871227622, 0.829164285902202, - 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, - 0.856066651837255, 0.861192417161521, 0.866232063961728, + 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, + 0.856066651837255, 0.861192417161521, 0.866232063961728, 0.871185088277397, 0.876050994810224, 0.880829296973609, - 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, - 0.903390327594559, 0.907633279098413, 0.911785468030717, + 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, + 0.903390327594559, 0.907633279098413, 0.911785468030717, 0.915846479176035, 0.919815906436639, 0.92369335287311, - 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, - 0.941687625819678, 0.945005369334228, 0.948228613099346, + 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, + 0.941687625819678, 0.945005369334228, 0.948228613099346, 0.951357034793342, 0.954390321576654, 0.957328170123131, - 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, - 0.970575892568149, 0.972935278296897, 0.975197371308593, + 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, + 0.970575892568149, 0.972935278296897, 0.975197371308593, 0.977361945395819, 0.979428784102971, 0.981397680747901, - 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, - 0.989766485827815, 0.991143939568469, 0.992422279741117, + 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, + 0.989766485827815, 0.991143939568469, 0.992422279741117, 0.993601378512806, 0.994681117974643, 0.99566139015358, - 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, - 0.99906765953439, 0.999449418224499, 0.999731232805658, + 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, + 0.99906765953439, 0.999449418224499, 0.999731232805658, 0.999913075096642, 0.999994926913375, 0.999976780070743, - 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, - 0.998386479434759, 0.997768728667684, 0.997051201859214, + 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, + 0.998386479434759, 0.997768728667684, 0.997051201859214, 0.996233970761431, 0.995317117096764, 0.994300732549815, - 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, - 0.987729751655308, 0.986118663792513, 0.984408964885101, + 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, + 0.987729751655308, 0.986118663792513, 0.984408964885101, 0.982600825901538, 0.980694427654217, 0.978689960781373, - 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, - 0.967203954697364, 0.964615627196218, 0.961930838936196, + 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, + 0.967203954697364, 0.964615627196218, 0.961930838936196, 0.959149858393887, 0.956272963665028, 0.953300442436693, - 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, - 0.937014175539204, 0.933474470112512, 0.929841418016701, + 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, + 0.937014175539204, 0.933474470112512, 0.929841418016701, 0.926115382553955, 0.922296736324713, 0.918385861190416, - 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, - 0.897462060474762, 0.893006344689077, 0.888461329013091, + 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, + 0.897462060474762, 0.893006344689077, 0.888461329013091, 0.883827467944587, 0.879105224865808, 0.874295071997128, - 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, - 0.848942801163572, 0.84361559505816, 0.838204028096251, + 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, + 0.848942801163572, 0.84361559505816, 0.838204028096251, 0.832708641430035, 0.827129984593597, 0.821468615447972, - 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, - 0.791941186006336, 0.785795717263661, 0.779571669604088, + 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, + 0.791941186006336, 0.785795717263661, 0.779571669604088, 0.773269665427194, 0.766890334928147, 0.760434316034681, - 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, - 0.727026756299476, 0.720124428411794, 0.713150088681373, + 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, + 0.727026756299476, 0.720124428411794, 0.713150088681373, 0.706104434536373, 0.698988170536338, 0.691802008301737, - 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, - 0.654848115566766, 0.647257894312724, 0.639602947808631, + 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, + 0.654848115566766, 0.647257894312724, 0.639602947808631, 0.631884041542758, 0.624101947399299, 0.616257443581182, - 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, - 0.576126448927319, 0.567924173288695, 0.55966510570601, + 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, + 0.576126448927319, 0.567924173288695, 0.55966510570601, 0.551350072079141, 0.542979903904521, 0.534555438191992, - 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, - 0.491648317252275, 0.482915941655938, 0.474135274867862, + 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, + 0.491648317252275, 0.482915941655938, 0.474135274867862, 0.465307194947413, 0.456432584695223, 0.447512331564922, - 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, - 0.402257798108573, 0.393082573564941, 0.38386804109152, + 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, + 0.402257798108573, 0.393082573564941, 0.38386804109152, 0.374615122133879, 0.365324741976202, 0.355997829648764, - 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, - 0.30884805201492, 0.299321654334707, 0.289765324738495, + 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, + 0.30884805201492, 0.299321654334707, 0.289765324738495, 0.280180018851278, 0.27056669519566, 0.260926315095994, - 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, - 0.212352398277126, 0.202570012076944, 0.192767369044364, + 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, + 0.212352398277126, 0.202570012076944, 0.192767369044364, 0.182945449435517, 0.173105235434182, 0.163247711053556, - 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, - 0.113734989570117, 0.103794357219253, 0.0938433455191623, + 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, + 0.113734989570117, 0.103794357219253, 0.0938433455191623, 0.0838829495627223, 0.0739141653812273, 0.06393798984479, - 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, - 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, - -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, + 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, + 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, + -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, -0.0360105786234153, - -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, - -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, - -0.105819871746218, -0.115758268216946, -0.125685088957318, + -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, + -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, + -0.105819871746218, -0.115758268216946, -0.125685088957318, -0.135599341293531, - -0.145500033808614, -0.155386176441565, -0.16525678058636, - -0.17511085919081, -0.184947426855267, -0.194765499931161, - -0.204564096619365, -0.214342237068377, -0.2240989434723, + -0.145500033808614, -0.155386176441565, -0.16525678058636, + -0.17511085919081, -0.184947426855267, -0.194765499931161, + -0.204564096619365, -0.214342237068377, -0.2240989434723, -0.233833240168624, - -0.243544153735791, -0.253230713090538, -0.262891949585, - -0.272526897103582, -0.282134592159557, -0.291714073991427, - -0.301264384658992, -0.310784569139144, -0.320273675421368, + -0.243544153735791, -0.253230713090538, -0.262891949585, + -0.272526897103582, -0.282134592159557, -0.291714073991427, + -0.301264384658992, -0.310784569139144, -0.320273675421368, -0.329730754602944, - -0.339154860983835, -0.348545052161256, -0.357900389123914, - -0.367219936345908, -0.376502761880283, -0.385747937452222, - -0.394954538551871, -0.404121644526792, -0.413248338674028, + -0.339154860983835, -0.348545052161256, -0.357900389123914, + -0.367219936345908, -0.376502761880283, -0.385747937452222, + -0.394954538551871, -0.404121644526792, -0.413248338674028, -0.422333708331768, - -0.431376844970621, -0.440376844284454, -0.449332806280839, - -0.458243835371038, -0.467109040459569, -0.47592753503331, - -0.484698437250152, -0.493420870027184, -0.502093961128397, + -0.431376844970621, -0.440376844284454, -0.449332806280839, + -0.458243835371038, -0.467109040459569, -0.47592753503331, + -0.484698437250152, -0.493420870027184, -0.502093961128397, -0.510716843251906, - -0.519288654116686, -0.527808536548793, -0.536275638567084, - -0.544689113468413, -0.553048119912302, -0.561351822005071, - -0.569599389383433, -0.57778999729752, -0.585922826693367, + -0.519288654116686, -0.527808536548793, -0.536275638567084, + -0.544689113468413, -0.553048119912302, -0.561351822005071, + -0.569599389383433, -0.57778999729752, -0.585922826693367, -0.593997064294812, - -0.602011902684824, -0.609966540386242, -0.617860181941925, - -0.625692037994295, -0.633461325364275, -0.641167267129602, - -0.648809092702519, -0.656386037906838, -0.663897345054353, + -0.602011902684824, -0.609966540386242, -0.617860181941925, + -0.625692037994295, -0.633461325364275, -0.641167267129602, + -0.648809092702519, -0.656386037906838, -0.663897345054353, -0.671342263020609, - -0.678720047320012, -0.686029960180282, -0.693271270616224, - -0.700443254502829, -0.707545194647683, -0.714576380862692, - -0.721536110035093, -0.728423686197768, -0.735238420598841, + -0.678720047320012, -0.686029960180282, -0.693271270616224, + -0.700443254502829, -0.707545194647683, -0.714576380862692, + -0.721536110035093, -0.728423686197768, -0.735238420598841, -0.741979631770551, - -0.748646645597399, -0.755238795383558, -0.76175542191954, - -0.768195873548125, -0.774559506229517, -0.780845683605749, - -0.787053777064324, -0.793183165801068, -0.799233236882215, + -0.748646645597399, -0.755238795383558, -0.76175542191954, + -0.768195873548125, -0.774559506229517, -0.780845683605749, + -0.787053777064324, -0.793183165801068, -0.799233236882215, -0.8052033853057, - -0.811093014061656, -0.816901534192113, -0.8226283648499, - -0.828272933356724, -0.833834675260437, -0.839313034391484, - -0.844707462918517, -0.850017421403178, -0.855242378854046, + -0.811093014061656, -0.816901534192113, -0.8226283648499, + -0.828272933356724, -0.833834675260437, -0.839313034391484, + -0.844707462918517, -0.850017421403178, -0.855242378854046, -0.860381812779727, - -0.865435209241112, -0.870402062902767, -0.875281877083464, - -0.880074163805853, -0.884778443845253, -0.889394246777581, - -0.893921111026392, -0.898358583909032, -0.90270622168191, + -0.865435209241112, -0.870402062902767, -0.875281877083464, + -0.880074163805853, -0.884778443845253, -0.889394246777581, + -0.893921111026392, -0.898358583909032, -0.90270622168191, -0.906963589584872, - -0.911130261884677, -0.915205821917566, -0.919189862130932, - -0.923081984124074, -0.926881798688036, -0.930588925844528, - -0.934202994883924, -0.937723644402332, -0.941150522337732, + -0.911130261884677, -0.915205821917566, -0.919189862130932, + -0.923081984124074, -0.926881798688036, -0.930588925844528, + -0.934202994883924, -0.937723644402332, -0.941150522337732, -0.944483286005189, - -0.947721602131112, -0.950865146886587, -0.953913605919758, - -0.956866674387264, -0.959724056984716, -0.962485467976237, - -0.965150631223029, -0.967719280210989, -0.970191158077357, + -0.947721602131112, -0.950865146886587, -0.953913605919758, + -0.956866674387264, -0.959724056984716, -0.962485467976237, + -0.965150631223029, -0.967719280210989, -0.970191158077357, -0.972566017636408, - -0.974843621404164, -0.977023741622146, -0.97910616028015, - -0.981090669138045, -0.982977069746599, -0.984765173467324, - -0.986454801491336, -0.988045784857242, -0.989537964468031, + -0.974843621404164, -0.977023741622146, -0.97910616028015, + -0.981090669138045, -0.982977069746599, -0.984765173467324, + -0.986454801491336, -0.988045784857242, -0.989537964468031, -0.990931191106986, - -0.992225325452603, -0.993420238092527, -0.994515809536489, - -0.995511930228257, -0.996408500556594, -0.997205430865212, - -0.997902641461745, -0.998500062625715, -0.998997634615504, + -0.992225325452603, -0.993420238092527, -0.994515809536489, + -0.995511930228257, -0.996408500556594, -0.997205430865212, + -0.997902641461745, -0.998500062625715, -0.998997634615504, -0.999395307674325, - -0.999693042035206, -0.999890807924959, -0.999988585567158, - -0.999986365184122, -0.999884146997886, -0.999681941230185, - -0.999379768101426, -0.998977657828671, -0.998475650622611, + -0.999693042035206, -0.999890807924959, -0.999988585567158, + -0.999986365184122, -0.999884146997886, -0.999681941230185, + -0.999379768101426, -0.998977657828671, -0.998475650622611, -0.99787379668355, - -0.997172156196378, -0.996370799324562, -0.995469806203119, - -0.994469266930611, -0.993369281560131, -0.992169960089301, - -0.990871422449267, -0.989473798492712, -0.987977227980866, + -0.997172156196378, -0.996370799324562, -0.995469806203119, + -0.994469266930611, -0.993369281560131, -0.992169960089301, + -0.990871422449267, -0.989473798492712, -0.987977227980866, -0.986381860569534, - -0.984687855794127, -0.982895383053711, -0.981004621594066, - -0.979015760489763, -0.976928998625255, -0.974744544674989, - -0.97246261708254, -0.970083444038766, -0.967607263458988, + -0.984687855794127, -0.982895383053711, -0.981004621594066, + -0.979015760489763, -0.976928998625255, -0.974744544674989, + -0.97246261708254, -0.970083444038766, -0.967607263458988, -0.965034322959201, - -0.96236487983131, -0.959599201017404, -0.95673756308306, - -0.953780252189686, -0.950727564065908, -0.947579803977993, - -0.944337286699328, -0.941000336478938, -0.937569287009064, + -0.96236487983131, -0.959599201017404, -0.95673756308306, + -0.953780252189686, -0.950727564065908, -0.947579803977993, + -0.944337286699328, -0.941000336478938, -0.937569287009064, -0.934044481391795, - -0.930426272104753, -0.926715020965855, -0.922911099097119, - -0.919014886887564, -0.915026773955164, -0.910947159107888, - -0.906776450303821, -0.902515064610368, -0.898163428162546, + -0.930426272104753, -0.926715020965855, -0.922911099097119, + -0.919014886887564, -0.915026773955164, -0.910947159107888, + -0.906776450303821, -0.902515064610368, -0.898163428162546, -0.893721976120377, - -0.889191152625361, -0.884571410756073, -0.879863212482849, - -0.875067028621594, -0.870183338786697, -0.865212631343072, - -0.86015540335732, -0.855012160548026, -0.849783417235186, - -0.844469696288772 + -0.889191152625361, -0.884571410756073, -0.879863212482849, + -0.875067028621594, -0.870183338786697, -0.865212631343072, + -0.86015540335732, -0.855012160548026, -0.849783417235186, + -0.844469696288772 }; diff --git a/libdap4/CMakeLists.txt b/libdap4/CMakeLists.txt index ce586a498f..0eb4e173cc 100644 --- a/libdap4/CMakeLists.txt +++ b/libdap4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(dap4_SOURCES d4crc32.c d4curlfunctions.c d4fix.c d4data.c d4file.c d4parser.c d4meta.c d4varx.c d4dump.c d4swap.c d4chunk.c d4printer.c d4read.c d4http.c d4util.c d4odom.c d4cvt.c d4debug.c ncd4dispatch.c ezxml_extra.c ezxml.c) add_library(dap4 OBJECT ${dap4_SOURCES}) @@ -29,4 +35,3 @@ ENDIF(BUILD_PARALLEL) FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.h) SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} dce.y CMakeLists.txt Makefile.am) ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") - diff --git a/libdap4/Makefile.am b/libdap4/Makefile.am index 3dd113090e..8a5690fed9 100644 --- a/libdap4/Makefile.am +++ b/libdap4/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This automake file generates the Makefile to libdap2. Whatever that # is! diff --git a/libdap4/d4bytes.c b/libdap4/d4bytes.c index 8a7ee3f773..149f02eb0e 100644 --- a/libdap4/d4bytes.c +++ b/libdap4/d4bytes.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include diff --git a/libdap4/d4bytes.h b/libdap4/d4bytes.h index 2ad1c610ef..302eea2dda 100644 --- a/libdap4/d4bytes.h +++ b/libdap4/d4bytes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef D4BYTES_H diff --git a/libdap4/d4chunk.c b/libdap4/d4chunk.c index c85b48b7b2..5c211722b3 100644 --- a/libdap4/d4chunk.c +++ b/libdap4/d4chunk.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4chunk.h b/libdap4/d4chunk.h index eecf500eff..97ae4d4d59 100644 --- a/libdap4/d4chunk.h +++ b/libdap4/d4chunk.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlflags.c b/libdap4/d4curlflags.c index 89e09aa10a..9cf6d4202c 100644 --- a/libdap4/d4curlflags.c +++ b/libdap4/d4curlflags.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlfunctions.c b/libdap4/d4curlfunctions.c index 7279d7289e..7185880789 100644 --- a/libdap4/d4curlfunctions.c +++ b/libdap4/d4curlfunctions.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlfunctions.h b/libdap4/d4curlfunctions.h index 52fe1b5d26..3f1d85c9bd 100644 --- a/libdap4/d4curlfunctions.h +++ b/libdap4/d4curlfunctions.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4cvt.c b/libdap4/d4cvt.c index 2b686110de..9e7666ecc4 100644 --- a/libdap4/d4cvt.c +++ b/libdap4/d4cvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap4/d4data.c b/libdap4/d4data.c index f737836044..51ea6e28b4 100644 --- a/libdap4/d4data.c +++ b/libdap4/d4data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4debug.c b/libdap4/d4debug.c index 8d11c76167..88e99a3e2f 100644 --- a/libdap4/d4debug.c +++ b/libdap4/d4debug.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap4/d4debug.h b/libdap4/d4debug.h index 4d4ff68d16..cbba56bead 100644 --- a/libdap4/d4debug.h +++ b/libdap4/d4debug.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef D4DEBUG_H diff --git a/libdap4/d4dump.c b/libdap4/d4dump.c index 0384fa9ec8..b2e189310d 100644 --- a/libdap4/d4dump.c +++ b/libdap4/d4dump.c @@ -1,5 +1,5 @@ -/* Copyright 2012, UCAR/Unidata. - See the LICENSE file for more information. +/* Copyright 2018, UCAR/Unidata. + See the COPYRIGHT file for more information. */ #include "d4includes.h" @@ -107,4 +107,3 @@ NCD4_dumpatomic(NCD4node* var, void* data) union ATOMICS* p = (union ATOMICS*)data; return p; } - diff --git a/libdap4/d4file.c b/libdap4/d4file.c index cbb69b1d4c..8efe4e1417 100644 --- a/libdap4/d4file.c +++ b/libdap4/d4file.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4fix.c b/libdap4/d4fix.c index e28d88b0ba..ac16366cf6 100644 --- a/libdap4/d4fix.c +++ b/libdap4/d4fix.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4http.c b/libdap4/d4http.c index 891541d4e2..1c1319f047 100644 --- a/libdap4/d4http.c +++ b/libdap4/d4http.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4http.h b/libdap4/d4http.h index dbd307a6ee..ec47fe9559 100644 --- a/libdap4/d4http.h +++ b/libdap4/d4http.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4includes.h b/libdap4/d4includes.h index 6979e78769..02ab0262fd 100644 --- a/libdap4/d4includes.h +++ b/libdap4/d4includes.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4mem.c b/libdap4/d4mem.c index c46b4bcaed..dda02b85e7 100644 --- a/libdap4/d4mem.c +++ b/libdap4/d4mem.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4meta.c b/libdap4/d4meta.c index 57e8ffd3ff..cb45d22391 100644 --- a/libdap4/d4meta.c +++ b/libdap4/d4meta.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4odom.c b/libdap4/d4odom.c index 419bb41f58..40ec4de945 100644 --- a/libdap4/d4odom.c +++ b/libdap4/d4odom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4odom.h b/libdap4/d4odom.h index 385ebc90a4..ae37997e19 100644 --- a/libdap4/d4odom.h +++ b/libdap4/d4odom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4parser.c b/libdap4/d4parser.c index 7c202f8732..d7cf36f252 100644 --- a/libdap4/d4parser.c +++ b/libdap4/d4parser.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4printer.c b/libdap4/d4printer.c index 778f11c456..88b1392d24 100644 --- a/libdap4/d4printer.c +++ b/libdap4/d4printer.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4read.c b/libdap4/d4read.c index 598c683cb4..b9a39070ed 100644 --- a/libdap4/d4read.c +++ b/libdap4/d4read.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "d4includes.h" #include "d4curlfunctions.h" #ifdef HAVE_FCNTL_H diff --git a/libdap4/d4read.h b/libdap4/d4read.h index a672e4babe..9816172cab 100644 --- a/libdap4/d4read.h +++ b/libdap4/d4read.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4swap.c b/libdap4/d4swap.c index 6a48d8fad5..3fc0aa58f3 100644 --- a/libdap4/d4swap.c +++ b/libdap4/d4swap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4util.c b/libdap4/d4util.c index be6e2305fe..0f2cf9023e 100644 --- a/libdap4/d4util.c +++ b/libdap4/d4util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4util.h b/libdap4/d4util.h index 00f39eb03b..cba660eeb2 100644 --- a/libdap4/d4util.h +++ b/libdap4/d4util.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4varx.c b/libdap4/d4varx.c index 4316b66bd4..ee7095ed3f 100644 --- a/libdap4/d4varx.c +++ b/libdap4/d4varx.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ezxml.c b/libdap4/ezxml.c index 59d76b4176..333211c826 100644 --- a/libdap4/ezxml.c +++ b/libdap4/ezxml.c @@ -94,7 +94,7 @@ ezxml_t ezxml_vget(ezxml_t xml, va_list ap) int idx = -1; if (name && *name) { - idx = va_arg(ap, int); + idx = va_arg(ap, int); xml = ezxml_child(xml, name); } return (idx < 0) ? xml : ezxml_vget(ezxml_idx(xml, idx), ap); @@ -136,7 +136,7 @@ ezxml_t ezxml_err(ezxml_root_t root, char *s, const char *err, ...) va_list ap; int line = 1; char *t, fmt[EZXML_ERRL]; - + for (t = root->s; t < s; t++) if (*t == '\n') line++; snprintf(fmt, EZXML_ERRL, "[error near line %d]: %s", line, err); @@ -164,7 +164,7 @@ char *ezxml_decode(char *s, char **ent, char t) if (*s == '\n') memmove(s, (s + 1), strlen(s)); } } - + for (s = r; ; ) { while (*s && *s != '&' && (*s != '%' || t != '%') && !isspace(*s)) s++; @@ -219,7 +219,7 @@ char *ezxml_decode(char *s, char **ent, char t) void ezxml_open_tag(ezxml_root_t root, char *name, char **attr) { ezxml_t xml = root->cur; - + if (xml->name) xml = ezxml_add_child(xml, name, strlen(xml->txt)); else xml->name = name; /* first open tag*/ @@ -318,7 +318,7 @@ short ezxml_internal_dtd(ezxml_root_t root, char *s, size_t len) { char q, *c, *t, *n = NULL, *v, **ent, **pe; int i, j; - + pe = memcpy(malloc(sizeof(EZXML_NIL)), EZXML_NIL, sizeof(EZXML_NIL)); for (s[len] = '\0'; s; ) { @@ -454,7 +454,7 @@ char *ezxml_str2utf8(char **s, size_t *len) void ezxml_free_attr(char **attr) { int i = 0; char *m; - + if (! attr || attr == EZXML_NIL) return; /* nothing to free*/ while (attr[i]) i += 2; /* find end of attribute list*/ m = attr[i + 1]; /* list of which names and values are malloced*/ @@ -477,7 +477,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) if (! len) return ezxml_err(root, NULL, "root tag missing"); root->u = ezxml_str2utf8(&s, &len); /* convert utf-16 to utf-8*/ root->e = (root->s = s) + len; /* record start and end of work area*/ - + e = s[len - 1]; /* save end char*/ s[len - 1] = '\0'; /* turn end char into null terminator*/ @@ -487,14 +487,14 @@ ezxml_t ezxml_parse_str(char *s, size_t len) for (; ; ) { attr = (char **)EZXML_NIL; d = ++s; - + if (isalpha(*s) || *s == '_' || *s == ':' || *s < '\0') { /* new tag*/ if (! root->cur) return ezxml_err(root, d, "markup outside of root element"); s += strcspn(s, EZXML_WS "/>"); while (isspace(*s)) *(s++) = '\0'; /* null terminate tag name*/ - + if (*s && *s != '/' && *s != '>') /* find tag in default attr list*/ for (i = 0; (a = root->attr[i]) && strcmp(a[0], d); i++); @@ -509,7 +509,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) attr[l] = s; /* set attribute name*/ s += strcspn(s, EZXML_WS "=/>"); - if (*s == '=' || isspace(*s)) { + if (*s == '=' || isspace(*s)) { *(s++) = '\0'; /* null terminate tag attribute name*/ q = *(s += strspn(s, EZXML_WS "=")); if (q == '"' || q == '\'') { /* attribute value*/ @@ -547,7 +547,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) } else { if (l) ezxml_free_attr(attr); - return ezxml_err(root, d, "missing >"); + return ezxml_err(root, d, "missing >"); } } else if (*s == '/') { /* close tag*/ @@ -567,7 +567,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) else return ezxml_err(root, d, "unclosed ') || (l && (*s != ']' || + for (l = 0; *s && ((! l && *s != '>') || (l && (*s != ']' || *(s + strspn(s + 1, EZXML_WS) + 1) != '>'))); l = (*s == '[') ? 1 : l) s += strcspn(s + 1, "[]>") + 1; if (! *s && e != '>') @@ -577,12 +577,12 @@ ezxml_t ezxml_parse_str(char *s, size_t len) } else if (*s == '?') { /* processing instructions*/ do { s = strchr(s, '?'); } while (s && *(++s) && *s != '>'); - if (! s || (! *s && e != '>')) + if (! s || (! *s && e != '>')) return ezxml_err(root, d, "unclosed *max) *dst = realloc(*dst, *max += EZXML_BUFSIZE); @@ -687,7 +687,7 @@ char *ezxml_toxml_r(ezxml_t xml, char **s, size_t *len, size_t *max, *s = (xml->child) ? ezxml_toxml_r(xml->child, s, len, max, 0, attr) /*child*/ : ezxml_ampencode(xml->txt, -1, s, len, max, 0); /*data*/ - + while (*len + strlen(xml->name) + 4 > *max) /* reallocate s*/ *s = realloc(*s, *max += EZXML_BUFSIZE); @@ -765,7 +765,7 @@ void ezxml_free(ezxml_t xml) for (j = 1; root->pi[i][j]; j++); free(root->pi[i][j + 1]); free(root->pi[i]); - } + } if (root->pi[0]) free(root->pi); /* free processing instructions*/ if (root->len == -1) free(root->m); /* malloced xml data*/ @@ -793,7 +793,7 @@ ezxml_t ezxml_new(const char *name) { static char *ent[] = { "lt;", "<", "gt;", ">", "quot;", """, "apos;", "'", "amp;", "&", NULL }; - ezxml_root_t root = (ezxml_root_t)memset(malloc(sizeof(struct ezxml_root)), + ezxml_root_t root = (ezxml_root_t)memset(malloc(sizeof(struct ezxml_root)), '\0', sizeof(struct ezxml_root)); root->xml.name = (char *)name; root->cur = &root->xml; @@ -948,7 +948,7 @@ ezxml_t ezxml_cut(ezxml_t xml) while (cur->next && cur->next != xml) cur = cur->next; if (cur->next) cur->next = cur->next->next; /* patch next list*/ - } + } } xml->ordered = xml->sibling = xml->next = NULL; return xml; diff --git a/libdap4/ezxml.h b/libdap4/ezxml.h index f5e235adba..64a32016f6 100644 --- a/libdap4/ezxml.h +++ b/libdap4/ezxml.h @@ -66,7 +66,7 @@ ezxml_t ezxml_parse_fd(int fd); /* a wrapper for ezxml_parse_fd() that accepts a file name*/ ezxml_t ezxml_parse_file(const char *file); - + /* Wrapper for ezxml_parse_str() that accepts a file stream. Reads the entire*/ /* stream into memory and then parses it. For xml files, use ezxml_parse_file()*/ /* or ezxml_parse_fd()*/ @@ -111,7 +111,7 @@ const char **ezxml_pi(ezxml_t xml, const char *target); /* frees the memory allocated for an ezxml structure*/ void ezxml_free(ezxml_t xml); - + /* returns parser error message or empty string if none*/ const char *ezxml_error(ezxml_t xml); diff --git a/libdap4/ezxml_extra.c b/libdap4/ezxml_extra.c index 3e58bd502f..954b189b5b 100644 --- a/libdap4/ezxml_extra.c +++ b/libdap4/ezxml_extra.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ diff --git a/libdap4/ncd4.h b/libdap4/ncd4.h index 5f682d4166..989f6ba171 100644 --- a/libdap4/ncd4.h +++ b/libdap4/ncd4.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4dispatch.c b/libdap4/ncd4dispatch.c index 97eb2290b3..a860382656 100644 --- a/libdap4/ncd4dispatch.c +++ b/libdap4/ncd4dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4dispatch.h b/libdap4/ncd4dispatch.h index 449b24eda7..dde3cf4ac0 100644 --- a/libdap4/ncd4dispatch.h +++ b/libdap4/ncd4dispatch.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4types.h b/libdap4/ncd4types.h index 44496234a2..9581ff6623 100644 --- a/libdap4/ncd4types.h +++ b/libdap4/ncd4types.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/CMakeLists.txt b/libdispatch/CMakeLists.txt index 9d274464c3..133121dc23 100644 --- a/libdispatch/CMakeLists.txt +++ b/libdispatch/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(libdispatch_SOURCES dparallel.c dcopy.c dfile.c ddim.c datt.c dattinq.c dattput.c dattget.c derror.c dvar.c dvarget.c dvarput.c dvarinq.c ddispatch.c nclog.c dstring.c dutf8.c dinternal.c doffsets.c ncuri.c nclist.c ncbytes.c nchashmap.c nctime.c nc.c nclistmgr.c utf8proc.h utf8proc.c dwinpath.c dutil.c drc.c dauth.c dreadonly.c dnotnc4.c dnotnc3.c crc32.c daux.c) IF(USE_NETCDF4) diff --git a/libdispatch/Makefile.am b/libdispatch/Makefile.am index 9633bda48a..613bf27e03 100644 --- a/libdispatch/Makefile.am +++ b/libdispatch/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This Makefile controls the building of the dispatch layer of the # netCDF library. The dispatch layer decides whether to call the diff --git a/libdispatch/datt.c b/libdispatch/datt.c index 9a9df359ac..d9896ed5e2 100644 --- a/libdispatch/datt.c +++ b/libdispatch/datt.c @@ -1,6 +1,6 @@ /** \file -Copyright 2010 University Corporation for Atmospheric -Research/Unidata. See \ref copyright file for more info. +Copyright 2018 University Corporation for Atmospheric +Research/Unidata. See \ref copyright file for more info. These functions read and write attributes. */ @@ -22,7 +22,7 @@ created, while the netCDF dataset is in define mode. Additional attributes may be added later by reentering define mode. A netCDF attribute has a netCDF variable to which it is assigned, a -name, a type, a length, and a sequence of one or more values. +name, a type, a length, and a sequence of one or more values. An attribute is designated by its variable ID and name. When an attribute name is not known, it may be designated by its variable ID @@ -50,7 +50,7 @@ Operations supported on attributes are: - Copy attribute from one netCDF variable to another. - Get name of attribute from its number. - Rename an attribute. -- Delete an attribute. +- Delete an attribute. */ /*! \{*/ /* All these functions are part of the above defgroup... */ @@ -69,16 +69,16 @@ new name is longer than the original name, the netCDF dataset must be in define mode. You cannot rename an attribute to have the same name as another attribute of the same variable. -\param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +\param ncid NetCDF or group ID, from a previous call to nc_open(), +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. -\param newname The new attribute \ref object_name. +\param newname The new attribute \ref object_name.

Example

@@ -90,8 +90,8 @@ dataset named foo.nc: #include ... int status; - int ncid; - int rh_id; + int ncid; + int rh_id; ... status = nc_open("foo.nc", NC_NOWRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -134,13 +134,13 @@ The function nc_del_att() deletes a netCDF attribute from an open netCDF dataset. The netCDF dataset must be in define mode. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute name. +\param name Attribute name.

Example

@@ -150,9 +150,9 @@ Units for a variable rh in an existing netCDF dataset named foo.nc: \code #include ... - int status; - int ncid; - int rh_id; + int status; + int ncid; + int rh_id; ... status = nc_open("foo.nc", NC_WRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -160,7 +160,7 @@ Units for a variable rh in an existing netCDF dataset named foo.nc: status = nc_inq_varid (ncid, "rh", &rh_id); if (status != NC_NOERR) handle_error(status); ... - status = nc_redef(ncid); + status = nc_redef(ncid); if (status != NC_NOERR) handle_error(status); status = nc_del_att(ncid, rh_id, "Units"); if (status != NC_NOERR) handle_error(status); diff --git a/libdispatch/dattget.c b/libdispatch/dattget.c index 969c7bd3da..13a9575592 100644 --- a/libdispatch/dattget.c +++ b/libdispatch/dattget.c @@ -3,7 +3,7 @@ Attribute functions These functions read and write attributes. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dattinq.c b/libdispatch/dattinq.c index e5acab0d0b..025d5c8b75 100644 --- a/libdispatch/dattinq.c +++ b/libdispatch/dattinq.c @@ -3,7 +3,7 @@ Attribute inquiry functions These functions find out about attributes. -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" @@ -20,7 +20,7 @@ Return information about a netCDF attribute. The function nc_inq_att returns the attribute's type and length. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL @@ -49,12 +49,12 @@ foo.nc: \code #include ... - int status; - int ncid; - int rh_id; - nc_type vr_type, t_type; - size_t vr_len, t_len; - + int status; + int ncid; + int rh_id; + nc_type vr_type, t_type; + size_t vr_len, t_len; + ... status = nc_open("foo.nc", NC_NOWRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -80,7 +80,7 @@ foo.nc: \author Glenn Davis, Ed Hartnett, Dennis Heimbigner */ int -nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, +nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, size_t *lenp) { NC* ncp; @@ -94,13 +94,13 @@ nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, Find an attribute ID. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param idp Pointer to location for returned attribute number that specifies which attribute this is for this variable (or which global @@ -171,7 +171,7 @@ nc_inq_attid(int ncid, int varid, const char *name, int *idp) Find the name of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL @@ -183,7 +183,7 @@ number of attributes for the variable, as returned from a call to nc_inq_varnatts(). \param name Pointer to the location for the returned attribute \ref -object_name. +object_name. \section nc_inq_attname_example Example @@ -263,7 +263,7 @@ nc_inq_attname(int ncid, int varid, int attnum, char *name) Find number of global or group attributes. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param nattsp Pointer where number of global or group attributes will be @@ -271,7 +271,7 @@ written. \ref ignored_if_null. \section nc_inq_natts_example Example -Here is an example from +Here is an example from \code @@ -311,13 +311,13 @@ nc_inq_natts(int ncid, int *nattsp) Find the type of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global or group attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param xtypep Pointer to location for returned attribute \ref data_type. @@ -368,17 +368,17 @@ nc_inq_atttype(int ncid, int varid, const char *name, nc_type *xtypep) Find the length of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global or group attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param lenp Pointer to location for returned number of values currently stored in the attribute. Before using the value as a C -string, make sure it is null-terminated. \ref ignored_if_null. +string, make sure it is null-terminated. \ref ignored_if_null. \section nc_inq_attlen_example Example diff --git a/libdispatch/dattput.c b/libdispatch/dattput.c index dcc5f2e6cd..1a43b52321 100644 --- a/libdispatch/dattput.c +++ b/libdispatch/dattput.c @@ -3,7 +3,7 @@ Functions to write attributes. These functions read and write attributes. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dauth.c b/libdispatch/dauth.c index 914ad6ab40..0d1085901d 100644 --- a/libdispatch/dauth.c +++ b/libdispatch/dauth.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ diff --git a/libdispatch/daux.c b/libdispatch/daux.c index 1f7b40ba51..b57d4f6a17 100644 --- a/libdispatch/daux.c +++ b/libdispatch/daux.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -31,7 +31,7 @@ struct NCAUX_FIELD { char* name; nc_type fieldtype; size_t ndims; - int dimsizes[NC_MAX_VAR_DIMS]; + int dimsizes[NC_MAX_VAR_DIMS]; size_t size; size_t offset; size_t alignment; @@ -96,7 +96,7 @@ ncaux_reclaim_data(int ncid, int xtype, void* memory, size_t count) size_t typesize = 0; size_t i; Position offset; - + if(ncid < 0 || xtype < 0 || (memory == NULL && count > 0) || xtype == NC_NAT) @@ -110,7 +110,7 @@ ncaux_reclaim_data(int ncid, int xtype, void* memory, size_t count) if((stat=reclaim_datar(ncid,xtype,typesize,&offset))) /* reclaim one instance */ break; } - + done: return stat; } @@ -120,7 +120,7 @@ static int reclaim_datar(int ncid, int xtype, size_t typesize, Position* offset) { int stat = NC_NOERR; - + switch (xtype) { case NC_CHAR: case NC_BYTE: case NC_UBYTE: case NC_SHORT: case NC_USHORT: @@ -147,7 +147,7 @@ reclaim_datar(int ncid, int xtype, size_t typesize, Position* offset) } return stat; } - + #ifdef USE_NETCDF4 static ptrdiff_t @@ -162,7 +162,7 @@ static int reclaim_usertype(int ncid, int xtype, Position* offset) { int stat = NC_NOERR; - size_t size; + size_t size; nc_type basetype; size_t nfields; int klass; @@ -250,7 +250,7 @@ reclaim_compound(int ncid, int xtype, size_t cmpdsize, size_t nfields, Position* for(i=0;ioffset = saveoffset; @@ -278,13 +278,13 @@ ncaux_begin_compound(int ncid, const char *name, int alignmode, void** tagp) struct NCAUX_CMPD* cmpd = NULL; if(tagp) *tagp = NULL; - + cmpd = (struct NCAUX_CMPD*)calloc(1,sizeof(struct NCAUX_CMPD)); if(cmpd == NULL) {status = NC_ENOMEM; goto fail;} cmpd->ncid = ncid; cmpd->mode = alignmode; cmpd->nfields = 0; - cmpd->name = strdup(name); + cmpd->name = strdup(name); if(cmpd->name == NULL) {status = NC_ENOMEM; goto fail;} if(tagp) { @@ -350,7 +350,7 @@ ncaux_add_field(void* tag, const char *name, nc_type field_type, field = &cmpd->fields[cmpd->nfields+1]; field->name = strdup(name); field->fieldtype = field_type; - if(field->name == NULL) {status = NC_ENOMEM; goto done;} + if(field->name == NULL) {status = NC_ENOMEM; goto done;} field->ndims = (size_t)ndims; memcpy(field->dimsizes,dimsizes,sizeof(int)*field->ndims); cmpd->nfields++; @@ -458,7 +458,7 @@ findfirstfield(int ncid, nc_type xtype) int status = NC_NOERR; nc_type fieldtype = xtype; if(xtype <= NC_MAX_ATOMIC_TYPE) goto done; - + status = nc_inq_compound_fieldtype(ncid, xtype, 0, &fieldtype); if(status != NC_NOERR) goto done; fieldtype = findfirstfield(ncid,fieldtype); @@ -494,7 +494,7 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) /* Assign the sizes for the fields */ for(i=0;infields;i++) { - struct NCAUX_FIELD* field = &cmpd->fields[i]; + struct NCAUX_FIELD* field = &cmpd->fields[i]; status = nc_inq_type(cmpd->ncid,field->fieldtype,NULL,&field->size); if(status != NC_NOERR) goto done; totaldimsize = dimproduct(field->ndims,field->dimsizes); @@ -513,7 +513,7 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) break; case NC_ENUM: field->alignment = ncaux_type_alignment(firsttype,cmpd->ncid); - break; + break; case NC_VLEN: /*fall thru*/ case NC_COMPOUND: field->alignment = ncaux_type_alignment(firsttype,cmpd->ncid); @@ -535,5 +535,3 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) } #endif /*USE_NETCDF4*/ - - diff --git a/libdispatch/dcompound.c b/libdispatch/dcompound.c index 902f0a9e64..2399cc7418 100644 --- a/libdispatch/dcompound.c +++ b/libdispatch/dcompound.c @@ -1,7 +1,7 @@ /*! \file Functions for Compound Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" @@ -21,9 +21,9 @@ nc_insert_compound(). Call nc_insert_compound() once for each field you wish to insert into the compound type. \param ncid \ref ncid -\param size The size, in bytes, of the compound type. +\param size The size, in bytes, of the compound type. \param name \ref object_name of the created type. -\param typeidp The type ID of the new type is copied here. +\param typeidp The type ID of the new type is copied here. \returns ::NC_NOERR No error. \returns ::NC_EBADID Bad \ref ncid. @@ -35,7 +35,7 @@ you wish to insert into the compound type. \returns ::NC_ENOTNC4 This file was created with the strict netcdf-3 flag, therefore netcdf-4 operations are not allowed. (see nc_open). \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. \section nc_def_compound_example Example @@ -46,7 +46,7 @@ int i1; int i2; }; struct s1 data[DIM_LEN], data_in[DIM_LEN]; - + if (nc_create(FILE_NAME, NC_NETCDF4, &ncid)) ERR; if (nc_def_compound(ncid, sizeof(struct s1), SVC_REC, &typeid)) ERR; if (nc_insert_compound(ncid, typeid, BATTLES_WITH_KLINGONS, @@ -60,7 +60,7 @@ if (nc_close(ncid)) ERR; \endcode */ int -nc_def_compound(int ncid, size_t size, const char *name, +nc_def_compound(int ncid, size_t size, const char *name, nc_type *typeidp) { NC* ncp; @@ -82,7 +82,7 @@ nc_def_compound(), or nc_inq_var(). \param offset Offset in byte from the beginning of the compound type for this field. -\param field_typeid The type of the field to be inserted. +\param field_typeid The type of the field to be inserted. \returns ::NC_NOERR No error. \returns ::NC_EBADID Bad \ref ncid. @@ -93,10 +93,10 @@ for this field. \returns ::NC_ENOTNC4 Not an netCDF-4 file, or classic model enabled. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. */ int -nc_insert_compound(int ncid, nc_type xtype, const char *name, +nc_insert_compound(int ncid, nc_type xtype, const char *name, size_t offset, nc_type field_typeid) { NC *ncp; @@ -119,7 +119,7 @@ nc_def_compound(), or nc_inq_var(). \param offset Offset in byte from the beginning of the compound type for this field. -\param field_typeid The type of the field to be inserted. +\param field_typeid The type of the field to be inserted. \param ndims Number of dimensions in array. @@ -135,11 +135,11 @@ for this field. \returns ::NC_ENOTNC4 Not an netCDF-4 file, or classic model enabled. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. */ int -nc_insert_array_compound(int ncid, nc_type xtype, const char *name, - size_t offset, nc_type field_typeid, +nc_insert_array_compound(int ncid, nc_type xtype, const char *name, + size_t offset, nc_type field_typeid, int ndims, const int *dim_sizes) { NC* ncp; @@ -172,7 +172,7 @@ placed here. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound(int ncid, nc_type xtype, char *name, +nc_inq_compound(int ncid, nc_type xtype, char *name, size_t *sizep, size_t *nfieldsp) { int class = 0; @@ -206,7 +206,7 @@ nc_inq_compound_name(int ncid, nc_type xtype, char *name) } /** \ingroup user_types -Learn the size of a compound type. +Learn the size of a compound type. \param ncid \ref ncid @@ -229,7 +229,7 @@ nc_inq_compound_size(int ncid, nc_type xtype, size_t *sizep) } /** \ingroup user_types -Learn the number of fields in a compound type. +Learn the number of fields in a compound type. \param ncid \ref ncid @@ -252,7 +252,7 @@ nc_inq_compound_nfields(int ncid, nc_type xtype, size_t *nfieldsp) } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -284,9 +284,9 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, - char *name, size_t *offsetp, - nc_type *field_typeidp, int *ndimsp, +nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, + char *name, size_t *offsetp, + nc_type *field_typeidp, int *ndimsp, int *dim_sizesp) { NC* ncp; @@ -298,7 +298,7 @@ nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -318,7 +318,7 @@ ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, char *name) { NC* ncp; @@ -330,7 +330,7 @@ nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -350,7 +350,7 @@ ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, size_t *offsetp) { NC* ncp; @@ -360,7 +360,7 @@ nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -380,7 +380,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, nc_type *field_typeidp) { NC* ncp; @@ -390,7 +390,7 @@ nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -410,7 +410,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, int *ndimsp) { NC* ncp; @@ -420,7 +420,7 @@ nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -440,7 +440,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, int *dim_sizesp) { NC *ncp; @@ -472,7 +472,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, +nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, int *fieldidp) { NC* ncp; @@ -481,9 +481,3 @@ nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, return ncp->dispatch->inq_compound_fieldindex(ncid,xtype,name,fieldidp); } /*! \} */ /* End of named group ...*/ - - - - - - diff --git a/libdispatch/dcopy.c b/libdispatch/dcopy.c index 0c73c40bd1..8ef13cb485 100644 --- a/libdispatch/dcopy.c +++ b/libdispatch/dcopy.c @@ -1,6 +1,6 @@ /** * @file - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This file has the var and att copy functions. @@ -13,7 +13,7 @@ #ifdef USE_NETCDF4 /** * @internal Compare two netcdf types for equality. Must have the - * ncids as well, to find user-defined types. + * ncids as well, to find user-defined types. * * @param ncid1 File ID. * @param typeid1 Type ID. @@ -152,7 +152,7 @@ NC_compare_nc_types(int ncid1, int typeid1, int ncid2, int typeid2, /** * @internal Recursively hunt for a netCDF type id. (Code from - * nc4internal.c); Return matching typeid or 0 if not found. + * nc4internal.c); Return matching typeid or 0 if not found. * * @param ncid1 File ID. * @param tid1 Type ID. @@ -226,7 +226,7 @@ NC_rec_find_nc_type(int ncid1, nc_type tid1, int ncid2, nc_type* tid2) /** * @internal Given a type in one file, find its equal (if any) in - * another file. It sounds so simple, but it's a real pain! + * another file. It sounds so simple, but it's a real pain! * * @param ncid1 File ID. * @param xtype1 Type ID. diff --git a/libdispatch/ddim.c b/libdispatch/ddim.c index 93e7364062..4abcc4e382 100644 --- a/libdispatch/ddim.c +++ b/libdispatch/ddim.c @@ -3,7 +3,7 @@ Dimension functions These functions define and inquire about dimensions. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/ddispatch.c b/libdispatch/ddispatch.c index 1da5846ca7..06359bc12a 100644 --- a/libdispatch/ddispatch.c +++ b/libdispatch/ddispatch.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ @@ -212,7 +212,7 @@ NC_urlmodel(const char* path, int mode, char** newurl) found = 1; break; } - } + } if(found) { model = protolist->model; /* Substitute the protocol in any case */ @@ -231,7 +231,7 @@ NC_urlmodel(const char* path, int mode, char** newurl) model = NC_FORMATX_DAP2; else if((match=ncurilookup(url,"dap4")) != NULL || strcmp(proto,"dap4") == 0) model = NC_FORMATX_DAP4; - else + else model = 0; /* Still don't know */ } if(model == 0) {/* Last resort: use the mode */ diff --git a/libdispatch/denum.c b/libdispatch/denum.c index dc8a2b057f..5e482bdb2c 100644 --- a/libdispatch/denum.c +++ b/libdispatch/denum.c @@ -1,7 +1,7 @@ /*! \file Functions for Enum Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/derror.c b/libdispatch/derror.c index 6a2b83fc0a..b6d066ec1c 100644 --- a/libdispatch/derror.c +++ b/libdispatch/derror.c @@ -3,7 +3,7 @@ Error messages and library version. These functions return the library version, and error messages. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dfile.c b/libdispatch/dfile.c index 0447cc110b..ba4a464f70 100644 --- a/libdispatch/dfile.c +++ b/libdispatch/dfile.c @@ -6,7 +6,7 @@ * These functions end up calling functions in one of the dispatch * layers (netCDF-4, dap server, etc). * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. */ @@ -2358,7 +2358,7 @@ NC_open(const char *path0, int omode, int basepe, size_t *chunksizehintp, dispatcher = NCP_dispatch_table; break; #endif -#if defined(USE_NETCDF4) +#if defined(USE_HDF5) case NC_FORMATX_NC4: dispatcher = HDF5_dispatch_table; break; diff --git a/libdispatch/dfilter.c b/libdispatch/dfilter.c index 8c4360722b..e48eddfcb8 100644 --- a/libdispatch/dfilter.c +++ b/libdispatch/dfilter.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/dgroup.c b/libdispatch/dgroup.c index 8b1fe4b443..c6f553680e 100644 --- a/libdispatch/dgroup.c +++ b/libdispatch/dgroup.c @@ -1,7 +1,7 @@ /*! \file Functions for netCDF-4 features. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dinternal.c b/libdispatch/dinternal.c index 4783042dce..c94e2f3ccc 100644 --- a/libdispatch/dinternal.c +++ b/libdispatch/dinternal.c @@ -1,7 +1,7 @@ /*! \internal Public functions from dispatch table. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/doffsets.c b/libdispatch/doffsets.c index 0d438c0c8a..e366a2d442 100644 --- a/libdispatch/doffsets.c +++ b/libdispatch/doffsets.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/offsets.c,v 1.1 2009/09/25 18:22:40 dmh Exp $ *********************************************************************/ diff --git a/libdispatch/dopaque.c b/libdispatch/dopaque.c index b9065afe52..3a77e79423 100644 --- a/libdispatch/dopaque.c +++ b/libdispatch/dopaque.c @@ -1,7 +1,7 @@ /*! \file Functions for Opaque Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dparallel.c b/libdispatch/dparallel.c index 0f3c3a1f4f..a62351435f 100644 --- a/libdispatch/dparallel.c +++ b/libdispatch/dparallel.c @@ -1,4 +1,4 @@ -/* Copyright 2010 University Corporation for Atmospheric +/* Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ /** * @file diff --git a/libdispatch/drc.c b/libdispatch/drc.c index 2f7c5bf25b..2ad784472d 100644 --- a/libdispatch/drc.c +++ b/libdispatch/drc.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #include "config.h" diff --git a/libdispatch/dstring.c b/libdispatch/dstring.c index 2a3cece0d5..832e4d8c44 100644 --- a/libdispatch/dstring.c +++ b/libdispatch/dstring.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: string.c,v 1.76 2010/05/26 21:43:33 dmh Exp $ */ diff --git a/libdispatch/dtype.c b/libdispatch/dtype.c index 82fafb475d..3de208c1e0 100644 --- a/libdispatch/dtype.c +++ b/libdispatch/dtype.c @@ -1,7 +1,7 @@ /*! \file Functions for User-Defined Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dutf8.c b/libdispatch/dutf8.c index c7550aa238..f8e0d6b9a0 100644 --- a/libdispatch/dutf8.c +++ b/libdispatch/dutf8.c @@ -1,5 +1,5 @@ /* - * Copyright 2017, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/dutil.c b/libdispatch/dutil.c index aa52bc7f6a..f79575ef3b 100644 --- a/libdispatch/dutil.c +++ b/libdispatch/dutil.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/dv2i.c b/libdispatch/dv2i.c index c7c05a96d2..98b9a6cd69 100644 --- a/libdispatch/dv2i.c +++ b/libdispatch/dv2i.c @@ -1,7 +1,7 @@ /** \file The V2 API Functions. -Copyright 1996, University Corporation for Atmospheric Research +Copyright 2018, University Corporation for Atmospheric Research See \ref copyright file for copying and redistribution conditions. */ diff --git a/libdispatch/dvar.c b/libdispatch/dvar.c index 655667285e..50028ac786 100644 --- a/libdispatch/dvar.c +++ b/libdispatch/dvar.c @@ -1102,7 +1102,7 @@ Warning: this function is only defined if the type of the variable is an atomic integer or float type. This function may only be called after the variable is defined, but -before nc_enddef is called. +before nc_enddef is called. @param[in] ncid NetCDF ID, from a previous call to nc_open or nc_create. diff --git a/libdispatch/dvarget.c b/libdispatch/dvarget.c index 8ccf8909d7..0a18108092 100644 --- a/libdispatch/dvarget.c +++ b/libdispatch/dvarget.c @@ -1,7 +1,7 @@ /*! \file Functions for getting data from variables. -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ diff --git a/libdispatch/dvarput.c b/libdispatch/dvarput.c index 86c09e54bc..5d43b59213 100644 --- a/libdispatch/dvarput.c +++ b/libdispatch/dvarput.c @@ -1,7 +1,7 @@ /*! \file dvarput.c Functions for writing data to variables. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dvlen.c b/libdispatch/dvlen.c index d14ad6972e..5236f28cc5 100644 --- a/libdispatch/dvlen.c +++ b/libdispatch/dvlen.c @@ -1,7 +1,7 @@ /*! \file Functions for VLEN Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dwinpath.c b/libdispatch/dwinpath.c index b83ef543ce..3bf010fc67 100644 --- a/libdispatch/dwinpath.c +++ b/libdispatch/dwinpath.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/json.c b/libdispatch/json.c index 4196885d1f..2fe194550e 100644 --- a/libdispatch/json.c +++ b/libdispatch/json.c @@ -1,11 +1,11 @@ -/* Copyright 2016, UCAR/Unidata. - See the LICENSE file for more information. +/* Copyright 2018, UCAR/Unidata. + See the COPYRIGHT file for more information. */ #ifndef NCJSON_INC #define NCJSON_INC 1 -#define NCJ_DICT 1 +#define NCJ_DICT 1 #define NCJ_LIST 2 #define NCJ_WORD 3 #define NCJ_NUMBER 4 @@ -77,7 +77,7 @@ NCjsonparse(char* text, NCjson** treep) static int NCJyytext(NCJparser* parser, char* start, ptrdiff_t pdlen) { - size_t len = (size_t)pdlen; + size_t len = (size_t)pdlen; if(parser->yytext == NULL) parser->yytext = (char*)malloc(len+1); else @@ -133,13 +133,13 @@ NCJlex(NCJparser* parser) for(;;) { c = *parser->pos++; if(c == NCJ_QUOTE || c == NCJ_NUL) break; - last++; + last++; } if(c == NCJ_NUL) { parser->errno = NCJ_ESTRING; token = NCJ_ERR; goto done; - } + } if(!NCJyytext(parser,start,(next - start))) goto done; token = NCJ_STRING; } else { /* single char token */ @@ -147,7 +147,7 @@ NCJlex(NCJparser* parser) } done: if(parser->errno) token = NCJ_ERR; - return token; + return token; } /* Simple recursive descent */ @@ -174,7 +174,7 @@ NCJparseR(NCJparser* parser, NCjson** listp) default: parser->errno = NCJ_EBADTOKEN; } - return NULL; + return NULL; } static NCjson* diff --git a/libdispatch/nc.c b/libdispatch/nc.c index 9683c79257..f58476afdd 100644 --- a/libdispatch/nc.c +++ b/libdispatch/nc.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ @@ -91,7 +91,7 @@ nc_set_default_format(int format, int *old_formatp) if (format == NC_FORMAT_CDF5) return NC_ENOTBUILT; #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 if (format != NC_FORMAT_CLASSIC && format != NC_FORMAT_64BIT_OFFSET && format != NC_FORMAT_NETCDF4 && format != NC_FORMAT_NETCDF4_CLASSIC && format != NC_FORMAT_CDF5) diff --git a/libdispatch/ncbytes.c b/libdispatch/ncbytes.c index 7d0aa904c3..f5a731ae5b 100644 --- a/libdispatch/ncbytes.c +++ b/libdispatch/ncbytes.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include diff --git a/libdispatch/nchashmap.c b/libdispatch/nchashmap.c index ff45dcfb40..0a6d8a1cec 100644 --- a/libdispatch/nchashmap.c +++ b/libdispatch/nchashmap.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ diff --git a/libdispatch/nclist.c b/libdispatch/nclist.c index 679c1b1746..c901c78f6f 100644 --- a/libdispatch/nclist.c +++ b/libdispatch/nclist.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include #include @@ -113,7 +113,7 @@ nclistset(NClist* l, size_t index, void* elem) if(l == NULL) return FALSE; if(!nclistsetalloc(l,index+1)) return FALSE; if(index >= l->length) { - if(!nclistsetlength(l,index+1)) return FALSE; + if(!nclistsetlength(l,index+1)) return FALSE; } l->content[index] = elem; return TRUE; @@ -147,7 +147,7 @@ void* nclistpop(NClist* l) { if(l == NULL || l->length == 0) return NULL; - l->length--; + l->length--; return l->content[l->length]; } @@ -168,7 +168,7 @@ nclistremove(NClist* l, size_t i) elem = l->content[i]; for(i+=1;icontent[i-1] = l->content[i]; l->length--; - return elem; + return elem; } /* Duplicate and return the content (null terminate) */ @@ -212,7 +212,7 @@ nclistelemremove(NClist* l, void* elem) } -/* Extends nclist to include a unique operator +/* Extends nclist to include a unique operator which remove duplicate values; NULL values removed return value is always 1. */ @@ -229,7 +229,7 @@ nclistunique(NClist* l) for(j=i+1;jpath,path)==0) { f = nc_filelist[i]; break; - } + } } } return f; @@ -126,4 +126,3 @@ iterate_NCList(int index, NC** ncp) if(ncp) *ncp = nc_filelist[index]; return NC_NOERR; } - diff --git a/libdispatch/nclog.c b/libdispatch/nclog.c index f43d23dff9..4e0adbfd83 100644 --- a/libdispatch/nclog.c +++ b/libdispatch/nclog.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/libdispatch/nctime.c b/libdispatch/nctime.c index 07c9b17087..aed5ac9842 100644 --- a/libdispatch/nctime.c +++ b/libdispatch/nctime.c @@ -1,10 +1,10 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.c,v 1.9 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ -/* +/* * This code was extracted with permission from the CDMS time * conversion and arithmetic routines developed by Bob Drach, Lawrence * Livermore National Laboratory as part of the cdtime library. Russ @@ -58,7 +58,7 @@ static void cdError(char *fmt, ...) { va_list args; - + cuErrorOccurred = 1; if(cuErrOpts & CU_VERBOSE){ va_start(args,fmt); @@ -84,11 +84,11 @@ static int days_sum[12] = {0,31,59,90,120,151,181,212,243,273,304,334}; * date->year (long) (year since 0 BC) * date->timeType (CdTimetype) (time type) * date->baseYear base year for relative times - * Output: - * date->month (short) (month in year) + * Output: + * date->month (short) (month in year) * date->day (short) (day in month) * - * + * * Derived from NRL NEONS V3.6. */ @@ -131,14 +131,14 @@ CdMonthDay(int *doy, CdTime *date) } /* Compute day-of-year from year, month and day - * + * * Input: * date->year (long) (year since 0 BC) * date->month (short) (month in year) * date->day (short) (day in month) * date->baseYear base year for relative times * Output: doy (int) (day-of-year) - * + * * Derived from NRL NEONS V3.6 */ @@ -152,7 +152,7 @@ CdDayOfYear(CdTime *date, int *doy) month = date->month; if (month < 1 || month > 12) { cdError( "Day-of-year error; month: %d\n", month); - month = 1; + month = 1; } if(!(date->timeType & CdChronCal)) /* Ignore year for Clim calendar */ @@ -173,14 +173,14 @@ CdDayOfYear(CdTime *date, int *doy) /* Convert epochal time (hours since 00 jan 1, 1970) * to human time (structured) - * - * Input: + * + * Input: * etime = epochal time representation * timeType = time type (e.g., CdChron, CdClim, etc.) as defined in cdms.h * baseYear = base real, used for relative time types only - * + * * Output: htime = human (structured) time representation - * + * * Derived from NRL Neons V3.6 */ void @@ -404,7 +404,7 @@ cdDiffGregorian(cdCompTime ca, cdCompTime cb){ /* Return -1, 0, 1 as ca is less than, equal to, */ /* or greater than cb, respectively. */ -static int +static int cdCompCompare(cdCompTime ca, cdCompTime cb){ int test; @@ -469,7 +469,7 @@ CdDivDelTime(double begEtm, double endEtm, CdDeltaTime delTime, CdTimeType timeT long delMonths, range; CdTime bhtime, ehtime; int hoursInYear; - + extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime); switch(delTime.units){ @@ -610,11 +610,11 @@ cdToOldTimetype(cdCalenType newtype, CdTimeType* oldtype) } /* Convert human time to epochal time (hours since 00 jan 1, 1970) - * + * * Input: htime = human time representation - * + * * Output: etime = epochal time representation - * + * * Derived from NRL Neons V3.6 */ void @@ -628,7 +628,7 @@ Cdh2e(CdTime *htime, double *etime) int daysInYear; /* days in non-leap year */ CdDayOfYear(htime,&doy); - + day_cnt = 0; baseYear = ((htime->timeType) & CdBase1970) ? 1970 : htime->baseYear; @@ -641,7 +641,7 @@ Cdh2e(CdTime *htime, double *etime) daysInLeapYear = ((htime->timeType) & Cd365) ? 366 : 360; daysInYear = ((htime->timeType) & Cd365) ? 365 : 360; } - + if (year > baseYear) { for (ytemp = year - 1; ytemp >= baseYear; ytemp--) { day_cnt += ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear; @@ -650,7 +650,7 @@ Cdh2e(CdTime *htime, double *etime) for (ytemp = year; ytemp < baseYear; ytemp++) { day_cnt -= ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear; } - } + } *etime = (double) (day_cnt + doy - 1) * 24. + htime->hour; return; } @@ -687,7 +687,7 @@ cdChar2Comp(cdCalenType timetype, char* chartime, cdCompTime* comptime) comptime->month = CD_NULL_MONTH; comptime->day = CD_NULL_DAY; comptime->hour = CD_NULL_HOUR; - + if(timetype & cdStandardCal){ nconv = sscanf(chartime,"%ld-%hd-%hd %d:%d:%lf",&year,&month,&day,&ihr,&imin,&sec); if(nconv==EOF || nconv==0){ @@ -787,7 +787,7 @@ cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* re cdUnitTime unit; double base_etm, etm, delta; long ndel, hoursInYear; - + /* Parse the relunits */ if(cdParseRelunits(timetype, relunits, &unit, &base_comptime)) return; @@ -807,7 +807,7 @@ cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* re default: break; } } - + /* Convert basetime to epochal */ humantime.year = base_comptime.year; humantime.month = base_comptime.month; @@ -1071,7 +1071,7 @@ cdRel2Comp(cdCalenType timetype, char* relunits, double reltime, cdCompTime* com /* Convert back to human, then comptime. */ else if(baseunits == cdHour){ Cde2h(base_etm+delta, old_timetype, 1970, &humantime); - + } comptime->year = humantime.year; comptime->month = humantime.month; @@ -1091,7 +1091,7 @@ cdComp2Iso(cdCalenType timetype, int separator, cdCompTime comptime, char* time) if(cdValidateTime(timetype,comptime)) return; - + ihr = (int)comptime.hour; dtmp = 60.0 * (comptime.hour - (double)ihr); imin = (int)dtmp; diff --git a/libdispatch/ncuri.c b/libdispatch/ncuri.c index 7e13abdba1..03a7419654 100644 --- a/libdispatch/ncuri.c +++ b/libdispatch/ncuri.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/libdispatch/netcdf.m4 b/libdispatch/netcdf.m4 index f57742b084..1a58df0278 100644 --- a/libdispatch/netcdf.m4 +++ b/libdispatch/netcdf.m4 @@ -1,12 +1,12 @@ /* - Copyright 2010 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. This file defines most of the netcdf API in terms of the dispatch functions along with a few functions that are overlays over the dispatch functions. - "$Id: netcdf.m4,v 1.16 2010/06/01 15:34:50 ed Exp $" + "$Id: netcdf.m4,v 1.16 2010/06/01 15:34:50 ed Exp $" */ #include "ncdispatch.h" @@ -588,4 +588,3 @@ NC_PUT_ATT(ulonglong,unsigned long long) #ifdef USE_NETCDF4 /*NC_PUT_ATT(string,char*) defined separately */ #endif /*USE_NETCDF4*/ - diff --git a/libdispatch/stubdef.c b/libdispatch/stubdef.c index 519ec4d70b..7db2c71935 100644 --- a/libdispatch/stubdef.c +++ b/libdispatch/stubdef.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/test_ncuri.c b/libdispatch/test_ncuri.c index 957b41ad0e..7d23af3ed4 100644 --- a/libdispatch/test_ncuri.c +++ b/libdispatch/test_ncuri.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/test_pathcvt.c b/libdispatch/test_pathcvt.c index 7b93074730..1d3f12c5af 100644 --- a/libdispatch/test_pathcvt.c +++ b/libdispatch/test_pathcvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -50,7 +50,7 @@ main(int argc, char** argv) } #ifdef VERBOSE fprintf(stderr,"NCpathcvt:: input: |%s| actual=|%s|\n",test->path,cvt); -#endif +#endif free(cvt); } diff --git a/libdispatch/u/utf8proc.c b/libdispatch/u/utf8proc.c deleted file mode 100644 index c14bbe13fc..0000000000 --- a/libdispatch/u/utf8proc.c +++ /dev/null @@ -1,755 +0,0 @@ -/* -*- mode: c; c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil -*- */ -/* - * Copyright (c) 2015 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. - * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* - * This library contains derived data from a modified version of the - * Unicode data files. - * - * The original data files are available at - * http://www.unicode.org/Public/UNIDATA/ - * - * Please notice the copyright statement in the file "utf8proc_data.c". - */ - - -/* - * File name: utf8proc.c - * - * Description: - * Implementation of libutf8proc. - */ - - -#include "utf8proc.h" -#include "utf8proc_data.c" - - -UTF8PROC_DLLEXPORT const utf8proc_int8_t utf8proc_utf8class[256] = { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }; - -#define UTF8PROC_HANGUL_SBASE 0xAC00 -#define UTF8PROC_HANGUL_LBASE 0x1100 -#define UTF8PROC_HANGUL_VBASE 0x1161 -#define UTF8PROC_HANGUL_TBASE 0x11A7 -#define UTF8PROC_HANGUL_LCOUNT 19 -#define UTF8PROC_HANGUL_VCOUNT 21 -#define UTF8PROC_HANGUL_TCOUNT 28 -#define UTF8PROC_HANGUL_NCOUNT 588 -#define UTF8PROC_HANGUL_SCOUNT 11172 -/* END is exclusive */ -#define UTF8PROC_HANGUL_L_START 0x1100 -#define UTF8PROC_HANGUL_L_END 0x115A -#define UTF8PROC_HANGUL_L_FILLER 0x115F -#define UTF8PROC_HANGUL_V_START 0x1160 -#define UTF8PROC_HANGUL_V_END 0x11A3 -#define UTF8PROC_HANGUL_T_START 0x11A8 -#define UTF8PROC_HANGUL_T_END 0x11FA -#define UTF8PROC_HANGUL_S_START 0xAC00 -#define UTF8PROC_HANGUL_S_END 0xD7A4 - -/* Should follow semantic-versioning rules (semver.org) based on API - compatibility. (Note that the shared-library version number will - be different, being based on ABI compatibility.): */ -#define STRINGIZEx(x) #x -#define STRINGIZE(x) STRINGIZEx(x) -UTF8PROC_DLLEXPORT const char *utf8proc_version(void) { - return STRINGIZE(UTF8PROC_VERSION_MAJOR) "." STRINGIZE(UTF8PROC_VERSION_MINOR) "." STRINGIZE(UTF8PROC_VERSION_PATCH) ""; -} - -UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode) { - switch (errcode) { - case UTF8PROC_ERROR_NOMEM: - return "Memory for processing UTF-8 data could not be allocated."; - case UTF8PROC_ERROR_OVERFLOW: - return "UTF-8 string is too long to be processed."; - case UTF8PROC_ERROR_INVALIDUTF8: - return "Invalid UTF-8 string"; - case UTF8PROC_ERROR_NOTASSIGNED: - return "Unassigned Unicode code point found in UTF-8 string."; - case UTF8PROC_ERROR_INVALIDOPTS: - return "Invalid options for UTF-8 processing chosen."; - default: - return "An unknown error occurred while processing UTF-8 data."; - } -} - -#define utf_cont(ch) (((ch) & 0xc0) == 0x80) -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *dst -) { - utf8proc_uint32_t uc; - const utf8proc_uint8_t *end; - - *dst = -1; - if (!strlen) return 0; - end = str + ((strlen < 0) ? 4 : strlen); - uc = *str++; - if (uc < 0x80) { - *dst = uc; - return 1; - } - // Must be between 0xc2 and 0xf4 inclusive to be valid - if ((uc - 0xc2) > (0xf4-0xc2)) return UTF8PROC_ERROR_INVALIDUTF8; - if (uc < 0xe0) { // 2-byte sequence - // Must have valid continuation character - if (str >= end || !utf_cont(*str)) return UTF8PROC_ERROR_INVALIDUTF8; - *dst = ((uc & 0x1f)<<6) | (*str & 0x3f); - return 2; - } - if (uc < 0xf0) { // 3-byte sequence - if ((str + 1 >= end) || !utf_cont(*str) || !utf_cont(str[1])) - return UTF8PROC_ERROR_INVALIDUTF8; - // Check for surrogate chars - if (uc == 0xed && *str > 0x9f) - return UTF8PROC_ERROR_INVALIDUTF8; - uc = ((uc & 0xf)<<12) | ((*str & 0x3f)<<6) | (str[1] & 0x3f); - if (uc < 0x800) - return UTF8PROC_ERROR_INVALIDUTF8; - *dst = uc; - return 3; - } - // 4-byte sequence - // Must have 3 valid continuation characters - if ((str + 2 >= end) || !utf_cont(*str) || !utf_cont(str[1]) || !utf_cont(str[2])) - return UTF8PROC_ERROR_INVALIDUTF8; - // Make sure in correct range (0x10000 - 0x10ffff) - if (uc == 0xf0) { - if (*str < 0x90) return UTF8PROC_ERROR_INVALIDUTF8; - } else if (uc == 0xf4) { - if (*str > 0x8f) return UTF8PROC_ERROR_INVALIDUTF8; - } - *dst = ((uc & 7)<<18) | ((*str & 0x3f)<<12) | ((str[1] & 0x3f)<<6) | (str[2] & 0x3f); - return 4; -} - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t uc) { - return (((utf8proc_uint32_t)uc)-0xd800 > 0x07ff) && ((utf8proc_uint32_t)uc < 0x110000); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { - if (uc < 0x00) { - return 0; - } else if (uc < 0x80) { - dst[0] = (utf8proc_uint8_t) uc; - return 1; - } else if (uc < 0x800) { - dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); - dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 2; - // Note: we allow encoding 0xd800-0xdfff here, so as not to change - // the API, however, these are actually invalid in UTF-8 - } else if (uc < 0x10000) { - dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 3; - } else if (uc < 0x110000) { - dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 4; - } else return 0; -} - -/* internal "unsafe" version that does not check whether uc is in range */ -static utf8proc_ssize_t unsafe_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { - if (uc < 0x00) { - return 0; - } else if (uc < 0x80) { - dst[0] = (utf8proc_uint8_t)uc; - return 1; - } else if (uc < 0x800) { - dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); - dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 2; - } else if (uc == 0xFFFF) { - dst[0] = (utf8proc_uint8_t)0xFF; - return 1; - } else if (uc == 0xFFFE) { - dst[0] = (utf8proc_uint8_t)0xFE; - return 1; - } else if (uc < 0x10000) { - dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 3; - } else if (uc < 0x110000) { - dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 4; - } else return 0; -} - -/* internal "unsafe" version that does not check whether uc is in range */ -static const utf8proc_property_t *unsafe_get_property(utf8proc_int32_t uc) { - /* ASSERT: uc >= 0 && uc < 0x110000 */ - return utf8proc_properties + ( - utf8proc_stage2table[ - utf8proc_stage1table[uc >> 8] + (uc & 0xFF) - ] - ); -} - -UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t uc) { - return uc < 0 || uc >= 0x110000 ? utf8proc_properties : unsafe_get_property(uc); -} - -/* return whether there is a grapheme break between boundclasses lbc and tbc - (according to the definition of extended grapheme clusters) - - Rule numbering refers to TR29 Version 29 (Unicode 9.0.0): - http://www.unicode.org/reports/tr29/tr29-29.html - - CAVEATS: - Please note that evaluation of GB10 (grapheme breaks between emoji zwj sequences) - and GB 12/13 (regional indicator code points) require knowledge of previous characters - and are thus not handled by this function. This may result in an incorrect break before - an E_Modifier class codepoint and an incorrectly missing break between two - REGIONAL_INDICATOR class code points if such support does not exist in the caller. - - See the special support in grapheme_break_extended, for required bookkeeping by the caller. -*/ -static utf8proc_bool grapheme_break_simple(int lbc, int tbc) { - return - (lbc == UTF8PROC_BOUNDCLASS_START) ? true : // GB1 - (lbc == UTF8PROC_BOUNDCLASS_CR && // GB3 - tbc == UTF8PROC_BOUNDCLASS_LF) ? false : // --- - (lbc >= UTF8PROC_BOUNDCLASS_CR && lbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB4 - (tbc >= UTF8PROC_BOUNDCLASS_CR && tbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB5 - (lbc == UTF8PROC_BOUNDCLASS_L && // GB6 - (tbc == UTF8PROC_BOUNDCLASS_L || // --- - tbc == UTF8PROC_BOUNDCLASS_V || // --- - tbc == UTF8PROC_BOUNDCLASS_LV || // --- - tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false : // --- - ((lbc == UTF8PROC_BOUNDCLASS_LV || // GB7 - lbc == UTF8PROC_BOUNDCLASS_V) && // --- - (tbc == UTF8PROC_BOUNDCLASS_V || // --- - tbc == UTF8PROC_BOUNDCLASS_T)) ? false : // --- - ((lbc == UTF8PROC_BOUNDCLASS_LVT || // GB8 - lbc == UTF8PROC_BOUNDCLASS_T) && // --- - tbc == UTF8PROC_BOUNDCLASS_T) ? false : // --- - (tbc == UTF8PROC_BOUNDCLASS_EXTEND || // GB9 - tbc == UTF8PROC_BOUNDCLASS_ZWJ || // --- - tbc == UTF8PROC_BOUNDCLASS_SPACINGMARK || // GB9a - lbc == UTF8PROC_BOUNDCLASS_PREPEND) ? false : // GB9b - ((lbc == UTF8PROC_BOUNDCLASS_E_BASE || // GB10 (requires additional handling below) - lbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) && // ---- - tbc == UTF8PROC_BOUNDCLASS_E_MODIFIER) ? false : // ---- - (lbc == UTF8PROC_BOUNDCLASS_ZWJ && // GB11 - (tbc == UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ || // ---- - tbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ)) ? false : // ---- - (lbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR && // GB12/13 (requires additional handling below) - tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) ? false : // ---- - true; // GB999 -} - -static utf8proc_bool grapheme_break_extended(int lbc, int tbc, utf8proc_int32_t *state) -{ - int lbc_override = lbc; - if (state && *state != UTF8PROC_BOUNDCLASS_START) - lbc_override = *state; - utf8proc_bool break_permitted = grapheme_break_simple(lbc_override, tbc); - if (state) { - // Special support for GB 12/13 made possible by GB999. After two RI - // class codepoints we want to force a break. Do this by resetting the - // second RI's bound class to UTF8PROC_BOUNDCLASS_OTHER, to force a break - // after that character according to GB999 (unless of course such a break is - // forbidden by a different rule such as GB9). - if (*state == tbc && tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) - *state = UTF8PROC_BOUNDCLASS_OTHER; - // Special support for GB10. Fold any EXTEND codepoints into the previous - // boundclass if we're dealing with an emoji base boundclass. - else if ((*state == UTF8PROC_BOUNDCLASS_E_BASE || - *state == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) && - tbc == UTF8PROC_BOUNDCLASS_EXTEND) - *state = UTF8PROC_BOUNDCLASS_E_BASE; - else - *state = tbc; - } - return break_permitted; -} - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( - utf8proc_int32_t c1, utf8proc_int32_t c2, utf8proc_int32_t *state) { - - return grapheme_break_extended(utf8proc_get_property(c1)->boundclass, - utf8proc_get_property(c2)->boundclass, - state); -} - - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( - utf8proc_int32_t c1, utf8proc_int32_t c2) { - return utf8proc_grapheme_break_stateful(c1, c2, NULL); -} - -static utf8proc_int32_t seqindex_decode_entry(const utf8proc_uint16_t **entry) -{ - utf8proc_int32_t entry_cp = **entry; - if ((entry_cp & 0xF800) == 0xD800) { - *entry = *entry + 1; - entry_cp = ((entry_cp & 0x03FF) << 10) | (**entry & 0x03FF); - entry_cp += 0x10000; - } - return entry_cp; -} - -static utf8proc_int32_t seqindex_decode_index(const utf8proc_uint32_t seqindex) -{ - const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex]; - return seqindex_decode_entry(&entry); -} - -static utf8proc_ssize_t seqindex_write_char_decomposed(utf8proc_uint16_t seqindex, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { - utf8proc_ssize_t written = 0; - const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex & 0x1FFF]; - int len = seqindex >> 13; - if (len >= 7) { - len = *entry; - entry++; - } - for (; len >= 0; entry++, len--) { - utf8proc_int32_t entry_cp = seqindex_decode_entry(&entry); - - written += utf8proc_decompose_char(entry_cp, dst+written, - (bufsize > written) ? (bufsize - written) : 0, options, - last_boundclass); - if (written < 0) return UTF8PROC_ERROR_OVERFLOW; - } - return written; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c) -{ - utf8proc_int32_t cl = utf8proc_get_property(c)->lowercase_seqindex; - return cl != UINT16_MAX ? seqindex_decode_index(cl) : c; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c) -{ - utf8proc_int32_t cu = utf8proc_get_property(c)->uppercase_seqindex; - return cu != UINT16_MAX ? seqindex_decode_index(cu) : c; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c) -{ - utf8proc_int32_t cu = utf8proc_get_property(c)->titlecase_seqindex; - return cu != UINT16_MAX ? seqindex_decode_index(cu) : c; -} - -/* return a character width analogous to wcwidth (except portable and - hopefully less buggy than most system wcwidth functions). */ -UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t c) { - return utf8proc_get_property(c)->charwidth; -} - -UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t c) { - return utf8proc_get_property(c)->category; -} - -UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t c) { - static const char s[][3] = {"Cn","Lu","Ll","Lt","Lm","Lo","Mn","Mc","Me","Nd","Nl","No","Pc","Pd","Ps","Pe","Pi","Pf","Po","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Cs","Co"}; - return s[utf8proc_category(c)]; -} - -#define utf8proc_decompose_lump(replacement_uc) \ - return utf8proc_decompose_char((replacement_uc), dst, bufsize, \ - options & ~UTF8PROC_LUMP, last_boundclass) - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char(utf8proc_int32_t uc, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { - const utf8proc_property_t *property; - utf8proc_propval_t category; - utf8proc_int32_t hangul_sindex; - if (uc < 0 || uc >= 0x110000) return UTF8PROC_ERROR_NOTASSIGNED; - property = unsafe_get_property(uc); - category = property->category; - hangul_sindex = uc - UTF8PROC_HANGUL_SBASE; - if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { - if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) { - utf8proc_int32_t hangul_tindex; - if (bufsize >= 1) { - dst[0] = UTF8PROC_HANGUL_LBASE + - hangul_sindex / UTF8PROC_HANGUL_NCOUNT; - if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE + - (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT; - } - hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT; - if (!hangul_tindex) return 2; - if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex; - return 3; - } - } - if (options & UTF8PROC_REJECTNA) { - if (!category) return UTF8PROC_ERROR_NOTASSIGNED; - } - if (options & UTF8PROC_IGNORE) { - if (property->ignorable) return 0; - } - if (options & UTF8PROC_LUMP) { - if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020); - if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8) - utf8proc_decompose_lump(0x0027); - if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212) - utf8proc_decompose_lump(0x002D); - if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F); - if (uc == 0x2236) utf8proc_decompose_lump(0x003A); - if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008) - utf8proc_decompose_lump(0x003C); - if (uc == 0x203A || uc == 0x232A || uc == 0x3009) - utf8proc_decompose_lump(0x003E); - if (uc == 0x2216) utf8proc_decompose_lump(0x005C); - if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303) - utf8proc_decompose_lump(0x005E); - if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD) - utf8proc_decompose_lump(0x005F); - if (uc == 0x02CB) utf8proc_decompose_lump(0x0060); - if (uc == 0x2223) utf8proc_decompose_lump(0x007C); - if (uc == 0x223C) utf8proc_decompose_lump(0x007E); - if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) { - if (category == UTF8PROC_CATEGORY_ZL || - category == UTF8PROC_CATEGORY_ZP) - utf8proc_decompose_lump(0x000A); - } - } - if (options & UTF8PROC_STRIPMARK) { - if (category == UTF8PROC_CATEGORY_MN || - category == UTF8PROC_CATEGORY_MC || - category == UTF8PROC_CATEGORY_ME) return 0; - } - if (options & UTF8PROC_CASEFOLD) { - if (property->casefold_seqindex != UINT16_MAX) { - return seqindex_write_char_decomposed(property->casefold_seqindex, dst, bufsize, options, last_boundclass); - } - } - if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { - if (property->decomp_seqindex != UINT16_MAX && - (!property->decomp_type || (options & UTF8PROC_COMPAT))) { - return seqindex_write_char_decomposed(property->decomp_seqindex, dst, bufsize, options, last_boundclass); - } - } - if (options & UTF8PROC_CHARBOUND) { - utf8proc_bool boundary; - int tbc = property->boundclass; - boundary = grapheme_break_extended(*last_boundclass, tbc, last_boundclass); - if (boundary) { - if (bufsize >= 1) dst[0] = 0xFFFF; - if (bufsize >= 2) dst[1] = uc; - return 2; - } - } - if (bufsize >= 1) *dst = uc; - return 1; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options -) { - return utf8proc_decompose_custom(str, strlen, buffer, bufsize, options, NULL, NULL); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -) { - /* strlen will be ignored, if UTF8PROC_NULLTERM is set in options */ - utf8proc_ssize_t wpos = 0; - if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE)) - return UTF8PROC_ERROR_INVALIDOPTS; - if ((options & UTF8PROC_STRIPMARK) && - !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE)) - return UTF8PROC_ERROR_INVALIDOPTS; - { - utf8proc_int32_t uc; - utf8proc_ssize_t rpos = 0; - utf8proc_ssize_t decomp_result; - int boundclass = UTF8PROC_BOUNDCLASS_START; - while (1) { - if (options & UTF8PROC_NULLTERM) { - rpos += utf8proc_iterate(str + rpos, -1, &uc); - /* checking of return value is not necessary, - as 'uc' is < 0 in case of error */ - if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; - if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW; - if (uc == 0) break; - } else { - if (rpos >= strlen) break; - rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc); - if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; - } - if (custom_func != NULL) { - uc = custom_func(uc, custom_data); /* user-specified custom mapping */ - } - decomp_result = utf8proc_decompose_char( - uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, - &boundclass - ); - if (decomp_result < 0) return decomp_result; - wpos += decomp_result; - /* prohibiting integer overflows due to too long strings: */ - if (wpos < 0 || - wpos > (utf8proc_ssize_t)(SSIZE_MAX/sizeof(utf8proc_int32_t)/2)) - return UTF8PROC_ERROR_OVERFLOW; - } - } - if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) { - utf8proc_ssize_t pos = 0; - while (pos < wpos-1) { - utf8proc_int32_t uc1, uc2; - const utf8proc_property_t *property1, *property2; - uc1 = buffer[pos]; - uc2 = buffer[pos+1]; - property1 = unsafe_get_property(uc1); - property2 = unsafe_get_property(uc2); - if (property1->combining_class > property2->combining_class && - property2->combining_class > 0) { - buffer[pos] = uc2; - buffer[pos+1] = uc1; - if (pos > 0) pos--; else pos++; - } else { - pos++; - } - } - } - return wpos; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { - /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored */ - if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) { - utf8proc_ssize_t rpos; - utf8proc_ssize_t wpos = 0; - utf8proc_int32_t uc; - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++; - if (uc == 0x000A || uc == 0x000D || uc == 0x0085 || - ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) { - if (options & UTF8PROC_NLF2LS) { - if (options & UTF8PROC_NLF2PS) { - buffer[wpos++] = 0x000A; - } else { - buffer[wpos++] = 0x2028; - } - } else { - if (options & UTF8PROC_NLF2PS) { - buffer[wpos++] = 0x2029; - } else { - buffer[wpos++] = 0x0020; - } - } - } else if ((options & UTF8PROC_STRIPCC) && - (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) { - if (uc == 0x0009) buffer[wpos++] = 0x0020; - } else { - buffer[wpos++] = uc; - } - } - length = wpos; - } - if (options & UTF8PROC_COMPOSE) { - utf8proc_int32_t *starter = NULL; - utf8proc_int32_t current_char; - const utf8proc_property_t *starter_property = NULL, *current_property; - utf8proc_propval_t max_combining_class = -1; - utf8proc_ssize_t rpos; - utf8proc_ssize_t wpos = 0; - utf8proc_int32_t composition; - for (rpos = 0; rpos < length; rpos++) { - current_char = buffer[rpos]; - current_property = unsafe_get_property(current_char); - if (starter && current_property->combining_class > max_combining_class) { - /* combination perhaps possible */ - utf8proc_int32_t hangul_lindex; - utf8proc_int32_t hangul_sindex; - hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE; - if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) { - utf8proc_int32_t hangul_vindex; - hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE; - if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) { - *starter = UTF8PROC_HANGUL_SBASE + - (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) * - UTF8PROC_HANGUL_TCOUNT; - starter_property = NULL; - continue; - } - } - hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE; - if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT && - (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) { - utf8proc_int32_t hangul_tindex; - hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE; - if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) { - *starter += hangul_tindex; - starter_property = NULL; - continue; - } - } - if (!starter_property) { - starter_property = unsafe_get_property(*starter); - } - if (starter_property->comb_index < 0x8000 && - current_property->comb_index != UINT16_MAX && - current_property->comb_index >= 0x8000) { - int sidx = starter_property->comb_index; - int idx = (current_property->comb_index & 0x3FFF) - utf8proc_combinations[sidx]; - if (idx >= 0 && idx <= utf8proc_combinations[sidx + 1] ) { - idx += sidx + 2; - if (current_property->comb_index & 0x4000) { - composition = (utf8proc_combinations[idx] << 16) | utf8proc_combinations[idx+1]; - } else - composition = utf8proc_combinations[idx]; - - if (composition > 0 && (!(options & UTF8PROC_STABLE) || - !(unsafe_get_property(composition)->comp_exclusion))) { - *starter = composition; - starter_property = NULL; - continue; - } - } - } - } - buffer[wpos] = current_char; - if (current_property->combining_class) { - if (current_property->combining_class > max_combining_class) { - max_combining_class = current_property->combining_class; - } - } else { - starter = buffer + wpos; - starter_property = NULL; - max_combining_class = -1; - } - wpos++; - } - length = wpos; - } - return length; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { - /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored - ASSERT: 'buffer' has one spare byte of free space at the end! */ - length = utf8proc_normalize_utf32(buffer, length, options); - if (length < 0) return length; - { - utf8proc_ssize_t rpos, wpos = 0; - utf8proc_int32_t uc; - if (options & UTF8PROC_CHARBOUND) { - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - wpos += unsafe_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); - } - } else { - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - wpos += utf8proc_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); - } - } - ((utf8proc_uint8_t *)buffer)[wpos] = 0; - return wpos; - } -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options -) { - return utf8proc_map_custom(str, strlen, dstptr, options, NULL, NULL); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -) { - utf8proc_int32_t *buffer; - utf8proc_ssize_t result; - *dstptr = NULL; - result = utf8proc_decompose_custom(str, strlen, NULL, 0, options, custom_func, custom_data); - if (result < 0) return result; - buffer = (utf8proc_int32_t *) malloc(result * sizeof(utf8proc_int32_t) + 1); - if (!buffer) return UTF8PROC_ERROR_NOMEM; - result = utf8proc_decompose_custom(str, strlen, buffer, result, options, custom_func, custom_data); - if (result < 0) { - free(buffer); - return result; - } - result = utf8proc_reencode(buffer, result, options); - if (result < 0) { - free(buffer); - return result; - } - { - utf8proc_int32_t *newptr; - newptr = (utf8proc_int32_t *) realloc(buffer, (size_t)result+1); - if (newptr) buffer = newptr; - } - *dstptr = (utf8proc_uint8_t *)buffer; - return result; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_DECOMPOSE); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_COMPOSE); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_COMPOSE | UTF8PROC_COMPAT); - return retval; -} diff --git a/libdispatch/u/utf8proc.h b/libdispatch/u/utf8proc.h deleted file mode 100644 index 495cd96006..0000000000 --- a/libdispatch/u/utf8proc.h +++ /dev/null @@ -1,699 +0,0 @@ -/* - * Copyright (c) 2015 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. - * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - - -/** - * @mainpage - * - * utf8proc is a free/open-source (MIT/expat licensed) C library - * providing Unicode normalization, case-folding, and other operations - * for strings in the UTF-8 encoding, supporting Unicode version - * 8.0.0. See the utf8proc home page (http://julialang.org/utf8proc/) - * for downloads and other information, or the source code on github - * (https://github.com/JuliaLang/utf8proc). - * - * For the utf8proc API documentation, see: @ref utf8proc.h - * - * The features of utf8proc include: - * - * - Transformation of strings (@ref utf8proc_map) to: - * - decompose (@ref UTF8PROC_DECOMPOSE) or compose (@ref UTF8PROC_COMPOSE) Unicode combining characters (http://en.wikipedia.org/wiki/Combining_character) - * - canonicalize Unicode compatibility characters (@ref UTF8PROC_COMPAT) - * - strip "ignorable" (@ref UTF8PROC_IGNORE) characters, control characters (@ref UTF8PROC_STRIPCC), or combining characters such as accents (@ref UTF8PROC_STRIPMARK) - * - case-folding (@ref UTF8PROC_CASEFOLD) - * - Unicode normalization: @ref utf8proc_NFD, @ref utf8proc_NFC, @ref utf8proc_NFKD, @ref utf8proc_NFKC - * - Detecting grapheme boundaries (@ref utf8proc_grapheme_break and @ref UTF8PROC_CHARBOUND) - * - Character-width computation: @ref utf8proc_charwidth - * - Classification of characters by Unicode category: @ref utf8proc_category and @ref utf8proc_category_string - * - Encode (@ref utf8proc_encode_char) and decode (@ref utf8proc_iterate) Unicode codepoints to/from UTF-8. - */ - -/** @file */ - -#ifndef UTF8PROC_H -#define UTF8PROC_H - -/** @name API version - * - * The utf8proc API version MAJOR.MINOR.PATCH, following - * semantic-versioning rules (http://semver.org) based on API - * compatibility. - * - * This is also returned at runtime by @ref utf8proc_version; however, the - * runtime version may append a string like "-dev" to the version number - * for prerelease versions. - * - * @note The shared-library version number in the Makefile - * (and CMakeLists.txt, and MANIFEST) may be different, - * being based on ABI compatibility rather than API compatibility. - */ -/** @{ */ -/** The MAJOR version number (increased when backwards API compatibility is broken). */ -#define UTF8PROC_VERSION_MAJOR 2 -/** The MINOR version number (increased when new functionality is added in a backwards-compatible manner). */ -#define UTF8PROC_VERSION_MINOR 1 -/** The PATCH version (increased for fixes that do not change the API). */ -#define UTF8PROC_VERSION_PATCH 0 -/** @} */ - -#include - -#if defined(_MSC_VER) && _MSC_VER < 1800 -// MSVC prior to 2013 lacked stdbool.h and inttypes.h -typedef signed char utf8proc_int8_t; -typedef unsigned char utf8proc_uint8_t; -typedef short utf8proc_int16_t; -typedef unsigned short utf8proc_uint16_t; -typedef int utf8proc_int32_t; -typedef unsigned int utf8proc_uint32_t; -# ifdef _WIN64 -typedef __int64 utf8proc_ssize_t; -typedef unsigned __int64 utf8proc_size_t; -# else -typedef int utf8proc_ssize_t; -typedef unsigned int utf8proc_size_t; -# endif -# ifndef __cplusplus -// emulate C99 bool -typedef unsigned char utf8proc_bool; -# ifndef __bool_true_false_are_defined -# define false 0 -# define true 1 -# define __bool_true_false_are_defined 1 -# endif -# else -typedef bool utf8proc_bool; -# endif -#else -# include -# include -# include -typedef int8_t utf8proc_int8_t; -typedef uint8_t utf8proc_uint8_t; -typedef int16_t utf8proc_int16_t; -typedef uint16_t utf8proc_uint16_t; -typedef int32_t utf8proc_int32_t; -typedef uint32_t utf8proc_uint32_t; -typedef size_t utf8proc_size_t; -typedef ptrdiff_t utf8proc_ssize_t; -typedef bool utf8proc_bool; -#endif -#include - -#ifdef _WIN32 -# ifdef UTF8PROC_EXPORTS -# define UTF8PROC_DLLEXPORT __declspec(dllexport) -# else -# define UTF8PROC_DLLEXPORT __declspec(dllimport) -# endif -#elif __GNUC__ >= 4 -# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default"))) -#else -# define UTF8PROC_DLLEXPORT -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SSIZE_MAX -#define SSIZE_MAX ((size_t)SIZE_MAX/2) -#endif - -#ifndef UINT16_MAX -# define UINT16_MAX 65535U -#endif - -/** - * Option flags used by several functions in the library. - */ -typedef enum { - /** The given UTF-8 input is NULL terminated. */ - UTF8PROC_NULLTERM = (1<<0), - /** Unicode Versioning Stability has to be respected. */ - UTF8PROC_STABLE = (1<<1), - /** Compatibility decomposition (i.e. formatting information is lost). */ - UTF8PROC_COMPAT = (1<<2), - /** Return a result with decomposed characters. */ - UTF8PROC_COMPOSE = (1<<3), - /** Return a result with decomposed characters. */ - UTF8PROC_DECOMPOSE = (1<<4), - /** Strip "default ignorable characters" such as SOFT-HYPHEN or ZERO-WIDTH-SPACE. */ - UTF8PROC_IGNORE = (1<<5), - /** Return an error, if the input contains unassigned codepoints. */ - UTF8PROC_REJECTNA = (1<<6), - /** - * Indicating that NLF-sequences (LF, CRLF, CR, NEL) are representing a - * line break, and should be converted to the codepoint for line - * separation (LS). - */ - UTF8PROC_NLF2LS = (1<<7), - /** - * Indicating that NLF-sequences are representing a paragraph break, and - * should be converted to the codepoint for paragraph separation - * (PS). - */ - UTF8PROC_NLF2PS = (1<<8), - /** Indicating that the meaning of NLF-sequences is unknown. */ - UTF8PROC_NLF2LF = (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS), - /** Strips and/or convers control characters. - * - * NLF-sequences are transformed into space, except if one of the - * NLF2LS/PS/LF options is given. HorizontalTab (HT) and FormFeed (FF) - * are treated as a NLF-sequence in this case. All other control - * characters are simply removed. - */ - UTF8PROC_STRIPCC = (1<<9), - /** - * Performs unicode case folding, to be able to do a case-insensitive - * string comparison. - */ - UTF8PROC_CASEFOLD = (1<<10), - /** - * Inserts 0xFF bytes at the beginning of each sequence which is - * representing a single grapheme cluster (see UAX#29). - */ - UTF8PROC_CHARBOUND = (1<<11), - /** Lumps certain characters together. - * - * E.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-". See lump.md for details. - * - * If NLF2LF is set, this includes a transformation of paragraph and - * line separators to ASCII line-feed (LF). - */ - UTF8PROC_LUMP = (1<<12), - /** Strips all character markings. - * - * This includes non-spacing, spacing and enclosing (i.e. accents). - * @note This option works only with @ref UTF8PROC_COMPOSE or - * @ref UTF8PROC_DECOMPOSE - */ - UTF8PROC_STRIPMARK = (1<<13), -} utf8proc_option_t; - -/** @name Error codes - * Error codes being returned by almost all functions. - */ -/** @{ */ -/** Memory could not be allocated. */ -#define UTF8PROC_ERROR_NOMEM -1 -/** The given string is too long to be processed. */ -#define UTF8PROC_ERROR_OVERFLOW -2 -/** The given string is not a legal UTF-8 string. */ -#define UTF8PROC_ERROR_INVALIDUTF8 -3 -/** The @ref UTF8PROC_REJECTNA flag was set and an unassigned codepoint was found. */ -#define UTF8PROC_ERROR_NOTASSIGNED -4 -/** Invalid options have been used. */ -#define UTF8PROC_ERROR_INVALIDOPTS -5 -/** @} */ - -/* @name Types */ - -/** Holds the value of a property. */ -typedef utf8proc_int16_t utf8proc_propval_t; - -/** Struct containing information about a codepoint. */ -typedef struct utf8proc_property_struct { - /** - * Unicode category. - * @see utf8proc_category_t. - */ - utf8proc_propval_t category; - utf8proc_propval_t combining_class; - /** - * Bidirectional class. - * @see utf8proc_bidi_class_t. - */ - utf8proc_propval_t bidi_class; - /** - * @anchor Decomposition type. - * @see utf8proc_decomp_type_t. - */ - utf8proc_propval_t decomp_type; - utf8proc_uint16_t decomp_seqindex; - utf8proc_uint16_t casefold_seqindex; - utf8proc_uint16_t uppercase_seqindex; - utf8proc_uint16_t lowercase_seqindex; - utf8proc_uint16_t titlecase_seqindex; - utf8proc_uint16_t comb_index; - unsigned bidi_mirrored:1; - unsigned comp_exclusion:1; - /** - * Can this codepoint be ignored? - * - * Used by @ref utf8proc_decompose_char when @ref UTF8PROC_IGNORE is - * passed as an option. - */ - unsigned ignorable:1; - unsigned control_boundary:1; - /** The width of the codepoint. */ - unsigned charwidth:2; - unsigned pad:2; - /** - * Boundclass. - * @see utf8proc_boundclass_t. - */ - unsigned boundclass:8; -} utf8proc_property_t; - -/** Unicode categories. */ -typedef enum { - UTF8PROC_CATEGORY_CN = 0, /**< Other, not assigned */ - UTF8PROC_CATEGORY_LU = 1, /**< Letter, uppercase */ - UTF8PROC_CATEGORY_LL = 2, /**< Letter, lowercase */ - UTF8PROC_CATEGORY_LT = 3, /**< Letter, titlecase */ - UTF8PROC_CATEGORY_LM = 4, /**< Letter, modifier */ - UTF8PROC_CATEGORY_LO = 5, /**< Letter, other */ - UTF8PROC_CATEGORY_MN = 6, /**< Mark, nonspacing */ - UTF8PROC_CATEGORY_MC = 7, /**< Mark, spacing combining */ - UTF8PROC_CATEGORY_ME = 8, /**< Mark, enclosing */ - UTF8PROC_CATEGORY_ND = 9, /**< Number, decimal digit */ - UTF8PROC_CATEGORY_NL = 10, /**< Number, letter */ - UTF8PROC_CATEGORY_NO = 11, /**< Number, other */ - UTF8PROC_CATEGORY_PC = 12, /**< Punctuation, connector */ - UTF8PROC_CATEGORY_PD = 13, /**< Punctuation, dash */ - UTF8PROC_CATEGORY_PS = 14, /**< Punctuation, open */ - UTF8PROC_CATEGORY_PE = 15, /**< Punctuation, close */ - UTF8PROC_CATEGORY_PI = 16, /**< Punctuation, initial quote */ - UTF8PROC_CATEGORY_PF = 17, /**< Punctuation, final quote */ - UTF8PROC_CATEGORY_PO = 18, /**< Punctuation, other */ - UTF8PROC_CATEGORY_SM = 19, /**< Symbol, math */ - UTF8PROC_CATEGORY_SC = 20, /**< Symbol, currency */ - UTF8PROC_CATEGORY_SK = 21, /**< Symbol, modifier */ - UTF8PROC_CATEGORY_SO = 22, /**< Symbol, other */ - UTF8PROC_CATEGORY_ZS = 23, /**< Separator, space */ - UTF8PROC_CATEGORY_ZL = 24, /**< Separator, line */ - UTF8PROC_CATEGORY_ZP = 25, /**< Separator, paragraph */ - UTF8PROC_CATEGORY_CC = 26, /**< Other, control */ - UTF8PROC_CATEGORY_CF = 27, /**< Other, format */ - UTF8PROC_CATEGORY_CS = 28, /**< Other, surrogate */ - UTF8PROC_CATEGORY_CO = 29, /**< Other, private use */ -} utf8proc_category_t; - -/** Bidirectional character classes. */ -typedef enum { - UTF8PROC_BIDI_CLASS_L = 1, /**< Left-to-Right */ - UTF8PROC_BIDI_CLASS_LRE = 2, /**< Left-to-Right Embedding */ - UTF8PROC_BIDI_CLASS_LRO = 3, /**< Left-to-Right Override */ - UTF8PROC_BIDI_CLASS_R = 4, /**< Right-to-Left */ - UTF8PROC_BIDI_CLASS_AL = 5, /**< Right-to-Left Arabic */ - UTF8PROC_BIDI_CLASS_RLE = 6, /**< Right-to-Left Embedding */ - UTF8PROC_BIDI_CLASS_RLO = 7, /**< Right-to-Left Override */ - UTF8PROC_BIDI_CLASS_PDF = 8, /**< Pop Directional Format */ - UTF8PROC_BIDI_CLASS_EN = 9, /**< European Number */ - UTF8PROC_BIDI_CLASS_ES = 10, /**< European Separator */ - UTF8PROC_BIDI_CLASS_ET = 11, /**< European Number Terminator */ - UTF8PROC_BIDI_CLASS_AN = 12, /**< Arabic Number */ - UTF8PROC_BIDI_CLASS_CS = 13, /**< Common Number Separator */ - UTF8PROC_BIDI_CLASS_NSM = 14, /**< Nonspacing Mark */ - UTF8PROC_BIDI_CLASS_BN = 15, /**< Boundary Neutral */ - UTF8PROC_BIDI_CLASS_B = 16, /**< Paragraph Separator */ - UTF8PROC_BIDI_CLASS_S = 17, /**< Segment Separator */ - UTF8PROC_BIDI_CLASS_WS = 18, /**< Whitespace */ - UTF8PROC_BIDI_CLASS_ON = 19, /**< Other Neutrals */ - UTF8PROC_BIDI_CLASS_LRI = 20, /**< Left-to-Right Isolate */ - UTF8PROC_BIDI_CLASS_RLI = 21, /**< Right-to-Left Isolate */ - UTF8PROC_BIDI_CLASS_FSI = 22, /**< First Strong Isolate */ - UTF8PROC_BIDI_CLASS_PDI = 23, /**< Pop Directional Isolate */ -} utf8proc_bidi_class_t; - -/** Decomposition type. */ -typedef enum { - UTF8PROC_DECOMP_TYPE_FONT = 1, /**< Font */ - UTF8PROC_DECOMP_TYPE_NOBREAK = 2, /**< Nobreak */ - UTF8PROC_DECOMP_TYPE_INITIAL = 3, /**< Initial */ - UTF8PROC_DECOMP_TYPE_MEDIAL = 4, /**< Medial */ - UTF8PROC_DECOMP_TYPE_FINAL = 5, /**< Final */ - UTF8PROC_DECOMP_TYPE_ISOLATED = 6, /**< Isolated */ - UTF8PROC_DECOMP_TYPE_CIRCLE = 7, /**< Circle */ - UTF8PROC_DECOMP_TYPE_SUPER = 8, /**< Super */ - UTF8PROC_DECOMP_TYPE_SUB = 9, /**< Sub */ - UTF8PROC_DECOMP_TYPE_VERTICAL = 10, /**< Vertical */ - UTF8PROC_DECOMP_TYPE_WIDE = 11, /**< Wide */ - UTF8PROC_DECOMP_TYPE_NARROW = 12, /**< Narrow */ - UTF8PROC_DECOMP_TYPE_SMALL = 13, /**< Small */ - UTF8PROC_DECOMP_TYPE_SQUARE = 14, /**< Square */ - UTF8PROC_DECOMP_TYPE_FRACTION = 15, /**< Fraction */ - UTF8PROC_DECOMP_TYPE_COMPAT = 16, /**< Compat */ -} utf8proc_decomp_type_t; - -/** Boundclass property. (TR29) */ -typedef enum { - UTF8PROC_BOUNDCLASS_START = 0, /**< Start */ - UTF8PROC_BOUNDCLASS_OTHER = 1, /**< Other */ - UTF8PROC_BOUNDCLASS_CR = 2, /**< Cr */ - UTF8PROC_BOUNDCLASS_LF = 3, /**< Lf */ - UTF8PROC_BOUNDCLASS_CONTROL = 4, /**< Control */ - UTF8PROC_BOUNDCLASS_EXTEND = 5, /**< Extend */ - UTF8PROC_BOUNDCLASS_L = 6, /**< L */ - UTF8PROC_BOUNDCLASS_V = 7, /**< V */ - UTF8PROC_BOUNDCLASS_T = 8, /**< T */ - UTF8PROC_BOUNDCLASS_LV = 9, /**< Lv */ - UTF8PROC_BOUNDCLASS_LVT = 10, /**< Lvt */ - UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR = 11, /**< Regional indicator */ - UTF8PROC_BOUNDCLASS_SPACINGMARK = 12, /**< Spacingmark */ - UTF8PROC_BOUNDCLASS_PREPEND = 13, /**< Prepend */ - UTF8PROC_BOUNDCLASS_ZWJ = 14, /**< Zero Width Joiner */ - UTF8PROC_BOUNDCLASS_E_BASE = 15, /**< Emoji Base */ - UTF8PROC_BOUNDCLASS_E_MODIFIER = 16, /**< Emoji Modifier */ - UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ = 17, /**< Glue_After_ZWJ */ - UTF8PROC_BOUNDCLASS_E_BASE_GAZ = 18, /**< E_BASE + GLUE_AFTER_ZJW */ -} utf8proc_boundclass_t; - -/** - * Function pointer type passed to @ref utf8proc_map_custom and - * @ref utf8proc_decompose_custom, which is used to specify a user-defined - * mapping of codepoints to be applied in conjunction with other mappings. - */ -typedef utf8proc_int32_t (*utf8proc_custom_func)(utf8proc_int32_t codepoint, void *data); - -/** - * Array containing the byte lengths of a UTF-8 encoded codepoint based - * on the first byte. - */ -UTF8PROC_DLLEXPORT extern const utf8proc_int8_t utf8proc_utf8class[256]; - -/** - * Returns the utf8proc API version as a string MAJOR.MINOR.PATCH - * (http://semver.org format), possibly with a "-dev" suffix for - * development versions. - */ -UTF8PROC_DLLEXPORT const char *utf8proc_version(void); - -/** - * Returns an informative error string for the given utf8proc error code - * (e.g. the error codes returned by @ref utf8proc_map). - */ -UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode); - -/** - * Reads a single codepoint from the UTF-8 sequence being pointed to by `str`. - * The maximum number of bytes read is `strlen`, unless `strlen` is - * negative (in which case up to 4 bytes are read). - * - * If a valid codepoint could be read, it is stored in the variable - * pointed to by `codepoint_ref`, otherwise that variable will be set to -1. - * In case of success, the number of bytes read is returned; otherwise, a - * negative error code is returned. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *codepoint_ref); - -/** - * Check if a codepoint is valid (regardless of whether it has been - * assigned a value by the current Unicode standard). - * - * @return 1 if the given `codepoint` is valid and otherwise return 0. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t codepoint); - -/** - * Encodes the codepoint as an UTF-8 string in the byte array pointed - * to by `dst`. This array must be at least 4 bytes long. - * - * In case of success the number of bytes written is returned, and - * otherwise 0 is returned. - * - * This function does not check whether `codepoint` is valid Unicode. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t codepoint, utf8proc_uint8_t *dst); - -/** - * Look up the properties for a given codepoint. - * - * @param codepoint The Unicode codepoint. - * - * @returns - * A pointer to a (constant) struct containing information about - * the codepoint. - * @par - * If the codepoint is unassigned or invalid, a pointer to a special struct is - * returned in which `category` is 0 (@ref UTF8PROC_CATEGORY_CN). - */ -UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t codepoint); - -/** Decompose a codepoint into an array of codepoints. - * - * @param codepoint the codepoint. - * @param dst the destination buffer. - * @param bufsize the size of the destination buffer. - * @param options one or more of the following flags: - * - @ref UTF8PROC_REJECTNA - return an error `codepoint` is unassigned - * - @ref UTF8PROC_IGNORE - strip "default ignorable" codepoints - * - @ref UTF8PROC_CASEFOLD - apply Unicode casefolding - * - @ref UTF8PROC_COMPAT - replace certain codepoints with their - * compatibility decomposition - * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster - * - @ref UTF8PROC_LUMP - lump certain different codepoints together - * - @ref UTF8PROC_STRIPMARK - remove all character marks - * @param last_boundclass - * Pointer to an integer variable containing - * the previous codepoint's boundary class if the @ref UTF8PROC_CHARBOUND - * option is used. Otherwise, this parameter is ignored. - * - * @return - * In case of success, the number of codepoints written is returned; in case - * of an error, a negative error code is returned (@ref utf8proc_errmsg). - * @par - * If the number of written codepoints would be bigger than `bufsize`, the - * required buffer size is returned, while the buffer will be overwritten with - * undefined data. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char( - utf8proc_int32_t codepoint, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, - utf8proc_option_t options, int *last_boundclass -); - -/** - * The same as @ref utf8proc_decompose_char, but acts on a whole UTF-8 - * string and orders the decomposed sequences correctly. - * - * If the @ref UTF8PROC_NULLTERM flag in `options` is set, processing - * will be stopped, when a NULL byte is encounted, otherwise `strlen` - * bytes are processed. The result (in the form of 32-bit unicode - * codepoints) is written into the buffer being pointed to by - * `buffer` (which must contain at least `bufsize` entries). In case of - * success, the number of codepoints written is returned; in case of an - * error, a negative error code is returned (@ref utf8proc_errmsg). - * See @ref utf8proc_decompose_custom to supply additional transformations. - * - * If the number of written codepoints would be bigger than `bufsize`, the - * required buffer size is returned, while the buffer will be overwritten with - * undefined data. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options -); - -/** - * The same as @ref utf8proc_decompose, but also takes a `custom_func` mapping function - * that is called on each codepoint in `str` before any other transformations - * (along with a `custom_data` pointer that is passed through to `custom_func`). - * The `custom_func` argument is ignored if it is `NULL`. See also @ref utf8proc_map_custom. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -); - -/** - * Normalizes the sequence of `length` codepoints pointed to by `buffer` - * in-place (i.e., the result is also stored in `buffer`). - * - * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. - * @param length the length (in codepoints) of the buffer. - * @param options a bitwise or (`|`) of one or more of the following flags: - * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS - * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS - * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF - * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters - * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite - * codepoints - * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate - * the unicode versioning stability - * - * @return - * In case of success, the length (in codepoints) of the normalized UTF-32 string is - * returned; otherwise, a negative error code is returned (@ref utf8proc_errmsg). - * - * @warning The entries of the array pointed to by `str` have to be in the - * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); - -/** - * Reencodes the sequence of `length` codepoints pointed to by `buffer` - * UTF-8 data in-place (i.e., the result is also stored in `buffer`). - * Can optionally normalize the UTF-32 sequence prior to UTF-8 conversion. - * - * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. - * @param length the length (in codepoints) of the buffer. - * @param options a bitwise or (`|`) of one or more of the following flags: - * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS - * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS - * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF - * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters - * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite - * codepoints - * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate - * the unicode versioning stability - * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster - * - * @return - * In case of success, the length (in bytes) of the resulting nul-terminated - * UTF-8 string is returned; otherwise, a negative error code is returned - * (@ref utf8proc_errmsg). - * - * @warning The amount of free space pointed to by `buffer` must - * exceed the amount of the input data by one byte, and the - * entries of the array pointed to by `str` have to be in the - * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); - -/** - * Given a pair of consecutive codepoints, return whether a grapheme break is - * permitted between them (as defined by the extended grapheme clusters in UAX#29). - * - * @param state Beginning with Version 29 (Unicode 9.0.0), this algorithm requires - * state to break graphemes. This state can be passed in as a pointer - * in the `state` argument and should initially be set to 0. If the - * state is not passed in (i.e. a null pointer is passed), UAX#29 rules - * GB10/12/13 which require this state will not be applied, essentially - * matching the rules in Unicode 8.0.0. - * - * @warning If the state parameter is used, `utf8proc_grapheme_break_stateful` must - * be called IN ORDER on ALL potential breaks in a string. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( - utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2, utf8proc_int32_t *state); - -/** - * Same as @ref utf8proc_grapheme_break_stateful, except without support for the - * Unicode 9 additions to the algorithm. Supported for legacy reasons. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( - utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2); - - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * lower-case character, if any; otherwise (if there is no lower-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c); - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * upper-case character, if any; otherwise (if there is no upper-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c); - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * title-case character, if any; otherwise (if there is no title-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c); - -/** - * Given a codepoint, return a character width analogous to `wcwidth(codepoint)`, - * except that a width of 0 is returned for non-printable codepoints - * instead of -1 as in `wcwidth`. - * - * @note - * If you want to check for particular types of non-printable characters, - * (analogous to `isprint` or `iscntrl`), use @ref utf8proc_category. */ -UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t codepoint); - -/** - * Return the Unicode category for the codepoint (one of the - * @ref utf8proc_category_t constants.) - */ -UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t codepoint); - -/** - * Return the two-letter (nul-terminated) Unicode category string for - * the codepoint (e.g. `"Lu"` or `"Co"`). - */ -UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t codepoint); - -/** - * Maps the given UTF-8 string pointed to by `str` to a new UTF-8 - * string, allocated dynamically by `malloc` and returned via `dstptr`. - * - * If the @ref UTF8PROC_NULLTERM flag in the `options` field is set, - * the length is determined by a NULL terminator, otherwise the - * parameter `strlen` is evaluated to determine the string length, but - * in any case the result will be NULL terminated (though it might - * contain NULL characters with the string if `str` contained NULL - * characters). Other flags in the `options` field are passed to the - * functions defined above, and regarded as described. See also - * @ref utfproc_map_custom to supply a custom codepoint transformation. - * - * In case of success the length of the new string is returned, - * otherwise a negative error code is returned. - * - * @note The memory of the new UTF-8 string will have been allocated - * with `malloc`, and should therefore be deallocated with `free`. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options -); - -/** - * Like @ref utf8proc_map, but also takes a `custom_func` mapping function - * that is called on each codepoint in `str` before any other transformations - * (along with a `custom_data` pointer that is passed through to `custom_func`). - * The `custom_func` argument is ignored if it is `NULL`. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -); - -/** @name Unicode normalization - * - * Returns a pointer to newly allocated memory of a NFD, NFC, NFKD or NFKC - * normalized version of the null-terminated string `str`. These - * are shortcuts to calling @ref utf8proc_map with @ref UTF8PROC_NULLTERM - * combined with @ref UTF8PROC_STABLE and flags indicating the normalization. - */ -/** @{ */ -/** NFD normalization (@ref UTF8PROC_DECOMPOSE). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str); -/** NFC normalization (@ref UTF8PROC_COMPOSE). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str); -/** NFKD normalization (@ref UTF8PROC_DECOMPOSE and @ref UTF8PROC_COMPAT). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str); -/** NFKC normalization (@ref UTF8PROC_COMPOSE and @ref UTF8PROC_COMPAT). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str); -/** @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libhdf5/hdf5attr.c b/libhdf5/hdf5attr.c index b190585123..8c585df5ae 100644 --- a/libhdf5/hdf5attr.c +++ b/libhdf5/hdf5attr.c @@ -59,6 +59,77 @@ getattlist(NC_GRP_INFO_T *grp, int varid, NC_VAR_INFO_T **varp, return NC_NOERR; } +/** + * @internal Get one of three special attributes, NCPROPS, + * ISNETCDF4ATT, and SUPERBLOCKATT. These atts are not all really in + * the file, they are constructed on the fly. + * + * @param h5 Pointer to HDF5 file info struct. + * @param name Name of attribute. + * @param filetypep Pointer that gets type of the attribute data in + * file. + * @param mem_type Type of attribute data in memory. + * @param lenp Pointer that gets length of attribute array. + * @param attnump Pointer that gets the attribute number. + * @param data Attribute data. + * + * @return ::NC_NOERR No error. + * @return ::NC_EBADID Bad ncid. + * @return ::NC_ERANGE Data conversion out of range. + * @author Dennis Heimbigner + */ +int +nc4_get_att_special(NC_FILE_INFO_T* h5, const char* name, + nc_type* filetypep, nc_type mem_type, size_t* lenp, + int* attnump, void* data) +{ + /* Fail if asking for att id */ + if(attnump) + return NC_EATTMETA; + + if(strcmp(name,NCPROPS)==0) { + char* propdata = NULL; + int stat = NC_NOERR; + int len; + if(h5->provenance->propattr.version == 0) + return NC_ENOTATT; + if(mem_type == NC_NAT) mem_type = NC_CHAR; + if(mem_type != NC_CHAR) + return NC_ECHAR; + if(filetypep) *filetypep = NC_CHAR; + stat = NC4_buildpropinfo(&h5->provenance->propattr, &propdata); + if(stat != NC_NOERR) return stat; + len = strlen(propdata); + if(lenp) *lenp = len; + if(data) strncpy((char*)data,propdata,len+1); + free(propdata); + } else if(strcmp(name,ISNETCDF4ATT)==0 + || strcmp(name,SUPERBLOCKATT)==0) { + unsigned long long iv = 0; + if(filetypep) *filetypep = NC_INT; + if(lenp) *lenp = 1; + if(strcmp(name,SUPERBLOCKATT)==0) + iv = (unsigned long long)h5->provenance->superblockversion; + else /* strcmp(name,ISNETCDF4ATT)==0 */ + iv = NC4_isnetcdf4(h5); + if(mem_type == NC_NAT) mem_type = NC_INT; + if(data) + switch (mem_type) { + case NC_BYTE: *((char*)data) = (char)iv; break; + case NC_SHORT: *((short*)data) = (short)iv; break; + case NC_INT: *((int*)data) = (int)iv; break; + case NC_UBYTE: *((unsigned char*)data) = (unsigned char)iv; break; + case NC_USHORT: *((unsigned short*)data) = (unsigned short)iv; break; + case NC_UINT: *((unsigned int*)data) = (unsigned int)iv; break; + case NC_INT64: *((long long*)data) = (long long)iv; break; + case NC_UINT64: *((unsigned long long*)data) = (unsigned long long)iv; break; + default: + return NC_ERANGE; + } + } + return NC_NOERR; +} + /** * @internal I think all atts should be named the exact same thing, to * avoid confusion! @@ -727,17 +798,28 @@ NC4_HDF5_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; - return nc4_get_att_ptrs(h5, grp, var, name, xtypep, NC_NAT, lenp, NULL, NULL); + /* If this is one of the reserved atts, use nc_get_att_special. */ + if (!var) + { + const NC_reservedatt *ra = NC_findreserved(norm_name); + if (ra && ra->flags & NAMEONLYFLAG) + return nc4_get_att_special(h5, norm_name, xtypep, NC_NAT, lenp, NULL, + NULL); + } + + return nc4_get_att_ptrs(h5, grp, var, norm_name, xtypep, NC_NAT, + lenp, NULL, NULL); } /** @@ -757,17 +839,28 @@ NC4_HDF5_inq_attid(int ncid, int varid, const char *name, int *attnump) NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; - return nc4_get_att_ptrs(h5, grp, var, name, NULL, NC_NAT, NULL, attnump, NULL); + /* If this is one of the reserved atts, use nc_get_att_special. */ + if (!var) + { + const NC_reservedatt *ra = NC_findreserved(norm_name); + if (ra && ra->flags & NAMEONLYFLAG) + return nc4_get_att_special(h5, norm_name, NULL, NC_NAT, NULL, attnump, + NULL); + } + + return nc4_get_att_ptrs(h5, grp, var, norm_name, NULL, NC_NAT, + NULL, attnump, NULL); } /** @@ -793,7 +886,7 @@ NC4_HDF5_inq_attname(int ncid, int varid, int attnum, char *name) /* Find the file, group, and var info, and do lazy att read if * needed. */ if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, NULL, attnum, 0, NULL, - NULL, NULL, &att))) + NULL, NULL, NULL, &att))) return retval; assert(att); @@ -811,27 +904,41 @@ NC4_HDF5_inq_attname(int ncid, int varid, int attnum, char *name) * @param varid Variable ID. * @param name Name of attribute. * @param value Pointer that gets attribute data. - * @param memtype The type the data should be converted to as it is read. + * @param memtype The type the data should be converted to as it is + * read. * * @return ::NC_NOERR No error. * @return ::NC_EBADID Bad ncid. * @author Ed Hartnett */ int -NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, nc_type memtype) +NC4_HDF5_get_att(int ncid, int varid, const char *name, void *value, + nc_type memtype) { NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, norm_name, + &h5, &grp, &var, NULL))) return retval; - return nc4_get_att_ptrs(h5, grp, var, name, NULL, memtype, NULL, NULL, value); + /* If this is one of the reserved atts, use nc_get_att_special. */ + if (!var) + { + const NC_reservedatt *ra = NC_findreserved(norm_name); + if (ra && ra->flags & NAMEONLYFLAG) + return nc4_get_att_special(h5, norm_name, NULL, NC_NAT, NULL, NULL, + value); + } + + return nc4_get_att_ptrs(h5, grp, var, norm_name, NULL, memtype, + NULL, NULL, value); } + diff --git a/libhdf5/hdf5cache.c b/libhdf5/hdf5cache.c index 5ae4a5ccc8..fcefa7456c 100644 --- a/libhdf5/hdf5cache.c +++ b/libhdf5/hdf5cache.c @@ -12,10 +12,11 @@ #include "config.h" #include "hdf5internal.h" -/* These hold the file caching settings for the library. */ -size_t nc4_chunk_cache_size = CHUNK_CACHE_SIZE; /**< Default chunk cache size. */ -size_t nc4_chunk_cache_nelems = CHUNK_CACHE_NELEMS; /**< Default chunk cache number of elements. */ -float nc4_chunk_cache_preemption = CHUNK_CACHE_PREEMPTION; /**< Default chunk cache preemption. */ +/* These are the default chunk cache sizes for HDF5 files created or + * opened with netCDF-4. */ +extern size_t nc4_chunk_cache_size; +extern size_t nc4_chunk_cache_nelems; +extern float nc4_chunk_cache_preemption; /** * Set chunk cache size. Only affects files opened/created *after* it diff --git a/libhdf5/hdf5dispatch.c b/libhdf5/hdf5dispatch.c index ec5e6a4b7f..7fcf723f91 100644 --- a/libhdf5/hdf5dispatch.c +++ b/libhdf5/hdf5dispatch.c @@ -98,7 +98,7 @@ NC4_def_var_fletcher32, NC4_def_var_chunking, NC4_def_var_endian, NC4_def_var_filter, -NC4_set_var_chunk_cache, +NC4_HDF5_set_var_chunk_cache, NC4_get_var_chunk_cache, #endif diff --git a/libhdf5/hdf5internal.c b/libhdf5/hdf5internal.c index f661c8a958..5752e9ea92 100644 --- a/libhdf5/hdf5internal.c +++ b/libhdf5/hdf5internal.c @@ -661,6 +661,9 @@ nc4_rec_grp_HDF5_del(NC_GRP_INFO_T *grp) * @param attnum Number of attribute. * @param use_name If true, use the name to get the * attribute. Otherwise use the attnum. + * @param norm_name Pointer to storage of size NC_MAX_NAME + 1, + * which will get the normalized name, if use_name is true. Ignored if + * NULL. * @param h5 Pointer to pointer that gets file info struct. Ignored if * NULL. * @param grp Pointer to pointer that gets group info struct. Ignored @@ -678,7 +681,7 @@ nc4_rec_grp_HDF5_del(NC_GRP_INFO_T *grp) */ int nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, - int use_name, NC_FILE_INFO_T **h5, + int use_name, char *norm_name, NC_FILE_INFO_T **h5, NC_GRP_INFO_T **grp, NC_VAR_INFO_T **var, NC_ATT_INFO_T **att) { @@ -686,12 +689,17 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, NC_GRP_INFO_T *my_grp; NC_VAR_INFO_T *my_var = NULL; NC_ATT_INFO_T *my_att; + char my_norm_name[NC_MAX_NAME + 1] = ""; NCindex *attlist = NULL; int retval; LOG((4, "%s: ncid %d varid %d attnum %d use_name %d", __func__, ncid, varid, attnum, use_name)); + /* Don't need to provide name unless getting att pointer and using + * use_name. */ + assert(!att || ((use_name && name) || !use_name)); + /* Find info for this file, group, and h5 info. */ if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &my_grp, &my_h5))) return retval; @@ -721,16 +729,27 @@ nc4_hdf5_find_grp_var_att(int ncid, int varid, const char *name, int attnum, } assert(attlist); + /* Need a name if use_name is true. */ + if (use_name && !name) + return NC_EBADNAME; + + /* Normalize the name. */ + if (use_name) + if ((retval = nc4_normalize_name(name, my_norm_name))) + return retval; + /* Now find the attribute by name or number. */ if (att) { - my_att = use_name ? (NC_ATT_INFO_T *)ncindexlookup(attlist, name) : + my_att = use_name ? (NC_ATT_INFO_T *)ncindexlookup(attlist, my_norm_name) : (NC_ATT_INFO_T *)ncindexith(attlist, attnum); if (!my_att) return NC_ENOTATT; } /* Give the people what they want. */ + if (norm_name) + strncpy(norm_name, my_norm_name, NC_MAX_NAME); if (h5) *h5 = my_h5; if (grp) diff --git a/libhdf5/hdf5var.c b/libhdf5/hdf5var.c index c074d9f3b5..57333739ac 100644 --- a/libhdf5/hdf5var.c +++ b/libhdf5/hdf5var.c @@ -106,7 +106,7 @@ check_chunksizes(NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, const size_t *chunksize * @returns ::NC_NOERR for success * @returns ::NC_EBADID Bad ncid. * @returns ::NC_ENOTVAR Invalid variable ID. - * @author Ed Hartnett + * @author Ed Hartnett, Dennis Heimbigner */ static int nc4_find_default_chunksizes2(NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var) @@ -570,11 +570,9 @@ nc_def_var_extra(int ncid, int varid, int *shuffle, int *deflate, const size_t *chunksizes, int *no_fill, const void *fill_value, int *endianness) { - NC *nc; NC_GRP_INFO_T *grp; NC_FILE_INFO_T *h5; NC_VAR_INFO_T *var; - NC_FILE_INFO_T *nc4_info=NULL; int d; int retval; @@ -585,26 +583,23 @@ nc_def_var_extra(int ncid, int varid, int *shuffle, int *deflate, LOG((2, "%s: ncid 0x%x varid %d", __func__, ncid, varid)); /* Find info for this file and group, and set pointer to each. */ - if ((retval = nc4_find_nc_grp_h5(ncid, &nc, &grp, &h5))) + if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &grp, &h5))) return retval; - assert(nc && grp && h5); + assert(grp && h5); /* Trying to write to a read-only file? No way, Jose! */ if (h5->no_write) return NC_EPERM; /* Find the var. */ - var = (NC_VAR_INFO_T*)ncindexith(grp->vars,varid); - if(!var) + if (!(var = (NC_VAR_INFO_T *)ncindexith(grp->vars, varid))) return NC_ENOTVAR; assert(var && var->hdr.id == varid); /* Can't turn on parallel and deflate/fletcher32/szip/shuffle. */ - nc4_info = NC4_DATA(nc); - if (nc4_info->parallel == NC_TRUE) { + if (h5->parallel == NC_TRUE) if (deflate || fletcher32 || shuffle) return NC_EINVAL; - } /* If the HDF5 dataset has already been created, then it is too * late to set all the extra stuff. */ @@ -734,7 +729,8 @@ nc_def_var_extra(int ncid, int varid, int *shuffle, int *deflate, return retval; /* Create a _FillValue attribute. */ - if ((retval = nc_put_att(ncid, varid, _FillValue, var->type_info->hdr.id, 1, fill_value))) + if ((retval = nc_put_att(ncid, varid, _FillValue, var->type_info->hdr.id, + 1, fill_value))) return retval; } @@ -2072,8 +2068,8 @@ NC4_HDF5_inq_var_all(int ncid, int varid, char *name, nc_type *xtypep, /* Find the file, group, and var info, and do lazy att read if * needed. */ - if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, name, 0, 1, &h5, - &grp, &var, NULL))) + if ((retval = nc4_hdf5_find_grp_var_att(ncid, varid, NULL, 0, 0, NULL, + &h5, &grp, &var, NULL))) return retval; assert(grp && h5); @@ -2084,3 +2080,89 @@ NC4_HDF5_inq_var_all(int ncid, int varid, char *name, nc_type *xtypep, contiguousp, chunksizesp, no_fill, fill_valuep, endiannessp, idp, nparamsp, params); } + +/** + * @internal Set chunk cache size for a variable. This is the internal + * function called by nc_set_var_chunk_cache(). + * + * @param ncid File ID. + * @param varid Variable ID. + * @param size Size in bytes to set cache. + * @param nelems Number of elements in cache. + * @param preemption Controls cache swapping. + * + * @returns ::NC_NOERR No error. + * @returns ::NC_EBADID Bad ncid. + * @returns ::NC_ENOTVAR Invalid variable ID. + * @returns ::NC_ESTRICTNC3 Attempting netcdf-4 operation on strict nc3 netcdf-4 file. + * @returns ::NC_EINVAL Invalid input. + * @returns ::NC_EHDFERR HDF5 error. + * @author Ed Hartnett + */ +int +NC4_HDF5_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, + float preemption) +{ + NC_GRP_INFO_T *grp; + NC_FILE_INFO_T *h5; + NC_VAR_INFO_T *var; + int retval; + + /* Check input for validity. */ + if (preemption < 0 || preemption > 1) + return NC_EINVAL; + + /* Find info for this file and group, and set pointer to each. */ + if ((retval = nc4_find_nc_grp_h5(ncid, NULL, &grp, &h5))) + return retval; + assert(grp && h5); + + /* Find the var. */ + if (!(var = (NC_VAR_INFO_T *)ncindexith(grp->vars, varid))) + return NC_ENOTVAR; + assert(var && var->hdr.id == varid); + + /* Set the values. */ + var->chunk_cache_size = size; + var->chunk_cache_nelems = nelems; + var->chunk_cache_preemption = preemption; + + /* Reopen the dataset to bring new settings into effect. */ + if ((retval = nc4_reopen_dataset(grp, var))) + return retval; + return NC_NOERR; +} + +/** + * @internal A wrapper for NC4_set_var_chunk_cache(), we need this + * version for fortran. Negative values leave settings as they are. + * + * @param ncid File ID. + * @param varid Variable ID. + * @param size Size in bytes to set cache. + * @param nelems Number of elements in cache. + * @param preemption Controls cache swapping. + * + * @returns ::NC_NOERR for success + * @author Ed Hartnett + */ +int +nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, + int preemption) +{ + size_t real_size = H5D_CHUNK_CACHE_NBYTES_DEFAULT; + size_t real_nelems = H5D_CHUNK_CACHE_NSLOTS_DEFAULT; + float real_preemption = CHUNK_CACHE_PREEMPTION; + + if (size >= 0) + real_size = ((size_t) size) * MEGABYTE; + + if (nelems >= 0) + real_nelems = nelems; + + if (preemption >= 0) + real_preemption = preemption / 100.; + + return NC4_HDF5_set_var_chunk_cache(ncid, varid, real_size, real_nelems, + real_preemption); +} diff --git a/libhdf5/nc4hdf.c b/libhdf5/nc4hdf.c index a565e7e4c0..9401a0d829 100644 --- a/libhdf5/nc4hdf.c +++ b/libhdf5/nc4hdf.c @@ -1,4 +1,4 @@ -/* Copyright 2003, University Corporation for Atmospheric +/* Copyright 2018, University Corporation for Atmospheric * Research. See the COPYRIGHT file for copying and redistribution * conditions. */ /** @@ -2318,72 +2318,6 @@ nc4_rec_match_dimscales(NC_GRP_INFO_T *grp) return retval; } -/** - * @internal Get the length, in bytes, of one element of a type in - * memory. - * - * @param h5 Pointer to HDF5 file info struct. - * @param xtype NetCDF type ID. - * @param len Pointer that gets length in bytes. - * - * @returns NC_NOERR No error. - * @returns NC_EBADTYPE Type not found. - * @author Ed Hartnett - */ -int -nc4_get_typelen_mem(NC_FILE_INFO_T *h5, nc_type xtype, size_t *len) -{ - NC_TYPE_INFO_T *type; - int retval; - - LOG((4, "%s xtype: %d", __func__, xtype)); - assert(len); - - /* If this is an atomic type, the answer is easy. */ - switch (xtype) - { - case NC_BYTE: - case NC_CHAR: - case NC_UBYTE: - *len = sizeof(char); - return NC_NOERR; - case NC_SHORT: - case NC_USHORT: - *len = sizeof(short); - return NC_NOERR; - case NC_INT: - case NC_UINT: - *len = sizeof(int); - return NC_NOERR; - case NC_FLOAT: - *len = sizeof(float); - return NC_NOERR; - case NC_DOUBLE: - *len = sizeof(double); - return NC_NOERR; - case NC_INT64: - case NC_UINT64: - *len = sizeof(long long); - return NC_NOERR; - case NC_STRING: - *len = sizeof(char *); - return NC_NOERR; - } - - /* See if var is compound type. */ - if ((retval = nc4_find_type(h5, xtype, &type))) - return retval; - - if (!type) - return NC_EBADTYPE; - - *len = type->size; - - LOG((5, "type->size: %d", type->size)); - - return NC_NOERR; -} - /** * @internal Get the class of a type * @@ -2791,4 +2725,3 @@ NC4_walk(hid_t gid, int* countp) } return ncstat; } - diff --git a/libhdf5/nc4info.c b/libhdf5/nc4info.c index 92ee18edff..87b13e701d 100644 --- a/libhdf5/nc4info.c +++ b/libhdf5/nc4info.c @@ -2,7 +2,7 @@ * @file * @internal Add provenance info for netcdf-4 files. * - * Copyright 2010, UCAR/Unidata See netcdf/COPYRIGHT file for copying + * Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying * and redistribution conditions. * @author Dennis Heimbigner */ @@ -73,7 +73,7 @@ NC4_provenance_init(void) {stat = NC_ENOMEM; goto done;} nclistpush(globalpropinfo.properties,value); value = NULL; - + /* Insert the HDF5 as underlying storage format library */ if((name = strdup(NCPHDF5LIB2)) == NULL) {stat = NC_ENOMEM; goto done;} @@ -109,7 +109,7 @@ NC4_provenance_init(void) if(name != NULL) free(name); if(value != NULL) free(value); if(other != NULL) - nclistfreeall(other); + nclistfreeall(other); if(stat && globalpropinfo.properties != NULL) { nclistfreeall(globalpropinfo.properties); globalpropinfo.properties = NULL; @@ -192,7 +192,7 @@ properties_parse(const char* text0, NClist* pairs) *q++ = '\0'; next = q; /* split key and value */ - q = locate(p,'='); + q = locate(p,'='); name = p; *q++ = '\0'; value = q; @@ -258,10 +258,12 @@ NC4_buildpropinfo(struct NCPROPINFO* info, char** propdatap) NCbytes* buffer = NULL; char sversion[64]; + LOG((3, "%s", __func__)); + if(info == NULL || info->version == 0 || propdatap == NULL) {stat = NC_EINVAL; goto done;} - *propdatap = NULL; + *propdatap = NULL; buffer = ncbytesnew(); if(!buffer) {stat = NC_ENOMEM; goto done;} @@ -291,50 +293,6 @@ NC4_buildpropinfo(struct NCPROPINFO* info, char** propdatap) return stat; } -#if 0 -/** - * @internal Write the properties attribute to file. - * - * @param h5 Pointer to HDF5 file info struct. - * - * @return ::NC_NOERR No error. - * @author Dennis Heimbigner - */ -int -NC4_put_ncproperties(NC_FILE_INFO_T* file) -{ - int ncstat = NC_NOERR; - char* text = NULL; - - /* Get root group */ - grp = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; - /* See if the NCPROPS attribute exists */ - if(H5Aexists(grp,NCPROPS) <= 0) { /* Does not exist */ - ncstat = NC4_buildpropinfo(&h5->fileinfo->propattr,&text); - if(text == NULL || ncstat != NC_NOERR) { - goto done; - } - /* Create a datatype to refer to. */ - HCHECK((atype = H5Tcopy(H5T_C_S1))); - HCHECK((H5Tset_cset(atype, H5T_CSET_ASCII))); - HCHECK((H5Tset_size(atype, strlen(text)+1))); /*keep nul term */ - HCHECK((aspace = H5Screate(H5S_SCALAR))); - HCHECK((attid = H5Acreate(grp, NCPROPS, atype, aspace, H5P_DEFAULT))); - HCHECK((H5Awrite(attid, atype, text))); - } - done: - if(text != NULL) { - free(text); - text = NULL; - } - - if(attid >= 0) HCHECK((H5Aclose(attid))); - if(aspace >= 0) HCHECK((H5Sclose(aspace))); - if(atype >= 0) HCHECK((H5Tclose(atype))); - return ncstat; -} -#endif - /** * @internal * @@ -357,7 +315,10 @@ NC4_set_provenance(NC_FILE_INFO_T* file, const struct NCPROPINFO* dfalt) struct NCPROVENANCE* provenance = NULL; int superblock = -1; + LOG((3, "%s: ncid 0x%x", __func__, file->root_grp->hdr.id)); + assert(file->provenance == NULL); + provenance = calloc(1,sizeof(struct NCPROVENANCE)); if(provenance == NULL) {ncstat = NC_ENOMEM; goto done;} @@ -420,6 +381,8 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC int v = 0; int superblock = -1; + LOG((3, "%s: ncid 0x%x propstring %s", __func__, file->root_grp->hdr.id, propstring)); + assert(file->provenance == NULL); if((file->provenance = calloc(1,sizeof(struct NCPROVENANCE))) == NULL) {ncstat = NC_ENOMEM; goto done;} @@ -454,7 +417,6 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC provenance->propattr.version = v; } else {ncstat = NC_EINVAL; goto done;} /* bad _NCProperties attribute */ -#if 0 /* Now, rebuild from version 1 to version 2 if necessary */ if(provenance->propattr.version == 1) { int i; @@ -469,10 +431,9 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC else continue; /* ignore */ /* Do any rename */ nclistset(list,i,strdup(newname)); - if(name) free(name); + if(name) {free(name); name = NULL;} } } -#endif } done: if(name != NULL) free(name); @@ -492,6 +453,8 @@ NC4_get_provenance(NC_FILE_INFO_T* file, const char* propstring, const struct NC int NC4_free_provenance(struct NCPROVENANCE* prov) { + LOG((3, "%s", __func__)); + if(prov == NULL) return NC_NOERR; if(prov->propattr.properties != NULL) nclistfreeall(prov->propattr.properties); @@ -514,10 +477,12 @@ NC4_read_ncproperties(NC_FILE_INFO_T* h5) H5T_class_t t_class; hsize_t size; + LOG((3, "%s", __func__)); + hdf5grpid = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; if(H5Aexists(hdf5grpid,NCPROPS) <= 0) { /* Does not exist */ - /* File did not contain a _NCProperties attribute */ + /* File did not contain a _NCProperties attribute */ retval=NC4_get_provenance(h5,NULL,&globalpropinfo); goto done; } @@ -556,9 +521,11 @@ NC4_read_ncproperties(NC_FILE_INFO_T* h5) if(ntype > 0 && H5Tclose(ntype) < 0) retval = NC_EHDFERR; /* For certain errors, actually fail, else log that attribute was invalid and ignore */ - if(retval != NC_ENOMEM && retval != NC_EHDFERR) { - LOG((0,"Invalid _NCProperties attribute")); - retval = NC_NOERR; + if(retval != NC_NOERR) { + if(retval != NC_ENOMEM && retval != NC_EHDFERR) { + LOG((0,"Invalid _NCProperties attribute: ignored")); + retval = NC_NOERR; + } } return retval; } @@ -574,6 +541,8 @@ NC4_write_ncproperties(NC_FILE_INFO_T* h5) char* text = NULL; size_t len = 0; + LOG((3, "%s", __func__)); + /* If the file is read-only, return an error. */ if (h5->no_write) {retval = NC_EPERM; goto done;} @@ -594,12 +563,11 @@ NC4_write_ncproperties(NC_FILE_INFO_T* h5) {retval = NC_EHDFERR; goto done;} if(H5Tset_cset(atype, H5T_CSET_ASCII) < 0) {retval = NC_EHDFERR; goto done;} - - /* Create NCPROPS attribute */ - len = strlen(text); if(H5Tset_size(atype, len) < 0) {retval = NC_EFILEMETA; goto done;} + + /* Create NCPROPS attribute */ if((aspace = H5Screate(H5S_SCALAR)) < 0) {retval = NC_EFILEMETA; goto done;} if ((attid = H5Acreate(hdf5grpid, NCPROPS, atype, aspace, H5P_DEFAULT)) < 0) @@ -607,6 +575,19 @@ NC4_write_ncproperties(NC_FILE_INFO_T* h5) if (H5Awrite(attid, atype, text) < 0) {retval = NC_EFILEMETA; goto done;} +/* Verify */ +#if 0 +{ + hid_t spacev, typev; + hsize_t dsize, tsize; + typev = H5Aget_type(attid); + spacev = H5Aget_space(attid); + dsize = H5Aget_storage_size(attid); + tsize = H5Tget_size(typev); + fprintf(stderr,"dsize=%lu tsize=%lu\n",(unsigned long)dsize,(unsigned long)tsize); +} +#endif + done: if(text != NULL) free(text); /* Close out the HDF5 objects */ @@ -641,7 +622,7 @@ ncprintpropinfo(struct NCPROPINFO* info) char* name = nclistget(info->properties,i); char* value = nclistget(info->properties,i+1); fprintf(stderr,"\t[%d] name=|%s| value=|%s|\n",i,name,value); - } + } } void @@ -650,4 +631,3 @@ ncprintprovenance(struct NCPROVENANCE* prov) fprintf(stderr,"[%p] superblockversion=%d\n",prov,prov->superblockversion); ncprintpropinfo(&prov->propattr); } - diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt index b8c5f1dbc1..ea9b02949d 100644 --- a/liblib/CMakeLists.txt +++ b/liblib/CMakeLists.txt @@ -1,4 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. +# See netcdf-c/COPYRIGHT file for more info. SET(liblib_LIBS dispatch netcdf3) ##### @@ -8,7 +13,7 @@ SET(liblib_LIBS dispatch netcdf3) IF(USE_HDF5 OR USE_NETCDF4) SET(liblib_LIBS ${liblib_LIBS} netcdf4) SET(liblib_LIBS ${liblib_LIBS} netcdfhdf5) - + ENDIF() IF(USE_PNETCDF) diff --git a/liblib/Makefile.am b/liblib/Makefile.am index 02c0599fea..0a0bab73d7 100644 --- a/liblib/Makefile.am +++ b/liblib/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2010, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This Makefile assembles the correct libnetcdf based on various # configure flags. It is assumed that all the relevant convenience @@ -41,7 +41,7 @@ libnetcdf_la_LIBADD += ${top_builddir}/libsrcp/libnetcdfp.la endif # USE_PNETCDF # + hdf5 -if USE_NETCDF4 +if USE_HDF5 AM_CPPFLAGS += -I${top_srcdir}/libhdf5 libnetcdf_la_LIBADD += ${top_builddir}/libhdf5/libnchdf5.la endif # USE_NETCDF4 @@ -66,10 +66,8 @@ endif # ENABLE_DAP4 # NetCDF-4 ... if USE_NETCDF4 - AM_CPPFLAGS += -I${top_srcdir}/libsrc4 libnetcdf_la_LIBADD += ${top_builddir}/libsrc4/libnetcdf4.la - endif #USE_NETCDF4 if ISCYGWIN diff --git a/liblib/nc_initialize.c b/liblib/nc_initialize.c index 04d336798b..3be13369a4 100644 --- a/liblib/nc_initialize.c +++ b/liblib/nc_initialize.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -17,6 +17,7 @@ extern int NC3_finalize(void); #ifdef USE_NETCDF4 #include "nc4internal.h" +#include "hdf5internal.h" extern int NC4_initialize(void); extern int NC4_finalize(void); #endif @@ -91,10 +92,10 @@ nc_initialize() #endif #ifdef USE_NETCDF4 if((stat = NC4_initialize())) goto done; - stat = NC4_provenance_init(); #endif /* USE_NETCDF4 */ #ifdef USE_HDF5 if((stat = NC_HDF5_initialize())) goto done; + stat = NC4_provenance_init(); #endif #ifdef USE_HDF4 if((stat = NC_HDF4_initialize())) goto done; diff --git a/libnetcdf.settings.in b/libnetcdf.settings.in index 29f734e9bc..56f552d892 100644 --- a/libnetcdf.settings.in +++ b/libnetcdf.settings.in @@ -26,6 +26,7 @@ Extra libraries: @LIBS@ -------- NetCDF-2 API: @HAS_NC2@ HDF4 Support: @HAS_HDF4@ +HDF5 Support: @HAS_HDF5@ NetCDF-4 API: @HAS_NC4@ NC-4 Parallel Support: @HAS_PARALLEL4@ PnetCDF Support: @HAS_PNETCDF@ diff --git a/libsrc/CMakeLists.txt b/libsrc/CMakeLists.txt index e617b17e97..fc4cf0703f 100644 --- a/libsrc/CMakeLists.txt +++ b/libsrc/CMakeLists.txt @@ -1,5 +1,5 @@ ## This is a CMake file, part of Unidata's netCDF package. -# Copyright 2012-2013, see the COPYRIGHT file for more information. +# Copyright 2012-2018, see the COPYRIGHT file for more information. # Process these files with m4. SET(m4_SOURCES attr ncx putget t_ncxx) diff --git a/libsrc/Makefile.am b/libsrc/Makefile.am index 498673e40a..fd13299fcd 100644 --- a/libsrc/Makefile.am +++ b/libsrc/Makefile.am @@ -1,5 +1,5 @@ ## This is an automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This automake file is in charge of building the libsrc directory, # which contains the classic library code. diff --git a/libsrc/attr.m4 b/libsrc/attr.m4 index 44da9084b6..ae0208b642 100644 --- a/libsrc/attr.m4 +++ b/libsrc/attr.m4 @@ -5,7 +5,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/dim.c b/libsrc/dim.c index 14114ec06c..227ac5ab5c 100644 --- a/libsrc/dim.c +++ b/libsrc/dim.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: dim.c,v 1.83 2010/05/25 17:54:15 dmh Exp $ */ diff --git a/libsrc/ffio.c b/libsrc/ffio.c index e2ba64f70e..80bc6cb930 100644 --- a/libsrc/ffio.c +++ b/libsrc/ffio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: ffio.c,v 1.56 2006/09/15 20:40:30 ed Exp $ */ diff --git a/libsrc/memio.c b/libsrc/memio.c index 09d4b62511..35bcd5738c 100644 --- a/libsrc/memio.c +++ b/libsrc/memio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/mmapio.c b/libsrc/mmapio.c index 98e4dadbbb..a05e3afa9f 100644 --- a/libsrc/mmapio.c +++ b/libsrc/mmapio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/nc3dispatch.c b/libsrc/nc3dispatch.c index 19f1756d00..41cf55346b 100644 --- a/libsrc/nc3dispatch.c +++ b/libsrc/nc3dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - Copyright 2010, UCAR/Unidata See netcdf/COPYRIGHT file for + Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying and redistribution conditions. $Id: nc3dispatch.c,v 2.8 2010/05/26 11:11:26 ed Exp $ diff --git a/libsrc/nc3internal.c b/libsrc/nc3internal.c index 704e739137..dbac0a4b43 100644 --- a/libsrc/nc3internal.c +++ b/libsrc/nc3internal.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, Unuiversity Corporation for Atmospheric Research + * Copyright 2018, Unuiversity Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncFile.c b/libsrc/ncFile.c index 4db35cbd5c..aed7dc16d4 100644 --- a/libsrc/ncFile.c +++ b/libsrc/ncFile.c @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncio.c b/libsrc/ncio.c index 20f5546b5c..cc67cddad0 100644 --- a/libsrc/ncio.c +++ b/libsrc/ncio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncio.h b/libsrc/ncio.h index 71dc640d39..6e3c17f76d 100644 --- a/libsrc/ncio.h +++ b/libsrc/ncio.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: ncio.h,v 1.27 2006/01/03 04:56:28 russ Exp $ */ diff --git a/libsrc/ncstdio.c b/libsrc/ncstdio.c index dd69501f7d..b7107a001e 100644 --- a/libsrc/ncstdio.c +++ b/libsrc/ncstdio.c @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncstdio.h b/libsrc/ncstdio.h index ba88539106..b50f8c01f7 100644 --- a/libsrc/ncstdio.h +++ b/libsrc/ncstdio.h @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncx.h b/libsrc/ncx.h index a9ffcdc633..13e463dd5c 100644 --- a/libsrc/ncx.h +++ b/libsrc/ncx.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncx_cray.c b/libsrc/ncx_cray.c index ce56ed9400..4398ca904b 100644 --- a/libsrc/ncx_cray.c +++ b/libsrc/ncx_cray.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * */ diff --git a/libsrc/posixio.c b/libsrc/posixio.c index 06b80050e4..328b13aaf6 100644 --- a/libsrc/posixio.c +++ b/libsrc/posixio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: posixio.c,v 1.89 2010/05/22 21:59:08 dmh Exp $ */ diff --git a/libsrc/putget.m4 b/libsrc/putget.m4 index baf49e3f52..644a7dd8f1 100644 --- a/libsrc/putget.m4 +++ b/libsrc/putget.m4 @@ -9,7 +9,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: putget.m4 2783 2014-10-26 05:19:35Z wkliao $ */ diff --git a/libsrc/t_ncio.c b/libsrc/t_ncio.c index 580548961e..bfce5376f5 100644 --- a/libsrc/t_ncio.c +++ b/libsrc/t_ncio.c @@ -1,5 +1,5 @@ /* - * Copyright 1995, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See top level COPYRIGHT file for copying and redistribution conditions. */ /* $Id: t_ncio.c,v 1.10 2010/05/26 11:11:26 ed Exp $ */ diff --git a/libsrc/t_ncxx.m4 b/libsrc/t_ncxx.m4 index 81589c18f0..4aba4b6fb8 100644 --- a/libsrc/t_ncxx.m4 +++ b/libsrc/t_ncxx.m4 @@ -5,7 +5,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* "$Id: t_ncxx.m4,v 2.17 2005/05/20 14:48:14 russ Exp $" */ @@ -16,13 +16,13 @@ dnl * Unlike t_ncx.c, it only checks self consistency, * not consistency with the xdr library. * - * Link like this: + * Link like this: * cc t_ncxx.c ncx.o -o t_nxc * (The xdr library is not needed.) * * If an assertion fails, there is a problem. * Otherwise, the program is silent and has exit code 0. - */ + */ #if HAVE_CONFIG_H #include @@ -239,10 +239,10 @@ dnl T_PUTN(XType, Type) dnl define(`T_PUTN',dnl `dnl -static void +static void t_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); int status = ncx_putn_$1_$2((void **)&xp, nelems, tp); @@ -273,10 +273,10 @@ dnl Doesn't make signed comparisons to unsigned type dnl define(`T_PUTN_U',dnl `dnl -static void +static void t_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); int status = ncx_putn_$1_$2((void **)&xp, nelems, tp); @@ -301,10 +301,10 @@ dnl T_PAD_PUTN(XType, Type) dnl define(`T_PAD_PUTN',dnl `dnl -static void +static void t_pad_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); const char *end = buf + nelems * Xsizeof($1); @@ -337,10 +337,10 @@ dnl T_GETN(XType, Type) dnl define(`T_GETN',dnl `dnl -static void +static void t_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -368,10 +368,10 @@ dnl Doesn't make signed comparisons to unsigned type dnl define(`T_GETN_U',dnl `dnl -static void +static void t_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -397,10 +397,10 @@ dnl T_PAD_GETN(XType, Type) dnl define(`T_PAD_GETN',dnl `dnl -static void +static void t_pad_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -434,10 +434,10 @@ dnl dnl dnl T_PUTN(schar, schar) dnl T_PUTN(schar, uchar) replaced by special case code. dnl - we don't return conversion errors putting uchar to schar. -static void +static void t_putn_schar_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(schars); int status = ncx_putn_schar_uchar((void **)&xp, nelems, tp); @@ -454,10 +454,10 @@ T_PUTN(schar, double) T_PAD_PUTN(schar, schar) dnl T_PAD_PUTN(schar, uchar) replaced by special case code. dnl - we don't return conversion errors putting uchar to schar. -static void +static void t_pad_putn_schar_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(uchars); const char *end = buf + nelems * X_SIZEOF_SCHAR; @@ -485,10 +485,10 @@ T_PUTN(short, double) T_PAD_PUTN(short, schar) dnl T_PAD_PUTN(short, uchar) dnl Don't make signed comparisons to usigned type -static void +static void t_pad_putn_short_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(uchars); const char *end = buf + nelems * X_SIZEOF_SHORT; @@ -545,10 +545,10 @@ T_PUTN(double, double) T_GETN(schar, schar) dnl T_GETN(schar, uchar) dnl - we don't return conversion errors gettin schar to uchar. -static void +static void t_getn_schar_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(schars); @@ -574,10 +574,10 @@ T_GETN(schar, double) T_PAD_GETN(schar, schar) dnl T_PAD_GETN(schar, uchar) dnl - we don't return conversion errors gettin schar to uchar. -static void +static void t_pad_getn_schar_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(schars); @@ -614,10 +614,10 @@ T_GETN(short, double) T_PAD_GETN(short, schar) dnl T_PAD_GETN(short, uchar) dnl Don't make signed comparisons to usigned type -static void +static void t_pad_getn_short_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(uchars); @@ -659,10 +659,10 @@ T_GETN_U(float, uchar) T_GETN(float, short) dnl T_GETN(float, int) dnl Exact conversion of int to x_float is limited by external float mantissa -static void +static void t_getn_float_int(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const int *tp = ints; int *lp = (int *)lbuf; size_t nelems = ArraySize(ints); @@ -687,10 +687,10 @@ t_getn_float_int(const char *const buf) dnl T_GETN(float, long) dnl Exact conversion of long to x_float is limited by external float mantissa -static void +static void t_getn_float_long(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const long *tp = longs; long *lp = (long *)lbuf; size_t nelems = ArraySize(longs); @@ -719,10 +719,10 @@ t_getn_float_long(const char *const buf) T_GETN(float, float) dnl T_GETN(float, double) dnl Exact conversion of double to x_float is limited by external float mantissa -static void +static void t_getn_float_double(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const double *tp = doubles; double *lp = (double *)lbuf; size_t nelems = ArraySize(doubles); @@ -754,7 +754,7 @@ t_getn_float_double(const char *const buf) (void) fprintf(stderr, "%.9e != %.9e float_double (diff %.9e)\n", tp[ii], lp[ii], tp[ii] - lp[ii]); - + } } } diff --git a/libsrc/v1hpg.c b/libsrc/v1hpg.c index ee85fe9aa4..0886bb337f 100644 --- a/libsrc/v1hpg.c +++ b/libsrc/v1hpg.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/var.c b/libsrc/var.c index 9254894ed4..6b466821e1 100644 --- a/libsrc/var.c +++ b/libsrc/var.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: var.c,v 1.144 2010/05/30 00:50:35 russ Exp $ */ diff --git a/libsrc/winceio.c b/libsrc/winceio.c index c7a2e14ff5..f30daba420 100644 --- a/libsrc/winceio.c +++ b/libsrc/winceio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: winceio.c,v 1.2 2010/05/04 17:30:04 dmh Exp $ */ diff --git a/libsrc4/CMakeLists.txt b/libsrc4/CMakeLists.txt index f54d652c3e..59aabbb45a 100644 --- a/libsrc4/CMakeLists.txt +++ b/libsrc4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Process these files with m4. SET(libsrc4_SOURCES nc4dispatch.c nc4attr.c nc4dim.c nc4grp.c nc4type.c nc4var.c ncfunc.c nc4internal.c ncindex.c ) diff --git a/libsrc4/Makefile.am b/libsrc4/Makefile.am index 0c59d6ae8e..1a3d6c842f 100644 --- a/libsrc4/Makefile.am +++ b/libsrc4/Makefile.am @@ -1,4 +1,4 @@ -# This is part of Unidata's netCDF package. Copyright 2005-2011, see +# This is part of Unidata's netCDF package. Copyright 2005-2018, see # the COPYRIGHT file for more information. # This automake file generates the Makefile to build netCDF-4. @@ -15,8 +15,3 @@ nc4internal.c nc4type.c nc4var.c ncfunc.c error4.c nc4printer.c \ ncindex.c EXTRA_DIST = CMakeLists.txt - - - - - diff --git a/libsrc4/error4.c b/libsrc4/error4.c index bdd2345a55..43ff295894 100644 --- a/libsrc4/error4.c +++ b/libsrc4/error4.c @@ -1,4 +1,6 @@ -/* Copyright 2003-2018, University Corporation for Atmospheric +/*! \file + +Copyright 2003-2018, University Corporation for Atmospheric Research. See netcdf-4/docs/COPYRIGHT file for copying and redistribution conditions. */ /** @@ -8,7 +10,7 @@ redistribution conditions. */ * * This file contains functions relating to logging errors. Also it * contains the functions nc_malloc, nc_calloc, and nc_free. - * + * * @author Ed Hartnett */ @@ -17,7 +19,9 @@ redistribution conditions. */ #include #include #include "assert.h" +#ifdef USE_HDF5 #include +#endif /* USE_HDF5 */ /* This contents of this file get skipped if LOGGING is not defined * during compile. */ @@ -28,7 +32,7 @@ extern int nc_log_level; /* This function prints out a message, if the severity of the message is lower than the global nc_log_level. To use it, do something like this: - + nc_log(0, "this computer will explode in %d seconds", i); After the first arg (the severity), use the rest like a normal @@ -36,7 +40,7 @@ extern int nc_log_level; This function is heavily based on the function in section 15.5 of the C FAQ. */ -void +void nc_log(int severity, const char *fmt, ...) { va_list argp; @@ -58,17 +62,18 @@ nc_log(int severity, const char *fmt, ...) va_start(argp, fmt); vfprintf(stderr, fmt, argp); va_end(argp); - + /* Put on a final linefeed. */ fprintf(stderr, "\n"); fflush(stderr); } -void +void nc_log_hdf5(void) { +#ifdef USE_HDF5 H5Eprint(NULL); +#endif /* USE_HDF5 */ } #endif /* ifdef LOGGING */ - diff --git a/libsrc4/nc4attr.c b/libsrc4/nc4attr.c index 3e86df54eb..651014d9c7 100644 --- a/libsrc4/nc4attr.c +++ b/libsrc4/nc4attr.c @@ -18,79 +18,9 @@ #include "nc.h" #include "nc4internal.h" -#include "hdf5internal.h" #include "nc4dispatch.h" #include "ncdispatch.h" -/** - * @internal Get special informatation about the attribute. - * - * @param h5 Pointer to HDF5 file info struct. - * @param name Name of attribute. - * @param filetypep Pointer that gets type of the attribute data in - * file. - * @param mem_type Type of attribute data in memory. - * @param lenp Pointer that gets length of attribute array. - * @param attnump Pointer that gets the attribute number. - * @param data Attribute data. - * - * @return ::NC_NOERR No error. - * @return ::NC_EBADID Bad ncid. - * @return ::NC_ERANGE Data conversion out of range. - * @author Dennis Heimbigner - */ -static int -nc4_get_att_special(NC_FILE_INFO_T* h5, const char* name, - nc_type* filetypep, nc_type mem_type, size_t* lenp, - int* attnump, void* data) -{ - /* Fail if asking for att id */ - if(attnump) - return NC_EATTMETA; - - if(strcmp(name,NCPROPS)==0) { - char* propdata = NULL; - int stat = NC_NOERR; - int len; - if(h5->provenance->propattr.version == 0) - return NC_ENOTATT; - if(mem_type == NC_NAT) mem_type = NC_CHAR; - if(mem_type != NC_CHAR) - return NC_ECHAR; - if(filetypep) *filetypep = NC_CHAR; - stat = NC4_buildpropinfo(&h5->provenance->propattr, &propdata); - if(stat != NC_NOERR) return stat; - len = strlen(propdata); - if(lenp) *lenp = len; - if(data) strncpy((char*)data,propdata,len+1); - free(propdata); - } else if(strcmp(name,ISNETCDF4ATT)==0 - || strcmp(name,SUPERBLOCKATT)==0) { - unsigned long long iv = 0; - if(filetypep) *filetypep = NC_INT; - if(lenp) *lenp = 1; - if(strcmp(name,SUPERBLOCKATT)==0) - iv = (unsigned long long)h5->provenance->superblockversion; - else /* strcmp(name,ISNETCDF4ATT)==0 */ - iv = NC4_isnetcdf4(h5); - if(mem_type == NC_NAT) mem_type = NC_INT; - if(data) - switch (mem_type) { - case NC_BYTE: *((char*)data) = (char)iv; break; - case NC_SHORT: *((short*)data) = (short)iv; break; - case NC_INT: *((int*)data) = (int)iv; break; - case NC_UBYTE: *((unsigned char*)data) = (unsigned char)iv; break; - case NC_USHORT: *((unsigned short*)data) = (unsigned short)iv; break; - case NC_UINT: *((unsigned int*)data) = (unsigned int)iv; break; - case NC_INT64: *((long long*)data) = (long long)iv; break; - case NC_UINT64: *((unsigned long long*)data) = (unsigned long long)iv; break; - default: - return NC_ERANGE; - } - } - return NC_NOERR; -} - /** * @internal Get or put attribute metadata from our linked list of * file info. Always locate the attribute by name, never by attnum. @@ -98,7 +28,7 @@ nc4_get_att_special(NC_FILE_INFO_T* h5, const char* name, * * @param ncid File and group ID. * @param varid Variable ID. - * @param name Name of attribute. + * @param name Name of attribute. Must already be normalized. * @param xtype Pointer that gets (file) type of attribute. Ignored if * NULL. * @param mem_type The type of attribute data in memory. @@ -123,7 +53,6 @@ nc4_get_att_ptrs(NC_FILE_INFO_T *h5, NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, int range_error = NC_NOERR; void *bufr = NULL; size_t type_size; - char norm_name[NC_MAX_NAME + 1]; int varid; int i; int retval; @@ -139,20 +68,8 @@ nc4_get_att_ptrs(NC_FILE_INFO_T *h5, NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var, if (name == NULL) BAIL(NC_EBADNAME); - /* Normalize name. */ - if ((retval = nc4_normalize_name(name, norm_name))) - BAIL(retval); - - /* If this is one of the reserved atts, use nc_get_att_special. */ - if (!var) - { - const NC_reservedatt* ra = NC_findreserved(norm_name); - if(ra != NULL && (ra->flags & NAMEONLYFLAG)) - return nc4_get_att_special(h5, norm_name, xtype, mem_type, lenp, attnum, data); - } - /* Find the attribute, if it exists. */ - if ((retval = nc4_find_grp_att(grp, varid, norm_name, my_attnum, &att))) + if ((retval = nc4_find_grp_att(grp, varid, name, my_attnum, &att))) return retval; /* If mem_type is NC_NAT, it means we want to use the attribute's @@ -299,6 +216,7 @@ nc4_get_att(int ncid, int varid, const char *name, nc_type *xtype, NC_FILE_INFO_T *h5; NC_GRP_INFO_T *grp; NC_VAR_INFO_T *var = NULL; + char norm_name[NC_MAX_NAME + 1]; int retval; LOG((3, "%s: ncid 0x%x varid %d mem_type %d", __func__, ncid, @@ -321,7 +239,11 @@ nc4_get_att(int ncid, int varid, const char *name, nc_type *xtype, if (!name) return NC_EBADNAME; - return nc4_get_att_ptrs(h5, grp, var, name, xtype, mem_type, lenp, + /* Normalize name. */ + if ((retval = nc4_normalize_name(name, norm_name))) + return retval; + + return nc4_get_att_ptrs(h5, grp, var, norm_name, xtype, mem_type, lenp, attnum, data); } diff --git a/libsrc4/nc4dispatch.c b/libsrc4/nc4dispatch.c index 110b0144ac..95cb1f8867 100644 --- a/libsrc4/nc4dispatch.c +++ b/libsrc4/nc4dispatch.c @@ -78,6 +78,5 @@ NC4_initialize(void) int NC4_finalize(void) { - nc4_hdf5_finalize(); return NC_NOERR; } diff --git a/libsrc4/nc4internal.c b/libsrc4/nc4internal.c index 567af43853..bb510da6b9 100644 --- a/libsrc4/nc4internal.c +++ b/libsrc4/nc4internal.c @@ -21,11 +21,10 @@ #include "ncdispatch.h" /* from libdispatch */ #include "ncutf8.h" -/* These are the default chunk cache sizes for HDF5 files created or - * opened with netCDF-4. */ -extern size_t nc4_chunk_cache_size; -extern size_t nc4_chunk_cache_nelems; -extern float nc4_chunk_cache_preemption; +/* These hold the file caching settings for the library. */ +size_t nc4_chunk_cache_size = CHUNK_CACHE_SIZE; /**< Default chunk cache size. */ +size_t nc4_chunk_cache_nelems = CHUNK_CACHE_NELEMS; /**< Default chunk cache number of elements. */ +float nc4_chunk_cache_preemption = CHUNK_CACHE_PREEMPTION; /**< Default chunk cache preemption. */ #ifdef LOGGING /* This is the severity level of messages which will be logged. Use @@ -1413,10 +1412,7 @@ int nc_set_log_level(int new_level) { #ifdef LOGGING - if(!nc4_hdf5_initialized) - nc4_hdf5_initialize(); - - /* Now remember the new level. */ + /* Remember the new level. */ nc_log_level = new_level; LOG((4, "log_level changed to %d", nc_log_level)); #endif /*LOGGING */ diff --git a/libsrc4/nc4printer.c b/libsrc4/nc4printer.c index 0596b0f0b9..641eff92bc 100644 --- a/libsrc4/nc4printer.c +++ b/libsrc4/nc4printer.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -17,7 +17,7 @@ create other tools. #include "ncbytes.h" #include "nclist.h" -#undef DEBUG +#undef DEBUG #define BUFSIZE 4096 @@ -148,7 +148,7 @@ freeNC4Printer(NC4printer* out) { int i; - if(out == NULL) return; + if(out == NULL) return; #ifdef DEBUG fprintf(stderr,"free: |allnodes=%ld\n",nclistlength(out->allnodes)); @@ -206,7 +206,7 @@ printNode(NC4printer* out, NCID* node, int depth) switch (node->sort) { case GROUP: - /* Get group name */ + /* Get group name */ if((ret=nc_inq_grpname(node->id,name))) FAIL; SETNAME(node,name); /* get group counts */ @@ -304,7 +304,7 @@ printNode(NC4printer* out, NCID* node, int depth) printXMLAttributeName(out, "name", node->name); printXMLAttributeSize(out, "size", node->size); CAT("/>"); - break; + break; case NC_ENUM: if((ret=nc_inq_enum(GROUPOF(node),node->id,NULL,NULL,NULL,&count))) FAIL; INDENT(depth); CAT("base = findType(out,base); id->size = count; - printAttribute(out,id,depth); + printAttribute(out,id,depth); CAT("\n"); } depth--; @@ -636,7 +636,7 @@ makeFQN(NCID* id, NCbytes* path) fqnWalk(g,path); ncbytesappend(path,'/'); if(id->sort != GROUP) - ncbytescat(path,id->name); + ncbytescat(path,id->name); ncbytesnull(path); } @@ -646,7 +646,7 @@ fqnWalk(NCID* grp, NCbytes* path) if(grp->id != 0) { NCID* parent = grp->parent; fqnWalk(parent,path); - ncbytesappend(path,'/'); + ncbytesappend(path,'/'); ncbytescat(path,parent->name); } } @@ -738,7 +738,7 @@ printString(NCbytes* out, const char* s, int quotes) if(c == '\\') ncbytescat(out,"\\\\"); else if(c == '"') ncbytescat(out,"\\\""); else ncbytesappend(out,c); - } + } if(quotes) ncbytesappend(out,'"'); ncbytesnull(out); } @@ -783,4 +783,3 @@ readAttributeValues(NCID* attr, void** valuesp) if(valuesp) *valuesp = values; return ret; } - diff --git a/libsrc4/nc4var.c b/libsrc4/nc4var.c index 6d242c4443..7a6f4cbfb6 100644 --- a/libsrc4/nc4var.c +++ b/libsrc4/nc4var.c @@ -1,4 +1,4 @@ -/* Copyright 2003-2006, University Corporation for Atmospheric +/* Copyright 2003-2018, University Corporation for Atmospheric * Research. See COPYRIGHT file for copying and redistribution * conditions.*/ /** @@ -16,94 +16,6 @@ #include "hdf5internal.h" #include -/** - * @internal Set chunk cache size for a variable. This is the internal - * function called by nc_set_var_chunk_cache(). - * - * @param ncid File ID. - * @param varid Variable ID. - * @param size Size in bytes to set cache. - * @param nelems Number of elements in cache. - * @param preemption Controls cache swapping. - * - * @returns ::NC_NOERR No error. - * @returns ::NC_EBADID Bad ncid. - * @returns ::NC_ENOTVAR Invalid variable ID. - * @returns ::NC_ESTRICTNC3 Attempting netcdf-4 operation on strict nc3 netcdf-4 file. - * @returns ::NC_EINVAL Invalid input. - * @returns ::NC_EHDFERR HDF5 error. - * @author Ed Hartnett - */ -int -NC4_set_var_chunk_cache(int ncid, int varid, size_t size, size_t nelems, - float preemption) -{ - NC *nc; - NC_GRP_INFO_T *grp; - NC_FILE_INFO_T *h5; - NC_VAR_INFO_T *var; - int retval; - - /* Check input for validity. */ - if (preemption < 0 || preemption > 1) - return NC_EINVAL; - - /* Find info for this file and group, and set pointer to each. */ - if ((retval = nc4_find_nc_grp_h5(ncid, &nc, &grp, &h5))) - return retval; - assert(nc && grp && h5); - - /* Find the var. */ - var = (NC_VAR_INFO_T*)ncindexith(grp->vars,varid); - if(!var) - return NC_ENOTVAR; - assert(var && var->hdr.id == varid); - - /* Set the values. */ - var->chunk_cache_size = size; - var->chunk_cache_nelems = nelems; - var->chunk_cache_preemption = preemption; - - if ((retval = nc4_reopen_dataset(grp, var))) - return retval; - - return NC_NOERR; -} - -/** - * @internal A wrapper for NC4_set_var_chunk_cache(), we need this - * version for fortran. Negative values leave settings as they are. - * - * @param ncid File ID. - * @param varid Variable ID. - * @param size Size in bytes to set cache. - * @param nelems Number of elements in cache. - * @param preemption Controls cache swapping. - * - * @returns ::NC_NOERR for success - * @author Ed Hartnett - */ -int -nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, - int preemption) -{ - size_t real_size = H5D_CHUNK_CACHE_NBYTES_DEFAULT; - size_t real_nelems = H5D_CHUNK_CACHE_NSLOTS_DEFAULT; - float real_preemption = CHUNK_CACHE_PREEMPTION; - - if (size >= 0) - real_size = ((size_t) size) * MEGABYTE; - - if (nelems >= 0) - real_nelems = nelems; - - if (preemption >= 0) - real_preemption = preemption / 100.; - - return NC4_set_var_chunk_cache(ncid, varid, real_size, real_nelems, - real_preemption); -} - /** * @internal This is called by nc_get_var_chunk_cache(). Get chunk * cache size for a variable. @@ -1395,3 +1307,69 @@ nc4_get_default_fill_value(const NC_TYPE_INFO_T *type_info, void *fill_value) return NC_NOERR; } + +/** + * @internal Get the length, in bytes, of one element of a type in + * memory. + * + * @param h5 Pointer to HDF5 file info struct. + * @param xtype NetCDF type ID. + * @param len Pointer that gets length in bytes. + * + * @returns NC_NOERR No error. + * @returns NC_EBADTYPE Type not found. + * @author Ed Hartnett + */ +int +nc4_get_typelen_mem(NC_FILE_INFO_T *h5, nc_type xtype, size_t *len) +{ + NC_TYPE_INFO_T *type; + int retval; + + LOG((4, "%s xtype: %d", __func__, xtype)); + assert(len); + + /* If this is an atomic type, the answer is easy. */ + switch (xtype) + { + case NC_BYTE: + case NC_CHAR: + case NC_UBYTE: + *len = sizeof(char); + return NC_NOERR; + case NC_SHORT: + case NC_USHORT: + *len = sizeof(short); + return NC_NOERR; + case NC_INT: + case NC_UINT: + *len = sizeof(int); + return NC_NOERR; + case NC_FLOAT: + *len = sizeof(float); + return NC_NOERR; + case NC_DOUBLE: + *len = sizeof(double); + return NC_NOERR; + case NC_INT64: + case NC_UINT64: + *len = sizeof(long long); + return NC_NOERR; + case NC_STRING: + *len = sizeof(char *); + return NC_NOERR; + } + + /* See if var is compound type. */ + if ((retval = nc4_find_type(h5, xtype, &type))) + return retval; + + if (!type) + return NC_EBADTYPE; + + *len = type->size; + + LOG((5, "type->size: %d", type->size)); + + return NC_NOERR; +} diff --git a/libsrc4/ncfunc.c b/libsrc4/ncfunc.c index 8cd0d58c04..714867d9ce 100644 --- a/libsrc4/ncfunc.c +++ b/libsrc4/ncfunc.c @@ -1,7 +1,7 @@ /** * @internal * - * Copyright 2003, University Corporation for Atmospheric + * Copyright 2018, University Corporation for Atmospheric * Research. See netcdf-4/docs/COPYRIGHT file for copying and * redistribution conditions. * @@ -82,7 +82,7 @@ NC4_inq_format_extended(int ncid, int *formatp, int *modep) if(modep) *modep = nc->mode|NC_NETCDF4; - if (formatp) + if (formatp) *formatp = NC_FORMATX_NC_HDF5; return NC_NOERR; diff --git a/libsrc4/ncindex.c b/libsrc4/ncindex.c index 54f27be424..e76b005f4a 100644 --- a/libsrc4/ncindex.c +++ b/libsrc4/ncindex.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ @@ -176,7 +176,7 @@ also recompute their hashkey. /* Return 1 if ok, 0 otherwise.*/ int ncindexrebuild(NCindex* index) -{ +{ #ifndef NCNOHASH size_t i; size_t size = nclistlength(index->list); @@ -196,7 +196,7 @@ ncindexrebuild(NCindex* index) } #endif if(contents != NULL) free(contents); - return 1; + return 1; } /* Free a list map */ @@ -206,7 +206,7 @@ ncindexfree(NCindex* index) if(index == NULL) return 1; nclistfree(index->list); NC_hashmapfree(index->map); - free(index); + free(index); return 1; } @@ -235,7 +235,7 @@ keystr(NC_hentry* e) { if(e->keysize < sizeof(uintptr_t)) return (const char*)(&e->key); - else + else return (const char*)(e->key); } #endif @@ -253,7 +253,7 @@ ncindexverify(NCindex* lm, int dump) if(lm == NULL) { fprintf(stderr,"index: \n"); return 1; - } + } if(dump) { fprintf(stderr,"-------------------------\n"); #ifndef NCNOHASH diff --git a/libsrcp/CMakeLists.txt b/libsrcp/CMakeLists.txt index 7d8ab9cf37..adf1d34136 100644 --- a/libsrcp/CMakeLists.txt +++ b/libsrcp/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(libsrcp_SOURCES ncpdispatch.c) add_library(netcdfp OBJECT ${libsrcp_SOURCES}) diff --git a/libsrcp/Makefile.am b/libsrcp/Makefile.am index 0747f35e9c..58f3d8e10d 100644 --- a/libsrcp/Makefile.am +++ b/libsrcp/Makefile.am @@ -1,5 +1,5 @@ ## This is an automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file is in charge of building the libsrc directory, # which contains the classic library code. @@ -16,4 +16,4 @@ libnetcdfp_la_SOURCES = ncpdispatch.c noinst_LTLIBRARIES = libnetcdfp.la -EXTRA_DIST = CMakeLists.txt +EXTRA_DIST = CMakeLists.txt diff --git a/libsrcp/ncpdispatch.c b/libsrcp/ncpdispatch.c index 0eb490e609..765a628a5f 100644 --- a/libsrcp/ncpdispatch.c +++ b/libsrcp/ncpdispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/nc_test/CMakeLists.txt b/nc_test/CMakeLists.txt index 0e5c94d1c4..4f75ed6030 100644 --- a/nc_test/CMakeLists.txt +++ b/nc_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + message(STATUS "CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}") message(STATUS "CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}") message(STATUS "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/nc_test/Makefile.am b/nc_test/Makefile.am index 23e16db048..0050b64432 100644 --- a/nc_test/Makefile.am +++ b/nc_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the nc_test program, which tests the # netCDF-3 API for all formats. @@ -51,7 +51,7 @@ TESTPROGRAMS += testnc3perf testnc3perf_SOURCES = testnc3perf.c endif -if USE_NETCDF4 +if USE_HDF5 TESTPROGRAMS += tst_diskless6 tst_diskless6_SOURCES = tst_diskless6.c endif @@ -62,7 +62,7 @@ check_PROGRAMS = $(TESTPROGRAMS) # Build Diskless test helpers check_PROGRAMS += tst_diskless tst_diskless3 tst_diskless4 \ tst_diskless5 tst_inmemory tst_open_mem -if USE_NETCDF4 +if USE_HDF5 check_PROGRAMS += tst_diskless2 endif diff --git a/nc_test/error.c b/nc_test/error.c index 2d502ca0e5..3111a31f85 100644 --- a/nc_test/error.c +++ b/nc_test/error.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: error.c,v 1.7 2007/05/15 01:36:57 ed Exp $ *********************************************************************/ diff --git a/nc_test/error.h b/nc_test/error.h index f8ccf3b062..6e6a10edc8 100644 --- a/nc_test/error.h +++ b/nc_test/error.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nc_test/large_files.c b/nc_test/large_files.c index a723c81c1b..114fa3d2fd 100644 --- a/nc_test/large_files.c +++ b/nc_test/large_files.c @@ -1,5 +1,5 @@ /* - Copyright 2004-2006, UCAR/Unidata + Copyright 2004-2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/nc_test.c b/nc_test/nc_test.c index 9e5490e82f..74ac76e04c 100644 --- a/nc_test/nc_test.c +++ b/nc_test/nc_test.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996-2005, UCAR/Unidata + * Copyright 1996-2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * $Id: nc_test.c 2796 2014-10-28 03:40:29Z wkliao $ *********************************************************************/ @@ -153,7 +153,7 @@ main(int argc, char *argv[]) case NC_FORMAT_NETCDF4_CLASSIC: -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 nc_set_default_format(NC_FORMAT_NETCDF4_CLASSIC, NULL); strcpy(testfile, "nc_test_netcdf4.nc"); fprintf(stderr, "\n\nSwitching to netCDF-4 format (with NC_CLASSIC_MODEL).\n"); diff --git a/nc_test/quick_large_files.c b/nc_test/quick_large_files.c index 913916c042..04d7eac240 100644 --- a/nc_test/quick_large_files.c +++ b/nc_test/quick_large_files.c @@ -1,5 +1,5 @@ /* - Copyright 2004-2006, UCAR/Unidata + Copyright 2004-2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program (quickly, but not thoroughly) tests the large file diff --git a/nc_test/run_diskless.sh b/nc_test/run_diskless.sh index f7e87fdc35..30d27fa5df 100755 --- a/nc_test/run_diskless.sh +++ b/nc_test/run_diskless.sh @@ -17,18 +17,18 @@ FILE3=tst_diskless3.nc echo "" echo "*** Testing in-memory (diskless) files with and without persistence" -HASNC4=`${top_builddir}/nc-config --has-nc4` +HASHDF5=`${top_builddir}/nc-config --has-hdf5` echo "**** Test diskless netCDF classic file without persistence" ${execdir}/tst_diskless echo "PASS: diskless netCDF classic file without persistence" -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then echo "" echo "**** Test diskless netCDF enhanced file without persistence" ${execdir}/tst_diskless netcdf4 echo "PASS: diskless netCDF enhanced file without persistence" -fi #HASNC4 +fi #HASHDF5 echo "" echo "**** Test diskless netCDF classic file with persistence" @@ -43,7 +43,7 @@ echo "#### $FILE1 not created" echo "FAIL: diskless netCDF classic file with persistence" fi -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then echo "" echo "**** Test diskless netCDF enhanced file with persistence" rm -f $FILE1 @@ -57,10 +57,10 @@ echo "$FILE1 not created" echo "FAIL: diskless netCDF enhanced file with persistence" fi -fi #HASNC4 +fi #HASHDF5 # Do extended netcdf enhanced test -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then ok="" echo "" @@ -90,7 +90,7 @@ else echo "FAIL: extended enhanced diskless netCDF with persistence" fi -fi #HASNC4 +fi #HASHDF5 echo "" echo "**** Testing nc_open in-memory (diskless) files" diff --git a/nc_test/run_inmemory.sh b/nc_test/run_inmemory.sh index b4515c5d1b..e9f90eb6c6 100755 --- a/nc_test/run_inmemory.sh +++ b/nc_test/run_inmemory.sh @@ -22,7 +22,7 @@ OMEMFILE=f03tst_open_mem.nc echo "" echo "*** Testing in-memory operations" -HASNC4=`${top_builddir}/nc-config --has-nc4` +HASHDF5=`${top_builddir}/nc-config --has-hdf5` # Execute the core of the inmemory tests ${execdir}/tst_inmemory @@ -34,7 +34,7 @@ ${NCDUMP} -n "${FILE3}" ${FILE3}.nc > ${FILE3}.cdl ${NCDUMP} -n "${FILE3}" ${CREATE3}.nc > ${CREATE3}.cdl diff -wb ${FILE3}.cdl ${CREATE3}.cdl -if test "x$HASNC4" = "xyes" ; then +if test "x$HASHDF5" = "xyes" ; then ${NCDUMP} ${FILE4}.nc > ${FILE4}.cdl ${NCDUMP} ${CREATE4}.nc > ${CREATE4}.cdl diff -wb ${FILE4}.cdl ${CREATE4}.cdl diff --git a/nc_test/t_nc.c b/nc_test/t_nc.c index 2b6a78f9e9..7fdc285208 100644 --- a/nc_test/t_nc.c +++ b/nc_test/t_nc.c @@ -1,4 +1,4 @@ -/* Copyright 1988-2010 University Corporation for Atmospheric Research +/* Copyright 1988-2018 University Corporation for Atmospheric Research See netcdf/COPYRIGHT file for copying and redistribution conditions. diff --git a/nc_test/t_nc_p5.c b/nc_test/t_nc_p5.c index 728783f0b0..82ce46e72e 100644 --- a/nc_test/t_nc_p5.c +++ b/nc_test/t_nc_p5.c @@ -1,14 +1,14 @@ -/* Copyright 1988-2010 University Corporation for Atmospheric Research +/* Copyright 1988-2018 University Corporation for Atmospheric Research See netcdf/COPYRIGHT file for copying and redistribution conditions. Program to create a cdf, exercise all cdf functions. Creates cdf, stuff it full of numbers, closes it. Then reopens it, and checks for consistency. Leaves the file around afterwards. - + Based on a program to test the nasa look-alike program, so not the most appropriate test. See ../nctest for a complete spec test. - + $Id: t_nc.c 2792 2014-10-27 06:02:59Z wkliao $ */ #define REDEF @@ -199,32 +199,32 @@ createtestvars(int id, const struct tcdfvar *testvars, size_t count) { assert(nc_def_var(id, vp->mnem, vp->type, vp->ndims, vp->dims, &varid) - == NC_NOERR ); + == NC_NOERR ); assert( nc_put_att_text(id,ii,reqattr[0],strlen(vp->units), vp->units) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[1],NC_DOUBLE,1, &vp->validmin) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[2],NC_DOUBLE,1, &vp->validmax) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[3],NC_DOUBLE,1, &vp->scalemin) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[4],NC_DOUBLE,1, &vp->scalemax) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_text(id,ii,reqattr[5],strlen(vp->fieldnam), vp->fieldnam) - == NC_NOERR); + == NC_NOERR); } } @@ -256,7 +256,7 @@ fill_seq(int id) { size_t *cc = vindices; while (cc < &vindices[num_dims]) - *cc++ = 0; + *cc++ = 0; } sizes[0] = NUM_RECS; @@ -277,7 +277,7 @@ check_fill_seq(int id) sizes[0] = NUM_RECS; cc = vindices; while (cc < &vindices[num_dims]) - *cc++ = 0; + *cc++ = 0; /* ripple counter */ cc = vindices; @@ -288,7 +288,7 @@ check_fill_seq(int id) { if (mm == &sizes[num_dims - 1]) { - if(nc_get_var1_float(id, Float_id, vindices, &got.fl[0]) == -1) + if(nc_get_var1_float(id, Float_id, vindices, &got.fl[0]) == -1) goto bad_ret; /* val = (float) ii; */ /* if(val != got.fl[0]) */ @@ -366,7 +366,7 @@ main(int argc, char *argv[]) fprintf(stderr,"Error %s in file %s at line %d\n",nc_strerror(ret),__FILE__,__LINE__); exit(ret); } - + assert( nc_put_att_text(id, NC_GLOBAL, "TITLE", 12, "another name") == NC_NOERR); assert( nc_get_att_text(id, NC_GLOBAL, @@ -383,7 +383,7 @@ main(int argc, char *argv[]) createtestdims(id, NUM_DIMS, sizes, dim_names); testdims(id, NUM_DIMS, sizes, dim_names); - createtestvars(id, testvars, NUM_TESTVARS); + createtestvars(id, testvars, NUM_TESTVARS); { int ifill = -1; double dfill = -9999; @@ -395,7 +395,7 @@ main(int argc, char *argv[]) #ifdef REDEF assert( nc__enddef(id, 0, align, 0, 2*align) == NC_NOERR ); - assert( nc_put_var1_int(id, Long_id, indices[3], &birthday) + assert( nc_put_var1_int(id, Long_id, indices[3], &birthday) == NC_NOERR ); fill_seq(id); assert( nc_redef(id) == NC_NOERR ); @@ -473,7 +473,7 @@ main(int argc, char *argv[]) /* (void) printf("reopen id = %d for filename %s\n", */ /* id, fname); */ - /* NC */ + /* NC */ /* (void) printf("NC "); */ assert( nc_inq(id, &(cdesc->num_dims), &(cdesc->num_vars), &(cdesc->num_attrs), &(cdesc->xtendim) ) == NC_NOERR); @@ -481,7 +481,7 @@ main(int argc, char *argv[]) assert(cdesc->num_attrs == 1); assert(cdesc->num_vars == NUM_TESTVARS); /* (void) printf("done\n"); */ - + /* GATTR */ /* (void) printf("GATTR "); */ @@ -498,7 +498,7 @@ main(int argc, char *argv[]) /* (void) printf("VAR "); */ assert( cdesc->num_vars == NUM_TESTVARS ); - for(ii = 0; ii < cdesc->num_vars; ii++, tvp++ ) + for(ii = 0; ii < cdesc->num_vars; ii++, tvp++ ) { int jj; assert( nc_inq_var(id, ii, @@ -532,7 +532,7 @@ main(int argc, char *argv[]) /* VATTR */ /* (void) printf("VATTR\n"); */ - for(jj=0; jjnum_attrs; jj++ ) + for(jj=0; jjnum_attrs; jj++ ) { assert( nc_inq_attname(id, ii, jj, adesc->mnem) == NC_NOERR); if( strcmp(adesc->mnem, reqattr[jj]) != 0 ) @@ -547,7 +547,7 @@ main(int argc, char *argv[]) != -1) { assert( adesc->type == NC_CHAR ); assert( adesc->len == strlen(tvp->units) ); - assert( nc_get_att_text(id,ii,reqattr[0],buf)== NC_NOERR); + assert( nc_get_att_text(id,ii,reqattr[0],buf)== NC_NOERR); buf[adesc->len] = 0; assert( strcmp(tvp->units, buf) == 0); } @@ -596,7 +596,7 @@ main(int argc, char *argv[]) { assert( adesc->type == NC_CHAR ); assert( adesc->len == strlen(tvp->fieldnam) ); - assert( nc_get_att_text(id,ii,reqattr[5],buf)== NC_NOERR); + assert( nc_get_att_text(id,ii,reqattr[5],buf)== NC_NOERR); buf[adesc->len] = 0; assert( strcmp(tvp->fieldnam, buf) == 0); } diff --git a/nc_test/testnc3perf.c b/nc_test/testnc3perf.c index 549f6203fa..5a51a50626 100644 --- a/nc_test/testnc3perf.c +++ b/nc_test/testnc3perf.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1989, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/nctime.c,v 1.12 1996/04/30 17:56:58 davis Exp $ *********************************************************************/ @@ -66,7 +66,7 @@ static int DEFAULTDIMS[NDIMS] = {10, 20, 30, 40}; /* * Fill typed array element with specified value, that is - * + * * v[ii] = val; */ static void @@ -111,7 +111,7 @@ val_stuff(type, v, ii, val) /* v[ii] = val */ * * (v[ii] != val) * - * returns 0 if equal, 1 if not equal + * returns 0 if equal, 1 if not equal */ static int @@ -170,7 +170,7 @@ val_diff(type, v, ii, val) /* v[ii] != val */ clock_t TMus, TMsy; /* user and system time in clock ticks */ \ float TMelapsed; /* elapsed time in seconds */ \ struct tms TMru; - + #define TIMING_START \ TMrepeats = 1; \ do { /* loop enough times for at least 0.1 second elapsed time */ \ @@ -179,7 +179,7 @@ val_diff(type, v, ii, val) /* v[ii] != val */ TMus = TMru.tms_utime; \ TMsy = TMru.tms_stime; \ for(TMreps=0;TMreps < TMrepeats;TMreps++) { - + #define TIMING_END \ } \ times(&TMru); \ @@ -231,7 +231,7 @@ test_slabs(ncid, sizes) dims[idim].size = sizes[idim]; dims[idim].name = dnames[idim]; } - + /* back in define mode OK, now add dimensions */ dimids[0] = ncdimdef(ncid, dims[0].name, NC_UNLIMITED); @@ -263,7 +263,7 @@ test_slabs(ncid, sizes) if (ncendef (ncid) == -1) { ncclose(ncid); return; } - + printf("Note: first ncvarput writes fill values for all variables.\n"); for (iv = 0; iv < NVARS; iv++) { /* test each type of variable */ @@ -291,7 +291,7 @@ test_slabs(ncid, sizes) } } } - + for (idim = 0; idim < NDIMS; idim++) { corner[idim] = 0; edge[idim] = dims[idim].size; @@ -319,19 +319,19 @@ test_slabs(ncid, sizes) edge[idim] = 1; point[idim] = corner[idim]; } - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); - + TIMING_START ; if (ncvarget(ncid, varid[iv], corner, edge, (void *) v) == -1) return; TIMING_END ; - + /* if (v[0] != VF(point)) */ if (val_diff(va[iv].type, v, 0, VF(point))) fprintf(stderr,"ncvarget got wrong value for point"); - + /* get a vector in each direction */ for (idim=0; idim < NDIMS; idim++) { for (jdim=0; jdim < NDIMS; jdim++) { @@ -370,7 +370,7 @@ test_slabs(ncid, sizes) corner[jdim] = 0; edge[idim] = dims[idim].size; edge[jdim] = dims[jdim].size; - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); @@ -393,7 +393,7 @@ test_slabs(ncid, sizes) } } } - + /* get a cube in each direction */ for (idim=0; idim < NDIMS; idim++) { for (jdim=idim+1; jdim < NDIMS; jdim++) { @@ -409,7 +409,7 @@ test_slabs(ncid, sizes) edge[idim] = dims[idim].size; edge[jdim] = dims[jdim].size; edge[kdim] = dims[kdim].size; - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); @@ -439,13 +439,13 @@ test_slabs(ncid, sizes) } } } - + /* get one 4-D slab of data */ for(idim = 0; idim < NDIMS; idim++) { corner[idim] = 0; edge[idim] = dims[idim].size; } - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); diff --git a/nc_test/tests.h b/nc_test/tests.h index 2e24295a5e..0eba3b8e4c 100644 --- a/nc_test/tests.h +++ b/nc_test/tests.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: tests.h 2785 2014-10-26 05:21:20Z wkliao $ *********************************************************************/ diff --git a/nc_test/tst_addvar.c b/nc_test/tst_addvar.c index f05a8af876..d57bb0ba6c 100644 --- a/nc_test/tst_addvar.c +++ b/nc_test/tst_addvar.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This program adds two new variables to an existing netCDF file. * It is used to test if netCDF can correctly calculate the file offsets * for the two new variables, in particular for files that align the diff --git a/nc_test/tst_atts3.c b/nc_test/tst_atts3.c index fcdcc691ae..bcad82c07b 100644 --- a/nc_test/tst_atts3.c +++ b/nc_test/tst_atts3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test/tst_big_rvar.c b/nc_test/tst_big_rvar.c index 8a595474c5..28c27097b8 100644 --- a/nc_test/tst_big_rvar.c +++ b/nc_test/tst_big_rvar.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests a large file bug on 32-bit platforms in versions diff --git a/nc_test/tst_big_var.c b/nc_test/tst_big_var.c index f66080c1b4..b3b5bd9945 100644 --- a/nc_test/tst_big_var.c +++ b/nc_test/tst_big_var.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_big_var2.c b/nc_test/tst_big_var2.c index 4f722ca745..362efa5574 100644 --- a/nc_test/tst_big_var2.c +++ b/nc_test/tst_big_var2.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the fix for a large file bug in versions previous diff --git a/nc_test/tst_big_var6.c b/nc_test/tst_big_var6.c index 5f4fad7e05..04f6e9d7a7 100644 --- a/nc_test/tst_big_var6.c +++ b/nc_test/tst_big_var6.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the fix for a large file bug in versions previous diff --git a/nc_test/tst_cdf5_begin.c b/nc_test/tst_cdf5_begin.c index d704d9aa0a..e468f60462 100644 --- a/nc_test/tst_cdf5_begin.c +++ b/nc_test/tst_cdf5_begin.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -18,7 +29,7 @@ int main(int argc, char *argv[]) int i, err, nerrs=0, ncid, dimid[2], varid[2]; short buf[10]; size_t start, count; - + err = nc_create(FILE_NAME, NC_CLOBBER|NC_64BIT_DATA, &ncid); ERR; err = nc_def_dim(ncid, "dim0", NC_MAX_UINT, &dimid[0]); ERR err = nc_def_dim(ncid, "dim1", 10, &dimid[1]); ERR @@ -53,4 +64,3 @@ int main(int argc, char *argv[]) return (nerrs > 0); } - diff --git a/nc_test/tst_cdf5format.c b/nc_test/tst_cdf5format.c index 4889357249..e5a2008659 100644 --- a/nc_test/tst_cdf5format.c +++ b/nc_test/tst_cdf5format.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, @@ -23,7 +23,7 @@ write2(int ncid, int parallel) int dimid[NDIM2]; char str[NC_MAX_NAME + 1]; int varid[NVARS]; - + /* define dimension */ if (nc_def_dim(ncid, "Y", NC_UNLIMITED, &dimid[0])) ERR; if (nc_def_dim(ncid, "X", NX, &dimid[1])) ERR; @@ -42,16 +42,16 @@ write2(int ncid, int parallel) if (nc_def_var(ncid, str, NC_INT, 2, dimid, &varid[i])) ERR; } } - + if (nc_enddef(ncid)) ERR; - + /* write all variables */ for (int i = 0; i < NVARS; i++) { size_t start[NDIM2] = {0, 0}; size_t count[NDIM2]; int buf[NX]; - + /* Initialize some data. */ for (int j = 0; j < NX; j++) buf[j] = i * 10 + j; @@ -80,7 +80,7 @@ extend(int ncid) char str[32]; if (nc_redef(ncid)) ERR; - + /* add attributes to make header grow */ for (i = 0; i < NVARS; i++) { @@ -98,7 +98,7 @@ read2(int ncid) for (int i = 0; i < NVARS; i++) { int buf[NX]; - size_t start[2] = {0, 0}, count[2]; + size_t start[2] = {0, 0}, count[2]; if (i % 2) { @@ -109,7 +109,7 @@ read2(int ncid) count[0] = 1; count[1] = NX; } - if (nc_get_vara_int(ncid, i, start, count, buf)) ERR; + if (nc_get_vara_int(ncid, i, start, count, buf)) ERR; for (int j = 0; j < NX; j++) { if (buf[j] != i * 10 + j) @@ -142,12 +142,12 @@ int main(int argc, char* argv[]) if (nc_create_par(FILENAME, cmode, comm, info, &ncid)) ERR; if (write2(ncid, 1)) ERR; if (nc_close(ncid)) ERR; - + /* Re-open the file with pnetCDF (parallel) and add var attributes. */ if (nc_open_par(FILENAME, NC_WRITE, comm, info, &ncid)) ERR; if (extend(ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open with classic and check. */ if (nc_open(FILENAME, 0, &ncid)) ERR; if (read2(ncid)) ERR; @@ -162,7 +162,7 @@ int main(int argc, char* argv[]) if (nc_create(FILENAME, cmode, &ncid)) ERR; if (write2(ncid, 0)) ERR; if (nc_close(ncid)) ERR; - + /* Re-open the file with CDF5 and add some atts. */ if (nc_open(FILENAME, NC_WRITE, &ncid)) ERR; if (extend(ncid)) ERR; diff --git a/nc_test/tst_def_var_fill.c b/nc_test/tst_def_var_fill.c index affd3156e9..ed3f182fa7 100644 --- a/nc_test/tst_def_var_fill.c +++ b/nc_test/tst_def_var_fill.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - * Copyright 2005 University Corporation for Atmospheric Research/Unidata + * Copyright 2018 University Corporation for Atmospheric Research/Unidata * See COPYRIGHT file for conditions of use. * * Test per-variable fill mode for classic file formats. @@ -143,4 +143,3 @@ int main(int argc, char** argv) { return (nerrs > 0); } - diff --git a/nc_test/tst_default_format.c b/nc_test/tst_default_format.c index f1f4e06838..8940500bed 100644 --- a/nc_test/tst_default_format.c +++ b/nc_test/tst_default_format.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -37,7 +48,7 @@ create_check(char *fname, int cmode, int exp_format) default: break; } -#ifndef USE_NETCDF4 +#ifndef USE_HDF5 if (cmode & NC_NETCDF4) exp_err = NC_ENOTBUILT; #endif @@ -160,7 +171,7 @@ int main(int argc, char *argv[]) nerrs += create_check(fname, cmode, NC_FORMAT_64BIT_OFFSET); #endif -#ifndef USE_NETCDF4 +#ifndef USE_HDF5 err = nc_set_default_format(NC_FORMAT_NETCDF4, NULL); EXP_ERR(NC_ENOTBUILT) err = nc_set_default_format(NC_FORMAT_NETCDF4_CLASSIC, NULL); EXP_ERR(NC_ENOTBUILT) nerrs += create_check(fname, NC_NETCDF4, NC_FORMAT_NETCDF4); diff --git a/nc_test/tst_default_format_pnetcdf.c b/nc_test/tst_default_format_pnetcdf.c index 2e7a4fc3da..a7fa31c0f8 100644 --- a/nc_test/tst_default_format_pnetcdf.c +++ b/nc_test/tst_default_format_pnetcdf.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_diskless.c b/nc_test/tst_diskless.c index 73cec34564..5c48769e38 100644 --- a/nc_test/tst_diskless.c +++ b/nc_test/tst_diskless.c @@ -1,7 +1,7 @@ /** \file \internal Basic diskless API tests. -Copyright 2011, UCAR/Unidata. See COPYRIGHT file for copying and +Copyright 2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test/tst_diskless2.c b/nc_test/tst_diskless2.c index 14125e7729..38f30fedf3 100644 --- a/nc_test/tst_diskless2.c +++ b/nc_test/tst_diskless2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include diff --git a/nc_test/tst_diskless3.c b/nc_test/tst_diskless3.c index 442e823297..d4b75e12a4 100644 --- a/nc_test/tst_diskless3.c +++ b/nc_test/tst_diskless3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_diskless4.c b/nc_test/tst_diskless4.c index ee0e9f6796..be667fe745 100644 --- a/nc_test/tst_diskless4.c +++ b/nc_test/tst_diskless4.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_diskless5.c b/nc_test/tst_diskless5.c index ae4639656b..2148f5741a 100644 --- a/nc_test/tst_diskless5.c +++ b/nc_test/tst_diskless5.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include diff --git a/nc_test/tst_diskless6.c b/nc_test/tst_diskless6.c index e2c69cf1bb..d968d71b14 100644 --- a/nc_test/tst_diskless6.c +++ b/nc_test/tst_diskless6.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -215,7 +226,7 @@ main() /* Of the above modified files, re-read and modify but do not re-persist */ /* Test open + modify + rdonly; requires NC_DISKLESS*/ #if 0 - /* Fails with hdf5, file must be writeable even if not persisted */ + /* Fails with hdf5, file must be writeable even if not persisted */ changeaccess(RDONLY); /* prevent re-persist */ #endif printf("*** Testopen modify + rdonly\n"); fflush(stdout); diff --git a/nc_test/tst_err_enddef.c b/nc_test/tst_err_enddef.c index 7d0f9f6cd2..e6a7528394 100644 --- a/nc_test/tst_err_enddef.c +++ b/nc_test/tst_err_enddef.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include diff --git a/nc_test/tst_formats.c b/nc_test/tst_formats.c index 814904a5a6..9679f22d4b 100644 --- a/nc_test/tst_formats.c +++ b/nc_test/tst_formats.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. @@ -36,11 +36,11 @@ determine_test_formats(int *num_formats, int *format) format[ind++] = NC_FORMAT_64BIT_OFFSET; /* Do we have netCDF-4 and netCDF-4 classic? */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 num += 2; format[ind++] = NC_FORMAT_NETCDF4; format[ind++] = NC_FORMAT_NETCDF4_CLASSIC; -#endif /* USE_NETCDF4 */ +#endif /* USE_HDF5 */ /* Do we have CDF5? */ #ifdef ENABLE_CDF5 @@ -58,12 +58,12 @@ check_inq_format(int ncid, int expected_format, int expected_extended_format, in int format; int extended_format; int mode; - + if (nc_inq_format(ncid + 66000, NULL) != NC_EBADID) ERR; if (nc_inq_format(ncid, NULL)) ERR; if (nc_inq_format(ncid, &format)) ERR; if (format != expected_format) { - printf("format %d expected_format %d\n", format, expected_format); + printf("format %d expected_format %d\n", format, expected_format); ERR; } if (nc_inq_format_extended(ncid + 66000, &extended_format, &mode) != NC_EBADID) ERR; diff --git a/nc_test/tst_formatx_pnetcdf.c b/nc_test/tst_formatx_pnetcdf.c index 2cfbf5e83e..d8275daf38 100644 --- a/nc_test/tst_formatx_pnetcdf.c +++ b/nc_test/tst_formatx_pnetcdf.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, @@ -27,7 +27,7 @@ int main(int argc, char* argv[]) int err = 0; int ecode = 0; int ncid; - int cmode, format; + int cmode, format; int nprocs, rank; MPI_Comm comm=MPI_COMM_SELF; MPI_Info info=MPI_INFO_NULL; diff --git a/nc_test/tst_global_fillval.c b/nc_test/tst_global_fillval.c index 4812d3f72a..51415d75a7 100644 --- a/nc_test/tst_global_fillval.c +++ b/nc_test/tst_global_fillval.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2017 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. @@ -33,7 +33,7 @@ main(int argc, char **argv) int *formats = NULL; /* Determine how many formats are in use. */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 num_formats += 2; #endif @@ -49,7 +49,7 @@ main(int argc, char **argv) #ifdef ENABLE_CDF5 formats[n++] = NC_64BIT_DATA; #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 formats[n++] = NC_NETCDF4; formats[n++] = NC_CLASSIC_MODEL | NC_NETCDF4; #endif diff --git a/nc_test/tst_inmemory.c b/nc_test/tst_inmemory.c index af3f1b6e10..d3750a4642 100644 --- a/nc_test/tst_inmemory.c +++ b/nc_test/tst_inmemory.c @@ -1,7 +1,7 @@ /** \file \internal Basic NC_INMEMORY API tests both for netcdf-3 and netcdf-4 -Copyright 2011, UCAR/Unidata. See COPYRIGHT file for copying and +Copyright 2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. */ @@ -20,7 +20,7 @@ redistribution conditions. #include "nc_tests.h" #include "err_macros.h" -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 #include extern int H5Eprint1(FILE * stream); #endif @@ -408,7 +408,7 @@ verify_file(int ncid, int modified, int extra) int milesdata_in[MAXDIMLEN]; int expenses_in[MAXDIMLEN]; int dimprod = DIM0_LEN * DIM1_LEN; -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 int tmp; #endif @@ -417,7 +417,7 @@ verify_file(int ncid, int modified, int extra) CHECK(NC_EINVAL); /* Get all the dimids */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 tmp = 0; CHECK((nc_inq_dimids(ncid,&tmp,dimid,1))); if(tmp != NDIMS0+extra) CHECK(NC_EINVAL); @@ -709,7 +709,7 @@ main(int argc, char **argv) int stat = NC_NOERR; NC_memio filedata3; void* original = NULL; -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 NC_memio filedata4; #endif @@ -721,7 +721,7 @@ main(int argc, char **argv) CHECK(test_xfail(FILE3, NC_NETCDF3, &filedata3)); memiofree(&filedata3,&original); -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 fprintf(stderr,"\n*** Testing the inmemory API: netcdf-4.\n"); CHECK(create_reference_file(FILE4,NC_NETCDF4,&filedata4)); CHECK(test_open(FILE4,&filedata4,NC_NETCDF4)); diff --git a/nc_test/tst_inq_type.c b/nc_test/tst_inq_type.c index 8bd0233013..a38df958e2 100644 --- a/nc_test/tst_inq_type.c +++ b/nc_test/tst_inq_type.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2016 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. @@ -113,7 +113,7 @@ int main(int argc, char **argv) { SUMMARIZE_ERR; #endif /* ENABLE_CDF5 */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 printf("\n* Testing nc_inq_type with netcdf-4 + Classic Model\n"); { if(nc_create(FILE_NAME,NC_CLOBBER|NC_NETCDF4|NC_CLASSIC_MODEL,&ncid)) ERR; @@ -178,10 +178,9 @@ int main(int argc, char **argv) { } SUMMARIZE_ERR; -#endif // USE_NETCDF4 +#endif // USE_HDF5 printf("* Finished.\n"); FINAL_RESULTS; } - diff --git a/nc_test/tst_large.c b/nc_test/tst_large.c index 92d12ac417..7cc9f15f24 100644 --- a/nc_test/tst_large.c +++ b/nc_test/tst_large.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_large_cdf5.c b/nc_test/tst_large_cdf5.c index ef8681f0b4..106d4f0024 100644 --- a/nc_test/tst_large_cdf5.c +++ b/nc_test/tst_large_cdf5.c @@ -1,5 +1,5 @@ /* - Copyright 2017, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_max_var_dims.c b/nc_test/tst_max_var_dims.c index 3157630c30..aec5c60673 100644 --- a/nc_test/tst_max_var_dims.c +++ b/nc_test/tst_max_var_dims.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include @@ -31,4 +42,3 @@ int main(int argc, char *argv[]) err = nc_close(ncid); ERR return (nerrs > 0); } - diff --git a/nc_test/tst_meta.c b/nc_test/tst_meta.c index 7653953a31..c3c68bb2e1 100644 --- a/nc_test/tst_meta.c +++ b/nc_test/tst_meta.c @@ -1,5 +1,5 @@ /* - Copyright 20014, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_misc.c b/nc_test/tst_misc.c index 536bec9a2e..097d0357cc 100644 --- a/nc_test/tst_misc.c +++ b/nc_test/tst_misc.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. @@ -61,20 +61,20 @@ main(int argc, char **argv) } SUMMARIZE_ERR; -#ifndef USE_NETCDF4 +#ifndef USE_NETCDF4 printf("*** Trying to create netCDF-4 file without netCDF-4..."); { int ncid; - + if (nc_create(FILE_NAME, NC_NETCDF4, &ncid) != NC_ENOTBUILT) ERR; } SUMMARIZE_ERR; #endif /* USE_NETCDF4 undefined */ - + #ifdef TEST_PNETCDF MPI_Finalize(); #endif - + FINAL_RESULTS; } diff --git a/nc_test/tst_names.c b/nc_test/tst_names.c index 878ae32d90..0c4cabad98 100644 --- a/nc_test/tst_names.c +++ b/nc_test/tst_names.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which tests rejection of bad names for @@ -229,7 +229,7 @@ main(int argc, char **argv) , NC_FORMAT_CDF5 #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 , NC_FORMAT_NETCDF4 , diff --git a/nc_test/tst_nofill.c b/nc_test/tst_nofill.c index 684192e2fb..770821bd38 100644 --- a/nc_test/tst_nofill.c +++ b/nc_test/tst_nofill.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_nofill2.c b/nc_test/tst_nofill2.c index e8187f235e..9d85619012 100644 --- a/nc_test/tst_nofill2.c +++ b/nc_test/tst_nofill2.c @@ -1,5 +1,5 @@ /* - Copyright 2011, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_nofill3.c b/nc_test/tst_nofill3.c index d9dbbcfdb3..e81b3e8f15 100644 --- a/nc_test/tst_nofill3.c +++ b/nc_test/tst_nofill3.c @@ -1,5 +1,5 @@ /* - Copyright 2011, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_norm.c b/nc_test/tst_norm.c index b7918662a8..f16b0e5eed 100644 --- a/nc_test/tst_norm.c +++ b/nc_test/tst_norm.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which tests NFC normalization of diff --git a/nc_test/tst_open_cdf5.c b/nc_test/tst_open_cdf5.c index 1d5e9b5f69..be8a977aad 100644 --- a/nc_test/tst_open_cdf5.c +++ b/nc_test/tst_open_cdf5.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_open_mem.c b/nc_test/tst_open_mem.c index f25a7003fa..d48106d31e 100644 --- a/nc_test/tst_open_mem.c +++ b/nc_test/tst_open_mem.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -49,19 +60,19 @@ readfile(const char* path, NC_memio* memio) size_t actual; actual = fread(p,1,count,f); if(actual == 0 || ferror(f)) - {status = NC_EIO; goto done;} + {status = NC_EIO; goto done;} count -= actual; p += actual; } if(memio) { memio->size = (size_t)filesize; memio->memory = memory; - } + } done: if(status != NC_NOERR && memory != NULL) free(memory); if(f != NULL) fclose(f); - return status; + return status; } int diff --git a/nc_test/tst_parallel2.c b/nc_test/tst_parallel2.c index cfe7d1ed9d..a9c52f4af8 100644 --- a/nc_test/tst_parallel2.c +++ b/nc_test/tst_parallel2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This is a benchmarking program for netCDF-4 parallel I/O. */ /* Defining USE_MPE causes the MPE trace library to be used (and you @@ -30,7 +41,7 @@ int main(int argc, char **argv) { /* MPI stuff. */ - int mpi_namelen; + int mpi_namelen; char mpi_name[MPI_MAX_PROCESSOR_NAME]; int mpi_size, mpi_rank; MPI_Comm comm = MPI_COMM_WORLD; @@ -43,7 +54,7 @@ main(int argc, char **argv) size_t count[NDIMS] = {1, DIMSIZE, DIMSIZE}; int data[DIMSIZE * DIMSIZE], data_in[DIMSIZE * DIMSIZE]; int j, i; - + char file_name[NC_MAX_NAME + 1]; int ndims_in, nvars_in, natts_in, unlimdimid_in; @@ -63,23 +74,23 @@ main(int argc, char **argv) /* Must be able to evenly divide my slabs between processors. */ if (NUM_SLABS % mpi_size != 0) { - if (!mpi_rank) printf("NUM_SLABS (%d) is not evenly divisible by mpi_size(%d)\n", + if (!mpi_rank) printf("NUM_SLABS (%d) is not evenly divisible by mpi_size(%d)\n", NUM_SLABS, mpi_size); ERR; } #ifdef USE_MPE MPE_Init_log(); - s_init = MPE_Log_get_event_number(); - e_init = MPE_Log_get_event_number(); - s_define = MPE_Log_get_event_number(); - e_define = MPE_Log_get_event_number(); - s_write = MPE_Log_get_event_number(); - e_write = MPE_Log_get_event_number(); - s_close = MPE_Log_get_event_number(); - e_close = MPE_Log_get_event_number(); - s_open = MPE_Log_get_event_number(); - e_open = MPE_Log_get_event_number(); + s_init = MPE_Log_get_event_number(); + e_init = MPE_Log_get_event_number(); + s_define = MPE_Log_get_event_number(); + e_define = MPE_Log_get_event_number(); + s_write = MPE_Log_get_event_number(); + e_write = MPE_Log_get_event_number(); + s_close = MPE_Log_get_event_number(); + e_close = MPE_Log_get_event_number(); + s_open = MPE_Log_get_event_number(); + e_open = MPE_Log_get_event_number(); MPE_Describe_state(s_init, e_init, "Init", "red"); MPE_Describe_state(s_define, e_define, "Define", "yellow"); MPE_Describe_state(s_write, e_write, "Write", "green"); @@ -176,7 +187,7 @@ main(int argc, char **argv) /* Close the netcdf file. */ if (nc_close(ncid)) ERR; - + #ifdef USE_MPE MPE_Log_event(e_close, 0, "end close file"); #endif /* USE_MPE */ @@ -187,7 +198,7 @@ main(int argc, char **argv) #endif if (nc_open_par(file_name, NC_NOWRITE, comm, info, &ncid)) ERR; if (nc_inq(ncid, &ndims_in, &nvars_in, &natts_in, &unlimdimid_in)) ERR; - if (ndims_in != NDIMS || nvars_in != 1 || natts_in != 1 || + if (ndims_in != NDIMS || nvars_in != 1 || natts_in != 1 || unlimdimid_in != -1) ERR; /* Read all the slabs this process is responsible for. */ @@ -201,10 +212,10 @@ main(int argc, char **argv) /* Read one slab of data. */ if (nc_get_vara_int(ncid, varid, start, count, data_in)) ERR; - + /* Check data. */ for (j = 0; j < DIMSIZE * DIMSIZE; j++) - if (data_in[j] != mpi_rank) + if (data_in[j] != mpi_rank) { ERR; break; @@ -221,7 +232,7 @@ main(int argc, char **argv) /* Close the netcdf file. */ if (nc_close(ncid)) ERR; - + #ifdef USE_MPE MPE_Log_event(e_close, 0, "end close file"); #endif /* USE_MPE */ diff --git a/nc_test/tst_pnetcdf.c b/nc_test/tst_pnetcdf.c index a82a2bb949..1766dad011 100644 --- a/nc_test/tst_pnetcdf.c +++ b/nc_test/tst_pnetcdf.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, diff --git a/nc_test/tst_small.c b/nc_test/tst_small.c index 040f7e2164..5515872d08 100644 --- a/nc_test/tst_small.c +++ b/nc_test/tst_small.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. @@ -533,7 +533,7 @@ main(int argc, char **argv) case NC_FORMAT_CDF5: continue; #endif -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 case NC_FORMAT_NETCDF4_CLASSIC: nc_set_default_format(NC_FORMAT_NETCDF4_CLASSIC, NULL); strcpy(testfile, "tst_small_netcdf4_classic.nc"); diff --git a/nc_test/tst_utf8_phrases.c b/nc_test/tst_utf8_phrases.c index 29ec68cc7e..468bd9138a 100644 --- a/nc_test/tst_utf8_phrases.c +++ b/nc_test/tst_utf8_phrases.c @@ -1,6 +1,6 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ diff --git a/nc_test/util.c b/nc_test/util.c index d7afd1ead7..be2f678d88 100644 --- a/nc_test/util.c +++ b/nc_test/util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: util.c 2792 2014-10-27 06:02:59Z wkliao $ *********************************************************************/ diff --git a/nc_test4/CMakeLists.txt b/nc_test4/CMakeLists.txt index 824e27dd4b..a094417f37 100644 --- a/nc_test4/CMakeLists.txt +++ b/nc_test4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Some extra tests SET(NC4_TESTS tst_dims tst_dims2 tst_dims3 tst_files tst_files4 tst_vars tst_varms tst_unlim_vars tst_converts tst_converts2 diff --git a/nc_test4/bigmeta.c b/nc_test4/bigmeta.c index fb2054eb2c..f49c052477 100644 --- a/nc_test4/bigmeta.c +++ b/nc_test4/bigmeta.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* Create a netcdf-4 file with horrendously large metadata. */ @@ -155,7 +166,7 @@ buildgroup(int parent, int grpindex, int depth) snprintf(name,NC_MAX_NAME,"g%d",grpindex); CHECK(nc_def_grp(parent, name, &grpid)); - + /* Add dimensions and capture ids */ for(i=0;i #include "err_macros.h" #include diff --git a/nc_test4/tst_camrun.c b/nc_test4/tst_camrun.c index 2ce9cbbb02..5b96bc3f89 100644 --- a/nc_test4/tst_camrun.c +++ b/nc_test4/tst_camrun.c @@ -1,5 +1,5 @@ /* - Copyright 2010, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program writes a data file from the CAM model run. (Thanks to diff --git a/nc_test4/tst_chunks.c b/nc_test4/tst_chunks.c index 9279c6d97b..48ea1eb943 100644 --- a/nc_test4/tst_chunks.c +++ b/nc_test4/tst_chunks.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_chunks2.c b/nc_test4/tst_chunks2.c index b6ac94a7e9..f540faefe3 100644 --- a/nc_test4/tst_chunks2.c +++ b/nc_test4/tst_chunks2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2011 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 chunking. diff --git a/nc_test4/tst_chunks3.c b/nc_test4/tst_chunks3.c index bd952cfede..dc6d8b49f3 100644 --- a/nc_test4/tst_chunks3.c +++ b/nc_test4/tst_chunks3.c @@ -60,7 +60,7 @@ long inb, oub; \ char time_mess[100]; \ float seconds; - + #define TIMING_START \ TMrepeats = 1; \ do { \ @@ -71,7 +71,7 @@ inb = ru.ru_inblock; \ oub = ru.ru_oublock; \ for(TMreps=0; TMreps < TMrepeats; TMreps++) { - + #define TIMING_END(seconds) \ } \ if(getrusage(RUSAGE_SELF, &ru)) { \ @@ -99,7 +99,7 @@ return n; \ void parse_args(int argc, char *argv[], /* from command-line invocation */ - int *deflate_levelp, /* returned: 0 uncompressed, + int *deflate_levelp, /* returned: 0 uncompressed, 1-9 compression level */ int *shufflep, /* returned: 1 if shuffle, otherwise 0 */ size_t *dims, /* returned: dimension sizes */ @@ -128,7 +128,7 @@ parse_args(int argc, char *argv[], /* from command-line invocation */ dims[1] = dims[0]; if(argc > 5) chunks[1] = atol(argv[5]); - else + else chunks[1] = chunks[0]; if(argc > 6) dims[2] = atol(argv[6]); @@ -145,10 +145,10 @@ parse_args(int argc, char *argv[], /* from command-line invocation */ if(argc > 10) *cache_prep = atof(argv[10]); if(argc > 11) { - printf("Usage: %s [def_level] [dim1] [chunk1] [dim2] [chunk2] [dim3] [chunk3] [cache_size] [cache_nelems] [cache_pre]\n", + printf("Usage: %s [def_level] [dim1] [chunk1] [dim2] [chunk2] [dim3] [chunk3] [cache_size] [cache_nelems] [cache_pre]\n", argv[0]); exit(1); - } + } return; } @@ -204,11 +204,11 @@ main(int argc, char *argv[]) { /* From args, get parameters for timing, including variable and chunk sizes. Negative deflate level means also use shuffle filter. */ - parse_args(argc, argv, &deflate_level, &shuffle, dims, + parse_args(argc, argv, &deflate_level, &shuffle, dims, chunks, &cache_size, &cache_hash, &cache_pre); /* get cache defaults, then set cache parameters that are not default */ - if((stat = nc_get_chunk_cache(&cache_size_def, &cache_hash_def, + if((stat = nc_get_chunk_cache(&cache_size_def, &cache_hash_def, &cache_pre_def))) ERR1(stat); if(cache_size == 0) @@ -219,7 +219,7 @@ main(int argc, char *argv[]) { cache_pre = cache_pre_def; if((stat = nc_set_chunk_cache(cache_size, cache_hash, cache_pre))) ERR1(stat); - printf("cache: %3.2f MBytes %ld objs %3.2f preempt, ", + printf("cache: %3.2f MBytes %ld objs %3.2f preempt, ", cache_size/1.e6, cache_hash, cache_pre); if(deflate_level == 0) { @@ -257,7 +257,7 @@ main(int argc, char *argv[]) { if((stat = nc_create(FILENAME, NC_NETCDF4 | NC_CLASSIC_MODEL, &ncid))) ERR1(stat); - + /* define dimensions */ if((stat = nc_def_dim(ncid, "dim1", dims[0], &dim1id))) ERR1(stat); @@ -265,18 +265,18 @@ main(int argc, char *argv[]) { ERR1(stat); if((stat = nc_def_dim(ncid, "dim3", dims[2], &dim3id))) ERR1(stat); - + /* define variables */ var_dims[0] = dim1id; var_dims[1] = dim2id; var_dims[2] = dim3id; - if((stat = nc_def_var(ncid, "var_contiguous", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_contiguous", NC_FLOAT, RANK_var1, var_dims, &varid_g))) ERR1(stat); - if((stat = nc_def_var(ncid, "var_chunked", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_chunked", NC_FLOAT, RANK_var1, var_dims, &varid_k))) ERR1(stat); - if((stat = nc_def_var(ncid, "var_compressed", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_compressed", NC_FLOAT, RANK_var1, var_dims, &varid_x))) ERR1(stat); @@ -290,7 +290,7 @@ main(int argc, char *argv[]) { ERR1(stat); if (deflate_level != 0) { - if((stat = nc_def_var_deflate(ncid, varid_x, shuffle, + if((stat = nc_def_var_deflate(ncid, varid_x, shuffle, NC_COMPRESSED, deflate_level))) ERR1(stat); } @@ -298,7 +298,7 @@ main(int argc, char *argv[]) { /* leave define mode */ if((stat = nc_enddef (ncid))) ERR1(stat); - + /* write each variable one yz slab at a time */ start[0] = 0; start[1] = 0; @@ -404,7 +404,7 @@ main(int argc, char *argv[]) { else printf(" %5.2g x slower\n", 1.0/ratio); printf("\n"); - + /* write each variable one xy slab at a time */ start[0] = 0; start[1] = 0; @@ -424,7 +424,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked write %3ld %3ld %3d %3ld %3ld %3ld", dims[0], dims[1], 1, chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -477,7 +477,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked read %3d %3ld %3ld %3ld %3ld %3ld", 1, dims[1], dims[2] , chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -493,7 +493,7 @@ main(int argc, char *argv[]) { printf(" %5.2g x faster\n", ratio); else printf(" %5.2g x slower\n", 1.0/ratio); - + sprintf(time_mess," compressed read %3d %3ld %3ld %3ld %3ld %3ld", 1, dims[1], dims[2] , chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -530,7 +530,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked read %3ld %3d %3ld %3ld %3ld %3ld", dims[0], 1, dims[2], chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -546,7 +546,7 @@ main(int argc, char *argv[]) { printf(" %5.2g x faster\n", ratio); else printf(" %5.2g x slower\n", 1.0/ratio); - + sprintf(time_mess," compressed read %3ld %3d %3ld %3ld %3ld %3ld", dims[0], 1, dims[2], chunks[0], chunks[1], chunks[2]); TIMING_START ; diff --git a/nc_test4/tst_compounds.c b/nc_test4/tst_compounds.c index d1601d60de..f91c210021 100644 --- a/nc_test4/tst_compounds.c +++ b/nc_test4/tst_compounds.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature. diff --git a/nc_test4/tst_compounds2.c b/nc_test4/tst_compounds2.c index c6d8556bb3..7b1af1de96 100644 --- a/nc_test4/tst_compounds2.c +++ b/nc_test4/tst_compounds2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature. diff --git a/nc_test4/tst_compounds3.c b/nc_test4/tst_compounds3.c index adda5b546d..c09cb0b448 100644 --- a/nc_test4/tst_compounds3.c +++ b/nc_test4/tst_compounds3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature, even more. diff --git a/nc_test4/tst_converts.c b/nc_test4/tst_converts.c index b6cb74bd30..43507e87ee 100644 --- a/nc_test4/tst_converts.c +++ b/nc_test4/tst_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test data conversions and fill value handling. diff --git a/nc_test4/tst_converts2.c b/nc_test4/tst_converts2.c index 1e870e9815..0f3bd92258 100644 --- a/nc_test4/tst_converts2.c +++ b/nc_test4/tst_converts2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test even more data conversions. diff --git a/nc_test4/tst_coords.c b/nc_test4/tst_coords.c index d5acaf25b6..000b8a632b 100644 --- a/nc_test4/tst_coords.c +++ b/nc_test4/tst_coords.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_coords2.c b/nc_test4/tst_coords2.c index 952597b585..29f9d713de 100644 --- a/nc_test4/tst_coords2.c +++ b/nc_test4/tst_coords2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_coords3.c b/nc_test4/tst_coords3.c index f03cc7c46f..8930259ab1 100644 --- a/nc_test4/tst_coords3.c +++ b/nc_test4/tst_coords3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_dims.c b/nc_test4/tst_dims.c index caf278d08f..3bcf814691 100644 --- a/nc_test4/tst_dims.c +++ b/nc_test4/tst_dims.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_dims2.c b/nc_test4/tst_dims2.c index cebf9e3e9f..db38a9bf37 100644 --- a/nc_test4/tst_dims2.c +++ b/nc_test4/tst_dims2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_dims3.c b/nc_test4/tst_dims3.c index f9fbba8fad..92978f6086 100644 --- a/nc_test4/tst_dims3.c +++ b/nc_test4/tst_dims3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_elatefill.c b/nc_test4/tst_elatefill.c index 99dece2845..9b24747732 100644 --- a/nc_test4/tst_elatefill.c +++ b/nc_test4/tst_elatefill.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2017 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_empty_vlen_unlim.c b/nc_test4/tst_empty_vlen_unlim.c index d1d18971df..5123275f02 100644 --- a/nc_test4/tst_empty_vlen_unlim.c +++ b/nc_test4/tst_empty_vlen_unlim.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_endian_fill.c b/nc_test4/tst_endian_fill.c index 38afba139c..22cbfb8ed5 100644 --- a/nc_test4/tst_endian_fill.c +++ b/nc_test4/tst_endian_fill.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_enums.c b/nc_test4/tst_enums.c index 977d73cb4b..ba2cf5fe4b 100644 --- a/nc_test4/tst_enums.c +++ b/nc_test4/tst_enums.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_files.c b/nc_test4/tst_files.c index 55ee7a30ca..d8927d8ecb 100644 --- a/nc_test4/tst_files.c +++ b/nc_test4/tst_files.c @@ -431,10 +431,10 @@ test_redef(int format) cache_size_in = 0; if (nc_get_chunk_cache(&cache_size_in, NULL, NULL)) ERR; if (cache_size_in != NEW_CACHE_SIZE) ERR; - cache_nelems_in = 0; + cache_nelems_in = 0; if (nc_get_chunk_cache(NULL, &cache_nelems_in, NULL)) ERR; if (cache_nelems_in != NEW_CACHE_NELEMS) ERR; - cache_preemption_in = 0; + cache_preemption_in = 0; if (nc_get_chunk_cache(NULL, NULL, &cache_preemption_in)) ERR; if (cache_preemption_in != NEW_CACHE_PREEMPTION) ERR; @@ -463,7 +463,7 @@ test_redef(int format) -1) != NC_EINVAL) ERR; if (nc_set_chunk_cache_ints(NEW_CACHE_SIZE_2, NEW_CACHE_NELEMS_2, 101) != NC_EINVAL) ERR; - + /* Change chunk cache again. */ if (nc_set_chunk_cache_ints(NEW_CACHE_SIZE_2, NEW_CACHE_NELEMS_2, @@ -472,7 +472,7 @@ test_redef(int format) &cache_preemption_int_in)) ERR; if (cache_size_int_in != NEW_CACHE_SIZE_2 || cache_nelems_int_in != NEW_CACHE_NELEMS_2 || cache_preemption_int_in != (int)(NEW_CACHE_PREEMPTION_2 * 100)) ERR; - + /* This will fail, except for netcdf-4/hdf5, which permits any * name. */ diff --git a/nc_test4/tst_files4.c b/nc_test4/tst_files4.c index a83523a30e..062677b648 100644 --- a/nc_test4/tst_files4.c +++ b/nc_test4/tst_files4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 file from user-reported error. This code based on an diff --git a/nc_test4/tst_files5.c b/nc_test4/tst_files5.c index e6dd57fd4f..922a4ff7e7 100644 --- a/nc_test4/tst_files5.c +++ b/nc_test4/tst_files5.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf files a bit. diff --git a/nc_test4/tst_files6.c b/nc_test4/tst_files6.c index 3e660e4320..49bae17a7d 100644 --- a/nc_test4/tst_files6.c +++ b/nc_test4/tst_files6.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf files a bit. diff --git a/nc_test4/tst_fill_attr_vanish.c b/nc_test4/tst_fill_attr_vanish.c index 189d20b11f..392b489e4f 100644 --- a/nc_test4/tst_fill_attr_vanish.c +++ b/nc_test4/tst_fill_attr_vanish.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Based on tst_fillbug.c diff --git a/nc_test4/tst_fillbug.c b/nc_test4/tst_fillbug.c index b4a04e22c2..6d4f14da85 100644 --- a/nc_test4/tst_fillbug.c +++ b/nc_test4/tst_fillbug.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2008 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test for a bug that Russ found testing fill values. diff --git a/nc_test4/tst_fills.c b/nc_test4/tst_fills.c index 808eb3c105..240f4b4119 100644 --- a/nc_test4/tst_fills.c +++ b/nc_test4/tst_fills.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_fills2.c b/nc_test4/tst_fills2.c index 323e5d0914..d29a6adfe7 100644 --- a/nc_test4/tst_fills2.c +++ b/nc_test4/tst_fills2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_filterparser.c b/nc_test4/tst_filterparser.c index 9e83e987d3..63f88540aa 100644 --- a/nc_test4/tst_filterparser.c +++ b/nc_test4/tst_filterparser.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test4/tst_grps.c b/nc_test4/tst_grps.c index 8959e03538..528f3efbbc 100644 --- a/nc_test4/tst_grps.c +++ b/nc_test4/tst_grps.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 group code. diff --git a/nc_test4/tst_grps2.c b/nc_test4/tst_grps2.c index 55d10ad0d2..bf6441242f 100644 --- a/nc_test4/tst_grps2.c +++ b/nc_test4/tst_grps2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 group code some more. diff --git a/nc_test4/tst_h5_endians.c b/nc_test4/tst_h5_endians.c index 081f8782a3..6984bd5a3b 100644 --- a/nc_test4/tst_h5_endians.c +++ b/nc_test4/tst_h5_endians.c @@ -1,4 +1,10 @@ /*! Test for NCF-331. Added May 11, 2015. + * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 + * University Corporation for Atmospheric Research/Unidata. + * + * See \ref copyright file for more info. * See the following links for more information: * * o Issue on GitHub: https://github.com/Unidata/netcdf-c/issues/112 diff --git a/nc_test4/tst_h_converts.c b/nc_test4/tst_h_converts.c index 4a6bb49adb..862ae2a21f 100644 --- a/nc_test4/tst_h_converts.c +++ b/nc_test4/tst_h_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/nc_test4/tst_h_many_atts.c b/nc_test4/tst_h_many_atts.c index d0ee537b68..f484c43103 100644 --- a/nc_test4/tst_h_many_atts.c +++ b/nc_test4/tst_h_many_atts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/nc_test4/tst_h_refs.c b/nc_test4/tst_h_refs.c index 95949be4d7..7610e42f87 100644 --- a/nc_test4/tst_h_refs.c +++ b/nc_test4/tst_h_refs.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_scalar.c b/nc_test4/tst_h_scalar.c index fbd40ca8f2..c21b0ecb45 100644 --- a/nc_test4/tst_h_scalar.c +++ b/nc_test4/tst_h_scalar.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2013 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_strbug.c b/nc_test4/tst_h_strbug.c index b819604109..eb76e5fa0e 100644 --- a/nc_test4/tst_h_strbug.c +++ b/nc_test4/tst_h_strbug.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_strings3.c b/nc_test4/tst_h_strings3.c index 0bf8b2f66b..5c125b2b53 100644 --- a/nc_test4/tst_h_strings3.c +++ b/nc_test4/tst_h_strings3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_vl2.c b/nc_test4/tst_h_vl2.c index 9d4d77e38a..cc4ba27fe2 100644 --- a/nc_test4/tst_h_vl2.c +++ b/nc_test4/tst_h_vl2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_hdf5_file_compat.c b/nc_test4/tst_hdf5_file_compat.c index 4813d9d253..01926702b3 100644 --- a/nc_test4/tst_hdf5_file_compat.c +++ b/nc_test4/tst_hdf5_file_compat.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Tests library ability to open files generated by a netcdf diff --git a/nc_test4/tst_interops.c b/nc_test4/tst_interops.c index 086336e30e..f7662e42b4 100644 --- a/nc_test4/tst_interops.c +++ b/nc_test4/tst_interops.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test that HDF5 and NetCDF-4 can read and write the same file. diff --git a/nc_test4/tst_interops4.c b/nc_test4/tst_interops4.c index d655ab33a4..535a80e4fe 100644 --- a/nc_test4/tst_interops4.c +++ b/nc_test4/tst_interops4.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011, University +/*! This is part of the netCDF package. Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_interops5.c b/nc_test4/tst_interops5.c index 44c3274e8f..3faf379ade 100644 --- a/nc_test4/tst_interops5.c +++ b/nc_test4/tst_interops5.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011, University +/* This is part of the netCDF package. Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_interops6.c b/nc_test4/tst_interops6.c index ef9221900e..32086dd867 100644 --- a/nc_test4/tst_interops6.c +++ b/nc_test4/tst_interops6.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_large.c b/nc_test4/tst_large.c index 5afac598b6..4aa9a47dee 100644 --- a/nc_test4/tst_large.c +++ b/nc_test4/tst_large.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 large file fill values. diff --git a/nc_test4/tst_large2.c b/nc_test4/tst_large2.c index 48cbe3ebed..0a61e57ab5 100644 --- a/nc_test4/tst_large2.c +++ b/nc_test4/tst_large2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test large file problems reported by user. This test based on code diff --git a/nc_test4/tst_large3.c b/nc_test4/tst_large3.c index 4f43a6a4c5..780d4114ad 100644 --- a/nc_test4/tst_large3.c +++ b/nc_test4/tst_large3.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program (quickly, but not thoroughly) tests the large file diff --git a/nc_test4/tst_large5.c b/nc_test4/tst_large5.c index 0b5c401a45..2b3eaf8248 100644 --- a/nc_test4/tst_large5.c +++ b/nc_test4/tst_large5.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test large file problems reported by user. This test based on code diff --git a/nc_test4/tst_mem.c b/nc_test4/tst_mem.c index fcfec9e58f..6e03bc12e2 100644 --- a/nc_test4/tst_mem.c +++ b/nc_test4/tst_mem.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test internal netcdf-4 file code. diff --git a/nc_test4/tst_mode.c b/nc_test4/tst_mode.c index 3d6b945ad5..25c5da01bf 100644 --- a/nc_test4/tst_mode.c +++ b/nc_test4/tst_mode.c @@ -1,5 +1,13 @@ -/** - * @file +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + + * Test some illegal mode combinations * */ diff --git a/nc_test4/tst_mpi_parallel.c b/nc_test4/tst_mpi_parallel.c index 73233457d6..6bdcb710e3 100644 --- a/nc_test4/tst_mpi_parallel.c +++ b/nc_test4/tst_mpi_parallel.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This is a quickie tester for netcdf-4. This just excersizes MPI file I/O to make sure everything's working diff --git a/nc_test4/tst_nc4perf.c b/nc_test4/tst_nc4perf.c index 032e768202..af39e20943 100644 --- a/nc_test4/tst_nc4perf.c +++ b/nc_test4/tst_nc4perf.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 parallel I/O. These tests are based on the diff --git a/nc_test4/tst_nc_converts.c b/nc_test4/tst_nc_converts.c index 25fcffac69..15ab7efa92 100644 --- a/nc_test4/tst_nc_converts.c +++ b/nc_test4/tst_nc_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test some things about how classic netCDF behaves. diff --git a/nc_test4/tst_opaques.c b/nc_test4/tst_opaques.c index 731f8db692..c5130a3766 100644 --- a/nc_test4/tst_opaques.c +++ b/nc_test4/tst_opaques.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_parallel.c b/nc_test4/tst_parallel.c index 07c53b10b2..1ed128fb05 100644 --- a/nc_test4/tst_parallel.c +++ b/nc_test4/tst_parallel.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 parallel I/O. diff --git a/nc_test4/tst_parallel4.c b/nc_test4/tst_parallel4.c index 4f11d5e537..b2e8df2645 100644 --- a/nc_test4/tst_parallel4.c +++ b/nc_test4/tst_parallel4.c @@ -1,4 +1,4 @@ -/* Copyright 2007-2011, UCAR/Unidata. See COPYRIGHT file for copying +/* Copyright 2007-2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. This is part of the netCDF package. diff --git a/nc_test4/tst_put_vars.c b/nc_test4/tst_put_vars.c index 54ad1209b7..a74bee6385 100644 --- a/nc_test4/tst_put_vars.c +++ b/nc_test4/tst_put_vars.c @@ -1,4 +1,11 @@ -/*! Test added as part of JIRA ticket NCF-326. +/*! \file Test added as part of JIRA ticket NCF-326. + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. The test was provided by Ellen Johnson at Mathworks. diff --git a/nc_test4/tst_put_vars_two_unlim_dim.c b/nc_test4/tst_put_vars_two_unlim_dim.c index 785d0d56ba..8cbd2be28c 100644 --- a/nc_test4/tst_put_vars_two_unlim_dim.c +++ b/nc_test4/tst_put_vars_two_unlim_dim.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test contributed in support of netCDF issue * https://github.com/Unidata/netcdf-c/issues/160 diff --git a/nc_test4/tst_rehash.c b/nc_test4/tst_rehash.c index c594bd1ccf..bd21daa01e 100644 --- a/nc_test4/tst_rehash.c +++ b/nc_test4/tst_rehash.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Provided in support of https://github.com/Unidata/netcdf-c/issues/282 diff --git a/nc_test4/tst_rename.c b/nc_test4/tst_rename.c index 4b0184a41a..05eb85979e 100644 --- a/nc_test4/tst_rename.c +++ b/nc_test4/tst_rename.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test renames of vars and dims. It's a surprisingly tricky business. * diff --git a/nc_test4/tst_rename2.c b/nc_test4/tst_rename2.c index 53213ca5ff..5382e78131 100644 --- a/nc_test4/tst_rename2.c +++ b/nc_test4/tst_rename2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test more renames of vars and dims. * @@ -46,7 +57,7 @@ main(int argc, char **argv) { sprintf(filename, "%s_%d_%d.nc", TEST_NAME, formats[format], enddef_setting); - + /* Create file with three dims. */ if (nc_create(filename, 0, &ncid)) ERR; if (nc_def_dim(ncid, LAT, DIM1_LEN, &dimid[0])) ERR; @@ -58,15 +69,15 @@ main(int argc, char **argv) if (nc_enddef(ncid)) ERR; if (nc_redef(ncid)) ERR; } - + /* Rename the dimensions. */ if (nc_rename_dim(ncid, 0, DIM_X)) ERR; if (nc_rename_dim(ncid, 1, DIM_Y)) ERR; if (nc_rename_dim(ncid, 2, DIM_Z)) ERR; - + /* Close the file. */ if (nc_close(ncid)) ERR; - + /* Reopen the file and check. */ if (nc_open(filename, NC_NOWRITE, &ncid)) ERR; if (nc_inq_dimid(ncid, DIM_X, &dimid_in)) ERR; @@ -93,7 +104,7 @@ main(int argc, char **argv) if (nc_set_default_format(formats[format], NULL)) ERR; sprintf(filename, "%s_data_%d.nc", TEST_NAME, formats[format]); - + /* Create file with three dims. */ if (nc_create(filename, 0, &ncid)) ERR; if (nc_def_dim(ncid, LAT, DIM1_LEN, &dimid[0])) ERR; @@ -114,15 +125,15 @@ main(int argc, char **argv) if (nc_close(ncid)) ERR; if (nc_open(filename, NC_WRITE, &ncid)) ERR; if (nc_redef(ncid)) ERR; - + /* Rename the dimensions. */ if (nc_rename_dim(ncid, 0, DIM_X)) ERR; if (nc_rename_dim(ncid, 1, DIM_Y)) ERR; if (nc_rename_dim(ncid, 2, DIM_Z)) ERR; - + /* Close the file. */ if (nc_close(ncid)) ERR; - + /* Reopen the file and check. */ if (nc_open(filename, NC_NOWRITE, &ncid)) ERR; if (nc_inq_dimid(ncid, DIM_X, &dimid_in)) ERR; @@ -134,7 +145,7 @@ main(int argc, char **argv) if (nc_close(ncid)) ERR; } SUMMARIZE_ERR; - + } /* next format */ FINAL_RESULTS; } diff --git a/nc_test4/tst_simplerw_coll_r.c b/nc_test4/tst_simplerw_coll_r.c index cd25cbcf18..bf6637df69 100644 --- a/nc_test4/tst_simplerw_coll_r.c +++ b/nc_test4/tst_simplerw_coll_r.c @@ -1,4 +1,4 @@ -/* Copyright 2007-2011, UCAR/Unidata. See COPYRIGHT file for copying +/* Copyright 2007-2018, UCAR/Unidata. See COPYRIGHT file for copying * and redistribution conditions. * * This is part of the netCDF package. @@ -113,7 +113,7 @@ main(int argc, char **argv) unsigned int uint_fill_value_in; long long int int64_fill_value_in; unsigned long long int uint64_fill_value_in; - + /* Data to write and read. */ signed char byte_data[DIMSIZE * DIMSIZE], byte_data_in[DIMSIZE * DIMSIZE]; unsigned char char_data[DIMSIZE * DIMSIZE], char_data_in[DIMSIZE * DIMSIZE]; @@ -126,7 +126,7 @@ main(int argc, char **argv) unsigned int uint_data[DIMSIZE * DIMSIZE], uint_data_in[DIMSIZE * DIMSIZE]; long long int int64_data[DIMSIZE * DIMSIZE], int64_data_in[DIMSIZE * DIMSIZE]; unsigned long long int uint64_data[DIMSIZE * DIMSIZE], uint64_data_in[DIMSIZE * DIMSIZE]; - + if (!mpi_rank) printf("*** writing a %d x %d x %d file from %d processors for fill value test %d type %d...\n", NUM_SLABS, DIMSIZE, DIMSIZE, mpi_size, fv, test_type[tt]); @@ -234,7 +234,7 @@ main(int argc, char **argv) fill_value_in = &uint64_fill_value_in; break; } - + /* Create a file name. */ sprintf(file_name, "%s_type_%d_fv_%d.nc", TEST_NAME, test_type[tt], fv); @@ -268,7 +268,7 @@ main(int argc, char **argv) if (nc_def_var_fill(ncid, varid, NC_NOFILL, NULL)) ERR; if (nc_inq_var_fill(ncid, varid, &fill_mode_in, NULL)) ERR; if (!fill_mode_in) ERR; /* nofill will be true */ - } + } /* Write metadata to file. */ if (nc_enddef(ncid)) ERR; @@ -406,7 +406,7 @@ main(int argc, char **argv) SUMMARIZE_ERR; } /* next test type */ } /* next fill value test run */ - + /* Shut down MPI. */ MPI_Finalize(); diff --git a/nc_test4/tst_strings.c b/nc_test4/tst_strings.c index 176df80c38..301ca6cd79 100644 --- a/nc_test4/tst_strings.c +++ b/nc_test4/tst_strings.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_strings2.c b/nc_test4/tst_strings2.c index f0b7aa2b1c..2edeadebc4 100644 --- a/nc_test4/tst_strings2.c +++ b/nc_test4/tst_strings2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_sync.c b/nc_test4/tst_sync.c index 3ac8799c3b..30df93fc3c 100644 --- a/nc_test4/tst_sync.c +++ b/nc_test4/tst_sync.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2011 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_types.c b/nc_test4/tst_types.c index 9db571e8bd..ea0b0ffaa9 100644 --- a/nc_test4/tst_types.c +++ b/nc_test4/tst_types.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 types. diff --git a/nc_test4/tst_udf.c b/nc_test4/tst_udf.c index c5fc9d2443..ebe5437808 100644 --- a/nc_test4/tst_udf.c +++ b/nc_test4/tst_udf.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. @@ -166,7 +166,7 @@ main(int argc, char **argv) int ncid; NC_Dispatch *disp_in; int i; - + /* Create an empty file to play with. */ if (nc_create(FILE_NAME, 0, &ncid)) ERR; if (nc_close(ncid)) ERR; @@ -180,11 +180,11 @@ main(int argc, char **argv) /* Check that our user-defined format has been added. */ if (nc_inq_user_format(mode[i], &disp_in, NULL)) ERR; if (disp_in != &tst_dispatcher) ERR; - + /* Open file with our defined functions. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open file again and abort, which is the same as closing it. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_inq_format(ncid, NULL) != TEST_VAL_42) ERR; @@ -202,7 +202,7 @@ main(int argc, char **argv) char magic_number_in[NC_MAX_MAGIC_NUMBER_LEN]; FILE *FP; int i; - + /* Create a file with magic number at start. */ if (!(FP = fopen(FILE_NAME, "w"))) ERR; if (fwrite(magic_number, sizeof(char), strlen(magic_number), FP) @@ -210,13 +210,13 @@ main(int argc, char **argv) if (fwrite(dummy_data, sizeof(char), strlen(dummy_data), FP) != strlen(dummy_data)) ERR; if (fclose(FP)) ERR; - + /* Test all available user-defined format slots. */ for (i = 0; i < NUM_UDFS; i++) { /* Add our test user defined format. */ if (nc_def_user_format(mode[i], &tst_dispatcher, magic_number)) ERR; - + /* Check that our user-defined format has been added. */ if (nc_inq_user_format(mode[i], &disp_in, magic_number_in)) ERR; if (disp_in != &tst_dispatcher) ERR; @@ -225,7 +225,7 @@ main(int argc, char **argv) /* Open file with our defined functions. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open file again and abort, which is the same as closing * it. This time we don't specify a mode, because the magic * number is used to identify the file. */ diff --git a/nc_test4/tst_unlim_vars.c b/nc_test4/tst_unlim_vars.c index 306e53e364..31e559587a 100644 --- a/nc_test4/tst_unlim_vars.c +++ b/nc_test4/tst_unlim_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables with unlimited dimensions. diff --git a/nc_test4/tst_utf8.c b/nc_test4/tst_utf8.c index 13da950e9b..86efd49273 100644 --- a/nc_test4/tst_utf8.c +++ b/nc_test4/tst_utf8.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/nc_test4/tst_utils.c b/nc_test4/tst_utils.c index cf8a83885a..96a16294e8 100644 --- a/nc_test4/tst_utils.c +++ b/nc_test4/tst_utils.c @@ -1,6 +1,17 @@ -/** \internal -\file -Utility functions for tests. */ +/*! \file Utility functions for tests. + +\internal +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + + +*/ + + #include #include diff --git a/nc_test4/tst_v2.c b/nc_test4/tst_v2.c index 0204ce90e3..c012aa51ce 100644 --- a/nc_test4/tst_v2.c +++ b/nc_test4/tst_v2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test internal netcdf-4 file code. diff --git a/nc_test4/tst_varms.c b/nc_test4/tst_varms.c index 63a3e8e0a4..23990b32fb 100644 --- a/nc_test4/tst_varms.c +++ b/nc_test4/tst_varms.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_vars.c b/nc_test4/tst_vars.c index dfd8502bb5..5ff8b02a73 100644 --- a/nc_test4/tst_vars.c +++ b/nc_test4/tst_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars2.c b/nc_test4/tst_vars2.c index 9531427f49..f94c71d75b 100644 --- a/nc_test4/tst_vars2.c +++ b/nc_test4/tst_vars2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars3.c b/nc_test4/tst_vars3.c index 229ae15dfe..c7be6dedf1 100644 --- a/nc_test4/tst_vars3.c +++ b/nc_test4/tst_vars3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars4.c b/nc_test4/tst_vars4.c index 19610a7b29..bb571ea7f2 100644 --- a/nc_test4/tst_vars4.c +++ b/nc_test4/tst_vars4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_varsperf.c b/nc_test4/tst_varsperf.c index 3aac8bab49..7a276f2429 100644 --- a/nc_test4/tst_varsperf.c +++ b/nc_test4/tst_varsperf.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* Create a netcdf-4 file with a large variable for the purpose @@ -47,11 +58,11 @@ buildfile(void) if(nc_def_dim(ncid,DIM0,(size_t)DIMSIZE0,&dimids[0])) ERR; if(nc_def_dim(ncid,DIM1,(size_t)DIMSIZE1,&dimids[1])) ERR; if(nc_def_var(ncid,VAR,NC_INT,NDIMS,dimids,&varid)) ERR; - + if(nc_enddef(ncid)) ERR; for(p=data,index=0;index #include @@ -42,7 +52,7 @@ main(int argc, char** argv) argc--; argv++; if(argc < 2) - usage(); + usage(); proto = strdup(argv[0]); servlet = strdup(argv[1]); if(argc >= 3) @@ -76,7 +86,7 @@ main(int argc, char** argv) printf("%s",url); fflush(stdout); /* clean up */ - free(serverlist); + free(serverlist); free(url); exit(0); } diff --git a/ncdap_test/nocacheremote3/CMakeLists.txt b/ncdap_test/nocacheremote3/CMakeLists.txt index d46021ec04..5df1d4251b 100644 --- a/ncdap_test/nocacheremote3/CMakeLists.txt +++ b/ncdap_test/nocacheremote3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/nocacheremote3/Makefile.am b/ncdap_test/nocacheremote3/Makefile.am index a9c963bae8..691df5cda6 100644 --- a/ncdap_test/nocacheremote3/Makefile.am +++ b/ncdap_test/nocacheremote3/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files diff --git a/ncdap_test/special3/CMakeLists.txt b/ncdap_test/special3/CMakeLists.txt index 2332d8f855..b21e9d53bf 100644 --- a/ncdap_test/special3/CMakeLists.txt +++ b/ncdap_test/special3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/t_auth.c b/ncdap_test/t_auth.c index 92c0fc803d..6009426dcc 100644 --- a/ncdap_test/t_auth.c +++ b/ncdap_test/t_auth.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -148,7 +158,7 @@ testrc(const char* prefix, const char* url) if(rc == NULL) { fprintf(stderr,"Cannot create ./%s\n",RC); exit(1); - } + } fclose(rc); fillrc(rcpath); retval = nc_open(url, 0, &ncid); diff --git a/ncdap_test/t_dap.c b/ncdap_test/t_dap.c index a73bb6b5a0..5c45e69e7f 100644 --- a/ncdap_test/t_dap.c +++ b/ncdap_test/t_dap.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include #include @@ -120,7 +130,7 @@ int main() /* location of our target url: use file:// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -137,7 +147,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -369,7 +379,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); @@ -460,4 +470,3 @@ case CASE(NC_CHAR,NC_STRING):{ } /*switch*/ } - diff --git a/ncdap_test/t_dap3a.c b/ncdap_test/t_dap3a.c index 535579aced..f043e28857 100644 --- a/ncdap_test/t_dap3a.c +++ b/ncdap_test/t_dap3a.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #define NETCDF3ONLY #include #include @@ -120,7 +130,7 @@ int main() /* location of our target url: use file:// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -137,7 +147,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -369,7 +379,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); @@ -460,4 +470,3 @@ case CASE(NC_CHAR,NC_STRING):{ } /*switch*/ } - diff --git a/ncdap_test/t_dap3b.c b/ncdap_test/t_dap3b.c index 706f913d3a..36b36abb61 100644 --- a/ncdap_test/t_dap3b.c +++ b/ncdap_test/t_dap3b.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include diff --git a/ncdap_test/t_dap3c.c b/ncdap_test/t_dap3c.c index 313437b87f..299d7491e7 100644 --- a/ncdap_test/t_dap3c.c +++ b/ncdap_test/t_dap3c.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -20,7 +30,7 @@ main() int i32[100]; size_t start[1]; size_t count[1]; - int ok = 1; + int ok = 1; const char* topsrcdir; char url[4096]; diff --git a/ncdap_test/t_misc.c b/ncdap_test/t_misc.c index d613f4e0d2..b158033f58 100644 --- a/ncdap_test/t_misc.c +++ b/ncdap_test/t_misc.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -46,7 +56,7 @@ main() svcurl = nc_findtestserver(servlet,0,serverlist); if(svcurl == NULL) { fprintf(stderr,"not found: %s\n",servlet); - exit(1); + exit(1); } snprintf(url,sizeof(url),FURL,svcurl); diff --git a/ncdap_test/t_ncf330.c b/ncdap_test/t_ncf330.c index d68f8202c1..20fac197a4 100644 --- a/ncdap_test/t_ncf330.c +++ b/ncdap_test/t_ncf330.c @@ -1,5 +1,12 @@ /*! Test program for netcdf issue NCF-330 - * + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + * This test was provided by Ellen Johnson at Mathworks and * illustrates an issue currently only seen on Windows. * diff --git a/ncdap_test/t_srcdir.h b/ncdap_test/t_srcdir.h index 30a5b55720..ca1c43424d 100644 --- a/ncdap_test/t_srcdir.h +++ b/ncdap_test/t_srcdir.h @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #define XSTRINGIFY(s) #s #define STRINGIFY(s) XSTRINGIFY(s) @@ -20,7 +30,7 @@ gettopsrcdir(void) if(topsrcdir == NULL) { fprintf(stderr,"*** FAIL: $abs_top_srcdir not defined\n"); exit(1); - } + } fprintf(stderr,"topsrcdir=%s\n",topsrcdir); return topsrcdir; } diff --git a/ncdap_test/test_cvt.c b/ncdap_test/test_cvt.c index f9bb03f71e..24915c49e8 100644 --- a/ncdap_test/test_cvt.c +++ b/ncdap_test/test_cvt.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include #include @@ -119,7 +129,7 @@ int main() /* location of our target url: use file// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -136,7 +146,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -368,7 +378,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); diff --git a/ncdap_test/test_environment.c b/ncdap_test/test_environment.c index 6c2eeb9f8f..e5dbb4d397 100644 --- a/ncdap_test/test_environment.c +++ b/ncdap_test/test_environment.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -26,7 +36,7 @@ main(int argc, char** argv) int c = *p; if(c >= 'A' && c <= 'Z') c = ((c - 'A') + 'a'); *p = (char)c; - } + } do { #ifdef TOPSRCDIR if(strcmp(arg,"topsrcdir") == 0) { diff --git a/ncdap_test/test_nstride_cached.c b/ncdap_test/test_nstride_cached.c index 985fb30ca2..d2bc42c8c8 100644 --- a/ncdap_test/test_nstride_cached.c +++ b/ncdap_test/test_nstride_cached.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Report from Ansely Manke: I've attached a file with a short c program that diff --git a/ncdap_test/test_partvar.c b/ncdap_test/test_partvar.c index fe2b958086..236afbb3f9 100644 --- a/ncdap_test/test_partvar.c +++ b/ncdap_test/test_partvar.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Test part variable fetch code */ @@ -9,7 +19,7 @@ Test part variable fetch code #include "ncdispatch.h" #include "nctestserver.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf ingrid { dimensions: ISTA = 35 ; @@ -40,7 +50,7 @@ netcdf ingrid { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -85,7 +95,7 @@ void dump(float* source, size_t start, size_t count) if((i % 6) == 5) printf("\n"); } printf("\n"); -#endif +#endif } int @@ -136,7 +146,7 @@ main() #ifdef DEBUG dump((float*)targetpart,0,ISTA*IZ); -#endif +#endif /* validate the part var */ if(!check(targetpart,start0,count0)) goto fail; @@ -156,7 +166,7 @@ subslice(int rank, size_t* count, int startdim) { int i; size_t offset = 1; - for(i=startdim;irank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -250,282 +260,282 @@ odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } /* Capture the complete set of data */ static float target_content[ISTA*IZ] = { - 0, 0.009999833, 0.01999867, 0.0299955, 0.03998933, 0.04997917, 0.059964, - 0.06994285, 0.0799147, 0.08987855, 0.09983341, 0.1097783, 0.1197122, - 0.1296341, 0.1395431, 0.1494381, 0.1593182, 0.1691823, 0.1790296, - 0.1888589, 0.1986693, 0.2084599, 0.2182296, 0.2279775, 0.2377026, - 0.247404, 0.2570806, 0.2667314, 0.2763557, 0.2859522, 0.2955202, - 0.3050586, 0.3145666, 0.324043, 0.3334871, 0.3428978, 0.3522742, - 0.3616154, 0.3709205, 0.3801884, 0.3894183, 0.3986093, 0.4077604, + 0, 0.009999833, 0.01999867, 0.0299955, 0.03998933, 0.04997917, 0.059964, + 0.06994285, 0.0799147, 0.08987855, 0.09983341, 0.1097783, 0.1197122, + 0.1296341, 0.1395431, 0.1494381, 0.1593182, 0.1691823, 0.1790296, + 0.1888589, 0.1986693, 0.2084599, 0.2182296, 0.2279775, 0.2377026, + 0.247404, 0.2570806, 0.2667314, 0.2763557, 0.2859522, 0.2955202, + 0.3050586, 0.3145666, 0.324043, 0.3334871, 0.3428978, 0.3522742, + 0.3616154, 0.3709205, 0.3801884, 0.3894183, 0.3986093, 0.4077604, 0.4168708, - 0.4259395, 0.4349655, 0.4439481, 0.4528863, 0.4617792, 0.4706259, - 0.4794255, 0.4881772, 0.4968801, 0.5055333, 0.514136, 0.5226873, - 0.5311862, 0.539632, 0.5480239, 0.556361, 0.5646425, 0.5728675, - 0.5810351, 0.5891448, 0.5971954, 0.6051864, 0.6131169, 0.620986, - 0.628793, 0.6365372, 0.6442177, 0.6518338, 0.6593847, 0.6668696, - 0.6742879, 0.6816388, 0.6889215, 0.6961352, 0.7032794, 0.7103533, - 0.7173561, 0.7242872, 0.7311459, 0.7379314, 0.7446431, 0.7512804, + 0.4259395, 0.4349655, 0.4439481, 0.4528863, 0.4617792, 0.4706259, + 0.4794255, 0.4881772, 0.4968801, 0.5055333, 0.514136, 0.5226873, + 0.5311862, 0.539632, 0.5480239, 0.556361, 0.5646425, 0.5728675, + 0.5810351, 0.5891448, 0.5971954, 0.6051864, 0.6131169, 0.620986, + 0.628793, 0.6365372, 0.6442177, 0.6518338, 0.6593847, 0.6668696, + 0.6742879, 0.6816388, 0.6889215, 0.6961352, 0.7032794, 0.7103533, + 0.7173561, 0.7242872, 0.7311459, 0.7379314, 0.7446431, 0.7512804, 0.7578425, 0.764329, - 0.7707389, 0.7770718, 0.7833269, 0.7895038, 0.7956016, 0.8016199, - 0.8075581, 0.8134155, 0.8191916, 0.8248857, 0.8304974, 0.836026, - 0.841471, 0.8468319, 0.852108, 0.857299, 0.8624042, 0.8674232, 0.8723555, - 0.8772005, 0.8819578, 0.8866269, 0.8912073, 0.8956987, 0.9001005, - 0.9044122, 0.9086335, 0.912764, 0.9168031, 0.9207506, 0.924606, 0.928369, - 0.9320391, 0.935616, 0.9390994, 0.9424888, 0.945784, 0.9489846, + 0.7707389, 0.7770718, 0.7833269, 0.7895038, 0.7956016, 0.8016199, + 0.8075581, 0.8134155, 0.8191916, 0.8248857, 0.8304974, 0.836026, + 0.841471, 0.8468319, 0.852108, 0.857299, 0.8624042, 0.8674232, 0.8723555, + 0.8772005, 0.8819578, 0.8866269, 0.8912073, 0.8956987, 0.9001005, + 0.9044122, 0.9086335, 0.912764, 0.9168031, 0.9207506, 0.924606, 0.928369, + 0.9320391, 0.935616, 0.9390994, 0.9424888, 0.945784, 0.9489846, 0.9520903, 0.9551008, 0.9580159, 0.960835, 0.9635582, 0.966185, - 0.9687151, 0.9711484, 0.9734845, 0.9757234, 0.9778646, 0.979908, 0.9818535, - 0.9837008, 0.9854497, 0.9871001, 0.9886518, 0.9901046, 0.9914584, - 0.992713, 0.9938684, 0.9949244, 0.9958808, 0.9967378, 0.997495, - 0.9981525, 0.9987102, 0.9991679, 0.9995258, 0.9997838, 0.9999417, - 0.9999997, 0.9999576, 0.9998156, 0.9995736, 0.9992316, 0.9987897, - 0.998248, 0.9976064, 0.996865, 0.996024, 0.9950833, 0.9940432, 0.9929036, + 0.9687151, 0.9711484, 0.9734845, 0.9757234, 0.9778646, 0.979908, 0.9818535, + 0.9837008, 0.9854497, 0.9871001, 0.9886518, 0.9901046, 0.9914584, + 0.992713, 0.9938684, 0.9949244, 0.9958808, 0.9967378, 0.997495, + 0.9981525, 0.9987102, 0.9991679, 0.9995258, 0.9997838, 0.9999417, + 0.9999997, 0.9999576, 0.9998156, 0.9995736, 0.9992316, 0.9987897, + 0.998248, 0.9976064, 0.996865, 0.996024, 0.9950833, 0.9940432, 0.9929036, 0.9916648, 0.9903268, 0.9888898, 0.9873539, 0.9857192, 0.983986, - 0.9821543, 0.9802245, 0.9781966, 0.9760709, 0.9738476, 0.971527, 0.9691091, - 0.9665944, 0.963983, 0.9612752, 0.9584713, 0.9555715, 0.9525762, - 0.9494856, 0.9463001, 0.9430199, 0.9396455, 0.9361771, 0.932615, - 0.9289597, 0.9252115, 0.9213708, 0.917438, 0.9134133, 0.9092974, - 0.9050906, 0.9007932, 0.8964058, 0.8919287, 0.8873624, 0.8827074, - 0.8779641, 0.873133, 0.8682146, 0.8632094, 0.8581178, 0.8529405, + 0.9821543, 0.9802245, 0.9781966, 0.9760709, 0.9738476, 0.971527, 0.9691091, + 0.9665944, 0.963983, 0.9612752, 0.9584713, 0.9555715, 0.9525762, + 0.9494856, 0.9463001, 0.9430199, 0.9396455, 0.9361771, 0.932615, + 0.9289597, 0.9252115, 0.9213708, 0.917438, 0.9134133, 0.9092974, + 0.9050906, 0.9007932, 0.8964058, 0.8919287, 0.8873624, 0.8827074, + 0.8779641, 0.873133, 0.8682146, 0.8632094, 0.8581178, 0.8529405, 0.8476778, 0.8423305, 0.8368988, 0.8313835, 0.825785, 0.8201039, 0.8143409, - 0.8084964, 0.8025711, 0.7965655, 0.7904802, 0.7843159, 0.7780732, - 0.7717527, 0.7653549, 0.7588807, 0.7523306, 0.7457052, 0.7390053, - 0.7322314, 0.7253844, 0.7184648, 0.7114733, 0.7044108, 0.6972777, - 0.690075, 0.6828032, 0.6754632, 0.6680556, 0.6605812, 0.6530408, - 0.645435, 0.6377647, 0.6300306, 0.6222336, 0.6143743, 0.6064535, - 0.5984721, 0.5904309, 0.5823306, 0.5741721, 0.5659562, 0.5576837, - 0.5493554, 0.5409722, 0.5325349, 0.5240443, 0.5155014, 0.5069069, + 0.8084964, 0.8025711, 0.7965655, 0.7904802, 0.7843159, 0.7780732, + 0.7717527, 0.7653549, 0.7588807, 0.7523306, 0.7457052, 0.7390053, + 0.7322314, 0.7253844, 0.7184648, 0.7114733, 0.7044108, 0.6972777, + 0.690075, 0.6828032, 0.6754632, 0.6680556, 0.6605812, 0.6530408, + 0.645435, 0.6377647, 0.6300306, 0.6222336, 0.6143743, 0.6064535, + 0.5984721, 0.5904309, 0.5823306, 0.5741721, 0.5659562, 0.5576837, + 0.5493554, 0.5409722, 0.5325349, 0.5240443, 0.5155014, 0.5069069, 0.4982616, 0.4895666, - 0.4808226, 0.4720306, 0.4631913, 0.4543057, 0.4453746, 0.4363991, - 0.4273799, 0.4183179, 0.4092142, 0.4000695, 0.3908848, 0.381661, - 0.372399, 0.3630998, 0.3537644, 0.3443935, 0.3349881, 0.3255493, - 0.316078, 0.306575, 0.2970414, 0.287478, 0.2778859, 0.2682661, 0.2586193, - 0.2489468, 0.2392493, 0.229528, 0.2197836, 0.2100173, 0.20023, 0.1904227, - 0.1805963, 0.1707518, 0.1608903, 0.1510127, 0.14112, 0.1312132, + 0.4808226, 0.4720306, 0.4631913, 0.4543057, 0.4453746, 0.4363991, + 0.4273799, 0.4183179, 0.4092142, 0.4000695, 0.3908848, 0.381661, + 0.372399, 0.3630998, 0.3537644, 0.3443935, 0.3349881, 0.3255493, + 0.316078, 0.306575, 0.2970414, 0.287478, 0.2778859, 0.2682661, 0.2586193, + 0.2489468, 0.2392493, 0.229528, 0.2197836, 0.2100173, 0.20023, 0.1904227, + 0.1805963, 0.1707518, 0.1608903, 0.1510127, 0.14112, 0.1312132, 0.1212933, 0.1113612, 0.101418, 0.09146464, 0.08150215, 0.07153151, - 0.06155372, 0.05156977, 0.04158066, 0.0315874, 0.02159098, 0.01159239, - 0.001592653, -0.008407247, -0.01840631, -0.02840353, -0.0383979, - -0.04838844, -0.05837414, -0.068354, -0.07832703, -0.08829223, - -0.09824859, -0.1081951, -0.1181309, -0.1280548, -0.1379659, -0.1478632, - -0.1577457, -0.1676124, -0.1774624, -0.1872947, -0.1971082, -0.206902, - -0.2166751, -0.2264265, -0.2361553, -0.2458605, -0.2555411, -0.2651961, - -0.2748247, -0.2844257, -0.2939983, -0.3035415, -0.3130544, -0.3225359, + 0.06155372, 0.05156977, 0.04158066, 0.0315874, 0.02159098, 0.01159239, + 0.001592653, -0.008407247, -0.01840631, -0.02840353, -0.0383979, + -0.04838844, -0.05837414, -0.068354, -0.07832703, -0.08829223, + -0.09824859, -0.1081951, -0.1181309, -0.1280548, -0.1379659, -0.1478632, + -0.1577457, -0.1676124, -0.1774624, -0.1872947, -0.1971082, -0.206902, + -0.2166751, -0.2264265, -0.2361553, -0.2458605, -0.2555411, -0.2651961, + -0.2748247, -0.2844257, -0.2939983, -0.3035415, -0.3130544, -0.3225359, -0.3319852, -0.3414013, -0.3507832, -0.3601301, - -0.369441, -0.3787149, -0.3879509, -0.3971482, -0.4063057, -0.4154226, - -0.424498, -0.4335309, -0.4425204, -0.4514658, -0.4603659, -0.46922, - -0.4780273, -0.4867867, -0.4954974, -0.5041586, -0.5127693, -0.5213288, - -0.5298361, -0.5382905, -0.5466911, -0.5550369, -0.5633273, -0.5715613, - -0.5797382, -0.5878571, -0.5959172, -0.6039178, -0.6118579, -0.6197369, - -0.6275538, -0.635308, -0.6429988, -0.6506251, -0.6581865, -0.665682, - -0.673111, -0.6804726, -0.6877661, -0.694991, -0.7021463, -0.7092314, + -0.369441, -0.3787149, -0.3879509, -0.3971482, -0.4063057, -0.4154226, + -0.424498, -0.4335309, -0.4425204, -0.4514658, -0.4603659, -0.46922, + -0.4780273, -0.4867867, -0.4954974, -0.5041586, -0.5127693, -0.5213288, + -0.5298361, -0.5382905, -0.5466911, -0.5550369, -0.5633273, -0.5715613, + -0.5797382, -0.5878571, -0.5959172, -0.6039178, -0.6118579, -0.6197369, + -0.6275538, -0.635308, -0.6429988, -0.6506251, -0.6581865, -0.665682, + -0.673111, -0.6804726, -0.6877661, -0.694991, -0.7021463, -0.7092314, -0.7162456, -0.7231881, - -0.7300584, -0.7368556, -0.7435791, -0.7502283, -0.7568025, -0.763301, - -0.7697231, -0.7760683, -0.7823359, -0.7885253, -0.7946358, -0.8006668, - -0.8066177, -0.8124881, -0.8182771, -0.8239843, -0.8296092, -0.835151, - -0.8406094, -0.8459837, -0.8512734, -0.856478, -0.8615969, -0.8666297, - -0.8715758, -0.8764347, -0.881206, -0.8858892, -0.8904838, -0.8949894, - -0.8994054, -0.9037315, -0.9079673, -0.9121122, -0.9161659, -0.920128, - -0.9239982, -0.9277759, -0.9314608, -0.9350526, -0.9385508, -0.9419553, + -0.7300584, -0.7368556, -0.7435791, -0.7502283, -0.7568025, -0.763301, + -0.7697231, -0.7760683, -0.7823359, -0.7885253, -0.7946358, -0.8006668, + -0.8066177, -0.8124881, -0.8182771, -0.8239843, -0.8296092, -0.835151, + -0.8406094, -0.8459837, -0.8512734, -0.856478, -0.8615969, -0.8666297, + -0.8715758, -0.8764347, -0.881206, -0.8858892, -0.8904838, -0.8949894, + -0.8994054, -0.9037315, -0.9079673, -0.9121122, -0.9161659, -0.920128, + -0.9239982, -0.9277759, -0.9314608, -0.9350526, -0.9385508, -0.9419553, -0.9452655, -0.9484812, - -0.9516021, -0.9546278, -0.957558, -0.9603925, -0.963131, -0.965773, - -0.9683186, -0.9707673, -0.973119, -0.9753733, -0.9775301, -0.9795892, - -0.9815503, -0.9834132, -0.9851778, -0.9868439, -0.9884112, -0.9898798, - -0.9912494, -0.9925198, -0.993691, -0.9947628, -0.9957352, -0.996608, - -0.9973811, -0.9980544, -0.998628, -0.9991017, -0.9994755, -0.9997494, - -0.9999232, -0.9999971, -0.999971, -0.9998449, -0.9996188, -0.9992928, - -0.9988668, -0.998341, -0.9977152, -0.9969898, -0.9961646, -0.9952399, + -0.9516021, -0.9546278, -0.957558, -0.9603925, -0.963131, -0.965773, + -0.9683186, -0.9707673, -0.973119, -0.9753733, -0.9775301, -0.9795892, + -0.9815503, -0.9834132, -0.9851778, -0.9868439, -0.9884112, -0.9898798, + -0.9912494, -0.9925198, -0.993691, -0.9947628, -0.9957352, -0.996608, + -0.9973811, -0.9980544, -0.998628, -0.9991017, -0.9994755, -0.9997494, + -0.9999232, -0.9999971, -0.999971, -0.9998449, -0.9996188, -0.9992928, + -0.9988668, -0.998341, -0.9977152, -0.9969898, -0.9961646, -0.9952399, -0.9942155, -0.9930918, - -0.9918687, -0.9905465, -0.9891253, -0.9876051, -0.9859861, -0.9842686, - -0.9824526, -0.9805384, -0.9785261, -0.976416, -0.9742082, -0.9719031, - -0.9695007, -0.9670014, -0.9644054, -0.9617129, -0.9589243, -0.9560397, - -0.9530596, -0.9499842, -0.9468138, -0.9435487, -0.9401892, -0.9367357, - -0.9331886, -0.9295481, -0.9258147, -0.9219887, -0.9180705, -0.9140605, - -0.9099591, -0.9057667, -0.9014837, -0.8971105, -0.8926477, -0.8880956, - -0.8834547, -0.8787254, -0.8739083, -0.8690037, -0.8640123, -0.8589345, + -0.9918687, -0.9905465, -0.9891253, -0.9876051, -0.9859861, -0.9842686, + -0.9824526, -0.9805384, -0.9785261, -0.976416, -0.9742082, -0.9719031, + -0.9695007, -0.9670014, -0.9644054, -0.9617129, -0.9589243, -0.9560397, + -0.9530596, -0.9499842, -0.9468138, -0.9435487, -0.9401892, -0.9367357, + -0.9331886, -0.9295481, -0.9258147, -0.9219887, -0.9180705, -0.9140605, + -0.9099591, -0.9057667, -0.9014837, -0.8971105, -0.8926477, -0.8880956, + -0.8834547, -0.8787254, -0.8739083, -0.8690037, -0.8640123, -0.8589345, -0.8537708, -0.8485217, - -0.8431877, -0.8377695, -0.8322675, -0.8266822, -0.8210142, -0.8152642, - -0.8094327, -0.8035201, -0.7975273, -0.7914547, -0.7853029, -0.7790727, - -0.7727645, -0.766379, -0.7599169, -0.7533789, -0.7467654, -0.7400773, - -0.7333152, -0.7264798, -0.7195717, -0.7125916, -0.7055403, -0.6984185, - -0.6912268, -0.683966, -0.6766368, -0.6692399, -0.6617761, -0.6542461, - -0.6466507, -0.6389906, -0.6312667, -0.6234795, -0.6156301, -0.6077191, - -0.5997473, -0.5917156, -0.5836247, -0.5754754, -0.5672686, -0.559005, + -0.8431877, -0.8377695, -0.8322675, -0.8266822, -0.8210142, -0.8152642, + -0.8094327, -0.8035201, -0.7975273, -0.7914547, -0.7853029, -0.7790727, + -0.7727645, -0.766379, -0.7599169, -0.7533789, -0.7467654, -0.7400773, + -0.7333152, -0.7264798, -0.7195717, -0.7125916, -0.7055403, -0.6984185, + -0.6912268, -0.683966, -0.6766368, -0.6692399, -0.6617761, -0.6542461, + -0.6466507, -0.6389906, -0.6312667, -0.6234795, -0.6156301, -0.6077191, + -0.5997473, -0.5917156, -0.5836247, -0.5754754, -0.5672686, -0.559005, -0.5506855, -0.542311, - -0.5338823, -0.5254001, -0.5168654, -0.5082791, -0.4996419, -0.4909547, - -0.4822185, -0.473434, -0.4646022, -0.4557239, -0.4468001, -0.4378315, - -0.4288192, -0.419764, -0.4106669, -0.4015286, -0.3923502, -0.3831326, - -0.3738767, -0.3645833, -0.3552535, -0.3458883, -0.3364884, -0.3270548, - -0.3175886, -0.3080906, -0.2985618, -0.2890031, -0.2794155, -0.2698, - -0.2601575, -0.250489, -0.2407954, -0.2310778, -0.2213371, -0.2115742, - -0.2017901, -0.1919859, -0.1821625, -0.1723209, -0.162462, -0.1525869, + -0.5338823, -0.5254001, -0.5168654, -0.5082791, -0.4996419, -0.4909547, + -0.4822185, -0.473434, -0.4646022, -0.4557239, -0.4468001, -0.4378315, + -0.4288192, -0.419764, -0.4106669, -0.4015286, -0.3923502, -0.3831326, + -0.3738767, -0.3645833, -0.3552535, -0.3458883, -0.3364884, -0.3270548, + -0.3175886, -0.3080906, -0.2985618, -0.2890031, -0.2794155, -0.2698, + -0.2601575, -0.250489, -0.2407954, -0.2310778, -0.2213371, -0.2115742, + -0.2017901, -0.1919859, -0.1821625, -0.1723209, -0.162462, -0.1525869, -0.1426965, -0.1327919, - -0.122874, -0.1129438, -0.1030023, -0.0930505, -0.0830894, -0.07311999, - -0.06314328, -0.05316024, -0.04317189, -0.03317922, -0.02318323, - -0.01318493, -0.003185302, 0.00681464, 0.0168139, 0.02681148, 0.03680638, - 0.0467976, 0.05678413, 0.06676499, 0.07673918, 0.08670568, 0.09666352, - 0.1066117, 0.1165492, 0.1264751, 0.1363883, 0.1462878, 0.1561728, - 0.1660421, 0.1758948, 0.18573, 0.1955465, 0.2053435, 0.21512, 0.2248749, - 0.2346074, 0.2443164, 0.254001, 0.2636602, 0.273293, 0.2828985, + -0.122874, -0.1129438, -0.1030023, -0.0930505, -0.0830894, -0.07311999, + -0.06314328, -0.05316024, -0.04317189, -0.03317922, -0.02318323, + -0.01318493, -0.003185302, 0.00681464, 0.0168139, 0.02681148, 0.03680638, + 0.0467976, 0.05678413, 0.06676499, 0.07673918, 0.08670568, 0.09666352, + 0.1066117, 0.1165492, 0.1264751, 0.1363883, 0.1462878, 0.1561728, + 0.1660421, 0.1758948, 0.18573, 0.1955465, 0.2053435, 0.21512, 0.2248749, + 0.2346074, 0.2443164, 0.254001, 0.2636602, 0.273293, 0.2828985, 0.2924757, 0.3020236, - 0.3115413, 0.321028, 0.3304825, 0.3399039, 0.3492913, 0.3586439, 0.3679605, - 0.3772404, 0.3864825, 0.395686, 0.4048499, 0.4139734, 0.4230554, - 0.4320951, 0.4410917, 0.4500441, 0.4589515, 0.467813, 0.4766277, - 0.4853948, 0.4941134, 0.5027825, 0.5114013, 0.519969, 0.5284848, - 0.5369476, 0.5453568, 0.5537114, 0.5620106, 0.5702537, 0.5784398, - 0.5865679, 0.5946375, 0.6026475, 0.6105974, 0.6184861, 0.626313, - 0.6340773, 0.6417782, 0.6494148, 0.6569866, 0.6644927, 0.6719322, + 0.3115413, 0.321028, 0.3304825, 0.3399039, 0.3492913, 0.3586439, 0.3679605, + 0.3772404, 0.3864825, 0.395686, 0.4048499, 0.4139734, 0.4230554, + 0.4320951, 0.4410917, 0.4500441, 0.4589515, 0.467813, 0.4766277, + 0.4853948, 0.4941134, 0.5027825, 0.5114013, 0.519969, 0.5284848, + 0.5369476, 0.5453568, 0.5537114, 0.5620106, 0.5702537, 0.5784398, + 0.5865679, 0.5946375, 0.6026475, 0.6105974, 0.6184861, 0.626313, + 0.6340773, 0.6417782, 0.6494148, 0.6569866, 0.6644927, 0.6719322, 0.6793047, - 0.6866091, 0.693845, 0.7010114, 0.7081077, 0.7151332, 0.7220873, 0.728969, - 0.735778, 0.7425133, 0.7491744, 0.7557605, 0.7622711, 0.7687054, - 0.7750629, 0.7813429, 0.7875448, 0.7936679, 0.7997116, 0.8056753, - 0.8115585, 0.8173606, 0.8230809, 0.8287189, 0.834274, 0.8397457, - 0.8451334, 0.8504366, 0.8556548, 0.8607874, 0.8658339, 0.8707939, - 0.8756667, 0.880452, 0.8851492, 0.889758, 0.8942778, 0.8987081, - 0.9030486, 0.9072987, 0.9114581, 0.9155264, 0.9195032, 0.9233879, + 0.6866091, 0.693845, 0.7010114, 0.7081077, 0.7151332, 0.7220873, 0.728969, + 0.735778, 0.7425133, 0.7491744, 0.7557605, 0.7622711, 0.7687054, + 0.7750629, 0.7813429, 0.7875448, 0.7936679, 0.7997116, 0.8056753, + 0.8115585, 0.8173606, 0.8230809, 0.8287189, 0.834274, 0.8397457, + 0.8451334, 0.8504366, 0.8556548, 0.8607874, 0.8658339, 0.8707939, + 0.8756667, 0.880452, 0.8851492, 0.889758, 0.8942778, 0.8987081, + 0.9030486, 0.9072987, 0.9114581, 0.9155264, 0.9195032, 0.9233879, 0.9271804, - 0.9308801, 0.9344868, 0.938, 0.9414194, 0.9447446, 0.9479754, 0.9511114, - 0.9541523, 0.9570977, 0.9599475, 0.9627013, 0.9653587, 0.9679196, - 0.9703838, 0.972751, 0.9750208, 0.9771932, 0.9792678, 0.9812445, - 0.9831231, 0.9849033, 0.9865851, 0.9881682, 0.9896525, 0.9910379, - 0.9923241, 0.9935111, 0.9945988, 0.995587, 0.9964756, 0.9972646, - 0.9979539, 0.9985433, 0.999033, 0.9994227, 0.9997125, 0.9999022, - 0.9999921, 0.9999819, 0.9998717, 0.9996616, 0.9993514, 0.9989414, + 0.9308801, 0.9344868, 0.938, 0.9414194, 0.9447446, 0.9479754, 0.9511114, + 0.9541523, 0.9570977, 0.9599475, 0.9627013, 0.9653587, 0.9679196, + 0.9703838, 0.972751, 0.9750208, 0.9771932, 0.9792678, 0.9812445, + 0.9831231, 0.9849033, 0.9865851, 0.9881682, 0.9896525, 0.9910379, + 0.9923241, 0.9935111, 0.9945988, 0.995587, 0.9964756, 0.9972646, + 0.9979539, 0.9985433, 0.999033, 0.9994227, 0.9997125, 0.9999022, + 0.9999921, 0.9999819, 0.9998717, 0.9996616, 0.9993514, 0.9989414, 0.9984314, - 0.9978216, 0.997112, 0.9963027, 0.9953938, 0.9943853, 0.9932774, 0.9920702, - 0.9907638, 0.9893582, 0.9878538, 0.9862506, 0.9845487, 0.9827484, - 0.9808499, 0.9788532, 0.9767586, 0.9745664, 0.9722767, 0.9698898, - 0.9674059, 0.9648253, 0.9621482, 0.9593748, 0.9565055, 0.9535406, - 0.9504804, 0.9473251, 0.944075, 0.9407306, 0.937292, 0.9337597, - 0.9301341, 0.9264155, 0.9226042, 0.9187007, 0.9147053, 0.9106184, + 0.9978216, 0.997112, 0.9963027, 0.9953938, 0.9943853, 0.9932774, 0.9920702, + 0.9907638, 0.9893582, 0.9878538, 0.9862506, 0.9845487, 0.9827484, + 0.9808499, 0.9788532, 0.9767586, 0.9745664, 0.9722767, 0.9698898, + 0.9674059, 0.9648253, 0.9621482, 0.9593748, 0.9565055, 0.9535406, + 0.9504804, 0.9473251, 0.944075, 0.9407306, 0.937292, 0.9337597, + 0.9301341, 0.9264155, 0.9226042, 0.9187007, 0.9147053, 0.9106184, 0.9064404, 0.9021719, 0.897813, 0.8933644, 0.8888265, 0.8841997, 0.8794845, - 0.8746814, 0.8697907, 0.8648131, 0.859749, 0.8545989, 0.8493634, 0.8440429, - 0.8386381, 0.8331493, 0.8275773, 0.8219225, 0.8161855, 0.8103669, - 0.8044672, 0.7984871, 0.7924272, 0.786288, 0.7800702, 0.7737743, - 0.7674012, 0.7609512, 0.7544252, 0.7478237, 0.7411475, 0.7343971, - 0.7275733, 0.7206767, 0.7137081, 0.7066681, 0.6995574, 0.6923768, - 0.685127, 0.6778086, 0.6704224, 0.6629692, 0.6554497, 0.6478647, + 0.8746814, 0.8697907, 0.8648131, 0.859749, 0.8545989, 0.8493634, 0.8440429, + 0.8386381, 0.8331493, 0.8275773, 0.8219225, 0.8161855, 0.8103669, + 0.8044672, 0.7984871, 0.7924272, 0.786288, 0.7800702, 0.7737743, + 0.7674012, 0.7609512, 0.7544252, 0.7478237, 0.7411475, 0.7343971, + 0.7275733, 0.7206767, 0.7137081, 0.7066681, 0.6995574, 0.6923768, + 0.685127, 0.6778086, 0.6704224, 0.6629692, 0.6554497, 0.6478647, 0.6402149, 0.6325011, 0.624724, 0.6168844, 0.6089832, 0.601021, 0.5929987, - 0.5849172, 0.5767772, 0.5685794, 0.5603248, 0.5520142, 0.5436484, - 0.5352283, 0.5267546, 0.5182282, 0.50965, 0.5010208, 0.4923416, - 0.4836131, 0.4748363, 0.4660119, 0.457141, 0.4482243, 0.4392629, - 0.4302575, 0.421209, 0.4121185, 0.4029867, 0.3938147, 0.3846032, - 0.3753533, 0.3660659, 0.3567419, 0.3473822, 0.3379877, 0.3285595, - 0.3190984, 0.3096054, 0.3000814, 0.2905274, 0.2809443, 0.2713332, - 0.261695, 0.2520306, 0.2423409, 0.232627, 0.2228899, 0.2131305, + 0.5849172, 0.5767772, 0.5685794, 0.5603248, 0.5520142, 0.5436484, + 0.5352283, 0.5267546, 0.5182282, 0.50965, 0.5010208, 0.4923416, + 0.4836131, 0.4748363, 0.4660119, 0.457141, 0.4482243, 0.4392629, + 0.4302575, 0.421209, 0.4121185, 0.4029867, 0.3938147, 0.3846032, + 0.3753533, 0.3660659, 0.3567419, 0.3473822, 0.3379877, 0.3285595, + 0.3190984, 0.3096054, 0.3000814, 0.2905274, 0.2809443, 0.2713332, + 0.261695, 0.2520306, 0.2423409, 0.232627, 0.2228899, 0.2131305, 0.2033498, 0.1935487, - 0.1837283, 0.1738895, 0.1640333, 0.1541607, 0.1442727, 0.1343703, - 0.1244544, 0.1145261, 0.1045863, 0.09463613, 0.08467644, 0.07470829, - 0.06473266, 0.05475057, 0.044763, 0.03477095, 0.02477542, 0.01477742, - 0.004777943, -0.005222016, -0.01522145, -0.02521937, -0.03521476, - -0.04520663, -0.05519398, -0.06517581, -0.07515112, -0.08511892, - -0.09507821, -0.105028, -0.1149673, -0.124895, -0.1348103, -0.1447121, - -0.1545995, -0.1644713, -0.1743268, -0.1841648, -0.1939844, -0.2037845, + 0.1837283, 0.1738895, 0.1640333, 0.1541607, 0.1442727, 0.1343703, + 0.1244544, 0.1145261, 0.1045863, 0.09463613, 0.08467644, 0.07470829, + 0.06473266, 0.05475057, 0.044763, 0.03477095, 0.02477542, 0.01477742, + 0.004777943, -0.005222016, -0.01522145, -0.02521937, -0.03521476, + -0.04520663, -0.05519398, -0.06517581, -0.07515112, -0.08511892, + -0.09507821, -0.105028, -0.1149673, -0.124895, -0.1348103, -0.1447121, + -0.1545995, -0.1644713, -0.1743268, -0.1841648, -0.1939844, -0.2037845, -0.2135644, -0.2233228, -0.2330589, -0.2427717, - -0.2524603, -0.2621236, -0.2717606, -0.2813705, -0.2909523, -0.300505, - -0.3100276, -0.3195192, -0.3289789, -0.3384056, -0.3477986, -0.3571567, - -0.3664791, -0.3757649, -0.3850131, -0.3942228, -0.4033931, -0.4125231, - -0.4216118, -0.4306583, -0.4396617, -0.4486212, -0.4575359, -0.4664048, - -0.475227, -0.4840018, -0.4927281, -0.5014051, -0.5100321, -0.518608, - -0.527132, -0.5356033, -0.5440211, -0.5523845, -0.5606926, -0.5689447, - -0.5771399, -0.5852773, -0.5933563, -0.6013759, -0.6093353, -0.6172339, + -0.2524603, -0.2621236, -0.2717606, -0.2813705, -0.2909523, -0.300505, + -0.3100276, -0.3195192, -0.3289789, -0.3384056, -0.3477986, -0.3571567, + -0.3664791, -0.3757649, -0.3850131, -0.3942228, -0.4033931, -0.4125231, + -0.4216118, -0.4306583, -0.4396617, -0.4486212, -0.4575359, -0.4664048, + -0.475227, -0.4840018, -0.4927281, -0.5014051, -0.5100321, -0.518608, + -0.527132, -0.5356033, -0.5440211, -0.5523845, -0.5606926, -0.5689447, + -0.5771399, -0.5852773, -0.5933563, -0.6013759, -0.6093353, -0.6172339, -0.6250706, -0.6328449, - -0.640556, -0.6482029, -0.6557851, -0.6633016, -0.6707519, -0.678135, - -0.6854504, -0.6926972, -0.6998747, -0.7069823, -0.7140191, -0.7209845, - -0.7278779, -0.7346984, -0.7414455, -0.7481185, -0.7547166, -0.7612393, - -0.7676858, -0.7740556, -0.7803479, -0.7865623, -0.792698, -0.7987544, - -0.8047309, -0.810627, -0.816442, -0.8221753, -0.8278264, -0.8333948, - -0.8388798, -0.844281, -0.8495977, -0.8548294, -0.8599757, -0.865036, - -0.8700097, -0.8748965, -0.8796958, -0.884407, -0.8890299, -0.8935639, + -0.640556, -0.6482029, -0.6557851, -0.6633016, -0.6707519, -0.678135, + -0.6854504, -0.6926972, -0.6998747, -0.7069823, -0.7140191, -0.7209845, + -0.7278779, -0.7346984, -0.7414455, -0.7481185, -0.7547166, -0.7612393, + -0.7676858, -0.7740556, -0.7803479, -0.7865623, -0.792698, -0.7987544, + -0.8047309, -0.810627, -0.816442, -0.8221753, -0.8278264, -0.8333948, + -0.8388798, -0.844281, -0.8495977, -0.8548294, -0.8599757, -0.865036, + -0.8700097, -0.8748965, -0.8796958, -0.884407, -0.8890299, -0.8935639, -0.8980085, -0.9023633, - -0.9066279, -0.9108018, -0.9148846, -0.918876, -0.9227754, -0.9265826, - -0.9302971, -0.9339186, -0.9374467, -0.9408811, -0.9442213, -0.9474672, - -0.9506183, -0.9536743, -0.956635, -0.9595, -0.9622691, -0.9649419, - -0.9675183, -0.9699979, -0.9723805, -0.9746658, -0.9768537, -0.9789439, - -0.9809362, -0.9828305, -0.9846264, -0.9863239, -0.9879227, -0.9894227, - -0.9908239, -0.9921259, -0.9933288, -0.9944322, -0.9954363, -0.9963408, - -0.9971456, -0.9978508, -0.9984561, -0.9989617, -0.9993673, -0.999673, + -0.9066279, -0.9108018, -0.9148846, -0.918876, -0.9227754, -0.9265826, + -0.9302971, -0.9339186, -0.9374467, -0.9408811, -0.9442213, -0.9474672, + -0.9506183, -0.9536743, -0.956635, -0.9595, -0.9622691, -0.9649419, + -0.9675183, -0.9699979, -0.9723805, -0.9746658, -0.9768537, -0.9789439, + -0.9809362, -0.9828305, -0.9846264, -0.9863239, -0.9879227, -0.9894227, + -0.9908239, -0.9921259, -0.9933288, -0.9944322, -0.9954363, -0.9963408, + -0.9971456, -0.9978508, -0.9984561, -0.9989617, -0.9993673, -0.999673, -0.9998787, -0.9999844, - -0.9999902, -0.9998959, -0.9997017, -0.9994075, -0.9990134, -0.9985193, - -0.9979254, -0.9972317, -0.9964383, -0.9955452, -0.9945526, -0.9934605, - -0.9922691, -0.9909785, -0.9895887, -0.9881001, -0.9865125, -0.9848264, - -0.9830417, -0.9811588, -0.9791777, -0.9770988, -0.9749221, -0.9726479, - -0.9702765, -0.967808, -0.9652427, -0.962581, -0.959823, -0.956969, - -0.9540192, -0.9509742, -0.947834, -0.944599, -0.9412695, -0.9378459, - -0.9343286, -0.9307178, -0.9270139, -0.9232174, -0.9193285, -0.9153477, + -0.9999902, -0.9998959, -0.9997017, -0.9994075, -0.9990134, -0.9985193, + -0.9979254, -0.9972317, -0.9964383, -0.9955452, -0.9945526, -0.9934605, + -0.9922691, -0.9909785, -0.9895887, -0.9881001, -0.9865125, -0.9848264, + -0.9830417, -0.9811588, -0.9791777, -0.9770988, -0.9749221, -0.9726479, + -0.9702765, -0.967808, -0.9652427, -0.962581, -0.959823, -0.956969, + -0.9540192, -0.9509742, -0.947834, -0.944599, -0.9412695, -0.9378459, + -0.9343286, -0.9307178, -0.9270139, -0.9232174, -0.9193285, -0.9153477, -0.9112754, -0.9071119, - -0.9028577, -0.8985133, -0.894079, -0.8895552, -0.8849425, -0.8802414, - -0.8754522, -0.8705754, -0.8656116, -0.8605613, -0.8554249, -0.8502029, - -0.844896, -0.8395045, -0.8340291, -0.8284702, -0.8228286, -0.8171046, - -0.811299, -0.8054122, -0.7994449, -0.7933976, -0.787271, -0.7810657, - -0.7747822, -0.7684214, -0.7619836, -0.7554696, -0.7488801, -0.7422158, - -0.7354771, -0.728665, -0.7217799, -0.7148228, -0.7077941, -0.7006946, - -0.6935251, -0.6862862, -0.6789787, -0.6716033, -0.6641607, -0.6566517, + -0.9028577, -0.8985133, -0.894079, -0.8895552, -0.8849425, -0.8802414, + -0.8754522, -0.8705754, -0.8656116, -0.8605613, -0.8554249, -0.8502029, + -0.844896, -0.8395045, -0.8340291, -0.8284702, -0.8228286, -0.8171046, + -0.811299, -0.8054122, -0.7994449, -0.7933976, -0.787271, -0.7810657, + -0.7747822, -0.7684214, -0.7619836, -0.7554696, -0.7488801, -0.7422158, + -0.7354771, -0.728665, -0.7217799, -0.7148228, -0.7077941, -0.7006946, + -0.6935251, -0.6862862, -0.6789787, -0.6716033, -0.6641607, -0.6566517, -0.6490771, -0.6414375, - -0.6337339, -0.6259668, -0.6181371, -0.6102456, -0.6022931, -0.5942804, - -0.5862082, -0.5780774, -0.5698889, -0.5616433, -0.5533416, -0.5449845, - -0.5365729, -0.5281077, -0.5195897, -0.5110196, -0.5023986, -0.4937272, - -0.4850065, -0.4762373, -0.4674205, -0.4585569, -0.4496475, -0.4406931, - -0.4316946, -0.422653, -0.4135691, -0.4044438, -0.3952781, -0.3860729, - -0.3768291, -0.3675475, -0.3582293, -0.3488752, -0.3394862, -0.3300633, - -0.3206073, -0.3111193, -0.3016002, -0.292051, -0.2824725, -0.2728658, + -0.6337339, -0.6259668, -0.6181371, -0.6102456, -0.6022931, -0.5942804, + -0.5862082, -0.5780774, -0.5698889, -0.5616433, -0.5533416, -0.5449845, + -0.5365729, -0.5281077, -0.5195897, -0.5110196, -0.5023986, -0.4937272, + -0.4850065, -0.4762373, -0.4674205, -0.4585569, -0.4496475, -0.4406931, + -0.4316946, -0.422653, -0.4135691, -0.4044438, -0.3952781, -0.3860729, + -0.3768291, -0.3675475, -0.3582293, -0.3488752, -0.3394862, -0.3300633, + -0.3206073, -0.3111193, -0.3016002, -0.292051, -0.2824725, -0.2728658, -0.2632318, -0.2535715, - -0.2438858, -0.2341757, -0.2244422, -0.2146863, -0.2049089, -0.195111, - -0.1852936, -0.1754577, -0.1656042, -0.1557341, -0.1458485, -0.1359483, - -0.1260345, -0.1161081, -0.1061701, -0.09622151, -0.08626327, -0.0762964, - -0.06632189, -0.05634077, -0.046354, -0.0363626, -0.02636756, - -0.01636988, -0.006370571, 0.003629378, 0.01362896, 0.02362719, - 0.03362305, 0.04361555, 0.05360368, 0.06358646, 0.07356288, 0.08353194, - 0.09349265, 0.103444, 0.113385, 0.1233147, 0.133232, 0.1431361, + -0.2438858, -0.2341757, -0.2244422, -0.2146863, -0.2049089, -0.195111, + -0.1852936, -0.1754577, -0.1656042, -0.1557341, -0.1458485, -0.1359483, + -0.1260345, -0.1161081, -0.1061701, -0.09622151, -0.08626327, -0.0762964, + -0.06632189, -0.05634077, -0.046354, -0.0363626, -0.02636756, + -0.01636988, -0.006370571, 0.003629378, 0.01362896, 0.02362719, + 0.03362305, 0.04361555, 0.05360368, 0.06358646, 0.07356288, 0.08353194, + 0.09349265, 0.103444, 0.113385, 0.1233147, 0.133232, 0.1431361, 0.1530258, 0.1629002, 0.1727583, 0.1825991, - 0.1924217, 0.2022251, 0.2120082, 0.2217701, 0.2315098, 0.2412264, - 0.2509189, 0.2605863, 0.2702276, 0.2798419, 0.2894282, 0.2989855, - 0.308513, 0.3180096, 0.3274744, 0.3369065, 0.3463049, 0.3556686, - 0.3649968, 0.3742885, 0.3835427, 0.3927587, 0.4019353, 0.4110717, - 0.420167, 0.4292203, 0.4382307, 0.4471973, 0.4561191, 0.4649954, - 0.4738251, 0.4826075, 0.4913416, 0.5000265, 0.5086614, 0.5172455, - 0.5257779, 0.5342577, 0.5426841, 0.5510561, 0.5593731, 0.5676342, + 0.1924217, 0.2022251, 0.2120082, 0.2217701, 0.2315098, 0.2412264, + 0.2509189, 0.2605863, 0.2702276, 0.2798419, 0.2894282, 0.2989855, + 0.308513, 0.3180096, 0.3274744, 0.3369065, 0.3463049, 0.3556686, + 0.3649968, 0.3742885, 0.3835427, 0.3927587, 0.4019353, 0.4110717, + 0.420167, 0.4292203, 0.4382307, 0.4471973, 0.4561191, 0.4649954, + 0.4738251, 0.4826075, 0.4913416, 0.5000265, 0.5086614, 0.5172455, + 0.5257779, 0.5342577, 0.5426841, 0.5510561, 0.5593731, 0.5676342, 0.5758385, 0.5839852, - 0.5920735, 0.6001026, 0.6080717, 0.61598, 0.6238267, 0.631611, 0.6393321, - 0.6469893, 0.6545818, 0.6621089, 0.6695698, 0.6769636, 0.6842899, - 0.6915476, 0.6987363, 0.705855, 0.7129031, 0.71988, 0.7267848, 0.7336171, - 0.7403759, 0.7470607, 0.7536708, 0.7602055, 0.7666642, 0.7730463, - 0.779351, 0.7855778, 0.7917261, 0.7977951, 0.8037844, 0.8096933, - 0.8155213, 0.8212677, 0.826932, 0.8325136, 0.8380119, 0.8434264, + 0.5920735, 0.6001026, 0.6080717, 0.61598, 0.6238267, 0.631611, 0.6393321, + 0.6469893, 0.6545818, 0.6621089, 0.6695698, 0.6769636, 0.6842899, + 0.6915476, 0.6987363, 0.705855, 0.7129031, 0.71988, 0.7267848, 0.7336171, + 0.7403759, 0.7470607, 0.7536708, 0.7602055, 0.7666642, 0.7730463, + 0.779351, 0.7855778, 0.7917261, 0.7977951, 0.8037844, 0.8096933, + 0.8155213, 0.8212677, 0.826932, 0.8325136, 0.8380119, 0.8434264, 0.8487566, 0.8540019, 0.8591618, 0.8642358, 0.8692234, 0.8741241, - 0.8789373, 0.8836626, 0.8882996, 0.8928478, 0.8973066, 0.9016758, - 0.9059547, 0.9101431, 0.9142405, 0.9182464, 0.9221606, 0.9259824, - 0.9297118, 0.9333481, 0.9368911, 0.9403404, 0.9436957, 0.9469566, - 0.9501228, 0.953194, 0.9561699, 0.9590501, 0.9618345, 0.9645227, - 0.9671144, 0.9696094, 0.9720075, 0.9743084, 0.9765118, 0.9786175, - 0.9806255, 0.9825354, 0.9843469, 0.9860601, 0.9876747, 0.9891905, - 0.9906074, 0.9919252, 0.9931438, 0.9942631, 0.995283, 0.9962034, + 0.8789373, 0.8836626, 0.8882996, 0.8928478, 0.8973066, 0.9016758, + 0.9059547, 0.9101431, 0.9142405, 0.9182464, 0.9221606, 0.9259824, + 0.9297118, 0.9333481, 0.9368911, 0.9403404, 0.9436957, 0.9469566, + 0.9501228, 0.953194, 0.9561699, 0.9590501, 0.9618345, 0.9645227, + 0.9671144, 0.9696094, 0.9720075, 0.9743084, 0.9765118, 0.9786175, + 0.9806255, 0.9825354, 0.9843469, 0.9860601, 0.9876747, 0.9891905, + 0.9906074, 0.9919252, 0.9931438, 0.9942631, 0.995283, 0.9962034, 0.9970241, 0.9977452, - 0.9983664, 0.9988878, 0.9993094, 0.999631, 0.9998527, 0.9999743, 0.999996, - 0.9999177, 0.9997393, 0.9994611, 0.9990828, 0.9986047, 0.9980267, - 0.9973488, 0.9965713, 0.9956941, 0.9947174, 0.9936411, 0.9924655, - 0.9911907, 0.9898167, 0.9883437, 0.9867719, 0.9851015, 0.9833325, - 0.9814652, 0.9794998, 0.9774364, 0.9752753, 0.9730166, 0.9706606, - 0.9682076, 0.9656578, 0.9630114, 0.9602687, 0.9574299, 0.9544954, + 0.9983664, 0.9988878, 0.9993094, 0.999631, 0.9998527, 0.9999743, 0.999996, + 0.9999177, 0.9997393, 0.9994611, 0.9990828, 0.9986047, 0.9980267, + 0.9973488, 0.9965713, 0.9956941, 0.9947174, 0.9936411, 0.9924655, + 0.9911907, 0.9898167, 0.9883437, 0.9867719, 0.9851015, 0.9833325, + 0.9814652, 0.9794998, 0.9774364, 0.9752753, 0.9730166, 0.9706606, + 0.9682076, 0.9656578, 0.9630114, 0.9602687, 0.9574299, 0.9544954, 0.9514655, 0.9483404, 0.9451205, 0.9418061, 0.9383975, 0.934895, 0.9312991, - 0.9276101, 0.9238282, 0.9199541, 0.9159878, 0.9119301, 0.9077811, - 0.9035413, 0.8992112, 0.8947912, 0.8902817, 0.8856831, 0.880996, - 0.8762208, 0.871358, 0.866408, 0.8613714, 0.8562487, 0.8510403, - 0.8457468, 0.8403688, 0.8349067, 0.8293611, 0.8237326, 0.8180218, - 0.8122291, 0.8063552, 0.8004007, 0.7943661, 0.7882521, 0.7820593, - 0.7757882, 0.7694396, 0.763014, 0.7565122, 0.7499346, 0.7432821, - 0.7365553, 0.7297548, 0.7228814, 0.7159356, 0.7089183, 0.70183, + 0.9276101, 0.9238282, 0.9199541, 0.9159878, 0.9119301, 0.9077811, + 0.9035413, 0.8992112, 0.8947912, 0.8902817, 0.8856831, 0.880996, + 0.8762208, 0.871358, 0.866408, 0.8613714, 0.8562487, 0.8510403, + 0.8457468, 0.8403688, 0.8349067, 0.8293611, 0.8237326, 0.8180218, + 0.8122291, 0.8063552, 0.8004007, 0.7943661, 0.7882521, 0.7820593, + 0.7757882, 0.7694396, 0.763014, 0.7565122, 0.7499346, 0.7432821, + 0.7365553, 0.7297548, 0.7228814, 0.7159356, 0.7089183, 0.70183, 0.6946716, 0.6874437, - 0.6801471, 0.6727825, 0.6653506, 0.6578521, 0.6502879, 0.6426586, - 0.6349651, 0.627208, 0.6193883, 0.6115066, 0.6035637, 0.5955606, - 0.5874978, 0.5793763, 0.5711969, 0.5629603, 0.5546675, 0.5463191, - 0.5379162, 0.5294595, 0.5209498, 0.512388, 0.503775, 0.4951116, - 0.4863987, 0.4776371, 0.4688278, 0.4599716, 0.4510695, 0.4421222, - 0.4331307, 0.4240958, 0.4150186, 0.4058999, 0.3967406, 0.3875416, - 0.3783038, 0.3690283, 0.3597158, 0.3503673, 0.3409838, 0.3315663, + 0.6801471, 0.6727825, 0.6653506, 0.6578521, 0.6502879, 0.6426586, + 0.6349651, 0.627208, 0.6193883, 0.6115066, 0.6035637, 0.5955606, + 0.5874978, 0.5793763, 0.5711969, 0.5629603, 0.5546675, 0.5463191, + 0.5379162, 0.5294595, 0.5209498, 0.512388, 0.503775, 0.4951116, + 0.4863987, 0.4776371, 0.4688278, 0.4599716, 0.4510695, 0.4421222, + 0.4331307, 0.4240958, 0.4150186, 0.4058999, 0.3967406, 0.3875416, + 0.3783038, 0.3690283, 0.3597158, 0.3503673, 0.3409838, 0.3315663, 0.3221155, 0.3126326 }; diff --git a/ncdap_test/test_partvar2.c b/ncdap_test/test_partvar2.c index 3d22518081..1965507251 100644 --- a/ncdap_test/test_partvar2.c +++ b/ncdap_test/test_partvar2.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Test part variable fetch code */ @@ -9,7 +19,7 @@ Test part variable fetch code #include "ncdispatch.h" #include "nctestserver.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: Bands\:PolarGrid = 3 ; @@ -44,7 +54,7 @@ netcdf test { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -140,7 +150,7 @@ subslice(int rank, size_t* count, int startdim) { int i; size_t offset = 1; - for(i=startdim;irank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -233,1410 +243,1410 @@ odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } /* Capture the complete set of data */ static float target_content[YDim_UTMGrid*XDim_UTMGrid] = { - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; diff --git a/ncdap_test/test_vara.c b/ncdap_test/test_vara.c index b819a29c5f..aee2d2865f 100644 --- a/ncdap_test/test_vara.c +++ b/ncdap_test/test_vara.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -5,7 +15,7 @@ #include "netcdf.h" #include "t_srcdir.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: t = 10 ; @@ -37,7 +47,7 @@ netcdf test { /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -165,7 +175,7 @@ static void odom_reclaim(Odom* odom) } -static void odom_set(Odom* odom, size_t* start, size_t* count) +static void odom_set(Odom* odom, size_t* start, size_t* count) { int i; /* Init the odometer */ @@ -187,7 +197,7 @@ static int odom_more(Odom* odom) static int odom_incr(Odom* odom) { int i; /* do not make unsigned */ - if(odom->rank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -205,366 +215,366 @@ static size_t odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } #ifdef IGNORE static float threeD_data[X][Y][Z] = { - 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, - 0.999200106660978, 0.998750260394966, 0.998200539935204, + 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, + 0.999200106660978, 0.998750260394966, 0.998200539935204, 0.99755100025328, 0.996801706302619, 0.995952733011994, - 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, - 0.990215996212637, 0.988771077936042, 0.987227283375627, + 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, + 0.990215996212637, 0.988771077936042, 0.987227283375627, 0.985584766909561, 0.983843692788121, 0.98200423511727, - 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, - 0.97133797485203, 0.968912421710645, 0.966389978134513, + 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, + 0.97133797485203, 0.968912421710645, 0.966389978134513, 0.963770896365891, 0.961055438310771, 0.958243875512697, - 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, - 0.942754665528346, 0.939372712847379, 0.935896823677935, + 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, + 0.942754665528346, 0.939372712847379, 0.935896823677935, 0.932327345606034, 0.92866463557651, 0.924909059857313, - 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, - 0.904751663219963, 0.900447102352677, 0.896052497525525, + 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, + 0.904751663219963, 0.900447102352677, 0.896052497525525, 0.891568288195329, 0.886994922779284, 0.882332858610121, - 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, - 0.857708681363824, 0.852524522059506, 0.847255111013416, + 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, + 0.857708681363824, 0.852524522059506, 0.847255111013416, 0.841900975162269, 0.836462649915187, 0.830940679100164, - 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, - 0.802095757884293, 0.796083798549056, 0.789992231497365, + 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, + 0.802095757884293, 0.796083798549056, 0.789992231497365, 0.783821665880849, 0.777572718750928, 0.771246014997107, - 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, - 0.738468558729588, 0.731688868873821, 0.724836010740905, + 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, + 0.738468558729588, 0.731688868873821, 0.724836010740905, 0.717910669610943, 0.710913538012277, 0.703845315652236, - 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, - 0.667462825841308, 0.659983145884982, 0.652437468164052, + 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, + 0.667462825841308, 0.659983145884982, 0.652437468164052, 0.644826547240001, 0.63715114419858, 0.629412026573697, - 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, - 0.589788025031098, 0.581683089463883, 0.573519986072457, + 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, + 0.589788025031098, 0.581683089463883, 0.573519986072457, 0.565299531160354, 0.557022546766217, 0.548689860581588, - 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, - 0.506220257232778, 0.497571047891727, 0.488872081860527, + 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, + 0.506220257232778, 0.497571047891727, 0.488872081860527, 0.480124229028534, 0.47132836417374, 0.462485366875301, - 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, - 0.417594503958358, 0.408487440884157, 0.399339529406273, + 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, + 0.417594503958358, 0.408487440884157, 0.399339529406273, 0.39015168430823, 0.380924824366882, 0.371659872260533, - 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, - 0.324796284438776, 0.315322362395269, 0.305816908378289, + 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, + 0.324796284438776, 0.315322362395269, 0.305816908378289, 0.296280872925319, 0.286715209631956, 0.277120875056558, - 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, - 0.228752807808459, 0.219006687093041, 0.209238665891419, + 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, + 0.228752807808459, 0.219006687093041, 0.209238665891419, 0.199449720997573, 0.189640831297834, 0.179812977673, - 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, - 0.130423708738146, 0.120502769367367, 0.11056977982007, + 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, + 0.130423708738146, 0.120502769367367, 0.11056977982007, 0.100625733386932, 0.0906716244643097, 0.0807084484548006, - 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, - 0.040785011241591, 0.0307914590824661, 0.0207948278030924, - 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, + 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, + 0.040785011241591, 0.0307914590824661, 0.0207948278030924, + 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, -0.0192024929016926, - -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, - -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, - -0.089085416936459, -0.099041036598728, -0.108986752239871, + -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, + -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, + -0.089085416936459, -0.099041036598728, -0.108986752239871, -0.118921569296612, - -0.128844494295525, -0.138754534952378, -0.148650700271364, - -0.158532000644198, -0.168397447949077, -0.178246055649492, - -0.18807683889288, -0.197888814609109, -0.207681001608784, + -0.128844494295525, -0.138754534952378, -0.148650700271364, + -0.158532000644198, -0.168397447949077, -0.178246055649492, + -0.18807683889288, -0.197888814609109, -0.207681001608784, -0.217452420681365, - -0.227202094693087, -0.236929048684675, -0.246632309968834, - -0.256310908227523, -0.26596387560898, -0.275590246824513, - -0.285189059245021, -0.294759352997261, -0.304300171059833, + -0.227202094693087, -0.236929048684675, -0.246632309968834, + -0.256310908227523, -0.26596387560898, -0.275590246824513, + -0.285189059245021, -0.294759352997261, -0.304300171059833, -0.313810559358882, - -0.323289566863503, -0.332736245680845, -0.342149651150898, - -0.35152884194096, -0.360872880139767, -0.370180831351287, - -0.379451764788155, -0.388684753364752, -0.397878873789916, + -0.323289566863503, -0.332736245680845, -0.342149651150898, + -0.35152884194096, -0.360872880139767, -0.370180831351287, + -0.379451764788155, -0.388684753364752, -0.397878873789916, -0.407033206659266, - -0.416146836547142, -0.425218852098152, -0.4342483461183, - -0.443234415665709, -0.452176162140912, -0.461072691376713, - -0.469923113727602, -0.47872654415872, -0.487482102334359, + -0.416146836547142, -0.425218852098152, -0.4342483461183, + -0.443234415665709, -0.452176162140912, -0.461072691376713, + -0.469923113727602, -0.47872654415872, -0.487482102334359, -0.496188912705999, - -0.504846104599858, -0.513452812303959, -0.522008175154707, - -0.530511337622945, -0.538961449399512, -0.547357665480271, - -0.555699146250613, -0.56398505756941, -0.572214570852437, + -0.504846104599858, -0.513452812303959, -0.522008175154707, + -0.530511337622945, -0.538961449399512, -0.547357665480271, + -0.555699146250613, -0.56398505756941, -0.572214570852437, -0.580386863155222, - -0.588501117255346, -0.59655652173416, -0.60455227105793, - -0.612487565658385, -0.62036161201268, -0.628173622722739, - -0.635922816594002, -0.643608418713541, -0.651229660527546, + -0.588501117255346, -0.59655652173416, -0.60455227105793, + -0.612487565658385, -0.62036161201268, -0.628173622722739, + -0.635922816594002, -0.643608418713541, -0.651229660527546, -0.658785779918188, - -0.666276021279824, -0.673699635594561, -0.681055880507152, - -0.688344020399238, -0.695563326462902, -0.702713076773554, - -0.70979255636212, -0.716801057286543, -0.723737878702569, + -0.666276021279824, -0.673699635594561, -0.681055880507152, + -0.688344020399238, -0.695563326462902, -0.702713076773554, + -0.70979255636212, -0.716801057286543, -0.723737878702569, -0.730602326933837, - -0.737393715541245, -0.744111365391593, -0.750754604725491, - -0.757322769224544, -0.763815202077774, -0.770231254047307, - -0.776570283533293, -0.782831656638065, -0.789014747229531, + -0.737393715541245, -0.744111365391593, -0.750754604725491, + -0.757322769224544, -0.763815202077774, -0.770231254047307, + -0.776570283533293, -0.782831656638065, -0.789014747229531, -0.795118937003784, - -0.801143615546934, -0.807088180396146, -0.81295203709989, - -0.818734599277382, -0.824435288677222, -0.830053535235222, - -0.835588777131408, -0.841040460846201, -0.846408041215776, + -0.801143615546934, -0.807088180396146, -0.81295203709989, + -0.818734599277382, -0.824435288677222, -0.830053535235222, + -0.835588777131408, -0.841040460846201, -0.846408041215776, -0.851690981486566, - -0.856888753368947, -0.862000837090063, -0.867026721445802, - -0.871965903851917, -0.876817890394281, -0.881582195878286, - -0.886258343877352, -0.890845866780576, -0.895344305839492, + -0.856888753368947, -0.862000837090063, -0.867026721445802, + -0.871965903851917, -0.876817890394281, -0.881582195878286, + -0.886258343877352, -0.890845866780576, -0.895344305839492, -0.899753211213941, - -0.904072142017061, -0.90830066635937, -0.912438361391958, - -0.916484813348769, -0.920439617587981, -0.924302378632464, - -0.928072710209333, -0.931750235288572, -0.935334586120739, + -0.904072142017061, -0.90830066635937, -0.912438361391958, + -0.916484813348769, -0.920439617587981, -0.924302378632464, + -0.928072710209333, -0.931750235288572, -0.935334586120739, -0.938825404273736, - -0.942222340668658, -0.945525055614696, -0.948733218843107, - -0.951846509540242, -0.954864616379626, -0.95778723755309, - -0.960614080800952, -0.963344863441243, -0.965979312397975, + -0.942222340668658, -0.945525055614696, -0.948733218843107, + -0.951846509540242, -0.954864616379626, -0.95778723755309, + -0.960614080800952, -0.963344863441243, -0.965979312397975, -0.968517164228447, - -0.970958165149591, -0.973302071063349, -0.975548647581083, - -0.977697670047013, -0.979748923560684, -0.981702202998454, - -0.983557313034006, -0.985314068157884, -0.986972292696038, + -0.970958165149591, -0.973302071063349, -0.975548647581083, + -0.977697670047013, -0.979748923560684, -0.981702202998454, + -0.983557313034006, -0.985314068157884, -0.986972292696038, -0.988531820827396, - -0.989992496600445, -0.991354173948826, -0.992616716705937, - -0.993779998618556, -0.994843903359459, -0.995808324539061, - -0.996673165716047, -0.997438340407019, -0.998103772095146, + -0.989992496600445, -0.991354173948826, -0.992616716705937, + -0.993779998618556, -0.994843903359459, -0.995808324539061, + -0.996673165716047, -0.997438340407019, -0.998103772095146, -0.998669394237814, - -0.999135150273279, -0.999500993626328, -0.999766887712928, - -0.999932805943894, -0.99999873172754, -0.999964658471342, - -0.999830589582598, -0.999596538468086, -0.999262528532721, + -0.999135150273279, -0.999500993626328, -0.999766887712928, + -0.999932805943894, -0.99999873172754, -0.999964658471342, + -0.999830589582598, -0.999596538468086, -0.999262528532721, -0.998828593177219, - -0.998294775794753, -0.997661129766618, -0.996927718456887, - -0.996094615206081, -0.99516190332383, -0.994129676080546, - -0.992998036698093, -0.991767098339465, -0.990436984097473, + -0.998294775794753, -0.997661129766618, -0.996927718456887, + -0.996094615206081, -0.99516190332383, -0.994129676080546, + -0.992998036698093, -0.991767098339465, -0.990436984097473, -0.989007826982433, - -0.987479769908865, -0.985852965681203, -0.984127576978514, - -0.982303776338232, -0.980381746138899, -0.978361678581934, - -0.97624377567241, -0.974028249198852, -0.971715320712062, + -0.987479769908865, -0.985852965681203, -0.984127576978514, + -0.982303776338232, -0.980381746138899, -0.978361678581934, + -0.97624377567241, -0.974028249198852, -0.971715320712062, -0.969305221502961, - -0.966798192579461, -0.964194484642366, -0.961494358060299, - -0.958698082843669, -0.955805938617666, -0.952818214594305, - -0.949735209543496, -0.946557231763177, -0.943284599048476, + -0.966798192579461, -0.964194484642366, -0.961494358060299, + -0.958698082843669, -0.955805938617666, -0.952818214594305, + -0.949735209543496, -0.946557231763177, -0.943284599048476, -0.939917638659938, - -0.936456687290796, -0.932902091033304, -0.929254205344123, - -0.925513395008784, -0.921680034105203, -0.917754505966276, - -0.913737203141545, -0.909628527357945, -0.90542888947963, + -0.936456687290796, -0.932902091033304, -0.929254205344123, + -0.925513395008784, -0.921680034105203, -0.917754505966276, + -0.913737203141545, -0.909628527357945, -0.90542888947963, -0.901138709466889, - -0.896758416334147, -0.892288448107068, -0.88772925177875, - -0.883081283265026, -0.878345007358874, -0.873520897683938, - -0.868609436647165, -0.863611115390566, -0.858526433742102, + -0.896758416334147, -0.892288448107068, -0.88772925177875, + -0.883081283265026, -0.878345007358874, -0.873520897683938, + -0.868609436647165, -0.863611115390566, -0.858526433742102, -0.8533559001657, - -0.848100031710408, -0.842759353958694, -0.83733440097388, - -0.831825715246746, -0.826233847641272, -0.820559357339561, - -0.814802811785913, -0.808964786630086, -0.803045865669731, + -0.848100031710408, -0.842759353958694, -0.83733440097388, + -0.831825715246746, -0.826233847641272, -0.820559357339561, + -0.814802811785913, -0.808964786630086, -0.803045865669731, -0.797046640792012, - -0.790967711914417, -0.784809686924768, -0.778573181620433, - -0.772258819646744, -0.765867232434637, -0.759399059137508, - -0.752854946567295, -0.746235549129803, -0.739541528759258, + -0.790967711914417, -0.784809686924768, -0.778573181620433, + -0.772258819646744, -0.765867232434637, -0.759399059137508, + -0.752854946567295, -0.746235549129803, -0.739541528759258, -0.73277355485212, - -0.72593230420014, -0.719018460922681, -0.71203271639831, - -0.704975769195658, -0.697848325003564, -0.690651096560507, - -0.683384803583336, -0.676050172695292, -0.668647937353351, + -0.72593230420014, -0.719018460922681, -0.71203271639831, + -0.704975769195658, -0.697848325003564, -0.690651096560507, + -0.683384803583336, -0.676050172695292, -0.668647937353351, -0.66117883777488, - -0.653643620863612, -0.646043040134959, -0.63837785564066, - -0.630648833892775, -0.622856747787041, -0.615002376525574, - -0.607086505538955, -0.599109926407685, -0.591073436783031, + -0.653643620863612, -0.646043040134959, -0.63837785564066, + -0.630648833892775, -0.622856747787041, -0.615002376525574, + -0.607086505538955, -0.599109926407685, -0.591073436783031, -0.582977840307259, - -0.574823946533269, -0.566612570843644, -0.55834453436911, - -0.550020663906425, -0.541641791835699, -0.533208756037154, - -0.524722399807346, -0.516183571774825, -0.507593125815277, + -0.574823946533269, -0.566612570843644, -0.55834453436911, + -0.550020663906425, -0.541641791835699, -0.533208756037154, + -0.524722399807346, -0.516183571774825, -0.507593125815277, -0.49895192096614, - -0.490260821340699, -0.481520696041674, -0.47273241907431, - -0.46389686925898, -0.455014930143305, -0.446087489913793, - -0.437115441307028, -0.428099681520394, -0.419041112122356, + -0.490260821340699, -0.481520696041674, -0.47273241907431, + -0.46389686925898, -0.455014930143305, -0.446087489913793, + -0.437115441307028, -0.428099681520394, -0.419041112122356, -0.409940638962306, - -0.400799172079975, -0.391617625614436, -0.38239691771268, - -0.373137970437818, -0.363841709676858, -0.354509065048132, - -0.345140969808323, -0.335738360759151, -0.326302178153684, + -0.400799172079975, -0.391617625614436, -0.38239691771268, + -0.373137970437818, -0.363841709676858, -0.354509065048132, + -0.345140969808323, -0.335738360759151, -0.326302178153684, -0.316833365602319, - -0.307332869978419, -0.297801641323633, -0.288240632752882, - -0.278650800359055, -0.269033103117399, -0.259388502789626, - -0.249717963827731, -0.24002245327755, -0.230302940682059, + -0.307332869978419, -0.297801641323633, -0.288240632752882, + -0.278650800359055, -0.269033103117399, -0.259388502789626, + -0.249717963827731, -0.24002245327755, -0.230302940682059, -0.220560397984419, - -0.21079579943078, -0.20101012147286, -0.191204342670302, - -0.181379443592811, -0.171536406722112, -0.161676216353687, - -0.151799858498356, -0.141908320783673, -0.13200259235517, + -0.21079579943078, -0.20101012147286, -0.191204342670302, + -0.181379443592811, -0.171536406722112, -0.161676216353687, + -0.151799858498356, -0.141908320783673, -0.13200259235517, -0.122083663777433, - -0.112152526935055, -0.102210174933442, -0.0922576019995117, - -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, - -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, + -0.112152526935055, -0.102210174933442, -0.0922576019995117, + -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, + -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, -0.0223871099574771, - -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, - 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, - 0.0475930341377878, 0.057579156123846, 0.0675595202422752, + -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, + 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, + 0.0475930341377878, 0.057579156123846, 0.0675595202422752, 0.0775331284649787, - 0.0874989834394464, 0.0974560885884857, 0.10740344820988, - 0.117340067575955, 0.127264953033056, 0.137177112100907, + 0.0874989834394464, 0.0974560885884857, 0.10740344820988, + 0.117340067575955, 0.127264953033056, 0.137177112100907, 0.147075553571863, 0.156959287610023, 0.166827325850222, 0.176678681496857, - 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, - 0.225650805269396, 0.235381442954451, 0.245088542691362, + 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, + 0.225650805269396, 0.235381442954451, 0.245088542691362, 0.254771133778243, 0.264428247964056, 0.274058919545427, - 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, - 0.321782029249722, 0.331233920236754, 0.340652688107789, + 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, + 0.321782029249722, 0.331233920236754, 0.340652688107789, 0.350037390993891, 0.35938709043259, 0.368700851461733, - 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, - 0.414698113560782, 0.423776817679428, 0.432813144469452, + 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, + 0.414698113560782, 0.423776817679428, 0.432813144469452, 0.441806190305705, 0.450755055891099, 0.459658846346532, - 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, - 0.503470671402114, 0.512085477241841, 0.520649074960579, + 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, + 0.503470671402114, 0.512085477241841, 0.520649074960579, 0.529160608205695, 0.537619225830956, 0.546024081981648, - 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, - 0.587212716720073, 0.595277547988606, 0.603282851998404, + 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, + 0.587212716720073, 0.595277547988606, 0.603282851998404, 0.611227828225735, 0.619111682179599, 0.626933625481169, - 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, - 0.665087526679283, 0.672521802248466, 0.679888826197857, + 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, + 0.665087526679283, 0.672521802248466, 0.679888826197857, 0.687187861831201, 0.694418179251016, 0.701579055431586, - 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, - 0.736317001920619, 0.74304644096641, 0.749701575987307, + 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, + 0.736317001920619, 0.74304644096641, 0.749701575987307, 0.756281741475356, 0.762786279419489, 0.769214539371333, - 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, - 0.800189441072806, 0.806146805264716, 0.812023555447886, + 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, + 0.800189441072806, 0.806146805264716, 0.812023555447886, 0.817819103952194, 0.823532871227622, 0.829164285902202, - 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, - 0.856066651837255, 0.861192417161521, 0.866232063961728, + 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, + 0.856066651837255, 0.861192417161521, 0.866232063961728, 0.871185088277397, 0.876050994810224, 0.880829296973609, - 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, - 0.903390327594559, 0.907633279098413, 0.911785468030717, + 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, + 0.903390327594559, 0.907633279098413, 0.911785468030717, 0.915846479176035, 0.919815906436639, 0.92369335287311, - 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, - 0.941687625819678, 0.945005369334228, 0.948228613099346, + 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, + 0.941687625819678, 0.945005369334228, 0.948228613099346, 0.951357034793342, 0.954390321576654, 0.957328170123131, - 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, - 0.970575892568149, 0.972935278296897, 0.975197371308593, + 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, + 0.970575892568149, 0.972935278296897, 0.975197371308593, 0.977361945395819, 0.979428784102971, 0.981397680747901, - 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, - 0.989766485827815, 0.991143939568469, 0.992422279741117, + 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, + 0.989766485827815, 0.991143939568469, 0.992422279741117, 0.993601378512806, 0.994681117974643, 0.99566139015358, - 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, - 0.99906765953439, 0.999449418224499, 0.999731232805658, + 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, + 0.99906765953439, 0.999449418224499, 0.999731232805658, 0.999913075096642, 0.999994926913375, 0.999976780070743, - 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, - 0.998386479434759, 0.997768728667684, 0.997051201859214, + 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, + 0.998386479434759, 0.997768728667684, 0.997051201859214, 0.996233970761431, 0.995317117096764, 0.994300732549815, - 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, - 0.987729751655308, 0.986118663792513, 0.984408964885101, + 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, + 0.987729751655308, 0.986118663792513, 0.984408964885101, 0.982600825901538, 0.980694427654217, 0.978689960781373, - 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, - 0.967203954697364, 0.964615627196218, 0.961930838936196, + 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, + 0.967203954697364, 0.964615627196218, 0.961930838936196, 0.959149858393887, 0.956272963665028, 0.953300442436693, - 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, - 0.937014175539204, 0.933474470112512, 0.929841418016701, + 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, + 0.937014175539204, 0.933474470112512, 0.929841418016701, 0.926115382553955, 0.922296736324713, 0.918385861190416, - 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, - 0.897462060474762, 0.893006344689077, 0.888461329013091, + 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, + 0.897462060474762, 0.893006344689077, 0.888461329013091, 0.883827467944587, 0.879105224865808, 0.874295071997128, - 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, - 0.848942801163572, 0.84361559505816, 0.838204028096251, + 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, + 0.848942801163572, 0.84361559505816, 0.838204028096251, 0.832708641430035, 0.827129984593597, 0.821468615447972, - 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, - 0.791941186006336, 0.785795717263661, 0.779571669604088, + 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, + 0.791941186006336, 0.785795717263661, 0.779571669604088, 0.773269665427194, 0.766890334928147, 0.760434316034681, - 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, - 0.727026756299476, 0.720124428411794, 0.713150088681373, + 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, + 0.727026756299476, 0.720124428411794, 0.713150088681373, 0.706104434536373, 0.698988170536338, 0.691802008301737, - 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, - 0.654848115566766, 0.647257894312724, 0.639602947808631, + 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, + 0.654848115566766, 0.647257894312724, 0.639602947808631, 0.631884041542758, 0.624101947399299, 0.616257443581182, - 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, - 0.576126448927319, 0.567924173288695, 0.55966510570601, + 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, + 0.576126448927319, 0.567924173288695, 0.55966510570601, 0.551350072079141, 0.542979903904521, 0.534555438191992, - 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, - 0.491648317252275, 0.482915941655938, 0.474135274867862, + 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, + 0.491648317252275, 0.482915941655938, 0.474135274867862, 0.465307194947413, 0.456432584695223, 0.447512331564922, - 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, - 0.402257798108573, 0.393082573564941, 0.38386804109152, + 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, + 0.402257798108573, 0.393082573564941, 0.38386804109152, 0.374615122133879, 0.365324741976202, 0.355997829648764, - 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, - 0.30884805201492, 0.299321654334707, 0.289765324738495, + 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, + 0.30884805201492, 0.299321654334707, 0.289765324738495, 0.280180018851278, 0.27056669519566, 0.260926315095994, - 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, - 0.212352398277126, 0.202570012076944, 0.192767369044364, + 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, + 0.212352398277126, 0.202570012076944, 0.192767369044364, 0.182945449435517, 0.173105235434182, 0.163247711053556, - 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, - 0.113734989570117, 0.103794357219253, 0.0938433455191623, + 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, + 0.113734989570117, 0.103794357219253, 0.0938433455191623, 0.0838829495627223, 0.0739141653812273, 0.06393798984479, - 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, - 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, - -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, + 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, + 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, + -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, -0.0360105786234153, - -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, - -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, - -0.105819871746218, -0.115758268216946, -0.125685088957318, + -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, + -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, + -0.105819871746218, -0.115758268216946, -0.125685088957318, -0.135599341293531, - -0.145500033808614, -0.155386176441565, -0.16525678058636, - -0.17511085919081, -0.184947426855267, -0.194765499931161, - -0.204564096619365, -0.214342237068377, -0.2240989434723, + -0.145500033808614, -0.155386176441565, -0.16525678058636, + -0.17511085919081, -0.184947426855267, -0.194765499931161, + -0.204564096619365, -0.214342237068377, -0.2240989434723, -0.233833240168624, - -0.243544153735791, -0.253230713090538, -0.262891949585, - -0.272526897103582, -0.282134592159557, -0.291714073991427, - -0.301264384658992, -0.310784569139144, -0.320273675421368, + -0.243544153735791, -0.253230713090538, -0.262891949585, + -0.272526897103582, -0.282134592159557, -0.291714073991427, + -0.301264384658992, -0.310784569139144, -0.320273675421368, -0.329730754602944, - -0.339154860983835, -0.348545052161256, -0.357900389123914, - -0.367219936345908, -0.376502761880283, -0.385747937452222, - -0.394954538551871, -0.404121644526792, -0.413248338674028, + -0.339154860983835, -0.348545052161256, -0.357900389123914, + -0.367219936345908, -0.376502761880283, -0.385747937452222, + -0.394954538551871, -0.404121644526792, -0.413248338674028, -0.422333708331768, - -0.431376844970621, -0.440376844284454, -0.449332806280839, - -0.458243835371038, -0.467109040459569, -0.47592753503331, - -0.484698437250152, -0.493420870027184, -0.502093961128397, + -0.431376844970621, -0.440376844284454, -0.449332806280839, + -0.458243835371038, -0.467109040459569, -0.47592753503331, + -0.484698437250152, -0.493420870027184, -0.502093961128397, -0.510716843251906, - -0.519288654116686, -0.527808536548793, -0.536275638567084, - -0.544689113468413, -0.553048119912302, -0.561351822005071, - -0.569599389383433, -0.57778999729752, -0.585922826693367, + -0.519288654116686, -0.527808536548793, -0.536275638567084, + -0.544689113468413, -0.553048119912302, -0.561351822005071, + -0.569599389383433, -0.57778999729752, -0.585922826693367, -0.593997064294812, - -0.602011902684824, -0.609966540386242, -0.617860181941925, - -0.625692037994295, -0.633461325364275, -0.641167267129602, - -0.648809092702519, -0.656386037906838, -0.663897345054353, + -0.602011902684824, -0.609966540386242, -0.617860181941925, + -0.625692037994295, -0.633461325364275, -0.641167267129602, + -0.648809092702519, -0.656386037906838, -0.663897345054353, -0.671342263020609, - -0.678720047320012, -0.686029960180282, -0.693271270616224, - -0.700443254502829, -0.707545194647683, -0.714576380862692, - -0.721536110035093, -0.728423686197768, -0.735238420598841, + -0.678720047320012, -0.686029960180282, -0.693271270616224, + -0.700443254502829, -0.707545194647683, -0.714576380862692, + -0.721536110035093, -0.728423686197768, -0.735238420598841, -0.741979631770551, - -0.748646645597399, -0.755238795383558, -0.76175542191954, - -0.768195873548125, -0.774559506229517, -0.780845683605749, - -0.787053777064324, -0.793183165801068, -0.799233236882215, + -0.748646645597399, -0.755238795383558, -0.76175542191954, + -0.768195873548125, -0.774559506229517, -0.780845683605749, + -0.787053777064324, -0.793183165801068, -0.799233236882215, -0.8052033853057, - -0.811093014061656, -0.816901534192113, -0.8226283648499, - -0.828272933356724, -0.833834675260437, -0.839313034391484, - -0.844707462918517, -0.850017421403178, -0.855242378854046, + -0.811093014061656, -0.816901534192113, -0.8226283648499, + -0.828272933356724, -0.833834675260437, -0.839313034391484, + -0.844707462918517, -0.850017421403178, -0.855242378854046, -0.860381812779727, - -0.865435209241112, -0.870402062902767, -0.875281877083464, - -0.880074163805853, -0.884778443845253, -0.889394246777581, - -0.893921111026392, -0.898358583909032, -0.90270622168191, + -0.865435209241112, -0.870402062902767, -0.875281877083464, + -0.880074163805853, -0.884778443845253, -0.889394246777581, + -0.893921111026392, -0.898358583909032, -0.90270622168191, -0.906963589584872, - -0.911130261884677, -0.915205821917566, -0.919189862130932, - -0.923081984124074, -0.926881798688036, -0.930588925844528, - -0.934202994883924, -0.937723644402332, -0.941150522337732, + -0.911130261884677, -0.915205821917566, -0.919189862130932, + -0.923081984124074, -0.926881798688036, -0.930588925844528, + -0.934202994883924, -0.937723644402332, -0.941150522337732, -0.944483286005189, - -0.947721602131112, -0.950865146886587, -0.953913605919758, - -0.956866674387264, -0.959724056984716, -0.962485467976237, - -0.965150631223029, -0.967719280210989, -0.970191158077357, + -0.947721602131112, -0.950865146886587, -0.953913605919758, + -0.956866674387264, -0.959724056984716, -0.962485467976237, + -0.965150631223029, -0.967719280210989, -0.970191158077357, -0.972566017636408, - -0.974843621404164, -0.977023741622146, -0.97910616028015, - -0.981090669138045, -0.982977069746599, -0.984765173467324, - -0.986454801491336, -0.988045784857242, -0.989537964468031, + -0.974843621404164, -0.977023741622146, -0.97910616028015, + -0.981090669138045, -0.982977069746599, -0.984765173467324, + -0.986454801491336, -0.988045784857242, -0.989537964468031, -0.990931191106986, - -0.992225325452603, -0.993420238092527, -0.994515809536489, - -0.995511930228257, -0.996408500556594, -0.997205430865212, - -0.997902641461745, -0.998500062625715, -0.998997634615504, + -0.992225325452603, -0.993420238092527, -0.994515809536489, + -0.995511930228257, -0.996408500556594, -0.997205430865212, + -0.997902641461745, -0.998500062625715, -0.998997634615504, -0.999395307674325, - -0.999693042035206, -0.999890807924959, -0.999988585567158, - -0.999986365184122, -0.999884146997886, -0.999681941230185, - -0.999379768101426, -0.998977657828671, -0.998475650622611, + -0.999693042035206, -0.999890807924959, -0.999988585567158, + -0.999986365184122, -0.999884146997886, -0.999681941230185, + -0.999379768101426, -0.998977657828671, -0.998475650622611, -0.99787379668355, - -0.997172156196378, -0.996370799324562, -0.995469806203119, - -0.994469266930611, -0.993369281560131, -0.992169960089301, - -0.990871422449267, -0.989473798492712, -0.987977227980866, + -0.997172156196378, -0.996370799324562, -0.995469806203119, + -0.994469266930611, -0.993369281560131, -0.992169960089301, + -0.990871422449267, -0.989473798492712, -0.987977227980866, -0.986381860569534, - -0.984687855794127, -0.982895383053711, -0.981004621594066, - -0.979015760489763, -0.976928998625255, -0.974744544674989, - -0.97246261708254, -0.970083444038766, -0.967607263458988, + -0.984687855794127, -0.982895383053711, -0.981004621594066, + -0.979015760489763, -0.976928998625255, -0.974744544674989, + -0.97246261708254, -0.970083444038766, -0.967607263458988, -0.965034322959201, - -0.96236487983131, -0.959599201017404, -0.95673756308306, - -0.953780252189686, -0.950727564065908, -0.947579803977993, - -0.944337286699328, -0.941000336478938, -0.937569287009064, + -0.96236487983131, -0.959599201017404, -0.95673756308306, + -0.953780252189686, -0.950727564065908, -0.947579803977993, + -0.944337286699328, -0.941000336478938, -0.937569287009064, -0.934044481391795, - -0.930426272104753, -0.926715020965855, -0.922911099097119, - -0.919014886887564, -0.915026773955164, -0.910947159107888, - -0.906776450303821, -0.902515064610368, -0.898163428162546, + -0.930426272104753, -0.926715020965855, -0.922911099097119, + -0.919014886887564, -0.915026773955164, -0.910947159107888, + -0.906776450303821, -0.902515064610368, -0.898163428162546, -0.893721976120377, - -0.889191152625361, -0.884571410756073, -0.879863212482849, - -0.875067028621594, -0.870183338786697, -0.865212631343072, - -0.86015540335732, -0.855012160548026, -0.849783417235186, - -0.844469696288772 + -0.889191152625361, -0.884571410756073, -0.879863212482849, + -0.875067028621594, -0.870183338786697, -0.865212631343072, + -0.86015540335732, -0.855012160548026, -0.849783417235186, + -0.844469696288772 }; #endif diff --git a/ncdap_test/testdata3/CMakeLists.txt b/ncdap_test/testdata3/CMakeLists.txt index ce0734596c..5df1d4251b 100644 --- a/ncdap_test/testdata3/CMakeLists.txt +++ b/ncdap_test/testdata3/CMakeLists.txt @@ -1,6 +1,12 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*) SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am) -ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") \ No newline at end of file +ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") diff --git a/ncdump/CMakeLists.txt b/ncdump/CMakeLists.txt index 4201ef44a1..0dc02b2d58 100644 --- a/ncdump/CMakeLists.txt +++ b/ncdump/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. IF(BUILD_SHARED_LIBS AND WIN32) remove_definitions(-DDLL_EXPORT) remove_definitions(-DDLL_NETCDF) diff --git a/ncdump/Makefile.am b/ncdump/Makefile.am index 0b9e5648b9..bb398c3b51 100644 --- a/ncdump/Makefile.am +++ b/ncdump/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the ncdump program. # Ed Hartnett, Dennis Heimbigner, Ward Fisher @@ -30,7 +30,7 @@ nccopy_SOURCES = nccopy.c nciter.c nciter.h chunkspec.h chunkspec.c \ utils.h utils.c dimmap.h dimmap.c list.c list.h # A simple netcdf-4 metadata -> xml printer. Do not install. -if USE_NETCDF4 +if USE_HDF5 noinst_PROGRAMS += nc4print nc4print_SOURCES = nc4print.c endif @@ -70,7 +70,7 @@ if LARGE_FILE_TESTS TESTS += tst_iter.sh endif -if USE_NETCDF4 +if USE_HDF5 # NetCDF-4 has some extra C programs to build. These will be run by # the shell script tests. check_PROGRAMS += tst_fileinfo tst_create_files tst_h_rdc0 \ @@ -91,10 +91,10 @@ tst_ncgen4.sh tst_nccopy4.log: run_ncgen_tests.log tst_output.log tst_ncgen4.log \ tst_fillbug.log tst_netcdf4_4.log tst_h_scalar.log tst_nccopy5.log: tst_nccopy4.log -endif #!USE_NETCDF4 +endif #!USE_HDF5 TESTS += tst_inmemory_nc3.sh -if USE_NETCDF4 +if USE_HDF5 TESTS += tst_inmemory_nc4.sh endif diff --git a/ncdump/bom.c b/ncdump/bom.c index eb2469001b..70192faf25 100644 --- a/ncdump/bom.c +++ b/ncdump/bom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/cdl.h b/ncdump/cdl.h index afa12defac..5272c1cbdf 100644 --- a/ncdump/cdl.h +++ b/ncdump/cdl.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/cdl.h,v 1.3 2008/12/22 16:42:36 russ Exp $ *********************************************************************/ diff --git a/ncdump/cdl/CMakeLists.txt b/ncdump/cdl/CMakeLists.txt index 8c089e215e..07ec662c13 100644 --- a/ncdump/cdl/CMakeLists.txt +++ b/ncdump/cdl/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdump/cdl/Makefile.am b/ncdump/cdl/Makefile.am index 45a399800e..45b76c7713 100644 --- a/ncdump/cdl/Makefile.am +++ b/ncdump/cdl/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files @@ -26,5 +26,3 @@ ref_niltest.cdl ref_tst_h_scalar.cdl ref_tst_econst.cdl \ ref_tst_nul3.cdl ref_tst_nul4.cdl ref_tst_names.cdl \ ref_tst_long_charconst.cdl tst_chararray.cdl ref_keyword.cdl \ CMakeLists.txt - - diff --git a/ncdump/chunkspec.c b/ncdump/chunkspec.c index 3117b2fc40..e48df5f7af 100644 --- a/ncdump/chunkspec.c +++ b/ncdump/chunkspec.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ @@ -62,7 +62,7 @@ chunkspec_parse(int igrp, const char *spec) /* * Parse chunkspec string and convert into dimchunkspec structure. * ncid: location ID of open netCDF file or group in an open file - * spec: string of form + * spec: string of form * dim1/n1,dim2/n2,...,dimk/nk * specifying chunk size (ni) to be used for dimension named * dimi. Dimension names may be absolute, @@ -72,7 +72,7 @@ chunkspec_parse(int igrp, const char *spec) * not mentioned in the string. However, for unlimited dimensions, * the default is a default size: 4 megabytes or the * existing unlimited size if smaller. - * If the chunkspec string is "/", specifying no dimensions or + * If the chunkspec string is "/", specifying no dimensions or * chunk sizes, it indicates chunking to be turned off on output. * * Returns NC_NOERR if no error, NC_EINVAL if spec has consecutive @@ -126,7 +126,7 @@ dimchunkspec_parse(int igrp, const char *spec) char *dp; int dimid; size_t chunksize; - + for(; pp > np && *pp != '/'; pp--) { /* look backwards for "/" */ continue; } @@ -187,7 +187,7 @@ dimchunkspec_size(int indimid) { for(idim = 0; idim < dimchunkspecs.ndims; idim++) { if(indimid == dimchunkspecs.idimids[idim]) { return dimchunkspecs.chunksizes[idim]; - } + } } return 0; } @@ -211,7 +211,7 @@ dimchunkspec_omit(void) { /* * Parse per-variable chunkspec string and convert into varchunkspec structure. * ncid: location ID of open netCDF file or group in an open file - * spec: string of form + * spec: string of form * var:n1,n2,...nk * * specifying chunk size (ni) to be used for ith dimension of @@ -251,7 +251,7 @@ varchunkspec_parse(int igrp, const char *spec0) /* Lookup the variable by name */ ret = nc_inq_varid2(igrp, spec, &chunkspec->ivarid, &chunkspec->igrpid); if(ret != NC_NOERR) goto done; - + if(*p == '\0') {/* we have -c var: => do not chunk var */ chunkspec->omit = 1; /* add the chunkspec to our list */ @@ -264,16 +264,16 @@ varchunkspec_parse(int igrp, const char *spec0) while(*p) { unsigned long dimsize; q = strchr(p,','); - if(q == NULL) + if(q == NULL) q = p + strlen(p); /* Fake the endpoint */ else *q++ = '\0'; - + /* Scan as unsigned long */ if(sscanf(p,"%lu",&dimsize) != 1) {ret = NC_EINVAL; goto done;} /* Apparently not a valid dimension size */ if(chunkspec->rank >= NC_MAX_VAR_DIMS) {ret = NC_EINVAL; goto done;} /* to many chunks */ - chunkspec->chunksizes[chunkspec->rank] = (size_t)dimsize; + chunkspec->chunksizes[chunkspec->rank] = (size_t)dimsize; chunkspec->rank++; p = q; } @@ -281,7 +281,7 @@ varchunkspec_parse(int igrp, const char *spec0) /* Get some info about the var (from input) */ ret = nc_inq_var(chunkspec->igrpid,chunkspec->ivarid,NULL,NULL,&rank,dimids,NULL); if(ret != NC_NOERR) goto done; - + /* 1. check # chunksizes == rank of variable */ if(rank != chunkspec->rank) {ret = NC_EINVAL; goto done;} @@ -292,7 +292,7 @@ varchunkspec_parse(int igrp, const char *spec0) if(ret != NC_NOERR) goto done; if(chunkspec->chunksizes[i] > len) {ret = NC_EBADCHUNK; goto done;} } - + /* add the chunkspec to our list */ listpush(varchunkspecs,chunkspec); chunkspec = NULL; @@ -354,5 +354,3 @@ varchunkspec_rank(int igrpid, int ivarid) } return 0; } - - diff --git a/ncdump/chunkspec.h b/ncdump/chunkspec.h index 5c7d68d189..9b965ae40d 100644 --- a/ncdump/chunkspec.h +++ b/ncdump/chunkspec.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dimmap.c b/ncdump/dimmap.c index ef7ae3d6c9..fffff30f31 100644 --- a/ncdump/dimmap.c +++ b/ncdump/dimmap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dimmap.h b/ncdump/dimmap.h index a821b37ab6..7850aadb61 100644 --- a/ncdump/dimmap.h +++ b/ncdump/dimmap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dumplib.c b/ncdump/dumplib.c index c801f5986c..598bdbabe2 100644 --- a/ncdump/dumplib.c +++ b/ncdump/dumplib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.c,v 1.85 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/dumplib.h b/ncdump/dumplib.h index 2ce26ea06f..438977e22c 100644 --- a/ncdump/dumplib.h +++ b/ncdump/dumplib.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.h,v 1.28 2009/08/13 21:06:13 russ Exp $ *********************************************************************/ diff --git a/ncdump/expected/CMakeLists.txt b/ncdump/expected/CMakeLists.txt index f5e836ea67..0aa7ca4dde 100644 --- a/ncdump/expected/CMakeLists.txt +++ b/ncdump/expected/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdump/expected/Makefile.am b/ncdump/expected/Makefile.am index 291f46937f..775d635528 100644 --- a/ncdump/expected/Makefile.am +++ b/ncdump/expected/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the test comparison files @@ -25,4 +25,3 @@ CMakeLists.txt # These do not exist because they are not run as usual tests # bigf1.dmp bigf2.dmp bigf3.dmp bigr1.dmp bigr2.dmp bigr3.dmp gfs1.dmp - diff --git a/ncdump/indent.c b/ncdump/indent.c index 79c95a5450..3678db7b22 100644 --- a/ncdump/indent.c +++ b/ncdump/indent.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2007, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/indent.c,v 1.6 2009/09/28 18:27:04 russ Exp $ *********************************************************************/ diff --git a/ncdump/indent.h b/ncdump/indent.h index 15b8981f0c..9bf502c876 100644 --- a/ncdump/indent.h +++ b/ncdump/indent.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2007, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/isnan.h b/ncdump/isnan.h index c62f801fe6..9c51c94f6e 100644 --- a/ncdump/isnan.h +++ b/ncdump/isnan.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/list.c b/ncdump/list.c index 30570a43ce..d5f442d76a 100644 --- a/ncdump/list.c +++ b/ncdump/list.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include #include diff --git a/ncdump/list.h b/ncdump/list.h index 2206af37dc..86f85cc262 100644 --- a/ncdump/list.h +++ b/ncdump/list.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef LIST_H #define LIST_H 1 diff --git a/ncdump/nc4print.c b/ncdump/nc4print.c index 9fda8d792c..0dab9cd9bb 100644 --- a/ncdump/nc4print.c +++ b/ncdump/nc4print.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/nccomps.h b/ncdump/nccomps.h index 926cf9cd6e..64614df633 100644 --- a/ncdump/nccomps.h +++ b/ncdump/nccomps.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric + * Copyright 2018, University Corporation for Atmospheric * Research/Unidata. See \ref copyright file for copying and * redistribution conditionsmore information. *********************************************************************/ diff --git a/ncdump/nccopy.c b/ncdump/nccopy.c index 6c5243d500..87babfc086 100644 --- a/ncdump/nccopy.c +++ b/ncdump/nccopy.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * Thanks to Philippe Poilbarbe and Antonio S. Cofiño for * compression additions. diff --git a/ncdump/ncdump.c b/ncdump/ncdump.c index abbde44e1f..ba8d43cdce 100644 --- a/ncdump/ncdump.c +++ b/ncdump/ncdump.c @@ -1,6 +1,6 @@ -/* +/*! \file -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "config.h" diff --git a/ncdump/ncdump.h b/ncdump/ncdump.h index 4773441a7a..d5a95ef1be 100644 --- a/ncdump/ncdump.h +++ b/ncdump/ncdump.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/ncdump.h,v 1.34 2009/12/02 20:03:43 russ Exp $ *********************************************************************/ diff --git a/ncdump/nciter.c b/ncdump/nciter.c index aa9a7f0599..829e3048f6 100644 --- a/ncdump/nciter.c +++ b/ncdump/nciter.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id: nciter.c 400 2010-08-27 21:02:52Z russ $" *********************************************************************/ diff --git a/ncdump/nciter.h b/ncdump/nciter.h index 1da51832f2..37def81e98 100644 --- a/ncdump/nciter.h +++ b/ncdump/nciter.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id: nciter.h 400 2010-08-27 21:02:52Z russ $" *********************************************************************/ diff --git a/ncdump/nctime0.c b/ncdump/nctime0.c index 8af924d978..540c265e10 100644 --- a/ncdump/nctime0.c +++ b/ncdump/nctime0.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.c,v 1.9 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/nctime0.h b/ncdump/nctime0.h index c3558e2849..2ffa2ab598 100644 --- a/ncdump/nctime0.h +++ b/ncdump/nctime0.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/nctrunc.c b/ncdump/nctrunc.c index b64c163aba..c9d07fba6d 100644 --- a/ncdump/nctrunc.c +++ b/ncdump/nctrunc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/ocprint.c b/ncdump/ocprint.c index d64bf4373d..4ea454a300 100644 --- a/ncdump/ocprint.c +++ b/ncdump/ocprint.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #define VALIDATE diff --git a/ncdump/rewrite-scalar.c b/ncdump/rewrite-scalar.c index a8db86817f..2d147b63b8 100644 --- a/ncdump/rewrite-scalar.c +++ b/ncdump/rewrite-scalar.c @@ -1,6 +1,6 @@ /********************************************************************* * This is part of the Unidata netCDF package. - * Copyright 2006, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * * This program is part of the testing of file lengths done by the diff --git a/ncdump/tst_chunking.c b/ncdump/tst_chunking.c index 589f1c683d..95cd92010b 100644 --- a/ncdump/tst_chunking.c +++ b/ncdump/tst_chunking.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_comp.c b/ncdump/tst_comp.c index 6768f490b3..e230198122 100644 --- a/ncdump/tst_comp.c +++ b/ncdump/tst_comp.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_comp2.c b/ncdump/tst_comp2.c index 7ed2e9b1e1..b2566f4a61 100644 --- a/ncdump/tst_comp2.c +++ b/ncdump/tst_comp2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_compress.c b/ncdump/tst_compress.c index 7c6b730a36..e226e84a34 100644 --- a/ncdump/tst_compress.c +++ b/ncdump/tst_compress.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_create_files.c b/ncdump/tst_create_files.c index 1937d85fa3..be9d55662b 100644 --- a/ncdump/tst_create_files.c +++ b/ncdump/tst_create_files.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007, University +/* This is part of the netCDF package. Copyright 2018-2007, University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/ncdump/tst_dimsizes.c b/ncdump/tst_dimsizes.c index 28ba66bdf7..bc2ca0d72c 100644 --- a/ncdump/tst_dimsizes.c +++ b/ncdump/tst_dimsizes.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include "err_macros.h" diff --git a/ncdump/tst_enum_data.c b/ncdump/tst_enum_data.c index b5db7f5aa2..181be12821 100644 --- a/ncdump/tst_enum_data.c +++ b/ncdump/tst_enum_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_fileinfo.c b/ncdump/tst_fileinfo.c index 1748b8c1b8..471f97c5d2 100644 --- a/ncdump/tst_fileinfo.c +++ b/ncdump/tst_fileinfo.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. */ diff --git a/ncdump/tst_fillbug.c b/ncdump/tst_fillbug.c index 1ae7f5954d..4f9aafd15b 100644 --- a/ncdump/tst_fillbug.c +++ b/ncdump/tst_fillbug.c @@ -1,5 +1,5 @@ /* -This is part of the netCDF package. Copyright 2017 University +This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. */ diff --git a/ncdump/tst_group_data.c b/ncdump/tst_group_data.c index 00d5cb7d71..d8f4e29a45 100644 --- a/ncdump/tst_group_data.c +++ b/ncdump/tst_group_data.c @@ -1,6 +1,6 @@ /* This is part of the netCDF package. - Copyright 2005-2007, University Corporation for Atmospheric + Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. This program creates a test file with groups for ncdump to read. diff --git a/ncdump/tst_h_rdc0.c b/ncdump/tst_h_rdc0.c index 5a3c0606aa..04bc1d0e95 100644 --- a/ncdump/tst_h_rdc0.c +++ b/ncdump/tst_h_rdc0.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Use HDF5 to read c0.nc, a file created by ncdump. This check was diff --git a/ncdump/tst_h_scalar.c b/ncdump/tst_h_scalar.c index 6fd640cdc9..ea3cb0a9fd 100644 --- a/ncdump/tst_h_scalar.c +++ b/ncdump/tst_h_scalar.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2013 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/ncdump/tst_nans.c b/ncdump/tst_nans.c index 36c2100148..0e3efdd488 100644 --- a/ncdump/tst_nans.c +++ b/ncdump/tst_nans.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2008 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_opaque_data.c b/ncdump/tst_opaque_data.c index 564c1000e0..8df43ce669 100644 --- a/ncdump/tst_opaque_data.c +++ b/ncdump/tst_opaque_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_special_atts.c b/ncdump/tst_special_atts.c index f4ac1d8ee8..7343bb6674 100644 --- a/ncdump/tst_special_atts.c +++ b/ncdump/tst_special_atts.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_string_data.c b/ncdump/tst_string_data.c index 47b1e00a89..befe1f4b0e 100644 --- a/ncdump/tst_string_data.c +++ b/ncdump/tst_string_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_unicode.c b/ncdump/tst_unicode.c index 83dd839ad6..5711e554ec 100644 --- a/ncdump/tst_unicode.c +++ b/ncdump/tst_unicode.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_utf8.c b/ncdump/tst_utf8.c index 51db4e2370..02844febcf 100644 --- a/ncdump/tst_utf8.c +++ b/ncdump/tst_utf8.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_vlen_data.c b/ncdump/tst_vlen_data.c index 3ae539f610..322f8db089 100644 --- a/ncdump/tst_vlen_data.c +++ b/ncdump/tst_vlen_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_vlen_demo.c b/ncdump/tst_vlen_demo.c index 1fe598facd..691d3f5747 100644 --- a/ncdump/tst_vlen_demo.c +++ b/ncdump/tst_vlen_demo.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include "netcdf.h" diff --git a/ncdump/utils.c b/ncdump/utils.c index 0af3c9ebd6..b6d98c6265 100644 --- a/ncdump/utils.c +++ b/ncdump/utils.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Id$ *********************************************************************/ diff --git a/ncdump/utils.h b/ncdump/utils.h index c88981f38b..ef872d0d2b 100644 --- a/ncdump/utils.h +++ b/ncdump/utils.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * * Stuff that's common to both ncdump and nccopy diff --git a/ncdump/vardata.c b/ncdump/vardata.c index 5089829d3e..b7b59d3594 100644 --- a/ncdump/vardata.c +++ b/ncdump/vardata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/vardata.c,v 1.48 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/vardata.h b/ncdump/vardata.h index a705207208..aa2e0d9aaf 100644 --- a/ncdump/vardata.h +++ b/ncdump/vardata.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncgen/CMakeLists.txt b/ncgen/CMakeLists.txt index 7314acef50..f17691ca44 100644 --- a/ncgen/CMakeLists.txt +++ b/ncgen/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. IF(BUILD_SHARED_LIBS AND WIN32) remove_definitions(-DDLL_EXPORT) remove_definitions(-DDLL_NETCDF) diff --git a/ncgen/Makefile.am b/ncgen/Makefile.am index 9faf13c656..b9a2774e7a 100644 --- a/ncgen/Makefile.am +++ b/ncgen/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This file builds and runs the ncgen program. # Put together AM_CPPFLAGS and AM_LDFLAGS. diff --git a/ncgen/bindata.c b/ncgen/bindata.c index 840dfdbb57..e9accc7b5f 100644 --- a/ncgen/bindata.c +++ b/ncgen/bindata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/bytebuffer.c b/ncgen/bytebuffer.c index 533d352697..4acf2d5241 100644 --- a/ncgen/bytebuffer.c +++ b/ncgen/bytebuffer.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/ncgen/bytebuffer.h b/ncgen/bytebuffer.h index 28c25bac7d..6ecbc5b5e7 100644 --- a/ncgen/bytebuffer.h +++ b/ncgen/bytebuffer.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef BYTEBUFFER_H diff --git a/ncgen/cdata.c b/ncgen/cdata.c index 38f8f27c2c..f1a644493a 100644 --- a/ncgen/cdata.c +++ b/ncgen/cdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/cdfdata.c b/ncgen/cdfdata.c index 40e82fbe87..34c76ac318 100644 --- a/ncgen/cdfdata.c +++ b/ncgen/cdfdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: cdfdata.c,v 1.4 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/cmldata.c b/ncgen/cmldata.c index 5f6882547c..b9f43a81f2 100644 --- a/ncgen/cmldata.c +++ b/ncgen/cmldata.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "includes.h" #ifdef ENABLE_CML @@ -206,7 +217,7 @@ gencml_primdata(Symbol* tsym, Datasrc* src, Datalist* fillsrc, prim = srcnext(src); if(prim == NULL || prim->nctype == NC_FILLVALUE) { - gencml_fillvalue(tsym,fillsrc,src,databuf); + gencml_fillvalue(tsym,fillsrc,src,databuf); return; } @@ -327,9 +338,9 @@ xconst(Constant* ci) p = ci->value.opaquev.stringv; while(*p) { strcat(bstring,"&#"); - strncat(bstring,p,2); + strncat(bstring,p,2); strcat(bstring,";"); - p += 2; + p += 2; } return bstring; } break; @@ -471,14 +482,14 @@ gencml_stringarray(Symbol* sym, Datasrc* src, Bytebuffer* databuf) Datalist* fill = getfiller(sym); Datasrc* fillsrc = datalist2src(fill); gencml_stringarray(sym,fillsrc,databuf); - } break; + } break; default: semerror(srcline(src), "Encountered non-string constant in attribute: %s", sym->name); return; } - } + } } #endif /*ENABLE_CML*/ diff --git a/ncgen/cvt.c b/ncgen/cvt.c index d2222331eb..ba8a51fc64 100644 --- a/ncgen/cvt.c +++ b/ncgen/cvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: cvt.c,v 1.2 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/data.c b/ncgen/data.c index d8cf22679e..414c92883a 100644 --- a/ncgen/data.c +++ b/ncgen/data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: data.c,v 1.7 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/data.h b/ncgen/data.h index c670974d2e..8bc2ab28d0 100644 --- a/ncgen/data.h +++ b/ncgen/data.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/debug.c b/ncgen/debug.c index 0f7a227993..81f531f3fb 100644 --- a/ncgen/debug.c +++ b/ncgen/debug.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #include "includes.h" diff --git a/ncgen/debug.h b/ncgen/debug.h index 0a2940236c..794e1c15d2 100644 --- a/ncgen/debug.h +++ b/ncgen/debug.h @@ -1,8 +1,19 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef NCGEN_DEBUG_H #define NCGEN_DEBUG_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/debug.h,v 1.2 2010/03/31 18:18:34 dmh Exp $ *********************************************************************/ diff --git a/ncgen/dump.c b/ncgen/dump.c index 03b553ede1..9be716864c 100644 --- a/ncgen/dump.c +++ b/ncgen/dump.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: dump.c,v 1.3 2010/05/24 19:59:57 dmh Exp $ */ diff --git a/ncgen/dump.h b/ncgen/dump.h index 95e7716f4e..b727d57132 100644 --- a/ncgen/dump.h +++ b/ncgen/dump.h @@ -1,10 +1,21 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef NCGEN_DUMP_H #define NCGEN_DUMP_H /*#define F*/ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/dump.h,v 1.2 2010/04/04 19:39:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/escapes.c b/ncgen/escapes.c index 90c29aaa61..94efd0f2f9 100644 --- a/ncgen/escapes.c +++ b/ncgen/escapes.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/escapes.c,v 1.5 2010/04/04 19:39:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/f77data.c b/ncgen/f77data.c index 1f753a000d..965c7ada95 100644 --- a/ncgen/f77data.c +++ b/ncgen/f77data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/genbin.c b/ncgen/genbin.c index 75d3a57402..9ee37c2f88 100644 --- a/ncgen/genbin.c +++ b/ncgen/genbin.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genbin.c,v 1.4 2010/05/27 21:34:17 dmh Exp $ *********************************************************************/ @@ -449,10 +449,12 @@ genbin_writevar(Generator* generator, Symbol* vsym, Bytebuffer* memory, stat = nc_put_vara(vsym->container->nc_id, vsym->nc_id, start, count, data); } check_err(stat,__LINE__,__FILE__); -// /* Reclaim the data */ -// stat = ncaux_reclaim_data(vsym->container->nc_id, vsym->typ.basetype->nc_id, data, nelems); -// check_err(stat,__LINE__,__FILE__); -// bbClear(memory); /* reclaim top-level memory */ +#if 0 + /* Reclaim the data */ + stat = ncaux_reclaim_data(vsym->container->nc_id, vsym->typ.basetype->nc_id, data, nelems); + check_err(stat,__LINE__,__FILE__); + bbClear(memory); /* reclaim top-level memory */ +#endif return stat; } diff --git a/ncgen/genc.c b/ncgen/genc.c index 5e6ebd5ef4..91293439a2 100644 --- a/ncgen/genc.c +++ b/ncgen/genc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genc.c,v 1.6 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genchar.c b/ncgen/genchar.c index bc5422f84f..f7ed3f7f40 100644 --- a/ncgen/genchar.c +++ b/ncgen/genchar.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/gencml.c b/ncgen/gencml.c index 8462df0661..48ebaf94e5 100644 --- a/ncgen/gencml.c +++ b/ncgen/gencml.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/gencml.c,v 1.5 2010/04/04 19:39:46 dmh Exp $ *********************************************************************/ diff --git a/ncgen/generate.c b/ncgen/generate.c index 2fd819085b..e25d532613 100644 --- a/ncgen/generate.c +++ b/ncgen/generate.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/generr.c b/ncgen/generr.c index 16c4b00f97..8da3049cce 100644 --- a/ncgen/generr.c +++ b/ncgen/generr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/generr.c,v 1.1 2009/09/25 18:22:22 dmh Exp $ *********************************************************************/ diff --git a/ncgen/generr.h b/ncgen/generr.h index 86152fb362..0b2e9453c0 100644 --- a/ncgen/generr.h +++ b/ncgen/generr.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: generr.h,v 1.2 2010/05/24 19:59:57 dmh Exp $ */ diff --git a/ncgen/genf77.c b/ncgen/genf77.c index 1706d1d56c..b2a7fe790f 100644 --- a/ncgen/genf77.c +++ b/ncgen/genf77.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genf77.c,v 1.4 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genj.c b/ncgen/genj.c index 92e4e0fe6f..08dbc1c661 100644 --- a/ncgen/genj.c +++ b/ncgen/genj.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genj.c,v 1.2 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genjjni.c b/ncgen/genjjni.c index 670ec8f926..018f13fd9a 100644 --- a/ncgen/genjjni.c +++ b/ncgen/genjjni.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genjjni.c,v 1.6 2010/04/04 19:39:46 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genjstd.c b/ncgen/genjstd.c index 30638c77bd..2e8f49a3a8 100644 --- a/ncgen/genjstd.c +++ b/ncgen/genjstd.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genjstd.c,v 1.4 2010/05/17 23:26:45 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genlib.c b/ncgen/genlib.c index f68a175786..9a2d652ffc 100644 --- a/ncgen/genlib.c +++ b/ncgen/genlib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genlib.c,v 1.57 2010/04/04 19:39:47 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genlib.h b/ncgen/genlib.h index f7821de708..166f53f817 100644 --- a/ncgen/genlib.h +++ b/ncgen/genlib.h @@ -1,7 +1,7 @@ #ifndef NC_GENLIB_H #define NC_GENLIB_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genlib.h,v 1.20 2010/05/17 23:26:45 dmh Exp $ *********************************************************************/ diff --git a/ncgen/getfill.c b/ncgen/getfill.c index 24f1f6f8e9..bd1dc3a568 100644 --- a/ncgen/getfill.c +++ b/ncgen/getfill.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/getfill.c,v 1.8 2010/04/14 22:04:56 dmh Exp $ *********************************************************************/ diff --git a/ncgen/jdata.c b/ncgen/jdata.c index f9ad0bffca..c87ea9d044 100644 --- a/ncgen/jdata.c +++ b/ncgen/jdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/jdatajni.c b/ncgen/jdatajni.c index c5d1987296..f5edb8d7e0 100644 --- a/ncgen/jdatajni.c +++ b/ncgen/jdatajni.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "includes.h" #include "ncoffsets.h" @@ -447,7 +458,7 @@ jopaquestring(Symbol* tsym, Constant* prim, Constant* target) ASSERT((oplen%2) == 0); opstring = (char*)ecalloc(oplen*(2+4)); - opstring[0]='\0'; + opstring[0]='\0'; p=(unsigned char*)op; for(i=0;i #include diff --git a/ncgen/list.h b/ncgen/list.h index 2206af37dc..86f85cc262 100644 --- a/ncgen/list.h +++ b/ncgen/list.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef LIST_H #define LIST_H 1 diff --git a/ncgen/main.c b/ncgen/main.c index 1b28d335e0..4936381daf 100644 --- a/ncgen/main.c +++ b/ncgen/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: main.c,v 1.33 2010/05/26 21:43:36 dmh Exp $ */ diff --git a/ncgen/nc_iter.c b/ncgen/nc_iter.c index c8978fa4ec..433bb7be97 100644 --- a/ncgen/nc_iter.c +++ b/ncgen/nc_iter.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id $" *********************************************************************/ diff --git a/ncgen/nc_iter.h b/ncgen/nc_iter.h index 8c9f70ae44..95d53b61d4 100644 --- a/ncgen/nc_iter.h +++ b/ncgen/nc_iter.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id $" *********************************************************************/ diff --git a/ncgen/ncgen.h b/ncgen/ncgen.h index 739cd60db5..f54ed94734 100644 --- a/ncgen/ncgen.h +++ b/ncgen/ncgen.h @@ -1,7 +1,7 @@ #ifndef NC_NCGEN_H #define NC_NCGEN_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/ncgen.h,v 1.18 2010/06/01 15:34:53 ed Exp $ *********************************************************************/ diff --git a/ncgen/ncgen.y b/ncgen/ncgen.y index a72ce8a4c5..c119ce2dc6 100644 --- a/ncgen/ncgen.y +++ b/ncgen/ncgen.y @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.y,v 1.42 2010/05/18 21:32:46 dmh Exp $ *********************************************************************/ @@ -957,7 +957,7 @@ makeprimitivetype(nc_type nctype) sym->typ.typecode = nctype; sym->typ.size = ncsize(nctype); sym->typ.nelems = 1; - sym->typ.alignment = ncaux_class_alignment(nctype); + sym->typ.alignment = ncaux_class_alignment(nctype); /* Make the basetype circular so we can always ask for it */ sym->typ.basetype = sym; sym->prefix = listnew(); @@ -1260,7 +1260,7 @@ makespecial(int tag, Symbol* vsym, Symbol* tsym, void* data, int isconst) else if(tag == _NCPROPS_FLAG) { globalspecials._NCProperties = sdata; sdata = NULL; - } + } } else { Specialdata* special; /* Set up special info */ @@ -1337,7 +1337,7 @@ makespecial(int tag, Symbol* vsym, Symbol* tsym, void* data, int isconst) break; case _CHUNKSIZES_FLAG: { int i; - list = (isconst ? const2list(con) : list); + list = (isconst ? const2list(con) : list); special->nchunks = list->length; special->_ChunkSizes = (size_t*)ecalloc(sizeof(size_t)*special->nchunks); for(i=0;inchunks;i++) { diff --git a/ncgen/ncgenl.c b/ncgen/ncgenl.c index 27fbefe8d5..6655d97369 100644 --- a/ncgen/ncgenl.c +++ b/ncgen/ncgenl.c @@ -1382,7 +1382,7 @@ char *yytext; #line 1 "ncgen.l" #line 2 "ncgen.l" /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/09/25 18:22:35 dmh Exp $ *********************************************************************/ diff --git a/ncgen/odom.c b/ncgen/odom.c index 1e5a95fbe8..1f96828d65 100644 --- a/ncgen/odom.c +++ b/ncgen/odom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: odom.c,v 1.5 2010/05/27 21:34:18 dmh Exp $ */ diff --git a/ncgen/odom.h b/ncgen/odom.h index 8f959ddb7e..9cd9a8d4f6 100644 --- a/ncgen/odom.h +++ b/ncgen/odom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/semantics.c b/ncgen/semantics.c index b47886940b..7044df5e64 100644 --- a/ncgen/semantics.c +++ b/ncgen/semantics.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: semantics.c,v 1.4 2010/05/24 19:59:58 dmh Exp $ */ diff --git a/ncgen/util.c b/ncgen/util.c index dde9d35e24..8c3d7028de 100644 --- a/ncgen/util.c +++ b/ncgen/util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/util.c,v 1.4 2010/04/14 22:04:59 dmh Exp $ *********************************************************************/ @@ -577,7 +577,7 @@ prefixarraylength(Dimset* dimset, int last) -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 extern int H5Eprint1(FILE * stream); #endif @@ -594,7 +594,7 @@ void check_err2(const int stat, const int cdlline, const int line, const char* f else fprintf(stderr, "ncgen: %s\n", nc_strerror(stat)); fprintf(stderr, "\t(%s:%d)\n", file,line); -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 H5Eprint1(stderr); #endif fflush(stderr); diff --git a/ncgen/util.h b/ncgen/util.h index 7960b65131..f38c4510fe 100644 --- a/ncgen/util.h +++ b/ncgen/util.h @@ -1,7 +1,7 @@ #ifndef NCGEN_UTIL_H #define NCGEN_UTIL_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/util.h,v 1.3 2010/04/04 19:39:57 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/CMakeLists.txt b/ncgen3/CMakeLists.txt index 62ff36050f..73d5c198df 100644 --- a/ncgen3/CMakeLists.txt +++ b/ncgen3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(ncgen3_FILES main.c load.c escapes.c getfill.c init.c genlib.c ncgentab.c) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl) @@ -27,9 +33,9 @@ TARGET_LINK_LIBRARIES(ncgen3 netcdf ${ALL_TLL_LIBS}) # test scripts to work. #### IF(MSVC) - SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY + SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG + SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}) SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}) @@ -42,12 +48,12 @@ IF(ENABLE_TESTS) IF(USE_NETCDF4) SET(NCGEN3_TESTS ${NCGEN3_TESTS} run_nc4_tests) ENDIF() - + FOREACH(F ${NCGEN3_TESTS}) add_sh_test(ncgen3 ${F}) ENDFOREACH() ENDIF() -INSTALL(TARGETS ncgen3 DESTINATION bin COMPONENT utilities) +INSTALL(TARGETS ncgen3 DESTINATION bin COMPONENT utilities) SET(MAN_FILES ncgen3.1) IF(NOT MSVC) @@ -60,6 +66,5 @@ SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt XGetopt.c Makefile.am ncgen. ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") -SET(CLEANFILES c0.nc c0_64.nc c0_4.nc c0_4c.nc) +SET(CLEANFILES c0.nc c0_64.nc c0_4.nc c0_4c.nc) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEANFILES}") - diff --git a/ncgen3/Makefile.am b/ncgen3/Makefile.am index e20f326ecc..3b4de1b84f 100644 --- a/ncgen3/Makefile.am +++ b/ncgen3/Makefile.am @@ -1,5 +1,5 @@ # This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the ncgen program. #LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose @@ -8,7 +8,7 @@ include $(top_srcdir)/lib_flags.am # Link to the netCDF library. -ncgen3_LDADD = ${top_builddir}/liblib/libnetcdf.la +ncgen3_LDADD = ${top_builddir}/liblib/libnetcdf.la # Build ncgen from the listed sources. bin_PROGRAMS = ncgen3 @@ -24,10 +24,10 @@ run_nc4_tests.sh XGetopt.c $(man_MANS) # There is a netcdf classic and netcdf-4 test script, but don't run # them for DLL builds. #if !BUILD_DLL -TESTS = run_tests.sh -if USE_NETCDF4 +TESTS = run_tests.sh +if USE_HDF5 TESTS += run_nc4_tests.sh -endif # USE_NETCDF4 +endif # USE_HDF5 #endif # !BUILD_DLL CLEANFILES = c0.nc c0_64.nc c0_4.nc c0_4c.nc diff --git a/ncgen3/escapes.c b/ncgen3/escapes.c index 0e746bac9e..a6a838f855 100644 --- a/ncgen3/escapes.c +++ b/ncgen3/escapes.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/escapes.c,v 1.2 1997/03/19 23:15:09 davis Exp $ *********************************************************************/ diff --git a/ncgen3/generic.h b/ncgen3/generic.h index dad48d7d52..9969425201 100644 --- a/ncgen3/generic.h +++ b/ncgen3/generic.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/generic.h,v 1.3 1997/04/07 17:23:12 russ Exp $ *********************************************************************/ diff --git a/ncgen3/genlib.c b/ncgen3/genlib.c index a54c06646e..1e728502ec 100644 --- a/ncgen3/genlib.c +++ b/ncgen3/genlib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/genlib.c,v 1.54 2009/11/14 22:33:31 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/genlib.h b/ncgen3/genlib.h index 45f139a68e..b5e54cc598 100644 --- a/ncgen3/genlib.h +++ b/ncgen3/genlib.h @@ -1,7 +1,7 @@ #ifndef NC_GENLIB_H #define NC_GENLIB_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/genlib.h,v 1.15 2009/12/29 18:42:35 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/getfill.c b/ncgen3/getfill.c index 1fc1197d59..91c6ae6f13 100644 --- a/ncgen3/getfill.c +++ b/ncgen3/getfill.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/getfill.c,v 1.5 2009/11/24 22:09:09 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/init.c b/ncgen3/init.c index f2fe21c2f5..068fd0eb77 100644 --- a/ncgen3/init.c +++ b/ncgen3/init.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/init.c,v 1.6 1997/05/23 11:41:14 russ Exp $ *********************************************************************/ diff --git a/ncgen3/load.c b/ncgen3/load.c index 401dd3d2b7..98fa9fbeb1 100644 --- a/ncgen3/load.c +++ b/ncgen3/load.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: load.c,v 1.35 2009/11/17 18:15:08 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/main.c b/ncgen3/main.c index c27f5ed6a5..0d861ad7ac 100644 --- a/ncgen3/main.c +++ b/ncgen3/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/main.c,v 1.20 2010/03/31 18:18:40 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/ncgen.h b/ncgen3/ncgen.h index 5d5a5c8952..7c4e307bc7 100644 --- a/ncgen3/ncgen.h +++ b/ncgen3/ncgen.h @@ -1,7 +1,7 @@ #ifndef NC_NCGEN_H #define NC_NCGEN_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/ncgen.h,v 1.8 1997/07/07 18:27:04 russ Exp $ *********************************************************************/ diff --git a/ncgen3/ncgen.l b/ncgen3/ncgen.l index 6db3afae23..4240d2edd5 100644 --- a/ncgen3/ncgen.l +++ b/ncgen3/ncgen.l @@ -1,6 +1,6 @@ %{ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/12/29 18:42:36 dmh Exp $ *********************************************************************/ @@ -42,7 +42,7 @@ char errstr[100]; /* for short error messages */ #include "ncgentab.h" #define YY_BREAK /* defining as nothing eliminates unreachable - statement warnings from flex output, + statement warnings from flex output, but make sure every action ends with "return" or "break"! */ @@ -105,7 +105,7 @@ escaped \\. nonquotes ([^"\\]|{escaped})* exp ([eE][+-]?[0-9]+) %% -\/\/.* { /* comment */ +\/\/.* { /* comment */ break; } @@ -275,8 +275,8 @@ FloatInf|-?Inff { /* missing value (pre-2.4 backward compatibility) */ return (BYTE_CONST); } -[ \r\t\f]+ { /* whitespace */ - break; +[ \r\t\f]+ { /* whitespace */ + break; } . {/* Note: this next rule will not work for UTF8 characters */ return (yytext[0]) ; @@ -291,4 +291,3 @@ ignore() yyunput(0,NULL); } - diff --git a/ncgen3/ncgen.y b/ncgen3/ncgen.y index 5a0a431dc6..d3197ab7c5 100644 --- a/ncgen3/ncgen.y +++ b/ncgen3/ncgen.y @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.y,v 1.34 2010/03/31 18:18:41 dmh Exp $ *********************************************************************/ @@ -164,7 +164,7 @@ dimdecl: dimd '=' INT_CONST } ; dimd: dim - { + { if ($1->is_dim == 1) { derror( "duplicate dimension declaration for %s", $1->name); @@ -551,7 +551,7 @@ const: CHAR_CONST if(valnum + len > var_len) { if (vars[varnum].dims[0] != rec_dim) { - derror("too many values for this variable, %d>%d", + derror("too many values for this variable, %d>%d", valnum+len, var_len); exit (5); } else {/* a record variable so grow it */ @@ -645,7 +645,7 @@ const: CHAR_CONST case NC_DOUBLE: *double_valp++ = short_val; break; - default: break; + default: break; } valnum++; } @@ -850,7 +850,7 @@ YYSTYPE lookup(char *sname) { YYSTYPE sp; deescapify(sname); /* delete escape chars from names, - * e.g. 'ab\:cd\ ef' becomes + * e.g. 'ab\:cd\ ef' becomes * 'ab:cd ef' */ for (sp = symlist; sp != (YYSTYPE) 0; sp = sp -> next) if (STREQ(sp -> name, sname)) { diff --git a/ncgen3/ncgenyy.c b/ncgen3/ncgenyy.c index c65ea5b134..85ecc91989 100644 --- a/ncgen3/ncgenyy.c +++ b/ncgen3/ncgenyy.c @@ -824,7 +824,7 @@ char *ncgtext; #line 1 "ncgen.l" #line 2 "ncgen.l" /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/12/29 18:42:36 dmh Exp $ *********************************************************************/ diff --git a/nctest/CMakeLists.txt b/nctest/CMakeLists.txt index 230092bb04..d7de84a6cd 100644 --- a/nctest/CMakeLists.txt +++ b/nctest/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(nctest_SRC add.c atttests.c cdftests.c dimtests.c driver.c emalloc.c error.c misctest.c rec.c slabs.c val.c vardef.c varget.c vargetg.c varput.c varputg.c vartests.c vputget.c vputgetg.c) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh) diff --git a/nctest/Makefile.am b/nctest/Makefile.am index 0ac922b30b..506c5eece4 100644 --- a/nctest/Makefile.am +++ b/nctest/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the nctest program, which tests the netCDF # version 2 interface. @@ -7,7 +7,7 @@ # Put together AM_CPPFLAGS and AM_LDFLAGS. include $(top_srcdir)/lib_flags.am -AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la +AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la # Running nctest results in a file testfile.nc, which is then checked # to make sure it matches testfile_nc.sav, which was generated under @@ -31,7 +31,7 @@ TESTS = $(TESTPROGRAMS) compare_test_files.sh TEST_EXTENSIONS = .sh # compare_test_files depends on nctest executing first. -compare_test_files.log: nctest.log +compare_test_files.log: nctest.log # These are the source files for the nctest program. nctest_SOURCES = add.c add.h atttests.c cdftests.c dimtests.c driver.c \ diff --git a/nctest/add.c b/nctest/add.c index 96545dbe7e..5a6ee58d2a 100644 --- a/nctest/add.c +++ b/nctest/add.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/add.c,v 1.18 2008/06/10 19:38:03 russ Exp $ *********************************************************************/ diff --git a/nctest/add.h b/nctest/add.h index b588e86f35..214559c30f 100644 --- a/nctest/add.h +++ b/nctest/add.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/add.h,v 1.6 1996/04/30 17:56:54 davis Exp $ *********************************************************************/ diff --git a/nctest/atttests.c b/nctest/atttests.c index de6cf65775..f9d263ffeb 100644 --- a/nctest/atttests.c +++ b/nctest/atttests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctst/atttests.c,v 1.18 2006/10/31 16:21:45 ed Exp $ *********************************************************************/ diff --git a/nctest/cdftests.c b/nctest/cdftests.c index 550860d64a..c4c5165166 100644 --- a/nctest/cdftests.c +++ b/nctest/cdftests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/cdftests.c,v 1.23 2009/02/14 14:11:28 ed Exp $ *********************************************************************/ diff --git a/nctest/dimtests.c b/nctest/dimtests.c index 59e56b3d00..26bce98d2b 100644 --- a/nctest/dimtests.c +++ b/nctest/dimtests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/dimtests.c,v 1.14 2006/10/31 16:21:54 ed Exp $ *********************************************************************/ diff --git a/nctest/driver.c b/nctest/driver.c index 9d0c3c1571..4559861246 100644 --- a/nctest/driver.c +++ b/nctest/driver.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993-2006, UCAR/Unidata + * Copyright 1993-2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * * Test driver for netCDF implementation. This program performs tests @@ -35,11 +35,11 @@ determine_test_formats(int *num_formats, int *format) format[ind++] = NC_FORMAT_64BIT_OFFSET; /* Do we have netCDF-4 and netCDF-4 classic? */ -#ifdef USE_NETCDF4 +#ifdef USE_HDF5 num += 2; format[ind++] = NC_FORMAT_NETCDF4_CLASSIC; format[ind++] = NC_FORMAT_NETCDF4; -#endif /* USE_NETCDF4 */ +#endif /* USE_HDF5 */ /* Do we have CDF5? */ #ifdef ENABLE_CDF5 @@ -75,10 +75,10 @@ main(int argc, char **argv) /* Skip netCDF-4 - only netCDF-4 classic will work. */ if (format[i] == NC_FORMAT_NETCDF4) continue; - + /* Come up with a test file name. */ sprintf(testfile, "nctest_%s.nc", format_name[i]); - printf("Testing %s with file %s.\n", format_name[i], testfile); + printf("Testing %s with file %s.\n", format_name[i], testfile); /* Set the default format. */ nc_set_default_format(format[i], NULL); @@ -137,7 +137,7 @@ main(int argc, char **argv) } } - + fprintf(stderr, "\nTotal number of failures: %d\n", nerrs); if (nerrs) diff --git a/nctest/emalloc.c b/nctest/emalloc.c index 4f75d1e4f6..05dc1c51c6 100644 --- a/nctest/emalloc.c +++ b/nctest/emalloc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/emalloc.c,v 1.11 2006/10/31 16:21:56 ed Exp $ *********************************************************************/ diff --git a/nctest/emalloc.h b/nctest/emalloc.h index d1130f12f7..accae61fce 100644 --- a/nctest/emalloc.h +++ b/nctest/emalloc.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nctest/error.c b/nctest/error.c index 1598d70f7b..50498b2ca4 100644 --- a/nctest/error.c +++ b/nctest/error.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/error.c,v 1.8 2004/11/16 21:33:07 russ Exp $ *********************************************************************/ diff --git a/nctest/error.h b/nctest/error.h index 0a045a1f4f..e69fe90fe9 100644 --- a/nctest/error.h +++ b/nctest/error.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nctest/misctest.c b/nctest/misctest.c index fcb199e6e5..bdc91a9944 100644 --- a/nctest/misctest.c +++ b/nctest/misctest.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/misctest.c,v 1.11 2006/10/31 16:21:57 ed Exp $ *********************************************************************/ diff --git a/nctest/rec.c b/nctest/rec.c index 2367aece7f..a56c6aafde 100644 --- a/nctest/rec.c +++ b/nctest/rec.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/rec.c,v 1.11 2006/10/31 16:21:58 ed Exp $ *********************************************************************/ diff --git a/nctest/slabs.c b/nctest/slabs.c index cac13d672f..48b4d1de7e 100644 --- a/nctest/slabs.c +++ b/nctest/slabs.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/slabs.c,v 1.13 2009/02/11 16:17:39 ed Exp $ *********************************************************************/ diff --git a/nctest/testcdf.h b/nctest/testcdf.h index 9d569e90b6..84c1c27dba 100644 --- a/nctest/testcdf.h +++ b/nctest/testcdf.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/testcdf.h,v 1.9 2006/10/31 16:23:43 ed Exp $ *********************************************************************/ diff --git a/nctest/tests.h b/nctest/tests.h index 7f6dedfb39..f2212f955f 100644 --- a/nctest/tests.h +++ b/nctest/tests.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993 - 2005, UCAR/Unidata + * Copyright 1993 - 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/tests.h,v 1.8 2006/10/31 16:23:47 ed Exp $ *********************************************************************/ diff --git a/nctest/tst_rename.c b/nctest/tst_rename.c index 0807c89949..21967894f4 100644 --- a/nctest/tst_rename.c +++ b/nctest/tst_rename.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test dim rename that is causing problems with v2 API. diff --git a/nctest/val.c b/nctest/val.c index b7f0f7f622..b7d27820d3 100644 --- a/nctest/val.c +++ b/nctest/val.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/val.c,v 1.13 2006/10/31 16:22:01 ed Exp $ *********************************************************************/ diff --git a/nctest/val.h b/nctest/val.h index e78ba5acda..b1a01de3fd 100644 --- a/nctest/val.h +++ b/nctest/val.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/val.h,v 1.7 2006/10/31 16:23:51 ed Exp $ *********************************************************************/ diff --git a/nctest/vardef.c b/nctest/vardef.c index bf1087408d..b02df5dfdc 100644 --- a/nctest/vardef.c +++ b/nctest/vardef.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vardef.c,v 1.18 2009/10/28 18:30:50 dmh Exp $ *********************************************************************/ diff --git a/nctest/varget.c b/nctest/varget.c index 4082e1eb3f..1f1ab41adf 100644 --- a/nctest/varget.c +++ b/nctest/varget.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/varget.c,v 1.14 2006/10/31 16:22:03 ed Exp $ *********************************************************************/ diff --git a/nctest/vargetg.c b/nctest/vargetg.c index 38df98d30e..b02f33b93b 100644 --- a/nctest/vargetg.c +++ b/nctest/vargetg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: vargetg.c,v 1.10 2006/10/31 16:22:04 ed Exp $ *********************************************************************/ diff --git a/nctest/varput.c b/nctest/varput.c index c3a51d3c65..2dbdf2d61d 100644 --- a/nctest/varput.c +++ b/nctest/varput.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/varput.c,v 1.14 2006/10/31 16:22:05 ed Exp $ *********************************************************************/ diff --git a/nctest/varputg.c b/nctest/varputg.c index c95d4a31e2..2ff6edd381 100644 --- a/nctest/varputg.c +++ b/nctest/varputg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: varputg.c,v 1.10 2006/10/31 16:22:06 ed Exp $ *********************************************************************/ diff --git a/nctest/vartests.c b/nctest/vartests.c index fca25947c4..8fe35983c7 100644 --- a/nctest/vartests.c +++ b/nctest/vartests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vartests.c,v 1.19 2006/10/31 16:20:49 ed Exp $ *********************************************************************/ diff --git a/nctest/vputget.c b/nctest/vputget.c index 34244fa137..8c2ff2ee93 100644 --- a/nctest/vputget.c +++ b/nctest/vputget.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vputget.c,v 1.13 2006/10/31 16:19:49 ed Exp $ *********************************************************************/ diff --git a/nctest/vputgetg.c b/nctest/vputgetg.c index 5bf931d4b5..c4b87b5370 100644 --- a/nctest/vputgetg.c +++ b/nctest/vputgetg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: vputgetg.c,v 1.13 2006/10/31 16:19:40 ed Exp $ *********************************************************************/ diff --git a/oc2/CMakeLists.txt b/oc2/CMakeLists.txt index 92523aa54b..1b4b51f8aa 100644 --- a/oc2/CMakeLists.txt +++ b/oc2/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(oc_SOURCES oc.c daplex.c dapparse.c dapy.c occompile.c occurlfunctions.c ocdata.c ocdebug.c ocdump.c ocinternal.c ocnode.c ochttp.c ocread.c ocutil.c xxdr.c) diff --git a/oc2/Makefile.am b/oc2/Makefile.am index b22889b6b8..96184efbed 100644 --- a/oc2/Makefile.am +++ b/oc2/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to build netCDF-4. The # generated makefile is not run unless the user selected to build @@ -31,7 +31,7 @@ xxdr.h EXTRA_DIST = dap.y CMakeLists.txt auth.html.in oc.css noinst_LTLIBRARIES = liboc.la -liboc_la_SOURCES = $(SRC) $(HDRS) +liboc_la_SOURCES = $(SRC) $(HDRS) liboc_la_CPPFLAGS = $(AM_CPPFLAGS) # These rule are used if someone wants to rebuild the grammar files. diff --git a/oc2/dap.y b/oc2/dap.y index 9154c61a89..b08b2a0671 100644 --- a/oc2/dap.y +++ b/oc2/dap.y @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /*The lines down to DO NOT DELETE ... comment are specific to the C Parser. @@ -17,7 +17,7 @@ int dapdebug = 0; /*DO NOT DELETE THIS LINE*/ -%token SCAN_ALIAS +%token SCAN_ALIAS %token SCAN_ARRAY %token SCAN_ATTR %token SCAN_BYTE @@ -31,14 +31,14 @@ int dapdebug = 0; %token SCAN_GRID %token SCAN_INT16 %token SCAN_INT32 -%token SCAN_MAPS +%token SCAN_MAPS %token SCAN_MESSAGE %token SCAN_SEQUENCE %token SCAN_STRING %token SCAN_STRUCTURE %token SCAN_UINT16 %token SCAN_UINT32 -%token SCAN_URL +%token SCAN_URL /* For errorbody */ %token SCAN_PTYPE %token SCAN_PROG @@ -94,10 +94,10 @@ declaration: | SCAN_GRID '{' SCAN_ARRAY ':' declaration SCAN_MAPS ':' declarations '}' var_name ';' {if(($$=dap_makegrid(parsestate,$10,$5,$8))==null) {YYABORT;}} - | error + | error {dapsemanticerror(parsestate,OC_EBADTYPE,"Unrecognized type"); YYABORT;} ; - + base_type: SCAN_BYTE {$$=(Object)SCAN_BYTE;} @@ -144,7 +144,7 @@ attr_list: ; attribute: - alias ';' {$$=null;} /* ignored */ + alias ';' {$$=null;} /* ignored */ | SCAN_BYTE name bytes ';' {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_BYTE);} | SCAN_INT16 name int16 ';' @@ -164,7 +164,7 @@ attribute: | SCAN_URL name urls ';' {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_URL);} | name '{' attr_list '}' {$$=dap_attrset(parsestate,$1,$3);} - | error + | error {dapsemanticerror(parsestate,OC_EDAS,"Illegal attribute"); YYABORT;} ; @@ -222,7 +222,7 @@ str_or_id: /* Not used float_or_int: WORD_INT {$$=$1;} - | WORD_DOUBLE {$$=$1;} + | WORD_DOUBLE {$$=$1;} ; */ diff --git a/oc2/daplex.c b/oc2/daplex.c index 4c543e5246..bdb4a931ac 100644 --- a/oc2/daplex.c +++ b/oc2/daplex.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/dapparse.c b/oc2/dapparse.c index d67ad06eaa..f6c8801dd2 100644 --- a/oc2/dapparse.c +++ b/oc2/dapparse.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/oc2/dapparselex.h b/oc2/dapparselex.h index 0e763f1dc1..4b6197a8ea 100644 --- a/oc2/dapparselex.h +++ b/oc2/dapparselex.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef DAPPARSELEX_H diff --git a/oc2/oc.c b/oc2/oc.c index 821093849f..4104aa1f0d 100644 --- a/oc2/oc.c +++ b/oc2/oc.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/oc.h b/oc2/oc.h index 9f6ebc53d7..b5f318cb37 100644 --- a/oc2/oc.h +++ b/oc2/oc.h @@ -1,4 +1,4 @@ -/* Copyright 2014, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT dap for more information. */ /* diff --git a/oc2/occompile.c b/oc2/occompile.c index 0c74c49ae7..c22c78bb36 100644 --- a/oc2/occompile.c +++ b/oc2/occompile.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occompile.h b/oc2/occompile.h index 0fb5ffa468..75b110adee 100644 --- a/oc2/occompile.h +++ b/oc2/occompile.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCCOMPILE_H diff --git a/oc2/occonstraints.h b/oc2/occonstraints.h index 4ea31effd6..a5de5fc9f6 100644 --- a/oc2/occonstraints.h +++ b/oc2/occonstraints.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCCONSTRAINTS_H diff --git a/oc2/occurlflags.c b/oc2/occurlflags.c index d530fc4d56..3f491727a8 100644 --- a/oc2/occurlflags.c +++ b/oc2/occurlflags.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occurlfunctions.c b/oc2/occurlfunctions.c index 0832f782df..3334ab1d5c 100644 --- a/oc2/occurlfunctions.c +++ b/oc2/occurlfunctions.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occurlfunctions.h b/oc2/occurlfunctions.h index 6d2b0a033b..74f1126e56 100644 --- a/oc2/occurlfunctions.h +++ b/oc2/occurlfunctions.h @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* * occurlfunction.h * diff --git a/oc2/ocdata.c b/oc2/ocdata.c index 6adc607079..26179d273e 100644 --- a/oc2/ocdata.c +++ b/oc2/ocdata.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocdata.h b/oc2/ocdata.h index 0711ac3631..36c80a4142 100644 --- a/oc2/ocdata.h +++ b/oc2/ocdata.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDATA_H diff --git a/oc2/ocdatatypes.h b/oc2/ocdatatypes.h index d34c508e44..93310d42d3 100644 --- a/oc2/ocdatatypes.h +++ b/oc2/ocdatatypes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDATATYPES_H diff --git a/oc2/ocdebug.c b/oc2/ocdebug.c index 986c888381..0be96d8d11 100644 --- a/oc2/ocdebug.c +++ b/oc2/ocdebug.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocdebug.h b/oc2/ocdebug.h index ae64f085df..c0ac64315d 100644 --- a/oc2/ocdebug.h +++ b/oc2/ocdebug.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCOCDBG_H diff --git a/oc2/ocdump.c b/oc2/ocdump.c index 839eb9362c..c395a0a648 100644 --- a/oc2/ocdump.c +++ b/oc2/ocdump.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/oc2/ocdump.h b/oc2/ocdump.h index c9463155d2..1a6eba5367 100644 --- a/oc2/ocdump.h +++ b/oc2/ocdump.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDUMP_H diff --git a/oc2/ochttp.c b/oc2/ochttp.c index cbb1b76cba..e6ae849c5d 100644 --- a/oc2/ochttp.c +++ b/oc2/ochttp.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ochttp.h b/oc2/ochttp.h index ab720ed39e..284fe87cfb 100644 --- a/oc2/ochttp.h +++ b/oc2/ochttp.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef HTTP_H diff --git a/oc2/ocinternal.c b/oc2/ocinternal.c index 947d17c3cd..9450ce9ea8 100644 --- a/oc2/ocinternal.c +++ b/oc2/ocinternal.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocinternal.h b/oc2/ocinternal.h index f0e4642236..58d51fc0d9 100644 --- a/oc2/ocinternal.h +++ b/oc2/ocinternal.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCINTERNAL_H diff --git a/oc2/ocnode.c b/oc2/ocnode.c index 46604837a0..b394e52ead 100644 --- a/oc2/ocnode.c +++ b/oc2/ocnode.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocnode.h b/oc2/ocnode.h index 23f9967f15..9c59624a19 100644 --- a/oc2/ocnode.h +++ b/oc2/ocnode.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCNODE_H diff --git a/oc2/ocread.c b/oc2/ocread.c index 81485316dc..67cf55aacf 100644 --- a/oc2/ocread.c +++ b/oc2/ocread.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocread.h b/oc2/ocread.h index 0d380ac1a3..f3b0e5490c 100644 --- a/oc2/ocread.h +++ b/oc2/ocread.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef READ_H diff --git a/oc2/ocutil.c b/oc2/ocutil.c index 158608f030..61ba2938c5 100644 --- a/oc2/ocutil.c +++ b/oc2/ocutil.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocutil.h b/oc2/ocutil.h index 453efa5833..56e960b6b4 100644 --- a/oc2/ocutil.h +++ b/oc2/ocutil.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCUTIL_H diff --git a/oc2/ocx.h b/oc2/ocx.h index d00c164783..baa5d09b8a 100644 --- a/oc2/ocx.h +++ b/oc2/ocx.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT dap for more information. */ /* diff --git a/oc2/xxdr.c b/oc2/xxdr.c index 9ccb65d201..1ac74b0f8f 100644 --- a/oc2/xxdr.c +++ b/oc2/xxdr.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /* diff --git a/oc2/xxdr.h b/oc2/xxdr.h index 8139892b26..6929bef749 100644 --- a/oc2/xxdr.h +++ b/oc2/xxdr.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index e5ba4e21d7..9b5d30ce44 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(CMAKE_BUILD_TYPE "") SET(libbzip2_SOURCES blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c H5Zbzip2.c) diff --git a/test_common.in b/test_common.in index b8af51855d..67f7cc1c0d 100644 --- a/test_common.in +++ b/test_common.in @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + TOPSRCDIR='@abs_top_srcdir@' TOPBUILDDIR='@abs_top_builddir@' diff --git a/test_prog.c b/test_prog.c index d0c6706a0d..ba9a6fd46c 100644 --- a/test_prog.c +++ b/test_prog.c @@ -1,10 +1,10 @@ -/* This is part of Unidata's netCDF package. Copyright 2009. +/* This is part of Unidata's netCDF package. Copyright 2018. This is a test program for the nc-config utility. */ #include #include int -main() +main() { printf("NetCDF version: %s\n", nc_inq_libvers()); printf("*** SUCCESS!\n");