Salome HOME
Update Thirt-patry product versions and configuration options. V9_4_BR occ/fixes_for_940 V9_4_0 V9_4_0rc2 V9_4_0rc3
authorrnv <rnv@opencascade.com>
Mon, 18 Nov 2019 12:36:25 +0000 (15:36 +0300)
committerrnv <rnv@opencascade.com>
Mon, 18 Nov 2019 12:37:37 +0000 (15:37 +0300)
57 files changed:
.gitattributes [deleted file]
config/build_options/occ/options_compilation_salome_master.txt
config/patches/README
config/patches/boost.001_fcontext.patch [deleted file]
config/patches/boost.002_icu_formatter.patch [deleted file]
config/patches/eigen.001_replace_nullptr.patch [deleted file]
config/patches/embree.001_centos6.patch [new file with mode: 0644]
config/patches/gl2ps.002_for_pv.patch [deleted file]
config/patches/hdf5.001_threads_threads.patch [new file with mode: 0644]
config/patches/libxml2.001_64bits_crash.patch [deleted file]
config/patches/matplotlib.001_build_procedure.patch
config/patches/matplotlib.002_fix_paraview_gtk.patch [deleted file]
config/patches/medfile.001.bug_correct_cmake.patch [new file with mode: 0644]
config/patches/medfile.001_parallel.patch [deleted file]
config/patches/medfile.002_gcc6.patch [deleted file]
config/patches/netgen.001.common.patch [new file with mode: 0644]
config/patches/netgen.001_sources.patch [deleted file]
config/patches/numpy.001_shell.patch [new file with mode: 0644]
config/patches/occ/README [deleted file]
config/patches/occ/freeimage.001_sources.patch [deleted file]
config/patches/occ/freeimage.002_build_procedure.patch [deleted file]
config/patches/occ/freeimage.003_gcc47_compat.patch [deleted file]
config/patches/occ/freeimage.004_gcc66.patch [deleted file]
config/patches/occ/gl2ps.001_libs.patch [deleted file]
config/patches/occ/graphviz.001_build_procedure.patch [deleted file]
config/patches/occ/hdf5.001_threads_threads.patch [deleted file]
config/patches/occ/matplotlib.001_build_procedure.patch [deleted file]
config/patches/occ/med.001.bug_correct_cmake.patch [deleted file]
config/patches/occ/netgen.001.common.patch [deleted file]
config/patches/occ/opencv.001_compile.patch [deleted file]
config/patches/occ/opencv.002_gcc6.patch [deleted file]
config/patches/occ/planegcs.001_for_shaper.patch [deleted file]
config/patches/occ/qt.001_proxy_factory.patch [deleted file]
config/patches/occ/qt.002_disable_qtgamepad.patch [deleted file]
config/patches/occ/scotch.001.create_makefile.patch [deleted file]
config/patches/occ/solvespace.001_nogui.patch [deleted file]
config/patches/omninotify.001_compilation.patch [deleted file]
config/patches/omninotify.002_64bits.patch [deleted file]
config/patches/opencv.001_compile.patch
config/patches/opencv.002_cmake.patch [new file with mode: 0644]
config/patches/opencv.002_gcc6.patch [deleted file]
config/patches/paco++.001_gcc44_compat.patch [deleted file]
config/patches/paraview.001_against_multiple_py_sv_thr.patch [new file with mode: 0644]
config/patches/paraview.001_vtk_targets.patch [deleted file]
config/patches/paraview.002_statestorage_bug.patch [new file with mode: 0644]
config/patches/paraview.002_visitbridge.patch [deleted file]
config/patches/paraview.003_surfacelic.patch [deleted file]
config/patches/planegcs.001_for_shaper.patch [new file with mode: 0644]
config/patches/qt.002_webview_include.patch [deleted file]
config/patches/qt.003_webengine.patch [deleted file]
config/patches/qt.004_blender_scene.patch [deleted file]
config/patches/qt.005_null_ptr.patch [deleted file]
config/patches/scotch.001.create_makefile.patch [new file with mode: 0644]
config/patches/scotch.001_pthreads.patch [deleted file]
config/patches/solvespace.001_nogui.patch [deleted file]
config/patches/tbb.001_install_py_backend.patch [new file with mode: 0644]
config/salome.xml

diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644 (file)
index dbb5ba5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.gitattributes eol=lf
-.gitignore     eol=lf
-*.patch        binary
index 12885bfed9ea96b65366c0d2c0cd9b6e0ce6e100..2e53e1a902ca1de236624150a07face3fa527983 100644 (file)
@@ -125,7 +125,7 @@ RANDOMIZER
 > cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${RANDOMIZER_ROOT_DIR} ${RANDOMIZER_SRC_DIR}
 
 SHAPER
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SHAPER_ROOT_DIR} ${SHAPER_SRC_DIR}
+> cmake -DCMAKE_BUILD_TYPE=Release  -DADD_COMPATIBILITY_TESTS=ON -DADD_MODELS_TESTS=ON -DCMAKE_INSTALL_PREFIX=${SHAPER_ROOT_DIR} ${SHAPER_SRC_DIR}
 
 SIERPINSKY
 > cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SIERPINSKY_ROOT_DIR} ${SIERPINSKY_SRC_DIR}
@@ -143,16 +143,16 @@ YACSGEN
 > python3 setup.py install --prefix=${YACSGEN_ROOT_DIR}
 
 CGNS
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${CGNS_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCGNS_BUILD_SHARED:BOOL=ON -DCGNS_ENABLE_HDF5:BOOL=ON -DHDF5_DIR=${HDF5_ROOT_DIR}/share/cmake -DHDF5_INCLUDE_PATH:PATH=${HDF5_ROOT_DIR}/include -DHDF5_LIBRARY:FILEPATH=${HDF5_ROOT_DIR}/lib/libhdf5.so -DHDF5_NEED_ZLIB=ON ${CGNS_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${CGNS_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCGNS_BUILD_SHARED:BOOL=ON -DCGNS_ENABLE_HDF5:BOOL=ON -DHDF5_DIR:PATH=${HDF5_ROOT_DIR}/share/cmake -DHDF5_INCLUDE_PATH:PATH=${HDF5_ROOT_DIR}/include -DHDF5_LIBRARY:FILEPATH=${HDF5_ROOT_DIR}/lib/libhdf5.so -DHDF5_NEED_ZLIB=ON ${CGNS_SRC_DIR}
 
 Cython
 > python3 setup.py install --prefix=${CYTHON_ROOT_DIR}
 
 CAS
-> cmake -DINSTALL_DIR=${CAS_ROOT_DIR} -D3RDPARTY_TCL_DIR=${TCLTK_ROOT_DIR} -DUSE_TBB=ON -D3RDPARTY_TBB_DIR=${TBB_ROOT_DIR} -D3RDPARTY_FREETYPE_DIR=${FREETYPE_ROOT_DIR} -DUSE_FREEIMAGE=ON -D3RDPARTY_FREEIMAGE_DIR=${FREEIMAGE_ROOT_DIR} -DUSE_GL2PS=ON -D3RDPARTY_GL2PS_DIR=${GL2PS_ROOT_DIR} -DCMAKE_BUILD_TYPE=Release ${CAS_SRC_DIR}
+> cmake -DINSTALL_DIR:STRING=${CAS_ROOT_DIR} -D3RDPARTY_TCL_DIR:PATH=${TCLTK_ROOT_DIR} -DUSE_TBB:BOOL=ON -D3RDPARTY_TBB_DIR:PATH=${TBB_ROOT_DIR} -D3RDPARTY_FREETYPE_DIR:PATH=${FREETYPE_ROOT_DIR} -DUSE_FREEIMAGE:BOOL=ON -D3RDPARTY_FREEIMAGE_DIR:PATH=${FREEIMAGE_ROOT_DIR} -DUSE_GL2PS:BOOL=ON -D3RDPARTY_GL2PS_DIR:PATH=${GL2PS_ROOT_DIR} -DCMAKE_BUILD_TYPE:STRING=Release ${CAS_SRC_DIR}
 
 Paraview
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${PARAVIEW_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DCMAKE_CXX_FLAGS:STRING=-m64 -DCMAKE_C_FLAGS:STRING=-m64 -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DVTK_PYTHON_FULL_THREADSAFE=ON -DVTK_NO_PYTHON_THREADS=OFF -DVTK_PYTHON_VERSION=3 -DOpenGL_GL_PREFERENCE=LEGACY -DVTK_USE_64BIT_IDS:BOOL=OFF -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF -DVTK_RENDERING_BACKEND=OpenGL2 -DPARAVIEW_BUILD_QT_GUI:BOOL=ON -DQT_HELP_GENERATOR:STRING=${QT5_ROOT_DIR}/bin/qhelpgenerator -DPARAVIEW_QT_VERSION=5 -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DPARAVIEW_ENABLE_PYTHON:BOOL=ON -DVTK_WRAP_PYTHON:BOOL=ON -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/python3.6 -DPYTHON_INCLUDE_DIR:STRING=${PYTHON_ROOT_DIR}/include/python3.6 -DPYTHON_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/libpython3.6.so -DVTK_NO_PYTHON_THREADS:BOOL=OFF -DVTK_USE_SYSTEM_PYGMENTS:BOOL=ON -DVTK_WRAP_TCL:BOOL=OFF -DVTK_WRAP_JAVA:BOOL=OFF -DPARAVIEW_USE_MPI:BOOL=OFF -DVTK_USE_SYSTEM_HDF5:BOOL=ON -DHDF5_USE_STATIC_LIBRARIES:BOOL=OFF -DHDF5_ROOT:PATH=${HDF5_ROOT_DIR} -DHDF5_INCLUDE_DIRS=${HDF5_ROOT_DIR}/include -DHDF5_LIBRARIES=${HDF5_ROOT_DIR}/lib/libhdf5.so;${HDF5_ROOT_DIR}/lib/libhdf5_hl.so -DHDF5_INCLUDE_DIR:PATH=${HDF5_ROOT_DIR}/include -DHDF5_C_LIBRARY:STRING=${HDF5_ROOT_DIR}/lib/libhdf5.so -DHDF5_HL_LIBRARY:PATH=${HDF5_ROOT_DIR}/lib/libhdf5_hl.so -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=OFF -DPARAVIEW_USE_VISITBRIDGE=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DVTK_USE_SYSTEM_GL2PS:BOOL=ON -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_ROOT_DIR}/include -DGL2PS_LIBRARY:STRING=${GL2PS_ROOT_DIR}/lib/libgl2ps.so -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON -DLIBXML2_INCLUDE_DIR:STRING=${LIBXML2_ROOT_DIR}/include/libxml2 -DLIBXML2_LIBRARIES:STRING=${LIBXML2_ROOT_DIR}/lib/libxml2.so -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PrismPlugin:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF -DPARAVIEW_ENABLE_COPROCESSING:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON ${PARAVIEW_SRC_DIR}
+cmake -DCMAKE_INSTALL_PREFIX:STRING=${PARAVIEW_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DCMAKE_CXX_FLAGS:STRING=-m64 -DCMAKE_C_FLAGS:STRING=-m64 -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DVTK_PYTHON_FULL_THREADSAFE:BOOL=ON -DVTK_NO_PYTHON_THREADS:BOOL=OFF -DVTK_PYTHON_VERSION:STRING=3 -DOpenGL_GL_PREFERENCE:STRING=LEGACY -DPARAVIEW_USE_OSPRAY:BOOL=ON -DOSPRAY_INSTALL_DIR:PATH=${OSPRAY_ROOT_DIR} -Dembree_DIR:PATH=${EMBREE_ROOT_DIR}/lib64/cmake/embree-3.5.2 -DVTK_USE_64BIT_IDS:BOOL=OFF -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF -DVTK_RENDERING_BACKEND:STRING=OpenGL2 -DPARAVIEW_BUILD_QT_GUI:BOOL=ON -DQT_HELP_GENERATOR:STRING=${QT5_ROOT_DIR}/bin/qhelpgenerator -DPARAVIEW_QT_VERSION:STRING=5 -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DPARAVIEW_ENABLE_PYTHON:BOOL=ON -DVTK_WRAP_PYTHON:BOOL=ON -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/python3.6 -DPYTHON_INCLUDE_DIR:STRING=${PYTHON_ROOT_DIR}/include/python3.6 -DPYTHON_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/libpython3.6.so -DVTK_NO_PYTHON_THREADS:BOOL=OFF -DVTK_USE_SYSTEM_PYGMENTS:BOOL=ON -DVTK_WRAP_JAVA:BOOL=OFF -DPARAVIEW_USE_MPI:BOOL=OFF -DVTK_USE_SYSTEM_HDF5:BOOL=ON -DHDF5_USE_STATIC_LIBRARIES:BOOL=OFF -DHDF5_ROOT:PATH=${HDF5_ROOT_DIR} -DHDF5_INCLUDE_DIRS:STRING=${HDF5_ROOT_DIR}/include -DHDF5_LIBRARIES:FILEPATH=${HDF5_ROOT_DIR}/lib/libhdf5.so;${HDF5_ROOT_DIR}/lib/libhdf5_hl.so -DHDF5_INCLUDE_DIR:PATH=${HDF5_ROOT_DIR}/include -DPARAVIEW_USE_VISITBRIDGE:BOOL=ON -DBOOST_ROOT:PATH=${BOOST_ROOT_DIR} -DVTK_USE_SYSTEM_GL2PS:BOOL=ON -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_ROOT_DIR}/include -DGL2PS_LIBRARY:STRING=${GL2PS_ROOT_DIR}/lib/libgl2ps.so -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON -DLIBXML2_INCLUDE_DIR:STRING=${LIBXML2_ROOT_DIR}/include/libxml2 -DLIBXML2_LIBRARIES:STRING=${LIBXML2_ROOT_DIR}/lib/libxml2.so -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF -DPARAVIEW_ENABLE_COPROCESSING:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON ${PARAVIEW_SRC_DIR}
 
 PyQt
 > python3 ./configure.py -b ${PYQT5_ROOT_DIR}/bin -d ${PYQT5_ROOT_DIR} -v ${PYQT5_ROOT_DIR}/sip  --confirm-license --designer-plugindir=${PYQT5_ROOT_DIR}/plugins/designer --qml-plugindir=${PYQT5_ROOT_DIR}/plugins/qml --no-qsci-api --sip-incdir=${SIP_ROOT_DIR}/include/python3.6
@@ -240,16 +240,23 @@ CMake
 > ./configure --prefix=${CMAKE_ROOT_DIR}
 
 doxygen
-> cmake -DCMAKE_INSTALL_PREFIX=${DOXYGEN_ROOT_DIR} ${DOXYGEN_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${DOXYGEN_ROOT_DIR} ${DOXYGEN_SRC_DIR}
 
+embree
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${EMBREE_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER:STRING=clang++ -DCMAKE_C_COMPILER:STRING=clang -DEMBREE_TUTORIALS:BOOL=OFF -DEMBREE_TASKING_SYSTEM:STRING=TBB -DTBB_ROOT:PATH=${TBB_ROOT_DIR} ${EMBREE_SRC_DIR}
+
+freeimage (no specific configuration procedure, options are passed to make)
+> make -f Makefile.gnu
+> make -f Makefile.gnu DESTDIR=${FREEIMAGE_ROOT_DIR} install
+        
 freetype
 > ./configure --prefix=${FREETYPE_ROOT_DIR} --with-harfbuzz=no CFLAGS='-m64 -fPIC' CPPFLAGS='-m64 -fPIC'
 
 gl2ps
-> cmake -DCMAKE_INSTALL_PREFIX=${GL2PS_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Release ${GL2PS_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${GL2PS_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release ${GL2PS_SRC_DIR}
 
 gmsh
-> cmake -DCMAKE_INSTALL_PREFIX=${GMSH_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_SHARED=ON -DENABLE_ACIS=OFF -DENABLE_FLTK=OFF -DENABLE_MED=OFF -DENABLE_ONELAB_METAMODEL=OFF -DENABLE_PARSER=ON -DENABLE_PETSC=OFF -DENABLE_PRIVATE_API=ON -DENABLE_CGNS=OFF ${GMSH_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${GMSH_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DENABLE_BUILD_SHARED:BOOL=ON -DENABLE_ACIS:BOOL=OFF -DENABLE_FLTK:BOOL=OFF -DENABLE_MED:BOOL=OFF -DENABLE_ONELAB_METAMODEL:BOOL=OFF -DENABLE_PARSER:BOOL=ON -DENABLE_PETSC:BOOL=OFF -DENABLE_PRIVATE_API:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib -DENABLE_CGNS:BOOL=OFF ${GMSH_SRC_DIR}
 
 graphvis
 > ./configure --prefix=${GRAPHVIS_ROOT_DIR} --disable-rpath --disable-tcl --disable-perl --disable-php --disable-ocaml --disable-lua --disable-java --disable-guile --disable-sharp --disable-swig --disable-python --disable-r --disable-ruby --without-expat --without-qt CFLAGS=-m64 CXXFLAGS=-m64
@@ -265,11 +272,17 @@ h5py and h5py related products
  > python3 ./setup.py install --prefix=${H5PY_ROOT_DIR}
 
 hdf5
-> cmake -DCMAKE_INSTALL_PREFIX=${HDF5_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Release -DHDF5_ENABLE_THREADSAFE=ON -DALLOW_UNSUPPORTED=ON -DBUILD_SHARED_LIBS=ON -DHDF5_BUILD_TOOLS=ON -DHDF5_BUILD_HL_LIB=ON -DHDF5_ENABLE_Z_LIB_SUPPORT=ON ${HDF5_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${HDF5_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DHDF5_ENABLE_THREADSAFE:BOOL=ON -DALLOW_UNSUPPORTED:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON -DHDF5_BUILD_HL_LIB:BOOL=ON -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON ${HDF5_SRC_DIR}
+
+ispc
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${ISPC_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER:STRING=clang++ -DCMAKE_C_COMPILER:STRING=clang -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_ROOT_DIR}/bin/python3.6 ${ISPC_SRC_DIR}
 
 libxml2
 > ./configure --prefix=${LIBXML2_ROOT_DIR}
 
+llvm
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${LLVM_ROOT_DIR} CMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/python3.6 -DLLVM_INSTALL_UTILS:BOOL=ON -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL=ON -DLLVM_ENABLE_DUMP:BOOL=ON ${LLVM_SRC_DIR}
+
 matplotlib and matplotlib related products
  * cycler
  > python3 ./setup.py install --prefix=${MATPLOTLIB_ROOT_DIR}
@@ -284,20 +297,24 @@ matplotlib and matplotlib related products
  > python3 ./setup.py install --prefix=${MATPLOTLIB_ROOT_DIR}
 
 med
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${MED_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Release -DMEDFILE_BUILD_SHARED_LIBS=ON -DMEDFILE_BUILD_TESTS=OFF -DMEDFILE_INSTALL_DOC=ON -DMEDFILE_BUILD_PYTHON=ON -DPYTHON_INCLUDE_DIR=${PYTHON_ROOT_DIR}/include/python3.6 -DPYTHON_LIBRARY=${PYTHON_ROOT_DIR}/lib/libpython3.6.so -DHDF5_ROOT=${HDF5_ROOT_DIR} ${MED_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${MED_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DMEDFILE_BUILD_SHARED_LIBS:BOOL=ON -DMEDFILE_BUILD_TESTS:BOOL=OFF -DMEDFILE_INSTALL_DOC:BOOL=ON -DMEDFILE_BUILD_PYTHON:BOOL=ON -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_ROOT_DIR}/include/python3.6 -DPYTHON_LIBRARY:FILEPATH=${PYTHON_ROOT_DIR}/lib/libpython3.6.so -DHDF5_ROOT:PATH=${HDF5_ROOT_DIR} ${MED_SRC_DIR}
 
 metis
-> cmake -DCMAKE_VERBOSE_MAKEFILE=1 -DGKLIB_PATH=${METIS_SRC_DIR}/GKlib -DCMAKE_INSTALL_PREFIX=${METIS_ROOT_DIR} -DSHARED=1 ${METIS_SRC_DIR}
+> make config prefix=${METIS_ROOT_DIR} shared=1
 
 mpi4py
 > python3 ./setup.py install --prefix=${MPI4PY_ROOT_DIR}
 
 netgen
+> aclocal -I m4
+> libtoolize --force --copy --automake
+> autoconf
+> automake --copy --gnu --add-missing
 > ./configure --prefix=${NETGEN_ROOT_DIR} --with-occ=${CAS_ROOT_DIR} --with-tcl=${TCLTK_ROOT_DIR}/lib --with-tk=${TCLTK_ROOT_DIR}/lib --with-tclinclude=${TCLTK_ROOT_DIR}/include CXXFLAGS=-O2 -m64 -std=c++0x
 
 numpy and numpy related products
  * lapack
- > cmake -DCMAKE_INSTALL_PREFIX=${NUMPY_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC ${LAPACK_SRC_DIR}
+ > cmake -DCMAKE_INSTALL_PREFIX:STRING=${NUMPY_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_FLAGS:STRING=-fPIC -DCMAKE_C_FLAGS:STRING=-fPIC ${LAPACK_SRC_DIR}
 
  * numpy
  > python3 ./setup.py install --prefix=${NUMPY_ROOT_DIR}
@@ -310,13 +327,16 @@ omniorb and omniorbpy
  > ./configure --prefix=${OMNIORB_ROOT_DIR} PYTHON=${PYTHON_ROOT_DIR}/bin/python3
 
 opencv
-> cmake -DCMAKE_INSTALL_PREFIX=${OPENCV_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_opencv_java=OFF ${OPENCV_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${OPENCV_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_opencv_java:BOOL=OFF -DWITH_GTK:BOOL=OFF -DWITH_LAPACK:BOOL=OFF ${OPENCV_SRC_DIR}
 
 openmpi
 > ./configure --prefix=${OPENMPI_ROOT_DIR} CFLAGS=-m64 CXXFLAGS=-m64
 
+ospray
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${OSPRAY_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER:STRING=clang++ -DCMAKE_C_COMPILER:STRING=clang -Dembree_DIR:PATH=${EMBREE_ROOT_DIR} -DOSPRAY_TASKING_SYSTEM:STRING=TBB -DTBB_ROOT:PATH=${TBB_ROOT_DIR} ${OSPRAY_SRC_DIR}
+
 planegcs
-> cmake -DCMAKE_INSTALL_PREFIX=${PLANEGCS_ROOT_DIR} ${PLANEGCS_SRC_DIR}
+> cmake -DCMAKE_INSTALL_PREFIX:STRING=${PLANEGCS_ROOT_DIR} ${PLANEGCS_SRC_DIR}
 
 qt5
 > ./configure -prefix ${QT5_ROOT_DIR} -no-separate-debug-info -opensource -confirm-license -release -nomake tests
@@ -333,11 +353,18 @@ scotch (no specific configuration procedure, options are passed to make)
 sip
 > python3 ./configure.py -b ${SIP_ROOT_DIR}/bin -d ${SIP_ROOT_DIR}/lib/python3.6/site-packages -e ${SIP_ROOT_DIR}/include/python3.6 -v ${SIP_ROOT_DIR}/sip -p linux-g++-64
 
-solvespace
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${SOLVESPACE_ROOT_DIR} -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_GUI:BOOL=OFF ${SOLVESPACE_SRC_DIR}
-
 swig
-> ./configure --prefix=${SWIG_ROOT_DIR} --with-boost=${BOOST_ROOT_DIR} --with-python3=${PYTHON_ROOT_DIR} --without-octave --with-tcl=${TCLTK_ROOT_DIR} --program-suffix=3.0 CFLAGS=-m64 CXXFLAGS=-m64
+> ./configure --prefix=${SWIG_ROOT_DIR} --with-boost=${BOOST_ROOT_DIR} --with-python3=${PYTHON_ROOT_DIR}/bin/python3 --without-octave --with-tcl=${TCLTK_ROOT_DIR} --program-suffix=3.0 CFLAGS=-m64 CXXFLAGS=-m64
+
+tcltk and tclx
+ * tcl
+ > ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --enable-64bit
+
+ * tclx
+ > ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --with-tcl=${TCLTK_ROOT_DIR}/lib --with-tk=${TCLTK_ROOT_DIR}/lib --enable-64bit
+
+ * tk
+ > ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --with-tcl=${TCLTK_ROOT_DIR}/lib --enable-64bit
 
-tcltk
-> ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --enable-64bit
+tbb
+> python3 build/build.py --install --install-python --prefix=${TBB_ROOT_DIR}
index 279a153ca18b35e881c599a6d5a9b98db547bd24..1b3dd0ad2622e17a05a1c7386926ebf0b35aa6ff 100644 (file)
@@ -1 +1,16 @@
 This directory containes patches needed to build SALOME pre-requisites.
+
+Comments
+========
+
+1. graphvis
+   ! Additional patch is applied to binaries installation of grapvis to correct config6 via sed utility.
+
+2. qwt
+   ! Patch which contains hardcoded path to qwt install directory is applied via sed utility. It is impossible to create such a patch using diff syntax.
+
+3. omniorb
+   ! Additional patch is applied to installed omniorb in order to set correct path to python3 executable.
+
+4. paraview
+   ! Post install patch is applied to ${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-5.6/UseParaView.cmake in order to add 'find_package(ospray REQUIRED)' to the end of this file.
diff --git a/config/patches/boost.001_fcontext.patch b/config/patches/boost.001_fcontext.patch
deleted file mode 100644 (file)
index e1ea293..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -NaurwB boost-1.52.0__0/libs/context/src/fcontext.cpp boost-1.52.0__1/libs/context/src/fcontext.cpp
---- boost-1.52.0__0/libs/context/src/fcontext.cpp      2012-09-18 13:06:47.000000000 +0400
-+++ boost-1.52.0__1/libs/context/src/fcontext.cpp      2017-03-15 15:22:15.633793279 +0300
-@@ -9,6 +9,7 @@
- #include <boost/context/fcontext.hpp>
- #include <cstddef>
-+#include <stdint.h>
- #ifdef BOOST_HAS_ABI_HEADERS
- #  include BOOST_ABI_PREFIX
diff --git a/config/patches/boost.002_icu_formatter.patch b/config/patches/boost.002_icu_formatter.patch
deleted file mode 100644 (file)
index 150fb96..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -NaurwB boost-1.52.0__0/libs/locale/src/icu/formatter.cpp boost-1.52.0__1/libs/locale/src/icu/formatter.cpp
---- boost-1.52.0__0/libs/locale/src/icu/formatter.cpp  2017-03-15 15:24:10.538356909 +0300
-+++ boost-1.52.0__1/libs/locale/src/icu/formatter.cpp  2017-03-15 15:24:39.902501313 +0300
-@@ -51,14 +51,14 @@
-             virtual string_type format(double value,size_t &code_points) const
-             {
-                 icu::UnicodeString tmp;
--                icu_fmt_->format(value,tmp);
-+                icu_fmt_->format(::int64_t(value),tmp);
-                 code_points=tmp.countChar32();
-                 return cvt_.std(tmp);
-             }
-             virtual string_type format(int64_t value,size_t &code_points) const
-             {
-                 icu::UnicodeString tmp;
--                icu_fmt_->format(value,tmp);
-+                icu_fmt_->format(::int64_t(value),tmp);
-                 code_points=tmp.countChar32();
-                 return cvt_.std(tmp);
-             }
diff --git a/config/patches/eigen.001_replace_nullptr.patch b/config/patches/eigen.001_replace_nullptr.patch
deleted file mode 100644 (file)
index 77d31cf..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-commit 43401eee36e1af2ca170b2824e76875f2ac56964
-Author: spo <sergey.pokhodenko@opencascade.com>
-Date:   Tue Dec 22 12:46:02 2015 +0300
-
-    Replace nullptr with 0
-
-diff --git a/Eigen/src/Core/DenseStorage.h b/Eigen/src/Core/DenseStorage.h
-index 568493c..c30c084 100755
---- a/Eigen/src/Core/DenseStorage.h
-+++ b/Eigen/src/Core/DenseStorage.h
-@@ -278,7 +278,7 @@ template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynam
-       , m_rows(std::move(other.m_rows))
-       , m_cols(std::move(other.m_cols))
-     {
--      other.m_data = nullptr;
-+      other.m_data = 0;
-     }
-     DenseStorage& operator=(DenseStorage&& other)
-     {
-@@ -336,7 +336,7 @@ template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Ro
-       : m_data(std::move(other.m_data))
-       , m_cols(std::move(other.m_cols))
-     {
--      other.m_data = nullptr;
-+      other.m_data = 0;
-     }
-     DenseStorage& operator=(DenseStorage&& other)
-     {
-@@ -390,7 +390,7 @@ template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dyn
-       : m_data(std::move(other.m_data))
-       , m_rows(std::move(other.m_rows))
-     {
--      other.m_data = nullptr;
-+      other.m_data = 0;
-     }
-     DenseStorage& operator=(DenseStorage&& other)
-     {
diff --git a/config/patches/embree.001_centos6.patch b/config/patches/embree.001_centos6.patch
new file mode 100644 (file)
index 0000000..6d6af2f
--- /dev/null
@@ -0,0 +1,14 @@
+diff -Naur embree-3.5.2_SRC_orig/common/sys/alloc.cpp embree-3.5.2_SRC_modif/common/sys/alloc.cpp
+--- embree-3.5.2_SRC_orig/common/sys/alloc.cpp 2019-03-13 14:13:56.000000000 +0300
++++ embree-3.5.2_SRC_modif/common/sys/alloc.cpp        2019-07-23 12:59:36.127707285 +0300
+@@ -22,6 +22,10 @@
+ ////////////////////////////////////////////////////////////////////////////////
+ /// All Platforms
+ ////////////////////////////////////////////////////////////////////////////////
++
++#ifndef MAP_HUGETLB
++#define MAP_HUGETLB     0x40000         /* create a huge page mapping */
++#endif
+   
+ namespace embree
+ {
diff --git a/config/patches/gl2ps.002_for_pv.patch b/config/patches/gl2ps.002_for_pv.patch
deleted file mode 100644 (file)
index fae9b0a..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-diff -Naur gl2ps-1.3.9-svn-20160620_SRC_orig/gl2ps.c gl2ps-1.3.9-svn-20160620_SRC_modif/gl2ps.c
---- gl2ps-1.3.9-svn-20160620_SRC_orig/gl2ps.c  2016-06-13 01:01:29.000000000 +0300
-+++ gl2ps-1.3.9-svn-20160620_SRC_modif/gl2ps.c 2017-04-03 12:15:38.395464392 +0300
-@@ -42,6 +42,11 @@
- #include <time.h>
- #include <float.h>
-+// not defined until VC8 (VS2005)
-+#if _MSC_VER && _MSC_VER < 1400 && !defined(vsnprintf)
-+#define vsnprintf _vsnprintf
-+#endif
-+
- #if defined(GL2PS_HAVE_ZLIB)
- #include <zlib.h>
- #endif
-@@ -163,6 +168,7 @@
-   GLushort pattern;
-   char boundary, offset, culled;
-   GLint factor;
-+  GLint sortid; /* Used to stabilize qsort sorting */
-   GLfloat width, ofactor, ounits;
-   GL2PSvertex *verts;
-   union {
-@@ -597,6 +603,15 @@
-   qsort(list->array, list->n, list->size, fcmp);
- }
-+/* Must be a list of GL2PSprimitives. */
-+static void gl2psListAssignSortIds(GL2PSlist *list)
-+{
-+  GLint i;
-+  for(i = 0; i < gl2psListNbr(list); i++){
-+    (*(GL2PSprimitive**)gl2psListPointer(list, i))->sortid = i;
-+  }
-+}
-+
- static void gl2psListAction(GL2PSlist *list, void (*action)(void *data))
- {
-   GLint i;
-@@ -850,7 +865,8 @@
- static GLint gl2psAddText(GLint type, const char *str, const char *fontname,
-                           GLshort fontsize, GLint alignment, GLfloat angle,
--                          GL2PSrgba color)
-+                          GL2PSrgba color, GLboolean setblpos,
-+                          GLfloat blx, GLfloat bly)
- {
-   GLfloat pos[4];
-   GL2PSprimitive *prim;
-@@ -875,11 +891,16 @@
-   prim = (GL2PSprimitive*)gl2psMalloc(sizeof(GL2PSprimitive));
-   prim->type = type;
-   prim->boundary = 0;
--  prim->numverts = 1;
--  prim->verts = (GL2PSvertex*)gl2psMalloc(sizeof(GL2PSvertex));
-+  prim->numverts = setblpos ? 2 : 1;
-+  prim->verts = (GL2PSvertex*)gl2psMalloc(sizeof(GL2PSvertex) * prim->numverts);
-   prim->verts[0].xyz[0] = pos[0];
-   prim->verts[0].xyz[1] = pos[1];
-   prim->verts[0].xyz[2] = pos[2];
-+  if (setblpos) {
-+    prim->verts[1].xyz[0] = blx;
-+    prim->verts[1].xyz[1] = bly;
-+    prim->verts[1].xyz[2] = 0;
-+  }
-   prim->culled = 0;
-   prim->offset = 0;
-   prim->ofactor = 0.0;
-@@ -1434,7 +1455,8 @@
-     return 1;
-   }
-   else{
--    return 0;
-+    /* Ensure that initial ordering is preserved when depths match. */
-+    return q->sortid < w->sortid ? -1 : 1;
-   }
- }
-@@ -3492,8 +3514,47 @@
-   }
- }
--static void gl2psPutPDFSpecial(GL2PSstring *text)
-+/*
-+  This is used for producing alligned text in PDF. (x, y) is the anchor for the
-+  alligned text, (xbl, ybl) is the bottom left corner. Rotation happens
-+  around (x, y).*/
-+static void gl2psPutPDFTextBL(GL2PSstring *text, int cnt, GLfloat x, GLfloat y,
-+                              GLfloat xbl, GLfloat ybl)
- {
-+  if(text->angle == 0.0F){
-+    gl2ps->streamlength += gl2psPrintf
-+      ("BT\n"
-+       "/F%d %d Tf\n"
-+       "%f %f Td\n"
-+       "(%s) Tj\n"
-+       "ET\n",
-+       cnt, text->fontsize, xbl, ybl, text->str);
-+  }
-+  else{
-+    GLfloat a, ca, sa;
-+    GLfloat pi = 3.141593F;
-+    GLfloat i = atan2(y - ybl, x - xbl);
-+    GLfloat r = sqrt((y - ybl) * (y - ybl) + (x - xbl) * (x - xbl));
-+
-+    a = (GLfloat)(pi * text->angle / 180.0F);
-+    sa = (GLfloat)sin(a);
-+    ca = (GLfloat)cos(a);
-+    gl2ps->streamlength += gl2psPrintf
-+      ("BT\n"
-+       "/F%d %d Tf\n"
-+       "%f %f %f %f %f %f Tm\n"
-+       "(%s) Tj\n"
-+       "ET\n",
-+       cnt, text->fontsize,
-+       ca, sa, -sa, ca,
-+       xbl + r * (cos(i) - cos(i + a)), ybl + r * (sin(i) - sin(i+a)), text->str);
-+  }
-+}
-+
-+
-+static void gl2psPutPDFSpecial(int prim, int sec, GL2PSstring *text)
-+{
-+  gl2ps->streamlength += gl2psPrintf("/GS%d%d gs\n", prim, sec);
-   gl2ps->streamlength += gl2psPrintf("%s\n", text->str);
- }
-@@ -3689,7 +3750,7 @@
- static void gl2psPDFgroupListWriteMainStream(void)
- {
--  int i, j, lastel;
-+  int i, j, lastel, count;
-   GL2PSprimitive *prim = NULL, *prev = NULL;
-   GL2PSpdfgroup *gro;
-   GL2PStriangle t;
-@@ -3697,7 +3758,9 @@
-   if(!gl2ps->pdfgrouplist)
-     return;
--  for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){
-+  count = gl2psListNbr(gl2ps->pdfgrouplist);
-+
-+  for(i = 0; i < count; ++i){
-     gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i);
-     lastel = gl2psListNbr(gro->ptrlist) - 1;
-@@ -3863,14 +3926,26 @@
-       for(j = 0; j <= lastel; ++j){
-         prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j);
-         gl2ps->streamlength += gl2psPrintPDFFillColor(prim->verts[0].rgba);
--        gl2psPutPDFText(prim->data.text, gro->fontno, prim->verts[0].xyz[0],
--                        prim->verts[0].xyz[1]);
-+        if (prim->numverts == 2) {
-+          gl2psPutPDFTextBL(prim->data.text, gro->fontno, prim->verts[0].xyz[0],
-+                            prim->verts[0].xyz[1],
-+                            prim->verts[1].xyz[0],
-+                            prim->verts[1].xyz[1]);
-+        }
-+        else {
-+          gl2psPutPDFText(prim->data.text, gro->fontno, prim->verts[0].xyz[0],
-+                          prim->verts[0].xyz[1]);
-+        }
-       }
-       break;
-     case GL2PS_SPECIAL:
-+      lastel = gl2psListNbr(gro->ptrlist) - 1;
-+      if(lastel < 0)
-+        continue;
-+
-       for(j = 0; j <= lastel; ++j){
-         prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j);
--        gl2psPutPDFSpecial(prim->data.text);
-+        gl2psPutPDFSpecial(i, j, prim->data.text);
-       }
-     default:
-       break;
-@@ -3883,17 +3958,39 @@
- static int gl2psPDFgroupListWriteGStateResources(void)
- {
-   GL2PSpdfgroup *gro;
-+  GL2PSprimitive* prim;
-+  float op = 1;
-   int offs = 0;
--  int i;
-+  int i, j;
-+  int index = 0;
-+  int lastel;
-   offs += fprintf(gl2ps->stream,
-                   "/ExtGState\n"
-                   "<<\n"
-                   "/GSa 7 0 R\n");
-+
-   for(i = 0; i < gl2psListNbr(gl2ps->pdfgrouplist); ++i){
-     gro = (GL2PSpdfgroup*)gl2psListPointer(gl2ps->pdfgrouplist, i);
-     if(gro->gsno >= 0)
-+    {
-       offs += fprintf(gl2ps->stream, "/GS%d %d 0 R\n", gro->gsno, gro->gsobjno);
-+      index = gro->gsno;
-+    }
-+
-+    lastel = gl2psListNbr(gro->ptrlist) - 1;
-+    if(lastel < 0)
-+      continue;
-+
-+    for(j = 0; j <= lastel; ++j)
-+    {
-+      prim = *(GL2PSprimitive**)gl2psListPointer(gro->ptrlist, j);
-+      if (prim->type == GL2PS_SPECIAL)
-+      {
-+      op = prim->verts[0].rgba[3];
-+      offs += fprintf(gl2ps->stream, "/GS%d%d <<\n /CA %f\n /ca %f\n >>\n", i, j, op, op);
-+      }
-+    }
-   }
-   offs += fprintf(gl2ps->stream, ">>\n");
-   return offs;
-@@ -5659,6 +5756,7 @@
-     gl2psListReset(gl2ps->primitives);
-     break;
-   case GL2PS_SIMPLE_SORT :
-+    gl2psListAssignSortIds(gl2ps->primitives);
-     gl2psListSort(gl2ps->primitives, gl2psCompareDepth);
-     if(gl2ps->options & GL2PS_OCCLUSION_CULL){
-       gl2psListActionInverse(gl2ps->primitives, gl2psAddInImageTree);
-@@ -5970,24 +6068,39 @@
-                                      GL2PSrgba color)
- {
-   return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle,
--                      color);
-+                      color, GL_FALSE, 0, 0);
-+}
-+
-+/**
-+ * This version of gl2psTextOptColor is used to go around the
-+ * fact that PDF does not support text allignment. The extra parameters
-+ * (blx, bly) represent the bottom left corner of the text bounding box.
-+ */
-+GL2PSDLL_API GLint gl2psTextOptColorBL(const char *str, const char *fontname,
-+                                       GLshort fontsize, GLint alignment, GLfloat angle,
-+                                       GL2PSrgba color, GLfloat blx, GLfloat bly)
-+{
-+  return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle,
-+                      color, GL_TRUE, blx, bly);
- }
-+
- GL2PSDLL_API GLint gl2psTextOpt(const char *str, const char *fontname,
-                                 GLshort fontsize, GLint alignment, GLfloat angle)
- {
--  return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle, NULL);
-+  return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, alignment, angle, NULL,
-+                      GL_FALSE, 0, 0);
- }
- GL2PSDLL_API GLint gl2psText(const char *str, const char *fontname, GLshort fontsize)
- {
-   return gl2psAddText(GL2PS_TEXT, str, fontname, fontsize, GL2PS_TEXT_BL, 0.0F,
--                      NULL);
-+                      NULL, GL_FALSE, 0, 0);
- }
--GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str)
-+GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str, GL2PSrgba rgba)
- {
--  return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, NULL);
-+  return gl2psAddText(GL2PS_SPECIAL, str, "", 0, format, 0.0F, rgba, GL_FALSE, 0, 0);
- }
- GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height,
-diff -Naur gl2ps-1.3.9-svn-20160620_SRC_orig/gl2ps.h gl2ps-1.3.9-svn-20160620_SRC_modif/gl2ps.h
---- gl2ps-1.3.9-svn-20160620_SRC_orig/gl2ps.h  2016-01-17 02:01:36.000000000 +0300
-+++ gl2ps-1.3.9-svn-20160620_SRC_modif/gl2ps.h 2017-04-03 12:37:34.712023470 +0300
-@@ -202,7 +202,10 @@
- GL2PSDLL_API GLint gl2psTextOptColor(const char *str, const char *fontname,
-                                      GLshort fontsize, GLint align, GLfloat angle,
-                                      GL2PSrgba color);
--GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str);
-+GL2PSDLL_API GLint gl2psTextOptColorBL(const char *str, const char *fontname,
-+                                     GLshort fontsize, GLint alignment, GLfloat angle,
-+                                     GL2PSrgba color, GLfloat blx, GLfloat bly);
-+GL2PSDLL_API GLint gl2psSpecial(GLint format, const char *str, GL2PSrgba rgba);
- GL2PSDLL_API GLint gl2psDrawPixels(GLsizei width, GLsizei height,
-                                    GLint xorig, GLint yorig,
-                                    GLenum format, GLenum type, const void *pixels);
-diff -Naur gl2ps-1.3.9-svn-20160620_SRC_orig/gl2psTest.c gl2ps-1.3.9-svn-20160620_SRC_modif/gl2psTest.c
---- gl2ps-1.3.9-svn-20160620_SRC_orig/gl2psTest.c      2015-10-18 01:02:00.000000000 +0300
-+++ gl2ps-1.3.9-svn-20160620_SRC_modif/gl2psTest.c     2017-04-03 12:39:08.752428106 +0300
-@@ -292,8 +292,8 @@
-   glRasterPos2d(x, 1.15);
-   printstring(format_string, 0.);
--
--  gl2psSpecial(GL2PS_TEX, "% This should only be printed in LaTeX output!");
-+  GL2PSrgba rgba = {-1.0F, -1.0F, -1.0F, -1.0F};
-+  gl2psSpecial(GL2PS_TEX, "% This should only be printed in LaTeX output!", rgba);
- }
- void cube()
diff --git a/config/patches/hdf5.001_threads_threads.patch b/config/patches/hdf5.001_threads_threads.patch
new file mode 100644 (file)
index 0000000..776800f
--- /dev/null
@@ -0,0 +1,15 @@
+diff -Naur --exclude=CVS --exclude=.git hdf5-1.10.3_orig/src/CMakeLists.txt hdf5-1.10.3_patched/src/CMakeLists.txt
+--- hdf5-1.10.3_orig/src/CMakeLists.txt        2018-08-10 00:36:31.000000000 +0300
++++ hdf5-1.10.3_patched/src/CMakeLists.txt     2018-10-10 16:25:28.196773245 +0300
+@@ -954,9 +954,10 @@
+           $<$<BOOL:${HDF5_ENABLE_DEBUG_APIS}>:H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG>
+   )
+   TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED)
++  get_property(_threads_libs TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES)
+   target_link_libraries (${HDF5_LIBSH_TARGET}
+       PRIVATE ${LINK_LIBS} ${LINK_COMP_LIBS} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_LIBRARIES}>"
+-      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:Threads::Threads>
++      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:${_threads_libs}>
+   )
+   set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_LIBSH_TARGET}")
+   H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED "LIB")
diff --git a/config/patches/libxml2.001_64bits_crash.patch b/config/patches/libxml2.001_64bits_crash.patch
deleted file mode 100644 (file)
index f03153f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- libxml.h
-+++ libxml.h
-@@ -13,6 +13,9 @@
- #ifndef _LARGEFILE_SOURCE
- #define _LARGEFILE_SOURCE
- #endif
-+#ifndef _LARGEFILE64_SOURCE
-+#define _LARGEFILE64_SOURCE
-+#endif
- #ifndef _FILE_OFFSET_BITS
- #define _FILE_OFFSET_BITS 64
- #endif
-
index 689052425303101ff3ff72ef376314e3a848b6e0..4afaaa7d7165f8f244cd42c18f1c8de88ff0ce37 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naur matplotlib-2.2.2_SRC_orig/setup.cfg matplotlib-2.2.2_SRC_modif/setup.cfg
 --- matplotlib-2.2.2_SRC_orig/setup.cfg        1970-01-01 03:00:00.000000000 +0300
-+++ matplotlib-2.2.2_SRC_modif/setup.cfg       2018-11-01 10:05:22.479529732 +0300
++++ matplotlib-2.2.2_SRC_modif/setup.cfg       2019-11-14 15:26:36.710641396 +0300
 @@ -0,0 +1,99 @@
 +# Rename this file to setup.cfg to modify Matplotlib's
 +# build options.
diff --git a/config/patches/matplotlib.002_fix_paraview_gtk.patch b/config/patches/matplotlib.002_fix_paraview_gtk.patch
deleted file mode 100644 (file)
index c9c1e8c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -NaurwB a/setup.py b/setup.py
---- a/setup.py 2015-02-16 04:46:36.000000000 +0100
-+++ b/setup.py 2017-06-14 17:28:25.170778052 +0200
-@@ -91,19 +91,19 @@
-     # These backends are listed in order of preference, the first
-     # being the most preferred.  The first one that looks like it will
-     # work will be selected as the default backend.
--    setupext.BackendMacOSX(),
-+    #setupext.BackendMacOSX(),
-     setupext.BackendQt5(),
-     setupext.BackendQt4(),
-     setupext.BackendPySide(),
--    setupext.BackendGtk3Agg(),
--    setupext.BackendGtk3Cairo(),
--    setupext.BackendGtkAgg(),
--    setupext.BackendTkAgg(),
--    setupext.BackendWxAgg(),
--    setupext.BackendGtk(),
-+    #setupext.BackendGtk3Agg(),
-+    #setupext.BackendGtk3Cairo(),
-+    #setupext.BackendGtkAgg(),
-+    #setupext.BackendTkAgg(),
-+    #setupext.BackendWxAgg(),
-+    #setupext.BackendGtk(),
-     setupext.BackendAgg(),
--    setupext.BackendCairo(),
--    setupext.Windowing(),
-+    #setupext.BackendCairo(),
-+    #setupext.Windowing(),
-     'Optional LaTeX dependencies',
-     setupext.DviPng(),
-     setupext.Ghostscript(),
diff --git a/config/patches/medfile.001.bug_correct_cmake.patch b/config/patches/medfile.001.bug_correct_cmake.patch
new file mode 100644 (file)
index 0000000..e477630
--- /dev/null
@@ -0,0 +1,37 @@
+diff -Naur --exclude=CVS --exclude=.git med-4.0.0rc1.orig/CMakeLists.txt med-4.0.0rc1.patched/CMakeLists.txt
+--- med-4.0.0rc1.orig/CMakeLists.txt   2018-10-24 18:38:31.000000000 +0300
++++ med-4.0.0rc1.patched/CMakeLists.txt        2018-10-30 18:57:34.000000000 +0300
+@@ -121,7 +121,8 @@
+ ## Installation of the doc
+ IF(MEDFILE_INSTALL_DOC)
+-  INSTALL(DIRECTORY doc DESTINATION ${CMAKE_INSTALL_PREFIX}/share)
++  INSTALL(DIRECTORY doc/html.dox/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/med REGEX "Makefile*" EXCLUDE PATTERN "*.am" EXCLUDE)
++  INSTALL(DIRECTORY doc/gif doc/jpg doc/png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/med FILES_MATCHING PATTERN "*.gif" PATTERN "*.jpg" PATTERN "*.svg" PATTERN "*.png")
+ ENDIF()
+ #######################
+diff -Naur --exclude=CVS --exclude=.git med-4.0.0rc1.orig/config/cmake_files/medMacros.cmake med-4.0.0rc1.patched/config/cmake_files/medMacros.cmake
+--- med-4.0.0rc1.orig/config/cmake_files/medMacros.cmake       2018-10-22 11:36:07.000000000 +0300
++++ med-4.0.0rc1.patched/config/cmake_files/medMacros.cmake    2018-10-30 19:03:44.673012496 +0300
+@@ -406,7 +406,7 @@
+     ADD_DEFINITIONS(-DH5_USE_16_API)  
+     IF(WIN32 AND MEDFILE_BUILD_SHARED_LIBS)
+-      ADD_DEFINITIONS(-D_HDF5USEDLL_)  
++      ADD_DEFINITIONS(-D_HDF5USEDLL_ -DH5_BUILT_AS_DYNAMIC_LIB=1)   
+     ENDIF()
+     
+     # Take what is exposed by the standard FIND_PACKAGE()
+diff -Naur --exclude=CVS --exclude=.git med-4.0.0rc1.orig/python/CMakeLists.txt med-4.0.0rc1.patched/python/CMakeLists.txt
+--- med-4.0.0rc1.orig/python/CMakeLists.txt    2018-10-23 01:43:04.000000000 +0300
++++ med-4.0.0rc1.patched/python/CMakeLists.txt 2018-10-30 19:03:44.657012959 +0300
+@@ -24,7 +24,7 @@
+   medparameter_module.i
+   medprofile_module.i
+   medsubdomain_module.i
+-  medstructelement.i
++  medstructelement_module.i
+ )
+ IF(APPLE)
diff --git a/config/patches/medfile.001_parallel.patch b/config/patches/medfile.001_parallel.patch
deleted file mode 100644 (file)
index a6ce332..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -NaurwB med-3.2.1__1/config/cmake_files/FindMedfileMPI.cmake med-3.2.1__0/config/cmake_files/FindMedfileMPI.cmake
---- med-3.2.1__0/config/cmake_files/FindMedfileMPI.cmake       2017-03-15 14:49:45.411703541 +0300
-+++ med-3.2.1__1/config/cmake_files/FindMedfileMPI.cmake       2017-03-15 14:50:25.683932187 +0300
-@@ -83,6 +83,8 @@
-   SET(MED_DEFINE_MED_HAVE_MPI "#define MED_HAVE_MPI")
-+  SET(MED_DEFINE_MED_HAVE_MPI "#define MED_HAVE_MPI")
-+
- ELSE(MPI_FOUND OR MPIEXEC)
-   MESSAGE(STATUS "MPI was not found.")  
- ENDIF(MPI_FOUND OR MPIEXEC)
-diff -NaurwB med-3.2.1__1/python/CMakeLists.txt med-3.2.1__0/python/CMakeLists.txt
---- med-3.2.1__1/python/CMakeLists.txt 2017-03-15 14:49:45.643704857 +0300
-+++ med-3.2.1__0/python/CMakeLists.txt 2017-03-15 14:50:25.675932142 +0300
-@@ -6,6 +6,7 @@
-   ${PROJECT_BINARY_DIR}/include
-   ${HDF5_INCLUDE_DIRS}
-   ${MPI_INCLUDE_DIRS}
-+  ${MPI_INCLUDE_DIRS}
-   )
- SET(_swig_files 
-diff -NaurwB med-3.2.1__1/src/cfi/CMakeLists.txt med-3.2.1__0/src/cfi/CMakeLists.txt
---- med-3.2.1__1/src/cfi/CMakeLists.txt        2017-03-15 14:49:45.679705061 +0300
-+++ med-3.2.1__0/src/cfi/CMakeLists.txt        2017-03-15 14:50:25.695932256 +0300
-@@ -21,6 +21,10 @@
-   LIST(APPEND cfi_SOURCES parfilecf.c)
- ENDIF(MEDFILE_USE_MPI)
-+IF(MEDFILE_USE_MPI)
-+  LIST(APPEND cfi_SOURCES parfilecf.c)
-+ENDIF(MEDFILE_USE_MPI)
-+
- ADD_DEFINITIONS(-DNOGDI)
-   
- # Intermediary target
-diff -NaurwB med-3.2.1__1/src/fi/CMakeLists.txt med-3.2.1__0/src/fi/CMakeLists.txt
---- med-3.2.1__1/src/fi/CMakeLists.txt 2017-03-15 14:49:45.679705061 +0300
-+++ med-3.2.1__0/src/fi/CMakeLists.txt 2017-03-15 14:50:25.699932278 +0300
-@@ -20,4 +20,8 @@
- LIST(APPEND fi_SOURCES medparfile.f)
- ENDIF(MEDFILE_USE_MPI)
-+IF(MEDFILE_USE_MPI)
-+LIST(APPEND fi_SOURCES medparfile.f)
-+ENDIF(MEDFILE_USE_MPI)
-+
- ADD_LIBRARY(_fi        OBJECT ${fi_SOURCES})
-diff -NaurwB med-3.2.1__1/src/hdfi/CMakeLists.txt med-3.2.1__0/src/hdfi/CMakeLists.txt
---- med-3.2.1__1/src/hdfi/CMakeLists.txt       2017-03-15 14:49:45.671705017 +0300
-+++ med-3.2.1__0/src/hdfi/CMakeLists.txt       2017-03-15 14:50:25.707932324 +0300
-@@ -66,6 +66,10 @@
- IF(MEDFILE_USE_MPI)
-   LIST(APPEND hdfi_SOURCES _MEDparFileOpen.c _MEDparFileCreate.c)
- ENDIF(MEDFILE_USE_MPI)
-+
-+IF(MEDFILE_USE_MPI)
-+  LIST(APPEND hdfi_SOURCES _MEDparFileOpen.c _MEDparFileCreate.c)
-+ENDIF(MEDFILE_USE_MPI)
-   
- ADD_LIBRARY(_hdfi OBJECT ${hdfi_SOURCES})
-  
diff --git a/config/patches/medfile.002_gcc6.patch b/config/patches/medfile.002_gcc6.patch
deleted file mode 100644 (file)
index 7f61fc8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Naur med-3.2.0_SRC_orig/include/H5public_extract.h.in med-3.2.0_SRC_modif/include/H5public_extract.h.in
---- med-3.2.0_SRC_orig/include/H5public_extract.h.in   2016-01-14 18:55:27.000000000 +0300
-+++ med-3.2.0_SRC_modif/include/H5public_extract.h.in  2016-10-18 10:12:45.177767056 +0300
-@@ -28,9 +28,9 @@
- @HDF5_TYPEDEF_HID_T@
- @HDF5_TYPEDEF_HSIZE_T@
--#typedef int herr_t;
--#typedef int hid_t;
--#typedef unsigned long long   hsize_t;
-+//#typedef int herr_t;
-+//#typedef int hid_t;
-+//#typedef unsigned long long   hsize_t;
- #ifdef __cplusplus
- }
diff --git a/config/patches/netgen.001.common.patch b/config/patches/netgen.001.common.patch
new file mode 100644 (file)
index 0000000..78567eb
--- /dev/null
@@ -0,0 +1,49355 @@
+diff -Naur netgen-5.3.1_SRC_orig/Makefile.am netgen-5.3.1_SRC_modif/Makefile.am
+--- netgen-5.3.1_SRC_orig/Makefile.am  2014-08-29 13:55:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/Makefile.am 2019-11-14 16:56:26.946325231 +0300
+@@ -2,7 +2,7 @@
+ METASOURCES = AUTO
+-SUBDIRS = libsrc ng tutorials doc windows nglib
++SUBDIRS = libsrc nglib #tutorials doc windows nglib
+ # TESTS = ng/netgen -batchmode
+diff -Naur netgen-5.3.1_SRC_orig/Makefile.in netgen-5.3.1_SRC_modif/Makefile.in
+--- netgen-5.3.1_SRC_orig/Makefile.in  2014-10-06 15:04:37.000000000 +0400
++++ netgen-5.3.1_SRC_modif/Makefile.in 2019-11-14 16:56:20.582503364 +0300
+@@ -280,7 +280,7 @@
+ top_srcdir = @top_srcdir@
+ ACLOCAL_AMFLAGS = -I m4
+ METASOURCES = AUTO
+-SUBDIRS = libsrc ng tutorials doc windows nglib
++SUBDIRS = libsrc nglib #tutorials doc windows nglib
+ all: config.h
+       $(MAKE) $(AM_MAKEFLAGS) all-recursive
+diff -Naur netgen-5.3.1_SRC_orig/configure.ac netgen-5.3.1_SRC_modif/configure.ac
+--- netgen-5.3.1_SRC_orig/configure.ac 2014-10-06 15:00:17.000000000 +0400
++++ netgen-5.3.1_SRC_modif/configure.ac        2019-11-14 16:56:25.406368338 +0300
+@@ -20,7 +20,7 @@
+ CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
+ # LDFLAGS="$LDFLAGS $OPENMP_CXXFLAGS"
+-AM_PROG_AR
++m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ AC_PROG_LIBTOOL
+ LT_INIT
+@@ -42,8 +42,8 @@
+ if test a$occon = atrue ; then
+-      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/opencascade"])
+-      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
++      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
++      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
+ #  -lTKDCAF
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am
+--- netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am       2014-08-29 13:54:06.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am      2019-11-14 16:56:23.050434285 +0300
+@@ -8,7 +8,7 @@
+ AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include  $(TCL_INCLUDES)
+ METASOURCES = AUTO
+-lib_LTLIBRARIES = libcsg.la
++noinst_LTLIBRARIES = libcsg.la
+ libcsg_la_SOURCES = algprim.cpp brick.cpp   \
+@@ -17,12 +17,9 @@
+ manifold.cpp meshsurf.cpp polyhedra.cpp revolution.cpp singularref.cpp \
+ solid.cpp specpoin.cpp spline3d.cpp surface.cpp triapprox.cpp
+-libcsg_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
+-
+-
+ if NGGUI
+-lib_LTLIBRARIES += libcsgvis.la 
++lib_LTLIBRARIES = libcsgvis.la 
+ libcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
+ libcsgvis_la_LIBADD = libcsg.la
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/general/parthreads.cpp netgen-5.3.1_SRC_modif/libsrc/general/parthreads.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/general/parthreads.cpp        2014-08-29 13:54:06.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/general/parthreads.cpp       2019-11-14 16:56:21.462478733 +0300
+@@ -1,40 +1,40 @@
+-/**************************************************************************/\r
+-/* File:   parthreads.cpp                                                 */\r
+-/* Author: Joachim Schoeberl                                              */\r
+-/* Date:   01. Jun. 95                                                    */\r
+-/**************************************************************************/\r
+-\r
+-\r
+-#include <mystdlib.h>\r
+-#include <myadt.hpp>\r
+-\r
+-/*\r
+-\r
+-namespace netgen\r
+-{\r
+-  using namespace netgen;\r
+-\r
+-#ifdef WIN32\r
+-\r
+-  NgLock :: NgLock (NgMutex & mut)\r
+-    : sl(&mut.cs)\r
+-  {\r
+-    ;\r
+-  }\r
+-\r
+-  void NgLock :: Lock ()\r
+-  {\r
+-    sl.Lock();\r
+-  }\r
+-  void NgLock :: UnLock ()\r
+-  {\r
+-    sl.Unlock();\r
+-  }\r
+-\r
+-\r
+-#else\r
+-\r
+-#endif\r
+-}\r
+-\r
+-*/\r
++/**************************************************************************/
++/* File:   parthreads.cpp                                                 */
++/* Author: Joachim Schoeberl                                              */
++/* Date:   01. Jun. 95                                                    */
++/**************************************************************************/
++
++
++#include <mystdlib.h>
++#include <myadt.hpp>
++
++/*
++
++namespace netgen
++{
++  using namespace netgen;
++
++#ifdef WIN32
++
++  NgLock :: NgLock (NgMutex & mut)
++    : sl(&mut.cs)
++  {
++    ;
++  }
++
++  void NgLock :: Lock ()
++  {
++    sl.Lock();
++  }
++  void NgLock :: UnLock ()
++  {
++    sl.Unlock();
++  }
++
++
++#else
++
++#endif
++}
++
++*/
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am
+--- netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am    2014-08-29 13:54:06.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am   2019-11-14 16:56:22.570447721 +0300
+@@ -4,16 +4,15 @@
+ METASOURCES = AUTO
+-lib_LTLIBRARIES = libgeom2d.la 
++noinst_LTLIBRARIES = libgeom2d.la 
+ if NGGUI
+-lib_LTLIBRARIES += libgeom2dvis.la 
++lib_LTLIBRARIES = libgeom2dvis.la 
+ endif
+ libgeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
+-libgeom2d_la_LIBADD =         $(top_builddir)/libsrc/meshing/libmesh.la
+ libgeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
+ libgeom2dvis_la_LIBADD = libgeom2d.la
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am
+--- netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am 2014-08-29 13:54:02.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am        2019-11-14 16:56:23.298427343 +0300
+@@ -2,14 +2,11 @@
+ AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface  $(MPI_INCLUDES) $(TCL_INCLUDES) -DOPENGL
+ METASOURCES = AUTO
+-lib_LTLIBRARIES = libinterface.la
++noinst_LTLIBRARIES = libinterface.la
+ libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
+       read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
+       writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
+       writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
+       wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp 
+-
+-libinterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
+-
+ # libinterface_la_LDFLAGS = -rdynamic
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeOpenFOAM15x.cpp netgen-5.3.1_SRC_modif/libsrc/interface/writeOpenFOAM15x.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/interface/writeOpenFOAM15x.cpp        2014-08-29 13:54:02.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/interface/writeOpenFOAM15x.cpp       2019-11-14 16:56:23.286427679 +0300
+@@ -1,811 +1,811 @@
+-/*! \file writeOpenFOAM15x.cpp\r
+-*  \brief Export Netgen Mesh in the OpenFOAM 1.5+ File format\r
+-*  \author Philippose Rajan\r
+-*  \date 25 October 2009\r
+-*\r
+-*  This function extends the export capabilities of\r
+-*  Netgen to include the OpenFOAM 1.5+ File Format.\r
+-*\r
+-*  The OpenFOAM 1.5+ mesh format consists of a set of 5 files \r
+-*  which together define the mesh points, faces, cells and \r
+-*  boundary conditions. \r
+-*\r
+-*  The files are:\r
+-*  1. points    -> A list of the point co-ordinates\r
+-*  2. faces     -> A list of the faces with format <n>(pnt_ind1 pnt_ind2 .... pnt_ind<n>)\r
+-*  3. owner     -> The owner cell of each face \r
+-*  4. neighbour -> The neighbour cell of each face\r
+-*  5. boundary  -> The set of boundaries with name, start face, and num. of faces\r
+-*\r
+-*  For a detailed description of the format, refer to the following link:\r
+-*  http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes\r
+-*\r
+-*/\r
+-\r
+-#include <mystdlib.h>\r
+-\r
+-#include <myadt.hpp>\r
+-#include <linalg.hpp>\r
+-#include <csg.hpp>\r
+-#include <meshing.hpp>\r
+-#include <sys/stat.h>\r
+-\r
+-\r
+-namespace netgen\r
+-{\r
+-#include "writeuser.hpp"\r
+-\r
+-   // Global arrays used to maintain the owner, neighbour and face lists \r
+-   // so that they are accessible across functions\r
+-   static Array<int> owner_facelist;\r
+-   static Array<int> owner_celllist;\r
+-   static Array<int> neighbour_celllist;\r
+-   static Array<int> surfelem_bclist;\r
+-   static Array<INDEX_2> surfelem_lists;\r
+-\r
+-\r
+-\r
+-   static void WriteOpenFOAM15xBanner(ostream * outfile)\r
+-   {\r
+-      static char FOAMversion[4] = "1.5";\r
+-      static char spaces[40];\r
+-\r
+-      memset(spaces, ' ', 40);\r
+-      spaces[38 - strlen(FOAMversion)] = '\0';\r
+-      \r
+-      *outfile << \r
+-              "/*--------------------------------*- C++ -*----------------------------------*\\\n";\r
+-\r
+-      *outfile <<\r
+-              "| =========                 |                                                 |\n"\r
+-              "| \\\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |\n"\r
+-              "|  \\\\    /   O peration     | Version:  " << FOAMversion << spaces << "|\n"\r
+-              "|   \\\\  /    A nd           | Web:      http://www.OpenFOAM.org               |\n"\r
+-              "|    \\\\/     M anipulation  |                                                 |\n"\r
+-              "\\*---------------------------------------------------------------------------*/\n";\r
+-\r
+-   }\r
+-\r
+-\r
+-\r
+-   static void WriteOpenFOAM15xDividerStart(ostream * outfile)\r
+-   {\r
+-      *outfile  <<\r
+-               "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //\n";\r
+-   }\r
+-\r
+-\r
+-\r
+-   static void WriteOpenFOAM15xDividerEnd(ostream * outfile)\r
+-   {\r
+-      *outfile <<\r
+-              "// ************************************************************************* //\n";\r
+-   }\r
+-\r
+-\r
+-\r
+-   static bool BuildOwnerNeighbourLists (const Mesh & mesh)\r
+-   {\r
+-      // Clear all the arrays\r
+-      owner_facelist.DeleteAll();\r
+-      owner_celllist.DeleteAll();\r
+-      neighbour_celllist.DeleteAll();\r
+-      surfelem_bclist.DeleteAll();\r
+-      surfelem_lists.DeleteAll();\r
+-\r
+-      const MeshTopology& meshtopo = mesh.GetTopology();\r
+-      \r
+-      // Update the mesh topology structures\r
+-      const_cast<MeshTopology&> (meshtopo).SetBuildEdges(true);\r
+-      const_cast<MeshTopology&> (meshtopo).SetBuildFaces(true);\r
+-      const_cast<MeshTopology&> (meshtopo).Update();\r
+-\r
+-      // Extract important mesh metrics\r
+-      int ne = mesh.GetNE();\r
+-      int nse = mesh.GetNSE();\r
+-      int totfaces = meshtopo.GetNFaces();\r
+-\r
+-      // Preset the size of the arrays to speed up future operations\r
+-      // Number of internal faces = total faces - num. of surface faces\r
+-      owner_facelist.SetSize(totfaces - nse);\r
+-      owner_celllist.SetSize(totfaces - nse);\r
+-      neighbour_celllist.SetSize(totfaces - nse);\r
+-      surfelem_bclist.SetSize(nse);\r
+-      surfelem_lists.SetSize(nse);\r
+-\r
+-      // Initialise arrays to zero if required\r
+-      neighbour_celllist = 0;\r
+-\r
+-      // Array used to keep track of Faces which have already been \r
+-      // processed and added to the Owner list... In addition, also the \r
+-      // location where the face appears in the Owner list is also stored \r
+-      // to speed up creation of the Neighbour list\r
+-      Array<int> ownerfaces(totfaces);\r
+-      ownerfaces = 0;\r
+-\r
+-      // Array to hold the set of local faces of each volume element \r
+-      // while running through the set of volume elements\r
+-      // NOTE: The size is set automatically by the Netgen topology function\r
+-      Array<int> locfaces;\r
+-\r
+-      // Secondary indices used to independently advance the owner \r
+-      // and boundary condition arrays within the main loop\r
+-      int owner_ind = 1;\r
+-      int bc_ind = 1;\r
+-\r
+-      // Loop through all the volume elements\r
+-      for(int elind = 1; elind <= ne; elind++)\r
+-      {\r
+-         // Extract the current volume element\r
+-      // const Element & el = mesh.VolumeElement(elind);\r
+-\r
+-         // Get the face numbers of the faces of the current volume element\r
+-         // The values returned are given a sign depending on the orientation \r
+-         // of the faces. This is used while writing the faces file, to \r
+-         // determine whether or not to invert the face triangle before writing \r
+-         // it to file\r
+-         meshtopo.GetElementFaces(elind,locfaces,true);\r
+-\r
+-         // Loop through the faces\r
+-         for(int i = 1; i <= locfaces.Size(); i++)\r
+-         {\r
+-            // The absolute value of a face number (because the faces \r
+-            // returned by the GetElementFaces function prepend it \r
+-            // with a sign depending on the face orientation)\r
+-            int absfacenr = abs(locfaces.Elem(i));\r
+-\r
+-            // If the face already exists in the owner list, add \r
+-            // the current cell into the neighbour list, in the \r
+-            // same location where the face appears in the owner list\r
+-            int owner_face = ownerfaces.Elem(absfacenr);\r
+-            if(owner_face)\r
+-            {\r
+-               neighbour_celllist.Elem(owner_face) = elind;\r
+-\r
+-               // From this point on, the code within this "if" block \r
+-               // basically sorts the order of the the Neighbour cells (along \r
+-               // with the faces list) in ascending order.\r
+-               // The approach used is..... to traverse the owner and neighbour cell lists\r
+-               // up and down, and sort the neighbour cells of a given owner cell \r
+-               // as the list evolves.\r
+-               // NOTE: A value of "zero" in the neighbour list implies that \r
+-               // the neighbour has not been found yet, so the "zero" locations need \r
+-               // to be skipped while sorting in ascending order\r
+-               int curr_owner = owner_celllist.Elem(owner_face);\r
+-\r
+-               int peek_loc = owner_face - 1;\r
+-               int new_loc = owner_face;\r
+-\r
+-               // Traversing upwards in the list\r
+-               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc >= 1))\r
+-               {\r
+-                  if((neighbour_celllist.Elem(peek_loc) != 0) \r
+-                     && (neighbour_celllist.Elem(new_loc) < neighbour_celllist.Elem(peek_loc)))\r
+-                  {\r
+-                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));\r
+-                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));\r
+-                     new_loc = peek_loc;\r
+-                  }\r
+-\r
+-                  peek_loc--;\r
+-               }\r
+-\r
+-               peek_loc = owner_face + 1;\r
+-\r
+-               // Traversing downwards in the list\r
+-               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc <= owner_ind))\r
+-               {\r
+-                  if((neighbour_celllist.Elem(peek_loc) != 0) \r
+-                     && (neighbour_celllist.Elem(new_loc) > neighbour_celllist.Elem(peek_loc)))\r
+-                  {\r
+-                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));\r
+-                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));\r
+-                     new_loc = peek_loc;\r
+-                  }\r
+-\r
+-                  peek_loc++;\r
+-               }\r
+-\r
+-               continue;\r
+-            }\r
+-\r
+-            // Check if the face is a surface element (boundary face)\r
+-            // if not, add the current volume element and the corresponding face into \r
+-            // the owner list\r
+-            int surfelem = meshtopo.GetFace2SurfaceElement(absfacenr);\r
+-            if(!surfelem)\r
+-            {\r
+-               // If it is a new face which has not been listed before, \r
+-               // add the current cell into the owner list, and save \r
+-               // the index location to be used later by the neighbour list\r
+-               owner_celllist.Elem(owner_ind) = elind;\r
+-               owner_facelist.Elem(owner_ind) = locfaces.Elem(i);\r
+-               // Update the array to indicate that the face is already processed\r
+-               ownerfaces.Elem(absfacenr) = owner_ind;\r
+-\r
+-               owner_ind++;\r
+-            }\r
+-            // If the face is a boundary face, extract the boundary condition number of the \r
+-            // face, and append that along with the face number and the current cell \r
+-            // into the various surface elements lists\r
+-            else\r
+-            {\r
+-               Element2d sel = mesh.SurfaceElement(surfelem);\r
+-               surfelem_bclist.Elem(bc_ind) = mesh.GetFaceDescriptor(sel.GetIndex()).BCProperty();\r
+-               surfelem_lists.Elem(bc_ind) = INDEX_2(locfaces.Elem(i),elind);\r
+-\r
+-               bc_ind++;\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-      // This correction is required in cases where the mesh has been "uniform refined".... for \r
+-      // some reason, the number of faces reported by Netgen is higher than the actual number \r
+-      // of faces in the mesh\r
+-      owner_facelist.SetSize(owner_ind-1);\r
+-      owner_celllist.SetSize(owner_ind-1);\r
+-      neighbour_celllist.SetSize(owner_ind-1);\r
+-\r
+-\r
+-      // Sort the list of surface elements in ascending order of boundary condition number\r
+-      // also sort the cell list in the same manner\r
+-      QuickSort(surfelem_bclist,surfelem_lists);\r
+-\r
+-/*    \r
+-      // Debugging output to a file \r
+-      ofstream dbg("OpenFOAMDebug.log");\r
+-\r
+-      dbg << " ------- Boundary List -------- \n";\r
+-\r
+-      for(int i = 1; i <= surfelem_bclist.Size(); i++)\r
+-      {\r
+-         dbg << "bc = " << surfelem_bclist.Elem(i) \r
+-              << " : face = " << surfelem_lists.Elem(i).I1()\r
+-              << " : cell = " << surfelem_lists.Elem(i).I2() << "\n";\r
+-      }\r
+-\r
+-      dbg << "\n ------- Owner / Face / Neighbour List ------- \n";\r
+-\r
+-      for(int i = 1; i <= owner_celllist.Size(); i++)\r
+-      {\r
+-         dbg << "Ind:" << i << " :: (" \r
+-              << owner_celllist.Elem(i) << " "\r
+-              << owner_facelist.Elem(i) << "  "\r
+-              << neighbour_celllist.Elem(i) << ")\n";\r
+-      }\r
+-\r
+-      dbg.close();\r
+-*/\r
+-      return(false);\r
+-   }\r
+-\r
+-\r
+-\r
+-   static void WriteNeighbourFile (ostream * outfile)\r
+-   {\r
+-      // Write the OpenFOAM standard banner and dividers, etc...\r
+-      WriteOpenFOAM15xBanner(outfile);\r
+-      *outfile << "FoamFile \n"\r
+-              << "{ \n"\r
+-              << "    version     2.0; \n"\r
+-              << "    format      ascii; \n"\r
+-              << "    class       labelList; \n"\r
+-              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
+-              << "    location    \"constant\\polyMesh\"; \n"\r
+-              << "    object      neighbour; \n"\r
+-              << "} \n";\r
+-      WriteOpenFOAM15xDividerStart(outfile);\r
+-\r
+-      *outfile << "\n\n";\r
+-\r
+-      int nneighbours = neighbour_celllist.Size();\r
+-\r
+-      *outfile << nneighbours << "\n";\r
+-\r
+-      *outfile << "(\n";\r
+-\r
+-      // Write the neighbour cells to file\r
+-      for(int i = 1; i <= neighbour_celllist.Size(); i++)\r
+-      {\r
+-         *outfile << neighbour_celllist.Elem(i) - 1 << "\n";\r
+-      }\r
+-      *outfile << ")\n\n";\r
+-      WriteOpenFOAM15xDividerEnd(outfile);\r
+-   }\r
+-\r
+-\r
+-\r
+-   static void WriteOwnerFile (ostream * outfile)\r
+-   {\r
+-      // Write the OpenFOAM standard banner and dividers, etc...\r
+-      WriteOpenFOAM15xBanner(outfile);\r
+-      *outfile << "FoamFile \n"\r
+-              << "{ \n"\r
+-              << "    version     2.0; \n"\r
+-              << "    format      ascii; \n"\r
+-              << "    class       labelList; \n"\r
+-              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
+-              << "    location    \"constant\\polyMesh\"; \n"\r
+-              << "    object      owner; \n"\r
+-              << "} \n";\r
+-      WriteOpenFOAM15xDividerStart(outfile);\r
+-\r
+-      *outfile << "\n\n";\r
+-\r
+-      int nowners = owner_celllist.Size() + surfelem_lists.Size();\r
+-\r
+-      *outfile << nowners << "\n";\r
+-\r
+-      *outfile << "(\n";\r
+-\r
+-      // Write the owners of the internal cells to file\r
+-      for(int i = 1; i <= owner_celllist.Size(); i++)\r
+-      {\r
+-         *outfile << owner_celllist.Elem(i) - 1 << "\n";\r
+-      }\r
+-\r
+-      // Write the owners of the boundary cells to file\r
+-      // (Written in order of ascending boundary condition numbers)\r
+-      for(int i = 1; i <= surfelem_lists.Size(); i++)\r
+-      {\r
+-         *outfile << surfelem_lists.Elem(i).I2() - 1 << "\n";\r
+-      }\r
+-      *outfile << ")\n\n";\r
+-      WriteOpenFOAM15xDividerEnd(outfile);\r
+-   }\r
+-\r
+-\r
+-\r
+-   static void WriteFacesFile (ostream * outfile, const Mesh & mesh)\r
+-   {\r
+-      const MeshTopology& meshtopo = mesh.GetTopology();\r
+-\r
+-      // Write the OpenFOAM standard banner and dividers, etc...\r
+-      WriteOpenFOAM15xBanner(outfile);\r
+-      *outfile << "FoamFile \n"\r
+-              << "{ \n"\r
+-              << "    version     2.0; \n"\r
+-              << "    format      ascii; \n"\r
+-              << "    class       faceList; \n"\r
+-              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
+-              << "    location    \"constant\\polyMesh\"; \n"\r
+-              << "    object      faces; \n"\r
+-              << "} \n";\r
+-      WriteOpenFOAM15xDividerStart(outfile);\r
+-\r
+-      *outfile << "\n\n";\r
+-\r
+-      int nfaces = owner_facelist.Size() + surfelem_lists.Size();\r
+-\r
+-      *outfile << nfaces << "\n";\r
+-\r
+-      *outfile << "(\n";\r
+-\r
+-      // Array to hold the indices of the points of each face to \r
+-      // flip if required \r
+-      Array<int> facepnts;\r
+-\r
+-      // Write the faces in the order specified in the owners lists of the \r
+-      // internal cells and the boundary cells\r
+-      for(int i = 1; i <= owner_facelist.Size(); i++)\r
+-      {\r
+-         int face_w_orientation = owner_facelist.Elem(i);\r
+-         int facenr = abs(face_w_orientation);\r
+-\r
+-         meshtopo.GetFaceVertices(facenr,facepnts);\r
+-\r
+-         // Get the orientation of the face, and invert it if required\r
+-         // Since the faces already have the orientation "embedded" into \r
+-         // them by means of the prepended sign, only this needs to be \r
+-         // checked for...\r
+-         if(face_w_orientation > 0)\r
+-         {\r
+-            int tmppnts = 0;\r
+-\r
+-            if(facepnts.Size() == 4)\r
+-            {\r
+-               tmppnts = facepnts.Elem(1);\r
+-               facepnts.Elem(1) = facepnts.Elem(2);\r
+-               facepnts.Elem(2) = tmppnts;\r
+-               \r
+-               tmppnts = facepnts.Elem(3);\r
+-               facepnts.Elem(3) = facepnts.Elem(4);\r
+-               facepnts.Elem(4) = tmppnts;\r
+-            }\r
+-            else if(facepnts.Size() == 3)\r
+-            {\r
+-               tmppnts = facepnts.Elem(1);\r
+-               facepnts.Elem(1) = facepnts.Elem(3);\r
+-               facepnts.Elem(3) = tmppnts;\r
+-            }\r
+-         }\r
+-\r
+-         *outfile << facepnts.Size();\r
+-         *outfile << "(";\r
+-         for(int j = 1; j <= facepnts.Size(); j++)\r
+-         {\r
+-            *outfile << facepnts.Elem(j)-1;\r
+-            if(j != facepnts.Size()) *outfile << " ";\r
+-         }\r
+-         *outfile << ")\n";\r
+-      }\r
+-\r
+-      // Now append the faces of the surface elements (written in \r
+-      // ascending order of boundary condition number) also into \r
+-      // the faces file\r
+-      for(int i = 1; i <= surfelem_lists.Size(); i++)\r
+-      {\r
+-         int face_w_orientation = surfelem_lists.Elem(i).I1();\r
+-         int facenr = abs(face_w_orientation);\r
+-\r
+-         meshtopo.GetFaceVertices(facenr,facepnts);\r
+-\r
+-         // Get the orientation of the face, and invert it if required\r
+-         if(face_w_orientation > 0)\r
+-         {\r
+-            int tmppnts = 0;\r
+-\r
+-            if(facepnts.Size() == 4)\r
+-            {\r
+-               tmppnts = facepnts.Elem(1);\r
+-               facepnts.Elem(1) = facepnts.Elem(2);\r
+-               facepnts.Elem(2) = tmppnts;\r
+-               \r
+-               tmppnts = facepnts.Elem(3);\r
+-               facepnts.Elem(3) = facepnts.Elem(4);\r
+-               facepnts.Elem(4) = tmppnts;\r
+-            }\r
+-            else if(facepnts.Size() == 3)\r
+-            {\r
+-               tmppnts = facepnts.Elem(1);\r
+-               facepnts.Elem(1) = facepnts.Elem(3);\r
+-               facepnts.Elem(3) = tmppnts;\r
+-            }\r
+-         }\r
+-\r
+-         *outfile << facepnts.Size();\r
+-         *outfile << "(";\r
+-         for(int j = 1; j <= facepnts.Size(); j++)\r
+-         {\r
+-            *outfile << facepnts.Elem(j)-1;\r
+-            if(j != facepnts.Size()) *outfile << " ";\r
+-         }\r
+-         *outfile << ")\n";\r
+-      }\r
+-\r
+-      *outfile << ")\n\n";\r
+-      WriteOpenFOAM15xDividerEnd(outfile);\r
+-   }\r
+-\r
+-\r
+- \r
+-   static void WritePointsFile (ostream * outfile, const Mesh & mesh)\r
+-   {\r
+-      int np = mesh.GetNP();\r
+-\r
+-      // Write the OpenFOAM standard banner and dividers, etc...\r
+-      WriteOpenFOAM15xBanner(outfile);\r
+-      *outfile << "FoamFile \n"\r
+-              << "{ \n"\r
+-              << "    version     2.0; \n"\r
+-              << "    format      ascii; \n"\r
+-              << "    class       vectorField; \n"\r
+-              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
+-              << "    location    \"constant\\polyMesh\"; \n"\r
+-              << "    object      points; \n"\r
+-              << "} \n";\r
+-      WriteOpenFOAM15xDividerStart(outfile);\r
+-\r
+-      *outfile << "\n\n";\r
+-\r
+-      // Number of points in the following list\r
+-      *outfile << np << "\n";\r
+-\r
+-      outfile->precision(6);\r
+-      outfile->setf (ios::fixed, ios::floatfield);\r
+-      outfile->setf (ios::showpoint);\r
+-\r
+-      // Coordinate list starts here\r
+-      *outfile << "(\n";\r
+-\r
+-      for(int i = 1; i <= np; i++)\r
+-      {\r
+-         const Point3d & p = mesh.Point(i);\r
+-\r
+-         // Write coordinates to file\r
+-         *outfile << "(";\r
+-         *outfile << p.X() << " ";\r
+-         *outfile << p.Y() << " ";\r
+-         *outfile << p.Z();\r
+-         *outfile << ")\n";\r
+-      }\r
+-      *outfile << ")\n\n";\r
+-      WriteOpenFOAM15xDividerEnd(outfile);\r
+-   }\r
+-\r
+-\r
+-\r
+-   static void WriteBoundaryFile (ostream * outfile)\r
+-   {\r
+-      // Write the OpenFOAM standard banner and dividers, etc...\r
+-      WriteOpenFOAM15xBanner(outfile);\r
+-      *outfile << "FoamFile \n"\r
+-              << "{ \n"\r
+-              << "    version     2.0; \n"\r
+-              << "    format      ascii; \n"\r
+-              << "    class       polyBoundaryMesh; \n"\r
+-              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
+-              << "    location    \"constant\\polyMesh\"; \n"\r
+-              << "    object      boundary; \n"\r
+-              << "} \n";\r
+-      WriteOpenFOAM15xDividerStart(outfile);\r
+-\r
+-      *outfile << "\n";\r
+-\r
+-\r
+-      Array<INDEX_3> bcarray;\r
+-      int ind = 1;\r
+-\r
+-      // Since the boundary conditions are already sorted in ascending \r
+-      // order, the last element will give the maximum number of possible \r
+-      // boundary condition entries\r
+-      int bcmax = surfelem_bclist.Elem(surfelem_bclist.Size());\r
+-\r
+-      bcarray.SetSize(bcmax+1);\r
+-\r
+-      bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(1),1,0);\r
+-            \r
+-      for(int i = 2; i <= surfelem_bclist.Size(); i++)\r
+-      {\r
+-         if(surfelem_bclist.Elem(i) == bcarray.Elem(ind).I1())\r
+-         {\r
+-            bcarray.Elem(ind).I2() = bcarray.Elem(ind).I2()+1;\r
+-         }\r
+-         else\r
+-         {\r
+-            ind++;\r
+-            bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(i),1,i-1);\r
+-         }\r
+-      }\r
+-\r
+-      bcarray.SetSize(ind);\r
+-\r
+-      *outfile << bcarray.Size() << "\n";\r
+-      *outfile << "(\n";\r
+-\r
+-      int startface = 0;\r
+-\r
+-      for(int i = 1; i <= bcarray.Size(); i++)\r
+-      {\r
+-         startface = owner_celllist.Size() + bcarray.Elem(i).I3();\r
+-\r
+-         *outfile << "    patch" << bcarray.Elem(i).I1() << "\n"\r
+-                 << "    {\n"\r
+-                 << "        type            patch;\n"\r
+-                 << "        physicalType    patch;\n"\r
+-                 << "        nFaces          " << bcarray.Elem(i).I2() << ";\n"\r
+-                 << "        startFace       " << startface << ";\n"\r
+-                 << "    }\n";\r
+-      }\r
+-\r
+-      *outfile << ")\n\n";\r
+-      WriteOpenFOAM15xDividerEnd(outfile);\r
+-   }\r
+-\r
+-\r
+-\r
+-   void WriteOpenFOAM15xFormat (const Mesh & mesh, const string & casename, const bool compressed)\r
+-   {\r
+-      bool error = false;\r
+-      char casefiles[256];\r
+-\r
+-      // Make sure that the mesh data has been updated\r
+-      const_cast<Mesh&> (mesh).Compress();\r
+-      const_cast<Mesh&> (mesh).CalcSurfacesOfNode();\r
+-      const_cast<Mesh&> (mesh).RebuildSurfaceElementLists();\r
+-      const_cast<Mesh&> (mesh).BuildElementSearchTree();\r
+-\r
+-\r
+-      int np = mesh.GetNP();\r
+-      int nse = mesh.GetNSE();\r
+-      int ne = mesh.GetNE();\r
+-\r
+-      cout << "Write OpenFOAM 1.5+ Mesh Files....\n";\r
+-\r
+-      // Abort if there are no points, surface elements or volume elements\r
+-      if((np <= 0) || (ne <= 0) || (nse <= 0))\r
+-      {\r
+-         cout << "Export Error: Invalid mesh.... Aborting!\n";\r
+-         return;\r
+-      }\r
+-\r
+-      // OpenFOAM only supports linear meshes!\r
+-      if(mparam.secondorder || mesh.GetCurvedElements().IsHighOrder())\r
+-      {\r
+-         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";\r
+-         return;\r
+-      }\r
+-\r
+-      if(( (mesh.SurfaceElement(nse/2).GetType() != TRIG) \r
+-         && (mesh.SurfaceElement(nse/2).GetType() != QUAD) )\r
+-         || (mesh.VolumeElement(ne/2).GetType() == TET10)\r
+-         || (mesh.VolumeElement(ne/2).GetType() == PRISM12))\r
+-      {\r
+-         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";\r
+-         return;\r
+-      }\r
+-\r
+-\r
+-      cout << "Writing OpenFOAM 1.5+ Mesh files to case: " << casename << "\n";\r
+-\r
+-      // Create the case directory if it does not already exist\r
+-      // NOTE: This needs to be improved for the Linux variant....!!!\r
+-   #ifdef WIN32\r
+-      char casedir[256];\r
+-      sprintf(casedir, "mkdir %s\\constant\\polyMesh", casename.c_str());\r
+-      system(casedir);\r
+-   #else\r
+-      char casedir[256];\r
+-      mkdir(casename.c_str(), S_IRWXU|S_IRWXG);\r
+-      sprintf(casedir, "%s/constant", casename.c_str());\r
+-      mkdir(casedir, S_IRWXU|S_IRWXG);\r
+-      sprintf(casedir, "%s/constant/polyMesh", casename.c_str());\r
+-      mkdir(casedir, S_IRWXU|S_IRWXG);\r
+-   #endif\r
+-\r
+-      // Open handles to the five required mesh files\r
+-      // points\r
+-      // faces\r
+-      // owner\r
+-      // neighbour\r
+-      // boundary\r
+-        ostream *outfile_pnts;\r
+-        ostream *outfile_faces;\r
+-        ostream *outfile_own;\r
+-        ostream *outfile_nei;\r
+-        ostream *outfile_bnd;\r
+-\r
+-        if(compressed)\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/points.gz", casename.c_str());\r
+-                outfile_pnts = new ogzstream(casefiles);\r
+-        }\r
+-        else\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/points", casename.c_str());\r
+-                outfile_pnts = new ofstream(casefiles);\r
+-        }\r
+-\r
+-        if(compressed)\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/faces.gz", casename.c_str());\r
+-                outfile_faces = new ogzstream(casefiles);\r
+-        }\r
+-        else\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/faces", casename.c_str());\r
+-                outfile_faces = new ofstream(casefiles);\r
+-        }\r
+-\r
+-        if(compressed)\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/owner.gz", casename.c_str()); \r
+-                outfile_own = new ogzstream(casefiles);\r
+-        }\r
+-        else\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/owner", casename.c_str()); \r
+-                outfile_own = new ofstream(casefiles);\r
+-        }\r
+-\r
+-        if(compressed)\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/neighbour.gz", casename.c_str());\r
+-                outfile_nei = new ogzstream(casefiles);\r
+-        }\r
+-        else\r
+-        {\r
+-                sprintf(casefiles, "%s/constant/polyMesh/neighbour", casename.c_str());\r
+-                outfile_nei = new ofstream(casefiles);\r
+-        }\r
+-\r
+-        // Note... the boundary file is not compressed\r
+-      sprintf(casefiles, "%s/constant/polyMesh/boundary", casename.c_str()); \r
+-      outfile_bnd = new ofstream(casefiles);\r
+-\r
+-      ResetTime();\r
+-\r
+-      // Build the owner, neighbour, faces and boundary lists \r
+-      // from the Netgen mesh\r
+-      cout << "\nBuilding Owner, Neighbour and Face Lists: ";\r
+-\r
+-      error = BuildOwnerNeighbourLists(mesh);\r
+-\r
+-      cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
+-\r
+-\r
+-      // Write the "owner" file\r
+-      if(outfile_own->good() && !error)\r
+-      {\r
+-         cout << "Writing the owner file: ";\r
+-         WriteOwnerFile(outfile_own);\r
+-         delete outfile_own;\r
+-         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
+-      }\r
+-      else\r
+-      {\r
+-         cout << "Export Error: Error creating file: owner.... Aborting\n";\r
+-         error = true;\r
+-      }\r
+-\r
+-\r
+-      // Write the "neighbour" file\r
+-      if(outfile_nei->good() && !error)\r
+-      {\r
+-         cout << "Writing the neighbour file: ";\r
+-         WriteNeighbourFile(outfile_nei);\r
+-         delete outfile_nei;\r
+-         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
+-      }\r
+-      else\r
+-      {\r
+-         cout << "Export Error: Error creating file: neighbour.... Aborting\n";\r
+-         error = true;\r
+-      }\r
+-\r
+-\r
+-      // Write the "faces" file\r
+-      if(outfile_faces->good() && !error)\r
+-      {\r
+-         cout << "Writing the faces file: ";\r
+-         WriteFacesFile(outfile_faces, mesh);\r
+-         delete outfile_faces;\r
+-         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
+-      }\r
+-      else\r
+-      {\r
+-         cout << "Export Error: Error creating file: faces.... Aborting\n";\r
+-         error = true;\r
+-      }\r
+-\r
+-\r
+-      // Write the "points" file\r
+-      if(outfile_pnts->good() && !error)\r
+-      {\r
+-         cout << "Writing the points file: ";\r
+-         WritePointsFile(outfile_pnts,mesh);\r
+-         delete outfile_pnts;\r
+-         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
+-      }\r
+-      else\r
+-      {\r
+-         cout << "Export Error: Error creating file: points.... Aborting\n";\r
+-         error = true;\r
+-      }\r
+-\r
+-\r
+-      // Write the "boundary" file\r
+-      if(outfile_bnd->good() && !error)\r
+-      {\r
+-         cout << "Writing the boundary file: ";\r
+-         WriteBoundaryFile(outfile_bnd);\r
+-         delete outfile_bnd;\r
+-         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
+-      }\r
+-      else\r
+-      {\r
+-         cout << "Export Error: Error creating file: boundary.... Aborting\n";\r
+-         error = true;\r
+-      }\r
+-\r
+-      if(!error)\r
+-      {\r
+-         cout << "OpenFOAM 1.5+ Export successfully completed (Time elapsed = " << GetTime() << " sec) !\n";\r
+-      }\r
+-      else\r
+-      {\r
+-         cout << "Error in OpenFOAM 1.5+ Export.... Aborted!\n";\r
+-      }\r
+-   }\r
+-}\r
+-\r
++/*! \file writeOpenFOAM15x.cpp
++*  \brief Export Netgen Mesh in the OpenFOAM 1.5+ File format
++*  \author Philippose Rajan
++*  \date 25 October 2009
++*
++*  This function extends the export capabilities of
++*  Netgen to include the OpenFOAM 1.5+ File Format.
++*
++*  The OpenFOAM 1.5+ mesh format consists of a set of 5 files 
++*  which together define the mesh points, faces, cells and 
++*  boundary conditions. 
++*
++*  The files are:
++*  1. points    -> A list of the point co-ordinates
++*  2. faces     -> A list of the faces with format <n>(pnt_ind1 pnt_ind2 .... pnt_ind<n>)
++*  3. owner     -> The owner cell of each face 
++*  4. neighbour -> The neighbour cell of each face
++*  5. boundary  -> The set of boundaries with name, start face, and num. of faces
++*
++*  For a detailed description of the format, refer to the following link:
++*  http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes
++*
++*/
++
++#include <mystdlib.h>
++
++#include <myadt.hpp>
++#include <linalg.hpp>
++#include <csg.hpp>
++#include <meshing.hpp>
++#include <sys/stat.h>
++
++
++namespace netgen
++{
++#include "writeuser.hpp"
++
++   // Global arrays used to maintain the owner, neighbour and face lists 
++   // so that they are accessible across functions
++   static Array<int> owner_facelist;
++   static Array<int> owner_celllist;
++   static Array<int> neighbour_celllist;
++   static Array<int> surfelem_bclist;
++   static Array<INDEX_2> surfelem_lists;
++
++
++
++   static void WriteOpenFOAM15xBanner(ostream * outfile)
++   {
++      static char FOAMversion[4] = "1.5";
++      static char spaces[40];
++
++      memset(spaces, ' ', 40);
++      spaces[38 - strlen(FOAMversion)] = '\0';
++      
++      *outfile << 
++              "/*--------------------------------*- C++ -*----------------------------------*\\\n";
++
++      *outfile <<
++              "| =========                 |                                                 |\n"
++              "| \\\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |\n"
++              "|  \\\\    /   O peration     | Version:  " << FOAMversion << spaces << "|\n"
++              "|   \\\\  /    A nd           | Web:      http://www.OpenFOAM.org               |\n"
++              "|    \\\\/     M anipulation  |                                                 |\n"
++              "\\*---------------------------------------------------------------------------*/\n";
++
++   }
++
++
++
++   static void WriteOpenFOAM15xDividerStart(ostream * outfile)
++   {
++      *outfile  <<
++               "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //\n";
++   }
++
++
++
++   static void WriteOpenFOAM15xDividerEnd(ostream * outfile)
++   {
++      *outfile <<
++              "// ************************************************************************* //\n";
++   }
++
++
++
++   static bool BuildOwnerNeighbourLists (const Mesh & mesh)
++   {
++      // Clear all the arrays
++      owner_facelist.DeleteAll();
++      owner_celllist.DeleteAll();
++      neighbour_celllist.DeleteAll();
++      surfelem_bclist.DeleteAll();
++      surfelem_lists.DeleteAll();
++
++      const MeshTopology& meshtopo = mesh.GetTopology();
++      
++      // Update the mesh topology structures
++      const_cast<MeshTopology&> (meshtopo).SetBuildEdges(true);
++      const_cast<MeshTopology&> (meshtopo).SetBuildFaces(true);
++      const_cast<MeshTopology&> (meshtopo).Update();
++
++      // Extract important mesh metrics
++      int ne = mesh.GetNE();
++      int nse = mesh.GetNSE();
++      int totfaces = meshtopo.GetNFaces();
++
++      // Preset the size of the arrays to speed up future operations
++      // Number of internal faces = total faces - num. of surface faces
++      owner_facelist.SetSize(totfaces - nse);
++      owner_celllist.SetSize(totfaces - nse);
++      neighbour_celllist.SetSize(totfaces - nse);
++      surfelem_bclist.SetSize(nse);
++      surfelem_lists.SetSize(nse);
++
++      // Initialise arrays to zero if required
++      neighbour_celllist = 0;
++
++      // Array used to keep track of Faces which have already been 
++      // processed and added to the Owner list... In addition, also the 
++      // location where the face appears in the Owner list is also stored 
++      // to speed up creation of the Neighbour list
++      Array<int> ownerfaces(totfaces);
++      ownerfaces = 0;
++
++      // Array to hold the set of local faces of each volume element 
++      // while running through the set of volume elements
++      // NOTE: The size is set automatically by the Netgen topology function
++      Array<int> locfaces;
++
++      // Secondary indices used to independently advance the owner 
++      // and boundary condition arrays within the main loop
++      int owner_ind = 1;
++      int bc_ind = 1;
++
++      // Loop through all the volume elements
++      for(int elind = 1; elind <= ne; elind++)
++      {
++         // Extract the current volume element
++      // const Element & el = mesh.VolumeElement(elind);
++
++         // Get the face numbers of the faces of the current volume element
++         // The values returned are given a sign depending on the orientation 
++         // of the faces. This is used while writing the faces file, to 
++         // determine whether or not to invert the face triangle before writing 
++         // it to file
++         meshtopo.GetElementFaces(elind,locfaces,true);
++
++         // Loop through the faces
++         for(int i = 1; i <= locfaces.Size(); i++)
++         {
++            // The absolute value of a face number (because the faces 
++            // returned by the GetElementFaces function prepend it 
++            // with a sign depending on the face orientation)
++            int absfacenr = abs(locfaces.Elem(i));
++
++            // If the face already exists in the owner list, add 
++            // the current cell into the neighbour list, in the 
++            // same location where the face appears in the owner list
++            int owner_face = ownerfaces.Elem(absfacenr);
++            if(owner_face)
++            {
++               neighbour_celllist.Elem(owner_face) = elind;
++
++               // From this point on, the code within this "if" block 
++               // basically sorts the order of the the Neighbour cells (along 
++               // with the faces list) in ascending order.
++               // The approach used is..... to traverse the owner and neighbour cell lists
++               // up and down, and sort the neighbour cells of a given owner cell 
++               // as the list evolves.
++               // NOTE: A value of "zero" in the neighbour list implies that 
++               // the neighbour has not been found yet, so the "zero" locations need 
++               // to be skipped while sorting in ascending order
++               int curr_owner = owner_celllist.Elem(owner_face);
++
++               int peek_loc = owner_face - 1;
++               int new_loc = owner_face;
++
++               // Traversing upwards in the list
++               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc >= 1))
++               {
++                  if((neighbour_celllist.Elem(peek_loc) != 0) 
++                     && (neighbour_celllist.Elem(new_loc) < neighbour_celllist.Elem(peek_loc)))
++                  {
++                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
++                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
++                     new_loc = peek_loc;
++                  }
++
++                  peek_loc--;
++               }
++
++               peek_loc = owner_face + 1;
++
++               // Traversing downwards in the list
++               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc <= owner_ind))
++               {
++                  if((neighbour_celllist.Elem(peek_loc) != 0) 
++                     && (neighbour_celllist.Elem(new_loc) > neighbour_celllist.Elem(peek_loc)))
++                  {
++                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
++                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
++                     new_loc = peek_loc;
++                  }
++
++                  peek_loc++;
++               }
++
++               continue;
++            }
++
++            // Check if the face is a surface element (boundary face)
++            // if not, add the current volume element and the corresponding face into 
++            // the owner list
++            int surfelem = meshtopo.GetFace2SurfaceElement(absfacenr);
++            if(!surfelem)
++            {
++               // If it is a new face which has not been listed before, 
++               // add the current cell into the owner list, and save 
++               // the index location to be used later by the neighbour list
++               owner_celllist.Elem(owner_ind) = elind;
++               owner_facelist.Elem(owner_ind) = locfaces.Elem(i);
++               // Update the array to indicate that the face is already processed
++               ownerfaces.Elem(absfacenr) = owner_ind;
++
++               owner_ind++;
++            }
++            // If the face is a boundary face, extract the boundary condition number of the 
++            // face, and append that along with the face number and the current cell 
++            // into the various surface elements lists
++            else
++            {
++               Element2d sel = mesh.SurfaceElement(surfelem);
++               surfelem_bclist.Elem(bc_ind) = mesh.GetFaceDescriptor(sel.GetIndex()).BCProperty();
++               surfelem_lists.Elem(bc_ind) = INDEX_2(locfaces.Elem(i),elind);
++
++               bc_ind++;
++            }
++         }
++      }
++
++      // This correction is required in cases where the mesh has been "uniform refined".... for 
++      // some reason, the number of faces reported by Netgen is higher than the actual number 
++      // of faces in the mesh
++      owner_facelist.SetSize(owner_ind-1);
++      owner_celllist.SetSize(owner_ind-1);
++      neighbour_celllist.SetSize(owner_ind-1);
++
++
++      // Sort the list of surface elements in ascending order of boundary condition number
++      // also sort the cell list in the same manner
++      QuickSort(surfelem_bclist,surfelem_lists);
++
++/*    
++      // Debugging output to a file 
++      ofstream dbg("OpenFOAMDebug.log");
++
++      dbg << " ------- Boundary List -------- \n";
++
++      for(int i = 1; i <= surfelem_bclist.Size(); i++)
++      {
++         dbg << "bc = " << surfelem_bclist.Elem(i) 
++              << " : face = " << surfelem_lists.Elem(i).I1()
++              << " : cell = " << surfelem_lists.Elem(i).I2() << "\n";
++      }
++
++      dbg << "\n ------- Owner / Face / Neighbour List ------- \n";
++
++      for(int i = 1; i <= owner_celllist.Size(); i++)
++      {
++         dbg << "Ind:" << i << " :: (" 
++              << owner_celllist.Elem(i) << " "
++              << owner_facelist.Elem(i) << "  "
++              << neighbour_celllist.Elem(i) << ")\n";
++      }
++
++      dbg.close();
++*/
++      return(false);
++   }
++
++
++
++   static void WriteNeighbourFile (ostream * outfile)
++   {
++      // Write the OpenFOAM standard banner and dividers, etc...
++      WriteOpenFOAM15xBanner(outfile);
++      *outfile << "FoamFile \n"
++              << "{ \n"
++              << "    version     2.0; \n"
++              << "    format      ascii; \n"
++              << "    class       labelList; \n"
++              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
++              << "    location    \"constant\\polyMesh\"; \n"
++              << "    object      neighbour; \n"
++              << "} \n";
++      WriteOpenFOAM15xDividerStart(outfile);
++
++      *outfile << "\n\n";
++
++      int nneighbours = neighbour_celllist.Size();
++
++      *outfile << nneighbours << "\n";
++
++      *outfile << "(\n";
++
++      // Write the neighbour cells to file
++      for(int i = 1; i <= neighbour_celllist.Size(); i++)
++      {
++         *outfile << neighbour_celllist.Elem(i) - 1 << "\n";
++      }
++      *outfile << ")\n\n";
++      WriteOpenFOAM15xDividerEnd(outfile);
++   }
++
++
++
++   static void WriteOwnerFile (ostream * outfile)
++   {
++      // Write the OpenFOAM standard banner and dividers, etc...
++      WriteOpenFOAM15xBanner(outfile);
++      *outfile << "FoamFile \n"
++              << "{ \n"
++              << "    version     2.0; \n"
++              << "    format      ascii; \n"
++              << "    class       labelList; \n"
++              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
++              << "    location    \"constant\\polyMesh\"; \n"
++              << "    object      owner; \n"
++              << "} \n";
++      WriteOpenFOAM15xDividerStart(outfile);
++
++      *outfile << "\n\n";
++
++      int nowners = owner_celllist.Size() + surfelem_lists.Size();
++
++      *outfile << nowners << "\n";
++
++      *outfile << "(\n";
++
++      // Write the owners of the internal cells to file
++      for(int i = 1; i <= owner_celllist.Size(); i++)
++      {
++         *outfile << owner_celllist.Elem(i) - 1 << "\n";
++      }
++
++      // Write the owners of the boundary cells to file
++      // (Written in order of ascending boundary condition numbers)
++      for(int i = 1; i <= surfelem_lists.Size(); i++)
++      {
++         *outfile << surfelem_lists.Elem(i).I2() - 1 << "\n";
++      }
++      *outfile << ")\n\n";
++      WriteOpenFOAM15xDividerEnd(outfile);
++   }
++
++
++
++   static void WriteFacesFile (ostream * outfile, const Mesh & mesh)
++   {
++      const MeshTopology& meshtopo = mesh.GetTopology();
++
++      // Write the OpenFOAM standard banner and dividers, etc...
++      WriteOpenFOAM15xBanner(outfile);
++      *outfile << "FoamFile \n"
++              << "{ \n"
++              << "    version     2.0; \n"
++              << "    format      ascii; \n"
++              << "    class       faceList; \n"
++              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
++              << "    location    \"constant\\polyMesh\"; \n"
++              << "    object      faces; \n"
++              << "} \n";
++      WriteOpenFOAM15xDividerStart(outfile);
++
++      *outfile << "\n\n";
++
++      int nfaces = owner_facelist.Size() + surfelem_lists.Size();
++
++      *outfile << nfaces << "\n";
++
++      *outfile << "(\n";
++
++      // Array to hold the indices of the points of each face to 
++      // flip if required 
++      Array<int> facepnts;
++
++      // Write the faces in the order specified in the owners lists of the 
++      // internal cells and the boundary cells
++      for(int i = 1; i <= owner_facelist.Size(); i++)
++      {
++         int face_w_orientation = owner_facelist.Elem(i);
++         int facenr = abs(face_w_orientation);
++
++         meshtopo.GetFaceVertices(facenr,facepnts);
++
++         // Get the orientation of the face, and invert it if required
++         // Since the faces already have the orientation "embedded" into 
++         // them by means of the prepended sign, only this needs to be 
++         // checked for...
++         if(face_w_orientation > 0)
++         {
++            int tmppnts = 0;
++
++            if(facepnts.Size() == 4)
++            {
++               tmppnts = facepnts.Elem(1);
++               facepnts.Elem(1) = facepnts.Elem(2);
++               facepnts.Elem(2) = tmppnts;
++               
++               tmppnts = facepnts.Elem(3);
++               facepnts.Elem(3) = facepnts.Elem(4);
++               facepnts.Elem(4) = tmppnts;
++            }
++            else if(facepnts.Size() == 3)
++            {
++               tmppnts = facepnts.Elem(1);
++               facepnts.Elem(1) = facepnts.Elem(3);
++               facepnts.Elem(3) = tmppnts;
++            }
++         }
++
++         *outfile << facepnts.Size();
++         *outfile << "(";
++         for(int j = 1; j <= facepnts.Size(); j++)
++         {
++            *outfile << facepnts.Elem(j)-1;
++            if(j != facepnts.Size()) *outfile << " ";
++         }
++         *outfile << ")\n";
++      }
++
++      // Now append the faces of the surface elements (written in 
++      // ascending order of boundary condition number) also into 
++      // the faces file
++      for(int i = 1; i <= surfelem_lists.Size(); i++)
++      {
++         int face_w_orientation = surfelem_lists.Elem(i).I1();
++         int facenr = abs(face_w_orientation);
++
++         meshtopo.GetFaceVertices(facenr,facepnts);
++
++         // Get the orientation of the face, and invert it if required
++         if(face_w_orientation > 0)
++         {
++            int tmppnts = 0;
++
++            if(facepnts.Size() == 4)
++            {
++               tmppnts = facepnts.Elem(1);
++               facepnts.Elem(1) = facepnts.Elem(2);
++               facepnts.Elem(2) = tmppnts;
++               
++               tmppnts = facepnts.Elem(3);
++               facepnts.Elem(3) = facepnts.Elem(4);
++               facepnts.Elem(4) = tmppnts;
++            }
++            else if(facepnts.Size() == 3)
++            {
++               tmppnts = facepnts.Elem(1);
++               facepnts.Elem(1) = facepnts.Elem(3);
++               facepnts.Elem(3) = tmppnts;
++            }
++         }
++
++         *outfile << facepnts.Size();
++         *outfile << "(";
++         for(int j = 1; j <= facepnts.Size(); j++)
++         {
++            *outfile << facepnts.Elem(j)-1;
++            if(j != facepnts.Size()) *outfile << " ";
++         }
++         *outfile << ")\n";
++      }
++
++      *outfile << ")\n\n";
++      WriteOpenFOAM15xDividerEnd(outfile);
++   }
++
++
++ 
++   static void WritePointsFile (ostream * outfile, const Mesh & mesh)
++   {
++      int np = mesh.GetNP();
++
++      // Write the OpenFOAM standard banner and dividers, etc...
++      WriteOpenFOAM15xBanner(outfile);
++      *outfile << "FoamFile \n"
++              << "{ \n"
++              << "    version     2.0; \n"
++              << "    format      ascii; \n"
++              << "    class       vectorField; \n"
++              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
++              << "    location    \"constant\\polyMesh\"; \n"
++              << "    object      points; \n"
++              << "} \n";
++      WriteOpenFOAM15xDividerStart(outfile);
++
++      *outfile << "\n\n";
++
++      // Number of points in the following list
++      *outfile << np << "\n";
++
++      outfile->precision(6);
++      outfile->setf (ios::fixed, ios::floatfield);
++      outfile->setf (ios::showpoint);
++
++      // Coordinate list starts here
++      *outfile << "(\n";
++
++      for(int i = 1; i <= np; i++)
++      {
++         const Point3d & p = mesh.Point(i);
++
++         // Write coordinates to file
++         *outfile << "(";
++         *outfile << p.X() << " ";
++         *outfile << p.Y() << " ";
++         *outfile << p.Z();
++         *outfile << ")\n";
++      }
++      *outfile << ")\n\n";
++      WriteOpenFOAM15xDividerEnd(outfile);
++   }
++
++
++
++   static void WriteBoundaryFile (ostream * outfile)
++   {
++      // Write the OpenFOAM standard banner and dividers, etc...
++      WriteOpenFOAM15xBanner(outfile);
++      *outfile << "FoamFile \n"
++              << "{ \n"
++              << "    version     2.0; \n"
++              << "    format      ascii; \n"
++              << "    class       polyBoundaryMesh; \n"
++              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
++              << "    location    \"constant\\polyMesh\"; \n"
++              << "    object      boundary; \n"
++              << "} \n";
++      WriteOpenFOAM15xDividerStart(outfile);
++
++      *outfile << "\n";
++
++
++      Array<INDEX_3> bcarray;
++      int ind = 1;
++
++      // Since the boundary conditions are already sorted in ascending 
++      // order, the last element will give the maximum number of possible 
++      // boundary condition entries
++      int bcmax = surfelem_bclist.Elem(surfelem_bclist.Size());
++
++      bcarray.SetSize(bcmax+1);
++
++      bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(1),1,0);
++            
++      for(int i = 2; i <= surfelem_bclist.Size(); i++)
++      {
++         if(surfelem_bclist.Elem(i) == bcarray.Elem(ind).I1())
++         {
++            bcarray.Elem(ind).I2() = bcarray.Elem(ind).I2()+1;
++         }
++         else
++         {
++            ind++;
++            bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(i),1,i-1);
++         }
++      }
++
++      bcarray.SetSize(ind);
++
++      *outfile << bcarray.Size() << "\n";
++      *outfile << "(\n";
++
++      int startface = 0;
++
++      for(int i = 1; i <= bcarray.Size(); i++)
++      {
++         startface = owner_celllist.Size() + bcarray.Elem(i).I3();
++
++         *outfile << "    patch" << bcarray.Elem(i).I1() << "\n"
++                 << "    {\n"
++                 << "        type            patch;\n"
++                 << "        physicalType    patch;\n"
++                 << "        nFaces          " << bcarray.Elem(i).I2() << ";\n"
++                 << "        startFace       " << startface << ";\n"
++                 << "    }\n";
++      }
++
++      *outfile << ")\n\n";
++      WriteOpenFOAM15xDividerEnd(outfile);
++   }
++
++
++
++   void WriteOpenFOAM15xFormat (const Mesh & mesh, const string & casename, const bool compressed)
++   {
++      bool error = false;
++      char casefiles[256];
++
++      // Make sure that the mesh data has been updated
++      const_cast<Mesh&> (mesh).Compress();
++      const_cast<Mesh&> (mesh).CalcSurfacesOfNode();
++      const_cast<Mesh&> (mesh).RebuildSurfaceElementLists();
++      const_cast<Mesh&> (mesh).BuildElementSearchTree();
++
++
++      int np = mesh.GetNP();
++      int nse = mesh.GetNSE();
++      int ne = mesh.GetNE();
++
++      cout << "Write OpenFOAM 1.5+ Mesh Files....\n";
++
++      // Abort if there are no points, surface elements or volume elements
++      if((np <= 0) || (ne <= 0) || (nse <= 0))
++      {
++         cout << "Export Error: Invalid mesh.... Aborting!\n";
++         return;
++      }
++
++      // OpenFOAM only supports linear meshes!
++      if(mparam.secondorder || mesh.GetCurvedElements().IsHighOrder())
++      {
++         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
++         return;
++      }
++
++      if(( (mesh.SurfaceElement(nse/2).GetType() != TRIG) 
++         && (mesh.SurfaceElement(nse/2).GetType() != QUAD) )
++         || (mesh.VolumeElement(ne/2).GetType() == TET10)
++         || (mesh.VolumeElement(ne/2).GetType() == PRISM12))
++      {
++         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
++         return;
++      }
++
++
++      cout << "Writing OpenFOAM 1.5+ Mesh files to case: " << casename << "\n";
++
++      // Create the case directory if it does not already exist
++      // NOTE: This needs to be improved for the Linux variant....!!!
++   #ifdef WIN32
++      char casedir[256];
++      sprintf(casedir, "mkdir %s\\constant\\polyMesh", casename.c_str());
++      system(casedir);
++   #else
++      char casedir[256];
++      mkdir(casename.c_str(), S_IRWXU|S_IRWXG);
++      sprintf(casedir, "%s/constant", casename.c_str());
++      mkdir(casedir, S_IRWXU|S_IRWXG);
++      sprintf(casedir, "%s/constant/polyMesh", casename.c_str());
++      mkdir(casedir, S_IRWXU|S_IRWXG);
++   #endif
++
++      // Open handles to the five required mesh files
++      // points
++      // faces
++      // owner
++      // neighbour
++      // boundary
++        ostream *outfile_pnts;
++        ostream *outfile_faces;
++        ostream *outfile_own;
++        ostream *outfile_nei;
++        ostream *outfile_bnd;
++
++        if(compressed)
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/points.gz", casename.c_str());
++                outfile_pnts = new ogzstream(casefiles);
++        }
++        else
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/points", casename.c_str());
++                outfile_pnts = new ofstream(casefiles);
++        }
++
++        if(compressed)
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/faces.gz", casename.c_str());
++                outfile_faces = new ogzstream(casefiles);
++        }
++        else
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/faces", casename.c_str());
++                outfile_faces = new ofstream(casefiles);
++        }
++
++        if(compressed)
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/owner.gz", casename.c_str()); 
++                outfile_own = new ogzstream(casefiles);
++        }
++        else
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/owner", casename.c_str()); 
++                outfile_own = new ofstream(casefiles);
++        }
++
++        if(compressed)
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/neighbour.gz", casename.c_str());
++                outfile_nei = new ogzstream(casefiles);
++        }
++        else
++        {
++                sprintf(casefiles, "%s/constant/polyMesh/neighbour", casename.c_str());
++                outfile_nei = new ofstream(casefiles);
++        }
++
++        // Note... the boundary file is not compressed
++      sprintf(casefiles, "%s/constant/polyMesh/boundary", casename.c_str()); 
++      outfile_bnd = new ofstream(casefiles);
++
++      ResetTime();
++
++      // Build the owner, neighbour, faces and boundary lists 
++      // from the Netgen mesh
++      cout << "\nBuilding Owner, Neighbour and Face Lists: ";
++
++      error = BuildOwnerNeighbourLists(mesh);
++
++      cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
++
++
++      // Write the "owner" file
++      if(outfile_own->good() && !error)
++      {
++         cout << "Writing the owner file: ";
++         WriteOwnerFile(outfile_own);
++         delete outfile_own;
++         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
++      }
++      else
++      {
++         cout << "Export Error: Error creating file: owner.... Aborting\n";
++         error = true;
++      }
++
++
++      // Write the "neighbour" file
++      if(outfile_nei->good() && !error)
++      {
++         cout << "Writing the neighbour file: ";
++         WriteNeighbourFile(outfile_nei);
++         delete outfile_nei;
++         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
++      }
++      else
++      {
++         cout << "Export Error: Error creating file: neighbour.... Aborting\n";
++         error = true;
++      }
++
++
++      // Write the "faces" file
++      if(outfile_faces->good() && !error)
++      {
++         cout << "Writing the faces file: ";
++         WriteFacesFile(outfile_faces, mesh);
++         delete outfile_faces;
++         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
++      }
++      else
++      {
++         cout << "Export Error: Error creating file: faces.... Aborting\n";
++         error = true;
++      }
++
++
++      // Write the "points" file
++      if(outfile_pnts->good() && !error)
++      {
++         cout << "Writing the points file: ";
++         WritePointsFile(outfile_pnts,mesh);
++         delete outfile_pnts;
++         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
++      }
++      else
++      {
++         cout << "Export Error: Error creating file: points.... Aborting\n";
++         error = true;
++      }
++
++
++      // Write the "boundary" file
++      if(outfile_bnd->good() && !error)
++      {
++         cout << "Writing the boundary file: ";
++         WriteBoundaryFile(outfile_bnd);
++         delete outfile_bnd;
++         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
++      }
++      else
++      {
++         cout << "Export Error: Error creating file: boundary.... Aborting\n";
++         error = true;
++      }
++
++      if(!error)
++      {
++         cout << "OpenFOAM 1.5+ Export successfully completed (Time elapsed = " << GetTime() << " sec) !\n";
++      }
++      else
++      {
++         cout << "Error in OpenFOAM 1.5+ Export.... Aborted!\n";
++      }
++   }
++}
++
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.cpp netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.cpp       2014-08-29 13:54:02.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.cpp      2019-11-14 16:56:23.170430926 +0300
+@@ -1,1040 +1,1040 @@
+-//\r
+-//  Write user dependent output file\r
+-//\r
+-\r
+-#include <mystdlib.h>\r
+-\r
+-#include <myadt.hpp>\r
+-#include <linalg.hpp>\r
+-#include <csg.hpp>\r
+-#include <geometry2d.hpp>\r
+-#include <meshing.hpp>\r
+-\r
+-namespace netgen\r
+-{\r
+-#include "writeuser.hpp"\r
+-\r
+-\r
+-  void RegisterUserFormats (Array<const char*> & names,\r
+-                          Array<const char*> & extensions)\r
+-                          \r
+-{\r
+-  const char *types[] =\r
+-    {\r
+-      "Neutral Format",  ".mesh",\r
+-      "Surface Mesh Format", ".mesh" ,\r
+-      "DIFFPACK Format", ".mesh",\r
+-      "TecPlot Format", ".mesh",\r
+-      "Tochnog Format", ".mesh",\r
+-      "Abaqus Format", ".mesh",\r
+-      "Fluent Format", ".mesh",\r
+-      "Permas Format", ".mesh",\r
+-      "FEAP Format", ".mesh",\r
+-      "Elmer Format", "*",\r
+-      "STL Format", ".stl",\r
+-      "STL Extended Format", ".stl",\r
+-      "VRML Format", ".*",\r
+-      "Gmsh Format", ".gmsh",\r
+-      "Gmsh2 Format", ".gmsh2",\r
+-      "OpenFOAM 1.5+ Format", "*",\r
+-        "OpenFOAM 1.5+ Compressed", "*",\r
+-      "JCMwave Format", ".jcm",\r
+-      "TET Format", ".tet",\r
+-      //      { "Chemnitz Format" },\r
+-      0\r
+-    };\r
+-  \r
+-  for (int i = 0; types[2*i]; i++)\r
+-    {\r
+-      names.Append (types[2*i]);\r
+-      extensions.Append (types[2*i+1]);\r
+-    }\r
+-}\r
+-  \r
+-\r
+-\r
+-bool WriteUserFormat (const string & format,\r
+-                    const Mesh & mesh,\r
+-                    const NetgenGeometry & hgeom,\r
+-                    const string & filename)\r
+-{\r
+-  const CSGeometry & geom = *dynamic_cast<const CSGeometry*> (&hgeom);\r
+-\r
+-  PrintMessage (1, "Export mesh to file ", filename,\r
+-              ", format is ", format);\r
+-\r
+-  if (format == "Neutral Format")\r
+-    WriteNeutralFormat (mesh, geom, filename);\r
+-\r
+-  else if (format == "Surface Mesh Format")\r
+-    WriteSurfaceFormat (mesh, filename);\r
+-\r
+-  else if (format == "DIFFPACK Format")\r
+-    WriteDiffPackFormat (mesh, geom, filename);\r
+-\r
+-  else if (format == "Tochnog Format")\r
+-    WriteTochnogFormat (mesh, filename);\r
+-\r
+-  else if (format == "TecPlot Format")\r
+-    cerr << "ERROR: TecPlot format currently out of order" << endl;\r
+-      // WriteTecPlotFormat (mesh, geom, filename);\r
+-\r
+-  else if (format == "Abaqus Format")\r
+-    WriteAbaqusFormat (mesh, filename);\r
+-\r
+-  else if (format == "Fluent Format")\r
+-    WriteFluentFormat (mesh, filename);\r
+-\r
+-  else if (format == "Permas Format")\r
+-    WritePermasFormat (mesh, filename);\r
+-\r
+-  else if (format == "FEAP Format")\r
+-    WriteFEAPFormat (mesh, filename);\r
+-\r
+-  else if (format == "Elmer Format")\r
+-    WriteElmerFormat (mesh, filename);\r
+-\r
+-  else if (format == "STL Format")\r
+-    WriteSTLFormat (mesh, filename);\r
+-\r
+-  // Philippose - 16 August 2010\r
+-  // Added additional STL Export in which\r
+-  // each face of the geometry is treated\r
+-  // as a separate "solid" entity\r
+-  else if (format == "STL Extended Format")\r
+-      WriteSTLExtFormat (mesh, filename);\r
+-\r
+-  else if (format == "VRML Format")\r
+-    WriteVRMLFormat (mesh, 1, filename);\r
+-\r
+-  else if (format == "Fepp Format")\r
+-    WriteFEPPFormat (mesh, geom, filename);\r
+-\r
+-  else if (format ==  "EdgeElement Format")\r
+-    WriteEdgeElementFormat (mesh, geom, filename);\r
+-\r
+-  else if (format == "Chemnitz Format")\r
+-    WriteUserChemnitz (mesh, filename);\r
+-\r
+-  else if (format == "Gmsh Format")\r
+-    WriteGmshFormat (mesh, geom, filename);\r
+-\r
+-  // Philippose - 29/01/2009\r
+-  // Added Gmsh v2.xx Mesh export capability\r
+-  else if (format == "Gmsh2 Format")\r
+-    WriteGmsh2Format (mesh, geom, filename);\r
+-\r
+-  // Philippose - 25/10/2009\r
+-  // Added OpenFOAM 1.5+ Mesh export capability\r
+-  else if (format == "OpenFOAM 1.5+ Format")\r
+-    WriteOpenFOAM15xFormat (mesh, filename, false);\r
+-\r
+-  else if (format == "OpenFOAM 1.5+ Compressed")\r
+-    WriteOpenFOAM15xFormat (mesh, filename, true);\r
+-\r
+-  else if (format == "JCMwave Format")\r
+-    WriteJCMFormat (mesh, geom, filename);\r
+-\r
+-#ifdef OLIVER\r
+-  else if (format == "TET Format")\r
+-    WriteTETFormat( mesh, filename);//, "High Frequency" );\r
+-#endif\r
+-\r
+-  else\r
+-    {\r
+-      return 1;\r
+-    }\r
+-\r
+-  return 0;\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-/*\r
+- *  Neutral mesh format\r
+- *  points, elements, surface elements\r
+- */\r
+-\r
+-void WriteNeutralFormat (const Mesh & mesh,\r
+-                       const CSGeometry & geom,\r
+-                       const string & filename)\r
+-{\r
+-  cout << "write neutral, new" << endl;\r
+-  int np = mesh.GetNP();\r
+-  int ne = mesh.GetNE();\r
+-  int nse = mesh.GetNSE();\r
+-  int nseg = mesh.GetNSeg();\r
+-  int i, j;\r
+-\r
+-  int inverttets = mparam.inverttets;\r
+-  int invertsurf = mparam.inverttrigs;\r
+-\r
+-  ofstream outfile (filename.c_str());\r
+-\r
+-  outfile.precision(6);\r
+-  outfile.setf (ios::fixed, ios::floatfield);\r
+-  outfile.setf (ios::showpoint);\r
+-\r
+-  outfile << np << "\n";\r
+-\r
+-  for (i = 1; i <= np; i++)\r
+-    {\r
+-      const Point3d & p = mesh.Point(i);\r
+-\r
+-      outfile.width(10);\r
+-      outfile << p.X() << " ";\r
+-      outfile.width(9);\r
+-      outfile << p.Y() << " ";\r
+-      if (mesh.GetDimension() == 3)\r
+-      {\r
+-        outfile.width(9);\r
+-        outfile << p.Z();\r
+-        }\r
+-      outfile << "\n";\r
+-    }\r
+-\r
+-  if (mesh.GetDimension() == 3)\r
+-    {\r
+-      outfile << ne << "\n";\r
+-      for (i = 1; i <= ne; i++)\r
+-      {\r
+-        Element el = mesh.VolumeElement(i);\r
+-        if (inverttets)\r
+-          el.Invert();\r
+-        outfile.width(4);\r
+-        outfile << el.GetIndex() << "  ";\r
+-        for (j = 1; j <= el.GetNP(); j++)\r
+-          {\r
+-            outfile << " ";\r
+-            outfile.width(8);\r
+-            outfile << el.PNum(j);\r
+-          }\r
+-        outfile << "\n";\r
+-      }\r
+-    }\r
+-\r
+-  outfile << nse << "\n";\r
+-  for (i = 1; i <= nse; i++)\r
+-    {\r
+-      Element2d el = mesh.SurfaceElement(i);\r
+-      if (invertsurf)\r
+-      el.Invert();\r
+-      outfile.width(4);\r
+-      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "    ";\r
+-      for (j = 1; j <= el.GetNP(); j++)\r
+-      {\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << el.PNum(j);\r
+-      }\r
+-      outfile << "\n";\r
+-    }\r
+-\r
+-\r
+-  if (mesh.GetDimension() == 2)\r
+-    {\r
+-      outfile << nseg << "\n";\r
+-      for (i = 1; i <= nseg; i++)\r
+-      {\r
+-        const Segment & seg = mesh.LineSegment(i);\r
+-        outfile.width(4);\r
+-        outfile << seg.si << "    ";\r
+-\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << seg[0];\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << seg[1];\r
+-\r
+-        outfile << "\n";\r
+-      }\r
+-    }\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-void WriteSurfaceFormat (const Mesh & mesh,\r
+-                       const string & filename)\r
+-{\r
+-  // surface mesh\r
+-  int i, j;\r
+-\r
+-  cout << "Write Surface Mesh" << endl;\r
+-\r
+-  ofstream outfile (filename.c_str());\r
+-\r
+-  outfile << "surfacemesh" << endl;\r
+-\r
+-  outfile << mesh.GetNP() << endl;\r
+-  for (i = 1; i <= mesh.GetNP(); i++)\r
+-    {\r
+-      for (j = 0; j < 3; j++)\r
+-      {\r
+-        outfile.width(10);\r
+-        outfile << mesh.Point(i)(j) << " ";\r
+-      }\r
+-      outfile << endl;\r
+-    }\r
+-  outfile << mesh.GetNSE() << endl;\r
+-  for (i = 1; i <= mesh.GetNSE(); i++)\r
+-    {\r
+-      for (j = 1; j <= 3; j++)\r
+-      {\r
+-        outfile.width(8);\r
+-        outfile << mesh.SurfaceElement(i).PNum(j);\r
+-      }\r
+-      outfile << endl;\r
+-    }\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-/*\r
+- *  save surface mesh as STL file\r
+- */\r
+-\r
+-void WriteSTLFormat (const Mesh & mesh,\r
+-                   const string & filename)\r
+-{\r
+-  cout << "\nWrite STL Surface Mesh" << endl;\r
+-\r
+-  ostream *outfile;\r
+-\r
+-  if(filename.substr(filename.length()-3,3) == ".gz")\r
+-        outfile = new ogzstream(filename.c_str());\r
+-  else\r
+-        outfile = new ofstream(filename.c_str());\r
+-\r
+-  int i;\r
+-\r
+-  outfile->precision(10);\r
+-\r
+-  *outfile << "solid" << endl;\r
+-\r
+-  for (i = 1; i <= mesh.GetNSE(); i++)\r
+-    {\r
+-      *outfile << "facet normal ";\r
+-      const Point3d& p1 = mesh.Point(mesh.SurfaceElement(i).PNum(1));\r
+-      const Point3d& p2 = mesh.Point(mesh.SurfaceElement(i).PNum(2));\r
+-      const Point3d& p3 = mesh.Point(mesh.SurfaceElement(i).PNum(3));\r
+-\r
+-      Vec3d normal = Cross(p2-p1,p3-p1);\r
+-      if (normal.Length() != 0)\r
+-      {\r
+-        normal /= (normal.Length());\r
+-      }\r
+-\r
+-      *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";\r
+-      *outfile << "outer loop\n";\r
+-\r
+-      *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";\r
+-      *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";\r
+-      *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";\r
+-\r
+-      *outfile << "endloop\n";\r
+-      *outfile << "endfacet\n";\r
+-    }\r
+-  *outfile << "endsolid" << endl;\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-/*\r
+- *  Philippose - 16 August 2010\r
+- *  Save surface mesh as STL file\r
+- *  with a separate solid definition\r
+- *  for each face\r
+- *  - This helps in splitting up the\r
+- *    STL into named boundary faces\r
+- *    when using a third-party mesher\r
+- */\r
+-void WriteSTLExtFormat (const Mesh & mesh,\r
+-                   const string & filename)\r
+-{\r
+-  cout << "\nWrite STL Surface Mesh (with separated boundary faces)" << endl;\r
+-\r
+-  ostream *outfile;\r
+-\r
+-  if(filename.substr(filename.length()-3,3) == ".gz")\r
+-        outfile = new ogzstream(filename.c_str());\r
+-  else\r
+-        outfile = new ofstream(filename.c_str());\r
+-\r
+-  outfile->precision(10);\r
+-\r
+-  int numBCs = 0;\r
+-\r
+-  Array<int> faceBCs;\r
+-  TABLE<int> faceBCMapping;\r
+-\r
+-  faceBCs.SetSize(mesh.GetNFD());\r
+-  faceBCMapping.SetSize(mesh.GetNFD());\r
+-\r
+-  faceBCs = -1;\r
+-\r
+-  // Collect the BC numbers used in the mesh\r
+-  for(int faceNr = 1; faceNr <= mesh.GetNFD(); faceNr++)\r
+-  {\r
+-        int bcNum = mesh.GetFaceDescriptor(faceNr).BCProperty();\r
+-\r
+-        if(faceBCs.Pos(bcNum) < 0)\r
+-        {\r
+-        numBCs++;\r
+-                faceBCs.Set(numBCs,bcNum);\r
+-        faceBCMapping.Add1(numBCs,faceNr);        \r
+-        }\r
+-     else\r
+-     {\r
+-        faceBCMapping.Add1(faceBCs.Pos(bcNum)+1,faceNr);\r
+-     }\r
+-  }\r
+-\r
+-  faceBCs.SetSize(numBCs);\r
+-  faceBCMapping.ChangeSize(numBCs);\r
+-\r
+-  // Now actually write the data to file\r
+-  for(int bcInd = 1; bcInd <= faceBCs.Size(); bcInd++)\r
+-  {\r
+-      *outfile << "solid Boundary_" << faceBCs.Elem(bcInd) << "\n";\r
+-\r
+-      for(int faceNr = 1;faceNr <= faceBCMapping.EntrySize(bcInd); faceNr++)\r
+-      {\r
+-          Array<SurfaceElementIndex> faceSei;\r
+-          mesh.GetSurfaceElementsOfFace(faceBCMapping.Get(bcInd,faceNr),faceSei);\r
+-\r
+-          for (int i = 0; i < faceSei.Size(); i++)\r
+-          {\r
+-                *outfile << "facet normal ";\r
+-                const Point3d& p1 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(1));\r
+-                const Point3d& p2 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(2));\r
+-                const Point3d& p3 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(3));\r
+-\r
+-                Vec3d normal = Cross(p2-p1,p3-p1);\r
+-                if (normal.Length() != 0)\r
+-                {\r
+-                        normal /= (normal.Length());\r
+-                }\r
+-\r
+-                *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";\r
+-                *outfile << "outer loop\n";\r
+-\r
+-                *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";\r
+-                *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";\r
+-                *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";\r
+-\r
+-                *outfile << "endloop\n";\r
+-                *outfile << "endfacet\n";\r
+-          }\r
+-      }\r
+-      *outfile << "endsolid Boundary_" << faceBCs.Elem(bcInd) << "\n";\r
+-  }\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-/*\r
+- *\r
+- *  write surface mesh as VRML file\r
+- *\r
+- */\r
+-\r
+-void WriteVRMLFormat (const Mesh & mesh,\r
+-                    bool faces,\r
+-                    const string & filename)\r
+-{\r
+-\r
+-  if (faces)\r
+-\r
+-    {\r
+-      // Output in VRML, IndexedFaceSet is used\r
+-      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>\r
+-\r
+-      int np = mesh.GetNP();\r
+-      int nse = mesh.GetNSE();\r
+-      int i, j;\r
+-\r
+-      ofstream outfile (filename.c_str());\r
+-\r
+-      outfile.precision(6);\r
+-      outfile.setf (ios::fixed, ios::floatfield);\r
+-      outfile.setf (ios::showpoint);\r
+-\r
+-      outfile << "#VRML V2.0 utf8 \n"\r
+-               "Background {\n"\r
+-               "    skyColor [1 1 1]\n"\r
+-               "    groundColor [1 1 1]\n"\r
+-               "}\n"\r
+-               "Group{ children [\n"\r
+-               "Shape{ \n"\r
+-               "appearance Appearance { material Material { }} \n"\r
+-                 "geometry IndexedFaceSet { \n"\r
+-                 "coord Coordinate { point [ \n";\r
+-\r
+-\r
+-      for (i = 1; i <= np; i++)\r
+-        {\r
+-          const Point3d & p = mesh.Point(i);\r
+-          outfile.width(10);\r
+-          outfile << p.X() << " ";\r
+-          outfile << p.Y() << " ";\r
+-          outfile << p.Z() << " \n";\r
+-      }\r
+-\r
+-      outfile << "  ] } \n"\r
+-                 "coordIndex [ \n";\r
+-\r
+-      for (i = 1; i <= nse; i++)\r
+-      {\r
+-        const Element2d & el = mesh.SurfaceElement(i);\r
+-\r
+-        for (j = 1; j <= 3; j++)\r
+-          {\r
+-            outfile.width(8);\r
+-            outfile << el.PNum(j)-1;\r
+-          }\r
+-        outfile << " -1 \n";\r
+-      }\r
+-\r
+-      outfile << "  ] \n";\r
+-\r
+-      //define number and RGB definitions of colors\r
+-      outfile << "color Color { color [1 0 0, 0 1 0, 0 0 1, 1 1 0]} \n"\r
+-                 "colorIndex [\n";\r
+-\r
+-      for (i = 1; i <= nse; i++)\r
+-      {\r
+-        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();\r
+-          outfile << endl;\r
+-      }\r
+-\r
+-      outfile << " ] \n"\r
+-                 "colorPerVertex FALSE \n"\r
+-                 "creaseAngle 0 \n"\r
+-               "solid FALSE \n"\r
+-                 "ccw FALSE \n"\r
+-               "convex TRUE \n"\r
+-                 "} } # end of Shape\n"\r
+-               "] }\n";\r
+-\r
+-    } /* end of VRMLFACES */\r
+-\r
+-\r
+-  else\r
+-\r
+-    {\r
+-        // Output in VRML, IndexedLineSet is used\r
+-      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>\r
+-\r
+-      int np = mesh.GetNP();\r
+-      int nse = mesh.GetNSE();\r
+-      int i, j;\r
+-\r
+-      ofstream outfile (filename.c_str());\r
+-\r
+-      outfile.precision(6);\r
+-      outfile.setf (ios::fixed, ios::floatfield);\r
+-      outfile.setf (ios::showpoint);\r
+-\r
+-      outfile << "#VRML V2.0 utf8 \n"\r
+-               "Background {\n"\r
+-               "    skyColor [1 1 1]\n"\r
+-               "    groundColor [1 1 1]\n"\r
+-               "}\n"\r
+-               "Group{ children [\n"\r
+-               "Shape{ \n"\r
+-               "appearance Appearance { material Material { }} \n"\r
+-                 "geometry IndexedLineSet { \n"\r
+-                 "coord Coordinate { point [ \n";\r
+-\r
+-\r
+-      for (i = 1; i <= np; i++)\r
+-        {\r
+-          const Point3d & p = mesh.Point(i);\r
+-          outfile.width(10);\r
+-          outfile << p.X() << " ";\r
+-          outfile << p.Y() << " ";\r
+-          outfile << p.Z() << " \n";\r
+-      }\r
+-\r
+-      outfile << "  ] } \n"\r
+-                 "coordIndex [ \n";\r
+-\r
+-      for (i = 1; i <= nse; i++)\r
+-      {\r
+-        const Element2d & el = mesh.SurfaceElement(i);\r
+-\r
+-        for (j = 1; j <= 3; j++)\r
+-          {\r
+-            outfile.width(8);\r
+-            outfile << el.PNum(j)-1;\r
+-          }\r
+-        outfile.width(8);\r
+-        outfile << el.PNum(1)-1;\r
+-        outfile << " -1 \n";\r
+-      }\r
+-\r
+-      outfile << "  ] \n";\r
+-\r
+-/* Uncomment if you want color mesh\r
+-      outfile << "color Color { color [1 1 1, 0 1 0, 0 0 1, 1 1 0]} \n"\r
+-                 "colorIndex [\n";\r
+-\r
+-      for (i = 1; i <= nse; i++)\r
+-      {\r
+-        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();\r
+-          outfile << endl;\r
+-      }\r
+-\r
+-      outfile << " ] \n"\r
+-*/\r
+-      outfile << "colorPerVertex FALSE \n"\r
+-                 "} } #end of Shape\n"\r
+-               "] } \n";\r
+-\r
+-    }\r
+-\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-/*\r
+- * FEPP .. a finite element package developed at University Linz, Austria\r
+- */\r
+-void WriteFEPPFormat (const Mesh & mesh,\r
+-                    const CSGeometry & geom,\r
+-                    const string & filename)\r
+-{\r
+-\r
+-  ofstream outfile (filename.c_str());\r
+-\r
+-  if (mesh.GetDimension() == 3)\r
+-\r
+-    {\r
+-\r
+-      // output for FEPP\r
+-\r
+-      int np = mesh.GetNP();\r
+-      int ne = mesh.GetNE();\r
+-      int nse = mesh.GetNSE();\r
+-      int ns = mesh.GetNFD();\r
+-      int i, j;\r
+-\r
+-      outfile.precision(5);\r
+-      outfile.setf (ios::fixed, ios::floatfield);\r
+-      outfile.setf (ios::showpoint);\r
+-\r
+-      outfile << "volumemesh4" << endl;\r
+-      outfile << nse << endl;\r
+-      for (i = 1; i <= nse; i++)\r
+-      {\r
+-        const Element2d & el = mesh.SurfaceElement(i);\r
+-\r
+-        //      int facenr = mesh.facedecoding.Get(el.GetIndex()).surfnr;\r
+-        outfile.width(4);\r
+-        outfile << el.GetIndex() << " ";\r
+-        outfile.width(4);\r
+-        //      outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";\r
+-        outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";\r
+-        outfile.width(4);\r
+-        outfile << el.GetNP() << "    ";\r
+-        for (j = 1; j <= el.GetNP(); j++)\r
+-          {\r
+-            outfile.width(8);\r
+-            outfile << el.PNum(j);\r
+-          }\r
+-        outfile << "\n";\r
+-      }\r
+-\r
+-\r
+-      outfile << ne << "\n";\r
+-      for (i = 1; i <= ne; i++)\r
+-      {\r
+-        const Element & el = mesh.VolumeElement(i);\r
+-        outfile.width(4);\r
+-        outfile << el.GetIndex() << " ";\r
+-        outfile.width(4);\r
+-        outfile << el.GetNP() << " ";\r
+-        for (j = 1; j <= el.GetNP(); j++)\r
+-          {\r
+-            outfile.width(8);\r
+-            outfile << el.PNum(j);\r
+-          }\r
+-        outfile << "\n";\r
+-      }\r
+-\r
+-      outfile << np << "\n";\r
+-      for (i = 1; i <= np; i++)\r
+-      {\r
+-        const Point3d & p = mesh.Point(i);\r
+-\r
+-        outfile.width(10);\r
+-        outfile << p.X() << " ";\r
+-        outfile.width(9);\r
+-        outfile << p.Y() << " ";\r
+-        outfile.width(9);\r
+-        outfile << p.Z() << "\n";\r
+-      }\r
+-\r
+-      /*\r
+-      if (typ == WRITE_FEPPML)\r
+-      {\r
+-        int nbn =  mesh.mlbetweennodes.Size();\r
+-        outfile << nbn << "\n";\r
+-        for (i = 1; i <= nbn; i++)\r
+-          outfile << mesh.mlbetweennodes.Get(i).I1() << " "\r
+-                  << mesh.mlbetweennodes.Get(i).I2() << "\n";\r
+-\r
+-\r
+-        //      int ncon = mesh.connectedtonode.Size();\r
+-        //      outfile << ncon << "\n";\r
+-        //      for (i = 1; i <= ncon; i++)\r
+-        //        outfile << i << " " << mesh.connectedtonode.Get(i) << endl;\r
+-      }\r
+-      */\r
+-\r
+-\r
+-      // write CSG surfaces\r
+-      if (&geom && geom.GetNSurf() >= ns)\r
+-      {\r
+-        outfile << ns << endl;\r
+-        for (i = 1; i <= ns; i++)\r
+-          geom.GetSurface(mesh.GetFaceDescriptor(i).SurfNr())->Print(outfile);\r
+-      }\r
+-      else\r
+-      outfile << "0" << endl;\r
+-    }\r
+-\r
+-\r
+-  else\r
+-\r
+-    { // 2D fepp format\r
+-\r
+-      ;\r
+-      /*\r
+-      extern SplineGeometry2d * geometry2d;\r
+-      if (geometry2d)\r
+-      Save2DMesh (mesh, &geometry2d->GetSplines(), outfile);\r
+-      else\r
+-      Save2DMesh (mesh, 0, outfile);\r
+-      */\r
+-    }\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-/*\r
+- *  Edge element mesh format\r
+- *  points, elements, edges\r
+- */\r
+-\r
+-void WriteEdgeElementFormat (const Mesh & mesh,\r
+-                           const CSGeometry & geom,\r
+-                           const string & filename)\r
+-{\r
+-  cout << "write edge element format" << endl;\r
+-\r
+-  const MeshTopology * top = &mesh.GetTopology();\r
+-  int npoints = mesh.GetNP();\r
+-  int nelements = mesh.GetNE();\r
+-  int nsurfelem = mesh.GetNSE();\r
+-  int nedges = top->GetNEdges();\r
+-  int i, j;\r
+-\r
+-  int inverttets = mparam.inverttets;\r
+-  int invertsurf = mparam.inverttrigs;\r
+-  Array<int> edges;\r
+-\r
+-  ofstream outfile (filename.c_str());\r
+-\r
+-  outfile.precision(6);\r
+-  outfile.setf (ios::fixed, ios::floatfield);\r
+-  outfile.setf (ios::showpoint);\r
+-\r
+-\r
+-  // vertices with coordinates\r
+-  outfile << npoints << "\n";\r
+-  for (i = 1; i <= npoints; i++)\r
+-    {\r
+-      const Point3d & p = mesh.Point(i);\r
+-\r
+-      outfile.width(10);\r
+-      outfile << p.X() << " ";\r
+-      outfile.width(9);\r
+-      outfile << p.Y() << " ";\r
+-      outfile.width(9);\r
+-      outfile << p.Z() << "\n";\r
+-    }\r
+-\r
+-  // element - edge - list\r
+-  outfile << nelements << " " << nedges << "\n";\r
+-  for (i = 1; i <= nelements; i++)\r
+-    {\r
+-      Element el = mesh.VolumeElement(i);\r
+-      if (inverttets)\r
+-              el.Invert();\r
+-      outfile.width(4);\r
+-      outfile << el.GetIndex() << "  ";\r
+-      outfile.width(8);\r
+-      outfile << el.GetNP();\r
+-      for (j = 1; j <= el.GetNP(); j++)\r
+-      {\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << el.PNum(j);\r
+-      }\r
+-\r
+-      top->GetElementEdges(i,edges);\r
+-      outfile << endl << "      ";\r
+-      outfile.width(8);\r
+-      outfile << edges.Size();\r
+-      for (j=1; j <= edges.Size(); j++)\r
+-      {\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << edges[j-1];\r
+-      }\r
+-      outfile << "\n";\r
+-\r
+-      // orientation:\r
+-      top->GetElementEdgeOrientations(i,edges);\r
+-      outfile << "              ";\r
+-      for (j=1; j <= edges.Size(); j++)\r
+-      {\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << edges[j-1];\r
+-      }\r
+-      outfile << "\n";\r
+-    }\r
+-\r
+-  // surface element - edge - list (with boundary conditions)\r
+-  outfile << nsurfelem << "\n";\r
+-  for (i = 1; i <= nsurfelem; i++)\r
+-    {\r
+-      Element2d el = mesh.SurfaceElement(i);\r
+-      if (invertsurf)\r
+-      el.Invert();\r
+-      outfile.width(4);\r
+-      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "  ";\r
+-      outfile.width(8);\r
+-      outfile << el.GetNP();\r
+-      for (j = 1; j <= el.GetNP(); j++)\r
+-      {\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << el.PNum(j);\r
+-      }\r
+-\r
+-      top->GetSurfaceElementEdges(i,edges);\r
+-      outfile << endl << "      ";\r
+-      outfile.width(8);\r
+-      outfile << edges.Size();\r
+-      for (j=1; j <= edges.Size(); j++)\r
+-      {\r
+-        outfile << " ";\r
+-        outfile.width(8);\r
+-        outfile << edges[j-1];\r
+-      }\r
+-      outfile << "\n";\r
+-    }\r
+-\r
+-\r
+-  int v1, v2;\r
+-  // edge - vertex - list\r
+-  outfile << nedges << "\n";\r
+-  for (i=1; i <= nedges; i++)\r
+-    {\r
+-      top->GetEdgeVertices(i,v1,v2);\r
+-      outfile.width(4);\r
+-      outfile << v1;\r
+-      outfile << " ";\r
+-      outfile.width(8);\r
+-      outfile << v2 << endl;\r
+-    }\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-#ifdef OLDSTYLE_WRITE\r
+-\r
+-\r
+-void WriteFile (int typ,\r
+-              const Mesh & mesh,\r
+-              const CSGeometry & geom,\r
+-              const char * filename,\r
+-              const char * geomfile,\r
+-              double h)\r
+-{\r
+-\r
+-\r
+-  int inverttets = mparam.inverttets;\r
+-  int invertsurf = mparam.inverttrigs;\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-  if (typ == WRITE_EDGEELEMENT)\r
+-    {\r
+-      // write edge element file\r
+-      // Peter Harscher, ETHZ\r
+-\r
+-      cout << "Write Edge-Element Format" << endl;\r
+-\r
+-      ofstream outfile (filename);\r
+-\r
+-      int i, j;\r
+-      int ned;\r
+-\r
+-      // hash table representing edges;\r
+-      INDEX_2_HASHTABLE<int> edgeht(mesh.GetNP());\r
+-\r
+-      // list of edges\r
+-      Array<INDEX_2> edgelist;\r
+-\r
+-      // edge (point) on boundary ?\r
+-      BitArray bedge, bpoint(mesh.GetNP());\r
+-\r
+-      static int eledges[6][2] = { { 1, 2 } , { 1, 3 } , { 1, 4 },\r
+-                                 { 2, 3 } , { 2, 4 } , { 3, 4 } };\r
+-\r
+-      // fill hashtable   (point1, point2)  ---->  edgenr\r
+-      for (i = 1; i <= mesh.GetNE(); i++)\r
+-      {\r
+-        const Element & el = mesh.VolumeElement (i);\r
+-        INDEX_2 edge;\r
+-        for (j = 1; j <= 6; j++)\r
+-          {\r
+-            edge.I1() = el.PNum (eledges[j-1][0]);\r
+-            edge.I2() = el.PNum (eledges[j-1][1]);\r
+-            edge.Sort();\r
+-\r
+-            if (!edgeht.Used (edge))\r
+-              {\r
+-                edgelist.Append (edge);\r
+-                edgeht.Set (edge, edgelist.Size());\r
+-              }\r
+-          }\r
+-      }\r
+-\r
+-\r
+-      // set bedges, bpoints\r
+-      bedge.SetSize (edgelist.Size());\r
+-      bedge.Clear();\r
+-      bpoint.Clear();\r
+-\r
+-      for (i = 1; i <= mesh.GetNSE(); i++)\r
+-      {\r
+-        const Element2d & sel = mesh.SurfaceElement(i);\r
+-        for (j = 1; j <= 3; j++)\r
+-          {\r
+-            bpoint.Set (sel.PNum(j));\r
+-\r
+-            INDEX_2 edge;\r
+-            edge.I1() = sel.PNum(j);\r
+-            edge.I2() = sel.PNum(j%3+1);\r
+-            edge.Sort();\r
+-\r
+-            bedge.Set (edgeht.Get (edge));\r
+-          }\r
+-      }\r
+-\r
+-\r
+-\r
+-      outfile << mesh.GetNE() << endl;\r
+-      // write element ---> point\r
+-      for (i = 1; i <= mesh.GetNE(); i++)\r
+-      {\r
+-        const Element & el = mesh.VolumeElement(i);\r
+-\r
+-        outfile.width(8);\r
+-        outfile << i;\r
+-        for (j = 1; j <= 4; j++)\r
+-          {\r
+-            outfile.width(8);\r
+-            outfile << el.PNum(j);\r
+-          }\r
+-        outfile << endl;\r
+-      }\r
+-\r
+-      // write element ---> edge\r
+-      for (i = 1; i <= mesh.GetNE(); i++)\r
+-      {\r
+-        const Element & el = mesh.VolumeElement (i);\r
+-        INDEX_2 edge;\r
+-        for (j = 1; j <= 6; j++)\r
+-          {\r
+-            edge.I1() = el.PNum (eledges[j-1][0]);\r
+-            edge.I2() = el.PNum (eledges[j-1][1]);\r
+-            edge.Sort();\r
+-\r
+-            outfile.width(8);\r
+-            outfile << edgeht.Get (edge);\r
+-          }\r
+-        outfile << endl;\r
+-      }\r
+-\r
+-      // write points\r
+-      outfile << mesh.GetNP() << endl;\r
+-      outfile.precision (6);\r
+-      for (i = 1; i <= mesh.GetNP(); i++)\r
+-      {\r
+-        const Point3d & p = mesh.Point(i);\r
+-\r
+-        for (j = 1; j <= 3; j++)\r
+-          {\r
+-            outfile.width(8);\r
+-            outfile << p.X(j);\r
+-          }\r
+-        outfile << "       "\r
+-                << (bpoint.Test(i) ? "1" : 0) << endl;\r
+-      }\r
+-\r
+-      // write edges\r
+-      outfile << edgelist.Size() << endl;\r
+-      for (i = 1; i <= edgelist.Size(); i++)\r
+-      {\r
+-        outfile.width(8);\r
+-        outfile << edgelist.Get(i).I1();\r
+-        outfile.width(8);\r
+-        outfile << edgelist.Get(i).I2();\r
+-        outfile << "       "\r
+-                << (bedge.Test(i) ? "1" : "0") << endl;\r
+-      }\r
+-    }\r
+-\r
+-\r
+-\r
+-\r
+-}\r
+-#endif\r
+-}\r
+-\r
++//
++//  Write user dependent output file
++//
++
++#include <mystdlib.h>
++
++#include <myadt.hpp>
++#include <linalg.hpp>
++#include <csg.hpp>
++#include <geometry2d.hpp>
++#include <meshing.hpp>
++
++namespace netgen
++{
++#include "writeuser.hpp"
++
++
++  void RegisterUserFormats (Array<const char*> & names,
++                          Array<const char*> & extensions)
++                          
++{
++  const char *types[] =
++    {
++      "Neutral Format",  ".mesh",
++      "Surface Mesh Format", ".mesh" ,
++      "DIFFPACK Format", ".mesh",
++      "TecPlot Format", ".mesh",
++      "Tochnog Format", ".mesh",
++      "Abaqus Format", ".mesh",
++      "Fluent Format", ".mesh",
++      "Permas Format", ".mesh",
++      "FEAP Format", ".mesh",
++      "Elmer Format", "*",
++      "STL Format", ".stl",
++      "STL Extended Format", ".stl",
++      "VRML Format", ".*",
++      "Gmsh Format", ".gmsh",
++      "Gmsh2 Format", ".gmsh2",
++      "OpenFOAM 1.5+ Format", "*",
++        "OpenFOAM 1.5+ Compressed", "*",
++      "JCMwave Format", ".jcm",
++      "TET Format", ".tet",
++      //      { "Chemnitz Format" },
++      0
++    };
++  
++  for (int i = 0; types[2*i]; i++)
++    {
++      names.Append (types[2*i]);
++      extensions.Append (types[2*i+1]);
++    }
++}
++  
++
++
++bool WriteUserFormat (const string & format,
++                    const Mesh & mesh,
++                    const NetgenGeometry & hgeom,
++                    const string & filename)
++{
++  const CSGeometry & geom = *dynamic_cast<const CSGeometry*> (&hgeom);
++
++  PrintMessage (1, "Export mesh to file ", filename,
++              ", format is ", format);
++
++  if (format == "Neutral Format")
++    WriteNeutralFormat (mesh, geom, filename);
++
++  else if (format == "Surface Mesh Format")
++    WriteSurfaceFormat (mesh, filename);
++
++  else if (format == "DIFFPACK Format")
++    WriteDiffPackFormat (mesh, geom, filename);
++
++  else if (format == "Tochnog Format")
++    WriteTochnogFormat (mesh, filename);
++
++  else if (format == "TecPlot Format")
++    cerr << "ERROR: TecPlot format currently out of order" << endl;
++      // WriteTecPlotFormat (mesh, geom, filename);
++
++  else if (format == "Abaqus Format")
++    WriteAbaqusFormat (mesh, filename);
++
++  else if (format == "Fluent Format")
++    WriteFluentFormat (mesh, filename);
++
++  else if (format == "Permas Format")
++    WritePermasFormat (mesh, filename);
++
++  else if (format == "FEAP Format")
++    WriteFEAPFormat (mesh, filename);
++
++  else if (format == "Elmer Format")
++    WriteElmerFormat (mesh, filename);
++
++  else if (format == "STL Format")
++    WriteSTLFormat (mesh, filename);
++
++  // Philippose - 16 August 2010
++  // Added additional STL Export in which
++  // each face of the geometry is treated
++  // as a separate "solid" entity
++  else if (format == "STL Extended Format")
++      WriteSTLExtFormat (mesh, filename);
++
++  else if (format == "VRML Format")
++    WriteVRMLFormat (mesh, 1, filename);
++
++  else if (format == "Fepp Format")
++    WriteFEPPFormat (mesh, geom, filename);
++
++  else if (format ==  "EdgeElement Format")
++    WriteEdgeElementFormat (mesh, geom, filename);
++
++  else if (format == "Chemnitz Format")
++    WriteUserChemnitz (mesh, filename);
++
++  else if (format == "Gmsh Format")
++    WriteGmshFormat (mesh, geom, filename);
++
++  // Philippose - 29/01/2009
++  // Added Gmsh v2.xx Mesh export capability
++  else if (format == "Gmsh2 Format")
++    WriteGmsh2Format (mesh, geom, filename);
++
++  // Philippose - 25/10/2009
++  // Added OpenFOAM 1.5+ Mesh export capability
++  else if (format == "OpenFOAM 1.5+ Format")
++    WriteOpenFOAM15xFormat (mesh, filename, false);
++
++  else if (format == "OpenFOAM 1.5+ Compressed")
++    WriteOpenFOAM15xFormat (mesh, filename, true);
++
++  else if (format == "JCMwave Format")
++    WriteJCMFormat (mesh, geom, filename);
++
++#ifdef OLIVER
++  else if (format == "TET Format")
++    WriteTETFormat( mesh, filename);//, "High Frequency" );
++#endif
++
++  else
++    {
++      return 1;
++    }
++
++  return 0;
++}
++
++
++
++
++/*
++ *  Neutral mesh format
++ *  points, elements, surface elements
++ */
++
++void WriteNeutralFormat (const Mesh & mesh,
++                       const CSGeometry & geom,
++                       const string & filename)
++{
++  cout << "write neutral, new" << endl;
++  int np = mesh.GetNP();
++  int ne = mesh.GetNE();
++  int nse = mesh.GetNSE();
++  int nseg = mesh.GetNSeg();
++  int i, j;
++
++  int inverttets = mparam.inverttets;
++  int invertsurf = mparam.inverttrigs;
++
++  ofstream outfile (filename.c_str());
++
++  outfile.precision(6);
++  outfile.setf (ios::fixed, ios::floatfield);
++  outfile.setf (ios::showpoint);
++
++  outfile << np << "\n";
++
++  for (i = 1; i <= np; i++)
++    {
++      const Point3d & p = mesh.Point(i);
++
++      outfile.width(10);
++      outfile << p.X() << " ";
++      outfile.width(9);
++      outfile << p.Y() << " ";
++      if (mesh.GetDimension() == 3)
++      {
++        outfile.width(9);
++        outfile << p.Z();
++        }
++      outfile << "\n";
++    }
++
++  if (mesh.GetDimension() == 3)
++    {
++      outfile << ne << "\n";
++      for (i = 1; i <= ne; i++)
++      {
++        Element el = mesh.VolumeElement(i);
++        if (inverttets)
++          el.Invert();
++        outfile.width(4);
++        outfile << el.GetIndex() << "  ";
++        for (j = 1; j <= el.GetNP(); j++)
++          {
++            outfile << " ";
++            outfile.width(8);
++            outfile << el.PNum(j);
++          }
++        outfile << "\n";
++      }
++    }
++
++  outfile << nse << "\n";
++  for (i = 1; i <= nse; i++)
++    {
++      Element2d el = mesh.SurfaceElement(i);
++      if (invertsurf)
++      el.Invert();
++      outfile.width(4);
++      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "    ";
++      for (j = 1; j <= el.GetNP(); j++)
++      {
++        outfile << " ";
++        outfile.width(8);
++        outfile << el.PNum(j);
++      }
++      outfile << "\n";
++    }
++
++
++  if (mesh.GetDimension() == 2)
++    {
++      outfile << nseg << "\n";
++      for (i = 1; i <= nseg; i++)
++      {
++        const Segment & seg = mesh.LineSegment(i);
++        outfile.width(4);
++        outfile << seg.si << "    ";
++
++        outfile << " ";
++        outfile.width(8);
++        outfile << seg[0];
++        outfile << " ";
++        outfile.width(8);
++        outfile << seg[1];
++
++        outfile << "\n";
++      }
++    }
++}
++
++
++
++
++
++
++
++
++
++void WriteSurfaceFormat (const Mesh & mesh,
++                       const string & filename)
++{
++  // surface mesh
++  int i, j;
++
++  cout << "Write Surface Mesh" << endl;
++
++  ofstream outfile (filename.c_str());
++
++  outfile << "surfacemesh" << endl;
++
++  outfile << mesh.GetNP() << endl;
++  for (i = 1; i <= mesh.GetNP(); i++)
++    {
++      for (j = 0; j < 3; j++)
++      {
++        outfile.width(10);
++        outfile << mesh.Point(i)(j) << " ";
++      }
++      outfile << endl;
++    }
++  outfile << mesh.GetNSE() << endl;
++  for (i = 1; i <= mesh.GetNSE(); i++)
++    {
++      for (j = 1; j <= 3; j++)
++      {
++        outfile.width(8);
++        outfile << mesh.SurfaceElement(i).PNum(j);
++      }
++      outfile << endl;
++    }
++}
++
++
++
++
++
++/*
++ *  save surface mesh as STL file
++ */
++
++void WriteSTLFormat (const Mesh & mesh,
++                   const string & filename)
++{
++  cout << "\nWrite STL Surface Mesh" << endl;
++
++  ostream *outfile;
++
++  if(filename.substr(filename.length()-3,3) == ".gz")
++        outfile = new ogzstream(filename.c_str());
++  else
++        outfile = new ofstream(filename.c_str());
++
++  int i;
++
++  outfile->precision(10);
++
++  *outfile << "solid" << endl;
++
++  for (i = 1; i <= mesh.GetNSE(); i++)
++    {
++      *outfile << "facet normal ";
++      const Point3d& p1 = mesh.Point(mesh.SurfaceElement(i).PNum(1));
++      const Point3d& p2 = mesh.Point(mesh.SurfaceElement(i).PNum(2));
++      const Point3d& p3 = mesh.Point(mesh.SurfaceElement(i).PNum(3));
++
++      Vec3d normal = Cross(p2-p1,p3-p1);
++      if (normal.Length() != 0)
++      {
++        normal /= (normal.Length());
++      }
++
++      *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
++      *outfile << "outer loop\n";
++
++      *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
++      *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
++      *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
++
++      *outfile << "endloop\n";
++      *outfile << "endfacet\n";
++    }
++  *outfile << "endsolid" << endl;
++}
++
++
++
++
++
++/*
++ *  Philippose - 16 August 2010
++ *  Save surface mesh as STL file
++ *  with a separate solid definition
++ *  for each face
++ *  - This helps in splitting up the
++ *    STL into named boundary faces
++ *    when using a third-party mesher
++ */
++void WriteSTLExtFormat (const Mesh & mesh,
++                   const string & filename)
++{
++  cout << "\nWrite STL Surface Mesh (with separated boundary faces)" << endl;
++
++  ostream *outfile;
++
++  if(filename.substr(filename.length()-3,3) == ".gz")
++        outfile = new ogzstream(filename.c_str());
++  else
++        outfile = new ofstream(filename.c_str());
++
++  outfile->precision(10);
++
++  int numBCs = 0;
++
++  Array<int> faceBCs;
++  TABLE<int> faceBCMapping;
++
++  faceBCs.SetSize(mesh.GetNFD());
++  faceBCMapping.SetSize(mesh.GetNFD());
++
++  faceBCs = -1;
++
++  // Collect the BC numbers used in the mesh
++  for(int faceNr = 1; faceNr <= mesh.GetNFD(); faceNr++)
++  {
++        int bcNum = mesh.GetFaceDescriptor(faceNr).BCProperty();
++
++        if(faceBCs.Pos(bcNum) < 0)
++        {
++        numBCs++;
++                faceBCs.Set(numBCs,bcNum);
++        faceBCMapping.Add1(numBCs,faceNr);        
++        }
++     else
++     {
++        faceBCMapping.Add1(faceBCs.Pos(bcNum)+1,faceNr);
++     }
++  }
++
++  faceBCs.SetSize(numBCs);
++  faceBCMapping.ChangeSize(numBCs);
++
++  // Now actually write the data to file
++  for(int bcInd = 1; bcInd <= faceBCs.Size(); bcInd++)
++  {
++      *outfile << "solid Boundary_" << faceBCs.Elem(bcInd) << "\n";
++
++      for(int faceNr = 1;faceNr <= faceBCMapping.EntrySize(bcInd); faceNr++)
++      {
++          Array<SurfaceElementIndex> faceSei;
++          mesh.GetSurfaceElementsOfFace(faceBCMapping.Get(bcInd,faceNr),faceSei);
++
++          for (int i = 0; i < faceSei.Size(); i++)
++          {
++                *outfile << "facet normal ";
++                const Point3d& p1 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(1));
++                const Point3d& p2 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(2));
++                const Point3d& p3 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(3));
++
++                Vec3d normal = Cross(p2-p1,p3-p1);
++                if (normal.Length() != 0)
++                {
++                        normal /= (normal.Length());
++                }
++
++                *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
++                *outfile << "outer loop\n";
++
++                *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
++                *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
++                *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
++
++                *outfile << "endloop\n";
++                *outfile << "endfacet\n";
++          }
++      }
++      *outfile << "endsolid Boundary_" << faceBCs.Elem(bcInd) << "\n";
++  }
++}
++
++
++
++
++/*
++ *
++ *  write surface mesh as VRML file
++ *
++ */
++
++void WriteVRMLFormat (const Mesh & mesh,
++                    bool faces,
++                    const string & filename)
++{
++
++  if (faces)
++
++    {
++      // Output in VRML, IndexedFaceSet is used
++      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
++
++      int np = mesh.GetNP();
++      int nse = mesh.GetNSE();
++      int i, j;
++
++      ofstream outfile (filename.c_str());
++
++      outfile.precision(6);
++      outfile.setf (ios::fixed, ios::floatfield);
++      outfile.setf (ios::showpoint);
++
++      outfile << "#VRML V2.0 utf8 \n"
++               "Background {\n"
++               "    skyColor [1 1 1]\n"
++               "    groundColor [1 1 1]\n"
++               "}\n"
++               "Group{ children [\n"
++               "Shape{ \n"
++               "appearance Appearance { material Material { }} \n"
++                 "geometry IndexedFaceSet { \n"
++                 "coord Coordinate { point [ \n";
++
++
++      for (i = 1; i <= np; i++)
++        {
++          const Point3d & p = mesh.Point(i);
++          outfile.width(10);
++          outfile << p.X() << " ";
++          outfile << p.Y() << " ";
++          outfile << p.Z() << " \n";
++      }
++
++      outfile << "  ] } \n"
++                 "coordIndex [ \n";
++
++      for (i = 1; i <= nse; i++)
++      {
++        const Element2d & el = mesh.SurfaceElement(i);
++
++        for (j = 1; j <= 3; j++)
++          {
++            outfile.width(8);
++            outfile << el.PNum(j)-1;
++          }
++        outfile << " -1 \n";
++      }
++
++      outfile << "  ] \n";
++
++      //define number and RGB definitions of colors
++      outfile << "color Color { color [1 0 0, 0 1 0, 0 0 1, 1 1 0]} \n"
++                 "colorIndex [\n";
++
++      for (i = 1; i <= nse; i++)
++      {
++        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
++          outfile << endl;
++      }
++
++      outfile << " ] \n"
++                 "colorPerVertex FALSE \n"
++                 "creaseAngle 0 \n"
++               "solid FALSE \n"
++                 "ccw FALSE \n"
++               "convex TRUE \n"
++                 "} } # end of Shape\n"
++               "] }\n";
++
++    } /* end of VRMLFACES */
++
++
++  else
++
++    {
++        // Output in VRML, IndexedLineSet is used
++      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
++
++      int np = mesh.GetNP();
++      int nse = mesh.GetNSE();
++      int i, j;
++
++      ofstream outfile (filename.c_str());
++
++      outfile.precision(6);
++      outfile.setf (ios::fixed, ios::floatfield);
++      outfile.setf (ios::showpoint);
++
++      outfile << "#VRML V2.0 utf8 \n"
++               "Background {\n"
++               "    skyColor [1 1 1]\n"
++               "    groundColor [1 1 1]\n"
++               "}\n"
++               "Group{ children [\n"
++               "Shape{ \n"
++               "appearance Appearance { material Material { }} \n"
++                 "geometry IndexedLineSet { \n"
++                 "coord Coordinate { point [ \n";
++
++
++      for (i = 1; i <= np; i++)
++        {
++          const Point3d & p = mesh.Point(i);
++          outfile.width(10);
++          outfile << p.X() << " ";
++          outfile << p.Y() << " ";
++          outfile << p.Z() << " \n";
++      }
++
++      outfile << "  ] } \n"
++                 "coordIndex [ \n";
++
++      for (i = 1; i <= nse; i++)
++      {
++        const Element2d & el = mesh.SurfaceElement(i);
++
++        for (j = 1; j <= 3; j++)
++          {
++            outfile.width(8);
++            outfile << el.PNum(j)-1;
++          }
++        outfile.width(8);
++        outfile << el.PNum(1)-1;
++        outfile << " -1 \n";
++      }
++
++      outfile << "  ] \n";
++
++/* Uncomment if you want color mesh
++      outfile << "color Color { color [1 1 1, 0 1 0, 0 0 1, 1 1 0]} \n"
++                 "colorIndex [\n";
++
++      for (i = 1; i <= nse; i++)
++      {
++        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
++          outfile << endl;
++      }
++
++      outfile << " ] \n"
++*/
++      outfile << "colorPerVertex FALSE \n"
++                 "} } #end of Shape\n"
++               "] } \n";
++
++    }
++
++}
++
++
++
++
++
++
++/*
++ * FEPP .. a finite element package developed at University Linz, Austria
++ */
++void WriteFEPPFormat (const Mesh & mesh,
++                    const CSGeometry & geom,
++                    const string & filename)
++{
++
++  ofstream outfile (filename.c_str());
++
++  if (mesh.GetDimension() == 3)
++
++    {
++
++      // output for FEPP
++
++      int np = mesh.GetNP();
++      int ne = mesh.GetNE();
++      int nse = mesh.GetNSE();
++      int ns = mesh.GetNFD();
++      int i, j;
++
++      outfile.precision(5);
++      outfile.setf (ios::fixed, ios::floatfield);
++      outfile.setf (ios::showpoint);
++
++      outfile << "volumemesh4" << endl;
++      outfile << nse << endl;
++      for (i = 1; i <= nse; i++)
++      {
++        const Element2d & el = mesh.SurfaceElement(i);
++
++        //      int facenr = mesh.facedecoding.Get(el.GetIndex()).surfnr;
++        outfile.width(4);
++        outfile << el.GetIndex() << " ";
++        outfile.width(4);
++        //      outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
++        outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
++        outfile.width(4);
++        outfile << el.GetNP() << "    ";
++        for (j = 1; j <= el.GetNP(); j++)
++          {
++            outfile.width(8);
++            outfile << el.PNum(j);
++          }
++        outfile << "\n";
++      }
++
++
++      outfile << ne << "\n";
++      for (i = 1; i <= ne; i++)
++      {
++        const Element & el = mesh.VolumeElement(i);
++        outfile.width(4);
++        outfile << el.GetIndex() << " ";
++        outfile.width(4);
++        outfile << el.GetNP() << " ";
++        for (j = 1; j <= el.GetNP(); j++)
++          {
++            outfile.width(8);
++            outfile << el.PNum(j);
++          }
++        outfile << "\n";
++      }
++
++      outfile << np << "\n";
++      for (i = 1; i <= np; i++)
++      {
++        const Point3d & p = mesh.Point(i);
++
++        outfile.width(10);
++        outfile << p.X() << " ";
++        outfile.width(9);
++        outfile << p.Y() << " ";
++        outfile.width(9);
++        outfile << p.Z() << "\n";
++      }
++
++      /*
++      if (typ == WRITE_FEPPML)
++      {
++        int nbn =  mesh.mlbetweennodes.Size();
++        outfile << nbn << "\n";
++        for (i = 1; i <= nbn; i++)
++          outfile << mesh.mlbetweennodes.Get(i).I1() << " "
++                  << mesh.mlbetweennodes.Get(i).I2() << "\n";
++
++
++        //      int ncon = mesh.connectedtonode.Size();
++        //      outfile << ncon << "\n";
++        //      for (i = 1; i <= ncon; i++)
++        //        outfile << i << " " << mesh.connectedtonode.Get(i) << endl;
++      }
++      */
++
++
++      // write CSG surfaces
++      if (&geom && geom.GetNSurf() >= ns)
++      {
++        outfile << ns << endl;
++        for (i = 1; i <= ns; i++)
++          geom.GetSurface(mesh.GetFaceDescriptor(i).SurfNr())->Print(outfile);
++      }
++      else
++      outfile << "0" << endl;
++    }
++
++
++  else
++
++    { // 2D fepp format
++
++      ;
++      /*
++      extern SplineGeometry2d * geometry2d;
++      if (geometry2d)
++      Save2DMesh (mesh, &geometry2d->GetSplines(), outfile);
++      else
++      Save2DMesh (mesh, 0, outfile);
++      */
++    }
++}
++
++
++
++
++
++
++/*
++ *  Edge element mesh format
++ *  points, elements, edges
++ */
++
++void WriteEdgeElementFormat (const Mesh & mesh,
++                           const CSGeometry & geom,
++                           const string & filename)
++{
++  cout << "write edge element format" << endl;
++
++  const MeshTopology * top = &mesh.GetTopology();
++  int npoints = mesh.GetNP();
++  int nelements = mesh.GetNE();
++  int nsurfelem = mesh.GetNSE();
++  int nedges = top->GetNEdges();
++  int i, j;
++
++  int inverttets = mparam.inverttets;
++  int invertsurf = mparam.inverttrigs;
++  Array<int> edges;
++
++  ofstream outfile (filename.c_str());
++
++  outfile.precision(6);
++  outfile.setf (ios::fixed, ios::floatfield);
++  outfile.setf (ios::showpoint);
++
++
++  // vertices with coordinates
++  outfile << npoints << "\n";
++  for (i = 1; i <= npoints; i++)
++    {
++      const Point3d & p = mesh.Point(i);
++
++      outfile.width(10);
++      outfile << p.X() << " ";
++      outfile.width(9);
++      outfile << p.Y() << " ";
++      outfile.width(9);
++      outfile << p.Z() << "\n";
++    }
++
++  // element - edge - list
++  outfile << nelements << " " << nedges << "\n";
++  for (i = 1; i <= nelements; i++)
++    {
++      Element el = mesh.VolumeElement(i);
++      if (inverttets)
++              el.Invert();
++      outfile.width(4);
++      outfile << el.GetIndex() << "  ";
++      outfile.width(8);
++      outfile << el.GetNP();
++      for (j = 1; j <= el.GetNP(); j++)
++      {
++        outfile << " ";
++        outfile.width(8);
++        outfile << el.PNum(j);
++      }
++
++      top->GetElementEdges(i,edges);
++      outfile << endl << "      ";
++      outfile.width(8);
++      outfile << edges.Size();
++      for (j=1; j <= edges.Size(); j++)
++      {
++        outfile << " ";
++        outfile.width(8);
++        outfile << edges[j-1];
++      }
++      outfile << "\n";
++
++      // orientation:
++      top->GetElementEdgeOrientations(i,edges);
++      outfile << "              ";
++      for (j=1; j <= edges.Size(); j++)
++      {
++        outfile << " ";
++        outfile.width(8);
++        outfile << edges[j-1];
++      }
++      outfile << "\n";
++    }
++
++  // surface element - edge - list (with boundary conditions)
++  outfile << nsurfelem << "\n";
++  for (i = 1; i <= nsurfelem; i++)
++    {
++      Element2d el = mesh.SurfaceElement(i);
++      if (invertsurf)
++      el.Invert();
++      outfile.width(4);
++      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "  ";
++      outfile.width(8);
++      outfile << el.GetNP();
++      for (j = 1; j <= el.GetNP(); j++)
++      {
++        outfile << " ";
++        outfile.width(8);
++        outfile << el.PNum(j);
++      }
++
++      top->GetSurfaceElementEdges(i,edges);
++      outfile << endl << "      ";
++      outfile.width(8);
++      outfile << edges.Size();
++      for (j=1; j <= edges.Size(); j++)
++      {
++        outfile << " ";
++        outfile.width(8);
++        outfile << edges[j-1];
++      }
++      outfile << "\n";
++    }
++
++
++  int v1, v2;
++  // edge - vertex - list
++  outfile << nedges << "\n";
++  for (i=1; i <= nedges; i++)
++    {
++      top->GetEdgeVertices(i,v1,v2);
++      outfile.width(4);
++      outfile << v1;
++      outfile << " ";
++      outfile.width(8);
++      outfile << v2 << endl;
++    }
++}
++
++
++
++
++
++
++
++
++
++#ifdef OLDSTYLE_WRITE
++
++
++void WriteFile (int typ,
++              const Mesh & mesh,
++              const CSGeometry & geom,
++              const char * filename,
++              const char * geomfile,
++              double h)
++{
++
++
++  int inverttets = mparam.inverttets;
++  int invertsurf = mparam.inverttrigs;
++
++
++
++
++
++
++
++
++  if (typ == WRITE_EDGEELEMENT)
++    {
++      // write edge element file
++      // Peter Harscher, ETHZ
++
++      cout << "Write Edge-Element Format" << endl;
++
++      ofstream outfile (filename);
++
++      int i, j;
++      int ned;
++
++      // hash table representing edges;
++      INDEX_2_HASHTABLE<int> edgeht(mesh.GetNP());
++
++      // list of edges
++      Array<INDEX_2> edgelist;
++
++      // edge (point) on boundary ?
++      BitArray bedge, bpoint(mesh.GetNP());
++
++      static int eledges[6][2] = { { 1, 2 } , { 1, 3 } , { 1, 4 },
++                                 { 2, 3 } , { 2, 4 } , { 3, 4 } };
++
++      // fill hashtable   (point1, point2)  ---->  edgenr
++      for (i = 1; i <= mesh.GetNE(); i++)
++      {
++        const Element & el = mesh.VolumeElement (i);
++        INDEX_2 edge;
++        for (j = 1; j <= 6; j++)
++          {
++            edge.I1() = el.PNum (eledges[j-1][0]);
++            edge.I2() = el.PNum (eledges[j-1][1]);
++            edge.Sort();
++
++            if (!edgeht.Used (edge))
++              {
++                edgelist.Append (edge);
++                edgeht.Set (edge, edgelist.Size());
++              }
++          }
++      }
++
++
++      // set bedges, bpoints
++      bedge.SetSize (edgelist.Size());
++      bedge.Clear();
++      bpoint.Clear();
++
++      for (i = 1; i <= mesh.GetNSE(); i++)
++      {
++        const Element2d & sel = mesh.SurfaceElement(i);
++        for (j = 1; j <= 3; j++)
++          {
++            bpoint.Set (sel.PNum(j));
++
++            INDEX_2 edge;
++            edge.I1() = sel.PNum(j);
++            edge.I2() = sel.PNum(j%3+1);
++            edge.Sort();
++
++            bedge.Set (edgeht.Get (edge));
++          }
++      }
++
++
++
++      outfile << mesh.GetNE() << endl;
++      // write element ---> point
++      for (i = 1; i <= mesh.GetNE(); i++)
++      {
++        const Element & el = mesh.VolumeElement(i);
++
++        outfile.width(8);
++        outfile << i;
++        for (j = 1; j <= 4; j++)
++          {
++            outfile.width(8);
++            outfile << el.PNum(j);
++          }
++        outfile << endl;
++      }
++
++      // write element ---> edge
++      for (i = 1; i <= mesh.GetNE(); i++)
++      {
++        const Element & el = mesh.VolumeElement (i);
++        INDEX_2 edge;
++        for (j = 1; j <= 6; j++)
++          {
++            edge.I1() = el.PNum (eledges[j-1][0]);
++            edge.I2() = el.PNum (eledges[j-1][1]);
++            edge.Sort();
++
++            outfile.width(8);
++            outfile << edgeht.Get (edge);
++          }
++        outfile << endl;
++      }
++
++      // write points
++      outfile << mesh.GetNP() << endl;
++      outfile.precision (6);
++      for (i = 1; i <= mesh.GetNP(); i++)
++      {
++        const Point3d & p = mesh.Point(i);
++
++        for (j = 1; j <= 3; j++)
++          {
++            outfile.width(8);
++            outfile << p.X(j);
++          }
++        outfile << "       "
++                << (bpoint.Test(i) ? "1" : 0) << endl;
++      }
++
++      // write edges
++      outfile << edgelist.Size() << endl;
++      for (i = 1; i <= edgelist.Size(); i++)
++      {
++        outfile.width(8);
++        outfile << edgelist.Get(i).I1();
++        outfile.width(8);
++        outfile << edgelist.Get(i).I2();
++        outfile << "       "
++                << (bedge.Test(i) ? "1" : "0") << endl;
++      }
++    }
++
++
++
++
++}
++#endif
++}
++
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.hpp netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.hpp
+--- netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.hpp       2014-08-29 13:54:02.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.hpp      2019-11-14 16:56:23.222429470 +0300
+@@ -1,166 +1,166 @@
+-#ifndef WRITEUSER\r
+-#define WRITEUSER\r
+-\r
+-/**************************************************************************/\r
+-/* File:    writeuser.hh                                                  */\r
+-/* Authors: many                                                          */\r
+-/* Date:    10. Dec. 97                                                   */\r
+-/**************************************************************************/\r
+-\r
+-\r
+-extern\r
+-void WriteFile (int typ,\r
+-                const Mesh & mesh,\r
+-                const CSGeometry & geom,\r
+-                const char * filename,\r
+-                const char * geomfile = NULL,\r
+-                double h = 0);\r
+-\r
+-\r
+-\r
+-extern\r
+-void ReadFile (Mesh & mesh,\r
+-               const string & filename);\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-extern\r
+-void WriteNeutralFormat (const Mesh & mesh,\r
+-                         const CSGeometry & geom,\r
+-                         const string & filename);\r
+-\r
+-extern\r
+-void WriteSurfaceFormat (const Mesh & mesh,\r
+-                         const string & filename);\r
+-\r
+-extern\r
+-void WriteSTLFormat (const Mesh & mesh,\r
+-                     const string & filename);\r
+-\r
+-\r
+-// Philippose - 16 August 2010\r
+-// Added the STL Extended format in which\r
+-// each face of the geometry is treated as\r
+-// a separate "solid" entity in the STL file\r
+-extern\r
+-void WriteSTLExtFormat (const Mesh & mesh,\r
+-                        const string & filename);\r
+-\r
+-\r
+-extern\r
+-void WriteVRMLFormat (const Mesh & mesh,\r
+-                      bool faces,\r
+-                      const string & filename);\r
+-\r
+-extern\r
+-void WriteFEPPFormat (const Mesh & mesh,\r
+-                      const CSGeometry & geom,\r
+-                      const string & filename);\r
+-\r
+-extern\r
+-void WriteGmshFormat (const Mesh & mesh,\r
+-                      const CSGeometry & geom,\r
+-                      const string & filename);\r
+-\r
+-\r
+-// Philippose - 29/01/2009\r
+-// Added GMSH v2.xx Mesh Export support\r
+-void WriteGmsh2Format (const Mesh & mesh,\r
+-                       const CSGeometry & geom,\r
+-                       const string & filename);\r
+-\r
+-\r
+-// Philippose - 25/10/2009\r
+-// Added OpenFOAM 1.5+ Mesh Export support\r
+-extern \r
+-void WriteOpenFOAM15xFormat (const Mesh & mesh, \r
+-                             const string & casename,\r
+-                                                       const bool compressed);\r
+-\r
+-\r
+-extern\r
+-void WriteUserChemnitz (const Mesh & mesh,\r
+-                        const string & filename);\r
+-\r
+-extern\r
+-void WriteJCMFormat (const Mesh & mesh,\r
+-                     const CSGeometry & geom,\r
+-                     const string & filename);\r
+-\r
+-\r
+-extern\r
+-void WriteDiffPackFormat (const Mesh & mesh,\r
+-                          const CSGeometry & geom,\r
+-                          const string & filename);\r
+-\r
+-extern\r
+-void WriteTochnogFormat (const Mesh & mesh,\r
+-                         const string & filename);\r
+-\r
+-extern\r
+-void WriteTecPlotFormat (const Mesh & mesh,\r
+-                         const CSGeometry & geom,\r
+-                         const string & filename);\r
+-\r
+-extern\r
+-void WriteAbaqusFormat (const Mesh & mesh,\r
+-                        const string & filename);\r
+-\r
+-extern\r
+-void WriteFluentFormat (const Mesh & mesh,\r
+-                        const string & filename);\r
+-\r
+-extern\r
+-void WritePermasFormat (const Mesh & mesh,\r
+-                        const string & filename);\r
+-\r
+-extern\r
+-void WriteFEAPFormat (const Mesh & mesh,\r
+-                      const string & filename);\r
+-\r
+-extern\r
+-void WriteElmerFormat (const Mesh & mesh,\r
+-                       const string & filename);\r
+-\r
+-\r
+-extern\r
+-void WriteEdgeElementFormat (const Mesh & mesh,\r
+-                             const CSGeometry & geom,\r
+-                             const string & filename);\r
+-\r
+-\r
+-\r
+-#ifdef OLIVER\r
+-extern\r
+-void WriteTETFormat (const Mesh & mesh,\r
+-                     const string & filename);\r
+-\r
+-#endif\r
+-\r
+-extern void ReadTETFormat (Mesh & mesh,\r
+-                           const string & filename);\r
+-\r
+-\r
+-extern void ReadFNFFormat (Mesh & mesh,\r
+-                           const string & filename);\r
+-\r
+-\r
+-\r
+-void WriteDolfinFormat (const Mesh & mesh,\r
+-                        const string & filename);\r
+-\r
+-\r
+-extern void RegisterUserFormats (Array<const char*> & names,\r
+-                                 Array<const char*> & extensions);\r
+-\r
+-\r
+-extern bool WriteUserFormat (const string & format,\r
+-                             const Mesh & mesh,\r
+-                             const NetgenGeometry & geom,\r
+-                             const string & filename);\r
+-\r
+-#endif\r
+-\r
++#ifndef WRITEUSER
++#define WRITEUSER
++
++/**************************************************************************/
++/* File:    writeuser.hh                                                  */
++/* Authors: many                                                          */
++/* Date:    10. Dec. 97                                                   */
++/**************************************************************************/
++
++
++extern
++void WriteFile (int typ,
++                const Mesh & mesh,
++                const CSGeometry & geom,
++                const char * filename,
++                const char * geomfile = NULL,
++                double h = 0);
++
++
++
++extern
++void ReadFile (Mesh & mesh,
++               const string & filename);
++
++
++
++
++
++
++extern
++void WriteNeutralFormat (const Mesh & mesh,
++                         const CSGeometry & geom,
++                         const string & filename);
++
++extern
++void WriteSurfaceFormat (const Mesh & mesh,
++                         const string & filename);
++
++extern
++void WriteSTLFormat (const Mesh & mesh,
++                     const string & filename);
++
++
++// Philippose - 16 August 2010
++// Added the STL Extended format in which
++// each face of the geometry is treated as
++// a separate "solid" entity in the STL file
++extern
++void WriteSTLExtFormat (const Mesh & mesh,
++                        const string & filename);
++
++
++extern
++void WriteVRMLFormat (const Mesh & mesh,
++                      bool faces,
++                      const string & filename);
++
++extern
++void WriteFEPPFormat (const Mesh & mesh,
++                      const CSGeometry & geom,
++                      const string & filename);
++
++extern
++void WriteGmshFormat (const Mesh & mesh,
++                      const CSGeometry & geom,
++                      const string & filename);
++
++
++// Philippose - 29/01/2009
++// Added GMSH v2.xx Mesh Export support
++void WriteGmsh2Format (const Mesh & mesh,
++                       const CSGeometry & geom,
++                       const string & filename);
++
++
++// Philippose - 25/10/2009
++// Added OpenFOAM 1.5+ Mesh Export support
++extern 
++void WriteOpenFOAM15xFormat (const Mesh & mesh, 
++                             const string & casename,
++                                                       const bool compressed);
++
++
++extern
++void WriteUserChemnitz (const Mesh & mesh,
++                        const string & filename);
++
++extern
++void WriteJCMFormat (const Mesh & mesh,
++                     const CSGeometry & geom,
++                     const string & filename);
++
++
++extern
++void WriteDiffPackFormat (const Mesh & mesh,
++                          const CSGeometry & geom,
++                          const string & filename);
++
++extern
++void WriteTochnogFormat (const Mesh & mesh,
++                         const string & filename);
++
++extern
++void WriteTecPlotFormat (const Mesh & mesh,
++                         const CSGeometry & geom,
++                         const string & filename);
++
++extern
++void WriteAbaqusFormat (const Mesh & mesh,
++                        const string & filename);
++
++extern
++void WriteFluentFormat (const Mesh & mesh,
++                        const string & filename);
++
++extern
++void WritePermasFormat (const Mesh & mesh,
++                        const string & filename);
++
++extern
++void WriteFEAPFormat (const Mesh & mesh,
++                      const string & filename);
++
++extern
++void WriteElmerFormat (const Mesh & mesh,
++                       const string & filename);
++
++
++extern
++void WriteEdgeElementFormat (const Mesh & mesh,
++                             const CSGeometry & geom,
++                             const string & filename);
++
++
++
++#ifdef OLIVER
++extern
++void WriteTETFormat (const Mesh & mesh,
++                     const string & filename);
++
++#endif
++
++extern void ReadTETFormat (Mesh & mesh,
++                           const string & filename);
++
++
++extern void ReadFNFFormat (Mesh & mesh,
++                           const string & filename);
++
++
++
++void WriteDolfinFormat (const Mesh & mesh,
++                        const string & filename);
++
++
++extern void RegisterUserFormats (Array<const char*> & names,
++                                 Array<const char*> & extensions);
++
++
++extern bool WriteUserFormat (const string & format,
++                             const Mesh & mesh,
++                             const NetgenGeometry & geom,
++                             const string & filename);
++
++#endif
++
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am
+--- netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am   2014-08-29 13:54:05.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am  2019-11-14 16:56:25.162375168 +0300
+@@ -15,7 +15,7 @@
+ METASOURCES = AUTO
+-lib_LTLIBRARIES = libmesh.la
++noinst_LTLIBRARIES = libmesh.la
+ libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
+       clusters.cpp curvedelems.cpp delaunay.cpp delaunay2d.cpp            \
+@@ -30,8 +30,5 @@
+       topology.cpp triarls.cpp validate.cpp zrefine.cpp bcfunctions.cpp   \
+       parallelmesh.cpp  paralleltop.cpp  paralleltop.hpp basegeom.cpp 
+-libmesh_la_LIBADD =  $(top_builddir)/libsrc/linalg/libla.la \
+-      $(top_builddir)/libsrc/gprim/libgprim.la \
+-      $(top_builddir)/libsrc/general/libgen.la \
+-      -lz
++libmesh_la_LIBADD = -lz
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp
+--- netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp    2014-08-29 13:54:05.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp   2019-11-14 16:56:24.618390395 +0300
+@@ -75,6 +75,9 @@
+   static int timer = NgProfiler::CreateTimer ("FindInnerPoint");
+   NgProfiler::RegionTimer reg (timer);
++  if ( points.Size() < 3 )
++    return 0;
++
+   Array<Vec3d> a;
+   Array<double> c;
+   Mat<3> m, inv;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp  2014-08-29 13:54:05.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp 2019-11-14 16:56:24.510393419 +0300
+@@ -1219,6 +1219,7 @@
+             tetused = 0;
+             tetused[0] = 1;
++              int nbtetused = 0;
+             for (int l = 2; l < nsuround; l++)
+               {
+@@ -1239,10 +1240,12 @@
+                             
+                             tetused[k] = 1; 
+                             suroundpts[l] = newpi;
++                              ++nbtetused;
+                           }                   
+                     }
+               }
+-
++              if ( nbtetused < nsuround )
++                continue;
+             
+             bad1 = 0;
+             for (int k = 0; k < nsuround; k++)
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp  2014-08-29 13:54:05.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp 2019-11-14 16:56:24.906382333 +0300
+@@ -1,4 +1,5 @@
+ #include <mystdlib.h>
++#include <float.h> // to get DBL_MIN defined
+ #include "meshing.hpp"  
+@@ -666,7 +667,8 @@
+         double det = trans.Det();
+-        if (det <= 0)
++        // if (det <= 0)
++        if (det <= DBL_MIN) // avoid FPE
+           err += 1e12;
+         else
+           err += frob * frob / det;
+@@ -722,7 +724,8 @@
+             double det = trans(0,0)*trans(1,1)-trans(1,0)*trans(0,1);
+-            if (det <= 0)
++            // if (det <= 0)
++            if (det <= DBL_MIN)  // avoid FPE
+               {
+                 dd = 0;
+                 return 1e12;
+@@ -806,7 +809,8 @@
+           = dtrans(0,0) * trans(1,1) - trans(0,1) * dtrans(1,0)
+           + trans(0,0) * dtrans(1,1) - dtrans(0,1) * trans(1,0);
+-        if (det <= 0)
++        // if (det <= 0)
++        if (det <= DBL_MIN) // avoid FPE
+           err += 1e12;
+         else
+           {
+@@ -856,7 +860,8 @@
+         frob /= 2;
+         double det = trans.Det();
+-        if (det <= 0)
++        //if (det <= 0)
++        if (det <= DBL_MIN) // avoid FPE
+           err += 1e12;
+         else
+           err += frob * frob / det;
+@@ -1864,7 +1869,8 @@
+       case PYRAMID:
+         {
+           double noz = 1-p(2);
+-          if (noz == 0.0) noz = 1e-10;
++          //if (noz == 0.0) noz = 1e-10;
++          if (noz <= DBL_MIN) noz = 1e-10; // avoid FPE
+           double xi  = p(0) / noz;
+           double eta = p(1) / noz;
+@@ -2030,7 +2036,8 @@
+         double det = -trans.Det();
+       
+-        if (det <= 0)
++        //if (det <= 0)
++        if (det <= DBL_MIN) // avoid FPE
+           err += 1e12;
+         else
+           err += frob * frob * frob / det;
+@@ -2102,7 +2109,8 @@
+         ddet *= -1;
+       
+-        if (det <= 0)
++        //if (det <= 0)
++        if (det <= DBL_MIN) // avoid FPE
+           err += 1e12;
+         else
+           {
+@@ -2184,7 +2192,7 @@
+       
+         det *= -1;
+       
+-        if (det <= 0)
++        if (det <= DBL_MIN)
+           err += 1e12;
+         else
+           {
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp
+--- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp  2014-08-29 13:54:05.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp 2019-11-14 16:56:24.310399017 +0300
+@@ -15,6 +15,7 @@
+     Classes for NETGEN
+   */
++class Mesh; // added due to compilation errors on some platforms
+   enum ELEMENT_TYPE { 
+@@ -360,7 +361,7 @@
+         {
+ #ifdef DEBUG
+           if (typ != QUAD && typ != QUAD6 && typ != QUAD8)
+-            PrintSysError ("element2d::GetNV not implemented for typ", typ)
++            PrintSysError ("element2d::GetNV not implemented for typ", typ);
+ #endif
+           return 4;
+         }
+@@ -618,7 +619,7 @@
+         return 8;
+       default:
+ #ifdef DEBUG
+-        PrintSysError ("Element3d::GetNV not implemented for typ ", typ)
++        PrintSysError ("Element3d::GetNV not implemented for typ ", typ);
+ #endif
+           ;
+       }
+@@ -682,7 +683,7 @@
+       case PRISM12: return 5;
+       default:
+ #ifdef DEBUG
+-        PrintSysError ("element3d::GetNFaces not implemented for typ", typ)
++        PrintSysError ("element3d::GetNFaces not implemented for typ", typ);
+ #endif
+           ;
+       }
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am       2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am      2019-11-14 16:56:24.298399352 +0300
+@@ -14,10 +14,10 @@
+ METASOURCES = AUTO
+-lib_LTLIBRARIES = libocc.la
++noinst_LTLIBRARIES = libocc.la
+ if NGGUI
+-lib_LTLIBRARIES += liboccvis.la 
++lib_LTLIBRARIES = liboccvis.la 
+ endif
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx     2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx    2019-11-14 16:56:23.574419617 +0300
+@@ -47,9 +47,7 @@
+ #include <TopOpeBRep_EdgesIntersector.hxx>
+ #include <TopOpeBRep_Point2d.hxx>
+ #include <TopTools_ListIteratorOfListOfShape.hxx>
+-#include <TopTools_ListOfShape.hxx>
+ #include <TopTools_MapIteratorOfMapOfShape.hxx>
+-#include <TopTools_MapOfShape.hxx>
+ #include <TopoDS.hxx>
+ #include <TopoDS_Edge.hxx>
+ #include <TopoDS_Vertex.hxx>
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx     2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx    2019-11-14 16:56:24.278399912 +0300
+@@ -27,7 +27,9 @@
+ #ifndef _Partition_Inter2d_HeaderFile
+ #define _Partition_Inter2d_HeaderFile
+-#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
++#include <Standard_Version.hxx>
++
++#if OCC_VERSION_MAJOR < 7
+ #include <Handle_BRepAlgo_AsDes.hxx>
+ #endif
+ #ifndef _Standard_Real_HeaderFile
+@@ -36,11 +38,13 @@
+ #ifndef _Standard_Boolean_HeaderFile
+ #include <Standard_Boolean.hxx>
+ #endif
++
++#include <TopTools_MapOfShape.hxx>
++#include <TopTools_ListOfShape.hxx>
++
+ class BRepAlgo_AsDes;
+ class TopoDS_Face;
+-class TopTools_MapOfShape;
+ class TopoDS_Vertex;
+-class TopTools_ListOfShape;
+ class TopoDS_Edge;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx     2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx    2019-11-14 16:56:23.426423760 +0300
+@@ -48,7 +48,6 @@
+ #include <TopOpeBRepTool_BoxSort.hxx>
+ #include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
+ #include <TopTools_ListIteratorOfListOfShape.hxx>
+-#include <TopTools_ListOfShape.hxx>
+ #include <TopoDS.hxx>
+ #include <TopoDS_Compound.hxx>
+ #include <TopoDS_Edge.hxx>
+@@ -206,7 +205,7 @@
+   Handle (Geom_Surface) S   = BRep_Tool::Surface(F,L);
+   if (S->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
+-    S = (*(Handle_Geom_RectangularTrimmedSurface*)&S)->BasisSurface();
++    S = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
+   }
+   if (!S->IsUPeriodic() && !S->IsVPeriodic())
+     return;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx     2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx    2019-11-14 16:56:23.542420513 +0300
+@@ -27,7 +27,9 @@
+ #ifndef _Partition_Inter3d_HeaderFile
+ #define _Partition_Inter3d_HeaderFile
+-#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
++#include <Standard_Version.hxx>
++
++#if OCC_VERSION_MAJOR < 7
+ #include <Handle_BRepAlgo_AsDes.hxx>
+ #endif
+ #ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
+@@ -36,6 +38,9 @@
+ #ifndef _TopTools_MapOfShape_HeaderFile
+ #include <TopTools_MapOfShape.hxx>
+ #endif
++#ifndef _TopTools_ListOfShape_HeaderFile
++#include <TopTools_ListOfShape.hxx>
++#endif
+ #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
+ #include <TopTools_DataMapOfShapeShape.hxx>
+ #endif
+@@ -43,10 +48,7 @@
+ #include <Standard_Boolean.hxx>
+ #endif
+ class BRepAlgo_AsDes;
+-class TopTools_ListOfShape;
+-class TopTools_DataMapOfShapeShape;
+ class TopoDS_Face;
+-class TopTools_MapOfShape;
+ class TopoDS_Shape;
+ class TopoDS_Vertex;
+ class TopoDS_Edge;
+@@ -83,13 +85,13 @@
+    void FacesPartition(const TopoDS_Face& F1,const TopoDS_Face& F2) ;
+    Standard_Boolean IsDone(const TopoDS_Face& F1,const TopoDS_Face& F2) const;
+    TopTools_MapOfShape& TouchedFaces() ;
+-   Handle_BRepAlgo_AsDes AsDes() const;
++   Handle(BRepAlgo_AsDes) AsDes() const;
+    TopTools_MapOfShape& NewEdges() ;
+    Standard_Boolean HasSameDomainF(const TopoDS_Shape& F) const;
+    Standard_Boolean IsSameDomainF(const TopoDS_Shape& F1,const TopoDS_Shape& F2) const;
+    const TopTools_ListOfShape& SameDomain(const TopoDS_Face& F) const;
+    TopoDS_Vertex ReplaceSameDomainV(const TopoDS_Vertex& V,const TopoDS_Edge& E) const;
+-   Handle_BRepAlgo_AsDes SectionEdgesAD() const;
++   Handle(BRepAlgo_AsDes) SectionEdgesAD() const;
+    Standard_Boolean IsSectionEdge(const TopoDS_Edge& E) const;
+    Standard_Boolean HasSectionEdge(const TopoDS_Face& F) const;
+    Standard_Boolean IsSplitOn(const TopoDS_Edge& NewE,const TopoDS_Edge& OldE,const TopoDS_Face& F) const;
+@@ -121,11 +123,11 @@
+    // Fields PRIVATE
+    //
+-   Handle_BRepAlgo_AsDes myAsDes;
++   Handle(BRepAlgo_AsDes) myAsDes;
+    TopTools_DataMapOfShapeListOfShape myDone;
+    TopTools_MapOfShape myTouched;
+    TopTools_MapOfShape myNewEdges;
+-   Handle_BRepAlgo_AsDes mySectionEdgesAD;
++   Handle(BRepAlgo_AsDes) mySectionEdgesAD;
+    TopTools_DataMapOfShapeListOfShape mySameDomainFM;
+    TopTools_DataMapOfShapeShape mySameDomainVM;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx        2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx       2019-11-14 16:56:23.458422865 +0300
+@@ -38,8 +38,6 @@
+ #endif
+ class TopoDS_Face;
+ class TopoDS_Edge;
+-class TopTools_ListOfShape;
+-
+ #ifndef _Standard_HeaderFile
+ #include <Standard.hxx>
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx      2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx     2019-11-14 16:56:24.290399576 +0300
+@@ -210,7 +210,7 @@
+     Cc->D1(uc, PC, CTg1);
+     if (!isForward) CTg1.Reverse();
+-    Standard_Real anglemin = 3 * PI, tolAng = 1.e-8;
++    Standard_Real anglemin = 3 * M_PI, tolAng = 1.e-8;
+     // select an edge whose first derivative is most left of CTg1
+     // ie an angle between Tg1 and CTg1 is least
+@@ -234,7 +234,7 @@
+       // -PI < angle < PI
+       Standard_Real angle = Tg1.Angle(CTg1);
+-      if (PI - Abs(angle) <= tolAng)
++      if (M_PI - Abs(angle) <= tolAng)
+       {
+         // an angle is too close to PI; assure that an angle sign really
+         // reflects an edge position: +PI - an edge is worst,
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx      2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx     2019-11-14 16:56:23.382424992 +0300
+@@ -24,7 +24,6 @@
+ #endif
+ class TopoDS_Face;
+ class TopoDS_Edge;
+-class TopTools_ListOfShape;
+ class BRepAlgo_Image;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx      2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx     2019-11-14 16:56:23.562419954 +0300
+@@ -13,6 +13,9 @@
+ #ifndef _TopTools_ListOfShape_HeaderFile
+ #include <TopTools_ListOfShape.hxx>
+ #endif
++#ifndef _TopTools_MapOfOrientedShape_HeaderFile
++#include <TopTools_MapOfOrientedShape.hxx>
++#endif
+ #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
+ #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
+ #endif
+@@ -23,8 +26,6 @@
+ #include <Standard_Real.hxx>
+ #endif
+ class TopoDS_Shape;
+-class TopTools_ListOfShape;
+-class TopTools_MapOfOrientedShape;
+ class TopoDS_Edge;
+ class TopoDS_Face;
+ class gp_Vec;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx     2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx    2019-11-14 16:56:23.814412900 +0300
+@@ -48,7 +48,6 @@
+ #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
+ #include <TopTools_IndexedMapOfShape.hxx>
+ #include <TopTools_ListIteratorOfListOfShape.hxx>
+-#include <TopTools_ListOfShape.hxx>
+ #include <TopTools_MapIteratorOfMapOfShape.hxx>
+ #include <TopTools_SequenceOfShape.hxx>
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx
+--- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx     2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx    2019-11-14 16:56:23.802413236 +0300
+@@ -28,9 +28,6 @@
+ #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
+ #include <TopTools_DataMapOfShapeShape.hxx>
+ #endif
+-#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
+-#include <Handle_BRepAlgo_AsDes.hxx>
+-#endif
+ #ifndef _BRepAlgo_Image_HeaderFile
+ #include <BRepAlgo_Image.hxx>
+ #endif
+@@ -45,7 +42,6 @@
+ #endif
+ class BRepAlgo_AsDes;
+ class TopoDS_Shape;
+-class TopTools_ListOfShape;
+ class TopoDS_Edge;
+@@ -129,7 +125,7 @@
+    TopTools_DataMapOfShapeShape myFaceShapeMap;
+    TopTools_DataMapOfShapeShape myInternalFaces;
+    TopTools_DataMapOfShapeShape myIntNotClFaces;
+-   Handle_BRepAlgo_AsDes myAsDes;
++   Handle(BRepAlgo_AsDes) myAsDes;
+    BRepAlgo_Image myImagesFaces;
+    BRepAlgo_Image myImagesEdges;
+    BRepAlgo_Image myImageShape;
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp       2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp      2019-11-14 16:56:23.822412676 +0300
+@@ -28,7 +28,7 @@
+ #include <BRepAlgoAPI_Common.hxx>
+ #include <BRepAlgoAPI_Fuse.hxx>
+ #include <BRepAlgoAPI_Section.hxx>
+-#include <BRepOffsetAPI_Sewing.hxx>
++//#include <BRepOffsetAPI_Sewing.hxx>
+ //#include <BRepAlgo_Sewing.hxx>
+ #include <BRepOffsetAPI_MakeOffsetShape.hxx>
+ #include <ShapeFix_Shape.hxx>
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp    2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp   2019-11-14 16:56:23.482422193 +0300
+@@ -1,1467 +1,1570 @@
+-#ifdef OCCGEOMETRY\r
+-\r
+-#include <mystdlib.h>\r
+-#include <occgeom.hpp>\r
+-#include <meshing.hpp>\r
+-\r
+-\r
+-namespace netgen\r
+-{\r
+-\r
+-#include "occmeshsurf.hpp"\r
+-\r
+-#define TCL_OK 0\r
+-#define TCL_ERROR 1\r
+-\r
+-#define DIVIDEEDGESECTIONS 1000\r
+-#define IGNORECURVELENGTH 1e-4\r
+-#define VSMALL 1e-10\r
+-\r
+-\r
+-   bool merge_solids = 1;\r
+-\r
+-\r
+-  // can you please explain what you intend to compute here (JS) !!!\r
+-   double Line :: Dist (Line l)\r
+-   {\r
+-      Vec<3> n = p1-p0;\r
+-      Vec<3> q = l.p1-l.p0;\r
+-      double nq = n*q;\r
+-\r
+-      Point<3> p = p0 + 0.5*n;\r
+-      double lambda = (p-l.p0)*n / (nq + VSMALL);\r
+-\r
+-      if (lambda >= 0 && lambda <= 1)\r
+-      {\r
+-         double d = (p-l.p0-lambda*q).Length();\r
+-         //        if (d < 1e-3) d = 1e99;\r
+-         return d;\r
+-      }\r
+-      else\r
+-         return 1e99;\r
+-   }\r
+-\r
+-\r
+-\r
+-   double Line :: Length ()\r
+-   {\r
+-      return (p1-p0).Length();\r
+-   }\r
+-\r
+-\r
+-\r
+-   inline Point<3> occ2ng (const gp_Pnt & p)\r
+-   {\r
+-      return  Point<3> (p.X(), p.Y(), p.Z());\r
+-   }\r
+-\r
+-\r
+-\r
+-   double ComputeH (double kappa)\r
+-   {\r
+-      double hret;\r
+-      kappa *= mparam.curvaturesafety;\r
+-\r
+-      if (mparam.maxh * kappa < 1)\r
+-         hret = mparam.maxh;\r
+-      else\r
+-         hret = 1 / (kappa + VSMALL);\r
+-\r
+-      if (mparam.maxh < hret)\r
+-         hret = mparam.maxh;\r
+-\r
+-      return (hret);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,\r
+-                           BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)\r
+-   {\r
+-      int ls = -1;\r
+-\r
+-      gp_Pnt pnt0,pnt1,pnt2;\r
+-\r
+-      prop->SetParameters (par0.X(), par0.Y());\r
+-      pnt0 = prop->Value();\r
+-\r
+-      prop->SetParameters (par1.X(), par1.Y());\r
+-      pnt1 = prop->Value();\r
+-\r
+-      prop->SetParameters (par2.X(), par2.Y());\r
+-      pnt2 = prop->Value();\r
+-\r
+-      double aux;\r
+-      double maxside = pnt0.Distance(pnt1);\r
+-      ls = 2;\r
+-      aux = pnt1.Distance(pnt2);\r
+-      if(aux > maxside)\r
+-      {\r
+-         maxside = aux;\r
+-         ls = 0;\r
+-      }\r
+-      aux = pnt2.Distance(pnt0);\r
+-      if(aux > maxside)\r
+-      {\r
+-         maxside = aux;\r
+-         ls = 1;\r
+-      }\r
+-\r
+-\r
+-\r
+-      gp_Pnt2d parmid;\r
+-\r
+-      parmid.SetX( (par0.X()+par1.X()+par2.X()) / 3 );\r
+-      parmid.SetY( (par0.Y()+par1.Y()+par2.Y()) / 3 );\r
+-\r
+-      if (depth%3 == 0)\r
+-      {\r
+-         double curvature = 0;\r
+-\r
+-         prop->SetParameters (parmid.X(), parmid.Y());\r
+-         if (!prop->IsCurvatureDefined())\r
+-         {\r
+-            (*testout) << "curvature not defined!" << endl;\r
+-            return;\r
+-         }\r
+-         curvature = max(fabs(prop->MinCurvature()),\r
+-            fabs(prop->MaxCurvature()));\r
+-\r
+-         prop->SetParameters (par0.X(), par0.Y());\r
+-         if (!prop->IsCurvatureDefined())\r
+-         {\r
+-            (*testout) << "curvature not defined!" << endl;\r
+-            return;\r
+-         }\r
+-         curvature = max(curvature,max(fabs(prop->MinCurvature()),\r
+-            fabs(prop->MaxCurvature())));\r
+-\r
+-         prop->SetParameters (par1.X(), par1.Y());\r
+-         if (!prop->IsCurvatureDefined())\r
+-         {\r
+-            (*testout) << "curvature not defined!" << endl;\r
+-            return;\r
+-         }\r
+-         curvature = max(curvature,max(fabs(prop->MinCurvature()),\r
+-            fabs(prop->MaxCurvature())));\r
+-\r
+-         prop->SetParameters (par2.X(), par2.Y());\r
+-         if (!prop->IsCurvatureDefined())\r
+-         {\r
+-            (*testout) << "curvature not defined!" << endl;\r
+-            return;\r
+-         }\r
+-         curvature = max(curvature,max(fabs(prop->MinCurvature()),\r
+-            fabs(prop->MaxCurvature())));\r
+-\r
+-         //(*testout) << "curvature " << curvature << endl;\r
+-\r
+-         if (curvature < 1e-3)\r
+-         {\r
+-            //(*testout) << "curvature too small (" << curvature << ")!" << endl;\r
+-            return;\r
+-            // return war bis 10.2.05 auskommentiert\r
+-         }\r
+-\r
+-\r
+-\r
+-         h = ComputeH (curvature+1e-10);\r
+-\r
+-         if(h < 1e-4*maxside)\r
+-            return;\r
+-\r
+-\r
+-         if (h > 30) return;\r
+-      }\r
+-\r
+-      if (h < maxside && depth < 10)\r
+-      {\r
+-         //cout << "\r h " << h << flush;\r
+-         gp_Pnt2d pm;\r
+-\r
+-         //cout << "h " << h << " maxside " << maxside << " depth " << depth << endl;\r
+-         //cout << "par0 " << par0.X() << " " << par0.Y()\r
+-         //<< " par1 " << par1.X() << " " << par1.Y()\r
+-         //   << " par2 " << par2.X() << " " << par2.Y()<< endl;\r
+-\r
+-         if(ls == 0)\r
+-         {\r
+-            pm.SetX(0.5*(par1.X()+par2.X())); pm.SetY(0.5*(par1.Y()+par2.Y()));\r
+-            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);\r
+-            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);\r
+-         }\r
+-         else if(ls == 1)\r
+-         {\r
+-            pm.SetX(0.5*(par0.X()+par2.X())); pm.SetY(0.5*(par0.Y()+par2.Y()));\r
+-            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);\r
+-            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);\r
+-         }\r
+-         else if(ls == 2)\r
+-         {\r
+-            pm.SetX(0.5*(par0.X()+par1.X())); pm.SetY(0.5*(par0.Y()+par1.Y()));\r
+-            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);\r
+-            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);\r
+-         }\r
+-\r
+-      }\r
+-      else\r
+-      {\r
+-         gp_Pnt pnt;\r
+-         Point3d p3d;\r
+-\r
+-         prop->SetParameters (parmid.X(), parmid.Y());\r
+-         pnt = prop->Value();\r
+-         p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());\r
+-         mesh.RestrictLocalH (p3d, h);\r
+-\r
+-         p3d = Point3d(pnt0.X(), pnt0.Y(), pnt0.Z());\r
+-         mesh.RestrictLocalH (p3d, h);\r
+-\r
+-         p3d = Point3d(pnt1.X(), pnt1.Y(), pnt1.Z());\r
+-         mesh.RestrictLocalH (p3d, h);\r
+-\r
+-         p3d = Point3d(pnt2.X(), pnt2.Y(), pnt2.Z());\r
+-         mesh.RestrictLocalH (p3d, h);\r
+-\r
+-         //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;\r
+-\r
+-      }\r
+-   }\r
+-\r
+-\r
+-\r
+-   void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,\r
+-                    Array<double> & params, Mesh & mesh)\r
+-   {\r
+-      double s0, s1;\r
+-      double maxh = mparam.maxh;\r
+-      int nsubedges = 1;\r
+-      gp_Pnt pnt, oldpnt;\r
+-      double svalue[DIVIDEEDGESECTIONS];\r
+-\r
+-      GProp_GProps system;\r
+-      BRepGProp::LinearProperties(edge, system);\r
+-      double L = system.Mass();\r
+-\r
+-      Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);\r
+-\r
+-      double hvalue[DIVIDEEDGESECTIONS+1];\r
+-      hvalue[0] = 0;\r
+-      pnt = c->Value(s0);\r
+-\r
+-      double olddist = 0;\r
+-      double dist = 0;\r
+-\r
+-      int tmpVal = (int)(DIVIDEEDGESECTIONS);\r
+-\r
+-      for (int i = 1; i <= tmpVal; i++)\r
+-      {\r
+-         oldpnt = pnt;\r
+-         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));\r
+-         hvalue[i] = hvalue[i-1] +\r
+-            1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*\r
+-            pnt.Distance(oldpnt);\r
+-\r
+-         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))\r
+-         //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;\r
+-\r
+-         olddist = dist;\r
+-         dist = pnt.Distance(oldpnt);\r
+-      }\r
+-\r
+-      //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));\r
+-      nsubedges = max (1, int(floor(hvalue[DIVIDEEDGESECTIONS]+0.5)));\r
+-\r
+-      ps.SetSize(nsubedges-1);\r
+-      params.SetSize(nsubedges+1);\r
+-\r
+-      int i = 1;\r
+-      int i1 = 0;\r
+-      do\r
+-      {\r
+-         if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)\r
+-         {\r
+-            params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);\r
+-            pnt = c->Value(params[i]);\r
+-            ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));\r
+-            i++;\r
+-         }\r
+-         i1++;\r
+-         if (i1 > DIVIDEEDGESECTIONS)\r
+-         {\r
+-            nsubedges = i;\r
+-            ps.SetSize(nsubedges-1);\r
+-            params.SetSize(nsubedges+1);\r
+-            cout << "divide edge: local h too small" << endl;\r
+-         }\r
+-      } while (i < nsubedges);\r
+-\r
+-      params[0] = s0;\r
+-      params[nsubedges] = s1;\r
+-\r
+-      if (params[nsubedges] <= params[nsubedges-1])\r
+-      {\r
+-         cout << "CORRECTED" << endl;\r
+-         ps.SetSize (nsubedges-2);\r
+-         params.SetSize (nsubedges);\r
+-         params[nsubedges] = s1;\r
+-      }\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCFindEdges (OCCGeometry & geom, Mesh & mesh)\r
+-   {\r
+-      const char * savetask = multithread.task;\r
+-      multithread.task = "Edge meshing";\r
+-\r
+-      (*testout) << "edge meshing" << endl;\r
+-\r
+-      int nvertices = geom.vmap.Extent();\r
+-      int nedges = geom.emap.Extent();\r
+-\r
+-      (*testout) << "nvertices = " << nvertices << endl;\r
+-      (*testout) << "nedges = " << nedges << endl;\r
+-\r
+-      double eps = 1e-6 * geom.GetBoundingBox().Diam();\r
+-\r
+-      for (int i = 1; i <= nvertices; i++)\r
+-      {\r
+-         gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));\r
+-         MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );\r
+-\r
+-         bool exists = 0;\r
+-         if (merge_solids)\r
+-            for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)\r
+-               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)\r
+-               {\r
+-                  exists = 1;\r
+-                  break;\r
+-               }\r
+-\r
+-               if (!exists)\r
+-                  mesh.AddPoint (mp);\r
+-      }\r
+-\r
+-      (*testout) << "different vertices = " << mesh.GetNP() << endl;\r
+-\r
+-\r
+-      int first_ep = mesh.GetNP()+1;\r
+-\r
+-      Array<int> face2solid[2];\r
+-      for (int i = 0; i<2; i++)\r
+-      {\r
+-         face2solid[i].SetSize (geom.fmap.Extent());\r
+-         face2solid[i] = 0;\r
+-      }\r
+-\r
+-      int solidnr = 0;\r
+-      for (TopExp_Explorer exp0(geom.shape, TopAbs_SOLID); exp0.More(); exp0.Next())\r
+-      {\r
+-         solidnr++;\r
+-         for (TopExp_Explorer exp1(exp0.Current(), TopAbs_FACE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Face face = TopoDS::Face(exp1.Current());\r
+-            int facenr = geom.fmap.FindIndex(face);\r
+-\r
+-            if (face2solid[0][facenr-1] == 0)\r
+-               face2solid[0][facenr-1] = solidnr;\r
+-            else\r
+-               face2solid[1][facenr-1] = solidnr;\r
+-         }\r
+-      }\r
+-\r
+-\r
+-      int total = 0;\r
+-      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)\r
+-         for (TopExp_Explorer exp2(geom.fmap(i3), TopAbs_WIRE); exp2.More(); exp2.Next())\r
+-            for (TopExp_Explorer exp3(exp2.Current(), TopAbs_EDGE); exp3.More(); exp3.Next())\r
+-               total++;\r
+-\r
+-\r
+-      int facenr = 0;\r
+-      int edgenr = 0;\r
+-\r
+-\r
+-      (*testout) << "faces = " << geom.fmap.Extent() << endl;\r
+-      int curr = 0;\r
+-\r
+-      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)\r
+-      {\r
+-         TopoDS_Face face = TopoDS::Face(geom.fmap(i3));\r
+-         facenr = geom.fmap.FindIndex (face);       // sollte doch immer == i3 sein ??? JS\r
+-\r
+-         int solidnr0 = face2solid[0][i3-1];\r
+-         int solidnr1 = face2solid[1][i3-1];\r
+-\r
+-         /* auskommentiert am 3.3.05 von robert\r
+-         for (exp2.Init (geom.somap(solidnr0), TopAbs_FACE); exp2.More(); exp2.Next())\r
+-         {\r
+-         TopoDS_Face face2 = TopoDS::Face(exp2.Current());\r
+-         if (geom.fmap.FindIndex(face2) == facenr)\r
+-         {\r
+-         //                 if (face.Orientation() != face2.Orientation()) swap (solidnr0, solidnr1);\r
+-         }\r
+-         }\r
+-         */\r
+-\r
+-         mesh.AddFaceDescriptor (FaceDescriptor(facenr, solidnr0, solidnr1, 0));\r
+-\r
+-         // Philippose - 06/07/2009\r
+-         // Add the face colour to the mesh data\r
+-         Quantity_Color face_colour;\r
+-\r
+-         if(!(geom.face_colours.IsNull())\r
+-            && (geom.face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour)))\r
+-         {\r
+-            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(face_colour.Red(),face_colour.Green(),face_colour.Blue()));\r
+-         }\r
+-         else\r
+-         {\r
+-            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(0.0,1.0,0.0));\r
+-         }\r
+-         // ACHTUNG! STIMMT NICHT ALLGEMEIN (RG)\r
+-\r
+-\r
+-         Handle(Geom_Surface) occface = BRep_Tool::Surface(face);\r
+-\r
+-         for (TopExp_Explorer exp2 (face, TopAbs_WIRE); exp2.More(); exp2.Next())\r
+-         {\r
+-            TopoDS_Shape wire = exp2.Current();\r
+-\r
+-            for (TopExp_Explorer exp3 (wire, TopAbs_EDGE); exp3.More(); exp3.Next())\r
+-            {\r
+-               curr++;\r
+-               (*testout) << "edge nr " << curr << endl;\r
+-\r
+-               multithread.percent = 100 * curr / double (total);\r
+-               if (multithread.terminate) return;\r
+-\r
+-               TopoDS_Edge edge = TopoDS::Edge (exp3.Current());\r
+-               if (BRep_Tool::Degenerated(edge))\r
+-               {\r
+-                  //(*testout) << "ignoring degenerated edge" << endl;\r
+-                  continue;\r
+-               }\r
+-\r
+-               if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==\r
+-                  geom.vmap.FindIndex(TopExp::LastVertex (edge)))\r
+-               {\r
+-                  GProp_GProps system;\r
+-                  BRepGProp::LinearProperties(edge, system);\r
+-\r
+-                  if (system.Mass() < eps)\r
+-                  {\r
+-                     cout << "ignoring edge " << geom.emap.FindIndex (edge)\r
+-                        << ". closed edge with length < " << eps << endl;\r
+-                     continue;\r
+-                  }\r
+-               }\r
+-\r
+-\r
+-               Handle(Geom2d_Curve) cof;\r
+-               double s0, s1;\r
+-               cof = BRep_Tool::CurveOnSurface (edge, face, s0, s1);\r
+-\r
+-               int geomedgenr = geom.emap.FindIndex(edge);\r
+-\r
+-               Array <MeshPoint> mp;\r
+-               Array <double> params;\r
+-\r
+-               DivideEdge (edge, mp, params, mesh);\r
+- \r
+-               Array <int> pnums;\r
+-               pnums.SetSize (mp.Size()+2);\r
+-\r
+-               if (!merge_solids)\r
+-               {\r
+-                  pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));\r
+-                  pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));\r
+-               }\r
+-               else\r
+-               {\r
+-                  Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));\r
+-                  Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));\r
+-\r
+-                  pnums[0] = -1;\r
+-                  pnums.Last() = -1;\r
+-                  for (PointIndex pi = 1; pi < first_ep; pi++)\r
+-                  {\r
+-                     if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;\r
+-                     if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;\r
+-                  }\r
+-               }\r
+-\r
+-\r
+-               for (int i = 1; i <= mp.Size(); i++)\r
+-               {\r
+-                  bool exists = 0;\r
+-                  int j;\r
+-                  for (j = first_ep; j <= mesh.GetNP(); j++)\r
+-                     if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)\r
+-                     {\r
+-                        exists = 1;\r
+-                        break;\r
+-                     }\r
+-\r
+-                     if (exists)\r
+-                        pnums[i] = j;\r
+-                     else\r
+-                     {\r
+-                        mesh.AddPoint (mp[i-1]);\r
+-                        (*testout) << "add meshpoint " << mp[i-1] << endl;\r
+-                        pnums[i] = mesh.GetNP();\r
+-                     }\r
+-               }\r
+-               (*testout) << "NP = " << mesh.GetNP() << endl;\r
+-\r
+-               //(*testout) << pnums[pnums.Size()-1] << endl;\r
+-\r
+-               for (int i = 1; i <= mp.Size()+1; i++)\r
+-               {\r
+-                  edgenr++;\r
+-                  Segment seg;\r
+-\r
+-                  seg[0] = pnums[i-1];\r
+-                  seg[1] = pnums[i];\r
+-                  seg.edgenr = edgenr;\r
+-                  seg.si = facenr;\r
+-                  seg.epgeominfo[0].dist = params[i-1];\r
+-                  seg.epgeominfo[1].dist = params[i];\r
+-                  seg.epgeominfo[0].edgenr = geomedgenr;\r
+-                  seg.epgeominfo[1].edgenr = geomedgenr;\r
+-\r
+-                  gp_Pnt2d p2d;\r
+-                  p2d = cof->Value(params[i-1]);\r
+-                  //                  if (i == 1) p2d = cof->Value(s0);\r
+-                  seg.epgeominfo[0].u = p2d.X();\r
+-                  seg.epgeominfo[0].v = p2d.Y();\r
+-                  p2d = cof->Value(params[i]);\r
+-                  //                  if (i == mp.Size()+1) p2d = cof -> Value(s1);\r
+-                  seg.epgeominfo[1].u = p2d.X();\r
+-                  seg.epgeominfo[1].v = p2d.Y();\r
+-\r
+-                  /*\r
+-                  if (occface->IsUPeriodic())\r
+-                  {\r
+-                  cout << "U Periodic" << endl;\r
+-                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >\r
+-                  fabs(seg.epgeominfo[1].u-\r
+-                  (seg.epgeominfo[0].u-occface->UPeriod())))\r
+-                  seg.epgeominfo[0].u = p2d.X()+occface->UPeriod();\r
+-\r
+-                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >\r
+-                  fabs(seg.epgeominfo[1].u-\r
+-                  (seg.epgeominfo[0].u+occface->UPeriod())))\r
+-                  seg.epgeominfo[0].u = p2d.X()-occface->UPeriod();\r
+-                  }\r
+-\r
+-                  if (occface->IsVPeriodic())\r
+-                  {\r
+-                  cout << "V Periodic" << endl;\r
+-                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >\r
+-                  fabs(seg.epgeominfo[1].v-\r
+-                  (seg.epgeominfo[0].v-occface->VPeriod())))\r
+-                  seg.epgeominfo[0].v = p2d.Y()+occface->VPeriod();\r
+-\r
+-                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >\r
+-                  fabs(seg.epgeominfo[1].v-\r
+-                  (seg.epgeominfo[0].v+occface->VPeriod())))\r
+-                  seg.epgeominfo[0].v = p2d.Y()-occface->VPeriod();\r
+-                  }\r
+-                  */\r
+-\r
+-                  if (edge.Orientation() == TopAbs_REVERSED)\r
+-                  {\r
+-                     swap (seg[0], seg[1]);\r
+-                     swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);\r
+-                     swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);\r
+-                     swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);\r
+-                  }\r
+-\r
+-                  mesh.AddSegment (seg);\r
+-\r
+-                  //edgesegments[geomedgenr-1]->Append(mesh.GetNSeg());\r
+-\r
+-               }\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-      //      for(i=1; i<=mesh.GetNSeg(); i++)\r
+-      //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si\r
+-      //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;\r
+-      //      exit(10);\r
+-\r
+-      mesh.CalcSurfacesOfNode();\r
+-      multithread.task = savetask;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend)\r
+-   {\r
+-      int i, j, k;\r
+-      int changed;\r
+-\r
+-      const char * savetask = multithread.task;\r
+-      multithread.task = "Surface meshing";\r
+-\r
+-      geom.facemeshstatus = 0;\r
+-\r
+-      int noldp = mesh.GetNP();\r
+-\r
+-      double starttime = GetTime();\r
+-\r
+-      Array<int> glob2loc(noldp);\r
+-\r
+-      //int projecttype = PARAMETERSPACE;\r
+-\r
+-      int projecttype = PARAMETERSPACE;\r
+-\r
+-      int notrys = 1;\r
+-\r
+-      int surfmesherror = 0;\r
+-\r
+-      for (k = 1; k <= mesh.GetNFD(); k++)\r
+-      {\r
+-         if(1==0 && !geom.fvispar[k-1].IsDrawable())\r
+-         {\r
+-            (*testout) << "ignoring face " << k << endl;\r
+-            cout << "ignoring face " << k << endl;\r
+-            continue;\r
+-         }\r
+-\r
+-         (*testout) << "mesh face " << k << endl;\r
+-         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);\r
+-         geom.facemeshstatus[k-1] = -1;\r
+-\r
+-\r
+-         /*\r
+-         if (k != 42)\r
+-         {\r
+-         cout << "skipped" << endl;\r
+-         continue;\r
+-         }\r
+-         */\r
+-\r
+-\r
+-         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);\r
+-\r
+-         int oldnf = mesh.GetNSE();\r
+-\r
+-         Box<3> bb = geom.GetBoundingBox();\r
+-\r
+-         //      int projecttype = PLANESPACE;\r
+-\r
+-         Meshing2OCCSurfaces meshing(TopoDS::Face(geom.fmap(k)), bb, projecttype);\r
+-\r
+-         if (meshing.GetProjectionType() == PLANESPACE)\r
+-            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (plane space projection)");\r
+-         else\r
+-            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (parameter space projection)");\r
+-\r
+-         if (surfmesherror)\r
+-            cout << "Surface meshing error occured before (in " << surfmesherror << " faces)" << endl;\r
+-\r
+-         //      Meshing2OCCSurfaces meshing(f2, bb);\r
+-         meshing.SetStartTime (starttime);\r
+-\r
+-         //(*testout) << "Face " << k << endl << endl;\r
+-\r
+-\r
+-         if (meshing.GetProjectionType() == PLANESPACE)\r
+-         {\r
+-            int cntp = 0;\r
+-            glob2loc = 0;\r
+-            for (i = 1; i <= mesh.GetNSeg(); i++)\r
+-            {\r
+-               Segment & seg = mesh.LineSegment(i);\r
+-               if (seg.si == k)\r
+-               {\r
+-                  for (j = 1; j <= 2; j++)\r
+-                  {\r
+-                     int pi = (j == 1) ? seg[0] : seg[1];\r
+-                     if (!glob2loc.Get(pi))\r
+-                     {\r
+-                        meshing.AddPoint (mesh.Point(pi), pi);\r
+-                        cntp++;\r
+-                        glob2loc.Elem(pi) = cntp;\r
+-                     }\r
+-                  }\r
+-               }\r
+-            }\r
+-\r
+-            for (i = 1; i <= mesh.GetNSeg(); i++)\r
+-            {\r
+-               Segment & seg = mesh.LineSegment(i);\r
+-               if (seg.si == k)\r
+-               {\r
+-                  PointGeomInfo gi0, gi1;\r
+-                  gi0.trignum = gi1.trignum = k;\r
+-                  gi0.u = seg.epgeominfo[0].u;\r
+-                  gi0.v = seg.epgeominfo[0].v;\r
+-                  gi1.u = seg.epgeominfo[1].u;\r
+-                  gi1.v = seg.epgeominfo[1].v;\r
+-\r
+-                  meshing.AddBoundaryElement (glob2loc.Get(seg[0]), glob2loc.Get(seg[1]), gi0, gi1);\r
+-                  //(*testout) << gi0.u << " " << gi0.v << endl;\r
+-                  //(*testout) << gi1.u << " " << gi1.v << endl;\r
+-               }\r
+-            }\r
+-         }\r
+-         else\r
+-         {\r
+-            int cntp = 0;\r
+-\r
+-            for (i = 1; i <= mesh.GetNSeg(); i++)\r
+-               if (mesh.LineSegment(i).si == k)\r
+-                  cntp+=2;\r
+-\r
+-\r
+-            Array< PointGeomInfo > gis;\r
+-\r
+-            gis.SetAllocSize (cntp);\r
+-            gis.SetSize (0);\r
+-\r
+-            for (i = 1; i <= mesh.GetNSeg(); i++)\r
+-            {\r
+-               Segment & seg = mesh.LineSegment(i);\r
+-               if (seg.si == k)\r
+-               {\r
+-                  PointGeomInfo gi0, gi1;\r
+-                  gi0.trignum = gi1.trignum = k;\r
+-                  gi0.u = seg.epgeominfo[0].u;\r
+-                  gi0.v = seg.epgeominfo[0].v;\r
+-                  gi1.u = seg.epgeominfo[1].u;\r
+-                  gi1.v = seg.epgeominfo[1].v;\r
+-\r
+-                  int locpnum[2] = {0, 0};\r
+-\r
+-                  for (j = 0; j < 2; j++)\r
+-                  {\r
+-                     PointGeomInfo gi = (j == 0) ? gi0 : gi1;\r
+-\r
+-                     int l;\r
+-                     for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)\r
+-                     {\r
+-                        double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);\r
+-\r
+-                        if (dist < 1e-10)\r
+-                           locpnum[j] = l+1;\r
+-                     }\r
+-\r
+-                     if (locpnum[j] == 0)\r
+-                     {\r
+-                        int pi = (j == 0) ? seg[0] : seg[1];\r
+-                        meshing.AddPoint (mesh.Point(pi), pi);\r
+-\r
+-                        gis.SetSize (gis.Size()+1);\r
+-                        gis[l] = gi;\r
+-                        locpnum[j] = l+1;\r
+-                     }\r
+-                  }\r
+-\r
+-                  meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);\r
+-                  //(*testout) << gi0.u << " " << gi0.v << endl;\r
+-                  //(*testout) << gi1.u << " " << gi1.v << endl;\r
+-\r
+-               }\r
+-            }\r
+-         }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-         // Philippose - 15/01/2009\r
+-         double maxh = geom.face_maxh[k-1];\r
+-         //double maxh = mparam.maxh;\r
+-         mparam.checkoverlap = 0;\r
+-         //      int noldpoints = mesh->GetNP();\r
+-         int noldsurfel = mesh.GetNSE();\r
+-\r
+-         GProp_GProps sprops;\r
+-         BRepGProp::SurfaceProperties(TopoDS::Face(geom.fmap(k)),sprops);\r
+-         meshing.SetMaxArea(2.*sprops.Mass());\r
+-\r
+-         MESHING2_RESULT res;\r
+-\r
+-         try {\r
+-         res = meshing.GenerateMesh (mesh, mparam, maxh, k);\r
+-         }\r
+-\r
+-         catch (SingularMatrixException)\r
+-         {\r
+-            (*myerr) << "Singular Matrix" << endl;\r
+-            res = MESHING2_GIVEUP;\r
+-         }\r
+-\r
+-         catch (UVBoundsException)\r
+-         {\r
+-            (*myerr) << "UV bounds exceeded" << endl;\r
+-            res = MESHING2_GIVEUP;\r
+-         }\r
+-\r
+-         projecttype = PARAMETERSPACE;\r
+-\r
+-         if (res != MESHING2_OK)\r
+-         {\r
+-            if (notrys == 1)\r
+-            {\r
+-               for (int i = noldsurfel+1; i <= mesh.GetNSE(); i++)\r
+-                  mesh.DeleteSurfaceElement (i);\r
+-\r
+-               mesh.Compress();\r
+-\r
+-               cout << "retry Surface " << k << endl;\r
+-\r
+-               k--;\r
+-               projecttype*=-1;\r
+-               notrys++;\r
+-               continue;\r
+-            }\r
+-            else\r
+-            {\r
+-               geom.facemeshstatus[k-1] = -1;\r
+-               PrintError ("Problem in Surface mesh generation");\r
+-               surfmesherror++;\r
+-               //           throw NgException ("Problem in Surface mesh generation");\r
+-            }\r
+-         }\r
+-         else\r
+-         {\r
+-            geom.facemeshstatus[k-1] = 1;\r
+-         }\r
+-\r
+-         notrys = 1;\r
+-\r
+-         for (i = oldnf+1; i <= mesh.GetNSE(); i++)\r
+-            mesh.SurfaceElement(i).SetIndex (k);\r
+-\r
+-      }\r
+-\r
+-//      ofstream problemfile("occmesh.rep");\r
+-\r
+-//      problemfile << "SURFACEMESHING" << endl << endl;\r
+-\r
+-      if (surfmesherror)\r
+-      {\r
+-         cout << "WARNING! NOT ALL FACES HAVE BEEN MESHED" << endl;\r
+-         cout << "SURFACE MESHING ERROR OCCURED IN " << surfmesherror << " FACES:" << endl;\r
+-         for (int i = 1; i <= geom.fmap.Extent(); i++)\r
+-            if (geom.facemeshstatus[i-1] == -1)\r
+-            {\r
+-               cout << "Face " << i << endl;\r
+-//               problemfile << "problem with face " << i << endl;\r
+-//               problemfile << "vertices: " << endl;\r
+-               TopExp_Explorer exp0,exp1,exp2;\r
+-               for ( exp0.Init(TopoDS::Face (geom.fmap(i)), TopAbs_WIRE); exp0.More(); exp0.Next() )\r
+-               {\r
+-                  TopoDS_Wire wire = TopoDS::Wire(exp0.Current());\r
+-                  for ( exp1.Init(wire,TopAbs_EDGE); exp1.More(); exp1.Next() )\r
+-                  {\r
+-                     TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-                     for ( exp2.Init(edge,TopAbs_VERTEX); exp2.More(); exp2.Next() )\r
+-                     {\r
+-                        TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());\r
+-                        gp_Pnt point = BRep_Tool::Pnt(vertex);\r
+-//                        problemfile << point.X() << " " << point.Y() << " " << point.Z() << endl;\r
+-                     }\r
+-                  }\r
+-               }\r
+-//               problemfile << endl;\r
+-\r
+-            }\r
+-            cout << endl << endl;\r
+-            cout << "for more information open IGES/STEP Topology Explorer" << endl;\r
+-//            problemfile.close();\r
+-            throw NgException ("Problem in Surface mesh generation");\r
+-      }\r
+-      else\r
+-      {\r
+-//         problemfile << "OK" << endl << endl;\r
+-//         problemfile.close();\r
+-      }\r
+-\r
+-\r
+-\r
+-\r
+-      if (multithread.terminate || perfstepsend < MESHCONST_OPTSURFACE)\r
+-         return;\r
+-\r
+-      multithread.task = "Optimizing surface";\r
+-\r
+-      static int timer_opt2d = NgProfiler::CreateTimer ("Optimization 2D");\r
+-      NgProfiler::StartTimer (timer_opt2d);\r
+-\r
+-      for (k = 1; k <= mesh.GetNFD(); k++)\r
+-      {\r
+-         //      if (k != 42) continue;\r
+-         //      if (k != 36) continue;\r
+-\r
+-         //      (*testout) << "optimize face " << k << endl;\r
+-         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);\r
+-\r
+-         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);\r
+-\r
+-         PrintMessage (1, "Optimize Surface ", k);\r
+-         for (i = 1; i <= mparam.optsteps2d; i++)\r
+-         {\r
+-            //          (*testout) << "optstep " << i << endl;\r
+-            if (multithread.terminate) return;\r
+-\r
+-            {\r
+-               MeshOptimize2dOCCSurfaces meshopt(geom);\r
+-               meshopt.SetFaceIndex (k);\r
+-               meshopt.SetImproveEdges (0);\r
+-               meshopt.SetMetricWeight (mparam.elsizeweight);\r
+-               //meshopt.SetMetricWeight (0.2);\r
+-               meshopt.SetWriteStatus (0);\r
+-\r
+-               //         (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;\r
+-               meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));\r
+-            }\r
+-\r
+-            if (multithread.terminate) return;\r
+-            {\r
+-               MeshOptimize2dOCCSurfaces meshopt(geom);\r
+-               meshopt.SetFaceIndex (k);\r
+-               meshopt.SetImproveEdges (0);\r
+-               //meshopt.SetMetricWeight (0.2);\r
+-               meshopt.SetMetricWeight (mparam.elsizeweight);\r
+-               meshopt.SetWriteStatus (0);\r
+-\r
+-               //         (*testout) << "ImproveMesh (mesh)" << endl;\r
+-               meshopt.ImproveMesh (mesh, mparam);\r
+-            }\r
+-\r
+-            {\r
+-               MeshOptimize2dOCCSurfaces meshopt(geom);\r
+-               meshopt.SetFaceIndex (k);\r
+-               meshopt.SetImproveEdges (0);\r
+-               //meshopt.SetMetricWeight (0.2);\r
+-               meshopt.SetMetricWeight (mparam.elsizeweight);\r
+-               meshopt.SetWriteStatus (0);\r
+-\r
+-               //         (*testout) << "CombineImprove (mesh)" << endl;\r
+-               meshopt.CombineImprove (mesh);\r
+-            }\r
+-\r
+-            if (multithread.terminate) return;\r
+-            {\r
+-               MeshOptimize2dOCCSurfaces meshopt(geom);\r
+-               meshopt.SetFaceIndex (k);\r
+-               meshopt.SetImproveEdges (0);\r
+-               //meshopt.SetMetricWeight (0.2);\r
+-               meshopt.SetMetricWeight (mparam.elsizeweight);\r
+-               meshopt.SetWriteStatus (0);\r
+-\r
+-               //         (*testout) << "ImproveMesh (mesh)" << endl;\r
+-               meshopt.ImproveMesh (mesh, mparam);\r
+-            }\r
+-         }\r
+-\r
+-      }\r
+-\r
+-\r
+-      mesh.CalcSurfacesOfNode();\r
+-      mesh.Compress();\r
+-\r
+-      NgProfiler::StopTimer (timer_opt2d);\r
+-\r
+-      multithread.task = savetask;\r
+-   }\r
+-\r
+-\r
+-\r
+-   void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh)\r
+-   {\r
+-      mesh.SetGlobalH (mparam.maxh);\r
+-      mesh.SetMinimalH (mparam.minh);\r
+-\r
+-      Array<double> maxhdom;\r
+-      maxhdom.SetSize (geom.NrSolids());\r
+-      maxhdom = mparam.maxh;\r
+-\r
+-      mesh.SetMaxHDomain (maxhdom);\r
+-\r
+-      Box<3> bb = geom.GetBoundingBox();\r
+-      bb.Increase (bb.Diam()/10);\r
+-\r
+-      mesh.SetLocalH (bb.PMin(), bb.PMax(), 0.5);\r
+-\r
+-      if (mparam.uselocalh)\r
+-      {\r
+-         const char * savetask = multithread.task;\r
+-         multithread.percent = 0;\r
+-\r
+-         mesh.SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);\r
+-\r
+-         int nedges = geom.emap.Extent();\r
+-\r
+-               double mincurvelength = IGNORECURVELENGTH;\r
+-         double maxedgelen = 0;\r
+-         double minedgelen = 1e99;\r
+-\r
+-               if(occparam.resthminedgelenenable) \r
+-               {\r
+-                      mincurvelength = occparam.resthminedgelen;\r
+-                      if(mincurvelength < IGNORECURVELENGTH) mincurvelength = IGNORECURVELENGTH;\r
+-               }\r
+-\r
+-         multithread.task = "Setting local mesh size (elements per edge)";\r
+-\r
+-         // setting elements per edge\r
+-\r
+-         for (int i = 1; i <= nedges && !multithread.terminate; i++)\r
+-         {\r
+-            TopoDS_Edge e = TopoDS::Edge (geom.emap(i));\r
+-            multithread.percent = 100 * (i-1)/double(nedges);\r
+-            if (BRep_Tool::Degenerated(e)) continue;\r
+-\r
+-            GProp_GProps system;\r
+-            BRepGProp::LinearProperties(e, system);\r
+-            double len = system.Mass();\r
+-\r
+-            if (len < mincurvelength)\r
+-            {\r
+-               (*testout) << "ignored" << endl;\r
+-               continue;\r
+-            }\r
+-\r
+-            double localh = len/mparam.segmentsperedge;\r
+-            double s0, s1;\r
+-\r
+-            // Philippose - 23/01/2009\r
+-            // Find all the parent faces of a given edge\r
+-            // and limit the mesh size of the edge based on the\r
+-            // mesh size limit of the face\r
+-            TopTools_IndexedDataMapOfShapeListOfShape edge_face_map;\r
+-            edge_face_map.Clear();\r
+-\r
+-            TopExp::MapShapesAndAncestors(geom.shape, TopAbs_EDGE, TopAbs_FACE, edge_face_map);\r
+-            const TopTools_ListOfShape& parent_faces = edge_face_map.FindFromKey(e);\r
+-\r
+-            TopTools_ListIteratorOfListOfShape parent_face_list;\r
+-\r
+-            for(parent_face_list.Initialize(parent_faces); parent_face_list.More(); parent_face_list.Next())\r
+-            {\r
+-               TopoDS_Face parent_face = TopoDS::Face(parent_face_list.Value());\r
+-\r
+-               int face_index = geom.fmap.FindIndex(parent_face);\r
+-\r
+-               if(face_index >= 1) localh = min(localh,geom.face_maxh[face_index - 1]);\r
+-            }\r
+-\r
+-            Handle(Geom_Curve) c = BRep_Tool::Curve(e, s0, s1);\r
+-\r
+-            maxedgelen = max (maxedgelen, len);\r
+-            minedgelen = min (minedgelen, len);\r
+-\r
+-            // Philippose - 23/01/2009\r
+-            // Modified the calculation of maxj, because the\r
+-            // method used so far always results in maxj = 2,\r
+-            // which causes the localh to be set only at the\r
+-            // starting, mid and end of the edge.\r
+-            // Old Algorithm:\r
+-            // int maxj = 2 * (int) ceil (localh/len);\r
+-            int maxj = max((int) ceil(len/localh), 2);\r
+-\r
+-            for (int j = 0; j <= maxj; j++)\r
+-            {\r
+-               gp_Pnt pnt = c->Value (s0+double(j)/maxj*(s1-s0));\r
+-               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), localh);\r
+-            }\r
+-         }\r
+-\r
+-         multithread.task = "Setting local mesh size (edge curvature)";\r
+-\r
+-         // setting edge curvature\r
+-\r
+-         int nsections = 20;\r
+-\r
+-         for (int i = 1; i <= nedges && !multithread.terminate; i++)\r
+-         {\r
+-            double maxcur = 0;\r
+-            multithread.percent = 100 * (i-1)/double(nedges);\r
+-            TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));\r
+-            if (BRep_Tool::Degenerated(edge)) continue;\r
+-            double s0, s1;\r
+-            Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);\r
+-            BRepAdaptor_Curve brepc(edge);\r
+-            BRepLProp_CLProps prop(brepc, 2, 1e-5);\r
+-\r
+-            for (int j = 1; j <= nsections; j++)\r
+-            {\r
+-               double s = s0 + j/(double) nsections * (s1-s0);\r
+-               prop.SetParameter (s);\r
+-               double curvature = prop.Curvature();\r
+-               if(curvature> maxcur) maxcur = curvature;\r
+-\r
+-               if (curvature >= 1e99)\r
+-                  continue;\r
+-\r
+-               gp_Pnt pnt = c->Value (s);\r
+-\r
+-               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature)));\r
+-            }\r
+-            // (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;\r
+-         }\r
+-\r
+-         multithread.task = "Setting local mesh size (face curvature)";\r
+-\r
+-         // setting face curvature\r
+-\r
+-         int nfaces = geom.fmap.Extent();\r
+-\r
+-         for (int i = 1; i <= nfaces && !multithread.terminate; i++)\r
+-         {\r
+-            multithread.percent = 100 * (i-1)/double(nfaces);\r
+-            TopoDS_Face face = TopoDS::Face(geom.fmap(i));\r
+-            TopLoc_Location loc;\r
+-            Handle(Geom_Surface) surf = BRep_Tool::Surface (face);\r
+-            Handle(Poly_Triangulation) triangulation = BRep_Tool::Triangulation (face, loc);\r
+-\r
+-            if (triangulation.IsNull()) continue;\r
+-\r
+-            BRepAdaptor_Surface sf(face, Standard_True);\r
+-            BRepLProp_SLProps prop(sf, 2, 1e-5);\r
+-\r
+-            int ntriangles = triangulation -> NbTriangles();\r
+-            for (int j = 1; j <= ntriangles; j++)\r
+-            {\r
+-               gp_Pnt p[3];\r
+-               gp_Pnt2d par[3];\r
+-\r
+-               for (int k = 1; k <=3; k++)\r
+-               {\r
+-                  int n = triangulation->Triangles()(j)(k);\r
+-                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);\r
+-                  par[k-1] = triangulation->UVNodes()(n);\r
+-               }\r
+-\r
+-               //double maxside = 0;\r
+-               //maxside = max (maxside, p[0].Distance(p[1]));\r
+-               //maxside = max (maxside, p[0].Distance(p[2]));\r
+-               //maxside = max (maxside, p[1].Distance(p[2]));\r
+-               //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;\r
+-\r
+-               RestrictHTriangle (par[0], par[1], par[2], &prop, mesh, 0);\r
+-               //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;\r
+-            }\r
+-         }\r
+-\r
+-         // setting close edges\r
+-\r
+-         if (occparam.resthcloseedgeenable)\r
+-         {\r
+-            multithread.task = "Setting local mesh size (close edges)";\r
+-\r
+-            int sections = 100;\r
+-\r
+-            Array<Line> lines(sections*nedges);\r
+-\r
+-            Box3dTree* searchtree =\r
+-               new Box3dTree (bb.PMin(), bb.PMax());\r
+-\r
+-            int nlines = 0;\r
+-            for (int i = 1; i <= nedges && !multithread.terminate; i++)\r
+-            {\r
+-               TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));\r
+-               if (BRep_Tool::Degenerated(edge)) continue;\r
+-\r
+-               double s0, s1;\r
+-               Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);\r
+-               BRepAdaptor_Curve brepc(edge);\r
+-               BRepLProp_CLProps prop(brepc, 1, 1e-5);\r
+-               prop.SetParameter (s0);\r
+-\r
+-               gp_Vec d0 = prop.D1().Normalized();\r
+-               double s_start = s0;\r
+-               int count = 0;\r
+-               for (int j = 1; j <= sections; j++)\r
+-               {\r
+-                  double s = s0 + (s1-s0)*(double)j/(double)sections;\r
+-                  prop.SetParameter (s);\r
+-                  gp_Vec d1 = prop.D1().Normalized();\r
+-                  double cosalpha = fabs(d0*d1);\r
+-                  if ((j == sections) || (cosalpha < cos(10.0/180.0*M_PI)))\r
+-                  {\r
+-                     count++;\r
+-                     gp_Pnt p0 = c->Value (s_start);\r
+-                     gp_Pnt p1 = c->Value (s);\r
+-                     lines[nlines].p0 = Point<3> (p0.X(), p0.Y(), p0.Z());\r
+-                     lines[nlines].p1 = Point<3> (p1.X(), p1.Y(), p1.Z());\r
+-\r
+-                     Box3d box;\r
+-                     box.SetPoint (Point3d(lines[nlines].p0));\r
+-                     box.AddPoint (Point3d(lines[nlines].p1));\r
+-\r
+-                     searchtree->Insert (box.PMin(), box.PMax(), nlines+1);\r
+-                     nlines++;\r
+-\r
+-                     s_start = s;\r
+-                     d0 = d1;\r
+-                  }\r
+-               }\r
+-            }\r
+-\r
+-            Array<int> linenums;\r
+-\r
+-            for (int i = 0; i < nlines; i++)\r
+-            {\r
+-               multithread.percent = (100*i)/double(nlines);\r
+-               Line & line = lines[i];\r
+-\r
+-               Box3d box;\r
+-               box.SetPoint (Point3d(line.p0));\r
+-               box.AddPoint (Point3d(line.p1));\r
+-               double maxhline = max (mesh.GetH(box.PMin()),\r
+-                  mesh.GetH(box.PMax()));\r
+-               box.Increase(maxhline);\r
+-\r
+-               double mindist = 1e99;\r
+-               linenums.SetSize(0);\r
+-               searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);\r
+-\r
+-               for (int j = 0; j < linenums.Size(); j++)\r
+-               {\r
+-                  int num = linenums[j]-1;\r
+-                  if (i == num) continue;\r
+-                  if ((line.p0-lines[num].p0).Length2() < 1e-15) continue;\r
+-                  if ((line.p0-lines[num].p1).Length2() < 1e-15) continue;\r
+-                  if ((line.p1-lines[num].p0).Length2() < 1e-15) continue;\r
+-                  if ((line.p1-lines[num].p1).Length2() < 1e-15) continue;\r
+-                  mindist = min (mindist, line.Dist(lines[num]));\r
+-               }\r
+-\r
+-               mindist /= (occparam.resthcloseedgefac + VSMALL);\r
+-\r
+-               if (mindist < 1e-3)\r
+-               {\r
+-                  (*testout) << "extremely small local h: " << mindist\r
+-                     << " --> setting to 1e-3" << endl;\r
+-                  (*testout) << "somewhere near " << line.p0 << " - " << line.p1 << endl;\r
+-                  mindist = 1e-3;\r
+-               }\r
+-\r
+-               mesh.RestrictLocalHLine(line.p0, line.p1, mindist);\r
+-            }\r
+-         }\r
+-\r
+-         multithread.task = savetask;\r
+-\r
+-      }\r
+-\r
+-      // Philippose - 09/03/2009\r
+-      // Added the capability to load the mesh size from a \r
+-      // file also for OpenCascade Geometry\r
+-      // Note: \r
+-      // ** If the "uselocalh" option is ticked in \r
+-      // the "mesh options...insider" menu, the mesh \r
+-      // size will be further modified by the topology \r
+-      // analysis routines.\r
+-      // ** To use the mesh size file as the sole source \r
+-      // for defining the mesh size, uncheck the "uselocalh"\r
+-      // option.\r
+-      mesh.LoadLocalMeshSize (mparam.meshsizefilename);\r
+-   }\r
+-\r
+-\r
+-\r
+-  int OCCGenerateMesh (OCCGeometry & geom, Mesh *& mesh, MeshingParameters & mparam,\r
+-                     int perfstepsstart, int perfstepsend)\r
+-   {\r
+-      multithread.percent = 0;\r
+-\r
+-      if (perfstepsstart <= MESHCONST_ANALYSE)\r
+-      {\r
+-         delete mesh;\r
+-         mesh = new Mesh();\r
+-         mesh->geomtype = Mesh::GEOM_OCC;\r
+-\r
+-         OCCSetLocalMeshSize(geom,*mesh);\r
+-      }\r
+-\r
+-      if (multithread.terminate || perfstepsend <= MESHCONST_ANALYSE)\r
+-         return TCL_OK;\r
+-\r
+-      if (perfstepsstart <= MESHCONST_MESHEDGES)\r
+-      {\r
+-         OCCFindEdges (geom, *mesh);\r
+-\r
+-         /*\r
+-         cout << "Removing redundant points" << endl;\r
+-\r
+-         int i, j;\r
+-         int np = mesh->GetNP();\r
+-         Array<int> equalto;\r
+-\r
+-         equalto.SetSize (np);\r
+-         equalto = 0;\r
+-\r
+-         for (i = 1; i <= np; i++)\r
+-         {\r
+-         for (j = i+1; j <= np; j++)\r
+-         {\r
+-         if (!equalto[j-1] && (Dist2 (mesh->Point(i), mesh->Point(j)) < 1e-12))\r
+-         equalto[j-1] = i;\r
+-         }\r
+-         }\r
+-\r
+-         for (i = 1; i <= np; i++)\r
+-         if (equalto[i-1])\r
+-         {\r
+-         cout << "Point " << i << " is equal to Point " << equalto[i-1] << endl;\r
+-         for (j = 1; j <= mesh->GetNSeg(); j++)\r
+-         {\r
+-         Segment & seg = mesh->LineSegment(j);\r
+-         if (seg[0] == i) seg[0] = equalto[i-1];\r
+-         if (seg[1] == i) seg[1] = equalto[i-1];\r
+-         }\r
+-         }\r
+-\r
+-         cout << "Removing degenerated segments" << endl;\r
+-         for (j = 1; j <= mesh->GetNSeg(); j++)\r
+-         {\r
+-         Segment & seg = mesh->LineSegment(j);\r
+-         if (seg[0] == seg[1])\r
+-         {\r
+-         mesh->DeleteSegment(j);\r
+-         cout << "Deleting Segment " << j << endl;\r
+-         }\r
+-         }\r
+-\r
+-         mesh->Compress();\r
+-         */\r
+-\r
+-         /*\r
+-         for (int i = 1; i <= geom.fmap.Extent(); i++)\r
+-         {\r
+-         Handle(Geom_Surface) hf1 =\r
+-         BRep_Tool::Surface(TopoDS::Face(geom.fmap(i)));\r
+-         for (int j = i+1; j <= geom.fmap.Extent(); j++)\r
+-         {\r
+-         Handle(Geom_Surface) hf2 =\r
+-         BRep_Tool::Surface(TopoDS::Face(geom.fmap(j)));\r
+-         if (hf1 == hf2) cout << "face " << i << " and face " << j << " lie on same surface" << endl;\r
+-         }\r
+-         }\r
+-         */\r
+-\r
+-#ifdef LOG_STREAM\r
+-         (*logout) << "Edges meshed" << endl\r
+-            << "time = " << GetTime() << " sec" << endl\r
+-            << "points: " << mesh->GetNP() << endl;\r
+-#endif\r
+-      }\r
+-\r
+-      if (multithread.terminate || perfstepsend <= MESHCONST_MESHEDGES)\r
+-         return TCL_OK;\r
+-\r
+-      if (perfstepsstart <= MESHCONST_MESHSURFACE)\r
+-      {\r
+-         OCCMeshSurface (geom, *mesh, perfstepsend);\r
+-         if (multithread.terminate) return TCL_OK;\r
+-\r
+-#ifdef LOG_STREAM\r
+-         (*logout) << "Surfaces meshed" << endl\r
+-            << "time = " << GetTime() << " sec" << endl\r
+-            << "points: " << mesh->GetNP() << endl;\r
+-#endif\r
+-\r
+-#ifdef STAT_STREAM\r
+-         (*statout) << mesh->GetNSeg() << " & "\r
+-            << mesh->GetNSE() << " & - &"\r
+-            << GetTime() << " & " << endl;\r
+-#endif\r
+-\r
+-         //      MeshQuality2d (*mesh);\r
+-         mesh->CalcSurfacesOfNode();\r
+-      }\r
+-\r
+-      if (multithread.terminate || perfstepsend <= MESHCONST_OPTSURFACE)\r
+-         return TCL_OK;\r
+-\r
+-      if (perfstepsstart <= MESHCONST_MESHVOLUME)\r
+-      {\r
+-         multithread.task = "Volume meshing";\r
+-\r
+-         MESHING3_RESULT res = MeshVolume (mparam, *mesh);\r
+-\r
+-/*\r
+-         ofstream problemfile("occmesh.rep",ios_base::app);\r
+-\r
+-         problemfile << "VOLUMEMESHING" << endl << endl;\r
+-         if(res != MESHING3_OK)\r
+-            problemfile << "ERROR" << endl << endl;\r
+-         else\r
+-            problemfile << "OK" << endl\r
+-            << mesh->GetNE() << " elements" << endl << endl;\r
+-\r
+-         problemfile.close();\r
+-*/\r
+-\r
+-         if (res != MESHING3_OK) return TCL_ERROR;\r
+-\r
+-         if (multithread.terminate) return TCL_OK;\r
+-\r
+-         RemoveIllegalElements (*mesh);\r
+-         if (multithread.terminate) return TCL_OK;\r
+-\r
+-         MeshQuality3d (*mesh);\r
+-\r
+-#ifdef STAT_STREAM\r
+-         (*statout) << GetTime() << " & ";\r
+-#endif\r
+-\r
+-#ifdef LOG_STREAM\r
+-         (*logout) << "Volume meshed" << endl\r
+-            << "time = " << GetTime() << " sec" << endl\r
+-            << "points: " << mesh->GetNP() << endl;\r
+-#endif\r
+-      }\r
+-\r
+-      if (multithread.terminate || perfstepsend <= MESHCONST_MESHVOLUME)\r
+-         return TCL_OK;\r
+-\r
+-      if (perfstepsstart <= MESHCONST_OPTVOLUME)\r
+-      {\r
+-         multithread.task = "Volume optimization";\r
+-\r
+-         OptimizeVolume (mparam, *mesh);\r
+-         if (multithread.terminate) return TCL_OK;\r
+-\r
+-#ifdef STAT_STREAM\r
+-         (*statout) << GetTime() << " & "\r
+-            << mesh->GetNE() << " & "\r
+-            << mesh->GetNP() << " " << '\\' << '\\' << " \\" << "hline" << endl;\r
+-#endif\r
+-\r
+-#ifdef LOG_STREAM\r
+-         (*logout) << "Volume optimized" << endl\r
+-            << "time = " << GetTime() << " sec" << endl\r
+-            << "points: " << mesh->GetNP() << endl;\r
+-#endif\r
+-\r
+-         // cout << "Optimization complete" << endl;\r
+-\r
+-      }\r
+-\r
+-      (*testout) << "NP: " << mesh->GetNP() << endl;\r
+-      for (int i = 1; i <= mesh->GetNP(); i++)\r
+-         (*testout) << mesh->Point(i) << endl;\r
+-\r
+-      (*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;\r
+-      for (int i = 1; i <= mesh->GetNSeg(); i++)\r
+-         (*testout) << mesh->LineSegment(i) << endl;\r
+-\r
+-      return TCL_OK;\r
+-   }\r
+-}\r
+-\r
+-#endif\r
++#ifdef OCCGEOMETRY
++
++#include <mystdlib.h>
++#include <occgeom.hpp>
++#include <meshing.hpp>
++
++
++namespace netgen
++{
++
++#include "occmeshsurf.hpp"
++
++#define TCL_OK 0
++#define TCL_ERROR 1
++
++#define DIVIDEEDGESECTIONS 1000
++#define IGNORECURVELENGTH 1e-4
++#define VSMALL 1e-10
++
++
++   bool merge_solids = 1;
++
++
++  // can you please explain what you intend to compute here (JS) !!!
++   double Line :: Dist (Line l)
++   {
++      Vec<3> n = p1-p0;
++      Vec<3> q = l.p1-l.p0;
++      double nq = n*q;
++
++      Point<3> p = p0 + 0.5*n;
++      double lambda = (p-l.p0)*n / (nq + VSMALL);
++
++      if (lambda >= 0 && lambda <= 1)
++      {
++         double d = (p-l.p0-lambda*q).Length();
++         //        if (d < 1e-3) d = 1e99;
++         return d;
++      }
++      else
++         return 1e99;
++   }
++
++
++
++   double Line :: Length ()
++   {
++      return (p1-p0).Length();
++   }
++
++
++
++   inline Point<3> occ2ng (const gp_Pnt & p)
++   {
++      return  Point<3> (p.X(), p.Y(), p.Z());
++   }
++
++
++
++   double ComputeH (double kappa)
++   {
++      double hret;
++      kappa *= mparam.curvaturesafety;
++
++      if (mparam.maxh * kappa < 1)
++         hret = mparam.maxh;
++      else
++         hret = 1 / (kappa + VSMALL);
++
++      if (mparam.maxh < hret)
++         hret = mparam.maxh;
++
++      return (hret);
++   }
++
++
++
++
++   void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
++                           BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)
++   {
++      int ls = -1;
++
++      gp_Pnt pnt0,pnt1,pnt2;
++
++      prop->SetParameters (par0.X(), par0.Y());
++      pnt0 = prop->Value();
++
++      prop->SetParameters (par1.X(), par1.Y());
++      pnt1 = prop->Value();
++
++      prop->SetParameters (par2.X(), par2.Y());
++      pnt2 = prop->Value();
++
++      double aux;
++      double maxside = pnt0.Distance(pnt1);
++      ls = 2;
++      aux = pnt1.Distance(pnt2);
++      if(aux > maxside)
++      {
++         maxside = aux;
++         ls = 0;
++      }
++      aux = pnt2.Distance(pnt0);
++      if(aux > maxside)
++      {
++         maxside = aux;
++         ls = 1;
++      }
++
++
++
++      gp_Pnt2d parmid;
++
++      parmid.SetX( (par0.X()+par1.X()+par2.X()) / 3 );
++      parmid.SetY( (par0.Y()+par1.Y()+par2.Y()) / 3 );
++
++      if (depth%3 == 0)
++      {
++         double curvature = 0;
++
++         prop->SetParameters (parmid.X(), parmid.Y());
++         if (!prop->IsCurvatureDefined())
++         {
++            (*testout) << "curvature not defined!" << endl;
++            return;
++         }
++         curvature = max(fabs(prop->MinCurvature()),
++            fabs(prop->MaxCurvature()));
++
++         prop->SetParameters (par0.X(), par0.Y());
++         if (!prop->IsCurvatureDefined())
++         {
++            (*testout) << "curvature not defined!" << endl;
++            return;
++         }
++         curvature = max(curvature,max(fabs(prop->MinCurvature()),
++            fabs(prop->MaxCurvature())));
++
++         prop->SetParameters (par1.X(), par1.Y());
++         if (!prop->IsCurvatureDefined())
++         {
++            (*testout) << "curvature not defined!" << endl;
++            return;
++         }
++         curvature = max(curvature,max(fabs(prop->MinCurvature()),
++            fabs(prop->MaxCurvature())));
++
++         prop->SetParameters (par2.X(), par2.Y());
++         if (!prop->IsCurvatureDefined())
++         {
++            (*testout) << "curvature not defined!" << endl;
++            return;
++         }
++         curvature = max(curvature,max(fabs(prop->MinCurvature()),
++            fabs(prop->MaxCurvature())));
++
++         //(*testout) << "curvature " << curvature << endl;
++
++         if (curvature < 1e-3)
++         {
++            //(*testout) << "curvature too small (" << curvature << ")!" << endl;
++            return;
++            // return war bis 10.2.05 auskommentiert
++         }
++
++
++
++         h = ComputeH (curvature+1e-10);
++
++         if(h < 1e-4*maxside)
++            return;
++
++         // commented to restrict H on a large sphere for example
++         //if (h > 30) return;
++      }
++
++      if (h < maxside && depth < 10)
++      {
++         //cout << "\r h " << h << flush;
++         gp_Pnt2d pm;
++
++         //cout << "h " << h << " maxside " << maxside << " depth " << depth << endl;
++         //cout << "par0 " << par0.X() << " " << par0.Y()
++         //<< " par1 " << par1.X() << " " << par1.Y()
++         //   << " par2 " << par2.X() << " " << par2.Y()<< endl;
++
++         if(ls == 0)
++         {
++            pm.SetX(0.5*(par1.X()+par2.X())); pm.SetY(0.5*(par1.Y()+par2.Y()));
++            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
++            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
++         }
++         else if(ls == 1)
++         {
++            pm.SetX(0.5*(par0.X()+par2.X())); pm.SetY(0.5*(par0.Y()+par2.Y()));
++            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
++            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
++         }
++         else if(ls == 2)
++         {
++            pm.SetX(0.5*(par0.X()+par1.X())); pm.SetY(0.5*(par0.Y()+par1.Y()));
++            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
++            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
++         }
++
++      }
++      else
++      {
++         gp_Pnt pnt;
++         Point3d p3d;
++
++         prop->SetParameters (parmid.X(), parmid.Y());
++         pnt = prop->Value();
++         p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
++         mesh.RestrictLocalH (p3d, h);
++
++         p3d = Point3d(pnt0.X(), pnt0.Y(), pnt0.Z());
++         mesh.RestrictLocalH (p3d, h);
++
++         p3d = Point3d(pnt1.X(), pnt1.Y(), pnt1.Z());
++         mesh.RestrictLocalH (p3d, h);
++
++         p3d = Point3d(pnt2.X(), pnt2.Y(), pnt2.Z());
++         mesh.RestrictLocalH (p3d, h);
++
++         //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;
++
++      }
++   }
++
++
++
++   void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,
++                    Array<double> & params, Mesh & mesh)
++   {
++      double s0, s1;
++      double maxh = mparam.maxh;
++      int nsubedges = 1;
++      gp_Pnt pnt, oldpnt;
++      double svalue[DIVIDEEDGESECTIONS];
++
++      GProp_GProps system;
++      BRepGProp::LinearProperties(edge, system);
++      double L = system.Mass();
++
++      Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
++
++      double hvalue[DIVIDEEDGESECTIONS+1];
++      hvalue[0] = 0;
++      pnt = c->Value(s0);
++
++      //double olddist = 0; -- useless variables
++      //double dist = 0;
++
++      int tmpVal = (int)(DIVIDEEDGESECTIONS);
++
++      for (int i = 1; i <= tmpVal; i++)
++      {
++         oldpnt = pnt;
++         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
++         // -- no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
++         hvalue[i] = hvalue[i-1] +
++         //   1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
++         //   pnt.Distance(oldpnt);
++           min( 1.0,
++            1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
++                pnt.Distance(oldpnt));
++
++         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))
++         //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;
++
++         //olddist = dist; -- useless variables
++         //dist = pnt.Distance(oldpnt);
++      }
++
++      //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
++      nsubedges = max (1, int(floor(hvalue[DIVIDEEDGESECTIONS]+0.5)));
++
++      ps.SetSize(nsubedges-1);
++      params.SetSize(nsubedges+1);
++
++      int i = 1;
++      int i1 = 0;
++      do
++      {
++         if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)
++         {
++            // -- for nsubedges comparable to DIVIDEEDGESECTIONS
++            //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
++            double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
++            params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
++            pnt = c->Value(params[i]);
++            ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));
++            i++;
++         }
++         i1++;
++         if (i1 > DIVIDEEDGESECTIONS)
++         {
++            nsubedges = i;
++            ps.SetSize(nsubedges-1);
++            params.SetSize(nsubedges+1);
++            cout << "divide edge: local h too small" << endl;
++         }
++      } while (i < nsubedges);
++
++      params[0] = s0;
++      params[nsubedges] = s1;
++
++      if (params[nsubedges] <= params[nsubedges-1])
++      {
++         cout << "CORRECTED" << endl;
++         ps.SetSize (nsubedges-2);
++         params.SetSize (nsubedges);
++         params[nsubedges] = s1;
++      }
++   }
++
++
++
++
++   void OCCFindEdges (OCCGeometry & geom, Mesh & mesh)
++   {
++      const char * savetask = multithread.task;
++      multithread.task = "Edge meshing";
++
++      (*testout) << "edge meshing" << endl;
++
++      int nvertices = geom.vmap.Extent();
++      int nedges = geom.emap.Extent();
++
++      (*testout) << "nvertices = " << nvertices << endl;
++      (*testout) << "nedges = " << nedges << endl;
++
++      double eps = 1e-6 * geom.GetBoundingBox().Diam();
++      const double eps2 = eps * eps; // -- small optimization
++
++      int first_vp = mesh.GetNP()+1; // -- to support SALOME sub-meshes
++
++      for (int i = 1; i <= nvertices; i++)
++      {
++         gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));
++         MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
++
++         bool exists = 0;
++         if (merge_solids)
++            for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
++               //if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)              
++               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2 ) // -- small optimization
++               {
++                  exists = 1;
++                  break;
++               }
++
++               if (!exists)
++                  mesh.AddPoint (mp);
++      }
++
++      (*testout) << "different vertices = " << mesh.GetNP() << endl;
++
++
++      int first_ep = mesh.GetNP()+1;
++
++      Array<int> face2solid[2];
++      for (int i = 0; i<2; i++)
++      {
++         face2solid[i].SetSize (geom.fmap.Extent());
++         face2solid[i] = 0;
++      }
++
++      int solidnr = 0;
++      for (TopExp_Explorer exp0(geom.shape, TopAbs_SOLID); exp0.More(); exp0.Next())
++      {
++         solidnr++;
++         for (TopExp_Explorer exp1(exp0.Current(), TopAbs_FACE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Face face = TopoDS::Face(exp1.Current());
++            int facenr = geom.fmap.FindIndex(face);
++            if ( facenr < 1 ) continue; // -- to support SALOME sub-meshes
++
++            if (face2solid[0][facenr-1] == 0)
++               face2solid[0][facenr-1] = solidnr;
++            else
++               face2solid[1][facenr-1] = solidnr;
++         }
++      }
++
++
++      int total = 0;
++      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
++         for (TopExp_Explorer exp2(geom.fmap(i3), TopAbs_WIRE); exp2.More(); exp2.Next())
++            for (TopExp_Explorer exp3(exp2.Current(), TopAbs_EDGE); exp3.More(); exp3.Next())
++               total++;
++
++
++      int facenr = 0;
++      int edgenr = 0;
++
++      edgenr = mesh.GetNSeg(); // to support SALOME sub-meshes
++
++      (*testout) << "faces = " << geom.fmap.Extent() << endl;
++      int curr = 0;
++
++      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
++      {
++         TopoDS_Face face = TopoDS::Face(geom.fmap(i3));
++         facenr = geom.fmap.FindIndex (face);       // sollte doch immer == i3 sein ??? JS
++
++         int solidnr0 = face2solid[0][i3-1];
++         int solidnr1 = face2solid[1][i3-1];
++
++         /* auskommentiert am 3.3.05 von robert
++         for (exp2.Init (geom.somap(solidnr0), TopAbs_FACE); exp2.More(); exp2.Next())
++         {
++         TopoDS_Face face2 = TopoDS::Face(exp2.Current());
++         if (geom.fmap.FindIndex(face2) == facenr)
++         {
++         //                 if (face.Orientation() != face2.Orientation()) swap (solidnr0, solidnr1);
++         }
++         }
++         */
++
++         mesh.AddFaceDescriptor (FaceDescriptor(facenr, solidnr0, solidnr1, 0));
++
++         // Philippose - 06/07/2009
++         // Add the face colour to the mesh data
++         Quantity_Color face_colour;
++
++         if(!(geom.face_colours.IsNull())
++            && (geom.face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour)))
++         {
++            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(face_colour.Red(),face_colour.Green(),face_colour.Blue()));
++         }
++         else
++         {
++            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(0.0,1.0,0.0));
++         }
++         // ACHTUNG! STIMMT NICHT ALLGEMEIN (RG)
++
++
++         Handle(Geom_Surface) occface = BRep_Tool::Surface(face);
++
++         for (TopExp_Explorer exp2 (face, TopAbs_WIRE); exp2.More(); exp2.Next())
++         {
++            TopoDS_Shape wire = exp2.Current();
++
++            for (TopExp_Explorer exp3 (wire, TopAbs_EDGE); exp3.More(); exp3.Next())
++            {
++               curr++;
++               (*testout) << "edge nr " << curr << endl;
++
++               multithread.percent = 100 * curr / double (total);
++               if (multithread.terminate) return;
++
++               TopoDS_Edge edge = TopoDS::Edge (exp3.Current());
++               if (BRep_Tool::Degenerated(edge))
++               {
++                  //(*testout) << "ignoring degenerated edge" << endl;
++                  continue;
++               }
++               if ( geom.emap.FindIndex(edge) < 1 ) continue; // to support SALOME sub-meshes
++
++               if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
++                  geom.vmap.FindIndex(TopExp::LastVertex (edge)))
++               {
++                  GProp_GProps system;
++                  BRepGProp::LinearProperties(edge, system);
++
++                  if (system.Mass() < eps)
++                  {
++                     cout << "ignoring edge " << geom.emap.FindIndex (edge)
++                        << ". closed edge with length < " << eps << endl;
++                     continue;
++                  }
++               }
++
++
++               Handle(Geom2d_Curve) cof;
++               double s0, s1;
++               cof = BRep_Tool::CurveOnSurface (edge, face, s0, s1);
++
++               int geomedgenr = geom.emap.FindIndex(edge);
++
++               Array <MeshPoint> mp;
++               Array <double> params;
++
++               DivideEdge (edge, mp, params, mesh);
++ 
++               Array <int> pnums;
++               pnums.SetSize (mp.Size()+2);
++
++               if (!merge_solids)
++               {
++                 //pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));
++                 //pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));
++                 MeshPoint dfltP ( Point<3> ( 0, 0, 0 ) );
++                 int *ipp[] = { &pnums[0], &pnums[pnums.Size()-1] };
++                 TopoDS_Iterator vIt( edge, false );
++                 TopoDS_Vertex v[2];
++                 v[0] = TopoDS::Vertex( vIt.Value() ); vIt.Next();
++                 v[1] = TopoDS::Vertex( vIt.Value() );
++                 if ( v[0].Orientation() == TopAbs_REVERSED )
++                   std::swap( v[0], v[1] );
++                 for ( int i = 0; i < 2; ++i)
++                 {
++                   int &ip = *ipp[i];
++                   ip = geom.vmap.FindIndex ( v[i] );
++                   if ( ip == 0 || ip > nvertices )
++                   {
++                     int iv = ip;
++                     if ( ip == 0 )
++                       ip = iv = geom.vmap.Add( v[i] );
++                     gp_Pnt pnt = BRep_Tool::Pnt( v[i] );
++                     MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
++                     for (PointIndex pi = 1; pi < first_vp; pi++)
++                       if ( Dist2 (mesh.Point(pi), Point<3>(mp)) < 1e-100 )
++                       {
++                         ip = pi;
++                         if ( mesh.Point(ip).GetLayer() != dfltP.GetLayer() && mesh.Point(ip).GetLayer() != iv )
++                           continue;
++                         if ( mesh.Point(ip).GetLayer() == dfltP.GetLayer())
++                           mesh.Point(ip) = MeshPoint( mesh.Point(ip), iv );
++                         break;
++                       }
++               }
++               else
++               {
++                     ip += first_vp - 1;
++                   }
++                 }
++               }
++               else
++               {
++                 TopoDS_Iterator vIt( edge, false );
++                 TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();
++                 TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );
++                 if ( v1.Orientation() == TopAbs_REVERSED )
++                   std::swap( v1, v2 );
++                 const bool isClosedEdge = v1.IsSame( v2 );
++                 
++                  Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
++                  Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
++                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
++                  if ( isClosedEdge )
++                    tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
++
++                  pnums[0] = -1;
++                  pnums.Last() = -1;
++                  for (PointIndex pi = 1; pi < first_ep; pi++)
++                  {
++                    if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;
++                    if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;
++                  }
++                  if (( isClosedEdge && pnums[0] != pnums.Last() ) ||
++                      ( !isClosedEdge && pnums[0] == pnums.Last() ))
++                    pnums[0] = pnums.Last() = -1;
++                  if ( pnums[0] == -1 || pnums.Last() == -1 )
++                  {
++                    // take into account a possible large gap between a vertex and an edge curve
++                    // end and a large vertex tolerance covering the whole edge
++                    if ( pnums[0] == -1 )
++                    {
++                      double tol = BRep_Tool::Tolerance( v1 );
++                      for (PointIndex pi = 1; pi < first_ep; pi++)
++                        if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)
++                          pnums[0] = pi;
++
++                      if ( pnums[0] == -1 )
++                        pnums[0] = first_ep-1- nvertices + geom.vmap.FindIndex ( v1 );
++                    }
++                    if ( isClosedEdge )
++                    {
++                      pnums.Last() = pnums[0];
++                    }
++                    else
++                    {
++                      if ( pnums.Last() == -1 )
++                      {
++                        double tol = BRep_Tool::Tolerance( v2 );
++                        for (PointIndex pi = 1; pi < first_ep; pi++)
++                          if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)
++                            pnums.Last() = pi;
++
++                        if ( pnums.Last() == -1 )
++                          pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );
++                      }
++
++                      if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >
++                           Dist2( lp, mesh[PointIndex(pnums.Last())]))
++                      std::swap( pnums[0], pnums.Last() );
++                    }
++                  }
++               }
++
++
++               for (int i = 1; i <= mp.Size(); i++)
++               {
++                  bool exists = 0;
++                  int j;
++                  for (j = first_ep; j <= mesh.GetNP(); j++)
++                  {
++                     if (!merge_solids && mesh.Point(j).GetLayer() != geomedgenr ) continue; // to support SALOME fuse edges
++                     if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
++                     {
++                        exists = 1;
++                        break;
++                     }
++                  }
++
++                     if (exists)
++                        pnums[i] = j;
++                     else
++                     {
++                        mesh.AddPoint (mp[i-1], geomedgenr); // to support SALOME fuse edges
++                        (*testout) << "add meshpoint " << mp[i-1] << endl;
++                        pnums[i] = mesh.GetNP();
++                     }
++               }
++               (*testout) << "NP = " << mesh.GetNP() << endl;
++
++               //(*testout) << pnums[pnums.Size()-1] << endl;
++
++               for (int i = 1; i <= mp.Size()+1; i++)
++               {
++                  edgenr++;
++                  Segment seg;
++
++                  seg[0] = pnums[i-1];
++                  seg[1] = pnums[i];
++                  seg.edgenr = edgenr;
++                  seg.si = facenr;
++                  seg.epgeominfo[0].dist = params[i-1];
++                  seg.epgeominfo[1].dist = params[i];
++                  seg.epgeominfo[0].edgenr = geomedgenr;
++                  seg.epgeominfo[1].edgenr = geomedgenr;
++
++                  gp_Pnt2d p2d;
++                  p2d = cof->Value(params[i-1]);
++                  //                  if (i == 1) p2d = cof->Value(s0);
++                  seg.epgeominfo[0].u = p2d.X();
++                  seg.epgeominfo[0].v = p2d.Y();
++                  p2d = cof->Value(params[i]);
++                  //                  if (i == mp.Size()+1) p2d = cof -> Value(s1);
++                  seg.epgeominfo[1].u = p2d.X();
++                  seg.epgeominfo[1].v = p2d.Y();
++
++                  /*
++                  if (occface->IsUPeriodic())
++                  {
++                  cout << "U Periodic" << endl;
++                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
++                  fabs(seg.epgeominfo[1].u-
++                  (seg.epgeominfo[0].u-occface->UPeriod())))
++                  seg.epgeominfo[0].u = p2d.X()+occface->UPeriod();
++
++                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
++                  fabs(seg.epgeominfo[1].u-
++                  (seg.epgeominfo[0].u+occface->UPeriod())))
++                  seg.epgeominfo[0].u = p2d.X()-occface->UPeriod();
++                  }
++
++                  if (occface->IsVPeriodic())
++                  {
++                  cout << "V Periodic" << endl;
++                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
++                  fabs(seg.epgeominfo[1].v-
++                  (seg.epgeominfo[0].v-occface->VPeriod())))
++                  seg.epgeominfo[0].v = p2d.Y()+occface->VPeriod();
++
++                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
++                  fabs(seg.epgeominfo[1].v-
++                  (seg.epgeominfo[0].v+occface->VPeriod())))
++                  seg.epgeominfo[0].v = p2d.Y()-occface->VPeriod();
++                  }
++                  */
++
++                  if (edge.Orientation() == TopAbs_REVERSED)
++                  {
++                     swap (seg[0], seg[1]);
++                     swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);
++                     swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);
++                     swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);
++                  }
++
++                  mesh.AddSegment (seg);
++
++                  //edgesegments[geomedgenr-1]->Append(mesh.GetNSeg());
++
++               }
++            }
++         }
++      }
++
++      //      for(i=1; i<=mesh.GetNSeg(); i++)
++      //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si
++      //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;
++      //      exit(10);
++      for (int j = 1; j <= mesh.GetNP(); j++) // to support SALOME fuse edges: set level to zero
++        mesh.Point(j) = MeshPoint( (Point<3>&) mesh.Point(j) );
++
++      mesh.CalcSurfacesOfNode();
++      multithread.task = savetask;
++   }
++
++
++
++
++   void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend)
++   {
++      int i, j, k;
++      int changed;
++
++      const char * savetask = multithread.task;
++      multithread.task = "Surface meshing";
++
++      geom.facemeshstatus = 0;
++
++      int noldp = mesh.GetNP();
++
++      double starttime = GetTime();
++
++      Array<int> glob2loc(noldp);
++
++      //int projecttype = PARAMETERSPACE;
++
++      int projecttype = PARAMETERSPACE;
++
++      int notrys = 1;
++
++      int surfmesherror = 0;
++
++      for (k = 1; k <= mesh.GetNFD(); k++)
++      {
++         if(1==0 && !geom.fvispar[k-1].IsDrawable())
++         {
++            (*testout) << "ignoring face " << k << endl;
++            cout << "ignoring face " << k << endl;
++            continue;
++         }
++
++         (*testout) << "mesh face " << k << endl;
++         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
++         geom.facemeshstatus[k-1] = -1;
++
++
++         /*
++         if (k != 42)
++         {
++         cout << "skipped" << endl;
++         continue;
++         }
++         */
++
++
++         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
++
++         int oldnf = mesh.GetNSE();
++
++         Box<3> bb = geom.GetBoundingBox();
++
++         //      int projecttype = PLANESPACE;
++
++         Meshing2OCCSurfaces meshing(TopoDS::Face(geom.fmap(k)), bb, projecttype);
++
++         if (meshing.GetProjectionType() == PLANESPACE)
++            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (plane space projection)");
++         else
++            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (parameter space projection)");
++
++         if (surfmesherror)
++            cout << "Surface meshing error occured before (in " << surfmesherror << " faces)" << endl;
++
++         //      Meshing2OCCSurfaces meshing(f2, bb);
++         meshing.SetStartTime (starttime);
++
++         //(*testout) << "Face " << k << endl << endl;
++
++
++         if (meshing.GetProjectionType() == PLANESPACE)
++         {
++            int cntp = 0;
++            glob2loc = 0;
++            for (i = 1; i <= mesh.GetNSeg(); i++)
++            {
++               Segment & seg = mesh.LineSegment(i);
++               if (seg.si == k)
++               {
++                  for (j = 1; j <= 2; j++)
++                  {
++                     int pi = (j == 1) ? seg[0] : seg[1];
++                     if (!glob2loc.Get(pi))
++                     {
++                        meshing.AddPoint (mesh.Point(pi), pi);
++                        cntp++;
++                        glob2loc.Elem(pi) = cntp;
++                     }
++                  }
++               }
++            }
++
++            for (i = 1; i <= mesh.GetNSeg(); i++)
++            {
++               Segment & seg = mesh.LineSegment(i);
++               if (seg.si == k)
++               {
++                  PointGeomInfo gi0, gi1;
++                  gi0.trignum = gi1.trignum = k;
++                  gi0.u = seg.epgeominfo[0].u;
++                  gi0.v = seg.epgeominfo[0].v;
++                  gi1.u = seg.epgeominfo[1].u;
++                  gi1.v = seg.epgeominfo[1].v;
++
++                  meshing.AddBoundaryElement (glob2loc.Get(seg[0]), glob2loc.Get(seg[1]), gi0, gi1);
++                  //(*testout) << gi0.u << " " << gi0.v << endl;
++                  //(*testout) << gi1.u << " " << gi1.v << endl;
++               }
++            }
++         }
++         else
++         {
++            int cntp = 0;
++
++            for (i = 1; i <= mesh.GetNSeg(); i++)
++               if (mesh.LineSegment(i).si == k)
++                  cntp+=2;
++
++
++            Array< PointGeomInfo > gis;
++
++            gis.SetAllocSize (cntp);
++            gis.SetSize (0);
++
++            for (i = 1; i <= mesh.GetNSeg(); i++)
++            {
++               Segment & seg = mesh.LineSegment(i);
++               if (seg.si == k)
++               {
++                  PointGeomInfo gi0, gi1;
++                  gi0.trignum = gi1.trignum = k;
++                  gi0.u = seg.epgeominfo[0].u;
++                  gi0.v = seg.epgeominfo[0].v;
++                  gi1.u = seg.epgeominfo[1].u;
++                  gi1.v = seg.epgeominfo[1].v;
++
++                  int locpnum[2] = {0, 0};
++
++                  for (j = 0; j < 2; j++)
++                  {
++                     PointGeomInfo gi = (j == 0) ? gi0 : gi1;
++
++                     int l;
++                     for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)
++                     {
++                        double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);
++
++                        if (dist < 1e-10)
++                           locpnum[j] = l+1;
++                     }
++
++                     if (locpnum[j] == 0)
++                     {
++                        int pi = (j == 0) ? seg[0] : seg[1];
++                        meshing.AddPoint (mesh.Point(pi), pi);
++
++                        gis.SetSize (gis.Size()+1);
++                        gis[l] = gi;
++                        locpnum[j] = l+1;
++                     }
++                  }
++
++                  meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);
++                  //(*testout) << gi0.u << " " << gi0.v << endl;
++                  //(*testout) << gi1.u << " " << gi1.v << endl;
++
++               }
++            }
++         }
++
++
++
++
++
++         // Philippose - 15/01/2009
++         double maxh = geom.face_maxh[k-1];
++         //double maxh = mparam.maxh;
++         mparam.checkoverlap = 0;
++         //      int noldpoints = mesh->GetNP();
++         int noldsurfel = mesh.GetNSE();
++
++         GProp_GProps sprops;
++         BRepGProp::SurfaceProperties(TopoDS::Face(geom.fmap(k)),sprops);
++         meshing.SetMaxArea(2.*sprops.Mass());
++
++         MESHING2_RESULT res;
++
++         try {
++         res = meshing.GenerateMesh (mesh, mparam, maxh, k);
++         }
++
++         catch (SingularMatrixException)
++         {
++            (*myerr) << "Singular Matrix" << endl;
++            res = MESHING2_GIVEUP;
++         }
++
++         catch (UVBoundsException)
++         {
++            (*myerr) << "UV bounds exceeded" << endl;
++            res = MESHING2_GIVEUP;
++         }
++
++         projecttype = PARAMETERSPACE;
++
++         if (res != MESHING2_OK)
++         {
++            if (notrys == 1)
++            {
++               for (int i = noldsurfel+1; i <= mesh.GetNSE(); i++)
++                  mesh.DeleteSurfaceElement (i);
++
++               mesh.Compress();
++
++               cout << "retry Surface " << k << endl;
++
++               k--;
++               projecttype*=-1;
++               notrys++;
++               continue;
++            }
++            else
++            {
++               geom.facemeshstatus[k-1] = -1;
++               PrintError ("Problem in Surface mesh generation");
++               surfmesherror++;
++               //           throw NgException ("Problem in Surface mesh generation");
++            }
++         }
++         else
++         {
++            geom.facemeshstatus[k-1] = 1;
++         }
++
++         notrys = 1;
++
++         for (i = oldnf+1; i <= mesh.GetNSE(); i++)
++            mesh.SurfaceElement(i).SetIndex (k);
++
++      }
++
++//      ofstream problemfile("occmesh.rep");
++
++//      problemfile << "SURFACEMESHING" << endl << endl;
++
++      if (surfmesherror)
++      {
++         cout << "WARNING! NOT ALL FACES HAVE BEEN MESHED" << endl;
++         cout << "SURFACE MESHING ERROR OCCURED IN " << surfmesherror << " FACES:" << endl;
++         for (int i = 1; i <= geom.fmap.Extent(); i++)
++            if (geom.facemeshstatus[i-1] == -1)
++            {
++               cout << "Face " << i << endl;
++//               problemfile << "problem with face " << i << endl;
++//               problemfile << "vertices: " << endl;
++               TopExp_Explorer exp0,exp1,exp2;
++               for ( exp0.Init(TopoDS::Face (geom.fmap(i)), TopAbs_WIRE); exp0.More(); exp0.Next() )
++               {
++                  TopoDS_Wire wire = TopoDS::Wire(exp0.Current());
++                  for ( exp1.Init(wire,TopAbs_EDGE); exp1.More(); exp1.Next() )
++                  {
++                     TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++                     for ( exp2.Init(edge,TopAbs_VERTEX); exp2.More(); exp2.Next() )
++                     {
++                        TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());
++                        gp_Pnt point = BRep_Tool::Pnt(vertex);
++//                        problemfile << point.X() << " " << point.Y() << " " << point.Z() << endl;
++                     }
++                  }
++               }
++//               problemfile << endl;
++
++            }
++            cout << endl << endl;
++            cout << "for more information open IGES/STEP Topology Explorer" << endl;
++//            problemfile.close();
++            throw NgException ("Problem in Surface mesh generation");
++      }
++      else
++      {
++//         problemfile << "OK" << endl << endl;
++//         problemfile.close();
++      }
++
++
++
++
++      if (multithread.terminate || perfstepsend < MESHCONST_OPTSURFACE)
++         return;
++
++      multithread.task = "Optimizing surface";
++
++      static int timer_opt2d = NgProfiler::CreateTimer ("Optimization 2D");
++      NgProfiler::StartTimer (timer_opt2d);
++
++      for (k = 1; k <= mesh.GetNFD(); k++)
++      {
++         //      if (k != 42) continue;
++         //      if (k != 36) continue;
++
++         //      (*testout) << "optimize face " << k << endl;
++         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
++
++         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
++
++         PrintMessage (1, "Optimize Surface ", k);
++         for (i = 1; i <= mparam.optsteps2d; i++)
++         {
++            //          (*testout) << "optstep " << i << endl;
++            if (multithread.terminate) return;
++
++            {
++               MeshOptimize2dOCCSurfaces meshopt(geom);
++               meshopt.SetFaceIndex (k);
++               meshopt.SetImproveEdges (0);
++               meshopt.SetMetricWeight (mparam.elsizeweight);
++               //meshopt.SetMetricWeight (0.2);
++               meshopt.SetWriteStatus (0);
++
++               //         (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;
++               meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));
++            }
++
++            if (multithread.terminate) return;
++            {
++               MeshOptimize2dOCCSurfaces meshopt(geom);
++               meshopt.SetFaceIndex (k);
++               meshopt.SetImproveEdges (0);
++               //meshopt.SetMetricWeight (0.2);
++               meshopt.SetMetricWeight (mparam.elsizeweight);
++               meshopt.SetWriteStatus (0);
++
++               //         (*testout) << "ImproveMesh (mesh)" << endl;
++               meshopt.ImproveMesh (mesh, mparam);
++            }
++
++            {
++               MeshOptimize2dOCCSurfaces meshopt(geom);
++               meshopt.SetFaceIndex (k);
++               meshopt.SetImproveEdges (0);
++               //meshopt.SetMetricWeight (0.2);
++               meshopt.SetMetricWeight (mparam.elsizeweight);
++               meshopt.SetWriteStatus (0);
++
++               //         (*testout) << "CombineImprove (mesh)" << endl;
++               meshopt.CombineImprove (mesh);
++            }
++
++            if (multithread.terminate) return;
++            {
++               MeshOptimize2dOCCSurfaces meshopt(geom);
++               meshopt.SetFaceIndex (k);
++               meshopt.SetImproveEdges (0);
++               //meshopt.SetMetricWeight (0.2);
++               meshopt.SetMetricWeight (mparam.elsizeweight);
++               meshopt.SetWriteStatus (0);
++
++               //         (*testout) << "ImproveMesh (mesh)" << endl;
++               meshopt.ImproveMesh (mesh, mparam);
++            }
++         }
++
++      }
++
++
++      mesh.CalcSurfacesOfNode();
++      mesh.Compress();
++
++      NgProfiler::StopTimer (timer_opt2d);
++
++      multithread.task = savetask;
++   }
++
++
++
++   void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh)
++   {
++      mesh.SetGlobalH (mparam.maxh);
++      mesh.SetMinimalH (mparam.minh);
++
++      Array<double> maxhdom;
++      maxhdom.SetSize (geom.NrSolids());
++      maxhdom = mparam.maxh;
++
++      mesh.SetMaxHDomain (maxhdom);
++
++      Box<3> bb = geom.GetBoundingBox();
++      bb.Increase (bb.Diam()/10);
++
++      mesh.SetLocalH (bb.PMin(), bb.PMax(), 0.5);
++
++      if (mparam.uselocalh)
++      {
++         const char * savetask = multithread.task;
++         multithread.percent = 0;
++
++         mesh.SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
++
++         int nedges = geom.emap.Extent();
++
++               double mincurvelength = IGNORECURVELENGTH;
++         double maxedgelen = 0;
++         double minedgelen = 1e99;
++
++               if(occparam.resthminedgelenenable) 
++               {
++                      mincurvelength = occparam.resthminedgelen;
++                      if(mincurvelength < IGNORECURVELENGTH) mincurvelength = IGNORECURVELENGTH;
++               }
++
++         multithread.task = "Setting local mesh size (elements per edge)";
++
++         // setting elements per edge
++
++         for (int i = 1; i <= nedges && !multithread.terminate; i++)
++         {
++            TopoDS_Edge e = TopoDS::Edge (geom.emap(i));
++            multithread.percent = 100 * (i-1)/double(nedges);
++            if (BRep_Tool::Degenerated(e)) continue;
++
++            GProp_GProps system;
++            BRepGProp::LinearProperties(e, system);
++            double len = system.Mass();
++
++            if (len < mincurvelength)
++            {
++               (*testout) << "ignored" << endl;
++               continue;
++            }
++
++            double localh = len/mparam.segmentsperedge;
++            double s0, s1;
++
++            // Philippose - 23/01/2009
++            // Find all the parent faces of a given edge
++            // and limit the mesh size of the edge based on the
++            // mesh size limit of the face
++            TopTools_IndexedDataMapOfShapeListOfShape edge_face_map;
++            edge_face_map.Clear();
++
++            TopExp::MapShapesAndAncestors(geom.shape, TopAbs_EDGE, TopAbs_FACE, edge_face_map);
++            const TopTools_ListOfShape& parent_faces = edge_face_map.FindFromKey(e);
++
++            TopTools_ListIteratorOfListOfShape parent_face_list;
++
++            for(parent_face_list.Initialize(parent_faces); parent_face_list.More(); parent_face_list.Next())
++            {
++               TopoDS_Face parent_face = TopoDS::Face(parent_face_list.Value());
++
++               int face_index = geom.fmap.FindIndex(parent_face);
++
++               if(face_index >= 1) localh = min(localh,geom.face_maxh[face_index - 1]);
++            }
++
++            Handle(Geom_Curve) c = BRep_Tool::Curve(e, s0, s1);
++
++            maxedgelen = max (maxedgelen, len);
++            minedgelen = min (minedgelen, len);
++
++            // Philippose - 23/01/2009
++            // Modified the calculation of maxj, because the
++            // method used so far always results in maxj = 2,
++            // which causes the localh to be set only at the
++            // starting, mid and end of the edge.
++            // Old Algorithm:
++            // int maxj = 2 * (int) ceil (localh/len);
++            int maxj = max((int) ceil(len/localh), 2);
++
++            for (int j = 0; j <= maxj; j++)
++            {
++               gp_Pnt pnt = c->Value (s0+double(j)/maxj*(s1-s0));
++               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), localh);
++            }
++         }
++
++         multithread.task = "Setting local mesh size (edge curvature)";
++
++         // setting edge curvature
++
++         int nsections = 20;
++
++         for (int i = 1; i <= nedges && !multithread.terminate; i++)
++         {
++            double maxcur = 0;
++            multithread.percent = 100 * (i-1)/double(nedges);
++            TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
++            if (BRep_Tool::Degenerated(edge)) continue;
++            double s0, s1;
++            Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
++            BRepAdaptor_Curve brepc(edge);
++            BRepLProp_CLProps prop(brepc, 2, 1e-5);
++
++            for (int j = 1; j <= nsections; j++)
++            {
++               double s = s0 + j/(double) nsections * (s1-s0);
++               prop.SetParameter (s);
++               double curvature = prop.Curvature();
++               if(curvature> maxcur) maxcur = curvature;
++
++               if (curvature >= 1e99)
++                  continue;
++
++               gp_Pnt pnt = c->Value (s);
++
++               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature)));
++            }
++            // (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;
++         }
++
++         multithread.task = "Setting local mesh size (face curvature)";
++
++         // setting face curvature
++
++         int nfaces = geom.fmap.Extent();
++
++         for (int i = 1; i <= nfaces && !multithread.terminate; i++)
++         {
++            multithread.percent = 100 * (i-1)/double(nfaces);
++            TopoDS_Face face = TopoDS::Face(geom.fmap(i));
++            TopLoc_Location loc;
++            Handle(Geom_Surface) surf = BRep_Tool::Surface (face);
++            Handle(Poly_Triangulation) triangulation = BRep_Tool::Triangulation (face, loc);
++
++            if (triangulation.IsNull()) continue;
++
++            BRepAdaptor_Surface sf(face, Standard_True);
++            BRepLProp_SLProps prop(sf, 2, 1e-5);
++
++            int ntriangles = triangulation -> NbTriangles();
++            for (int j = 1; j <= ntriangles; j++)
++            {
++               gp_Pnt p[3];
++               gp_Pnt2d par[3];
++
++               for (int k = 1; k <=3; k++)
++               {
++                  int n = triangulation->Triangles()(j)(k);
++                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);
++                  par[k-1] = triangulation->UVNodes()(n);
++               }
++
++               //double maxside = 0;
++               //maxside = max (maxside, p[0].Distance(p[1]));
++               //maxside = max (maxside, p[0].Distance(p[2]));
++               //maxside = max (maxside, p[1].Distance(p[2]));
++               //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
++
++               RestrictHTriangle (par[0], par[1], par[2], &prop, mesh, 0);
++               //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
++            }
++         }
++
++         // setting close edges
++
++         if (occparam.resthcloseedgeenable)
++         {
++            multithread.task = "Setting local mesh size (close edges)";
++
++            int sections = 100;
++
++            Array<Line> lines(sections*nedges);
++
++            Box3dTree* searchtree =
++               new Box3dTree (bb.PMin(), bb.PMax());
++
++            int nlines = 0;
++            for (int i = 1; i <= nedges && !multithread.terminate; i++)
++            {
++               TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
++               if (BRep_Tool::Degenerated(edge)) continue;
++
++               double s0, s1;
++               Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
++               BRepAdaptor_Curve brepc(edge);
++               BRepLProp_CLProps prop(brepc, 1, 1e-5);
++               prop.SetParameter (s0);
++
++               gp_Vec d0 = prop.D1().Normalized();
++               double s_start = s0;
++               int count = 0;
++               for (int j = 1; j <= sections; j++)
++               {
++                  double s = s0 + (s1-s0)*(double)j/(double)sections;
++                  prop.SetParameter (s);
++                  gp_Vec d1 = prop.D1().Normalized();
++                  double cosalpha = fabs(d0*d1);
++                  if ((j == sections) || (cosalpha < cos(10.0/180.0*M_PI)))
++                  {
++                     count++;
++                     gp_Pnt p0 = c->Value (s_start);
++                     gp_Pnt p1 = c->Value (s);
++                     lines[nlines].p0 = Point<3> (p0.X(), p0.Y(), p0.Z());
++                     lines[nlines].p1 = Point<3> (p1.X(), p1.Y(), p1.Z());
++
++                     Box3d box;
++                     box.SetPoint (Point3d(lines[nlines].p0));
++                     box.AddPoint (Point3d(lines[nlines].p1));
++
++                     searchtree->Insert (box.PMin(), box.PMax(), nlines+1);
++                     nlines++;
++
++                     s_start = s;
++                     d0 = d1;
++                  }
++               }
++            }
++
++            Array<int> linenums;
++
++            for (int i = 0; i < nlines; i++)
++            {
++               multithread.percent = (100*i)/double(nlines);
++               Line & line = lines[i];
++
++               Box3d box;
++               box.SetPoint (Point3d(line.p0));
++               box.AddPoint (Point3d(line.p1));
++               double maxhline = max (mesh.GetH(box.PMin()),
++                  mesh.GetH(box.PMax()));
++               box.Increase(maxhline);
++
++               double mindist = 1e99;
++               linenums.SetSize(0);
++               searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);
++
++               for (int j = 0; j < linenums.Size(); j++)
++               {
++                  int num = linenums[j]-1;
++                  if (i == num) continue;
++                  if ((line.p0-lines[num].p0).Length2() < 1e-15) continue;
++                  if ((line.p0-lines[num].p1).Length2() < 1e-15) continue;
++                  if ((line.p1-lines[num].p0).Length2() < 1e-15) continue;
++                  if ((line.p1-lines[num].p1).Length2() < 1e-15) continue;
++                  mindist = min (mindist, line.Dist(lines[num]));
++               }
++
++               mindist /= (occparam.resthcloseedgefac + VSMALL);
++
++               if (mindist < 1e-3)
++               {
++                  (*testout) << "extremely small local h: " << mindist
++                     << " --> setting to 1e-3" << endl;
++                  (*testout) << "somewhere near " << line.p0 << " - " << line.p1 << endl;
++                  mindist = 1e-3;
++               }
++
++               mesh.RestrictLocalHLine(line.p0, line.p1, mindist);
++            }
++         }
++
++         multithread.task = savetask;
++
++      }
++
++      // Philippose - 09/03/2009
++      // Added the capability to load the mesh size from a 
++      // file also for OpenCascade Geometry
++      // Note: 
++      // ** If the "uselocalh" option is ticked in 
++      // the "mesh options...insider" menu, the mesh 
++      // size will be further modified by the topology 
++      // analysis routines.
++      // ** To use the mesh size file as the sole source 
++      // for defining the mesh size, uncheck the "uselocalh"
++      // option.
++      mesh.LoadLocalMeshSize (mparam.meshsizefilename);
++   }
++
++
++
++  int OCCGenerateMesh (OCCGeometry & geom, Mesh *& mesh, MeshingParameters & mparam,
++                     int perfstepsstart, int perfstepsend)
++   {
++      multithread.percent = 0;
++
++      if (perfstepsstart <= MESHCONST_ANALYSE)
++      {
++         delete mesh;
++         mesh = new Mesh();
++         mesh->geomtype = Mesh::GEOM_OCC;
++
++         OCCSetLocalMeshSize(geom,*mesh);
++      }
++
++      if (multithread.terminate || perfstepsend <= MESHCONST_ANALYSE)
++         return TCL_OK;
++
++      if (perfstepsstart <= MESHCONST_MESHEDGES)
++      {
++         OCCFindEdges (geom, *mesh);
++
++         /*
++         cout << "Removing redundant points" << endl;
++
++         int i, j;
++         int np = mesh->GetNP();
++         Array<int> equalto;
++
++         equalto.SetSize (np);
++         equalto = 0;
++
++         for (i = 1; i <= np; i++)
++         {
++         for (j = i+1; j <= np; j++)
++         {
++         if (!equalto[j-1] && (Dist2 (mesh->Point(i), mesh->Point(j)) < 1e-12))
++         equalto[j-1] = i;
++         }
++         }
++
++         for (i = 1; i <= np; i++)
++         if (equalto[i-1])
++         {
++         cout << "Point " << i << " is equal to Point " << equalto[i-1] << endl;
++         for (j = 1; j <= mesh->GetNSeg(); j++)
++         {
++         Segment & seg = mesh->LineSegment(j);
++         if (seg[0] == i) seg[0] = equalto[i-1];
++         if (seg[1] == i) seg[1] = equalto[i-1];
++         }
++         }
++
++         cout << "Removing degenerated segments" << endl;
++         for (j = 1; j <= mesh->GetNSeg(); j++)
++         {
++         Segment & seg = mesh->LineSegment(j);
++         if (seg[0] == seg[1])
++         {
++         mesh->DeleteSegment(j);
++         cout << "Deleting Segment " << j << endl;
++         }
++         }
++
++         mesh->Compress();
++         */
++
++         /*
++         for (int i = 1; i <= geom.fmap.Extent(); i++)
++         {
++         Handle(Geom_Surface) hf1 =
++         BRep_Tool::Surface(TopoDS::Face(geom.fmap(i)));
++         for (int j = i+1; j <= geom.fmap.Extent(); j++)
++         {
++         Handle(Geom_Surface) hf2 =
++         BRep_Tool::Surface(TopoDS::Face(geom.fmap(j)));
++         if (hf1 == hf2) cout << "face " << i << " and face " << j << " lie on same surface" << endl;
++         }
++         }
++         */
++
++#ifdef LOG_STREAM
++         (*logout) << "Edges meshed" << endl
++            << "time = " << GetTime() << " sec" << endl
++            << "points: " << mesh->GetNP() << endl;
++#endif
++      }
++
++      if (multithread.terminate || perfstepsend <= MESHCONST_MESHEDGES)
++         return TCL_OK;
++
++      if (perfstepsstart <= MESHCONST_MESHSURFACE)
++      {
++         OCCMeshSurface (geom, *mesh, perfstepsend);
++         if (multithread.terminate) return TCL_OK;
++
++#ifdef LOG_STREAM
++         (*logout) << "Surfaces meshed" << endl
++            << "time = " << GetTime() << " sec" << endl
++            << "points: " << mesh->GetNP() << endl;
++#endif
++
++#ifdef STAT_STREAM
++         (*statout) << mesh->GetNSeg() << " & "
++            << mesh->GetNSE() << " & - &"
++            << GetTime() << " & " << endl;
++#endif
++
++         //      MeshQuality2d (*mesh);
++         mesh->CalcSurfacesOfNode();
++      }
++
++      if (multithread.terminate || perfstepsend <= MESHCONST_OPTSURFACE)
++         return TCL_OK;
++
++      if (perfstepsstart <= MESHCONST_MESHVOLUME)
++      {
++         multithread.task = "Volume meshing";
++
++         MESHING3_RESULT res = MeshVolume (mparam, *mesh);
++
++/*
++         ofstream problemfile("occmesh.rep",ios_base::app);
++
++         problemfile << "VOLUMEMESHING" << endl << endl;
++         if(res != MESHING3_OK)
++            problemfile << "ERROR" << endl << endl;
++         else
++            problemfile << "OK" << endl
++            << mesh->GetNE() << " elements" << endl << endl;
++
++         problemfile.close();
++*/
++
++         if (res != MESHING3_OK) return TCL_ERROR;
++
++         if (multithread.terminate) return TCL_OK;
++
++         RemoveIllegalElements (*mesh);
++         if (multithread.terminate) return TCL_OK;
++
++         MeshQuality3d (*mesh);
++
++#ifdef STAT_STREAM
++         (*statout) << GetTime() << " & ";
++#endif
++
++#ifdef LOG_STREAM
++         (*logout) << "Volume meshed" << endl
++            << "time = " << GetTime() << " sec" << endl
++            << "points: " << mesh->GetNP() << endl;
++#endif
++      }
++
++      if (multithread.terminate || perfstepsend <= MESHCONST_MESHVOLUME)
++         return TCL_OK;
++
++      if (perfstepsstart <= MESHCONST_OPTVOLUME)
++      {
++         multithread.task = "Volume optimization";
++
++         OptimizeVolume (mparam, *mesh);
++         if (multithread.terminate) return TCL_OK;
++
++#ifdef STAT_STREAM
++         (*statout) << GetTime() << " & "
++            << mesh->GetNE() << " & "
++            << mesh->GetNP() << " " << '\\' << '\\' << " \\" << "hline" << endl;
++#endif
++
++#ifdef LOG_STREAM
++         (*logout) << "Volume optimized" << endl
++            << "time = " << GetTime() << " sec" << endl
++            << "points: " << mesh->GetNP() << endl;
++#endif
++
++         // cout << "Optimization complete" << endl;
++
++      }
++
++      (*testout) << "NP: " << mesh->GetNP() << endl;
++      for (int i = 1; i <= mesh->GetNP(); i++)
++         (*testout) << mesh->Point(i) << endl;
++
++      (*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;
++      for (int i = 1; i <= mesh->GetNSeg(); i++)
++         (*testout) << mesh->LineSegment(i) << endl;
++
++      return TCL_OK;
++   }
++}
++
++#endif
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp       2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp      2019-11-14 16:56:23.366425439 +0300
+@@ -1,1612 +1,1669 @@
+-\r
+-#ifdef OCCGEOMETRY\r
+-\r
+-#include <mystdlib.h>\r
+-#include <occgeom.hpp>\r
+-#include "ShapeAnalysis_ShapeTolerance.hxx"\r
+-#include "ShapeAnalysis_ShapeContents.hxx"\r
+-#include "ShapeAnalysis_CheckSmallFace.hxx"\r
+-#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"\r
+-#include "ShapeAnalysis_Surface.hxx"\r
+-#include "BRepAlgoAPI_Fuse.hxx"\r
+-#include "BRepCheck_Analyzer.hxx"\r
+-#include "BRepLib.hxx"\r
+-#include "ShapeBuild_ReShape.hxx"\r
+-#include "ShapeFix.hxx"\r
+-#include "ShapeFix_FixSmallFace.hxx"\r
+-#include "Partition_Spliter.hxx"\r
+-\r
+-\r
+-namespace netgen\r
+-{\r
+-   void OCCGeometry :: PrintNrShapes ()\r
+-   {\r
+-      TopExp_Explorer e;\r
+-      int count = 0;\r
+-      for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) count++;\r
+-      cout << "CompSolids: " << count << endl;\r
+-\r
+-      cout << "Solids    : " << somap.Extent() << endl;\r
+-      cout << "Shells    : " << shmap.Extent() << endl;\r
+-      cout << "Faces     : " << fmap.Extent() << endl;\r
+-      cout << "Edges     : " << emap.Extent() << endl;\r
+-      cout << "Vertices  : " << vmap.Extent() << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void PrintContents (OCCGeometry * geom)\r
+-   {\r
+-      ShapeAnalysis_ShapeContents cont;\r
+-      cont.Clear();\r
+-      cont.Perform(geom->shape);\r
+-\r
+-      (*testout) << "OCC CONTENTS" << endl;\r
+-      (*testout) << "============" << endl;\r
+-      (*testout) << "SOLIDS   : " << cont.NbSolids() << endl;\r
+-      (*testout) << "SHELLS   : " << cont.NbShells() << endl;\r
+-      (*testout) << "FACES    : " << cont.NbFaces() << endl;\r
+-      (*testout) << "WIRES    : " << cont.NbWires() << endl;\r
+-      (*testout) << "EDGES    : " << cont.NbEdges() << endl;\r
+-      (*testout) << "VERTICES : " << cont.NbVertices() << endl;\r
+-\r
+-      TopExp_Explorer e;\r
+-      int count = 0;\r
+-      for (e.Init(geom->shape, TopAbs_COMPOUND); e.More(); e.Next())\r
+-         count++;\r
+-      (*testout) << "Compounds: " << count << endl;\r
+-\r
+-      count = 0;\r
+-      for (e.Init(geom->shape, TopAbs_COMPSOLID); e.More(); e.Next())\r
+-         count++;\r
+-      (*testout) << "CompSolids: " << count << endl;\r
+-\r
+-      (*testout) << endl;\r
+-\r
+-      cout << "Highest entry in topology hierarchy: " << endl;\r
+-      if (count)\r
+-         cout << count << " composite solid(s)" << endl;\r
+-      else\r
+-         if (geom->somap.Extent())\r
+-            cout << geom->somap.Extent() << " solid(s)" << endl;\r
+-         else\r
+-            if (geom->shmap.Extent())\r
+-               cout << geom->shmap.Extent() << " shells(s)" << endl;\r
+-            else\r
+-               if (geom->fmap.Extent())\r
+-                  cout << geom->fmap.Extent() << " face(s)" << endl;\r
+-               else\r
+-                  if (geom->wmap.Extent())\r
+-                     cout << geom->wmap.Extent() << " wire(s)" << endl;\r
+-                  else\r
+-                     if (geom->emap.Extent())\r
+-                        cout << geom->emap.Extent() << " edge(s)" << endl;\r
+-                     else\r
+-                        if (geom->vmap.Extent())\r
+-                           cout << geom->vmap.Extent() << " vertices(s)" << endl;\r
+-                        else\r
+-                           cout << "no entities" << endl;\r
+-\r
+-   }\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: HealGeometry ()\r
+-   {\r
+-      int nrc = 0, nrcs = 0,\r
+-         nrso = somap.Extent(),\r
+-         nrsh = shmap.Extent(),\r
+-         nrf = fmap.Extent(),\r
+-         nrw = wmap.Extent(),\r
+-         nre = emap.Extent(),\r
+-         nrv = vmap.Extent();\r
+-\r
+-      TopExp_Explorer exp0;\r
+-      TopExp_Explorer exp1;\r
+-\r
+-\r
+-      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++;\r
+-      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++;\r
+-\r
+-      double surfacecont = 0;\r
+-\r
+-      {\r
+-         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-         rebuild->Apply(shape);\r
+-         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-            if ( BRep_Tool::Degenerated(edge) )\r
+-               rebuild->Remove(edge, false);\r
+-         }\r
+-         shape = rebuild->Apply(shape);\r
+-      }\r
+-\r
+-      BuildFMap();\r
+-\r
+-\r
+-      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
+-      {\r
+-         TopoDS_Face face = TopoDS::Face(exp0.Current());\r
+-\r
+-         GProp_GProps system;\r
+-         BRepGProp::SurfaceProperties(face, system);\r
+-         surfacecont += system.Mass();\r
+-      }\r
+-\r
+-\r
+-      cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl\r
+-         << "-----------------------------------" << endl;\r
+-\r
+-      {\r
+-         cout << endl << "- repairing faces" << endl;\r
+-\r
+-         Handle(ShapeFix_Face) sff;\r
+-         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-         rebuild->Apply(shape);\r
+-\r
+-\r
+-         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
+-         {\r
+-            // Variable to hold the colour (if there exists one) of \r
+-            // the current face being processed\r
+-            Quantity_Color face_colour;\r
+-\r
+-            TopoDS_Face face = TopoDS::Face (exp0.Current());\r
+-\r
+-            if(face_colours.IsNull()\r
+-               || (!(face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour))))\r
+-            {\r
+-               // Set the default face colour to green (Netgen Standard)\r
+-               // if no colour has been defined for the face\r
+-               face_colour = Quantity_Color(0.0,1.0,0.0,Quantity_TOC_RGB);\r
+-            }\r
+-\r
+-            sff = new ShapeFix_Face (face);\r
+-            sff->FixAddNaturalBoundMode() = Standard_True;\r
+-            sff->FixSmallAreaWireMode() = Standard_True;\r
+-            sff->Perform();\r
+-\r
+-            if(sff->Status(ShapeExtend_DONE1) ||\r
+-               sff->Status(ShapeExtend_DONE2) ||\r
+-               sff->Status(ShapeExtend_DONE3) ||\r
+-               sff->Status(ShapeExtend_DONE4) ||\r
+-               sff->Status(ShapeExtend_DONE5))\r
+-            {\r
+-               cout << "repaired face " << fmap.FindIndex(face) << " ";\r
+-               if(sff->Status(ShapeExtend_DONE1))\r
+-                  cout << "(some wires are fixed)" <<endl;\r
+-               else if(sff->Status(ShapeExtend_DONE2))\r
+-                  cout << "(orientation of wires fixed)" <<endl;\r
+-               else if(sff->Status(ShapeExtend_DONE3))\r
+-                  cout << "(missing seam added)" <<endl;\r
+-               else if(sff->Status(ShapeExtend_DONE4))\r
+-                  cout << "(small area wire removed)" <<endl;\r
+-               else if(sff->Status(ShapeExtend_DONE5))\r
+-                  cout << "(natural bounds added)" <<endl;\r
+-               TopoDS_Face newface = sff->Face();\r
+-\r
+-               rebuild->Replace(face, newface, Standard_False);\r
+-            }\r
+-\r
+-            // Set the original colour of the face to the newly created \r
+-            // face (after the healing process)\r
+-            face = TopoDS::Face (exp0.Current());\r
+-            face_colours->SetColor(face,face_colour,XCAFDoc_ColorSurf);\r
+-         }\r
+-         shape = rebuild->Apply(shape);\r
+-      }\r
+-\r
+-\r
+-      {\r
+-         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-         rebuild->Apply(shape);\r
+-         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-            if ( BRep_Tool::Degenerated(edge) )\r
+-               rebuild->Remove(edge, false);\r
+-         }\r
+-         shape = rebuild->Apply(shape);\r
+-      }\r
+-\r
+-\r
+-      if (fixsmalledges)\r
+-      {\r
+-         cout << endl << "- fixing small edges" << endl;\r
+-\r
+-         Handle(ShapeFix_Wire) sfw;\r
+-         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-         rebuild->Apply(shape);\r
+-\r
+-\r
+-         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
+-         {\r
+-            TopoDS_Face face = TopoDS::Face(exp0.Current());\r
+-\r
+-            for (exp1.Init (face, TopAbs_WIRE); exp1.More(); exp1.Next())\r
+-            {\r
+-               TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());\r
+-               sfw = new ShapeFix_Wire (oldwire, face ,tolerance);\r
+-               sfw->ModifyTopologyMode() = Standard_True;\r
+-\r
+-               sfw->ClosedWireMode() = Standard_True;\r
+-\r
+-               bool replace = false;\r
+-\r
+-               replace = sfw->FixReorder() || replace;\r
+-\r
+-               replace = sfw->FixConnected() || replace;\r
+-\r
+-\r
+-\r
+-               if (sfw->FixSmall (Standard_False, tolerance) && ! (sfw->StatusSmall(ShapeExtend_FAIL1) ||\r
+-                  sfw->StatusSmall(ShapeExtend_FAIL2) ||\r
+-                  sfw->StatusSmall(ShapeExtend_FAIL3)))\r
+-               {\r
+-                  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;\r
+-                  replace = true;\r
+-\r
+-               }\r
+-               else if (sfw->StatusSmall(ShapeExtend_FAIL1))\r
+-                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)\r
+-                  << ", edge cannot be checked (no 3d curve and no pcurve)" << endl;\r
+-               else if (sfw->StatusSmall(ShapeExtend_FAIL2))\r
+-                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)\r
+-                  << ", edge is null-length and has different vertives at begin and end, and lockvtx is True or ModifiyTopologyMode is False" << endl;\r
+-               else if (sfw->StatusSmall(ShapeExtend_FAIL3))\r
+-                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)\r
+-                  << ", CheckConnected has failed" << endl;\r
+-\r
+-               replace = sfw->FixEdgeCurves() || replace;\r
+-\r
+-               replace = sfw->FixDegenerated() || replace;\r
+-\r
+-               replace = sfw->FixSelfIntersection() || replace;\r
+-\r
+-               replace = sfw->FixLacking(Standard_True) || replace;\r
+-\r
+-               if(replace)\r
+-               {\r
+-                  TopoDS_Wire newwire = sfw->Wire();\r
+-                  rebuild->Replace(oldwire, newwire, Standard_False);\r
+-               }\r
+-\r
+-               //delete sfw; sfw = NULL;\r
+-\r
+-            }\r
+-         }\r
+-\r
+-         shape = rebuild->Apply(shape);\r
+-\r
+-\r
+-\r
+-         {\r
+-            BuildFMap();\r
+-            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-            rebuild->Apply(shape);\r
+-\r
+-            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-            {\r
+-               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-               if (vmap.FindIndex(TopExp::FirstVertex (edge)) ==\r
+-                  vmap.FindIndex(TopExp::LastVertex (edge)))\r
+-               {\r
+-                  GProp_GProps system;\r
+-                  BRepGProp::LinearProperties(edge, system);\r
+-                  if (system.Mass() < tolerance)\r
+-                  {\r
+-                     cout << "removing degenerated edge " << emap.FindIndex(edge)\r
+-                        << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))\r
+-                        << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;\r
+-                     rebuild->Remove(edge, false);\r
+-                  }\r
+-               }\r
+-            }\r
+-            shape = rebuild->Apply(shape);\r
+-\r
+-            //delete rebuild; rebuild = NULL;\r
+-         }\r
+-\r
+-\r
+-\r
+-         {\r
+-            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-            rebuild->Apply(shape);\r
+-            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-            {\r
+-               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-               if ( BRep_Tool::Degenerated(edge) )\r
+-                  rebuild->Remove(edge, false);\r
+-            }\r
+-            shape = rebuild->Apply(shape);\r
+-         }\r
+-\r
+-\r
+-\r
+-\r
+-         Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;\r
+-         sfwf->SetPrecision(tolerance);\r
+-         sfwf->Load (shape);\r
+-         sfwf->ModeDropSmallEdges() = Standard_True;\r
+-\r
+-         sfwf->SetPrecision(boundingbox.Diam());\r
+-\r
+-         if (sfwf->FixWireGaps())\r
+-         {\r
+-            cout << endl << "- fixing wire gaps" << endl;\r
+-            if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;\r
+-            if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;\r
+-            if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;\r
+-            if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;\r
+-            if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;\r
+-         }\r
+-\r
+-         sfwf->SetPrecision(tolerance);\r
+-\r
+-\r
+-         {\r
+-            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-            {\r
+-               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-               if ( BRep_Tool::Degenerated(edge) )\r
+-                  cout << "degenerated edge at position 4" << endl;\r
+-            }\r
+-         }\r
+-\r
+-\r
+-\r
+-         if (sfwf->FixSmallEdges())\r
+-         {\r
+-            cout << endl << "- fixing wire frames" << endl;\r
+-            if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;\r
+-            if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;\r
+-            if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;\r
+-         }\r
+-\r
+-\r
+-\r
+-         shape = sfwf->Shape();\r
+-\r
+-         //delete sfwf; sfwf = NULL;\r
+-         //delete rebuild; rebuild = NULL;\r
+-\r
+-      }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-      {\r
+-         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-            if ( BRep_Tool::Degenerated(edge) )\r
+-               cout << "degenerated edge at position 5" << endl;\r
+-         }\r
+-      }\r
+-\r
+-\r
+-\r
+-\r
+-      if (fixspotstripfaces)\r
+-      {\r
+-\r
+-         cout << endl << "- fixing spot and strip faces" << endl;\r
+-         Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();\r
+-         sffsm -> Init (shape);\r
+-         sffsm -> SetPrecision (tolerance);\r
+-         sffsm -> Perform();\r
+-\r
+-         shape = sffsm -> FixShape();\r
+-         //delete sffsm; sffsm = NULL;\r
+-      }\r
+-\r
+-\r
+-      {\r
+-         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-            if ( BRep_Tool::Degenerated(edge) )\r
+-               cout << "degenerated edge at position 6" << endl;\r
+-         }\r
+-      }\r
+-\r
+-\r
+-\r
+-      if (sewfaces)\r
+-      {\r
+-         cout << endl << "- sewing faces" << endl;\r
+-\r
+-         BRepOffsetAPI_Sewing sewedObj(tolerance);\r
+-\r
+-         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
+-         {\r
+-            TopoDS_Face face = TopoDS::Face (exp0.Current());\r
+-            sewedObj.Add (face);\r
+-         }\r
+-\r
+-         sewedObj.Perform();\r
+-\r
+-         if (!sewedObj.SewedShape().IsNull())\r
+-            shape = sewedObj.SewedShape();\r
+-         else\r
+-            cout << " not possible";\r
+-      }\r
+-\r
+-\r
+-\r
+-      {\r
+-         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-         rebuild->Apply(shape);\r
+-         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-            if ( BRep_Tool::Degenerated(edge) )\r
+-               rebuild->Remove(edge, false);\r
+-         }\r
+-         shape = rebuild->Apply(shape);\r
+-      }\r
+-\r
+-\r
+-      if (makesolids)\r
+-      {\r
+-         cout << endl << "- making solids" << endl;\r
+-\r
+-         BRepBuilderAPI_MakeSolid ms;\r
+-         int count = 0;\r
+-         for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())\r
+-         {\r
+-            count++;\r
+-            ms.Add (TopoDS::Shell(exp0.Current()));\r
+-         }\r
+-\r
+-         if (!count)\r
+-         {\r
+-            cout << " not possible (no shells)" << endl;\r
+-         }\r
+-         else\r
+-         {\r
+-            BRepCheck_Analyzer ba(ms);\r
+-            if (ba.IsValid ())\r
+-            {\r
+-               Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;\r
+-               sfs->Init (ms);\r
+-               sfs->SetPrecision(tolerance);\r
+-               sfs->SetMaxTolerance(tolerance);\r
+-               sfs->Perform();\r
+-               shape = sfs->Shape();\r
+-\r
+-               for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())\r
+-               {\r
+-                  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
+-                  TopoDS_Solid newsolid = solid;\r
+-                  BRepLib::OrientClosedSolid (newsolid);\r
+-                  Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-                  //            rebuild->Apply(shape);\r
+-                  rebuild->Replace(solid, newsolid, Standard_False);\r
+-                  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);\r
+-                  //            TopoDS_Shape newshape = rebuild->Apply(shape);\r
+-                  shape = newshape;\r
+-               }\r
+-\r
+-               //delete sfs; sfs = NULL;\r
+-            }\r
+-            else\r
+-               cout << " not possible" << endl;\r
+-         }\r
+-      }\r
+-\r
+-\r
+-\r
+-      if (splitpartitions)\r
+-      {\r
+-         cout << "- running SALOME partition splitter" << endl;\r
+-\r
+-         TopExp_Explorer e2;\r
+-         Partition_Spliter ps;\r
+-         int count = 0;\r
+-\r
+-         for (e2.Init (shape, TopAbs_SOLID);\r
+-            e2.More(); e2.Next())\r
+-         {\r
+-            count++;\r
+-            ps.AddShape (e2.Current());\r
+-         }\r
+-\r
+-         ps.Compute();\r
+-         shape = ps.Shape();\r
+-\r
+-         cout << " before: " << count << " solids" << endl;\r
+-\r
+-         count = 0;\r
+-         for (e2.Init (shape, TopAbs_SOLID);\r
+-            e2.More(); e2.Next()) count++;\r
+-\r
+-            cout << " after : " << count << " solids" << endl;\r
+-      }\r
+-\r
+-      BuildFMap();\r
+-\r
+-\r
+-\r
+-      {\r
+-         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
+-         {\r
+-            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
+-            if ( BRep_Tool::Degenerated(edge) )\r
+-               cout << "degenerated edge at position 8" << endl;\r
+-         }\r
+-      }\r
+-\r
+-\r
+-      double newsurfacecont = 0;\r
+-\r
+-\r
+-      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
+-      {\r
+-         TopoDS_Face face = TopoDS::Face(exp0.Current());\r
+-         GProp_GProps system;\r
+-         BRepGProp::SurfaceProperties(face, system);\r
+-         newsurfacecont += system.Mass();\r
+-      }\r
+-\r
+-\r
+-      int nnrc = 0, nnrcs = 0,\r
+-         nnrso = somap.Extent(),\r
+-         nnrsh = shmap.Extent(),\r
+-         nnrf = fmap.Extent(),\r
+-         nnrw = wmap.Extent(),\r
+-         nnre = emap.Extent(),\r
+-         nnrv = vmap.Extent();\r
+-\r
+-      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++;\r
+-      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++;\r
+-\r
+-      cout << "-----------------------------------" << endl;\r
+-      cout << "Compounds       : " << nnrc << " (" << nrc << ")" << endl;\r
+-      cout << "Composite solids: " << nnrcs << " (" << nrcs << ")" << endl;\r
+-      cout << "Solids          : " << nnrso << " (" << nrso << ")" << endl;\r
+-      cout << "Shells          : " << nnrsh << " (" << nrsh << ")" << endl;\r
+-      cout << "Wires           : " << nnrw << " (" << nrw << ")" << endl;\r
+-      cout << "Faces           : " << nnrf << " (" << nrf << ")" << endl;\r
+-      cout << "Edges           : " << nnre << " (" << nre << ")" << endl;\r
+-      cout << "Vertices        : " << nnrv << " (" << nrv << ")" << endl;\r
+-      cout << endl;\r
+-      cout << "Totol surface area : " << newsurfacecont << " (" << surfacecont << ")" << endl;\r
+-      cout << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: BuildFMap()\r
+-   {\r
+-      somap.Clear();\r
+-      shmap.Clear();\r
+-      fmap.Clear();\r
+-      wmap.Clear();\r
+-      emap.Clear();\r
+-      vmap.Clear();\r
+-\r
+-      TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5;\r
+-\r
+-      for (exp0.Init(shape, TopAbs_COMPOUND);\r
+-         exp0.More(); exp0.Next())\r
+-      {\r
+-         TopoDS_Compound compound = TopoDS::Compound (exp0.Current());\r
+-         (*testout) << "compound" << endl;\r
+-         int i = 0;\r
+-         for (exp1.Init(compound, TopAbs_SHELL);\r
+-            exp1.More(); exp1.Next())\r
+-         {\r
+-            (*testout) << "shell " << ++i << endl;\r
+-         }\r
+-      }\r
+-\r
+-      for (exp0.Init(shape, TopAbs_SOLID);\r
+-         exp0.More(); exp0.Next())\r
+-      {\r
+-         TopoDS_Solid solid = TopoDS::Solid (exp0.Current());\r
+-\r
+-         if (somap.FindIndex(solid) < 1)\r
+-         {\r
+-            somap.Add (solid);\r
+-\r
+-            for (exp1.Init(solid, TopAbs_SHELL);\r
+-               exp1.More(); exp1.Next())\r
+-            {\r
+-               TopoDS_Shell shell = TopoDS::Shell (exp1.Current());\r
+-               if (shmap.FindIndex(shell) < 1)\r
+-               {\r
+-                  shmap.Add (shell);\r
+-\r
+-                  for (exp2.Init(shell, TopAbs_FACE);\r
+-                     exp2.More(); exp2.Next())\r
+-                  {\r
+-                     TopoDS_Face face = TopoDS::Face(exp2.Current());\r
+-                     if (fmap.FindIndex(face) < 1)\r
+-                     {\r
+-                        fmap.Add (face);\r
+-                        (*testout) << "face " << fmap.FindIndex(face) << " ";\r
+-                        (*testout) << ((face.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";\r
+-                        (*testout) << ((exp2.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;\r
+-                        for (exp3.Init(exp2.Current(), TopAbs_WIRE);\r
+-                           exp3.More(); exp3.Next())\r
+-                        {\r
+-                           TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
+-                           if (wmap.FindIndex(wire) < 1)\r
+-                           {\r
+-                              wmap.Add (wire);\r
+-\r
+-                              for (exp4.Init(exp3.Current(), TopAbs_EDGE);\r
+-                                 exp4.More(); exp4.Next())\r
+-                              {\r
+-                                 TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
+-                                 if (emap.FindIndex(edge) < 1)\r
+-                                 {\r
+-                                    emap.Add (edge);\r
+-                                    for (exp5.Init(exp4.Current(), TopAbs_VERTEX);\r
+-                                       exp5.More(); exp5.Next())\r
+-                                    {\r
+-                                       TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
+-                                       if (vmap.FindIndex(vertex) < 1)\r
+-                                          vmap.Add (vertex);\r
+-                                    }\r
+-                                 }\r
+-                              }\r
+-                           }\r
+-                        }\r
+-                     }\r
+-                  }\r
+-               }\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-      // Free Shells\r
+-      for (exp1.Init(shape, TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next())\r
+-      {\r
+-         TopoDS_Shell shell = TopoDS::Shell(exp1.Current());\r
+-         if (shmap.FindIndex(shell) < 1)\r
+-         {\r
+-            shmap.Add (shell);\r
+-\r
+-            (*testout) << "shell " << shmap.FindIndex(shell) << " ";\r
+-            (*testout) << ((shell.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";\r
+-            (*testout) << ((exp1.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;\r
+-\r
+-            for (exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next())\r
+-            {\r
+-               TopoDS_Face face = TopoDS::Face(exp2.Current());\r
+-               if (fmap.FindIndex(face) < 1)\r
+-               {\r
+-                  fmap.Add (face);\r
+-\r
+-                  for (exp3.Init(face, TopAbs_WIRE); exp3.More(); exp3.Next())\r
+-                  {\r
+-                     TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
+-                     if (wmap.FindIndex(wire) < 1)\r
+-                     {\r
+-                        wmap.Add (wire);\r
+-\r
+-                        for (exp4.Init(wire, TopAbs_EDGE); exp4.More(); exp4.Next())\r
+-                        {\r
+-                           TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
+-                           if (emap.FindIndex(edge) < 1)\r
+-                           {\r
+-                              emap.Add (edge);\r
+-                              for (exp5.Init(edge, TopAbs_VERTEX); exp5.More(); exp5.Next())\r
+-                              {\r
+-                                 TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
+-                                 if (vmap.FindIndex(vertex) < 1)\r
+-                                    vmap.Add (vertex);\r
+-                              }\r
+-                           }\r
+-                        }\r
+-                     }\r
+-                  }\r
+-               }\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-\r
+-      // Free Faces\r
+-\r
+-      for (exp2.Init(shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next())\r
+-      {\r
+-         TopoDS_Face face = TopoDS::Face(exp2.Current());\r
+-         if (fmap.FindIndex(face) < 1)\r
+-         {\r
+-            fmap.Add (face);\r
+-\r
+-            for (exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next())\r
+-            {\r
+-               TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
+-               if (wmap.FindIndex(wire) < 1)\r
+-               {\r
+-                  wmap.Add (wire);\r
+-\r
+-                  for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())\r
+-                  {\r
+-                     TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
+-                     if (emap.FindIndex(edge) < 1)\r
+-                     {\r
+-                        emap.Add (edge);\r
+-                        for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())\r
+-                        {\r
+-                           TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
+-                           if (vmap.FindIndex(vertex) < 1)\r
+-                              vmap.Add (vertex);\r
+-                        }\r
+-                     }\r
+-                  }\r
+-               }\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-\r
+-      // Free Wires\r
+-\r
+-      for (exp3.Init(shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next())\r
+-      {\r
+-         TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
+-         if (wmap.FindIndex(wire) < 1)\r
+-         {\r
+-            wmap.Add (wire);\r
+-\r
+-            for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())\r
+-            {\r
+-               TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
+-               if (emap.FindIndex(edge) < 1)\r
+-               {\r
+-                  emap.Add (edge);\r
+-                  for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())\r
+-                  {\r
+-                     TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
+-                     if (vmap.FindIndex(vertex) < 1)\r
+-                        vmap.Add (vertex);\r
+-                  }\r
+-               }\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-\r
+-      // Free Edges\r
+-\r
+-      for (exp4.Init(shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next())\r
+-      {\r
+-         TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
+-         if (emap.FindIndex(edge) < 1)\r
+-         {\r
+-            emap.Add (edge);\r
+-            for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())\r
+-            {\r
+-               TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
+-               if (vmap.FindIndex(vertex) < 1)\r
+-                  vmap.Add (vertex);\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-\r
+-      // Free Vertices\r
+-\r
+-      for (exp5.Init(shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next())\r
+-      {\r
+-         TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
+-         if (vmap.FindIndex(vertex) < 1)\r
+-            vmap.Add (vertex);\r
+-      }\r
+-\r
+-\r
+-\r
+-\r
+-      facemeshstatus.DeleteAll();\r
+-      facemeshstatus.SetSize (fmap.Extent());\r
+-      facemeshstatus = 0;\r
+-\r
+-      // Philippose - 15/01/2009\r
+-      face_maxh.DeleteAll();\r
+-      face_maxh.SetSize (fmap.Extent());\r
+-      face_maxh = mparam.maxh;\r
+-\r
+-      // Philippose - 15/01/2010      \r
+-      face_maxh_modified.DeleteAll();      \r
+-      face_maxh_modified.SetSize(fmap.Extent());      \r
+-      face_maxh_modified = 0;\r
+-      \r
+-\r
+-      // Philippose - 17/01/2009\r
+-      face_sel_status.DeleteAll();\r
+-      face_sel_status.SetSize (fmap.Extent());\r
+-      face_sel_status = 0;\r
+-\r
+-      fvispar.SetSize (fmap.Extent());\r
+-      evispar.SetSize (emap.Extent());\r
+-      vvispar.SetSize (vmap.Extent());\r
+-\r
+-      fsingular.SetSize (fmap.Extent());\r
+-      esingular.SetSize (emap.Extent());\r
+-      vsingular.SetSize (vmap.Extent());\r
+-\r
+-      fsingular = esingular = vsingular = false;\r
+-   }\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: SewFaces ()\r
+-   {\r
+-      (*testout) << "Trying to sew faces ..." << endl;\r
+-      cout << "Trying to sew faces ..." << flush;\r
+-\r
+-      BRepOffsetAPI_Sewing sewedObj(1);\r
+- \r
+-      for (int i = 1; i <= fmap.Extent(); i++)\r
+-      {\r
+-         TopoDS_Face face = TopoDS::Face (fmap(i));\r
+-         sewedObj.Add (face);\r
+-      }\r
+-\r
+-      sewedObj.Perform();\r
+-\r
+-      if (!sewedObj.SewedShape().IsNull())\r
+-      {\r
+-         shape = sewedObj.SewedShape();\r
+-         cout << " done" << endl;\r
+-      }\r
+-      else\r
+-         cout << " not possible";\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: MakeSolid ()\r
+-   {\r
+-      TopExp_Explorer exp0;\r
+-\r
+-      (*testout) << "Trying to build solids ..." << endl;\r
+-      cout << "Trying to build solids ..." << flush;\r
+-\r
+-      BRepBuilderAPI_MakeSolid ms;\r
+-      int count = 0;\r
+-      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())\r
+-      {\r
+-         count++;\r
+-         ms.Add (TopoDS::Shell(exp0.Current()));\r
+-      }\r
+-\r
+-      if (!count)\r
+-      {\r
+-         cout << " not possible (no shells)" << endl;\r
+-         return;\r
+-      }\r
+-\r
+-      BRepCheck_Analyzer ba(ms);\r
+-      if (ba.IsValid ())\r
+-      {\r
+-         Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;\r
+-         sfs->Init (ms);\r
+-\r
+-         sfs->SetPrecision(1e-5);\r
+-         sfs->SetMaxTolerance(1e-5);\r
+-\r
+-         sfs->Perform();\r
+-\r
+-         shape = sfs->Shape();\r
+-\r
+-         for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())\r
+-         {\r
+-            TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
+-            TopoDS_Solid newsolid = solid;\r
+-            BRepLib::OrientClosedSolid (newsolid);\r
+-            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-            rebuild->Replace(solid, newsolid, Standard_False);\r
+-\r
+-            TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);\r
+-            shape = newshape;\r
+-         }\r
+-\r
+-         cout << " done" << endl;\r
+-      }\r
+-      else\r
+-         cout << " not possible" << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: BuildVisualizationMesh (double deflection)\r
+-   {\r
+-      cout << "Preparing visualization (deflection = " << deflection << ") ... " << flush;\r
+-\r
+-      BRepTools::Clean (shape);\r
+-      // BRepMesh_IncrementalMesh::\r
+-      BRepMesh_IncrementalMesh (shape, deflection, true);\r
+-      cout << "done" << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: CalcBoundingBox ()\r
+-   {\r
+-      Bnd_Box bb;\r
+-      BRepBndLib::Add (shape, bb);\r
+-\r
+-      double x1,y1,z1,x2,y2,z2;\r
+-      bb.Get (x1,y1,z1,x2,y2,z2);\r
+-      Point<3> p1 = Point<3> (x1,y1,z1);\r
+-      Point<3> p2 = Point<3> (x2,y2,z2);\r
+-\r
+-      (*testout) << "Bounding Box = [" << p1 << " - " << p2 << "]" << endl;\r
+-      boundingbox = Box<3> (p1,p2);\r
+-      SetCenter();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: Project (int surfi, Point<3> & p) const\r
+-   {\r
+-      static int cnt = 0;\r
+-      if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;\r
+-\r
+-      gp_Pnt pnt(p(0), p(1), p(2));\r
+-\r
+-      double u,v;\r
+-      Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
+-      Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );\r
+-      gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );\r
+-      suval.Coord( u, v);\r
+-      pnt = thesurf->Value( u, v );\r
+-\r
+-\r
+-      p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());\r
+-\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   bool OCCGeometry :: FastProject (int surfi, Point<3> & ap, double& u, double& v) const\r
+-   {\r
+-      gp_Pnt p(ap(0), ap(1), ap(2));\r
+-\r
+-      Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
+-\r
+-      gp_Pnt x = surface->Value (u,v);\r
+-\r
+-      if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;\r
+-\r
+-      gp_Vec du, dv;\r
+-\r
+-      surface->D1(u,v,x,du,dv);\r
+-\r
+-      int count = 0;\r
+-\r
+-      gp_Pnt xold;\r
+-      gp_Vec n;\r
+-      double det, lambda, mu;\r
+-\r
+-      do {\r
+-         count++;\r
+-\r
+-         n = du^dv;\r
+-\r
+-         det = Det3 (n.X(), du.X(), dv.X(),\r
+-            n.Y(), du.Y(), dv.Y(),\r
+-            n.Z(), du.Z(), dv.Z());\r
+-\r
+-         if (det < 1e-15) return false;\r
+-\r
+-         lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),\r
+-            n.Y(), p.Y()-x.Y(), dv.Y(),\r
+-            n.Z(), p.Z()-x.Z(), dv.Z())/det;\r
+-\r
+-         mu     = Det3 (n.X(), du.X(), p.X()-x.X(),\r
+-            n.Y(), du.Y(), p.Y()-x.Y(),\r
+-            n.Z(), du.Z(), p.Z()-x.Z())/det;\r
+-\r
+-         u += lambda;\r
+-         v += mu;\r
+-\r
+-         xold = x;\r
+-         surface->D1(u,v,x,du,dv);\r
+-\r
+-      } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);\r
+-\r
+-      //    (*testout) << "FastProject count: " << count << endl;\r
+-\r
+-      if (count == 50) return false;\r
+-\r
+-      ap = Point<3> (x.X(), x.Y(), x.Z());\r
+-\r
+-      return true;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: WriteOCC_STL(char * filename)\r
+-   {\r
+-      cout << "writing stl..."; cout.flush();\r
+-      StlAPI_Writer writer;\r
+-      writer.RelativeMode() = Standard_False;\r
+-\r
+-      writer.SetDeflection(0.02);\r
+-      writer.Write(shape,filename);\r
+-\r
+-      cout << "done" << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-   // Philippose - 23/02/2009\r
+-   /* Special IGES File load function including the ability\r
+-   to extract individual surface colours via the extended\r
+-   OpenCascade XDE and XCAF Feature set.\r
+-   */\r
+-   OCCGeometry *LoadOCC_IGES(const char *filename)\r
+-   {\r
+-      OCCGeometry *occgeo;\r
+-      occgeo = new OCCGeometry;\r
+-\r
+-      // Initiate a dummy XCAF Application to handle the IGES XCAF Document\r
+-      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
+-\r
+-      // Create an XCAF Document to contain the IGES file itself\r
+-      Handle_TDocStd_Document iges_doc;\r
+-\r
+-      // Check if a IGES File is already open under this handle, if so, close it to prevent\r
+-      // Segmentation Faults when trying to create a new document\r
+-      if(dummy_app->NbDocuments() > 0)\r
+-      {\r
+-         dummy_app->GetDocument(1,iges_doc);\r
+-         dummy_app->Close(iges_doc);\r
+-      }\r
+-      dummy_app->NewDocument ("IGES-XCAF",iges_doc);\r
+-\r
+-      IGESCAFControl_Reader reader;\r
+-\r
+-      Standard_Integer stat = reader.ReadFile((char*)filename);\r
+-\r
+-      if(stat != IFSelect_RetDone)\r
+-      {\r
+-         delete occgeo;\r
+-         return NULL;\r
+-      }\r
+-\r
+-      // Enable transfer of colours\r
+-      reader.SetColorMode(Standard_True);\r
+-\r
+-      reader.Transfer(iges_doc);\r
+-\r
+-      // Read in the shape(s) and the colours present in the IGES File\r
+-      Handle_XCAFDoc_ShapeTool iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());\r
+-      Handle_XCAFDoc_ColorTool iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());\r
+-\r
+-      TDF_LabelSequence iges_shapes;\r
+-      iges_shape_contents->GetShapes(iges_shapes);\r
+-\r
+-      // List out the available colours in the IGES File as Colour Names\r
+-      TDF_LabelSequence all_colours;\r
+-      iges_colour_contents->GetColors(all_colours);\r
+-      PrintMessage(1,"Number of colours in IGES File: ",all_colours.Length());\r
+-      for(int i = 1; i <= all_colours.Length(); i++)\r
+-      {\r
+-         Quantity_Color col;\r
+-         stringstream col_rgb;\r
+-         iges_colour_contents->GetColor(all_colours.Value(i),col);\r
+-         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";\r
+-         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());\r
+-      }\r
+-\r
+-\r
+-      // For the IGES Reader, all the shapes can be exported as one compund shape \r
+-      // using the "OneShape" member\r
+-      occgeo->shape = reader.OneShape();\r
+-      occgeo->face_colours = iges_colour_contents;\r
+-      occgeo->changed = 1;\r
+-      occgeo->BuildFMap();\r
+-\r
+-      occgeo->CalcBoundingBox();\r
+-      PrintContents (occgeo);\r
+-\r
+-      return occgeo;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-   // Philippose - 29/01/2009\r
+-   /* Special STEP File load function including the ability\r
+-   to extract individual surface colours via the extended\r
+-   OpenCascade XDE and XCAF Feature set.\r
+-   */\r
+-   OCCGeometry * LoadOCC_STEP (const char * filename)\r
+-   {\r
+-      OCCGeometry * occgeo;\r
+-      occgeo = new OCCGeometry;\r
+-\r
+-      // Initiate a dummy XCAF Application to handle the STEP XCAF Document\r
+-      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
+-\r
+-      // Create an XCAF Document to contain the STEP file itself\r
+-      Handle_TDocStd_Document step_doc;\r
+-\r
+-      // Check if a STEP File is already open under this handle, if so, close it to prevent\r
+-      // Segmentation Faults when trying to create a new document\r
+-      if(dummy_app->NbDocuments() > 0)\r
+-      {\r
+-         dummy_app->GetDocument(1,step_doc);\r
+-         dummy_app->Close(step_doc);\r
+-      }\r
+-      dummy_app->NewDocument ("STEP-XCAF",step_doc);\r
+-\r
+-      STEPCAFControl_Reader reader;\r
+-\r
+-      // Enable transfer of colours\r
+-      reader.SetColorMode(Standard_True);\r
+-\r
+-      Standard_Integer stat = reader.ReadFile((char*)filename);\r
+-\r
+-      if(stat != IFSelect_RetDone)\r
+-      {\r
+-         delete occgeo;\r
+-         return NULL;\r
+-      }\r
+-\r
+-      reader.Transfer(step_doc);\r
+-\r
+-      // Read in the shape(s) and the colours present in the STEP File\r
+-      Handle_XCAFDoc_ShapeTool step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());\r
+-      Handle_XCAFDoc_ColorTool step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());\r
+-\r
+-      TDF_LabelSequence step_shapes;\r
+-      step_shape_contents->GetShapes(step_shapes);\r
+-\r
+-      // List out the available colours in the STEP File as Colour Names\r
+-      TDF_LabelSequence all_colours;\r
+-      step_colour_contents->GetColors(all_colours);\r
+-      PrintMessage(1,"Number of colours in STEP File: ",all_colours.Length());\r
+-      for(int i = 1; i <= all_colours.Length(); i++)\r
+-      {\r
+-         Quantity_Color col;\r
+-         stringstream col_rgb;\r
+-         step_colour_contents->GetColor(all_colours.Value(i),col);\r
+-         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";\r
+-         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());\r
+-      }\r
+-\r
+-\r
+-      // For the STEP File Reader in OCC, the 1st Shape contains the entire \r
+-      // compound geometry as one shape\r
+-      occgeo->shape = step_shape_contents->GetShape(step_shapes.Value(1));\r
+-      occgeo->face_colours = step_colour_contents;\r
+-      occgeo->changed = 1;\r
+-      occgeo->BuildFMap();\r
+-\r
+-      occgeo->CalcBoundingBox();\r
+-      PrintContents (occgeo);\r
+-\r
+-      return occgeo;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   OCCGeometry *LoadOCC_BREP (const char *filename)\r
+-   {\r
+-      OCCGeometry * occgeo;\r
+-      occgeo = new OCCGeometry;\r
+-\r
+-      BRep_Builder aBuilder;\r
+-      Standard_Boolean result = BRepTools::Read(occgeo->shape, const_cast<char*> (filename),aBuilder);\r
+-\r
+-      if(!result)\r
+-      {\r
+-         delete occgeo;\r
+-         return NULL;\r
+-      }\r
+-\r
+-      // Philippose - 23/02/2009\r
+-      // Fixed a bug in the OpenCascade XDE Colour handling when \r
+-      // opening BREP Files, since BREP Files have no colour data.\r
+-      // Hence, the face_colours Handle needs to be created as a NULL handle.\r
+-      occgeo->face_colours = Handle_XCAFDoc_ColorTool();\r
+-      occgeo->face_colours.Nullify();\r
+-      occgeo->changed = 1;\r
+-      occgeo->BuildFMap();\r
+-\r
+-      occgeo->CalcBoundingBox();\r
+-      PrintContents (occgeo);\r
+-\r
+-      return occgeo;\r
+-   }\r
+-\r
+-\r
+-  void OCCGeometry :: Save (string sfilename) const\r
+-  {\r
+-    const char * filename = sfilename.c_str();\r
+-    if (strlen(filename) < 4) \r
+-      throw NgException ("illegal filename");\r
+-    \r
+-    if (strcmp (&filename[strlen(filename)-3], "igs") == 0)\r
+-      {\r
+-      IGESControl_Writer writer("millimeters", 1);\r
+-      writer.AddShape (shape);\r
+-      writer.Write (filename);\r
+-      }\r
+-    else if (strcmp (&filename[strlen(filename)-3], "stp") == 0)\r
+-      {\r
+-      STEPControl_Writer writer;\r
+-      writer.Transfer (shape, STEPControl_AsIs);\r
+-      writer.Write (filename);\r
+-      }\r
+-    else if (strcmp (&filename[strlen(filename)-3], "stl") == 0)\r
+-      {\r
+-      StlAPI_Writer writer;\r
+-      writer.ASCIIMode() = Standard_True;\r
+-      writer.Write (shape, filename);\r
+-      }\r
+-    else if (strcmp (&filename[strlen(filename)-4], "stlb") == 0)\r
+-      {\r
+-      StlAPI_Writer writer;\r
+-      writer.ASCIIMode() = Standard_False;\r
+-      writer.Write (shape, filename);\r
+-      }\r
+-  }\r
+-\r
+-\r
+-\r
+-  const char * shapesname[] =\r
+-   {" ", "CompSolids", "Solids", "Shells",\r
+-\r
+-   "Faces", "Wires", "Edges", "Vertices"};\r
+-\r
+-  const char * shapename[] =\r
+-   {" ", "CompSolid", "Solid", "Shell",\r
+-   "Face", "Wire", "Edge", "Vertex"};\r
+-\r
+-  const char * orientationstring[] =\r
+-     {"+", "-"};\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,\r
+-      stringstream & str,\r
+-      TopAbs_ShapeEnum l,\r
+-      bool isfree,\r
+-      const char * lname)\r
+-   {\r
+-      if (l > TopAbs_VERTEX) return;\r
+-\r
+-      TopExp_Explorer e;\r
+-      int count = 0;\r
+-      int count2 = 0;\r
+-\r
+-      if (isfree)\r
+-         e.Init(sh, l, TopAbs_ShapeEnum(l-1));\r
+-      else\r
+-         e.Init(sh, l);\r
+-\r
+-      for (; e.More(); e.Next())\r
+-      {\r
+-         count++;\r
+-\r
+-         stringstream lname2;\r
+-         lname2 << lname << "/" << shapename[l] << count;\r
+-         str << lname2.str() << " ";\r
+-\r
+-         switch (e.Current().ShapeType())\r
+-         {\r
+-         case TopAbs_SOLID:\r
+-           count2 = somap.FindIndex(TopoDS::Solid(e.Current())); break;\r
+-         case TopAbs_SHELL:\r
+-           count2 = shmap.FindIndex(TopoDS::Shell(e.Current())); break;\r
+-         case TopAbs_FACE:\r
+-           count2 = fmap.FindIndex(TopoDS::Face(e.Current())); break;\r
+-         case TopAbs_WIRE:\r
+-           count2 = wmap.FindIndex(TopoDS::Wire(e.Current())); break;\r
+-         case TopAbs_EDGE:\r
+-           count2 = emap.FindIndex(TopoDS::Edge(e.Current())); break;\r
+-         case TopAbs_VERTEX:\r
+-           count2 = vmap.FindIndex(TopoDS::Vertex(e.Current())); break;\r
+-         default:\r
+-           cout << "RecursiveTopologyTree: Case " << e.Current().ShapeType() << " not handeled" << endl;\r
+-         }\r
+-\r
+-         int nrsubshapes = 0;\r
+-\r
+-         if (l <= TopAbs_WIRE)\r
+-         {\r
+-            TopExp_Explorer e2;\r
+-            for (e2.Init (e.Current(), TopAbs_ShapeEnum (l+1));\r
+-               e2.More(); e2.Next())\r
+-               nrsubshapes++;\r
+-         }\r
+-\r
+-         str << "{" << shapename[l] << " " << count2;\r
+-\r
+-         if (l <= TopAbs_EDGE)\r
+-         {\r
+-            str << " (" << orientationstring[e.Current().Orientation()];\r
+-            if (nrsubshapes != 0) str << ", " << nrsubshapes;\r
+-            str << ") } ";\r
+-         }\r
+-         else\r
+-            str << " } ";\r
+-\r
+-         RecursiveTopologyTree (e.Current(), str, TopAbs_ShapeEnum (l+1),\r
+-            false, (char*)lname2.str().c_str());\r
+-\r
+-      }\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: GetTopologyTree (stringstream & str)\r
+-   {\r
+-      cout << "Building topology tree ... " << flush;\r
+-      RecursiveTopologyTree (shape, str, TopAbs_COMPSOLID, false, "CompSolids");\r
+-      RecursiveTopologyTree (shape, str, TopAbs_SOLID, true, "FreeSolids");\r
+-      RecursiveTopologyTree (shape, str, TopAbs_SHELL, true, "FreeShells");\r
+-      RecursiveTopologyTree (shape, str, TopAbs_FACE, true, "FreeFaces");\r
+-      RecursiveTopologyTree (shape, str, TopAbs_WIRE, true, "FreeWires");\r
+-      RecursiveTopologyTree (shape, str, TopAbs_EDGE, true, "FreeEdges");\r
+-      RecursiveTopologyTree (shape, str, TopAbs_VERTEX, true, "FreeVertices");\r
+-      str << flush;\r
+-      //  cout << "done" << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: CheckIrregularEntities(stringstream & str)\r
+-   {\r
+-      ShapeAnalysis_CheckSmallFace csm;\r
+-\r
+-      csm.SetTolerance (1e-6);\r
+-\r
+-      TopTools_DataMapOfShapeListOfShape mapEdges;\r
+-      ShapeAnalysis_DataMapOfShapeListOfReal mapParam;\r
+-      TopoDS_Compound theAllVert;\r
+-\r
+-      int spotfaces = 0;\r
+-      int stripsupportfaces = 0;\r
+-      int singlestripfaces = 0;\r
+-      int stripfaces = 0;\r
+-      int facessplitbyvertices = 0;\r
+-      int stretchedpinfaces = 0;\r
+-      int smoothpinfaces = 0;\r
+-      int twistedfaces = 0;\r
+-      // int edgessamebutnotidentified = 0;\r
+-\r
+-      cout << "checking faces ... " << flush;\r
+-\r
+-      int i;\r
+-      for (i = 1; i <= fmap.Extent(); i++)\r
+-      {\r
+-         TopoDS_Face face = TopoDS::Face (fmap(i));\r
+-         TopoDS_Edge e1, e2;\r
+-\r
+-         if (csm.CheckSpotFace (face))\r
+-         {\r
+-            if (!spotfaces++)\r
+-               str << "SpotFace {Spot face} ";\r
+-\r
+-            (*testout) << "Face " << i << " is a spot face" << endl;\r
+-            str << "SpotFace/Face" << i << " ";\r
+-            str << "{Face " << i << " } ";\r
+-         }\r
+-\r
+-         if (csm.IsStripSupport (face))\r
+-         {\r
+-            if (!stripsupportfaces++)\r
+-               str << "StripSupportFace {Strip support face} ";\r
+-\r
+-            (*testout) << "Face " << i << " has strip support" << endl;\r
+-            str << "StripSupportFace/Face" << i << " ";\r
+-            str << "{Face " << i << " } ";\r
+-         }\r
+-\r
+-         if (csm.CheckSingleStrip(face, e1, e2))\r
+-         {\r
+-            if (!singlestripfaces++)\r
+-               str << "SingleStripFace {Single strip face} ";\r
+-\r
+-            (*testout) << "Face " << i << " is a single strip (edge " << emap.FindIndex(e1)\r
+-               << " and edge " << emap.FindIndex(e2) << " are identical)" << endl;\r
+-            str << "SingleStripFace/Face" << i << " ";\r
+-            str << "{Face " << i << " (edge " << emap.FindIndex(e1)\r
+-               << " and edge " << emap.FindIndex(e2) << " are identical)} ";\r
+-         }\r
+-\r
+-         if (csm.CheckStripFace(face, e1, e2))\r
+-         {\r
+-            if (!stripfaces++)\r
+-               str << "StripFace {Strip face} ";\r
+-\r
+-            (*testout) << "Face " << i << " is a strip (edge " << emap.FindIndex(e1)\r
+-               << " and edge " << emap.FindIndex(e2)\r
+-               << " are identical)" << endl;\r
+-            str << "StripFace/Face" << i << " ";\r
+-            str << "{Face " << i << " (edge " << emap.FindIndex(e1)\r
+-               << " and edge " << emap.FindIndex(e2) << " are identical)} ";\r
+-         }\r
+-\r
+-         if (int count = csm.CheckSplittingVertices(face, mapEdges, mapParam, theAllVert))\r
+-         {\r
+-            if (!facessplitbyvertices++)\r
+-               str << "FaceSplitByVertices {Face split by vertices} ";\r
+-\r
+-            (*testout) << "Face " << i << " is split by " << count\r
+-               << " vertex/vertices " << endl;\r
+-            str << "FaceSplitByVertices/Face" << i << " ";\r
+-            str << "{Face " << i << " (split by " << count << "vertex/vertices)} ";\r
+-         }\r
+-\r
+-         int whatrow, sens;\r
+-         if (int type = csm.CheckPin (face, whatrow, sens))\r
+-         {\r
+-            if (type == 1)\r
+-            {\r
+-               if (!smoothpinfaces++)\r
+-                  str << "SmoothPinFace {Smooth pin face} ";\r
+-\r
+-               (*testout) << "Face " << i << " is a smooth pin" << endl;\r
+-               str << "SmoothPinFace/Face" << i << " ";\r
+-               str << "{Face " << i << " } ";\r
+-            }\r
+-            else\r
+-            {\r
+-               if (!stretchedpinfaces++)\r
+-                  str << "StretchedPinFace {Stretched pin face} ";\r
+-\r
+-               (*testout) << "Face " << i << " is a streched pin" << endl;\r
+-               str << "StretchedPinFace/Face" << i << " ";\r
+-               str << "{Face " << i << " } ";\r
+-            }\r
+-         }\r
+-\r
+-         double paramu, paramv;\r
+-         if (csm.CheckTwisted (face, paramu, paramv))\r
+-         {\r
+-            if (!twistedfaces++)\r
+-               str << "TwistedFace {Twisted face} ";\r
+-\r
+-            (*testout) << "Face " << i << " is twisted" << endl;\r
+-            str << "TwistedFace/Face" << i << " ";\r
+-            str << "{Face " << i << " } ";\r
+-         }\r
+-      }\r
+-\r
+-      cout << "done" << endl;\r
+-      cout << "checking edges ... " << flush;\r
+-\r
+-      // double dmax;\r
+-      // int cnt = 0;\r
+-      Array <double> edgeLengths;\r
+-      Array <int> order;\r
+-      edgeLengths.SetSize (emap.Extent());\r
+-      order.SetSize (emap.Extent());\r
+-\r
+-      for (i = 1; i <= emap.Extent(); i++)\r
+-      {\r
+-         TopoDS_Edge edge1 = TopoDS::Edge (emap(i));\r
+-         GProp_GProps system;\r
+-         BRepGProp::LinearProperties(edge1, system);\r
+-         edgeLengths[i-1] = system.Mass();\r
+-      }\r
+-\r
+-      Sort (edgeLengths, order);\r
+-\r
+-      str << "ShortestEdges {Shortest edges} ";\r
+-      for (i = 1; i <= min(20, emap.Extent()); i++)\r
+-      {\r
+-         str << "ShortestEdges/Edge" << i;\r
+-         str << " {Edge " << order[i-1] << " (L=" << edgeLengths[order[i-1]-1] << ")} ";\r
+-      }\r
+-\r
+-      str << flush;\r
+-\r
+-      cout << "done" << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: GetUnmeshedFaceInfo (stringstream & str)\r
+-   {\r
+-      for (int i = 1; i <= fmap.Extent(); i++)\r
+-      {\r
+-         if (facemeshstatus[i-1] == -1)\r
+-            str << "Face" << i << " {Face " << i << " } ";\r
+-      }\r
+-      str << flush;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCGeometry :: GetNotDrawableFaces (stringstream & str)\r
+-   {\r
+-      for (int i = 1; i <= fmap.Extent(); i++)\r
+-      {\r
+-         if (!fvispar[i-1].IsDrawable())\r
+-            str << "Face" << i << " {Face " << i << " } ";\r
+-      }\r
+-      str << flush;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   bool OCCGeometry :: ErrorInSurfaceMeshing ()\r
+-   {\r
+-      for (int i = 1; i <= fmap.Extent(); i++)\r
+-         if (facemeshstatus[i-1] == -1)\r
+-            return true;\r
+-\r
+-      return false;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-  int OCCGeometry :: GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,\r
+-      int perfstepsstart, int perfstepsend)\r
+-   {\r
+-     return OCCGenerateMesh (*this, mesh, mparam, perfstepsstart, perfstepsend);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   const Refinement & OCCGeometry :: GetRefinement () const\r
+-   {\r
+-      return * new OCCRefinementSurfaces (*this);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   OCCParameters :: OCCParameters()\r
+-   {\r
+-      resthcloseedgefac = 1;\r
+-      resthcloseedgeenable = 1;\r
+-        resthminedgelen = 0.001;\r
+-        resthminedgelenenable = 1;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void OCCParameters :: Print(ostream & ost) const\r
+-   {\r
+-      ost << "OCC Parameters:" << endl\r
+-         << "close edges: " << resthcloseedgeenable\r
+-         << ", fac = " << resthcloseedgefac << endl\r
+-               << "minimum edge length: " << resthminedgelenenable\r
+-               << ", min len = " << resthminedgelen << endl;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   OCCParameters occparam;\r
+-\r
+-}\r
+-\r
+-\r
+-#endif\r
++
++#ifdef OCCGEOMETRY
++
++#include <mystdlib.h>
++#include <occgeom.hpp>
++#include "ShapeAnalysis_ShapeTolerance.hxx"
++#include "ShapeAnalysis_ShapeContents.hxx"
++#include "ShapeAnalysis_CheckSmallFace.hxx"
++#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
++#include "ShapeAnalysis_Surface.hxx"
++#include <BRepTopAdaptor_FClass2d.hxx> // -- to optimize Project() and FastProject()
++#include <TopAbs_State.hxx>
++#include "BRepAlgoAPI_Fuse.hxx"
++#include "BRepCheck_Analyzer.hxx"
++#include "BRepLib.hxx"
++#include "ShapeBuild_ReShape.hxx"
++#include "ShapeFix.hxx"
++#include "ShapeFix_FixSmallFace.hxx"
++#include "Partition_Spliter.hxx"
++
++namespace netgen
++{
++  // free data used to optimize Project() and FastProject()
++  OCCGeometry::~OCCGeometry()
++  {
++    NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
++    for (; it.More(); it.Next())
++      delete it.Value();
++  }
++
++   void OCCGeometry :: PrintNrShapes ()
++   {
++      TopExp_Explorer e;
++      int count = 0;
++      for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) count++;
++      cout << "CompSolids: " << count << endl;
++
++      cout << "Solids    : " << somap.Extent() << endl;
++      cout << "Shells    : " << shmap.Extent() << endl;
++      cout << "Faces     : " << fmap.Extent() << endl;
++      cout << "Edges     : " << emap.Extent() << endl;
++      cout << "Vertices  : " << vmap.Extent() << endl;
++   }
++
++
++
++
++   void PrintContents (OCCGeometry * geom)
++   {
++      ShapeAnalysis_ShapeContents cont;
++      cont.Clear();
++      cont.Perform(geom->shape);
++
++      (*testout) << "OCC CONTENTS" << endl;
++      (*testout) << "============" << endl;
++      (*testout) << "SOLIDS   : " << cont.NbSolids() << endl;
++      (*testout) << "SHELLS   : " << cont.NbShells() << endl;
++      (*testout) << "FACES    : " << cont.NbFaces() << endl;
++      (*testout) << "WIRES    : " << cont.NbWires() << endl;
++      (*testout) << "EDGES    : " << cont.NbEdges() << endl;
++      (*testout) << "VERTICES : " << cont.NbVertices() << endl;
++
++      TopExp_Explorer e;
++      int count = 0;
++      for (e.Init(geom->shape, TopAbs_COMPOUND); e.More(); e.Next())
++         count++;
++      (*testout) << "Compounds: " << count << endl;
++
++      count = 0;
++      for (e.Init(geom->shape, TopAbs_COMPSOLID); e.More(); e.Next())
++         count++;
++      (*testout) << "CompSolids: " << count << endl;
++
++      (*testout) << endl;
++
++      cout << "Highest entry in topology hierarchy: " << endl;
++      if (count)
++         cout << count << " composite solid(s)" << endl;
++      else
++         if (geom->somap.Extent())
++            cout << geom->somap.Extent() << " solid(s)" << endl;
++         else
++            if (geom->shmap.Extent())
++               cout << geom->shmap.Extent() << " shells(s)" << endl;
++            else
++               if (geom->fmap.Extent())
++                  cout << geom->fmap.Extent() << " face(s)" << endl;
++               else
++                  if (geom->wmap.Extent())
++                     cout << geom->wmap.Extent() << " wire(s)" << endl;
++                  else
++                     if (geom->emap.Extent())
++                        cout << geom->emap.Extent() << " edge(s)" << endl;
++                     else
++                        if (geom->vmap.Extent())
++                           cout << geom->vmap.Extent() << " vertices(s)" << endl;
++                        else
++                           cout << "no entities" << endl;
++
++   }
++
++
++
++   void OCCGeometry :: HealGeometry ()
++   {
++      int nrc = 0, nrcs = 0,
++         nrso = somap.Extent(),
++         nrsh = shmap.Extent(),
++         nrf = fmap.Extent(),
++         nrw = wmap.Extent(),
++         nre = emap.Extent(),
++         nrv = vmap.Extent();
++
++      TopExp_Explorer exp0;
++      TopExp_Explorer exp1;
++
++
++      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++;
++      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++;
++
++      double surfacecont = 0;
++
++      {
++         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++         rebuild->Apply(shape);
++         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++            if ( BRep_Tool::Degenerated(edge) )
++               rebuild->Remove(edge);
++         }
++         shape = rebuild->Apply(shape);
++      }
++
++      BuildFMap();
++
++
++      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
++      {
++         TopoDS_Face face = TopoDS::Face(exp0.Current());
++
++         GProp_GProps system;
++         BRepGProp::SurfaceProperties(face, system);
++         surfacecont += system.Mass();
++      }
++
++
++      cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl
++         << "-----------------------------------" << endl;
++
++      {
++         cout << endl << "- repairing faces" << endl;
++
++         Handle(ShapeFix_Face) sff;
++         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++         rebuild->Apply(shape);
++
++
++         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
++         {
++            // Variable to hold the colour (if there exists one) of 
++            // the current face being processed
++            Quantity_Color face_colour;
++
++            TopoDS_Face face = TopoDS::Face (exp0.Current());
++
++            if(face_colours.IsNull()
++               || (!(face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour))))
++            {
++               // Set the default face colour to green (Netgen Standard)
++               // if no colour has been defined for the face
++               face_colour = Quantity_Color(0.0,1.0,0.0,Quantity_TOC_RGB);
++            }
++
++            sff = new ShapeFix_Face (face);
++            sff->FixAddNaturalBoundMode() = Standard_True;
++            sff->FixSmallAreaWireMode() = Standard_True;
++            sff->Perform();
++
++            if(sff->Status(ShapeExtend_DONE1) ||
++               sff->Status(ShapeExtend_DONE2) ||
++               sff->Status(ShapeExtend_DONE3) ||
++               sff->Status(ShapeExtend_DONE4) ||
++               sff->Status(ShapeExtend_DONE5))
++            {
++               cout << "repaired face " << fmap.FindIndex(face) << " ";
++               if(sff->Status(ShapeExtend_DONE1))
++                  cout << "(some wires are fixed)" <<endl;
++               else if(sff->Status(ShapeExtend_DONE2))
++                  cout << "(orientation of wires fixed)" <<endl;
++               else if(sff->Status(ShapeExtend_DONE3))
++                  cout << "(missing seam added)" <<endl;
++               else if(sff->Status(ShapeExtend_DONE4))
++                  cout << "(small area wire removed)" <<endl;
++               else if(sff->Status(ShapeExtend_DONE5))
++                  cout << "(natural bounds added)" <<endl;
++               TopoDS_Face newface = sff->Face();
++
++               rebuild->Replace(face, newface);
++            }
++
++            // Set the original colour of the face to the newly created 
++            // face (after the healing process)
++            face = TopoDS::Face (exp0.Current());
++            face_colours->SetColor(face,face_colour,XCAFDoc_ColorSurf);
++         }
++         shape = rebuild->Apply(shape);
++      }
++
++
++      {
++         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++         rebuild->Apply(shape);
++         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++            if ( BRep_Tool::Degenerated(edge) )
++               rebuild->Remove(edge);
++         }
++         shape = rebuild->Apply(shape);
++      }
++
++
++      if (fixsmalledges)
++      {
++         cout << endl << "- fixing small edges" << endl;
++
++         Handle(ShapeFix_Wire) sfw;
++         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++         rebuild->Apply(shape);
++
++
++         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
++         {
++            TopoDS_Face face = TopoDS::Face(exp0.Current());
++
++            for (exp1.Init (face, TopAbs_WIRE); exp1.More(); exp1.Next())
++            {
++               TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());
++               sfw = new ShapeFix_Wire (oldwire, face ,tolerance);
++               sfw->ModifyTopologyMode() = Standard_True;
++
++               sfw->ClosedWireMode() = Standard_True;
++
++               bool replace = false;
++
++               replace = sfw->FixReorder() || replace;
++
++               replace = sfw->FixConnected() || replace;
++
++
++
++               if (sfw->FixSmall (Standard_False, tolerance) && ! (sfw->StatusSmall(ShapeExtend_FAIL1) ||
++                  sfw->StatusSmall(ShapeExtend_FAIL2) ||
++                  sfw->StatusSmall(ShapeExtend_FAIL3)))
++               {
++                  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;
++                  replace = true;
++
++               }
++               else if (sfw->StatusSmall(ShapeExtend_FAIL1))
++                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
++                  << ", edge cannot be checked (no 3d curve and no pcurve)" << endl;
++               else if (sfw->StatusSmall(ShapeExtend_FAIL2))
++                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
++                  << ", edge is null-length and has different vertives at begin and end, and lockvtx is True or ModifiyTopologyMode is False" << endl;
++               else if (sfw->StatusSmall(ShapeExtend_FAIL3))
++                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
++                  << ", CheckConnected has failed" << endl;
++
++               replace = sfw->FixEdgeCurves() || replace;
++
++               replace = sfw->FixDegenerated() || replace;
++
++               replace = sfw->FixSelfIntersection() || replace;
++
++               replace = sfw->FixLacking(Standard_True) || replace;
++
++               if(replace)
++               {
++                  TopoDS_Wire newwire = sfw->Wire();
++                  rebuild->Replace(oldwire, newwire);
++               }
++
++               //delete sfw; sfw = NULL;
++
++            }
++         }
++
++         shape = rebuild->Apply(shape);
++
++
++
++         {
++            BuildFMap();
++            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++            rebuild->Apply(shape);
++
++            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++            {
++               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++               if (vmap.FindIndex(TopExp::FirstVertex (edge)) ==
++                  vmap.FindIndex(TopExp::LastVertex (edge)))
++               {
++                  GProp_GProps system;
++                  BRepGProp::LinearProperties(edge, system);
++                  if (system.Mass() < tolerance)
++                  {
++                     cout << "removing degenerated edge " << emap.FindIndex(edge)
++                        << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))
++                        << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;
++                     rebuild->Remove(edge);
++                  }
++               }
++            }
++            shape = rebuild->Apply(shape);
++
++            //delete rebuild; rebuild = NULL;
++         }
++
++
++
++         {
++            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++            rebuild->Apply(shape);
++            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++            {
++               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++               if ( BRep_Tool::Degenerated(edge) )
++                  rebuild->Remove(edge);
++            }
++            shape = rebuild->Apply(shape);
++         }
++
++
++
++
++         Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;
++         sfwf->SetPrecision(tolerance);
++         sfwf->Load (shape);
++         sfwf->ModeDropSmallEdges() = Standard_True;
++
++         sfwf->SetPrecision(boundingbox.Diam());
++
++         if (sfwf->FixWireGaps())
++         {
++            cout << endl << "- fixing wire gaps" << endl;
++            if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;
++            if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;
++            if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;
++            if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;
++            if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;
++         }
++
++         sfwf->SetPrecision(tolerance);
++
++
++         {
++            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++            {
++               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++               if ( BRep_Tool::Degenerated(edge) )
++                  cout << "degenerated edge at position 4" << endl;
++            }
++         }
++
++
++
++         if (sfwf->FixSmallEdges())
++         {
++            cout << endl << "- fixing wire frames" << endl;
++            if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;
++            if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;
++            if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;
++         }
++
++
++
++         shape = sfwf->Shape();
++
++         //delete sfwf; sfwf = NULL;
++         //delete rebuild; rebuild = NULL;
++
++      }
++
++
++
++
++
++      {
++         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++            if ( BRep_Tool::Degenerated(edge) )
++               cout << "degenerated edge at position 5" << endl;
++         }
++      }
++
++
++
++
++      if (fixspotstripfaces)
++      {
++
++         cout << endl << "- fixing spot and strip faces" << endl;
++         Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();
++         sffsm -> Init (shape);
++         sffsm -> SetPrecision (tolerance);
++         sffsm -> Perform();
++
++         shape = sffsm -> FixShape();
++         //delete sffsm; sffsm = NULL;
++      }
++
++
++      {
++         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++            if ( BRep_Tool::Degenerated(edge) )
++               cout << "degenerated edge at position 6" << endl;
++         }
++      }
++
++
++
++      if (sewfaces)
++      {
++         cout << endl << "- sewing faces" << endl;
++
++         BRepOffsetAPI_Sewing sewedObj(tolerance);
++
++         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
++         {
++            TopoDS_Face face = TopoDS::Face (exp0.Current());
++            sewedObj.Add (face);
++         }
++
++         sewedObj.Perform();
++
++         if (!sewedObj.SewedShape().IsNull())
++            shape = sewedObj.SewedShape();
++         else
++            cout << " not possible";
++      }
++
++
++
++      {
++         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++         rebuild->Apply(shape);
++         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++            if ( BRep_Tool::Degenerated(edge) )
++               rebuild->Remove(edge);
++         }
++         shape = rebuild->Apply(shape);
++      }
++
++
++      if (makesolids)
++      {
++         cout << endl << "- making solids" << endl;
++
++         BRepBuilderAPI_MakeSolid ms;
++         int count = 0;
++         for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
++         {
++            count++;
++            ms.Add (TopoDS::Shell(exp0.Current()));
++         }
++
++         if (!count)
++         {
++            cout << " not possible (no shells)" << endl;
++         }
++         else
++         {
++            BRepCheck_Analyzer ba(ms);
++            if (ba.IsValid ())
++            {
++               Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
++               sfs->Init (ms);
++               sfs->SetPrecision(tolerance);
++               sfs->SetMaxTolerance(tolerance);
++               sfs->Perform();
++               shape = sfs->Shape();
++
++               for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
++               {
++                  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
++                  TopoDS_Solid newsolid = solid;
++                  BRepLib::OrientClosedSolid (newsolid);
++                  Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++                  //            rebuild->Apply(shape);
++                  rebuild->Replace(solid, newsolid);
++                  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);
++                  //            TopoDS_Shape newshape = rebuild->Apply(shape);
++                  shape = newshape;
++               }
++
++               //delete sfs; sfs = NULL;
++            }
++            else
++               cout << " not possible" << endl;
++         }
++      }
++
++
++
++      if (splitpartitions)
++      {
++         cout << "- running SALOME partition splitter" << endl;
++
++         TopExp_Explorer e2;
++         Partition_Spliter ps;
++         int count = 0;
++
++         for (e2.Init (shape, TopAbs_SOLID);
++            e2.More(); e2.Next())
++         {
++            count++;
++            ps.AddShape (e2.Current());
++         }
++
++         ps.Compute();
++         shape = ps.Shape();
++
++         cout << " before: " << count << " solids" << endl;
++
++         count = 0;
++         for (e2.Init (shape, TopAbs_SOLID);
++            e2.More(); e2.Next()) count++;
++
++            cout << " after : " << count << " solids" << endl;
++      }
++
++      BuildFMap();
++
++
++
++      {
++         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
++         {
++            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
++            if ( BRep_Tool::Degenerated(edge) )
++               cout << "degenerated edge at position 8" << endl;
++         }
++      }
++
++
++      double newsurfacecont = 0;
++
++
++      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
++      {
++         TopoDS_Face face = TopoDS::Face(exp0.Current());
++         GProp_GProps system;
++         BRepGProp::SurfaceProperties(face, system);
++         newsurfacecont += system.Mass();
++      }
++
++
++      int nnrc = 0, nnrcs = 0,
++         nnrso = somap.Extent(),
++         nnrsh = shmap.Extent(),
++         nnrf = fmap.Extent(),
++         nnrw = wmap.Extent(),
++         nnre = emap.Extent(),
++         nnrv = vmap.Extent();
++
++      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++;
++      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++;
++
++      cout << "-----------------------------------" << endl;
++      cout << "Compounds       : " << nnrc << " (" << nrc << ")" << endl;
++      cout << "Composite solids: " << nnrcs << " (" << nrcs << ")" << endl;
++      cout << "Solids          : " << nnrso << " (" << nrso << ")" << endl;
++      cout << "Shells          : " << nnrsh << " (" << nrsh << ")" << endl;
++      cout << "Wires           : " << nnrw << " (" << nrw << ")" << endl;
++      cout << "Faces           : " << nnrf << " (" << nrf << ")" << endl;
++      cout << "Edges           : " << nnre << " (" << nre << ")" << endl;
++      cout << "Vertices        : " << nnrv << " (" << nrv << ")" << endl;
++      cout << endl;
++      cout << "Totol surface area : " << newsurfacecont << " (" << surfacecont << ")" << endl;
++      cout << endl;
++   }
++
++
++
++
++   void OCCGeometry :: BuildFMap()
++   {
++      somap.Clear();
++      shmap.Clear();
++      fmap.Clear();
++      wmap.Clear();
++      emap.Clear();
++      vmap.Clear();
++
++      TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5;
++
++      for (exp0.Init(shape, TopAbs_COMPOUND);
++         exp0.More(); exp0.Next())
++      {
++         TopoDS_Compound compound = TopoDS::Compound (exp0.Current());
++         (*testout) << "compound" << endl;
++         int i = 0;
++         for (exp1.Init(compound, TopAbs_SHELL);
++            exp1.More(); exp1.Next())
++         {
++            (*testout) << "shell " << ++i << endl;
++         }
++      }
++
++      for (exp0.Init(shape, TopAbs_SOLID);
++         exp0.More(); exp0.Next())
++      {
++         TopoDS_Solid solid = TopoDS::Solid (exp0.Current());
++
++         if (somap.FindIndex(solid) < 1)
++         {
++            somap.Add (solid);
++
++            for (exp1.Init(solid, TopAbs_SHELL);
++               exp1.More(); exp1.Next())
++            {
++               TopoDS_Shell shell = TopoDS::Shell (exp1.Current());
++               if (shmap.FindIndex(shell) < 1)
++               {
++                  shmap.Add (shell);
++
++                  for (exp2.Init(shell, TopAbs_FACE);
++                     exp2.More(); exp2.Next())
++                  {
++                     TopoDS_Face face = TopoDS::Face(exp2.Current());
++                     if (fmap.FindIndex(face) < 1)
++                     {
++                        fmap.Add (face);
++                        (*testout) << "face " << fmap.FindIndex(face) << " ";
++                        (*testout) << ((face.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
++                        (*testout) << ((exp2.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
++                        for (exp3.Init(exp2.Current(), TopAbs_WIRE);
++                           exp3.More(); exp3.Next())
++                        {
++                           TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
++                           if (wmap.FindIndex(wire) < 1)
++                           {
++                              wmap.Add (wire);
++
++                              for (exp4.Init(exp3.Current(), TopAbs_EDGE);
++                                 exp4.More(); exp4.Next())
++                              {
++                                 TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
++                                 if (emap.FindIndex(edge) < 1)
++                                 {
++                                    emap.Add (edge);
++                                    for (exp5.Init(exp4.Current(), TopAbs_VERTEX);
++                                       exp5.More(); exp5.Next())
++                                    {
++                                       TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
++                                       if (vmap.FindIndex(vertex) < 1)
++                                          vmap.Add (vertex);
++                                    }
++                                 }
++                              }
++                           }
++                        }
++                     }
++                  }
++               }
++            }
++         }
++      }
++
++      // Free Shells
++      for (exp1.Init(shape, TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next())
++      {
++         TopoDS_Shell shell = TopoDS::Shell(exp1.Current());
++         if (shmap.FindIndex(shell) < 1)
++         {
++            shmap.Add (shell);
++
++            (*testout) << "shell " << shmap.FindIndex(shell) << " ";
++            (*testout) << ((shell.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
++            (*testout) << ((exp1.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
++
++            for (exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next())
++            {
++               TopoDS_Face face = TopoDS::Face(exp2.Current());
++               if (fmap.FindIndex(face) < 1)
++               {
++                  fmap.Add (face);
++
++                  for (exp3.Init(face, TopAbs_WIRE); exp3.More(); exp3.Next())
++                  {
++                     TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
++                     if (wmap.FindIndex(wire) < 1)
++                     {
++                        wmap.Add (wire);
++
++                        for (exp4.Init(wire, TopAbs_EDGE); exp4.More(); exp4.Next())
++                        {
++                           TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
++                           if (emap.FindIndex(edge) < 1)
++                           {
++                              emap.Add (edge);
++                              for (exp5.Init(edge, TopAbs_VERTEX); exp5.More(); exp5.Next())
++                              {
++                                 TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
++                                 if (vmap.FindIndex(vertex) < 1)
++                                    vmap.Add (vertex);
++                              }
++                           }
++                        }
++                     }
++                  }
++               }
++            }
++         }
++      }
++
++
++      // Free Faces
++
++      for (exp2.Init(shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next())
++      {
++         TopoDS_Face face = TopoDS::Face(exp2.Current());
++         if (fmap.FindIndex(face) < 1)
++         {
++            fmap.Add (face);
++
++            for (exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next())
++            {
++               TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
++               if (wmap.FindIndex(wire) < 1)
++               {
++                  wmap.Add (wire);
++
++                  for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
++                  {
++                     TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
++                     if (emap.FindIndex(edge) < 1)
++                     {
++                        emap.Add (edge);
++                        for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
++                        {
++                           TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
++                           if (vmap.FindIndex(vertex) < 1)
++                              vmap.Add (vertex);
++                        }
++                     }
++                  }
++               }
++            }
++         }
++      }
++
++
++      // Free Wires
++
++      for (exp3.Init(shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next())
++      {
++         TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
++         if (wmap.FindIndex(wire) < 1)
++         {
++            wmap.Add (wire);
++
++            for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
++            {
++               TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
++               if (emap.FindIndex(edge) < 1)
++               {
++                  emap.Add (edge);
++                  for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
++                  {
++                     TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
++                     if (vmap.FindIndex(vertex) < 1)
++                        vmap.Add (vertex);
++                  }
++               }
++            }
++         }
++      }
++
++
++      // Free Edges
++
++      for (exp4.Init(shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next())
++      {
++         TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
++         if (emap.FindIndex(edge) < 1)
++         {
++            emap.Add (edge);
++            for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
++            {
++               TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
++               if (vmap.FindIndex(vertex) < 1)
++                  vmap.Add (vertex);
++            }
++         }
++      }
++
++
++      // Free Vertices
++
++      for (exp5.Init(shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next())
++      {
++         TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
++         if (vmap.FindIndex(vertex) < 1)
++            vmap.Add (vertex);
++      }
++
++
++
++
++      facemeshstatus.DeleteAll();
++      facemeshstatus.SetSize (fmap.Extent());
++      facemeshstatus = 0;
++
++      // Philippose - 15/01/2009
++      face_maxh.DeleteAll();
++      face_maxh.SetSize (fmap.Extent());
++      face_maxh = mparam.maxh;
++
++      // Philippose - 15/01/2010      
++      face_maxh_modified.DeleteAll();      
++      face_maxh_modified.SetSize(fmap.Extent());      
++      face_maxh_modified = 0;
++      
++
++      // Philippose - 17/01/2009
++      face_sel_status.DeleteAll();
++      face_sel_status.SetSize (fmap.Extent());
++      face_sel_status = 0;
++
++      fvispar.SetSize (fmap.Extent());
++      evispar.SetSize (emap.Extent());
++      vvispar.SetSize (vmap.Extent());
++
++      fsingular.SetSize (fmap.Extent());
++      esingular.SetSize (emap.Extent());
++      vsingular.SetSize (vmap.Extent());
++
++      fsingular = esingular = vsingular = false;
++   }
++
++
++
++   void OCCGeometry :: SewFaces ()
++   {
++      (*testout) << "Trying to sew faces ..." << endl;
++      cout << "Trying to sew faces ..." << flush;
++
++      BRepOffsetAPI_Sewing sewedObj(1);
++ 
++      for (int i = 1; i <= fmap.Extent(); i++)
++      {
++         TopoDS_Face face = TopoDS::Face (fmap(i));
++         sewedObj.Add (face);
++      }
++
++      sewedObj.Perform();
++
++      if (!sewedObj.SewedShape().IsNull())
++      {
++         shape = sewedObj.SewedShape();
++         cout << " done" << endl;
++      }
++      else
++         cout << " not possible";
++   }
++
++
++
++
++
++   void OCCGeometry :: MakeSolid ()
++   {
++      TopExp_Explorer exp0;
++
++      (*testout) << "Trying to build solids ..." << endl;
++      cout << "Trying to build solids ..." << flush;
++
++      BRepBuilderAPI_MakeSolid ms;
++      int count = 0;
++      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
++      {
++         count++;
++         ms.Add (TopoDS::Shell(exp0.Current()));
++      }
++
++      if (!count)
++      {
++         cout << " not possible (no shells)" << endl;
++         return;
++      }
++
++      BRepCheck_Analyzer ba(ms);
++      if (ba.IsValid ())
++      {
++         Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
++         sfs->Init (ms);
++
++         sfs->SetPrecision(1e-5);
++         sfs->SetMaxTolerance(1e-5);
++
++         sfs->Perform();
++
++         shape = sfs->Shape();
++
++         for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
++         {
++            TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
++            TopoDS_Solid newsolid = solid;
++            BRepLib::OrientClosedSolid (newsolid);
++            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
++            rebuild->Replace(solid, newsolid);
++
++            TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);
++            shape = newshape;
++         }
++
++         cout << " done" << endl;
++      }
++      else
++         cout << " not possible" << endl;
++   }
++
++
++
++
++   void OCCGeometry :: BuildVisualizationMesh (double deflection)
++   {
++      cout << "Preparing visualization (deflection = " << deflection << ") ... " << flush;
++
++      BRepTools::Clean (shape);
++      // BRepMesh_IncrementalMesh::
++      BRepMesh_IncrementalMesh (shape, deflection, true);
++      cout << "done" << endl;
++   }
++
++
++
++
++   void OCCGeometry :: CalcBoundingBox ()
++   {
++      Bnd_Box bb;
++      BRepBndLib::Add (shape, bb);
++
++      double x1,y1,z1,x2,y2,z2;
++      bb.Get (x1,y1,z1,x2,y2,z2);
++      Point<3> p1 = Point<3> (x1,y1,z1);
++      Point<3> p2 = Point<3> (x2,y2,z2);
++
++      (*testout) << "Bounding Box = [" << p1 << " - " << p2 << "]" << endl;
++      boundingbox = Box<3> (p1,p2);
++      SetCenter();
++   }
++
++
++   // returns a projector and a classifier for the given surface
++   void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
++                                  BRepTopAdaptor_FClass2d*& cls) const
++   {
++     //MSV: organize caching projector in the map
++     if (fprjmap.IsBound(surfi))
++     {
++       proj = fprjmap.Find(surfi);
++       cls = fclsmap.Find(surfi);
++     }
++     else
++     {
++       const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
++       Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
++       proj = new ShapeAnalysis_Surface(aSurf);
++       fprjmap.Bind(surfi, proj);
++       cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
++       fclsmap.Bind(surfi, cls);
++     }
++   }
++
++   // void OCCGeometry :: Project (int surfi, Point<3> & p) const
++   bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
++   {
++      static int cnt = 0;
++      if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;
++
++      gp_Pnt pnt(p(0), p(1), p(2));
++
++      // -- Optimization: use cached projector and classifier
++      // double u,v;
++      // Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
++      // Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
++      // gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
++      // suval.Coord( u, v);
++      // pnt = thesurf->Value( u, v );  
++
++      Handle(ShapeAnalysis_Surface) proj;
++      BRepTopAdaptor_FClass2d *cls;
++      GetFaceTools(surfi, proj, cls);
++
++      gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
++      if (cls->Perform(p2d) == TopAbs_OUT)
++      {
++        return false;
++      }
++      pnt = proj->Value(p2d);
++      p2d.Coord(u, v);
++
++      p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
++
++      return true;
++   }
++
++
++
++
++   bool OCCGeometry :: FastProject (int surfi, Point<3> & ap, double& u, double& v) const
++   {
++      gp_Pnt p(ap(0), ap(1), ap(2));
++
++      // -- Optimization: use cached projector and classifier
++      // Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
++      // 
++      // gp_Pnt x = surface->Value (u,v);
++      // 
++      // if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
++      // 
++      // gp_Vec du, dv;
++      // 
++      // surface->D1(u,v,x,du,dv);
++      // 
++      // int count = 0;
++      // 
++      // gp_Pnt xold;
++      // gp_Vec n;
++      // double det, lambda, mu;
++      // 
++      // do {
++      //    count++;
++      // 
++      //    n = du^dv;
++      // 
++      //    det = Det3 (n.X(), du.X(), dv.X(),
++      //       n.Y(), du.Y(), dv.Y(),
++      //       n.Z(), du.Z(), dv.Z());
++      // 
++      //    if (det < 1e-15) return false;
++      // 
++      //    lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
++      //       n.Y(), p.Y()-x.Y(), dv.Y(),
++      //       n.Z(), p.Z()-x.Z(), dv.Z())/det;
++      // 
++      //    mu     = Det3 (n.X(), du.X(), p.X()-x.X(),
++      //       n.Y(), du.Y(), p.Y()-x.Y(),
++      //       n.Z(), du.Z(), p.Z()-x.Z())/det;
++      // 
++      //    u += lambda;
++      //    v += mu;
++      // 
++      //    xold = x;
++      //    surface->D1(u,v,x,du,dv);
++      // 
++      // } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
++      // 
++      // //    (*testout) << "FastProject count: " << count << endl;
++      // 
++      // if (count == 50) return false;
++      // 
++      // ap = Point<3> (x.X(), x.Y(), x.Z());
++      Handle(ShapeAnalysis_Surface) proj;
++      BRepTopAdaptor_FClass2d *cls;
++      GetFaceTools(surfi, proj, cls);
++
++      gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
++      if (cls->Perform(p2d) == TopAbs_OUT)
++      {
++        //cout << "Projection fails" << endl;
++        return false;
++      }
++
++      p = proj->Value(p2d);
++      p2d.Coord(u, v);
++      ap = Point<3> (p.X(), p.Y(), p.Z());
++
++      return true;
++   }
++
++
++
++
++   void OCCGeometry :: WriteOCC_STL(char * filename)
++   {
++      cout << "writing stl..."; cout.flush();
++      StlAPI_Writer writer;
++      //writer.RelativeMode() = Standard_False;
++
++      //writer.SetDeflection(0.02);
++      writer.Write(shape,filename);
++
++      cout << "done" << endl;
++   }
++
++
++
++   // Philippose - 23/02/2009
++   /* Special IGES File load function including the ability
++   to extract individual surface colours via the extended
++   OpenCascade XDE and XCAF Feature set.
++   */
++   OCCGeometry *LoadOCC_IGES(const char *filename)
++   {
++      OCCGeometry *occgeo;
++      occgeo = new OCCGeometry;
++
++      // Initiate a dummy XCAF Application to handle the IGES XCAF Document
++      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
++
++      // Create an XCAF Document to contain the IGES file itself
++      Handle(TDocStd_Document) iges_doc;
++
++      // Check if a IGES File is already open under this handle, if so, close it to prevent
++      // Segmentation Faults when trying to create a new document
++      if(dummy_app->NbDocuments() > 0)
++      {
++         dummy_app->GetDocument(1,iges_doc);
++         dummy_app->Close(iges_doc);
++      }
++      dummy_app->NewDocument ("IGES-XCAF",iges_doc);
++
++      IGESCAFControl_Reader reader;
++
++      Standard_Integer stat = reader.ReadFile((char*)filename);
++
++      if(stat != IFSelect_RetDone)
++      {
++         delete occgeo;
++         return NULL;
++      }
++
++      // Enable transfer of colours
++      reader.SetColorMode(Standard_True);
++
++      reader.Transfer(iges_doc);
++
++      // Read in the shape(s) and the colours present in the IGES File
++      Handle(XCAFDoc_ShapeTool) iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());
++      Handle(XCAFDoc_ColorTool) iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());
++
++      TDF_LabelSequence iges_shapes;
++      iges_shape_contents->GetShapes(iges_shapes);
++
++      // List out the available colours in the IGES File as Colour Names
++      TDF_LabelSequence all_colours;
++      iges_colour_contents->GetColors(all_colours);
++      PrintMessage(1,"Number of colours in IGES File: ",all_colours.Length());
++      for(int i = 1; i <= all_colours.Length(); i++)
++      {
++         Quantity_Color col;
++         stringstream col_rgb;
++         iges_colour_contents->GetColor(all_colours.Value(i),col);
++         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
++         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
++      }
++
++
++      // For the IGES Reader, all the shapes can be exported as one compund shape 
++      // using the "OneShape" member
++      occgeo->shape = reader.OneShape();
++      occgeo->face_colours = iges_colour_contents;
++      occgeo->changed = 1;
++      occgeo->BuildFMap();
++
++      occgeo->CalcBoundingBox();
++      PrintContents (occgeo);
++
++      return occgeo;
++   }
++
++
++
++
++
++   // Philippose - 29/01/2009
++   /* Special STEP File load function including the ability
++   to extract individual surface colours via the extended
++   OpenCascade XDE and XCAF Feature set.
++   */
++   OCCGeometry * LoadOCC_STEP (const char * filename)
++   {
++      OCCGeometry * occgeo;
++      occgeo = new OCCGeometry;
++
++      // Initiate a dummy XCAF Application to handle the STEP XCAF Document
++      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
++
++      // Create an XCAF Document to contain the STEP file itself
++      Handle(TDocStd_Document) step_doc;
++
++      // Check if a STEP File is already open under this handle, if so, close it to prevent
++      // Segmentation Faults when trying to create a new document
++      if(dummy_app->NbDocuments() > 0)
++      {
++         dummy_app->GetDocument(1,step_doc);
++         dummy_app->Close(step_doc);
++      }
++      dummy_app->NewDocument ("STEP-XCAF",step_doc);
++
++      STEPCAFControl_Reader reader;
++
++      // Enable transfer of colours
++      reader.SetColorMode(Standard_True);
++
++      Standard_Integer stat = reader.ReadFile((char*)filename);
++
++      if(stat != IFSelect_RetDone)
++      {
++         delete occgeo;
++         return NULL;
++      }
++
++      reader.Transfer(step_doc);
++
++      // Read in the shape(s) and the colours present in the STEP File
++      Handle(XCAFDoc_ShapeTool) step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());
++      Handle(XCAFDoc_ColorTool) step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());
++
++      TDF_LabelSequence step_shapes;
++      step_shape_contents->GetShapes(step_shapes);
++
++      // List out the available colours in the STEP File as Colour Names
++      TDF_LabelSequence all_colours;
++      step_colour_contents->GetColors(all_colours);
++      PrintMessage(1,"Number of colours in STEP File: ",all_colours.Length());
++      for(int i = 1; i <= all_colours.Length(); i++)
++      {
++         Quantity_Color col;
++         stringstream col_rgb;
++         step_colour_contents->GetColor(all_colours.Value(i),col);
++         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
++         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
++      }
++
++
++      // For the STEP File Reader in OCC, the 1st Shape contains the entire 
++      // compound geometry as one shape
++      occgeo->shape = step_shape_contents->GetShape(step_shapes.Value(1));
++      occgeo->face_colours = step_colour_contents;
++      occgeo->changed = 1;
++      occgeo->BuildFMap();
++
++      occgeo->CalcBoundingBox();
++      PrintContents (occgeo);
++
++      return occgeo;
++   }
++
++
++
++
++   OCCGeometry *LoadOCC_BREP (const char *filename)
++   {
++      OCCGeometry * occgeo;
++      occgeo = new OCCGeometry;
++
++      BRep_Builder aBuilder;
++      Standard_Boolean result = BRepTools::Read(occgeo->shape, const_cast<char*> (filename),aBuilder);
++
++      if(!result)
++      {
++         delete occgeo;
++         return NULL;
++      }
++
++      // Philippose - 23/02/2009
++      // Fixed a bug in the OpenCascade XDE Colour handling when 
++      // opening BREP Files, since BREP Files have no colour data.
++      // Hence, the face_colours Handle needs to be created as a NULL handle.
++      occgeo->face_colours = Handle(XCAFDoc_ColorTool)();
++      occgeo->face_colours.Nullify();
++      occgeo->changed = 1;
++      occgeo->BuildFMap();
++
++      occgeo->CalcBoundingBox();
++      PrintContents (occgeo);
++
++      return occgeo;
++   }
++
++
++  void OCCGeometry :: Save (string sfilename) const
++  {
++    const char * filename = sfilename.c_str();
++    if (strlen(filename) < 4) 
++      throw NgException ("illegal filename");
++    
++    if (strcmp (&filename[strlen(filename)-3], "igs") == 0)
++      {
++      IGESControl_Writer writer("millimeters", 1);
++      writer.AddShape (shape);
++      writer.Write (filename);
++      }
++    else if (strcmp (&filename[strlen(filename)-3], "stp") == 0)
++      {
++      STEPControl_Writer writer;
++      writer.Transfer (shape, STEPControl_AsIs);
++      writer.Write (filename);
++      }
++    else if (strcmp (&filename[strlen(filename)-3], "stl") == 0)
++      {
++      StlAPI_Writer writer;
++      writer.ASCIIMode() = Standard_True;
++      writer.Write (shape, filename);
++      }
++    else if (strcmp (&filename[strlen(filename)-4], "stlb") == 0)
++      {
++      StlAPI_Writer writer;
++      writer.ASCIIMode() = Standard_False;
++      writer.Write (shape, filename);
++      }
++  }
++
++
++
++  const char * shapesname[] =
++   {" ", "CompSolids", "Solids", "Shells",
++
++   "Faces", "Wires", "Edges", "Vertices"};
++
++  const char * shapename[] =
++   {" ", "CompSolid", "Solid", "Shell",
++   "Face", "Wire", "Edge", "Vertex"};
++
++  const char * orientationstring[] =
++     {"+", "-"};
++
++
++
++
++   void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,
++      stringstream & str,
++      TopAbs_ShapeEnum l,
++      bool isfree,
++      const char * lname)
++   {
++      if (l > TopAbs_VERTEX) return;
++
++      TopExp_Explorer e;
++      int count = 0;
++      int count2 = 0;
++
++      if (isfree)
++         e.Init(sh, l, TopAbs_ShapeEnum(l-1));
++      else
++         e.Init(sh, l);
++
++      for (; e.More(); e.Next())
++      {
++         count++;
++
++         stringstream lname2;
++         lname2 << lname << "/" << shapename[l] << count;
++         str << lname2.str() << " ";
++
++         switch (e.Current().ShapeType())
++         {
++         case TopAbs_SOLID:
++           count2 = somap.FindIndex(TopoDS::Solid(e.Current())); break;
++         case TopAbs_SHELL:
++           count2 = shmap.FindIndex(TopoDS::Shell(e.Current())); break;
++         case TopAbs_FACE:
++           count2 = fmap.FindIndex(TopoDS::Face(e.Current())); break;
++         case TopAbs_WIRE:
++           count2 = wmap.FindIndex(TopoDS::Wire(e.Current())); break;
++         case TopAbs_EDGE:
++           count2 = emap.FindIndex(TopoDS::Edge(e.Current())); break;
++         case TopAbs_VERTEX:
++           count2 = vmap.FindIndex(TopoDS::Vertex(e.Current())); break;
++         default:
++           cout << "RecursiveTopologyTree: Case " << e.Current().ShapeType() << " not handeled" << endl;
++         }
++
++         int nrsubshapes = 0;
++
++         if (l <= TopAbs_WIRE)
++         {
++            TopExp_Explorer e2;
++            for (e2.Init (e.Current(), TopAbs_ShapeEnum (l+1));
++               e2.More(); e2.Next())
++               nrsubshapes++;
++         }
++
++         str << "{" << shapename[l] << " " << count2;
++
++         if (l <= TopAbs_EDGE)
++         {
++            str << " (" << orientationstring[e.Current().Orientation()];
++            if (nrsubshapes != 0) str << ", " << nrsubshapes;
++            str << ") } ";
++         }
++         else
++            str << " } ";
++
++         RecursiveTopologyTree (e.Current(), str, TopAbs_ShapeEnum (l+1),
++            false, (char*)lname2.str().c_str());
++
++      }
++   }
++
++
++
++
++   void OCCGeometry :: GetTopologyTree (stringstream & str)
++   {
++      cout << "Building topology tree ... " << flush;
++      RecursiveTopologyTree (shape, str, TopAbs_COMPSOLID, false, "CompSolids");
++      RecursiveTopologyTree (shape, str, TopAbs_SOLID, true, "FreeSolids");
++      RecursiveTopologyTree (shape, str, TopAbs_SHELL, true, "FreeShells");
++      RecursiveTopologyTree (shape, str, TopAbs_FACE, true, "FreeFaces");
++      RecursiveTopologyTree (shape, str, TopAbs_WIRE, true, "FreeWires");
++      RecursiveTopologyTree (shape, str, TopAbs_EDGE, true, "FreeEdges");
++      RecursiveTopologyTree (shape, str, TopAbs_VERTEX, true, "FreeVertices");
++      str << flush;
++      //  cout << "done" << endl;
++   }
++
++
++
++
++   void OCCGeometry :: CheckIrregularEntities(stringstream & str)
++   {
++      ShapeAnalysis_CheckSmallFace csm;
++
++      csm.SetTolerance (1e-6);
++
++      TopTools_DataMapOfShapeListOfShape mapEdges;
++      ShapeAnalysis_DataMapOfShapeListOfReal mapParam;
++      TopoDS_Compound theAllVert;
++
++      int spotfaces = 0;
++      int stripsupportfaces = 0;
++      int singlestripfaces = 0;
++      int stripfaces = 0;
++      int facessplitbyvertices = 0;
++      int stretchedpinfaces = 0;
++      int smoothpinfaces = 0;
++      int twistedfaces = 0;
++      // int edgessamebutnotidentified = 0;
++
++      cout << "checking faces ... " << flush;
++
++      int i;
++      for (i = 1; i <= fmap.Extent(); i++)
++      {
++         TopoDS_Face face = TopoDS::Face (fmap(i));
++         TopoDS_Edge e1, e2;
++
++         if (csm.CheckSpotFace (face))
++         {
++            if (!spotfaces++)
++               str << "SpotFace {Spot face} ";
++
++            (*testout) << "Face " << i << " is a spot face" << endl;
++            str << "SpotFace/Face" << i << " ";
++            str << "{Face " << i << " } ";
++         }
++
++         if (csm.IsStripSupport (face))
++         {
++            if (!stripsupportfaces++)
++               str << "StripSupportFace {Strip support face} ";
++
++            (*testout) << "Face " << i << " has strip support" << endl;
++            str << "StripSupportFace/Face" << i << " ";
++            str << "{Face " << i << " } ";
++         }
++
++         if (csm.CheckSingleStrip(face, e1, e2))
++         {
++            if (!singlestripfaces++)
++               str << "SingleStripFace {Single strip face} ";
++
++            (*testout) << "Face " << i << " is a single strip (edge " << emap.FindIndex(e1)
++               << " and edge " << emap.FindIndex(e2) << " are identical)" << endl;
++            str << "SingleStripFace/Face" << i << " ";
++            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
++               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
++         }
++
++         if (csm.CheckStripFace(face, e1, e2))
++         {
++            if (!stripfaces++)
++               str << "StripFace {Strip face} ";
++
++            (*testout) << "Face " << i << " is a strip (edge " << emap.FindIndex(e1)
++               << " and edge " << emap.FindIndex(e2)
++               << " are identical)" << endl;
++            str << "StripFace/Face" << i << " ";
++            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
++               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
++         }
++
++         if (int count = csm.CheckSplittingVertices(face, mapEdges, mapParam, theAllVert))
++         {
++            if (!facessplitbyvertices++)
++               str << "FaceSplitByVertices {Face split by vertices} ";
++
++            (*testout) << "Face " << i << " is split by " << count
++               << " vertex/vertices " << endl;
++            str << "FaceSplitByVertices/Face" << i << " ";
++            str << "{Face " << i << " (split by " << count << "vertex/vertices)} ";
++         }
++
++         int whatrow, sens;
++         if (int type = csm.CheckPin (face, whatrow, sens))
++         {
++            if (type == 1)
++            {
++               if (!smoothpinfaces++)
++                  str << "SmoothPinFace {Smooth pin face} ";
++
++               (*testout) << "Face " << i << " is a smooth pin" << endl;
++               str << "SmoothPinFace/Face" << i << " ";
++               str << "{Face " << i << " } ";
++            }
++            else
++            {
++               if (!stretchedpinfaces++)
++                  str << "StretchedPinFace {Stretched pin face} ";
++
++               (*testout) << "Face " << i << " is a streched pin" << endl;
++               str << "StretchedPinFace/Face" << i << " ";
++               str << "{Face " << i << " } ";
++            }
++         }
++
++         double paramu, paramv;
++         if (csm.CheckTwisted (face, paramu, paramv))
++         {
++            if (!twistedfaces++)
++               str << "TwistedFace {Twisted face} ";
++
++            (*testout) << "Face " << i << " is twisted" << endl;
++            str << "TwistedFace/Face" << i << " ";
++            str << "{Face " << i << " } ";
++         }
++      }
++
++      cout << "done" << endl;
++      cout << "checking edges ... " << flush;
++
++      // double dmax;
++      // int cnt = 0;
++      Array <double> edgeLengths;
++      Array <int> order;
++      edgeLengths.SetSize (emap.Extent());
++      order.SetSize (emap.Extent());
++
++      for (i = 1; i <= emap.Extent(); i++)
++      {
++         TopoDS_Edge edge1 = TopoDS::Edge (emap(i));
++         GProp_GProps system;
++         BRepGProp::LinearProperties(edge1, system);
++         edgeLengths[i-1] = system.Mass();
++      }
++
++      Sort (edgeLengths, order);
++
++      str << "ShortestEdges {Shortest edges} ";
++      for (i = 1; i <= min(20, emap.Extent()); i++)
++      {
++         str << "ShortestEdges/Edge" << i;
++         str << " {Edge " << order[i-1] << " (L=" << edgeLengths[order[i-1]-1] << ")} ";
++      }
++
++      str << flush;
++
++      cout << "done" << endl;
++   }
++
++
++
++
++   void OCCGeometry :: GetUnmeshedFaceInfo (stringstream & str)
++   {
++      for (int i = 1; i <= fmap.Extent(); i++)
++      {
++         if (facemeshstatus[i-1] == -1)
++            str << "Face" << i << " {Face " << i << " } ";
++      }
++      str << flush;
++   }
++
++
++
++
++   void OCCGeometry :: GetNotDrawableFaces (stringstream & str)
++   {
++      for (int i = 1; i <= fmap.Extent(); i++)
++      {
++         if (!fvispar[i-1].IsDrawable())
++            str << "Face" << i << " {Face " << i << " } ";
++      }
++      str << flush;
++   }
++
++
++
++
++   bool OCCGeometry :: ErrorInSurfaceMeshing ()
++   {
++      for (int i = 1; i <= fmap.Extent(); i++)
++         if (facemeshstatus[i-1] == -1)
++            return true;
++
++      return false;
++   }
++
++
++
++
++  int OCCGeometry :: GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,
++      int perfstepsstart, int perfstepsend)
++   {
++     return OCCGenerateMesh (*this, mesh, mparam, perfstepsstart, perfstepsend);
++   }
++
++
++
++
++   const Refinement & OCCGeometry :: GetRefinement () const
++   {
++      return * new OCCRefinementSurfaces (*this);
++   }
++
++
++
++
++   OCCParameters :: OCCParameters()
++   {
++      resthcloseedgefac = 1;
++      resthcloseedgeenable = 1;
++        resthminedgelen = 0.001;
++        resthminedgelenenable = 1;
++   }
++
++
++
++
++   void OCCParameters :: Print(ostream & ost) const
++   {
++      ost << "OCC Parameters:" << endl
++         << "close edges: " << resthcloseedgeenable
++         << ", fac = " << resthcloseedgefac << endl
++               << "minimum edge length: " << resthminedgelenenable
++               << ", min len = " << resthminedgelen << endl;
++   }
++
++
++
++
++   OCCParameters occparam;
++
++}
++
++
++#endif
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp
+--- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp       2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp      2019-11-14 16:56:23.322426671 +0300
+@@ -1,457 +1,475 @@
+-#ifndef FILE_OCCGEOM\r
+-#define FILE_OCCGEOM\r
+-\r
+-/* *************************************************************************/\r
+-/* File:   occgeom.hpp                                                     */\r
+-/* Author: Robert Gaisbauer                                                */\r
+-/* Date:   26. May  03                                                     */\r
+-/* *************************************************************************/\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-\r
+-#include <meshing.hpp>\r
+-\r
+-#include "BRep_Tool.hxx"\r
+-#include "Geom_Curve.hxx"\r
+-#include "Geom2d_Curve.hxx"\r
+-#include "Geom_Surface.hxx"\r
+-#include "GeomAPI_ProjectPointOnSurf.hxx"\r
+-#include "GeomAPI_ProjectPointOnCurve.hxx"\r
+-#include "BRepTools.hxx"\r
+-#include "TopExp.hxx"\r
+-#include "BRepBuilderAPI_MakeVertex.hxx"\r
+-#include "BRepBuilderAPI_MakeShell.hxx"\r
+-#include "BRepBuilderAPI_MakeSolid.hxx"\r
+-#include "BRepOffsetAPI_Sewing.hxx"\r
+-#include "BRepLProp_SLProps.hxx"\r
+-#include "BRepAdaptor_Surface.hxx"\r
+-#include "Poly_Triangulation.hxx"\r
+-#include "Poly_Array1OfTriangle.hxx"\r
+-#include "TColgp_Array1OfPnt2d.hxx"\r
+-#include "Poly_Triangle.hxx"\r
+-#include "GProp_GProps.hxx"\r
+-#include "BRepGProp.hxx"\r
+-#include "Geom_Surface.hxx"\r
+-#include "TopExp.hxx"\r
+-#include "gp_Pnt.hxx"\r
+-#include "TopoDS.hxx"\r
+-#include "TopoDS_Solid.hxx"\r
+-#include "TopExp_Explorer.hxx"\r
+-#include "TopTools_ListIteratorOfListOfShape.hxx"\r
+-#include "BRep_Tool.hxx"\r
+-#include "Geom_Curve.hxx"\r
+-#include "Geom2d_Curve.hxx"\r
+-#include "Geom_Surface.hxx"\r
+-#include "GeomAPI_ProjectPointOnSurf.hxx"\r
+-#include "GeomAPI_ProjectPointOnCurve.hxx"\r
+-#include "TopoDS_Wire.hxx"\r
+-#include "BRepTools_WireExplorer.hxx"\r
+-#include "BRepTools.hxx"\r
+-#include "TopTools_IndexedMapOfShape.hxx"\r
+-#include "TopExp.hxx"\r
+-#include "BRepBuilderAPI_MakeVertex.hxx"\r
+-#include "BRepBuilderAPI_MakeShell.hxx"\r
+-#include "BRepBuilderAPI_MakeSolid.hxx"\r
+-#include "BRepOffsetAPI_Sewing.hxx"\r
+-#include "BRepLProp_CLProps.hxx"\r
+-#include "BRepLProp_SLProps.hxx"\r
+-#include "BRepAdaptor_Surface.hxx"\r
+-#include "BRepAdaptor_Curve.hxx"\r
+-#include "Poly_Triangulation.hxx"\r
+-#include "Poly_Array1OfTriangle.hxx"\r
+-#include "TColgp_Array1OfPnt2d.hxx"\r
+-#include "Poly_Triangle.hxx"\r
+-#include "GProp_GProps.hxx"\r
+-#include "BRepGProp.hxx"\r
+-#include "TopoDS_Shape.hxx"\r
+-#include "TopoDS_Face.hxx"\r
+-#include "IGESToBRep_Reader.hxx"\r
+-#include "Interface_Static.hxx"\r
+-#include "GeomAPI_ExtremaCurveCurve.hxx"\r
+-#include "Standard_ErrorHandler.hxx"\r
+-#include "Standard_Failure.hxx"\r
+-#include "ShapeUpgrade_ShellSewing.hxx"\r
+-#include "ShapeFix_Shape.hxx"\r
+-#include "ShapeFix_Wireframe.hxx"\r
+-#include "BRepMesh.hxx"\r
+-#include "BRepMesh_IncrementalMesh.hxx"\r
+-#include "BRepBndLib.hxx"\r
+-#include "Bnd_Box.hxx"\r
+-#include "ShapeAnalysis.hxx"\r
+-#include "ShapeBuild_ReShape.hxx"\r
+-\r
+-\r
+-// Philippose - 29/01/2009\r
+-// OpenCascade XDE Support\r
+-// Include support for OpenCascade XDE Features\r
+-#include "TDocStd_Document.hxx"\r
+-#include "Quantity_Color.hxx"\r
+-#include "XCAFApp_Application.hxx"\r
+-#include "XCAFDoc_ShapeTool.hxx"\r
+-#include "XCAFDoc_Color.hxx"\r
+-#include "XCAFDoc_ColorTool.hxx"\r
+-#include "XCAFDoc_ColorType.hxx"\r
+-#include "XCAFDoc_LayerTool.hxx"\r
+-#include "XCAFDoc_DimTolTool.hxx"\r
+-#include "XCAFDoc_MaterialTool.hxx"\r
+-#include "XCAFDoc_DocumentTool.hxx"\r
+-#include "TDF_Label.hxx"\r
+-#include "TDF_LabelSequence.hxx"\r
+-#include "STEPCAFControl_Reader.hxx"\r
+-#include "STEPCAFControl_Writer.hxx"\r
+-#include "IGESCAFControl_Reader.hxx"\r
+-#include "IGESCAFControl_Writer.hxx"\r
+-\r
+-#include "IGESControl_Reader.hxx"\r
+-#include "STEPControl_Reader.hxx"\r
+-#include "IGESControl_Writer.hxx"\r
+-#include "STEPControl_Writer.hxx"\r
+-\r
+-#include "StlAPI_Writer.hxx"\r
+-#include "STEPControl_StepModelType.hxx"\r
+-\r
+-namespace netgen\r
+-{\r
+-#include "occmeshsurf.hpp"\r
+-\r
+-  extern DLL_HEADER MeshingParameters mparam;\r
+-\r
+-#define PROJECTION_TOLERANCE 1e-10\r
+-\r
+-#define ENTITYISVISIBLE 1\r
+-#define ENTITYISHIGHLIGHTED 2\r
+-#define ENTITYISDRAWABLE 4\r
+-\r
+-#define OCCGEOMETRYVISUALIZATIONNOCHANGE   0\r
+-#define OCCGEOMETRYVISUALIZATIONFULLCHANGE 1  // Compute transformation matrices and redraw\r
+-#define OCCGEOMETRYVISUALIZATIONHALFCHANGE 2  // Redraw\r
+-\r
+-\r
+-\r
+-   class EntityVisualizationCode\r
+-   {\r
+-      int code;\r
+-\r
+-   public:\r
+-\r
+-      EntityVisualizationCode()\r
+-      {  code = ENTITYISVISIBLE + !ENTITYISHIGHLIGHTED + ENTITYISDRAWABLE;}\r
+-\r
+-      int IsVisible ()\r
+-      {  return code & ENTITYISVISIBLE;}\r
+-\r
+-      int IsHighlighted ()\r
+-      {  return code & ENTITYISHIGHLIGHTED;}\r
+-\r
+-      int IsDrawable ()\r
+-      {  return code & ENTITYISDRAWABLE;}\r
+-\r
+-      void Show ()\r
+-      {  code |= ENTITYISVISIBLE;}\r
+-\r
+-      void Hide ()\r
+-      {  code &= ~ENTITYISVISIBLE;}\r
+-\r
+-      void Highlight ()\r
+-      {  code |= ENTITYISHIGHLIGHTED;}\r
+-\r
+-      void Lowlight ()\r
+-      {  code &= ~ENTITYISHIGHLIGHTED;}\r
+-\r
+-      void SetDrawable ()\r
+-      {  code |= ENTITYISDRAWABLE;}\r
+-\r
+-      void SetNotDrawable ()\r
+-      {  code &= ~ENTITYISDRAWABLE;}\r
+-   };\r
+-\r
+-\r
+-\r
+-   class Line\r
+-   {\r
+-   public:\r
+-      Point<3> p0, p1;\r
+-\r
+-      double Dist (Line l);\r
+-\r
+-      double Length ();\r
+-   };\r
+-\r
+-\r
+-\r
+-   inline double Det3 (double a00, double a01, double a02,\r
+-      double a10, double a11, double a12,\r
+-      double a20, double a21, double a22)\r
+-   {\r
+-      return a00*a11*a22 + a01*a12*a20 + a10*a21*a02 - a20*a11*a02 - a10*a01*a22 - a21*a12*a00;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   class OCCGeometry : public NetgenGeometry\r
+-   {\r
+-      Point<3> center;\r
+-\r
+-   public:\r
+-      TopoDS_Shape shape;\r
+-      TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;\r
+-      Array<bool> fsingular, esingular, vsingular;\r
+-      Box<3> boundingbox;\r
+-\r
+-      // Philippose - 29/01/2009\r
+-      // OpenCascade XDE Support\r
+-      // XCAF Handle to make the face colours available to the rest of\r
+-      // the system\r
+-      Handle_XCAFDoc_ColorTool face_colours;\r
+-\r
+-     mutable int changed;\r
+-      Array<int> facemeshstatus;\r
+-\r
+-      // Philippose - 15/01/2009\r
+-      // Maximum mesh size for a given face\r
+-      // (Used to explicitly define mesh size limits on individual faces)\r
+-      Array<double> face_maxh;\r
+-      \r
+-      // Philippose - 14/01/2010\r
+-      // Boolean array to detect whether a face has been explicitly modified \r
+-      // by the user or not\r
+-      Array<bool> face_maxh_modified;\r
+-\r
+-      // Philippose - 15/01/2009\r
+-      // Indicates which faces have been selected by the user in geometry mode\r
+-      // (Currently handles only selection of one face at a time, but an array would\r
+-      //  help to extend this to multiple faces)\r
+-      Array<bool> face_sel_status;\r
+-\r
+-      Array<EntityVisualizationCode> fvispar, evispar, vvispar;\r
+-\r
+-      double tolerance;\r
+-      bool fixsmalledges;\r
+-      bool fixspotstripfaces;\r
+-      bool sewfaces;\r
+-      bool makesolids;\r
+-      bool splitpartitions;\r
+-\r
+-      OCCGeometry()\r
+-      {\r
+-         somap.Clear();\r
+-         shmap.Clear();\r
+-         fmap.Clear();\r
+-         wmap.Clear();\r
+-         emap.Clear();\r
+-         vmap.Clear();\r
+-      }\r
+-\r
+-\r
+-     virtual void Save (string filename) const;\r
+-\r
+-\r
+-      void BuildFMap();\r
+-\r
+-      Box<3> GetBoundingBox()\r
+-      {  return boundingbox;}\r
+-\r
+-      int NrSolids()\r
+-      {  return somap.Extent();}\r
+-\r
+-      // Philippose - 17/01/2009\r
+-      // Total number of faces in the geometry\r
+-      int NrFaces()\r
+-      {  return fmap.Extent();}\r
+-\r
+-      void SetCenter()\r
+-      {  center = boundingbox.Center();}\r
+-\r
+-      Point<3> Center()\r
+-      {  return center;}\r
+-\r
+-      void Project (int surfi, Point<3> & p) const;\r
+-      bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;\r
+-\r
+-      OCCSurface GetSurface (int surfi)\r
+-      {\r
+-         cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;\r
+-         return OCCSurface (TopoDS::Face(fmap(surfi)), PLANESPACE);\r
+-      }\r
+-\r
+-      void CalcBoundingBox ();\r
+-      void BuildVisualizationMesh (double deflection);\r
+-\r
+-      void RecursiveTopologyTree (const TopoDS_Shape & sh,\r
+-         stringstream & str,\r
+-         TopAbs_ShapeEnum l,\r
+-         bool free,\r
+-         const char * lname);\r
+-\r
+-      void GetTopologyTree (stringstream & str);\r
+-\r
+-      void PrintNrShapes ();\r
+-\r
+-      void CheckIrregularEntities (stringstream & str);\r
+-\r
+-      void SewFaces();\r
+-\r
+-      void MakeSolid();\r
+-\r
+-      void HealGeometry();\r
+-\r
+-      // Philippose - 15/01/2009\r
+-      // Sets the maximum mesh size for a given face\r
+-      // (Note: Local mesh size limited by the global max mesh size)\r
+-      void SetFaceMaxH(int facenr, double faceh)\r
+-      {\r
+-         if((facenr> 0) && (facenr <= fmap.Extent()))\r
+-         {\r
+-         face_maxh[facenr-1] = min(mparam.maxh,faceh);\r
+-            \r
+-            // Philippose - 14/01/2010\r
+-            // If the face maxh is greater than or equal to the \r
+-            // current global maximum, then identify the face as \r
+-            // not explicitly controlled by the user any more\r
+-            if(faceh >= mparam.maxh)\r
+-            {\r
+-               face_maxh_modified[facenr-1] = 0;\r
+-            }\r
+-            else\r
+-            {\r
+-               face_maxh_modified[facenr-1] = 1;\r
+-            }\r
+-         }\r
+-      }\r
+-\r
+-      // Philippose - 15/01/2009\r
+-      // Returns the local mesh size of a given face\r
+-      double GetFaceMaxH(int facenr)\r
+-      {\r
+-         if((facenr> 0) && (facenr <= fmap.Extent()))\r
+-         {\r
+-            return face_maxh[facenr-1];\r
+-         }\r
+-         else\r
+-         {\r
+-            return 0.0;\r
+-         }\r
+-      }\r
+-      \r
+-      // Philippose - 14/01/2010\r
+-      // Returns the flag whether the given face \r
+-      // has a mesh size controlled by the user or not\r
+-      bool GetFaceMaxhModified(int facenr)\r
+-      {\r
+-         return face_maxh_modified[facenr-1];\r
+-      }\r
+-      \r
+-      // Philippose - 17/01/2009\r
+-      // Returns the index of the currently selected face\r
+-      int SelectedFace()\r
+-      {\r
+-         int i;\r
+-\r
+-         for(i = 1; i <= fmap.Extent(); i++)\r
+-         {\r
+-            if(face_sel_status[i-1])\r
+-            {\r
+-               return i;\r
+-            }\r
+-         }\r
+-\r
+-         return 0;\r
+-      }\r
+-\r
+-      // Philippose - 17/01/2009\r
+-      // Sets the currently selected face\r
+-      void SetSelectedFace(int facenr)\r
+-      {\r
+-         face_sel_status = 0;\r
+-\r
+-         if((facenr >= 1) && (facenr <= fmap.Extent()))\r
+-         {\r
+-            face_sel_status[facenr-1] = 1;\r
+-         }\r
+-      }\r
+-\r
+-      void LowLightAll()\r
+-      {\r
+-         for (int i = 1; i <= fmap.Extent(); i++)\r
+-            fvispar[i-1].Lowlight();\r
+-         for (int i = 1; i <= emap.Extent(); i++)\r
+-            evispar[i-1].Lowlight();\r
+-         for (int i = 1; i <= vmap.Extent(); i++)\r
+-            vvispar[i-1].Lowlight();\r
+-      }\r
+-\r
+-      void GetUnmeshedFaceInfo (stringstream & str);\r
+-      void GetNotDrawableFaces (stringstream & str);\r
+-      bool ErrorInSurfaceMeshing ();\r
+-\r
+-     void WriteOCC_STL(char * filename);\r
+-\r
+-     virtual int GenerateMesh (Mesh*& mesh, MeshingParameters & mparam, \r
+-         int perfstepsstart, int perfstepsend);\r
+-\r
+-      virtual const Refinement & GetRefinement () const;\r
+-   };\r
+-\r
+-\r
+-\r
+-   class OCCParameters\r
+-   {\r
+-   public:\r
+-\r
+-      /// Factor for meshing close edges \r
+-      double resthcloseedgefac;\r
+-\r
+-\r
+-      /// Enable / Disable detection of close edges\r
+-      int resthcloseedgeenable;\r
+-\r
+-\r
+-        /// Minimum edge length to be used for dividing edges to mesh points\r
+-        double resthminedgelen;\r
+-\r
+-\r
+-        /// Enable / Disable use of the minimum edge length (by default use 1e-4)\r
+-        int resthminedgelenenable;\r
+-\r
+-      /*!\r
+-         Default Constructor for the OpenCascade\r
+-         Mesh generation parameter set\r
+-      */\r
+-      OCCParameters();\r
+-\r
+-\r
+-      /*!\r
+-         Dump all the OpenCascade specific meshing parameters \r
+-         to console\r
+-      */\r
+-      void Print (ostream & ost) const;\r
+-   };\r
+-   \r
+-\r
+-   void PrintContents (OCCGeometry * geom);\r
+-\r
+-   OCCGeometry * LoadOCC_IGES (const char * filename);\r
+-   OCCGeometry * LoadOCC_STEP (const char * filename);\r
+-   OCCGeometry * LoadOCC_BREP (const char * filename);\r
+-\r
+-   extern OCCParameters occparam;\r
+-\r
+-\r
+-   // Philippose - 31.09.2009\r
+-   // External access to the mesh generation functions within the OCC\r
+-   // subsystem (Not sure if this is the best way to implement this....!!)\r
+-   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,\r
+-                             MeshingParameters & mparam,\r
+-                             int perfstepsstart, int perfstepsend);\r
+-\r
+-  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);\r
+-\r
+-   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);\r
+-\r
+-   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);\r
+-}\r
+-\r
+-#endif\r
+-\r
+-#endif\r
++#ifndef FILE_OCCGEOM
++#define FILE_OCCGEOM
++
++/* *************************************************************************/
++/* File:   occgeom.hpp                                                     */
++/* Author: Robert Gaisbauer                                                */
++/* Date:   26. May  03                                                     */
++/* *************************************************************************/
++
++#ifdef OCCGEOMETRY
++
++#include <meshing.hpp>
++
++#include "BRep_Tool.hxx"
++#include "Geom_Curve.hxx"
++#include "Geom2d_Curve.hxx"
++#include "Geom_Surface.hxx"
++// #include "GeomAPI_ProjectPointOnSurf.hxx"
++// #include "GeomAPI_ProjectPointOnCurve.hxx"
++#include "BRepTools.hxx"
++#include "TopExp.hxx"
++#include "BRepBuilderAPI_MakeVertex.hxx"
++#include "BRepBuilderAPI_MakeShell.hxx"
++#include "BRepBuilderAPI_MakeSolid.hxx"
++#include "BRepOffsetAPI_Sewing.hxx"
++#include "BRepLProp_SLProps.hxx"
++#include "BRepAdaptor_Surface.hxx"
++#include "Poly_Triangulation.hxx"
++#include "Poly_Array1OfTriangle.hxx"
++#include "TColgp_Array1OfPnt2d.hxx"
++#include "Poly_Triangle.hxx"
++#include "GProp_GProps.hxx"
++#include "BRepGProp.hxx"
++#include "Geom_Surface.hxx"
++#include "TopExp.hxx"
++#include "gp_Pnt.hxx"
++#include "TopoDS.hxx"
++#include "TopoDS_Solid.hxx"
++#include "TopExp_Explorer.hxx"
++#include "TopTools_ListIteratorOfListOfShape.hxx"
++#include "BRep_Tool.hxx"
++#include "Geom_Curve.hxx"
++#include "Geom2d_Curve.hxx"
++#include "Geom_Surface.hxx"
++// #include "GeomAPI_ProjectPointOnSurf.hxx"
++// #include "GeomAPI_ProjectPointOnCurve.hxx"
++#include "TopoDS_Wire.hxx"
++#include "BRepTools_WireExplorer.hxx"
++#include "BRepTools.hxx"
++#include "TopTools_IndexedMapOfShape.hxx"
++#include "TopExp.hxx"
++#include "BRepBuilderAPI_MakeVertex.hxx"
++#include "BRepBuilderAPI_MakeShell.hxx"
++#include "BRepBuilderAPI_MakeSolid.hxx"
++#include "BRepOffsetAPI_Sewing.hxx"
++#include "BRepLProp_CLProps.hxx"
++#include "BRepLProp_SLProps.hxx"
++#include "BRepAdaptor_Surface.hxx"
++#include "BRepAdaptor_Curve.hxx"
++#include "Poly_Triangulation.hxx"
++#include "Poly_Array1OfTriangle.hxx"
++#include "TColgp_Array1OfPnt2d.hxx"
++#include "Poly_Triangle.hxx"
++#include "GProp_GProps.hxx"
++#include "BRepGProp.hxx"
++#include "TopoDS_Shape.hxx"
++#include "TopoDS_Face.hxx"
++#include "IGESToBRep_Reader.hxx"
++#include "Interface_Static.hxx"
++#include "GeomAPI_ExtremaCurveCurve.hxx"
++//#include "Standard_ErrorHandler.hxx"
++#include "Standard_Failure.hxx"
++#include "ShapeUpgrade_ShellSewing.hxx"
++#include "ShapeFix_Shape.hxx"
++#include "ShapeFix_Wireframe.hxx"
++#include <Standard_Version.hxx>
++#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) <= 0x060702
++// porting to OCCT6.7.3
++#include "BRepMesh.hxx"
++#endif
++#include "BRepMesh_IncrementalMesh.hxx"
++#include "BRepBndLib.hxx"
++#include "Bnd_Box.hxx"
++#include "ShapeAnalysis.hxx"
++#include "ShapeBuild_ReShape.hxx"
++
++// -- Optimization: to use cached projector and classifier
++#include <NCollection_DataMap.hxx>
++class ShapeAnalysis_Surface;
++class BRepTopAdaptor_FClass2d;
++
++// Philippose - 29/01/2009
++// OpenCascade XDE Support
++// Include support for OpenCascade XDE Features
++#include "TDocStd_Document.hxx"
++#include "Quantity_Color.hxx"
++#include "XCAFApp_Application.hxx"
++#include "XCAFDoc_ShapeTool.hxx"
++#include "XCAFDoc_Color.hxx"
++#include "XCAFDoc_ColorTool.hxx"
++#include "XCAFDoc_ColorType.hxx"
++#include "XCAFDoc_LayerTool.hxx"
++#include "XCAFDoc_DimTolTool.hxx"
++#include "XCAFDoc_MaterialTool.hxx"
++#include "XCAFDoc_DocumentTool.hxx"
++#include "TDF_Label.hxx"
++#include "TDF_LabelSequence.hxx"
++#include "STEPCAFControl_Reader.hxx"
++#include "STEPCAFControl_Writer.hxx"
++#include "IGESCAFControl_Reader.hxx"
++#include "IGESCAFControl_Writer.hxx"
++
++#include "IGESControl_Reader.hxx"
++#include "STEPControl_Reader.hxx"
++#include "IGESControl_Writer.hxx"
++#include "STEPControl_Writer.hxx"
++
++#include "StlAPI_Writer.hxx"
++#include "STEPControl_StepModelType.hxx"
++
++namespace netgen
++{
++#include "occmeshsurf.hpp"
++
++  extern DLL_HEADER MeshingParameters mparam;
++
++#define PROJECTION_TOLERANCE 1e-10
++
++#define ENTITYISVISIBLE 1
++#define ENTITYISHIGHLIGHTED 2
++#define ENTITYISDRAWABLE 4
++
++#define OCCGEOMETRYVISUALIZATIONNOCHANGE   0
++#define OCCGEOMETRYVISUALIZATIONFULLCHANGE 1  // Compute transformation matrices and redraw
++#define OCCGEOMETRYVISUALIZATIONHALFCHANGE 2  // Redraw
++
++
++
++   class EntityVisualizationCode
++   {
++      int code;
++
++   public:
++
++      EntityVisualizationCode()
++      {  code = ENTITYISVISIBLE + !ENTITYISHIGHLIGHTED + ENTITYISDRAWABLE;}
++
++      int IsVisible ()
++      {  return code & ENTITYISVISIBLE;}
++
++      int IsHighlighted ()
++      {  return code & ENTITYISHIGHLIGHTED;}
++
++      int IsDrawable ()
++      {  return code & ENTITYISDRAWABLE;}
++
++      void Show ()
++      {  code |= ENTITYISVISIBLE;}
++
++      void Hide ()
++      {  code &= ~ENTITYISVISIBLE;}
++
++      void Highlight ()
++      {  code |= ENTITYISHIGHLIGHTED;}
++
++      void Lowlight ()
++      {  code &= ~ENTITYISHIGHLIGHTED;}
++
++      void SetDrawable ()
++      {  code |= ENTITYISDRAWABLE;}
++
++      void SetNotDrawable ()
++      {  code &= ~ENTITYISDRAWABLE;}
++   };
++
++
++
++   class Line
++   {
++   public:
++      Point<3> p0, p1;
++
++      double Dist (Line l);
++
++      double Length ();
++   };
++
++
++
++   inline double Det3 (double a00, double a01, double a02,
++      double a10, double a11, double a12,
++      double a20, double a21, double a22)
++   {
++      return a00*a11*a22 + a01*a12*a20 + a10*a21*a02 - a20*a11*a02 - a10*a01*a22 - a21*a12*a00;
++   }
++
++
++
++
++   class OCCGeometry : public NetgenGeometry
++   {
++      Point<3> center;
++      // -- Optimization: to use cached projector and classifier
++      mutable NCollection_DataMap<int,Handle(ShapeAnalysis_Surface)> fprjmap;
++      mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
++
++   public:
++      TopoDS_Shape shape;
++      TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;
++      Array<bool> fsingular, esingular, vsingular;
++      Box<3> boundingbox;
++
++      // Philippose - 29/01/2009
++      // OpenCascade XDE Support
++      // XCAF Handle to make the face colours available to the rest of
++      // the system
++      Handle(XCAFDoc_ColorTool) face_colours;
++
++     mutable int changed;
++      Array<int> facemeshstatus;
++
++      // Philippose - 15/01/2009
++      // Maximum mesh size for a given face
++      // (Used to explicitly define mesh size limits on individual faces)
++      Array<double> face_maxh;
++      
++      // Philippose - 14/01/2010
++      // Boolean array to detect whether a face has been explicitly modified 
++      // by the user or not
++      Array<bool> face_maxh_modified;
++
++      // Philippose - 15/01/2009
++      // Indicates which faces have been selected by the user in geometry mode
++      // (Currently handles only selection of one face at a time, but an array would
++      //  help to extend this to multiple faces)
++      Array<bool> face_sel_status;
++
++      Array<EntityVisualizationCode> fvispar, evispar, vvispar;
++
++      double tolerance;
++      bool fixsmalledges;
++      bool fixspotstripfaces;
++      bool sewfaces;
++      bool makesolids;
++      bool splitpartitions;
++
++      OCCGeometry()
++      {
++         somap.Clear();
++         shmap.Clear();
++         fmap.Clear();
++         wmap.Clear();
++         emap.Clear();
++         vmap.Clear();
++      }
++
++
++     virtual void Save (string filename) const;
++
++
++      ~OCCGeometry();      // -- to free cached projector and classifier
++
++      void BuildFMap();
++
++      Box<3> GetBoundingBox()
++      {  return boundingbox;}
++
++      int NrSolids()
++      {  return somap.Extent();}
++
++      // Philippose - 17/01/2009
++      // Total number of faces in the geometry
++      int NrFaces()
++      {  return fmap.Extent();}
++
++      void SetCenter()
++      {  center = boundingbox.Center();}
++
++      Point<3> Center()
++      {  return center;}
++
++      // void Project (int surfi, Point<3> & p) const; -- optimization
++      bool Project (int surfi, Point<3> & p, double& u, double& v) const;
++      bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;
++
++      // -- Optimization: to use cached projector and classifier
++      void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
++                        BRepTopAdaptor_FClass2d*& cls) const;
++
++      OCCSurface GetSurface (int surfi)
++      {
++         cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
++         return OCCSurface (TopoDS::Face(fmap(surfi)), PLANESPACE);
++      }
++
++      void CalcBoundingBox ();
++      void BuildVisualizationMesh (double deflection);
++
++      void RecursiveTopologyTree (const TopoDS_Shape & sh,
++         stringstream & str,
++         TopAbs_ShapeEnum l,
++         bool free,
++         const char * lname);
++
++      void GetTopologyTree (stringstream & str);
++
++      void PrintNrShapes ();
++
++      void CheckIrregularEntities (stringstream & str);
++
++      void SewFaces();
++
++      void MakeSolid();
++
++      void HealGeometry();
++
++      // Philippose - 15/01/2009
++      // Sets the maximum mesh size for a given face
++      // (Note: Local mesh size limited by the global max mesh size)
++      void SetFaceMaxH(int facenr, double faceh)
++      {
++         if((facenr> 0) && (facenr <= fmap.Extent()))
++         {
++         face_maxh[facenr-1] = min(mparam.maxh,faceh);
++            
++            // Philippose - 14/01/2010
++            // If the face maxh is greater than or equal to the 
++            // current global maximum, then identify the face as 
++            // not explicitly controlled by the user any more
++            if(faceh >= mparam.maxh)
++            {
++               face_maxh_modified[facenr-1] = 0;
++            }
++            else
++            {
++               face_maxh_modified[facenr-1] = 1;
++            }
++         }
++      }
++
++      // Philippose - 15/01/2009
++      // Returns the local mesh size of a given face
++      double GetFaceMaxH(int facenr)
++      {
++         if((facenr> 0) && (facenr <= fmap.Extent()))
++         {
++            return face_maxh[facenr-1];
++         }
++         else
++         {
++            return 0.0;
++         }
++      }
++      
++      // Philippose - 14/01/2010
++      // Returns the flag whether the given face 
++      // has a mesh size controlled by the user or not
++      bool GetFaceMaxhModified(int facenr)
++      {
++         return face_maxh_modified[facenr-1];
++      }
++      
++      // Philippose - 17/01/2009
++      // Returns the index of the currently selected face
++      int SelectedFace()
++      {
++         int i;
++
++         for(i = 1; i <= fmap.Extent(); i++)
++         {
++            if(face_sel_status[i-1])
++            {
++               return i;
++            }
++         }
++
++         return 0;
++      }
++
++      // Philippose - 17/01/2009
++      // Sets the currently selected face
++      void SetSelectedFace(int facenr)
++      {
++         face_sel_status = 0;
++
++         if((facenr >= 1) && (facenr <= fmap.Extent()))
++         {
++            face_sel_status[facenr-1] = 1;
++         }
++      }
++
++      void LowLightAll()
++      {
++         for (int i = 1; i <= fmap.Extent(); i++)
++            fvispar[i-1].Lowlight();
++         for (int i = 1; i <= emap.Extent(); i++)
++            evispar[i-1].Lowlight();
++         for (int i = 1; i <= vmap.Extent(); i++)
++            vvispar[i-1].Lowlight();
++      }
++
++      void GetUnmeshedFaceInfo (stringstream & str);
++      void GetNotDrawableFaces (stringstream & str);
++      bool ErrorInSurfaceMeshing ();
++
++     void WriteOCC_STL(char * filename);
++
++     virtual int GenerateMesh (Mesh*& mesh, MeshingParameters & mparam, 
++         int perfstepsstart, int perfstepsend);
++
++      virtual const Refinement & GetRefinement () const;
++   };
++
++
++
++   class OCCParameters
++   {
++   public:
++
++      /// Factor for meshing close edges 
++      double resthcloseedgefac;
++
++
++      /// Enable / Disable detection of close edges
++      int resthcloseedgeenable;
++
++
++        /// Minimum edge length to be used for dividing edges to mesh points
++        double resthminedgelen;
++
++
++        /// Enable / Disable use of the minimum edge length (by default use 1e-4)
++        int resthminedgelenenable;
++
++      /*!
++         Default Constructor for the OpenCascade
++         Mesh generation parameter set
++      */
++      OCCParameters();
++
++
++      /*!
++         Dump all the OpenCascade specific meshing parameters 
++         to console
++      */
++      void Print (ostream & ost) const;
++   };
++   
++
++   void PrintContents (OCCGeometry * geom);
++
++   OCCGeometry * LoadOCC_IGES (const char * filename);
++   OCCGeometry * LoadOCC_STEP (const char * filename);
++   OCCGeometry * LoadOCC_BREP (const char * filename);
++
++   extern OCCParameters occparam;
++
++
++   // Philippose - 31.09.2009
++   // External access to the mesh generation functions within the OCC
++   // subsystem (Not sure if this is the best way to implement this....!!)
++   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
++                             MeshingParameters & mparam,
++                             int perfstepsstart, int perfstepsend);
++
++  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
++
++   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
++
++   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
++}
++
++#endif
++
++#endif
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp   2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp  2019-11-14 16:56:24.270400136 +0300
+@@ -6,6 +6,7 @@
+ #include <meshing.hpp>
+ #include <GeomLProp_SLProps.hxx>
+ #include <ShapeAnalysis_Surface.hxx>
++#include <GeomAPI_ProjectPointOnCurve.hxx> // -- moved here from occgeom.hpp
+ namespace netgen
+@@ -96,13 +97,16 @@
+       n.Normalize();
+       }
+-    else
++    else if ( lprop.IsNormalDefined() )
+       {
+       n(0)=lprop.Normal().X();
+       n(1)=lprop.Normal().Y();
+       n(2)=lprop.Normal().Z();
+       }
+-
++    else
++      {
++        n = 0;
++      }
+     if(glob_testout)
+       {
+       (*testout) << "u " << geominfo.u << " v " << geominfo.v 
+@@ -434,23 +438,33 @@
+   void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point<3> & p) const
+   {
+-    geometry.Project (surfind, p);
++    // geometry.Project (surfind, p); -- signature of Project() changed for optimization
++    double u, v;
++    geometry.Project (surfind, p, u, v);
+   }
+   int MeshOptimize2dOCCSurfaces :: ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
+   {
+-    double u = gi.u;
+-    double v = gi.v;
++    //double u = gi.u;
++    //double v = gi.v;
+     Point<3> hp = p;
+-    if (geometry.FastProject (surfind, hp, u, v))
+-      {
++    // -- u and v are computed by FastProject() and Project(), no need to call CalcPointGeomInfo()
++    // if (geometry.FastProject (surfind, hp, u, v))
++    //   {
++    //    p = hp;
++    //    return 1;
++    //   }
++    // ProjectPoint (surfind, p); 
++    // return CalcPointGeomInfo (surfind, gi, p); 
++    bool ok;
++    if (gi.trignum > 0)
++      ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
++    else
++      ok = geometry.Project (surfind, hp, gi.u, gi.v);
+       p = hp;
+-      return 1;
+-      }
+-    ProjectPoint (surfind, p); 
+-    return CalcPointGeomInfo (surfind, gi, p); 
++    return ok;
+   }
+@@ -680,7 +694,8 @@
+       if (!geometry.FastProject (surfi, hnewp, u, v))
+         {
+         //  cout << "Fast projection to surface fails! Using OCC projection" << endl;
+-          geometry.Project (surfi, hnewp);
++          // geometry.Project (surfi, hnewp); -- Project() changed for optimization
++          geometry.Project (surfi, hnewp, u, v);
+         }
+       newgi.trignum = 1;
+@@ -689,7 +704,7 @@
+       }
+   
+     newp = hnewp;
+-  }
++  }//; -- to compile with -Wall -pedantic
+   void OCCRefinementSurfaces :: 
+@@ -708,14 +723,18 @@
+     hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
+     newp = hnewp;
+     newgi = ap1;
+-  };
++  }//; -- to compile with -Wall -pedantic
+   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi) const
+   {
+     if (surfi > 0)
+-      geometry.Project (surfi, p);
+-  };
++      //geometry.Project (surfi, p);
++    {
++      double u, v;
++      geometry.Project (surfi, p, u, v);
++    }
++  }//; -- to compile with -Wall -pedantic
+   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi) const
+   {
+@@ -723,9 +742,10 @@
+       if (!geometry.FastProject (surfi, p, gi.u, gi.v))
+       {
+         cout << "Fast projection to surface fails! Using OCC projection" << endl;
+-        geometry.Project (surfi, p);
++          double u, v;
++        geometry.Project (surfi, p, u, v);
++      }
+       }
+-  };
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp
+--- netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp        2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp       2019-11-14 16:56:23.554420177 +0300
+@@ -1,1024 +1,1024 @@
+-#ifdef OCCGEOMETRY\r
+-\r
+-#include <mystdlib.h>\r
+-#include <myadt.hpp>\r
+-#include <linalg.hpp>\r
+-#include <csg.hpp>\r
+-#include <occgeom.hpp>\r
+-\r
+-\r
+-#include <incvis.hpp>\r
+-#include <visual.hpp>\r
+-\r
+-#include "../meshing/bcfunctions.hpp"\r
+-\r
+-#include "vsocc.hpp"\r
+-\r
+-\r
+-extern "C" int Ng_occ_Init (Tcl_Interp * interp);\r
+-\r
+-\r
+-\r
+-namespace netgen\r
+-{\r
+-  extern AutoPtr<NetgenGeometry> ng_geometry;\r
+-  extern AutoPtr<Mesh> mesh;\r
+- \r
+-  char * err_needsoccgeometry = (char*) "This operation needs an OCC geometry";\r
+-  extern char * err_needsmesh;\r
+-  extern char * err_jobrunning;\r
+-\r
+-\r
+-\r
+-                          \r
+-  class OCCGeometryRegister : public GeometryRegister\r
+-  {\r
+-  public:\r
+-    virtual NetgenGeometry * Load (string filename) const;\r
+-    virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;\r
+-\r
+-    virtual void SetParameters (Tcl_Interp * interp) \r
+-    {\r
+-      occparam.resthcloseedgefac =\r
+-      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));\r
+-      occparam.resthcloseedgeenable =\r
+-      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));\r
+-        occparam.resthminedgelen = \r
+-      atof (Tcl_GetVar (interp, "::stloptions.resthminedgelen", 0));\r
+-        occparam.resthminedgelenenable = \r
+-      atoi (Tcl_GetVar (interp, "::stloptions.resthminedgelenenable", 0));\r
+-    }\r
+-  };\r
+-\r
+-\r
+-\r
+-\r
+-  int Ng_SetOCCVisParameters  (ClientData clientData,\r
+-                             Tcl_Interp * interp,\r
+-                             int argc, tcl_const char *argv[])\r
+-  {\r
+-#ifdef OCCGEOMETRY\r
+-    int showvolume;\r
+-      OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
+-\r
+-    showvolume = atoi (Tcl_GetVar (interp, "::occoptions.showvolumenr", 0));\r
+-\r
+-    if (occgeometry)\r
+-      if (showvolume != vispar.occshowvolumenr)\r
+-      {\r
+-        if (showvolume < 0 || showvolume > occgeometry->NrSolids())\r
+-          {\r
+-            char buf[20];\r
+-            sprintf (buf, "%5i", vispar.occshowvolumenr);\r
+-            Tcl_SetVar (interp, "::occoptions.showvolumenr", buf, 0);\r
+-          }\r
+-        else\r
+-          {\r
+-            vispar.occshowvolumenr = showvolume;\r
+-            if (occgeometry)\r
+-              occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-          }\r
+-      }\r
+-    \r
+-    int temp;\r
+-\r
+-    temp = atoi (Tcl_GetVar (interp, "::occoptions.visproblemfaces", 0));\r
+-\r
+-    if ((bool) temp != vispar.occvisproblemfaces)\r
+-      {\r
+-      vispar.occvisproblemfaces = temp;\r
+-      if (occgeometry)\r
+-        occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-      }\r
+-\r
+-    vispar.occshowsurfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));\r
+-    vispar.occshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));\r
+-    vispar.occzoomtohighlightedentity = atoi (Tcl_GetVar (interp, "::occoptions.zoomtohighlightedentity", 0));\r
+-    vispar.occdeflection = pow(10.0,-1-atof (Tcl_GetVar (interp, "::occoptions.deflection", 0)));\r
+-\r
+-#endif\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-#ifdef ACIS\r
+-    vispar.ACISshowfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));\r
+-    vispar.ACISshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));\r
+-    vispar.ACISshowsolidnr = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr", 0));\r
+-    vispar.ACISshowsolidnr2 = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr2", 0));\r
+-\r
+-#endif\r
+-\r
+-\r
+-\r
+-    return TCL_OK;\r
+-  }  \r
+-\r
+-\r
+-\r
+-\r
+-  int Ng_GetOCCData (ClientData clientData,\r
+-                   Tcl_Interp * interp,\r
+-                   int argc, tcl_const char *argv[])\r
+-  {\r
+-#ifdef OCCGEOMETRY\r
+-    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
+-\r
+-    static char buf[1000];\r
+-    buf[0] = 0;\r
+-    stringstream str;\r
+-\r
+-    if (argc >= 2)\r
+-      {\r
+-      if (strcmp (argv[1], "getentities") == 0)\r
+-        {\r
+-          if (occgeometry)\r
+-            {\r
+-              occgeometry->GetTopologyTree(str);\r
+-            }\r
+-        }\r
+-      }\r
+-\r
+-    Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
+-\r
+-#endif\r
+-    return TCL_OK;\r
+-  }\r
+-\r
+-  \r
+-\r
+-  int Ng_OCCCommand (ClientData clientData,\r
+-                   Tcl_Interp * interp,\r
+-                   int argc, tcl_const char *argv[])\r
+-  {\r
+-#ifdef OCCGEOMETRY\r
+-    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
+-\r
+-    stringstream str;\r
+-    if (argc >= 2)\r
+-      {\r
+-      if (strcmp (argv[1], "isoccgeometryloaded") == 0)\r
+-        {\r
+-          if (occgeometry)\r
+-            str << "1 " << flush;\r
+-          else str << "0 " << flush;\r
+-\r
+-          Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
+-        }\r
+-      if (occgeometry)\r
+-        {\r
+-          if (strcmp (argv[1], "buildvisualizationmesh") == 0)\r
+-            {\r
+-              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-            }\r
+-          if (strcmp (argv[1], "mesherror") == 0)\r
+-            {\r
+-              if (occgeometry->ErrorInSurfaceMeshing())\r
+-                str << 1;\r
+-              else\r
+-                str << 0;\r
+-            }\r
+-          if (strcmp (argv[1], "sewfaces") == 0)\r
+-            {\r
+-              cout << "Before operation:" << endl;\r
+-              occgeometry->PrintNrShapes();\r
+-              occgeometry->SewFaces();\r
+-              occgeometry->BuildFMap();\r
+-              cout << endl << "After operation:" << endl;\r
+-              occgeometry->PrintNrShapes();\r
+-              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-            }\r
+-          if (strcmp (argv[1], "makesolid") == 0)\r
+-            {\r
+-              cout << "Before operation:" << endl;\r
+-              occgeometry->PrintNrShapes();\r
+-              occgeometry->MakeSolid();\r
+-              occgeometry->BuildFMap();\r
+-              cout << endl << "After operation:" << endl;\r
+-              occgeometry->PrintNrShapes();\r
+-              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-            }\r
+-          if (strcmp (argv[1], "upgradetopology") == 0)\r
+-            {\r
+-              cout << "Before operation:" << endl;\r
+-              occgeometry->PrintNrShapes();\r
+-              occgeometry->SewFaces();\r
+-              occgeometry->MakeSolid();\r
+-              occgeometry->BuildFMap();\r
+-              cout << endl << "After operation:" << endl;\r
+-              occgeometry->PrintNrShapes();\r
+-              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-            }\r
+-          if (strcmp (argv[1], "shapehealing") == 0)\r
+-            {\r
+-              occgeometry->tolerance =\r
+-                atof (Tcl_GetVar (interp, "::occoptions.tolerance", 0));\r
+-              occgeometry->fixsmalledges =\r
+-                atoi (Tcl_GetVar (interp, "::occoptions.fixsmalledges", 0));\r
+-              occgeometry->fixspotstripfaces =\r
+-                atoi (Tcl_GetVar (interp, "::occoptions.fixspotstripfaces", 0));\r
+-              occgeometry->sewfaces =\r
+-                atoi (Tcl_GetVar (interp, "::occoptions.sewfaces", 0));\r
+-              occgeometry->makesolids =\r
+-                atoi (Tcl_GetVar (interp, "::occoptions.makesolids", 0));\r
+-              occgeometry->splitpartitions =\r
+-                atoi (Tcl_GetVar (interp, "::occoptions.splitpartitions", 0));\r
+-\r
+-              //            cout << "Before operation:" << endl;\r
+-              //            occgeometry->PrintNrShapes();\r
+-              occgeometry->HealGeometry();\r
+-              occgeometry->BuildFMap();\r
+-              //            cout << endl << "After operation:" << endl;\r
+-              //            occgeometry->PrintNrShapes();\r
+-              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-            }\r
+-\r
+-\r
+-          if (strcmp (argv[1], "highlightentity") == 0)\r
+-            {\r
+-              if (strcmp (argv[2], "Face") == 0)\r
+-                {\r
+-                  int nr = atoi (argv[3]);\r
+-                  occgeometry->LowLightAll();\r
+-\r
+-                  occgeometry->fvispar[nr-1].Highlight();\r
+-                  if (vispar.occzoomtohighlightedentity)\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
+-                  else\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-              if (strcmp (argv[2], "Shell") == 0)\r
+-                {\r
+-                  int nr = atoi (argv[3]);\r
+-                  occgeometry->LowLightAll();\r
+-\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                      occgeometry->fvispar[i-1].Highlight();\r
+-                    }\r
+-                  if (vispar.occzoomtohighlightedentity)\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
+-                  else\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-              if (strcmp (argv[2], "Solid") == 0)\r
+-                {\r
+-                  int nr = atoi (argv[3]);\r
+-                  occgeometry->LowLightAll();\r
+-\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                      occgeometry->fvispar[i-1].Highlight();\r
+-                    }\r
+-                  if (vispar.occzoomtohighlightedentity)\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
+-                  else\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-              /*\r
+-                if (strcmp (argv[2], "CompSolid") == 0)\r
+-                {\r
+-                int nr = atoi (argv[3]);\r
+-                occgeometry->LowLightAll();\r
+-\r
+-                TopExp_Explorer exp;\r
+-                for (exp.Init (occgeometry->cmap(nr), TopAbs_FACE);\r
+-                exp.More(); exp.Next())\r
+-                {\r
+-                int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                occgeometry->fvispar[i-1].Highlight();\r
+-                }\r
+-                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-              */\r
+-\r
+-              if (strcmp (argv[2], "Edge") == 0)\r
+-                {\r
+-                  int nr = atoi (argv[3]);\r
+-                  occgeometry->LowLightAll();\r
+-\r
+-                  occgeometry->evispar[nr-1].Highlight();\r
+-                  if (vispar.occzoomtohighlightedentity)\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
+-                  else\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-              if (strcmp (argv[2], "Wire") == 0)\r
+-                {\r
+-                  int nr = atoi (argv[3]);\r
+-                  occgeometry->LowLightAll();\r
+-\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));\r
+-                      occgeometry->evispar[i-1].Highlight();\r
+-                    }\r
+-                  if (vispar.occzoomtohighlightedentity)\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
+-                  else\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-\r
+-              if (strcmp (argv[2], "Vertex") == 0)\r
+-                {\r
+-                  int nr = atoi (argv[3]);\r
+-                  occgeometry->LowLightAll();\r
+-\r
+-                  occgeometry->vvispar[nr-1].Highlight();\r
+-                  if (vispar.occzoomtohighlightedentity)\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
+-                  else\r
+-                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-                }\r
+-\r
+-            }\r
+-\r
+-\r
+-\r
+-          if (strcmp (argv[1], "show") == 0)\r
+-            {\r
+-              int nr = atoi (argv[3]);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-\r
+-              if (strcmp (argv[2], "Face") == 0)\r
+-                {\r
+-                  occgeometry->fvispar[nr-1].Show();\r
+-                }\r
+-              if (strcmp (argv[2], "Shell") == 0)\r
+-                {\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                      occgeometry->fvispar[i-1].Show();\r
+-                    }\r
+-                }\r
+-              if (strcmp (argv[2], "Solid") == 0)\r
+-                {\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                      occgeometry->fvispar[i-1].Show();\r
+-                    }\r
+-                }\r
+-              if (strcmp (argv[2], "Edge") == 0)\r
+-                {\r
+-                  occgeometry->evispar[nr-1].Show();\r
+-                }\r
+-              if (strcmp (argv[2], "Wire") == 0)\r
+-                {\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));\r
+-                      occgeometry->evispar[i-1].Show();\r
+-                    }\r
+-                }\r
+-            }\r
+-\r
+-\r
+-          if (strcmp (argv[1], "hide") == 0)\r
+-            {\r
+-              int nr = atoi (argv[3]);\r
+-              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-\r
+-              if (strcmp (argv[2], "Face") == 0)\r
+-                {\r
+-                  occgeometry->fvispar[nr-1].Hide();\r
+-                }\r
+-              if (strcmp (argv[2], "Shell") == 0)\r
+-                {\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                      occgeometry->fvispar[i-1].Hide();\r
+-                    }\r
+-                }\r
+-              if (strcmp (argv[2], "Solid") == 0)\r
+-                {\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
+-                      occgeometry->fvispar[i-1].Hide();\r
+-                    }\r
+-                }\r
+-              if (strcmp (argv[2], "Edge") == 0)\r
+-                {\r
+-                  occgeometry->evispar[nr-1].Hide();\r
+-                }\r
+-              if (strcmp (argv[2], "Wire") == 0)\r
+-                {\r
+-                  TopExp_Explorer exp;\r
+-                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);\r
+-                       exp.More(); exp.Next())\r
+-                    {\r
+-                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));\r
+-                      occgeometry->evispar[i-1].Hide();\r
+-                    }\r
+-                }\r
+-            }\r
+-\r
+-\r
+-\r
+-          if (strcmp (argv[1], "findsmallentities") == 0)\r
+-            {\r
+-              stringstream str("");\r
+-              occgeometry->CheckIrregularEntities(str);\r
+-              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
+-            }\r
+-          if (strcmp (argv[1], "getunmeshedfaceinfo") == 0)\r
+-            {\r
+-              occgeometry->GetUnmeshedFaceInfo(str);\r
+-              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
+-            }\r
+-          if (strcmp (argv[1], "getnotdrawablefaces") == 0)\r
+-            {\r
+-              occgeometry->GetNotDrawableFaces(str);\r
+-              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
+-            }\r
+-          if (strcmp (argv[1], "redrawstatus") == 0)\r
+-            {\r
+-              int i = atoi (argv[2]);\r
+-              occgeometry->changed = i;\r
+-            }\r
+-          if (strcmp (argv[1], "swaporientation") == 0)\r
+-            {\r
+-              IGESControl_Writer writer("millimeters", 1);\r
+-              writer.AddShape (occgeometry->shape);\r
+-              writer.Write ("1.igs");\r
+-              /*\r
+-                int nr = atoi (argv[3]);\r
+-\r
+-                //          const_cast<TopoDS_Shape&> (occgeometry->fmap(nr)).Reverse();\r
+-\r
+-                Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
+-                rebuild->Apply(occgeometry->shape);\r
+-\r
+-                TopoDS_Shape sh;\r
+-\r
+-                //          if (strcmp (argv[2], "CompSolid") == 0) sh = occgeometry->cmap(nr);\r
+-                if (strcmp (argv[2], "Solid") == 0) sh = occgeometry->somap(nr);\r
+-                if (strcmp (argv[2], "Shell") == 0) sh = occgeometry->shmap(nr);\r
+-                if (strcmp (argv[2], "Face") == 0) sh = occgeometry->fmap(nr);\r
+-                if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);\r
+-                if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);\r
+-\r
+-                rebuild->Replace(sh, sh.Reversed(), Standard_False);\r
+-\r
+-                TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);\r
+-                occgeometry->shape = newshape;\r
+-\r
+-                occgeometry->BuildFMap();\r
+-                occgeometry->BuildVisualizationMesh();\r
+-                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-              */\r
+-            }\r
+-          if (strcmp (argv[1], "marksingular") == 0)\r
+-            {\r
+-              int nr = atoi (argv[3]);\r
+-              cout << "marking " << argv[2] << " " << nr << endl;\r
+-              char buf[2]; buf[0] = '0'; buf[1] = 0;\r
+-              bool sing = false;\r
+-              if (strcmp (argv[2], "Face") == 0)\r
+-                sing = occgeometry->fsingular[nr-1] = !occgeometry->fsingular[nr-1];\r
+-              if (strcmp (argv[2], "Edge") == 0)\r
+-                sing = occgeometry->esingular[nr-1] = !occgeometry->esingular[nr-1];\r
+-              if (strcmp (argv[2], "Vertex") == 0)\r
+-                sing = occgeometry->vsingular[nr-1] = !occgeometry->vsingular[nr-1];\r
+-\r
+-              if (sing) buf[0] = '1';\r
+-\r
+-                Tcl_SetVar (interp, "::ismarkedsingular", buf, 0);\r
+-\r
+-              stringstream str;\r
+-              occgeometry->GetTopologyTree (str);\r
+-\r
+-              char* cstr = (char*)str.str().c_str();\r
+-\r
+-              (*testout) << cstr << endl;\r
+-\r
+-              char helpstr[1000];\r
+-\r
+-              while (strchr (cstr, '}'))\r
+-                {\r
+-                  strncpy (helpstr, cstr+2, strlen(strchr(cstr+2, '}')));\r
+-                  (*testout) << "***" << cstr << "***" << endl;\r
+-                  cstr = strchr (cstr, '}');\r
+-                } \r
+-            }\r
+-        }\r
+-      }\r
+-\r
+-#endif\r
+-    return TCL_OK;\r
+-  }\r
+-\r
+-\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-  /*\r
+-  void OCCConstructGeometry (OCCGeometry & geom);\r
+-\r
+-  int Ng_OCCConstruction (ClientData clientData,\r
+-                        Tcl_Interp * interp,\r
+-                        int argc, tcl_const char *argv[])\r
+-  {\r
+-    if (occgeometry)\r
+-      OCCConstructGeometry (*occgeometry);\r
+-    return TCL_OK;\r
+-  }\r
+-  */\r
+-#endif\r
+-\r
+-\r
+-\r
+-\r
+-  // Philippose - 30/01/2009\r
+-  // TCL interface function for the Local Face Mesh size\r
+-  // definition functionality\r
+-  int Ng_SurfaceMeshSize (ClientData clientData,\r
+-                                  Tcl_Interp * interp,\r
+-                                  int argc, tcl_const char *argv[])\r
+-  {\r
+-#ifdef OCCGEOMETRY\r
+-\r
+-    static char buf[100];\r
+-\r
+-    if (argc < 2)\r
+-    {\r
+-         Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize needs arguments", TCL_STATIC);\r
+-         return TCL_ERROR;\r
+-    }\r
+-\r
+-    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
+-    if (!occgeometry)\r
+-    {\r
+-      Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);\r
+-         return TCL_ERROR;\r
+-    }\r
+-\r
+-    // Update the face mesh sizes to reflect the global maximum mesh size\r
+-    for(int i = 1; i <= occgeometry->NrFaces(); i++)\r
+-    {\r
+-           if(!occgeometry->GetFaceMaxhModified(i))\r
+-           {\r
+-              occgeometry->SetFaceMaxH(i, mparam.maxh);\r
+-           }   \r
+-    }\r
+-\r
+-    if (strcmp (argv[1], "setsurfms") == 0)\r
+-    {\r
+-         int facenr = atoi (argv[2]);\r
+-         double surfms = atof (argv[3]);\r
+-         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())\r
+-           occgeometry->SetFaceMaxH(facenr, surfms);\r
+-\r
+-    }\r
+-\r
+-    if (strcmp (argv[1], "setall") == 0)\r
+-    {\r
+-         double surfms = atof (argv[2]);\r
+-         if (occgeometry)\r
+-         {\r
+-           int nrFaces = occgeometry->NrFaces();\r
+-           for (int i = 1; i <= nrFaces; i++)\r
+-            occgeometry->SetFaceMaxH(i, surfms);\r
+-         }\r
+-    }\r
+-\r
+-    if (strcmp (argv[1], "getsurfms") == 0)\r
+-    {\r
+-         int facenr = atoi (argv[2]);\r
+-         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())\r
+-         {\r
+-           sprintf (buf, "%5.2f", occgeometry->GetFaceMaxH(facenr));\r
+-         }\r
+-         else\r
+-         {\r
+-           sprintf (buf, "%5.2f", mparam.maxh);\r
+-         }\r
+-         Tcl_SetResult (interp, buf, TCL_STATIC);\r
+-    }\r
+-\r
+-    if (strcmp (argv[1], "getactive") == 0)\r
+-    {\r
+-         sprintf (buf, "%d", occgeometry->SelectedFace());\r
+-         Tcl_SetResult (interp, buf, TCL_STATIC);\r
+-    }\r
+-\r
+-    if (strcmp (argv[1], "setactive") == 0)\r
+-    {\r
+-         int facenr = atoi (argv[2]);\r
+-         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())\r
+-         {\r
+-           occgeometry->SetSelectedFace (facenr);\r
+-\r
+-        occgeometry->LowLightAll();\r
+-        occgeometry->fvispar[facenr-1].Highlight();\r
+-        occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
+-         }\r
+-    }\r
+-\r
+-    if (strcmp (argv[1], "getnfd") == 0)\r
+-    {\r
+-         if (occgeometry)\r
+-           sprintf (buf, "%d", occgeometry->NrFaces());\r
+-         else\r
+-           sprintf (buf, "0");\r
+-         Tcl_SetResult (interp, buf, TCL_STATIC);\r
+-    }\r
+-    return TCL_OK;\r
+-#else // No OCCGEOMETRY \r
+-\r
+-    Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);\r
+-    return TCL_ERROR;\r
+-    \r
+-#endif // OCCGEOMETRY\r
+-  }\r
+-\r
+-\r
+-\r
+-  // Philippose - 25/07/2010\r
+-  // TCL interface function for extracting and eventually \r
+-  // setting or editing the current colours present in the mesh\r
+-  int Ng_CurrentFaceColours (ClientData clientData,\r
+-                             Tcl_Interp * interp,\r
+-                             int argc, tcl_const char *argv[])\r
+-  {\r
+-     if(argc < 1)\r
+-     {\r
+-        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours needs arguments", TCL_STATIC);\r
+-        return TCL_ERROR;\r
+-     }\r
+-\r
+-     if(!mesh.Ptr())\r
+-     {\r
+-        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);\r
+-           return TCL_ERROR;\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "getcolours") == 0)\r
+-     {\r
+-        stringstream outVar;\r
+-        Array<Vec3d> face_colours;\r
+-        GetFaceColours(*mesh, face_colours);\r
+-\r
+-        for(int i = 0; i < face_colours.Size();i++)\r
+-        {\r
+-           outVar << "{ " << face_colours[i].X(1)\r
+-                  << " "  << face_colours[i].X(2)\r
+-                  << " "  << face_colours[i].X(3)\r
+-                  << " } ";\r
+-        }\r
+-\r
+-        tcl_const char * valuevar = argv[2];\r
+-        Tcl_SetVar  (interp, valuevar, (char*)outVar.str().c_str(), 0);\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "showalso") == 0)\r
+-     {\r
+-        Array<Vec3d> face_colours;\r
+-        GetFaceColours(*mesh,face_colours);\r
+-\r
+-        int colourind = atoi (argv[2]);\r
+-\r
+-        for(int i = 1; i <= mesh->GetNFD(); i++)\r
+-        {\r
+-           Array<SurfaceElementIndex> surfElems;\r
+-           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
+-\r
+-           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
+-           {\r
+-              for(int j = 0; j < surfElems.Size(); j++)\r
+-              {\r
+-                 mesh->SurfaceElement(surfElems[j]).Visible(1);\r
+-              }\r
+-           }\r
+-        }\r
+-\r
+-        mesh->SetNextTimeStamp();\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "hidealso") == 0)\r
+-     {\r
+-        Array<Vec3d> face_colours;\r
+-        GetFaceColours(*mesh,face_colours);\r
+-\r
+-        int colourind = atoi (argv[2]);\r
+-\r
+-        for(int i = 1; i <= mesh->GetNFD(); i++)\r
+-        {\r
+-           Array<SurfaceElementIndex> surfElems;\r
+-           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
+-\r
+-           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
+-           {\r
+-              for(int j = 0; j < surfElems.Size(); j++)\r
+-              {\r
+-                 mesh->SurfaceElement(surfElems[j]).Visible(0);\r
+-              }\r
+-           }\r
+-        }\r
+-\r
+-        mesh->SetNextTimeStamp();\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "showonly") == 0)\r
+-     {\r
+-        Array<Vec3d> face_colours;\r
+-        GetFaceColours(*mesh,face_colours);\r
+-\r
+-        int colourind = atoi (argv[2]);\r
+-\r
+-        for(int i = 1; i <= mesh->GetNFD(); i++)\r
+-        {\r
+-           Array<SurfaceElementIndex> surfElems;\r
+-           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
+-\r
+-           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
+-           {\r
+-              for(int j = 0; j < surfElems.Size(); j++)\r
+-              {\r
+-                 mesh->SurfaceElement(surfElems[j]).Visible(1);\r
+-              }\r
+-           }\r
+-           else\r
+-           {\r
+-              for(int j = 0; j < surfElems.Size(); j++)\r
+-              {\r
+-                 mesh->SurfaceElement(surfElems[j]).Visible(0);\r
+-              }\r
+-           }\r
+-        }\r
+-\r
+-        mesh->SetNextTimeStamp();\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "hideonly") == 0)\r
+-     {\r
+-        Array<Vec3d> face_colours;\r
+-        GetFaceColours(*mesh,face_colours);\r
+-\r
+-        int colourind = atoi (argv[2]);\r
+-\r
+-        for(int i = 1; i <= mesh->GetNFD(); i++)\r
+-        {\r
+-           Array<SurfaceElementIndex> surfElems;\r
+-           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
+-\r
+-           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
+-           {\r
+-              for(int j = 0; j < surfElems.Size(); j++)\r
+-              {\r
+-                 mesh->SurfaceElement(surfElems[j]).Visible(0);\r
+-              }\r
+-           }\r
+-           else\r
+-           {\r
+-              for(int j = 0; j < surfElems.Size(); j++)\r
+-              {\r
+-                 mesh->SurfaceElement(surfElems[j]).Visible(1);\r
+-              }\r
+-           }\r
+-        }\r
+-\r
+-        mesh->SetNextTimeStamp();\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "showall") == 0)\r
+-     {\r
+-        for(int i = 1; i <= mesh->GetNSE(); i++)\r
+-        {\r
+-           mesh->SurfaceElement(i).Visible(1);\r
+-        }\r
+-\r
+-        mesh->SetNextTimeStamp();\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "hideall") == 0)\r
+-     {\r
+-        for(int i = 1; i <= mesh->GetNSE(); i++)\r
+-        {\r
+-           mesh->SurfaceElement(i).Visible(0);\r
+-        }\r
+-\r
+-        mesh->SetNextTimeStamp();\r
+-     }\r
+-\r
+-     return TCL_OK;\r
+-  }\r
+-\r
+-\r
+-\r
+-\r
+-  // Philippose - 10/03/2009\r
+-  // TCL interface function for the Automatic Colour-based\r
+-  // definition of boundary conditions for OCC Geometry\r
+-  int Ng_AutoColourBcProps (ClientData clientData,\r
+-                                    Tcl_Interp * interp,\r
+-                                    int argc, tcl_const char *argv[])\r
+-  {\r
+-     if(argc < 1)\r
+-     {\r
+-        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps needs arguments", TCL_STATIC);\r
+-        return TCL_ERROR;\r
+-     }\r
+-\r
+-     if(!mesh.Ptr())\r
+-     {\r
+-        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);\r
+-           return TCL_ERROR;\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "auto") == 0)\r
+-     {\r
+-        AutoColourBcProps(*mesh, 0);\r
+-     }\r
+-\r
+-     if(strcmp(argv[1], "profile") == 0)\r
+-     {\r
+-        AutoColourBcProps(*mesh, argv[2]);\r
+-     }\r
+-\r
+-     return TCL_OK;\r
+-  }\r
+-\r
+-\r
+-  int Ng_SetOCCParameters  (ClientData clientData,\r
+-                          Tcl_Interp * interp,\r
+-                          int argc, tcl_const char *argv[])\r
+-  {\r
+-    OCCGeometryRegister reg;\r
+-    reg.SetParameters (interp);\r
+-    /*\r
+-    occparam.resthcloseedgefac =\r
+-      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));\r
+-\r
+-    occparam.resthcloseedgeenable =\r
+-      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));\r
+-    */\r
+-    return TCL_OK;\r
+-  }\r
+-\r
+-\r
+-\r
+-\r
+-  NetgenGeometry *  OCCGeometryRegister :: Load (string filename) const\r
+-  {\r
+-    const char * lgfilename = filename.c_str();\r
+-\r
+-\r
+-    /*\r
+-    if (strcmp (&cfilename[strlen(cfilename)-3], "geo") == 0)\r
+-      {\r
+-      PrintMessage (1, "Load OCCG geometry file ", cfilename);\r
+-      \r
+-      extern OCCGeometry * ParseOCCG (istream & istr);\r
+-\r
+-      ifstream infile(cfilename);\r
+-\r
+-      OCCGeometry * hgeom = ParseOCCG (infile);\r
+-      if (!hgeom)\r
+-        throw NgException ("geo-file should start with 'algebraic3d'");\r
+-\r
+-      hgeom -> FindIdenticSurfaces(1e-8 * hgeom->MaxSize()); \r
+-      return hgeom;\r
+-      }\r
+-    */\r
+-\r
+-\r
+-    if ((strcmp (&lgfilename[strlen(lgfilename)-4], "iges") == 0) ||\r
+-      (strcmp (&lgfilename[strlen(lgfilename)-3], "igs") == 0) ||\r
+-      (strcmp (&lgfilename[strlen(lgfilename)-3], "IGS") == 0) ||\r
+-      (strcmp (&lgfilename[strlen(lgfilename)-4], "IGES") == 0))\r
+-      {\r
+-      PrintMessage (1, "Load IGES geometry file ", lgfilename);\r
+-      OCCGeometry * occgeometry = LoadOCC_IGES (lgfilename);\r
+-      return occgeometry;\r
+-      }\r
+-\r
+-    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "step") == 0) ||\r
+-                   (strcmp (&lgfilename[strlen(lgfilename)-3], "stp") == 0) ||\r
+-                   (strcmp (&lgfilename[strlen(lgfilename)-3], "STP") == 0) ||\r
+-                   (strcmp (&lgfilename[strlen(lgfilename)-4], "STEP") == 0))\r
+-      {\r
+-      PrintMessage (1, "Load STEP geometry file ", lgfilename);\r
+-      OCCGeometry * occgeometry = LoadOCC_STEP (lgfilename);\r
+-      return occgeometry;    \r
+-      }\r
+-    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "brep") == 0) ||\r
+-           (strcmp (&lgfilename[strlen(lgfilename)-4], "Brep") == 0) ||\r
+-           (strcmp (&lgfilename[strlen(lgfilename)-4], "BREP") == 0))\r
+-      {\r
+-      PrintMessage (1, "Load BREP geometry file ", lgfilename);\r
+-      OCCGeometry * occgeometry = LoadOCC_BREP (lgfilename);\r
+-      return occgeometry;\r
+-      }\r
+-    \r
+-    return NULL;\r
+-  }\r
+-\r
+-\r
+-  static VisualSceneOCCGeometry vsoccgeom;\r
+-\r
+-  VisualScene * OCCGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const\r
+-  {\r
+-    OCCGeometry * geometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
+-    if (geometry)\r
+-      {\r
+-      vsoccgeom.SetGeometry (geometry);\r
+-      return &vsoccgeom;\r
+-      }\r
+-    return NULL;\r
+-  }\r
+-\r
+-\r
+-\r
+-}\r
+-\r
+-\r
+-\r
+-using namespace netgen;\r
+-\r
+-int Ng_occ_Init (Tcl_Interp * interp)\r
+-{\r
+-  geometryregister.Append (new OCCGeometryRegister);\r
+-\r
+-\r
+-    Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",\r
+-                     Ng_SetOCCVisParameters,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-    Tcl_CreateCommand (interp, "Ng_GetOCCData",\r
+-                     Ng_GetOCCData,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-    /*\r
+-#ifdef OCCGEOMETRY\r
+-    Tcl_CreateCommand (interp, "Ng_OCCConstruction",\r
+-                     Ng_OCCConstruction,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-#endif\r
+-    */\r
+-\r
+-    Tcl_CreateCommand (interp, "Ng_OCCCommand",\r
+-                     Ng_OCCCommand,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-\r
+-    Tcl_CreateCommand (interp, "Ng_SetOCCParameters", Ng_SetOCCParameters,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-\r
+-\r
+-    // Philippose - 30/01/2009\r
+-    // Register the TCL Interface Command for local face mesh size\r
+-    // definition\r
+-    Tcl_CreateCommand (interp, "Ng_SurfaceMeshSize", Ng_SurfaceMeshSize,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-    Tcl_CreateCommand (interp, "Ng_AutoColourBcProps", Ng_AutoColourBcProps,\r
+-                     (ClientData)NULL,\r
+-                     (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-    // Philippose - 25/07/2010\r
+-    // Register the TCL Interface Command for handling the face colours \r
+-    // present in the mesh\r
+-    Tcl_CreateCommand(interp, "Ng_CurrentFaceColours", Ng_CurrentFaceColours,\r
+-                      (ClientData)NULL,\r
+-                      (Tcl_CmdDeleteProc*) NULL);\r
+-\r
+-\r
+-  return TCL_OK;\r
+-}\r
+-\r
+-#endif\r
+-\r
++#ifdef OCCGEOMETRY
++
++#include <mystdlib.h>
++#include <myadt.hpp>
++#include <linalg.hpp>
++#include <csg.hpp>
++#include <occgeom.hpp>
++
++
++#include <incvis.hpp>
++#include <visual.hpp>
++
++#include "../meshing/bcfunctions.hpp"
++
++#include "vsocc.hpp"
++
++
++extern "C" int Ng_occ_Init (Tcl_Interp * interp);
++
++
++
++namespace netgen
++{
++  extern AutoPtr<NetgenGeometry> ng_geometry;
++  extern AutoPtr<Mesh> mesh;
++ 
++  char * err_needsoccgeometry = (char*) "This operation needs an OCC geometry";
++  extern char * err_needsmesh;
++  extern char * err_jobrunning;
++
++
++
++                          
++  class OCCGeometryRegister : public GeometryRegister
++  {
++  public:
++    virtual NetgenGeometry * Load (string filename) const;
++    virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;
++
++    virtual void SetParameters (Tcl_Interp * interp) 
++    {
++      occparam.resthcloseedgefac =
++      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
++      occparam.resthcloseedgeenable =
++      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
++        occparam.resthminedgelen = 
++      atof (Tcl_GetVar (interp, "::stloptions.resthminedgelen", 0));
++        occparam.resthminedgelenenable = 
++      atoi (Tcl_GetVar (interp, "::stloptions.resthminedgelenenable", 0));
++    }
++  };
++
++
++
++
++  int Ng_SetOCCVisParameters  (ClientData clientData,
++                             Tcl_Interp * interp,
++                             int argc, tcl_const char *argv[])
++  {
++#ifdef OCCGEOMETRY
++    int showvolume;
++      OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
++
++    showvolume = atoi (Tcl_GetVar (interp, "::occoptions.showvolumenr", 0));
++
++    if (occgeometry)
++      if (showvolume != vispar.occshowvolumenr)
++      {
++        if (showvolume < 0 || showvolume > occgeometry->NrSolids())
++          {
++            char buf[20];
++            sprintf (buf, "%5i", vispar.occshowvolumenr);
++            Tcl_SetVar (interp, "::occoptions.showvolumenr", buf, 0);
++          }
++        else
++          {
++            vispar.occshowvolumenr = showvolume;
++            if (occgeometry)
++              occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++          }
++      }
++    
++    int temp;
++
++    temp = atoi (Tcl_GetVar (interp, "::occoptions.visproblemfaces", 0));
++
++    if ((bool) temp != vispar.occvisproblemfaces)
++      {
++      vispar.occvisproblemfaces = temp;
++      if (occgeometry)
++        occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++      }
++
++    vispar.occshowsurfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
++    vispar.occshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
++    vispar.occzoomtohighlightedentity = atoi (Tcl_GetVar (interp, "::occoptions.zoomtohighlightedentity", 0));
++    vispar.occdeflection = pow(10.0,-1-atof (Tcl_GetVar (interp, "::occoptions.deflection", 0)));
++
++#endif
++
++
++
++
++
++#ifdef ACIS
++    vispar.ACISshowfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
++    vispar.ACISshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
++    vispar.ACISshowsolidnr = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr", 0));
++    vispar.ACISshowsolidnr2 = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr2", 0));
++
++#endif
++
++
++
++    return TCL_OK;
++  }  
++
++
++
++
++  int Ng_GetOCCData (ClientData clientData,
++                   Tcl_Interp * interp,
++                   int argc, tcl_const char *argv[])
++  {
++#ifdef OCCGEOMETRY
++    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
++
++    static char buf[1000];
++    buf[0] = 0;
++    stringstream str;
++
++    if (argc >= 2)
++      {
++      if (strcmp (argv[1], "getentities") == 0)
++        {
++          if (occgeometry)
++            {
++              occgeometry->GetTopologyTree(str);
++            }
++        }
++      }
++
++    Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
++
++#endif
++    return TCL_OK;
++  }
++
++  
++
++  int Ng_OCCCommand (ClientData clientData,
++                   Tcl_Interp * interp,
++                   int argc, tcl_const char *argv[])
++  {
++#ifdef OCCGEOMETRY
++    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
++
++    stringstream str;
++    if (argc >= 2)
++      {
++      if (strcmp (argv[1], "isoccgeometryloaded") == 0)
++        {
++          if (occgeometry)
++            str << "1 " << flush;
++          else str << "0 " << flush;
++
++          Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
++        }
++      if (occgeometry)
++        {
++          if (strcmp (argv[1], "buildvisualizationmesh") == 0)
++            {
++              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++            }
++          if (strcmp (argv[1], "mesherror") == 0)
++            {
++              if (occgeometry->ErrorInSurfaceMeshing())
++                str << 1;
++              else
++                str << 0;
++            }
++          if (strcmp (argv[1], "sewfaces") == 0)
++            {
++              cout << "Before operation:" << endl;
++              occgeometry->PrintNrShapes();
++              occgeometry->SewFaces();
++              occgeometry->BuildFMap();
++              cout << endl << "After operation:" << endl;
++              occgeometry->PrintNrShapes();
++              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++            }
++          if (strcmp (argv[1], "makesolid") == 0)
++            {
++              cout << "Before operation:" << endl;
++              occgeometry->PrintNrShapes();
++              occgeometry->MakeSolid();
++              occgeometry->BuildFMap();
++              cout << endl << "After operation:" << endl;
++              occgeometry->PrintNrShapes();
++              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++            }
++          if (strcmp (argv[1], "upgradetopology") == 0)
++            {
++              cout << "Before operation:" << endl;
++              occgeometry->PrintNrShapes();
++              occgeometry->SewFaces();
++              occgeometry->MakeSolid();
++              occgeometry->BuildFMap();
++              cout << endl << "After operation:" << endl;
++              occgeometry->PrintNrShapes();
++              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++            }
++          if (strcmp (argv[1], "shapehealing") == 0)
++            {
++              occgeometry->tolerance =
++                atof (Tcl_GetVar (interp, "::occoptions.tolerance", 0));
++              occgeometry->fixsmalledges =
++                atoi (Tcl_GetVar (interp, "::occoptions.fixsmalledges", 0));
++              occgeometry->fixspotstripfaces =
++                atoi (Tcl_GetVar (interp, "::occoptions.fixspotstripfaces", 0));
++              occgeometry->sewfaces =
++                atoi (Tcl_GetVar (interp, "::occoptions.sewfaces", 0));
++              occgeometry->makesolids =
++                atoi (Tcl_GetVar (interp, "::occoptions.makesolids", 0));
++              occgeometry->splitpartitions =
++                atoi (Tcl_GetVar (interp, "::occoptions.splitpartitions", 0));
++
++              //            cout << "Before operation:" << endl;
++              //            occgeometry->PrintNrShapes();
++              occgeometry->HealGeometry();
++              occgeometry->BuildFMap();
++              //            cout << endl << "After operation:" << endl;
++              //            occgeometry->PrintNrShapes();
++              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++            }
++
++
++          if (strcmp (argv[1], "highlightentity") == 0)
++            {
++              if (strcmp (argv[2], "Face") == 0)
++                {
++                  int nr = atoi (argv[3]);
++                  occgeometry->LowLightAll();
++
++                  occgeometry->fvispar[nr-1].Highlight();
++                  if (vispar.occzoomtohighlightedentity)
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
++                  else
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++              if (strcmp (argv[2], "Shell") == 0)
++                {
++                  int nr = atoi (argv[3]);
++                  occgeometry->LowLightAll();
++
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                      occgeometry->fvispar[i-1].Highlight();
++                    }
++                  if (vispar.occzoomtohighlightedentity)
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
++                  else
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++              if (strcmp (argv[2], "Solid") == 0)
++                {
++                  int nr = atoi (argv[3]);
++                  occgeometry->LowLightAll();
++
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                      occgeometry->fvispar[i-1].Highlight();
++                    }
++                  if (vispar.occzoomtohighlightedentity)
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
++                  else
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++              /*
++                if (strcmp (argv[2], "CompSolid") == 0)
++                {
++                int nr = atoi (argv[3]);
++                occgeometry->LowLightAll();
++
++                TopExp_Explorer exp;
++                for (exp.Init (occgeometry->cmap(nr), TopAbs_FACE);
++                exp.More(); exp.Next())
++                {
++                int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                occgeometry->fvispar[i-1].Highlight();
++                }
++                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++              */
++
++              if (strcmp (argv[2], "Edge") == 0)
++                {
++                  int nr = atoi (argv[3]);
++                  occgeometry->LowLightAll();
++
++                  occgeometry->evispar[nr-1].Highlight();
++                  if (vispar.occzoomtohighlightedentity)
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
++                  else
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++              if (strcmp (argv[2], "Wire") == 0)
++                {
++                  int nr = atoi (argv[3]);
++                  occgeometry->LowLightAll();
++
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
++                      occgeometry->evispar[i-1].Highlight();
++                    }
++                  if (vispar.occzoomtohighlightedentity)
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
++                  else
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++
++              if (strcmp (argv[2], "Vertex") == 0)
++                {
++                  int nr = atoi (argv[3]);
++                  occgeometry->LowLightAll();
++
++                  occgeometry->vvispar[nr-1].Highlight();
++                  if (vispar.occzoomtohighlightedentity)
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
++                  else
++                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++                }
++
++            }
++
++
++
++          if (strcmp (argv[1], "show") == 0)
++            {
++              int nr = atoi (argv[3]);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++
++              if (strcmp (argv[2], "Face") == 0)
++                {
++                  occgeometry->fvispar[nr-1].Show();
++                }
++              if (strcmp (argv[2], "Shell") == 0)
++                {
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                      occgeometry->fvispar[i-1].Show();
++                    }
++                }
++              if (strcmp (argv[2], "Solid") == 0)
++                {
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                      occgeometry->fvispar[i-1].Show();
++                    }
++                }
++              if (strcmp (argv[2], "Edge") == 0)
++                {
++                  occgeometry->evispar[nr-1].Show();
++                }
++              if (strcmp (argv[2], "Wire") == 0)
++                {
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
++                      occgeometry->evispar[i-1].Show();
++                    }
++                }
++            }
++
++
++          if (strcmp (argv[1], "hide") == 0)
++            {
++              int nr = atoi (argv[3]);
++              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++
++              if (strcmp (argv[2], "Face") == 0)
++                {
++                  occgeometry->fvispar[nr-1].Hide();
++                }
++              if (strcmp (argv[2], "Shell") == 0)
++                {
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                      occgeometry->fvispar[i-1].Hide();
++                    }
++                }
++              if (strcmp (argv[2], "Solid") == 0)
++                {
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
++                      occgeometry->fvispar[i-1].Hide();
++                    }
++                }
++              if (strcmp (argv[2], "Edge") == 0)
++                {
++                  occgeometry->evispar[nr-1].Hide();
++                }
++              if (strcmp (argv[2], "Wire") == 0)
++                {
++                  TopExp_Explorer exp;
++                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
++                       exp.More(); exp.Next())
++                    {
++                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
++                      occgeometry->evispar[i-1].Hide();
++                    }
++                }
++            }
++
++
++
++          if (strcmp (argv[1], "findsmallentities") == 0)
++            {
++              stringstream str("");
++              occgeometry->CheckIrregularEntities(str);
++              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
++            }
++          if (strcmp (argv[1], "getunmeshedfaceinfo") == 0)
++            {
++              occgeometry->GetUnmeshedFaceInfo(str);
++              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
++            }
++          if (strcmp (argv[1], "getnotdrawablefaces") == 0)
++            {
++              occgeometry->GetNotDrawableFaces(str);
++              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
++            }
++          if (strcmp (argv[1], "redrawstatus") == 0)
++            {
++              int i = atoi (argv[2]);
++              occgeometry->changed = i;
++            }
++          if (strcmp (argv[1], "swaporientation") == 0)
++            {
++              IGESControl_Writer writer("millimeters", 1);
++              writer.AddShape (occgeometry->shape);
++              writer.Write ("1.igs");
++              /*
++                int nr = atoi (argv[3]);
++
++                //          const_cast<TopoDS_Shape&> (occgeometry->fmap(nr)).Reverse();
++
++                Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
++                rebuild->Apply(occgeometry->shape);
++
++                TopoDS_Shape sh;
++
++                //          if (strcmp (argv[2], "CompSolid") == 0) sh = occgeometry->cmap(nr);
++                if (strcmp (argv[2], "Solid") == 0) sh = occgeometry->somap(nr);
++                if (strcmp (argv[2], "Shell") == 0) sh = occgeometry->shmap(nr);
++                if (strcmp (argv[2], "Face") == 0) sh = occgeometry->fmap(nr);
++                if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);
++                if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);
++
++                rebuild->Replace(sh, sh.Reversed());
++
++                TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);
++                occgeometry->shape = newshape;
++
++                occgeometry->BuildFMap();
++                occgeometry->BuildVisualizationMesh();
++                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++              */
++            }
++          if (strcmp (argv[1], "marksingular") == 0)
++            {
++              int nr = atoi (argv[3]);
++              cout << "marking " << argv[2] << " " << nr << endl;
++              char buf[2]; buf[0] = '0'; buf[1] = 0;
++              bool sing = false;
++              if (strcmp (argv[2], "Face") == 0)
++                sing = occgeometry->fsingular[nr-1] = !occgeometry->fsingular[nr-1];
++              if (strcmp (argv[2], "Edge") == 0)
++                sing = occgeometry->esingular[nr-1] = !occgeometry->esingular[nr-1];
++              if (strcmp (argv[2], "Vertex") == 0)
++                sing = occgeometry->vsingular[nr-1] = !occgeometry->vsingular[nr-1];
++
++              if (sing) buf[0] = '1';
++
++                Tcl_SetVar (interp, "::ismarkedsingular", buf, 0);
++
++              stringstream str;
++              occgeometry->GetTopologyTree (str);
++
++              char* cstr = (char*)str.str().c_str();
++
++              (*testout) << cstr << endl;
++
++              char helpstr[1000];
++
++              while (strchr (cstr, '}'))
++                {
++                  strncpy (helpstr, cstr+2, strlen(strchr(cstr+2, '}')));
++                  (*testout) << "***" << cstr << "***" << endl;
++                  cstr = strchr (cstr, '}');
++                } 
++            }
++        }
++      }
++
++#endif
++    return TCL_OK;
++  }
++
++
++
++#ifdef OCCGEOMETRY
++  /*
++  void OCCConstructGeometry (OCCGeometry & geom);
++
++  int Ng_OCCConstruction (ClientData clientData,
++                        Tcl_Interp * interp,
++                        int argc, tcl_const char *argv[])
++  {
++    if (occgeometry)
++      OCCConstructGeometry (*occgeometry);
++    return TCL_OK;
++  }
++  */
++#endif
++
++
++
++
++  // Philippose - 30/01/2009
++  // TCL interface function for the Local Face Mesh size
++  // definition functionality
++  int Ng_SurfaceMeshSize (ClientData clientData,
++                                  Tcl_Interp * interp,
++                                  int argc, tcl_const char *argv[])
++  {
++#ifdef OCCGEOMETRY
++
++    static char buf[100];
++
++    if (argc < 2)
++    {
++         Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize needs arguments", TCL_STATIC);
++         return TCL_ERROR;
++    }
++
++    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
++    if (!occgeometry)
++    {
++      Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
++         return TCL_ERROR;
++    }
++
++    // Update the face mesh sizes to reflect the global maximum mesh size
++    for(int i = 1; i <= occgeometry->NrFaces(); i++)
++    {
++           if(!occgeometry->GetFaceMaxhModified(i))
++           {
++              occgeometry->SetFaceMaxH(i, mparam.maxh);
++           }   
++    }
++
++    if (strcmp (argv[1], "setsurfms") == 0)
++    {
++         int facenr = atoi (argv[2]);
++         double surfms = atof (argv[3]);
++         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
++           occgeometry->SetFaceMaxH(facenr, surfms);
++
++    }
++
++    if (strcmp (argv[1], "setall") == 0)
++    {
++         double surfms = atof (argv[2]);
++         if (occgeometry)
++         {
++           int nrFaces = occgeometry->NrFaces();
++           for (int i = 1; i <= nrFaces; i++)
++            occgeometry->SetFaceMaxH(i, surfms);
++         }
++    }
++
++    if (strcmp (argv[1], "getsurfms") == 0)
++    {
++         int facenr = atoi (argv[2]);
++         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
++         {
++           sprintf (buf, "%5.2f", occgeometry->GetFaceMaxH(facenr));
++         }
++         else
++         {
++           sprintf (buf, "%5.2f", mparam.maxh);
++         }
++         Tcl_SetResult (interp, buf, TCL_STATIC);
++    }
++
++    if (strcmp (argv[1], "getactive") == 0)
++    {
++         sprintf (buf, "%d", occgeometry->SelectedFace());
++         Tcl_SetResult (interp, buf, TCL_STATIC);
++    }
++
++    if (strcmp (argv[1], "setactive") == 0)
++    {
++         int facenr = atoi (argv[2]);
++         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
++         {
++           occgeometry->SetSelectedFace (facenr);
++
++        occgeometry->LowLightAll();
++        occgeometry->fvispar[facenr-1].Highlight();
++        occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
++         }
++    }
++
++    if (strcmp (argv[1], "getnfd") == 0)
++    {
++         if (occgeometry)
++           sprintf (buf, "%d", occgeometry->NrFaces());
++         else
++           sprintf (buf, "0");
++         Tcl_SetResult (interp, buf, TCL_STATIC);
++    }
++    return TCL_OK;
++#else // No OCCGEOMETRY 
++
++    Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
++    return TCL_ERROR;
++    
++#endif // OCCGEOMETRY
++  }
++
++
++
++  // Philippose - 25/07/2010
++  // TCL interface function for extracting and eventually 
++  // setting or editing the current colours present in the mesh
++  int Ng_CurrentFaceColours (ClientData clientData,
++                             Tcl_Interp * interp,
++                             int argc, tcl_const char *argv[])
++  {
++     if(argc < 1)
++     {
++        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours needs arguments", TCL_STATIC);
++        return TCL_ERROR;
++     }
++
++     if(!mesh.Ptr())
++     {
++        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
++           return TCL_ERROR;
++     }
++
++     if(strcmp(argv[1], "getcolours") == 0)
++     {
++        stringstream outVar;
++        Array<Vec3d> face_colours;
++        GetFaceColours(*mesh, face_colours);
++
++        for(int i = 0; i < face_colours.Size();i++)
++        {
++           outVar << "{ " << face_colours[i].X(1)
++                  << " "  << face_colours[i].X(2)
++                  << " "  << face_colours[i].X(3)
++                  << " } ";
++        }
++
++        tcl_const char * valuevar = argv[2];
++        Tcl_SetVar  (interp, valuevar, (char*)outVar.str().c_str(), 0);
++     }
++
++     if(strcmp(argv[1], "showalso") == 0)
++     {
++        Array<Vec3d> face_colours;
++        GetFaceColours(*mesh,face_colours);
++
++        int colourind = atoi (argv[2]);
++
++        for(int i = 1; i <= mesh->GetNFD(); i++)
++        {
++           Array<SurfaceElementIndex> surfElems;
++           mesh->GetSurfaceElementsOfFace(i,surfElems);
++
++           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
++           {
++              for(int j = 0; j < surfElems.Size(); j++)
++              {
++                 mesh->SurfaceElement(surfElems[j]).Visible(1);
++              }
++           }
++        }
++
++        mesh->SetNextTimeStamp();
++     }
++
++     if(strcmp(argv[1], "hidealso") == 0)
++     {
++        Array<Vec3d> face_colours;
++        GetFaceColours(*mesh,face_colours);
++
++        int colourind = atoi (argv[2]);
++
++        for(int i = 1; i <= mesh->GetNFD(); i++)
++        {
++           Array<SurfaceElementIndex> surfElems;
++           mesh->GetSurfaceElementsOfFace(i,surfElems);
++
++           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
++           {
++              for(int j = 0; j < surfElems.Size(); j++)
++              {
++                 mesh->SurfaceElement(surfElems[j]).Visible(0);
++              }
++           }
++        }
++
++        mesh->SetNextTimeStamp();
++     }
++
++     if(strcmp(argv[1], "showonly") == 0)
++     {
++        Array<Vec3d> face_colours;
++        GetFaceColours(*mesh,face_colours);
++
++        int colourind = atoi (argv[2]);
++
++        for(int i = 1; i <= mesh->GetNFD(); i++)
++        {
++           Array<SurfaceElementIndex> surfElems;
++           mesh->GetSurfaceElementsOfFace(i,surfElems);
++
++           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
++           {
++              for(int j = 0; j < surfElems.Size(); j++)
++              {
++                 mesh->SurfaceElement(surfElems[j]).Visible(1);
++              }
++           }
++           else
++           {
++              for(int j = 0; j < surfElems.Size(); j++)
++              {
++                 mesh->SurfaceElement(surfElems[j]).Visible(0);
++              }
++           }
++        }
++
++        mesh->SetNextTimeStamp();
++     }
++
++     if(strcmp(argv[1], "hideonly") == 0)
++     {
++        Array<Vec3d> face_colours;
++        GetFaceColours(*mesh,face_colours);
++
++        int colourind = atoi (argv[2]);
++
++        for(int i = 1; i <= mesh->GetNFD(); i++)
++        {
++           Array<SurfaceElementIndex> surfElems;
++           mesh->GetSurfaceElementsOfFace(i,surfElems);
++
++           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
++           {
++              for(int j = 0; j < surfElems.Size(); j++)
++              {
++                 mesh->SurfaceElement(surfElems[j]).Visible(0);
++              }
++           }
++           else
++           {
++              for(int j = 0; j < surfElems.Size(); j++)
++              {
++                 mesh->SurfaceElement(surfElems[j]).Visible(1);
++              }
++           }
++        }
++
++        mesh->SetNextTimeStamp();
++     }
++
++     if(strcmp(argv[1], "showall") == 0)
++     {
++        for(int i = 1; i <= mesh->GetNSE(); i++)
++        {
++           mesh->SurfaceElement(i).Visible(1);
++        }
++
++        mesh->SetNextTimeStamp();
++     }
++
++     if(strcmp(argv[1], "hideall") == 0)
++     {
++        for(int i = 1; i <= mesh->GetNSE(); i++)
++        {
++           mesh->SurfaceElement(i).Visible(0);
++        }
++
++        mesh->SetNextTimeStamp();
++     }
++
++     return TCL_OK;
++  }
++
++
++
++
++  // Philippose - 10/03/2009
++  // TCL interface function for the Automatic Colour-based
++  // definition of boundary conditions for OCC Geometry
++  int Ng_AutoColourBcProps (ClientData clientData,
++                                    Tcl_Interp * interp,
++                                    int argc, tcl_const char *argv[])
++  {
++     if(argc < 1)
++     {
++        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps needs arguments", TCL_STATIC);
++        return TCL_ERROR;
++     }
++
++     if(!mesh.Ptr())
++     {
++        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
++           return TCL_ERROR;
++     }
++
++     if(strcmp(argv[1], "auto") == 0)
++     {
++        AutoColourBcProps(*mesh, 0);
++     }
++
++     if(strcmp(argv[1], "profile") == 0)
++     {
++        AutoColourBcProps(*mesh, argv[2]);
++     }
++
++     return TCL_OK;
++  }
++
++
++  int Ng_SetOCCParameters  (ClientData clientData,
++                          Tcl_Interp * interp,
++                          int argc, tcl_const char *argv[])
++  {
++    OCCGeometryRegister reg;
++    reg.SetParameters (interp);
++    /*
++    occparam.resthcloseedgefac =
++      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
++
++    occparam.resthcloseedgeenable =
++      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
++    */
++    return TCL_OK;
++  }
++
++
++
++
++  NetgenGeometry *  OCCGeometryRegister :: Load (string filename) const
++  {
++    const char * lgfilename = filename.c_str();
++
++
++    /*
++    if (strcmp (&cfilename[strlen(cfilename)-3], "geo") == 0)
++      {
++      PrintMessage (1, "Load OCCG geometry file ", cfilename);
++      
++      extern OCCGeometry * ParseOCCG (istream & istr);
++
++      ifstream infile(cfilename);
++
++      OCCGeometry * hgeom = ParseOCCG (infile);
++      if (!hgeom)
++        throw NgException ("geo-file should start with 'algebraic3d'");
++
++      hgeom -> FindIdenticSurfaces(1e-8 * hgeom->MaxSize()); 
++      return hgeom;
++      }
++    */
++
++
++    if ((strcmp (&lgfilename[strlen(lgfilename)-4], "iges") == 0) ||
++      (strcmp (&lgfilename[strlen(lgfilename)-3], "igs") == 0) ||
++      (strcmp (&lgfilename[strlen(lgfilename)-3], "IGS") == 0) ||
++      (strcmp (&lgfilename[strlen(lgfilename)-4], "IGES") == 0))
++      {
++      PrintMessage (1, "Load IGES geometry file ", lgfilename);
++      OCCGeometry * occgeometry = LoadOCC_IGES (lgfilename);
++      return occgeometry;
++      }
++
++    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "step") == 0) ||
++                   (strcmp (&lgfilename[strlen(lgfilename)-3], "stp") == 0) ||
++                   (strcmp (&lgfilename[strlen(lgfilename)-3], "STP") == 0) ||
++                   (strcmp (&lgfilename[strlen(lgfilename)-4], "STEP") == 0))
++      {
++      PrintMessage (1, "Load STEP geometry file ", lgfilename);
++      OCCGeometry * occgeometry = LoadOCC_STEP (lgfilename);
++      return occgeometry;    
++      }
++    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "brep") == 0) ||
++           (strcmp (&lgfilename[strlen(lgfilename)-4], "Brep") == 0) ||
++           (strcmp (&lgfilename[strlen(lgfilename)-4], "BREP") == 0))
++      {
++      PrintMessage (1, "Load BREP geometry file ", lgfilename);
++      OCCGeometry * occgeometry = LoadOCC_BREP (lgfilename);
++      return occgeometry;
++      }
++    
++    return NULL;
++  }
++
++
++  static VisualSceneOCCGeometry vsoccgeom;
++
++  VisualScene * OCCGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
++  {
++    OCCGeometry * geometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
++    if (geometry)
++      {
++      vsoccgeom.SetGeometry (geometry);
++      return &vsoccgeom;
++      }
++    return NULL;
++  }
++
++
++
++}
++
++
++
++using namespace netgen;
++
++int Ng_occ_Init (Tcl_Interp * interp)
++{
++  geometryregister.Append (new OCCGeometryRegister);
++
++
++    Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",
++                     Ng_SetOCCVisParameters,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++
++    Tcl_CreateCommand (interp, "Ng_GetOCCData",
++                     Ng_GetOCCData,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++
++    /*
++#ifdef OCCGEOMETRY
++    Tcl_CreateCommand (interp, "Ng_OCCConstruction",
++                     Ng_OCCConstruction,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++#endif
++    */
++
++    Tcl_CreateCommand (interp, "Ng_OCCCommand",
++                     Ng_OCCCommand,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++
++
++    Tcl_CreateCommand (interp, "Ng_SetOCCParameters", Ng_SetOCCParameters,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++
++
++
++    // Philippose - 30/01/2009
++    // Register the TCL Interface Command for local face mesh size
++    // definition
++    Tcl_CreateCommand (interp, "Ng_SurfaceMeshSize", Ng_SurfaceMeshSize,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++
++    Tcl_CreateCommand (interp, "Ng_AutoColourBcProps", Ng_AutoColourBcProps,
++                     (ClientData)NULL,
++                     (Tcl_CmdDeleteProc*) NULL);
++
++    // Philippose - 25/07/2010
++    // Register the TCL Interface Command for handling the face colours 
++    // present in the mesh
++    Tcl_CreateCommand(interp, "Ng_CurrentFaceColours", Ng_CurrentFaceColours,
++                      (ClientData)NULL,
++                      (Tcl_CmdDeleteProc*) NULL);
++
++
++  return TCL_OK;
++}
++
++#endif
++
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h
+--- netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h       2014-08-29 13:54:03.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h      2019-11-14 16:56:23.394424656 +0300
+@@ -33,6 +33,7 @@
+ #include <string>
+ #include <iostream>
++#include <iomanip>
+ #include <cstdlib>
+ // #include "SALOME_Log.hxx"
+diff -Naur netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am
+--- netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am   2014-08-29 13:54:05.000000000 +0400
++++ netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am  2019-11-14 16:56:21.230485226 +0300
+@@ -4,10 +4,10 @@
+ AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
+ METASOURCES = AUTO
+-lib_LTLIBRARIES = libstl.la 
++noinst_LTLIBRARIES = libstl.la 
+ if NGGUI
+-lib_LTLIBRARIES += libstlvis.la 
++lib_LTLIBRARIES = libstlvis.la 
+ endif
+ libstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
+@@ -16,6 +16,5 @@
+ libstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
+ libstlvis_la_LIBADD = libstl.la
+-libstl_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
+ # libstlvis_la_LIBADD = libstl.la $(top_builddir)/libsrc/linalg/libla.la 
+diff -Naur netgen-5.3.1_SRC_orig/ng/menustat.tcl netgen-5.3.1_SRC_modif/ng/menustat.tcl
+--- netgen-5.3.1_SRC_orig/ng/menustat.tcl      2014-08-29 13:54:01.000000000 +0400
++++ netgen-5.3.1_SRC_modif/ng/menustat.tcl     2019-11-14 16:56:26.574335643 +0300
+@@ -1,1123 +1,1123 @@
+-# netgen menus:\r
+-\r
+-menu .ngmenu -tearoff 0  -relief raised -bd 2\r
+-. configure -menu .ngmenu\r
+-\r
+-.ngmenu add cascade -label "File" -menu .ngmenu.file -underline 0\r
+-.ngmenu add cascade -label "Geometry" -menu .ngmenu.geometry -underline 0\r
+-.ngmenu add cascade -label "Mesh" -menu .ngmenu.mesh -underline 0\r
+-.ngmenu add cascade -label "View" -menu .ngmenu.view -underline 0\r
+-.ngmenu add cascade -label "Refinement" -menu .ngmenu.meshsize -underline 5\r
+-\r
+-if { $userlevel == 3} {\r
+-    .ngmenu add cascade -label "Special" -menu .ngmenu.special -underline 3\r
+-}\r
+-\r
+-.ngmenu add cascade -label "Help" -menu .ngmenu.help -underline 0\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu File                                     #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-menu .ngmenu.file\r
+-\r
+-.ngmenu.file add command -label "Load Geometry..." -accelerator "<l><g>" \\r
+-    -command { \r
+-      set types {\r
+-          {"All Geometry types"   { .stl .stlb .step .stp .geo .in2d .igs .iges .brep .sat} }\r
+-          {"IGES Geometry"    {.igs .iges} }\r
+-          {"BREP OpenCascade Geometry"    {.brep} }\r
+-          {"STL Geometry"        {.stl} }\r
+-          {"Binary STL Geometry"    {.stlb} }\r
+-          {"STEP Geometry"    {.step .stp} }\r
+-          {"Geometry file"       {.geo} }\r
+-          {"2D Geometry"   {.in2d } } \r
+-      } \r
+-\r
+-      set ACISavailable [Ng_ACISCommand isACISavailable]\r
+-      if {$ACISavailable == "yes" } {\r
+-          lappend types {"ACIS Geometry" {.sat} }\r
+-      }\r
+-\r
+-      if {[catch {\r
+-          set file [tk_getOpenFile -filetypes $types -initialdir $dirname -typevariable loadgeomtypevar]\r
+-      }]} {\r
+-          set file [tk_getOpenFile -filetypes $types -initialdir $dirname]\r
+-      }\r
+-\r
+-      if {$file != ""} {\r
+-          AddRecentFile $file\r
+-          Ng_LoadGeometry $file \r
+-          Ng_ParseGeometry\r
+-#         if { [Ng_STLInfo status]=="ERROR" } {\r
+-#             tk_messageBox -message  "STL ERROR: \n [Ng_STLInfo statustext]" -type ok\r
+-#         }\r
+-          set selectvisual geometry\r
+-          Ng_SetVisParameters\r
+-          redraw\r
+-          wm title . [concat "$progname - " $file]\r
+-          set dirname [file dirname $file]\r
+-          set basefilename [file tail [file rootname $file]]\r
+-\r
+-          if { $hasocc == "yes" } {\r
+-              rebuildoccdialog\r
+-          }\r
+-      }\r
+-    }\r
+-\r
+-\r
+-\r
+-.ngmenu.file add command -label "Save Geometry..." \\r
+-    -command { \r
+-      set occgeometryloaded [Ng_OCCCommand isoccgeometryloaded]\r
+-      puts $occgeometryloaded\r
+-      if {$occgeometryloaded == 1 } {\r
+-          set types {\r
+-              {"IGES Geometry file"   {.igs} } \r
+-              {"STEP Geometry file"   {.stp} } \r
+-              {"STL Geometry file"   {.stl} } \r
+-              {"STL BIN Geometry file"   {.stlb} } \r
+-          }\r
+-      } {\r
+-          set types {\r
+-              {"STL Geometry file"   {.stl} } \r
+-              {"STL BIN Geometry file"   {.stlb} } \r
+-          }\r
+-      }\r
+-\r
+-      set ACISavailable [Ng_ACISCommand isACISavailable]\r
+-      puts $ACISavailable\r
+-      if {$ACISavailable == "yes" } {\r
+-          lappend types {"ACIS Geometry" {.sat} }\r
+-      }\r
+-\r
+-      set file [tk_getSaveFile -filetypes $types -initialdir $dirname -initialfile $basefilename ]\r
+-      if {$file != ""} {\r
+-          Ng_SaveGeometry $file \r
+-      }\r
+-    }\r
+- \r
+-\r
+-\r
+-.ngmenu.file add cascade -label "Recent Files" -menu .ngmenu.file.recent \r
+-menu .ngmenu.file.recent\r
+-\r
+-\r
+-proc AddRecentFile { filename } {\r
+-    global progname\r
+-    global dirname\r
+-    catch { [.ngmenu.file.recent delete $filename] }\r
+-    .ngmenu.file.recent insert 0 command -label $filename \\r
+-      -command "AddRecentFile {$filename}; \r
+-                  Ng_LoadGeometry {$filename}; \r
+-                Ng_ParseGeometry;\r
+-                set selectvisual geometry;\r
+-                Ng_SetVisParameters;\r
+-                redraw;\r
+-                wm title . [concat \" $progname - $filename \"];\r
+-                  set dirname {[file dirname $filename]};\r
+-                  set basefilename {[file tail [file rootname $filename]]};\r
+-                rebuildoccdialog;"\r
+-\r
+-    \r
+-    if { [.ngmenu.file.recent index last] >= 6 } {\r
+-      .ngmenu.file.recent delete last }\r
+-    \r
+-    saveinifile;\r
+-    }\r
+-loadinifile;\r
+-\r
+-.ngmenu.file add separator\r
+-\r
+-\r
+-.ngmenu.file add command -label "Load Mesh..." -accelerator "<l><m>" \\r
+-    -command {\r
+-      set types {\r
+-          {"Mesh file"   {.vol .vol.gz}       } }\r
+-      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]\r
+-      if {$file != ""} {\r
+-          AddRecentMeshFile $file;\r
+-          Ng_LoadMesh $file; \r
+-          set selectvisual mesh\r
+-          Ng_SetVisParameters\r
+-          redraw\r
+-          Ng_ReadStatus; \r
+-#         Ng_MeshSizeFromSurfaceMesh\r
+-          wm title . [concat "$progname - " $file] \r
+-          set dirname [file dirname $file]\r
+-          set basefilename [file tail [file rootname $file]]\r
+-      }\r
+-    }\r
+-\r
+-\r
+-\r
+-# astrid\r
+-.ngmenu.file add cascade -label "Recent Meshes" -menu .ngmenu.file.recentmesh \r
+-menu .ngmenu.file.recentmesh\r
+-\r
+-\r
+-proc AddRecentMeshFile { filename } {\r
+-    global progname\r
+-    global dirname\r
+-    catch { [.ngmenu.file.recentmesh delete $filename] }\r
+-    .ngmenu.file.recentmesh insert 0 command -label $filename \\r
+-      -command "AddRecentMeshFile {$filename}; \r
+-                  Ng_LoadMesh {$filename};\r
+-                set selectvisual mesh;\r
+-                Ng_SetVisParameters;\r
+-                redraw;\r
+-                wm title . [concat \" $progname - $filename \"];\r
+-                  set dirname {[file dirname $filename]};\r
+-                  set basefilename {[file tail [file rootname $filename]]};\r
+-                  rebuildoccdialog;"\r
+-    \r
+-    if { [.ngmenu.file.recentmesh index last] >= 6 } {\r
+-      .ngmenu.file.recentmesh delete last }\r
+-   \r
+-    savemeshinifile;\r
+-    }\r
+-loadmeshinifile;\r
+-\r
+-# astrid ende\r
+-\r
+-\r
+-.ngmenu.file add command -label "Save Mesh..." -accelerator "<s><m>" \\r
+-    -command {\r
+-      set types {\r
+-          {"Mesh file"   {.vol .vol.gz}       } }\r
+-\r
+-      set file [tk_getSaveFile -filetypes $types -defaultextension ".vol.gz" -initialfile $basefilename -initialdir $dirname ]\r
+-      if {$file != ""} {\r
+-          Ng_SaveMesh $file }\r
+-      AddRecentMeshFile $file;\r
+-\r
+-    }\r
+-\r
+-.ngmenu.file add command -label "Merge Mesh..." \\r
+-    -command {\r
+-      set types {\r
+-          {"Mesh file"   {.vol}       } }\r
+-      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]\r
+-      if {$file != ""} {\r
+-          Ng_MergeMesh $file; \r
+-          set selectvisual mesh\r
+-          Ng_SetVisParameters\r
+-          redraw\r
+-          Ng_ReadStatus; \r
+-      }\r
+-    }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-.ngmenu.file add command -label "Import Mesh..." \\r
+-    -command { \r
+-      set types {\r
+-          {"Neutral format"  {.mesh .emt} }\r
+-          {"Surface mesh format"  {.surf} }\r
+-          {"Universal format"  {.unv} }\r
+-          {"Olaf format"  {.emt} }\r
+-          {"TET format" {.tet} }\r
+-          {"Pro/ENGINEER neutral format" {.fnf} }\r
+-                }\r
+-      set file [tk_getOpenFile -filetypes $types ]\r
+-      if {$file != ""} {\r
+-          Ng_ImportMesh $file \r
+-          set selectvisual mesh\r
+-          Ng_SetVisParameters\r
+-          redraw\r
+-          Ng_ReadStatus; \r
+-      }\r
+-    }\r
+-\r
+-\r
+-.ngmenu.file add command -label "Export Mesh..." \\r
+-    -command {\r
+-\r
+-#     global meshexportformats\r
+-      foreach exportformat $meshexportformats {\r
+-          if { [lindex $exportformat 0] == $exportfiletype } {\r
+-              set extension [lindex $exportformat 1]\r
+-          }\r
+-      }\r
+-\r
+-      if { $exportfiletype == "Elmer Format"} {\r
+-          set file [file nativename [tk_chooseDirectory -title "Elmer Mesh Export - Select Directory"]]\r
+-        } elseif { $exportfiletype == "OpenFOAM 1.5+ Format"} {\r
+-          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]\r
+-        } elseif { $exportfiletype == "OpenFOAM 1.5+ Compressed"} {\r
+-          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]\r
+-        } else {\r
+-#         set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {$extension} }" ]\r
+-          set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {*}}" ]\r
+-      }\r
+-\r
+-      if {$file != ""} {\r
+-          Ng_ExportMesh $file $exportfiletype \r
+-      }\r
+-    }\r
+-\r
+-.ngmenu.file add cascade -label "Export Filetype" -menu .ngmenu.file.filetype \r
+-\r
+-menu .ngmenu.file.filetype \r
+-\r
+-\r
+-.ngmenu.file add separator\r
+-\r
+-\r
+-.ngmenu.file add command -label "Save Solution..." \\r
+-    -command { \r
+-      set types { \r
+-            {"Solution File"  {.sol} } \r
+-            {"VTK File"  {.vtk} } \r
+-        }\r
+-      set file [tk_getSaveFile -filetypes $types ]\r
+-      if {$file != ""} {\r
+-          Ng_SaveSolution $file \r
+-      }\r
+-    }\r
+-#-defaultextension ".sol"  ]\r
+-\r
+-.ngmenu.file add command -label "Import Solution..." \\r
+-    -command { \r
+-      set types { {"Solution File"  {.sol} } }\r
+-      set file [tk_getOpenFile -filetypes $types -defaultextension ".sol"  ]\r
+-      if {$file != ""} {\r
+-          Ng_ImportSolution $file \r
+-          set selectvisual solution\r
+-          Ng_SetVisParameters\r
+-          redraw\r
+-      }\r
+-    }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-set demostarttime [clock clicks -millisecond]\r
+-set stopdemo 0\r
+-proc demoredraw { } {\r
+-    global demostarttime\r
+-    global stopdemo\r
+-    set curtime [clock clicks -millisecond]\r
+-    set result [ Ng_DemoSetTime [expr $curtime - $demostarttime] ]\r
+-    redraw\r
+-    global videoactive\r
+-    if { $videoactive == 1 } {\r
+-        puts "addframe"\r
+-        .ndraw Ng_VideoClip addframe\r
+-    }\r
+-    if { $result == 0 && $stopdemo == 0 } {\r
+-      after 1 { demoredraw }\r
+-    }\r
+-}\r
+-.ngmenu.file add command -label "Show Demo..." \\r
+-    -command {\r
+-      set types { {"Demo File"  {.dem} } }\r
+-      set file [tk_getOpenFile -filetypes $types -defaultextension ".dem"  ]\r
+-      if {$file != ""} {\r
+-          Ng_ShowDemo $file \r
+-          set demostarttime [clock clicks -millisecond]\r
+-          set stopdemo 0\r
+-          demoredraw\r
+-      }\r
+-     }\r
+-\r
+-\r
+-\r
+-\r
+-.ngmenu.file add separator\r
+-\r
+-.ngmenu.file add command -label "Snapshot..." \\r
+-    -command { \r
+-      set types { \r
+-          {"JPG file" {.jpg} } \r
+-          {"GIF file" {.gif} } \r
+-          {"PPM file" {.ppm} } \r
+-      }\r
+-      set file [tk_getSaveFile -filetypes $types]\r
+-#  -defaultextension ".ppm"]\r
+-      if {$file != ""} {\r
+-          .ndraw Ng_SnapShot $file }\r
+-    }\r
+-\r
+-\r
+-.ngmenu.file add cascade -label "Video clip" -menu .ngmenu.file.video\r
+-menu .ngmenu.file.video\r
+-\r
+-set videoactive 0\r
+-.ngmenu.file.video add command -label "start..." \\r
+-    -command { \r
+-      set types { \r
+-          {"MPG file" {.mpg} } \r
+-      }\r
+-      set file [tk_getSaveFile -filetypes $types]\r
+-      if {$file != ""} {\r
+-          .ndraw Ng_VideoClip init $file \r
+-            global videoactive\r
+-            set videoactive 1\r
+-        }\r
+-     }\r
+-\r
+-.ngmenu.file.video add command -label "add frame..." \\r
+-    -command {.ndraw Ng_VideoClip addframe }\r
+-\r
+-.ngmenu.file.video add command -label "one cycle" \\r
+-    -command {\r
+-      set visoptions.redrawperiodic 1\r
+-      for { set j 0 } { $j < 100 } { incr j } {\r
+-          puts "j =  $j"\r
+-          Ng_Vis_Set time [expr (1000 * $j / 100)]\r
+-          redraw\r
+-          .ndraw Ng_VideoClip addframe \r
+-          after 200\r
+-      }\r
+-    }\r
+-\r
+-.ngmenu.file.video add command -label "finalize..." \\r
+-    -command {\r
+-        .ndraw Ng_VideoClip finalize \r
+-        global videoactive\r
+-        set videoactive 0\r
+-    }\r
+-\r
+-\r
+-\r
+-.ngmenu.file add command -label "Save Options" \\r
+-    -command { saveoptions }\r
+-\r
+-\r
+-    \r
+-\r
+-.ngmenu.file add separator\r
+-\r
+-\r
+-## herbert tcl load menue\r
+-# .ngmenu.file add command -label "Run tests ..." \\r
+-\#    -command { runtestdialog }\r
+-##\r
+-# .ngmenu.file add separator\r
+-\r
+-.ngmenu.file add command -label "Quit" -accelerator "<q>" \\r
+-    -command { \r
+-        puts "Thank you for using $progname"; \r
+-\r
+-        if { [catch { unload libngsolve[info sharedlibextension] ngsolve } result ] } {\r
+-            # puts "cannot unload ngsolve" \r
+-            # puts "error: $result"\r
+-        } \r
+-\r
+-        Ng_Exit; \r
+-        destroy . \r
+-    }\r
+-# exit\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu Mesh                                     #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-menu .ngmenu.mesh\r
+-.ngmenu.mesh add command -label "Generate Mesh" -accelerator "<g><m>" \\r
+-    -command { \r
+-      set selectvisual mesh\r
+-      Ng_SetVisParameters\r
+-      Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}\r
+-      Ng_ReadStatus\r
+-      redraw\r
+-    }\r
+-\r
+-.ngmenu.mesh add command -label "Stop Meshing" \\r
+-    -command { Ng_StopMeshing }\r
+-\r
+-.ngmenu.mesh add command -label "Meshing Options..." \\r
+-    -command meshingoptionsdialog\r
+-\r
+-\r
+-.ngmenu.mesh add separator\r
+-\r
+-.ngmenu.mesh add command -label "Delete Mesh" \\r
+-    -command { Ng_New mesh; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.mesh add command -label "Delete Vol Mesh" \\r
+-    -command { Ng_DeleteVolMesh; Ng_ReadStatus; redraw }\r
+-\r
+-\r
+-.ngmenu.mesh add command -label "Mesh Info" \\r
+-    -command {\r
+-      set dim [Ng_MeshInfo dim]\r
+-      set np [Ng_MeshInfo np]\r
+-      set ne [Ng_MeshInfo ne]\r
+-      set nse [Ng_MeshInfo nse]\r
+-      set nseg [Ng_MeshInfo nseg]\r
+-      set bbox [Ng_MeshInfo bbox]\r
+-      tk_messageBox -message  "Dimension: $dim\nPoints: $np\nElements: $ne\nSurface Els: $nse\nSegments: $nseg\nxmin [lindex $bbox 0] xmax [lindex $bbox 1]\nymin [lindex $bbox 2] ymax [lindex $bbox 3]\nzmin [lindex $bbox 4] zmax [lindex $bbox 5]"\r
+-    }\r
+-\r
+-\r
+-.ngmenu.mesh add command -label "Mesh Quality" \\r
+-    -command {\r
+-      set inplanemin 0\r
+-      set inplanemax 0\r
+-      set betplanemin 0\r
+-      set betplanemax 0\r
+-      Ng_MeshQuality inplanemin inplanemax betplanemin betplanemax\r
+-      puts "Triangle angles : $inplanemin - $inplanemax"\r
+-      puts "Tet angles      : $betplanemin - $betplanemax"\r
+-      tk_messageBox -message  "Triangle angles : $inplanemin - $inplanemax \n Tet angles      : $betplanemin - $betplanemax"\r
+-    }\r
+-\r
+-# .ngmenu.mesh add command -label "Quality Plot" \\r
+-#    -command { qualityviewdialog 1 }\r
+-\r
+-\r
+-\r
+-\r
+-.ngmenu.mesh add command -label "Check Surface Mesh" \\r
+-    -command { Ng_CheckSurfaceMesh }\r
+-.ngmenu.mesh add command -label "Check Volume Mesh" \\r
+-    -command { Ng_CheckVolumeMesh }\r
+-\r
+-.ngmenu.mesh add command -label "Edit Boundary Conditions..." \\r
+-    -command { bcpropdialog }\r
+-\r
+-if { $userlevel == 3 } {\r
+-    .ngmenu.mesh add command -label "Mesh Doctor..." \\r
+-      -command { meshdoctordialog }\r
+-}\r
+-\r
+-.ngmenu.mesh add command -label "METIS Mesh Partitioning..." \\r
+-      -command { METISdialog }\r
+-\r
+-.ngmenu.mesh add separator\r
+-\r
+-.ngmenu.mesh add command -label "Analyze Geometry" \\r
+-    -command { Ng_GenerateMesh ag ag; Ng_ReadStatus; redraw }\r
+-.ngmenu.mesh add command -label "Mesh Edges" \\r
+-    -command { Ng_GenerateMesh me me; Ng_ReadStatus; redraw }\r
+-.ngmenu.mesh add command -label "Mesh Surface" \\r
+-    -command { set selectvisual mesh; Ng_SetVisParameters; \\r
+-                 Ng_GenerateMesh ms ms; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.mesh add command -label "Optimize Surface" \\r
+-    -command { Ng_GenerateMesh os os cmsmSm; redraw }\r
+-\r
+-.ngmenu.mesh add cascade -label "Surface Optim. Step" -menu .ngmenu.mesh.surfoptstep \r
+-\r
+-menu .ngmenu.mesh.surfoptstep \r
+-.ngmenu.mesh.surfoptstep add command -label "Mesh Smoothing" \\r
+-    -command { Ng_GenerateMesh os os m; redraw}\r
+-.ngmenu.mesh.surfoptstep add command -label "Edge swapping (topologic)" \\r
+-    -command { Ng_GenerateMesh os os s; redraw}\r
+-.ngmenu.mesh.surfoptstep add command -label "Edge swapping (metric)" \\r
+-    -command { Ng_GenerateMesh os os S; redraw}\r
+-.ngmenu.mesh.surfoptstep add command -label "Combine points" \\r
+-    -command { Ng_GenerateMesh os os c; redraw}\r
+-\r
+-\r
+-.ngmenu.mesh add separator\r
+-.ngmenu.mesh add command -label "Mesh Volume" \\r
+-    -command { Ng_GenerateMesh mv mv; Ng_ReadStatus }\r
+-.ngmenu.mesh add command -label "Optimize Volume" \\r
+-    -command { Ng_GenerateMesh ov ov; Ng_ReadStatus }\r
+-.ngmenu.mesh add command -label "Smooth Opt Volume" \\r
+-    -command { Ng_GenerateMesh ov ov m; Ng_ReadStatus }\r
+-.ngmenu.mesh add command -label "Smooth Opt Volume Jacobian" \\r
+-    -command { Ng_GenerateMesh ov ov j; Ng_ReadStatus }\r
+-\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu Geometry                                 #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-menu .ngmenu.geometry\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu View                                     #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-menu .ngmenu.view\r
+-.ngmenu.view add command -label "Zoom all" \\r
+-    -command { Ng_ZoomAll; redraw }\r
+-.ngmenu.view add command -label "Center" \\r
+-    -command { Ng_Center; redraw }\r
+-\r
+-.ngmenu.view add command -label "x-y plane" \\r
+-    -command { Ng_StandardRotation xy; redraw }\r
+-.ngmenu.view add command -label "y-x plane" \\r
+-    -command { Ng_StandardRotation yx; redraw }\r
+-.ngmenu.view add command -label "x-z plane" \\r
+-    -command { Ng_StandardRotation xz; redraw }\r
+-.ngmenu.view add command -label "z-x plane" \\r
+-    -command { Ng_StandardRotation zx; redraw }\r
+-.ngmenu.view add command -label "y-z plane" \\r
+-    -command { Ng_StandardRotation yz; redraw }\r
+-.ngmenu.view add command -label "z-y plane" \\r
+-    -command { Ng_StandardRotation zy; redraw }\r
+-\r
+-.ngmenu.view add command -label "Viewing Options..." \\r
+-    -command { viewingoptionsdialog; redraw }\r
+-.ngmenu.view add command -label "Clipping Plane..." \\r
+-    -command { clippingdialog; redraw }\r
+-.ngmenu.view add command -label "Solution Data..." \\r
+-    -command { visual_dialog; redraw }\r
+-.ngmenu.view add checkbutton -variable viewqualityplot \\r
+-    -label "Quality Plot" \\r
+-    -command { qualityviewdialog $viewqualityplot }\r
+-.ngmenu.view add checkbutton -variable memuseplot \\r
+-    -label "Memory Usage" \\r
+-    -command { memusedialog $memuseplot }\r
+-\r
+-\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu Refinement                               #\r
+-#                                                   #\r
+-#####################################################\r
+-#\r
+-# Mesh size menu\r
+-#\r
+-menu .ngmenu.meshsize\r
+-.ngmenu.meshsize add command -label "Refine uniform" \\r
+-    -command { Ng_Refine; Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.meshsize add command -label "Second Order" \\r
+-    -command { Ng_SecondOrder; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.meshsize add command -label "Validate Second Order" \\r
+-    -command { Ng_ValidateSecondOrder; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.meshsize add command -label "High Order" \\r
+-    -command { Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.meshsize add separator\r
+-\r
+-.ngmenu.meshsize add command -label "Refinement Dialog..." \\r
+-    -command { refinementdialog }\r
+-.ngmenu.meshsize add command -label "Load Meshsize..." \\r
+-    -command {\r
+-      set types {\r
+-          {"Meshsize file"   {.msz}   } }\r
+-      set file [tk_getOpenFile -filetypes $types]\r
+-      if {$file != ""} {\r
+-          Ng_LoadMeshSize $file; \r
+-      }\r
+-    }\r
+-.ngmenu.meshsize add command -label "MS from Surf Mesh" \\r
+-    -command { Ng_MeshSizeFromSurfaceMesh }\r
+-\r
+-\r
+-if { $userlevel == 3 } {\r
+-.ngmenu.meshsize add command -label "Singular point ms" \\r
+-    -command { Ng_SingularPointMS; }\r
+-\r
+-.ngmenu.meshsize add command -label "Singular edge ms" \\r
+-    -command { Ng_SingularEdgeMS; }\r
+-\r
+-.ngmenu.meshsize add separator\r
+-\r
+-set bisectfilename "";\r
+-\r
+-.ngmenu.meshsize add command -label "Bisection" \\r
+-    -command { Ng_ReadStatus; set oldnp 0; set newnp $status_np; \r
+-#     Ng_BisectCopyMesh; \r
+-#     Ng_Split2Tets;\r
+-      Ng_ReadStatus;\r
+-      \r
+-      while { $oldnp < $newnp } {\r
+-#         if { $level == 0 } {\r
+-#             Ng_ExportMesh feppmesh.vol fepp;\r
+-#         } {\r
+-#             Ng_ExportMesh feppmesh$level feppml \r
+-#         }\r
+-          set level [expr $level+1]\r
+-          if { $bisectfilename == ""} {\r
+-              Ng_Bisect;\r
+-          } else {\r
+-              Ng_Bisect $bisectfilename;\r
+-          }\r
+-#         Ng_HighOrder ${options.elementorder} "noparallel"\r
+-#         Ng_Split2Tets;\r
+-          Ng_ReadStatus;\r
+-          redraw; \r
+-          \r
+-          if { $bisectfilename == ""} {\r
+-              set oldnp $newnp;\r
+-              set newnp $status_np;\r
+-              puts "oldnp $oldnp newnp $newnp";\r
+-          } else {\r
+-              set oldnp $newnp;\r
+-          }\r
+-      }\r
+-    }\r
+-#    -command { Ng_Bisect; Ng_ReadStatus; redraw }\r
+-#    -command { exec netgen abc >outfile 2>errfile; Ng_ReadStatus; redraw }\r
+-\r
+-}\r
+-\r
+-.ngmenu.meshsize add command -label "Load Refinement Info..." \\r
+-    -command {\r
+-      set types {\r
+-          {"Refinement info" {.refine} }}\r
+-      set bisectfilename [tk_getOpenFile -filetypes $types]\r
+-    }\r
+-\r
+-.ngmenu.meshsize add command -label "Z-Refinement" \\r
+-    -command { Ng_ZRefinement 2; Ng_ReadStatus; redraw }\r
+-\r
+-\r
+-# .ngmenu.meshsize add command -label "hp-Refinement" \\r
+-\#    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }\r
+-\r
+-.ngmenu.meshsize add cascade -label "hp-Refinement" -menu .ngmenu.meshsize.hpref\r
+-menu .ngmenu.meshsize.hpref\r
+-.ngmenu.meshsize.hpref add command -label "1 Level" \\r
+-    -command { Ng_HPRefinement 1; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "2 Levels" \\r
+-    -command { Ng_HPRefinement 2; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "3 Levels" \\r
+-    -command { Ng_HPRefinement 3; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "4 Levels" \\r
+-    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "5 Levels" \\r
+-    -command { Ng_HPRefinement 5; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "6 Levels" \\r
+-    -command { Ng_HPRefinement 6; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "7 Levels" \\r
+-    -command { Ng_HPRefinement 7; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "8 Levels" \\r
+-    -command { Ng_HPRefinement 8; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "9 Levels" \\r
+-    -command { Ng_HPRefinement 9; Ng_ReadStatus; redraw }\r
+-.ngmenu.meshsize.hpref add command -label "10 Levels" \\r
+-    -command { Ng_HPRefinement 10; Ng_ReadStatus; redraw }\r
+-\r
+-\r
+-.ngmenu.meshsize add command -label "Split to Tets" \\r
+-    -command { Ng_Split2Tets; Ng_ReadStatus; redraw }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu Special                                  #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-menu .ngmenu.special\r
+-.ngmenu.special add command -label "Prismatic Boundary Layer" \\r
+-    -command { Ng_GenerateBoundaryLayer; redraw }\r
+-.ngmenu.special add command -label "Insert virtual boundary layer" \\r
+-    -command { Ng_InsertVirtualBL; redraw }\r
+-.ngmenu.special add command -label "Cut off and combine with other" \\r
+-    -command { \r
+-      set types { {"Mesh file"   {.vol}       } }\r
+-      set file [tk_getOpenFile -filetypes $types]\r
+-      if {$file != ""} {\r
+-          Ng_CutOffAndCombine $file;  }\r
+-      redraw \r
+-    }\r
+-.ngmenu.special add command -label "Helmholtz Mesh grading" \\r
+-    -command { Ng_HelmholtzMesh; }\r
+-.ngmenu.special add cascade -label "Colour-based boundary conditions" -menu .ngmenu.special.colbndcond\r
+-\r
+-menu .ngmenu.special.colbndcond \r
+- .ngmenu.special.colbndcond add command -label "Inspect Colours in mesh" \\r
+-    -command { currmeshcoloursdialog }\r
+-    \r
+- .ngmenu.special.colbndcond add separator     \r
+-    \r
+- .ngmenu.special.colbndcond add command -label "Automatic Assignment" \\r
+-    -command { Ng_AutoColourBcProps auto; redraw }\r
+-      \r
+- .ngmenu.special.colbndcond add separator     \r
+-\r
+- set ocffile [file join ${ngdir} netgen.ocf];\r
+- \r
+- .ngmenu.special.colbndcond add command -label "Select Colour Profile file" \\r
+-    -command {\r
+-      set types { {"Colour Profile file"   {.ocf}   } }\r
+-      set ocffile [tk_getOpenFile -filetypes $types]\r
+-      if {$ocffile == ""} {\r
+-          set ocffile [file join ${ngdir} netgen.ocf]; }\r
+-      } \r
+- .ngmenu.special.colbndcond add command -label "Profile based Assignment" \\r
+-      -command { Ng_AutoColourBcProps profile ${ocffile}; redraw }\r
+-\r
+-\r
+-# menu .mbar.stl.menu\r
+-# .mbar.stl.menu add command -label "STL options" \\r
+-#     -command { stloptionsdialog; }\r
+-#.mbar.stl.menu add command -label "STL Doctor" \\r
+-#    -command { stldoctordialog; }\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Menu Help                                     #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-\r
+-\r
+-\r
+-menu .ngmenu.help\r
+-# .ngmenu.help add command -label "Ng Help..." \\r
+-\#    -command { help_main }\r
+-# .ngmenu.view add checkbutton -variable showsensitivehelp \\r
+-#     -label "Sensitve Help" \\r
+-#     -command { sensitivehelpdialog $showsensitivehelp }\r
+-.ngmenu.view add checkbutton -label "Help Line" -variable showhelpline \\r
+-      -command {\r
+-    if { $showhelpline == 1} {\r
+-      pack .helpline -before .statbar -side bottom -fill x -padx 3p\r
+-    } {\r
+-      pack forget .helpline \r
+-    }\r
+-} \r
+-\r
+-.ngmenu.help add command -label "About..." \\r
+-    -command {\r
+-tk_messageBox -message "This is NETGEN \nmainly written by \nJoachim Schoeberl \nthanks to \nRobert Gaisbauer, Johannes Gerstmayr, Philippose Rajan"\r
+-}\r
+-\r
+-# tk_menuBar .mbar .mbar.file .mbar.mesh .mbar.test .mbar.help\r
+-# focus .mbar\r
+-\r
+-\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Button bar                                    #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-frame .bubar -relief raised -bd 2\r
+-pack .bubar -side top -fill x\r
+-\r
+-button .bubar.testb -text "Test" -command { Ng_SaveGeometry }\r
+-button .bubar.surfm -text "Generate Mesh" -command \\r
+-    { \r
+-      .ngmenu.mesh invoke "Generate Mesh"; \r
+-#     set selectvisual mesh; \r
+-#     Ng_SetVisParameters;\r
+-#     Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}\r
+-#     redraw \r
+-    }\r
+-button .bubar.stopm -text "Stop" -command \\r
+-    { \r
+-      # Ng_StopMeshing;  \r
+-      set multithread_terminate 1;\r
+-      set stopdemo 1;\r
+-    }\r
+-button .bubar.exitb -text "Quit" \\r
+-    -command { \r
+-         set ans [tk_messageBox -title "Quit Netgen?" -message "Do you really want to quit Netgen?" -type yesno -default "no" -icon question]\r
+-         if { $ans == "yes" } {\r
+-           .ngmenu.file invoke "Quit"; \r
+-         }     \r
+-      }\r
+-pack  .bubar.exitb .bubar.surfm .bubar.stopm -side left\r
+-\r
+-#button .bubar.scan -text "Scan" \\r
+-#    -command { Ng_ParseGeometry; set selectvisual geometry; Ng_SetVisParameters; redraw }\r
+-\r
+-button .bubar.zoomall -text "Zoom All" \\r
+-    -command { Ng_ZoomAll; redraw }\r
+-\r
+-button .bubar.center -text "Center" \\r
+-    -command { Ng_Center; redraw }\r
+-\r
+-# tk_optionMenu .bubar.modesel drawmode "rotate" "move  " "zoom  "\r
+-tixOptionMenu .bubar.modesel \\r
+-    -options {\r
+-      label.width  0\r
+-      label.anchor e\r
+-      menubutton.width 6\r
+-    } \\r
+-    -variable drawmode\r
+-\r
+-.bubar.modesel add command rotate -label Rotate\r
+-.bubar.modesel add command move -label Move\r
+-.bubar.modesel add command zoom -label Zoom\r
+-\r
+-\r
+-\r
+-set viewvals { geometry specpoints mesh solution}\r
+-if { $userlevel == 3} {\r
+-    set viewvals { geometry mesh specpoints surfmeshing modelview solution}\r
+-}\r
+-\r
+-set viewvallabs(cross)     "Cross" \r
+-set viewvallabs(geometry)  "Geometry" \r
+-set viewvallabs(mesh)      "Mesh" \r
+-set viewvallabs(specpoints) "Edges" \r
+-set viewvallabs(surfmeshing) "Mesh Gen" \r
+-set viewvallabs(modelview)     "Modeller" \r
+-set viewvallabs(solution)     "Solution" \r
+-\r
+-tixOptionMenu .bubar.selview \\r
+-    -options {\r
+-      label.width  0\r
+-      label.anchor e\r
+-      menubutton.width 10\r
+-    } \\r
+-\r
+-foreach viewv $viewvals {\r
+-    .bubar.selview add command $viewv -label $viewvallabs($viewv)\r
+-}\r
+-\r
+-\r
+-\r
+-.bubar.selview config -variable selectvisual\r
+-.bubar.selview config -command { Ng_SetVisParameters; redraw }\r
+-\r
+-\r
+-pack .bubar.modesel -side right\r
+-pack forget .bubar.modesel\r
+-pack .bubar.center .bubar.zoomall .bubar.selview -side right\r
+-\r
+-.ngmenu.view add checkbutton -variable viewrotatebutton \\r
+-    -label "Enable LeftButton Selection" \\r
+-    -command { \r
+-      if { $viewrotatebutton } {\r
+-          pack .bubar.modesel -side right\r
+-      } {\r
+-          pack forget .bubar.modesel\r
+-      }\r
+-    }\r
+-\r
+-\r
+-\r
+-\r
+-#####################################################\r
+-#                                                   #\r
+-#     Status bar                                    #\r
+-#                                                   #\r
+-#####################################################\r
+-\r
+-label .helpline -text "None"\r
+-pack forget .helpline -side bottom -fill x\r
+-\r
+-frame .statbar -relief flat -bd 2\r
+-pack .statbar -side bottom -fill x\r
+-\r
+-label .statbar.ptslabel -text "Points: "\r
+-label .statbar.ptsval -textvariable status_np\r
+-label .statbar.elslabel -text "   Elements: "\r
+-label .statbar.elsval -textvariable status_ne\r
+-label .statbar.selslabel -text "   Surf Elements: "\r
+-label .statbar.selsval -textvariable status_nse\r
+-# label .statbar.memlabel -text "   Mem: "\r
+-# label .statbar.memval -textvariable mem_moveable\r
+-label .statbar.task -textvariable status_task\r
+-\r
+-pack .statbar.ptslabel .statbar.ptsval -side left -ipady 3p \r
+-pack .statbar.elslabel .statbar.elsval -side left -ipady 3p \r
+-pack .statbar.selslabel .statbar.selsval -side left -ipady 3p\r
+-\r
+-# if { $userlevel == 3 } {\r
+-#    pack .statbar.memlabel .statbar.memval -side left -ipady 3p\r
+-# }\r
+-\r
+-\r
+-tixMeter .statbar.per -value 0 -text 0%\r
+-.statbar.per configure -fillcolor blue\r
+-\r
+-pack .statbar.per -side right\r
+-pack .statbar.task -side right -ipady 4\r
+-\r
+-set qualbaraxis(0) 0\r
+-set qualbar(0) 0\r
+-set qualbarnull(0) 0\r
+-\r
+-\r
+-\r
+-proc timer2 { } {\r
+-    global status_np\r
+-    global status_ne\r
+-    global status_nse\r
+-    global multithread_running\r
+-    global multithread_redraw\r
+-    global status_working\r
+-    global status_task\r
+-    global status_percent\r
+-    global status_tetqualclasses\r
+-    \r
+-\r
+-    Ng_ReadStatus \r
+-\r
+-    if { $multithread_redraw == 1 } {\r
+-      set multithread_redraw 0;\r
+-      redraw;\r
+-        \r
+-        global videoactive\r
+-        if { $videoactive == 1 } {\r
+-            puts "addframe"\r
+-            .ndraw Ng_VideoClip addframe\r
+-        }\r
+-    }\r
+-\r
+-    # global mem_moveable\r
+-    # set mem_moveable [Ng_MemInfo moveable]\r
+-\r
+-\r
+-    .statbar.per config -value [expr $status_percent/100] -text [format %2.1f [expr 0.1*int(10*$status_percent)]]%\r
+-\r
+-\r
+-    if { $multithread_running } {\r
+-      pack .statbar.per -side right -before .statbar.task -padx 6\r
+-    } { \r
+-      pack forget .statbar.per\r
+-    }\r
+-      \r
+-\r
+-\r
+-    # tet quality\r
+-    if {[winfo exists .qualityview_dlg] == 1} {\r
+-      \r
+-      global qualbar\r
+-      global qualbarnull\r
+-      global qualbaraxis\r
+-\r
+-      set maxval 0\r
+-      for {set i 0} {$i < 20} {incr i} {\r
+-          if {[lindex $status_tetqualclasses $i] > $maxval} {\r
+-              set maxval [lindex $status_tetqualclasses $i]\r
+-          }\r
+-      } \r
+-\r
+-      set ubound 1\r
+-      while { $ubound < $maxval } {\r
+-          set ubound [expr {10 * $ubound}]\r
+-      }\r
+-      if { $ubound/5 > $maxval } {\r
+-          set ubound [expr $ubound/5]\r
+-      }\r
+-      if { $ubound/2 > $maxval } {\r
+-          set ubound [expr $ubound/2]\r
+-      }\r
+-\r
+-\r
+-      \r
+-      for {set i 1} {$i <= 5} {incr i} {\r
+-          # global qualbaraxis($i)\r
+-\r
+-          set value [expr { $i * $ubound / 5 }]\r
+-          .qualityview_dlg.c dchars $qualbaraxis($i) 0 end\r
+-          .qualityview_dlg.c insert $qualbaraxis($i) end $value  \r
+-      }\r
+-\r
+-      \r
+-      for {set i 0} {$i < 20} {incr i} {\r
+-          set x1 [expr {100 + ($i*15) + 2}]\r
+-          set x2 [expr {$x1+10}]\r
+-          \r
+-          set nbrs [lindex $status_tetqualclasses $i]\r
+-          set y [expr (249 - (200 * $nbrs / $ubound ) )]\r
+-          \r
+-          # global qualbar($i)\r
+-          .qualityview_dlg.c coords $qualbar($i) $x1 250 $x2 $y\r
+-\r
+-#         global qualbarnull($i)\r
+-          if { $nbrs == 0 } {\r
+-              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text 0\r
+-          } {\r
+-              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text "" \r
+-          }           \r
+-      }\r
+-      \r
+-    }\r
+-\r
+-\r
+-    if {[winfo exists .memuse_dlg] == 1} {    \r
+-      \r
+-      global memmark\r
+-      set usemb [Ng_MemInfo usedmb]\r
+-      for {set i 0} {$i < [string length $usemb] } {incr i} {\r
+-          if { [string index $usemb $i] == 0 } {\r
+-              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 68 [expr 50+$i] 70\r
+-          } {\r
+-              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 50 [expr 50+$i] 70\r
+-          }\r
+-      }\r
+-\r
+-    }\r
+-    after 30 { timer2 }\r
+-}\r
+-# after 1000 { timer2 }\r
+-timer2\r
+-\r
+-\r
+-\r
+-\r
+-proc bgerror { error } {\r
+-    global errorInfo userlevel\r
+-    if { $userlevel == 3} {\r
+-      puts "ERROR: $error" \r
+-      puts "errinfo: $errorInfo"\r
+-    }\r
+-    tk_messageBox -title "Error Message" -message $error -type ok \r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-proc smh2 { menuitem } {\r
+-    if {[catch {$menuitem entrycget active -label} name]} {\r
+-      set name "    "\r
+-    } \r
+-    show_menu_help $name \r
+-    update idletasks\r
+-}\r
+-\r
+-bind .ngmenu <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.file <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.geometry <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.mesh <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.view <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.meshsize <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.special <<MenuSelect>> { smh2 %W }\r
+-bind .ngmenu.help <<MenuSelect>> { smh2 %W }\r
+-\r
+-\r
+-# command bindings  \r
+-bind . <q> { .ngmenu.file invoke "Quit" }\r
+-bind . <l><g> { .ngmenu.file invoke "Load Geometry..." }  ; \r
+-bind . <l><m> { .ngmenu.file invoke "Load Mesh..." }  ;\r
+-bind . <s><m> { .ngmenu.file invoke "Save Mesh..." }  ;\r
+-bind . <r><f> { .ngmenu.file activate "Recent Files" }  ;\r
+-bind . <n><p> { newprimitivedialog }      ; # \r
+-bind . <e><p> { editprimitivedialog }\r
+-bind . <e><s> { newsoliddialog }\r
+-bind . <g><m> { .ngmenu.mesh invoke "Generate Mesh" }  ;\r
+-\r
+-\r
+-\r
+-\r
+-\r
++# netgen menus:
++
++menu .ngmenu -tearoff 0  -relief raised -bd 2
++. configure -menu .ngmenu
++
++.ngmenu add cascade -label "File" -menu .ngmenu.file -underline 0
++.ngmenu add cascade -label "Geometry" -menu .ngmenu.geometry -underline 0
++.ngmenu add cascade -label "Mesh" -menu .ngmenu.mesh -underline 0
++.ngmenu add cascade -label "View" -menu .ngmenu.view -underline 0
++.ngmenu add cascade -label "Refinement" -menu .ngmenu.meshsize -underline 5
++
++if { $userlevel == 3} {
++    .ngmenu add cascade -label "Special" -menu .ngmenu.special -underline 3
++}
++
++.ngmenu add cascade -label "Help" -menu .ngmenu.help -underline 0
++
++
++#####################################################
++#                                                   #
++#     Menu File                                     #
++#                                                   #
++#####################################################
++
++menu .ngmenu.file
++
++.ngmenu.file add command -label "Load Geometry..." -accelerator "<l><g>" \
++    -command { 
++      set types {
++          {"All Geometry types"   { .stl .stlb .step .stp .geo .in2d .igs .iges .brep .sat} }
++          {"IGES Geometry"    {.igs .iges} }
++          {"BREP OpenCascade Geometry"    {.brep} }
++          {"STL Geometry"        {.stl} }
++          {"Binary STL Geometry"    {.stlb} }
++          {"STEP Geometry"    {.step .stp} }
++          {"Geometry file"       {.geo} }
++          {"2D Geometry"   {.in2d } } 
++      } 
++
++      set ACISavailable [Ng_ACISCommand isACISavailable]
++      if {$ACISavailable == "yes" } {
++          lappend types {"ACIS Geometry" {.sat} }
++      }
++
++      if {[catch {
++          set file [tk_getOpenFile -filetypes $types -initialdir $dirname -typevariable loadgeomtypevar]
++      }]} {
++          set file [tk_getOpenFile -filetypes $types -initialdir $dirname]
++      }
++
++      if {$file != ""} {
++          AddRecentFile $file
++          Ng_LoadGeometry $file 
++          Ng_ParseGeometry
++#         if { [Ng_STLInfo status]=="ERROR" } {
++#             tk_messageBox -message  "STL ERROR: \n [Ng_STLInfo statustext]" -type ok
++#         }
++          set selectvisual geometry
++          Ng_SetVisParameters
++          redraw
++          wm title . [concat "$progname - " $file]
++          set dirname [file dirname $file]
++          set basefilename [file tail [file rootname $file]]
++
++          if { $hasocc == "yes" } {
++              rebuildoccdialog
++          }
++      }
++    }
++
++
++
++.ngmenu.file add command -label "Save Geometry..." \
++    -command { 
++      set occgeometryloaded [Ng_OCCCommand isoccgeometryloaded]
++      puts $occgeometryloaded
++      if {$occgeometryloaded == 1 } {
++          set types {
++              {"IGES Geometry file"   {.igs} } 
++              {"STEP Geometry file"   {.stp} } 
++              {"STL Geometry file"   {.stl} } 
++              {"STL BIN Geometry file"   {.stlb} } 
++          }
++      } {
++          set types {
++              {"STL Geometry file"   {.stl} } 
++              {"STL BIN Geometry file"   {.stlb} } 
++          }
++      }
++
++      set ACISavailable [Ng_ACISCommand isACISavailable]
++      puts $ACISavailable
++      if {$ACISavailable == "yes" } {
++          lappend types {"ACIS Geometry" {.sat} }
++      }
++
++      set file [tk_getSaveFile -filetypes $types -initialdir $dirname -initialfile $basefilename ]
++      if {$file != ""} {
++          Ng_SaveGeometry $file 
++      }
++    }
++ 
++
++
++.ngmenu.file add cascade -label "Recent Files" -menu .ngmenu.file.recent 
++menu .ngmenu.file.recent
++
++
++proc AddRecentFile { filename } {
++    global progname
++    global dirname
++    catch { [.ngmenu.file.recent delete $filename] }
++    .ngmenu.file.recent insert 0 command -label $filename \
++      -command "AddRecentFile {$filename}; 
++                  Ng_LoadGeometry {$filename}; 
++                Ng_ParseGeometry;
++                set selectvisual geometry;
++                Ng_SetVisParameters;
++                redraw;
++                wm title . [concat \" $progname - $filename \"];
++                  set dirname {[file dirname $filename]};
++                  set basefilename {[file tail [file rootname $filename]]};
++                rebuildoccdialog;"
++
++    
++    if { [.ngmenu.file.recent index last] >= 6 } {
++      .ngmenu.file.recent delete last }
++    
++    saveinifile;
++    }
++loadinifile;
++
++.ngmenu.file add separator
++
++
++.ngmenu.file add command -label "Load Mesh..." -accelerator "<l><m>" \
++    -command {
++      set types {
++          {"Mesh file"   {.vol .vol.gz}       } }
++      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
++      if {$file != ""} {
++          AddRecentMeshFile $file;
++          Ng_LoadMesh $file; 
++          set selectvisual mesh
++          Ng_SetVisParameters
++          redraw
++          Ng_ReadStatus; 
++#         Ng_MeshSizeFromSurfaceMesh
++          wm title . [concat "$progname - " $file] 
++          set dirname [file dirname $file]
++          set basefilename [file tail [file rootname $file]]
++      }
++    }
++
++
++
++# astrid
++.ngmenu.file add cascade -label "Recent Meshes" -menu .ngmenu.file.recentmesh 
++menu .ngmenu.file.recentmesh
++
++
++proc AddRecentMeshFile { filename } {
++    global progname
++    global dirname
++    catch { [.ngmenu.file.recentmesh delete $filename] }
++    .ngmenu.file.recentmesh insert 0 command -label $filename \
++      -command "AddRecentMeshFile {$filename}; 
++                  Ng_LoadMesh {$filename};
++                set selectvisual mesh;
++                Ng_SetVisParameters;
++                redraw;
++                wm title . [concat \" $progname - $filename \"];
++                  set dirname {[file dirname $filename]};
++                  set basefilename {[file tail [file rootname $filename]]};
++                  rebuildoccdialog;"
++    
++    if { [.ngmenu.file.recentmesh index last] >= 6 } {
++      .ngmenu.file.recentmesh delete last }
++   
++    savemeshinifile;
++    }
++loadmeshinifile;
++
++# astrid ende
++
++
++.ngmenu.file add command -label "Save Mesh..." -accelerator "<s><m>" \
++    -command {
++      set types {
++          {"Mesh file"   {.vol .vol.gz}       } }
++
++      set file [tk_getSaveFile -filetypes $types -defaultextension ".vol.gz" -initialfile $basefilename -initialdir $dirname ]
++      if {$file != ""} {
++          Ng_SaveMesh $file }
++      AddRecentMeshFile $file;
++
++    }
++
++.ngmenu.file add command -label "Merge Mesh..." \
++    -command {
++      set types {
++          {"Mesh file"   {.vol}       } }
++      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
++      if {$file != ""} {
++          Ng_MergeMesh $file; 
++          set selectvisual mesh
++          Ng_SetVisParameters
++          redraw
++          Ng_ReadStatus; 
++      }
++    }
++
++
++
++
++
++.ngmenu.file add command -label "Import Mesh..." \
++    -command { 
++      set types {
++          {"Neutral format"  {.mesh .emt} }
++          {"Surface mesh format"  {.surf} }
++          {"Universal format"  {.unv} }
++          {"Olaf format"  {.emt} }
++          {"TET format" {.tet} }
++          {"Pro/ENGINEER neutral format" {.fnf} }
++                }
++      set file [tk_getOpenFile -filetypes $types ]
++      if {$file != ""} {
++          Ng_ImportMesh $file 
++          set selectvisual mesh
++          Ng_SetVisParameters
++          redraw
++          Ng_ReadStatus; 
++      }
++    }
++
++
++.ngmenu.file add command -label "Export Mesh..." \
++    -command {
++
++#     global meshexportformats
++      foreach exportformat $meshexportformats {
++          if { [lindex $exportformat 0] == $exportfiletype } {
++              set extension [lindex $exportformat 1]
++          }
++      }
++
++      if { $exportfiletype == "Elmer Format"} {
++          set file [file nativename [tk_chooseDirectory -title "Elmer Mesh Export - Select Directory"]]
++        } elseif { $exportfiletype == "OpenFOAM 1.5+ Format"} {
++          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
++        } elseif { $exportfiletype == "OpenFOAM 1.5+ Compressed"} {
++          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
++        } else {
++#         set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {$extension} }" ]
++          set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {*}}" ]
++      }
++
++      if {$file != ""} {
++          Ng_ExportMesh $file $exportfiletype 
++      }
++    }
++
++.ngmenu.file add cascade -label "Export Filetype" -menu .ngmenu.file.filetype 
++
++menu .ngmenu.file.filetype 
++
++
++.ngmenu.file add separator
++
++
++.ngmenu.file add command -label "Save Solution..." \
++    -command { 
++      set types { 
++            {"Solution File"  {.sol} } 
++            {"VTK File"  {.vtk} } 
++        }
++      set file [tk_getSaveFile -filetypes $types ]
++      if {$file != ""} {
++          Ng_SaveSolution $file 
++      }
++    }
++#-defaultextension ".sol"  ]
++
++.ngmenu.file add command -label "Import Solution..." \
++    -command { 
++      set types { {"Solution File"  {.sol} } }
++      set file [tk_getOpenFile -filetypes $types -defaultextension ".sol"  ]
++      if {$file != ""} {
++          Ng_ImportSolution $file 
++          set selectvisual solution
++          Ng_SetVisParameters
++          redraw
++      }
++    }
++
++
++
++
++
++
++set demostarttime [clock clicks -millisecond]
++set stopdemo 0
++proc demoredraw { } {
++    global demostarttime
++    global stopdemo
++    set curtime [clock clicks -millisecond]
++    set result [ Ng_DemoSetTime [expr $curtime - $demostarttime] ]
++    redraw
++    global videoactive
++    if { $videoactive == 1 } {
++        puts "addframe"
++        .ndraw Ng_VideoClip addframe
++    }
++    if { $result == 0 && $stopdemo == 0 } {
++      after 1 { demoredraw }
++    }
++}
++.ngmenu.file add command -label "Show Demo..." \
++    -command {
++      set types { {"Demo File"  {.dem} } }
++      set file [tk_getOpenFile -filetypes $types -defaultextension ".dem"  ]
++      if {$file != ""} {
++          Ng_ShowDemo $file 
++          set demostarttime [clock clicks -millisecond]
++          set stopdemo 0
++          demoredraw
++      }
++     }
++
++
++
++
++.ngmenu.file add separator
++
++.ngmenu.file add command -label "Snapshot..." \
++    -command { 
++      set types { 
++          {"JPG file" {.jpg} } 
++          {"GIF file" {.gif} } 
++          {"PPM file" {.ppm} } 
++      }
++      set file [tk_getSaveFile -filetypes $types]
++#  -defaultextension ".ppm"]
++      if {$file != ""} {
++          .ndraw Ng_SnapShot $file }
++    }
++
++
++.ngmenu.file add cascade -label "Video clip" -menu .ngmenu.file.video
++menu .ngmenu.file.video
++
++set videoactive 0
++.ngmenu.file.video add command -label "start..." \
++    -command { 
++      set types { 
++          {"MPG file" {.mpg} } 
++      }
++      set file [tk_getSaveFile -filetypes $types]
++      if {$file != ""} {
++          .ndraw Ng_VideoClip init $file 
++            global videoactive
++            set videoactive 1
++        }
++     }
++
++.ngmenu.file.video add command -label "add frame..." \
++    -command {.ndraw Ng_VideoClip addframe }
++
++.ngmenu.file.video add command -label "one cycle" \
++    -command {
++      set visoptions.redrawperiodic 1
++      for { set j 0 } { $j < 100 } { incr j } {
++          puts "j =  $j"
++          Ng_Vis_Set time [expr (1000 * $j / 100)]
++          redraw
++          .ndraw Ng_VideoClip addframe 
++          after 200
++      }
++    }
++
++.ngmenu.file.video add command -label "finalize..." \
++    -command {
++        .ndraw Ng_VideoClip finalize 
++        global videoactive
++        set videoactive 0
++    }
++
++
++
++.ngmenu.file add command -label "Save Options" \
++    -command { saveoptions }
++
++
++    
++
++.ngmenu.file add separator
++
++
++## herbert tcl load menue
++# .ngmenu.file add command -label "Run tests ..." \
++\#    -command { runtestdialog }
++##
++# .ngmenu.file add separator
++
++.ngmenu.file add command -label "Quit" -accelerator "<q>" \
++    -command { 
++        puts "Thank you for using $progname"; 
++
++        if { [catch { unload libngsolve[info sharedlibextension] ngsolve } result ] } {
++            # puts "cannot unload ngsolve" 
++            # puts "error: $result"
++        } 
++
++        Ng_Exit; 
++        destroy . 
++    }
++# exit
++
++
++#####################################################
++#                                                   #
++#     Menu Mesh                                     #
++#                                                   #
++#####################################################
++
++menu .ngmenu.mesh
++.ngmenu.mesh add command -label "Generate Mesh" -accelerator "<g><m>" \
++    -command { 
++      set selectvisual mesh
++      Ng_SetVisParameters
++      Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
++      Ng_ReadStatus
++      redraw
++    }
++
++.ngmenu.mesh add command -label "Stop Meshing" \
++    -command { Ng_StopMeshing }
++
++.ngmenu.mesh add command -label "Meshing Options..." \
++    -command meshingoptionsdialog
++
++
++.ngmenu.mesh add separator
++
++.ngmenu.mesh add command -label "Delete Mesh" \
++    -command { Ng_New mesh; Ng_ReadStatus; redraw }
++
++.ngmenu.mesh add command -label "Delete Vol Mesh" \
++    -command { Ng_DeleteVolMesh; Ng_ReadStatus; redraw }
++
++
++.ngmenu.mesh add command -label "Mesh Info" \
++    -command {
++      set dim [Ng_MeshInfo dim]
++      set np [Ng_MeshInfo np]
++      set ne [Ng_MeshInfo ne]
++      set nse [Ng_MeshInfo nse]
++      set nseg [Ng_MeshInfo nseg]
++      set bbox [Ng_MeshInfo bbox]
++      tk_messageBox -message  "Dimension: $dim\nPoints: $np\nElements: $ne\nSurface Els: $nse\nSegments: $nseg\nxmin [lindex $bbox 0] xmax [lindex $bbox 1]\nymin [lindex $bbox 2] ymax [lindex $bbox 3]\nzmin [lindex $bbox 4] zmax [lindex $bbox 5]"
++    }
++
++
++.ngmenu.mesh add command -label "Mesh Quality" \
++    -command {
++      set inplanemin 0
++      set inplanemax 0
++      set betplanemin 0
++      set betplanemax 0
++      Ng_MeshQuality inplanemin inplanemax betplanemin betplanemax
++      puts "Triangle angles : $inplanemin - $inplanemax"
++      puts "Tet angles      : $betplanemin - $betplanemax"
++      tk_messageBox -message  "Triangle angles : $inplanemin - $inplanemax \n Tet angles      : $betplanemin - $betplanemax"
++    }
++
++# .ngmenu.mesh add command -label "Quality Plot" \
++#    -command { qualityviewdialog 1 }
++
++
++
++
++.ngmenu.mesh add command -label "Check Surface Mesh" \
++    -command { Ng_CheckSurfaceMesh }
++.ngmenu.mesh add command -label "Check Volume Mesh" \
++    -command { Ng_CheckVolumeMesh }
++
++.ngmenu.mesh add command -label "Edit Boundary Conditions..." \
++    -command { bcpropdialog }
++
++if { $userlevel == 3 } {
++    .ngmenu.mesh add command -label "Mesh Doctor..." \
++      -command { meshdoctordialog }
++}
++
++.ngmenu.mesh add command -label "METIS Mesh Partitioning..." \
++      -command { METISdialog }
++
++.ngmenu.mesh add separator
++
++.ngmenu.mesh add command -label "Analyze Geometry" \
++    -command { Ng_GenerateMesh ag ag; Ng_ReadStatus; redraw }
++.ngmenu.mesh add command -label "Mesh Edges" \
++    -command { Ng_GenerateMesh me me; Ng_ReadStatus; redraw }
++.ngmenu.mesh add command -label "Mesh Surface" \
++    -command { set selectvisual mesh; Ng_SetVisParameters; \
++                 Ng_GenerateMesh ms ms; Ng_ReadStatus; redraw }
++
++.ngmenu.mesh add command -label "Optimize Surface" \
++    -command { Ng_GenerateMesh os os cmsmSm; redraw }
++
++.ngmenu.mesh add cascade -label "Surface Optim. Step" -menu .ngmenu.mesh.surfoptstep 
++
++menu .ngmenu.mesh.surfoptstep 
++.ngmenu.mesh.surfoptstep add command -label "Mesh Smoothing" \
++    -command { Ng_GenerateMesh os os m; redraw}
++.ngmenu.mesh.surfoptstep add command -label "Edge swapping (topologic)" \
++    -command { Ng_GenerateMesh os os s; redraw}
++.ngmenu.mesh.surfoptstep add command -label "Edge swapping (metric)" \
++    -command { Ng_GenerateMesh os os S; redraw}
++.ngmenu.mesh.surfoptstep add command -label "Combine points" \
++    -command { Ng_GenerateMesh os os c; redraw}
++
++
++.ngmenu.mesh add separator
++.ngmenu.mesh add command -label "Mesh Volume" \
++    -command { Ng_GenerateMesh mv mv; Ng_ReadStatus }
++.ngmenu.mesh add command -label "Optimize Volume" \
++    -command { Ng_GenerateMesh ov ov; Ng_ReadStatus }
++.ngmenu.mesh add command -label "Smooth Opt Volume" \
++    -command { Ng_GenerateMesh ov ov m; Ng_ReadStatus }
++.ngmenu.mesh add command -label "Smooth Opt Volume Jacobian" \
++    -command { Ng_GenerateMesh ov ov j; Ng_ReadStatus }
++
++
++
++#####################################################
++#                                                   #
++#     Menu Geometry                                 #
++#                                                   #
++#####################################################
++
++menu .ngmenu.geometry
++
++
++
++
++
++
++
++#####################################################
++#                                                   #
++#     Menu View                                     #
++#                                                   #
++#####################################################
++
++menu .ngmenu.view
++.ngmenu.view add command -label "Zoom all" \
++    -command { Ng_ZoomAll; redraw }
++.ngmenu.view add command -label "Center" \
++    -command { Ng_Center; redraw }
++
++.ngmenu.view add command -label "x-y plane" \
++    -command { Ng_StandardRotation xy; redraw }
++.ngmenu.view add command -label "y-x plane" \
++    -command { Ng_StandardRotation yx; redraw }
++.ngmenu.view add command -label "x-z plane" \
++    -command { Ng_StandardRotation xz; redraw }
++.ngmenu.view add command -label "z-x plane" \
++    -command { Ng_StandardRotation zx; redraw }
++.ngmenu.view add command -label "y-z plane" \
++    -command { Ng_StandardRotation yz; redraw }
++.ngmenu.view add command -label "z-y plane" \
++    -command { Ng_StandardRotation zy; redraw }
++
++.ngmenu.view add command -label "Viewing Options..." \
++    -command { viewingoptionsdialog; redraw }
++.ngmenu.view add command -label "Clipping Plane..." \
++    -command { clippingdialog; redraw }
++.ngmenu.view add command -label "Solution Data..." \
++    -command { visual_dialog; redraw }
++.ngmenu.view add checkbutton -variable viewqualityplot \
++    -label "Quality Plot" \
++    -command { qualityviewdialog $viewqualityplot }
++.ngmenu.view add checkbutton -variable memuseplot \
++    -label "Memory Usage" \
++    -command { memusedialog $memuseplot }
++
++
++
++
++#####################################################
++#                                                   #
++#     Menu Refinement                               #
++#                                                   #
++#####################################################
++#
++# Mesh size menu
++#
++menu .ngmenu.meshsize
++.ngmenu.meshsize add command -label "Refine uniform" \
++    -command { Ng_Refine; Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
++
++.ngmenu.meshsize add command -label "Second Order" \
++    -command { Ng_SecondOrder; Ng_ReadStatus; redraw }
++
++.ngmenu.meshsize add command -label "Validate Second Order" \
++    -command { Ng_ValidateSecondOrder; Ng_ReadStatus; redraw }
++
++.ngmenu.meshsize add command -label "High Order" \
++    -command { Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
++
++.ngmenu.meshsize add separator
++
++.ngmenu.meshsize add command -label "Refinement Dialog..." \
++    -command { refinementdialog }
++.ngmenu.meshsize add command -label "Load Meshsize..." \
++    -command {
++      set types {
++          {"Meshsize file"   {.msz}   } }
++      set file [tk_getOpenFile -filetypes $types]
++      if {$file != ""} {
++          Ng_LoadMeshSize $file; 
++      }
++    }
++.ngmenu.meshsize add command -label "MS from Surf Mesh" \
++    -command { Ng_MeshSizeFromSurfaceMesh }
++
++
++if { $userlevel == 3 } {
++.ngmenu.meshsize add command -label "Singular point ms" \
++    -command { Ng_SingularPointMS; }
++
++.ngmenu.meshsize add command -label "Singular edge ms" \
++    -command { Ng_SingularEdgeMS; }
++
++.ngmenu.meshsize add separator
++
++set bisectfilename "";
++
++.ngmenu.meshsize add command -label "Bisection" \
++    -command { Ng_ReadStatus; set oldnp 0; set newnp $status_np; 
++#     Ng_BisectCopyMesh; 
++#     Ng_Split2Tets;
++      Ng_ReadStatus;
++      
++      while { $oldnp < $newnp } {
++#         if { $level == 0 } {
++#             Ng_ExportMesh feppmesh.vol fepp;
++#         } {
++#             Ng_ExportMesh feppmesh$level feppml 
++#         }
++          set level [expr $level+1]
++          if { $bisectfilename == ""} {
++              Ng_Bisect;
++          } else {
++              Ng_Bisect $bisectfilename;
++          }
++#         Ng_HighOrder ${options.elementorder} "noparallel"
++#         Ng_Split2Tets;
++          Ng_ReadStatus;
++          redraw; 
++          
++          if { $bisectfilename == ""} {
++              set oldnp $newnp;
++              set newnp $status_np;
++              puts "oldnp $oldnp newnp $newnp";
++          } else {
++              set oldnp $newnp;
++          }
++      }
++    }
++#    -command { Ng_Bisect; Ng_ReadStatus; redraw }
++#    -command { exec netgen abc >outfile 2>errfile; Ng_ReadStatus; redraw }
++
++}
++
++.ngmenu.meshsize add command -label "Load Refinement Info..." \
++    -command {
++      set types {
++          {"Refinement info" {.refine} }}
++      set bisectfilename [tk_getOpenFile -filetypes $types]
++    }
++
++.ngmenu.meshsize add command -label "Z-Refinement" \
++    -command { Ng_ZRefinement 2; Ng_ReadStatus; redraw }
++
++
++# .ngmenu.meshsize add command -label "hp-Refinement" \
++\#    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
++
++.ngmenu.meshsize add cascade -label "hp-Refinement" -menu .ngmenu.meshsize.hpref
++menu .ngmenu.meshsize.hpref
++.ngmenu.meshsize.hpref add command -label "1 Level" \
++    -command { Ng_HPRefinement 1; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "2 Levels" \
++    -command { Ng_HPRefinement 2; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "3 Levels" \
++    -command { Ng_HPRefinement 3; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "4 Levels" \
++    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "5 Levels" \
++    -command { Ng_HPRefinement 5; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "6 Levels" \
++    -command { Ng_HPRefinement 6; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "7 Levels" \
++    -command { Ng_HPRefinement 7; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "8 Levels" \
++    -command { Ng_HPRefinement 8; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "9 Levels" \
++    -command { Ng_HPRefinement 9; Ng_ReadStatus; redraw }
++.ngmenu.meshsize.hpref add command -label "10 Levels" \
++    -command { Ng_HPRefinement 10; Ng_ReadStatus; redraw }
++
++
++.ngmenu.meshsize add command -label "Split to Tets" \
++    -command { Ng_Split2Tets; Ng_ReadStatus; redraw }
++
++
++
++
++
++#####################################################
++#                                                   #
++#     Menu Special                                  #
++#                                                   #
++#####################################################
++
++menu .ngmenu.special
++.ngmenu.special add command -label "Prismatic Boundary Layer" \
++    -command { Ng_GenerateBoundaryLayer; redraw }
++.ngmenu.special add command -label "Insert virtual boundary layer" \
++    -command { Ng_InsertVirtualBL; redraw }
++.ngmenu.special add command -label "Cut off and combine with other" \
++    -command { 
++      set types { {"Mesh file"   {.vol}       } }
++      set file [tk_getOpenFile -filetypes $types]
++      if {$file != ""} {
++          Ng_CutOffAndCombine $file;  }
++      redraw 
++    }
++.ngmenu.special add command -label "Helmholtz Mesh grading" \
++    -command { Ng_HelmholtzMesh; }
++.ngmenu.special add cascade -label "Colour-based boundary conditions" -menu .ngmenu.special.colbndcond
++
++menu .ngmenu.special.colbndcond 
++ .ngmenu.special.colbndcond add command -label "Inspect Colours in mesh" \
++    -command { currmeshcoloursdialog }
++    
++ .ngmenu.special.colbndcond add separator     
++    
++ .ngmenu.special.colbndcond add command -label "Automatic Assignment" \
++    -command { Ng_AutoColourBcProps auto; redraw }
++      
++ .ngmenu.special.colbndcond add separator     
++
++ set ocffile [file join ${ngdir} netgen.ocf];
++ 
++ .ngmenu.special.colbndcond add command -label "Select Colour Profile file" \
++    -command {
++      set types { {"Colour Profile file"   {.ocf}   } }
++      set ocffile [tk_getOpenFile -filetypes $types]
++      if {$ocffile == ""} {
++          set ocffile [file join ${ngdir} netgen.ocf]; }
++      } 
++ .ngmenu.special.colbndcond add command -label "Profile based Assignment" \
++      -command { Ng_AutoColourBcProps profile ${ocffile}; redraw }
++
++
++# menu .mbar.stl.menu
++# .mbar.stl.menu add command -label "STL options" \
++#     -command { stloptionsdialog; }
++#.mbar.stl.menu add command -label "STL Doctor" \
++#    -command { stldoctordialog; }
++
++
++#####################################################
++#                                                   #
++#     Menu Help                                     #
++#                                                   #
++#####################################################
++
++
++
++
++menu .ngmenu.help
++# .ngmenu.help add command -label "Ng Help..." \
++\#    -command { help_main }
++# .ngmenu.view add checkbutton -variable showsensitivehelp \
++#     -label "Sensitve Help" \
++#     -command { sensitivehelpdialog $showsensitivehelp }
++.ngmenu.view add checkbutton -label "Help Line" -variable showhelpline \
++      -command {
++    if { $showhelpline == 1} {
++      pack .helpline -before .statbar -side bottom -fill x -padx 3p
++    } {
++      pack forget .helpline 
++    }
++} 
++
++.ngmenu.help add command -label "About..." \
++    -command {
++tk_messageBox -message "This is NETGEN \nmainly written by \nJoachim Schoeberl \nthanks to \nRobert Gaisbauer, Johannes Gerstmayr, Philippose Rajan"
++}
++
++# tk_menuBar .mbar .mbar.file .mbar.mesh .mbar.test .mbar.help
++# focus .mbar
++
++
++
++
++#####################################################
++#                                                   #
++#     Button bar                                    #
++#                                                   #
++#####################################################
++
++frame .bubar -relief raised -bd 2
++pack .bubar -side top -fill x
++
++button .bubar.testb -text "Test" -command { Ng_SaveGeometry }
++button .bubar.surfm -text "Generate Mesh" -command \
++    { 
++      .ngmenu.mesh invoke "Generate Mesh"; 
++#     set selectvisual mesh; 
++#     Ng_SetVisParameters;
++#     Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
++#     redraw 
++    }
++button .bubar.stopm -text "Stop" -command \
++    { 
++      # Ng_StopMeshing;  
++      set multithread_terminate 1;
++      set stopdemo 1;
++    }
++button .bubar.exitb -text "Quit" \
++    -command { 
++         set ans [tk_messageBox -title "Quit Netgen?" -message "Do you really want to quit Netgen?" -type yesno -default "no" -icon question]
++         if { $ans == "yes" } {
++           .ngmenu.file invoke "Quit"; 
++         }     
++      }
++pack  .bubar.exitb .bubar.surfm .bubar.stopm -side left
++
++#button .bubar.scan -text "Scan" \
++#    -command { Ng_ParseGeometry; set selectvisual geometry; Ng_SetVisParameters; redraw }
++
++button .bubar.zoomall -text "Zoom All" \
++    -command { Ng_ZoomAll; redraw }
++
++button .bubar.center -text "Center" \
++    -command { Ng_Center; redraw }
++
++# tk_optionMenu .bubar.modesel drawmode "rotate" "move  " "zoom  "
++tixOptionMenu .bubar.modesel \
++    -options {
++      label.width  0
++      label.anchor e
++      menubutton.width 6
++    } \
++    -variable drawmode
++
++.bubar.modesel add command rotate -label Rotate
++.bubar.modesel add command move -label Move
++.bubar.modesel add command zoom -label Zoom
++
++
++
++set viewvals { geometry specpoints mesh solution}
++if { $userlevel == 3} {
++    set viewvals { geometry mesh specpoints surfmeshing modelview solution}
++}
++
++set viewvallabs(cross)     "Cross" 
++set viewvallabs(geometry)  "Geometry" 
++set viewvallabs(mesh)      "Mesh" 
++set viewvallabs(specpoints) "Edges" 
++set viewvallabs(surfmeshing) "Mesh Gen" 
++set viewvallabs(modelview)     "Modeller" 
++set viewvallabs(solution)     "Solution" 
++
++tixOptionMenu .bubar.selview \
++    -options {
++      label.width  0
++      label.anchor e
++      menubutton.width 10
++    } \
++
++foreach viewv $viewvals {
++    .bubar.selview add command $viewv -label $viewvallabs($viewv)
++}
++
++
++
++.bubar.selview config -variable selectvisual
++.bubar.selview config -command { Ng_SetVisParameters; redraw }
++
++
++pack .bubar.modesel -side right
++pack forget .bubar.modesel
++pack .bubar.center .bubar.zoomall .bubar.selview -side right
++
++.ngmenu.view add checkbutton -variable viewrotatebutton \
++    -label "Enable LeftButton Selection" \
++    -command { 
++      if { $viewrotatebutton } {
++          pack .bubar.modesel -side right
++      } {
++          pack forget .bubar.modesel
++      }
++    }
++
++
++
++
++#####################################################
++#                                                   #
++#     Status bar                                    #
++#                                                   #
++#####################################################
++
++label .helpline -text "None"
++pack forget .helpline -side bottom -fill x
++
++frame .statbar -relief flat -bd 2
++pack .statbar -side bottom -fill x
++
++label .statbar.ptslabel -text "Points: "
++label .statbar.ptsval -textvariable status_np
++label .statbar.elslabel -text "   Elements: "
++label .statbar.elsval -textvariable status_ne
++label .statbar.selslabel -text "   Surf Elements: "
++label .statbar.selsval -textvariable status_nse
++# label .statbar.memlabel -text "   Mem: "
++# label .statbar.memval -textvariable mem_moveable
++label .statbar.task -textvariable status_task
++
++pack .statbar.ptslabel .statbar.ptsval -side left -ipady 3p 
++pack .statbar.elslabel .statbar.elsval -side left -ipady 3p 
++pack .statbar.selslabel .statbar.selsval -side left -ipady 3p
++
++# if { $userlevel == 3 } {
++#    pack .statbar.memlabel .statbar.memval -side left -ipady 3p
++# }
++
++
++tixMeter .statbar.per -value 0 -text 0%
++.statbar.per configure -fillcolor blue
++
++pack .statbar.per -side right
++pack .statbar.task -side right -ipady 4
++
++set qualbaraxis(0) 0
++set qualbar(0) 0
++set qualbarnull(0) 0
++
++
++
++proc timer2 { } {
++    global status_np
++    global status_ne
++    global status_nse
++    global multithread_running
++    global multithread_redraw
++    global status_working
++    global status_task
++    global status_percent
++    global status_tetqualclasses
++    
++
++    Ng_ReadStatus 
++
++    if { $multithread_redraw == 1 } {
++      set multithread_redraw 0;
++      redraw;
++        
++        global videoactive
++        if { $videoactive == 1 } {
++            puts "addframe"
++            .ndraw Ng_VideoClip addframe
++        }
++    }
++
++    # global mem_moveable
++    # set mem_moveable [Ng_MemInfo moveable]
++
++
++    .statbar.per config -value [expr $status_percent/100] -text [format %2.1f [expr 0.1*int(10*$status_percent)]]%
++
++
++    if { $multithread_running } {
++      pack .statbar.per -side right -before .statbar.task -padx 6
++    } { 
++      pack forget .statbar.per
++    }
++      
++
++
++    # tet quality
++    if {[winfo exists .qualityview_dlg] == 1} {
++      
++      global qualbar
++      global qualbarnull
++      global qualbaraxis
++
++      set maxval 0
++      for {set i 0} {$i < 20} {incr i} {
++          if {[lindex $status_tetqualclasses $i] > $maxval} {
++              set maxval [lindex $status_tetqualclasses $i]
++          }
++      } 
++
++      set ubound 1
++      while { $ubound < $maxval } {
++          set ubound [expr {10 * $ubound}]
++      }
++      if { $ubound/5 > $maxval } {
++          set ubound [expr $ubound/5]
++      }
++      if { $ubound/2 > $maxval } {
++          set ubound [expr $ubound/2]
++      }
++
++
++      
++      for {set i 1} {$i <= 5} {incr i} {
++          # global qualbaraxis($i)
++
++          set value [expr { $i * $ubound / 5 }]
++          .qualityview_dlg.c dchars $qualbaraxis($i) 0 end
++          .qualityview_dlg.c insert $qualbaraxis($i) end $value  
++      }
++
++      
++      for {set i 0} {$i < 20} {incr i} {
++          set x1 [expr {100 + ($i*15) + 2}]
++          set x2 [expr {$x1+10}]
++          
++          set nbrs [lindex $status_tetqualclasses $i]
++          set y [expr (249 - (200 * $nbrs / $ubound ) )]
++          
++          # global qualbar($i)
++          .qualityview_dlg.c coords $qualbar($i) $x1 250 $x2 $y
++
++#         global qualbarnull($i)
++          if { $nbrs == 0 } {
++              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text 0
++          } {
++              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text "" 
++          }           
++      }
++      
++    }
++
++
++    if {[winfo exists .memuse_dlg] == 1} {    
++      
++      global memmark
++      set usemb [Ng_MemInfo usedmb]
++      for {set i 0} {$i < [string length $usemb] } {incr i} {
++          if { [string index $usemb $i] == 0 } {
++              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 68 [expr 50+$i] 70
++          } {
++              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 50 [expr 50+$i] 70
++          }
++      }
++
++    }
++    after 30 { timer2 }
++}
++# after 1000 { timer2 }
++timer2
++
++
++
++
++proc bgerror { error } {
++    global errorInfo userlevel
++    if { $userlevel == 3} {
++      puts "ERROR: $error" 
++      puts "errinfo: $errorInfo"
++    }
++    tk_messageBox -title "Error Message" -message $error -type ok 
++}
++
++
++
++
++
++
++proc smh2 { menuitem } {
++    if {[catch {$menuitem entrycget active -label} name]} {
++      set name "    "
++    } 
++    show_menu_help $name 
++    update idletasks
++}
++
++bind .ngmenu <<MenuSelect>> { smh2 %W }
++bind .ngmenu.file <<MenuSelect>> { smh2 %W }
++bind .ngmenu.geometry <<MenuSelect>> { smh2 %W }
++bind .ngmenu.mesh <<MenuSelect>> { smh2 %W }
++bind .ngmenu.view <<MenuSelect>> { smh2 %W }
++bind .ngmenu.meshsize <<MenuSelect>> { smh2 %W }
++bind .ngmenu.special <<MenuSelect>> { smh2 %W }
++bind .ngmenu.help <<MenuSelect>> { smh2 %W }
++
++
++# command bindings  
++bind . <q> { .ngmenu.file invoke "Quit" }
++bind . <l><g> { .ngmenu.file invoke "Load Geometry..." }  ; 
++bind . <l><m> { .ngmenu.file invoke "Load Mesh..." }  ;
++bind . <s><m> { .ngmenu.file invoke "Save Mesh..." }  ;
++bind . <r><f> { .ngmenu.file activate "Recent Files" }  ;
++bind . <n><p> { newprimitivedialog }      ; # 
++bind . <e><p> { editprimitivedialog }
++bind . <e><s> { newsoliddialog }
++bind . <g><m> { .ngmenu.mesh invoke "Generate Mesh" }  ;
++
++
++
++
++
+diff -Naur netgen-5.3.1_SRC_orig/ng/netgen.ocf netgen-5.3.1_SRC_modif/ng/netgen.ocf
+--- netgen-5.3.1_SRC_orig/ng/netgen.ocf        2014-08-29 13:54:01.000000000 +0400
++++ netgen-5.3.1_SRC_modif/ng/netgen.ocf       2019-11-14 16:56:26.630334076 +0300
+@@ -1,32 +1,32 @@
+-# Netgen Mesher\r
+-# Boundary Condition Colour Profile\r
+-#\r
+-# Name: netgen.ocf\r
+-#\r
+-# Description: Netgen default colour \r
+-# profile file for colour based automatic \r
+-# assignment of boundary condition numbers\r
+-#\r
+-# Format: \r
+-# [boundary_colours] (mandatory keyword)\r
+-# <num of entries>\r
+-# <bc_num1> <R> <G> <B>\r
+-# <bc_num2> <R> <G> <B>\r
+-# ....\r
+-# ....\r
+-# NOTE: \r
+-# * Currently, the default Boundary \r
+-# Condition number assigned to faces without \r
+-# any colour defined is "1"\r
+-# * Boundary Condition number "0" is invalid, \r
+-# and should not be used\r
+-\r
+-boundary_colours\r
+-7\r
+-2     0.0000  0.0000  0.0000\r
+-3     1.0000  0.0000  0.0000\r
+-4     0.0000  0.0000  1.0000\r
+-5     1.0000  1.0000  0.0000\r
+-6     0.0000  1.0000  1.0000\r
+-7     1.0000  0.0000  1.0000\r
+-8     1.0000  1.0000  1.0000\r
++# Netgen Mesher
++# Boundary Condition Colour Profile
++#
++# Name: netgen.ocf
++#
++# Description: Netgen default colour 
++# profile file for colour based automatic 
++# assignment of boundary condition numbers
++#
++# Format: 
++# [boundary_colours] (mandatory keyword)
++# <num of entries>
++# <bc_num1> <R> <G> <B>
++# <bc_num2> <R> <G> <B>
++# ....
++# ....
++# NOTE: 
++# * Currently, the default Boundary 
++# Condition number assigned to faces without 
++# any colour defined is "1"
++# * Boundary Condition number "0" is invalid, 
++# and should not be used
++
++boundary_colours
++7
++2     0.0000  0.0000  0.0000
++3     1.0000  0.0000  0.0000
++4     0.0000  0.0000  1.0000
++5     1.0000  1.0000  0.0000
++6     0.0000  1.0000  1.0000
++7     1.0000  0.0000  1.0000
++8     1.0000  1.0000  1.0000
+diff -Naur netgen-5.3.1_SRC_orig/ng/parameters.tcl netgen-5.3.1_SRC_modif/ng/parameters.tcl
+--- netgen-5.3.1_SRC_orig/ng/parameters.tcl    2014-08-29 13:54:01.000000000 +0400
++++ netgen-5.3.1_SRC_modif/ng/parameters.tcl   2019-11-14 16:56:26.658333292 +0300
+@@ -1,50 +1,50 @@
+-proc setgranularity { gran } {\r
+-#\r
+-#    puts "set granularity $gran"\r
+-#\r
+-    if {$gran == 6} { return }\r
+-    set gran [expr $gran - 1]\r
+-#\r
+-    global options.curvaturesafety\r
+-    set surfcurvlist { 1 1.5 2 3 5 }\r
+-    set options.curvaturesafety [lindex $surfcurvlist $gran]\r
+-\r
+-    global options.segmentsperedge\r
+-    set spelist { 0.3 0.5 1 2 3 }\r
+-    set options.segmentsperedge [lindex $spelist $gran]\r
+-    \r
+-    global stloptions.resthsurfcurvfac\r
+-    set surfcurvfaclist { 0.25 0.5 1 1.5 3 }\r
+-    set stloptions.resthsurfcurvfac [lindex $surfcurvfaclist $gran]\r
+-\r
+-    global stloptions.resthchartdistfac\r
+-    set chartdistfaclist { 0.8 1 1.5 2 5 }\r
+-    set stloptions.resthchartdistfac [lindex $chartdistfaclist $gran]\r
+-\r
+-    global stloptions.resthlinelengthfac\r
+-    set linelengthfaclist { 0.2 0.35 0.5 1.5 3 }\r
+-    set stloptions.resthlinelengthfac [lindex $linelengthfaclist $gran]\r
+-\r
+-    global stloptions.resthcloseedgefac\r
+-    set closeedgefaclist { 0.5 1 2 3.5 5 }\r
+-    set stloptions.resthcloseedgefac [lindex $closeedgefaclist $gran]\r
+-\r
+-      global stloptions.resthminedgelen\r
+-    set minedgelenlist { 0.002 0.02 0.2 1.0 2.0 5.0 10.0 }\r
+-    set stloptions.resthminedgelen [lindex $minedgelenlist $gran]\r
+-      \r
+-    global stloptions.resthedgeanglefac\r
+-    set edgeanglefaclist { 0.25 0.5 1 1.5 3 }\r
+-    set stloptions.resthedgeanglefac [lindex $edgeanglefaclist $gran]\r
+-\r
+-\r
+-    global stloptions.resthsurfmeshcurvfac \r
+-    set surfmeshcurvlist { 1 1.5 2 3 5 }\r
+-    set stloptions.resthsurfmeshcurvfac [lindex $surfmeshcurvlist $gran]\r
+-\r
+-\r
+-    global options.grading\r
+-    set gradinglist { 0.7 0.5 0.3 0.2 0.1 }\r
+-    set options.grading [lindex $gradinglist $gran]\r
+-    \r
+-}\r
++proc setgranularity { gran } {
++#
++#    puts "set granularity $gran"
++#
++    if {$gran == 6} { return }
++    set gran [expr $gran - 1]
++#
++    global options.curvaturesafety
++    set surfcurvlist { 1 1.5 2 3 5 }
++    set options.curvaturesafety [lindex $surfcurvlist $gran]
++
++    global options.segmentsperedge
++    set spelist { 0.3 0.5 1 2 3 }
++    set options.segmentsperedge [lindex $spelist $gran]
++    
++    global stloptions.resthsurfcurvfac
++    set surfcurvfaclist { 0.25 0.5 1 1.5 3 }
++    set stloptions.resthsurfcurvfac [lindex $surfcurvfaclist $gran]
++
++    global stloptions.resthchartdistfac
++    set chartdistfaclist { 0.8 1 1.5 2 5 }
++    set stloptions.resthchartdistfac [lindex $chartdistfaclist $gran]
++
++    global stloptions.resthlinelengthfac
++    set linelengthfaclist { 0.2 0.35 0.5 1.5 3 }
++    set stloptions.resthlinelengthfac [lindex $linelengthfaclist $gran]
++
++    global stloptions.resthcloseedgefac
++    set closeedgefaclist { 0.5 1 2 3.5 5 }
++    set stloptions.resthcloseedgefac [lindex $closeedgefaclist $gran]
++
++      global stloptions.resthminedgelen
++    set minedgelenlist { 0.002 0.02 0.2 1.0 2.0 5.0 10.0 }
++    set stloptions.resthminedgelen [lindex $minedgelenlist $gran]
++      
++    global stloptions.resthedgeanglefac
++    set edgeanglefaclist { 0.25 0.5 1 1.5 3 }
++    set stloptions.resthedgeanglefac [lindex $edgeanglefaclist $gran]
++
++
++    global stloptions.resthsurfmeshcurvfac 
++    set surfmeshcurvlist { 1 1.5 2 3 5 }
++    set stloptions.resthsurfmeshcurvfac [lindex $surfmeshcurvlist $gran]
++
++
++    global options.grading
++    set gradinglist { 0.7 0.5 0.3 0.2 0.1 }
++    set options.grading [lindex $gradinglist $gran]
++    
++}
+diff -Naur netgen-5.3.1_SRC_orig/ng/variables.tcl netgen-5.3.1_SRC_modif/ng/variables.tcl
+--- netgen-5.3.1_SRC_orig/ng/variables.tcl     2014-08-29 13:54:01.000000000 +0400
++++ netgen-5.3.1_SRC_modif/ng/variables.tcl    2019-11-14 16:56:26.674332844 +0300
+@@ -1,706 +1,706 @@
+-# netgen global tcl-variables\r
+-\r
+-set drawmode rotate\r
+-set selectvisual geometry\r
+-\r
+-set dirname .\r
+-set loadgeomtypevar "All Geometry types"\r
+-\r
+-set basefilename filename\r
+-\r
+-set meshoptions.fineness 3\r
+-set meshoptions.firststep ag\r
+-set meshoptions.laststep ov\r
+-set options.memory 0\r
+-\r
+-set options.localh 1\r
+-set options.delaunay 1\r
+-set options.checkoverlap 1\r
+-set options.checkoverlappingboundary 0\r
+-set options.checkchartboundary 1\r
+-set options.startinsurface 0\r
+-set options.blockfill 1\r
+-set options.debugmode 0\r
+-set options.dooptimize 1\r
+-set options.parthread 1\r
+-set options.elsizeweight 0.2\r
+-set options.secondorder 0\r
+-set options.elementorder 1\r
+-set options.quad 0\r
+-set options.inverttets 0\r
+-set options.inverttrigs 0\r
+-set options.autozrefine 0\r
+-\r
+-\r
+-set options.meshsize 1000\r
+-set options.minmeshsize 0\r
+-\r
+-set options.curvaturesafety 2\r
+-set options.segmentsperedge 2\r
+-set options.meshsizefilename ""\r
+-set options.badellimit 175\r
+-set options.optsteps2d 3\r
+-set options.optsteps3d 5\r
+-set options.opterrpow 2\r
+-\r
+-set options.grading 0.5\r
+-set options.printmsg 2\r
+-\r
+-set debug.slowchecks 0\r
+-set debug.debugoutput 0\r
+-set debug.haltexistingline 0\r
+-set debug.haltoverlap 0\r
+-set debug.haltsuccess 0\r
+-set debug.haltnosuccess 0\r
+-set debug.haltlargequalclass 0\r
+-set debug.haltsegment 0\r
+-set debug.haltnode 0\r
+-set debug.haltface 0\r
+-set debug.haltfacenr 0\r
+-set debug.haltsegmentp1 0\r
+-set debug.haltsegmentp2 0\r
+-\r
+-set geooptions.drawcsg 1\r
+-set geooptions.detail 0.001\r
+-set geooptions.accuracy 1e-6\r
+-set geooptions.facets 20\r
+-set geooptions.minx -1000\r
+-set geooptions.miny -1000\r
+-set geooptions.minz -1000\r
+-set geooptions.maxx 1000\r
+-set geooptions.maxy 1000\r
+-set geooptions.maxz 1000\r
+-\r
+-set viewqualityplot 0\r
+-set memuseplot 0\r
+-set viewrotatebutton 0\r
+-set showsensitivehelp 0\r
+-set showhelpline 0\r
+-\r
+-set viewoptions.specpointvlen 0.3\r
+-set viewoptions.light.amb 0.3\r
+-set viewoptions.light.diff 0.7\r
+-set viewoptions.light.spec 1\r
+-set viewoptions.light.locviewer 0\r
+-set viewoptions.mat.shininess 50\r
+-set viewoptions.mat.transp 0.3\r
+-set viewoptions.colormeshsize 0\r
+-set viewoptions.whitebackground 1\r
+-set viewoptions.drawcoordinatecross 1\r
+-set viewoptions.drawcolorbar 1\r
+-set viewoptions.drawnetgenlogo 1\r
+-set viewoptions.stereo 0\r
+-set viewoptions.shrink 1\r
+-\r
+-set viewoptions.drawfilledtrigs 1\r
+-set viewoptions.drawedges 0\r
+-set viewoptions.drawbadels 0\r
+-set viewoptions.centerpoint 0\r
+-set viewoptions.drawelement 0\r
+-set viewoptions.drawoutline 1\r
+-set viewoptions.drawtets 0\r
+-set viewoptions.drawtetsdomain 0\r
+-set viewoptions.drawprisms 0\r
+-set viewoptions.drawpyramids 0\r
+-set viewoptions.drawhexes 0\r
+-set viewoptions.drawidentified 0\r
+-set viewoptions.drawpointnumbers 0\r
+-set viewoptions.drawedgenumbers 0\r
+-set viewoptions.drawfacenumbers 0\r
+-set viewoptions.drawelementnumbers 0\r
+-set viewoptions.drawdomainsurf 0\r
+-\r
+-set viewoptions.drawededges 1\r
+-set viewoptions.drawedpoints 1\r
+-set viewoptions.drawedpointnrs 0\r
+-set viewoptions.drawedtangents 0\r
+-set viewoptions.drawededgenrs 0\r
+-set viewoptions.drawmetispartition 0\r
+-\r
+-set viewoptions.drawcurveproj 0\r
+-set viewoptions.drawcurveprojedge 1\r
+-\r
+-set viewoptions.clipping.nx 0\r
+-set viewoptions.clipping.ny 1\r
+-set viewoptions.clipping.nz 0\r
+-set viewoptions.clipping.dist 0\r
+-set viewoptions.clipping.dist2 0\r
+-set viewoptions.clipping.enable 0\r
+-set viewoptions.clipping.onlydomain 0\r
+-set viewoptions.clipping.notdomain 0\r
+-\r
+-set viewoptions.usecentercoords 0\r
+-set viewoptions.centerx 0\r
+-set viewoptions.centery 0\r
+-set viewoptions.centerz 0\r
+-\r
+-set viewoptions.drawspecpoint 0\r
+-set viewoptions.specpointx 0\r
+-set viewoptions.specpointy 0\r
+-set viewoptions.specpointz 0\r
+-\r
+-\r
+-set stloptions.showtrias 0\r
+-set stloptions.showfilledtrias 1\r
+-set stloptions.showedges 1\r
+-set stloptions.showmarktrias 0\r
+-set stloptions.showactivechart 0\r
+-set stloptions.yangle 30\r
+-set stloptions.contyangle 20\r
+-set stloptions.edgecornerangle 60\r
+-set stloptions.chartangle 15\r
+-set stloptions.outerchartangle 70\r
+-set stloptions.usesearchtree 0\r
+-set stloptions.chartnumber 1\r
+-set stloptions.charttrignumber 1\r
+-set stloptions.chartnumberoffset 0\r
+-\r
+-set stloptions.atlasminh 0.1\r
+-set stloptions.resthsurfcurvfac 2\r
+-set stloptions.resthsurfcurvenable 0\r
+-set stloptions.resthatlasfac 2\r
+-set stloptions.resthatlasenable 1\r
+-set stloptions.resthchartdistfac 1.2\r
+-set stloptions.resthchartdistenable 1\r
+-set stloptions.resthlinelengthfac 0.5\r
+-set stloptions.resthlinelengthenable 1\r
+-set stloptions.resthcloseedgefac 1\r
+-set stloptions.resthcloseedgeenable 1\r
+-set stloptions.resthminedgelen 0.01\r
+-set stloptions.resthminedgelenenable 1\r
+-set stloptions.resthedgeanglefac 1\r
+-set stloptions.resthedgeangleenable 0\r
+-set stloptions.resthsurfmeshcurvfac 1\r
+-set stloptions.resthsurfmeshcurvenable 0\r
+-set stloptions.recalchopt 1\r
+-\r
+-set stldoctor.drawmeshededges 1\r
+-set stldoctor.geom_tol_fact 0.000001\r
+-set stldoctor.useexternaledges 0\r
+-set stldoctor.showfaces 0\r
+-set stldoctor.conecheck 1\r
+-set stldoctor.spiralcheck 1\r
+-set stldoctor.selecttrig 0\r
+-set stldoctor.selectmode 1\r
+-set stldoctor.longlinefact 0\r
+-set stldoctor.showexcluded 1\r
+-set stldoctor.edgeselectmode 0\r
+-set stldoctor.nodeofseltrig 1\r
+-set stldoctor.showtouchedtrigchart 0\r
+-set stldoctor.showedgecornerpoints 0\r
+-set stldoctor.showmarkedtrigs 1\r
+-set stldoctor.dirtytrigfact 0.01\r
+-set stldoctor.smoothangle 90\r
+-set stldoctor.selectwithmouse 1\r
+-set stldoctor.showvicinity 0\r
+-set stldoctor.vicinity 50\r
+-set stldoctor.smoothnormalsweight 0.2\r
+-\r
+-set occoptions.showvolumenr 0\r
+-set occoptions.showsurfaces 1\r
+-set occoptions.showedges 1\r
+-set occoptions.showsolidnr 0\r
+-set occoptions.showsolidnr2 0\r
+-set occoptions.visproblemfaces 0\r
+-set occoptions.zoomtohighlightedentity 0\r
+-set occoptions.deflection 1\r
+-set occoptions.tolerance 1e-3\r
+-set occoptions.fixsmalledges 1\r
+-set occoptions.fixspotstripfaces 1\r
+-set occoptions.sewfaces 1\r
+-set occoptions.makesolids 1\r
+-set occoptions.splitpartitions 0\r
+-\r
+-set meshdoctor.active 0\r
+-set meshdoctor.markedgedist 1\r
+-\r
+-\r
+-# variablenname mit punkt problematisch!\r
+-set status_np 0\r
+-set status_ne 0\r
+-set status_nse 0\r
+-set status_working " "\r
+-set status_task " "\r
+-set status_percent 0\r
+-set status_filename 0\r
+-set status_tetqualclasses "10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40"\r
+-\r
+-set exportfiletype "Neutral Format"\r
+-\r
+-set preproc.facenr 0\r
+-set preproc.selectmode query\r
+-set preproc.numtrig 0\r
+-\r
+-set mem_moveable 0\r
+-\r
+-\r
+-set multithread_pause 0\r
+-set multithread_testmode 0\r
+-set multithread_redraw 0\r
+-set multithread_drawing 0\r
+-set multithread_terminate 0\r
+-set multithread_running 0\r
+-\r
+-set level 0\r
+-\r
+-\r
+-set tablesforoutput {}\r
+-\r
+-\r
+-\r
+-set optlist {\r
+-    options.localh \r
+-    options.delaunay \r
+-    options.checkoverlap \r
+-    options.startinsurface \r
+-    options.blockfill \r
+-    options.dooptimize \r
+-    options.elsizeweight \r
+-    options.meshsize \r
+-    options.minmeshsize \r
+-    options.curvaturesafety \r
+-    options.optsteps2d \r
+-    options.optsteps3d \r
+-    options.secondorder\r
+-}\r
+-\r
+-\r
+-set visoptions.usetexture 1\r
+-set visoptions.invcolor 0\r
+-set visoptions.imaginary 0\r
+-set visoptions.lineartexture 0\r
+-set visoptions.numtexturecols 16\r
+-set visoptions.showclipsolution 1\r
+-set visoptions.showsurfacesolution 0\r
+-set visoptions.drawfieldlines 0\r
+-set visoptions.drawpointcurves 1\r
+-set visoptions.numfieldlines 100\r
+-set visoptions.fieldlinesrandomstart 0\r
+-set visoptions.fieldlinesstartarea box\r
+-set visoptions.fieldlinesstartareap1x 1\r
+-set visoptions.fieldlinesstartareap1y 1\r
+-set visoptions.fieldlinesstartareap1z 1\r
+-set visoptions.fieldlinesstartareap2x 0\r
+-set visoptions.fieldlinesstartareap2y 0\r
+-set visoptions.fieldlinesstartareap2z 0\r
+-set visoptions.fieldlinesstartface -1\r
+-set visoptions.fieldlinesfilename none\r
+-set visoptions.fieldlinestolerance 0.0005\r
+-set visoptions.fieldlinesrktype crungekutta\r
+-set visoptions.fieldlineslength 0.5\r
+-set visoptions.fieldlinesmaxpoints 500\r
+-set visoptions.fieldlinesthickness 0.0015\r
+-set visoptions.fieldlinesvecfunction none\r
+-set visoptions.fieldlinesphase 0\r
+-set visoptions.fieldlinesonlyonephase 1\r
+-\r
+-\r
+-set visoptions.lineplotfile empty\r
+-set visoptions.lineplotsource file\r
+-set visoptions.lineplotusingx 0\r
+-set visoptions.lineplotusingy 1\r
+-set visoptions.lineplotautoscale 1\r
+-set visoptions.lineplotxmin 0\r
+-set visoptions.lineplotxmax 1\r
+-set visoptions.lineplotymin 0\r
+-set visoptions.lineplotymax 1\r
+-set visoptions.lineplotcurrentnum -1\r
+-set visoptions.lineplotinfos ""\r
+-set visoptions.lineplotselected none\r
+-set visoptions.lineplotselector ""\r
+-set visoptions.lineplotcolor red\r
+-set visoptions.lineplotsizex 500\r
+-set visoptions.lineplotsizey 400\r
+-set visoptions.lineplotselectedeval 0\r
+-set visoptions.lineplotdatadescr "column1 column2 column3"\r
+-set visoptions.lineplotxcoordselector ""\r
+-set visoptions.lineplotycoordselector ""\r
+-set visoptions.evaluatefilenames none\r
+-set visoptions.evaluatefiledescriptions none\r
+-\r
+-\r
+-set visoptions.clipsolution none\r
+-set visoptions.scalfunction none\r
+-set visoptions.vecfunction none\r
+-set visoptions.evaluate abs\r
+-set visoptions.gridsize 20\r
+-set visoptions.xoffset 0\r
+-set visoptions.yoffset 0\r
+-set visoptions.autoscale 1\r
+-set visoptions.redrawperiodic 0\r
+-set visoptions.logscale 0\r
+-set visoptions.mminval 0\r
+-set visoptions.mmaxval 1\r
+-set visoptions.isolines 0\r
+-set visoptions.isosurf 0\r
+-set visoptions.subdivisions 1\r
+-set visoptions.numiso 10\r
+-set visoptions.autoredraw 0\r
+-set visoptions.autoredrawtime 2\r
+-set visoptions.simulationtime 0\r
+-set visoptions.multidimcomponent 0\r
+-\r
+-# deform by vector function\r
+-set visoptions.deformation 0\r
+-set visoptions.scaledeform1 1\r
+-set visoptions.scaledeform2 1\r
+-\r
+-set parallel_netgen 0\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-set optfilename [file join $nguserdir ng.opt]\r
+-set inifilename [file join $nguserdir ng.ini]\r
+-set meshinifilename [file join $nguserdir ngmesh.ini]\r
+-\r
+-global env\r
+-if { [llength [array names env NG_OPT]] == 1 } {\r
+-    if { [string length $env(NG_OPT)] > 0 } {\r
+-      set optfilename $env(NG_OPT) \r
+-    }\r
+-}\r
+-\r
+-if { [file exists $optfilename] == 1 } {\r
+-    set datei [open $optfilename r]\r
+-    while { [gets $datei line] >= 0 } {\r
+-      set [lindex $line 0] [lindex $line 1]\r
+-    }\r
+-    close $datei\r
+-} {\r
+-    puts "optfile $optfilename does not exist - using default values"\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-proc saveoptions { } {\r
+-    uplevel 1  {\r
+-      set file $optfilename\r
+-      \r
+-      if {$file != ""} {\r
+-          set datei [open $file w]\r
+-          puts $datei "dirname  ${dirname}"\r
+-          puts $datei "loadgeomtypevar  \"${loadgeomtypevar}\""\r
+-          puts $datei "exportfiletype  \"${exportfiletype}\""\r
+-          puts $datei "meshoptions.fineness  ${meshoptions.fineness}"\r
+-          puts $datei "meshoptions.firststep ${meshoptions.firststep}"\r
+-          puts $datei "meshoptions.laststep  ${meshoptions.laststep}" \r
+-          puts $datei "options.localh  ${options.localh}"\r
+-          puts $datei "options.delaunay  ${options.delaunay}"\r
+-          puts $datei "options.checkoverlap  ${options.checkoverlap}"\r
+-          puts $datei "options.checkchartboundary  ${options.checkchartboundary}"\r
+-          puts $datei "options.startinsurface  ${options.startinsurface}" \r
+-          puts $datei "options.blockfill  ${options.blockfill}" \r
+-          puts $datei "options.debugmode  ${options.debugmode}" \r
+-          puts $datei "options.dooptimize ${options.dooptimize}" \r
+-          puts $datei "options.parthread  ${options.parthread}"  \r
+-          puts $datei "options.elsizeweight  ${options.elsizeweight}" \r
+-          puts $datei "options.secondorder  ${options.secondorder}" \r
+-          puts $datei "options.elementorder  ${options.elementorder}" \r
+-#         puts $datei "options.memory  ${options.memory}" \r
+-          puts $datei "options.quad  ${options.quad}" \r
+-          puts $datei "options.inverttets  ${options.inverttets}" \r
+-          puts $datei "options.inverttrigs  ${options.inverttrigs}" \r
+-          puts $datei "options.autozrefine ${options.autozrefine}" \r
+-          puts $datei "options.meshsize  ${options.meshsize}" \r
+-          puts $datei "options.minmeshsize  ${options.minmeshsize}" \r
+-          puts $datei "options.curvaturesafety  ${options.curvaturesafety}" \r
+-          puts $datei "options.segmentsperedge  ${options.segmentsperedge}" \r
+-          puts $datei "options.meshsizefilename  ${options.meshsizefilename}" \r
+-          puts $datei "options.badellimit  ${options.badellimit}" \r
+-          puts $datei "options.optsteps2d  ${options.optsteps2d}" \r
+-          puts $datei "options.optsteps3d  ${options.optsteps3d}" \r
+-          puts $datei "options.opterrpow  ${options.opterrpow}" \r
+-          puts $datei "options.grading  ${options.grading}" \r
+-          puts $datei "options.printmsg  ${options.printmsg}" \r
+-          puts $datei "geooptions.drawcsg  ${geooptions.drawcsg}" \r
+-          puts $datei "geooptions.detail  ${geooptions.detail}" \r
+-          puts $datei "geooptions.accuracy  ${geooptions.accuracy}" \r
+-          puts $datei "geooptions.facets  ${geooptions.facets}" \r
+-          puts $datei "geooptions.minx  ${geooptions.minx}" \r
+-          puts $datei "geooptions.miny  ${geooptions.miny}" \r
+-          puts $datei "geooptions.minz  ${geooptions.minz}" \r
+-          puts $datei "geooptions.maxx  ${geooptions.maxx}" \r
+-          puts $datei "geooptions.maxy  ${geooptions.maxy}" \r
+-          puts $datei "geooptions.maxz  ${geooptions.maxz}" \r
+-          puts $datei "viewoptions.specpointvlen  ${viewoptions.specpointvlen}" \r
+-          puts $datei "viewoptions.light.amb  ${viewoptions.light.amb}" \r
+-          puts $datei "viewoptions.light.diff ${viewoptions.light.diff}"\r
+-          puts $datei "viewoptions.light.spec ${viewoptions.light.spec}"\r
+-          puts $datei "viewoptions.light.locviewer ${viewoptions.light.locviewer}"\r
+-          puts $datei "viewoptions.mat.shininess  ${viewoptions.mat.shininess}" \r
+-          puts $datei "viewoptions.mat.transp  ${viewoptions.mat.transp}" \r
+-          puts $datei "viewoptions.colormeshsize ${viewoptions.colormeshsize}"\r
+-          puts $datei "viewoptions.whitebackground  ${viewoptions.whitebackground}" \r
+-          puts $datei "viewoptions.drawcolorbar  ${viewoptions.drawcolorbar}" \r
+-          puts $datei "viewoptions.drawcoordinatecross  ${viewoptions.drawcoordinatecross}" \r
+-          puts $datei "viewoptions.drawnetgenlogo  ${viewoptions.drawnetgenlogo}" \r
+-          puts $datei "viewoptions.stereo  ${viewoptions.stereo}" \r
+-          puts $datei "viewoptions.drawfilledtrigs  ${viewoptions.drawfilledtrigs}" \r
+-          puts $datei "viewoptions.drawedges  ${viewoptions.drawedges}" \r
+-          puts $datei "viewoptions.drawbadels  ${viewoptions.drawbadels}" \r
+-          puts $datei "viewoptions.centerpoint  ${viewoptions.centerpoint}" \r
+-          puts $datei "viewoptions.drawelement  ${viewoptions.drawelement}" \r
+-          puts $datei "viewoptions.drawoutline  ${viewoptions.drawoutline}" \r
+-          puts $datei "viewoptions.drawtets  ${viewoptions.drawtets}"\r
+-          puts $datei "viewoptions.drawprisms  ${viewoptions.drawprisms}"\r
+-          puts $datei "viewoptions.drawpyramids  ${viewoptions.drawpyramids}" \r
+-          puts $datei "viewoptions.drawhexes  ${viewoptions.drawhexes}" \r
+-          puts $datei "viewoptions.drawidentified  ${viewoptions.drawidentified}" \r
+-          puts $datei "viewoptions.drawpointnumbers  ${viewoptions.drawpointnumbers}" \r
+-          \r
+-          puts $datei "viewoptions.drawededges  ${viewoptions.drawededges}" \r
+-          puts $datei "viewoptions.drawedpoints  ${viewoptions.drawedpoints}" \r
+-          puts $datei "viewoptions.drawedpointnrs  ${viewoptions.drawedpointnrs}" \r
+-          puts $datei "viewoptions.drawedtangents  ${viewoptions.drawedtangents}" \r
+-          puts $datei "viewoptions.shrink  ${viewoptions.shrink}" \r
+-          \r
+-          puts $datei "stloptions.showtrias  ${stloptions.showtrias}" \r
+-          puts $datei "stloptions.showfilledtrias  ${stloptions.showfilledtrias}" \r
+-          puts $datei "stloptions.showedges  ${stloptions.showedges}" \r
+-          puts $datei "stloptions.showmarktrias  ${stloptions.showmarktrias}" \r
+-          puts $datei "stloptions.showactivechart  ${stloptions.showactivechart}" \r
+-          puts $datei "stloptions.yangle  ${stloptions.yangle}" \r
+-          puts $datei "stloptions.contyangle  ${stloptions.contyangle}" \r
+-          puts $datei "stloptions.edgecornerangle  ${stloptions.edgecornerangle}" \r
+-          puts $datei "stloptions.chartangle  ${stloptions.chartangle}" \r
+-          puts $datei "stloptions.outerchartangle  ${stloptions.outerchartangle}" \r
+-          puts $datei "stloptions.usesearchtree  ${stloptions.usesearchtree}" \r
+-          puts $datei "stloptions.chartnumber  ${stloptions.chartnumber}" \r
+-          puts $datei "stloptions.charttrignumber  ${stloptions.charttrignumber}" \r
+-          puts $datei "stloptions.chartnumberoffset  ${stloptions.chartnumberoffset}" \r
+-          puts $datei "stloptions.atlasminh  ${stloptions.atlasminh}" \r
+-          puts $datei "stloptions.resthsurfcurvfac  ${stloptions.resthsurfcurvfac}" \r
+-          puts $datei "stloptions.resthsurfcurvenable  ${stloptions.resthsurfcurvenable}" \r
+-          puts $datei "stloptions.resthatlasfac  ${stloptions.resthatlasfac}" \r
+-          puts $datei "stloptions.resthatlasenable  ${stloptions.resthatlasenable}" \r
+-          puts $datei "stloptions.resthchartdistfac  ${stloptions.resthchartdistfac}" \r
+-          puts $datei "stloptions.resthchartdistenable  ${stloptions.resthchartdistenable}" \r
+-          puts $datei "stloptions.resthlinelengthfac  ${stloptions.resthlinelengthfac}" \r
+-          puts $datei "stloptions.resthlinelengthenable  ${stloptions.resthlinelengthenable}" \r
+-              puts $datei "stloptions.resthminedgelen ${stloptions.resthminedgelen}"\r
+-              puts $datei "stloptions.resthminedgelenenable ${stloptions.resthminedgelenenable}"\r
+-          puts $datei "stloptions.resthcloseedgefac  ${stloptions.resthcloseedgefac}" \r
+-          puts $datei "stloptions.resthcloseedgeenable  ${stloptions.resthcloseedgeenable}" \r
+-          puts $datei "stloptions.resthedgeanglefac  ${stloptions.resthedgeanglefac}" \r
+-          puts $datei "stloptions.resthedgeangleenable  ${stloptions.resthedgeangleenable}" \r
+-          puts $datei "stloptions.resthsurfmeshcurvfac  ${stloptions.resthsurfmeshcurvfac}" \r
+-          puts $datei "stloptions.resthsurfmeshcurvenable  ${stloptions.resthsurfmeshcurvenable}" \r
+-          puts $datei "stloptions.recalchopt  ${stloptions.recalchopt}" \r
+-          \r
+-          puts $datei "visoptions.subdivisions ${visoptions.subdivisions}"\r
+-          puts $datei "visoptions.autoredraw ${visoptions.autoredraw}"\r
+-          puts $datei "visoptions.autoredrawtime ${visoptions.autoredrawtime}"\r
+-\r
+-\r
+-          # trafo options   \r
+-          # if exist trafooptions then ...\r
+-          if { [info exists trafooptions.solver] == 1 } {\r
+-              puts $datei "trafooptions.solver ${trafooptions.solver}" \r
+-              puts $datei "trafooptions.levels ${trafooptions.levels}" \r
+-              puts $datei "trafooptions.linits ${trafooptions.linits}" \r
+-              puts $datei "trafooptions.nonlinits ${trafooptions.nonlinits}" \r
+-              puts $datei "trafooptions.stabcurrent ${trafooptions.stabcurrent}" \r
+-              puts $datei "trafooptions.checkcond ${trafooptions.checkcond}" \r
+-              puts $datei "trafooptions.maxdirect ${trafooptions.maxdirect}" \r
+-              puts $datei "trafooptions.secondorder ${trafooptions.secondorder}" \r
+-              puts $datei "trafooptions.homogenizedcore ${trafooptions.homogenizedcore}" \r
+-              puts $datei "trafooptions.ordercore ${trafooptions.ordercore}" \r
+-              puts $datei "trafooptions.simplecurrents ${trafooptions.simplecurrents}" \r
+-              puts $datei "trafooptions.assemblecomplexmatrix ${trafooptions.assemblecomplexmatrix}" \r
+-\r
+-              puts $datei "trafooptions.meshcasing  ${trafooptions.meshcasing}" \r
+-              puts $datei "trafooptions.meshcore    ${trafooptions.meshcore}" \r
+-              puts $datei "trafooptions.meshclumps  ${trafooptions.meshclumps}" \r
+-              puts $datei "trafooptions.meshshields ${trafooptions.meshshields}" \r
+-              puts $datei "trafooptions.meshcoils   ${trafooptions.meshcoils}" \r
+-              puts $datei "trafooptions.bcmdirectory  ${trafooptions.bcmdirectory}" \r
+-              puts $datei "trafooptions.lossdensityfile  ${trafooptions.lossdensityfile}" \r
+-          }\r
+-\r
+-          if { [info exists smalltrafomodell.tankheight] == 1 } {\r
+-              puts $datei "smalltrafomodell.tankheight ${smalltrafomodell.tankheight}"\r
+-              puts $datei "smalltrafomodell.tankwidth ${smalltrafomodell.tankwidth}"\r
+-              puts $datei "smalltrafomodell.tanklength ${smalltrafomodell.tanklength}"\r
+-              puts $datei "smalltrafomodell.corewidth ${smalltrafomodell.corewidth}"\r
+-              puts $datei "smalltrafomodell.windowheight ${smalltrafomodell.windowheight}"\r
+-              puts $datei "smalltrafomodell.limbdistance ${smalltrafomodell.limbdistance}"\r
+-              puts $datei "smalltrafomodell.xposcore ${smalltrafomodell.xposcore}"\r
+-              puts $datei "smalltrafomodell.yposcore ${smalltrafomodell.yposcore}"\r
+-              puts $datei "smalltrafomodell.zposcore ${smalltrafomodell.zposcore}"\r
+-              puts $datei "smalltrafomodell.leakagefluxguidethickness ${smalltrafomodell.leakagefluxguidethickness}"\r
+-              puts $datei "smalltrafomodell.leakagefluxguidewidth ${smalltrafomodell.leakagefluxguidewidth}"\r
+-              puts $datei "smalltrafomodell.leakagefluxguidezposition ${smalltrafomodell.leakagefluxguidezposition}"\r
+-              puts $datei "smalltrafomodell.limbcoil.1 ${smalltrafomodell.limbcoil.1}"\r
+-              puts $datei "smalltrafomodell.ricoil.1 ${smalltrafomodell.ricoil.1}"\r
+-              puts $datei "smalltrafomodell.rocoil.1 ${smalltrafomodell.rocoil.1}"\r
+-              puts $datei "smalltrafomodell.zposcoil.1 ${smalltrafomodell.zposcoil.1}"\r
+-              puts $datei "smalltrafomodell.heightcoil.1 ${smalltrafomodell.heightcoil.1}"\r
+-              puts $datei "smalltrafomodell.currentcoil.1 ${smalltrafomodell.currentcoil.1}"\r
+-              puts $datei "smalltrafomodell.nturnscoil.1 ${smalltrafomodell.nturnscoil.1}"\r
+-              puts $datei "smalltrafomodell.limbcoil.2 ${smalltrafomodell.limbcoil.2}"\r
+-              puts $datei "smalltrafomodell.ricoil.2 ${smalltrafomodell.ricoil.2}"\r
+-              puts $datei "smalltrafomodell.rocoil.2 ${smalltrafomodell.rocoil.2}"\r
+-              puts $datei "smalltrafomodell.zposcoil.2 ${smalltrafomodell.zposcoil.2}"\r
+-              puts $datei "smalltrafomodell.heightcoil.2 ${smalltrafomodell.heightcoil.2}"\r
+-              puts $datei "smalltrafomodell.currentcoil.2 ${smalltrafomodell.currentcoil.2}"\r
+-              puts $datei "smalltrafomodell.nturnscoil.2 ${smalltrafomodell.nturnscoil.2}"\r
+-              puts $datei "smalltrafomodell.limbcoil.3 ${smalltrafomodell.limbcoil.3}"\r
+-              puts $datei "smalltrafomodell.ricoil.3 ${smalltrafomodell.ricoil.3}"\r
+-              puts $datei "smalltrafomodell.rocoil.3 ${smalltrafomodell.rocoil.3}"\r
+-              puts $datei "smalltrafomodell.zposcoil.3 ${smalltrafomodell.zposcoil.3}"\r
+-              puts $datei "smalltrafomodell.heightcoil.3 ${smalltrafomodell.heightcoil.3}"\r
+-              puts $datei "smalltrafomodell.currentcoil.3 ${smalltrafomodell.currentcoil.3}"\r
+-              puts $datei "smalltrafomodell.nturnscoil.3 ${smalltrafomodell.nturnscoil.3}"\r
+-              puts $datei "smalltrafomodell.limbcoil.4 ${smalltrafomodell.limbcoil.4}"\r
+-              puts $datei "smalltrafomodell.ricoil.4 ${smalltrafomodell.ricoil.4}"\r
+-              puts $datei "smalltrafomodell.rocoil.4 ${smalltrafomodell.rocoil.4}"\r
+-              puts $datei "smalltrafomodell.zposcoil.4 ${smalltrafomodell.zposcoil.4}"\r
+-              puts $datei "smalltrafomodell.heightcoil.4 ${smalltrafomodell.heightcoil.4}"\r
+-              puts $datei "smalltrafomodell.currentcoil.4 ${smalltrafomodell.currentcoil.4}"\r
+-              puts $datei "smalltrafomodell.nturnscoil.4 ${smalltrafomodell.nturnscoil.4}"\r
+-              puts $datei "smalltrafomodell.limbcoil.5 ${smalltrafomodell.limbcoil.5}"\r
+-              puts $datei "smalltrafomodell.ricoil.5 ${smalltrafomodell.ricoil.5}"\r
+-              puts $datei "smalltrafomodell.rocoil.5 ${smalltrafomodell.rocoil.5}"\r
+-              puts $datei "smalltrafomodell.zposcoil.5 ${smalltrafomodell.zposcoil.5}"\r
+-              puts $datei "smalltrafomodell.heightcoil.5 ${smalltrafomodell.heightcoil.5}"\r
+-              puts $datei "smalltrafomodell.currentcoil.5 ${smalltrafomodell.currentcoil.5}"\r
+-              puts $datei "smalltrafomodell.nturnscoil.5 ${smalltrafomodell.nturnscoil.5}"\r
+-              puts $datei "smalltrafomodell.limbcoil.6 ${smalltrafomodell.limbcoil.6}"\r
+-              puts $datei "smalltrafomodell.ricoil.6 ${smalltrafomodell.ricoil.6}"\r
+-              puts $datei "smalltrafomodell.rocoil.6 ${smalltrafomodell.rocoil.6}"\r
+-              puts $datei "smalltrafomodell.zposcoil.6 ${smalltrafomodell.zposcoil.6}"\r
+-              puts $datei "smalltrafomodell.heightcoil.6 ${smalltrafomodell.heightcoil.6}"\r
+-              puts $datei "smalltrafomodell.currentcoil.6 ${smalltrafomodell.currentcoil.6}"\r
+-              puts $datei "smalltrafomodell.nturnscoil.6 ${smalltrafomodell.nturnscoil.6}"\r
+-              puts $datei "smalltrafomodell.limbtest.1 ${smalltrafomodell.limbtest.1}"\r
+-              puts $datei "smalltrafomodell.heighttest.1 ${smalltrafomodell.heighttest.1}"\r
+-              puts $datei "smalltrafomodell.widthtest.1 ${smalltrafomodell.widthtest.1}"\r
+-              puts $datei "smalltrafomodell.rtest.1 ${smalltrafomodell.rtest.1}"\r
+-              puts $datei "smalltrafomodell.zpostest.1 ${smalltrafomodell.zpostest.1}"\r
+-              puts $datei "smalltrafomodell.edgeradiustest.1 ${smalltrafomodell.edgeradiustest.1}"\r
+-              puts $datei "smalltrafomodell.finetest.1 ${smalltrafomodell.finetest.1}"\r
+-              puts $datei "smalltrafomodell.conductivetest.1 ${smalltrafomodell.conductivetest.1}"\r
+-              puts $datei "smalltrafomodell.limbtest.2 ${smalltrafomodell.limbtest.2}"\r
+-              puts $datei "smalltrafomodell.heighttest.2 ${smalltrafomodell.heighttest.2}"\r
+-              puts $datei "smalltrafomodell.widthtest.2 ${smalltrafomodell.widthtest.2}"\r
+-              puts $datei "smalltrafomodell.rtest.2 ${smalltrafomodell.rtest.2}"\r
+-              puts $datei "smalltrafomodell.zpostest.2 ${smalltrafomodell.zpostest.2}"\r
+-              puts $datei "smalltrafomodell.edgeradiustest.2 ${smalltrafomodell.edgeradiustest.2}"\r
+-              puts $datei "smalltrafomodell.finetest.2 ${smalltrafomodell.finetest.2}"\r
+-              puts $datei "smalltrafomodell.conductivetest.2 ${smalltrafomodell.conductivetest.2}"\r
+-              puts $datei "smalltrafomodell.limbtest.3 ${smalltrafomodell.limbtest.3}"\r
+-              puts $datei "smalltrafomodell.heighttest.3 ${smalltrafomodell.heighttest.3}"\r
+-              puts $datei "smalltrafomodell.widthtest.3 ${smalltrafomodell.widthtest.3}"\r
+-              puts $datei "smalltrafomodell.rtest.3 ${smalltrafomodell.rtest.3}"\r
+-              puts $datei "smalltrafomodell.zpostest.3 ${smalltrafomodell.zpostest.3}"\r
+-              puts $datei "smalltrafomodell.edgeradiustest.3 ${smalltrafomodell.edgeradiustest.3}"\r
+-              puts $datei "smalltrafomodell.finetest.3 ${smalltrafomodell.finetest.3}"\r
+-              puts $datei "smalltrafomodell.conductivetest.3 ${smalltrafomodell.conductivetest.3}"\r
+-              puts $datei "smalltrafomodell.limbtest.4 ${smalltrafomodell.limbtest.4}"\r
+-              puts $datei "smalltrafomodell.heighttest.4 ${smalltrafomodell.heighttest.4}"\r
+-              puts $datei "smalltrafomodell.widthtest.4 ${smalltrafomodell.widthtest.4}"\r
+-              puts $datei "smalltrafomodell.rtest.4 ${smalltrafomodell.rtest.4}"\r
+-              puts $datei "smalltrafomodell.zpostest.4 ${smalltrafomodell.zpostest.4}"\r
+-              puts $datei "smalltrafomodell.edgeradiustest.4 ${smalltrafomodell.edgeradiustest.4}"\r
+-              puts $datei "smalltrafomodell.finetest.4 ${smalltrafomodell.finetest.4}"\r
+-              puts $datei "smalltrafomodell.conductivetest.4 ${smalltrafomodell.conductivetest.4}"\r
+-              puts $datei "smalltrafomodell.nperitest ${smalltrafomodell.nperitest}"\r
+-              puts $datei "smalltrafomodell.filename ${smalltrafomodell.filename}"\r
+-              puts $datei "smalltrafomodell.murlfguide ${smalltrafomodell.murlfguide}"\r
+-              puts $datei "smalltrafomodell.murtestwire ${smalltrafomodell.murtestwire}"\r
+-              puts $datei "smalltrafomodell.murcore ${smalltrafomodell.murcore}"\r
+-              puts $datei "smalltrafomodell.kappalfguide ${smalltrafomodell.kappalfguide}"\r
+-              puts $datei "smalltrafomodell.kappatestwire ${smalltrafomodell.kappatestwire}"\r
+-              puts $datei "smalltrafomodell.kappacore ${smalltrafomodell.kappacore}"\r
+-          }\r
+-          \r
+-          \r
+-          close $datei\r
+-      }\r
+-    }\r
+-}\r
+-\r
+-\r
+-\r
+-\r
+-# the ini file is saved on demand :\r
+-proc saveinifile { } {\r
+-    global inifilename\r
+-    if {[catch { set datei [open $inifilename w] } result ]} {\r
+-      puts "cannot write file $inifilename"\r
+-    } {\r
+-      for { set i [.ngmenu.file.recent index last] } { $i >= 1 } { incr i -1 } {\r
+-          puts $datei "recentfile \"[.ngmenu.file.recent entrycget $i -label]\""\r
+-      }\r
+-      close $datei\r
+-    }    \r
+-}\r
+-\r
+-\r
+-proc savemeshinifile { } {\r
+-    global meshinifilename \r
+-    if {[catch { set datei [open $meshinifilename w] } result ]} {\r
+-      puts "cannot write file $meshinifilename"\r
+-    } {\r
+-      for { set i [.ngmenu.file.recentmesh index last] } { $i >= 1 } { incr i -1 } {\r
+-          puts $datei "recentfile \"[.ngmenu.file.recentmesh entrycget $i -label]\""\r
+-      }\r
+-      close $datei\r
+-    }    \r
+-}\r
+-\r
+-\r
+-\r
+-proc loadinifile { } { \r
+-    global inifilename\r
+-    if { [file exists $inifilename] == 1 } {\r
+-      set datei [open $inifilename r]\r
+-      while { [gets $datei line] >= 0 } {\r
+-          if {[lindex $line 0] == "recentfile"} {\r
+-                  set filename [lindex $line 1]\r
+-                  if { [file exists $filename] == 1 } {\r
+-                      AddRecentFile $filename\r
+-                  }   \r
+-          }\r
+-      }\r
+-      close $datei\r
+-    }\r
+-}\r
+-\r
+-\r
+-proc loadmeshinifile { } {\r
+-    global meshinifilename\r
+-    if { [file exists $meshinifilename] == 1 } {\r
+-      set datei [open $meshinifilename r]\r
+-      while { [gets $datei line] >= 0 } {\r
+-          if {[lindex $line 0] == "recentfile"} {\r
+-              set filename [lindex $line 1]\r
+-              if { [file exists $filename] == 1 } {\r
+-                  AddRecentMeshFile $filename\r
+-              }       \r
+-          }\r
+-      }\r
+-      close $datei\r
+-    }\r
+- }\r
+-\r
+-\r
+-\r
+-\r
+-\r
+-set cmdindex {}\r
+-set hlpindex {}\r
+-set secindex {}\r
++# netgen global tcl-variables
++
++set drawmode rotate
++set selectvisual geometry
++
++set dirname .
++set loadgeomtypevar "All Geometry types"
++
++set basefilename filename
++
++set meshoptions.fineness 3
++set meshoptions.firststep ag
++set meshoptions.laststep ov
++set options.memory 0
++
++set options.localh 1
++set options.delaunay 1
++set options.checkoverlap 1
++set options.checkoverlappingboundary 0
++set options.checkchartboundary 1
++set options.startinsurface 0
++set options.blockfill 1
++set options.debugmode 0
++set options.dooptimize 1
++set options.parthread 1
++set options.elsizeweight 0.2
++set options.secondorder 0
++set options.elementorder 1
++set options.quad 0
++set options.inverttets 0
++set options.inverttrigs 0
++set options.autozrefine 0
++
++
++set options.meshsize 1000
++set options.minmeshsize 0
++
++set options.curvaturesafety 2
++set options.segmentsperedge 2
++set options.meshsizefilename ""
++set options.badellimit 175
++set options.optsteps2d 3
++set options.optsteps3d 5
++set options.opterrpow 2
++
++set options.grading 0.5
++set options.printmsg 2
++
++set debug.slowchecks 0
++set debug.debugoutput 0
++set debug.haltexistingline 0
++set debug.haltoverlap 0
++set debug.haltsuccess 0
++set debug.haltnosuccess 0
++set debug.haltlargequalclass 0
++set debug.haltsegment 0
++set debug.haltnode 0
++set debug.haltface 0
++set debug.haltfacenr 0
++set debug.haltsegmentp1 0
++set debug.haltsegmentp2 0
++
++set geooptions.drawcsg 1
++set geooptions.detail 0.001
++set geooptions.accuracy 1e-6
++set geooptions.facets 20
++set geooptions.minx -1000
++set geooptions.miny -1000
++set geooptions.minz -1000
++set geooptions.maxx 1000
++set geooptions.maxy 1000
++set geooptions.maxz 1000
++
++set viewqualityplot 0
++set memuseplot 0
++set viewrotatebutton 0
++set showsensitivehelp 0
++set showhelpline 0
++
++set viewoptions.specpointvlen 0.3
++set viewoptions.light.amb 0.3
++set viewoptions.light.diff 0.7
++set viewoptions.light.spec 1
++set viewoptions.light.locviewer 0
++set viewoptions.mat.shininess 50
++set viewoptions.mat.transp 0.3
++set viewoptions.colormeshsize 0
++set viewoptions.whitebackground 1
++set viewoptions.drawcoordinatecross 1
++set viewoptions.drawcolorbar 1
++set viewoptions.drawnetgenlogo 1
++set viewoptions.stereo 0
++set viewoptions.shrink 1
++
++set viewoptions.drawfilledtrigs 1
++set viewoptions.drawedges 0
++set viewoptions.drawbadels 0
++set viewoptions.centerpoint 0
++set viewoptions.drawelement 0
++set viewoptions.drawoutline 1
++set viewoptions.drawtets 0
++set viewoptions.drawtetsdomain 0
++set viewoptions.drawprisms 0
++set viewoptions.drawpyramids 0
++set viewoptions.drawhexes 0
++set viewoptions.drawidentified 0
++set viewoptions.drawpointnumbers 0
++set viewoptions.drawedgenumbers 0
++set viewoptions.drawfacenumbers 0
++set viewoptions.drawelementnumbers 0
++set viewoptions.drawdomainsurf 0
++
++set viewoptions.drawededges 1
++set viewoptions.drawedpoints 1
++set viewoptions.drawedpointnrs 0
++set viewoptions.drawedtangents 0
++set viewoptions.drawededgenrs 0
++set viewoptions.drawmetispartition 0
++
++set viewoptions.drawcurveproj 0
++set viewoptions.drawcurveprojedge 1
++
++set viewoptions.clipping.nx 0
++set viewoptions.clipping.ny 1
++set viewoptions.clipping.nz 0
++set viewoptions.clipping.dist 0
++set viewoptions.clipping.dist2 0
++set viewoptions.clipping.enable 0
++set viewoptions.clipping.onlydomain 0
++set viewoptions.clipping.notdomain 0
++
++set viewoptions.usecentercoords 0
++set viewoptions.centerx 0
++set viewoptions.centery 0
++set viewoptions.centerz 0
++
++set viewoptions.drawspecpoint 0
++set viewoptions.specpointx 0
++set viewoptions.specpointy 0
++set viewoptions.specpointz 0
++
++
++set stloptions.showtrias 0
++set stloptions.showfilledtrias 1
++set stloptions.showedges 1
++set stloptions.showmarktrias 0
++set stloptions.showactivechart 0
++set stloptions.yangle 30
++set stloptions.contyangle 20
++set stloptions.edgecornerangle 60
++set stloptions.chartangle 15
++set stloptions.outerchartangle 70
++set stloptions.usesearchtree 0
++set stloptions.chartnumber 1
++set stloptions.charttrignumber 1
++set stloptions.chartnumberoffset 0
++
++set stloptions.atlasminh 0.1
++set stloptions.resthsurfcurvfac 2
++set stloptions.resthsurfcurvenable 0
++set stloptions.resthatlasfac 2
++set stloptions.resthatlasenable 1
++set stloptions.resthchartdistfac 1.2
++set stloptions.resthchartdistenable 1
++set stloptions.resthlinelengthfac 0.5
++set stloptions.resthlinelengthenable 1
++set stloptions.resthcloseedgefac 1
++set stloptions.resthcloseedgeenable 1
++set stloptions.resthminedgelen 0.01
++set stloptions.resthminedgelenenable 1
++set stloptions.resthedgeanglefac 1
++set stloptions.resthedgeangleenable 0
++set stloptions.resthsurfmeshcurvfac 1
++set stloptions.resthsurfmeshcurvenable 0
++set stloptions.recalchopt 1
++
++set stldoctor.drawmeshededges 1
++set stldoctor.geom_tol_fact 0.000001
++set stldoctor.useexternaledges 0
++set stldoctor.showfaces 0
++set stldoctor.conecheck 1
++set stldoctor.spiralcheck 1
++set stldoctor.selecttrig 0
++set stldoctor.selectmode 1
++set stldoctor.longlinefact 0
++set stldoctor.showexcluded 1
++set stldoctor.edgeselectmode 0
++set stldoctor.nodeofseltrig 1
++set stldoctor.showtouchedtrigchart 0
++set stldoctor.showedgecornerpoints 0
++set stldoctor.showmarkedtrigs 1
++set stldoctor.dirtytrigfact 0.01
++set stldoctor.smoothangle 90
++set stldoctor.selectwithmouse 1
++set stldoctor.showvicinity 0
++set stldoctor.vicinity 50
++set stldoctor.smoothnormalsweight 0.2
++
++set occoptions.showvolumenr 0
++set occoptions.showsurfaces 1
++set occoptions.showedges 1
++set occoptions.showsolidnr 0
++set occoptions.showsolidnr2 0
++set occoptions.visproblemfaces 0
++set occoptions.zoomtohighlightedentity 0
++set occoptions.deflection 1
++set occoptions.tolerance 1e-3
++set occoptions.fixsmalledges 1
++set occoptions.fixspotstripfaces 1
++set occoptions.sewfaces 1
++set occoptions.makesolids 1
++set occoptions.splitpartitions 0
++
++set meshdoctor.active 0
++set meshdoctor.markedgedist 1
++
++
++# variablenname mit punkt problematisch!
++set status_np 0
++set status_ne 0
++set status_nse 0
++set status_working " "
++set status_task " "
++set status_percent 0
++set status_filename 0
++set status_tetqualclasses "10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40"
++
++set exportfiletype "Neutral Format"
++
++set preproc.facenr 0
++set preproc.selectmode query
++set preproc.numtrig 0
++
++set mem_moveable 0
++
++
++set multithread_pause 0
++set multithread_testmode 0
++set multithread_redraw 0
++set multithread_drawing 0
++set multithread_terminate 0
++set multithread_running 0
++
++set level 0
++
++
++set tablesforoutput {}
++
++
++
++set optlist {
++    options.localh 
++    options.delaunay 
++    options.checkoverlap 
++    options.startinsurface 
++    options.blockfill 
++    options.dooptimize 
++    options.elsizeweight 
++    options.meshsize 
++    options.minmeshsize 
++    options.curvaturesafety 
++    options.optsteps2d 
++    options.optsteps3d 
++    options.secondorder
++}
++
++
++set visoptions.usetexture 1
++set visoptions.invcolor 0
++set visoptions.imaginary 0
++set visoptions.lineartexture 0
++set visoptions.numtexturecols 16
++set visoptions.showclipsolution 1
++set visoptions.showsurfacesolution 0
++set visoptions.drawfieldlines 0
++set visoptions.drawpointcurves 1
++set visoptions.numfieldlines 100
++set visoptions.fieldlinesrandomstart 0
++set visoptions.fieldlinesstartarea box
++set visoptions.fieldlinesstartareap1x 1
++set visoptions.fieldlinesstartareap1y 1
++set visoptions.fieldlinesstartareap1z 1
++set visoptions.fieldlinesstartareap2x 0
++set visoptions.fieldlinesstartareap2y 0
++set visoptions.fieldlinesstartareap2z 0
++set visoptions.fieldlinesstartface -1
++set visoptions.fieldlinesfilename none
++set visoptions.fieldlinestolerance 0.0005
++set visoptions.fieldlinesrktype crungekutta
++set visoptions.fieldlineslength 0.5
++set visoptions.fieldlinesmaxpoints 500
++set visoptions.fieldlinesthickness 0.0015
++set visoptions.fieldlinesvecfunction none
++set visoptions.fieldlinesphase 0
++set visoptions.fieldlinesonlyonephase 1
++
++
++set visoptions.lineplotfile empty
++set visoptions.lineplotsource file
++set visoptions.lineplotusingx 0
++set visoptions.lineplotusingy 1
++set visoptions.lineplotautoscale 1
++set visoptions.lineplotxmin 0
++set visoptions.lineplotxmax 1
++set visoptions.lineplotymin 0
++set visoptions.lineplotymax 1
++set visoptions.lineplotcurrentnum -1
++set visoptions.lineplotinfos ""
++set visoptions.lineplotselected none
++set visoptions.lineplotselector ""
++set visoptions.lineplotcolor red
++set visoptions.lineplotsizex 500
++set visoptions.lineplotsizey 400
++set visoptions.lineplotselectedeval 0
++set visoptions.lineplotdatadescr "column1 column2 column3"
++set visoptions.lineplotxcoordselector ""
++set visoptions.lineplotycoordselector ""
++set visoptions.evaluatefilenames none
++set visoptions.evaluatefiledescriptions none
++
++
++set visoptions.clipsolution none
++set visoptions.scalfunction none
++set visoptions.vecfunction none
++set visoptions.evaluate abs
++set visoptions.gridsize 20
++set visoptions.xoffset 0
++set visoptions.yoffset 0
++set visoptions.autoscale 1
++set visoptions.redrawperiodic 0
++set visoptions.logscale 0
++set visoptions.mminval 0
++set visoptions.mmaxval 1
++set visoptions.isolines 0
++set visoptions.isosurf 0
++set visoptions.subdivisions 1
++set visoptions.numiso 10
++set visoptions.autoredraw 0
++set visoptions.autoredrawtime 2
++set visoptions.simulationtime 0
++set visoptions.multidimcomponent 0
++
++# deform by vector function
++set visoptions.deformation 0
++set visoptions.scaledeform1 1
++set visoptions.scaledeform2 1
++
++set parallel_netgen 0
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++set optfilename [file join $nguserdir ng.opt]
++set inifilename [file join $nguserdir ng.ini]
++set meshinifilename [file join $nguserdir ngmesh.ini]
++
++global env
++if { [llength [array names env NG_OPT]] == 1 } {
++    if { [string length $env(NG_OPT)] > 0 } {
++      set optfilename $env(NG_OPT) 
++    }
++}
++
++if { [file exists $optfilename] == 1 } {
++    set datei [open $optfilename r]
++    while { [gets $datei line] >= 0 } {
++      set [lindex $line 0] [lindex $line 1]
++    }
++    close $datei
++} {
++    puts "optfile $optfilename does not exist - using default values"
++}
++
++
++
++
++proc saveoptions { } {
++    uplevel 1  {
++      set file $optfilename
++      
++      if {$file != ""} {
++          set datei [open $file w]
++          puts $datei "dirname  ${dirname}"
++          puts $datei "loadgeomtypevar  \"${loadgeomtypevar}\""
++          puts $datei "exportfiletype  \"${exportfiletype}\""
++          puts $datei "meshoptions.fineness  ${meshoptions.fineness}"
++          puts $datei "meshoptions.firststep ${meshoptions.firststep}"
++          puts $datei "meshoptions.laststep  ${meshoptions.laststep}" 
++          puts $datei "options.localh  ${options.localh}"
++          puts $datei "options.delaunay  ${options.delaunay}"
++          puts $datei "options.checkoverlap  ${options.checkoverlap}"
++          puts $datei "options.checkchartboundary  ${options.checkchartboundary}"
++          puts $datei "options.startinsurface  ${options.startinsurface}" 
++          puts $datei "options.blockfill  ${options.blockfill}" 
++          puts $datei "options.debugmode  ${options.debugmode}" 
++          puts $datei "options.dooptimize ${options.dooptimize}" 
++          puts $datei "options.parthread  ${options.parthread}"  
++          puts $datei "options.elsizeweight  ${options.elsizeweight}" 
++          puts $datei "options.secondorder  ${options.secondorder}" 
++          puts $datei "options.elementorder  ${options.elementorder}" 
++#         puts $datei "options.memory  ${options.memory}" 
++          puts $datei "options.quad  ${options.quad}" 
++          puts $datei "options.inverttets  ${options.inverttets}" 
++          puts $datei "options.inverttrigs  ${options.inverttrigs}" 
++          puts $datei "options.autozrefine ${options.autozrefine}" 
++          puts $datei "options.meshsize  ${options.meshsize}" 
++          puts $datei "options.minmeshsize  ${options.minmeshsize}" 
++          puts $datei "options.curvaturesafety  ${options.curvaturesafety}" 
++          puts $datei "options.segmentsperedge  ${options.segmentsperedge}" 
++          puts $datei "options.meshsizefilename  ${options.meshsizefilename}" 
++          puts $datei "options.badellimit  ${options.badellimit}" 
++          puts $datei "options.optsteps2d  ${options.optsteps2d}" 
++          puts $datei "options.optsteps3d  ${options.optsteps3d}" 
++          puts $datei "options.opterrpow  ${options.opterrpow}" 
++          puts $datei "options.grading  ${options.grading}" 
++          puts $datei "options.printmsg  ${options.printmsg}" 
++          puts $datei "geooptions.drawcsg  ${geooptions.drawcsg}" 
++          puts $datei "geooptions.detail  ${geooptions.detail}" 
++          puts $datei "geooptions.accuracy  ${geooptions.accuracy}" 
++          puts $datei "geooptions.facets  ${geooptions.facets}" 
++          puts $datei "geooptions.minx  ${geooptions.minx}" 
++          puts $datei "geooptions.miny  ${geooptions.miny}" 
++          puts $datei "geooptions.minz  ${geooptions.minz}" 
++          puts $datei "geooptions.maxx  ${geooptions.maxx}" 
++          puts $datei "geooptions.maxy  ${geooptions.maxy}" 
++          puts $datei "geooptions.maxz  ${geooptions.maxz}" 
++          puts $datei "viewoptions.specpointvlen  ${viewoptions.specpointvlen}" 
++          puts $datei "viewoptions.light.amb  ${viewoptions.light.amb}" 
++          puts $datei "viewoptions.light.diff ${viewoptions.light.diff}"
++          puts $datei "viewoptions.light.spec ${viewoptions.light.spec}"
++          puts $datei "viewoptions.light.locviewer ${viewoptions.light.locviewer}"
++          puts $datei "viewoptions.mat.shininess  ${viewoptions.mat.shininess}" 
++          puts $datei "viewoptions.mat.transp  ${viewoptions.mat.transp}" 
++          puts $datei "viewoptions.colormeshsize ${viewoptions.colormeshsize}"
++          puts $datei "viewoptions.whitebackground  ${viewoptions.whitebackground}" 
++          puts $datei "viewoptions.drawcolorbar  ${viewoptions.drawcolorbar}" 
++          puts $datei "viewoptions.drawcoordinatecross  ${viewoptions.drawcoordinatecross}" 
++          puts $datei "viewoptions.drawnetgenlogo  ${viewoptions.drawnetgenlogo}" 
++          puts $datei "viewoptions.stereo  ${viewoptions.stereo}" 
++          puts $datei "viewoptions.drawfilledtrigs  ${viewoptions.drawfilledtrigs}" 
++          puts $datei "viewoptions.drawedges  ${viewoptions.drawedges}" 
++          puts $datei "viewoptions.drawbadels  ${viewoptions.drawbadels}" 
++          puts $datei "viewoptions.centerpoint  ${viewoptions.centerpoint}" 
++          puts $datei "viewoptions.drawelement  ${viewoptions.drawelement}" 
++          puts $datei "viewoptions.drawoutline  ${viewoptions.drawoutline}" 
++          puts $datei "viewoptions.drawtets  ${viewoptions.drawtets}"
++          puts $datei "viewoptions.drawprisms  ${viewoptions.drawprisms}"
++          puts $datei "viewoptions.drawpyramids  ${viewoptions.drawpyramids}" 
++          puts $datei "viewoptions.drawhexes  ${viewoptions.drawhexes}" 
++          puts $datei "viewoptions.drawidentified  ${viewoptions.drawidentified}" 
++          puts $datei "viewoptions.drawpointnumbers  ${viewoptions.drawpointnumbers}" 
++          
++          puts $datei "viewoptions.drawededges  ${viewoptions.drawededges}" 
++          puts $datei "viewoptions.drawedpoints  ${viewoptions.drawedpoints}" 
++          puts $datei "viewoptions.drawedpointnrs  ${viewoptions.drawedpointnrs}" 
++          puts $datei "viewoptions.drawedtangents  ${viewoptions.drawedtangents}" 
++          puts $datei "viewoptions.shrink  ${viewoptions.shrink}" 
++          
++          puts $datei "stloptions.showtrias  ${stloptions.showtrias}" 
++          puts $datei "stloptions.showfilledtrias  ${stloptions.showfilledtrias}" 
++          puts $datei "stloptions.showedges  ${stloptions.showedges}" 
++          puts $datei "stloptions.showmarktrias  ${stloptions.showmarktrias}" 
++          puts $datei "stloptions.showactivechart  ${stloptions.showactivechart}" 
++          puts $datei "stloptions.yangle  ${stloptions.yangle}" 
++          puts $datei "stloptions.contyangle  ${stloptions.contyangle}" 
++          puts $datei "stloptions.edgecornerangle  ${stloptions.edgecornerangle}" 
++          puts $datei "stloptions.chartangle  ${stloptions.chartangle}" 
++          puts $datei "stloptions.outerchartangle  ${stloptions.outerchartangle}" 
++          puts $datei "stloptions.usesearchtree  ${stloptions.usesearchtree}" 
++          puts $datei "stloptions.chartnumber  ${stloptions.chartnumber}" 
++          puts $datei "stloptions.charttrignumber  ${stloptions.charttrignumber}" 
++          puts $datei "stloptions.chartnumberoffset  ${stloptions.chartnumberoffset}" 
++          puts $datei "stloptions.atlasminh  ${stloptions.atlasminh}" 
++          puts $datei "stloptions.resthsurfcurvfac  ${stloptions.resthsurfcurvfac}" 
++          puts $datei "stloptions.resthsurfcurvenable  ${stloptions.resthsurfcurvenable}" 
++          puts $datei "stloptions.resthatlasfac  ${stloptions.resthatlasfac}" 
++          puts $datei "stloptions.resthatlasenable  ${stloptions.resthatlasenable}" 
++          puts $datei "stloptions.resthchartdistfac  ${stloptions.resthchartdistfac}" 
++          puts $datei "stloptions.resthchartdistenable  ${stloptions.resthchartdistenable}" 
++          puts $datei "stloptions.resthlinelengthfac  ${stloptions.resthlinelengthfac}" 
++          puts $datei "stloptions.resthlinelengthenable  ${stloptions.resthlinelengthenable}" 
++              puts $datei "stloptions.resthminedgelen ${stloptions.resthminedgelen}"
++              puts $datei "stloptions.resthminedgelenenable ${stloptions.resthminedgelenenable}"
++          puts $datei "stloptions.resthcloseedgefac  ${stloptions.resthcloseedgefac}" 
++          puts $datei "stloptions.resthcloseedgeenable  ${stloptions.resthcloseedgeenable}" 
++          puts $datei "stloptions.resthedgeanglefac  ${stloptions.resthedgeanglefac}" 
++          puts $datei "stloptions.resthedgeangleenable  ${stloptions.resthedgeangleenable}" 
++          puts $datei "stloptions.resthsurfmeshcurvfac  ${stloptions.resthsurfmeshcurvfac}" 
++          puts $datei "stloptions.resthsurfmeshcurvenable  ${stloptions.resthsurfmeshcurvenable}" 
++          puts $datei "stloptions.recalchopt  ${stloptions.recalchopt}" 
++          
++          puts $datei "visoptions.subdivisions ${visoptions.subdivisions}"
++          puts $datei "visoptions.autoredraw ${visoptions.autoredraw}"
++          puts $datei "visoptions.autoredrawtime ${visoptions.autoredrawtime}"
++
++
++          # trafo options   
++          # if exist trafooptions then ...
++          if { [info exists trafooptions.solver] == 1 } {
++              puts $datei "trafooptions.solver ${trafooptions.solver}" 
++              puts $datei "trafooptions.levels ${trafooptions.levels}" 
++              puts $datei "trafooptions.linits ${trafooptions.linits}" 
++              puts $datei "trafooptions.nonlinits ${trafooptions.nonlinits}" 
++              puts $datei "trafooptions.stabcurrent ${trafooptions.stabcurrent}" 
++              puts $datei "trafooptions.checkcond ${trafooptions.checkcond}" 
++              puts $datei "trafooptions.maxdirect ${trafooptions.maxdirect}" 
++              puts $datei "trafooptions.secondorder ${trafooptions.secondorder}" 
++              puts $datei "trafooptions.homogenizedcore ${trafooptions.homogenizedcore}" 
++              puts $datei "trafooptions.ordercore ${trafooptions.ordercore}" 
++              puts $datei "trafooptions.simplecurrents ${trafooptions.simplecurrents}" 
++              puts $datei "trafooptions.assemblecomplexmatrix ${trafooptions.assemblecomplexmatrix}" 
++
++              puts $datei "trafooptions.meshcasing  ${trafooptions.meshcasing}" 
++              puts $datei "trafooptions.meshcore    ${trafooptions.meshcore}" 
++              puts $datei "trafooptions.meshclumps  ${trafooptions.meshclumps}" 
++              puts $datei "trafooptions.meshshields ${trafooptions.meshshields}" 
++              puts $datei "trafooptions.meshcoils   ${trafooptions.meshcoils}" 
++              puts $datei "trafooptions.bcmdirectory  ${trafooptions.bcmdirectory}" 
++              puts $datei "trafooptions.lossdensityfile  ${trafooptions.lossdensityfile}" 
++          }
++
++          if { [info exists smalltrafomodell.tankheight] == 1 } {
++              puts $datei "smalltrafomodell.tankheight ${smalltrafomodell.tankheight}"
++              puts $datei "smalltrafomodell.tankwidth ${smalltrafomodell.tankwidth}"
++              puts $datei "smalltrafomodell.tanklength ${smalltrafomodell.tanklength}"
++              puts $datei "smalltrafomodell.corewidth ${smalltrafomodell.corewidth}"
++              puts $datei "smalltrafomodell.windowheight ${smalltrafomodell.windowheight}"
++              puts $datei "smalltrafomodell.limbdistance ${smalltrafomodell.limbdistance}"
++              puts $datei "smalltrafomodell.xposcore ${smalltrafomodell.xposcore}"
++              puts $datei "smalltrafomodell.yposcore ${smalltrafomodell.yposcore}"
++              puts $datei "smalltrafomodell.zposcore ${smalltrafomodell.zposcore}"
++              puts $datei "smalltrafomodell.leakagefluxguidethickness ${smalltrafomodell.leakagefluxguidethickness}"
++              puts $datei "smalltrafomodell.leakagefluxguidewidth ${smalltrafomodell.leakagefluxguidewidth}"
++              puts $datei "smalltrafomodell.leakagefluxguidezposition ${smalltrafomodell.leakagefluxguidezposition}"
++              puts $datei "smalltrafomodell.limbcoil.1 ${smalltrafomodell.limbcoil.1}"
++              puts $datei "smalltrafomodell.ricoil.1 ${smalltrafomodell.ricoil.1}"
++              puts $datei "smalltrafomodell.rocoil.1 ${smalltrafomodell.rocoil.1}"
++              puts $datei "smalltrafomodell.zposcoil.1 ${smalltrafomodell.zposcoil.1}"
++              puts $datei "smalltrafomodell.heightcoil.1 ${smalltrafomodell.heightcoil.1}"
++              puts $datei "smalltrafomodell.currentcoil.1 ${smalltrafomodell.currentcoil.1}"
++              puts $datei "smalltrafomodell.nturnscoil.1 ${smalltrafomodell.nturnscoil.1}"
++              puts $datei "smalltrafomodell.limbcoil.2 ${smalltrafomodell.limbcoil.2}"
++              puts $datei "smalltrafomodell.ricoil.2 ${smalltrafomodell.ricoil.2}"
++              puts $datei "smalltrafomodell.rocoil.2 ${smalltrafomodell.rocoil.2}"
++              puts $datei "smalltrafomodell.zposcoil.2 ${smalltrafomodell.zposcoil.2}"
++              puts $datei "smalltrafomodell.heightcoil.2 ${smalltrafomodell.heightcoil.2}"
++              puts $datei "smalltrafomodell.currentcoil.2 ${smalltrafomodell.currentcoil.2}"
++              puts $datei "smalltrafomodell.nturnscoil.2 ${smalltrafomodell.nturnscoil.2}"
++              puts $datei "smalltrafomodell.limbcoil.3 ${smalltrafomodell.limbcoil.3}"
++              puts $datei "smalltrafomodell.ricoil.3 ${smalltrafomodell.ricoil.3}"
++              puts $datei "smalltrafomodell.rocoil.3 ${smalltrafomodell.rocoil.3}"
++              puts $datei "smalltrafomodell.zposcoil.3 ${smalltrafomodell.zposcoil.3}"
++              puts $datei "smalltrafomodell.heightcoil.3 ${smalltrafomodell.heightcoil.3}"
++              puts $datei "smalltrafomodell.currentcoil.3 ${smalltrafomodell.currentcoil.3}"
++              puts $datei "smalltrafomodell.nturnscoil.3 ${smalltrafomodell.nturnscoil.3}"
++              puts $datei "smalltrafomodell.limbcoil.4 ${smalltrafomodell.limbcoil.4}"
++              puts $datei "smalltrafomodell.ricoil.4 ${smalltrafomodell.ricoil.4}"
++              puts $datei "smalltrafomodell.rocoil.4 ${smalltrafomodell.rocoil.4}"
++              puts $datei "smalltrafomodell.zposcoil.4 ${smalltrafomodell.zposcoil.4}"
++              puts $datei "smalltrafomodell.heightcoil.4 ${smalltrafomodell.heightcoil.4}"
++              puts $datei "smalltrafomodell.currentcoil.4 ${smalltrafomodell.currentcoil.4}"
++              puts $datei "smalltrafomodell.nturnscoil.4 ${smalltrafomodell.nturnscoil.4}"
++              puts $datei "smalltrafomodell.limbcoil.5 ${smalltrafomodell.limbcoil.5}"
++              puts $datei "smalltrafomodell.ricoil.5 ${smalltrafomodell.ricoil.5}"
++              puts $datei "smalltrafomodell.rocoil.5 ${smalltrafomodell.rocoil.5}"
++              puts $datei "smalltrafomodell.zposcoil.5 ${smalltrafomodell.zposcoil.5}"
++              puts $datei "smalltrafomodell.heightcoil.5 ${smalltrafomodell.heightcoil.5}"
++              puts $datei "smalltrafomodell.currentcoil.5 ${smalltrafomodell.currentcoil.5}"
++              puts $datei "smalltrafomodell.nturnscoil.5 ${smalltrafomodell.nturnscoil.5}"
++              puts $datei "smalltrafomodell.limbcoil.6 ${smalltrafomodell.limbcoil.6}"
++              puts $datei "smalltrafomodell.ricoil.6 ${smalltrafomodell.ricoil.6}"
++              puts $datei "smalltrafomodell.rocoil.6 ${smalltrafomodell.rocoil.6}"
++              puts $datei "smalltrafomodell.zposcoil.6 ${smalltrafomodell.zposcoil.6}"
++              puts $datei "smalltrafomodell.heightcoil.6 ${smalltrafomodell.heightcoil.6}"
++              puts $datei "smalltrafomodell.currentcoil.6 ${smalltrafomodell.currentcoil.6}"
++              puts $datei "smalltrafomodell.nturnscoil.6 ${smalltrafomodell.nturnscoil.6}"
++              puts $datei "smalltrafomodell.limbtest.1 ${smalltrafomodell.limbtest.1}"
++              puts $datei "smalltrafomodell.heighttest.1 ${smalltrafomodell.heighttest.1}"
++              puts $datei "smalltrafomodell.widthtest.1 ${smalltrafomodell.widthtest.1}"
++              puts $datei "smalltrafomodell.rtest.1 ${smalltrafomodell.rtest.1}"
++              puts $datei "smalltrafomodell.zpostest.1 ${smalltrafomodell.zpostest.1}"
++              puts $datei "smalltrafomodell.edgeradiustest.1 ${smalltrafomodell.edgeradiustest.1}"
++              puts $datei "smalltrafomodell.finetest.1 ${smalltrafomodell.finetest.1}"
++              puts $datei "smalltrafomodell.conductivetest.1 ${smalltrafomodell.conductivetest.1}"
++              puts $datei "smalltrafomodell.limbtest.2 ${smalltrafomodell.limbtest.2}"
++              puts $datei "smalltrafomodell.heighttest.2 ${smalltrafomodell.heighttest.2}"
++              puts $datei "smalltrafomodell.widthtest.2 ${smalltrafomodell.widthtest.2}"
++              puts $datei "smalltrafomodell.rtest.2 ${smalltrafomodell.rtest.2}"
++              puts $datei "smalltrafomodell.zpostest.2 ${smalltrafomodell.zpostest.2}"
++              puts $datei "smalltrafomodell.edgeradiustest.2 ${smalltrafomodell.edgeradiustest.2}"
++              puts $datei "smalltrafomodell.finetest.2 ${smalltrafomodell.finetest.2}"
++              puts $datei "smalltrafomodell.conductivetest.2 ${smalltrafomodell.conductivetest.2}"
++              puts $datei "smalltrafomodell.limbtest.3 ${smalltrafomodell.limbtest.3}"
++              puts $datei "smalltrafomodell.heighttest.3 ${smalltrafomodell.heighttest.3}"
++              puts $datei "smalltrafomodell.widthtest.3 ${smalltrafomodell.widthtest.3}"
++              puts $datei "smalltrafomodell.rtest.3 ${smalltrafomodell.rtest.3}"
++              puts $datei "smalltrafomodell.zpostest.3 ${smalltrafomodell.zpostest.3}"
++              puts $datei "smalltrafomodell.edgeradiustest.3 ${smalltrafomodell.edgeradiustest.3}"
++              puts $datei "smalltrafomodell.finetest.3 ${smalltrafomodell.finetest.3}"
++              puts $datei "smalltrafomodell.conductivetest.3 ${smalltrafomodell.conductivetest.3}"
++              puts $datei "smalltrafomodell.limbtest.4 ${smalltrafomodell.limbtest.4}"
++              puts $datei "smalltrafomodell.heighttest.4 ${smalltrafomodell.heighttest.4}"
++              puts $datei "smalltrafomodell.widthtest.4 ${smalltrafomodell.widthtest.4}"
++              puts $datei "smalltrafomodell.rtest.4 ${smalltrafomodell.rtest.4}"
++              puts $datei "smalltrafomodell.zpostest.4 ${smalltrafomodell.zpostest.4}"
++              puts $datei "smalltrafomodell.edgeradiustest.4 ${smalltrafomodell.edgeradiustest.4}"
++              puts $datei "smalltrafomodell.finetest.4 ${smalltrafomodell.finetest.4}"
++              puts $datei "smalltrafomodell.conductivetest.4 ${smalltrafomodell.conductivetest.4}"
++              puts $datei "smalltrafomodell.nperitest ${smalltrafomodell.nperitest}"
++              puts $datei "smalltrafomodell.filename ${smalltrafomodell.filename}"
++              puts $datei "smalltrafomodell.murlfguide ${smalltrafomodell.murlfguide}"
++              puts $datei "smalltrafomodell.murtestwire ${smalltrafomodell.murtestwire}"
++              puts $datei "smalltrafomodell.murcore ${smalltrafomodell.murcore}"
++              puts $datei "smalltrafomodell.kappalfguide ${smalltrafomodell.kappalfguide}"
++              puts $datei "smalltrafomodell.kappatestwire ${smalltrafomodell.kappatestwire}"
++              puts $datei "smalltrafomodell.kappacore ${smalltrafomodell.kappacore}"
++          }
++          
++          
++          close $datei
++      }
++    }
++}
++
++
++
++
++# the ini file is saved on demand :
++proc saveinifile { } {
++    global inifilename
++    if {[catch { set datei [open $inifilename w] } result ]} {
++      puts "cannot write file $inifilename"
++    } {
++      for { set i [.ngmenu.file.recent index last] } { $i >= 1 } { incr i -1 } {
++          puts $datei "recentfile \"[.ngmenu.file.recent entrycget $i -label]\""
++      }
++      close $datei
++    }    
++}
++
++
++proc savemeshinifile { } {
++    global meshinifilename 
++    if {[catch { set datei [open $meshinifilename w] } result ]} {
++      puts "cannot write file $meshinifilename"
++    } {
++      for { set i [.ngmenu.file.recentmesh index last] } { $i >= 1 } { incr i -1 } {
++          puts $datei "recentfile \"[.ngmenu.file.recentmesh entrycget $i -label]\""
++      }
++      close $datei
++    }    
++}
++
++
++
++proc loadinifile { } { 
++    global inifilename
++    if { [file exists $inifilename] == 1 } {
++      set datei [open $inifilename r]
++      while { [gets $datei line] >= 0 } {
++          if {[lindex $line 0] == "recentfile"} {
++                  set filename [lindex $line 1]
++                  if { [file exists $filename] == 1 } {
++                      AddRecentFile $filename
++                  }   
++          }
++      }
++      close $datei
++    }
++}
++
++
++proc loadmeshinifile { } {
++    global meshinifilename
++    if { [file exists $meshinifilename] == 1 } {
++      set datei [open $meshinifilename r]
++      while { [gets $datei line] >= 0 } {
++          if {[lindex $line 0] == "recentfile"} {
++              set filename [lindex $line 1]
++              if { [file exists $filename] == 1 } {
++                  AddRecentMeshFile $filename
++              }       
++          }
++      }
++      close $datei
++    }
++ }
++
++
++
++
++
++set cmdindex {}
++set hlpindex {}
++set secindex {}
+diff -Naur netgen-5.3.1_SRC_orig/nglib/Makefile.am netgen-5.3.1_SRC_modif/nglib/Makefile.am
+--- netgen-5.3.1_SRC_orig/nglib/Makefile.am    2014-08-29 13:54:00.000000000 +0400
++++ netgen-5.3.1_SRC_modif/nglib/Makefile.am   2019-11-14 16:56:25.398368562 +0300
+@@ -14,6 +14,9 @@
+       $(top_builddir)/libsrc/stlgeom/libstl.la \
+       $(top_builddir)/libsrc/occ/libocc.la \
+       $(top_builddir)/libsrc/meshing/libmesh.la \
++      $(top_builddir)/libsrc/general/libgen.la \
++      $(top_builddir)/libsrc/gprim/libgprim.la \
++      $(top_builddir)/libsrc/linalg/libla.la
+       $(OCCLIBS) $(MPI_LIBS)
+ libnglib_la_LDFLAGS = -avoid-version
+diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.cpp netgen-5.3.1_SRC_modif/nglib/nglib.cpp
+--- netgen-5.3.1_SRC_orig/nglib/nglib.cpp      2014-08-29 13:54:00.000000000 +0400
++++ netgen-5.3.1_SRC_modif/nglib/nglib.cpp     2019-11-14 16:56:25.386368898 +0300
+@@ -1,1242 +1,1242 @@
+-/**************************************************************************/\r
+-/* File:   nglib.cpp                                                      */\r
+-/* Author: Joachim Schoeberl                                              */\r
+-/* Date:   7. May. 2000                                                   */\r
+-/**************************************************************************/\r
+-\r
+-/*\r
+-  \r
+-  Interface to the netgen meshing kernel\r
+-  \r
+-*/\r
+-#include <mystdlib.h>\r
+-#include <myadt.hpp>\r
+-\r
+-#include <linalg.hpp>\r
+-#include <csg.hpp>\r
+-#include <stlgeom.hpp>\r
+-#include <geometry2d.hpp>\r
+-#include <meshing.hpp>\r
+-#include <../visualization/soldata.hpp>\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-#include <occgeom.hpp>\r
+-#endif\r
+-\r
+-#include <nginterface.h>\r
+-\r
+-\r
+-namespace netgen {\r
+-   extern void MeshFromSpline2D (SplineGeometry2d & geometry,\r
+-                                 Mesh *& mesh, \r
+-                                 MeshingParameters & mp);\r
+-}\r
+-\r
+-\r
+-\r
+-#ifdef PARALLEL\r
+-#include <mpi.h>\r
+-\r
+-namespace netgen\r
+-{\r
+-  // int id = 0, ntasks = 1;\r
+-  MPI_Comm mesh_comm;\r
+-}\r
+-#endif\r
+-\r
+-\r
+-namespace netgen\r
+-{\r
+-  int id = 0, ntasks = 1;\r
+-}\r
+-\r
+-\r
+-\r
+-/*\r
+-// should not be needed (occ currently requires it)\r
+-namespace netgen {\r
+-#include "../libsrc/visualization/vispar.hpp"\r
+-  VisualizationParameters vispar;\r
+-  VisualizationParameters :: VisualizationParameters() { ; }\r
+-}\r
+-*/\r
+-\r
+-\r
+-namespace nglib {\r
+-#include "nglib.h"\r
+-}\r
+-\r
+-using namespace netgen;\r
+-\r
+-// constants and types:\r
+-\r
+-namespace nglib\r
+-{\r
+-   // initialize, deconstruct Netgen library:\r
+-   DLL_HEADER void Ng_Init ()\r
+-   {\r
+-      mycout = &cout;\r
+-      myerr = &cerr;\r
+-      // netgen::testout->SetOutStream (new ofstream ("test.out"));\r
+-      testout = new ofstream ("test.out");\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Clean-up functions before ending usage of nglib\r
+-   DLL_HEADER void Ng_Exit ()\r
+-   {\r
+-      ;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Create a new netgen mesh object\r
+-   DLL_HEADER Ng_Mesh * Ng_NewMesh ()\r
+-   {\r
+-      Mesh * mesh = new Mesh;  \r
+-      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));\r
+-      return (Ng_Mesh*)(void*)mesh;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Delete an existing netgen mesh object\r
+-   DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh)\r
+-   {\r
+-      if(mesh != NULL)\r
+-      {\r
+-         // Delete the Mesh structures\r
+-         ((Mesh*)mesh)->DeleteMesh();\r
+-\r
+-         // Now delete the Mesh class itself\r
+-         delete (Mesh*)mesh;\r
+-\r
+-         // Set the Ng_Mesh pointer to NULL\r
+-         mesh = NULL;\r
+-      }\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Save a netgen mesh in the native VOL format \r
+-   DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)\r
+-   {\r
+-      ((Mesh*)mesh)->Save(filename);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Load a netgen native VOL mesh from a given file\r
+-   DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename)\r
+-   {\r
+-      Mesh * mesh = new Mesh;\r
+-      mesh->Load(filename);\r
+-      return ( (Ng_Mesh*)mesh );\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Merge another mesh file into the currently loaded one\r
+-   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)\r
+-   {\r
+-      Ng_Result status = NG_OK;\r
+-\r
+-      ifstream infile(filename);\r
+-      Mesh * m = (Mesh*)mesh;\r
+-\r
+-      if(!infile.good())\r
+-      {\r
+-         status = NG_FILE_NOT_FOUND;\r
+-      }\r
+-\r
+-      if(!m)\r
+-      {\r
+-         status = NG_ERROR;\r
+-      }\r
+-\r
+-      if(status == NG_OK)\r
+-      {\r
+-         const int num_pts = m->GetNP();\r
+-         const int face_offset = m->GetNFD();\r
+-\r
+-         m->Merge(infile, face_offset);\r
+-\r
+-         if(m->GetNP() > num_pts)\r
+-         {\r
+-            status = NG_OK;\r
+-         }\r
+-         else\r
+-         {\r
+-            status = NG_ERROR;\r
+-         }\r
+-      }\r
+-\r
+-      return status;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Merge another mesh file into the currently loaded one\r
+-   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)\r
+-   {\r
+-      return NG_ERROR;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Manually add a point to an existing mesh object\r
+-   DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-      m->AddPoint (Point3d (x[0], x[1], x[2]));\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Manually add a surface element of a given type to an existing mesh object\r
+-   DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,\r
+-                                         int * pi)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-      Element2d el (3);\r
+-      el.SetIndex (1);\r
+-      el.PNum(1) = pi[0];\r
+-      el.PNum(2) = pi[1];\r
+-      el.PNum(3) = pi[2];\r
+-      m->AddSurfaceElement (el);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Manually add a volume element of a given type to an existing mesh object\r
+-   DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,\r
+-                                        int * pi)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-      Element el (4);\r
+-      el.SetIndex (1);\r
+-      el.PNum(1) = pi[0];\r
+-      el.PNum(2) = pi[1];\r
+-      el.PNum(3) = pi[2];\r
+-      el.PNum(4) = pi[3];\r
+-      m->AddVolumeElement (el);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Obtain the number of points in the mesh\r
+-   DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh)\r
+-   {\r
+-      return ((Mesh*)mesh) -> GetNP();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Obtain the number of surface elements in the mesh\r
+-   DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh)\r
+-   {\r
+-      return ((Mesh*)mesh) -> GetNSE();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Obtain the number of volume elements in the mesh\r
+-   DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh)\r
+-   {\r
+-      return ((Mesh*)mesh) -> GetNE();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   //  Return point coordinates of a given point index in the mesh\r
+-   DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)\r
+-   {\r
+-      const Point3d & p = ((Mesh*)mesh)->Point(num);\r
+-      x[0] = p.X();\r
+-      x[1] = p.Y();\r
+-      x[2] = p.Z();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Return the surface element at a given index "pi"\r
+-   DLL_HEADER Ng_Surface_Element_Type \r
+-      Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)\r
+-   {\r
+-      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);\r
+-      for (int i = 1; i <= el.GetNP(); i++)\r
+-         pi[i-1] = el.PNum(i);\r
+-      Ng_Surface_Element_Type et;\r
+-      switch (el.GetNP())\r
+-      {\r
+-      case 3: et = NG_TRIG; break;\r
+-      case 4: et = NG_QUAD; break;\r
+-      case 6: \r
+-         switch (el.GetNV())\r
+-         {\r
+-         case 3: et = NG_TRIG6; break;\r
+-         case 4: et = NG_QUAD6; break;\r
+-         default:\r
+-            et = NG_TRIG6; break;\r
+-         }\r
+-         break;\r
+-      case 8: et = NG_QUAD8; break;\r
+-      default:\r
+-         et = NG_TRIG; break; // for the compiler\r
+-      }\r
+-      return et;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Return the volume element at a given index "pi"\r
+-   DLL_HEADER Ng_Volume_Element_Type\r
+-      Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)\r
+-   {\r
+-      const Element & el = ((Mesh*)mesh)->VolumeElement(num);\r
+-      for (int i = 1; i <= el.GetNP(); i++)\r
+-         pi[i-1] = el.PNum(i);\r
+-      Ng_Volume_Element_Type et;\r
+-      switch (el.GetNP())\r
+-      {\r
+-      case 4: et = NG_TET; break;\r
+-      case 5: et = NG_PYRAMID; break;\r
+-      case 6: et = NG_PRISM; break;\r
+-      case 10: et = NG_TET10; break;\r
+-      default:\r
+-         et = NG_TET; break; // for the compiler\r
+-      }\r
+-      return et;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Set a global limit on the maximum mesh size allowed\r
+-   DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)\r
+-   {\r
+-      ((Mesh*)mesh) -> SetGlobalH (h);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Set a local limit on the maximum mesh size allowed around the given point\r
+-   DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)\r
+-   {\r
+-      ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Set a local limit on the maximum mesh size allowed within a given box region\r
+-   DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)\r
+-   {\r
+-      for (double x = pmin[0]; x < pmax[0]; x += h)\r
+-         for (double y = pmin[1]; y < pmax[1]; y += h)\r
+-            for (double z = pmin[2]; z < pmax[2]; z += h)\r
+-               ((Mesh*)mesh) -> RestrictLocalH (Point3d (x, y, z), h);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Generates volume mesh from an existing surface mesh\r
+-   DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-\r
+-      // Philippose - 30/08/2009\r
+-      // Do not locally re-define "mparam" here... "mparam" is a global \r
+-      // object \r
+-      //MeshingParameters mparam;\r
+-      mp->Transfer_Parameters();\r
+-\r
+-      m->CalcLocalH(mparam.grading);\r
+-\r
+-      MeshVolume (mparam, *m);\r
+-      RemoveIllegalElements (*m);\r
+-      OptimizeVolume (mparam, *m);\r
+-\r
+-      return NG_OK;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   /* ------------------ 2D Meshing Functions ------------------------- */\r
+-   DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-\r
+-      m->AddPoint (Point3d (x[0], x[1], 0));\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-\r
+-      Segment seg;\r
+-      seg[0] = pi1;\r
+-      seg[1] = pi2;\r
+-      m->AddSegment (seg);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-      return m->GetNP();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-      return m->GetNSE();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-      return m->GetNSeg();\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)\r
+-   {\r
+-      Mesh * m = (Mesh*)mesh;\r
+-\r
+-      Point<3> & p = m->Point(num);\r
+-      x[0] = p(0);\r
+-      x[1] = p(1);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER Ng_Surface_Element_Type\r
+-      Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)\r
+-   {\r
+-      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);\r
+-      for (int i = 1; i <= el.GetNP(); i++)\r
+-         pi[i-1] = el.PNum(i);\r
+-\r
+-      Ng_Surface_Element_Type et;\r
+-      switch (el.GetNP())\r
+-      {\r
+-      case 3: et = NG_TRIG; break;\r
+-      case 4: et = NG_QUAD; break;\r
+-      case 6: \r
+-         switch (el.GetNV())\r
+-         {\r
+-         case 3: et = NG_TRIG6; break;\r
+-         case 4: et = NG_QUAD6; break;\r
+-         default:\r
+-            et = NG_TRIG6; break;\r
+-         }\r
+-         break;\r
+-      case 8: et = NG_QUAD8; break;\r
+-      default:\r
+-         et = NG_TRIG; break; // for the compiler\r
+-      }\r
+-\r
+-      if (matnum)\r
+-         *matnum = el.GetIndex();\r
+-\r
+-      return et;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)\r
+-   {\r
+-      const Segment & seg = ((Mesh*)mesh)->LineSegment(num);\r
+-      pi[0] = seg[0];\r
+-      pi[1] = seg[1];\r
+-\r
+-      if (matnum)\r
+-         *matnum = seg.edgenr;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)\r
+-   {\r
+-      SplineGeometry2d * geom = new SplineGeometry2d();\r
+-      geom -> Load (filename);\r
+-      return (Ng_Geometry_2D *)geom;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,\r
+-                                            Ng_Mesh ** mesh,\r
+-                                            Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      // use global variable mparam\r
+-      //  MeshingParameters mparam;  \r
+-      mp->Transfer_Parameters();\r
+-\r
+-      Mesh * m;\r
+-      MeshFromSpline2D (*(SplineGeometry2d*)geom, m, mparam);\r
+-\r
+-      cout << m->GetNSE() << " elements, " << m->GetNP() << " points" << endl;\r
+-\r
+-      *mesh = (Ng_Mesh*)m;\r
+-      return NG_OK;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,\r
+-      Ng_Mesh * mesh,\r
+-      int levels)\r
+-   {\r
+-      Refinement2d ref(*(SplineGeometry2d*)geom);\r
+-      HPRefinement (*(Mesh*)mesh, &ref, levels);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,\r
+-      Ng_Mesh * mesh,\r
+-      int levels, double parameter)\r
+-   {\r
+-      Refinement2d ref(*(SplineGeometry2d*)geom);\r
+-      HPRefinement (*(Mesh*)mesh, &ref, levels, parameter);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   Array<STLReadTriangle> readtrias; //only before initstlgeometry\r
+-   Array<Point<3> > readedges; //only before init stlgeometry\r
+-\r
+-   // loads geometry from STL file\r
+-   DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)\r
+-   {\r
+-      int i;\r
+-      STLGeometry geom;\r
+-      STLGeometry* geo;\r
+-      ifstream ist(filename);\r
+-\r
+-      if (binary)\r
+-      {\r
+-         geo = geom.LoadBinary(ist);\r
+-      }\r
+-      else\r
+-      {\r
+-         geo = geom.Load(ist);\r
+-      }\r
+-\r
+-      readtrias.SetSize(0);\r
+-      readedges.SetSize(0);\r
+-\r
+-      Point3d p;\r
+-      Vec3d normal;\r
+-      double p1[3];\r
+-      double p2[3];\r
+-      double p3[3];\r
+-      double n[3];\r
+-\r
+-      Ng_STL_Geometry * geo2 = Ng_STL_NewGeometry();\r
+-\r
+-      for (i = 1; i <= geo->GetNT(); i++)\r
+-      {\r
+-         const STLTriangle& t = geo->GetTriangle(i);\r
+-         p = geo->GetPoint(t.PNum(1));\r
+-         p1[0] = p.X(); p1[1] = p.Y(); p1[2] = p.Z(); \r
+-         p = geo->GetPoint(t.PNum(2));\r
+-         p2[0] = p.X(); p2[1] = p.Y(); p2[2] = p.Z(); \r
+-         p = geo->GetPoint(t.PNum(3));\r
+-         p3[0] = p.X(); p3[1] = p.Y(); p3[2] = p.Z();\r
+-         normal = t.Normal();\r
+-         n[0] = normal.X(); n[1] = normal.Y(); n[2] = normal.Z();\r
+-\r
+-         Ng_STL_AddTriangle(geo2, p1, p2, p3, n);\r
+-      }\r
+-\r
+-      return geo2;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // generate new STL Geometry\r
+-   DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ()\r
+-   {\r
+-      return (Ng_STL_Geometry*)(void*)new STLGeometry;\r
+-   } \r
+-\r
+-\r
+-\r
+-\r
+-   // after adding triangles (and edges) initialize\r
+-   DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)\r
+-   {\r
+-      STLGeometry* geo = (STLGeometry*)geom;\r
+-      geo->InitSTLGeometry(readtrias);\r
+-      readtrias.SetSize(0);\r
+-\r
+-      if (readedges.Size() != 0)\r
+-      {\r
+-         /*\r
+-         for (int i = 1; i <= readedges.Size(); i+=2)\r
+-         {\r
+-         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;\r
+-         }\r
+-         */\r
+-         geo->AddEdges(readedges);\r
+-      }\r
+-\r
+-      if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;\r
+-      return NG_SURFACE_INPUT_ERROR;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // automatically generates edges:\r
+-   DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,\r
+-                                          Ng_Mesh* mesh,\r
+-                                          Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      STLGeometry* stlgeometry = (STLGeometry*)geom;\r
+-      Mesh* me = (Mesh*)mesh;\r
+-\r
+-      // Philippose - 27/07/2009\r
+-      // Do not locally re-define "mparam" here... "mparam" is a global \r
+-      // object \r
+-      //MeshingParameters mparam;\r
+-      mp->Transfer_Parameters();\r
+-\r
+-      me -> SetGlobalH (mparam.maxh);\r
+-      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),\r
+-                       stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),\r
+-                       0.3);\r
+-\r
+-      me -> LoadLocalMeshSize (mp->meshsize_filename);\r
+-      /*\r
+-      if (mp->meshsize_filename)\r
+-      {\r
+-      ifstream infile (mp->meshsize_filename);\r
+-      if (!infile.good()) return NG_FILE_NOT_FOUND;\r
+-      me -> LoadLocalMeshSize (infile);\r
+-      }\r
+-      */\r
+-\r
+-      STLMeshing (*stlgeometry, *me);\r
+-\r
+-      stlgeometry->edgesfound = 1;\r
+-      stlgeometry->surfacemeshed = 0;\r
+-      stlgeometry->surfaceoptimized = 0;\r
+-      stlgeometry->volumemeshed = 0;\r
+-\r
+-      return NG_OK;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // generates mesh, empty mesh be already created.\r
+-   DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,\r
+-                                                    Ng_Mesh* mesh,\r
+-                                                    Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      STLGeometry* stlgeometry = (STLGeometry*)geom;\r
+-      Mesh* me = (Mesh*)mesh;\r
+-\r
+-      // Philippose - 27/07/2009\r
+-      // Do not locally re-define "mparam" here... "mparam" is a global \r
+-      // object\r
+-      //MeshingParameters mparam;\r
+-      mp->Transfer_Parameters();\r
+-\r
+-\r
+-      /*\r
+-      me -> SetGlobalH (mparam.maxh);\r
+-      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),\r
+-      stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),\r
+-      0.3);\r
+-      */\r
+-      /*\r
+-      STLMeshing (*stlgeometry, *me);\r
+-\r
+-      stlgeometry->edgesfound = 1;\r
+-      stlgeometry->surfacemeshed = 0;\r
+-      stlgeometry->surfaceoptimized = 0;\r
+-      stlgeometry->volumemeshed = 0;\r
+-      */  \r
+-      int retval = STLSurfaceMeshing (*stlgeometry, *me);\r
+-      if (retval == MESHING3_OK)\r
+-      {\r
+-         (*mycout) << "Success !!!!" << endl;\r
+-         stlgeometry->surfacemeshed = 1;\r
+-         stlgeometry->surfaceoptimized = 0;\r
+-         stlgeometry->volumemeshed = 0;\r
+-      } \r
+-      else if (retval == MESHING3_OUTERSTEPSEXCEEDED)\r
+-      {\r
+-         (*mycout) << "ERROR: Give up because of too many trials. Meshing aborted!" << endl;\r
+-      }\r
+-      else if (retval == MESHING3_TERMINATE)\r
+-      {\r
+-         (*mycout) << "Meshing Stopped!" << endl;\r
+-      }\r
+-      else\r
+-      {\r
+-         (*mycout) << "ERROR: Surface meshing not successful. Meshing aborted!" << endl;\r
+-      }\r
+-\r
+-\r
+-      STLSurfaceOptimization (*stlgeometry, *me, mparam);\r
+-\r
+-      return NG_OK;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // fills STL Geometry\r
+-   // positive orientation\r
+-   // normal vector may be null-pointer\r
+-   DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, \r
+-                                       double * p1, double * p2, double * p3, \r
+-                                       double * nv)\r
+-   {\r
+-      Point<3> apts[3];\r
+-      apts[0] = Point<3>(p1[0],p1[1],p1[2]);\r
+-      apts[1] = Point<3>(p2[0],p2[1],p2[2]);\r
+-      apts[2] = Point<3>(p3[0],p3[1],p3[2]);\r
+-\r
+-      Vec<3> n;\r
+-      if (!nv)\r
+-         n = Cross (apts[0]-apts[1], apts[0]-apts[2]);\r
+-      else\r
+-         n = Vec<3>(nv[0],nv[1],nv[2]);\r
+-\r
+-      readtrias.Append(STLReadTriangle(apts,n));\r
+-   }\r
+-\r
+-   // add (optional) edges:\r
+-   DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, \r
+-      double * p1, double * p2)\r
+-   {\r
+-      readedges.Append(Point3d(p1[0],p1[1],p1[2]));\r
+-      readedges.Append(Point3d(p2[0],p2[1],p2[2]));\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-   // --------------------- OCC Geometry / Meshing Utility Functions -------------------\r
+-   // Create new OCC Geometry Object\r
+-   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ()\r
+-   {\r
+-      return (Ng_OCC_Geometry*)(void*)new OCCGeometry;\r
+-   } \r
+-\r
+-\r
+-\r
+-\r
+-   // Delete the OCC Geometry Object\r
+-   DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)\r
+-   {\r
+-      if (geom != NULL)\r
+-      {\r
+-         delete (OCCGeometry*)geom;\r
+-         geom = NULL;\r
+-         return NG_OK;\r
+-      }\r
+-      \r
+-      return NG_ERROR;\r
+-   }\r
+-\r
+-\r
+-\r
+-   \r
+-   // Loads geometry from STEP File\r
+-   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)\r
+-   {\r
+-      // Call the STEP File Load function. Note.. the geometry class \r
+-      // is created and instantiated within the load function\r
+-      OCCGeometry * occgeo = LoadOCC_STEP(filename);\r
+-\r
+-      return ((Ng_OCC_Geometry *)occgeo);\r
+-   }\r
+-\r
+-\r
+-\r
+-   \r
+-   // Loads geometry from IGES File\r
+-   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)\r
+-   {\r
+-      // Call the IGES File Load function. Note.. the geometry class \r
+-      // is created and instantiated within the load function\r
+-      OCCGeometry * occgeo = LoadOCC_IGES(filename);\r
+-\r
+-      return ((Ng_OCC_Geometry *)occgeo);\r
+-   }\r
+-\r
+-\r
+-\r
+-   \r
+-   // Loads geometry from BREP File\r
+-   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)\r
+-   {\r
+-      // Call the BREP File Load function. Note.. the geometry class \r
+-      // is created and instantiated within the load function\r
+-      OCCGeometry * occgeo = LoadOCC_BREP(filename);\r
+-\r
+-      return ((Ng_OCC_Geometry *)occgeo);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Locally limit the size of the mesh to be generated at various points \r
+-   // based on the topology of the geometry\r
+-   DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,\r
+-                                                 Ng_Mesh * mesh,\r
+-                                                 Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      OCCGeometry * occgeom = (OCCGeometry*)geom;\r
+-      Mesh * me = (Mesh*)mesh;\r
+-\r
+-      me->geomtype = Mesh::GEOM_OCC;\r
+-\r
+-      mp->Transfer_Parameters();\r
+-      \r
+-      occparam.resthcloseedgeenable = mp->closeedgeenable;\r
+-      occparam.resthcloseedgefac = mp->closeedgefact;\r
+-\r
+-      // Delete the mesh structures in order to start with a clean \r
+-      // slate\r
+-      me->DeleteMesh();\r
+-\r
+-      OCCSetLocalMeshSize(*occgeom, *me);\r
+-\r
+-      return(NG_OK);\r
+-   }\r
+-\r
+-\r
+-\r
+-   \r
+-   // Mesh the edges and add Face descriptors to prepare for surface meshing\r
+-   DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,\r
+-                                                 Ng_Mesh * mesh,\r
+-                                                 Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      OCCGeometry * occgeom = (OCCGeometry*)geom;\r
+-      Mesh * me = (Mesh*)mesh;\r
+-\r
+-      mp->Transfer_Parameters();\r
+-\r
+-      OCCFindEdges(*occgeom, *me);\r
+-\r
+-      if((me->GetNP()) && (me->GetNFD()))\r
+-      {\r
+-         return NG_OK;\r
+-      }\r
+-      else\r
+-      {\r
+-         return NG_ERROR;\r
+-      }\r
+-   }\r
+-\r
+-\r
+-\r
+-   \r
+-   // Mesh the edges and add Face descriptors to prepare for surface meshing\r
+-   DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,\r
+-                                                    Ng_Mesh * mesh,\r
+-                                                    Ng_Meshing_Parameters * mp)\r
+-   {\r
+-      int numpoints = 0;\r
+-\r
+-      OCCGeometry * occgeom = (OCCGeometry*)geom;\r
+-      Mesh * me = (Mesh*)mesh;\r
+-\r
+-      // Set the internal meshing parameters structure from the nglib meshing \r
+-      // parameters structure\r
+-      mp->Transfer_Parameters();\r
+-\r
+-\r
+-      // Only go into surface meshing if the face descriptors have already been added\r
+-      if(!me->GetNFD())\r
+-         return NG_ERROR;\r
+-\r
+-      numpoints = me->GetNP();\r
+-\r
+-      // Initially set up only for surface meshing without any optimisation\r
+-      int perfstepsend = MESHCONST_MESHSURFACE;\r
+-\r
+-      // Check and if required, enable surface mesh optimisation step\r
+-      if(mp->optsurfmeshenable)\r
+-      {\r
+-         perfstepsend = MESHCONST_OPTSURFACE;\r
+-      }\r
+-\r
+-      OCCMeshSurface(*occgeom, *me, perfstepsend);\r
+-\r
+-      me->CalcSurfacesOfNode();\r
+-      \r
+-      if(me->GetNP() <= numpoints)\r
+-         return NG_ERROR;\r
+-\r
+-      if(me->GetNSE() <= 0)\r
+-         return NG_ERROR;\r
+-\r
+-      return NG_OK;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Extract the face map from the OCC geometry\r
+-   // The face map basically gives an index to each face in the geometry, \r
+-   // which can be used to access a specific face\r
+-   DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, \r
+-                                       Ng_OCC_TopTools_IndexedMapOfShape * FMap)\r
+-   {\r
+-      OCCGeometry* occgeom = (OCCGeometry*)geom;\r
+-      TopTools_IndexedMapOfShape *occfmap = (TopTools_IndexedMapOfShape *)FMap;\r
+-\r
+-      // Copy the face map from the geometry to the given variable\r
+-      occfmap->Assign(occgeom->fmap);\r
+-\r
+-      if(occfmap->Extent())\r
+-      {\r
+-         return NG_OK;\r
+-      }\r
+-      else\r
+-      {\r
+-         return NG_ERROR;\r
+-      }\r
+-   }\r
+-\r
+-   // ------------------ End - OCC Geometry / Meshing Utility Functions ----------------\r
+-#endif\r
+-\r
+-\r
+-\r
+-\r
+-   // ------------------ Begin - Meshing Parameters related functions ------------------\r
+-   // Constructor for the local nglib meshing parameters class\r
+-   DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters()\r
+-   {\r
+-      uselocalh = 1;\r
+-\r
+-      maxh = 1000;\r
+-      minh = 0.0;\r
+-\r
+-      fineness = 0.5;\r
+-      grading = 0.3;\r
+-\r
+-      elementsperedge = 2.0;\r
+-      elementspercurve = 2.0;\r
+-\r
+-      closeedgeenable = 0;\r
+-      closeedgefact = 2.0;\r
+-\r
+-        minedgelenenable = 0;\r
+-        minedgelen = 1e-4;\r
+-\r
+-      second_order = 0;\r
+-      quad_dominated = 0;\r
+-\r
+-      meshsize_filename = 0;\r
+-\r
+-      optsurfmeshenable = 1;\r
+-      optvolmeshenable = 1;\r
+-\r
+-      optsteps_2d = 3;\r
+-      optsteps_3d = 3;\r
+-\r
+-      invert_tets = 0;\r
+-      invert_trigs = 0;\r
+-\r
+-      check_overlap = 1;\r
+-      check_overlapping_boundary = 1;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // Reset the local meshing parameters to the default values\r
+-   DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters()\r
+-   {\r
+-      uselocalh = 1;\r
+-\r
+-      maxh = 1000;\r
+-      minh = 0;\r
+-\r
+-      fineness = 0.5;\r
+-      grading = 0.3;\r
+-\r
+-      elementsperedge = 2.0;\r
+-      elementspercurve = 2.0;\r
+-\r
+-      closeedgeenable = 0;\r
+-      closeedgefact = 2.0;\r
+-\r
+-        minedgelenenable = 0;\r
+-        minedgelen = 1e-4;\r
+-\r
+-      second_order = 0;\r
+-      quad_dominated = 0;\r
+-\r
+-      meshsize_filename = 0;\r
+-\r
+-      optsurfmeshenable = 1;\r
+-      optvolmeshenable = 1;\r
+-\r
+-      optsteps_2d = 3;\r
+-      optsteps_3d = 3;\r
+-\r
+-      invert_tets = 0;\r
+-      invert_trigs = 0;\r
+-\r
+-      check_overlap = 1;\r
+-      check_overlapping_boundary = 1;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   // \r
+-   DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters()\r
+-   {\r
+-      mparam.uselocalh = uselocalh;\r
+-      \r
+-      mparam.maxh = maxh;\r
+-      mparam.minh = minh;\r
+-\r
+-      mparam.grading = grading;\r
+-      mparam.curvaturesafety = elementspercurve;\r
+-      mparam.segmentsperedge = elementsperedge;\r
+-\r
+-      mparam.secondorder = second_order;\r
+-      mparam.quad = quad_dominated;\r
+-\r
+-      mparam.meshsizefilename = meshsize_filename;\r
+-\r
+-      mparam.optsteps2d = optsteps_2d;\r
+-      mparam.optsteps3d = optsteps_3d;\r
+-\r
+-      mparam.inverttets = invert_tets;\r
+-      mparam.inverttrigs = invert_trigs;\r
+-\r
+-      mparam.checkoverlap = check_overlap;\r
+-      mparam.checkoverlappingboundary = check_overlapping_boundary;\r
+-   }\r
+-   // ------------------ End - Meshing Parameters related functions --------------------\r
+-\r
+-\r
+-\r
+-\r
+-   // ------------------ Begin - Second Order Mesh generation functions ----------------\r
+-   DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh)\r
+-   {\r
+-      Refinement ref;\r
+-      ref.MakeSecondOrder(*(Mesh*) mesh);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,\r
+-                                        Ng_Mesh * mesh)\r
+-   {\r
+-      ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,\r
+-                                         Ng_Mesh * mesh)\r
+-   {\r
+-      ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,\r
+-                                         Ng_Mesh * mesh)\r
+-   {\r
+-      ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-   DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,\r
+-                  Ng_Mesh * mesh)\r
+-   {\r
+-      ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);\r
+-   }\r
+-#endif\r
+-   // ------------------ End - Second Order Mesh generation functions ------------------\r
+-\r
+-\r
+-\r
+-\r
+-   // ------------------ Begin - Uniform Mesh Refinement functions ---------------------\r
+-   DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh)\r
+-   {\r
+-      Refinement ref;\r
+-      ref.Refine ( * (Mesh*) mesh );\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,\r
+-      Ng_Mesh * mesh)\r
+-   {\r
+-      ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,\r
+-      Ng_Mesh * mesh)\r
+-   {\r
+-      ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,\r
+-      Ng_Mesh * mesh)\r
+-   {\r
+-      ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-   DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,\r
+-      Ng_Mesh * mesh)\r
+-   {\r
+-      ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
+-   }\r
+-#endif\r
+-   // ------------------ End - Uniform Mesh Refinement functions -----------------------\r
+-} // End of namespace nglib\r
+-\r
+-\r
+-\r
+-\r
+-// compatibility functions:\r
+-namespace netgen \r
+-{\r
+-   char geomfilename[255];\r
+-\r
+-   DLL_HEADER void MyError (const char * ch)\r
+-   {\r
+-      cerr << ch;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   //Destination for messages, errors, ...\r
+-   DLL_HEADER void Ng_PrintDest(const char * s)\r
+-   {\r
+-#ifdef PARALLEL\r
+-     int id = 0;\r
+-     MPI_Comm_rank(MPI_COMM_WORLD, &id);\r
+-     if (id != 0) return;\r
+-#endif\r
+-     (*mycout) << s << flush;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   DLL_HEADER double GetTime ()\r
+-   {\r
+-      return 0;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void ResetTime ()\r
+-   {\r
+-      ;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void MyBeep (int i)\r
+-   {\r
+-      ;\r
+-   }\r
+-\r
+-\r
+-\r
+-\r
+-   void Render()\r
+-   {\r
+-      ; \r
+-   }\r
+-} // End of namespace netgen\r
+-\r
+-\r
+-\r
+-\r
+-void Ng_Redraw () { ; }\r
+-void Ng_ClearSolutionData () { ; }\r
+-void Ng_SetSolutionData (Ng_SolutionData * soldata) \r
+-{ \r
+-  delete soldata->solclass;\r
+-}\r
+-void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }\r
+-\r
+-\r
++/**************************************************************************/
++/* File:   nglib.cpp                                                      */
++/* Author: Joachim Schoeberl                                              */
++/* Date:   7. May. 2000                                                   */
++/**************************************************************************/
++
++/*
++  
++  Interface to the netgen meshing kernel
++  
++*/
++#include <mystdlib.h>
++#include <myadt.hpp>
++
++#include <linalg.hpp>
++#include <csg.hpp>
++#include <stlgeom.hpp>
++#include <geometry2d.hpp>
++#include <meshing.hpp>
++#include <../visualization/soldata.hpp>
++
++#ifdef OCCGEOMETRY
++#include <occgeom.hpp>
++#endif
++
++#include <nginterface.h>
++
++
++namespace netgen {
++   extern void MeshFromSpline2D (SplineGeometry2d & geometry,
++                                 Mesh *& mesh, 
++                                 MeshingParameters & mp);
++}
++
++
++
++#ifdef PARALLEL
++#include <mpi.h>
++
++namespace netgen
++{
++  // int id = 0, ntasks = 1;
++  MPI_Comm mesh_comm;
++}
++#endif
++
++
++namespace netgen
++{
++  int id = 0, ntasks = 1;
++}
++
++
++
++/*
++// should not be needed (occ currently requires it)
++namespace netgen {
++#include "../libsrc/visualization/vispar.hpp"
++  VisualizationParameters vispar;
++  VisualizationParameters :: VisualizationParameters() { ; }
++}
++*/
++
++
++namespace nglib {
++#include "nglib.h"
++}
++
++using namespace netgen;
++
++// constants and types:
++
++namespace nglib
++{
++   // initialize, deconstruct Netgen library:
++   DLL_HEADER void Ng_Init ()
++   {
++      mycout = &cout;
++      myerr = &cerr;
++      // netgen::testout->SetOutStream (new ofstream ("test.out"));
++      testout = new ofstream ("test.out");
++   }
++
++
++
++
++   // Clean-up functions before ending usage of nglib
++   DLL_HEADER void Ng_Exit ()
++   {
++      ;
++   }
++
++
++
++
++   // Create a new netgen mesh object
++   DLL_HEADER Ng_Mesh * Ng_NewMesh ()
++   {
++      Mesh * mesh = new Mesh;  
++      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));
++      return (Ng_Mesh*)(void*)mesh;
++   }
++
++
++
++
++   // Delete an existing netgen mesh object
++   DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh)
++   {
++      if(mesh != NULL)
++      {
++         // Delete the Mesh structures
++         ((Mesh*)mesh)->DeleteMesh();
++
++         // Now delete the Mesh class itself
++         delete (Mesh*)mesh;
++
++         // Set the Ng_Mesh pointer to NULL
++         mesh = NULL;
++      }
++   }
++
++
++
++
++   // Save a netgen mesh in the native VOL format 
++   DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)
++   {
++      ((Mesh*)mesh)->Save(filename);
++   }
++
++
++
++
++   // Load a netgen native VOL mesh from a given file
++   DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename)
++   {
++      Mesh * mesh = new Mesh;
++      mesh->Load(filename);
++      return ( (Ng_Mesh*)mesh );
++   }
++
++
++
++
++   // Merge another mesh file into the currently loaded one
++   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)
++   {
++      Ng_Result status = NG_OK;
++
++      ifstream infile(filename);
++      Mesh * m = (Mesh*)mesh;
++
++      if(!infile.good())
++      {
++         status = NG_FILE_NOT_FOUND;
++      }
++
++      if(!m)
++      {
++         status = NG_ERROR;
++      }
++
++      if(status == NG_OK)
++      {
++         const int num_pts = m->GetNP();
++         const int face_offset = m->GetNFD();
++
++         m->Merge(infile, face_offset);
++
++         if(m->GetNP() > num_pts)
++         {
++            status = NG_OK;
++         }
++         else
++         {
++            status = NG_ERROR;
++         }
++      }
++
++      return status;
++   }
++
++
++
++
++   // Merge another mesh file into the currently loaded one
++   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)
++   {
++      return NG_ERROR;
++   }
++
++
++
++
++   // Manually add a point to an existing mesh object
++   DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x)
++   {
++      Mesh * m = (Mesh*)mesh;
++      m->AddPoint (Point3d (x[0], x[1], x[2]));
++   }
++
++
++
++
++   // Manually add a surface element of a given type to an existing mesh object
++   DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,
++                                         int * pi)
++   {
++      Mesh * m = (Mesh*)mesh;
++      Element2d el (3);
++      el.SetIndex (1);
++      el.PNum(1) = pi[0];
++      el.PNum(2) = pi[1];
++      el.PNum(3) = pi[2];
++      m->AddSurfaceElement (el);
++   }
++
++
++
++
++   // Manually add a volume element of a given type to an existing mesh object
++   DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,
++                                        int * pi)
++   {
++      Mesh * m = (Mesh*)mesh;
++      Element el (4);
++      el.SetIndex (1);
++      el.PNum(1) = pi[0];
++      el.PNum(2) = pi[1];
++      el.PNum(3) = pi[2];
++      el.PNum(4) = pi[3];
++      m->AddVolumeElement (el);
++   }
++
++
++
++
++   // Obtain the number of points in the mesh
++   DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh)
++   {
++      return ((Mesh*)mesh) -> GetNP();
++   }
++
++
++
++
++   // Obtain the number of surface elements in the mesh
++   DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh)
++   {
++      return ((Mesh*)mesh) -> GetNSE();
++   }
++
++
++
++
++   // Obtain the number of volume elements in the mesh
++   DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh)
++   {
++      return ((Mesh*)mesh) -> GetNE();
++   }
++
++
++
++
++   //  Return point coordinates of a given point index in the mesh
++   DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)
++   {
++      const Point3d & p = ((Mesh*)mesh)->Point(num);
++      x[0] = p.X();
++      x[1] = p.Y();
++      x[2] = p.Z();
++   }
++
++
++
++
++   // Return the surface element at a given index "pi"
++   DLL_HEADER Ng_Surface_Element_Type 
++      Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)
++   {
++      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
++      for (int i = 1; i <= el.GetNP(); i++)
++         pi[i-1] = el.PNum(i);
++      Ng_Surface_Element_Type et;
++      switch (el.GetNP())
++      {
++      case 3: et = NG_TRIG; break;
++      case 4: et = NG_QUAD; break;
++      case 6: 
++         switch (el.GetNV())
++         {
++         case 3: et = NG_TRIG6; break;
++         case 4: et = NG_QUAD6; break;
++         default:
++            et = NG_TRIG6; break;
++         }
++         break;
++      case 8: et = NG_QUAD8; break;
++      default:
++         et = NG_TRIG; break; // for the compiler
++      }
++      return et;
++   }
++
++
++
++
++   // Return the volume element at a given index "pi"
++   DLL_HEADER Ng_Volume_Element_Type
++      Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)
++   {
++      const Element & el = ((Mesh*)mesh)->VolumeElement(num);
++      for (int i = 1; i <= el.GetNP(); i++)
++         pi[i-1] = el.PNum(i);
++      Ng_Volume_Element_Type et;
++      switch (el.GetNP())
++      {
++      case 4: et = NG_TET; break;
++      case 5: et = NG_PYRAMID; break;
++      case 6: et = NG_PRISM; break;
++      case 10: et = NG_TET10; break;
++      default:
++         et = NG_TET; break; // for the compiler
++      }
++      return et;
++   }
++
++
++
++
++   // Set a global limit on the maximum mesh size allowed
++   DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)
++   {
++      ((Mesh*)mesh) -> SetGlobalH (h);
++   }
++
++
++
++
++   // Set a local limit on the maximum mesh size allowed around the given point
++   DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)
++   {
++      ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);
++   }
++
++
++
++
++   // Set a local limit on the maximum mesh size allowed within a given box region
++   DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)
++   {
++      for (double x = pmin[0]; x < pmax[0]; x += h)
++         for (double y = pmin[1]; y < pmax[1]; y += h)
++            for (double z = pmin[2]; z < pmax[2]; z += h)
++               ((Mesh*)mesh) -> RestrictLocalH (Point3d (x, y, z), h);
++   }
++
++
++
++
++   // Generates volume mesh from an existing surface mesh
++   DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
++   {
++      Mesh * m = (Mesh*)mesh;
++
++      // Philippose - 30/08/2009
++      // Do not locally re-define "mparam" here... "mparam" is a global 
++      // object 
++      //MeshingParameters mparam;
++      mp->Transfer_Parameters();
++
++      m->CalcLocalH(mparam.grading);
++
++      MeshVolume (mparam, *m);
++      RemoveIllegalElements (*m);
++      OptimizeVolume (mparam, *m);
++
++      return NG_OK;
++   }
++
++
++
++
++   /* ------------------ 2D Meshing Functions ------------------------- */
++   DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)
++   {
++      Mesh * m = (Mesh*)mesh;
++
++      m->AddPoint (Point3d (x[0], x[1], 0));
++   }
++
++
++
++
++   DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)
++   {
++      Mesh * m = (Mesh*)mesh;
++
++      Segment seg;
++      seg[0] = pi1;
++      seg[1] = pi2;
++      m->AddSegment (seg);
++   }
++
++
++
++
++   DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh)
++   {
++      Mesh * m = (Mesh*)mesh;
++      return m->GetNP();
++   }
++
++
++
++
++   DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh)
++   {
++      Mesh * m = (Mesh*)mesh;
++      return m->GetNSE();
++   }
++
++
++
++
++   DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh)
++   {
++      Mesh * m = (Mesh*)mesh;
++      return m->GetNSeg();
++   }
++
++
++
++
++   DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)
++   {
++      Mesh * m = (Mesh*)mesh;
++
++      Point<3> & p = m->Point(num);
++      x[0] = p(0);
++      x[1] = p(1);
++   }
++
++
++
++
++   DLL_HEADER Ng_Surface_Element_Type
++      Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
++   {
++      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
++      for (int i = 1; i <= el.GetNP(); i++)
++         pi[i-1] = el.PNum(i);
++
++      Ng_Surface_Element_Type et;
++      switch (el.GetNP())
++      {
++      case 3: et = NG_TRIG; break;
++      case 4: et = NG_QUAD; break;
++      case 6: 
++         switch (el.GetNV())
++         {
++         case 3: et = NG_TRIG6; break;
++         case 4: et = NG_QUAD6; break;
++         default:
++            et = NG_TRIG6; break;
++         }
++         break;
++      case 8: et = NG_QUAD8; break;
++      default:
++         et = NG_TRIG; break; // for the compiler
++      }
++
++      if (matnum)
++         *matnum = el.GetIndex();
++
++      return et;
++   }
++
++
++
++
++   DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
++   {
++      const Segment & seg = ((Mesh*)mesh)->LineSegment(num);
++      pi[0] = seg[0];
++      pi[1] = seg[1];
++
++      if (matnum)
++         *matnum = seg.edgenr;
++   }
++
++
++
++
++   DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)
++   {
++      SplineGeometry2d * geom = new SplineGeometry2d();
++      geom -> Load (filename);
++      return (Ng_Geometry_2D *)geom;
++   }
++
++
++
++
++   DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
++                                            Ng_Mesh ** mesh,
++                                            Ng_Meshing_Parameters * mp)
++   {
++      // use global variable mparam
++      //  MeshingParameters mparam;  
++      mp->Transfer_Parameters();
++
++      Mesh * m;
++      MeshFromSpline2D (*(SplineGeometry2d*)geom, m, mparam);
++
++      cout << m->GetNSE() << " elements, " << m->GetNP() << " points" << endl;
++
++      *mesh = (Ng_Mesh*)m;
++      return NG_OK;
++   }
++
++
++
++
++   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
++      Ng_Mesh * mesh,
++      int levels)
++   {
++      Refinement2d ref(*(SplineGeometry2d*)geom);
++      HPRefinement (*(Mesh*)mesh, &ref, levels);
++   }
++
++
++
++
++   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
++      Ng_Mesh * mesh,
++      int levels, double parameter)
++   {
++      Refinement2d ref(*(SplineGeometry2d*)geom);
++      HPRefinement (*(Mesh*)mesh, &ref, levels, parameter);
++   }
++
++
++
++
++   Array<STLReadTriangle> readtrias; //only before initstlgeometry
++   Array<Point<3> > readedges; //only before init stlgeometry
++
++   // loads geometry from STL file
++   DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)
++   {
++      int i;
++      STLGeometry geom;
++      STLGeometry* geo;
++      ifstream ist(filename);
++
++      if (binary)
++      {
++         geo = geom.LoadBinary(ist);
++      }
++      else
++      {
++         geo = geom.Load(ist);
++      }
++
++      readtrias.SetSize(0);
++      readedges.SetSize(0);
++
++      Point3d p;
++      Vec3d normal;
++      double p1[3];
++      double p2[3];
++      double p3[3];
++      double n[3];
++
++      Ng_STL_Geometry * geo2 = Ng_STL_NewGeometry();
++
++      for (i = 1; i <= geo->GetNT(); i++)
++      {
++         const STLTriangle& t = geo->GetTriangle(i);
++         p = geo->GetPoint(t.PNum(1));
++         p1[0] = p.X(); p1[1] = p.Y(); p1[2] = p.Z(); 
++         p = geo->GetPoint(t.PNum(2));
++         p2[0] = p.X(); p2[1] = p.Y(); p2[2] = p.Z(); 
++         p = geo->GetPoint(t.PNum(3));
++         p3[0] = p.X(); p3[1] = p.Y(); p3[2] = p.Z();
++         normal = t.Normal();
++         n[0] = normal.X(); n[1] = normal.Y(); n[2] = normal.Z();
++
++         Ng_STL_AddTriangle(geo2, p1, p2, p3, n);
++      }
++
++      return geo2;
++   }
++
++
++
++
++   // generate new STL Geometry
++   DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ()
++   {
++      return (Ng_STL_Geometry*)(void*)new STLGeometry;
++   } 
++
++
++
++
++   // after adding triangles (and edges) initialize
++   DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)
++   {
++      STLGeometry* geo = (STLGeometry*)geom;
++      geo->InitSTLGeometry(readtrias);
++      readtrias.SetSize(0);
++
++      if (readedges.Size() != 0)
++      {
++         /*
++         for (int i = 1; i <= readedges.Size(); i+=2)
++         {
++         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;
++         }
++         */
++         geo->AddEdges(readedges);
++      }
++
++      if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;
++      return NG_SURFACE_INPUT_ERROR;
++   }
++
++
++
++
++   // automatically generates edges:
++   DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
++                                          Ng_Mesh* mesh,
++                                          Ng_Meshing_Parameters * mp)
++   {
++      STLGeometry* stlgeometry = (STLGeometry*)geom;
++      Mesh* me = (Mesh*)mesh;
++
++      // Philippose - 27/07/2009
++      // Do not locally re-define "mparam" here... "mparam" is a global 
++      // object 
++      //MeshingParameters mparam;
++      mp->Transfer_Parameters();
++
++      me -> SetGlobalH (mparam.maxh);
++      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
++                       stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
++                       0.3);
++
++      me -> LoadLocalMeshSize (mp->meshsize_filename);
++      /*
++      if (mp->meshsize_filename)
++      {
++      ifstream infile (mp->meshsize_filename);
++      if (!infile.good()) return NG_FILE_NOT_FOUND;
++      me -> LoadLocalMeshSize (infile);
++      }
++      */
++
++      STLMeshing (*stlgeometry, *me);
++
++      stlgeometry->edgesfound = 1;
++      stlgeometry->surfacemeshed = 0;
++      stlgeometry->surfaceoptimized = 0;
++      stlgeometry->volumemeshed = 0;
++
++      return NG_OK;
++   }
++
++
++
++
++   // generates mesh, empty mesh be already created.
++   DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
++                                                    Ng_Mesh* mesh,
++                                                    Ng_Meshing_Parameters * mp)
++   {
++      STLGeometry* stlgeometry = (STLGeometry*)geom;
++      Mesh* me = (Mesh*)mesh;
++
++      // Philippose - 27/07/2009
++      // Do not locally re-define "mparam" here... "mparam" is a global 
++      // object
++      //MeshingParameters mparam;
++      mp->Transfer_Parameters();
++
++
++      /*
++      me -> SetGlobalH (mparam.maxh);
++      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
++      stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
++      0.3);
++      */
++      /*
++      STLMeshing (*stlgeometry, *me);
++
++      stlgeometry->edgesfound = 1;
++      stlgeometry->surfacemeshed = 0;
++      stlgeometry->surfaceoptimized = 0;
++      stlgeometry->volumemeshed = 0;
++      */  
++      int retval = STLSurfaceMeshing (*stlgeometry, *me);
++      if (retval == MESHING3_OK)
++      {
++         (*mycout) << "Success !!!!" << endl;
++         stlgeometry->surfacemeshed = 1;
++         stlgeometry->surfaceoptimized = 0;
++         stlgeometry->volumemeshed = 0;
++      } 
++      else if (retval == MESHING3_OUTERSTEPSEXCEEDED)
++      {
++         (*mycout) << "ERROR: Give up because of too many trials. Meshing aborted!" << endl;
++      }
++      else if (retval == MESHING3_TERMINATE)
++      {
++         (*mycout) << "Meshing Stopped!" << endl;
++      }
++      else
++      {
++         (*mycout) << "ERROR: Surface meshing not successful. Meshing aborted!" << endl;
++      }
++
++
++      STLSurfaceOptimization (*stlgeometry, *me, mparam);
++
++      return NG_OK;
++   }
++
++
++
++
++   // fills STL Geometry
++   // positive orientation
++   // normal vector may be null-pointer
++   DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, 
++                                       double * p1, double * p2, double * p3, 
++                                       double * nv)
++   {
++      Point<3> apts[3];
++      apts[0] = Point<3>(p1[0],p1[1],p1[2]);
++      apts[1] = Point<3>(p2[0],p2[1],p2[2]);
++      apts[2] = Point<3>(p3[0],p3[1],p3[2]);
++
++      Vec<3> n;
++      if (!nv)
++         n = Cross (apts[0]-apts[1], apts[0]-apts[2]);
++      else
++         n = Vec<3>(nv[0],nv[1],nv[2]);
++
++      readtrias.Append(STLReadTriangle(apts,n));
++   }
++
++   // add (optional) edges:
++   DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, 
++      double * p1, double * p2)
++   {
++      readedges.Append(Point3d(p1[0],p1[1],p1[2]));
++      readedges.Append(Point3d(p2[0],p2[1],p2[2]));
++   }
++
++
++
++
++#ifdef OCCGEOMETRY
++   // --------------------- OCC Geometry / Meshing Utility Functions -------------------
++   // Create new OCC Geometry Object
++   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ()
++   {
++      return (Ng_OCC_Geometry*)(void*)new OCCGeometry;
++   } 
++
++
++
++
++   // Delete the OCC Geometry Object
++   DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)
++   {
++      if (geom != NULL)
++      {
++         delete (OCCGeometry*)geom;
++         geom = NULL;
++         return NG_OK;
++      }
++      
++      return NG_ERROR;
++   }
++
++
++
++   
++   // Loads geometry from STEP File
++   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)
++   {
++      // Call the STEP File Load function. Note.. the geometry class 
++      // is created and instantiated within the load function
++      OCCGeometry * occgeo = LoadOCC_STEP(filename);
++
++      return ((Ng_OCC_Geometry *)occgeo);
++   }
++
++
++
++   
++   // Loads geometry from IGES File
++   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)
++   {
++      // Call the IGES File Load function. Note.. the geometry class 
++      // is created and instantiated within the load function
++      OCCGeometry * occgeo = LoadOCC_IGES(filename);
++
++      return ((Ng_OCC_Geometry *)occgeo);
++   }
++
++
++
++   
++   // Loads geometry from BREP File
++   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)
++   {
++      // Call the BREP File Load function. Note.. the geometry class 
++      // is created and instantiated within the load function
++      OCCGeometry * occgeo = LoadOCC_BREP(filename);
++
++      return ((Ng_OCC_Geometry *)occgeo);
++   }
++
++
++
++
++   // Locally limit the size of the mesh to be generated at various points 
++   // based on the topology of the geometry
++   DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
++                                                 Ng_Mesh * mesh,
++                                                 Ng_Meshing_Parameters * mp)
++   {
++      OCCGeometry * occgeom = (OCCGeometry*)geom;
++      Mesh * me = (Mesh*)mesh;
++
++      me->geomtype = Mesh::GEOM_OCC;
++
++      mp->Transfer_Parameters();
++      
++      occparam.resthcloseedgeenable = mp->closeedgeenable;
++      occparam.resthcloseedgefac = mp->closeedgefact;
++
++      // Delete the mesh structures in order to start with a clean 
++      // slate
++      me->DeleteMesh();
++
++      OCCSetLocalMeshSize(*occgeom, *me);
++
++      return(NG_OK);
++   }
++
++
++
++   
++   // Mesh the edges and add Face descriptors to prepare for surface meshing
++   DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
++                                                 Ng_Mesh * mesh,
++                                                 Ng_Meshing_Parameters * mp)
++   {
++      OCCGeometry * occgeom = (OCCGeometry*)geom;
++      Mesh * me = (Mesh*)mesh;
++
++      mp->Transfer_Parameters();
++
++      OCCFindEdges(*occgeom, *me);
++
++      if((me->GetNP()) && (me->GetNFD()))
++      {
++         return NG_OK;
++      }
++      else
++      {
++         return NG_ERROR;
++      }
++   }
++
++
++
++   
++   // Mesh the edges and add Face descriptors to prepare for surface meshing
++   DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
++                                                    Ng_Mesh * mesh,
++                                                    Ng_Meshing_Parameters * mp)
++   {
++      int numpoints = 0;
++
++      OCCGeometry * occgeom = (OCCGeometry*)geom;
++      Mesh * me = (Mesh*)mesh;
++
++      // Set the internal meshing parameters structure from the nglib meshing 
++      // parameters structure
++      mp->Transfer_Parameters();
++
++
++      // Only go into surface meshing if the face descriptors have already been added
++      if(!me->GetNFD())
++         return NG_ERROR;
++
++      numpoints = me->GetNP();
++
++      // Initially set up only for surface meshing without any optimisation
++      int perfstepsend = MESHCONST_MESHSURFACE;
++
++      // Check and if required, enable surface mesh optimisation step
++      if(mp->optsurfmeshenable)
++      {
++         perfstepsend = MESHCONST_OPTSURFACE;
++      }
++
++      OCCMeshSurface(*occgeom, *me, perfstepsend);
++
++      me->CalcSurfacesOfNode();
++      
++      if(me->GetNP() <= numpoints)
++         return NG_ERROR;
++
++      if(me->GetNSE() <= 0)
++         return NG_ERROR;
++
++      return NG_OK;
++   }
++
++
++
++
++   // Extract the face map from the OCC geometry
++   // The face map basically gives an index to each face in the geometry, 
++   // which can be used to access a specific face
++   DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, 
++                                       Ng_OCC_TopTools_IndexedMapOfShape * FMap)
++   {
++      OCCGeometry* occgeom = (OCCGeometry*)geom;
++      TopTools_IndexedMapOfShape *occfmap = (TopTools_IndexedMapOfShape *)FMap;
++
++      // Copy the face map from the geometry to the given variable
++      occfmap->Assign(occgeom->fmap);
++
++      if(occfmap->Extent())
++      {
++         return NG_OK;
++      }
++      else
++      {
++         return NG_ERROR;
++      }
++   }
++
++   // ------------------ End - OCC Geometry / Meshing Utility Functions ----------------
++#endif
++
++
++
++
++   // ------------------ Begin - Meshing Parameters related functions ------------------
++   // Constructor for the local nglib meshing parameters class
++   DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters()
++   {
++      uselocalh = 1;
++
++      maxh = 1000;
++      minh = 0.0;
++
++      fineness = 0.5;
++      grading = 0.3;
++
++      elementsperedge = 2.0;
++      elementspercurve = 2.0;
++
++      closeedgeenable = 0;
++      closeedgefact = 2.0;
++
++        minedgelenenable = 0;
++        minedgelen = 1e-4;
++
++      second_order = 0;
++      quad_dominated = 0;
++
++      meshsize_filename = 0;
++
++      optsurfmeshenable = 1;
++      optvolmeshenable = 1;
++
++      optsteps_2d = 3;
++      optsteps_3d = 3;
++
++      invert_tets = 0;
++      invert_trigs = 0;
++
++      check_overlap = 1;
++      check_overlapping_boundary = 1;
++   }
++
++
++
++
++   // Reset the local meshing parameters to the default values
++   DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters()
++   {
++      uselocalh = 1;
++
++      maxh = 1000;
++      minh = 0;
++
++      fineness = 0.5;
++      grading = 0.3;
++
++      elementsperedge = 2.0;
++      elementspercurve = 2.0;
++
++      closeedgeenable = 0;
++      closeedgefact = 2.0;
++
++        minedgelenenable = 0;
++        minedgelen = 1e-4;
++
++      second_order = 0;
++      quad_dominated = 0;
++
++      meshsize_filename = 0;
++
++      optsurfmeshenable = 1;
++      optvolmeshenable = 1;
++
++      optsteps_2d = 3;
++      optsteps_3d = 3;
++
++      invert_tets = 0;
++      invert_trigs = 0;
++
++      check_overlap = 1;
++      check_overlapping_boundary = 1;
++   }
++
++
++
++
++   // 
++   DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters()
++   {
++      mparam.uselocalh = uselocalh;
++      
++      mparam.maxh = maxh;
++      mparam.minh = minh;
++
++      mparam.grading = grading;
++      mparam.curvaturesafety = elementspercurve;
++      mparam.segmentsperedge = elementsperedge;
++
++      mparam.secondorder = second_order;
++      mparam.quad = quad_dominated;
++
++      mparam.meshsizefilename = meshsize_filename;
++
++      mparam.optsteps2d = optsteps_2d;
++      mparam.optsteps3d = optsteps_3d;
++
++      mparam.inverttets = invert_tets;
++      mparam.inverttrigs = invert_trigs;
++
++      mparam.checkoverlap = check_overlap;
++      mparam.checkoverlappingboundary = check_overlapping_boundary;
++   }
++   // ------------------ End - Meshing Parameters related functions --------------------
++
++
++
++
++   // ------------------ Begin - Second Order Mesh generation functions ----------------
++   DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh)
++   {
++      Refinement ref;
++      ref.MakeSecondOrder(*(Mesh*) mesh);
++   }
++
++
++
++
++   DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,
++                                        Ng_Mesh * mesh)
++   {
++      ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );
++   }
++
++
++
++
++   DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,
++                                         Ng_Mesh * mesh)
++   {
++      ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
++   }
++
++
++
++
++   DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
++                                         Ng_Mesh * mesh)
++   {
++      ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
++   }
++
++
++
++
++#ifdef OCCGEOMETRY
++   DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
++                  Ng_Mesh * mesh)
++   {
++      ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
++   }
++#endif
++   // ------------------ End - Second Order Mesh generation functions ------------------
++
++
++
++
++   // ------------------ Begin - Uniform Mesh Refinement functions ---------------------
++   DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh)
++   {
++      Refinement ref;
++      ref.Refine ( * (Mesh*) mesh );
++   }
++
++
++
++
++   DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
++      Ng_Mesh * mesh)
++   {
++      ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
++   }
++
++
++
++
++   DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
++      Ng_Mesh * mesh)
++   {
++      ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
++   }
++
++
++
++
++   DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
++      Ng_Mesh * mesh)
++   {
++      ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
++   }
++
++
++
++
++#ifdef OCCGEOMETRY
++   DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
++      Ng_Mesh * mesh)
++   {
++      ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
++   }
++#endif
++   // ------------------ End - Uniform Mesh Refinement functions -----------------------
++} // End of namespace nglib
++
++
++
++
++// compatibility functions:
++namespace netgen 
++{
++   char geomfilename[255];
++
++   DLL_HEADER void MyError (const char * ch)
++   {
++      cerr << ch;
++   }
++
++
++
++
++   //Destination for messages, errors, ...
++   DLL_HEADER void Ng_PrintDest(const char * s)
++   {
++#ifdef PARALLEL
++     int id = 0;
++     MPI_Comm_rank(MPI_COMM_WORLD, &id);
++     if (id != 0) return;
++#endif
++     (*mycout) << s << flush;
++   }
++
++
++
++
++   DLL_HEADER double GetTime ()
++   {
++      return 0;
++   }
++
++
++
++
++   void ResetTime ()
++   {
++      ;
++   }
++
++
++
++
++   void MyBeep (int i)
++   {
++      ;
++   }
++
++
++
++
++   void Render()
++   {
++      ; 
++   }
++} // End of namespace netgen
++
++
++
++
++void Ng_Redraw () { ; }
++void Ng_ClearSolutionData () { ; }
++void Ng_SetSolutionData (Ng_SolutionData * soldata) 
++{ 
++  delete soldata->solclass;
++}
++void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }
++
++
+diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.h netgen-5.3.1_SRC_modif/nglib/nglib.h
+--- netgen-5.3.1_SRC_orig/nglib/nglib.h        2014-08-29 13:54:00.000000000 +0400
++++ netgen-5.3.1_SRC_modif/nglib/nglib.h       2019-11-14 16:56:25.350369905 +0300
+@@ -1,747 +1,747 @@
+-#ifndef NGLIB\r
+-#define NGLIB\r
+-\r
+-/**************************************************************************/\r
+-/* File:   nglib.h                                                        */\r
+-/* Author: Joachim Schoeberl                                              */\r
+-/* Date:   7. May. 2000                                                   */\r
+-/**************************************************************************/\r
+-\r
+-/*!\r
+-   \file nglib.h\r
+-   \brief Library interface to the netgen meshing kernel\r
+-   \author Joachim Schoeberl\r
+-   \date 7. May 2000\r
+-\r
+-   This header file provides access to the core functionality of the Netgen \r
+-   Mesher via a library interface, without an interactive User Interface.\r
+-\r
+-   The intention of providing these set of functions is to allow system \r
+-   developers to integrate Netgen into top-level code, to act as the low \r
+-   level mesh generation / optimisation kernel.  \r
+-*/\r
+-\r
+-// Philippose - 14.02.2009\r
+-// Modifications for creating a DLL in Windows\r
+-#ifdef WIN32\r
+-   #ifdef NGLIB_EXPORTS || nglib_EXPORTS\r
+-      #define DLL_HEADER   __declspec(dllexport)\r
+-   #else\r
+-      #define DLL_HEADER   __declspec(dllimport)\r
+-   #endif\r
+-#else\r
+-   #define DLL_HEADER \r
+-#endif\r
+-\r
+-\r
+-\r
+-// ** Constants used within Netgen *********************\r
+-/// Maximum allowed number of nodes per volume element\r
+-#define NG_VOLUME_ELEMENT_MAXPOINTS 10\r
+-\r
+-/// Maximum allowed number of nodes per surface element\r
+-#define NG_SURFACE_ELEMENT_MAXPOINTS 8\r
+-\r
+-\r
+-\r
+-// *** Data-types for accessing Netgen functionality ***\r
+-/// Data type for NETGEN mesh\r
+-typedef void * Ng_Mesh;\r
+-\r
+-/// Data type for NETGEN CSG geometry\r
+-typedef void * Ng_CSG_Geometry;\r
+-\r
+-/// Data type for NETGEN 2D geometry\r
+-typedef void * Ng_Geometry_2D;\r
+-\r
+-/// Data type for NETGEN STL geometry\r
+-typedef void * Ng_STL_Geometry;\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-/// Data type for NETGEN OpenCascade geometry\r
+-typedef void * Ng_OCC_Geometry;\r
+-typedef void * Ng_OCC_TopTools_IndexedMapOfShape;\r
+-#endif\r
+-\r
+-\r
+-// *** Special Enum types used within Netgen ***********\r
+-/// Currently implemented surface element types\r
+-enum Ng_Surface_Element_Type \r
+-   { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3, NG_QUAD6 = 4, NG_QUAD8 = 5 };\r
+-\r
+-/// Currently implemented volume element types\r
+-enum Ng_Volume_Element_Type \r
+-   { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 };\r
+-\r
+-/// Values returned by Netgen functions\r
+-enum Ng_Result \r
+-   { \r
+-     NG_ERROR               = -1,   \r
+-     NG_OK                  = 0, \r
+-     NG_SURFACE_INPUT_ERROR = 1,\r
+-     NG_VOLUME_FAILURE      = 2, \r
+-     NG_STL_INPUT_ERROR     = 3,\r
+-     NG_SURFACE_FAILURE     = 4,\r
+-     NG_FILE_NOT_FOUND      = 5 \r
+-   };\r
+-\r
+-\r
+-\r
+-// *** Classes required for use within Netgen **********\r
+-/// Netgen Meshing Parameters class\r
+-class Ng_Meshing_Parameters \r
+-{\r
+-public:\r
+-   int uselocalh;                      //!< Switch to enable / disable usage of local mesh size modifiers\r
+-\r
+-   double maxh;                        //!< Maximum global mesh size allowed\r
+-   double minh;                        //!< Minimum global mesh size allowed\r
+-\r
+-   double fineness;                    //!< Mesh density: 0...1 (0 => coarse; 1 => fine)\r
+-   double grading;                     //!< Mesh grading: 0...1 (0 => uniform mesh; 1 => aggressive local grading)\r
+-\r
+-   double elementsperedge;             //!< Number of elements to generate per edge of the geometry\r
+-   double elementspercurve;            //!< Elements to generate per curvature radius\r
+-\r
+-   int closeedgeenable;                //!< Enable / Disable mesh refinement at close edges\r
+-   double closeedgefact;               //!< Factor to use for refinement at close edges (larger => finer)\r
+-\r
+-   int minedgelenenable;                         //!< Enable / Disable user defined minimum edge length for edge subdivision\r
+-   double minedgelen;                  //!< Minimum edge length to use while subdividing the edges (default = 1e-4)\r
+-\r
+-   int second_order;                   //!< Generate second-order surface and volume elements\r
+-   int quad_dominated;                 //!< Creates a Quad-dominated mesh \r
+-\r
+-   char * meshsize_filename;           //!< Optional external mesh size file \r
+-\r
+-   int optsurfmeshenable;              //!< Enable / Disable automatic surface mesh optimization\r
+-   int optvolmeshenable;               //!< Enable / Disable automatic volume mesh optimization\r
+-\r
+-   int optsteps_3d;                     //!< Number of optimize steps to use for 3-D mesh optimization\r
+-   int optsteps_2d;                     //!< Number of optimize steps to use for 2-D mesh optimization\r
+-\r
+-   // Philippose - 13/09/2010\r
+-   // Added a couple more parameters into the meshing parameters list \r
+-   // from Netgen into Nglib\r
+-   int invert_tets;                    //!< Invert all the volume elements\r
+-   int invert_trigs;                   //!< Invert all the surface triangle elements\r
+-\r
+-   int check_overlap;                  //!< Check for overlapping surfaces during Surface meshing\r
+-   int check_overlapping_boundary;     //!< Check for overlapping surface elements before volume meshing\r
+-\r
+-\r
+-   /*!\r
+-      Default constructor for the Mesh Parameters class\r
+-\r
+-      Note: This constructor initialises the variables in the \r
+-      class with the following default values\r
+-      - #uselocalh: 1\r
+-      - #maxh: 1000.0\r
+-      - #fineness: 0.5\r
+-      - #grading: 0.3\r
+-      - #elementsperedge: 2.0\r
+-      - #elementspercurve: 2.0\r
+-      - #closeedgeenable: 0\r
+-      - #closeedgefact: 2.0\r
+-      - #secondorder: 0\r
+-      - #meshsize_filename: null\r
+-      - #quad_dominated: 0\r
+-      - #optsurfmeshenable: 1\r
+-      - #optvolmeshenable: 1\r
+-      - #optsteps_2d: 3\r
+-      - #optsteps_3d: 3\r
+-      - #invert_tets: 0\r
+-      - #invert_trigs:0 \r
+-      - #check_overlap: 1\r
+-      - #check_overlapping_boundary: 1\r
+-   */\r
+-   DLL_HEADER Ng_Meshing_Parameters();\r
+-\r
+-\r
+-\r
+-   /*!\r
+-       Reset the meshing parameters to their defaults\r
+-\r
+-       This member function resets all the meshing parameters \r
+-       of the object to the default values\r
+-   */\r
+-   DLL_HEADER void Reset_Parameters();\r
+-\r
+-\r
+-\r
+-   /*!\r
+-       Transfer local meshing parameters to internal meshing parameters\r
+-\r
+-       This member function transfers all the meshing parameters \r
+-       defined in the local meshing parameters structure of nglib into \r
+-       the internal meshing parameters structure used by the Netgen core\r
+-   */\r
+-   DLL_HEADER void Transfer_Parameters();\r
+-};\r
+-\r
+-\r
+-\r
+-\r
+-// *** Functions Exported by this Library *************\r
+-\r
+-// ------------------------------------------------------------------\r
+-// Netgen library initialisation / destruction functions\r
+-\r
+-/*! \brief Initialise the Netgen library and prepare for use\r
+-\r
+-    This function needs to be called by the third-party \r
+-    program before beginning to use the other Netgen \r
+-    specific functions.\r
+-*/\r
+-DLL_HEADER void Ng_Init ();\r
+-\r
+-\r
+-/*! \brief Exit the Netgen meshing kernel in a clean manner\r
+-\r
+-    Use this function to exit the meshing sub-system in \r
+-    a clean and orderly manner.\r
+-*/\r
+-DLL_HEADER void Ng_Exit ();\r
+-  \r
+-\r
+-/*! \brief Create a new (and empty) Netgen Mesh Structure\r
+-\r
+-    This function creates a new Netgen Mesh, initialises \r
+-    it, and returns a pointer to the created mesh structure. \r
+-\r
+-    Use the returned pointer for subsequent operations \r
+-    which involve mesh operations.\r
+-\r
+-    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh\r
+-*/\r
+-DLL_HEADER  Ng_Mesh * Ng_NewMesh ();\r
+-\r
+-\r
+-/*! \brief Delete an existing Netgen Mesh Structure\r
+-\r
+-    Use this function to delete an existing Netgen mesh \r
+-    structure and release the used memory. \r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure \r
+-                of type #Ng_Mesh\r
+-*/\r
+-DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);\r
+-\r
+-\r
+-/*! \brief Save a Netgen Mesh to disk\r
+-\r
+-    This function allows a generated mesh structure to be saved \r
+-    to disk.\r
+-\r
+-    A Mesh saved using this function, will be written to disk \r
+-    in the Netgen VOL file format.\r
+-\r
+-    \param mesh    Pointer to an existing Netgen Mesh structure \r
+-                   of type #Ng_Mesh\r
+-    \param filename Pointer to a character array containing the \r
+-                    name of the file to which the mesh should \r
+-                    be saved\r
+-*/\r
+-DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);\r
+-\r
+-\r
+-/*! \brief Load a Netgen VOL Mesh from disk into memory\r
+-\r
+-    A Netgen mesh saved in the internal VOL format can be loaded \r
+-    into a Netgen Mesh structure using this function. \r
+-\r
+-    \param filename Pointer to a character array containing the \r
+-                    name of the file to load\r
+-    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing \r
+-                    the mesh loaded from disk\r
+-*/\r
+-DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);\r
+-\r
+-\r
+-/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory\r
+-\r
+-    A Netgen mesh saved in the internal VOL format can be merged \r
+-    into an existing Netgen Mesh structure using this function. \r
+-\r
+-    \param mesh       Name of the Mesh structure already existent in memory\r
+-    \param filename   Pointer to a character array containing the \r
+-                      name of the file to load\r
+-    \return Ng_Result Status of the merge operation\r
+-*/\r
+-DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);\r
+-\r
+-\r
+-/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case \r
+-    when both are already in memory\r
+-\r
+-    (NOTE: FUNCTION STILL WORK IN PROGRESS!!!)\r
+-\r
+-    This function can be used to merge two Netgen meshes already present \r
+-    in memory.\r
+-\r
+-    \param mesh1      Parent Mesh structure into which the second mesh \r
+-                      will be merged\r
+-    \param mesh2      Child mesh structure which will get merged into \r
+-                      the parent mesh\r
+-    \return Ng_Result Status of the merge operation\r
+-*/\r
+-DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);\r
+-// ------------------------------------------------------------------\r
+-\r
+-\r
+-\r
+-// ------------------------------------------------------------------\r
+-// Basic Meshing functions for manually adding points, surface elements \r
+-// and volume elements to a Netgen Mesh structure\r
+-\r
+-/*! \brief Add a point to a given Netgen Mesh Structure\r
+-\r
+-    This function allows points to be directly added to a Netgen \r
+-    mesh structure by providing the co-ordinates.\r
+-\r
+-    Each call to the function allows only one point to be added.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param x    Pointer to an array of type double containing the co-ordinates \r
+-                of the point to be added in the form: \n\r
+-                - x[0] = X co-ordinate\r
+-                - x[1] = Y co-ordinate\r
+-                - x[2] = Z co-ordinate\r
+-*/\r
+-DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);\r
+-\r
+-\r
+-/*! \brief Add a surface element to a given Netgen Mesh Structure\r
+-\r
+-    This function allows the top-level code to directly add individual \r
+-    Surface Elements to a Netgen Mesh Structure by providing the type of \r
+-    element to be added and the indices of the points which constitute the \r
+-    element.\r
+-\r
+-    <i>Note:</i> \r
+-    - The points referred to by the surface elements must have been\r
+-      added prior to calling this function. \r
+-    - Currently only triangular elements are supported, and the Surface Element \r
+-      Type argument is not used.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param et   Surface Element type provided via the enumerated type \r
+-                #Ng_Surface_Element_Type \r
+-    \param pi   Pointer to an array of integers containing the indices of the \r
+-                points which constitute the surface element being added\r
+-*/\r
+-DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);\r
+-\r
+-\r
+-/*! \brief Add a volume element to a given Netgen Mesh Structure\r
+-\r
+-    This function allows the top-level code to directly add individual \r
+-    Volume Elements to a Netgen Mesh Structure by providing the type of \r
+-    element to be added and the indices of the points which constitute the \r
+-    element.\r
+-\r
+-    <i>Note:</i> \r
+-    - The points referred to by the volume elements must have been\r
+-      added prior to calling this function. \r
+-    - Currently only tetrahedral elements are supported, and the Volume Element \r
+-      Type argument is not used.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param et   Volume Element type provided via the enumerated type \r
+-                #Ng_Volume_Element_Type \r
+-    \param pi   Pointer to an array of integers containing the indices of the \r
+-                points which constitute the volume element being added\r
+-\r
+-*/\r
+-DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);\r
+-  \r
+-// ------------------------------------------------------------------\r
+-\r
+-\r
+-\r
+-// ------------------------------------------------------------------\r
+-// Local Mesh Size restriction / limiting utilities\r
+-\r
+-/*! \brief Apply a global restriction on mesh element size\r
+-\r
+-    This utility allows the user to apply a global mesh element \r
+-    size limitation. \r
+-\r
+-    During mesh creation, in the absence of an explicit local \r
+-    size restriction around the neighbourhood of a point within \r
+-    the meshing domain, this global size restriction will be \r
+-    utilised.\r
+-\r
+-    <b>Note</b>: This function only limits the <b>Maximum</b> \r
+-    size of an element within the mesh.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param h    Variable of type <i>double</i>, specifying the maximum\r
+-                allowable mesh size\r
+-*/\r
+-DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);\r
+-\r
+-\r
+-/*! \brief Locally restrict the mesh element size at the given point\r
+-\r
+-    Unlike the function #Ng_RestrictMeshSizeGlobal, this function \r
+-    allows the user to locally restrict the maximum allowable mesh \r
+-    size at a given point.\r
+-\r
+-    The point is specified via its three cartesian co-ordinates.\r
+-\r
+-    <b>Note</b>: This function only limits the <b>Maximum</b> size \r
+-    of the elements around the specified point.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param p    Pointer to an Array of type <i>double</i>, containing \r
+-                the three co-ordinates of the point in the form: \n\r
+-                - p[0] = X co-ordinate\r
+-                - p[1] = Y co-ordinate\r
+-                - p[2] = Z co-ordinate\r
+-    \param h    Variable of type <i>double</i>, specifying the maximum\r
+-                allowable mesh size at that point\r
+-*/\r
+-DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);\r
+-\r
+-\r
+-/*! \brief Locally restrict the mesh element size within a specified box\r
+-\r
+-    Similar to the function #Ng_RestrictMeshSizePoint, this function \r
+-    allows the size of elements within a mesh to be locally limited.\r
+-\r
+-    However, rather than limit the mesh size at a single point, this \r
+-    utility restricts the local mesh size within a 3D Box region, specified \r
+-    via the co-ordinates of the two diagonally opposite points of a cuboid.\r
+-\r
+-    <b>Note</b>: This function only limits the <b>Maximum</b> size \r
+-    of the elements within the specified region.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param pmin Pointer to an Array of type <i>double</i>, containing \r
+-                the three co-ordinates of the first point of the cuboid: \n\r
+-                - pmin[0] = X co-ordinate\r
+-                - pmin[1] = Y co-ordinate\r
+-                - pmin[2] = Z co-ordinate\r
+-    \param pmax Pointer to an Array of type <i>double</i>, containing \r
+-                the three co-ordinates of the opposite point of the \r
+-                cuboid: \n\r
+-                - pmax[0] = X co-ordinate\r
+-                - pmax[1] = Y co-ordinate\r
+-                - pmax[2] = Z co-ordinate\r
+-    \param h    Variable of type <i>double</i>, specifying the maximum\r
+-                allowable mesh size at that point\r
+-*/\r
+-DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);\r
+-\r
+-// ------------------------------------------------------------------\r
+-\r
+-\r
+-\r
+-// ------------------------------------------------------------------\r
+-// 3D Mesh Generation functions\r
+-\r
+-/*! \brief Create a 3D Volume Mesh given a Surface Mesh\r
+-\r
+-    After creating a surface mesh, this function can be utilised \r
+-    to automatically generate the corresponding 3D Volume Mesh.\r
+-\r
+-    Mesh generation parameters (such as grading, maximum element size, \r
+-    etc.) are specified via the meshing parameters class which also \r
+-    needs to be passed to this function.\r
+-\r
+-    <b>Note</b>: Currently, Netgen generates pure tetrahedral volume \r
+-    meshes.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \param mp   Pointer to a copy of the Meshing Parameters class\r
+-                (#Ng_Meshing_Parameters), filled up with the \r
+-                required values\r
+-\r
+-    \return Ng_Result Status of the Mesh Generation routine. More \r
+-                      details regarding the return value can be \r
+-                      found in the description of #Ng_Result\r
+-*/\r
+-DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);\r
+-\r
+-// ------------------------------------------------------------------\r
+-\r
+-\r
+-\r
+-// ------------------------------------------------------------------\r
+-// Basic Mesh information functions\r
+-\r
+-/*! \brief Returns the Number of Points present in the specified Mesh\r
+-\r
+-    Given an already existent Netgen Mesh Structure, this function \r
+-    returns the number of points currently present within the Mesh.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \return \r
+-                Integer Data-type with the number of points in the Mesh\r
+-*/\r
+-DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);\r
+-\r
+-\r
+-/*! \brief Returns the Number of Surface Elements present in the specified Mesh\r
+-\r
+-    Given an already existent Netgen Mesh Structure, this function \r
+-    returns the number of surface elements currently present within \r
+-    the Mesh.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \return \r
+-                Integer Data-type with the number of surface elements in the Mesh\r
+-*/\r
+-DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);\r
+-\r
+-\r
+-/*! \brief Returns the Number of Volume Elements present in the specified Mesh\r
+-\r
+-    Given an already existent Netgen Mesh Structure, this function \r
+-    returns the number of volume elements currently present within \r
+-    the Mesh.\r
+-\r
+-    \param mesh Pointer to an existing Netgen Mesh structure of \r
+-                type #Ng_Mesh\r
+-    \return \r
+-                Integer Data-type with the number of volume elements in the Mesh\r
+-*/\r
+-DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);\r
+-\r
+-// ------------------------------------------------------------------\r
+-\r
+-\r
+-\r
+-// ------------------------------------------------------------------\r
+-// Mesh Topology functions\r
+-// Use these functions to extract points, surface / volume elements, \r
+-// perform topological searches, etc..etc...\r
+-  \r
+-//  Return the Point Coordinates of a specified Point\r
+-// The x, y and z co-ordinates are returned in the array pointer as \r
+-// x[0] = x ; x[1] = y ; x[2] = z\r
+-DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);\r
+-\r
+-\r
+-\r
+-// return surface and volume element in pi\r
+-DLL_HEADER Ng_Surface_Element_Type \r
+-Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);\r
+-\r
+-DLL_HEADER Ng_Volume_Element_Type\r
+-Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);\r
+-\r
+-// ------------------------------------------------------------------\r
+-\r
+-\r
+-\r
+-\r
+-// **********************************************************\r
+-// **   2D Meshing                                         **\r
+-// **********************************************************\r
+-\r
+-\r
+-// feeds points and boundary to mesh\r
+-\r
+-DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);\r
+-DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);\r
+-  \r
+-// ask for number of points, elements and boundary segments\r
+-DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh);\r
+-DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh);\r
+-DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh);\r
+-  \r
+-//  return point coordinates\r
+-DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);\r
+-\r
+-// return 2d elements\r
+-DLL_HEADER Ng_Surface_Element_Type \r
+-Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);\r
+-\r
+-// return 2d boundary segment\r
+-DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);\r
+-\r
+-\r
+-// load 2d netgen spline geometry\r
+-DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);\r
+-\r
+-// generate 2d mesh, mesh is allocated by function\r
+-DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,\r
+-                                         Ng_Mesh ** mesh,\r
+-                                         Ng_Meshing_Parameters * mp);\r
+-  \r
+-DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,\r
+-                                  Ng_Mesh * mesh,\r
+-                                  int levels);\r
+-  \r
+-\r
+-\r
+-\r
+-\r
+-// **********************************************************\r
+-// **   STL Meshing                                        **\r
+-// **********************************************************\r
+-\r
+-\r
+-// loads geometry from STL file\r
+-DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);\r
+-\r
+-\r
+-// generate new STL Geometry\r
+-DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ();\r
+-  \r
+-\r
+-// fills STL Geometry\r
+-// positive orientation\r
+-// normal vector may be null-pointer\r
+-DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, \r
+-                         double * p1, double * p2, double * p3, \r
+-                         double * nv = NULL);\r
+-\r
+-// add (optional) edges :\r
+-DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, \r
+-                     double * p1, double * p2);\r
+-\r
+-// after adding triangles (and edges) initialize\r
+-DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);\r
+-\r
+-// automatically generates edges:\r
+-DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,\r
+-                            Ng_Mesh* mesh,\r
+-                            Ng_Meshing_Parameters * mp);\r
+-\r
+-\r
+-// generates mesh, empty mesh must be already created.\r
+-DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,\r
+-                                                 Ng_Mesh * mesh,\r
+-                                                 Ng_Meshing_Parameters * mp);\r
+-\r
+-\r
+-#ifdef ACIS\r
+-\r
+-// **********************************************************\r
+-// **   ACIS Meshing                                       **\r
+-// **********************************************************\r
+-\r
+-/// Data type for NETGEN STL geomty\r
+-typedef void * Ng_ACIS_Geometry;\r
+-\r
+-// loads geometry from STL file\r
+-DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);\r
+-  \r
+-// generates mesh, empty mesh must be already created.\r
+-DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,\r
+-                                                  Ng_Mesh * mesh,\r
+-                                                  Ng_Meshing_Parameters * mp);\r
+-\r
+-\r
+-#endif\r
+-\r
+-\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-\r
+-// **********************************************************\r
+-// **   OpenCascade Geometry / Meshing Utilities           **\r
+-// **********************************************************\r
+-\r
+-// Create new OCC Geometry Object\r
+-DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ();\r
+-\r
+-// Delete an OCC Geometry Object\r
+-DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);\r
+-\r
+-// Loads geometry from STEP file\r
+-DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);\r
+-\r
+-// Loads geometry from IGES file\r
+-DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);\r
+-\r
+-// Loads geometry from BREP file\r
+-DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);\r
+-\r
+-// Set the local mesh size based on geometry / topology\r
+-DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,\r
+-                                              Ng_Mesh * mesh,\r
+-                                              Ng_Meshing_Parameters * mp);\r
+-\r
+-// Mesh the edges and add Face descriptors to prepare for surface meshing\r
+-DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,\r
+-                                              Ng_Mesh * mesh,\r
+-                                              Ng_Meshing_Parameters * mp);\r
+-\r
+-// Mesh the surfaces of an OCC geometry\r
+-DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,\r
+-                                                 Ng_Mesh * mesh,\r
+-                                                 Ng_Meshing_Parameters * mp); \r
+-\r
+-// Get the face map of an already loaded OCC geometry\r
+-DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, \r
+-                                    Ng_OCC_TopTools_IndexedMapOfShape * FMap);\r
+-\r
+-#endif // OCCGEOMETRY\r
+-\r
+-\r
+-\r
+-// **********************************************************\r
+-// **   Mesh refinement algorithms                         **\r
+-// **********************************************************\r
+-\r
+-// uniform mesh refinement\r
+-DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh);\r
+-\r
+-\r
+-// uniform mesh refinement with geometry adaption:\r
+-\r
+-DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,\r
+-                                        Ng_Mesh * mesh);\r
+-\r
+-DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,\r
+-                                         Ng_Mesh * mesh);\r
+-\r
+-DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,\r
+-                                         Ng_Mesh * mesh);\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,\r
+-                                         Ng_Mesh * mesh);\r
+-#endif\r
+-\r
+-\r
+-\r
+-// **********************************************************\r
+-// **   Second Order mesh algorithms                       **\r
+-// **********************************************************\r
+-\r
+-// convert mesh to second order\r
+-DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh);\r
+-\r
+-\r
+-// convert mesh to second order with geometry adaption:\r
+-\r
+-DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,\r
+-                                        Ng_Mesh * mesh);\r
+-\r
+-DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,\r
+-                                         Ng_Mesh * mesh);\r
+-\r
+-DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,\r
+-                                         Ng_Mesh * mesh);\r
+-\r
+-#ifdef OCCGEOMETRY\r
+-DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,\r
+-                                         Ng_Mesh * mesh);\r
+-#endif\r
+-\r
+-\r
+-#endif // NGLIB\r
++#ifndef NGLIB
++#define NGLIB
++
++/**************************************************************************/
++/* File:   nglib.h                                                        */
++/* Author: Joachim Schoeberl                                              */
++/* Date:   7. May. 2000                                                   */
++/**************************************************************************/
++
++/*!
++   \file nglib.h
++   \brief Library interface to the netgen meshing kernel
++   \author Joachim Schoeberl
++   \date 7. May 2000
++
++   This header file provides access to the core functionality of the Netgen 
++   Mesher via a library interface, without an interactive User Interface.
++
++   The intention of providing these set of functions is to allow system 
++   developers to integrate Netgen into top-level code, to act as the low 
++   level mesh generation / optimisation kernel.  
++*/
++
++// Philippose - 14.02.2009
++// Modifications for creating a DLL in Windows
++#ifdef WIN32
++   #if defined NGLIB_EXPORTS || defined nglib_EXPORTS
++      #define DLL_HEADER   __declspec(dllexport)
++   #else
++      #define DLL_HEADER   __declspec(dllimport)
++   #endif
++#else
++   #define DLL_HEADER 
++#endif
++
++
++
++// ** Constants used within Netgen *********************
++/// Maximum allowed number of nodes per volume element
++#define NG_VOLUME_ELEMENT_MAXPOINTS 10
++
++/// Maximum allowed number of nodes per surface element
++#define NG_SURFACE_ELEMENT_MAXPOINTS 8
++
++
++
++// *** Data-types for accessing Netgen functionality ***
++/// Data type for NETGEN mesh
++typedef void * Ng_Mesh;
++
++/// Data type for NETGEN CSG geometry
++typedef void * Ng_CSG_Geometry;
++
++/// Data type for NETGEN 2D geometry
++typedef void * Ng_Geometry_2D;
++
++/// Data type for NETGEN STL geometry
++typedef void * Ng_STL_Geometry;
++
++#ifdef OCCGEOMETRY
++/// Data type for NETGEN OpenCascade geometry
++typedef void * Ng_OCC_Geometry;
++typedef void * Ng_OCC_TopTools_IndexedMapOfShape;
++#endif
++
++
++// *** Special Enum types used within Netgen ***********
++/// Currently implemented surface element types
++enum Ng_Surface_Element_Type 
++   { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3, NG_QUAD6 = 4, NG_QUAD8 = 5 };
++
++/// Currently implemented volume element types
++enum Ng_Volume_Element_Type 
++   { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 };
++
++/// Values returned by Netgen functions
++enum Ng_Result 
++   { 
++     NG_ERROR               = -1,   
++     NG_OK                  = 0, 
++     NG_SURFACE_INPUT_ERROR = 1,
++     NG_VOLUME_FAILURE      = 2, 
++     NG_STL_INPUT_ERROR     = 3,
++     NG_SURFACE_FAILURE     = 4,
++     NG_FILE_NOT_FOUND      = 5 
++   };
++
++
++
++// *** Classes required for use within Netgen **********
++/// Netgen Meshing Parameters class
++class Ng_Meshing_Parameters 
++{
++public:
++   int uselocalh;                      //!< Switch to enable / disable usage of local mesh size modifiers
++
++   double maxh;                        //!< Maximum global mesh size allowed
++   double minh;                        //!< Minimum global mesh size allowed
++
++   double fineness;                    //!< Mesh density: 0...1 (0 => coarse; 1 => fine)
++   double grading;                     //!< Mesh grading: 0...1 (0 => uniform mesh; 1 => aggressive local grading)
++
++   double elementsperedge;             //!< Number of elements to generate per edge of the geometry
++   double elementspercurve;            //!< Elements to generate per curvature radius
++
++   int closeedgeenable;                //!< Enable / Disable mesh refinement at close edges
++   double closeedgefact;               //!< Factor to use for refinement at close edges (larger => finer)
++
++   int minedgelenenable;                         //!< Enable / Disable user defined minimum edge length for edge subdivision
++   double minedgelen;                  //!< Minimum edge length to use while subdividing the edges (default = 1e-4)
++
++   int second_order;                   //!< Generate second-order surface and volume elements
++   int quad_dominated;                 //!< Creates a Quad-dominated mesh 
++
++   char * meshsize_filename;           //!< Optional external mesh size file 
++
++   int optsurfmeshenable;              //!< Enable / Disable automatic surface mesh optimization
++   int optvolmeshenable;               //!< Enable / Disable automatic volume mesh optimization
++
++   int optsteps_3d;                     //!< Number of optimize steps to use for 3-D mesh optimization
++   int optsteps_2d;                     //!< Number of optimize steps to use for 2-D mesh optimization
++
++   // Philippose - 13/09/2010
++   // Added a couple more parameters into the meshing parameters list 
++   // from Netgen into Nglib
++   int invert_tets;                    //!< Invert all the volume elements
++   int invert_trigs;                   //!< Invert all the surface triangle elements
++
++   int check_overlap;                  //!< Check for overlapping surfaces during Surface meshing
++   int check_overlapping_boundary;     //!< Check for overlapping surface elements before volume meshing
++
++
++   /*!
++      Default constructor for the Mesh Parameters class
++
++      Note: This constructor initialises the variables in the 
++      class with the following default values
++      - #uselocalh: 1
++      - #maxh: 1000.0
++      - #fineness: 0.5
++      - #grading: 0.3
++      - #elementsperedge: 2.0
++      - #elementspercurve: 2.0
++      - #closeedgeenable: 0
++      - #closeedgefact: 2.0
++      - #secondorder: 0
++      - #meshsize_filename: null
++      - #quad_dominated: 0
++      - #optsurfmeshenable: 1
++      - #optvolmeshenable: 1
++      - #optsteps_2d: 3
++      - #optsteps_3d: 3
++      - #invert_tets: 0
++      - #invert_trigs:0 
++      - #check_overlap: 1
++      - #check_overlapping_boundary: 1
++   */
++   DLL_HEADER Ng_Meshing_Parameters();
++
++
++
++   /*!
++       Reset the meshing parameters to their defaults
++
++       This member function resets all the meshing parameters 
++       of the object to the default values
++   */
++   DLL_HEADER void Reset_Parameters();
++
++
++
++   /*!
++       Transfer local meshing parameters to internal meshing parameters
++
++       This member function transfers all the meshing parameters 
++       defined in the local meshing parameters structure of nglib into 
++       the internal meshing parameters structure used by the Netgen core
++   */
++   DLL_HEADER void Transfer_Parameters();
++};
++
++
++
++
++// *** Functions Exported by this Library *************
++
++// ------------------------------------------------------------------
++// Netgen library initialisation / destruction functions
++
++/*! \brief Initialise the Netgen library and prepare for use
++
++    This function needs to be called by the third-party 
++    program before beginning to use the other Netgen 
++    specific functions.
++*/
++DLL_HEADER void Ng_Init ();
++
++
++/*! \brief Exit the Netgen meshing kernel in a clean manner
++
++    Use this function to exit the meshing sub-system in 
++    a clean and orderly manner.
++*/
++DLL_HEADER void Ng_Exit ();
++  
++
++/*! \brief Create a new (and empty) Netgen Mesh Structure
++
++    This function creates a new Netgen Mesh, initialises 
++    it, and returns a pointer to the created mesh structure. 
++
++    Use the returned pointer for subsequent operations 
++    which involve mesh operations.
++
++    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh
++*/
++DLL_HEADER  Ng_Mesh * Ng_NewMesh ();
++
++
++/*! \brief Delete an existing Netgen Mesh Structure
++
++    Use this function to delete an existing Netgen mesh 
++    structure and release the used memory. 
++
++    \param mesh Pointer to an existing Netgen Mesh structure 
++                of type #Ng_Mesh
++*/
++DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);
++
++
++/*! \brief Save a Netgen Mesh to disk
++
++    This function allows a generated mesh structure to be saved 
++    to disk.
++
++    A Mesh saved using this function, will be written to disk 
++    in the Netgen VOL file format.
++
++    \param mesh    Pointer to an existing Netgen Mesh structure 
++                   of type #Ng_Mesh
++    \param filename Pointer to a character array containing the 
++                    name of the file to which the mesh should 
++                    be saved
++*/
++DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);
++
++
++/*! \brief Load a Netgen VOL Mesh from disk into memory
++
++    A Netgen mesh saved in the internal VOL format can be loaded 
++    into a Netgen Mesh structure using this function. 
++
++    \param filename Pointer to a character array containing the 
++                    name of the file to load
++    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing 
++                    the mesh loaded from disk
++*/
++DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);
++
++
++/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory
++
++    A Netgen mesh saved in the internal VOL format can be merged 
++    into an existing Netgen Mesh structure using this function. 
++
++    \param mesh       Name of the Mesh structure already existent in memory
++    \param filename   Pointer to a character array containing the 
++                      name of the file to load
++    \return Ng_Result Status of the merge operation
++*/
++DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);
++
++
++/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case 
++    when both are already in memory
++
++    (NOTE: FUNCTION STILL WORK IN PROGRESS!!!)
++
++    This function can be used to merge two Netgen meshes already present 
++    in memory.
++
++    \param mesh1      Parent Mesh structure into which the second mesh 
++                      will be merged
++    \param mesh2      Child mesh structure which will get merged into 
++                      the parent mesh
++    \return Ng_Result Status of the merge operation
++*/
++DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);
++// ------------------------------------------------------------------
++
++
++
++// ------------------------------------------------------------------
++// Basic Meshing functions for manually adding points, surface elements 
++// and volume elements to a Netgen Mesh structure
++
++/*! \brief Add a point to a given Netgen Mesh Structure
++
++    This function allows points to be directly added to a Netgen 
++    mesh structure by providing the co-ordinates.
++
++    Each call to the function allows only one point to be added.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param x    Pointer to an array of type double containing the co-ordinates 
++                of the point to be added in the form: \n
++                - x[0] = X co-ordinate
++                - x[1] = Y co-ordinate
++                - x[2] = Z co-ordinate
++*/
++DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);
++
++
++/*! \brief Add a surface element to a given Netgen Mesh Structure
++
++    This function allows the top-level code to directly add individual 
++    Surface Elements to a Netgen Mesh Structure by providing the type of 
++    element to be added and the indices of the points which constitute the 
++    element.
++
++    <i>Note:</i> 
++    - The points referred to by the surface elements must have been
++      added prior to calling this function. 
++    - Currently only triangular elements are supported, and the Surface Element 
++      Type argument is not used.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param et   Surface Element type provided via the enumerated type 
++                #Ng_Surface_Element_Type 
++    \param pi   Pointer to an array of integers containing the indices of the 
++                points which constitute the surface element being added
++*/
++DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);
++
++
++/*! \brief Add a volume element to a given Netgen Mesh Structure
++
++    This function allows the top-level code to directly add individual 
++    Volume Elements to a Netgen Mesh Structure by providing the type of 
++    element to be added and the indices of the points which constitute the 
++    element.
++
++    <i>Note:</i> 
++    - The points referred to by the volume elements must have been
++      added prior to calling this function. 
++    - Currently only tetrahedral elements are supported, and the Volume Element 
++      Type argument is not used.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param et   Volume Element type provided via the enumerated type 
++                #Ng_Volume_Element_Type 
++    \param pi   Pointer to an array of integers containing the indices of the 
++                points which constitute the volume element being added
++
++*/
++DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);
++  
++// ------------------------------------------------------------------
++
++
++
++// ------------------------------------------------------------------
++// Local Mesh Size restriction / limiting utilities
++
++/*! \brief Apply a global restriction on mesh element size
++
++    This utility allows the user to apply a global mesh element 
++    size limitation. 
++
++    During mesh creation, in the absence of an explicit local 
++    size restriction around the neighbourhood of a point within 
++    the meshing domain, this global size restriction will be 
++    utilised.
++
++    <b>Note</b>: This function only limits the <b>Maximum</b> 
++    size of an element within the mesh.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param h    Variable of type <i>double</i>, specifying the maximum
++                allowable mesh size
++*/
++DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);
++
++
++/*! \brief Locally restrict the mesh element size at the given point
++
++    Unlike the function #Ng_RestrictMeshSizeGlobal, this function 
++    allows the user to locally restrict the maximum allowable mesh 
++    size at a given point.
++
++    The point is specified via its three cartesian co-ordinates.
++
++    <b>Note</b>: This function only limits the <b>Maximum</b> size 
++    of the elements around the specified point.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param p    Pointer to an Array of type <i>double</i>, containing 
++                the three co-ordinates of the point in the form: \n
++                - p[0] = X co-ordinate
++                - p[1] = Y co-ordinate
++                - p[2] = Z co-ordinate
++    \param h    Variable of type <i>double</i>, specifying the maximum
++                allowable mesh size at that point
++*/
++DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);
++
++
++/*! \brief Locally restrict the mesh element size within a specified box
++
++    Similar to the function #Ng_RestrictMeshSizePoint, this function 
++    allows the size of elements within a mesh to be locally limited.
++
++    However, rather than limit the mesh size at a single point, this 
++    utility restricts the local mesh size within a 3D Box region, specified 
++    via the co-ordinates of the two diagonally opposite points of a cuboid.
++
++    <b>Note</b>: This function only limits the <b>Maximum</b> size 
++    of the elements within the specified region.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param pmin Pointer to an Array of type <i>double</i>, containing 
++                the three co-ordinates of the first point of the cuboid: \n
++                - pmin[0] = X co-ordinate
++                - pmin[1] = Y co-ordinate
++                - pmin[2] = Z co-ordinate
++    \param pmax Pointer to an Array of type <i>double</i>, containing 
++                the three co-ordinates of the opposite point of the 
++                cuboid: \n
++                - pmax[0] = X co-ordinate
++                - pmax[1] = Y co-ordinate
++                - pmax[2] = Z co-ordinate
++    \param h    Variable of type <i>double</i>, specifying the maximum
++                allowable mesh size at that point
++*/
++DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);
++
++// ------------------------------------------------------------------
++
++
++
++// ------------------------------------------------------------------
++// 3D Mesh Generation functions
++
++/*! \brief Create a 3D Volume Mesh given a Surface Mesh
++
++    After creating a surface mesh, this function can be utilised 
++    to automatically generate the corresponding 3D Volume Mesh.
++
++    Mesh generation parameters (such as grading, maximum element size, 
++    etc.) are specified via the meshing parameters class which also 
++    needs to be passed to this function.
++
++    <b>Note</b>: Currently, Netgen generates pure tetrahedral volume 
++    meshes.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \param mp   Pointer to a copy of the Meshing Parameters class
++                (#Ng_Meshing_Parameters), filled up with the 
++                required values
++
++    \return Ng_Result Status of the Mesh Generation routine. More 
++                      details regarding the return value can be 
++                      found in the description of #Ng_Result
++*/
++DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
++
++// ------------------------------------------------------------------
++
++
++
++// ------------------------------------------------------------------
++// Basic Mesh information functions
++
++/*! \brief Returns the Number of Points present in the specified Mesh
++
++    Given an already existent Netgen Mesh Structure, this function 
++    returns the number of points currently present within the Mesh.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \return 
++                Integer Data-type with the number of points in the Mesh
++*/
++DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);
++
++
++/*! \brief Returns the Number of Surface Elements present in the specified Mesh
++
++    Given an already existent Netgen Mesh Structure, this function 
++    returns the number of surface elements currently present within 
++    the Mesh.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \return 
++                Integer Data-type with the number of surface elements in the Mesh
++*/
++DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);
++
++
++/*! \brief Returns the Number of Volume Elements present in the specified Mesh
++
++    Given an already existent Netgen Mesh Structure, this function 
++    returns the number of volume elements currently present within 
++    the Mesh.
++
++    \param mesh Pointer to an existing Netgen Mesh structure of 
++                type #Ng_Mesh
++    \return 
++                Integer Data-type with the number of volume elements in the Mesh
++*/
++DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);
++
++// ------------------------------------------------------------------
++
++
++
++// ------------------------------------------------------------------
++// Mesh Topology functions
++// Use these functions to extract points, surface / volume elements, 
++// perform topological searches, etc..etc...
++  
++//  Return the Point Coordinates of a specified Point
++// The x, y and z co-ordinates are returned in the array pointer as 
++// x[0] = x ; x[1] = y ; x[2] = z
++DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);
++
++
++
++// return surface and volume element in pi
++DLL_HEADER Ng_Surface_Element_Type 
++Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);
++
++DLL_HEADER Ng_Volume_Element_Type
++Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);
++
++// ------------------------------------------------------------------
++
++
++
++
++// **********************************************************
++// **   2D Meshing                                         **
++// **********************************************************
++
++
++// feeds points and boundary to mesh
++
++DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);
++DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);
++  
++// ask for number of points, elements and boundary segments
++DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh);
++DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh);
++DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh);
++  
++//  return point coordinates
++DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);
++
++// return 2d elements
++DLL_HEADER Ng_Surface_Element_Type 
++Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
++
++// return 2d boundary segment
++DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
++
++
++// load 2d netgen spline geometry
++DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);
++
++// generate 2d mesh, mesh is allocated by function
++DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
++                                         Ng_Mesh ** mesh,
++                                         Ng_Meshing_Parameters * mp);
++  
++DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
++                                  Ng_Mesh * mesh,
++                                  int levels);
++  
++
++
++
++
++// **********************************************************
++// **   STL Meshing                                        **
++// **********************************************************
++
++
++// loads geometry from STL file
++DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);
++
++
++// generate new STL Geometry
++DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ();
++  
++
++// fills STL Geometry
++// positive orientation
++// normal vector may be null-pointer
++DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, 
++                         double * p1, double * p2, double * p3, 
++                         double * nv = NULL);
++
++// add (optional) edges :
++DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, 
++                     double * p1, double * p2);
++
++// after adding triangles (and edges) initialize
++DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);
++
++// automatically generates edges:
++DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
++                            Ng_Mesh* mesh,
++                            Ng_Meshing_Parameters * mp);
++
++
++// generates mesh, empty mesh must be already created.
++DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
++                                                 Ng_Mesh * mesh,
++                                                 Ng_Meshing_Parameters * mp);
++
++
++#ifdef ACIS
++
++// **********************************************************
++// **   ACIS Meshing                                       **
++// **********************************************************
++
++/// Data type for NETGEN STL geomty
++typedef void * Ng_ACIS_Geometry;
++
++// loads geometry from STL file
++DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);
++  
++// generates mesh, empty mesh must be already created.
++DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,
++                                                  Ng_Mesh * mesh,
++                                                  Ng_Meshing_Parameters * mp);
++
++
++#endif
++
++
++
++#ifdef OCCGEOMETRY
++
++// **********************************************************
++// **   OpenCascade Geometry / Meshing Utilities           **
++// **********************************************************
++
++// Create new OCC Geometry Object
++DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ();
++
++// Delete an OCC Geometry Object
++DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);
++
++// Loads geometry from STEP file
++DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);
++
++// Loads geometry from IGES file
++DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);
++
++// Loads geometry from BREP file
++DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);
++
++// Set the local mesh size based on geometry / topology
++DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
++                                              Ng_Mesh * mesh,
++                                              Ng_Meshing_Parameters * mp);
++
++// Mesh the edges and add Face descriptors to prepare for surface meshing
++DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
++                                              Ng_Mesh * mesh,
++                                              Ng_Meshing_Parameters * mp);
++
++// Mesh the surfaces of an OCC geometry
++DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
++                                                 Ng_Mesh * mesh,
++                                                 Ng_Meshing_Parameters * mp); 
++
++// Get the face map of an already loaded OCC geometry
++DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, 
++                                    Ng_OCC_TopTools_IndexedMapOfShape * FMap);
++
++#endif // OCCGEOMETRY
++
++
++
++// **********************************************************
++// **   Mesh refinement algorithms                         **
++// **********************************************************
++
++// uniform mesh refinement
++DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh);
++
++
++// uniform mesh refinement with geometry adaption:
++
++DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
++                                        Ng_Mesh * mesh);
++
++DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
++                                         Ng_Mesh * mesh);
++
++DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
++                                         Ng_Mesh * mesh);
++
++#ifdef OCCGEOMETRY
++DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
++                                         Ng_Mesh * mesh);
++#endif
++
++
++
++// **********************************************************
++// **   Second Order mesh algorithms                       **
++// **********************************************************
++
++// convert mesh to second order
++DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh);
++
++
++// convert mesh to second order with geometry adaption:
++
++DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,
++                                        Ng_Mesh * mesh);
++
++DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,
++                                         Ng_Mesh * mesh);
++
++DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
++                                         Ng_Mesh * mesh);
++
++#ifdef OCCGEOMETRY
++DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
++                                         Ng_Mesh * mesh);
++#endif
++
++
++#endif // NGLIB
+diff -Naur netgen-5.3.1_SRC_orig/tutorials/frame.step netgen-5.3.1_SRC_modif/tutorials/frame.step
+--- netgen-5.3.1_SRC_orig/tutorials/frame.step 2014-08-29 13:53:58.000000000 +0400
++++ netgen-5.3.1_SRC_modif/tutorials/frame.step        2019-11-14 16:56:25.702360052 +0300
+@@ -1,11683 +1,11683 @@
+-ISO-10303-21;\r
+-HEADER;\r
+-FILE_DESCRIPTION((''),'2;1');\r
+-FILE_NAME('PROESOURCE','2002-11-04T',('user-01'),(''),\r
+-'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060',\r
+-'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060','');\r
+-FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));\r
+-ENDSEC;\r
+-DATA;\r
+-#1=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2=VECTOR('',#1,1.693725393319E1);\r
+-#3=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));\r
+-#4=LINE('',#3,#2);\r
+-#5=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6=VECTOR('',#5,9.E0);\r
+-#7=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));\r
+-#8=LINE('',#7,#6);\r
+-#9=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));\r
+-#10=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#12=AXIS2_PLACEMENT_3D('',#9,#10,#11);\r
+-#14=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));\r
+-#15=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#16=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#17=AXIS2_PLACEMENT_3D('',#14,#15,#16);\r
+-#19=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));\r
+-#20=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#21=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#22=AXIS2_PLACEMENT_3D('',#19,#20,#21);\r
+-#24=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));\r
+-#25=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#26=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#27=AXIS2_PLACEMENT_3D('',#24,#25,#26);\r
+-#29=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));\r
+-#30=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#31=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#32=AXIS2_PLACEMENT_3D('',#29,#30,#31);\r
+-#34=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));\r
+-#35=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#36=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#37=AXIS2_PLACEMENT_3D('',#34,#35,#36);\r
+-#39=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));\r
+-#40=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#41=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#42=AXIS2_PLACEMENT_3D('',#39,#40,#41);\r
+-#44=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));\r
+-#45=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#46=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#47=AXIS2_PLACEMENT_3D('',#44,#45,#46);\r
+-#49=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));\r
+-#50=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#51=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#52=AXIS2_PLACEMENT_3D('',#49,#50,#51);\r
+-#54=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));\r
+-#55=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#56=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#57=AXIS2_PLACEMENT_3D('',#54,#55,#56);\r
+-#59=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));\r
+-#60=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#61=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#62=AXIS2_PLACEMENT_3D('',#59,#60,#61);\r
+-#64=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));\r
+-#65=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#66=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#67=AXIS2_PLACEMENT_3D('',#64,#65,#66);\r
+-#69=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));\r
+-#70=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#71=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#72=AXIS2_PLACEMENT_3D('',#69,#70,#71);\r
+-#74=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));\r
+-#75=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#76=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#77=AXIS2_PLACEMENT_3D('',#74,#75,#76);\r
+-#79=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));\r
+-#80=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#81=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#82=AXIS2_PLACEMENT_3D('',#79,#80,#81);\r
+-#84=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));\r
+-#85=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#86=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#87=AXIS2_PLACEMENT_3D('',#84,#85,#86);\r
+-#89=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));\r
+-#90=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#91=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#92=AXIS2_PLACEMENT_3D('',#89,#90,#91);\r
+-#94=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));\r
+-#95=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#96=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#97=AXIS2_PLACEMENT_3D('',#94,#95,#96);\r
+-#99=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));\r
+-#100=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#101=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#102=AXIS2_PLACEMENT_3D('',#99,#100,#101);\r
+-#104=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));\r
+-#105=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#106=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#107=AXIS2_PLACEMENT_3D('',#104,#105,#106);\r
+-#109=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));\r
+-#110=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#111=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#112=AXIS2_PLACEMENT_3D('',#109,#110,#111);\r
+-#114=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));\r
+-#115=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#116=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#117=AXIS2_PLACEMENT_3D('',#114,#115,#116);\r
+-#119=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));\r
+-#120=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#121=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#122=AXIS2_PLACEMENT_3D('',#119,#120,#121);\r
+-#124=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));\r
+-#125=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#126=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#127=AXIS2_PLACEMENT_3D('',#124,#125,#126);\r
+-#129=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#130=VECTOR('',#129,1.E0);\r
+-#131=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));\r
+-#132=LINE('',#131,#130);\r
+-#133=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#134=VECTOR('',#133,3.E0);\r
+-#135=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));\r
+-#136=LINE('',#135,#134);\r
+-#137=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#138=VECTOR('',#137,1.6E1);\r
+-#139=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
+-#140=LINE('',#139,#138);\r
+-#141=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#142=VECTOR('',#141,3.E0);\r
+-#143=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
+-#144=LINE('',#143,#142);\r
+-#145=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#146=VECTOR('',#145,1.E0);\r
+-#147=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));\r
+-#148=LINE('',#147,#146);\r
+-#149=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#150=VECTOR('',#149,3.75E0);\r
+-#151=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));\r
+-#152=LINE('',#151,#150);\r
+-#153=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#154=VECTOR('',#153,5.E-1);\r
+-#155=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
+-#156=LINE('',#155,#154);\r
+-#157=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#158=VECTOR('',#157,1.475E1);\r
+-#159=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));\r
+-#160=LINE('',#159,#158);\r
+-#161=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#162=VECTOR('',#161,1.6E1);\r
+-#163=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
+-#164=LINE('',#163,#162);\r
+-#165=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#166=VECTOR('',#165,1.475E1);\r
+-#167=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
+-#168=LINE('',#167,#166);\r
+-#169=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#170=VECTOR('',#169,5.E-1);\r
+-#171=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));\r
+-#172=LINE('',#171,#170);\r
+-#173=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#174=VECTOR('',#173,3.75E0);\r
+-#175=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));\r
+-#176=LINE('',#175,#174);\r
+-#177=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));\r
+-#178=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#179=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#180=AXIS2_PLACEMENT_3D('',#177,#178,#179);\r
+-#182=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));\r
+-#183=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#184=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#185=AXIS2_PLACEMENT_3D('',#182,#183,#184);\r
+-#187=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));\r
+-#188=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#189=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#190=AXIS2_PLACEMENT_3D('',#187,#188,#189);\r
+-#192=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));\r
+-#193=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#194=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#195=AXIS2_PLACEMENT_3D('',#192,#193,#194);\r
+-#197=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#198=VECTOR('',#197,1.3E1);\r
+-#199=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));\r
+-#200=LINE('',#199,#198);\r
+-#201=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#202=VECTOR('',#201,2.5625E0);\r
+-#203=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));\r
+-#204=LINE('',#203,#202);\r
+-#205=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#206=VECTOR('',#205,9.E0);\r
+-#207=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));\r
+-#208=LINE('',#207,#206);\r
+-#209=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#210=VECTOR('',#209,2.5625E0);\r
+-#211=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));\r
+-#212=LINE('',#211,#210);\r
+-#213=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#214=VECTOR('',#213,8.125E-1);\r
+-#215=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));\r
+-#216=LINE('',#215,#214);\r
+-#217=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#218=VECTOR('',#217,1.3E1);\r
+-#219=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));\r
+-#220=LINE('',#219,#218);\r
+-#221=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#222=VECTOR('',#221,8.125E-1);\r
+-#223=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));\r
+-#224=LINE('',#223,#222);\r
+-#225=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#226=VECTOR('',#225,1.E0);\r
+-#227=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));\r
+-#228=LINE('',#227,#226);\r
+-#229=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#230=VECTOR('',#229,7.5E-1);\r
+-#231=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
+-#232=LINE('',#231,#230);\r
+-#233=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#234=VECTOR('',#233,1.2E1);\r
+-#235=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));\r
+-#236=LINE('',#235,#234);\r
+-#237=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#238=VECTOR('',#237,7.5E-1);\r
+-#239=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));\r
+-#240=LINE('',#239,#238);\r
+-#241=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#242=VECTOR('',#241,1.E0);\r
+-#243=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));\r
+-#244=LINE('',#243,#242);\r
+-#245=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));\r
+-#246=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#247=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#248=AXIS2_PLACEMENT_3D('',#245,#246,#247);\r
+-#250=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));\r
+-#251=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#252=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);\r
+-#255=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));\r
+-#256=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#257=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#258=AXIS2_PLACEMENT_3D('',#255,#256,#257);\r
+-#260=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));\r
+-#261=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#262=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#263=AXIS2_PLACEMENT_3D('',#260,#261,#262);\r
+-#265=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));\r
+-#266=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#267=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#268=AXIS2_PLACEMENT_3D('',#265,#266,#267);\r
+-#270=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));\r
+-#271=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#272=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);\r
+-#275=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));\r
+-#276=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#277=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#278=AXIS2_PLACEMENT_3D('',#275,#276,#277);\r
+-#280=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));\r
+-#281=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#282=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#283=AXIS2_PLACEMENT_3D('',#280,#281,#282);\r
+-#285=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));\r
+-#286=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#287=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#288=AXIS2_PLACEMENT_3D('',#285,#286,#287);\r
+-#290=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));\r
+-#291=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#292=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);\r
+-#295=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));\r
+-#296=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#297=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#298=AXIS2_PLACEMENT_3D('',#295,#296,#297);\r
+-#300=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));\r
+-#301=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#302=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#303=AXIS2_PLACEMENT_3D('',#300,#301,#302);\r
+-#305=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#306=VECTOR('',#305,3.E0);\r
+-#307=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
+-#308=LINE('',#307,#306);\r
+-#309=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));\r
+-#310=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#311=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#312=AXIS2_PLACEMENT_3D('',#309,#310,#311);\r
+-#314=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#315=VECTOR('',#314,3.E0);\r
+-#316=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
+-#317=LINE('',#316,#315);\r
+-#318=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));\r
+-#319=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#320=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#321=AXIS2_PLACEMENT_3D('',#318,#319,#320);\r
+-#323=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));\r
+-#324=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#325=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));\r
+-#326=AXIS2_PLACEMENT_3D('',#323,#324,#325);\r
+-#328=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#329=VECTOR('',#328,4.263248410977E0);\r
+-#330=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));\r
+-#331=LINE('',#330,#329);\r
+-#332=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));\r
+-#333=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#334=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#335=AXIS2_PLACEMENT_3D('',#332,#333,#334);\r
+-#337=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));\r
+-#338=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#339=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));\r
+-#340=AXIS2_PLACEMENT_3D('',#337,#338,#339);\r
+-#342=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#343=VECTOR('',#342,3.15E-1);\r
+-#344=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));\r
+-#345=LINE('',#344,#343);\r
+-#346=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));\r
+-#347=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#348=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#349=AXIS2_PLACEMENT_3D('',#346,#347,#348);\r
+-#351=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#352=VECTOR('',#351,3.15E-1);\r
+-#353=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
+-#354=LINE('',#353,#352);\r
+-#355=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#356=VECTOR('',#355,7.5E-1);\r
+-#357=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));\r
+-#358=LINE('',#357,#356);\r
+-#359=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#360=VECTOR('',#359,8.1E-1);\r
+-#361=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));\r
+-#362=LINE('',#361,#360);\r
+-#363=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#364=VECTOR('',#363,3.875E0);\r
+-#365=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));\r
+-#366=LINE('',#365,#364);\r
+-#367=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#368=VECTOR('',#367,8.1E-1);\r
+-#369=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));\r
+-#370=LINE('',#369,#368);\r
+-#371=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#372=VECTOR('',#371,2.525E-1);\r
+-#373=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));\r
+-#374=LINE('',#373,#372);\r
+-#375=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#376=VECTOR('',#375,3.E0);\r
+-#377=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
+-#378=LINE('',#377,#376);\r
+-#379=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));\r
+-#380=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#381=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#382=AXIS2_PLACEMENT_3D('',#379,#380,#381);\r
+-#384=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#385=VECTOR('',#384,3.E0);\r
+-#386=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
+-#387=LINE('',#386,#385);\r
+-#388=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));\r
+-#389=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#390=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#391=AXIS2_PLACEMENT_3D('',#388,#389,#390);\r
+-#393=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#394=VECTOR('',#393,3.E0);\r
+-#395=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
+-#396=LINE('',#395,#394);\r
+-#397=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));\r
+-#398=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#399=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#400=AXIS2_PLACEMENT_3D('',#397,#398,#399);\r
+-#402=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#403=VECTOR('',#402,3.E0);\r
+-#404=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
+-#405=LINE('',#404,#403);\r
+-#406=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));\r
+-#407=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#408=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#409=AXIS2_PLACEMENT_3D('',#406,#407,#408);\r
+-#411=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#412=VECTOR('',#411,3.E0);\r
+-#413=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
+-#414=LINE('',#413,#412);\r
+-#415=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));\r
+-#416=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#417=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#418=AXIS2_PLACEMENT_3D('',#415,#416,#417);\r
+-#420=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#421=VECTOR('',#420,3.E0);\r
+-#422=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
+-#423=LINE('',#422,#421);\r
+-#424=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));\r
+-#425=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#426=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);\r
+-#429=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#430=VECTOR('',#429,3.E0);\r
+-#431=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
+-#432=LINE('',#431,#430);\r
+-#433=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));\r
+-#434=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#435=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);\r
+-#438=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#439=VECTOR('',#438,3.E0);\r
+-#440=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
+-#441=LINE('',#440,#439);\r
+-#442=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));\r
+-#443=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#444=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#445=AXIS2_PLACEMENT_3D('',#442,#443,#444);\r
+-#447=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#448=VECTOR('',#447,3.E0);\r
+-#449=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
+-#450=LINE('',#449,#448);\r
+-#451=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));\r
+-#452=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#453=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#454=AXIS2_PLACEMENT_3D('',#451,#452,#453);\r
+-#456=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#457=VECTOR('',#456,3.E0);\r
+-#458=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
+-#459=LINE('',#458,#457);\r
+-#460=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));\r
+-#461=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#462=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#463=AXIS2_PLACEMENT_3D('',#460,#461,#462);\r
+-#465=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#466=VECTOR('',#465,3.E0);\r
+-#467=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
+-#468=LINE('',#467,#466);\r
+-#469=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));\r
+-#470=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#471=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#472=AXIS2_PLACEMENT_3D('',#469,#470,#471);\r
+-#474=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#475=VECTOR('',#474,3.E0);\r
+-#476=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
+-#477=LINE('',#476,#475);\r
+-#478=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));\r
+-#479=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#480=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#481=AXIS2_PLACEMENT_3D('',#478,#479,#480);\r
+-#483=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#484=VECTOR('',#483,3.E0);\r
+-#485=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
+-#486=LINE('',#485,#484);\r
+-#487=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));\r
+-#488=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#489=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#490=AXIS2_PLACEMENT_3D('',#487,#488,#489);\r
+-#492=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#493=VECTOR('',#492,3.E0);\r
+-#494=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
+-#495=LINE('',#494,#493);\r
+-#496=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));\r
+-#497=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#498=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#499=AXIS2_PLACEMENT_3D('',#496,#497,#498);\r
+-#501=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#502=VECTOR('',#501,3.E0);\r
+-#503=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
+-#504=LINE('',#503,#502);\r
+-#505=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));\r
+-#506=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#507=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#508=AXIS2_PLACEMENT_3D('',#505,#506,#507);\r
+-#510=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#511=VECTOR('',#510,3.E0);\r
+-#512=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
+-#513=LINE('',#512,#511);\r
+-#514=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));\r
+-#515=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#516=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#517=AXIS2_PLACEMENT_3D('',#514,#515,#516);\r
+-#519=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#520=VECTOR('',#519,3.E0);\r
+-#521=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
+-#522=LINE('',#521,#520);\r
+-#523=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));\r
+-#524=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#525=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#526=AXIS2_PLACEMENT_3D('',#523,#524,#525);\r
+-#528=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#529=VECTOR('',#528,3.E0);\r
+-#530=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
+-#531=LINE('',#530,#529);\r
+-#532=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));\r
+-#533=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#534=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#535=AXIS2_PLACEMENT_3D('',#532,#533,#534);\r
+-#537=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#538=VECTOR('',#537,3.E0);\r
+-#539=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
+-#540=LINE('',#539,#538);\r
+-#541=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));\r
+-#542=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#543=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#544=AXIS2_PLACEMENT_3D('',#541,#542,#543);\r
+-#546=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#547=VECTOR('',#546,3.E0);\r
+-#548=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
+-#549=LINE('',#548,#547);\r
+-#550=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));\r
+-#551=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#552=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#553=AXIS2_PLACEMENT_3D('',#550,#551,#552);\r
+-#555=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#556=VECTOR('',#555,3.E0);\r
+-#557=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
+-#558=LINE('',#557,#556);\r
+-#559=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));\r
+-#560=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#561=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#562=AXIS2_PLACEMENT_3D('',#559,#560,#561);\r
+-#564=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#565=VECTOR('',#564,3.E0);\r
+-#566=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
+-#567=LINE('',#566,#565);\r
+-#568=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));\r
+-#569=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#570=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);\r
+-#573=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#574=VECTOR('',#573,3.1E-1);\r
+-#575=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
+-#576=LINE('',#575,#574);\r
+-#577=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));\r
+-#578=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#579=DIRECTION('',(1.E0,0.E0,-3.956251312695E-14));\r
+-#580=AXIS2_PLACEMENT_3D('',#577,#578,#579);\r
+-#582=DIRECTION('',(2.292073341162E-14,0.E0,-1.E0));\r
+-#583=VECTOR('',#582,3.1E-1);\r
+-#584=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));\r
+-#585=LINE('',#584,#583);\r
+-#586=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#587=VECTOR('',#586,2.425E-1);\r
+-#588=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));\r
+-#589=LINE('',#588,#587);\r
+-#590=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#591=VECTOR('',#590,8.E-1);\r
+-#592=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));\r
+-#593=LINE('',#592,#591);\r
+-#594=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#595=VECTOR('',#594,3.865E0);\r
+-#596=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));\r
+-#597=LINE('',#596,#595);\r
+-#598=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#599=VECTOR('',#598,8.E-1);\r
+-#600=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));\r
+-#601=LINE('',#600,#599);\r
+-#602=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#603=VECTOR('',#602,7.4E-1);\r
+-#604=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));\r
+-#605=LINE('',#604,#603);\r
+-#606=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#607=VECTOR('',#606,4.263248410977E0);\r
+-#608=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));\r
+-#609=LINE('',#608,#607);\r
+-#610=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));\r
+-#611=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#612=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));\r
+-#613=AXIS2_PLACEMENT_3D('',#610,#611,#612);\r
+-#615=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));\r
+-#616=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#617=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));\r
+-#618=AXIS2_PLACEMENT_3D('',#615,#616,#617);\r
+-#620=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));\r
+-#621=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#622=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811866E-1));\r
+-#623=AXIS2_PLACEMENT_3D('',#620,#621,#622);\r
+-#625=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#626=VECTOR('',#625,4.263248410977E0);\r
+-#627=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));\r
+-#628=LINE('',#627,#626);\r
+-#629=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));\r
+-#630=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#631=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));\r
+-#632=AXIS2_PLACEMENT_3D('',#629,#630,#631);\r
+-#634=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));\r
+-#635=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#636=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));\r
+-#637=AXIS2_PLACEMENT_3D('',#634,#635,#636);\r
+-#639=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));\r
+-#640=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#641=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#642=AXIS2_PLACEMENT_3D('',#639,#640,#641);\r
+-#644=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));\r
+-#645=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#646=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));\r
+-#647=AXIS2_PLACEMENT_3D('',#644,#645,#646);\r
+-#649=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#650=VECTOR('',#649,4.263248410977E0);\r
+-#651=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));\r
+-#652=LINE('',#651,#650);\r
+-#653=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));\r
+-#654=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#655=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811866E-1));\r
+-#656=AXIS2_PLACEMENT_3D('',#653,#654,#655);\r
+-#658=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));\r
+-#659=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#660=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));\r
+-#661=AXIS2_PLACEMENT_3D('',#658,#659,#660);\r
+-#663=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
+-#664=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#665=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#666=AXIS2_PLACEMENT_3D('',#663,#664,#665);\r
+-#668=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
+-#669=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#670=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#671=AXIS2_PLACEMENT_3D('',#668,#669,#670);\r
+-#673=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
+-#674=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#675=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#676=AXIS2_PLACEMENT_3D('',#673,#674,#675);\r
+-#678=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
+-#679=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#680=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#681=AXIS2_PLACEMENT_3D('',#678,#679,#680);\r
+-#683=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
+-#684=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#685=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#686=AXIS2_PLACEMENT_3D('',#683,#684,#685);\r
+-#688=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
+-#689=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#690=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#691=AXIS2_PLACEMENT_3D('',#688,#689,#690);\r
+-#693=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
+-#694=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#695=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#696=AXIS2_PLACEMENT_3D('',#693,#694,#695);\r
+-#698=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
+-#699=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#700=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#701=AXIS2_PLACEMENT_3D('',#698,#699,#700);\r
+-#703=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
+-#704=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#705=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#706=AXIS2_PLACEMENT_3D('',#703,#704,#705);\r
+-#708=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
+-#709=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#710=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#711=AXIS2_PLACEMENT_3D('',#708,#709,#710);\r
+-#713=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
+-#714=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#715=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#716=AXIS2_PLACEMENT_3D('',#713,#714,#715);\r
+-#718=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
+-#719=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#720=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#721=AXIS2_PLACEMENT_3D('',#718,#719,#720);\r
+-#723=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
+-#724=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#725=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#726=AXIS2_PLACEMENT_3D('',#723,#724,#725);\r
+-#728=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
+-#729=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#730=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#731=AXIS2_PLACEMENT_3D('',#728,#729,#730);\r
+-#733=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
+-#734=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#735=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#736=AXIS2_PLACEMENT_3D('',#733,#734,#735);\r
+-#738=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
+-#739=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#740=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#741=AXIS2_PLACEMENT_3D('',#738,#739,#740);\r
+-#743=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#744=VECTOR('',#743,1.029563014099E1);\r
+-#745=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
+-#746=LINE('',#745,#744);\r
+-#747=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#748=VECTOR('',#747,2.E0);\r
+-#749=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
+-#750=LINE('',#749,#748);\r
+-#751=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#752=VECTOR('',#751,2.E0);\r
+-#753=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
+-#754=LINE('',#753,#752);\r
+-#755=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#756=VECTOR('',#755,1.029563014099E1);\r
+-#757=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
+-#758=LINE('',#757,#756);\r
+-#759=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#760=VECTOR('',#759,3.895172754280E0);\r
+-#761=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));\r
+-#762=LINE('',#761,#760);\r
+-#763=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));\r
+-#764=VECTOR('',#763,6.863753427325E0);\r
+-#765=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));\r
+-#766=LINE('',#765,#764);\r
+-#767=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#768=VECTOR('',#767,5.618394209466E-1);\r
+-#769=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));\r
+-#770=LINE('',#769,#768);\r
+-#771=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#772=VECTOR('',#771,6.E0);\r
+-#773=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));\r
+-#774=LINE('',#773,#772);\r
+-#775=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));\r
+-#776=VECTOR('',#775,6.863753427325E0);\r
+-#777=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));\r
+-#778=LINE('',#777,#776);\r
+-#779=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#780=VECTOR('',#779,3.895172754280E0);\r
+-#781=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));\r
+-#782=LINE('',#781,#780);\r
+-#783=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#784=VECTOR('',#783,6.E0);\r
+-#785=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));\r
+-#786=LINE('',#785,#784);\r
+-#787=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#788=VECTOR('',#787,5.618394209466E-1);\r
+-#789=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));\r
+-#790=LINE('',#789,#788);\r
+-#791=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#792=VECTOR('',#791,2.5E-1);\r
+-#793=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));\r
+-#794=LINE('',#793,#792);\r
+-#795=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#796=VECTOR('',#795,2.5E-1);\r
+-#797=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));\r
+-#798=LINE('',#797,#796);\r
+-#799=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));\r
+-#800=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#801=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#802=AXIS2_PLACEMENT_3D('',#799,#800,#801);\r
+-#804=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));\r
+-#805=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#806=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#807=AXIS2_PLACEMENT_3D('',#804,#805,#806);\r
+-#809=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#810=VECTOR('',#809,2.E0);\r
+-#811=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));\r
+-#812=LINE('',#811,#810);\r
+-#813=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#814=VECTOR('',#813,2.E0);\r
+-#815=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));\r
+-#816=LINE('',#815,#814);\r
+-#817=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));\r
+-#818=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#819=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#820=AXIS2_PLACEMENT_3D('',#817,#818,#819);\r
+-#822=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));\r
+-#823=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#824=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#825=AXIS2_PLACEMENT_3D('',#822,#823,#824);\r
+-#827=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#828=VECTOR('',#827,5.E0);\r
+-#829=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));\r
+-#830=LINE('',#829,#828);\r
+-#831=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#832=VECTOR('',#831,1.75E0);\r
+-#833=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
+-#834=LINE('',#833,#832);\r
+-#835=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#836=VECTOR('',#835,5.E0);\r
+-#837=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));\r
+-#838=LINE('',#837,#836);\r
+-#839=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#840=VECTOR('',#839,1.E1);\r
+-#841=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));\r
+-#842=LINE('',#841,#840);\r
+-#843=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#844=VECTOR('',#843,2.E0);\r
+-#845=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));\r
+-#846=LINE('',#845,#844);\r
+-#847=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#848=VECTOR('',#847,1.029563014099E1);\r
+-#849=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));\r
+-#850=LINE('',#849,#848);\r
+-#851=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#852=VECTOR('',#851,1.E0);\r
+-#853=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));\r
+-#854=LINE('',#853,#852);\r
+-#855=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#856=VECTOR('',#855,1.972007605460E-1);\r
+-#857=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));\r
+-#858=LINE('',#857,#856);\r
+-#859=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#860=VECTOR('',#859,2.059126028197E0);\r
+-#861=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));\r
+-#862=LINE('',#861,#860);\r
+-#863=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#864=VECTOR('',#863,1.197200760546E0);\r
+-#865=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));\r
+-#866=LINE('',#865,#864);\r
+-#867=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#868=VECTOR('',#867,6.8E0);\r
+-#869=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));\r
+-#870=LINE('',#869,#868);\r
+-#871=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#872=VECTOR('',#871,1.3E0);\r
+-#873=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));\r
+-#874=LINE('',#873,#872);\r
+-#875=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#876=VECTOR('',#875,4.3E0);\r
+-#877=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));\r
+-#878=LINE('',#877,#876);\r
+-#879=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
+-#880=VECTOR('',#879,5.773502691896E0);\r
+-#881=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
+-#882=LINE('',#881,#880);\r
+-#883=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));\r
+-#884=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#885=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#886=AXIS2_PLACEMENT_3D('',#883,#884,#885);\r
+-#888=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));\r
+-#889=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#890=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#891=AXIS2_PLACEMENT_3D('',#888,#889,#890);\r
+-#893=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));\r
+-#894=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#895=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#896=AXIS2_PLACEMENT_3D('',#893,#894,#895);\r
+-#898=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));\r
+-#899=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#900=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#901=AXIS2_PLACEMENT_3D('',#898,#899,#900);\r
+-#903=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#904=VECTOR('',#903,4.531373033403E0);\r
+-#905=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));\r
+-#906=LINE('',#905,#904);\r
+-#907=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#908=VECTOR('',#907,9.E0);\r
+-#909=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));\r
+-#910=LINE('',#909,#908);\r
+-#911=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#912=VECTOR('',#911,4.531373033403E0);\r
+-#913=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));\r
+-#914=LINE('',#913,#912);\r
+-#915=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#916=VECTOR('',#915,3.E0);\r
+-#917=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));\r
+-#918=LINE('',#917,#916);\r
+-#919=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#920=VECTOR('',#919,1.6E1);\r
+-#921=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));\r
+-#922=LINE('',#921,#920);\r
+-#923=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#924=VECTOR('',#923,3.E0);\r
+-#925=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));\r
+-#926=LINE('',#925,#924);\r
+-#927=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));\r
+-#928=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#929=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#930=AXIS2_PLACEMENT_3D('',#927,#928,#929);\r
+-#932=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));\r
+-#933=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#934=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#935=AXIS2_PLACEMENT_3D('',#932,#933,#934);\r
+-#937=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));\r
+-#938=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#939=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#940=AXIS2_PLACEMENT_3D('',#937,#938,#939);\r
+-#942=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));\r
+-#943=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#944=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#945=AXIS2_PLACEMENT_3D('',#942,#943,#944);\r
+-#947=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
+-#948=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#949=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#950=AXIS2_PLACEMENT_3D('',#947,#948,#949);\r
+-#952=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
+-#953=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#954=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#955=AXIS2_PLACEMENT_3D('',#952,#953,#954);\r
+-#957=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
+-#958=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#959=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#960=AXIS2_PLACEMENT_3D('',#957,#958,#959);\r
+-#962=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
+-#963=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#964=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#965=AXIS2_PLACEMENT_3D('',#962,#963,#964);\r
+-#967=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
+-#968=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#969=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#970=AXIS2_PLACEMENT_3D('',#967,#968,#969);\r
+-#972=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
+-#973=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#974=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#975=AXIS2_PLACEMENT_3D('',#972,#973,#974);\r
+-#977=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
+-#978=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#979=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#980=AXIS2_PLACEMENT_3D('',#977,#978,#979);\r
+-#982=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
+-#983=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#984=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#985=AXIS2_PLACEMENT_3D('',#982,#983,#984);\r
+-#987=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
+-#988=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#989=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#990=AXIS2_PLACEMENT_3D('',#987,#988,#989);\r
+-#992=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
+-#993=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#994=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#995=AXIS2_PLACEMENT_3D('',#992,#993,#994);\r
+-#997=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
+-#998=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#999=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1000=AXIS2_PLACEMENT_3D('',#997,#998,#999);\r
+-#1002=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
+-#1003=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1004=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1005=AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);\r
+-#1007=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
+-#1008=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1009=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1010=AXIS2_PLACEMENT_3D('',#1007,#1008,#1009);\r
+-#1012=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
+-#1013=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1014=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1015=AXIS2_PLACEMENT_3D('',#1012,#1013,#1014);\r
+-#1017=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
+-#1018=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1019=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1020=AXIS2_PLACEMENT_3D('',#1017,#1018,#1019);\r
+-#1022=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
+-#1023=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1024=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1025=AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);\r
+-#1027=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
+-#1028=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1029=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1030=AXIS2_PLACEMENT_3D('',#1027,#1028,#1029);\r
+-#1032=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
+-#1033=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1034=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1035=AXIS2_PLACEMENT_3D('',#1032,#1033,#1034);\r
+-#1037=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
+-#1038=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1039=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1040=AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);\r
+-#1042=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
+-#1043=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1044=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1045=AXIS2_PLACEMENT_3D('',#1042,#1043,#1044);\r
+-#1047=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
+-#1048=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1049=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1050=AXIS2_PLACEMENT_3D('',#1047,#1048,#1049);\r
+-#1052=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
+-#1053=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1054=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1055=AXIS2_PLACEMENT_3D('',#1052,#1053,#1054);\r
+-#1057=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
+-#1058=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1059=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1060=AXIS2_PLACEMENT_3D('',#1057,#1058,#1059);\r
+-#1062=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
+-#1063=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1064=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1065=AXIS2_PLACEMENT_3D('',#1062,#1063,#1064);\r
+-#1067=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1068=VECTOR('',#1067,2.5625E0);\r
+-#1069=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));\r
+-#1070=LINE('',#1069,#1068);\r
+-#1071=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1072=VECTOR('',#1071,1.3E1);\r
+-#1073=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));\r
+-#1074=LINE('',#1073,#1072);\r
+-#1075=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1076=VECTOR('',#1075,2.5625E0);\r
+-#1077=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));\r
+-#1078=LINE('',#1077,#1076);\r
+-#1079=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1080=VECTOR('',#1079,9.E0);\r
+-#1081=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));\r
+-#1082=LINE('',#1081,#1080);\r
+-#1083=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1084=VECTOR('',#1083,1.3E1);\r
+-#1085=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));\r
+-#1086=LINE('',#1085,#1084);\r
+-#1087=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1088=VECTOR('',#1087,8.125E-1);\r
+-#1089=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));\r
+-#1090=LINE('',#1089,#1088);\r
+-#1091=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1092=VECTOR('',#1091,1.E0);\r
+-#1093=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));\r
+-#1094=LINE('',#1093,#1092);\r
+-#1095=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1096=VECTOR('',#1095,7.5E-1);\r
+-#1097=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
+-#1098=LINE('',#1097,#1096);\r
+-#1099=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1100=VECTOR('',#1099,7.5E-1);\r
+-#1101=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));\r
+-#1102=LINE('',#1101,#1100);\r
+-#1103=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1104=VECTOR('',#1103,1.E0);\r
+-#1105=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));\r
+-#1106=LINE('',#1105,#1104);\r
+-#1107=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1108=VECTOR('',#1107,8.125E-1);\r
+-#1109=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));\r
+-#1110=LINE('',#1109,#1108);\r
+-#1111=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
+-#1112=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1113=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1114=AXIS2_PLACEMENT_3D('',#1111,#1112,#1113);\r
+-#1116=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
+-#1117=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1118=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1119=AXIS2_PLACEMENT_3D('',#1116,#1117,#1118);\r
+-#1121=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
+-#1122=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1123=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1124=AXIS2_PLACEMENT_3D('',#1121,#1122,#1123);\r
+-#1126=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
+-#1127=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1128=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1129=AXIS2_PLACEMENT_3D('',#1126,#1127,#1128);\r
+-#1131=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
+-#1132=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1133=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1134=AXIS2_PLACEMENT_3D('',#1131,#1132,#1133);\r
+-#1136=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
+-#1137=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1138=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1139=AXIS2_PLACEMENT_3D('',#1136,#1137,#1138);\r
+-#1141=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
+-#1142=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1143=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1144=AXIS2_PLACEMENT_3D('',#1141,#1142,#1143);\r
+-#1146=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
+-#1147=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1148=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1149=AXIS2_PLACEMENT_3D('',#1146,#1147,#1148);\r
+-#1151=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
+-#1152=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1153=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1154=AXIS2_PLACEMENT_3D('',#1151,#1152,#1153);\r
+-#1156=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
+-#1157=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1158=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1159=AXIS2_PLACEMENT_3D('',#1156,#1157,#1158);\r
+-#1161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
+-#1162=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1163=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163);\r
+-#1166=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
+-#1167=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1168=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168);\r
+-#1171=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1172=VECTOR('',#1171,2.886751345948E0);\r
+-#1173=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));\r
+-#1174=LINE('',#1173,#1172);\r
+-#1175=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1176=VECTOR('',#1175,2.25E0);\r
+-#1177=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));\r
+-#1178=LINE('',#1177,#1176);\r
+-#1179=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1180=VECTOR('',#1179,1.75E0);\r
+-#1181=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));\r
+-#1182=LINE('',#1181,#1180);\r
+-#1183=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1184=VECTOR('',#1183,5.E-1);\r
+-#1185=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
+-#1186=LINE('',#1185,#1184);\r
+-#1187=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1188=VECTOR('',#1187,1.475E1);\r
+-#1189=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));\r
+-#1190=LINE('',#1189,#1188);\r
+-#1191=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1192=VECTOR('',#1191,1.6E1);\r
+-#1193=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));\r
+-#1194=LINE('',#1193,#1192);\r
+-#1195=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1196=VECTOR('',#1195,1.475E1);\r
+-#1197=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));\r
+-#1198=LINE('',#1197,#1196);\r
+-#1199=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1200=VECTOR('',#1199,5.E-1);\r
+-#1201=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));\r
+-#1202=LINE('',#1201,#1200);\r
+-#1203=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1204=VECTOR('',#1203,1.75E0);\r
+-#1205=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));\r
+-#1206=LINE('',#1205,#1204);\r
+-#1207=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1208=VECTOR('',#1207,2.25E0);\r
+-#1209=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));\r
+-#1210=LINE('',#1209,#1208);\r
+-#1211=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1212=VECTOR('',#1211,2.886751345948E0);\r
+-#1213=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));\r
+-#1214=LINE('',#1213,#1212);\r
+-#1215=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1216=VECTOR('',#1215,1.75E0);\r
+-#1217=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));\r
+-#1218=LINE('',#1217,#1216);\r
+-#1219=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1220=VECTOR('',#1219,2.886751345948E0);\r
+-#1221=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));\r
+-#1222=LINE('',#1221,#1220);\r
+-#1223=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1224=VECTOR('',#1223,3.E0);\r
+-#1225=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));\r
+-#1226=LINE('',#1225,#1224);\r
+-#1227=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1228=VECTOR('',#1227,1.4E1);\r
+-#1229=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
+-#1230=LINE('',#1229,#1228);\r
+-#1231=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1232=VECTOR('',#1231,3.E0);\r
+-#1233=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));\r
+-#1234=LINE('',#1233,#1232);\r
+-#1235=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1236=VECTOR('',#1235,2.886751345948E0);\r
+-#1237=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));\r
+-#1238=LINE('',#1237,#1236);\r
+-#1239=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1240=VECTOR('',#1239,1.75E0);\r
+-#1241=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));\r
+-#1242=LINE('',#1241,#1240);\r
+-#1243=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1244=VECTOR('',#1243,2.5E-1);\r
+-#1245=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));\r
+-#1246=LINE('',#1245,#1244);\r
+-#1247=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1248=VECTOR('',#1247,2.5E-1);\r
+-#1249=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));\r
+-#1250=LINE('',#1249,#1248);\r
+-#1251=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
+-#1252=VECTOR('',#1251,1.154700538379E-1);\r
+-#1253=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));\r
+-#1254=LINE('',#1253,#1252);\r
+-#1255=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));\r
+-#1256=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1257=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1258=AXIS2_PLACEMENT_3D('',#1255,#1256,#1257);\r
+-#1260=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
+-#1261=VECTOR('',#1260,1.154700538379E-1);\r
+-#1262=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));\r
+-#1263=LINE('',#1262,#1261);\r
+-#1264=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));\r
+-#1265=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1266=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1267=AXIS2_PLACEMENT_3D('',#1264,#1265,#1266);\r
+-#1269=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1270=VECTOR('',#1269,2.5E-1);\r
+-#1271=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));\r
+-#1272=LINE('',#1271,#1270);\r
+-#1273=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1274=VECTOR('',#1273,2.5E-1);\r
+-#1275=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));\r
+-#1276=LINE('',#1275,#1274);\r
+-#1277=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
+-#1278=VECTOR('',#1277,1.154700538379E-1);\r
+-#1279=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));\r
+-#1280=LINE('',#1279,#1278);\r
+-#1281=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));\r
+-#1282=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1283=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);\r
+-#1286=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
+-#1287=VECTOR('',#1286,1.154700538379E-1);\r
+-#1288=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));\r
+-#1289=LINE('',#1288,#1287);\r
+-#1290=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));\r
+-#1291=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1292=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1293=AXIS2_PLACEMENT_3D('',#1290,#1291,#1292);\r
+-#1295=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1296=VECTOR('',#1295,1.5E0);\r
+-#1297=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));\r
+-#1298=LINE('',#1297,#1296);\r
+-#1299=CARTESIAN_POINT('',(2.046862696660E1,0.E0,7.E0));\r
+-#1300=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1301=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1302=AXIS2_PLACEMENT_3D('',#1299,#1300,#1301);\r
+-#1304=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1305=VECTOR('',#1304,1.5E0);\r
+-#1306=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));\r
+-#1307=LINE('',#1306,#1305);\r
+-#1308=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,7.E0));\r
+-#1309=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1310=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));\r
+-#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);\r
+-#1313=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));\r
+-#1314=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1315=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));\r
+-#1316=AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);\r
+-#1318=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1319=VECTOR('',#1318,1.5E0);\r
+-#1320=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));\r
+-#1321=LINE('',#1320,#1319);\r
+-#1322=CARTESIAN_POINT('',(1.65E1,1.5E0,7.5E0));\r
+-#1323=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1324=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1325=AXIS2_PLACEMENT_3D('',#1322,#1323,#1324);\r
+-#1327=CARTESIAN_POINT('',(7.5E0,1.5E0,7.5E0));\r
+-#1328=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1329=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));\r
+-#1330=AXIS2_PLACEMENT_3D('',#1327,#1328,#1329);\r
+-#1332=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1333=VECTOR('',#1332,1.5E0);\r
+-#1334=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));\r
+-#1335=LINE('',#1334,#1333);\r
+-#1336=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));\r
+-#1337=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1338=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1339=AXIS2_PLACEMENT_3D('',#1336,#1337,#1338);\r
+-#1341=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1342=VECTOR('',#1341,1.5E0);\r
+-#1343=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));\r
+-#1344=LINE('',#1343,#1342);\r
+-#1345=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,7.E0));\r
+-#1346=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1347=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1348=AXIS2_PLACEMENT_3D('',#1345,#1346,#1347);\r
+-#1350=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1351=VECTOR('',#1350,1.5E0);\r
+-#1352=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));\r
+-#1353=LINE('',#1352,#1351);\r
+-#1354=CARTESIAN_POINT('',(3.531373033403E0,0.E0,7.E0));\r
+-#1355=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1356=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));\r
+-#1357=AXIS2_PLACEMENT_3D('',#1354,#1355,#1356);\r
+-#1359=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1360=VECTOR('',#1359,1.5E0);\r
+-#1361=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));\r
+-#1362=LINE('',#1361,#1360);\r
+-#1363=CARTESIAN_POINT('',(-1.E0,1.5E0,7.E0));\r
+-#1364=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1365=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1366=AXIS2_PLACEMENT_3D('',#1363,#1364,#1365);\r
+-#1368=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1369=VECTOR('',#1368,1.5E0);\r
+-#1370=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));\r
+-#1371=LINE('',#1370,#1369);\r
+-#1372=CARTESIAN_POINT('',(-1.E0,0.E0,7.E0));\r
+-#1373=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1374=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1375=AXIS2_PLACEMENT_3D('',#1372,#1373,#1374);\r
+-#1377=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1378=VECTOR('',#1377,1.5E0);\r
+-#1379=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));\r
+-#1380=LINE('',#1379,#1378);\r
+-#1381=CARTESIAN_POINT('',(-1.E0,0.E0,1.325E1));\r
+-#1382=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1383=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1384=AXIS2_PLACEMENT_3D('',#1381,#1382,#1383);\r
+-#1386=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1387=VECTOR('',#1386,1.5E0);\r
+-#1388=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));\r
+-#1389=LINE('',#1388,#1387);\r
+-#1390=CARTESIAN_POINT('',(-1.E0,1.5E0,1.325E1));\r
+-#1391=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1392=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1393=AXIS2_PLACEMENT_3D('',#1390,#1391,#1392);\r
+-#1395=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1396=VECTOR('',#1395,1.5E0);\r
+-#1397=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));\r
+-#1398=LINE('',#1397,#1396);\r
+-#1399=CARTESIAN_POINT('',(3.5E0,1.5E0,1.325E1));\r
+-#1400=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1401=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1402=AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);\r
+-#1404=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1405=VECTOR('',#1404,1.5E0);\r
+-#1406=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));\r
+-#1407=LINE('',#1406,#1405);\r
+-#1408=CARTESIAN_POINT('',(3.5E0,0.E0,1.325E1));\r
+-#1409=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1410=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1411=AXIS2_PLACEMENT_3D('',#1408,#1409,#1410);\r
+-#1413=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1414=VECTOR('',#1413,1.5E0);\r
+-#1415=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));\r
+-#1416=LINE('',#1415,#1414);\r
+-#1417=CARTESIAN_POINT('',(5.5E0,1.5E0,2.19375E1));\r
+-#1418=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1419=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1420=AXIS2_PLACEMENT_3D('',#1417,#1418,#1419);\r
+-#1422=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1423=VECTOR('',#1422,1.5E0);\r
+-#1424=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));\r
+-#1425=LINE('',#1424,#1423);\r
+-#1426=CARTESIAN_POINT('',(5.5E0,0.E0,2.19375E1));\r
+-#1427=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1428=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1429=AXIS2_PLACEMENT_3D('',#1426,#1427,#1428);\r
+-#1431=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1432=VECTOR('',#1431,1.5E0);\r
+-#1433=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));\r
+-#1434=LINE('',#1433,#1432);\r
+-#1435=CARTESIAN_POINT('',(1.85E1,0.E0,2.19375E1));\r
+-#1436=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1437=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1438=AXIS2_PLACEMENT_3D('',#1435,#1436,#1437);\r
+-#1440=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1441=VECTOR('',#1440,1.5E0);\r
+-#1442=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));\r
+-#1443=LINE('',#1442,#1441);\r
+-#1444=CARTESIAN_POINT('',(1.85E1,1.5E0,2.19375E1));\r
+-#1445=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1446=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);\r
+-#1449=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1450=VECTOR('',#1449,1.5E0);\r
+-#1451=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));\r
+-#1452=LINE('',#1451,#1450);\r
+-#1453=CARTESIAN_POINT('',(1.65E1,1.5E0,2.45E1));\r
+-#1454=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1455=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1456=AXIS2_PLACEMENT_3D('',#1453,#1454,#1455);\r
+-#1458=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1459=VECTOR('',#1458,1.5E0);\r
+-#1460=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));\r
+-#1461=LINE('',#1460,#1459);\r
+-#1462=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));\r
+-#1463=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1464=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1465=AXIS2_PLACEMENT_3D('',#1462,#1463,#1464);\r
+-#1467=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1468=VECTOR('',#1467,1.5E0);\r
+-#1469=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));\r
+-#1470=LINE('',#1469,#1468);\r
+-#1471=CARTESIAN_POINT('',(7.5E0,1.5E0,2.45E1));\r
+-#1472=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1473=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473);\r
+-#1476=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1477=VECTOR('',#1476,1.5E0);\r
+-#1478=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));\r
+-#1479=LINE('',#1478,#1477);\r
+-#1480=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));\r
+-#1481=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1482=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1483=AXIS2_PLACEMENT_3D('',#1480,#1481,#1482);\r
+-#1485=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1486=VECTOR('',#1485,1.5E0);\r
+-#1487=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));\r
+-#1488=LINE('',#1487,#1486);\r
+-#1489=CARTESIAN_POINT('',(1.85E1,1.5E0,1.40625E1));\r
+-#1490=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1491=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1492=AXIS2_PLACEMENT_3D('',#1489,#1490,#1491);\r
+-#1494=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1495=VECTOR('',#1494,1.5E0);\r
+-#1496=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));\r
+-#1497=LINE('',#1496,#1495);\r
+-#1498=CARTESIAN_POINT('',(1.85E1,0.E0,1.40625E1));\r
+-#1499=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1500=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1501=AXIS2_PLACEMENT_3D('',#1498,#1499,#1500);\r
+-#1503=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1504=VECTOR('',#1503,1.5E0);\r
+-#1505=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));\r
+-#1506=LINE('',#1505,#1504);\r
+-#1507=CARTESIAN_POINT('',(5.5E0,0.E0,1.40625E1));\r
+-#1508=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1509=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1510=AXIS2_PLACEMENT_3D('',#1507,#1508,#1509);\r
+-#1512=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1513=VECTOR('',#1512,1.5E0);\r
+-#1514=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));\r
+-#1515=LINE('',#1514,#1513);\r
+-#1516=CARTESIAN_POINT('',(5.5E0,1.5E0,1.40625E1));\r
+-#1517=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1518=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1519=AXIS2_PLACEMENT_3D('',#1516,#1517,#1518);\r
+-#1521=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1522=VECTOR('',#1521,1.5E0);\r
+-#1523=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));\r
+-#1524=LINE('',#1523,#1522);\r
+-#1525=CARTESIAN_POINT('',(2.05E1,0.E0,1.325E1));\r
+-#1526=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1527=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1528=AXIS2_PLACEMENT_3D('',#1525,#1526,#1527);\r
+-#1530=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1531=VECTOR('',#1530,1.5E0);\r
+-#1532=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));\r
+-#1533=LINE('',#1532,#1531);\r
+-#1534=CARTESIAN_POINT('',(2.05E1,1.5E0,1.325E1));\r
+-#1535=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1536=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1537=AXIS2_PLACEMENT_3D('',#1534,#1535,#1536);\r
+-#1539=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1540=VECTOR('',#1539,1.5E0);\r
+-#1541=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));\r
+-#1542=LINE('',#1541,#1540);\r
+-#1543=CARTESIAN_POINT('',(2.5E1,1.5E0,1.325E1));\r
+-#1544=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1545=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1546=AXIS2_PLACEMENT_3D('',#1543,#1544,#1545);\r
+-#1548=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1549=VECTOR('',#1548,1.5E0);\r
+-#1550=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));\r
+-#1551=LINE('',#1550,#1549);\r
+-#1552=CARTESIAN_POINT('',(2.5E1,0.E0,1.325E1));\r
+-#1553=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1554=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1555=AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);\r
+-#1557=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1558=VECTOR('',#1557,1.5E0);\r
+-#1559=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
+-#1560=LINE('',#1559,#1558);\r
+-#1561=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#1562=VECTOR('',#1561,5.656854249492E0);\r
+-#1563=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
+-#1564=LINE('',#1563,#1562);\r
+-#1565=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1566=VECTOR('',#1565,1.5E0);\r
+-#1567=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));\r
+-#1568=LINE('',#1567,#1566);\r
+-#1569=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#1570=VECTOR('',#1569,5.656854249492E0);\r
+-#1571=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));\r
+-#1572=LINE('',#1571,#1570);\r
+-#1573=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1574=VECTOR('',#1573,1.5E0);\r
+-#1575=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
+-#1576=LINE('',#1575,#1574);\r
+-#1577=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1578=VECTOR('',#1577,5.656854249492E0);\r
+-#1579=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
+-#1580=LINE('',#1579,#1578);\r
+-#1581=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1582=VECTOR('',#1581,1.5E0);\r
+-#1583=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));\r
+-#1584=LINE('',#1583,#1582);\r
+-#1585=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1586=VECTOR('',#1585,5.656854249492E0);\r
+-#1587=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));\r
+-#1588=LINE('',#1587,#1586);\r
+-#1589=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1590=VECTOR('',#1589,1.5E0);\r
+-#1591=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));\r
+-#1592=LINE('',#1591,#1590);\r
+-#1593=CARTESIAN_POINT('',(2.5E1,0.E0,7.E0));\r
+-#1594=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1595=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1596=AXIS2_PLACEMENT_3D('',#1593,#1594,#1595);\r
+-#1598=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1599=VECTOR('',#1598,1.5E0);\r
+-#1600=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));\r
+-#1601=LINE('',#1600,#1599);\r
+-#1602=CARTESIAN_POINT('',(2.5E1,1.5E0,7.E0));\r
+-#1603=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1604=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);\r
+-#1607=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1608=VECTOR('',#1607,1.5E0);\r
+-#1609=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
+-#1610=LINE('',#1609,#1608);\r
+-#1611=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#1612=VECTOR('',#1611,5.656854249492E0);\r
+-#1613=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
+-#1614=LINE('',#1613,#1612);\r
+-#1615=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1616=VECTOR('',#1615,1.5E0);\r
+-#1617=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));\r
+-#1618=LINE('',#1617,#1616);\r
+-#1619=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#1620=VECTOR('',#1619,5.656854249492E0);\r
+-#1621=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));\r
+-#1622=LINE('',#1621,#1620);\r
+-#1623=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1624=VECTOR('',#1623,1.5E0);\r
+-#1625=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
+-#1626=LINE('',#1625,#1624);\r
+-#1627=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1628=VECTOR('',#1627,5.656854249492E0);\r
+-#1629=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
+-#1630=LINE('',#1629,#1628);\r
+-#1631=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1632=VECTOR('',#1631,1.5E0);\r
+-#1633=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));\r
+-#1634=LINE('',#1633,#1632);\r
+-#1635=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1636=VECTOR('',#1635,5.656854249492E0);\r
+-#1637=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));\r
+-#1638=LINE('',#1637,#1636);\r
+-#1639=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1640=VECTOR('',#1639,1.5E0);\r
+-#1641=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
+-#1642=LINE('',#1641,#1640);\r
+-#1643=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1644=VECTOR('',#1643,7.071067811865E-1);\r
+-#1645=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
+-#1646=LINE('',#1645,#1644);\r
+-#1647=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1648=VECTOR('',#1647,1.5E0);\r
+-#1649=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));\r
+-#1650=LINE('',#1649,#1648);\r
+-#1651=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1652=VECTOR('',#1651,7.071067811865E-1);\r
+-#1653=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));\r
+-#1654=LINE('',#1653,#1652);\r
+-#1655=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1656=VECTOR('',#1655,2.5E0);\r
+-#1657=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
+-#1658=LINE('',#1657,#1656);\r
+-#1659=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1660=VECTOR('',#1659,2.E0);\r
+-#1661=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
+-#1662=LINE('',#1661,#1660);\r
+-#1663=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1664=VECTOR('',#1663,2.E0);\r
+-#1665=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
+-#1666=LINE('',#1665,#1664);\r
+-#1667=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1668=VECTOR('',#1667,2.E0);\r
+-#1669=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));\r
+-#1670=LINE('',#1669,#1668);\r
+-#1671=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
+-#1672=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1673=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1674=AXIS2_PLACEMENT_3D('',#1671,#1672,#1673);\r
+-#1676=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
+-#1677=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1678=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1679=AXIS2_PLACEMENT_3D('',#1676,#1677,#1678);\r
+-#1681=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
+-#1682=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1683=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1684=AXIS2_PLACEMENT_3D('',#1681,#1682,#1683);\r
+-#1686=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
+-#1687=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1688=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1689=AXIS2_PLACEMENT_3D('',#1686,#1687,#1688);\r
+-#1691=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1692=VECTOR('',#1691,2.E0);\r
+-#1693=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
+-#1694=LINE('',#1693,#1692);\r
+-#1695=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1696=VECTOR('',#1695,1.E1);\r
+-#1697=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
+-#1698=LINE('',#1697,#1696);\r
+-#1699=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1700=VECTOR('',#1699,1.5E0);\r
+-#1701=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));\r
+-#1702=LINE('',#1701,#1700);\r
+-#1703=CARTESIAN_POINT('',(1.8E1,0.E0,1.1E1));\r
+-#1704=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1705=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1706=AXIS2_PLACEMENT_3D('',#1703,#1704,#1705);\r
+-#1708=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1709=VECTOR('',#1708,1.5E0);\r
+-#1710=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));\r
+-#1711=LINE('',#1710,#1709);\r
+-#1712=CARTESIAN_POINT('',(1.8E1,1.5E0,1.1E1));\r
+-#1713=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1714=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1715=AXIS2_PLACEMENT_3D('',#1712,#1713,#1714);\r
+-#1717=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1718=VECTOR('',#1717,1.2E1);\r
+-#1719=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));\r
+-#1720=LINE('',#1719,#1718);\r
+-#1721=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1722=VECTOR('',#1721,1.5E0);\r
+-#1723=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));\r
+-#1724=LINE('',#1723,#1722);\r
+-#1725=CARTESIAN_POINT('',(6.E0,1.5E0,1.1E1));\r
+-#1726=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1727=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1728=AXIS2_PLACEMENT_3D('',#1725,#1726,#1727);\r
+-#1730=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1731=VECTOR('',#1730,1.5E0);\r
+-#1732=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));\r
+-#1733=LINE('',#1732,#1731);\r
+-#1734=CARTESIAN_POINT('',(6.E0,0.E0,1.1E1));\r
+-#1735=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1736=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#1737=AXIS2_PLACEMENT_3D('',#1734,#1735,#1736);\r
+-#1739=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1740=VECTOR('',#1739,2.E0);\r
+-#1741=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
+-#1742=LINE('',#1741,#1740);\r
+-#1743=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1744=VECTOR('',#1743,1.E1);\r
+-#1745=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
+-#1746=LINE('',#1745,#1744);\r
+-#1747=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1748=VECTOR('',#1747,1.5E0);\r
+-#1749=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
+-#1750=LINE('',#1749,#1748);\r
+-#1751=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#1752=VECTOR('',#1751,7.071067811865E-1);\r
+-#1753=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
+-#1754=LINE('',#1753,#1752);\r
+-#1755=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1756=VECTOR('',#1755,1.5E0);\r
+-#1757=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));\r
+-#1758=LINE('',#1757,#1756);\r
+-#1759=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#1760=VECTOR('',#1759,7.071067811865E-1);\r
+-#1761=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));\r
+-#1762=LINE('',#1761,#1760);\r
+-#1763=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));\r
+-#1764=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1765=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1766=AXIS2_PLACEMENT_3D('',#1763,#1764,#1765);\r
+-#1768=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));\r
+-#1769=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1770=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1771=AXIS2_PLACEMENT_3D('',#1768,#1769,#1770);\r
+-#1773=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1774=VECTOR('',#1773,5.E0);\r
+-#1775=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));\r
+-#1776=LINE('',#1775,#1774);\r
+-#1777=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1778=VECTOR('',#1777,1.E0);\r
+-#1779=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));\r
+-#1780=LINE('',#1779,#1778);\r
+-#1781=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#1782=VECTOR('',#1781,1.029563014099E1);\r
+-#1783=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));\r
+-#1784=LINE('',#1783,#1782);\r
+-#1785=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1786=VECTOR('',#1785,2.E0);\r
+-#1787=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));\r
+-#1788=LINE('',#1787,#1786);\r
+-#1789=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1790=VECTOR('',#1789,1.E1);\r
+-#1791=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));\r
+-#1792=LINE('',#1791,#1790);\r
+-#1793=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1794=VECTOR('',#1793,5.E0);\r
+-#1795=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));\r
+-#1796=LINE('',#1795,#1794);\r
+-#1797=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1798=VECTOR('',#1797,1.75E0);\r
+-#1799=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
+-#1800=LINE('',#1799,#1798);\r
+-#1801=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1802=VECTOR('',#1801,4.3E0);\r
+-#1803=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));\r
+-#1804=LINE('',#1803,#1802);\r
+-#1805=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1806=VECTOR('',#1805,1.3E0);\r
+-#1807=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));\r
+-#1808=LINE('',#1807,#1806);\r
+-#1809=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1810=VECTOR('',#1809,6.8E0);\r
+-#1811=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));\r
+-#1812=LINE('',#1811,#1810);\r
+-#1813=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1814=VECTOR('',#1813,1.197200760546E0);\r
+-#1815=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));\r
+-#1816=LINE('',#1815,#1814);\r
+-#1817=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#1818=VECTOR('',#1817,2.059126028197E0);\r
+-#1819=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));\r
+-#1820=LINE('',#1819,#1818);\r
+-#1821=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1822=VECTOR('',#1821,1.972007605460E-1);\r
+-#1823=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));\r
+-#1824=LINE('',#1823,#1822);\r
+-#1825=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1826=VECTOR('',#1825,2.E0);\r
+-#1827=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));\r
+-#1828=LINE('',#1827,#1826);\r
+-#1829=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1830=VECTOR('',#1829,2.E0);\r
+-#1831=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));\r
+-#1832=LINE('',#1831,#1830);\r
+-#1833=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
+-#1834=VECTOR('',#1833,5.773502691896E0);\r
+-#1835=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
+-#1836=LINE('',#1835,#1834);\r
+-#1837=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));\r
+-#1838=CARTESIAN_POINT('',(8.675E-1,2.930774450068E0,1.206069333205E1));\r
+-#1839=CARTESIAN_POINT('',(9.058386382037E-1,2.745461691651E0,1.216768370301E1));\r
+-#1840=CARTESIAN_POINT('',(1.029862281194E0,2.608885438662E0,1.224653603944E1));\r
+-#1841=CARTESIAN_POINT('',(1.125E0,2.580400233539E0,1.226298198028E1));\r
+-#1842=CARTESIAN_POINT('',(1.220137718806E0,2.608885438662E0,1.224653603944E1));\r
+-#1843=CARTESIAN_POINT('',(1.344161361796E0,2.745461691651E0,1.216768370301E1));\r
+-#1844=CARTESIAN_POINT('',(1.3825E0,2.930774450068E0,1.206069333205E1));\r
+-#1845=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));\r
+-#1847=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));\r
+-#1848=CARTESIAN_POINT('',(1.3825E0,3.141022319657E0,1.193930666795E1));\r
+-#1849=CARTESIAN_POINT('',(1.344161361796E0,3.326335078073E0,1.183231629699E1));\r
+-#1850=CARTESIAN_POINT('',(1.220137718806E0,3.462911331062E0,1.175346396056E1));\r
+-#1851=CARTESIAN_POINT('',(1.125E0,3.491396536186E0,1.173701801972E1));\r
+-#1852=CARTESIAN_POINT('',(1.029862281194E0,3.462911331062E0,1.175346396056E1));\r
+-#1853=CARTESIAN_POINT('',(9.058386382037E-1,3.326335078073E0,1.183231629699E1));\r
+-#1854=CARTESIAN_POINT('',(8.675E-1,3.141022319657E0,1.193930666795E1));\r
+-#1855=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));\r
+-#1857=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
+-#1858=VECTOR('',#1857,5.773502691896E0);\r
+-#1859=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));\r
+-#1860=LINE('',#1859,#1858);\r
+-#1861=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1862=VECTOR('',#1861,2.035898384862E0);\r
+-#1863=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));\r
+-#1864=LINE('',#1863,#1862);\r
+-#1865=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1866=VECTOR('',#1865,2.035898384862E0);\r
+-#1867=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));\r
+-#1868=LINE('',#1867,#1866);\r
+-#1869=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
+-#1870=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1871=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1872=AXIS2_PLACEMENT_3D('',#1869,#1870,#1871);\r
+-#1874=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
+-#1875=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1876=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1877=AXIS2_PLACEMENT_3D('',#1874,#1875,#1876);\r
+-#1879=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
+-#1880=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1881=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1882=AXIS2_PLACEMENT_3D('',#1879,#1880,#1881);\r
+-#1884=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
+-#1885=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1886=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1887=AXIS2_PLACEMENT_3D('',#1884,#1885,#1886);\r
+-#1889=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1890=VECTOR('',#1889,1.E0);\r
+-#1891=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));\r
+-#1892=LINE('',#1891,#1890);\r
+-#1893=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1894=VECTOR('',#1893,1.E0);\r
+-#1895=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));\r
+-#1896=LINE('',#1895,#1894);\r
+-#1897=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1898=VECTOR('',#1897,2.5E0);\r
+-#1899=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));\r
+-#1900=LINE('',#1899,#1898);\r
+-#1901=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1902=VECTOR('',#1901,2.E0);\r
+-#1903=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));\r
+-#1904=LINE('',#1903,#1902);\r
+-#1905=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1906=VECTOR('',#1905,1.5E0);\r
+-#1907=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
+-#1908=LINE('',#1907,#1906);\r
+-#1909=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1910=VECTOR('',#1909,7.071067811865E-1);\r
+-#1911=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
+-#1912=LINE('',#1911,#1910);\r
+-#1913=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#1914=VECTOR('',#1913,1.5E0);\r
+-#1915=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));\r
+-#1916=LINE('',#1915,#1914);\r
+-#1917=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#1918=VECTOR('',#1917,7.071067811865E-1);\r
+-#1919=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));\r
+-#1920=LINE('',#1919,#1918);\r
+-#1921=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1922=VECTOR('',#1921,2.E0);\r
+-#1923=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
+-#1924=LINE('',#1923,#1922);\r
+-#1925=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1926=VECTOR('',#1925,2.E0);\r
+-#1927=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
+-#1928=LINE('',#1927,#1926);\r
+-#1929=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
+-#1930=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1931=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1932=AXIS2_PLACEMENT_3D('',#1929,#1930,#1931);\r
+-#1934=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
+-#1935=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1936=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1937=AXIS2_PLACEMENT_3D('',#1934,#1935,#1936);\r
+-#1939=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
+-#1940=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1941=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1942=AXIS2_PLACEMENT_3D('',#1939,#1940,#1941);\r
+-#1944=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
+-#1945=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1946=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1947=AXIS2_PLACEMENT_3D('',#1944,#1945,#1946);\r
+-#1949=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1950=VECTOR('',#1949,3.75E-1);\r
+-#1951=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));\r
+-#1952=LINE('',#1951,#1950);\r
+-#1953=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1954=VECTOR('',#1953,3.75E-1);\r
+-#1955=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));\r
+-#1956=LINE('',#1955,#1954);\r
+-#1957=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));\r
+-#1958=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1959=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1960=AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);\r
+-#1962=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));\r
+-#1963=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1964=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1965=AXIS2_PLACEMENT_3D('',#1962,#1963,#1964);\r
+-#1967=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1968=VECTOR('',#1967,2.5E-1);\r
+-#1969=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));\r
+-#1970=LINE('',#1969,#1968);\r
+-#1971=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1972=VECTOR('',#1971,2.5E-1);\r
+-#1973=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));\r
+-#1974=LINE('',#1973,#1972);\r
+-#1975=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));\r
+-#1976=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1977=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1978=AXIS2_PLACEMENT_3D('',#1975,#1976,#1977);\r
+-#1980=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));\r
+-#1981=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#1982=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#1983=AXIS2_PLACEMENT_3D('',#1980,#1981,#1982);\r
+-#1985=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1986=VECTOR('',#1985,5.E-1);\r
+-#1987=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));\r
+-#1988=LINE('',#1987,#1986);\r
+-#1989=CARTESIAN_POINT('',(2.15E0,6.65E0,1.E1));\r
+-#1990=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1991=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#1992=AXIS2_PLACEMENT_3D('',#1989,#1990,#1991);\r
+-#1994=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#1995=VECTOR('',#1994,5.E-1);\r
+-#1996=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));\r
+-#1997=LINE('',#1996,#1995);\r
+-#1998=CARTESIAN_POINT('',(2.15E0,6.65E0,9.5E0));\r
+-#1999=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2000=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2001=AXIS2_PLACEMENT_3D('',#1998,#1999,#2000);\r
+-#2003=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2004=VECTOR('',#2003,4.3E0);\r
+-#2005=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));\r
+-#2006=LINE('',#2005,#2004);\r
+-#2007=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2008=VECTOR('',#2007,1.972007605460E-1);\r
+-#2009=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));\r
+-#2010=LINE('',#2009,#2008);\r
+-#2011=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#2012=VECTOR('',#2011,2.059126028197E0);\r
+-#2013=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));\r
+-#2014=LINE('',#2013,#2012);\r
+-#2015=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2016=VECTOR('',#2015,1.197200760546E0);\r
+-#2017=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));\r
+-#2018=LINE('',#2017,#2016);\r
+-#2019=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2020=VECTOR('',#2019,6.8E0);\r
+-#2021=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));\r
+-#2022=LINE('',#2021,#2020);\r
+-#2023=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2024=VECTOR('',#2023,1.3E0);\r
+-#2025=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));\r
+-#2026=LINE('',#2025,#2024);\r
+-#2027=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2028=VECTOR('',#2027,5.E-1);\r
+-#2029=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));\r
+-#2030=LINE('',#2029,#2028);\r
+-#2031=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.E1));\r
+-#2032=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2033=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2034=AXIS2_PLACEMENT_3D('',#2031,#2032,#2033);\r
+-#2036=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2037=VECTOR('',#2036,5.E-1);\r
+-#2038=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));\r
+-#2039=LINE('',#2038,#2037);\r
+-#2040=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,9.5E0));\r
+-#2041=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2042=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#2043=AXIS2_PLACEMENT_3D('',#2040,#2041,#2042);\r
+-#2045=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2046=VECTOR('',#2045,5.E-1);\r
+-#2047=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));\r
+-#2048=LINE('',#2047,#2046);\r
+-#2049=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.E1));\r
+-#2050=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2051=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#2052=AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);\r
+-#2054=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2055=VECTOR('',#2054,5.E-1);\r
+-#2056=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));\r
+-#2057=LINE('',#2056,#2055);\r
+-#2058=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,9.5E0));\r
+-#2059=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2060=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2061=AXIS2_PLACEMENT_3D('',#2058,#2059,#2060);\r
+-#2063=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2064=VECTOR('',#2063,5.E-1);\r
+-#2065=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));\r
+-#2066=LINE('',#2065,#2064);\r
+-#2067=CARTESIAN_POINT('',(4.15E0,9.15E0,1.E1));\r
+-#2068=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2069=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2070=AXIS2_PLACEMENT_3D('',#2067,#2068,#2069);\r
+-#2072=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2073=VECTOR('',#2072,5.E-1);\r
+-#2074=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));\r
+-#2075=LINE('',#2074,#2073);\r
+-#2076=CARTESIAN_POINT('',(4.15E0,9.15E0,9.5E0));\r
+-#2077=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2078=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2079=AXIS2_PLACEMENT_3D('',#2076,#2077,#2078);\r
+-#2081=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2082=VECTOR('',#2081,5.E-1);\r
+-#2083=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));\r
+-#2084=LINE('',#2083,#2082);\r
+-#2085=CARTESIAN_POINT('',(4.15E0,2.35E0,1.E1));\r
+-#2086=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2087=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2088=AXIS2_PLACEMENT_3D('',#2085,#2086,#2087);\r
+-#2090=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2091=VECTOR('',#2090,5.E-1);\r
+-#2092=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));\r
+-#2093=LINE('',#2092,#2091);\r
+-#2094=CARTESIAN_POINT('',(4.15E0,2.35E0,9.5E0));\r
+-#2095=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2096=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2097=AXIS2_PLACEMENT_3D('',#2094,#2095,#2096);\r
+-#2099=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2100=VECTOR('',#2099,5.E-1);\r
+-#2101=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));\r
+-#2102=LINE('',#2101,#2100);\r
+-#2103=CARTESIAN_POINT('',(2.85E0,2.35E0,1.E1));\r
+-#2104=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2105=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2106=AXIS2_PLACEMENT_3D('',#2103,#2104,#2105);\r
+-#2108=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2109=VECTOR('',#2108,5.E-1);\r
+-#2110=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));\r
+-#2111=LINE('',#2110,#2109);\r
+-#2112=CARTESIAN_POINT('',(2.85E0,2.35E0,9.5E0));\r
+-#2113=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2114=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2115=AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);\r
+-#2117=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2118=VECTOR('',#2117,1.5E0);\r
+-#2119=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
+-#2120=LINE('',#2119,#2118);\r
+-#2121=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#2122=VECTOR('',#2121,7.071067811865E-1);\r
+-#2123=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
+-#2124=LINE('',#2123,#2122);\r
+-#2125=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2126=VECTOR('',#2125,1.5E0);\r
+-#2127=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));\r
+-#2128=LINE('',#2127,#2126);\r
+-#2129=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#2130=VECTOR('',#2129,7.071067811865E-1);\r
+-#2131=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));\r
+-#2132=LINE('',#2131,#2130);\r
+-#2133=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2134=VECTOR('',#2133,3.75E-1);\r
+-#2135=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));\r
+-#2136=LINE('',#2135,#2134);\r
+-#2137=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2138=VECTOR('',#2137,3.75E-1);\r
+-#2139=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));\r
+-#2140=LINE('',#2139,#2138);\r
+-#2141=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));\r
+-#2142=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2143=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2144=AXIS2_PLACEMENT_3D('',#2141,#2142,#2143);\r
+-#2146=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));\r
+-#2147=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2148=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2149=AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);\r
+-#2151=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2152=VECTOR('',#2151,2.5E-1);\r
+-#2153=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));\r
+-#2154=LINE('',#2153,#2152);\r
+-#2155=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2156=VECTOR('',#2155,2.5E-1);\r
+-#2157=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));\r
+-#2158=LINE('',#2157,#2156);\r
+-#2159=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));\r
+-#2160=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2161=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2162=AXIS2_PLACEMENT_3D('',#2159,#2160,#2161);\r
+-#2164=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));\r
+-#2165=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2166=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2167=AXIS2_PLACEMENT_3D('',#2164,#2165,#2166);\r
+-#2169=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));\r
+-#2170=VECTOR('',#2169,2.5E-1);\r
+-#2171=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));\r
+-#2172=LINE('',#2171,#2170);\r
+-#2173=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));\r
+-#2174=VECTOR('',#2173,2.5E-1);\r
+-#2175=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));\r
+-#2176=LINE('',#2175,#2174);\r
+-#2177=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
+-#2178=VECTOR('',#2177,1.154700538379E-1);\r
+-#2179=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));\r
+-#2180=LINE('',#2179,#2178);\r
+-#2181=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
+-#2182=VECTOR('',#2181,1.154700538379E-1);\r
+-#2183=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));\r
+-#2184=LINE('',#2183,#2182);\r
+-#2185=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));\r
+-#2186=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2187=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2188=AXIS2_PLACEMENT_3D('',#2185,#2186,#2187);\r
+-#2190=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));\r
+-#2191=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2192=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2193=AXIS2_PLACEMENT_3D('',#2190,#2191,#2192);\r
+-#2195=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));\r
+-#2196=VECTOR('',#2195,2.5E-1);\r
+-#2197=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));\r
+-#2198=LINE('',#2197,#2196);\r
+-#2199=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));\r
+-#2200=VECTOR('',#2199,2.5E-1);\r
+-#2201=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));\r
+-#2202=LINE('',#2201,#2200);\r
+-#2203=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
+-#2204=VECTOR('',#2203,1.154700538379E-1);\r
+-#2205=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));\r
+-#2206=LINE('',#2205,#2204);\r
+-#2207=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
+-#2208=VECTOR('',#2207,1.154700538379E-1);\r
+-#2209=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));\r
+-#2210=LINE('',#2209,#2208);\r
+-#2211=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));\r
+-#2212=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2213=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2214=AXIS2_PLACEMENT_3D('',#2211,#2212,#2213);\r
+-#2216=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));\r
+-#2217=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2218=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2219=AXIS2_PLACEMENT_3D('',#2216,#2217,#2218);\r
+-#2221=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2222=VECTOR('',#2221,5.E-1);\r
+-#2223=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));\r
+-#2224=LINE('',#2223,#2222);\r
+-#2225=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2226=VECTOR('',#2225,5.E-1);\r
+-#2227=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));\r
+-#2228=LINE('',#2227,#2226);\r
+-#2229=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
+-#2230=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2231=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2232=AXIS2_PLACEMENT_3D('',#2229,#2230,#2231);\r
+-#2234=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
+-#2235=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2236=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2237=AXIS2_PLACEMENT_3D('',#2234,#2235,#2236);\r
+-#2239=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
+-#2240=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2241=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2242=AXIS2_PLACEMENT_3D('',#2239,#2240,#2241);\r
+-#2244=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
+-#2245=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2246=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2247=AXIS2_PLACEMENT_3D('',#2244,#2245,#2246);\r
+-#2249=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2250=VECTOR('',#2249,1.E0);\r
+-#2251=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));\r
+-#2252=LINE('',#2251,#2250);\r
+-#2253=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2254=VECTOR('',#2253,1.E0);\r
+-#2255=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));\r
+-#2256=LINE('',#2255,#2254);\r
+-#2257=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2258=VECTOR('',#2257,5.E-1);\r
+-#2259=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));\r
+-#2260=LINE('',#2259,#2258);\r
+-#2261=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2262=VECTOR('',#2261,5.E-1);\r
+-#2263=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));\r
+-#2264=LINE('',#2263,#2262);\r
+-#2265=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
+-#2266=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2267=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2268=AXIS2_PLACEMENT_3D('',#2265,#2266,#2267);\r
+-#2270=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
+-#2271=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2272=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2273=AXIS2_PLACEMENT_3D('',#2270,#2271,#2272);\r
+-#2275=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
+-#2276=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2277=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2278=AXIS2_PLACEMENT_3D('',#2275,#2276,#2277);\r
+-#2280=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
+-#2281=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2282=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2283=AXIS2_PLACEMENT_3D('',#2280,#2281,#2282);\r
+-#2285=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2286=VECTOR('',#2285,1.E0);\r
+-#2287=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));\r
+-#2288=LINE('',#2287,#2286);\r
+-#2289=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2290=VECTOR('',#2289,1.E0);\r
+-#2291=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));\r
+-#2292=LINE('',#2291,#2290);\r
+-#2293=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2294=VECTOR('',#2293,5.E-1);\r
+-#2295=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));\r
+-#2296=LINE('',#2295,#2294);\r
+-#2297=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2298=VECTOR('',#2297,5.E-1);\r
+-#2299=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));\r
+-#2300=LINE('',#2299,#2298);\r
+-#2301=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
+-#2302=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2303=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2304=AXIS2_PLACEMENT_3D('',#2301,#2302,#2303);\r
+-#2306=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
+-#2307=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2308=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308);\r
+-#2311=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
+-#2312=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2313=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2314=AXIS2_PLACEMENT_3D('',#2311,#2312,#2313);\r
+-#2316=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
+-#2317=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2318=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2319=AXIS2_PLACEMENT_3D('',#2316,#2317,#2318);\r
+-#2321=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2322=VECTOR('',#2321,1.E0);\r
+-#2323=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));\r
+-#2324=LINE('',#2323,#2322);\r
+-#2325=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2326=VECTOR('',#2325,1.E0);\r
+-#2327=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));\r
+-#2328=LINE('',#2327,#2326);\r
+-#2329=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2330=VECTOR('',#2329,5.E-1);\r
+-#2331=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));\r
+-#2332=LINE('',#2331,#2330);\r
+-#2333=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2334=VECTOR('',#2333,5.E-1);\r
+-#2335=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));\r
+-#2336=LINE('',#2335,#2334);\r
+-#2337=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
+-#2338=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2339=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339);\r
+-#2342=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
+-#2343=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2344=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2345=AXIS2_PLACEMENT_3D('',#2342,#2343,#2344);\r
+-#2347=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
+-#2348=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2349=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2350=AXIS2_PLACEMENT_3D('',#2347,#2348,#2349);\r
+-#2352=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
+-#2353=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2354=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2355=AXIS2_PLACEMENT_3D('',#2352,#2353,#2354);\r
+-#2357=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2358=VECTOR('',#2357,1.E0);\r
+-#2359=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));\r
+-#2360=LINE('',#2359,#2358);\r
+-#2361=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2362=VECTOR('',#2361,1.E0);\r
+-#2363=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));\r
+-#2364=LINE('',#2363,#2362);\r
+-#2365=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2366=VECTOR('',#2365,5.E-1);\r
+-#2367=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));\r
+-#2368=LINE('',#2367,#2366);\r
+-#2369=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2370=VECTOR('',#2369,5.E-1);\r
+-#2371=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));\r
+-#2372=LINE('',#2371,#2370);\r
+-#2373=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
+-#2374=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2375=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2376=AXIS2_PLACEMENT_3D('',#2373,#2374,#2375);\r
+-#2378=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
+-#2379=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2380=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2381=AXIS2_PLACEMENT_3D('',#2378,#2379,#2380);\r
+-#2383=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
+-#2384=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2385=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2386=AXIS2_PLACEMENT_3D('',#2383,#2384,#2385);\r
+-#2388=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
+-#2389=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2390=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2391=AXIS2_PLACEMENT_3D('',#2388,#2389,#2390);\r
+-#2393=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2394=VECTOR('',#2393,1.E0);\r
+-#2395=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));\r
+-#2396=LINE('',#2395,#2394);\r
+-#2397=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2398=VECTOR('',#2397,1.E0);\r
+-#2399=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));\r
+-#2400=LINE('',#2399,#2398);\r
+-#2401=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2402=VECTOR('',#2401,5.E-1);\r
+-#2403=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));\r
+-#2404=LINE('',#2403,#2402);\r
+-#2405=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2406=VECTOR('',#2405,5.E-1);\r
+-#2407=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));\r
+-#2408=LINE('',#2407,#2406);\r
+-#2409=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
+-#2410=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2411=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2412=AXIS2_PLACEMENT_3D('',#2409,#2410,#2411);\r
+-#2414=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
+-#2415=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2416=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2417=AXIS2_PLACEMENT_3D('',#2414,#2415,#2416);\r
+-#2419=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
+-#2420=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2421=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2422=AXIS2_PLACEMENT_3D('',#2419,#2420,#2421);\r
+-#2424=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
+-#2425=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2426=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2427=AXIS2_PLACEMENT_3D('',#2424,#2425,#2426);\r
+-#2429=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2430=VECTOR('',#2429,1.E0);\r
+-#2431=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));\r
+-#2432=LINE('',#2431,#2430);\r
+-#2433=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2434=VECTOR('',#2433,1.E0);\r
+-#2435=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));\r
+-#2436=LINE('',#2435,#2434);\r
+-#2437=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2438=VECTOR('',#2437,5.E-1);\r
+-#2439=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));\r
+-#2440=LINE('',#2439,#2438);\r
+-#2441=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2442=VECTOR('',#2441,5.E-1);\r
+-#2443=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));\r
+-#2444=LINE('',#2443,#2442);\r
+-#2445=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
+-#2446=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2447=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2448=AXIS2_PLACEMENT_3D('',#2445,#2446,#2447);\r
+-#2450=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
+-#2451=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2452=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2453=AXIS2_PLACEMENT_3D('',#2450,#2451,#2452);\r
+-#2455=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
+-#2456=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2457=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2458=AXIS2_PLACEMENT_3D('',#2455,#2456,#2457);\r
+-#2460=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
+-#2461=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2462=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2463=AXIS2_PLACEMENT_3D('',#2460,#2461,#2462);\r
+-#2465=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2466=VECTOR('',#2465,1.E0);\r
+-#2467=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));\r
+-#2468=LINE('',#2467,#2466);\r
+-#2469=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2470=VECTOR('',#2469,1.E0);\r
+-#2471=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));\r
+-#2472=LINE('',#2471,#2470);\r
+-#2473=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2474=VECTOR('',#2473,5.E-1);\r
+-#2475=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));\r
+-#2476=LINE('',#2475,#2474);\r
+-#2477=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2478=VECTOR('',#2477,5.E-1);\r
+-#2479=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));\r
+-#2480=LINE('',#2479,#2478);\r
+-#2481=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
+-#2482=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2483=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2484=AXIS2_PLACEMENT_3D('',#2481,#2482,#2483);\r
+-#2486=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
+-#2487=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2488=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2489=AXIS2_PLACEMENT_3D('',#2486,#2487,#2488);\r
+-#2491=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
+-#2492=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2493=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2494=AXIS2_PLACEMENT_3D('',#2491,#2492,#2493);\r
+-#2496=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
+-#2497=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2498=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2499=AXIS2_PLACEMENT_3D('',#2496,#2497,#2498);\r
+-#2501=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2502=VECTOR('',#2501,1.E0);\r
+-#2503=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));\r
+-#2504=LINE('',#2503,#2502);\r
+-#2505=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2506=VECTOR('',#2505,1.E0);\r
+-#2507=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));\r
+-#2508=LINE('',#2507,#2506);\r
+-#2509=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2510=VECTOR('',#2509,5.E-1);\r
+-#2511=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));\r
+-#2512=LINE('',#2511,#2510);\r
+-#2513=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2514=VECTOR('',#2513,5.E-1);\r
+-#2515=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));\r
+-#2516=LINE('',#2515,#2514);\r
+-#2517=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
+-#2518=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2519=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2520=AXIS2_PLACEMENT_3D('',#2517,#2518,#2519);\r
+-#2522=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
+-#2523=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2524=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2525=AXIS2_PLACEMENT_3D('',#2522,#2523,#2524);\r
+-#2527=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
+-#2528=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2529=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2530=AXIS2_PLACEMENT_3D('',#2527,#2528,#2529);\r
+-#2532=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
+-#2533=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2534=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2535=AXIS2_PLACEMENT_3D('',#2532,#2533,#2534);\r
+-#2537=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2538=VECTOR('',#2537,1.E0);\r
+-#2539=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));\r
+-#2540=LINE('',#2539,#2538);\r
+-#2541=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2542=VECTOR('',#2541,1.E0);\r
+-#2543=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));\r
+-#2544=LINE('',#2543,#2542);\r
+-#2545=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2546=VECTOR('',#2545,5.E-1);\r
+-#2547=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));\r
+-#2548=LINE('',#2547,#2546);\r
+-#2549=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2550=VECTOR('',#2549,5.E-1);\r
+-#2551=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));\r
+-#2552=LINE('',#2551,#2550);\r
+-#2553=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
+-#2554=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2555=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2556=AXIS2_PLACEMENT_3D('',#2553,#2554,#2555);\r
+-#2558=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
+-#2559=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2560=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2561=AXIS2_PLACEMENT_3D('',#2558,#2559,#2560);\r
+-#2563=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
+-#2564=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2565=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2566=AXIS2_PLACEMENT_3D('',#2563,#2564,#2565);\r
+-#2568=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
+-#2569=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2570=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2571=AXIS2_PLACEMENT_3D('',#2568,#2569,#2570);\r
+-#2573=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2574=VECTOR('',#2573,1.E0);\r
+-#2575=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));\r
+-#2576=LINE('',#2575,#2574);\r
+-#2577=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2578=VECTOR('',#2577,1.E0);\r
+-#2579=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));\r
+-#2580=LINE('',#2579,#2578);\r
+-#2581=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2582=VECTOR('',#2581,5.E-1);\r
+-#2583=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));\r
+-#2584=LINE('',#2583,#2582);\r
+-#2585=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2586=VECTOR('',#2585,5.E-1);\r
+-#2587=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));\r
+-#2588=LINE('',#2587,#2586);\r
+-#2589=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
+-#2590=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2591=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2592=AXIS2_PLACEMENT_3D('',#2589,#2590,#2591);\r
+-#2594=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
+-#2595=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2596=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2597=AXIS2_PLACEMENT_3D('',#2594,#2595,#2596);\r
+-#2599=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
+-#2600=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2601=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2602=AXIS2_PLACEMENT_3D('',#2599,#2600,#2601);\r
+-#2604=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
+-#2605=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2606=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2607=AXIS2_PLACEMENT_3D('',#2604,#2605,#2606);\r
+-#2609=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2610=VECTOR('',#2609,1.E0);\r
+-#2611=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));\r
+-#2612=LINE('',#2611,#2610);\r
+-#2613=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2614=VECTOR('',#2613,1.E0);\r
+-#2615=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));\r
+-#2616=LINE('',#2615,#2614);\r
+-#2617=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2618=VECTOR('',#2617,5.E-1);\r
+-#2619=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));\r
+-#2620=LINE('',#2619,#2618);\r
+-#2621=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2622=VECTOR('',#2621,5.E-1);\r
+-#2623=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));\r
+-#2624=LINE('',#2623,#2622);\r
+-#2625=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
+-#2626=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2627=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2628=AXIS2_PLACEMENT_3D('',#2625,#2626,#2627);\r
+-#2630=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
+-#2631=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2632=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2633=AXIS2_PLACEMENT_3D('',#2630,#2631,#2632);\r
+-#2635=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
+-#2636=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2637=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2638=AXIS2_PLACEMENT_3D('',#2635,#2636,#2637);\r
+-#2640=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
+-#2641=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2642=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2643=AXIS2_PLACEMENT_3D('',#2640,#2641,#2642);\r
+-#2645=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2646=VECTOR('',#2645,1.E0);\r
+-#2647=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));\r
+-#2648=LINE('',#2647,#2646);\r
+-#2649=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2650=VECTOR('',#2649,1.E0);\r
+-#2651=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));\r
+-#2652=LINE('',#2651,#2650);\r
+-#2653=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2654=VECTOR('',#2653,5.E-1);\r
+-#2655=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));\r
+-#2656=LINE('',#2655,#2654);\r
+-#2657=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2658=VECTOR('',#2657,5.E-1);\r
+-#2659=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));\r
+-#2660=LINE('',#2659,#2658);\r
+-#2661=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
+-#2662=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2663=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2664=AXIS2_PLACEMENT_3D('',#2661,#2662,#2663);\r
+-#2666=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
+-#2667=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2668=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2669=AXIS2_PLACEMENT_3D('',#2666,#2667,#2668);\r
+-#2671=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
+-#2672=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2673=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2674=AXIS2_PLACEMENT_3D('',#2671,#2672,#2673);\r
+-#2676=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
+-#2677=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2678=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2679=AXIS2_PLACEMENT_3D('',#2676,#2677,#2678);\r
+-#2681=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2682=VECTOR('',#2681,1.E0);\r
+-#2683=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));\r
+-#2684=LINE('',#2683,#2682);\r
+-#2685=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2686=VECTOR('',#2685,1.E0);\r
+-#2687=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));\r
+-#2688=LINE('',#2687,#2686);\r
+-#2689=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2690=VECTOR('',#2689,5.E-1);\r
+-#2691=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));\r
+-#2692=LINE('',#2691,#2690);\r
+-#2693=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2694=VECTOR('',#2693,5.E-1);\r
+-#2695=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));\r
+-#2696=LINE('',#2695,#2694);\r
+-#2697=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
+-#2698=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2699=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2700=AXIS2_PLACEMENT_3D('',#2697,#2698,#2699);\r
+-#2702=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
+-#2703=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2704=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2705=AXIS2_PLACEMENT_3D('',#2702,#2703,#2704);\r
+-#2707=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
+-#2708=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2709=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2710=AXIS2_PLACEMENT_3D('',#2707,#2708,#2709);\r
+-#2712=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
+-#2713=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2714=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2715=AXIS2_PLACEMENT_3D('',#2712,#2713,#2714);\r
+-#2717=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2718=VECTOR('',#2717,1.E0);\r
+-#2719=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));\r
+-#2720=LINE('',#2719,#2718);\r
+-#2721=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2722=VECTOR('',#2721,1.E0);\r
+-#2723=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));\r
+-#2724=LINE('',#2723,#2722);\r
+-#2725=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2726=VECTOR('',#2725,5.E-1);\r
+-#2727=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));\r
+-#2728=LINE('',#2727,#2726);\r
+-#2729=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2730=VECTOR('',#2729,5.E-1);\r
+-#2731=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));\r
+-#2732=LINE('',#2731,#2730);\r
+-#2733=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
+-#2734=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2735=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2736=AXIS2_PLACEMENT_3D('',#2733,#2734,#2735);\r
+-#2738=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
+-#2739=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2740=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2741=AXIS2_PLACEMENT_3D('',#2738,#2739,#2740);\r
+-#2743=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
+-#2744=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2745=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2746=AXIS2_PLACEMENT_3D('',#2743,#2744,#2745);\r
+-#2748=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
+-#2749=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2750=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2751=AXIS2_PLACEMENT_3D('',#2748,#2749,#2750);\r
+-#2753=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2754=VECTOR('',#2753,1.E0);\r
+-#2755=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));\r
+-#2756=LINE('',#2755,#2754);\r
+-#2757=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2758=VECTOR('',#2757,1.E0);\r
+-#2759=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));\r
+-#2760=LINE('',#2759,#2758);\r
+-#2761=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2762=VECTOR('',#2761,5.E-1);\r
+-#2763=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));\r
+-#2764=LINE('',#2763,#2762);\r
+-#2765=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2766=VECTOR('',#2765,5.E-1);\r
+-#2767=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));\r
+-#2768=LINE('',#2767,#2766);\r
+-#2769=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
+-#2770=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2771=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2772=AXIS2_PLACEMENT_3D('',#2769,#2770,#2771);\r
+-#2774=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
+-#2775=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2776=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2777=AXIS2_PLACEMENT_3D('',#2774,#2775,#2776);\r
+-#2779=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
+-#2780=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2781=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2782=AXIS2_PLACEMENT_3D('',#2779,#2780,#2781);\r
+-#2784=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
+-#2785=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2786=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2787=AXIS2_PLACEMENT_3D('',#2784,#2785,#2786);\r
+-#2789=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2790=VECTOR('',#2789,1.E0);\r
+-#2791=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));\r
+-#2792=LINE('',#2791,#2790);\r
+-#2793=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2794=VECTOR('',#2793,1.E0);\r
+-#2795=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));\r
+-#2796=LINE('',#2795,#2794);\r
+-#2797=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2798=VECTOR('',#2797,5.E-1);\r
+-#2799=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));\r
+-#2800=LINE('',#2799,#2798);\r
+-#2801=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2802=VECTOR('',#2801,5.E-1);\r
+-#2803=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));\r
+-#2804=LINE('',#2803,#2802);\r
+-#2805=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
+-#2806=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2807=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2808=AXIS2_PLACEMENT_3D('',#2805,#2806,#2807);\r
+-#2810=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
+-#2811=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2812=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2813=AXIS2_PLACEMENT_3D('',#2810,#2811,#2812);\r
+-#2815=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
+-#2816=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2817=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2818=AXIS2_PLACEMENT_3D('',#2815,#2816,#2817);\r
+-#2820=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
+-#2821=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2822=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2823=AXIS2_PLACEMENT_3D('',#2820,#2821,#2822);\r
+-#2825=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2826=VECTOR('',#2825,1.E0);\r
+-#2827=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));\r
+-#2828=LINE('',#2827,#2826);\r
+-#2829=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2830=VECTOR('',#2829,1.E0);\r
+-#2831=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));\r
+-#2832=LINE('',#2831,#2830);\r
+-#2833=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2834=VECTOR('',#2833,5.E-1);\r
+-#2835=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));\r
+-#2836=LINE('',#2835,#2834);\r
+-#2837=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2838=VECTOR('',#2837,5.E-1);\r
+-#2839=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));\r
+-#2840=LINE('',#2839,#2838);\r
+-#2841=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
+-#2842=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2843=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2844=AXIS2_PLACEMENT_3D('',#2841,#2842,#2843);\r
+-#2846=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
+-#2847=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2848=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2849=AXIS2_PLACEMENT_3D('',#2846,#2847,#2848);\r
+-#2851=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
+-#2852=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2853=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2854=AXIS2_PLACEMENT_3D('',#2851,#2852,#2853);\r
+-#2856=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
+-#2857=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2858=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2859=AXIS2_PLACEMENT_3D('',#2856,#2857,#2858);\r
+-#2861=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2862=VECTOR('',#2861,1.E0);\r
+-#2863=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));\r
+-#2864=LINE('',#2863,#2862);\r
+-#2865=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2866=VECTOR('',#2865,1.E0);\r
+-#2867=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));\r
+-#2868=LINE('',#2867,#2866);\r
+-#2869=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
+-#2870=VECTOR('',#2869,5.773502691896E0);\r
+-#2871=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));\r
+-#2872=LINE('',#2871,#2870);\r
+-#2873=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));\r
+-#2874=CARTESIAN_POINT('',(2.31325E1,2.930774450068E0,1.206069333205E1));\r
+-#2875=CARTESIAN_POINT('',(2.309416136180E1,2.745461691651E0,1.216768370301E1));\r
+-#2876=CARTESIAN_POINT('',(2.297013771881E1,2.608885438662E0,1.224653603944E1));\r
+-#2877=CARTESIAN_POINT('',(2.2875E1,2.580400233539E0,1.226298198028E1));\r
+-#2878=CARTESIAN_POINT('',(2.277986228119E1,2.608885438662E0,1.224653603944E1));\r
+-#2879=CARTESIAN_POINT('',(2.265583863820E1,2.745461691651E0,1.216768370301E1));\r
+-#2880=CARTESIAN_POINT('',(2.26175E1,2.930774450068E0,1.206069333205E1));\r
+-#2881=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));\r
+-#2883=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));\r
+-#2884=CARTESIAN_POINT('',(2.26175E1,3.141022319657E0,1.193930666795E1));\r
+-#2885=CARTESIAN_POINT('',(2.265583863820E1,3.326335078073E0,1.183231629699E1));\r
+-#2886=CARTESIAN_POINT('',(2.277986228119E1,3.462911331062E0,1.175346396056E1));\r
+-#2887=CARTESIAN_POINT('',(2.2875E1,3.491396536186E0,1.173701801972E1));\r
+-#2888=CARTESIAN_POINT('',(2.297013771881E1,3.462911331062E0,1.175346396056E1));\r
+-#2889=CARTESIAN_POINT('',(2.309416136180E1,3.326335078073E0,1.183231629699E1));\r
+-#2890=CARTESIAN_POINT('',(2.31325E1,3.141022319657E0,1.193930666795E1));\r
+-#2891=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));\r
+-#2893=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#2894=VECTOR('',#2893,2.035898384862E0);\r
+-#2895=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));\r
+-#2896=LINE('',#2895,#2894);\r
+-#2897=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2898=VECTOR('',#2897,2.035898384862E0);\r
+-#2899=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));\r
+-#2900=LINE('',#2899,#2898);\r
+-#2901=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
+-#2902=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2903=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2904=AXIS2_PLACEMENT_3D('',#2901,#2902,#2903);\r
+-#2906=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
+-#2907=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2908=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2909=AXIS2_PLACEMENT_3D('',#2906,#2907,#2908);\r
+-#2911=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
+-#2912=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2913=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2914=AXIS2_PLACEMENT_3D('',#2911,#2912,#2913);\r
+-#2916=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
+-#2917=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2918=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2919=AXIS2_PLACEMENT_3D('',#2916,#2917,#2918);\r
+-#2921=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2922=VECTOR('',#2921,1.E0);\r
+-#2923=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));\r
+-#2924=LINE('',#2923,#2922);\r
+-#2925=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2926=VECTOR('',#2925,1.E0);\r
+-#2927=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));\r
+-#2928=LINE('',#2927,#2926);\r
+-#2929=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2930=VECTOR('',#2929,5.E-1);\r
+-#2931=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));\r
+-#2932=LINE('',#2931,#2930);\r
+-#2933=CARTESIAN_POINT('',(2.185E1,6.65E0,9.5E0));\r
+-#2934=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2935=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2936=AXIS2_PLACEMENT_3D('',#2933,#2934,#2935);\r
+-#2938=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2939=VECTOR('',#2938,5.E-1);\r
+-#2940=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));\r
+-#2941=LINE('',#2940,#2939);\r
+-#2942=CARTESIAN_POINT('',(2.185E1,6.65E0,1.E1));\r
+-#2943=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2944=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));\r
+-#2945=AXIS2_PLACEMENT_3D('',#2942,#2943,#2944);\r
+-#2947=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2948=VECTOR('',#2947,5.E-1);\r
+-#2949=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));\r
+-#2950=LINE('',#2949,#2948);\r
+-#2951=CARTESIAN_POINT('',(2.115E1,2.35E0,9.5E0));\r
+-#2952=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2953=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#2954=AXIS2_PLACEMENT_3D('',#2951,#2952,#2953);\r
+-#2956=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2957=VECTOR('',#2956,5.E-1);\r
+-#2958=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));\r
+-#2959=LINE('',#2958,#2957);\r
+-#2960=CARTESIAN_POINT('',(2.115E1,2.35E0,1.E1));\r
+-#2961=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2962=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962);\r
+-#2965=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2966=VECTOR('',#2965,5.E-1);\r
+-#2967=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));\r
+-#2968=LINE('',#2967,#2966);\r
+-#2969=CARTESIAN_POINT('',(1.985E1,2.35E0,9.5E0));\r
+-#2970=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2971=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2972=AXIS2_PLACEMENT_3D('',#2969,#2970,#2971);\r
+-#2974=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2975=VECTOR('',#2974,5.E-1);\r
+-#2976=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));\r
+-#2977=LINE('',#2976,#2975);\r
+-#2978=CARTESIAN_POINT('',(1.985E1,2.35E0,1.E1));\r
+-#2979=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2980=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));\r
+-#2981=AXIS2_PLACEMENT_3D('',#2978,#2979,#2980);\r
+-#2983=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2984=VECTOR('',#2983,5.E-1);\r
+-#2985=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));\r
+-#2986=LINE('',#2985,#2984);\r
+-#2987=CARTESIAN_POINT('',(1.985E1,9.15E0,9.5E0));\r
+-#2988=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2989=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));\r
+-#2990=AXIS2_PLACEMENT_3D('',#2987,#2988,#2989);\r
+-#2992=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#2993=VECTOR('',#2992,5.E-1);\r
+-#2994=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));\r
+-#2995=LINE('',#2994,#2993);\r
+-#2996=CARTESIAN_POINT('',(1.985E1,9.15E0,1.E1));\r
+-#2997=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#2998=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998);\r
+-#3001=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3002=VECTOR('',#3001,5.E-1);\r
+-#3003=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));\r
+-#3004=LINE('',#3003,#3002);\r
+-#3005=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.5E0));\r
+-#3006=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3007=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#3008=AXIS2_PLACEMENT_3D('',#3005,#3006,#3007);\r
+-#3010=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3011=VECTOR('',#3010,5.E-1);\r
+-#3012=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));\r
+-#3013=LINE('',#3012,#3011);\r
+-#3014=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,1.E1));\r
+-#3015=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3016=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016);\r
+-#3019=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3020=VECTOR('',#3019,5.E-1);\r
+-#3021=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));\r
+-#3022=LINE('',#3021,#3020);\r
+-#3023=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.5E0));\r
+-#3024=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3025=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3026=AXIS2_PLACEMENT_3D('',#3023,#3024,#3025);\r
+-#3028=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3029=VECTOR('',#3028,5.E-1);\r
+-#3030=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));\r
+-#3031=LINE('',#3030,#3029);\r
+-#3032=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,1.E1));\r
+-#3033=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3034=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#3035=AXIS2_PLACEMENT_3D('',#3032,#3033,#3034);\r
+-#3037=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3038=VECTOR('',#3037,1.972007605460E-1);\r
+-#3039=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));\r
+-#3040=LINE('',#3039,#3038);\r
+-#3041=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3042=VECTOR('',#3041,4.3E0);\r
+-#3043=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));\r
+-#3044=LINE('',#3043,#3042);\r
+-#3045=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3046=VECTOR('',#3045,1.3E0);\r
+-#3047=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));\r
+-#3048=LINE('',#3047,#3046);\r
+-#3049=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3050=VECTOR('',#3049,6.8E0);\r
+-#3051=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));\r
+-#3052=LINE('',#3051,#3050);\r
+-#3053=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3054=VECTOR('',#3053,1.197200760546E0);\r
+-#3055=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));\r
+-#3056=LINE('',#3055,#3054);\r
+-#3057=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#3058=VECTOR('',#3057,2.059126028197E0);\r
+-#3059=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));\r
+-#3060=LINE('',#3059,#3058);\r
+-#3061=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3062=VECTOR('',#3061,2.5E-1);\r
+-#3063=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));\r
+-#3064=LINE('',#3063,#3062);\r
+-#3065=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3066=VECTOR('',#3065,2.5E-1);\r
+-#3067=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));\r
+-#3068=LINE('',#3067,#3066);\r
+-#3069=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));\r
+-#3070=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3071=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3072=AXIS2_PLACEMENT_3D('',#3069,#3070,#3071);\r
+-#3074=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));\r
+-#3075=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3076=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3077=AXIS2_PLACEMENT_3D('',#3074,#3075,#3076);\r
+-#3079=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3080=VECTOR('',#3079,2.5E-1);\r
+-#3081=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));\r
+-#3082=LINE('',#3081,#3080);\r
+-#3083=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3084=VECTOR('',#3083,2.5E-1);\r
+-#3085=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));\r
+-#3086=LINE('',#3085,#3084);\r
+-#3087=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));\r
+-#3088=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3089=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3090=AXIS2_PLACEMENT_3D('',#3087,#3088,#3089);\r
+-#3092=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));\r
+-#3093=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3094=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3095=AXIS2_PLACEMENT_3D('',#3092,#3093,#3094);\r
+-#3097=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3098=VECTOR('',#3097,2.5E-1);\r
+-#3099=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));\r
+-#3100=LINE('',#3099,#3098);\r
+-#3101=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3102=VECTOR('',#3101,2.5E-1);\r
+-#3103=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));\r
+-#3104=LINE('',#3103,#3102);\r
+-#3105=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));\r
+-#3106=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3107=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3108=AXIS2_PLACEMENT_3D('',#3105,#3106,#3107);\r
+-#3110=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));\r
+-#3111=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3112=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3113=AXIS2_PLACEMENT_3D('',#3110,#3111,#3112);\r
+-#3115=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3116=VECTOR('',#3115,2.5E-1);\r
+-#3117=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));\r
+-#3118=LINE('',#3117,#3116);\r
+-#3119=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3120=VECTOR('',#3119,2.5E-1);\r
+-#3121=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));\r
+-#3122=LINE('',#3121,#3120);\r
+-#3123=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));\r
+-#3124=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3125=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3126=AXIS2_PLACEMENT_3D('',#3123,#3124,#3125);\r
+-#3128=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));\r
+-#3129=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3130=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3131=AXIS2_PLACEMENT_3D('',#3128,#3129,#3130);\r
+-#3133=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3134=VECTOR('',#3133,2.5E-1);\r
+-#3135=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));\r
+-#3136=LINE('',#3135,#3134);\r
+-#3137=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3138=VECTOR('',#3137,2.5E-1);\r
+-#3139=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));\r
+-#3140=LINE('',#3139,#3138);\r
+-#3141=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));\r
+-#3142=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3143=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3144=AXIS2_PLACEMENT_3D('',#3141,#3142,#3143);\r
+-#3146=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));\r
+-#3147=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3148=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3149=AXIS2_PLACEMENT_3D('',#3146,#3147,#3148);\r
+-#3151=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3152=VECTOR('',#3151,5.E-1);\r
+-#3153=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));\r
+-#3154=LINE('',#3153,#3152);\r
+-#3155=CARTESIAN_POINT('',(3.75E0,2.75E0,8.E0));\r
+-#3156=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3157=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3158=AXIS2_PLACEMENT_3D('',#3155,#3156,#3157);\r
+-#3160=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3161=VECTOR('',#3160,5.E-1);\r
+-#3162=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));\r
+-#3163=LINE('',#3162,#3161);\r
+-#3164=CARTESIAN_POINT('',(3.75E0,2.75E0,8.5E0));\r
+-#3165=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3166=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3167=AXIS2_PLACEMENT_3D('',#3164,#3165,#3166);\r
+-#3169=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3170=VECTOR('',#3169,5.E-1);\r
+-#3171=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));\r
+-#3172=LINE('',#3171,#3170);\r
+-#3173=CARTESIAN_POINT('',(3.75E0,8.75E0,8.E0));\r
+-#3174=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3175=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3176=AXIS2_PLACEMENT_3D('',#3173,#3174,#3175);\r
+-#3178=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3179=VECTOR('',#3178,5.E-1);\r
+-#3180=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));\r
+-#3181=LINE('',#3180,#3179);\r
+-#3182=CARTESIAN_POINT('',(3.75E0,8.75E0,8.5E0));\r
+-#3183=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3184=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3185=AXIS2_PLACEMENT_3D('',#3182,#3183,#3184);\r
+-#3187=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3188=VECTOR('',#3187,5.E-1);\r
+-#3189=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));\r
+-#3190=LINE('',#3189,#3188);\r
+-#3191=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.E0));\r
+-#3192=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3193=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3194=AXIS2_PLACEMENT_3D('',#3191,#3192,#3193);\r
+-#3196=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3197=VECTOR('',#3196,5.E-1);\r
+-#3198=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));\r
+-#3199=LINE('',#3198,#3197);\r
+-#3200=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.5E0));\r
+-#3201=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3202=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#3203=AXIS2_PLACEMENT_3D('',#3200,#3201,#3202);\r
+-#3205=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3206=VECTOR('',#3205,5.E-1);\r
+-#3207=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));\r
+-#3208=LINE('',#3207,#3206);\r
+-#3209=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.E0));\r
+-#3210=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3211=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#3212=AXIS2_PLACEMENT_3D('',#3209,#3210,#3211);\r
+-#3214=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3215=VECTOR('',#3214,5.E-1);\r
+-#3216=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));\r
+-#3217=LINE('',#3216,#3215);\r
+-#3218=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.5E0));\r
+-#3219=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3220=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3221=AXIS2_PLACEMENT_3D('',#3218,#3219,#3220);\r
+-#3223=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3224=VECTOR('',#3223,6.E0);\r
+-#3225=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));\r
+-#3226=LINE('',#3225,#3224);\r
+-#3227=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3228=VECTOR('',#3227,5.618394209466E-1);\r
+-#3229=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));\r
+-#3230=LINE('',#3229,#3228);\r
+-#3231=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));\r
+-#3232=VECTOR('',#3231,6.863753427325E0);\r
+-#3233=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));\r
+-#3234=LINE('',#3233,#3232);\r
+-#3235=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3236=VECTOR('',#3235,3.895172754280E0);\r
+-#3237=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));\r
+-#3238=LINE('',#3237,#3236);\r
+-#3239=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3240=VECTOR('',#3239,5.E-1);\r
+-#3241=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));\r
+-#3242=LINE('',#3241,#3240);\r
+-#3243=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.5E0));\r
+-#3244=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3245=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#3246=AXIS2_PLACEMENT_3D('',#3243,#3244,#3245);\r
+-#3248=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3249=VECTOR('',#3248,5.E-1);\r
+-#3250=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));\r
+-#3251=LINE('',#3250,#3249);\r
+-#3252=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.E0));\r
+-#3253=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3254=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3255=AXIS2_PLACEMENT_3D('',#3252,#3253,#3254);\r
+-#3257=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3258=VECTOR('',#3257,3.895172754280E0);\r
+-#3259=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));\r
+-#3260=LINE('',#3259,#3258);\r
+-#3261=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));\r
+-#3262=VECTOR('',#3261,6.863753427325E0);\r
+-#3263=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));\r
+-#3264=LINE('',#3263,#3262);\r
+-#3265=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3266=VECTOR('',#3265,5.618394209466E-1);\r
+-#3267=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));\r
+-#3268=LINE('',#3267,#3266);\r
+-#3269=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3270=VECTOR('',#3269,6.E0);\r
+-#3271=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));\r
+-#3272=LINE('',#3271,#3270);\r
+-#3273=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3274=VECTOR('',#3273,5.E-1);\r
+-#3275=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));\r
+-#3276=LINE('',#3275,#3274);\r
+-#3277=CARTESIAN_POINT('',(2.025E1,2.75E0,8.5E0));\r
+-#3278=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3279=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3280=AXIS2_PLACEMENT_3D('',#3277,#3278,#3279);\r
+-#3282=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3283=VECTOR('',#3282,5.E-1);\r
+-#3284=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));\r
+-#3285=LINE('',#3284,#3283);\r
+-#3286=CARTESIAN_POINT('',(2.025E1,2.75E0,8.E0));\r
+-#3287=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3288=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3289=AXIS2_PLACEMENT_3D('',#3286,#3287,#3288);\r
+-#3291=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3292=VECTOR('',#3291,5.E-1);\r
+-#3293=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));\r
+-#3294=LINE('',#3293,#3292);\r
+-#3295=CARTESIAN_POINT('',(2.025E1,8.75E0,8.5E0));\r
+-#3296=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3297=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3298=AXIS2_PLACEMENT_3D('',#3295,#3296,#3297);\r
+-#3300=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3301=VECTOR('',#3300,5.E-1);\r
+-#3302=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));\r
+-#3303=LINE('',#3302,#3301);\r
+-#3304=CARTESIAN_POINT('',(2.025E1,8.75E0,8.E0));\r
+-#3305=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3306=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3307=AXIS2_PLACEMENT_3D('',#3304,#3305,#3306);\r
+-#3309=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3310=VECTOR('',#3309,5.E-1);\r
+-#3311=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));\r
+-#3312=LINE('',#3311,#3310);\r
+-#3313=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.5E0));\r
+-#3314=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3315=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3316=AXIS2_PLACEMENT_3D('',#3313,#3314,#3315);\r
+-#3318=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3319=VECTOR('',#3318,5.E-1);\r
+-#3320=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));\r
+-#3321=LINE('',#3320,#3319);\r
+-#3322=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.E0));\r
+-#3323=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3324=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#3325=AXIS2_PLACEMENT_3D('',#3322,#3323,#3324);\r
+-#3327=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3328=VECTOR('',#3327,6.875E-1);\r
+-#3329=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
+-#3330=LINE('',#3329,#3328);\r
+-#3331=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3332=VECTOR('',#3331,6.875E-1);\r
+-#3333=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));\r
+-#3334=LINE('',#3333,#3332);\r
+-#3335=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3336=VECTOR('',#3335,6.875E-1);\r
+-#3337=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
+-#3338=LINE('',#3337,#3336);\r
+-#3339=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3340=VECTOR('',#3339,6.875E-1);\r
+-#3341=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));\r
+-#3342=LINE('',#3341,#3340);\r
+-#3343=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3344=VECTOR('',#3343,3.E0);\r
+-#3345=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));\r
+-#3346=LINE('',#3345,#3344);\r
+-#3347=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.25E0));\r
+-#3348=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3349=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3350=AXIS2_PLACEMENT_3D('',#3347,#3348,#3349);\r
+-#3352=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3353=VECTOR('',#3352,3.E0);\r
+-#3354=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));\r
+-#3355=LINE('',#3354,#3353);\r
+-#3356=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.25E0));\r
+-#3357=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3358=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3359=AXIS2_PLACEMENT_3D('',#3356,#3357,#3358);\r
+-#3361=CARTESIAN_POINT('',(1.61E0,6.875E-1,4.5E0));\r
+-#3362=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3363=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));\r
+-#3364=AXIS2_PLACEMENT_3D('',#3361,#3362,#3363);\r
+-#3366=CARTESIAN_POINT('',(7.5E0,6.875E-1,7.5E0));\r
+-#3367=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3368=DIRECTION('',(-4.496088413988E-1,0.E0,-8.932255536739E-1));\r
+-#3369=AXIS2_PLACEMENT_3D('',#3366,#3367,#3368);\r
+-#3371=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,1.645354088550E0));\r
+-#3372=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3373=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#3374=AXIS2_PLACEMENT_3D('',#3371,#3372,#3373);\r
+-#3376=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#3377=VECTOR('',#3376,4.263248410977E0);\r
+-#3378=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));\r
+-#3379=LINE('',#3378,#3377);\r
+-#3380=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3381=VECTOR('',#3380,6.875E-1);\r
+-#3382=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));\r
+-#3383=LINE('',#3382,#3381);\r
+-#3384=CARTESIAN_POINT('',(1.455736763592E0,0.E0,4.577195232320E0));\r
+-#3385=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3386=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#3387=AXIS2_PLACEMENT_3D('',#3384,#3385,#3386);\r
+-#3389=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3390=VECTOR('',#3389,6.875E-1);\r
+-#3391=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));\r
+-#3392=LINE('',#3391,#3390);\r
+-#3393=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,4.577195232320E0));\r
+-#3394=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3395=DIRECTION('',(-8.942796313519E-1,0.E0,4.475085931567E-1));\r
+-#3396=AXIS2_PLACEMENT_3D('',#3393,#3394,#3395);\r
+-#3398=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3399=VECTOR('',#3398,6.875E-1);\r
+-#3400=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));\r
+-#3401=LINE('',#3400,#3399);\r
+-#3402=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3403=VECTOR('',#3402,6.875E-1);\r
+-#3404=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));\r
+-#3405=LINE('',#3404,#3403);\r
+-#3406=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3407=VECTOR('',#3406,6.875E-1);\r
+-#3408=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));\r
+-#3409=LINE('',#3408,#3407);\r
+-#3410=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3411=VECTOR('',#3410,6.875E-1);\r
+-#3412=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));\r
+-#3413=LINE('',#3412,#3411);\r
+-#3414=CARTESIAN_POINT('',(-1.85E-1,0.E0,7.815E0));\r
+-#3415=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3416=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3417=AXIS2_PLACEMENT_3D('',#3414,#3415,#3416);\r
+-#3419=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3420=VECTOR('',#3419,6.875E-1);\r
+-#3421=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));\r
+-#3422=LINE('',#3421,#3420);\r
+-#3423=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,7.815E0));\r
+-#3424=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3425=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3426=AXIS2_PLACEMENT_3D('',#3423,#3424,#3425);\r
+-#3428=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3429=VECTOR('',#3428,7.5E-1);\r
+-#3430=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));\r
+-#3431=LINE('',#3430,#3429);\r
+-#3432=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3433=VECTOR('',#3432,3.15E-1);\r
+-#3434=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));\r
+-#3435=LINE('',#3434,#3433);\r
+-#3436=CARTESIAN_POINT('',(1.25125E0,6.875E-1,7.5E0));\r
+-#3437=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3438=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3439=AXIS2_PLACEMENT_3D('',#3436,#3437,#3438);\r
+-#3441=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3442=VECTOR('',#3441,3.15E-1);\r
+-#3443=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));\r
+-#3444=LINE('',#3443,#3442);\r
+-#3445=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3446=VECTOR('',#3445,2.525E-1);\r
+-#3447=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));\r
+-#3448=LINE('',#3447,#3446);\r
+-#3449=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3450=VECTOR('',#3449,8.1E-1);\r
+-#3451=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));\r
+-#3452=LINE('',#3451,#3450);\r
+-#3453=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3454=VECTOR('',#3453,3.875E0);\r
+-#3455=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));\r
+-#3456=LINE('',#3455,#3454);\r
+-#3457=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3458=VECTOR('',#3457,8.1E-1);\r
+-#3459=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));\r
+-#3460=LINE('',#3459,#3458);\r
+-#3461=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3462=VECTOR('',#3461,6.875E-1);\r
+-#3463=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));\r
+-#3464=LINE('',#3463,#3462);\r
+-#3465=CARTESIAN_POINT('',(2.6875E0,0.E0,7.815E0));\r
+-#3466=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3467=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3468=AXIS2_PLACEMENT_3D('',#3465,#3466,#3467);\r
+-#3470=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3471=VECTOR('',#3470,6.875E-1);\r
+-#3472=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));\r
+-#3473=LINE('',#3472,#3471);\r
+-#3474=CARTESIAN_POINT('',(2.6875E0,6.875E-1,7.815E0));\r
+-#3475=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3476=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3477=AXIS2_PLACEMENT_3D('',#3474,#3475,#3476);\r
+-#3479=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3480=VECTOR('',#3479,6.875E-1);\r
+-#3481=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
+-#3482=LINE('',#3481,#3480);\r
+-#3483=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3484=VECTOR('',#3483,6.875E-1);\r
+-#3485=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));\r
+-#3486=LINE('',#3485,#3484);\r
+-#3487=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3488=VECTOR('',#3487,6.875E-1);\r
+-#3489=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));\r
+-#3490=LINE('',#3489,#3488);\r
+-#3491=CARTESIAN_POINT('',(3.4375E0,0.E0,9.565E0));\r
+-#3492=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3493=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3494=AXIS2_PLACEMENT_3D('',#3491,#3492,#3493);\r
+-#3496=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3497=VECTOR('',#3496,6.875E-1);\r
+-#3498=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));\r
+-#3499=LINE('',#3498,#3497);\r
+-#3500=CARTESIAN_POINT('',(3.4375E0,6.875E-1,9.565E0));\r
+-#3501=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3502=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3503=AXIS2_PLACEMENT_3D('',#3500,#3501,#3502);\r
+-#3505=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3506=VECTOR('',#3505,6.875E-1);\r
+-#3507=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));\r
+-#3508=LINE('',#3507,#3506);\r
+-#3509=CARTESIAN_POINT('',(3.4375E0,0.E0,1.0375E1));\r
+-#3510=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3511=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3512=AXIS2_PLACEMENT_3D('',#3509,#3510,#3511);\r
+-#3514=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3515=VECTOR('',#3514,6.875E-1);\r
+-#3516=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));\r
+-#3517=LINE('',#3516,#3515);\r
+-#3518=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.0375E1));\r
+-#3519=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3520=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3521=AXIS2_PLACEMENT_3D('',#3518,#3519,#3520);\r
+-#3523=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3524=VECTOR('',#3523,6.875E-1);\r
+-#3525=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));\r
+-#3526=LINE('',#3525,#3524);\r
+-#3527=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.0375E1));\r
+-#3528=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3529=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3530=AXIS2_PLACEMENT_3D('',#3527,#3528,#3529);\r
+-#3532=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3533=VECTOR('',#3532,6.875E-1);\r
+-#3534=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));\r
+-#3535=LINE('',#3534,#3533);\r
+-#3536=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.0375E1));\r
+-#3537=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3538=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3539=AXIS2_PLACEMENT_3D('',#3536,#3537,#3538);\r
+-#3541=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3542=VECTOR('',#3541,6.875E-1);\r
+-#3543=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));\r
+-#3544=LINE('',#3543,#3542);\r
+-#3545=CARTESIAN_POINT('',(-4.375E-1,0.E0,9.565E0));\r
+-#3546=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3547=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3548=AXIS2_PLACEMENT_3D('',#3545,#3546,#3547);\r
+-#3550=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3551=VECTOR('',#3550,6.875E-1);\r
+-#3552=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));\r
+-#3553=LINE('',#3552,#3551);\r
+-#3554=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,9.565E0));\r
+-#3555=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3556=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3557=AXIS2_PLACEMENT_3D('',#3554,#3555,#3556);\r
+-#3559=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3560=VECTOR('',#3559,6.875E-1);\r
+-#3561=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
+-#3562=LINE('',#3561,#3560);\r
+-#3563=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3564=VECTOR('',#3563,6.875E-1);\r
+-#3565=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));\r
+-#3566=LINE('',#3565,#3564);\r
+-#3567=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3568=VECTOR('',#3567,6.875E-1);\r
+-#3569=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
+-#3570=LINE('',#3569,#3568);\r
+-#3571=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3572=VECTOR('',#3571,6.875E-1);\r
+-#3573=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));\r
+-#3574=LINE('',#3573,#3572);\r
+-#3575=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3576=VECTOR('',#3575,3.E0);\r
+-#3577=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));\r
+-#3578=LINE('',#3577,#3576);\r
+-#3579=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.65E1));\r
+-#3580=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3581=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3582=AXIS2_PLACEMENT_3D('',#3579,#3580,#3581);\r
+-#3584=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3585=VECTOR('',#3584,3.E0);\r
+-#3586=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));\r
+-#3587=LINE('',#3586,#3585);\r
+-#3588=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.35E1));\r
+-#3589=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3590=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3591=AXIS2_PLACEMENT_3D('',#3588,#3589,#3590);\r
+-#3593=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3594=VECTOR('',#3593,6.875E-1);\r
+-#3595=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
+-#3596=LINE('',#3595,#3594);\r
+-#3597=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3598=VECTOR('',#3597,6.875E-1);\r
+-#3599=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));\r
+-#3600=LINE('',#3599,#3598);\r
+-#3601=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3602=VECTOR('',#3601,6.875E-1);\r
+-#3603=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
+-#3604=LINE('',#3603,#3602);\r
+-#3605=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3606=VECTOR('',#3605,6.875E-1);\r
+-#3607=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));\r
+-#3608=LINE('',#3607,#3606);\r
+-#3609=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3610=VECTOR('',#3609,3.E0);\r
+-#3611=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));\r
+-#3612=LINE('',#3611,#3610);\r
+-#3613=CARTESIAN_POINT('',(1.25E0,6.875E-1,2.25E1));\r
+-#3614=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3615=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3616=AXIS2_PLACEMENT_3D('',#3613,#3614,#3615);\r
+-#3618=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3619=VECTOR('',#3618,3.E0);\r
+-#3620=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));\r
+-#3621=LINE('',#3620,#3619);\r
+-#3622=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.95E1));\r
+-#3623=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3624=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3625=AXIS2_PLACEMENT_3D('',#3622,#3623,#3624);\r
+-#3627=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3628=VECTOR('',#3627,6.875E-1);\r
+-#3629=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
+-#3630=LINE('',#3629,#3628);\r
+-#3631=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3632=VECTOR('',#3631,6.875E-1);\r
+-#3633=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));\r
+-#3634=LINE('',#3633,#3632);\r
+-#3635=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3636=VECTOR('',#3635,6.875E-1);\r
+-#3637=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
+-#3638=LINE('',#3637,#3636);\r
+-#3639=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3640=VECTOR('',#3639,6.875E-1);\r
+-#3641=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));\r
+-#3642=LINE('',#3641,#3640);\r
+-#3643=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3644=VECTOR('',#3643,3.E0);\r
+-#3645=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));\r
+-#3646=LINE('',#3645,#3644);\r
+-#3647=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.E0));\r
+-#3648=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3649=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3650=AXIS2_PLACEMENT_3D('',#3647,#3648,#3649);\r
+-#3652=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3653=VECTOR('',#3652,3.E0);\r
+-#3654=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));\r
+-#3655=LINE('',#3654,#3653);\r
+-#3656=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.E0));\r
+-#3657=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3658=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3659=AXIS2_PLACEMENT_3D('',#3656,#3657,#3658);\r
+-#3661=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3662=VECTOR('',#3661,6.875E-1);\r
+-#3663=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
+-#3664=LINE('',#3663,#3662);\r
+-#3665=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3666=VECTOR('',#3665,6.875E-1);\r
+-#3667=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));\r
+-#3668=LINE('',#3667,#3666);\r
+-#3669=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3670=VECTOR('',#3669,6.875E-1);\r
+-#3671=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
+-#3672=LINE('',#3671,#3670);\r
+-#3673=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3674=VECTOR('',#3673,6.875E-1);\r
+-#3675=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));\r
+-#3676=LINE('',#3675,#3674);\r
+-#3677=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3678=VECTOR('',#3677,3.E0);\r
+-#3679=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));\r
+-#3680=LINE('',#3679,#3678);\r
+-#3681=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8E1));\r
+-#3682=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3683=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3684=AXIS2_PLACEMENT_3D('',#3681,#3682,#3683);\r
+-#3686=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3687=VECTOR('',#3686,3.E0);\r
+-#3688=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));\r
+-#3689=LINE('',#3688,#3687);\r
+-#3690=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8E1));\r
+-#3691=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3692=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3693=AXIS2_PLACEMENT_3D('',#3690,#3691,#3692);\r
+-#3695=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3696=VECTOR('',#3695,6.875E-1);\r
+-#3697=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
+-#3698=LINE('',#3697,#3696);\r
+-#3699=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3700=VECTOR('',#3699,6.875E-1);\r
+-#3701=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));\r
+-#3702=LINE('',#3701,#3700);\r
+-#3703=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3704=VECTOR('',#3703,6.875E-1);\r
+-#3705=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
+-#3706=LINE('',#3705,#3704);\r
+-#3707=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3708=VECTOR('',#3707,6.875E-1);\r
+-#3709=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));\r
+-#3710=LINE('',#3709,#3708);\r
+-#3711=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3712=VECTOR('',#3711,3.E0);\r
+-#3713=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));\r
+-#3714=LINE('',#3713,#3712);\r
+-#3715=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.075E1));\r
+-#3716=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3717=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3718=AXIS2_PLACEMENT_3D('',#3715,#3716,#3717);\r
+-#3720=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3721=VECTOR('',#3720,3.E0);\r
+-#3722=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));\r
+-#3723=LINE('',#3722,#3721);\r
+-#3724=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.075E1));\r
+-#3725=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3726=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3727=AXIS2_PLACEMENT_3D('',#3724,#3725,#3726);\r
+-#3729=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#3730=VECTOR('',#3729,4.263248410977E0);\r
+-#3731=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));\r
+-#3732=LINE('',#3731,#3730);\r
+-#3733=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,3.035464591145E1));\r
+-#3734=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3735=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#3736=AXIS2_PLACEMENT_3D('',#3733,#3734,#3735);\r
+-#3738=CARTESIAN_POINT('',(7.5E0,6.875E-1,2.45E1));\r
+-#3739=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3740=DIRECTION('',(-4.496088413988E-1,0.E0,8.932255536739E-1));\r
+-#3741=AXIS2_PLACEMENT_3D('',#3738,#3739,#3740);\r
+-#3743=CARTESIAN_POINT('',(1.61E0,6.875E-1,2.75E1));\r
+-#3744=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3745=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));\r
+-#3746=AXIS2_PLACEMENT_3D('',#3743,#3744,#3745);\r
+-#3748=DIRECTION('',(0.E0,1.E0,-1.033516706560E-14));\r
+-#3749=VECTOR('',#3748,6.875E-1);\r
+-#3750=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));\r
+-#3751=LINE('',#3750,#3749);\r
+-#3752=CARTESIAN_POINT('',(1.455736763592E0,0.E0,2.742280476768E1));\r
+-#3753=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3754=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));\r
+-#3755=AXIS2_PLACEMENT_3D('',#3752,#3753,#3754);\r
+-#3757=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));\r
+-#3758=VECTOR('',#3757,6.875E-1);\r
+-#3759=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));\r
+-#3760=LINE('',#3759,#3758);\r
+-#3761=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,2.742280476768E1));\r
+-#3762=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3763=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811866E-1));\r
+-#3764=AXIS2_PLACEMENT_3D('',#3761,#3762,#3763);\r
+-#3766=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));\r
+-#3767=VECTOR('',#3766,6.875E-1);\r
+-#3768=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));\r
+-#3769=LINE('',#3768,#3767);\r
+-#3770=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3771=VECTOR('',#3770,6.875E-1);\r
+-#3772=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));\r
+-#3773=LINE('',#3772,#3771);\r
+-#3774=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3775=VECTOR('',#3774,6.875E-1);\r
+-#3776=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));\r
+-#3777=LINE('',#3776,#3775);\r
+-#3778=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3779=VECTOR('',#3778,6.875E-1);\r
+-#3780=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
+-#3781=LINE('',#3780,#3779);\r
+-#3782=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3783=VECTOR('',#3782,6.875E-1);\r
+-#3784=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));\r
+-#3785=LINE('',#3784,#3783);\r
+-#3786=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3787=VECTOR('',#3786,6.875E-1);\r
+-#3788=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
+-#3789=LINE('',#3788,#3787);\r
+-#3790=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3791=VECTOR('',#3790,6.875E-1);\r
+-#3792=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));\r
+-#3793=LINE('',#3792,#3791);\r
+-#3794=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3795=VECTOR('',#3794,3.E0);\r
+-#3796=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));\r
+-#3797=LINE('',#3796,#3795);\r
+-#3798=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.25E0));\r
+-#3799=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3800=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3801=AXIS2_PLACEMENT_3D('',#3798,#3799,#3800);\r
+-#3803=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3804=VECTOR('',#3803,3.E0);\r
+-#3805=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));\r
+-#3806=LINE('',#3805,#3804);\r
+-#3807=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.25E0));\r
+-#3808=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3809=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3810=AXIS2_PLACEMENT_3D('',#3807,#3808,#3809);\r
+-#3812=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#3813=VECTOR('',#3812,4.263248410977E0);\r
+-#3814=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));\r
+-#3815=LINE('',#3814,#3813);\r
+-#3816=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,1.645354088550E0));\r
+-#3817=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3818=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#3819=AXIS2_PLACEMENT_3D('',#3816,#3817,#3818);\r
+-#3821=CARTESIAN_POINT('',(1.65E1,6.875E-1,7.5E0));\r
+-#3822=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3823=DIRECTION('',(4.496088413988E-1,0.E0,-8.932255536739E-1));\r
+-#3824=AXIS2_PLACEMENT_3D('',#3821,#3822,#3823);\r
+-#3826=CARTESIAN_POINT('',(2.239E1,6.875E-1,4.5E0));\r
+-#3827=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3828=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));\r
+-#3829=AXIS2_PLACEMENT_3D('',#3826,#3827,#3828);\r
+-#3831=DIRECTION('',(-1.033516706560E-14,1.E0,2.583791766400E-14));\r
+-#3832=VECTOR('',#3831,6.875E-1);\r
+-#3833=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));\r
+-#3834=LINE('',#3833,#3832);\r
+-#3835=CARTESIAN_POINT('',(2.254426323641E1,0.E0,4.577195232320E0));\r
+-#3836=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3837=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));\r
+-#3838=AXIS2_PLACEMENT_3D('',#3835,#3836,#3837);\r
+-#3840=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3841=VECTOR('',#3840,6.875E-1);\r
+-#3842=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));\r
+-#3843=LINE('',#3842,#3841);\r
+-#3844=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,4.577195232320E0));\r
+-#3845=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#3846=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#3847=AXIS2_PLACEMENT_3D('',#3844,#3845,#3846);\r
+-#3849=DIRECTION('',(-1.550275059840E-14,1.E0,-2.067033413120E-14));\r
+-#3850=VECTOR('',#3849,6.875E-1);\r
+-#3851=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));\r
+-#3852=LINE('',#3851,#3850);\r
+-#3853=DIRECTION('',(1.550275059840E-14,1.E0,0.E0));\r
+-#3854=VECTOR('',#3853,6.875E-1);\r
+-#3855=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));\r
+-#3856=LINE('',#3855,#3854);\r
+-#3857=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3858=VECTOR('',#3857,6.875E-1);\r
+-#3859=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));\r
+-#3860=LINE('',#3859,#3858);\r
+-#3861=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3862=VECTOR('',#3861,6.875E-1);\r
+-#3863=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
+-#3864=LINE('',#3863,#3862);\r
+-#3865=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3866=VECTOR('',#3865,6.875E-1);\r
+-#3867=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));\r
+-#3868=LINE('',#3867,#3866);\r
+-#3869=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3870=VECTOR('',#3869,6.875E-1);\r
+-#3871=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
+-#3872=LINE('',#3871,#3870);\r
+-#3873=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3874=VECTOR('',#3873,6.875E-1);\r
+-#3875=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));\r
+-#3876=LINE('',#3875,#3874);\r
+-#3877=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3878=VECTOR('',#3877,3.E0);\r
+-#3879=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));\r
+-#3880=LINE('',#3879,#3878);\r
+-#3881=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.35E1));\r
+-#3882=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3883=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3884=AXIS2_PLACEMENT_3D('',#3881,#3882,#3883);\r
+-#3886=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3887=VECTOR('',#3886,3.E0);\r
+-#3888=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));\r
+-#3889=LINE('',#3888,#3887);\r
+-#3890=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.65E1));\r
+-#3891=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3892=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3893=AXIS2_PLACEMENT_3D('',#3890,#3891,#3892);\r
+-#3895=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3896=VECTOR('',#3895,6.875E-1);\r
+-#3897=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
+-#3898=LINE('',#3897,#3896);\r
+-#3899=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3900=VECTOR('',#3899,6.875E-1);\r
+-#3901=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));\r
+-#3902=LINE('',#3901,#3900);\r
+-#3903=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3904=VECTOR('',#3903,6.875E-1);\r
+-#3905=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
+-#3906=LINE('',#3905,#3904);\r
+-#3907=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3908=VECTOR('',#3907,6.875E-1);\r
+-#3909=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));\r
+-#3910=LINE('',#3909,#3908);\r
+-#3911=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3912=VECTOR('',#3911,3.E0);\r
+-#3913=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));\r
+-#3914=LINE('',#3913,#3912);\r
+-#3915=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.95E1));\r
+-#3916=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3917=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3918=AXIS2_PLACEMENT_3D('',#3915,#3916,#3917);\r
+-#3920=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3921=VECTOR('',#3920,3.E0);\r
+-#3922=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));\r
+-#3923=LINE('',#3922,#3921);\r
+-#3924=CARTESIAN_POINT('',(2.275E1,6.875E-1,2.25E1));\r
+-#3925=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3926=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3927=AXIS2_PLACEMENT_3D('',#3924,#3925,#3926);\r
+-#3929=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3930=VECTOR('',#3929,6.875E-1);\r
+-#3931=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
+-#3932=LINE('',#3931,#3930);\r
+-#3933=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3934=VECTOR('',#3933,6.875E-1);\r
+-#3935=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));\r
+-#3936=LINE('',#3935,#3934);\r
+-#3937=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3938=VECTOR('',#3937,6.875E-1);\r
+-#3939=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
+-#3940=LINE('',#3939,#3938);\r
+-#3941=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3942=VECTOR('',#3941,6.875E-1);\r
+-#3943=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));\r
+-#3944=LINE('',#3943,#3942);\r
+-#3945=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3946=VECTOR('',#3945,3.E0);\r
+-#3947=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));\r
+-#3948=LINE('',#3947,#3946);\r
+-#3949=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.E0));\r
+-#3950=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3951=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3952=AXIS2_PLACEMENT_3D('',#3949,#3950,#3951);\r
+-#3954=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3955=VECTOR('',#3954,3.E0);\r
+-#3956=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));\r
+-#3957=LINE('',#3956,#3955);\r
+-#3958=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.E0));\r
+-#3959=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3960=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3961=AXIS2_PLACEMENT_3D('',#3958,#3959,#3960);\r
+-#3963=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3964=VECTOR('',#3963,6.875E-1);\r
+-#3965=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
+-#3966=LINE('',#3965,#3964);\r
+-#3967=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3968=VECTOR('',#3967,6.875E-1);\r
+-#3969=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));\r
+-#3970=LINE('',#3969,#3968);\r
+-#3971=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3972=VECTOR('',#3971,6.875E-1);\r
+-#3973=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
+-#3974=LINE('',#3973,#3972);\r
+-#3975=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3976=VECTOR('',#3975,6.875E-1);\r
+-#3977=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));\r
+-#3978=LINE('',#3977,#3976);\r
+-#3979=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#3980=VECTOR('',#3979,3.E0);\r
+-#3981=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));\r
+-#3982=LINE('',#3981,#3980);\r
+-#3983=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8E1));\r
+-#3984=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3985=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#3986=AXIS2_PLACEMENT_3D('',#3983,#3984,#3985);\r
+-#3988=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#3989=VECTOR('',#3988,3.E0);\r
+-#3990=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));\r
+-#3991=LINE('',#3990,#3989);\r
+-#3992=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8E1));\r
+-#3993=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3994=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#3995=AXIS2_PLACEMENT_3D('',#3992,#3993,#3994);\r
+-#3997=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#3998=VECTOR('',#3997,6.875E-1);\r
+-#3999=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
+-#4000=LINE('',#3999,#3998);\r
+-#4001=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4002=VECTOR('',#4001,6.875E-1);\r
+-#4003=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));\r
+-#4004=LINE('',#4003,#4002);\r
+-#4005=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4006=VECTOR('',#4005,6.875E-1);\r
+-#4007=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
+-#4008=LINE('',#4007,#4006);\r
+-#4009=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4010=VECTOR('',#4009,6.875E-1);\r
+-#4011=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));\r
+-#4012=LINE('',#4011,#4010);\r
+-#4013=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#4014=VECTOR('',#4013,3.E0);\r
+-#4015=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));\r
+-#4016=LINE('',#4015,#4014);\r
+-#4017=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.075E1));\r
+-#4018=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4019=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#4020=AXIS2_PLACEMENT_3D('',#4017,#4018,#4019);\r
+-#4022=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#4023=VECTOR('',#4022,3.E0);\r
+-#4024=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));\r
+-#4025=LINE('',#4024,#4023);\r
+-#4026=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.075E1));\r
+-#4027=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4028=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4029=AXIS2_PLACEMENT_3D('',#4026,#4027,#4028);\r
+-#4031=CARTESIAN_POINT('',(2.239E1,6.875E-1,2.75E1));\r
+-#4032=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4033=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));\r
+-#4034=AXIS2_PLACEMENT_3D('',#4031,#4032,#4033);\r
+-#4036=CARTESIAN_POINT('',(1.65E1,6.875E-1,2.45E1));\r
+-#4037=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4038=DIRECTION('',(4.496088413988E-1,0.E0,8.932255536739E-1));\r
+-#4039=AXIS2_PLACEMENT_3D('',#4036,#4037,#4038);\r
+-#4041=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,3.035464591145E1));\r
+-#4042=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4043=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#4044=AXIS2_PLACEMENT_3D('',#4041,#4042,#4043);\r
+-#4046=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#4047=VECTOR('',#4046,4.263248410977E0);\r
+-#4048=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));\r
+-#4049=LINE('',#4048,#4047);\r
+-#4050=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4051=VECTOR('',#4050,6.875E-1);\r
+-#4052=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));\r
+-#4053=LINE('',#4052,#4051);\r
+-#4054=CARTESIAN_POINT('',(2.254426323641E1,0.E0,2.742280476768E1));\r
+-#4055=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4056=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#4057=AXIS2_PLACEMENT_3D('',#4054,#4055,#4056);\r
+-#4059=DIRECTION('',(0.E0,1.E0,2.067033413120E-14));\r
+-#4060=VECTOR('',#4059,6.875E-1);\r
+-#4061=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));\r
+-#4062=LINE('',#4061,#4060);\r
+-#4063=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,2.742280476768E1));\r
+-#4064=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4065=DIRECTION('',(8.942796313519E-1,0.E0,-4.475085931567E-1));\r
+-#4066=AXIS2_PLACEMENT_3D('',#4063,#4064,#4065);\r
+-#4068=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4069=VECTOR('',#4068,6.875E-1);\r
+-#4070=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));\r
+-#4071=LINE('',#4070,#4069);\r
+-#4072=DIRECTION('',(1.033516706560E-14,1.E0,0.E0));\r
+-#4073=VECTOR('',#4072,6.875E-1);\r
+-#4074=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));\r
+-#4075=LINE('',#4074,#4073);\r
+-#4076=DIRECTION('',(-2.067033413120E-14,1.E0,3.100550119680E-14));\r
+-#4077=VECTOR('',#4076,6.875E-1);\r
+-#4078=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));\r
+-#4079=LINE('',#4078,#4077);\r
+-#4080=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4081=VECTOR('',#4080,6.875E-1);\r
+-#4082=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));\r
+-#4083=LINE('',#4082,#4081);\r
+-#4084=CARTESIAN_POINT('',(2.13075E1,6.875E-1,7.81E0));\r
+-#4085=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4086=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4087=AXIS2_PLACEMENT_3D('',#4084,#4085,#4086);\r
+-#4089=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4090=VECTOR('',#4089,6.875E-1);\r
+-#4091=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));\r
+-#4092=LINE('',#4091,#4090);\r
+-#4093=CARTESIAN_POINT('',(2.13075E1,0.E0,7.81E0));\r
+-#4094=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4095=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#4096=AXIS2_PLACEMENT_3D('',#4093,#4094,#4095);\r
+-#4098=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4099=VECTOR('',#4098,6.875E-1);\r
+-#4100=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));\r
+-#4101=LINE('',#4100,#4099);\r
+-#4102=CARTESIAN_POINT('',(2.05675E1,6.875E-1,9.57E0));\r
+-#4103=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4104=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#4105=AXIS2_PLACEMENT_3D('',#4102,#4103,#4104);\r
+-#4107=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4108=VECTOR('',#4107,6.875E-1);\r
+-#4109=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));\r
+-#4110=LINE('',#4109,#4108);\r
+-#4111=CARTESIAN_POINT('',(2.05675E1,0.E0,9.57E0));\r
+-#4112=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4113=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#4114=AXIS2_PLACEMENT_3D('',#4111,#4112,#4113);\r
+-#4116=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4117=VECTOR('',#4116,6.875E-1);\r
+-#4118=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));\r
+-#4119=LINE('',#4118,#4117);\r
+-#4120=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.037E1));\r
+-#4121=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4122=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4123=AXIS2_PLACEMENT_3D('',#4120,#4121,#4122);\r
+-#4125=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4126=VECTOR('',#4125,6.875E-1);\r
+-#4127=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));\r
+-#4128=LINE('',#4127,#4126);\r
+-#4129=CARTESIAN_POINT('',(2.05675E1,0.E0,1.037E1));\r
+-#4130=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4131=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#4132=AXIS2_PLACEMENT_3D('',#4129,#4130,#4131);\r
+-#4134=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4135=VECTOR('',#4134,6.875E-1);\r
+-#4136=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));\r
+-#4137=LINE('',#4136,#4135);\r
+-#4138=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.037E1));\r
+-#4139=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4140=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#4141=AXIS2_PLACEMENT_3D('',#4138,#4139,#4140);\r
+-#4143=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4144=VECTOR('',#4143,6.875E-1);\r
+-#4145=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));\r
+-#4146=LINE('',#4145,#4144);\r
+-#4147=CARTESIAN_POINT('',(2.44325E1,0.E0,1.037E1));\r
+-#4148=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4149=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4150=AXIS2_PLACEMENT_3D('',#4147,#4148,#4149);\r
+-#4152=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4153=VECTOR('',#4152,6.875E-1);\r
+-#4154=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));\r
+-#4155=LINE('',#4154,#4153);\r
+-#4156=CARTESIAN_POINT('',(2.44325E1,6.875E-1,9.57E0));\r
+-#4157=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4158=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#4159=AXIS2_PLACEMENT_3D('',#4156,#4157,#4158);\r
+-#4161=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4162=VECTOR('',#4161,6.875E-1);\r
+-#4163=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));\r
+-#4164=LINE('',#4163,#4162);\r
+-#4165=CARTESIAN_POINT('',(2.44325E1,0.E0,9.57E0));\r
+-#4166=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4167=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#4168=AXIS2_PLACEMENT_3D('',#4165,#4166,#4167);\r
+-#4170=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4171=VECTOR('',#4170,6.875E-1);\r
+-#4172=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));\r
+-#4173=LINE('',#4172,#4171);\r
+-#4174=CARTESIAN_POINT('',(2.419E1,6.875E-1,7.81E0));\r
+-#4175=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4176=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#4177=AXIS2_PLACEMENT_3D('',#4174,#4175,#4176);\r
+-#4179=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4180=VECTOR('',#4179,6.875E-1);\r
+-#4181=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));\r
+-#4182=LINE('',#4181,#4180);\r
+-#4183=CARTESIAN_POINT('',(2.419E1,0.E0,7.81E0));\r
+-#4184=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#4185=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4186=AXIS2_PLACEMENT_3D('',#4183,#4184,#4185);\r
+-#4188=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));\r
+-#4189=VECTOR('',#4188,6.875E-1);\r
+-#4190=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));\r
+-#4191=LINE('',#4190,#4189);\r
+-#4192=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4193=VECTOR('',#4192,6.875E-1);\r
+-#4194=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
+-#4195=LINE('',#4194,#4193);\r
+-#4196=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#4197=VECTOR('',#4196,2.425E-1);\r
+-#4198=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));\r
+-#4199=LINE('',#4198,#4197);\r
+-#4200=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#4201=VECTOR('',#4200,3.1E-1);\r
+-#4202=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));\r
+-#4203=LINE('',#4202,#4201);\r
+-#4204=CARTESIAN_POINT('',(2.274875E1,6.875E-1,7.5E0));\r
+-#4205=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#4206=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#4207=AXIS2_PLACEMENT_3D('',#4204,#4205,#4206);\r
+-#4209=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4210=VECTOR('',#4209,3.1E-1);\r
+-#4211=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));\r
+-#4212=LINE('',#4211,#4210);\r
+-#4213=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#4214=VECTOR('',#4213,7.4E-1);\r
+-#4215=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));\r
+-#4216=LINE('',#4215,#4214);\r
+-#4217=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#4218=VECTOR('',#4217,8.E-1);\r
+-#4219=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));\r
+-#4220=LINE('',#4219,#4218);\r
+-#4221=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#4222=VECTOR('',#4221,3.865E0);\r
+-#4223=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));\r
+-#4224=LINE('',#4223,#4222);\r
+-#4225=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#4226=VECTOR('',#4225,8.E-1);\r
+-#4227=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));\r
+-#4228=LINE('',#4227,#4226);\r
+-#4229=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
+-#4230=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));\r
+-#4231=VERTEX_POINT('',#4229);\r
+-#4232=VERTEX_POINT('',#4230);\r
+-#4233=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));\r
+-#4234=CARTESIAN_POINT('',(2.E1,1.5E0,3.2E1));\r
+-#4235=VERTEX_POINT('',#4233);\r
+-#4236=VERTEX_POINT('',#4234);\r
+-#4237=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
+-#4238=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));\r
+-#4239=VERTEX_POINT('',#4237);\r
+-#4240=VERTEX_POINT('',#4238);\r
+-#4241=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));\r
+-#4242=CARTESIAN_POINT('',(2.4E1,1.5E0,4.E0));\r
+-#4243=VERTEX_POINT('',#4241);\r
+-#4244=VERTEX_POINT('',#4242);\r
+-#4245=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
+-#4246=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));\r
+-#4247=VERTEX_POINT('',#4245);\r
+-#4248=VERTEX_POINT('',#4246);\r
+-#4249=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));\r
+-#4250=CARTESIAN_POINT('',(0.E0,1.5E0,2.8E1));\r
+-#4251=VERTEX_POINT('',#4249);\r
+-#4252=VERTEX_POINT('',#4250);\r
+-#4253=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
+-#4254=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));\r
+-#4255=VERTEX_POINT('',#4253);\r
+-#4256=VERTEX_POINT('',#4254);\r
+-#4257=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));\r
+-#4258=CARTESIAN_POINT('',(4.E0,1.5E0,0.E0));\r
+-#4259=VERTEX_POINT('',#4257);\r
+-#4260=VERTEX_POINT('',#4258);\r
+-#4261=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));\r
+-#4262=CARTESIAN_POINT('',(7.5E0,0.E0,2.5E0));\r
+-#4263=VERTEX_POINT('',#4261);\r
+-#4264=VERTEX_POINT('',#4262);\r
+-#4265=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));\r
+-#4266=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));\r
+-#4267=VERTEX_POINT('',#4265);\r
+-#4268=VERTEX_POINT('',#4266);\r
+-#4269=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));\r
+-#4270=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));\r
+-#4271=VERTEX_POINT('',#4269);\r
+-#4272=VERTEX_POINT('',#4270);\r
+-#4273=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));\r
+-#4274=CARTESIAN_POINT('',(2.5E0,0.E0,2.45E1));\r
+-#4275=VERTEX_POINT('',#4273);\r
+-#4276=VERTEX_POINT('',#4274);\r
+-#4277=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));\r
+-#4278=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));\r
+-#4279=VERTEX_POINT('',#4277);\r
+-#4280=VERTEX_POINT('',#4278);\r
+-#4281=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));\r
+-#4282=CARTESIAN_POINT('',(1.65E1,0.E0,2.95E1));\r
+-#4283=VERTEX_POINT('',#4281);\r
+-#4284=VERTEX_POINT('',#4282);\r
+-#4285=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
+-#4286=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
+-#4287=VERTEX_POINT('',#4285);\r
+-#4288=VERTEX_POINT('',#4286);\r
+-#4289=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));\r
+-#4290=VERTEX_POINT('',#4289);\r
+-#4291=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));\r
+-#4292=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));\r
+-#4293=VERTEX_POINT('',#4291);\r
+-#4294=VERTEX_POINT('',#4292);\r
+-#4295=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));\r
+-#4296=VERTEX_POINT('',#4295);\r
+-#4297=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));\r
+-#4298=VERTEX_POINT('',#4297);\r
+-#4299=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));\r
+-#4300=VERTEX_POINT('',#4299);\r
+-#4301=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));\r
+-#4302=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));\r
+-#4303=VERTEX_POINT('',#4301);\r
+-#4304=VERTEX_POINT('',#4302);\r
+-#4305=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));\r
+-#4306=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));\r
+-#4307=VERTEX_POINT('',#4305);\r
+-#4308=VERTEX_POINT('',#4306);\r
+-#4309=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));\r
+-#4310=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));\r
+-#4311=VERTEX_POINT('',#4309);\r
+-#4312=VERTEX_POINT('',#4310);\r
+-#4313=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));\r
+-#4314=CARTESIAN_POINT('',(-1.E0,1.5E0,1.225E1));\r
+-#4315=VERTEX_POINT('',#4313);\r
+-#4316=VERTEX_POINT('',#4314);\r
+-#4317=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));\r
+-#4318=CARTESIAN_POINT('',(0.E0,0.E0,7.E0));\r
+-#4319=VERTEX_POINT('',#4317);\r
+-#4320=VERTEX_POINT('',#4318);\r
+-#4321=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));\r
+-#4322=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));\r
+-#4323=VERTEX_POINT('',#4321);\r
+-#4324=VERTEX_POINT('',#4322);\r
+-#4325=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));\r
+-#4326=CARTESIAN_POINT('',(3.531373033403E0,0.E0,8.E0));\r
+-#4327=VERTEX_POINT('',#4325);\r
+-#4328=VERTEX_POINT('',#4326);\r
+-#4329=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));\r
+-#4330=CARTESIAN_POINT('',(2.539216291754E0,0.E0,6.875E0));\r
+-#4331=VERTEX_POINT('',#4329);\r
+-#4332=VERTEX_POINT('',#4330);\r
+-#4333=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
+-#4334=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));\r
+-#4335=VERTEX_POINT('',#4333);\r
+-#4336=VERTEX_POINT('',#4334);\r
+-#4337=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));\r
+-#4338=CARTESIAN_POINT('',(4.5E0,1.5E0,1.225E1));\r
+-#4339=VERTEX_POINT('',#4337);\r
+-#4340=VERTEX_POINT('',#4338);\r
+-#4341=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
+-#4342=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));\r
+-#4343=VERTEX_POINT('',#4341);\r
+-#4344=VERTEX_POINT('',#4342);\r
+-#4345=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));\r
+-#4346=CARTESIAN_POINT('',(-2.E0,1.5E0,1.175E1));\r
+-#4347=VERTEX_POINT('',#4345);\r
+-#4348=VERTEX_POINT('',#4346);\r
+-#4349=CARTESIAN_POINT('',(4.095E0,1.1125E1,9.E0));\r
+-#4350=CARTESIAN_POINT('',(3.905E0,1.1125E1,9.E0));\r
+-#4351=VERTEX_POINT('',#4349);\r
+-#4352=VERTEX_POINT('',#4350);\r
+-#4353=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));\r
+-#4354=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));\r
+-#4355=VERTEX_POINT('',#4353);\r
+-#4356=VERTEX_POINT('',#4354);\r
+-#4357=CARTESIAN_POINT('',(3.929917478528E0,1.125E1,9.132582521472E0));\r
+-#4358=CARTESIAN_POINT('',(3.804917478528E0,1.125E1,9.132582521472E0));\r
+-#4359=VERTEX_POINT('',#4357);\r
+-#4360=VERTEX_POINT('',#4358);\r
+-#4361=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));\r
+-#4362=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));\r
+-#4363=VERTEX_POINT('',#4361);\r
+-#4364=VERTEX_POINT('',#4362);\r
+-#4365=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));\r
+-#4366=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));\r
+-#4367=VERTEX_POINT('',#4365);\r
+-#4368=VERTEX_POINT('',#4366);\r
+-#4369=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));\r
+-#4370=VERTEX_POINT('',#4369);\r
+-#4371=CARTESIAN_POINT('',(6.35E0,1.5E0,2.975E1));\r
+-#4372=CARTESIAN_POINT('',(6.55E0,1.5E0,2.975E1));\r
+-#4373=VERTEX_POINT('',#4371);\r
+-#4374=VERTEX_POINT('',#4372);\r
+-#4375=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));\r
+-#4376=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));\r
+-#4377=VERTEX_POINT('',#4375);\r
+-#4378=VERTEX_POINT('',#4376);\r
+-#4379=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));\r
+-#4380=VERTEX_POINT('',#4379);\r
+-#4381=CARTESIAN_POINT('',(7.35E0,1.5E0,2.975E1));\r
+-#4382=CARTESIAN_POINT('',(7.55E0,1.5E0,2.975E1));\r
+-#4383=VERTEX_POINT('',#4381);\r
+-#4384=VERTEX_POINT('',#4382);\r
+-#4385=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
+-#4386=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));\r
+-#4387=VERTEX_POINT('',#4385);\r
+-#4388=VERTEX_POINT('',#4386);\r
+-#4389=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
+-#4390=VERTEX_POINT('',#4389);\r
+-#4391=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));\r
+-#4392=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));\r
+-#4393=VERTEX_POINT('',#4391);\r
+-#4394=VERTEX_POINT('',#4392);\r
+-#4395=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));\r
+-#4396=VERTEX_POINT('',#4395);\r
+-#4397=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));\r
+-#4398=VERTEX_POINT('',#4397);\r
+-#4399=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));\r
+-#4400=VERTEX_POINT('',#4399);\r
+-#4401=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));\r
+-#4402=CARTESIAN_POINT('',(2.4E1,0.E0,1.325E1));\r
+-#4403=VERTEX_POINT('',#4401);\r
+-#4404=VERTEX_POINT('',#4402);\r
+-#4405=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));\r
+-#4406=CARTESIAN_POINT('',(2.5E1,0.E0,1.225E1));\r
+-#4407=VERTEX_POINT('',#4405);\r
+-#4408=VERTEX_POINT('',#4406);\r
+-#4409=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));\r
+-#4410=CARTESIAN_POINT('',(2.15E1,1.5E0,1.325E1));\r
+-#4411=VERTEX_POINT('',#4409);\r
+-#4412=VERTEX_POINT('',#4410);\r
+-#4413=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));\r
+-#4414=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));\r
+-#4415=VERTEX_POINT('',#4413);\r
+-#4416=VERTEX_POINT('',#4414);\r
+-#4417=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));\r
+-#4418=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));\r
+-#4419=VERTEX_POINT('',#4417);\r
+-#4420=VERTEX_POINT('',#4418);\r
+-#4421=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));\r
+-#4422=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));\r
+-#4423=VERTEX_POINT('',#4421);\r
+-#4424=VERTEX_POINT('',#4422);\r
+-#4425=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));\r
+-#4426=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,8.E0));\r
+-#4427=VERTEX_POINT('',#4425);\r
+-#4428=VERTEX_POINT('',#4426);\r
+-#4429=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));\r
+-#4430=CARTESIAN_POINT('',(2.146078370825E1,1.5E0,6.875E0));\r
+-#4431=VERTEX_POINT('',#4429);\r
+-#4432=VERTEX_POINT('',#4430);\r
+-#4433=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
+-#4434=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));\r
+-#4435=VERTEX_POINT('',#4433);\r
+-#4436=VERTEX_POINT('',#4434);\r
+-#4437=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));\r
+-#4438=CARTESIAN_POINT('',(1.95E1,0.E0,1.225E1));\r
+-#4439=VERTEX_POINT('',#4437);\r
+-#4440=VERTEX_POINT('',#4438);\r
+-#4441=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
+-#4442=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));\r
+-#4443=VERTEX_POINT('',#4441);\r
+-#4444=VERTEX_POINT('',#4442);\r
+-#4445=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));\r
+-#4446=CARTESIAN_POINT('',(2.6E1,0.E0,1.175E1));\r
+-#4447=VERTEX_POINT('',#4445);\r
+-#4448=VERTEX_POINT('',#4446);\r
+-#4449=CARTESIAN_POINT('',(1.9905E1,1.1125E1,9.E0));\r
+-#4450=CARTESIAN_POINT('',(2.0095E1,1.1125E1,9.E0));\r
+-#4451=VERTEX_POINT('',#4449);\r
+-#4452=VERTEX_POINT('',#4450);\r
+-#4453=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));\r
+-#4454=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));\r
+-#4455=VERTEX_POINT('',#4453);\r
+-#4456=VERTEX_POINT('',#4454);\r
+-#4457=CARTESIAN_POINT('',(2.007008252147E1,1.125E1,9.132582521472E0));\r
+-#4458=CARTESIAN_POINT('',(2.019508252147E1,1.125E1,9.132582521472E0));\r
+-#4459=VERTEX_POINT('',#4457);\r
+-#4460=VERTEX_POINT('',#4458);\r
+-#4461=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));\r
+-#4462=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));\r
+-#4463=VERTEX_POINT('',#4461);\r
+-#4464=VERTEX_POINT('',#4462);\r
+-#4465=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));\r
+-#4466=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));\r
+-#4467=VERTEX_POINT('',#4465);\r
+-#4468=VERTEX_POINT('',#4466);\r
+-#4469=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));\r
+-#4470=VERTEX_POINT('',#4469);\r
+-#4471=CARTESIAN_POINT('',(1.765E1,1.5E0,2.975E1));\r
+-#4472=CARTESIAN_POINT('',(1.745E1,1.5E0,2.975E1));\r
+-#4473=VERTEX_POINT('',#4471);\r
+-#4474=VERTEX_POINT('',#4472);\r
+-#4475=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));\r
+-#4476=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));\r
+-#4477=VERTEX_POINT('',#4475);\r
+-#4478=VERTEX_POINT('',#4476);\r
+-#4479=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));\r
+-#4480=VERTEX_POINT('',#4479);\r
+-#4481=CARTESIAN_POINT('',(1.665E1,1.5E0,2.975E1));\r
+-#4482=CARTESIAN_POINT('',(1.645E1,1.5E0,2.975E1));\r
+-#4483=VERTEX_POINT('',#4481);\r
+-#4484=VERTEX_POINT('',#4482);\r
+-#4485=CARTESIAN_POINT('',(1.3175E0,0.E0,6.E0));\r
+-#4486=CARTESIAN_POINT('',(9.325E-1,0.E0,6.E0));\r
+-#4487=VERTEX_POINT('',#4485);\r
+-#4488=VERTEX_POINT('',#4486);\r
+-#4489=CARTESIAN_POINT('',(1.3825E0,1.E0,6.E0));\r
+-#4490=CARTESIAN_POINT('',(8.675E-1,1.E0,6.E0));\r
+-#4491=VERTEX_POINT('',#4489);\r
+-#4492=VERTEX_POINT('',#4490);\r
+-#4493=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));\r
+-#4494=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));\r
+-#4495=VERTEX_POINT('',#4493);\r
+-#4496=VERTEX_POINT('',#4494);\r
+-#4497=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));\r
+-#4498=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));\r
+-#4499=VERTEX_POINT('',#4497);\r
+-#4500=VERTEX_POINT('',#4498);\r
+-#4501=CARTESIAN_POINT('',(1.3175E0,0.E0,1.2E1));\r
+-#4502=CARTESIAN_POINT('',(9.325E-1,0.E0,1.2E1));\r
+-#4503=VERTEX_POINT('',#4501);\r
+-#4504=VERTEX_POINT('',#4502);\r
+-#4505=CARTESIAN_POINT('',(1.3175E0,0.E0,1.8E1));\r
+-#4506=CARTESIAN_POINT('',(9.325E-1,0.E0,1.8E1));\r
+-#4507=VERTEX_POINT('',#4505);\r
+-#4508=VERTEX_POINT('',#4506);\r
+-#4509=CARTESIAN_POINT('',(1.3175E0,0.E0,2.4E1));\r
+-#4510=CARTESIAN_POINT('',(9.325E-1,0.E0,2.4E1));\r
+-#4511=VERTEX_POINT('',#4509);\r
+-#4512=VERTEX_POINT('',#4510);\r
+-#4513=CARTESIAN_POINT('',(2.30675E1,0.E0,6.E0));\r
+-#4514=CARTESIAN_POINT('',(2.26825E1,0.E0,6.E0));\r
+-#4515=VERTEX_POINT('',#4513);\r
+-#4516=VERTEX_POINT('',#4514);\r
+-#4517=CARTESIAN_POINT('',(2.30675E1,0.E0,1.2E1));\r
+-#4518=CARTESIAN_POINT('',(2.26825E1,0.E0,1.2E1));\r
+-#4519=VERTEX_POINT('',#4517);\r
+-#4520=VERTEX_POINT('',#4518);\r
+-#4521=CARTESIAN_POINT('',(2.30675E1,0.E0,1.8E1));\r
+-#4522=CARTESIAN_POINT('',(2.26825E1,0.E0,1.8E1));\r
+-#4523=VERTEX_POINT('',#4521);\r
+-#4524=VERTEX_POINT('',#4522);\r
+-#4525=CARTESIAN_POINT('',(2.30675E1,0.E0,2.4E1));\r
+-#4526=CARTESIAN_POINT('',(2.26825E1,0.E0,2.4E1));\r
+-#4527=VERTEX_POINT('',#4525);\r
+-#4528=VERTEX_POINT('',#4526);\r
+-#4529=CARTESIAN_POINT('',(1.3825E0,1.E0,1.2E1));\r
+-#4530=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));\r
+-#4531=VERTEX_POINT('',#4529);\r
+-#4532=VERTEX_POINT('',#4530);\r
+-#4533=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));\r
+-#4534=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));\r
+-#4535=VERTEX_POINT('',#4533);\r
+-#4536=VERTEX_POINT('',#4534);\r
+-#4537=CARTESIAN_POINT('',(1.3825E0,1.E0,1.8E1));\r
+-#4538=CARTESIAN_POINT('',(8.675E-1,1.E0,1.8E1));\r
+-#4539=VERTEX_POINT('',#4537);\r
+-#4540=VERTEX_POINT('',#4538);\r
+-#4541=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));\r
+-#4542=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));\r
+-#4543=VERTEX_POINT('',#4541);\r
+-#4544=VERTEX_POINT('',#4542);\r
+-#4545=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));\r
+-#4546=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));\r
+-#4547=VERTEX_POINT('',#4545);\r
+-#4548=VERTEX_POINT('',#4546);\r
+-#4549=CARTESIAN_POINT('',(1.3825E0,1.E0,2.4E1));\r
+-#4550=CARTESIAN_POINT('',(8.675E-1,1.E0,2.4E1));\r
+-#4551=VERTEX_POINT('',#4549);\r
+-#4552=VERTEX_POINT('',#4550);\r
+-#4553=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));\r
+-#4554=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));\r
+-#4555=VERTEX_POINT('',#4553);\r
+-#4556=VERTEX_POINT('',#4554);\r
+-#4557=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));\r
+-#4558=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));\r
+-#4559=VERTEX_POINT('',#4557);\r
+-#4560=VERTEX_POINT('',#4558);\r
+-#4561=CARTESIAN_POINT('',(2.31325E1,1.E0,6.E0));\r
+-#4562=CARTESIAN_POINT('',(2.26175E1,1.E0,6.E0));\r
+-#4563=VERTEX_POINT('',#4561);\r
+-#4564=VERTEX_POINT('',#4562);\r
+-#4565=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));\r
+-#4566=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));\r
+-#4567=VERTEX_POINT('',#4565);\r
+-#4568=VERTEX_POINT('',#4566);\r
+-#4569=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));\r
+-#4570=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));\r
+-#4571=VERTEX_POINT('',#4569);\r
+-#4572=VERTEX_POINT('',#4570);\r
+-#4573=CARTESIAN_POINT('',(2.31325E1,1.E0,1.2E1));\r
+-#4574=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));\r
+-#4575=VERTEX_POINT('',#4573);\r
+-#4576=VERTEX_POINT('',#4574);\r
+-#4577=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));\r
+-#4578=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));\r
+-#4579=VERTEX_POINT('',#4577);\r
+-#4580=VERTEX_POINT('',#4578);\r
+-#4581=CARTESIAN_POINT('',(2.31325E1,1.E0,1.8E1));\r
+-#4582=CARTESIAN_POINT('',(2.26175E1,1.E0,1.8E1));\r
+-#4583=VERTEX_POINT('',#4581);\r
+-#4584=VERTEX_POINT('',#4582);\r
+-#4585=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));\r
+-#4586=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));\r
+-#4587=VERTEX_POINT('',#4585);\r
+-#4588=VERTEX_POINT('',#4586);\r
+-#4589=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));\r
+-#4590=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));\r
+-#4591=VERTEX_POINT('',#4589);\r
+-#4592=VERTEX_POINT('',#4590);\r
+-#4593=CARTESIAN_POINT('',(2.31325E1,1.E0,2.4E1));\r
+-#4594=CARTESIAN_POINT('',(2.26175E1,1.E0,2.4E1));\r
+-#4595=VERTEX_POINT('',#4593);\r
+-#4596=VERTEX_POINT('',#4594);\r
+-#4597=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));\r
+-#4598=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));\r
+-#4599=VERTEX_POINT('',#4597);\r
+-#4600=VERTEX_POINT('',#4598);\r
+-#4601=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));\r
+-#4602=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));\r
+-#4603=VERTEX_POINT('',#4601);\r
+-#4604=VERTEX_POINT('',#4602);\r
+-#4605=CARTESIAN_POINT('',(6.1925E0,0.E0,1.25E0));\r
+-#4606=CARTESIAN_POINT('',(5.8075E0,0.E0,1.25E0));\r
+-#4607=VERTEX_POINT('',#4605);\r
+-#4608=VERTEX_POINT('',#4606);\r
+-#4609=CARTESIAN_POINT('',(6.256E0,1.E0,1.25E0));\r
+-#4610=CARTESIAN_POINT('',(5.744E0,1.E0,1.25E0));\r
+-#4611=VERTEX_POINT('',#4609);\r
+-#4612=VERTEX_POINT('',#4610);\r
+-#4613=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));\r
+-#4614=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));\r
+-#4615=VERTEX_POINT('',#4613);\r
+-#4616=VERTEX_POINT('',#4614);\r
+-#4617=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));\r
+-#4618=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));\r
+-#4619=VERTEX_POINT('',#4617);\r
+-#4620=VERTEX_POINT('',#4618);\r
+-#4621=CARTESIAN_POINT('',(1.21925E1,0.E0,1.25E0));\r
+-#4622=CARTESIAN_POINT('',(1.18075E1,0.E0,1.25E0));\r
+-#4623=VERTEX_POINT('',#4621);\r
+-#4624=VERTEX_POINT('',#4622);\r
+-#4625=CARTESIAN_POINT('',(6.1925E0,0.E0,3.075E1));\r
+-#4626=CARTESIAN_POINT('',(5.8075E0,0.E0,3.075E1));\r
+-#4627=VERTEX_POINT('',#4625);\r
+-#4628=VERTEX_POINT('',#4626);\r
+-#4629=CARTESIAN_POINT('',(1.21925E1,0.E0,3.075E1));\r
+-#4630=CARTESIAN_POINT('',(1.18075E1,0.E0,3.075E1));\r
+-#4631=VERTEX_POINT('',#4629);\r
+-#4632=VERTEX_POINT('',#4630);\r
+-#4633=CARTESIAN_POINT('',(1.81925E1,0.E0,1.25E0));\r
+-#4634=CARTESIAN_POINT('',(1.78075E1,0.E0,1.25E0));\r
+-#4635=VERTEX_POINT('',#4633);\r
+-#4636=VERTEX_POINT('',#4634);\r
+-#4637=CARTESIAN_POINT('',(1.81925E1,0.E0,3.075E1));\r
+-#4638=CARTESIAN_POINT('',(1.78075E1,0.E0,3.075E1));\r
+-#4639=VERTEX_POINT('',#4637);\r
+-#4640=VERTEX_POINT('',#4638);\r
+-#4641=CARTESIAN_POINT('',(1.2256E1,1.E0,1.25E0));\r
+-#4642=CARTESIAN_POINT('',(1.1744E1,1.E0,1.25E0));\r
+-#4643=VERTEX_POINT('',#4641);\r
+-#4644=VERTEX_POINT('',#4642);\r
+-#4645=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));\r
+-#4646=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));\r
+-#4647=VERTEX_POINT('',#4645);\r
+-#4648=VERTEX_POINT('',#4646);\r
+-#4649=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));\r
+-#4650=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));\r
+-#4651=VERTEX_POINT('',#4649);\r
+-#4652=VERTEX_POINT('',#4650);\r
+-#4653=CARTESIAN_POINT('',(1.8256E1,1.E0,1.25E0));\r
+-#4654=CARTESIAN_POINT('',(1.7744E1,1.E0,1.25E0));\r
+-#4655=VERTEX_POINT('',#4653);\r
+-#4656=VERTEX_POINT('',#4654);\r
+-#4657=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));\r
+-#4658=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));\r
+-#4659=VERTEX_POINT('',#4657);\r
+-#4660=VERTEX_POINT('',#4658);\r
+-#4661=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));\r
+-#4662=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));\r
+-#4663=VERTEX_POINT('',#4661);\r
+-#4664=VERTEX_POINT('',#4662);\r
+-#4665=CARTESIAN_POINT('',(6.256E0,1.E0,3.075E1));\r
+-#4666=CARTESIAN_POINT('',(5.744E0,1.E0,3.075E1));\r
+-#4667=VERTEX_POINT('',#4665);\r
+-#4668=VERTEX_POINT('',#4666);\r
+-#4669=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));\r
+-#4670=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));\r
+-#4671=VERTEX_POINT('',#4669);\r
+-#4672=VERTEX_POINT('',#4670);\r
+-#4673=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));\r
+-#4674=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));\r
+-#4675=VERTEX_POINT('',#4673);\r
+-#4676=VERTEX_POINT('',#4674);\r
+-#4677=CARTESIAN_POINT('',(1.2256E1,1.E0,3.075E1));\r
+-#4678=CARTESIAN_POINT('',(1.1744E1,1.E0,3.075E1));\r
+-#4679=VERTEX_POINT('',#4677);\r
+-#4680=VERTEX_POINT('',#4678);\r
+-#4681=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));\r
+-#4682=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));\r
+-#4683=VERTEX_POINT('',#4681);\r
+-#4684=VERTEX_POINT('',#4682);\r
+-#4685=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));\r
+-#4686=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));\r
+-#4687=VERTEX_POINT('',#4685);\r
+-#4688=VERTEX_POINT('',#4686);\r
+-#4689=CARTESIAN_POINT('',(1.8256E1,1.E0,3.075E1));\r
+-#4690=CARTESIAN_POINT('',(1.7744E1,1.E0,3.075E1));\r
+-#4691=VERTEX_POINT('',#4689);\r
+-#4692=VERTEX_POINT('',#4690);\r
+-#4693=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));\r
+-#4694=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));\r
+-#4695=VERTEX_POINT('',#4693);\r
+-#4696=VERTEX_POINT('',#4694);\r
+-#4697=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));\r
+-#4698=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));\r
+-#4699=VERTEX_POINT('',#4697);\r
+-#4700=VERTEX_POINT('',#4698);\r
+-#4701=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));\r
+-#4702=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));\r
+-#4703=VERTEX_POINT('',#4701);\r
+-#4704=VERTEX_POINT('',#4702);\r
+-#4705=CARTESIAN_POINT('',(4.4125E0,1.05E1,1.E1));\r
+-#4706=CARTESIAN_POINT('',(4.0875E0,1.05E1,1.E1));\r
+-#4707=VERTEX_POINT('',#4705);\r
+-#4708=VERTEX_POINT('',#4706);\r
+-#4709=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.25E0));\r
+-#4710=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.25E0));\r
+-#4711=VERTEX_POINT('',#4709);\r
+-#4712=VERTEX_POINT('',#4710);\r
+-#4713=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));\r
+-#4714=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));\r
+-#4715=VERTEX_POINT('',#4713);\r
+-#4716=VERTEX_POINT('',#4714);\r
+-#4717=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.25E0));\r
+-#4718=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.25E0));\r
+-#4719=VERTEX_POINT('',#4717);\r
+-#4720=VERTEX_POINT('',#4718);\r
+-#4721=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));\r
+-#4722=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));\r
+-#4723=VERTEX_POINT('',#4721);\r
+-#4724=VERTEX_POINT('',#4722);\r
+-#4725=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.25E0));\r
+-#4726=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.25E0));\r
+-#4727=VERTEX_POINT('',#4725);\r
+-#4728=VERTEX_POINT('',#4726);\r
+-#4729=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));\r
+-#4730=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));\r
+-#4731=VERTEX_POINT('',#4729);\r
+-#4732=VERTEX_POINT('',#4730);\r
+-#4733=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));\r
+-#4734=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));\r
+-#4735=VERTEX_POINT('',#4733);\r
+-#4736=VERTEX_POINT('',#4734);\r
+-#4737=CARTESIAN_POINT('',(1.95875E1,1.05E1,1.E1));\r
+-#4738=CARTESIAN_POINT('',(1.99125E1,1.05E1,1.E1));\r
+-#4739=VERTEX_POINT('',#4737);\r
+-#4740=VERTEX_POINT('',#4738);\r
+-#4741=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.25E0));\r
+-#4742=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.25E0));\r
+-#4743=VERTEX_POINT('',#4741);\r
+-#4744=VERTEX_POINT('',#4742);\r
+-#4745=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));\r
+-#4746=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));\r
+-#4747=VERTEX_POINT('',#4745);\r
+-#4748=VERTEX_POINT('',#4746);\r
+-#4749=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.25E0));\r
+-#4750=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.25E0));\r
+-#4751=VERTEX_POINT('',#4749);\r
+-#4752=VERTEX_POINT('',#4750);\r
+-#4753=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));\r
+-#4754=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));\r
+-#4755=VERTEX_POINT('',#4753);\r
+-#4756=VERTEX_POINT('',#4754);\r
+-#4757=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.25E0));\r
+-#4758=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.25E0));\r
+-#4759=VERTEX_POINT('',#4757);\r
+-#4760=VERTEX_POINT('',#4758);\r
+-#4761=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));\r
+-#4762=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));\r
+-#4763=VERTEX_POINT('',#4761);\r
+-#4764=VERTEX_POINT('',#4762);\r
+-#4765=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
+-#4766=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
+-#4767=VERTEX_POINT('',#4765);\r
+-#4768=VERTEX_POINT('',#4766);\r
+-#4769=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));\r
+-#4770=CARTESIAN_POINT('',(5.E0,0.E0,1.1E1));\r
+-#4771=VERTEX_POINT('',#4769);\r
+-#4772=VERTEX_POINT('',#4770);\r
+-#4773=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));\r
+-#4774=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));\r
+-#4775=VERTEX_POINT('',#4773);\r
+-#4776=VERTEX_POINT('',#4774);\r
+-#4777=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));\r
+-#4778=CARTESIAN_POINT('',(1.9E1,1.5E0,1.1E1));\r
+-#4779=VERTEX_POINT('',#4777);\r
+-#4780=VERTEX_POINT('',#4778);\r
+-#4781=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));\r
+-#4782=CARTESIAN_POINT('',(1.8E1,1.5E0,1.E1));\r
+-#4783=VERTEX_POINT('',#4781);\r
+-#4784=VERTEX_POINT('',#4782);\r
+-#4785=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));\r
+-#4786=VERTEX_POINT('',#4785);\r
+-#4787=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));\r
+-#4788=VERTEX_POINT('',#4787);\r
+-#4789=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));\r
+-#4790=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));\r
+-#4791=VERTEX_POINT('',#4789);\r
+-#4792=VERTEX_POINT('',#4790);\r
+-#4793=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));\r
+-#4794=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));\r
+-#4795=VERTEX_POINT('',#4793);\r
+-#4796=VERTEX_POINT('',#4794);\r
+-#4797=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));\r
+-#4798=CARTESIAN_POINT('',(2.15E1,1.5E0,2.19375E1));\r
+-#4799=VERTEX_POINT('',#4797);\r
+-#4800=VERTEX_POINT('',#4798);\r
+-#4801=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));\r
+-#4802=CARTESIAN_POINT('',(1.85E1,1.5E0,1.89375E1));\r
+-#4803=VERTEX_POINT('',#4801);\r
+-#4804=VERTEX_POINT('',#4802);\r
+-#4805=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));\r
+-#4806=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));\r
+-#4807=VERTEX_POINT('',#4805);\r
+-#4808=VERTEX_POINT('',#4806);\r
+-#4809=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));\r
+-#4810=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));\r
+-#4811=VERTEX_POINT('',#4809);\r
+-#4812=VERTEX_POINT('',#4810);\r
+-#4813=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));\r
+-#4814=CARTESIAN_POINT('',(2.5E0,1.5E0,1.40625E1));\r
+-#4815=VERTEX_POINT('',#4813);\r
+-#4816=VERTEX_POINT('',#4814);\r
+-#4817=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));\r
+-#4818=CARTESIAN_POINT('',(5.5E0,1.5E0,1.70625E1));\r
+-#4819=VERTEX_POINT('',#4817);\r
+-#4820=VERTEX_POINT('',#4818);\r
+-#4821=CARTESIAN_POINT('',(6.1925E0,0.E0,9.E0));\r
+-#4822=CARTESIAN_POINT('',(5.8075E0,0.E0,9.E0));\r
+-#4823=VERTEX_POINT('',#4821);\r
+-#4824=VERTEX_POINT('',#4822);\r
+-#4825=CARTESIAN_POINT('',(6.2575E0,1.E0,9.E0));\r
+-#4826=CARTESIAN_POINT('',(5.7425E0,1.E0,9.E0));\r
+-#4827=VERTEX_POINT('',#4825);\r
+-#4828=VERTEX_POINT('',#4826);\r
+-#4829=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));\r
+-#4830=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));\r
+-#4831=VERTEX_POINT('',#4829);\r
+-#4832=VERTEX_POINT('',#4830);\r
+-#4833=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));\r
+-#4834=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));\r
+-#4835=VERTEX_POINT('',#4833);\r
+-#4836=VERTEX_POINT('',#4834);\r
+-#4837=CARTESIAN_POINT('',(1.21925E1,0.E0,9.E0));\r
+-#4838=CARTESIAN_POINT('',(1.18075E1,0.E0,9.E0));\r
+-#4839=VERTEX_POINT('',#4837);\r
+-#4840=VERTEX_POINT('',#4838);\r
+-#4841=CARTESIAN_POINT('',(1.81925E1,0.E0,9.E0));\r
+-#4842=CARTESIAN_POINT('',(1.78075E1,0.E0,9.E0));\r
+-#4843=VERTEX_POINT('',#4841);\r
+-#4844=VERTEX_POINT('',#4842);\r
+-#4845=CARTESIAN_POINT('',(6.1925E0,0.E0,1.8E1));\r
+-#4846=CARTESIAN_POINT('',(5.8075E0,0.E0,1.8E1));\r
+-#4847=VERTEX_POINT('',#4845);\r
+-#4848=VERTEX_POINT('',#4846);\r
+-#4849=CARTESIAN_POINT('',(1.21925E1,0.E0,1.8E1));\r
+-#4850=CARTESIAN_POINT('',(1.18075E1,0.E0,1.8E1));\r
+-#4851=VERTEX_POINT('',#4849);\r
+-#4852=VERTEX_POINT('',#4850);\r
+-#4853=CARTESIAN_POINT('',(1.81925E1,0.E0,1.8E1));\r
+-#4854=CARTESIAN_POINT('',(1.78075E1,0.E0,1.8E1));\r
+-#4855=VERTEX_POINT('',#4853);\r
+-#4856=VERTEX_POINT('',#4854);\r
+-#4857=CARTESIAN_POINT('',(1.22575E1,1.E0,9.E0));\r
+-#4858=CARTESIAN_POINT('',(1.17425E1,1.E0,9.E0));\r
+-#4859=VERTEX_POINT('',#4857);\r
+-#4860=VERTEX_POINT('',#4858);\r
+-#4861=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));\r
+-#4862=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));\r
+-#4863=VERTEX_POINT('',#4861);\r
+-#4864=VERTEX_POINT('',#4862);\r
+-#4865=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));\r
+-#4866=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));\r
+-#4867=VERTEX_POINT('',#4865);\r
+-#4868=VERTEX_POINT('',#4866);\r
+-#4869=CARTESIAN_POINT('',(1.82575E1,1.E0,9.E0));\r
+-#4870=CARTESIAN_POINT('',(1.77425E1,1.E0,9.E0));\r
+-#4871=VERTEX_POINT('',#4869);\r
+-#4872=VERTEX_POINT('',#4870);\r
+-#4873=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));\r
+-#4874=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));\r
+-#4875=VERTEX_POINT('',#4873);\r
+-#4876=VERTEX_POINT('',#4874);\r
+-#4877=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));\r
+-#4878=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));\r
+-#4879=VERTEX_POINT('',#4877);\r
+-#4880=VERTEX_POINT('',#4878);\r
+-#4881=CARTESIAN_POINT('',(6.2575E0,1.E0,1.8E1));\r
+-#4882=CARTESIAN_POINT('',(5.7425E0,1.E0,1.8E1));\r
+-#4883=VERTEX_POINT('',#4881);\r
+-#4884=VERTEX_POINT('',#4882);\r
+-#4885=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));\r
+-#4886=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));\r
+-#4887=VERTEX_POINT('',#4885);\r
+-#4888=VERTEX_POINT('',#4886);\r
+-#4889=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));\r
+-#4890=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));\r
+-#4891=VERTEX_POINT('',#4889);\r
+-#4892=VERTEX_POINT('',#4890);\r
+-#4893=CARTESIAN_POINT('',(1.22575E1,1.E0,1.8E1));\r
+-#4894=CARTESIAN_POINT('',(1.17425E1,1.E0,1.8E1));\r
+-#4895=VERTEX_POINT('',#4893);\r
+-#4896=VERTEX_POINT('',#4894);\r
+-#4897=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));\r
+-#4898=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));\r
+-#4899=VERTEX_POINT('',#4897);\r
+-#4900=VERTEX_POINT('',#4898);\r
+-#4901=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));\r
+-#4902=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));\r
+-#4903=VERTEX_POINT('',#4901);\r
+-#4904=VERTEX_POINT('',#4902);\r
+-#4905=CARTESIAN_POINT('',(1.82575E1,1.E0,1.8E1));\r
+-#4906=CARTESIAN_POINT('',(1.77425E1,1.E0,1.8E1));\r
+-#4907=VERTEX_POINT('',#4905);\r
+-#4908=VERTEX_POINT('',#4906);\r
+-#4909=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));\r
+-#4910=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));\r
+-#4911=VERTEX_POINT('',#4909);\r
+-#4912=VERTEX_POINT('',#4910);\r
+-#4913=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));\r
+-#4914=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));\r
+-#4915=VERTEX_POINT('',#4913);\r
+-#4916=VERTEX_POINT('',#4914);\r
+-#4917=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));\r
+-#4918=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));\r
+-#4919=VERTEX_POINT('',#4917);\r
+-#4920=VERTEX_POINT('',#4918);\r
+-#4921=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));\r
+-#4922=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));\r
+-#4923=VERTEX_POINT('',#4921);\r
+-#4924=VERTEX_POINT('',#4922);\r
+-#4925=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
+-#4926=VERTEX_POINT('',#4925);\r
+-#4927=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));\r
+-#4928=VERTEX_POINT('',#4927);\r
+-#4929=VERTEX_POINT('',#1837);\r
+-#4930=VERTEX_POINT('',#1845);\r
+-#4931=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));\r
+-#4932=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));\r
+-#4933=VERTEX_POINT('',#4931);\r
+-#4934=VERTEX_POINT('',#4932);\r
+-#4935=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));\r
+-#4936=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));\r
+-#4937=VERTEX_POINT('',#4935);\r
+-#4938=VERTEX_POINT('',#4936);\r
+-#4939=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
+-#4940=VERTEX_POINT('',#4939);\r
+-#4941=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));\r
+-#4942=VERTEX_POINT('',#4941);\r
+-#4943=VERTEX_POINT('',#2873);\r
+-#4944=VERTEX_POINT('',#2881);\r
+-#4945=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));\r
+-#4946=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));\r
+-#4947=VERTEX_POINT('',#4945);\r
+-#4948=VERTEX_POINT('',#4946);\r
+-#4949=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));\r
+-#4950=CARTESIAN_POINT('',(4.5E0,2.75E0,8.5E0));\r
+-#4951=VERTEX_POINT('',#4949);\r
+-#4952=VERTEX_POINT('',#4950);\r
+-#4953=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));\r
+-#4954=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));\r
+-#4955=VERTEX_POINT('',#4953);\r
+-#4956=VERTEX_POINT('',#4954);\r
+-#4957=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));\r
+-#4958=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.5E0));\r
+-#4959=VERTEX_POINT('',#4957);\r
+-#4960=VERTEX_POINT('',#4958);\r
+-#4961=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));\r
+-#4962=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));\r
+-#4963=VERTEX_POINT('',#4961);\r
+-#4964=VERTEX_POINT('',#4962);\r
+-#4965=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));\r
+-#4966=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.5E0));\r
+-#4967=VERTEX_POINT('',#4965);\r
+-#4968=VERTEX_POINT('',#4966);\r
+-#4969=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));\r
+-#4970=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));\r
+-#4971=VERTEX_POINT('',#4969);\r
+-#4972=VERTEX_POINT('',#4970);\r
+-#4973=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));\r
+-#4974=CARTESIAN_POINT('',(3.75E0,9.5E0,8.5E0));\r
+-#4975=VERTEX_POINT('',#4973);\r
+-#4976=VERTEX_POINT('',#4974);\r
+-#4977=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));\r
+-#4978=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));\r
+-#4979=VERTEX_POINT('',#4977);\r
+-#4980=VERTEX_POINT('',#4978);\r
+-#4981=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));\r
+-#4982=CARTESIAN_POINT('',(2.5E0,2.35E0,9.5E0));\r
+-#4983=VERTEX_POINT('',#4981);\r
+-#4984=VERTEX_POINT('',#4982);\r
+-#4985=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));\r
+-#4986=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));\r
+-#4987=VERTEX_POINT('',#4985);\r
+-#4988=VERTEX_POINT('',#4986);\r
+-#4989=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));\r
+-#4990=CARTESIAN_POINT('',(4.15E0,2.E0,9.5E0));\r
+-#4991=VERTEX_POINT('',#4989);\r
+-#4992=VERTEX_POINT('',#4990);\r
+-#4993=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));\r
+-#4994=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));\r
+-#4995=VERTEX_POINT('',#4993);\r
+-#4996=VERTEX_POINT('',#4994);\r
+-#4997=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));\r
+-#4998=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,9.5E0));\r
+-#4999=VERTEX_POINT('',#4997);\r
+-#5000=VERTEX_POINT('',#4998);\r
+-#5001=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));\r
+-#5002=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));\r
+-#5003=VERTEX_POINT('',#5001);\r
+-#5004=VERTEX_POINT('',#5002);\r
+-#5005=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));\r
+-#5006=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,9.5E0));\r
+-#5007=VERTEX_POINT('',#5005);\r
+-#5008=VERTEX_POINT('',#5006);\r
+-#5009=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));\r
+-#5010=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));\r
+-#5011=VERTEX_POINT('',#5009);\r
+-#5012=VERTEX_POINT('',#5010);\r
+-#5013=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));\r
+-#5014=CARTESIAN_POINT('',(4.5E0,9.15E0,9.5E0));\r
+-#5015=VERTEX_POINT('',#5013);\r
+-#5016=VERTEX_POINT('',#5014);\r
+-#5017=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));\r
+-#5018=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));\r
+-#5019=VERTEX_POINT('',#5017);\r
+-#5020=VERTEX_POINT('',#5018);\r
+-#5021=CARTESIAN_POINT('',(2.15E0,7.E0,1.E1));\r
+-#5022=VERTEX_POINT('',#5021);\r
+-#5023=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));\r
+-#5024=VERTEX_POINT('',#5023);\r
+-#5025=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));\r
+-#5026=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));\r
+-#5027=VERTEX_POINT('',#5025);\r
+-#5028=VERTEX_POINT('',#5026);\r
+-#5029=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));\r
+-#5030=VERTEX_POINT('',#5029);\r
+-#5031=CARTESIAN_POINT('',(1.95E1,2.75E0,8.E0));\r
+-#5032=VERTEX_POINT('',#5031);\r
+-#5033=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));\r
+-#5034=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));\r
+-#5035=VERTEX_POINT('',#5033);\r
+-#5036=VERTEX_POINT('',#5034);\r
+-#5037=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));\r
+-#5038=VERTEX_POINT('',#5037);\r
+-#5039=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.E0));\r
+-#5040=VERTEX_POINT('',#5039);\r
+-#5041=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));\r
+-#5042=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));\r
+-#5043=VERTEX_POINT('',#5041);\r
+-#5044=VERTEX_POINT('',#5042);\r
+-#5045=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));\r
+-#5046=VERTEX_POINT('',#5045);\r
+-#5047=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.E0));\r
+-#5048=VERTEX_POINT('',#5047);\r
+-#5049=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));\r
+-#5050=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));\r
+-#5051=VERTEX_POINT('',#5049);\r
+-#5052=VERTEX_POINT('',#5050);\r
+-#5053=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));\r
+-#5054=VERTEX_POINT('',#5053);\r
+-#5055=CARTESIAN_POINT('',(2.025E1,9.5E0,8.E0));\r
+-#5056=VERTEX_POINT('',#5055);\r
+-#5057=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));\r
+-#5058=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));\r
+-#5059=VERTEX_POINT('',#5057);\r
+-#5060=VERTEX_POINT('',#5058);\r
+-#5061=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));\r
+-#5062=VERTEX_POINT('',#5061);\r
+-#5063=CARTESIAN_POINT('',(2.15E1,2.35E0,1.E1));\r
+-#5064=VERTEX_POINT('',#5063);\r
+-#5065=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));\r
+-#5066=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));\r
+-#5067=VERTEX_POINT('',#5065);\r
+-#5068=VERTEX_POINT('',#5066);\r
+-#5069=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));\r
+-#5070=VERTEX_POINT('',#5069);\r
+-#5071=CARTESIAN_POINT('',(1.985E1,2.E0,1.E1));\r
+-#5072=VERTEX_POINT('',#5071);\r
+-#5073=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));\r
+-#5074=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));\r
+-#5075=VERTEX_POINT('',#5073);\r
+-#5076=VERTEX_POINT('',#5074);\r
+-#5077=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));\r
+-#5078=VERTEX_POINT('',#5077);\r
+-#5079=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,1.E1));\r
+-#5080=VERTEX_POINT('',#5079);\r
+-#5081=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));\r
+-#5082=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));\r
+-#5083=VERTEX_POINT('',#5081);\r
+-#5084=VERTEX_POINT('',#5082);\r
+-#5085=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));\r
+-#5086=VERTEX_POINT('',#5085);\r
+-#5087=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,1.E1));\r
+-#5088=VERTEX_POINT('',#5087);\r
+-#5089=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));\r
+-#5090=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));\r
+-#5091=VERTEX_POINT('',#5089);\r
+-#5092=VERTEX_POINT('',#5090);\r
+-#5093=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));\r
+-#5094=VERTEX_POINT('',#5093);\r
+-#5095=CARTESIAN_POINT('',(1.95E1,9.15E0,1.E1));\r
+-#5096=VERTEX_POINT('',#5095);\r
+-#5097=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));\r
+-#5098=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));\r
+-#5099=VERTEX_POINT('',#5097);\r
+-#5100=VERTEX_POINT('',#5098);\r
+-#5101=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));\r
+-#5102=CARTESIAN_POINT('',(2.185E1,7.E0,9.5E0));\r
+-#5103=VERTEX_POINT('',#5101);\r
+-#5104=VERTEX_POINT('',#5102);\r
+-#5105=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));\r
+-#5106=CARTESIAN_POINT('',(1.05E1,6.875E-1,6.875E-1));\r
+-#5107=VERTEX_POINT('',#5105);\r
+-#5108=VERTEX_POINT('',#5106);\r
+-#5109=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));\r
+-#5110=VERTEX_POINT('',#5109);\r
+-#5111=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8125E0));\r
+-#5112=VERTEX_POINT('',#5111);\r
+-#5113=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,1.032293285145E0));\r
+-#5114=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.419779663480E0));\r
+-#5115=VERTEX_POINT('',#5113);\r
+-#5116=VERTEX_POINT('',#5114);\r
+-#5117=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,4.918683812405E0));\r
+-#5118=VERTEX_POINT('',#5117);\r
+-#5119=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
+-#5120=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));\r
+-#5121=VERTEX_POINT('',#5119);\r
+-#5122=VERTEX_POINT('',#5120);\r
+-#5123=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
+-#5124=VERTEX_POINT('',#5123);\r
+-#5125=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));\r
+-#5126=VERTEX_POINT('',#5125);\r
+-#5127=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));\r
+-#5128=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));\r
+-#5129=VERTEX_POINT('',#5127);\r
+-#5130=VERTEX_POINT('',#5128);\r
+-#5131=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));\r
+-#5132=VERTEX_POINT('',#5131);\r
+-#5133=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));\r
+-#5134=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));\r
+-#5135=VERTEX_POINT('',#5133);\r
+-#5136=VERTEX_POINT('',#5134);\r
+-#5137=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));\r
+-#5138=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,4.912826677187E0));\r
+-#5139=VERTEX_POINT('',#5137);\r
+-#5140=VERTEX_POINT('',#5138);\r
+-#5141=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.5E0));\r
+-#5142=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));\r
+-#5143=VERTEX_POINT('',#5141);\r
+-#5144=VERTEX_POINT('',#5142);\r
+-#5145=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));\r
+-#5146=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
+-#5147=VERTEX_POINT('',#5145);\r
+-#5148=VERTEX_POINT('',#5146);\r
+-#5149=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));\r
+-#5150=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));\r
+-#5151=VERTEX_POINT('',#5149);\r
+-#5152=VERTEX_POINT('',#5150);\r
+-#5153=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));\r
+-#5154=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.125E1));\r
+-#5155=VERTEX_POINT('',#5153);\r
+-#5156=VERTEX_POINT('',#5154);\r
+-#5157=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));\r
+-#5158=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));\r
+-#5159=VERTEX_POINT('',#5157);\r
+-#5160=VERTEX_POINT('',#5158);\r
+-#5161=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));\r
+-#5162=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,9.565E0));\r
+-#5163=VERTEX_POINT('',#5161);\r
+-#5164=VERTEX_POINT('',#5162);\r
+-#5165=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));\r
+-#5166=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));\r
+-#5167=VERTEX_POINT('',#5165);\r
+-#5168=VERTEX_POINT('',#5166);\r
+-#5169=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));\r
+-#5170=CARTESIAN_POINT('',(3.4375E0,6.875E-1,8.69E0));\r
+-#5171=VERTEX_POINT('',#5169);\r
+-#5172=VERTEX_POINT('',#5170);\r
+-#5173=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));\r
+-#5174=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));\r
+-#5175=VERTEX_POINT('',#5173);\r
+-#5176=VERTEX_POINT('',#5174);\r
+-#5177=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));\r
+-#5178=CARTESIAN_POINT('',(4.3125E0,6.875E-1,1.0375E1));\r
+-#5179=VERTEX_POINT('',#5177);\r
+-#5180=VERTEX_POINT('',#5178);\r
+-#5181=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));\r
+-#5182=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));\r
+-#5183=VERTEX_POINT('',#5181);\r
+-#5184=VERTEX_POINT('',#5182);\r
+-#5185=CARTESIAN_POINT('',(-1.85E-1,0.E0,8.69E0));\r
+-#5186=VERTEX_POINT('',#5185);\r
+-#5187=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));\r
+-#5188=VERTEX_POINT('',#5187);\r
+-#5189=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));\r
+-#5190=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));\r
+-#5191=VERTEX_POINT('',#5189);\r
+-#5192=VERTEX_POINT('',#5190);\r
+-#5193=CARTESIAN_POINT('',(1.8125E0,0.E0,7.815E0));\r
+-#5194=VERTEX_POINT('',#5193);\r
+-#5195=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));\r
+-#5196=VERTEX_POINT('',#5195);\r
+-#5197=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));\r
+-#5198=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.35E1));\r
+-#5199=VERTEX_POINT('',#5197);\r
+-#5200=VERTEX_POINT('',#5198);\r
+-#5201=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));\r
+-#5202=VERTEX_POINT('',#5201);\r
+-#5203=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.65E1));\r
+-#5204=VERTEX_POINT('',#5203);\r
+-#5205=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
+-#5206=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));\r
+-#5207=VERTEX_POINT('',#5205);\r
+-#5208=VERTEX_POINT('',#5206);\r
+-#5209=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
+-#5210=VERTEX_POINT('',#5209);\r
+-#5211=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));\r
+-#5212=VERTEX_POINT('',#5211);\r
+-#5213=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));\r
+-#5214=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.95E1));\r
+-#5215=VERTEX_POINT('',#5213);\r
+-#5216=VERTEX_POINT('',#5214);\r
+-#5217=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));\r
+-#5218=VERTEX_POINT('',#5217);\r
+-#5219=CARTESIAN_POINT('',(1.8125E0,6.875E-1,2.25E1));\r
+-#5220=VERTEX_POINT('',#5219);\r
+-#5221=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
+-#5222=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));\r
+-#5223=VERTEX_POINT('',#5221);\r
+-#5224=VERTEX_POINT('',#5222);\r
+-#5225=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
+-#5226=VERTEX_POINT('',#5225);\r
+-#5227=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));\r
+-#5228=VERTEX_POINT('',#5227);\r
+-#5229=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));\r
+-#5230=CARTESIAN_POINT('',(1.05E1,6.875E-1,8.5E0));\r
+-#5231=VERTEX_POINT('',#5229);\r
+-#5232=VERTEX_POINT('',#5230);\r
+-#5233=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));\r
+-#5234=VERTEX_POINT('',#5233);\r
+-#5235=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.5E0));\r
+-#5236=VERTEX_POINT('',#5235);\r
+-#5237=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
+-#5238=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));\r
+-#5239=VERTEX_POINT('',#5237);\r
+-#5240=VERTEX_POINT('',#5238);\r
+-#5241=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
+-#5242=VERTEX_POINT('',#5241);\r
+-#5243=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));\r
+-#5244=VERTEX_POINT('',#5243);\r
+-#5245=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));\r
+-#5246=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.75625E1));\r
+-#5247=VERTEX_POINT('',#5245);\r
+-#5248=VERTEX_POINT('',#5246);\r
+-#5249=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));\r
+-#5250=VERTEX_POINT('',#5249);\r
+-#5251=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.84375E1));\r
+-#5252=VERTEX_POINT('',#5251);\r
+-#5253=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
+-#5254=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));\r
+-#5255=VERTEX_POINT('',#5253);\r
+-#5256=VERTEX_POINT('',#5254);\r
+-#5257=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
+-#5258=VERTEX_POINT('',#5257);\r
+-#5259=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));\r
+-#5260=VERTEX_POINT('',#5259);\r
+-#5261=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));\r
+-#5262=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.13125E1));\r
+-#5263=VERTEX_POINT('',#5261);\r
+-#5264=VERTEX_POINT('',#5262);\r
+-#5265=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));\r
+-#5266=VERTEX_POINT('',#5265);\r
+-#5267=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.01875E1));\r
+-#5268=VERTEX_POINT('',#5267);\r
+-#5269=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,3.096770671486E1));\r
+-#5270=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.958022033652E1));\r
+-#5271=VERTEX_POINT('',#5269);\r
+-#5272=VERTEX_POINT('',#5270);\r
+-#5273=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,2.708131618759E1));\r
+-#5274=VERTEX_POINT('',#5273);\r
+-#5275=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
+-#5276=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));\r
+-#5277=VERTEX_POINT('',#5275);\r
+-#5278=VERTEX_POINT('',#5276);\r
+-#5279=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
+-#5280=VERTEX_POINT('',#5279);\r
+-#5281=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));\r
+-#5282=VERTEX_POINT('',#5281);\r
+-#5283=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));\r
+-#5284=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));\r
+-#5285=VERTEX_POINT('',#5283);\r
+-#5286=VERTEX_POINT('',#5284);\r
+-#5287=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));\r
+-#5288=VERTEX_POINT('',#5287);\r
+-#5289=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));\r
+-#5290=CARTESIAN_POINT('',(1.35E1,6.875E-1,6.875E-1));\r
+-#5291=VERTEX_POINT('',#5289);\r
+-#5292=VERTEX_POINT('',#5290);\r
+-#5293=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));\r
+-#5294=VERTEX_POINT('',#5293);\r
+-#5295=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8125E0));\r
+-#5296=VERTEX_POINT('',#5295);\r
+-#5297=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,1.032293285145E0));\r
+-#5298=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.419779663480E0));\r
+-#5299=VERTEX_POINT('',#5297);\r
+-#5300=VERTEX_POINT('',#5298);\r
+-#5301=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,4.918683812405E0));\r
+-#5302=VERTEX_POINT('',#5301);\r
+-#5303=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
+-#5304=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));\r
+-#5305=VERTEX_POINT('',#5303);\r
+-#5306=VERTEX_POINT('',#5304);\r
+-#5307=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
+-#5308=VERTEX_POINT('',#5307);\r
+-#5309=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));\r
+-#5310=VERTEX_POINT('',#5309);\r
+-#5311=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));\r
+-#5312=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));\r
+-#5313=VERTEX_POINT('',#5311);\r
+-#5314=VERTEX_POINT('',#5312);\r
+-#5315=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));\r
+-#5316=VERTEX_POINT('',#5315);\r
+-#5317=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.5E0));\r
+-#5318=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));\r
+-#5319=VERTEX_POINT('',#5317);\r
+-#5320=VERTEX_POINT('',#5318);\r
+-#5321=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));\r
+-#5322=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
+-#5323=VERTEX_POINT('',#5321);\r
+-#5324=VERTEX_POINT('',#5322);\r
+-#5325=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));\r
+-#5326=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.35E1));\r
+-#5327=VERTEX_POINT('',#5325);\r
+-#5328=VERTEX_POINT('',#5326);\r
+-#5329=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));\r
+-#5330=VERTEX_POINT('',#5329);\r
+-#5331=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.65E1));\r
+-#5332=VERTEX_POINT('',#5331);\r
+-#5333=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
+-#5334=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));\r
+-#5335=VERTEX_POINT('',#5333);\r
+-#5336=VERTEX_POINT('',#5334);\r
+-#5337=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
+-#5338=VERTEX_POINT('',#5337);\r
+-#5339=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));\r
+-#5340=VERTEX_POINT('',#5339);\r
+-#5341=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));\r
+-#5342=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.95E1));\r
+-#5343=VERTEX_POINT('',#5341);\r
+-#5344=VERTEX_POINT('',#5342);\r
+-#5345=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));\r
+-#5346=VERTEX_POINT('',#5345);\r
+-#5347=CARTESIAN_POINT('',(2.21875E1,6.875E-1,2.25E1));\r
+-#5348=VERTEX_POINT('',#5347);\r
+-#5349=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
+-#5350=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));\r
+-#5351=VERTEX_POINT('',#5349);\r
+-#5352=VERTEX_POINT('',#5350);\r
+-#5353=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
+-#5354=VERTEX_POINT('',#5353);\r
+-#5355=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));\r
+-#5356=VERTEX_POINT('',#5355);\r
+-#5357=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));\r
+-#5358=CARTESIAN_POINT('',(1.35E1,6.875E-1,8.5E0));\r
+-#5359=VERTEX_POINT('',#5357);\r
+-#5360=VERTEX_POINT('',#5358);\r
+-#5361=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));\r
+-#5362=VERTEX_POINT('',#5361);\r
+-#5363=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.5E0));\r
+-#5364=VERTEX_POINT('',#5363);\r
+-#5365=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
+-#5366=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));\r
+-#5367=VERTEX_POINT('',#5365);\r
+-#5368=VERTEX_POINT('',#5366);\r
+-#5369=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
+-#5370=VERTEX_POINT('',#5369);\r
+-#5371=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));\r
+-#5372=VERTEX_POINT('',#5371);\r
+-#5373=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));\r
+-#5374=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.75625E1));\r
+-#5375=VERTEX_POINT('',#5373);\r
+-#5376=VERTEX_POINT('',#5374);\r
+-#5377=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));\r
+-#5378=VERTEX_POINT('',#5377);\r
+-#5379=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.84375E1));\r
+-#5380=VERTEX_POINT('',#5379);\r
+-#5381=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
+-#5382=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));\r
+-#5383=VERTEX_POINT('',#5381);\r
+-#5384=VERTEX_POINT('',#5382);\r
+-#5385=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
+-#5386=VERTEX_POINT('',#5385);\r
+-#5387=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));\r
+-#5388=VERTEX_POINT('',#5387);\r
+-#5389=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));\r
+-#5390=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.13125E1));\r
+-#5391=VERTEX_POINT('',#5389);\r
+-#5392=VERTEX_POINT('',#5390);\r
+-#5393=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));\r
+-#5394=VERTEX_POINT('',#5393);\r
+-#5395=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.01875E1));\r
+-#5396=VERTEX_POINT('',#5395);\r
+-#5397=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,3.096770671486E1));\r
+-#5398=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.958022033652E1));\r
+-#5399=VERTEX_POINT('',#5397);\r
+-#5400=VERTEX_POINT('',#5398);\r
+-#5401=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,2.708131618759E1));\r
+-#5402=VERTEX_POINT('',#5401);\r
+-#5403=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
+-#5404=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));\r
+-#5405=VERTEX_POINT('',#5403);\r
+-#5406=VERTEX_POINT('',#5404);\r
+-#5407=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
+-#5408=VERTEX_POINT('',#5407);\r
+-#5409=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));\r
+-#5410=VERTEX_POINT('',#5409);\r
+-#5411=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));\r
+-#5412=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));\r
+-#5413=VERTEX_POINT('',#5411);\r
+-#5414=VERTEX_POINT('',#5412);\r
+-#5415=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));\r
+-#5416=VERTEX_POINT('',#5415);\r
+-#5417=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));\r
+-#5418=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));\r
+-#5419=VERTEX_POINT('',#5417);\r
+-#5420=VERTEX_POINT('',#5418);\r
+-#5421=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));\r
+-#5422=VERTEX_POINT('',#5421);\r
+-#5423=CARTESIAN_POINT('',(2.05675E1,0.E0,8.69E0));\r
+-#5424=VERTEX_POINT('',#5423);\r
+-#5425=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));\r
+-#5426=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));\r
+-#5427=VERTEX_POINT('',#5425);\r
+-#5428=VERTEX_POINT('',#5426);\r
+-#5429=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));\r
+-#5430=VERTEX_POINT('',#5429);\r
+-#5431=CARTESIAN_POINT('',(1.96875E1,0.E0,1.037E1));\r
+-#5432=VERTEX_POINT('',#5431);\r
+-#5433=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));\r
+-#5434=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));\r
+-#5435=VERTEX_POINT('',#5433);\r
+-#5436=VERTEX_POINT('',#5434);\r
+-#5437=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));\r
+-#5438=VERTEX_POINT('',#5437);\r
+-#5439=CARTESIAN_POINT('',(2.53125E1,0.E0,9.57E0));\r
+-#5440=VERTEX_POINT('',#5439);\r
+-#5441=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));\r
+-#5442=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));\r
+-#5443=VERTEX_POINT('',#5441);\r
+-#5444=VERTEX_POINT('',#5442);\r
+-#5445=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));\r
+-#5446=VERTEX_POINT('',#5445);\r
+-#5447=CARTESIAN_POINT('',(2.44325E1,0.E0,1.125E1));\r
+-#5448=VERTEX_POINT('',#5447);\r
+-#5449=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));\r
+-#5450=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));\r
+-#5451=VERTEX_POINT('',#5449);\r
+-#5452=VERTEX_POINT('',#5450);\r
+-#5453=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));\r
+-#5454=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.81E0));\r
+-#5455=VERTEX_POINT('',#5453);\r
+-#5456=VERTEX_POINT('',#5454);\r
+-#5457=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));\r
+-#5458=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));\r
+-#5459=VERTEX_POINT('',#5457);\r
+-#5460=VERTEX_POINT('',#5458);\r
+-#5461=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));\r
+-#5462=CARTESIAN_POINT('',(2.419E1,6.875E-1,8.69E0));\r
+-#5463=VERTEX_POINT('',#5461);\r
+-#5464=VERTEX_POINT('',#5462);\r
+-#5465=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));\r
+-#5466=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,4.912826677187E0));\r
+-#5467=VERTEX_POINT('',#5465);\r
+-#5468=VERTEX_POINT('',#5466);\r
+-#5469=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));\r
+-#5470=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));\r
+-#5471=VERTEX_POINT('',#5469);\r
+-#5472=VERTEX_POINT('',#5470);\r
+-#5473=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));\r
+-#5474=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,2.708717332281E1));\r
+-#5475=VERTEX_POINT('',#5473);\r
+-#5476=VERTEX_POINT('',#5474);\r
+-#5477=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));\r
+-#5478=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));\r
+-#5479=VERTEX_POINT('',#5477);\r
+-#5480=VERTEX_POINT('',#5478);\r
+-#5481=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));\r
+-#5482=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));\r
+-#5483=VERTEX_POINT('',#5481);\r
+-#5484=VERTEX_POINT('',#5482);\r
+-#5485=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));\r
+-#5486=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,2.708717332281E1));\r
+-#5487=VERTEX_POINT('',#5485);\r
+-#5488=VERTEX_POINT('',#5486);\r
+-#5489=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));\r
+-#5490=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#5491=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#5492=AXIS2_PLACEMENT_3D('',#5489,#5490,#5491);\r
+-#5493=PLANE('',#5492);\r
+-#5495=ORIENTED_EDGE('',*,*,#5494,.F.);\r
+-#5497=ORIENTED_EDGE('',*,*,#5496,.F.);\r
+-#5499=ORIENTED_EDGE('',*,*,#5498,.T.);\r
+-#5501=ORIENTED_EDGE('',*,*,#5500,.F.);\r
+-#5503=ORIENTED_EDGE('',*,*,#5502,.T.);\r
+-#5505=ORIENTED_EDGE('',*,*,#5504,.F.);\r
+-#5507=ORIENTED_EDGE('',*,*,#5506,.T.);\r
+-#5509=ORIENTED_EDGE('',*,*,#5508,.F.);\r
+-#5511=ORIENTED_EDGE('',*,*,#5510,.T.);\r
+-#5513=ORIENTED_EDGE('',*,*,#5512,.T.);\r
+-#5515=ORIENTED_EDGE('',*,*,#5514,.F.);\r
+-#5517=ORIENTED_EDGE('',*,*,#5516,.T.);\r
+-#5519=ORIENTED_EDGE('',*,*,#5518,.F.);\r
+-#5521=ORIENTED_EDGE('',*,*,#5520,.T.);\r
+-#5523=ORIENTED_EDGE('',*,*,#5522,.F.);\r
+-#5525=ORIENTED_EDGE('',*,*,#5524,.T.);\r
+-#5527=ORIENTED_EDGE('',*,*,#5526,.F.);\r
+-#5529=ORIENTED_EDGE('',*,*,#5528,.T.);\r
+-#5531=ORIENTED_EDGE('',*,*,#5530,.F.);\r
+-#5533=ORIENTED_EDGE('',*,*,#5532,.F.);\r
+-#5535=ORIENTED_EDGE('',*,*,#5534,.T.);\r
+-#5537=ORIENTED_EDGE('',*,*,#5536,.F.);\r
+-#5538=EDGE_LOOP('',(#5495,#5497,#5499,#5501,#5503,#5505,#5507,#5509,#5511,#5513,\r
+-#5515,#5517,#5519,#5521,#5523,#5525,#5527,#5529,#5531,#5533,#5535,#5537));\r
+-#5539=FACE_OUTER_BOUND('',#5538,.F.);\r
+-#5541=ORIENTED_EDGE('',*,*,#5540,.T.);\r
+-#5543=ORIENTED_EDGE('',*,*,#5542,.F.);\r
+-#5545=ORIENTED_EDGE('',*,*,#5544,.F.);\r
+-#5547=ORIENTED_EDGE('',*,*,#5546,.F.);\r
+-#5549=ORIENTED_EDGE('',*,*,#5548,.F.);\r
+-#5551=ORIENTED_EDGE('',*,*,#5550,.F.);\r
+-#5552=EDGE_LOOP('',(#5541,#5543,#5545,#5547,#5549,#5551));\r
+-#5553=FACE_BOUND('',#5552,.F.);\r
+-#5555=ORIENTED_EDGE('',*,*,#5554,.T.);\r
+-#5557=ORIENTED_EDGE('',*,*,#5556,.T.);\r
+-#5558=EDGE_LOOP('',(#5555,#5557));\r
+-#5559=FACE_BOUND('',#5558,.F.);\r
+-#5561=ORIENTED_EDGE('',*,*,#5560,.T.);\r
+-#5563=ORIENTED_EDGE('',*,*,#5562,.T.);\r
+-#5564=EDGE_LOOP('',(#5561,#5563));\r
+-#5565=FACE_BOUND('',#5564,.F.);\r
+-#5567=ORIENTED_EDGE('',*,*,#5566,.T.);\r
+-#5569=ORIENTED_EDGE('',*,*,#5568,.T.);\r
+-#5570=EDGE_LOOP('',(#5567,#5569));\r
+-#5571=FACE_BOUND('',#5570,.F.);\r
+-#5573=ORIENTED_EDGE('',*,*,#5572,.T.);\r
+-#5575=ORIENTED_EDGE('',*,*,#5574,.T.);\r
+-#5576=EDGE_LOOP('',(#5573,#5575));\r
+-#5577=FACE_BOUND('',#5576,.F.);\r
+-#5579=ORIENTED_EDGE('',*,*,#5578,.T.);\r
+-#5581=ORIENTED_EDGE('',*,*,#5580,.T.);\r
+-#5582=EDGE_LOOP('',(#5579,#5581));\r
+-#5583=FACE_BOUND('',#5582,.F.);\r
+-#5585=ORIENTED_EDGE('',*,*,#5584,.T.);\r
+-#5587=ORIENTED_EDGE('',*,*,#5586,.T.);\r
+-#5588=EDGE_LOOP('',(#5585,#5587));\r
+-#5589=FACE_BOUND('',#5588,.F.);\r
+-#5591=ORIENTED_EDGE('',*,*,#5590,.T.);\r
+-#5593=ORIENTED_EDGE('',*,*,#5592,.T.);\r
+-#5594=EDGE_LOOP('',(#5591,#5593));\r
+-#5595=FACE_BOUND('',#5594,.F.);\r
+-#5597=ORIENTED_EDGE('',*,*,#5596,.T.);\r
+-#5599=ORIENTED_EDGE('',*,*,#5598,.T.);\r
+-#5600=EDGE_LOOP('',(#5597,#5599));\r
+-#5601=FACE_BOUND('',#5600,.F.);\r
+-#5603=ORIENTED_EDGE('',*,*,#5602,.T.);\r
+-#5605=ORIENTED_EDGE('',*,*,#5604,.T.);\r
+-#5606=EDGE_LOOP('',(#5603,#5605));\r
+-#5607=FACE_BOUND('',#5606,.F.);\r
+-#5609=ORIENTED_EDGE('',*,*,#5608,.T.);\r
+-#5611=ORIENTED_EDGE('',*,*,#5610,.T.);\r
+-#5612=EDGE_LOOP('',(#5609,#5611));\r
+-#5613=FACE_BOUND('',#5612,.F.);\r
+-#5615=ORIENTED_EDGE('',*,*,#5614,.T.);\r
+-#5617=ORIENTED_EDGE('',*,*,#5616,.T.);\r
+-#5618=EDGE_LOOP('',(#5615,#5617));\r
+-#5619=FACE_BOUND('',#5618,.F.);\r
+-#5621=ORIENTED_EDGE('',*,*,#5620,.T.);\r
+-#5623=ORIENTED_EDGE('',*,*,#5622,.T.);\r
+-#5624=EDGE_LOOP('',(#5621,#5623));\r
+-#5625=FACE_BOUND('',#5624,.F.);\r
+-#5627=ORIENTED_EDGE('',*,*,#5626,.T.);\r
+-#5629=ORIENTED_EDGE('',*,*,#5628,.T.);\r
+-#5630=EDGE_LOOP('',(#5627,#5629));\r
+-#5631=FACE_BOUND('',#5630,.F.);\r
+-#5633=ORIENTED_EDGE('',*,*,#5632,.T.);\r
+-#5635=ORIENTED_EDGE('',*,*,#5634,.T.);\r
+-#5636=EDGE_LOOP('',(#5633,#5635));\r
+-#5637=FACE_BOUND('',#5636,.F.);\r
+-#5639=ORIENTED_EDGE('',*,*,#5638,.T.);\r
+-#5641=ORIENTED_EDGE('',*,*,#5640,.F.);\r
+-#5643=ORIENTED_EDGE('',*,*,#5642,.F.);\r
+-#5645=ORIENTED_EDGE('',*,*,#5644,.F.);\r
+-#5647=ORIENTED_EDGE('',*,*,#5646,.F.);\r
+-#5649=ORIENTED_EDGE('',*,*,#5648,.F.);\r
+-#5651=ORIENTED_EDGE('',*,*,#5650,.F.);\r
+-#5653=ORIENTED_EDGE('',*,*,#5652,.F.);\r
+-#5654=EDGE_LOOP('',(#5639,#5641,#5643,#5645,#5647,#5649,#5651,#5653));\r
+-#5655=FACE_BOUND('',#5654,.F.);\r
+-#5657=ORIENTED_EDGE('',*,*,#5656,.F.);\r
+-#5659=ORIENTED_EDGE('',*,*,#5658,.F.);\r
+-#5661=ORIENTED_EDGE('',*,*,#5660,.T.);\r
+-#5663=ORIENTED_EDGE('',*,*,#5662,.F.);\r
+-#5665=ORIENTED_EDGE('',*,*,#5664,.F.);\r
+-#5667=ORIENTED_EDGE('',*,*,#5666,.F.);\r
+-#5669=ORIENTED_EDGE('',*,*,#5668,.T.);\r
+-#5671=ORIENTED_EDGE('',*,*,#5670,.F.);\r
+-#5673=ORIENTED_EDGE('',*,*,#5672,.T.);\r
+-#5675=ORIENTED_EDGE('',*,*,#5674,.F.);\r
+-#5677=ORIENTED_EDGE('',*,*,#5676,.T.);\r
+-#5679=ORIENTED_EDGE('',*,*,#5678,.F.);\r
+-#5681=ORIENTED_EDGE('',*,*,#5680,.F.);\r
+-#5683=ORIENTED_EDGE('',*,*,#5682,.T.);\r
+-#5685=ORIENTED_EDGE('',*,*,#5684,.F.);\r
+-#5687=ORIENTED_EDGE('',*,*,#5686,.F.);\r
+-#5688=EDGE_LOOP('',(#5657,#5659,#5661,#5663,#5665,#5667,#5669,#5671,#5673,#5675,\r
+-#5677,#5679,#5681,#5683,#5685,#5687));\r
+-#5689=FACE_BOUND('',#5688,.F.);\r
+-#5691=ORIENTED_EDGE('',*,*,#5690,.T.);\r
+-#5693=ORIENTED_EDGE('',*,*,#5692,.T.);\r
+-#5694=EDGE_LOOP('',(#5691,#5693));\r
+-#5695=FACE_BOUND('',#5694,.F.);\r
+-#5697=ORIENTED_EDGE('',*,*,#5696,.T.);\r
+-#5699=ORIENTED_EDGE('',*,*,#5698,.T.);\r
+-#5700=EDGE_LOOP('',(#5697,#5699));\r
+-#5701=FACE_BOUND('',#5700,.F.);\r
+-#5703=ORIENTED_EDGE('',*,*,#5702,.T.);\r
+-#5705=ORIENTED_EDGE('',*,*,#5704,.T.);\r
+-#5706=EDGE_LOOP('',(#5703,#5705));\r
+-#5707=FACE_BOUND('',#5706,.F.);\r
+-#5709=ORIENTED_EDGE('',*,*,#5708,.T.);\r
+-#5711=ORIENTED_EDGE('',*,*,#5710,.T.);\r
+-#5712=EDGE_LOOP('',(#5709,#5711));\r
+-#5713=FACE_BOUND('',#5712,.F.);\r
+-#5715=ORIENTED_EDGE('',*,*,#5714,.T.);\r
+-#5717=ORIENTED_EDGE('',*,*,#5716,.T.);\r
+-#5718=EDGE_LOOP('',(#5715,#5717));\r
+-#5719=FACE_BOUND('',#5718,.F.);\r
+-#5721=ORIENTED_EDGE('',*,*,#5720,.T.);\r
+-#5723=ORIENTED_EDGE('',*,*,#5722,.T.);\r
+-#5724=EDGE_LOOP('',(#5721,#5723));\r
+-#5725=FACE_BOUND('',#5724,.F.);\r
+-#5727=ORIENTED_EDGE('',*,*,#5726,.T.);\r
+-#5729=ORIENTED_EDGE('',*,*,#5728,.T.);\r
+-#5731=ORIENTED_EDGE('',*,*,#5730,.T.);\r
+-#5733=ORIENTED_EDGE('',*,*,#5732,.T.);\r
+-#5734=EDGE_LOOP('',(#5727,#5729,#5731,#5733));\r
+-#5735=FACE_BOUND('',#5734,.F.);\r
+-#5737=ORIENTED_EDGE('',*,*,#5736,.T.);\r
+-#5739=ORIENTED_EDGE('',*,*,#5738,.F.);\r
+-#5741=ORIENTED_EDGE('',*,*,#5740,.T.);\r
+-#5743=ORIENTED_EDGE('',*,*,#5742,.T.);\r
+-#5745=ORIENTED_EDGE('',*,*,#5744,.F.);\r
+-#5746=EDGE_LOOP('',(#5737,#5739,#5741,#5743,#5745));\r
+-#5747=FACE_BOUND('',#5746,.F.);\r
+-#5749=ORIENTED_EDGE('',*,*,#5748,.F.);\r
+-#5751=ORIENTED_EDGE('',*,*,#5750,.T.);\r
+-#5753=ORIENTED_EDGE('',*,*,#5752,.T.);\r
+-#5755=ORIENTED_EDGE('',*,*,#5754,.T.);\r
+-#5757=ORIENTED_EDGE('',*,*,#5756,.F.);\r
+-#5759=ORIENTED_EDGE('',*,*,#5758,.T.);\r
+-#5761=ORIENTED_EDGE('',*,*,#5760,.F.);\r
+-#5763=ORIENTED_EDGE('',*,*,#5762,.T.);\r
+-#5765=ORIENTED_EDGE('',*,*,#5764,.F.);\r
+-#5767=ORIENTED_EDGE('',*,*,#5766,.T.);\r
+-#5769=ORIENTED_EDGE('',*,*,#5768,.F.);\r
+-#5771=ORIENTED_EDGE('',*,*,#5770,.T.);\r
+-#5773=ORIENTED_EDGE('',*,*,#5772,.F.);\r
+-#5775=ORIENTED_EDGE('',*,*,#5774,.T.);\r
+-#5776=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5759,#5761,#5763,#5765,#5767,\r
+-#5769,#5771,#5773,#5775));\r
+-#5777=FACE_BOUND('',#5776,.F.);\r
+-#5779=ORIENTED_EDGE('',*,*,#5778,.T.);\r
+-#5781=ORIENTED_EDGE('',*,*,#5780,.T.);\r
+-#5783=ORIENTED_EDGE('',*,*,#5782,.T.);\r
+-#5785=ORIENTED_EDGE('',*,*,#5784,.T.);\r
+-#5786=EDGE_LOOP('',(#5779,#5781,#5783,#5785));\r
+-#5787=FACE_BOUND('',#5786,.F.);\r
+-#5789=ORIENTED_EDGE('',*,*,#5788,.T.);\r
+-#5791=ORIENTED_EDGE('',*,*,#5790,.T.);\r
+-#5793=ORIENTED_EDGE('',*,*,#5792,.T.);\r
+-#5795=ORIENTED_EDGE('',*,*,#5794,.T.);\r
+-#5796=EDGE_LOOP('',(#5789,#5791,#5793,#5795));\r
+-#5797=FACE_BOUND('',#5796,.F.);\r
+-#5799=ORIENTED_EDGE('',*,*,#5798,.T.);\r
+-#5801=ORIENTED_EDGE('',*,*,#5800,.T.);\r
+-#5803=ORIENTED_EDGE('',*,*,#5802,.T.);\r
+-#5805=ORIENTED_EDGE('',*,*,#5804,.T.);\r
+-#5806=EDGE_LOOP('',(#5799,#5801,#5803,#5805));\r
+-#5807=FACE_BOUND('',#5806,.F.);\r
+-#5809=ORIENTED_EDGE('',*,*,#5808,.T.);\r
+-#5811=ORIENTED_EDGE('',*,*,#5810,.T.);\r
+-#5813=ORIENTED_EDGE('',*,*,#5812,.T.);\r
+-#5815=ORIENTED_EDGE('',*,*,#5814,.T.);\r
+-#5816=EDGE_LOOP('',(#5809,#5811,#5813,#5815));\r
+-#5817=FACE_BOUND('',#5816,.F.);\r
+-#5819=ORIENTED_EDGE('',*,*,#5818,.F.);\r
+-#5821=ORIENTED_EDGE('',*,*,#5820,.F.);\r
+-#5823=ORIENTED_EDGE('',*,*,#5822,.F.);\r
+-#5825=ORIENTED_EDGE('',*,*,#5824,.F.);\r
+-#5826=EDGE_LOOP('',(#5819,#5821,#5823,#5825));\r
+-#5827=FACE_BOUND('',#5826,.F.);\r
+-#5829=ORIENTED_EDGE('',*,*,#5828,.F.);\r
+-#5831=ORIENTED_EDGE('',*,*,#5830,.F.);\r
+-#5833=ORIENTED_EDGE('',*,*,#5832,.F.);\r
+-#5835=ORIENTED_EDGE('',*,*,#5834,.F.);\r
+-#5836=EDGE_LOOP('',(#5829,#5831,#5833,#5835));\r
+-#5837=FACE_BOUND('',#5836,.F.);\r
+-#5839=ORIENTED_EDGE('',*,*,#5838,.F.);\r
+-#5841=ORIENTED_EDGE('',*,*,#5840,.F.);\r
+-#5843=ORIENTED_EDGE('',*,*,#5842,.F.);\r
+-#5845=ORIENTED_EDGE('',*,*,#5844,.F.);\r
+-#5846=EDGE_LOOP('',(#5839,#5841,#5843,#5845));\r
+-#5847=FACE_BOUND('',#5846,.F.);\r
+-#5849=ORIENTED_EDGE('',*,*,#5848,.F.);\r
+-#5851=ORIENTED_EDGE('',*,*,#5850,.F.);\r
+-#5853=ORIENTED_EDGE('',*,*,#5852,.F.);\r
+-#5855=ORIENTED_EDGE('',*,*,#5854,.F.);\r
+-#5856=EDGE_LOOP('',(#5849,#5851,#5853,#5855));\r
+-#5857=FACE_BOUND('',#5856,.F.);\r
+-#5859=ORIENTED_EDGE('',*,*,#5858,.F.);\r
+-#5861=ORIENTED_EDGE('',*,*,#5860,.F.);\r
+-#5863=ORIENTED_EDGE('',*,*,#5862,.F.);\r
+-#5865=ORIENTED_EDGE('',*,*,#5864,.F.);\r
+-#5866=EDGE_LOOP('',(#5859,#5861,#5863,#5865));\r
+-#5867=FACE_BOUND('',#5866,.F.);\r
+-#5869=ORIENTED_EDGE('',*,*,#5868,.F.);\r
+-#5871=ORIENTED_EDGE('',*,*,#5870,.F.);\r
+-#5873=ORIENTED_EDGE('',*,*,#5872,.F.);\r
+-#5875=ORIENTED_EDGE('',*,*,#5874,.F.);\r
+-#5876=EDGE_LOOP('',(#5869,#5871,#5873,#5875));\r
+-#5877=FACE_BOUND('',#5876,.F.);\r
+-#5879=ORIENTED_EDGE('',*,*,#5878,.T.);\r
+-#5881=ORIENTED_EDGE('',*,*,#5880,.T.);\r
+-#5883=ORIENTED_EDGE('',*,*,#5882,.T.);\r
+-#5885=ORIENTED_EDGE('',*,*,#5884,.T.);\r
+-#5886=EDGE_LOOP('',(#5879,#5881,#5883,#5885));\r
+-#5887=FACE_BOUND('',#5886,.F.);\r
+-#5889=ORIENTED_EDGE('',*,*,#5888,.F.);\r
+-#5891=ORIENTED_EDGE('',*,*,#5890,.F.);\r
+-#5893=ORIENTED_EDGE('',*,*,#5892,.F.);\r
+-#5895=ORIENTED_EDGE('',*,*,#5894,.F.);\r
+-#5897=ORIENTED_EDGE('',*,*,#5896,.F.);\r
+-#5899=ORIENTED_EDGE('',*,*,#5898,.F.);\r
+-#5901=ORIENTED_EDGE('',*,*,#5900,.F.);\r
+-#5903=ORIENTED_EDGE('',*,*,#5902,.F.);\r
+-#5905=ORIENTED_EDGE('',*,*,#5904,.F.);\r
+-#5907=ORIENTED_EDGE('',*,*,#5906,.F.);\r
+-#5909=ORIENTED_EDGE('',*,*,#5908,.F.);\r
+-#5911=ORIENTED_EDGE('',*,*,#5910,.F.);\r
+-#5913=ORIENTED_EDGE('',*,*,#5912,.F.);\r
+-#5915=ORIENTED_EDGE('',*,*,#5914,.F.);\r
+-#5916=EDGE_LOOP('',(#5889,#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,\r
+-#5909,#5911,#5913,#5915));\r
+-#5917=FACE_BOUND('',#5916,.F.);\r
+-#5919=ORIENTED_EDGE('',*,*,#5918,.F.);\r
+-#5921=ORIENTED_EDGE('',*,*,#5920,.F.);\r
+-#5923=ORIENTED_EDGE('',*,*,#5922,.F.);\r
+-#5925=ORIENTED_EDGE('',*,*,#5924,.T.);\r
+-#5927=ORIENTED_EDGE('',*,*,#5926,.F.);\r
+-#5928=EDGE_LOOP('',(#5919,#5921,#5923,#5925,#5927));\r
+-#5929=FACE_BOUND('',#5928,.F.);\r
+-#5931=ORIENTED_EDGE('',*,*,#5930,.F.);\r
+-#5933=ORIENTED_EDGE('',*,*,#5932,.F.);\r
+-#5935=ORIENTED_EDGE('',*,*,#5934,.F.);\r
+-#5937=ORIENTED_EDGE('',*,*,#5936,.T.);\r
+-#5939=ORIENTED_EDGE('',*,*,#5938,.F.);\r
+-#5940=EDGE_LOOP('',(#5931,#5933,#5935,#5937,#5939));\r
+-#5941=FACE_BOUND('',#5940,.F.);\r
+-#5943=ORIENTED_EDGE('',*,*,#5942,.T.);\r
+-#5945=ORIENTED_EDGE('',*,*,#5944,.F.);\r
+-#5947=ORIENTED_EDGE('',*,*,#5946,.T.);\r
+-#5949=ORIENTED_EDGE('',*,*,#5948,.T.);\r
+-#5951=ORIENTED_EDGE('',*,*,#5950,.F.);\r
+-#5952=EDGE_LOOP('',(#5943,#5945,#5947,#5949,#5951));\r
+-#5953=FACE_BOUND('',#5952,.F.);\r
+-#5954=ADVANCED_FACE('',(#5539,#5553,#5559,#5565,#5571,#5577,#5583,#5589,#5595,\r
+-#5601,#5607,#5613,#5619,#5625,#5631,#5637,#5655,#5689,#5695,#5701,#5707,#5713,\r
+-#5719,#5725,#5735,#5747,#5777,#5787,#5797,#5807,#5817,#5827,#5837,#5847,#5857,\r
+-#5867,#5877,#5887,#5917,#5929,#5941,#5953),#5493,.F.);\r
+-#5955=CARTESIAN_POINT('',(0.E0,0.E0,8.E0));\r
+-#5956=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#5957=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#5958=AXIS2_PLACEMENT_3D('',#5955,#5956,#5957);\r
+-#5959=PLANE('',#5958);\r
+-#5960=ORIENTED_EDGE('',*,*,#5540,.F.);\r
+-#5962=ORIENTED_EDGE('',*,*,#5961,.T.);\r
+-#5964=ORIENTED_EDGE('',*,*,#5963,.F.);\r
+-#5966=ORIENTED_EDGE('',*,*,#5965,.F.);\r
+-#5967=ORIENTED_EDGE('',*,*,#5494,.T.);\r
+-#5969=ORIENTED_EDGE('',*,*,#5968,.F.);\r
+-#5971=ORIENTED_EDGE('',*,*,#5970,.F.);\r
+-#5973=ORIENTED_EDGE('',*,*,#5972,.T.);\r
+-#5975=ORIENTED_EDGE('',*,*,#5974,.F.);\r
+-#5977=ORIENTED_EDGE('',*,*,#5976,.F.);\r
+-#5979=ORIENTED_EDGE('',*,*,#5978,.F.);\r
+-#5981=ORIENTED_EDGE('',*,*,#5980,.T.);\r
+-#5983=ORIENTED_EDGE('',*,*,#5982,.T.);\r
+-#5985=ORIENTED_EDGE('',*,*,#5984,.F.);\r
+-#5986=ORIENTED_EDGE('',*,*,#5510,.F.);\r
+-#5988=ORIENTED_EDGE('',*,*,#5987,.F.);\r
+-#5990=ORIENTED_EDGE('',*,*,#5989,.F.);\r
+-#5992=ORIENTED_EDGE('',*,*,#5991,.T.);\r
+-#5993=EDGE_LOOP('',(#5960,#5962,#5964,#5966,#5967,#5969,#5971,#5973,#5975,#5977,\r
+-#5979,#5981,#5983,#5985,#5986,#5988,#5990,#5992));\r
+-#5994=FACE_OUTER_BOUND('',#5993,.F.);\r
+-#5996=ORIENTED_EDGE('',*,*,#5995,.T.);\r
+-#5998=ORIENTED_EDGE('',*,*,#5997,.T.);\r
+-#5999=EDGE_LOOP('',(#5996,#5998));\r
+-#6000=FACE_BOUND('',#5999,.F.);\r
+-#6002=ORIENTED_EDGE('',*,*,#6001,.T.);\r
+-#6004=ORIENTED_EDGE('',*,*,#6003,.T.);\r
+-#6005=EDGE_LOOP('',(#6002,#6004));\r
+-#6006=FACE_BOUND('',#6005,.F.);\r
+-#6008=ORIENTED_EDGE('',*,*,#6007,.T.);\r
+-#6010=ORIENTED_EDGE('',*,*,#6009,.T.);\r
+-#6011=EDGE_LOOP('',(#6008,#6010));\r
+-#6012=FACE_BOUND('',#6011,.F.);\r
+-#6014=ORIENTED_EDGE('',*,*,#6013,.T.);\r
+-#6016=ORIENTED_EDGE('',*,*,#6015,.T.);\r
+-#6017=EDGE_LOOP('',(#6014,#6016));\r
+-#6018=FACE_BOUND('',#6017,.F.);\r
+-#6020=ORIENTED_EDGE('',*,*,#6019,.F.);\r
+-#6022=ORIENTED_EDGE('',*,*,#6021,.F.);\r
+-#6023=EDGE_LOOP('',(#6020,#6022));\r
+-#6024=FACE_BOUND('',#6023,.F.);\r
+-#6026=ORIENTED_EDGE('',*,*,#6025,.F.);\r
+-#6028=ORIENTED_EDGE('',*,*,#6027,.F.);\r
+-#6029=EDGE_LOOP('',(#6026,#6028));\r
+-#6030=FACE_BOUND('',#6029,.F.);\r
+-#6032=ORIENTED_EDGE('',*,*,#6031,.F.);\r
+-#6034=ORIENTED_EDGE('',*,*,#6033,.F.);\r
+-#6035=EDGE_LOOP('',(#6032,#6034));\r
+-#6036=FACE_BOUND('',#6035,.F.);\r
+-#6038=ORIENTED_EDGE('',*,*,#6037,.F.);\r
+-#6040=ORIENTED_EDGE('',*,*,#6039,.F.);\r
+-#6041=EDGE_LOOP('',(#6038,#6040));\r
+-#6042=FACE_BOUND('',#6041,.F.);\r
+-#6044=ORIENTED_EDGE('',*,*,#6043,.T.);\r
+-#6046=ORIENTED_EDGE('',*,*,#6045,.F.);\r
+-#6048=ORIENTED_EDGE('',*,*,#6047,.T.);\r
+-#6050=ORIENTED_EDGE('',*,*,#6049,.F.);\r
+-#6052=ORIENTED_EDGE('',*,*,#6051,.T.);\r
+-#6054=ORIENTED_EDGE('',*,*,#6053,.F.);\r
+-#6056=ORIENTED_EDGE('',*,*,#6055,.T.);\r
+-#6058=ORIENTED_EDGE('',*,*,#6057,.F.);\r
+-#6059=EDGE_LOOP('',(#6044,#6046,#6048,#6050,#6052,#6054,#6056,#6058));\r
+-#6060=FACE_BOUND('',#6059,.F.);\r
+-#6062=ORIENTED_EDGE('',*,*,#6061,.F.);\r
+-#6064=ORIENTED_EDGE('',*,*,#6063,.F.);\r
+-#6066=ORIENTED_EDGE('',*,*,#6065,.F.);\r
+-#6068=ORIENTED_EDGE('',*,*,#6067,.F.);\r
+-#6070=ORIENTED_EDGE('',*,*,#6069,.F.);\r
+-#6072=ORIENTED_EDGE('',*,*,#6071,.F.);\r
+-#6074=ORIENTED_EDGE('',*,*,#6073,.F.);\r
+-#6076=ORIENTED_EDGE('',*,*,#6075,.F.);\r
+-#6077=EDGE_LOOP('',(#6062,#6064,#6066,#6068,#6070,#6072,#6074,#6076));\r
+-#6078=FACE_BOUND('',#6077,.F.);\r
+-#6079=ADVANCED_FACE('',(#5994,#6000,#6006,#6012,#6018,#6024,#6030,#6036,#6042,\r
+-#6060,#6078),#5959,.F.);\r
+-#6080=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
+-#6081=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6082=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6083=AXIS2_PLACEMENT_3D('',#6080,#6081,#6082);\r
+-#6084=CYLINDRICAL_SURFACE('',#6083,9.5E-2);\r
+-#6085=ORIENTED_EDGE('',*,*,#5995,.F.);\r
+-#6087=ORIENTED_EDGE('',*,*,#6086,.T.);\r
+-#6089=ORIENTED_EDGE('',*,*,#6088,.T.);\r
+-#6091=ORIENTED_EDGE('',*,*,#6090,.F.);\r
+-#6092=EDGE_LOOP('',(#6085,#6087,#6089,#6091));\r
+-#6093=FACE_OUTER_BOUND('',#6092,.F.);\r
+-#6094=ADVANCED_FACE('',(#6093),#6084,.F.);\r
+-#6095=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
+-#6096=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6097=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6098=AXIS2_PLACEMENT_3D('',#6095,#6096,#6097);\r
+-#6099=CYLINDRICAL_SURFACE('',#6098,9.5E-2);\r
+-#6100=ORIENTED_EDGE('',*,*,#5997,.F.);\r
+-#6101=ORIENTED_EDGE('',*,*,#6090,.T.);\r
+-#6103=ORIENTED_EDGE('',*,*,#6102,.T.);\r
+-#6104=ORIENTED_EDGE('',*,*,#6086,.F.);\r
+-#6105=EDGE_LOOP('',(#6100,#6101,#6103,#6104));\r
+-#6106=FACE_OUTER_BOUND('',#6105,.F.);\r
+-#6107=ADVANCED_FACE('',(#6106),#6099,.F.);\r
+-#6108=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));\r
+-#6109=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6110=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6111=AXIS2_PLACEMENT_3D('',#6108,#6109,#6110);\r
+-#6112=PLANE('',#6111);\r
+-#6113=ORIENTED_EDGE('',*,*,#6088,.F.);\r
+-#6114=ORIENTED_EDGE('',*,*,#6102,.F.);\r
+-#6115=EDGE_LOOP('',(#6113,#6114));\r
+-#6116=FACE_OUTER_BOUND('',#6115,.F.);\r
+-#6117=ADVANCED_FACE('',(#6116),#6112,.T.);\r
+-#6118=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
+-#6119=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6120=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6121=AXIS2_PLACEMENT_3D('',#6118,#6119,#6120);\r
+-#6122=CYLINDRICAL_SURFACE('',#6121,1.625E-1);\r
+-#6123=ORIENTED_EDGE('',*,*,#6001,.F.);\r
+-#6125=ORIENTED_EDGE('',*,*,#6124,.T.);\r
+-#6127=ORIENTED_EDGE('',*,*,#6126,.T.);\r
+-#6129=ORIENTED_EDGE('',*,*,#6128,.F.);\r
+-#6130=EDGE_LOOP('',(#6123,#6125,#6127,#6129));\r
+-#6131=FACE_OUTER_BOUND('',#6130,.F.);\r
+-#6132=ADVANCED_FACE('',(#6131),#6122,.F.);\r
+-#6133=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
+-#6134=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6135=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6136=AXIS2_PLACEMENT_3D('',#6133,#6134,#6135);\r
+-#6137=CYLINDRICAL_SURFACE('',#6136,1.625E-1);\r
+-#6138=ORIENTED_EDGE('',*,*,#6003,.F.);\r
+-#6139=ORIENTED_EDGE('',*,*,#6128,.T.);\r
+-#6141=ORIENTED_EDGE('',*,*,#6140,.T.);\r
+-#6142=ORIENTED_EDGE('',*,*,#6124,.F.);\r
+-#6143=EDGE_LOOP('',(#6138,#6139,#6141,#6142));\r
+-#6144=FACE_OUTER_BOUND('',#6143,.F.);\r
+-#6145=ADVANCED_FACE('',(#6144),#6137,.F.);\r
+-#6146=CARTESIAN_POINT('',(2.4E1,0.E0,1.E1));\r
+-#6147=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6148=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6149=AXIS2_PLACEMENT_3D('',#6146,#6147,#6148);\r
+-#6150=PLANE('',#6149);\r
+-#6152=ORIENTED_EDGE('',*,*,#6151,.T.);\r
+-#6154=ORIENTED_EDGE('',*,*,#6153,.T.);\r
+-#6156=ORIENTED_EDGE('',*,*,#6155,.F.);\r
+-#6158=ORIENTED_EDGE('',*,*,#6157,.F.);\r
+-#6160=ORIENTED_EDGE('',*,*,#6159,.T.);\r
+-#6162=ORIENTED_EDGE('',*,*,#6161,.T.);\r
+-#6164=ORIENTED_EDGE('',*,*,#6163,.T.);\r
+-#6166=ORIENTED_EDGE('',*,*,#6165,.T.);\r
+-#6168=ORIENTED_EDGE('',*,*,#6167,.F.);\r
+-#6169=EDGE_LOOP('',(#6152,#6154,#6156,#6158,#6160,#6162,#6164,#6166,#6168));\r
+-#6170=FACE_OUTER_BOUND('',#6169,.F.);\r
+-#6171=ORIENTED_EDGE('',*,*,#6126,.F.);\r
+-#6172=ORIENTED_EDGE('',*,*,#6140,.F.);\r
+-#6173=EDGE_LOOP('',(#6171,#6172));\r
+-#6174=FACE_BOUND('',#6173,.F.);\r
+-#6176=ORIENTED_EDGE('',*,*,#6175,.F.);\r
+-#6178=ORIENTED_EDGE('',*,*,#6177,.F.);\r
+-#6180=ORIENTED_EDGE('',*,*,#6179,.F.);\r
+-#6182=ORIENTED_EDGE('',*,*,#6181,.F.);\r
+-#6184=ORIENTED_EDGE('',*,*,#6183,.F.);\r
+-#6186=ORIENTED_EDGE('',*,*,#6185,.F.);\r
+-#6188=ORIENTED_EDGE('',*,*,#6187,.F.);\r
+-#6190=ORIENTED_EDGE('',*,*,#6189,.F.);\r
+-#6192=ORIENTED_EDGE('',*,*,#6191,.F.);\r
+-#6194=ORIENTED_EDGE('',*,*,#6193,.F.);\r
+-#6196=ORIENTED_EDGE('',*,*,#6195,.F.);\r
+-#6198=ORIENTED_EDGE('',*,*,#6197,.F.);\r
+-#6199=EDGE_LOOP('',(#6176,#6178,#6180,#6182,#6184,#6186,#6188,#6190,#6192,#6194,\r
+-#6196,#6198));\r
+-#6200=FACE_BOUND('',#6199,.F.);\r
+-#6201=ADVANCED_FACE('',(#6170,#6174,#6200),#6150,.F.);\r
+-#6202=CARTESIAN_POINT('',(2.375E1,1.5E0,1.2E1));\r
+-#6203=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6204=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6205=AXIS2_PLACEMENT_3D('',#6202,#6203,#6204);\r
+-#6206=PLANE('',#6205);\r
+-#6208=ORIENTED_EDGE('',*,*,#6207,.F.);\r
+-#6210=ORIENTED_EDGE('',*,*,#6209,.F.);\r
+-#6211=ORIENTED_EDGE('',*,*,#6151,.F.);\r
+-#6212=EDGE_LOOP('',(#6208,#6210,#6211));\r
+-#6213=FACE_OUTER_BOUND('',#6212,.F.);\r
+-#6214=ADVANCED_FACE('',(#6213),#6206,.T.);\r
+-#6215=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));\r
+-#6216=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6217=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6218=AXIS2_PLACEMENT_3D('',#6215,#6216,#6217);\r
+-#6219=PLANE('',#6218);\r
+-#6220=ORIENTED_EDGE('',*,*,#5963,.T.);\r
+-#6222=ORIENTED_EDGE('',*,*,#6221,.F.);\r
+-#6224=ORIENTED_EDGE('',*,*,#6223,.F.);\r
+-#6226=ORIENTED_EDGE('',*,*,#6225,.T.);\r
+-#6228=ORIENTED_EDGE('',*,*,#6227,.F.);\r
+-#6230=ORIENTED_EDGE('',*,*,#6229,.F.);\r
+-#6231=ORIENTED_EDGE('',*,*,#5989,.T.);\r
+-#6233=ORIENTED_EDGE('',*,*,#6232,.F.);\r
+-#6235=ORIENTED_EDGE('',*,*,#6234,.F.);\r
+-#6237=ORIENTED_EDGE('',*,*,#6236,.T.);\r
+-#6239=ORIENTED_EDGE('',*,*,#6238,.F.);\r
+-#6241=ORIENTED_EDGE('',*,*,#6240,.T.);\r
+-#6243=ORIENTED_EDGE('',*,*,#6242,.F.);\r
+-#6245=ORIENTED_EDGE('',*,*,#6244,.F.);\r
+-#6246=EDGE_LOOP('',(#6220,#6222,#6224,#6226,#6228,#6230,#6231,#6233,#6235,#6237,\r
+-#6239,#6241,#6243,#6245));\r
+-#6247=FACE_OUTER_BOUND('',#6246,.F.);\r
+-#6249=ORIENTED_EDGE('',*,*,#6248,.F.);\r
+-#6251=ORIENTED_EDGE('',*,*,#6250,.F.);\r
+-#6252=EDGE_LOOP('',(#6249,#6251));\r
+-#6253=FACE_BOUND('',#6252,.F.);\r
+-#6255=ORIENTED_EDGE('',*,*,#6254,.F.);\r
+-#6257=ORIENTED_EDGE('',*,*,#6256,.F.);\r
+-#6258=EDGE_LOOP('',(#6255,#6257));\r
+-#6259=FACE_BOUND('',#6258,.F.);\r
+-#6261=ORIENTED_EDGE('',*,*,#6260,.F.);\r
+-#6263=ORIENTED_EDGE('',*,*,#6262,.F.);\r
+-#6264=EDGE_LOOP('',(#6261,#6263));\r
+-#6265=FACE_BOUND('',#6264,.F.);\r
+-#6267=ORIENTED_EDGE('',*,*,#6266,.F.);\r
+-#6269=ORIENTED_EDGE('',*,*,#6268,.F.);\r
+-#6270=EDGE_LOOP('',(#6267,#6269));\r
+-#6271=FACE_BOUND('',#6270,.F.);\r
+-#6273=ORIENTED_EDGE('',*,*,#6272,.F.);\r
+-#6275=ORIENTED_EDGE('',*,*,#6274,.F.);\r
+-#6276=EDGE_LOOP('',(#6273,#6275));\r
+-#6277=FACE_BOUND('',#6276,.F.);\r
+-#6278=ADVANCED_FACE('',(#6247,#6253,#6259,#6265,#6271,#6277),#6219,.T.);\r
+-#6279=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));\r
+-#6280=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6281=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6282=AXIS2_PLACEMENT_3D('',#6279,#6280,#6281);\r
+-#6283=PLANE('',#6282);\r
+-#6284=ORIENTED_EDGE('',*,*,#6207,.T.);\r
+-#6285=ORIENTED_EDGE('',*,*,#6167,.T.);\r
+-#6287=ORIENTED_EDGE('',*,*,#6286,.T.);\r
+-#6289=ORIENTED_EDGE('',*,*,#6288,.F.);\r
+-#6291=ORIENTED_EDGE('',*,*,#6290,.T.);\r
+-#6293=ORIENTED_EDGE('',*,*,#6292,.F.);\r
+-#6295=ORIENTED_EDGE('',*,*,#6294,.F.);\r
+-#6297=ORIENTED_EDGE('',*,*,#6296,.T.);\r
+-#6299=ORIENTED_EDGE('',*,*,#6298,.F.);\r
+-#6301=ORIENTED_EDGE('',*,*,#6300,.T.);\r
+-#6303=ORIENTED_EDGE('',*,*,#6302,.F.);\r
+-#6305=ORIENTED_EDGE('',*,*,#6304,.F.);\r
+-#6307=ORIENTED_EDGE('',*,*,#6306,.F.);\r
+-#6309=ORIENTED_EDGE('',*,*,#6308,.T.);\r
+-#6311=ORIENTED_EDGE('',*,*,#6310,.F.);\r
+-#6313=ORIENTED_EDGE('',*,*,#6312,.T.);\r
+-#6315=ORIENTED_EDGE('',*,*,#6314,.F.);\r
+-#6317=ORIENTED_EDGE('',*,*,#6316,.T.);\r
+-#6319=ORIENTED_EDGE('',*,*,#6318,.T.);\r
+-#6321=ORIENTED_EDGE('',*,*,#6320,.T.);\r
+-#6323=ORIENTED_EDGE('',*,*,#6322,.F.);\r
+-#6324=ORIENTED_EDGE('',*,*,#5976,.T.);\r
+-#6326=ORIENTED_EDGE('',*,*,#6325,.T.);\r
+-#6327=ORIENTED_EDGE('',*,*,#6157,.T.);\r
+-#6329=ORIENTED_EDGE('',*,*,#6328,.F.);\r
+-#6331=ORIENTED_EDGE('',*,*,#6330,.F.);\r
+-#6332=EDGE_LOOP('',(#6284,#6285,#6287,#6289,#6291,#6293,#6295,#6297,#6299,#6301,\r
+-#6303,#6305,#6307,#6309,#6311,#6313,#6315,#6317,#6319,#6321,#6323,#6324,#6326,\r
+-#6327,#6329,#6331));\r
+-#6333=FACE_OUTER_BOUND('',#6332,.F.);\r
+-#6335=ORIENTED_EDGE('',*,*,#6334,.F.);\r
+-#6337=ORIENTED_EDGE('',*,*,#6336,.F.);\r
+-#6338=EDGE_LOOP('',(#6335,#6337));\r
+-#6339=FACE_BOUND('',#6338,.F.);\r
+-#6341=ORIENTED_EDGE('',*,*,#6340,.F.);\r
+-#6343=ORIENTED_EDGE('',*,*,#6342,.F.);\r
+-#6344=EDGE_LOOP('',(#6341,#6343));\r
+-#6345=FACE_BOUND('',#6344,.F.);\r
+-#6347=ORIENTED_EDGE('',*,*,#6346,.T.);\r
+-#6349=ORIENTED_EDGE('',*,*,#6348,.T.);\r
+-#6350=EDGE_LOOP('',(#6347,#6349));\r
+-#6351=FACE_BOUND('',#6350,.F.);\r
+-#6353=ORIENTED_EDGE('',*,*,#6352,.T.);\r
+-#6355=ORIENTED_EDGE('',*,*,#6354,.T.);\r
+-#6356=EDGE_LOOP('',(#6353,#6355));\r
+-#6357=FACE_BOUND('',#6356,.F.);\r
+-#6359=ORIENTED_EDGE('',*,*,#6358,.F.);\r
+-#6361=ORIENTED_EDGE('',*,*,#6360,.F.);\r
+-#6362=EDGE_LOOP('',(#6359,#6361));\r
+-#6363=FACE_BOUND('',#6362,.F.);\r
+-#6365=ORIENTED_EDGE('',*,*,#6364,.F.);\r
+-#6367=ORIENTED_EDGE('',*,*,#6366,.F.);\r
+-#6368=EDGE_LOOP('',(#6365,#6367));\r
+-#6369=FACE_BOUND('',#6368,.F.);\r
+-#6371=ORIENTED_EDGE('',*,*,#6370,.F.);\r
+-#6373=ORIENTED_EDGE('',*,*,#6372,.F.);\r
+-#6374=EDGE_LOOP('',(#6371,#6373));\r
+-#6375=FACE_BOUND('',#6374,.F.);\r
+-#6377=ORIENTED_EDGE('',*,*,#6376,.F.);\r
+-#6379=ORIENTED_EDGE('',*,*,#6378,.F.);\r
+-#6380=EDGE_LOOP('',(#6377,#6379));\r
+-#6381=FACE_BOUND('',#6380,.F.);\r
+-#6383=ORIENTED_EDGE('',*,*,#6382,.F.);\r
+-#6385=ORIENTED_EDGE('',*,*,#6384,.F.);\r
+-#6386=EDGE_LOOP('',(#6383,#6385));\r
+-#6387=FACE_BOUND('',#6386,.F.);\r
+-#6389=ORIENTED_EDGE('',*,*,#6388,.F.);\r
+-#6391=ORIENTED_EDGE('',*,*,#6390,.F.);\r
+-#6392=EDGE_LOOP('',(#6389,#6391));\r
+-#6393=FACE_BOUND('',#6392,.F.);\r
+-#6395=ORIENTED_EDGE('',*,*,#6394,.F.);\r
+-#6397=ORIENTED_EDGE('',*,*,#6396,.F.);\r
+-#6398=EDGE_LOOP('',(#6395,#6397));\r
+-#6399=FACE_BOUND('',#6398,.F.);\r
+-#6401=ORIENTED_EDGE('',*,*,#6400,.T.);\r
+-#6403=ORIENTED_EDGE('',*,*,#6402,.F.);\r
+-#6405=ORIENTED_EDGE('',*,*,#6404,.F.);\r
+-#6407=ORIENTED_EDGE('',*,*,#6406,.F.);\r
+-#6409=ORIENTED_EDGE('',*,*,#6408,.T.);\r
+-#6411=ORIENTED_EDGE('',*,*,#6410,.F.);\r
+-#6413=ORIENTED_EDGE('',*,*,#6412,.T.);\r
+-#6415=ORIENTED_EDGE('',*,*,#6414,.F.);\r
+-#6416=EDGE_LOOP('',(#6401,#6403,#6405,#6407,#6409,#6411,#6413,#6415));\r
+-#6417=FACE_BOUND('',#6416,.F.);\r
+-#6419=ORIENTED_EDGE('',*,*,#6418,.F.);\r
+-#6421=ORIENTED_EDGE('',*,*,#6420,.F.);\r
+-#6423=ORIENTED_EDGE('',*,*,#6422,.T.);\r
+-#6425=ORIENTED_EDGE('',*,*,#6424,.F.);\r
+-#6427=ORIENTED_EDGE('',*,*,#6426,.T.);\r
+-#6429=ORIENTED_EDGE('',*,*,#6428,.F.);\r
+-#6431=ORIENTED_EDGE('',*,*,#6430,.T.);\r
+-#6433=ORIENTED_EDGE('',*,*,#6432,.F.);\r
+-#6435=ORIENTED_EDGE('',*,*,#6434,.F.);\r
+-#6437=ORIENTED_EDGE('',*,*,#6436,.F.);\r
+-#6439=ORIENTED_EDGE('',*,*,#6438,.F.);\r
+-#6441=ORIENTED_EDGE('',*,*,#6440,.T.);\r
+-#6443=ORIENTED_EDGE('',*,*,#6442,.F.);\r
+-#6445=ORIENTED_EDGE('',*,*,#6444,.F.);\r
+-#6447=ORIENTED_EDGE('',*,*,#6446,.T.);\r
+-#6449=ORIENTED_EDGE('',*,*,#6448,.F.);\r
+-#6450=EDGE_LOOP('',(#6419,#6421,#6423,#6425,#6427,#6429,#6431,#6433,#6435,#6437,\r
+-#6439,#6441,#6443,#6445,#6447,#6449));\r
+-#6451=FACE_BOUND('',#6450,.F.);\r
+-#6453=ORIENTED_EDGE('',*,*,#6452,.F.);\r
+-#6455=ORIENTED_EDGE('',*,*,#6454,.F.);\r
+-#6456=EDGE_LOOP('',(#6453,#6455));\r
+-#6457=FACE_BOUND('',#6456,.F.);\r
+-#6459=ORIENTED_EDGE('',*,*,#6458,.F.);\r
+-#6461=ORIENTED_EDGE('',*,*,#6460,.F.);\r
+-#6462=EDGE_LOOP('',(#6459,#6461));\r
+-#6463=FACE_BOUND('',#6462,.F.);\r
+-#6465=ORIENTED_EDGE('',*,*,#6464,.F.);\r
+-#6467=ORIENTED_EDGE('',*,*,#6466,.F.);\r
+-#6468=EDGE_LOOP('',(#6465,#6467));\r
+-#6469=FACE_BOUND('',#6468,.F.);\r
+-#6471=ORIENTED_EDGE('',*,*,#6470,.F.);\r
+-#6473=ORIENTED_EDGE('',*,*,#6472,.F.);\r
+-#6474=EDGE_LOOP('',(#6471,#6473));\r
+-#6475=FACE_BOUND('',#6474,.F.);\r
+-#6477=ORIENTED_EDGE('',*,*,#6476,.F.);\r
+-#6479=ORIENTED_EDGE('',*,*,#6478,.F.);\r
+-#6480=EDGE_LOOP('',(#6477,#6479));\r
+-#6481=FACE_BOUND('',#6480,.F.);\r
+-#6483=ORIENTED_EDGE('',*,*,#6482,.F.);\r
+-#6485=ORIENTED_EDGE('',*,*,#6484,.F.);\r
+-#6486=EDGE_LOOP('',(#6483,#6485));\r
+-#6487=FACE_BOUND('',#6486,.F.);\r
+-#6488=ADVANCED_FACE('',(#6333,#6339,#6345,#6351,#6357,#6363,#6369,#6375,#6381,\r
+-#6387,#6393,#6399,#6417,#6451,#6457,#6463,#6469,#6475,#6481,#6487),#6283,.T.);\r
+-#6489=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));\r
+-#6490=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6491=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6492=AXIS2_PLACEMENT_3D('',#6489,#6490,#6491);\r
+-#6493=CYLINDRICAL_SURFACE('',#6492,1.E-1);\r
+-#6494=ORIENTED_EDGE('',*,*,#6334,.T.);\r
+-#6496=ORIENTED_EDGE('',*,*,#6495,.F.);\r
+-#6498=ORIENTED_EDGE('',*,*,#6497,.F.);\r
+-#6500=ORIENTED_EDGE('',*,*,#6499,.T.);\r
+-#6501=EDGE_LOOP('',(#6494,#6496,#6498,#6500));\r
+-#6502=FACE_OUTER_BOUND('',#6501,.F.);\r
+-#6503=ADVANCED_FACE('',(#6502),#6493,.F.);\r
+-#6504=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));\r
+-#6505=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6506=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6507=AXIS2_PLACEMENT_3D('',#6504,#6505,#6506);\r
+-#6508=CYLINDRICAL_SURFACE('',#6507,1.E-1);\r
+-#6509=ORIENTED_EDGE('',*,*,#6336,.T.);\r
+-#6510=ORIENTED_EDGE('',*,*,#6499,.F.);\r
+-#6512=ORIENTED_EDGE('',*,*,#6511,.T.);\r
+-#6513=ORIENTED_EDGE('',*,*,#6495,.T.);\r
+-#6514=EDGE_LOOP('',(#6509,#6510,#6512,#6513));\r
+-#6515=FACE_OUTER_BOUND('',#6514,.F.);\r
+-#6516=ADVANCED_FACE('',(#6515),#6508,.F.);\r
+-#6517=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));\r
+-#6518=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6519=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6520=AXIS2_PLACEMENT_3D('',#6517,#6518,#6519);\r
+-#6521=CONICAL_SURFACE('',#6520,7.288815195685E-2,6.E1);\r
+-#6523=ORIENTED_EDGE('',*,*,#6522,.T.);\r
+-#6524=ORIENTED_EDGE('',*,*,#6511,.F.);\r
+-#6526=ORIENTED_EDGE('',*,*,#6525,.F.);\r
+-#6527=EDGE_LOOP('',(#6523,#6524,#6526));\r
+-#6528=FACE_OUTER_BOUND('',#6527,.F.);\r
+-#6529=ADVANCED_FACE('',(#6528),#6521,.F.);\r
+-#6530=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));\r
+-#6531=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6532=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6533=AXIS2_PLACEMENT_3D('',#6530,#6531,#6532);\r
+-#6534=CONICAL_SURFACE('',#6533,7.288815195685E-2,6.E1);\r
+-#6535=ORIENTED_EDGE('',*,*,#6522,.F.);\r
+-#6536=ORIENTED_EDGE('',*,*,#6525,.T.);\r
+-#6537=ORIENTED_EDGE('',*,*,#6497,.T.);\r
+-#6538=EDGE_LOOP('',(#6535,#6536,#6537));\r
+-#6539=FACE_OUTER_BOUND('',#6538,.F.);\r
+-#6540=ADVANCED_FACE('',(#6539),#6534,.F.);\r
+-#6541=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));\r
+-#6542=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6543=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6544=AXIS2_PLACEMENT_3D('',#6541,#6542,#6543);\r
+-#6545=CYLINDRICAL_SURFACE('',#6544,1.E-1);\r
+-#6546=ORIENTED_EDGE('',*,*,#6340,.T.);\r
+-#6548=ORIENTED_EDGE('',*,*,#6547,.F.);\r
+-#6550=ORIENTED_EDGE('',*,*,#6549,.F.);\r
+-#6552=ORIENTED_EDGE('',*,*,#6551,.T.);\r
+-#6553=EDGE_LOOP('',(#6546,#6548,#6550,#6552));\r
+-#6554=FACE_OUTER_BOUND('',#6553,.F.);\r
+-#6555=ADVANCED_FACE('',(#6554),#6545,.F.);\r
+-#6556=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));\r
+-#6557=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6558=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6559=AXIS2_PLACEMENT_3D('',#6556,#6557,#6558);\r
+-#6560=CYLINDRICAL_SURFACE('',#6559,1.E-1);\r
+-#6561=ORIENTED_EDGE('',*,*,#6342,.T.);\r
+-#6562=ORIENTED_EDGE('',*,*,#6551,.F.);\r
+-#6564=ORIENTED_EDGE('',*,*,#6563,.T.);\r
+-#6565=ORIENTED_EDGE('',*,*,#6547,.T.);\r
+-#6566=EDGE_LOOP('',(#6561,#6562,#6564,#6565));\r
+-#6567=FACE_OUTER_BOUND('',#6566,.F.);\r
+-#6568=ADVANCED_FACE('',(#6567),#6560,.F.);\r
+-#6569=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));\r
+-#6570=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6571=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6572=AXIS2_PLACEMENT_3D('',#6569,#6570,#6571);\r
+-#6573=CONICAL_SURFACE('',#6572,7.288815195685E-2,6.E1);\r
+-#6575=ORIENTED_EDGE('',*,*,#6574,.T.);\r
+-#6576=ORIENTED_EDGE('',*,*,#6563,.F.);\r
+-#6578=ORIENTED_EDGE('',*,*,#6577,.F.);\r
+-#6579=EDGE_LOOP('',(#6575,#6576,#6578));\r
+-#6580=FACE_OUTER_BOUND('',#6579,.F.);\r
+-#6581=ADVANCED_FACE('',(#6580),#6573,.F.);\r
+-#6582=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));\r
+-#6583=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6584=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6585=AXIS2_PLACEMENT_3D('',#6582,#6583,#6584);\r
+-#6586=CONICAL_SURFACE('',#6585,7.288815195685E-2,6.E1);\r
+-#6587=ORIENTED_EDGE('',*,*,#6574,.F.);\r
+-#6588=ORIENTED_EDGE('',*,*,#6577,.T.);\r
+-#6589=ORIENTED_EDGE('',*,*,#6549,.T.);\r
+-#6590=EDGE_LOOP('',(#6587,#6588,#6589));\r
+-#6591=FACE_OUTER_BOUND('',#6590,.F.);\r
+-#6592=ADVANCED_FACE('',(#6591),#6586,.F.);\r
+-#6593=CARTESIAN_POINT('',(2.046862696660E1,-7.805924235695E-2,7.E0));\r
+-#6594=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6595=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6596=AXIS2_PLACEMENT_3D('',#6593,#6594,#6595);\r
+-#6597=CYLINDRICAL_SURFACE('',#6596,1.E0);\r
+-#6598=ORIENTED_EDGE('',*,*,#5961,.F.);\r
+-#6599=ORIENTED_EDGE('',*,*,#5550,.T.);\r
+-#6601=ORIENTED_EDGE('',*,*,#6600,.T.);\r
+-#6602=ORIENTED_EDGE('',*,*,#6221,.T.);\r
+-#6603=EDGE_LOOP('',(#6598,#6599,#6601,#6602));\r
+-#6604=FACE_OUTER_BOUND('',#6603,.F.);\r
+-#6605=ADVANCED_FACE('',(#6604),#6597,.F.);\r
+-#6606=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,7.5E0));\r
+-#6607=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6608=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6609=AXIS2_PLACEMENT_3D('',#6606,#6607,#6608);\r
+-#6610=CYLINDRICAL_SURFACE('',#6609,5.E0);\r
+-#6611=ORIENTED_EDGE('',*,*,#6600,.F.);\r
+-#6612=ORIENTED_EDGE('',*,*,#5548,.T.);\r
+-#6614=ORIENTED_EDGE('',*,*,#6613,.F.);\r
+-#6615=ORIENTED_EDGE('',*,*,#6223,.T.);\r
+-#6616=EDGE_LOOP('',(#6611,#6612,#6614,#6615));\r
+-#6617=FACE_OUTER_BOUND('',#6616,.F.);\r
+-#6618=ADVANCED_FACE('',(#6617),#6610,.F.);\r
+-#6619=CARTESIAN_POINT('',(2.15E1,1.5E0,2.5E0));\r
+-#6620=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6621=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6622=AXIS2_PLACEMENT_3D('',#6619,#6620,#6621);\r
+-#6623=PLANE('',#6622);\r
+-#6625=ORIENTED_EDGE('',*,*,#6624,.F.);\r
+-#6626=ORIENTED_EDGE('',*,*,#6225,.F.);\r
+-#6627=ORIENTED_EDGE('',*,*,#6613,.T.);\r
+-#6628=ORIENTED_EDGE('',*,*,#5546,.T.);\r
+-#6629=EDGE_LOOP('',(#6625,#6626,#6627,#6628));\r
+-#6630=FACE_OUTER_BOUND('',#6629,.F.);\r
+-#6631=ADVANCED_FACE('',(#6630),#6623,.F.);\r
+-#6632=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,7.5E0));\r
+-#6633=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6634=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6635=AXIS2_PLACEMENT_3D('',#6632,#6633,#6634);\r
+-#6636=CYLINDRICAL_SURFACE('',#6635,5.E0);\r
+-#6638=ORIENTED_EDGE('',*,*,#6637,.F.);\r
+-#6639=ORIENTED_EDGE('',*,*,#6227,.T.);\r
+-#6640=ORIENTED_EDGE('',*,*,#6624,.T.);\r
+-#6641=ORIENTED_EDGE('',*,*,#5544,.T.);\r
+-#6642=EDGE_LOOP('',(#6638,#6639,#6640,#6641));\r
+-#6643=FACE_OUTER_BOUND('',#6642,.F.);\r
+-#6644=ADVANCED_FACE('',(#6643),#6636,.F.);\r
+-#6645=CARTESIAN_POINT('',(3.531373033403E0,1.157860978230E1,7.E0));\r
+-#6646=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6647=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6648=AXIS2_PLACEMENT_3D('',#6645,#6646,#6647);\r
+-#6649=CYLINDRICAL_SURFACE('',#6648,1.E0);\r
+-#6650=ORIENTED_EDGE('',*,*,#5991,.F.);\r
+-#6651=ORIENTED_EDGE('',*,*,#6229,.T.);\r
+-#6652=ORIENTED_EDGE('',*,*,#6637,.T.);\r
+-#6653=ORIENTED_EDGE('',*,*,#5542,.T.);\r
+-#6654=EDGE_LOOP('',(#6650,#6651,#6652,#6653));\r
+-#6655=FACE_OUTER_BOUND('',#6654,.F.);\r
+-#6656=ADVANCED_FACE('',(#6655),#6649,.F.);\r
+-#6657=CARTESIAN_POINT('',(-1.E0,1.161044894892E1,7.E0));\r
+-#6658=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6659=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6660=AXIS2_PLACEMENT_3D('',#6657,#6658,#6659);\r
+-#6661=CYLINDRICAL_SURFACE('',#6660,1.E0);\r
+-#6663=ORIENTED_EDGE('',*,*,#6662,.F.);\r
+-#6664=ORIENTED_EDGE('',*,*,#6232,.T.);\r
+-#6665=ORIENTED_EDGE('',*,*,#5987,.T.);\r
+-#6666=ORIENTED_EDGE('',*,*,#5508,.T.);\r
+-#6667=EDGE_LOOP('',(#6663,#6664,#6665,#6666));\r
+-#6668=FACE_OUTER_BOUND('',#6667,.F.);\r
+-#6669=ADVANCED_FACE('',(#6668),#6661,.F.);\r
+-#6670=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));\r
+-#6671=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6672=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6673=AXIS2_PLACEMENT_3D('',#6670,#6671,#6672);\r
+-#6674=PLANE('',#6673);\r
+-#6676=ORIENTED_EDGE('',*,*,#6675,.T.);\r
+-#6677=ORIENTED_EDGE('',*,*,#6302,.T.);\r
+-#6679=ORIENTED_EDGE('',*,*,#6678,.F.);\r
+-#6680=ORIENTED_EDGE('',*,*,#5520,.F.);\r
+-#6681=EDGE_LOOP('',(#6676,#6677,#6679,#6680));\r
+-#6682=FACE_OUTER_BOUND('',#6681,.F.);\r
+-#6683=ADVANCED_FACE('',(#6682),#6674,.T.);\r
+-#6684=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));\r
+-#6685=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6686=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6687=AXIS2_PLACEMENT_3D('',#6684,#6685,#6686);\r
+-#6688=PLANE('',#6687);\r
+-#6689=ORIENTED_EDGE('',*,*,#6662,.T.);\r
+-#6690=ORIENTED_EDGE('',*,*,#5506,.F.);\r
+-#6692=ORIENTED_EDGE('',*,*,#6691,.T.);\r
+-#6693=ORIENTED_EDGE('',*,*,#6234,.T.);\r
+-#6694=EDGE_LOOP('',(#6689,#6690,#6692,#6693));\r
+-#6695=FACE_OUTER_BOUND('',#6694,.F.);\r
+-#6696=ADVANCED_FACE('',(#6695),#6688,.T.);\r
+-#6697=CARTESIAN_POINT('',(-1.E0,-5.722942641981E-2,1.325E1));\r
+-#6698=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6699=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6700=AXIS2_PLACEMENT_3D('',#6697,#6698,#6699);\r
+-#6701=CYLINDRICAL_SURFACE('',#6700,1.E0);\r
+-#6702=ORIENTED_EDGE('',*,*,#6675,.F.);\r
+-#6703=ORIENTED_EDGE('',*,*,#5518,.T.);\r
+-#6705=ORIENTED_EDGE('',*,*,#6704,.T.);\r
+-#6706=ORIENTED_EDGE('',*,*,#6304,.T.);\r
+-#6707=EDGE_LOOP('',(#6702,#6703,#6705,#6706));\r
+-#6708=FACE_OUTER_BOUND('',#6707,.F.);\r
+-#6709=ADVANCED_FACE('',(#6708),#6701,.F.);\r
+-#6710=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));\r
+-#6711=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6712=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6713=AXIS2_PLACEMENT_3D('',#6710,#6711,#6712);\r
+-#6714=PLANE('',#6713);\r
+-#6716=ORIENTED_EDGE('',*,*,#6715,.F.);\r
+-#6717=ORIENTED_EDGE('',*,*,#6442,.T.);\r
+-#6719=ORIENTED_EDGE('',*,*,#6718,.F.);\r
+-#6720=ORIENTED_EDGE('',*,*,#5668,.F.);\r
+-#6721=EDGE_LOOP('',(#6716,#6717,#6719,#6720));\r
+-#6722=FACE_OUTER_BOUND('',#6721,.F.);\r
+-#6723=ADVANCED_FACE('',(#6722),#6714,.T.);\r
+-#6724=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));\r
+-#6725=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6726=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6727=AXIS2_PLACEMENT_3D('',#6724,#6725,#6726);\r
+-#6728=PLANE('',#6727);\r
+-#6729=ORIENTED_EDGE('',*,*,#6704,.F.);\r
+-#6730=ORIENTED_EDGE('',*,*,#5516,.F.);\r
+-#6732=ORIENTED_EDGE('',*,*,#6731,.T.);\r
+-#6733=ORIENTED_EDGE('',*,*,#6306,.T.);\r
+-#6734=EDGE_LOOP('',(#6729,#6730,#6732,#6733));\r
+-#6735=FACE_OUTER_BOUND('',#6734,.F.);\r
+-#6736=ADVANCED_FACE('',(#6735),#6728,.T.);\r
+-#6737=CARTESIAN_POINT('',(3.5E0,1.566978255297E0,1.325E1));\r
+-#6738=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6739=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6740=AXIS2_PLACEMENT_3D('',#6737,#6738,#6739);\r
+-#6741=CYLINDRICAL_SURFACE('',#6740,1.E0);\r
+-#6743=ORIENTED_EDGE('',*,*,#6742,.F.);\r
+-#6744=ORIENTED_EDGE('',*,*,#6444,.T.);\r
+-#6745=ORIENTED_EDGE('',*,*,#6715,.T.);\r
+-#6746=ORIENTED_EDGE('',*,*,#5666,.T.);\r
+-#6747=EDGE_LOOP('',(#6743,#6744,#6745,#6746));\r
+-#6748=FACE_OUTER_BOUND('',#6747,.F.);\r
+-#6749=ADVANCED_FACE('',(#6748),#6741,.F.);\r
+-#6750=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));\r
+-#6751=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6752=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6753=AXIS2_PLACEMENT_3D('',#6750,#6751,#6752);\r
+-#6754=PLANE('',#6753);\r
+-#6756=ORIENTED_EDGE('',*,*,#6755,.T.);\r
+-#6757=ORIENTED_EDGE('',*,*,#5650,.T.);\r
+-#6759=ORIENTED_EDGE('',*,*,#6758,.F.);\r
+-#6760=ORIENTED_EDGE('',*,*,#6408,.F.);\r
+-#6761=EDGE_LOOP('',(#6756,#6757,#6759,#6760));\r
+-#6762=FACE_OUTER_BOUND('',#6761,.F.);\r
+-#6763=ADVANCED_FACE('',(#6762),#6754,.F.);\r
+-#6764=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));\r
+-#6765=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6766=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6767=AXIS2_PLACEMENT_3D('',#6764,#6765,#6766);\r
+-#6768=PLANE('',#6767);\r
+-#6770=ORIENTED_EDGE('',*,*,#6769,.T.);\r
+-#6771=ORIENTED_EDGE('',*,*,#6446,.F.);\r
+-#6772=ORIENTED_EDGE('',*,*,#6742,.T.);\r
+-#6773=ORIENTED_EDGE('',*,*,#5664,.T.);\r
+-#6774=EDGE_LOOP('',(#6770,#6771,#6772,#6773));\r
+-#6775=FACE_OUTER_BOUND('',#6774,.F.);\r
+-#6776=ADVANCED_FACE('',(#6775),#6768,.F.);\r
+-#6777=CARTESIAN_POINT('',(5.5E0,1.568923974228E0,2.19375E1));\r
+-#6778=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6779=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6780=AXIS2_PLACEMENT_3D('',#6777,#6778,#6779);\r
+-#6781=CYLINDRICAL_SURFACE('',#6780,3.E0);\r
+-#6782=ORIENTED_EDGE('',*,*,#6755,.F.);\r
+-#6783=ORIENTED_EDGE('',*,*,#6406,.T.);\r
+-#6785=ORIENTED_EDGE('',*,*,#6784,.T.);\r
+-#6786=ORIENTED_EDGE('',*,*,#5652,.T.);\r
+-#6787=EDGE_LOOP('',(#6782,#6783,#6785,#6786));\r
+-#6788=FACE_OUTER_BOUND('',#6787,.F.);\r
+-#6789=ADVANCED_FACE('',(#6788),#6781,.F.);\r
+-#6790=CARTESIAN_POINT('',(2.5E0,0.E0,1.89375E1));\r
+-#6791=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6792=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6793=AXIS2_PLACEMENT_3D('',#6790,#6791,#6792);\r
+-#6794=PLANE('',#6793);\r
+-#6795=ORIENTED_EDGE('',*,*,#6784,.F.);\r
+-#6796=ORIENTED_EDGE('',*,*,#6404,.T.);\r
+-#6798=ORIENTED_EDGE('',*,*,#6797,.F.);\r
+-#6799=ORIENTED_EDGE('',*,*,#5638,.F.);\r
+-#6800=EDGE_LOOP('',(#6795,#6796,#6798,#6799));\r
+-#6801=FACE_OUTER_BOUND('',#6800,.F.);\r
+-#6802=ADVANCED_FACE('',(#6801),#6794,.T.);\r
+-#6803=CARTESIAN_POINT('',(1.85E1,-5.889194178308E-2,2.19375E1));\r
+-#6804=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6805=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6806=AXIS2_PLACEMENT_3D('',#6803,#6804,#6805);\r
+-#6807=CYLINDRICAL_SURFACE('',#6806,3.E0);\r
+-#6809=ORIENTED_EDGE('',*,*,#6808,.F.);\r
+-#6810=ORIENTED_EDGE('',*,*,#5640,.T.);\r
+-#6811=ORIENTED_EDGE('',*,*,#6797,.T.);\r
+-#6812=ORIENTED_EDGE('',*,*,#6402,.T.);\r
+-#6813=EDGE_LOOP('',(#6809,#6810,#6811,#6812));\r
+-#6814=FACE_OUTER_BOUND('',#6813,.F.);\r
+-#6815=ADVANCED_FACE('',(#6814),#6807,.F.);\r
+-#6816=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));\r
+-#6817=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6818=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6819=AXIS2_PLACEMENT_3D('',#6816,#6817,#6818);\r
+-#6820=PLANE('',#6819);\r
+-#6821=ORIENTED_EDGE('',*,*,#6808,.T.);\r
+-#6822=ORIENTED_EDGE('',*,*,#6400,.F.);\r
+-#6824=ORIENTED_EDGE('',*,*,#6823,.T.);\r
+-#6825=ORIENTED_EDGE('',*,*,#5642,.T.);\r
+-#6826=EDGE_LOOP('',(#6821,#6822,#6824,#6825));\r
+-#6827=FACE_OUTER_BOUND('',#6826,.F.);\r
+-#6828=ADVANCED_FACE('',(#6827),#6820,.F.);\r
+-#6829=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));\r
+-#6830=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6831=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6832=AXIS2_PLACEMENT_3D('',#6829,#6830,#6831);\r
+-#6833=PLANE('',#6832);\r
+-#6835=ORIENTED_EDGE('',*,*,#6834,.T.);\r
+-#6836=ORIENTED_EDGE('',*,*,#5656,.T.);\r
+-#6838=ORIENTED_EDGE('',*,*,#6837,.T.);\r
+-#6839=ORIENTED_EDGE('',*,*,#6422,.F.);\r
+-#6840=EDGE_LOOP('',(#6835,#6836,#6838,#6839));\r
+-#6841=FACE_OUTER_BOUND('',#6840,.F.);\r
+-#6842=ADVANCED_FACE('',(#6841),#6833,.F.);\r
+-#6843=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,2.45E1));\r
+-#6844=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6845=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6846=AXIS2_PLACEMENT_3D('',#6843,#6844,#6845);\r
+-#6847=CYLINDRICAL_SURFACE('',#6846,5.E0);\r
+-#6848=ORIENTED_EDGE('',*,*,#6823,.F.);\r
+-#6849=ORIENTED_EDGE('',*,*,#6414,.T.);\r
+-#6851=ORIENTED_EDGE('',*,*,#6850,.T.);\r
+-#6852=ORIENTED_EDGE('',*,*,#5644,.T.);\r
+-#6853=EDGE_LOOP('',(#6848,#6849,#6851,#6852));\r
+-#6854=FACE_OUTER_BOUND('',#6853,.F.);\r
+-#6855=ADVANCED_FACE('',(#6854),#6847,.F.);\r
+-#6856=CARTESIAN_POINT('',(2.5E0,1.5E0,2.95E1));\r
+-#6857=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6858=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6859=AXIS2_PLACEMENT_3D('',#6856,#6857,#6858);\r
+-#6860=PLANE('',#6859);\r
+-#6862=ORIENTED_EDGE('',*,*,#6861,.T.);\r
+-#6863=ORIENTED_EDGE('',*,*,#5646,.T.);\r
+-#6864=ORIENTED_EDGE('',*,*,#6850,.F.);\r
+-#6865=ORIENTED_EDGE('',*,*,#6412,.F.);\r
+-#6866=EDGE_LOOP('',(#6862,#6863,#6864,#6865));\r
+-#6867=FACE_OUTER_BOUND('',#6866,.F.);\r
+-#6868=ADVANCED_FACE('',(#6867),#6860,.F.);\r
+-#6869=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,2.45E1));\r
+-#6870=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6871=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#6872=AXIS2_PLACEMENT_3D('',#6869,#6870,#6871);\r
+-#6873=CYLINDRICAL_SURFACE('',#6872,5.E0);\r
+-#6874=ORIENTED_EDGE('',*,*,#6861,.F.);\r
+-#6875=ORIENTED_EDGE('',*,*,#6410,.T.);\r
+-#6876=ORIENTED_EDGE('',*,*,#6758,.T.);\r
+-#6877=ORIENTED_EDGE('',*,*,#5648,.T.);\r
+-#6878=EDGE_LOOP('',(#6874,#6875,#6876,#6877));\r
+-#6879=FACE_OUTER_BOUND('',#6878,.F.);\r
+-#6880=ADVANCED_FACE('',(#6879),#6873,.F.);\r
+-#6881=CARTESIAN_POINT('',(1.85E1,1.568923974228E0,1.40625E1));\r
+-#6882=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6883=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883);\r
+-#6885=CYLINDRICAL_SURFACE('',#6884,3.E0);\r
+-#6886=ORIENTED_EDGE('',*,*,#6834,.F.);\r
+-#6887=ORIENTED_EDGE('',*,*,#6420,.T.);\r
+-#6889=ORIENTED_EDGE('',*,*,#6888,.T.);\r
+-#6890=ORIENTED_EDGE('',*,*,#5658,.T.);\r
+-#6891=EDGE_LOOP('',(#6886,#6887,#6889,#6890));\r
+-#6892=FACE_OUTER_BOUND('',#6891,.F.);\r
+-#6893=ADVANCED_FACE('',(#6892),#6885,.F.);\r
+-#6894=CARTESIAN_POINT('',(2.15E1,0.E0,1.70625E1));\r
+-#6895=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6896=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6897=AXIS2_PLACEMENT_3D('',#6894,#6895,#6896);\r
+-#6898=PLANE('',#6897);\r
+-#6899=ORIENTED_EDGE('',*,*,#6888,.F.);\r
+-#6900=ORIENTED_EDGE('',*,*,#6418,.T.);\r
+-#6902=ORIENTED_EDGE('',*,*,#6901,.F.);\r
+-#6903=ORIENTED_EDGE('',*,*,#5660,.F.);\r
+-#6904=EDGE_LOOP('',(#6899,#6900,#6902,#6903));\r
+-#6905=FACE_OUTER_BOUND('',#6904,.F.);\r
+-#6906=ADVANCED_FACE('',(#6905),#6898,.T.);\r
+-#6907=CARTESIAN_POINT('',(5.5E0,-5.889194178308E-2,1.40625E1));\r
+-#6908=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6909=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6910=AXIS2_PLACEMENT_3D('',#6907,#6908,#6909);\r
+-#6911=CYLINDRICAL_SURFACE('',#6910,3.E0);\r
+-#6912=ORIENTED_EDGE('',*,*,#6769,.F.);\r
+-#6913=ORIENTED_EDGE('',*,*,#5662,.T.);\r
+-#6914=ORIENTED_EDGE('',*,*,#6901,.T.);\r
+-#6915=ORIENTED_EDGE('',*,*,#6448,.T.);\r
+-#6916=EDGE_LOOP('',(#6912,#6913,#6914,#6915));\r
+-#6917=FACE_OUTER_BOUND('',#6916,.F.);\r
+-#6918=ADVANCED_FACE('',(#6917),#6911,.F.);\r
+-#6919=CARTESIAN_POINT('',(2.05E1,-5.889194178308E-2,1.325E1));\r
+-#6920=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#6921=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921);\r
+-#6923=CYLINDRICAL_SURFACE('',#6922,1.E0);\r
+-#6924=ORIENTED_EDGE('',*,*,#6837,.F.);\r
+-#6925=ORIENTED_EDGE('',*,*,#5686,.T.);\r
+-#6927=ORIENTED_EDGE('',*,*,#6926,.T.);\r
+-#6928=ORIENTED_EDGE('',*,*,#6424,.T.);\r
+-#6929=EDGE_LOOP('',(#6924,#6925,#6927,#6928));\r
+-#6930=FACE_OUTER_BOUND('',#6929,.F.);\r
+-#6931=ADVANCED_FACE('',(#6930),#6923,.F.);\r
+-#6932=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));\r
+-#6933=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6934=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6935=AXIS2_PLACEMENT_3D('',#6932,#6933,#6934);\r
+-#6936=PLANE('',#6935);\r
+-#6938=ORIENTED_EDGE('',*,*,#6937,.F.);\r
+-#6939=ORIENTED_EDGE('',*,*,#6290,.F.);\r
+-#6941=ORIENTED_EDGE('',*,*,#6940,.T.);\r
+-#6942=ORIENTED_EDGE('',*,*,#5532,.T.);\r
+-#6943=EDGE_LOOP('',(#6938,#6939,#6941,#6942));\r
+-#6944=FACE_OUTER_BOUND('',#6943,.F.);\r
+-#6945=ADVANCED_FACE('',(#6944),#6936,.F.);\r
+-#6946=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));\r
+-#6947=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6948=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6949=AXIS2_PLACEMENT_3D('',#6946,#6947,#6948);\r
+-#6950=PLANE('',#6949);\r
+-#6951=ORIENTED_EDGE('',*,*,#6926,.F.);\r
+-#6952=ORIENTED_EDGE('',*,*,#5684,.T.);\r
+-#6954=ORIENTED_EDGE('',*,*,#6953,.F.);\r
+-#6955=ORIENTED_EDGE('',*,*,#6426,.F.);\r
+-#6956=EDGE_LOOP('',(#6951,#6952,#6954,#6955));\r
+-#6957=FACE_OUTER_BOUND('',#6956,.F.);\r
+-#6958=ADVANCED_FACE('',(#6957),#6950,.F.);\r
+-#6959=CARTESIAN_POINT('',(2.5E1,1.568923974228E0,1.325E1));\r
+-#6960=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#6961=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#6962=AXIS2_PLACEMENT_3D('',#6959,#6960,#6961);\r
+-#6963=CYLINDRICAL_SURFACE('',#6962,1.E0);\r
+-#6965=ORIENTED_EDGE('',*,*,#6964,.F.);\r
+-#6966=ORIENTED_EDGE('',*,*,#6292,.T.);\r
+-#6967=ORIENTED_EDGE('',*,*,#6937,.T.);\r
+-#6968=ORIENTED_EDGE('',*,*,#5530,.T.);\r
+-#6969=EDGE_LOOP('',(#6965,#6966,#6967,#6968));\r
+-#6970=FACE_OUTER_BOUND('',#6969,.F.);\r
+-#6971=ADVANCED_FACE('',(#6970),#6963,.F.);\r
+-#6972=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));\r
+-#6973=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6974=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6975=AXIS2_PLACEMENT_3D('',#6972,#6973,#6974);\r
+-#6976=PLANE('',#6975);\r
+-#6977=ORIENTED_EDGE('',*,*,#6964,.T.);\r
+-#6978=ORIENTED_EDGE('',*,*,#5528,.F.);\r
+-#6980=ORIENTED_EDGE('',*,*,#6979,.T.);\r
+-#6981=ORIENTED_EDGE('',*,*,#6294,.T.);\r
+-#6982=EDGE_LOOP('',(#6977,#6978,#6980,#6981));\r
+-#6983=FACE_OUTER_BOUND('',#6982,.F.);\r
+-#6984=ADVANCED_FACE('',(#6983),#6976,.T.);\r
+-#6985=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));\r
+-#6986=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#6987=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#6988=AXIS2_PLACEMENT_3D('',#6985,#6986,#6987);\r
+-#6989=PLANE('',#6988);\r
+-#6991=ORIENTED_EDGE('',*,*,#6990,.T.);\r
+-#6992=ORIENTED_EDGE('',*,*,#6242,.T.);\r
+-#6994=ORIENTED_EDGE('',*,*,#6993,.F.);\r
+-#6995=ORIENTED_EDGE('',*,*,#5498,.F.);\r
+-#6996=EDGE_LOOP('',(#6991,#6992,#6994,#6995));\r
+-#6997=FACE_OUTER_BOUND('',#6996,.F.);\r
+-#6998=ADVANCED_FACE('',(#6997),#6989,.T.);\r
+-#6999=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
+-#7000=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#7001=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7002=AXIS2_PLACEMENT_3D('',#6999,#7000,#7001);\r
+-#7003=PLANE('',#7002);\r
+-#7004=ORIENTED_EDGE('',*,*,#6979,.F.);\r
+-#7005=ORIENTED_EDGE('',*,*,#5526,.T.);\r
+-#7007=ORIENTED_EDGE('',*,*,#7006,.T.);\r
+-#7008=ORIENTED_EDGE('',*,*,#6296,.F.);\r
+-#7009=EDGE_LOOP('',(#7004,#7005,#7007,#7008));\r
+-#7010=FACE_OUTER_BOUND('',#7009,.F.);\r
+-#7011=ADVANCED_FACE('',(#7010),#7003,.T.);\r
+-#7012=CARTESIAN_POINT('',(0.E0,0.E0,3.2E1));\r
+-#7013=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7014=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7015=AXIS2_PLACEMENT_3D('',#7012,#7013,#7014);\r
+-#7016=PLANE('',#7015);\r
+-#7017=ORIENTED_EDGE('',*,*,#5524,.F.);\r
+-#7019=ORIENTED_EDGE('',*,*,#7018,.T.);\r
+-#7020=ORIENTED_EDGE('',*,*,#6298,.T.);\r
+-#7021=ORIENTED_EDGE('',*,*,#7006,.F.);\r
+-#7022=EDGE_LOOP('',(#7017,#7019,#7020,#7021));\r
+-#7023=FACE_OUTER_BOUND('',#7022,.F.);\r
+-#7024=ADVANCED_FACE('',(#7023),#7016,.T.);\r
+-#7025=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
+-#7026=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#7027=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7028=AXIS2_PLACEMENT_3D('',#7025,#7026,#7027);\r
+-#7029=PLANE('',#7028);\r
+-#7030=ORIENTED_EDGE('',*,*,#7018,.F.);\r
+-#7031=ORIENTED_EDGE('',*,*,#5522,.T.);\r
+-#7032=ORIENTED_EDGE('',*,*,#6678,.T.);\r
+-#7033=ORIENTED_EDGE('',*,*,#6300,.F.);\r
+-#7034=EDGE_LOOP('',(#7030,#7031,#7032,#7033));\r
+-#7035=FACE_OUTER_BOUND('',#7034,.F.);\r
+-#7036=ADVANCED_FACE('',(#7035),#7029,.T.);\r
+-#7037=CARTESIAN_POINT('',(2.5E1,-7.055249658685E-2,7.E0));\r
+-#7038=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7039=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7040=AXIS2_PLACEMENT_3D('',#7037,#7038,#7039);\r
+-#7041=CYLINDRICAL_SURFACE('',#7040,1.E0);\r
+-#7042=ORIENTED_EDGE('',*,*,#6990,.F.);\r
+-#7043=ORIENTED_EDGE('',*,*,#5496,.T.);\r
+-#7044=ORIENTED_EDGE('',*,*,#5965,.T.);\r
+-#7045=ORIENTED_EDGE('',*,*,#6244,.T.);\r
+-#7046=EDGE_LOOP('',(#7042,#7043,#7044,#7045));\r
+-#7047=FACE_OUTER_BOUND('',#7046,.F.);\r
+-#7048=ADVANCED_FACE('',(#7047),#7041,.F.);\r
+-#7049=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
+-#7050=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#7051=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7052=AXIS2_PLACEMENT_3D('',#7049,#7050,#7051);\r
+-#7053=PLANE('',#7052);\r
+-#7055=ORIENTED_EDGE('',*,*,#7054,.F.);\r
+-#7056=ORIENTED_EDGE('',*,*,#5500,.T.);\r
+-#7057=ORIENTED_EDGE('',*,*,#6993,.T.);\r
+-#7058=ORIENTED_EDGE('',*,*,#6240,.F.);\r
+-#7059=EDGE_LOOP('',(#7055,#7056,#7057,#7058));\r
+-#7060=FACE_OUTER_BOUND('',#7059,.F.);\r
+-#7061=ADVANCED_FACE('',(#7060),#7053,.T.);\r
+-#7062=CARTESIAN_POINT('',(2.4E1,0.E0,0.E0));\r
+-#7063=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#7064=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7065=AXIS2_PLACEMENT_3D('',#7062,#7063,#7064);\r
+-#7066=PLANE('',#7065);\r
+-#7067=ORIENTED_EDGE('',*,*,#5502,.F.);\r
+-#7068=ORIENTED_EDGE('',*,*,#7054,.T.);\r
+-#7069=ORIENTED_EDGE('',*,*,#6238,.T.);\r
+-#7071=ORIENTED_EDGE('',*,*,#7070,.F.);\r
+-#7072=EDGE_LOOP('',(#7067,#7068,#7069,#7071));\r
+-#7073=FACE_OUTER_BOUND('',#7072,.F.);\r
+-#7074=ADVANCED_FACE('',(#7073),#7066,.T.);\r
+-#7075=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
+-#7076=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#7077=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7078=AXIS2_PLACEMENT_3D('',#7075,#7076,#7077);\r
+-#7079=PLANE('',#7078);\r
+-#7080=ORIENTED_EDGE('',*,*,#6691,.F.);\r
+-#7081=ORIENTED_EDGE('',*,*,#5504,.T.);\r
+-#7082=ORIENTED_EDGE('',*,*,#7070,.T.);\r
+-#7083=ORIENTED_EDGE('',*,*,#6236,.F.);\r
+-#7084=EDGE_LOOP('',(#7080,#7081,#7082,#7083));\r
+-#7085=FACE_OUTER_BOUND('',#7084,.F.);\r
+-#7086=ADVANCED_FACE('',(#7085),#7079,.T.);\r
+-#7087=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
+-#7088=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#7089=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7090=AXIS2_PLACEMENT_3D('',#7087,#7088,#7089);\r
+-#7091=PLANE('',#7090);\r
+-#7092=ORIENTED_EDGE('',*,*,#6940,.F.);\r
+-#7093=ORIENTED_EDGE('',*,*,#6288,.T.);\r
+-#7095=ORIENTED_EDGE('',*,*,#7094,.T.);\r
+-#7096=ORIENTED_EDGE('',*,*,#5534,.F.);\r
+-#7097=EDGE_LOOP('',(#7092,#7093,#7095,#7096));\r
+-#7098=FACE_OUTER_BOUND('',#7097,.F.);\r
+-#7099=ADVANCED_FACE('',(#7098),#7091,.T.);\r
+-#7100=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
+-#7101=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7102=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7103=AXIS2_PLACEMENT_3D('',#7100,#7101,#7102);\r
+-#7104=PLANE('',#7103);\r
+-#7105=ORIENTED_EDGE('',*,*,#5968,.T.);\r
+-#7106=ORIENTED_EDGE('',*,*,#5536,.T.);\r
+-#7107=ORIENTED_EDGE('',*,*,#7094,.F.);\r
+-#7108=ORIENTED_EDGE('',*,*,#6286,.F.);\r
+-#7109=ORIENTED_EDGE('',*,*,#6165,.F.);\r
+-#7111=ORIENTED_EDGE('',*,*,#7110,.F.);\r
+-#7112=EDGE_LOOP('',(#7105,#7106,#7107,#7108,#7109,#7111));\r
+-#7113=FACE_OUTER_BOUND('',#7112,.F.);\r
+-#7114=ADVANCED_FACE('',(#7113),#7104,.F.);\r
+-#7115=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
+-#7116=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));\r
+-#7117=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#7118=AXIS2_PLACEMENT_3D('',#7115,#7116,#7117);\r
+-#7119=PLANE('',#7118);\r
+-#7120=ORIENTED_EDGE('',*,*,#5970,.T.);\r
+-#7121=ORIENTED_EDGE('',*,*,#7110,.T.);\r
+-#7122=ORIENTED_EDGE('',*,*,#6163,.F.);\r
+-#7124=ORIENTED_EDGE('',*,*,#7123,.F.);\r
+-#7125=EDGE_LOOP('',(#7120,#7121,#7122,#7124));\r
+-#7126=FACE_OUTER_BOUND('',#7125,.F.);\r
+-#7127=ADVANCED_FACE('',(#7126),#7119,.F.);\r
+-#7128=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));\r
+-#7129=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7130=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7131=AXIS2_PLACEMENT_3D('',#7128,#7129,#7130);\r
+-#7132=PLANE('',#7131);\r
+-#7133=ORIENTED_EDGE('',*,*,#5972,.F.);\r
+-#7134=ORIENTED_EDGE('',*,*,#7123,.T.);\r
+-#7135=ORIENTED_EDGE('',*,*,#6161,.F.);\r
+-#7137=ORIENTED_EDGE('',*,*,#7136,.F.);\r
+-#7138=EDGE_LOOP('',(#7133,#7134,#7135,#7137));\r
+-#7139=FACE_OUTER_BOUND('',#7138,.F.);\r
+-#7141=ORIENTED_EDGE('',*,*,#7140,.T.);\r
+-#7143=ORIENTED_EDGE('',*,*,#7142,.T.);\r
+-#7144=EDGE_LOOP('',(#7141,#7143));\r
+-#7145=FACE_BOUND('',#7144,.F.);\r
+-#7147=ORIENTED_EDGE('',*,*,#7146,.T.);\r
+-#7149=ORIENTED_EDGE('',*,*,#7148,.T.);\r
+-#7150=EDGE_LOOP('',(#7147,#7149));\r
+-#7151=FACE_BOUND('',#7150,.F.);\r
+-#7152=ADVANCED_FACE('',(#7139,#7145,#7151),#7132,.F.);\r
+-#7153=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
+-#7154=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7155=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7156=AXIS2_PLACEMENT_3D('',#7153,#7154,#7155);\r
+-#7157=PLANE('',#7156);\r
+-#7159=ORIENTED_EDGE('',*,*,#7158,.T.);\r
+-#7160=ORIENTED_EDGE('',*,*,#6430,.F.);\r
+-#7162=ORIENTED_EDGE('',*,*,#7161,.T.);\r
+-#7163=ORIENTED_EDGE('',*,*,#5680,.T.);\r
+-#7164=EDGE_LOOP('',(#7159,#7160,#7162,#7163));\r
+-#7165=FACE_OUTER_BOUND('',#7164,.F.);\r
+-#7166=ADVANCED_FACE('',(#7165),#7157,.F.);\r
+-#7167=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
+-#7168=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7169=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7170=AXIS2_PLACEMENT_3D('',#7167,#7168,#7169);\r
+-#7171=PLANE('',#7170);\r
+-#7172=ORIENTED_EDGE('',*,*,#6325,.F.);\r
+-#7173=ORIENTED_EDGE('',*,*,#5974,.T.);\r
+-#7174=ORIENTED_EDGE('',*,*,#7136,.T.);\r
+-#7175=ORIENTED_EDGE('',*,*,#6159,.F.);\r
+-#7176=EDGE_LOOP('',(#7172,#7173,#7174,#7175));\r
+-#7177=FACE_OUTER_BOUND('',#7176,.F.);\r
+-#7178=ADVANCED_FACE('',(#7177),#7171,.F.);\r
+-#7179=CARTESIAN_POINT('',(1.8E1,-7.099592191979E-2,1.1E1));\r
+-#7180=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7181=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7182=AXIS2_PLACEMENT_3D('',#7179,#7180,#7181);\r
+-#7183=CYLINDRICAL_SURFACE('',#7182,1.E0);\r
+-#7184=ORIENTED_EDGE('',*,*,#7158,.F.);\r
+-#7185=ORIENTED_EDGE('',*,*,#5678,.T.);\r
+-#7187=ORIENTED_EDGE('',*,*,#7186,.T.);\r
+-#7188=ORIENTED_EDGE('',*,*,#6432,.T.);\r
+-#7189=EDGE_LOOP('',(#7184,#7185,#7187,#7188));\r
+-#7190=FACE_OUTER_BOUND('',#7189,.F.);\r
+-#7191=ADVANCED_FACE('',(#7190),#7183,.F.);\r
+-#7192=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));\r
+-#7193=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7194=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7195=AXIS2_PLACEMENT_3D('',#7192,#7193,#7194);\r
+-#7196=PLANE('',#7195);\r
+-#7198=ORIENTED_EDGE('',*,*,#7197,.F.);\r
+-#7199=ORIENTED_EDGE('',*,*,#6434,.T.);\r
+-#7200=ORIENTED_EDGE('',*,*,#7186,.F.);\r
+-#7201=ORIENTED_EDGE('',*,*,#5676,.F.);\r
+-#7202=EDGE_LOOP('',(#7198,#7199,#7200,#7201));\r
+-#7203=FACE_OUTER_BOUND('',#7202,.F.);\r
+-#7204=ADVANCED_FACE('',(#7203),#7196,.T.);\r
+-#7205=CARTESIAN_POINT('',(6.E0,1.567729432957E0,1.1E1));\r
+-#7206=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7207=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7208=AXIS2_PLACEMENT_3D('',#7205,#7206,#7207);\r
+-#7209=CYLINDRICAL_SURFACE('',#7208,1.E0);\r
+-#7211=ORIENTED_EDGE('',*,*,#7210,.F.);\r
+-#7212=ORIENTED_EDGE('',*,*,#6436,.T.);\r
+-#7213=ORIENTED_EDGE('',*,*,#7197,.T.);\r
+-#7214=ORIENTED_EDGE('',*,*,#5674,.T.);\r
+-#7215=EDGE_LOOP('',(#7211,#7212,#7213,#7214));\r
+-#7216=FACE_OUTER_BOUND('',#7215,.F.);\r
+-#7217=ADVANCED_FACE('',(#7216),#7209,.F.);\r
+-#7218=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
+-#7219=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7220=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7221=AXIS2_PLACEMENT_3D('',#7218,#7219,#7220);\r
+-#7222=PLANE('',#7221);\r
+-#7223=ORIENTED_EDGE('',*,*,#7210,.T.);\r
+-#7224=ORIENTED_EDGE('',*,*,#5672,.F.);\r
+-#7226=ORIENTED_EDGE('',*,*,#7225,.T.);\r
+-#7227=ORIENTED_EDGE('',*,*,#6438,.T.);\r
+-#7228=EDGE_LOOP('',(#7223,#7224,#7226,#7227));\r
+-#7229=FACE_OUTER_BOUND('',#7228,.F.);\r
+-#7230=ADVANCED_FACE('',(#7229),#7222,.T.);\r
+-#7231=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
+-#7232=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7233=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7234=AXIS2_PLACEMENT_3D('',#7231,#7232,#7233);\r
+-#7235=PLANE('',#7234);\r
+-#7236=ORIENTED_EDGE('',*,*,#6322,.T.);\r
+-#7238=ORIENTED_EDGE('',*,*,#7237,.T.);\r
+-#7240=ORIENTED_EDGE('',*,*,#7239,.F.);\r
+-#7241=ORIENTED_EDGE('',*,*,#5978,.T.);\r
+-#7242=EDGE_LOOP('',(#7236,#7238,#7240,#7241));\r
+-#7243=FACE_OUTER_BOUND('',#7242,.F.);\r
+-#7244=ADVANCED_FACE('',(#7243),#7235,.T.);\r
+-#7245=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
+-#7246=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#7247=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7248=AXIS2_PLACEMENT_3D('',#7245,#7246,#7247);\r
+-#7249=PLANE('',#7248);\r
+-#7250=ORIENTED_EDGE('',*,*,#7225,.F.);\r
+-#7251=ORIENTED_EDGE('',*,*,#5670,.T.);\r
+-#7252=ORIENTED_EDGE('',*,*,#6718,.T.);\r
+-#7253=ORIENTED_EDGE('',*,*,#6440,.F.);\r
+-#7254=EDGE_LOOP('',(#7250,#7251,#7252,#7253));\r
+-#7255=FACE_OUTER_BOUND('',#7254,.F.);\r
+-#7256=ADVANCED_FACE('',(#7255),#7249,.T.);\r
+-#7257=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));\r
+-#7258=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7259=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7260=AXIS2_PLACEMENT_3D('',#7257,#7258,#7259);\r
+-#7261=PLANE('',#7260);\r
+-#7263=ORIENTED_EDGE('',*,*,#7262,.F.);\r
+-#7264=ORIENTED_EDGE('',*,*,#6312,.F.);\r
+-#7266=ORIENTED_EDGE('',*,*,#7265,.F.);\r
+-#7268=ORIENTED_EDGE('',*,*,#7267,.F.);\r
+-#7270=ORIENTED_EDGE('',*,*,#7269,.F.);\r
+-#7271=ORIENTED_EDGE('',*,*,#7237,.F.);\r
+-#7272=ORIENTED_EDGE('',*,*,#6320,.F.);\r
+-#7274=ORIENTED_EDGE('',*,*,#7273,.T.);\r
+-#7276=ORIENTED_EDGE('',*,*,#7275,.F.);\r
+-#7277=EDGE_LOOP('',(#7263,#7264,#7266,#7268,#7270,#7271,#7272,#7274,#7276));\r
+-#7278=FACE_OUTER_BOUND('',#7277,.F.);\r
+-#7280=ORIENTED_EDGE('',*,*,#7279,.T.);\r
+-#7282=ORIENTED_EDGE('',*,*,#7281,.T.);\r
+-#7283=EDGE_LOOP('',(#7280,#7282));\r
+-#7284=FACE_BOUND('',#7283,.F.);\r
+-#7286=ORIENTED_EDGE('',*,*,#7285,.F.);\r
+-#7288=ORIENTED_EDGE('',*,*,#7287,.T.);\r
+-#7290=ORIENTED_EDGE('',*,*,#7289,.F.);\r
+-#7292=ORIENTED_EDGE('',*,*,#7291,.T.);\r
+-#7294=ORIENTED_EDGE('',*,*,#7293,.F.);\r
+-#7296=ORIENTED_EDGE('',*,*,#7295,.T.);\r
+-#7298=ORIENTED_EDGE('',*,*,#7297,.F.);\r
+-#7300=ORIENTED_EDGE('',*,*,#7299,.T.);\r
+-#7302=ORIENTED_EDGE('',*,*,#7301,.F.);\r
+-#7304=ORIENTED_EDGE('',*,*,#7303,.T.);\r
+-#7306=ORIENTED_EDGE('',*,*,#7305,.F.);\r
+-#7308=ORIENTED_EDGE('',*,*,#7307,.T.);\r
+-#7309=EDGE_LOOP('',(#7286,#7288,#7290,#7292,#7294,#7296,#7298,#7300,#7302,#7304,\r
+-#7306,#7308));\r
+-#7310=FACE_BOUND('',#7309,.F.);\r
+-#7311=ADVANCED_FACE('',(#7278,#7284,#7310),#7261,.T.);\r
+-#7312=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
+-#7313=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7314=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7315=AXIS2_PLACEMENT_3D('',#7312,#7313,#7314);\r
+-#7316=CYLINDRICAL_SURFACE('',#7315,1.625E-1);\r
+-#7317=ORIENTED_EDGE('',*,*,#6031,.T.);\r
+-#7319=ORIENTED_EDGE('',*,*,#7318,.T.);\r
+-#7320=ORIENTED_EDGE('',*,*,#7279,.F.);\r
+-#7322=ORIENTED_EDGE('',*,*,#7321,.F.);\r
+-#7323=EDGE_LOOP('',(#7317,#7319,#7320,#7322));\r
+-#7324=FACE_OUTER_BOUND('',#7323,.F.);\r
+-#7325=ADVANCED_FACE('',(#7324),#7316,.F.);\r
+-#7326=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
+-#7327=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7328=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7329=AXIS2_PLACEMENT_3D('',#7326,#7327,#7328);\r
+-#7330=CYLINDRICAL_SURFACE('',#7329,1.625E-1);\r
+-#7331=ORIENTED_EDGE('',*,*,#6033,.T.);\r
+-#7332=ORIENTED_EDGE('',*,*,#7321,.T.);\r
+-#7333=ORIENTED_EDGE('',*,*,#7281,.F.);\r
+-#7334=ORIENTED_EDGE('',*,*,#7318,.F.);\r
+-#7335=EDGE_LOOP('',(#7331,#7332,#7333,#7334));\r
+-#7336=FACE_OUTER_BOUND('',#7335,.F.);\r
+-#7337=ADVANCED_FACE('',(#7336),#7330,.F.);\r
+-#7338=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.2E1));\r
+-#7339=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7340=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7341=AXIS2_PLACEMENT_3D('',#7338,#7339,#7340);\r
+-#7342=PLANE('',#7341);\r
+-#7343=ORIENTED_EDGE('',*,*,#6314,.T.);\r
+-#7344=ORIENTED_EDGE('',*,*,#7262,.T.);\r
+-#7346=ORIENTED_EDGE('',*,*,#7345,.T.);\r
+-#7347=EDGE_LOOP('',(#7343,#7344,#7346));\r
+-#7348=FACE_OUTER_BOUND('',#7347,.F.);\r
+-#7349=ADVANCED_FACE('',(#7348),#7342,.F.);\r
+-#7350=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
+-#7351=DIRECTION('',(0.E0,5.E-1,8.660254037844E-1));\r
+-#7352=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
+-#7353=AXIS2_PLACEMENT_3D('',#7350,#7351,#7352);\r
+-#7354=PLANE('',#7353);\r
+-#7355=ORIENTED_EDGE('',*,*,#6316,.F.);\r
+-#7356=ORIENTED_EDGE('',*,*,#7345,.F.);\r
+-#7357=ORIENTED_EDGE('',*,*,#7275,.T.);\r
+-#7359=ORIENTED_EDGE('',*,*,#7358,.T.);\r
+-#7360=EDGE_LOOP('',(#7355,#7356,#7357,#7359));\r
+-#7361=FACE_OUTER_BOUND('',#7360,.F.);\r
+-#7363=ORIENTED_EDGE('',*,*,#7362,.T.);\r
+-#7365=ORIENTED_EDGE('',*,*,#7364,.T.);\r
+-#7366=EDGE_LOOP('',(#7363,#7365));\r
+-#7367=FACE_BOUND('',#7366,.F.);\r
+-#7368=ADVANCED_FACE('',(#7361,#7367),#7354,.T.);\r
+-#7369=CARTESIAN_POINT('',(2.E0,1.5E0,1.2E1));\r
+-#7370=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7371=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7372=AXIS2_PLACEMENT_3D('',#7369,#7370,#7371);\r
+-#7373=PLANE('',#7372);\r
+-#7374=ORIENTED_EDGE('',*,*,#6318,.F.);\r
+-#7375=ORIENTED_EDGE('',*,*,#7358,.F.);\r
+-#7376=ORIENTED_EDGE('',*,*,#7273,.F.);\r
+-#7377=EDGE_LOOP('',(#7374,#7375,#7376));\r
+-#7378=FACE_OUTER_BOUND('',#7377,.F.);\r
+-#7379=ADVANCED_FACE('',(#7378),#7373,.T.);\r
+-#7380=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
+-#7381=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7382=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7383=AXIS2_PLACEMENT_3D('',#7380,#7381,#7382);\r
+-#7384=CYLINDRICAL_SURFACE('',#7383,2.575E-1);\r
+-#7386=ORIENTED_EDGE('',*,*,#7385,.F.);\r
+-#7387=ORIENTED_EDGE('',*,*,#7362,.F.);\r
+-#7389=ORIENTED_EDGE('',*,*,#7388,.F.);\r
+-#7391=ORIENTED_EDGE('',*,*,#7390,.F.);\r
+-#7392=EDGE_LOOP('',(#7386,#7387,#7389,#7391));\r
+-#7393=FACE_OUTER_BOUND('',#7392,.F.);\r
+-#7394=ADVANCED_FACE('',(#7393),#7384,.F.);\r
+-#7395=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
+-#7396=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7397=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397);\r
+-#7399=CYLINDRICAL_SURFACE('',#7398,2.575E-1);\r
+-#7400=ORIENTED_EDGE('',*,*,#7388,.T.);\r
+-#7401=ORIENTED_EDGE('',*,*,#7364,.F.);\r
+-#7402=ORIENTED_EDGE('',*,*,#7385,.T.);\r
+-#7404=ORIENTED_EDGE('',*,*,#7403,.F.);\r
+-#7405=EDGE_LOOP('',(#7400,#7401,#7402,#7404));\r
+-#7406=FACE_OUTER_BOUND('',#7405,.F.);\r
+-#7407=ADVANCED_FACE('',(#7406),#7399,.F.);\r
+-#7408=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
+-#7409=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7410=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7411=AXIS2_PLACEMENT_3D('',#7408,#7409,#7410);\r
+-#7412=PLANE('',#7411);\r
+-#7413=ORIENTED_EDGE('',*,*,#7390,.T.);\r
+-#7414=ORIENTED_EDGE('',*,*,#7403,.T.);\r
+-#7415=EDGE_LOOP('',(#7413,#7414));\r
+-#7416=FACE_OUTER_BOUND('',#7415,.F.);\r
+-#7418=ORIENTED_EDGE('',*,*,#7417,.F.);\r
+-#7420=ORIENTED_EDGE('',*,*,#7419,.F.);\r
+-#7421=EDGE_LOOP('',(#7418,#7420));\r
+-#7422=FACE_BOUND('',#7421,.F.);\r
+-#7423=ADVANCED_FACE('',(#7416,#7422),#7412,.F.);\r
+-#7424=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
+-#7425=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7426=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7427=AXIS2_PLACEMENT_3D('',#7424,#7425,#7426);\r
+-#7428=CYLINDRICAL_SURFACE('',#7427,1.925E-1);\r
+-#7429=ORIENTED_EDGE('',*,*,#7417,.T.);\r
+-#7431=ORIENTED_EDGE('',*,*,#7430,.T.);\r
+-#7432=ORIENTED_EDGE('',*,*,#5620,.F.);\r
+-#7434=ORIENTED_EDGE('',*,*,#7433,.F.);\r
+-#7435=EDGE_LOOP('',(#7429,#7431,#7432,#7434));\r
+-#7436=FACE_OUTER_BOUND('',#7435,.F.);\r
+-#7437=ADVANCED_FACE('',(#7436),#7428,.F.);\r
+-#7438=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
+-#7439=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7440=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7441=AXIS2_PLACEMENT_3D('',#7438,#7439,#7440);\r
+-#7442=CYLINDRICAL_SURFACE('',#7441,1.925E-1);\r
+-#7443=ORIENTED_EDGE('',*,*,#7419,.T.);\r
+-#7444=ORIENTED_EDGE('',*,*,#7433,.T.);\r
+-#7445=ORIENTED_EDGE('',*,*,#5622,.F.);\r
+-#7446=ORIENTED_EDGE('',*,*,#7430,.F.);\r
+-#7447=EDGE_LOOP('',(#7443,#7444,#7445,#7446));\r
+-#7448=FACE_OUTER_BOUND('',#7447,.F.);\r
+-#7449=ADVANCED_FACE('',(#7448),#7442,.F.);\r
+-#7450=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));\r
+-#7451=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7452=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7453=AXIS2_PLACEMENT_3D('',#7450,#7451,#7452);\r
+-#7454=PLANE('',#7453);\r
+-#7455=ORIENTED_EDGE('',*,*,#7265,.T.);\r
+-#7456=ORIENTED_EDGE('',*,*,#6310,.T.);\r
+-#7458=ORIENTED_EDGE('',*,*,#7457,.F.);\r
+-#7459=ORIENTED_EDGE('',*,*,#5512,.F.);\r
+-#7460=ORIENTED_EDGE('',*,*,#5984,.T.);\r
+-#7462=ORIENTED_EDGE('',*,*,#7461,.T.);\r
+-#7463=EDGE_LOOP('',(#7455,#7456,#7458,#7459,#7460,#7462));\r
+-#7464=FACE_OUTER_BOUND('',#7463,.F.);\r
+-#7465=ADVANCED_FACE('',(#7464),#7454,.T.);\r
+-#7466=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
+-#7467=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#7468=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468);\r
+-#7470=PLANE('',#7469);\r
+-#7471=ORIENTED_EDGE('',*,*,#6731,.F.);\r
+-#7472=ORIENTED_EDGE('',*,*,#5514,.T.);\r
+-#7473=ORIENTED_EDGE('',*,*,#7457,.T.);\r
+-#7474=ORIENTED_EDGE('',*,*,#6308,.F.);\r
+-#7475=EDGE_LOOP('',(#7471,#7472,#7473,#7474));\r
+-#7476=FACE_OUTER_BOUND('',#7475,.F.);\r
+-#7477=ADVANCED_FACE('',(#7476),#7470,.T.);\r
+-#7478=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
+-#7479=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#7480=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#7481=AXIS2_PLACEMENT_3D('',#7478,#7479,#7480);\r
+-#7482=PLANE('',#7481);\r
+-#7483=ORIENTED_EDGE('',*,*,#5982,.F.);\r
+-#7485=ORIENTED_EDGE('',*,*,#7484,.T.);\r
+-#7486=ORIENTED_EDGE('',*,*,#7267,.T.);\r
+-#7487=ORIENTED_EDGE('',*,*,#7461,.F.);\r
+-#7488=EDGE_LOOP('',(#7483,#7485,#7486,#7487));\r
+-#7489=FACE_OUTER_BOUND('',#7488,.F.);\r
+-#7490=ADVANCED_FACE('',(#7489),#7482,.T.);\r
+-#7491=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
+-#7492=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7493=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7494=AXIS2_PLACEMENT_3D('',#7491,#7492,#7493);\r
+-#7495=PLANE('',#7494);\r
+-#7496=ORIENTED_EDGE('',*,*,#5980,.F.);\r
+-#7497=ORIENTED_EDGE('',*,*,#7239,.T.);\r
+-#7498=ORIENTED_EDGE('',*,*,#7269,.T.);\r
+-#7499=ORIENTED_EDGE('',*,*,#7484,.F.);\r
+-#7500=EDGE_LOOP('',(#7496,#7497,#7498,#7499));\r
+-#7501=FACE_OUTER_BOUND('',#7500,.F.);\r
+-#7503=ORIENTED_EDGE('',*,*,#7502,.F.);\r
+-#7505=ORIENTED_EDGE('',*,*,#7504,.F.);\r
+-#7506=EDGE_LOOP('',(#7503,#7505));\r
+-#7507=FACE_BOUND('',#7506,.F.);\r
+-#7509=ORIENTED_EDGE('',*,*,#7508,.F.);\r
+-#7511=ORIENTED_EDGE('',*,*,#7510,.F.);\r
+-#7512=EDGE_LOOP('',(#7509,#7511));\r
+-#7513=FACE_BOUND('',#7512,.F.);\r
+-#7514=ADVANCED_FACE('',(#7501,#7507,#7513),#7495,.T.);\r
+-#7515=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
+-#7516=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7517=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7518=AXIS2_PLACEMENT_3D('',#7515,#7516,#7517);\r
+-#7519=CYLINDRICAL_SURFACE('',#7518,9.5E-2);\r
+-#7520=ORIENTED_EDGE('',*,*,#7502,.T.);\r
+-#7522=ORIENTED_EDGE('',*,*,#7521,.T.);\r
+-#7524=ORIENTED_EDGE('',*,*,#7523,.F.);\r
+-#7526=ORIENTED_EDGE('',*,*,#7525,.F.);\r
+-#7527=EDGE_LOOP('',(#7520,#7522,#7524,#7526));\r
+-#7528=FACE_OUTER_BOUND('',#7527,.F.);\r
+-#7529=ADVANCED_FACE('',(#7528),#7519,.F.);\r
+-#7530=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
+-#7531=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7532=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7533=AXIS2_PLACEMENT_3D('',#7530,#7531,#7532);\r
+-#7534=CYLINDRICAL_SURFACE('',#7533,9.5E-2);\r
+-#7535=ORIENTED_EDGE('',*,*,#7504,.T.);\r
+-#7536=ORIENTED_EDGE('',*,*,#7525,.T.);\r
+-#7538=ORIENTED_EDGE('',*,*,#7537,.F.);\r
+-#7539=ORIENTED_EDGE('',*,*,#7521,.F.);\r
+-#7540=EDGE_LOOP('',(#7535,#7536,#7538,#7539));\r
+-#7541=FACE_OUTER_BOUND('',#7540,.F.);\r
+-#7542=ADVANCED_FACE('',(#7541),#7534,.F.);\r
+-#7543=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));\r
+-#7544=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7545=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7546=AXIS2_PLACEMENT_3D('',#7543,#7544,#7545);\r
+-#7547=PLANE('',#7546);\r
+-#7548=ORIENTED_EDGE('',*,*,#7523,.T.);\r
+-#7549=ORIENTED_EDGE('',*,*,#7537,.T.);\r
+-#7550=EDGE_LOOP('',(#7548,#7549));\r
+-#7551=FACE_OUTER_BOUND('',#7550,.F.);\r
+-#7552=ADVANCED_FACE('',(#7551),#7547,.F.);\r
+-#7553=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
+-#7554=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7555=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555);\r
+-#7557=CYLINDRICAL_SURFACE('',#7556,6.25E-2);\r
+-#7558=ORIENTED_EDGE('',*,*,#7508,.T.);\r
+-#7560=ORIENTED_EDGE('',*,*,#7559,.T.);\r
+-#7562=ORIENTED_EDGE('',*,*,#7561,.F.);\r
+-#7564=ORIENTED_EDGE('',*,*,#7563,.F.);\r
+-#7565=EDGE_LOOP('',(#7558,#7560,#7562,#7564));\r
+-#7566=FACE_OUTER_BOUND('',#7565,.F.);\r
+-#7567=ADVANCED_FACE('',(#7566),#7557,.F.);\r
+-#7568=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
+-#7569=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7570=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570);\r
+-#7572=CYLINDRICAL_SURFACE('',#7571,6.25E-2);\r
+-#7573=ORIENTED_EDGE('',*,*,#7510,.T.);\r
+-#7574=ORIENTED_EDGE('',*,*,#7563,.T.);\r
+-#7576=ORIENTED_EDGE('',*,*,#7575,.F.);\r
+-#7577=ORIENTED_EDGE('',*,*,#7559,.F.);\r
+-#7578=EDGE_LOOP('',(#7573,#7574,#7576,#7577));\r
+-#7579=FACE_OUTER_BOUND('',#7578,.F.);\r
+-#7580=ADVANCED_FACE('',(#7579),#7572,.F.);\r
+-#7581=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));\r
+-#7582=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7583=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7584=AXIS2_PLACEMENT_3D('',#7581,#7582,#7583);\r
+-#7585=PLANE('',#7584);\r
+-#7586=ORIENTED_EDGE('',*,*,#7561,.T.);\r
+-#7587=ORIENTED_EDGE('',*,*,#7575,.T.);\r
+-#7588=EDGE_LOOP('',(#7586,#7587));\r
+-#7589=FACE_OUTER_BOUND('',#7588,.F.);\r
+-#7590=ADVANCED_FACE('',(#7589),#7585,.F.);\r
+-#7591=CARTESIAN_POINT('',(2.15E0,6.65E0,9.441108058217E0));\r
+-#7592=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7593=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7594=AXIS2_PLACEMENT_3D('',#7591,#7592,#7593);\r
+-#7595=CYLINDRICAL_SURFACE('',#7594,3.5E-1);\r
+-#7597=ORIENTED_EDGE('',*,*,#7596,.T.);\r
+-#7598=ORIENTED_EDGE('',*,*,#7285,.T.);\r
+-#7600=ORIENTED_EDGE('',*,*,#7599,.F.);\r
+-#7602=ORIENTED_EDGE('',*,*,#7601,.T.);\r
+-#7603=EDGE_LOOP('',(#7597,#7598,#7600,#7602));\r
+-#7604=FACE_OUTER_BOUND('',#7603,.F.);\r
+-#7605=ADVANCED_FACE('',(#7604),#7595,.T.);\r
+-#7606=CARTESIAN_POINT('',(2.5E0,7.E0,1.E1));\r
+-#7607=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7608=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7609=AXIS2_PLACEMENT_3D('',#7606,#7607,#7608);\r
+-#7610=PLANE('',#7609);\r
+-#7611=ORIENTED_EDGE('',*,*,#7596,.F.);\r
+-#7613=ORIENTED_EDGE('',*,*,#7612,.T.);\r
+-#7615=ORIENTED_EDGE('',*,*,#7614,.F.);\r
+-#7616=ORIENTED_EDGE('',*,*,#7287,.F.);\r
+-#7617=EDGE_LOOP('',(#7611,#7613,#7615,#7616));\r
+-#7618=FACE_OUTER_BOUND('',#7617,.F.);\r
+-#7619=ADVANCED_FACE('',(#7618),#7610,.F.);\r
+-#7620=CARTESIAN_POINT('',(0.E0,0.E0,9.5E0));\r
+-#7621=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#7622=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622);\r
+-#7624=PLANE('',#7623);\r
+-#7625=ORIENTED_EDGE('',*,*,#7612,.F.);\r
+-#7626=ORIENTED_EDGE('',*,*,#7601,.F.);\r
+-#7628=ORIENTED_EDGE('',*,*,#7627,.F.);\r
+-#7630=ORIENTED_EDGE('',*,*,#7629,.F.);\r
+-#7632=ORIENTED_EDGE('',*,*,#7631,.F.);\r
+-#7634=ORIENTED_EDGE('',*,*,#7633,.F.);\r
+-#7636=ORIENTED_EDGE('',*,*,#7635,.F.);\r
+-#7638=ORIENTED_EDGE('',*,*,#7637,.F.);\r
+-#7640=ORIENTED_EDGE('',*,*,#7639,.F.);\r
+-#7642=ORIENTED_EDGE('',*,*,#7641,.F.);\r
+-#7644=ORIENTED_EDGE('',*,*,#7643,.F.);\r
+-#7646=ORIENTED_EDGE('',*,*,#7645,.F.);\r
+-#7647=EDGE_LOOP('',(#7625,#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7640,#7642,\r
+-#7644,#7646));\r
+-#7648=FACE_OUTER_BOUND('',#7647,.F.);\r
+-#7649=ADVANCED_FACE('',(#7648),#7624,.T.);\r
+-#7650=CARTESIAN_POINT('',(1.357969178416E0,7.E0,1.E1));\r
+-#7651=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7652=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7653=AXIS2_PLACEMENT_3D('',#7650,#7651,#7652);\r
+-#7654=PLANE('',#7653);\r
+-#7655=ORIENTED_EDGE('',*,*,#7599,.T.);\r
+-#7656=ORIENTED_EDGE('',*,*,#7307,.F.);\r
+-#7658=ORIENTED_EDGE('',*,*,#7657,.T.);\r
+-#7659=ORIENTED_EDGE('',*,*,#7627,.T.);\r
+-#7660=EDGE_LOOP('',(#7655,#7656,#7658,#7659));\r
+-#7661=FACE_OUTER_BOUND('',#7660,.F.);\r
+-#7662=ADVANCED_FACE('',(#7661),#7654,.F.);\r
+-#7663=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.006892397423E1));\r
+-#7664=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#7665=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7666=AXIS2_PLACEMENT_3D('',#7663,#7664,#7665);\r
+-#7667=CYLINDRICAL_SURFACE('',#7666,3.5E-1);\r
+-#7668=ORIENTED_EDGE('',*,*,#7657,.F.);\r
+-#7669=ORIENTED_EDGE('',*,*,#7305,.T.);\r
+-#7671=ORIENTED_EDGE('',*,*,#7670,.T.);\r
+-#7672=ORIENTED_EDGE('',*,*,#7629,.T.);\r
+-#7673=EDGE_LOOP('',(#7668,#7669,#7671,#7672));\r
+-#7674=FACE_OUTER_BOUND('',#7673,.F.);\r
+-#7675=ADVANCED_FACE('',(#7674),#7667,.F.);\r
+-#7676=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,1.E1));\r
+-#7677=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#7678=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678);\r
+-#7680=PLANE('',#7679);\r
+-#7681=ORIENTED_EDGE('',*,*,#7670,.F.);\r
+-#7682=ORIENTED_EDGE('',*,*,#7303,.F.);\r
+-#7684=ORIENTED_EDGE('',*,*,#7683,.T.);\r
+-#7685=ORIENTED_EDGE('',*,*,#7631,.T.);\r
+-#7686=EDGE_LOOP('',(#7681,#7682,#7684,#7685));\r
+-#7687=FACE_OUTER_BOUND('',#7686,.F.);\r
+-#7688=ADVANCED_FACE('',(#7687),#7680,.F.);\r
+-#7689=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.006892397423E1));\r
+-#7690=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#7691=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#7692=AXIS2_PLACEMENT_3D('',#7689,#7690,#7691);\r
+-#7693=CYLINDRICAL_SURFACE('',#7692,3.5E-1);\r
+-#7694=ORIENTED_EDGE('',*,*,#7683,.F.);\r
+-#7695=ORIENTED_EDGE('',*,*,#7301,.T.);\r
+-#7697=ORIENTED_EDGE('',*,*,#7696,.T.);\r
+-#7698=ORIENTED_EDGE('',*,*,#7633,.T.);\r
+-#7699=EDGE_LOOP('',(#7694,#7695,#7697,#7698));\r
+-#7700=FACE_OUTER_BOUND('',#7699,.F.);\r
+-#7701=ADVANCED_FACE('',(#7700),#7693,.F.);\r
+-#7702=CARTESIAN_POINT('',(4.5E0,9.5E0,1.E1));\r
+-#7703=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7704=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704);\r
+-#7706=PLANE('',#7705);\r
+-#7707=ORIENTED_EDGE('',*,*,#7696,.F.);\r
+-#7708=ORIENTED_EDGE('',*,*,#7299,.F.);\r
+-#7710=ORIENTED_EDGE('',*,*,#7709,.T.);\r
+-#7711=ORIENTED_EDGE('',*,*,#7635,.T.);\r
+-#7712=EDGE_LOOP('',(#7707,#7708,#7710,#7711));\r
+-#7713=FACE_OUTER_BOUND('',#7712,.F.);\r
+-#7714=ADVANCED_FACE('',(#7713),#7706,.F.);\r
+-#7715=CARTESIAN_POINT('',(4.15E0,9.15E0,1.006892397423E1));\r
+-#7716=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#7717=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7718=AXIS2_PLACEMENT_3D('',#7715,#7716,#7717);\r
+-#7719=CYLINDRICAL_SURFACE('',#7718,3.5E-1);\r
+-#7720=ORIENTED_EDGE('',*,*,#7709,.F.);\r
+-#7721=ORIENTED_EDGE('',*,*,#7297,.T.);\r
+-#7723=ORIENTED_EDGE('',*,*,#7722,.T.);\r
+-#7724=ORIENTED_EDGE('',*,*,#7637,.T.);\r
+-#7725=EDGE_LOOP('',(#7720,#7721,#7723,#7724));\r
+-#7726=FACE_OUTER_BOUND('',#7725,.F.);\r
+-#7727=ADVANCED_FACE('',(#7726),#7719,.F.);\r
+-#7728=CARTESIAN_POINT('',(4.5E0,2.E0,1.E1));\r
+-#7729=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7730=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7731=AXIS2_PLACEMENT_3D('',#7728,#7729,#7730);\r
+-#7732=PLANE('',#7731);\r
+-#7734=ORIENTED_EDGE('',*,*,#7733,.T.);\r
+-#7735=ORIENTED_EDGE('',*,*,#7639,.T.);\r
+-#7736=ORIENTED_EDGE('',*,*,#7722,.F.);\r
+-#7737=ORIENTED_EDGE('',*,*,#7295,.F.);\r
+-#7738=EDGE_LOOP('',(#7734,#7735,#7736,#7737));\r
+-#7739=FACE_OUTER_BOUND('',#7738,.F.);\r
+-#7740=ADVANCED_FACE('',(#7739),#7732,.F.);\r
+-#7741=CARTESIAN_POINT('',(4.15E0,2.35E0,1.006892397423E1));\r
+-#7742=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#7743=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7744=AXIS2_PLACEMENT_3D('',#7741,#7742,#7743);\r
+-#7745=CYLINDRICAL_SURFACE('',#7744,3.5E-1);\r
+-#7746=ORIENTED_EDGE('',*,*,#7733,.F.);\r
+-#7747=ORIENTED_EDGE('',*,*,#7293,.T.);\r
+-#7749=ORIENTED_EDGE('',*,*,#7748,.T.);\r
+-#7750=ORIENTED_EDGE('',*,*,#7641,.T.);\r
+-#7751=EDGE_LOOP('',(#7746,#7747,#7749,#7750));\r
+-#7752=FACE_OUTER_BOUND('',#7751,.F.);\r
+-#7753=ADVANCED_FACE('',(#7752),#7745,.F.);\r
+-#7754=CARTESIAN_POINT('',(2.5E0,2.E0,1.E1));\r
+-#7755=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7756=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7757=AXIS2_PLACEMENT_3D('',#7754,#7755,#7756);\r
+-#7758=PLANE('',#7757);\r
+-#7760=ORIENTED_EDGE('',*,*,#7759,.T.);\r
+-#7761=ORIENTED_EDGE('',*,*,#7643,.T.);\r
+-#7762=ORIENTED_EDGE('',*,*,#7748,.F.);\r
+-#7763=ORIENTED_EDGE('',*,*,#7291,.F.);\r
+-#7764=EDGE_LOOP('',(#7760,#7761,#7762,#7763));\r
+-#7765=FACE_OUTER_BOUND('',#7764,.F.);\r
+-#7766=ADVANCED_FACE('',(#7765),#7758,.F.);\r
+-#7767=CARTESIAN_POINT('',(2.85E0,2.35E0,1.006892397423E1));\r
+-#7768=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#7769=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7770=AXIS2_PLACEMENT_3D('',#7767,#7768,#7769);\r
+-#7771=CYLINDRICAL_SURFACE('',#7770,3.5E-1);\r
+-#7772=ORIENTED_EDGE('',*,*,#7759,.F.);\r
+-#7773=ORIENTED_EDGE('',*,*,#7289,.T.);\r
+-#7774=ORIENTED_EDGE('',*,*,#7614,.T.);\r
+-#7775=ORIENTED_EDGE('',*,*,#7645,.T.);\r
+-#7776=EDGE_LOOP('',(#7772,#7773,#7774,#7775));\r
+-#7777=FACE_OUTER_BOUND('',#7776,.F.);\r
+-#7778=ADVANCED_FACE('',(#7777),#7771,.F.);\r
+-#7779=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
+-#7780=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#7781=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7782=AXIS2_PLACEMENT_3D('',#7779,#7780,#7781);\r
+-#7783=PLANE('',#7782);\r
+-#7784=ORIENTED_EDGE('',*,*,#7161,.F.);\r
+-#7785=ORIENTED_EDGE('',*,*,#6428,.T.);\r
+-#7786=ORIENTED_EDGE('',*,*,#6953,.T.);\r
+-#7787=ORIENTED_EDGE('',*,*,#5682,.F.);\r
+-#7788=EDGE_LOOP('',(#7784,#7785,#7786,#7787));\r
+-#7789=FACE_OUTER_BOUND('',#7788,.F.);\r
+-#7790=ADVANCED_FACE('',(#7789),#7783,.T.);\r
+-#7791=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
+-#7792=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7793=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7794=AXIS2_PLACEMENT_3D('',#7791,#7792,#7793);\r
+-#7795=CYLINDRICAL_SURFACE('',#7794,9.5E-2);\r
+-#7796=ORIENTED_EDGE('',*,*,#7140,.F.);\r
+-#7798=ORIENTED_EDGE('',*,*,#7797,.T.);\r
+-#7800=ORIENTED_EDGE('',*,*,#7799,.T.);\r
+-#7802=ORIENTED_EDGE('',*,*,#7801,.F.);\r
+-#7803=EDGE_LOOP('',(#7796,#7798,#7800,#7802));\r
+-#7804=FACE_OUTER_BOUND('',#7803,.F.);\r
+-#7805=ADVANCED_FACE('',(#7804),#7795,.F.);\r
+-#7806=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
+-#7807=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7808=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7809=AXIS2_PLACEMENT_3D('',#7806,#7807,#7808);\r
+-#7810=CYLINDRICAL_SURFACE('',#7809,9.5E-2);\r
+-#7811=ORIENTED_EDGE('',*,*,#7142,.F.);\r
+-#7812=ORIENTED_EDGE('',*,*,#7801,.T.);\r
+-#7814=ORIENTED_EDGE('',*,*,#7813,.T.);\r
+-#7815=ORIENTED_EDGE('',*,*,#7797,.F.);\r
+-#7816=EDGE_LOOP('',(#7811,#7812,#7814,#7815));\r
+-#7817=FACE_OUTER_BOUND('',#7816,.F.);\r
+-#7818=ADVANCED_FACE('',(#7817),#7810,.F.);\r
+-#7819=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));\r
+-#7820=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7821=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7822=AXIS2_PLACEMENT_3D('',#7819,#7820,#7821);\r
+-#7823=PLANE('',#7822);\r
+-#7824=ORIENTED_EDGE('',*,*,#7799,.F.);\r
+-#7825=ORIENTED_EDGE('',*,*,#7813,.F.);\r
+-#7826=EDGE_LOOP('',(#7824,#7825));\r
+-#7827=FACE_OUTER_BOUND('',#7826,.F.);\r
+-#7828=ADVANCED_FACE('',(#7827),#7823,.T.);\r
+-#7829=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
+-#7830=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7831=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7832=AXIS2_PLACEMENT_3D('',#7829,#7830,#7831);\r
+-#7833=CYLINDRICAL_SURFACE('',#7832,6.25E-2);\r
+-#7834=ORIENTED_EDGE('',*,*,#7146,.F.);\r
+-#7836=ORIENTED_EDGE('',*,*,#7835,.T.);\r
+-#7838=ORIENTED_EDGE('',*,*,#7837,.T.);\r
+-#7840=ORIENTED_EDGE('',*,*,#7839,.F.);\r
+-#7841=EDGE_LOOP('',(#7834,#7836,#7838,#7840));\r
+-#7842=FACE_OUTER_BOUND('',#7841,.F.);\r
+-#7843=ADVANCED_FACE('',(#7842),#7833,.F.);\r
+-#7844=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
+-#7845=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7846=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7847=AXIS2_PLACEMENT_3D('',#7844,#7845,#7846);\r
+-#7848=CYLINDRICAL_SURFACE('',#7847,6.25E-2);\r
+-#7849=ORIENTED_EDGE('',*,*,#7148,.F.);\r
+-#7850=ORIENTED_EDGE('',*,*,#7839,.T.);\r
+-#7852=ORIENTED_EDGE('',*,*,#7851,.T.);\r
+-#7853=ORIENTED_EDGE('',*,*,#7835,.F.);\r
+-#7854=EDGE_LOOP('',(#7849,#7850,#7852,#7853));\r
+-#7855=FACE_OUTER_BOUND('',#7854,.F.);\r
+-#7856=ADVANCED_FACE('',(#7855),#7848,.F.);\r
+-#7857=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));\r
+-#7858=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7859=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7860=AXIS2_PLACEMENT_3D('',#7857,#7858,#7859);\r
+-#7861=PLANE('',#7860);\r
+-#7862=ORIENTED_EDGE('',*,*,#7837,.F.);\r
+-#7863=ORIENTED_EDGE('',*,*,#7851,.F.);\r
+-#7864=EDGE_LOOP('',(#7862,#7863));\r
+-#7865=FACE_OUTER_BOUND('',#7864,.F.);\r
+-#7866=ADVANCED_FACE('',(#7865),#7861,.T.);\r
+-#7867=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));\r
+-#7868=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7869=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7870=AXIS2_PLACEMENT_3D('',#7867,#7868,#7869);\r
+-#7871=CYLINDRICAL_SURFACE('',#7870,1.E-1);\r
+-#7872=ORIENTED_EDGE('',*,*,#6346,.F.);\r
+-#7874=ORIENTED_EDGE('',*,*,#7873,.F.);\r
+-#7876=ORIENTED_EDGE('',*,*,#7875,.T.);\r
+-#7878=ORIENTED_EDGE('',*,*,#7877,.T.);\r
+-#7879=EDGE_LOOP('',(#7872,#7874,#7876,#7878));\r
+-#7880=FACE_OUTER_BOUND('',#7879,.F.);\r
+-#7881=ADVANCED_FACE('',(#7880),#7871,.F.);\r
+-#7882=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));\r
+-#7883=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7884=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7885=AXIS2_PLACEMENT_3D('',#7882,#7883,#7884);\r
+-#7886=CYLINDRICAL_SURFACE('',#7885,1.E-1);\r
+-#7887=ORIENTED_EDGE('',*,*,#6348,.F.);\r
+-#7888=ORIENTED_EDGE('',*,*,#7877,.F.);\r
+-#7890=ORIENTED_EDGE('',*,*,#7889,.F.);\r
+-#7891=ORIENTED_EDGE('',*,*,#7873,.T.);\r
+-#7892=EDGE_LOOP('',(#7887,#7888,#7890,#7891));\r
+-#7893=FACE_OUTER_BOUND('',#7892,.F.);\r
+-#7894=ADVANCED_FACE('',(#7893),#7886,.F.);\r
+-#7895=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));\r
+-#7896=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7897=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7898=AXIS2_PLACEMENT_3D('',#7895,#7896,#7897);\r
+-#7899=CONICAL_SURFACE('',#7898,7.288815195685E-2,6.E1);\r
+-#7901=ORIENTED_EDGE('',*,*,#7900,.F.);\r
+-#7903=ORIENTED_EDGE('',*,*,#7902,.T.);\r
+-#7904=ORIENTED_EDGE('',*,*,#7889,.T.);\r
+-#7905=EDGE_LOOP('',(#7901,#7903,#7904));\r
+-#7906=FACE_OUTER_BOUND('',#7905,.F.);\r
+-#7907=ADVANCED_FACE('',(#7906),#7899,.F.);\r
+-#7908=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));\r
+-#7909=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7910=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7911=AXIS2_PLACEMENT_3D('',#7908,#7909,#7910);\r
+-#7912=CONICAL_SURFACE('',#7911,7.288815195685E-2,6.E1);\r
+-#7913=ORIENTED_EDGE('',*,*,#7900,.T.);\r
+-#7914=ORIENTED_EDGE('',*,*,#7875,.F.);\r
+-#7915=ORIENTED_EDGE('',*,*,#7902,.F.);\r
+-#7916=EDGE_LOOP('',(#7913,#7914,#7915));\r
+-#7917=FACE_OUTER_BOUND('',#7916,.F.);\r
+-#7918=ADVANCED_FACE('',(#7917),#7912,.F.);\r
+-#7919=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));\r
+-#7920=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7921=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7922=AXIS2_PLACEMENT_3D('',#7919,#7920,#7921);\r
+-#7923=CYLINDRICAL_SURFACE('',#7922,1.E-1);\r
+-#7924=ORIENTED_EDGE('',*,*,#6352,.F.);\r
+-#7926=ORIENTED_EDGE('',*,*,#7925,.F.);\r
+-#7928=ORIENTED_EDGE('',*,*,#7927,.T.);\r
+-#7930=ORIENTED_EDGE('',*,*,#7929,.T.);\r
+-#7931=EDGE_LOOP('',(#7924,#7926,#7928,#7930));\r
+-#7932=FACE_OUTER_BOUND('',#7931,.F.);\r
+-#7933=ADVANCED_FACE('',(#7932),#7923,.F.);\r
+-#7934=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));\r
+-#7935=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7936=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7937=AXIS2_PLACEMENT_3D('',#7934,#7935,#7936);\r
+-#7938=CYLINDRICAL_SURFACE('',#7937,1.E-1);\r
+-#7939=ORIENTED_EDGE('',*,*,#6354,.F.);\r
+-#7940=ORIENTED_EDGE('',*,*,#7929,.F.);\r
+-#7942=ORIENTED_EDGE('',*,*,#7941,.F.);\r
+-#7943=ORIENTED_EDGE('',*,*,#7925,.T.);\r
+-#7944=EDGE_LOOP('',(#7939,#7940,#7942,#7943));\r
+-#7945=FACE_OUTER_BOUND('',#7944,.F.);\r
+-#7946=ADVANCED_FACE('',(#7945),#7938,.F.);\r
+-#7947=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));\r
+-#7948=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7949=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7950=AXIS2_PLACEMENT_3D('',#7947,#7948,#7949);\r
+-#7951=CONICAL_SURFACE('',#7950,7.288815195685E-2,6.E1);\r
+-#7953=ORIENTED_EDGE('',*,*,#7952,.F.);\r
+-#7955=ORIENTED_EDGE('',*,*,#7954,.T.);\r
+-#7956=ORIENTED_EDGE('',*,*,#7941,.T.);\r
+-#7957=EDGE_LOOP('',(#7953,#7955,#7956));\r
+-#7958=FACE_OUTER_BOUND('',#7957,.F.);\r
+-#7959=ADVANCED_FACE('',(#7958),#7951,.F.);\r
+-#7960=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));\r
+-#7961=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#7962=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#7963=AXIS2_PLACEMENT_3D('',#7960,#7961,#7962);\r
+-#7964=CONICAL_SURFACE('',#7963,7.288815195685E-2,6.E1);\r
+-#7965=ORIENTED_EDGE('',*,*,#7952,.T.);\r
+-#7966=ORIENTED_EDGE('',*,*,#7927,.F.);\r
+-#7967=ORIENTED_EDGE('',*,*,#7954,.F.);\r
+-#7968=EDGE_LOOP('',(#7965,#7966,#7967));\r
+-#7969=FACE_OUTER_BOUND('',#7968,.F.);\r
+-#7970=ADVANCED_FACE('',(#7969),#7964,.F.);\r
+-#7971=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
+-#7972=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7973=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7974=AXIS2_PLACEMENT_3D('',#7971,#7972,#7973);\r
+-#7975=CYLINDRICAL_SURFACE('',#7974,2.575E-1);\r
+-#7976=ORIENTED_EDGE('',*,*,#6248,.T.);\r
+-#7978=ORIENTED_EDGE('',*,*,#7977,.T.);\r
+-#7980=ORIENTED_EDGE('',*,*,#7979,.F.);\r
+-#7982=ORIENTED_EDGE('',*,*,#7981,.F.);\r
+-#7983=EDGE_LOOP('',(#7976,#7978,#7980,#7982));\r
+-#7984=FACE_OUTER_BOUND('',#7983,.F.);\r
+-#7985=ADVANCED_FACE('',(#7984),#7975,.F.);\r
+-#7986=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
+-#7987=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#7988=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#7989=AXIS2_PLACEMENT_3D('',#7986,#7987,#7988);\r
+-#7990=CYLINDRICAL_SURFACE('',#7989,2.575E-1);\r
+-#7991=ORIENTED_EDGE('',*,*,#6250,.T.);\r
+-#7992=ORIENTED_EDGE('',*,*,#7981,.T.);\r
+-#7994=ORIENTED_EDGE('',*,*,#7993,.F.);\r
+-#7995=ORIENTED_EDGE('',*,*,#7977,.F.);\r
+-#7996=EDGE_LOOP('',(#7991,#7992,#7994,#7995));\r
+-#7997=FACE_OUTER_BOUND('',#7996,.F.);\r
+-#7998=ADVANCED_FACE('',(#7997),#7990,.F.);\r
+-#7999=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
+-#8000=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8001=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8002=AXIS2_PLACEMENT_3D('',#7999,#8000,#8001);\r
+-#8003=PLANE('',#8002);\r
+-#8004=ORIENTED_EDGE('',*,*,#7979,.T.);\r
+-#8005=ORIENTED_EDGE('',*,*,#7993,.T.);\r
+-#8006=EDGE_LOOP('',(#8004,#8005));\r
+-#8007=FACE_OUTER_BOUND('',#8006,.F.);\r
+-#8009=ORIENTED_EDGE('',*,*,#8008,.F.);\r
+-#8011=ORIENTED_EDGE('',*,*,#8010,.F.);\r
+-#8012=EDGE_LOOP('',(#8009,#8011));\r
+-#8013=FACE_BOUND('',#8012,.F.);\r
+-#8014=ADVANCED_FACE('',(#8007,#8013),#8003,.F.);\r
+-#8015=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
+-#8016=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8017=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8018=AXIS2_PLACEMENT_3D('',#8015,#8016,#8017);\r
+-#8019=CYLINDRICAL_SURFACE('',#8018,1.925E-1);\r
+-#8020=ORIENTED_EDGE('',*,*,#8008,.T.);\r
+-#8022=ORIENTED_EDGE('',*,*,#8021,.T.);\r
+-#8023=ORIENTED_EDGE('',*,*,#5626,.F.);\r
+-#8025=ORIENTED_EDGE('',*,*,#8024,.F.);\r
+-#8026=EDGE_LOOP('',(#8020,#8022,#8023,#8025));\r
+-#8027=FACE_OUTER_BOUND('',#8026,.F.);\r
+-#8028=ADVANCED_FACE('',(#8027),#8019,.F.);\r
+-#8029=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
+-#8030=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8031=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8032=AXIS2_PLACEMENT_3D('',#8029,#8030,#8031);\r
+-#8033=CYLINDRICAL_SURFACE('',#8032,1.925E-1);\r
+-#8034=ORIENTED_EDGE('',*,*,#8010,.T.);\r
+-#8035=ORIENTED_EDGE('',*,*,#8024,.T.);\r
+-#8036=ORIENTED_EDGE('',*,*,#5628,.F.);\r
+-#8037=ORIENTED_EDGE('',*,*,#8021,.F.);\r
+-#8038=EDGE_LOOP('',(#8034,#8035,#8036,#8037));\r
+-#8039=FACE_OUTER_BOUND('',#8038,.F.);\r
+-#8040=ADVANCED_FACE('',(#8039),#8033,.F.);\r
+-#8041=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
+-#8042=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8043=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8044=AXIS2_PLACEMENT_3D('',#8041,#8042,#8043);\r
+-#8045=CYLINDRICAL_SURFACE('',#8044,2.575E-1);\r
+-#8046=ORIENTED_EDGE('',*,*,#6358,.T.);\r
+-#8048=ORIENTED_EDGE('',*,*,#8047,.T.);\r
+-#8050=ORIENTED_EDGE('',*,*,#8049,.F.);\r
+-#8052=ORIENTED_EDGE('',*,*,#8051,.F.);\r
+-#8053=EDGE_LOOP('',(#8046,#8048,#8050,#8052));\r
+-#8054=FACE_OUTER_BOUND('',#8053,.F.);\r
+-#8055=ADVANCED_FACE('',(#8054),#8045,.F.);\r
+-#8056=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
+-#8057=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8058=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8059=AXIS2_PLACEMENT_3D('',#8056,#8057,#8058);\r
+-#8060=CYLINDRICAL_SURFACE('',#8059,2.575E-1);\r
+-#8061=ORIENTED_EDGE('',*,*,#6360,.T.);\r
+-#8062=ORIENTED_EDGE('',*,*,#8051,.T.);\r
+-#8064=ORIENTED_EDGE('',*,*,#8063,.F.);\r
+-#8065=ORIENTED_EDGE('',*,*,#8047,.F.);\r
+-#8066=EDGE_LOOP('',(#8061,#8062,#8064,#8065));\r
+-#8067=FACE_OUTER_BOUND('',#8066,.F.);\r
+-#8068=ADVANCED_FACE('',(#8067),#8060,.F.);\r
+-#8069=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
+-#8070=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8071=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8072=AXIS2_PLACEMENT_3D('',#8069,#8070,#8071);\r
+-#8073=PLANE('',#8072);\r
+-#8074=ORIENTED_EDGE('',*,*,#8049,.T.);\r
+-#8075=ORIENTED_EDGE('',*,*,#8063,.T.);\r
+-#8076=EDGE_LOOP('',(#8074,#8075));\r
+-#8077=FACE_OUTER_BOUND('',#8076,.F.);\r
+-#8079=ORIENTED_EDGE('',*,*,#8078,.F.);\r
+-#8081=ORIENTED_EDGE('',*,*,#8080,.F.);\r
+-#8082=EDGE_LOOP('',(#8079,#8081));\r
+-#8083=FACE_BOUND('',#8082,.F.);\r
+-#8084=ADVANCED_FACE('',(#8077,#8083),#8073,.F.);\r
+-#8085=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
+-#8086=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8087=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8088=AXIS2_PLACEMENT_3D('',#8085,#8086,#8087);\r
+-#8089=CYLINDRICAL_SURFACE('',#8088,1.925E-1);\r
+-#8090=ORIENTED_EDGE('',*,*,#8078,.T.);\r
+-#8092=ORIENTED_EDGE('',*,*,#8091,.T.);\r
+-#8093=ORIENTED_EDGE('',*,*,#5614,.F.);\r
+-#8095=ORIENTED_EDGE('',*,*,#8094,.F.);\r
+-#8096=EDGE_LOOP('',(#8090,#8092,#8093,#8095));\r
+-#8097=FACE_OUTER_BOUND('',#8096,.F.);\r
+-#8098=ADVANCED_FACE('',(#8097),#8089,.F.);\r
+-#8099=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
+-#8100=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8101=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8102=AXIS2_PLACEMENT_3D('',#8099,#8100,#8101);\r
+-#8103=CYLINDRICAL_SURFACE('',#8102,1.925E-1);\r
+-#8104=ORIENTED_EDGE('',*,*,#8080,.T.);\r
+-#8105=ORIENTED_EDGE('',*,*,#8094,.T.);\r
+-#8106=ORIENTED_EDGE('',*,*,#5616,.F.);\r
+-#8107=ORIENTED_EDGE('',*,*,#8091,.F.);\r
+-#8108=EDGE_LOOP('',(#8104,#8105,#8106,#8107));\r
+-#8109=FACE_OUTER_BOUND('',#8108,.F.);\r
+-#8110=ADVANCED_FACE('',(#8109),#8103,.F.);\r
+-#8111=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
+-#8112=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8113=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8114=AXIS2_PLACEMENT_3D('',#8111,#8112,#8113);\r
+-#8115=CYLINDRICAL_SURFACE('',#8114,2.575E-1);\r
+-#8116=ORIENTED_EDGE('',*,*,#6364,.T.);\r
+-#8118=ORIENTED_EDGE('',*,*,#8117,.T.);\r
+-#8120=ORIENTED_EDGE('',*,*,#8119,.F.);\r
+-#8122=ORIENTED_EDGE('',*,*,#8121,.F.);\r
+-#8123=EDGE_LOOP('',(#8116,#8118,#8120,#8122));\r
+-#8124=FACE_OUTER_BOUND('',#8123,.F.);\r
+-#8125=ADVANCED_FACE('',(#8124),#8115,.F.);\r
+-#8126=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
+-#8127=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8128=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8129=AXIS2_PLACEMENT_3D('',#8126,#8127,#8128);\r
+-#8130=CYLINDRICAL_SURFACE('',#8129,2.575E-1);\r
+-#8131=ORIENTED_EDGE('',*,*,#6366,.T.);\r
+-#8132=ORIENTED_EDGE('',*,*,#8121,.T.);\r
+-#8134=ORIENTED_EDGE('',*,*,#8133,.F.);\r
+-#8135=ORIENTED_EDGE('',*,*,#8117,.F.);\r
+-#8136=EDGE_LOOP('',(#8131,#8132,#8134,#8135));\r
+-#8137=FACE_OUTER_BOUND('',#8136,.F.);\r
+-#8138=ADVANCED_FACE('',(#8137),#8130,.F.);\r
+-#8139=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
+-#8140=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8141=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8142=AXIS2_PLACEMENT_3D('',#8139,#8140,#8141);\r
+-#8143=PLANE('',#8142);\r
+-#8144=ORIENTED_EDGE('',*,*,#8119,.T.);\r
+-#8145=ORIENTED_EDGE('',*,*,#8133,.T.);\r
+-#8146=EDGE_LOOP('',(#8144,#8145));\r
+-#8147=FACE_OUTER_BOUND('',#8146,.F.);\r
+-#8149=ORIENTED_EDGE('',*,*,#8148,.F.);\r
+-#8151=ORIENTED_EDGE('',*,*,#8150,.F.);\r
+-#8152=EDGE_LOOP('',(#8149,#8151));\r
+-#8153=FACE_BOUND('',#8152,.F.);\r
+-#8154=ADVANCED_FACE('',(#8147,#8153),#8143,.F.);\r
+-#8155=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
+-#8156=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8157=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8158=AXIS2_PLACEMENT_3D('',#8155,#8156,#8157);\r
+-#8159=CYLINDRICAL_SURFACE('',#8158,1.925E-1);\r
+-#8160=ORIENTED_EDGE('',*,*,#8148,.T.);\r
+-#8162=ORIENTED_EDGE('',*,*,#8161,.T.);\r
+-#8163=ORIENTED_EDGE('',*,*,#5608,.F.);\r
+-#8165=ORIENTED_EDGE('',*,*,#8164,.F.);\r
+-#8166=EDGE_LOOP('',(#8160,#8162,#8163,#8165));\r
+-#8167=FACE_OUTER_BOUND('',#8166,.F.);\r
+-#8168=ADVANCED_FACE('',(#8167),#8159,.F.);\r
+-#8169=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
+-#8170=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8171=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8172=AXIS2_PLACEMENT_3D('',#8169,#8170,#8171);\r
+-#8173=CYLINDRICAL_SURFACE('',#8172,1.925E-1);\r
+-#8174=ORIENTED_EDGE('',*,*,#8150,.T.);\r
+-#8175=ORIENTED_EDGE('',*,*,#8164,.T.);\r
+-#8176=ORIENTED_EDGE('',*,*,#5610,.F.);\r
+-#8177=ORIENTED_EDGE('',*,*,#8161,.F.);\r
+-#8178=EDGE_LOOP('',(#8174,#8175,#8176,#8177));\r
+-#8179=FACE_OUTER_BOUND('',#8178,.F.);\r
+-#8180=ADVANCED_FACE('',(#8179),#8173,.F.);\r
+-#8181=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
+-#8182=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8183=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8184=AXIS2_PLACEMENT_3D('',#8181,#8182,#8183);\r
+-#8185=CYLINDRICAL_SURFACE('',#8184,2.575E-1);\r
+-#8186=ORIENTED_EDGE('',*,*,#6254,.T.);\r
+-#8188=ORIENTED_EDGE('',*,*,#8187,.T.);\r
+-#8190=ORIENTED_EDGE('',*,*,#8189,.F.);\r
+-#8192=ORIENTED_EDGE('',*,*,#8191,.F.);\r
+-#8193=EDGE_LOOP('',(#8186,#8188,#8190,#8192));\r
+-#8194=FACE_OUTER_BOUND('',#8193,.F.);\r
+-#8195=ADVANCED_FACE('',(#8194),#8185,.F.);\r
+-#8196=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
+-#8197=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8198=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8199=AXIS2_PLACEMENT_3D('',#8196,#8197,#8198);\r
+-#8200=CYLINDRICAL_SURFACE('',#8199,2.575E-1);\r
+-#8201=ORIENTED_EDGE('',*,*,#6256,.T.);\r
+-#8202=ORIENTED_EDGE('',*,*,#8191,.T.);\r
+-#8204=ORIENTED_EDGE('',*,*,#8203,.F.);\r
+-#8205=ORIENTED_EDGE('',*,*,#8187,.F.);\r
+-#8206=EDGE_LOOP('',(#8201,#8202,#8204,#8205));\r
+-#8207=FACE_OUTER_BOUND('',#8206,.F.);\r
+-#8208=ADVANCED_FACE('',(#8207),#8200,.F.);\r
+-#8209=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
+-#8210=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8211=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8212=AXIS2_PLACEMENT_3D('',#8209,#8210,#8211);\r
+-#8213=PLANE('',#8212);\r
+-#8214=ORIENTED_EDGE('',*,*,#8189,.T.);\r
+-#8215=ORIENTED_EDGE('',*,*,#8203,.T.);\r
+-#8216=EDGE_LOOP('',(#8214,#8215));\r
+-#8217=FACE_OUTER_BOUND('',#8216,.F.);\r
+-#8219=ORIENTED_EDGE('',*,*,#8218,.F.);\r
+-#8221=ORIENTED_EDGE('',*,*,#8220,.F.);\r
+-#8222=EDGE_LOOP('',(#8219,#8221));\r
+-#8223=FACE_BOUND('',#8222,.F.);\r
+-#8224=ADVANCED_FACE('',(#8217,#8223),#8213,.F.);\r
+-#8225=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
+-#8226=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8227=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8228=AXIS2_PLACEMENT_3D('',#8225,#8226,#8227);\r
+-#8229=CYLINDRICAL_SURFACE('',#8228,1.925E-1);\r
+-#8230=ORIENTED_EDGE('',*,*,#8218,.T.);\r
+-#8232=ORIENTED_EDGE('',*,*,#8231,.T.);\r
+-#8233=ORIENTED_EDGE('',*,*,#5602,.F.);\r
+-#8235=ORIENTED_EDGE('',*,*,#8234,.F.);\r
+-#8236=EDGE_LOOP('',(#8230,#8232,#8233,#8235));\r
+-#8237=FACE_OUTER_BOUND('',#8236,.F.);\r
+-#8238=ADVANCED_FACE('',(#8237),#8229,.F.);\r
+-#8239=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
+-#8240=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8241=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8242=AXIS2_PLACEMENT_3D('',#8239,#8240,#8241);\r
+-#8243=CYLINDRICAL_SURFACE('',#8242,1.925E-1);\r
+-#8244=ORIENTED_EDGE('',*,*,#8220,.T.);\r
+-#8245=ORIENTED_EDGE('',*,*,#8234,.T.);\r
+-#8246=ORIENTED_EDGE('',*,*,#5604,.F.);\r
+-#8247=ORIENTED_EDGE('',*,*,#8231,.F.);\r
+-#8248=EDGE_LOOP('',(#8244,#8245,#8246,#8247));\r
+-#8249=FACE_OUTER_BOUND('',#8248,.F.);\r
+-#8250=ADVANCED_FACE('',(#8249),#8243,.F.);\r
+-#8251=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
+-#8252=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8253=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8254=AXIS2_PLACEMENT_3D('',#8251,#8252,#8253);\r
+-#8255=CYLINDRICAL_SURFACE('',#8254,2.575E-1);\r
+-#8256=ORIENTED_EDGE('',*,*,#6370,.T.);\r
+-#8258=ORIENTED_EDGE('',*,*,#8257,.T.);\r
+-#8260=ORIENTED_EDGE('',*,*,#8259,.F.);\r
+-#8262=ORIENTED_EDGE('',*,*,#8261,.F.);\r
+-#8263=EDGE_LOOP('',(#8256,#8258,#8260,#8262));\r
+-#8264=FACE_OUTER_BOUND('',#8263,.F.);\r
+-#8265=ADVANCED_FACE('',(#8264),#8255,.F.);\r
+-#8266=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
+-#8267=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8268=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8269=AXIS2_PLACEMENT_3D('',#8266,#8267,#8268);\r
+-#8270=CYLINDRICAL_SURFACE('',#8269,2.575E-1);\r
+-#8271=ORIENTED_EDGE('',*,*,#6372,.T.);\r
+-#8272=ORIENTED_EDGE('',*,*,#8261,.T.);\r
+-#8274=ORIENTED_EDGE('',*,*,#8273,.F.);\r
+-#8275=ORIENTED_EDGE('',*,*,#8257,.F.);\r
+-#8276=EDGE_LOOP('',(#8271,#8272,#8274,#8275));\r
+-#8277=FACE_OUTER_BOUND('',#8276,.F.);\r
+-#8278=ADVANCED_FACE('',(#8277),#8270,.F.);\r
+-#8279=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
+-#8280=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8281=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8282=AXIS2_PLACEMENT_3D('',#8279,#8280,#8281);\r
+-#8283=PLANE('',#8282);\r
+-#8284=ORIENTED_EDGE('',*,*,#8259,.T.);\r
+-#8285=ORIENTED_EDGE('',*,*,#8273,.T.);\r
+-#8286=EDGE_LOOP('',(#8284,#8285));\r
+-#8287=FACE_OUTER_BOUND('',#8286,.F.);\r
+-#8289=ORIENTED_EDGE('',*,*,#8288,.F.);\r
+-#8291=ORIENTED_EDGE('',*,*,#8290,.F.);\r
+-#8292=EDGE_LOOP('',(#8289,#8291));\r
+-#8293=FACE_BOUND('',#8292,.F.);\r
+-#8294=ADVANCED_FACE('',(#8287,#8293),#8283,.F.);\r
+-#8295=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
+-#8296=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8297=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8298=AXIS2_PLACEMENT_3D('',#8295,#8296,#8297);\r
+-#8299=CYLINDRICAL_SURFACE('',#8298,1.925E-1);\r
+-#8300=ORIENTED_EDGE('',*,*,#8288,.T.);\r
+-#8302=ORIENTED_EDGE('',*,*,#8301,.T.);\r
+-#8303=ORIENTED_EDGE('',*,*,#5590,.F.);\r
+-#8305=ORIENTED_EDGE('',*,*,#8304,.F.);\r
+-#8306=EDGE_LOOP('',(#8300,#8302,#8303,#8305));\r
+-#8307=FACE_OUTER_BOUND('',#8306,.F.);\r
+-#8308=ADVANCED_FACE('',(#8307),#8299,.F.);\r
+-#8309=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
+-#8310=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8311=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8312=AXIS2_PLACEMENT_3D('',#8309,#8310,#8311);\r
+-#8313=CYLINDRICAL_SURFACE('',#8312,1.925E-1);\r
+-#8314=ORIENTED_EDGE('',*,*,#8290,.T.);\r
+-#8315=ORIENTED_EDGE('',*,*,#8304,.T.);\r
+-#8316=ORIENTED_EDGE('',*,*,#5592,.F.);\r
+-#8317=ORIENTED_EDGE('',*,*,#8301,.F.);\r
+-#8318=EDGE_LOOP('',(#8314,#8315,#8316,#8317));\r
+-#8319=FACE_OUTER_BOUND('',#8318,.F.);\r
+-#8320=ADVANCED_FACE('',(#8319),#8313,.F.);\r
+-#8321=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
+-#8322=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8323=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8324=AXIS2_PLACEMENT_3D('',#8321,#8322,#8323);\r
+-#8325=CYLINDRICAL_SURFACE('',#8324,2.575E-1);\r
+-#8326=ORIENTED_EDGE('',*,*,#6376,.T.);\r
+-#8328=ORIENTED_EDGE('',*,*,#8327,.T.);\r
+-#8330=ORIENTED_EDGE('',*,*,#8329,.F.);\r
+-#8332=ORIENTED_EDGE('',*,*,#8331,.F.);\r
+-#8333=EDGE_LOOP('',(#8326,#8328,#8330,#8332));\r
+-#8334=FACE_OUTER_BOUND('',#8333,.F.);\r
+-#8335=ADVANCED_FACE('',(#8334),#8325,.F.);\r
+-#8336=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
+-#8337=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8338=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338);\r
+-#8340=CYLINDRICAL_SURFACE('',#8339,2.575E-1);\r
+-#8341=ORIENTED_EDGE('',*,*,#6378,.T.);\r
+-#8342=ORIENTED_EDGE('',*,*,#8331,.T.);\r
+-#8344=ORIENTED_EDGE('',*,*,#8343,.F.);\r
+-#8345=ORIENTED_EDGE('',*,*,#8327,.F.);\r
+-#8346=EDGE_LOOP('',(#8341,#8342,#8344,#8345));\r
+-#8347=FACE_OUTER_BOUND('',#8346,.F.);\r
+-#8348=ADVANCED_FACE('',(#8347),#8340,.F.);\r
+-#8349=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
+-#8350=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8351=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8352=AXIS2_PLACEMENT_3D('',#8349,#8350,#8351);\r
+-#8353=PLANE('',#8352);\r
+-#8354=ORIENTED_EDGE('',*,*,#8329,.T.);\r
+-#8355=ORIENTED_EDGE('',*,*,#8343,.T.);\r
+-#8356=EDGE_LOOP('',(#8354,#8355));\r
+-#8357=FACE_OUTER_BOUND('',#8356,.F.);\r
+-#8359=ORIENTED_EDGE('',*,*,#8358,.F.);\r
+-#8361=ORIENTED_EDGE('',*,*,#8360,.F.);\r
+-#8362=EDGE_LOOP('',(#8359,#8361));\r
+-#8363=FACE_BOUND('',#8362,.F.);\r
+-#8364=ADVANCED_FACE('',(#8357,#8363),#8353,.F.);\r
+-#8365=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
+-#8366=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8367=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8368=AXIS2_PLACEMENT_3D('',#8365,#8366,#8367);\r
+-#8369=CYLINDRICAL_SURFACE('',#8368,1.925E-1);\r
+-#8370=ORIENTED_EDGE('',*,*,#8358,.T.);\r
+-#8372=ORIENTED_EDGE('',*,*,#8371,.T.);\r
+-#8373=ORIENTED_EDGE('',*,*,#5584,.F.);\r
+-#8375=ORIENTED_EDGE('',*,*,#8374,.F.);\r
+-#8376=EDGE_LOOP('',(#8370,#8372,#8373,#8375));\r
+-#8377=FACE_OUTER_BOUND('',#8376,.F.);\r
+-#8378=ADVANCED_FACE('',(#8377),#8369,.F.);\r
+-#8379=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
+-#8380=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8381=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8382=AXIS2_PLACEMENT_3D('',#8379,#8380,#8381);\r
+-#8383=CYLINDRICAL_SURFACE('',#8382,1.925E-1);\r
+-#8384=ORIENTED_EDGE('',*,*,#8360,.T.);\r
+-#8385=ORIENTED_EDGE('',*,*,#8374,.T.);\r
+-#8386=ORIENTED_EDGE('',*,*,#5586,.F.);\r
+-#8387=ORIENTED_EDGE('',*,*,#8371,.F.);\r
+-#8388=EDGE_LOOP('',(#8384,#8385,#8386,#8387));\r
+-#8389=FACE_OUTER_BOUND('',#8388,.F.);\r
+-#8390=ADVANCED_FACE('',(#8389),#8383,.F.);\r
+-#8391=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
+-#8392=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8393=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8394=AXIS2_PLACEMENT_3D('',#8391,#8392,#8393);\r
+-#8395=CYLINDRICAL_SURFACE('',#8394,2.56E-1);\r
+-#8396=ORIENTED_EDGE('',*,*,#6260,.T.);\r
+-#8398=ORIENTED_EDGE('',*,*,#8397,.T.);\r
+-#8400=ORIENTED_EDGE('',*,*,#8399,.F.);\r
+-#8402=ORIENTED_EDGE('',*,*,#8401,.F.);\r
+-#8403=EDGE_LOOP('',(#8396,#8398,#8400,#8402));\r
+-#8404=FACE_OUTER_BOUND('',#8403,.F.);\r
+-#8405=ADVANCED_FACE('',(#8404),#8395,.F.);\r
+-#8406=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
+-#8407=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8408=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8409=AXIS2_PLACEMENT_3D('',#8406,#8407,#8408);\r
+-#8410=CYLINDRICAL_SURFACE('',#8409,2.56E-1);\r
+-#8411=ORIENTED_EDGE('',*,*,#6262,.T.);\r
+-#8412=ORIENTED_EDGE('',*,*,#8401,.T.);\r
+-#8414=ORIENTED_EDGE('',*,*,#8413,.F.);\r
+-#8415=ORIENTED_EDGE('',*,*,#8397,.F.);\r
+-#8416=EDGE_LOOP('',(#8411,#8412,#8414,#8415));\r
+-#8417=FACE_OUTER_BOUND('',#8416,.F.);\r
+-#8418=ADVANCED_FACE('',(#8417),#8410,.F.);\r
+-#8419=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
+-#8420=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8421=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8422=AXIS2_PLACEMENT_3D('',#8419,#8420,#8421);\r
+-#8423=PLANE('',#8422);\r
+-#8424=ORIENTED_EDGE('',*,*,#8399,.T.);\r
+-#8425=ORIENTED_EDGE('',*,*,#8413,.T.);\r
+-#8426=EDGE_LOOP('',(#8424,#8425));\r
+-#8427=FACE_OUTER_BOUND('',#8426,.F.);\r
+-#8429=ORIENTED_EDGE('',*,*,#8428,.F.);\r
+-#8431=ORIENTED_EDGE('',*,*,#8430,.F.);\r
+-#8432=EDGE_LOOP('',(#8429,#8431));\r
+-#8433=FACE_BOUND('',#8432,.F.);\r
+-#8434=ADVANCED_FACE('',(#8427,#8433),#8423,.F.);\r
+-#8435=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
+-#8436=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8437=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8438=AXIS2_PLACEMENT_3D('',#8435,#8436,#8437);\r
+-#8439=CYLINDRICAL_SURFACE('',#8438,1.925E-1);\r
+-#8440=ORIENTED_EDGE('',*,*,#8428,.T.);\r
+-#8442=ORIENTED_EDGE('',*,*,#8441,.T.);\r
+-#8443=ORIENTED_EDGE('',*,*,#5632,.F.);\r
+-#8445=ORIENTED_EDGE('',*,*,#8444,.F.);\r
+-#8446=EDGE_LOOP('',(#8440,#8442,#8443,#8445));\r
+-#8447=FACE_OUTER_BOUND('',#8446,.F.);\r
+-#8448=ADVANCED_FACE('',(#8447),#8439,.F.);\r
+-#8449=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
+-#8450=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8451=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8452=AXIS2_PLACEMENT_3D('',#8449,#8450,#8451);\r
+-#8453=CYLINDRICAL_SURFACE('',#8452,1.925E-1);\r
+-#8454=ORIENTED_EDGE('',*,*,#8430,.T.);\r
+-#8455=ORIENTED_EDGE('',*,*,#8444,.T.);\r
+-#8456=ORIENTED_EDGE('',*,*,#5634,.F.);\r
+-#8457=ORIENTED_EDGE('',*,*,#8441,.F.);\r
+-#8458=EDGE_LOOP('',(#8454,#8455,#8456,#8457));\r
+-#8459=FACE_OUTER_BOUND('',#8458,.F.);\r
+-#8460=ADVANCED_FACE('',(#8459),#8453,.F.);\r
+-#8461=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
+-#8462=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8463=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8464=AXIS2_PLACEMENT_3D('',#8461,#8462,#8463);\r
+-#8465=CYLINDRICAL_SURFACE('',#8464,2.56E-1);\r
+-#8466=ORIENTED_EDGE('',*,*,#6266,.T.);\r
+-#8468=ORIENTED_EDGE('',*,*,#8467,.T.);\r
+-#8470=ORIENTED_EDGE('',*,*,#8469,.F.);\r
+-#8472=ORIENTED_EDGE('',*,*,#8471,.F.);\r
+-#8473=EDGE_LOOP('',(#8466,#8468,#8470,#8472));\r
+-#8474=FACE_OUTER_BOUND('',#8473,.F.);\r
+-#8475=ADVANCED_FACE('',(#8474),#8465,.F.);\r
+-#8476=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
+-#8477=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8478=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8479=AXIS2_PLACEMENT_3D('',#8476,#8477,#8478);\r
+-#8480=CYLINDRICAL_SURFACE('',#8479,2.56E-1);\r
+-#8481=ORIENTED_EDGE('',*,*,#6268,.T.);\r
+-#8482=ORIENTED_EDGE('',*,*,#8471,.T.);\r
+-#8484=ORIENTED_EDGE('',*,*,#8483,.F.);\r
+-#8485=ORIENTED_EDGE('',*,*,#8467,.F.);\r
+-#8486=EDGE_LOOP('',(#8481,#8482,#8484,#8485));\r
+-#8487=FACE_OUTER_BOUND('',#8486,.F.);\r
+-#8488=ADVANCED_FACE('',(#8487),#8480,.F.);\r
+-#8489=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
+-#8490=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8491=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8492=AXIS2_PLACEMENT_3D('',#8489,#8490,#8491);\r
+-#8493=PLANE('',#8492);\r
+-#8494=ORIENTED_EDGE('',*,*,#8469,.T.);\r
+-#8495=ORIENTED_EDGE('',*,*,#8483,.T.);\r
+-#8496=EDGE_LOOP('',(#8494,#8495));\r
+-#8497=FACE_OUTER_BOUND('',#8496,.F.);\r
+-#8499=ORIENTED_EDGE('',*,*,#8498,.F.);\r
+-#8501=ORIENTED_EDGE('',*,*,#8500,.F.);\r
+-#8502=EDGE_LOOP('',(#8499,#8501));\r
+-#8503=FACE_BOUND('',#8502,.F.);\r
+-#8504=ADVANCED_FACE('',(#8497,#8503),#8493,.F.);\r
+-#8505=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
+-#8506=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8507=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8508=AXIS2_PLACEMENT_3D('',#8505,#8506,#8507);\r
+-#8509=CYLINDRICAL_SURFACE('',#8508,1.925E-1);\r
+-#8510=ORIENTED_EDGE('',*,*,#8498,.T.);\r
+-#8512=ORIENTED_EDGE('',*,*,#8511,.T.);\r
+-#8513=ORIENTED_EDGE('',*,*,#5578,.F.);\r
+-#8515=ORIENTED_EDGE('',*,*,#8514,.F.);\r
+-#8516=EDGE_LOOP('',(#8510,#8512,#8513,#8515));\r
+-#8517=FACE_OUTER_BOUND('',#8516,.F.);\r
+-#8518=ADVANCED_FACE('',(#8517),#8509,.F.);\r
+-#8519=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
+-#8520=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8521=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8522=AXIS2_PLACEMENT_3D('',#8519,#8520,#8521);\r
+-#8523=CYLINDRICAL_SURFACE('',#8522,1.925E-1);\r
+-#8524=ORIENTED_EDGE('',*,*,#8500,.T.);\r
+-#8525=ORIENTED_EDGE('',*,*,#8514,.T.);\r
+-#8526=ORIENTED_EDGE('',*,*,#5580,.F.);\r
+-#8527=ORIENTED_EDGE('',*,*,#8511,.F.);\r
+-#8528=EDGE_LOOP('',(#8524,#8525,#8526,#8527));\r
+-#8529=FACE_OUTER_BOUND('',#8528,.F.);\r
+-#8530=ADVANCED_FACE('',(#8529),#8523,.F.);\r
+-#8531=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
+-#8532=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8533=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8534=AXIS2_PLACEMENT_3D('',#8531,#8532,#8533);\r
+-#8535=CYLINDRICAL_SURFACE('',#8534,2.56E-1);\r
+-#8536=ORIENTED_EDGE('',*,*,#6272,.T.);\r
+-#8538=ORIENTED_EDGE('',*,*,#8537,.T.);\r
+-#8540=ORIENTED_EDGE('',*,*,#8539,.F.);\r
+-#8542=ORIENTED_EDGE('',*,*,#8541,.F.);\r
+-#8543=EDGE_LOOP('',(#8536,#8538,#8540,#8542));\r
+-#8544=FACE_OUTER_BOUND('',#8543,.F.);\r
+-#8545=ADVANCED_FACE('',(#8544),#8535,.F.);\r
+-#8546=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
+-#8547=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8548=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8549=AXIS2_PLACEMENT_3D('',#8546,#8547,#8548);\r
+-#8550=CYLINDRICAL_SURFACE('',#8549,2.56E-1);\r
+-#8551=ORIENTED_EDGE('',*,*,#6274,.T.);\r
+-#8552=ORIENTED_EDGE('',*,*,#8541,.T.);\r
+-#8554=ORIENTED_EDGE('',*,*,#8553,.F.);\r
+-#8555=ORIENTED_EDGE('',*,*,#8537,.F.);\r
+-#8556=EDGE_LOOP('',(#8551,#8552,#8554,#8555));\r
+-#8557=FACE_OUTER_BOUND('',#8556,.F.);\r
+-#8558=ADVANCED_FACE('',(#8557),#8550,.F.);\r
+-#8559=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
+-#8560=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8561=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561);\r
+-#8563=PLANE('',#8562);\r
+-#8564=ORIENTED_EDGE('',*,*,#8539,.T.);\r
+-#8565=ORIENTED_EDGE('',*,*,#8553,.T.);\r
+-#8566=EDGE_LOOP('',(#8564,#8565));\r
+-#8567=FACE_OUTER_BOUND('',#8566,.F.);\r
+-#8569=ORIENTED_EDGE('',*,*,#8568,.F.);\r
+-#8571=ORIENTED_EDGE('',*,*,#8570,.F.);\r
+-#8572=EDGE_LOOP('',(#8569,#8571));\r
+-#8573=FACE_BOUND('',#8572,.F.);\r
+-#8574=ADVANCED_FACE('',(#8567,#8573),#8563,.F.);\r
+-#8575=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
+-#8576=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8577=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8578=AXIS2_PLACEMENT_3D('',#8575,#8576,#8577);\r
+-#8579=CYLINDRICAL_SURFACE('',#8578,1.925E-1);\r
+-#8580=ORIENTED_EDGE('',*,*,#8568,.T.);\r
+-#8582=ORIENTED_EDGE('',*,*,#8581,.T.);\r
+-#8583=ORIENTED_EDGE('',*,*,#5560,.F.);\r
+-#8585=ORIENTED_EDGE('',*,*,#8584,.F.);\r
+-#8586=EDGE_LOOP('',(#8580,#8582,#8583,#8585));\r
+-#8587=FACE_OUTER_BOUND('',#8586,.F.);\r
+-#8588=ADVANCED_FACE('',(#8587),#8579,.F.);\r
+-#8589=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
+-#8590=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8591=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8592=AXIS2_PLACEMENT_3D('',#8589,#8590,#8591);\r
+-#8593=CYLINDRICAL_SURFACE('',#8592,1.925E-1);\r
+-#8594=ORIENTED_EDGE('',*,*,#8570,.T.);\r
+-#8595=ORIENTED_EDGE('',*,*,#8584,.T.);\r
+-#8596=ORIENTED_EDGE('',*,*,#5562,.F.);\r
+-#8597=ORIENTED_EDGE('',*,*,#8581,.F.);\r
+-#8598=EDGE_LOOP('',(#8594,#8595,#8596,#8597));\r
+-#8599=FACE_OUTER_BOUND('',#8598,.F.);\r
+-#8600=ADVANCED_FACE('',(#8599),#8593,.F.);\r
+-#8601=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
+-#8602=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8603=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8604=AXIS2_PLACEMENT_3D('',#8601,#8602,#8603);\r
+-#8605=CYLINDRICAL_SURFACE('',#8604,2.56E-1);\r
+-#8606=ORIENTED_EDGE('',*,*,#6382,.T.);\r
+-#8608=ORIENTED_EDGE('',*,*,#8607,.T.);\r
+-#8610=ORIENTED_EDGE('',*,*,#8609,.F.);\r
+-#8612=ORIENTED_EDGE('',*,*,#8611,.F.);\r
+-#8613=EDGE_LOOP('',(#8606,#8608,#8610,#8612));\r
+-#8614=FACE_OUTER_BOUND('',#8613,.F.);\r
+-#8615=ADVANCED_FACE('',(#8614),#8605,.F.);\r
+-#8616=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
+-#8617=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8618=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8619=AXIS2_PLACEMENT_3D('',#8616,#8617,#8618);\r
+-#8620=CYLINDRICAL_SURFACE('',#8619,2.56E-1);\r
+-#8621=ORIENTED_EDGE('',*,*,#6384,.T.);\r
+-#8622=ORIENTED_EDGE('',*,*,#8611,.T.);\r
+-#8624=ORIENTED_EDGE('',*,*,#8623,.F.);\r
+-#8625=ORIENTED_EDGE('',*,*,#8607,.F.);\r
+-#8626=EDGE_LOOP('',(#8621,#8622,#8624,#8625));\r
+-#8627=FACE_OUTER_BOUND('',#8626,.F.);\r
+-#8628=ADVANCED_FACE('',(#8627),#8620,.F.);\r
+-#8629=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
+-#8630=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8631=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8632=AXIS2_PLACEMENT_3D('',#8629,#8630,#8631);\r
+-#8633=PLANE('',#8632);\r
+-#8634=ORIENTED_EDGE('',*,*,#8609,.T.);\r
+-#8635=ORIENTED_EDGE('',*,*,#8623,.T.);\r
+-#8636=EDGE_LOOP('',(#8634,#8635));\r
+-#8637=FACE_OUTER_BOUND('',#8636,.F.);\r
+-#8639=ORIENTED_EDGE('',*,*,#8638,.F.);\r
+-#8641=ORIENTED_EDGE('',*,*,#8640,.F.);\r
+-#8642=EDGE_LOOP('',(#8639,#8641));\r
+-#8643=FACE_BOUND('',#8642,.F.);\r
+-#8644=ADVANCED_FACE('',(#8637,#8643),#8633,.F.);\r
+-#8645=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
+-#8646=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8647=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8648=AXIS2_PLACEMENT_3D('',#8645,#8646,#8647);\r
+-#8649=CYLINDRICAL_SURFACE('',#8648,1.925E-1);\r
+-#8650=ORIENTED_EDGE('',*,*,#8638,.T.);\r
+-#8652=ORIENTED_EDGE('',*,*,#8651,.T.);\r
+-#8653=ORIENTED_EDGE('',*,*,#5572,.F.);\r
+-#8655=ORIENTED_EDGE('',*,*,#8654,.F.);\r
+-#8656=EDGE_LOOP('',(#8650,#8652,#8653,#8655));\r
+-#8657=FACE_OUTER_BOUND('',#8656,.F.);\r
+-#8658=ADVANCED_FACE('',(#8657),#8649,.F.);\r
+-#8659=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
+-#8660=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8661=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8662=AXIS2_PLACEMENT_3D('',#8659,#8660,#8661);\r
+-#8663=CYLINDRICAL_SURFACE('',#8662,1.925E-1);\r
+-#8664=ORIENTED_EDGE('',*,*,#8640,.T.);\r
+-#8665=ORIENTED_EDGE('',*,*,#8654,.T.);\r
+-#8666=ORIENTED_EDGE('',*,*,#5574,.F.);\r
+-#8667=ORIENTED_EDGE('',*,*,#8651,.F.);\r
+-#8668=EDGE_LOOP('',(#8664,#8665,#8666,#8667));\r
+-#8669=FACE_OUTER_BOUND('',#8668,.F.);\r
+-#8670=ADVANCED_FACE('',(#8669),#8663,.F.);\r
+-#8671=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
+-#8672=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8673=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8674=AXIS2_PLACEMENT_3D('',#8671,#8672,#8673);\r
+-#8675=CYLINDRICAL_SURFACE('',#8674,2.56E-1);\r
+-#8676=ORIENTED_EDGE('',*,*,#6388,.T.);\r
+-#8678=ORIENTED_EDGE('',*,*,#8677,.T.);\r
+-#8680=ORIENTED_EDGE('',*,*,#8679,.F.);\r
+-#8682=ORIENTED_EDGE('',*,*,#8681,.F.);\r
+-#8683=EDGE_LOOP('',(#8676,#8678,#8680,#8682));\r
+-#8684=FACE_OUTER_BOUND('',#8683,.F.);\r
+-#8685=ADVANCED_FACE('',(#8684),#8675,.F.);\r
+-#8686=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
+-#8687=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8688=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8689=AXIS2_PLACEMENT_3D('',#8686,#8687,#8688);\r
+-#8690=CYLINDRICAL_SURFACE('',#8689,2.56E-1);\r
+-#8691=ORIENTED_EDGE('',*,*,#6390,.T.);\r
+-#8692=ORIENTED_EDGE('',*,*,#8681,.T.);\r
+-#8694=ORIENTED_EDGE('',*,*,#8693,.F.);\r
+-#8695=ORIENTED_EDGE('',*,*,#8677,.F.);\r
+-#8696=EDGE_LOOP('',(#8691,#8692,#8694,#8695));\r
+-#8697=FACE_OUTER_BOUND('',#8696,.F.);\r
+-#8698=ADVANCED_FACE('',(#8697),#8690,.F.);\r
+-#8699=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
+-#8700=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8701=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8702=AXIS2_PLACEMENT_3D('',#8699,#8700,#8701);\r
+-#8703=PLANE('',#8702);\r
+-#8704=ORIENTED_EDGE('',*,*,#8679,.T.);\r
+-#8705=ORIENTED_EDGE('',*,*,#8693,.T.);\r
+-#8706=EDGE_LOOP('',(#8704,#8705));\r
+-#8707=FACE_OUTER_BOUND('',#8706,.F.);\r
+-#8709=ORIENTED_EDGE('',*,*,#8708,.F.);\r
+-#8711=ORIENTED_EDGE('',*,*,#8710,.F.);\r
+-#8712=EDGE_LOOP('',(#8709,#8711));\r
+-#8713=FACE_BOUND('',#8712,.F.);\r
+-#8714=ADVANCED_FACE('',(#8707,#8713),#8703,.F.);\r
+-#8715=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
+-#8716=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8717=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8718=AXIS2_PLACEMENT_3D('',#8715,#8716,#8717);\r
+-#8719=CYLINDRICAL_SURFACE('',#8718,1.925E-1);\r
+-#8720=ORIENTED_EDGE('',*,*,#8708,.T.);\r
+-#8722=ORIENTED_EDGE('',*,*,#8721,.T.);\r
+-#8723=ORIENTED_EDGE('',*,*,#5566,.F.);\r
+-#8725=ORIENTED_EDGE('',*,*,#8724,.F.);\r
+-#8726=EDGE_LOOP('',(#8720,#8722,#8723,#8725));\r
+-#8727=FACE_OUTER_BOUND('',#8726,.F.);\r
+-#8728=ADVANCED_FACE('',(#8727),#8719,.F.);\r
+-#8729=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
+-#8730=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8731=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8732=AXIS2_PLACEMENT_3D('',#8729,#8730,#8731);\r
+-#8733=CYLINDRICAL_SURFACE('',#8732,1.925E-1);\r
+-#8734=ORIENTED_EDGE('',*,*,#8710,.T.);\r
+-#8735=ORIENTED_EDGE('',*,*,#8724,.T.);\r
+-#8736=ORIENTED_EDGE('',*,*,#5568,.F.);\r
+-#8737=ORIENTED_EDGE('',*,*,#8721,.F.);\r
+-#8738=EDGE_LOOP('',(#8734,#8735,#8736,#8737));\r
+-#8739=FACE_OUTER_BOUND('',#8738,.F.);\r
+-#8740=ADVANCED_FACE('',(#8739),#8733,.F.);\r
+-#8741=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
+-#8742=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8743=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8744=AXIS2_PLACEMENT_3D('',#8741,#8742,#8743);\r
+-#8745=CYLINDRICAL_SURFACE('',#8744,2.56E-1);\r
+-#8746=ORIENTED_EDGE('',*,*,#6394,.T.);\r
+-#8748=ORIENTED_EDGE('',*,*,#8747,.T.);\r
+-#8750=ORIENTED_EDGE('',*,*,#8749,.F.);\r
+-#8752=ORIENTED_EDGE('',*,*,#8751,.F.);\r
+-#8753=EDGE_LOOP('',(#8746,#8748,#8750,#8752));\r
+-#8754=FACE_OUTER_BOUND('',#8753,.F.);\r
+-#8755=ADVANCED_FACE('',(#8754),#8745,.F.);\r
+-#8756=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
+-#8757=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8758=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8759=AXIS2_PLACEMENT_3D('',#8756,#8757,#8758);\r
+-#8760=CYLINDRICAL_SURFACE('',#8759,2.56E-1);\r
+-#8761=ORIENTED_EDGE('',*,*,#6396,.T.);\r
+-#8762=ORIENTED_EDGE('',*,*,#8751,.T.);\r
+-#8764=ORIENTED_EDGE('',*,*,#8763,.F.);\r
+-#8765=ORIENTED_EDGE('',*,*,#8747,.F.);\r
+-#8766=EDGE_LOOP('',(#8761,#8762,#8764,#8765));\r
+-#8767=FACE_OUTER_BOUND('',#8766,.F.);\r
+-#8768=ADVANCED_FACE('',(#8767),#8760,.F.);\r
+-#8769=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
+-#8770=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8771=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8772=AXIS2_PLACEMENT_3D('',#8769,#8770,#8771);\r
+-#8773=PLANE('',#8772);\r
+-#8774=ORIENTED_EDGE('',*,*,#8749,.T.);\r
+-#8775=ORIENTED_EDGE('',*,*,#8763,.T.);\r
+-#8776=EDGE_LOOP('',(#8774,#8775));\r
+-#8777=FACE_OUTER_BOUND('',#8776,.F.);\r
+-#8779=ORIENTED_EDGE('',*,*,#8778,.F.);\r
+-#8781=ORIENTED_EDGE('',*,*,#8780,.F.);\r
+-#8782=EDGE_LOOP('',(#8779,#8781));\r
+-#8783=FACE_BOUND('',#8782,.F.);\r
+-#8784=ADVANCED_FACE('',(#8777,#8783),#8773,.F.);\r
+-#8785=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
+-#8786=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8787=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8788=AXIS2_PLACEMENT_3D('',#8785,#8786,#8787);\r
+-#8789=CYLINDRICAL_SURFACE('',#8788,1.925E-1);\r
+-#8790=ORIENTED_EDGE('',*,*,#8778,.T.);\r
+-#8792=ORIENTED_EDGE('',*,*,#8791,.T.);\r
+-#8793=ORIENTED_EDGE('',*,*,#5554,.F.);\r
+-#8795=ORIENTED_EDGE('',*,*,#8794,.F.);\r
+-#8796=EDGE_LOOP('',(#8790,#8792,#8793,#8795));\r
+-#8797=FACE_OUTER_BOUND('',#8796,.F.);\r
+-#8798=ADVANCED_FACE('',(#8797),#8789,.F.);\r
+-#8799=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
+-#8800=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8801=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8802=AXIS2_PLACEMENT_3D('',#8799,#8800,#8801);\r
+-#8803=CYLINDRICAL_SURFACE('',#8802,1.925E-1);\r
+-#8804=ORIENTED_EDGE('',*,*,#8780,.T.);\r
+-#8805=ORIENTED_EDGE('',*,*,#8794,.T.);\r
+-#8806=ORIENTED_EDGE('',*,*,#5556,.F.);\r
+-#8807=ORIENTED_EDGE('',*,*,#8791,.F.);\r
+-#8808=EDGE_LOOP('',(#8804,#8805,#8806,#8807));\r
+-#8809=FACE_OUTER_BOUND('',#8808,.F.);\r
+-#8810=ADVANCED_FACE('',(#8809),#8803,.F.);\r
+-#8811=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
+-#8812=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8813=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8814=AXIS2_PLACEMENT_3D('',#8811,#8812,#8813);\r
+-#8815=CYLINDRICAL_SURFACE('',#8814,2.575E-1);\r
+-#8816=ORIENTED_EDGE('',*,*,#6452,.T.);\r
+-#8818=ORIENTED_EDGE('',*,*,#8817,.T.);\r
+-#8820=ORIENTED_EDGE('',*,*,#8819,.F.);\r
+-#8822=ORIENTED_EDGE('',*,*,#8821,.F.);\r
+-#8823=EDGE_LOOP('',(#8816,#8818,#8820,#8822));\r
+-#8824=FACE_OUTER_BOUND('',#8823,.F.);\r
+-#8825=ADVANCED_FACE('',(#8824),#8815,.F.);\r
+-#8826=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
+-#8827=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8828=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8829=AXIS2_PLACEMENT_3D('',#8826,#8827,#8828);\r
+-#8830=CYLINDRICAL_SURFACE('',#8829,2.575E-1);\r
+-#8831=ORIENTED_EDGE('',*,*,#6454,.T.);\r
+-#8832=ORIENTED_EDGE('',*,*,#8821,.T.);\r
+-#8834=ORIENTED_EDGE('',*,*,#8833,.F.);\r
+-#8835=ORIENTED_EDGE('',*,*,#8817,.F.);\r
+-#8836=EDGE_LOOP('',(#8831,#8832,#8834,#8835));\r
+-#8837=FACE_OUTER_BOUND('',#8836,.F.);\r
+-#8838=ADVANCED_FACE('',(#8837),#8830,.F.);\r
+-#8839=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
+-#8840=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8841=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8842=AXIS2_PLACEMENT_3D('',#8839,#8840,#8841);\r
+-#8843=PLANE('',#8842);\r
+-#8844=ORIENTED_EDGE('',*,*,#8819,.T.);\r
+-#8845=ORIENTED_EDGE('',*,*,#8833,.T.);\r
+-#8846=EDGE_LOOP('',(#8844,#8845));\r
+-#8847=FACE_OUTER_BOUND('',#8846,.F.);\r
+-#8849=ORIENTED_EDGE('',*,*,#8848,.F.);\r
+-#8851=ORIENTED_EDGE('',*,*,#8850,.F.);\r
+-#8852=EDGE_LOOP('',(#8849,#8851));\r
+-#8853=FACE_BOUND('',#8852,.F.);\r
+-#8854=ADVANCED_FACE('',(#8847,#8853),#8843,.F.);\r
+-#8855=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
+-#8856=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8857=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857);\r
+-#8859=CYLINDRICAL_SURFACE('',#8858,1.925E-1);\r
+-#8860=ORIENTED_EDGE('',*,*,#8848,.T.);\r
+-#8862=ORIENTED_EDGE('',*,*,#8861,.T.);\r
+-#8863=ORIENTED_EDGE('',*,*,#5690,.F.);\r
+-#8865=ORIENTED_EDGE('',*,*,#8864,.F.);\r
+-#8866=EDGE_LOOP('',(#8860,#8862,#8863,#8865));\r
+-#8867=FACE_OUTER_BOUND('',#8866,.F.);\r
+-#8868=ADVANCED_FACE('',(#8867),#8859,.F.);\r
+-#8869=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
+-#8870=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8871=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8872=AXIS2_PLACEMENT_3D('',#8869,#8870,#8871);\r
+-#8873=CYLINDRICAL_SURFACE('',#8872,1.925E-1);\r
+-#8874=ORIENTED_EDGE('',*,*,#8850,.T.);\r
+-#8875=ORIENTED_EDGE('',*,*,#8864,.T.);\r
+-#8876=ORIENTED_EDGE('',*,*,#5692,.F.);\r
+-#8877=ORIENTED_EDGE('',*,*,#8861,.F.);\r
+-#8878=EDGE_LOOP('',(#8874,#8875,#8876,#8877));\r
+-#8879=FACE_OUTER_BOUND('',#8878,.F.);\r
+-#8880=ADVANCED_FACE('',(#8879),#8873,.F.);\r
+-#8881=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
+-#8882=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8883=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8884=AXIS2_PLACEMENT_3D('',#8881,#8882,#8883);\r
+-#8885=CYLINDRICAL_SURFACE('',#8884,2.575E-1);\r
+-#8886=ORIENTED_EDGE('',*,*,#6458,.T.);\r
+-#8888=ORIENTED_EDGE('',*,*,#8887,.T.);\r
+-#8890=ORIENTED_EDGE('',*,*,#8889,.F.);\r
+-#8892=ORIENTED_EDGE('',*,*,#8891,.F.);\r
+-#8893=EDGE_LOOP('',(#8886,#8888,#8890,#8892));\r
+-#8894=FACE_OUTER_BOUND('',#8893,.F.);\r
+-#8895=ADVANCED_FACE('',(#8894),#8885,.F.);\r
+-#8896=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
+-#8897=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8898=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8899=AXIS2_PLACEMENT_3D('',#8896,#8897,#8898);\r
+-#8900=CYLINDRICAL_SURFACE('',#8899,2.575E-1);\r
+-#8901=ORIENTED_EDGE('',*,*,#6460,.T.);\r
+-#8902=ORIENTED_EDGE('',*,*,#8891,.T.);\r
+-#8904=ORIENTED_EDGE('',*,*,#8903,.F.);\r
+-#8905=ORIENTED_EDGE('',*,*,#8887,.F.);\r
+-#8906=EDGE_LOOP('',(#8901,#8902,#8904,#8905));\r
+-#8907=FACE_OUTER_BOUND('',#8906,.F.);\r
+-#8908=ADVANCED_FACE('',(#8907),#8900,.F.);\r
+-#8909=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
+-#8910=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8911=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8912=AXIS2_PLACEMENT_3D('',#8909,#8910,#8911);\r
+-#8913=PLANE('',#8912);\r
+-#8914=ORIENTED_EDGE('',*,*,#8889,.T.);\r
+-#8915=ORIENTED_EDGE('',*,*,#8903,.T.);\r
+-#8916=EDGE_LOOP('',(#8914,#8915));\r
+-#8917=FACE_OUTER_BOUND('',#8916,.F.);\r
+-#8919=ORIENTED_EDGE('',*,*,#8918,.F.);\r
+-#8921=ORIENTED_EDGE('',*,*,#8920,.F.);\r
+-#8922=EDGE_LOOP('',(#8919,#8921));\r
+-#8923=FACE_BOUND('',#8922,.F.);\r
+-#8924=ADVANCED_FACE('',(#8917,#8923),#8913,.F.);\r
+-#8925=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
+-#8926=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8927=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927);\r
+-#8929=CYLINDRICAL_SURFACE('',#8928,1.925E-1);\r
+-#8930=ORIENTED_EDGE('',*,*,#8918,.T.);\r
+-#8932=ORIENTED_EDGE('',*,*,#8931,.T.);\r
+-#8933=ORIENTED_EDGE('',*,*,#5696,.F.);\r
+-#8935=ORIENTED_EDGE('',*,*,#8934,.F.);\r
+-#8936=EDGE_LOOP('',(#8930,#8932,#8933,#8935));\r
+-#8937=FACE_OUTER_BOUND('',#8936,.F.);\r
+-#8938=ADVANCED_FACE('',(#8937),#8929,.F.);\r
+-#8939=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
+-#8940=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8941=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8942=AXIS2_PLACEMENT_3D('',#8939,#8940,#8941);\r
+-#8943=CYLINDRICAL_SURFACE('',#8942,1.925E-1);\r
+-#8944=ORIENTED_EDGE('',*,*,#8920,.T.);\r
+-#8945=ORIENTED_EDGE('',*,*,#8934,.T.);\r
+-#8946=ORIENTED_EDGE('',*,*,#5698,.F.);\r
+-#8947=ORIENTED_EDGE('',*,*,#8931,.F.);\r
+-#8948=EDGE_LOOP('',(#8944,#8945,#8946,#8947));\r
+-#8949=FACE_OUTER_BOUND('',#8948,.F.);\r
+-#8950=ADVANCED_FACE('',(#8949),#8943,.F.);\r
+-#8951=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
+-#8952=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8953=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8954=AXIS2_PLACEMENT_3D('',#8951,#8952,#8953);\r
+-#8955=CYLINDRICAL_SURFACE('',#8954,2.575E-1);\r
+-#8956=ORIENTED_EDGE('',*,*,#6464,.T.);\r
+-#8958=ORIENTED_EDGE('',*,*,#8957,.T.);\r
+-#8960=ORIENTED_EDGE('',*,*,#8959,.F.);\r
+-#8962=ORIENTED_EDGE('',*,*,#8961,.F.);\r
+-#8963=EDGE_LOOP('',(#8956,#8958,#8960,#8962));\r
+-#8964=FACE_OUTER_BOUND('',#8963,.F.);\r
+-#8965=ADVANCED_FACE('',(#8964),#8955,.F.);\r
+-#8966=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
+-#8967=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8968=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8969=AXIS2_PLACEMENT_3D('',#8966,#8967,#8968);\r
+-#8970=CYLINDRICAL_SURFACE('',#8969,2.575E-1);\r
+-#8971=ORIENTED_EDGE('',*,*,#6466,.T.);\r
+-#8972=ORIENTED_EDGE('',*,*,#8961,.T.);\r
+-#8974=ORIENTED_EDGE('',*,*,#8973,.F.);\r
+-#8975=ORIENTED_EDGE('',*,*,#8957,.F.);\r
+-#8976=EDGE_LOOP('',(#8971,#8972,#8974,#8975));\r
+-#8977=FACE_OUTER_BOUND('',#8976,.F.);\r
+-#8978=ADVANCED_FACE('',(#8977),#8970,.F.);\r
+-#8979=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
+-#8980=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8981=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8982=AXIS2_PLACEMENT_3D('',#8979,#8980,#8981);\r
+-#8983=PLANE('',#8982);\r
+-#8984=ORIENTED_EDGE('',*,*,#8959,.T.);\r
+-#8985=ORIENTED_EDGE('',*,*,#8973,.T.);\r
+-#8986=EDGE_LOOP('',(#8984,#8985));\r
+-#8987=FACE_OUTER_BOUND('',#8986,.F.);\r
+-#8989=ORIENTED_EDGE('',*,*,#8988,.F.);\r
+-#8991=ORIENTED_EDGE('',*,*,#8990,.F.);\r
+-#8992=EDGE_LOOP('',(#8989,#8991));\r
+-#8993=FACE_BOUND('',#8992,.F.);\r
+-#8994=ADVANCED_FACE('',(#8987,#8993),#8983,.F.);\r
+-#8995=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
+-#8996=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#8997=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#8998=AXIS2_PLACEMENT_3D('',#8995,#8996,#8997);\r
+-#8999=CYLINDRICAL_SURFACE('',#8998,1.925E-1);\r
+-#9000=ORIENTED_EDGE('',*,*,#8988,.T.);\r
+-#9002=ORIENTED_EDGE('',*,*,#9001,.T.);\r
+-#9003=ORIENTED_EDGE('',*,*,#5702,.F.);\r
+-#9005=ORIENTED_EDGE('',*,*,#9004,.F.);\r
+-#9006=EDGE_LOOP('',(#9000,#9002,#9003,#9005));\r
+-#9007=FACE_OUTER_BOUND('',#9006,.F.);\r
+-#9008=ADVANCED_FACE('',(#9007),#8999,.F.);\r
+-#9009=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
+-#9010=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9011=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9012=AXIS2_PLACEMENT_3D('',#9009,#9010,#9011);\r
+-#9013=CYLINDRICAL_SURFACE('',#9012,1.925E-1);\r
+-#9014=ORIENTED_EDGE('',*,*,#8990,.T.);\r
+-#9015=ORIENTED_EDGE('',*,*,#9004,.T.);\r
+-#9016=ORIENTED_EDGE('',*,*,#5704,.F.);\r
+-#9017=ORIENTED_EDGE('',*,*,#9001,.F.);\r
+-#9018=EDGE_LOOP('',(#9014,#9015,#9016,#9017));\r
+-#9019=FACE_OUTER_BOUND('',#9018,.F.);\r
+-#9020=ADVANCED_FACE('',(#9019),#9013,.F.);\r
+-#9021=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
+-#9022=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9023=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9024=AXIS2_PLACEMENT_3D('',#9021,#9022,#9023);\r
+-#9025=CYLINDRICAL_SURFACE('',#9024,2.575E-1);\r
+-#9026=ORIENTED_EDGE('',*,*,#6470,.T.);\r
+-#9028=ORIENTED_EDGE('',*,*,#9027,.T.);\r
+-#9030=ORIENTED_EDGE('',*,*,#9029,.F.);\r
+-#9032=ORIENTED_EDGE('',*,*,#9031,.F.);\r
+-#9033=EDGE_LOOP('',(#9026,#9028,#9030,#9032));\r
+-#9034=FACE_OUTER_BOUND('',#9033,.F.);\r
+-#9035=ADVANCED_FACE('',(#9034),#9025,.F.);\r
+-#9036=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
+-#9037=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9038=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9039=AXIS2_PLACEMENT_3D('',#9036,#9037,#9038);\r
+-#9040=CYLINDRICAL_SURFACE('',#9039,2.575E-1);\r
+-#9041=ORIENTED_EDGE('',*,*,#6472,.T.);\r
+-#9042=ORIENTED_EDGE('',*,*,#9031,.T.);\r
+-#9044=ORIENTED_EDGE('',*,*,#9043,.F.);\r
+-#9045=ORIENTED_EDGE('',*,*,#9027,.F.);\r
+-#9046=EDGE_LOOP('',(#9041,#9042,#9044,#9045));\r
+-#9047=FACE_OUTER_BOUND('',#9046,.F.);\r
+-#9048=ADVANCED_FACE('',(#9047),#9040,.F.);\r
+-#9049=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
+-#9050=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9051=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9052=AXIS2_PLACEMENT_3D('',#9049,#9050,#9051);\r
+-#9053=PLANE('',#9052);\r
+-#9054=ORIENTED_EDGE('',*,*,#9029,.T.);\r
+-#9055=ORIENTED_EDGE('',*,*,#9043,.T.);\r
+-#9056=EDGE_LOOP('',(#9054,#9055));\r
+-#9057=FACE_OUTER_BOUND('',#9056,.F.);\r
+-#9059=ORIENTED_EDGE('',*,*,#9058,.F.);\r
+-#9061=ORIENTED_EDGE('',*,*,#9060,.F.);\r
+-#9062=EDGE_LOOP('',(#9059,#9061));\r
+-#9063=FACE_BOUND('',#9062,.F.);\r
+-#9064=ADVANCED_FACE('',(#9057,#9063),#9053,.F.);\r
+-#9065=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
+-#9066=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9067=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9068=AXIS2_PLACEMENT_3D('',#9065,#9066,#9067);\r
+-#9069=CYLINDRICAL_SURFACE('',#9068,1.925E-1);\r
+-#9070=ORIENTED_EDGE('',*,*,#9058,.T.);\r
+-#9072=ORIENTED_EDGE('',*,*,#9071,.T.);\r
+-#9073=ORIENTED_EDGE('',*,*,#5708,.F.);\r
+-#9075=ORIENTED_EDGE('',*,*,#9074,.F.);\r
+-#9076=EDGE_LOOP('',(#9070,#9072,#9073,#9075));\r
+-#9077=FACE_OUTER_BOUND('',#9076,.F.);\r
+-#9078=ADVANCED_FACE('',(#9077),#9069,.F.);\r
+-#9079=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
+-#9080=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9081=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9082=AXIS2_PLACEMENT_3D('',#9079,#9080,#9081);\r
+-#9083=CYLINDRICAL_SURFACE('',#9082,1.925E-1);\r
+-#9084=ORIENTED_EDGE('',*,*,#9060,.T.);\r
+-#9085=ORIENTED_EDGE('',*,*,#9074,.T.);\r
+-#9086=ORIENTED_EDGE('',*,*,#5710,.F.);\r
+-#9087=ORIENTED_EDGE('',*,*,#9071,.F.);\r
+-#9088=EDGE_LOOP('',(#9084,#9085,#9086,#9087));\r
+-#9089=FACE_OUTER_BOUND('',#9088,.F.);\r
+-#9090=ADVANCED_FACE('',(#9089),#9083,.F.);\r
+-#9091=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
+-#9092=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9093=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9094=AXIS2_PLACEMENT_3D('',#9091,#9092,#9093);\r
+-#9095=CYLINDRICAL_SURFACE('',#9094,2.575E-1);\r
+-#9096=ORIENTED_EDGE('',*,*,#6476,.T.);\r
+-#9098=ORIENTED_EDGE('',*,*,#9097,.T.);\r
+-#9100=ORIENTED_EDGE('',*,*,#9099,.F.);\r
+-#9102=ORIENTED_EDGE('',*,*,#9101,.F.);\r
+-#9103=EDGE_LOOP('',(#9096,#9098,#9100,#9102));\r
+-#9104=FACE_OUTER_BOUND('',#9103,.F.);\r
+-#9105=ADVANCED_FACE('',(#9104),#9095,.F.);\r
+-#9106=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
+-#9107=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9108=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9109=AXIS2_PLACEMENT_3D('',#9106,#9107,#9108);\r
+-#9110=CYLINDRICAL_SURFACE('',#9109,2.575E-1);\r
+-#9111=ORIENTED_EDGE('',*,*,#6478,.T.);\r
+-#9112=ORIENTED_EDGE('',*,*,#9101,.T.);\r
+-#9114=ORIENTED_EDGE('',*,*,#9113,.F.);\r
+-#9115=ORIENTED_EDGE('',*,*,#9097,.F.);\r
+-#9116=EDGE_LOOP('',(#9111,#9112,#9114,#9115));\r
+-#9117=FACE_OUTER_BOUND('',#9116,.F.);\r
+-#9118=ADVANCED_FACE('',(#9117),#9110,.F.);\r
+-#9119=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
+-#9120=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9121=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9122=AXIS2_PLACEMENT_3D('',#9119,#9120,#9121);\r
+-#9123=PLANE('',#9122);\r
+-#9124=ORIENTED_EDGE('',*,*,#9099,.T.);\r
+-#9125=ORIENTED_EDGE('',*,*,#9113,.T.);\r
+-#9126=EDGE_LOOP('',(#9124,#9125));\r
+-#9127=FACE_OUTER_BOUND('',#9126,.F.);\r
+-#9129=ORIENTED_EDGE('',*,*,#9128,.F.);\r
+-#9131=ORIENTED_EDGE('',*,*,#9130,.F.);\r
+-#9132=EDGE_LOOP('',(#9129,#9131));\r
+-#9133=FACE_BOUND('',#9132,.F.);\r
+-#9134=ADVANCED_FACE('',(#9127,#9133),#9123,.F.);\r
+-#9135=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
+-#9136=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9137=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9138=AXIS2_PLACEMENT_3D('',#9135,#9136,#9137);\r
+-#9139=CYLINDRICAL_SURFACE('',#9138,1.925E-1);\r
+-#9140=ORIENTED_EDGE('',*,*,#9128,.T.);\r
+-#9142=ORIENTED_EDGE('',*,*,#9141,.T.);\r
+-#9143=ORIENTED_EDGE('',*,*,#5714,.F.);\r
+-#9145=ORIENTED_EDGE('',*,*,#9144,.F.);\r
+-#9146=EDGE_LOOP('',(#9140,#9142,#9143,#9145));\r
+-#9147=FACE_OUTER_BOUND('',#9146,.F.);\r
+-#9148=ADVANCED_FACE('',(#9147),#9139,.F.);\r
+-#9149=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
+-#9150=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9151=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9152=AXIS2_PLACEMENT_3D('',#9149,#9150,#9151);\r
+-#9153=CYLINDRICAL_SURFACE('',#9152,1.925E-1);\r
+-#9154=ORIENTED_EDGE('',*,*,#9130,.T.);\r
+-#9155=ORIENTED_EDGE('',*,*,#9144,.T.);\r
+-#9156=ORIENTED_EDGE('',*,*,#5716,.F.);\r
+-#9157=ORIENTED_EDGE('',*,*,#9141,.F.);\r
+-#9158=EDGE_LOOP('',(#9154,#9155,#9156,#9157));\r
+-#9159=FACE_OUTER_BOUND('',#9158,.F.);\r
+-#9160=ADVANCED_FACE('',(#9159),#9153,.F.);\r
+-#9161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
+-#9162=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9163=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9164=AXIS2_PLACEMENT_3D('',#9161,#9162,#9163);\r
+-#9165=CYLINDRICAL_SURFACE('',#9164,2.575E-1);\r
+-#9166=ORIENTED_EDGE('',*,*,#6482,.T.);\r
+-#9168=ORIENTED_EDGE('',*,*,#9167,.T.);\r
+-#9170=ORIENTED_EDGE('',*,*,#9169,.F.);\r
+-#9172=ORIENTED_EDGE('',*,*,#9171,.F.);\r
+-#9173=EDGE_LOOP('',(#9166,#9168,#9170,#9172));\r
+-#9174=FACE_OUTER_BOUND('',#9173,.F.);\r
+-#9175=ADVANCED_FACE('',(#9174),#9165,.F.);\r
+-#9176=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
+-#9177=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9178=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9179=AXIS2_PLACEMENT_3D('',#9176,#9177,#9178);\r
+-#9180=CYLINDRICAL_SURFACE('',#9179,2.575E-1);\r
+-#9181=ORIENTED_EDGE('',*,*,#6484,.T.);\r
+-#9182=ORIENTED_EDGE('',*,*,#9171,.T.);\r
+-#9184=ORIENTED_EDGE('',*,*,#9183,.F.);\r
+-#9185=ORIENTED_EDGE('',*,*,#9167,.F.);\r
+-#9186=EDGE_LOOP('',(#9181,#9182,#9184,#9185));\r
+-#9187=FACE_OUTER_BOUND('',#9186,.F.);\r
+-#9188=ADVANCED_FACE('',(#9187),#9180,.F.);\r
+-#9189=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
+-#9190=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9191=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9192=AXIS2_PLACEMENT_3D('',#9189,#9190,#9191);\r
+-#9193=PLANE('',#9192);\r
+-#9194=ORIENTED_EDGE('',*,*,#9169,.T.);\r
+-#9195=ORIENTED_EDGE('',*,*,#9183,.T.);\r
+-#9196=EDGE_LOOP('',(#9194,#9195));\r
+-#9197=FACE_OUTER_BOUND('',#9196,.F.);\r
+-#9199=ORIENTED_EDGE('',*,*,#9198,.F.);\r
+-#9201=ORIENTED_EDGE('',*,*,#9200,.F.);\r
+-#9202=EDGE_LOOP('',(#9199,#9201));\r
+-#9203=FACE_BOUND('',#9202,.F.);\r
+-#9204=ADVANCED_FACE('',(#9197,#9203),#9193,.F.);\r
+-#9205=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
+-#9206=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9207=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9208=AXIS2_PLACEMENT_3D('',#9205,#9206,#9207);\r
+-#9209=CYLINDRICAL_SURFACE('',#9208,1.925E-1);\r
+-#9210=ORIENTED_EDGE('',*,*,#9198,.T.);\r
+-#9212=ORIENTED_EDGE('',*,*,#9211,.T.);\r
+-#9213=ORIENTED_EDGE('',*,*,#5720,.F.);\r
+-#9215=ORIENTED_EDGE('',*,*,#9214,.F.);\r
+-#9216=EDGE_LOOP('',(#9210,#9212,#9213,#9215));\r
+-#9217=FACE_OUTER_BOUND('',#9216,.F.);\r
+-#9218=ADVANCED_FACE('',(#9217),#9209,.F.);\r
+-#9219=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
+-#9220=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9221=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9222=AXIS2_PLACEMENT_3D('',#9219,#9220,#9221);\r
+-#9223=CYLINDRICAL_SURFACE('',#9222,1.925E-1);\r
+-#9224=ORIENTED_EDGE('',*,*,#9200,.T.);\r
+-#9225=ORIENTED_EDGE('',*,*,#9214,.T.);\r
+-#9226=ORIENTED_EDGE('',*,*,#5722,.F.);\r
+-#9227=ORIENTED_EDGE('',*,*,#9211,.F.);\r
+-#9228=EDGE_LOOP('',(#9224,#9225,#9226,#9227));\r
+-#9229=FACE_OUTER_BOUND('',#9228,.F.);\r
+-#9230=ADVANCED_FACE('',(#9229),#9223,.F.);\r
+-#9231=CARTESIAN_POINT('',(2.2E1,1.5E0,1.2E1));\r
+-#9232=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9233=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9234=AXIS2_PLACEMENT_3D('',#9231,#9232,#9233);\r
+-#9235=PLANE('',#9234);\r
+-#9236=ORIENTED_EDGE('',*,*,#6328,.T.);\r
+-#9237=ORIENTED_EDGE('',*,*,#6155,.T.);\r
+-#9239=ORIENTED_EDGE('',*,*,#9238,.T.);\r
+-#9240=EDGE_LOOP('',(#9236,#9237,#9239));\r
+-#9241=FACE_OUTER_BOUND('',#9240,.F.);\r
+-#9242=ADVANCED_FACE('',(#9241),#9235,.F.);\r
+-#9243=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
+-#9244=DIRECTION('',(0.E0,-5.E-1,-8.660254037844E-1));\r
+-#9245=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
+-#9246=AXIS2_PLACEMENT_3D('',#9243,#9244,#9245);\r
+-#9247=PLANE('',#9246);\r
+-#9248=ORIENTED_EDGE('',*,*,#6330,.T.);\r
+-#9249=ORIENTED_EDGE('',*,*,#9238,.F.);\r
+-#9250=ORIENTED_EDGE('',*,*,#6153,.F.);\r
+-#9251=ORIENTED_EDGE('',*,*,#6209,.T.);\r
+-#9252=EDGE_LOOP('',(#9248,#9249,#9250,#9251));\r
+-#9253=FACE_OUTER_BOUND('',#9252,.F.);\r
+-#9255=ORIENTED_EDGE('',*,*,#9254,.F.);\r
+-#9257=ORIENTED_EDGE('',*,*,#9256,.F.);\r
+-#9258=EDGE_LOOP('',(#9255,#9257));\r
+-#9259=FACE_BOUND('',#9258,.F.);\r
+-#9260=ADVANCED_FACE('',(#9253,#9259),#9247,.F.);\r
+-#9261=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
+-#9262=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9263=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9264=AXIS2_PLACEMENT_3D('',#9261,#9262,#9263);\r
+-#9265=CYLINDRICAL_SURFACE('',#9264,2.575E-1);\r
+-#9267=ORIENTED_EDGE('',*,*,#9266,.F.);\r
+-#9268=ORIENTED_EDGE('',*,*,#9254,.T.);\r
+-#9270=ORIENTED_EDGE('',*,*,#9269,.F.);\r
+-#9272=ORIENTED_EDGE('',*,*,#9271,.F.);\r
+-#9273=EDGE_LOOP('',(#9267,#9268,#9270,#9272));\r
+-#9274=FACE_OUTER_BOUND('',#9273,.F.);\r
+-#9275=ADVANCED_FACE('',(#9274),#9265,.F.);\r
+-#9276=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
+-#9277=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9278=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9279=AXIS2_PLACEMENT_3D('',#9276,#9277,#9278);\r
+-#9280=CYLINDRICAL_SURFACE('',#9279,2.575E-1);\r
+-#9281=ORIENTED_EDGE('',*,*,#9269,.T.);\r
+-#9282=ORIENTED_EDGE('',*,*,#9256,.T.);\r
+-#9283=ORIENTED_EDGE('',*,*,#9266,.T.);\r
+-#9285=ORIENTED_EDGE('',*,*,#9284,.F.);\r
+-#9286=EDGE_LOOP('',(#9281,#9282,#9283,#9285));\r
+-#9287=FACE_OUTER_BOUND('',#9286,.F.);\r
+-#9288=ADVANCED_FACE('',(#9287),#9280,.F.);\r
+-#9289=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
+-#9290=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9291=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9292=AXIS2_PLACEMENT_3D('',#9289,#9290,#9291);\r
+-#9293=PLANE('',#9292);\r
+-#9294=ORIENTED_EDGE('',*,*,#9271,.T.);\r
+-#9295=ORIENTED_EDGE('',*,*,#9284,.T.);\r
+-#9296=EDGE_LOOP('',(#9294,#9295));\r
+-#9297=FACE_OUTER_BOUND('',#9296,.F.);\r
+-#9299=ORIENTED_EDGE('',*,*,#9298,.F.);\r
+-#9301=ORIENTED_EDGE('',*,*,#9300,.F.);\r
+-#9302=EDGE_LOOP('',(#9299,#9301));\r
+-#9303=FACE_BOUND('',#9302,.F.);\r
+-#9304=ADVANCED_FACE('',(#9297,#9303),#9293,.F.);\r
+-#9305=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
+-#9306=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9307=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9308=AXIS2_PLACEMENT_3D('',#9305,#9306,#9307);\r
+-#9309=CYLINDRICAL_SURFACE('',#9308,1.925E-1);\r
+-#9310=ORIENTED_EDGE('',*,*,#9298,.T.);\r
+-#9312=ORIENTED_EDGE('',*,*,#9311,.T.);\r
+-#9313=ORIENTED_EDGE('',*,*,#5596,.F.);\r
+-#9315=ORIENTED_EDGE('',*,*,#9314,.F.);\r
+-#9316=EDGE_LOOP('',(#9310,#9312,#9313,#9315));\r
+-#9317=FACE_OUTER_BOUND('',#9316,.F.);\r
+-#9318=ADVANCED_FACE('',(#9317),#9309,.F.);\r
+-#9319=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
+-#9320=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9321=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9322=AXIS2_PLACEMENT_3D('',#9319,#9320,#9321);\r
+-#9323=CYLINDRICAL_SURFACE('',#9322,1.925E-1);\r
+-#9324=ORIENTED_EDGE('',*,*,#9300,.T.);\r
+-#9325=ORIENTED_EDGE('',*,*,#9314,.T.);\r
+-#9326=ORIENTED_EDGE('',*,*,#5598,.F.);\r
+-#9327=ORIENTED_EDGE('',*,*,#9311,.F.);\r
+-#9328=EDGE_LOOP('',(#9324,#9325,#9326,#9327));\r
+-#9329=FACE_OUTER_BOUND('',#9328,.F.);\r
+-#9330=ADVANCED_FACE('',(#9329),#9323,.F.);\r
+-#9331=CARTESIAN_POINT('',(2.185E1,6.65E0,1.006892397423E1));\r
+-#9332=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9333=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9334=AXIS2_PLACEMENT_3D('',#9331,#9332,#9333);\r
+-#9335=CYLINDRICAL_SURFACE('',#9334,3.5E-1);\r
+-#9337=ORIENTED_EDGE('',*,*,#9336,.T.);\r
+-#9339=ORIENTED_EDGE('',*,*,#9338,.T.);\r
+-#9341=ORIENTED_EDGE('',*,*,#9340,.F.);\r
+-#9342=ORIENTED_EDGE('',*,*,#6175,.T.);\r
+-#9343=EDGE_LOOP('',(#9337,#9339,#9341,#9342));\r
+-#9344=FACE_OUTER_BOUND('',#9343,.F.);\r
+-#9345=ADVANCED_FACE('',(#9344),#9335,.T.);\r
+-#9346=CARTESIAN_POINT('',(2.15E1,7.E0,1.E1));\r
+-#9347=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9348=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9349=AXIS2_PLACEMENT_3D('',#9346,#9347,#9348);\r
+-#9350=PLANE('',#9349);\r
+-#9351=ORIENTED_EDGE('',*,*,#9336,.F.);\r
+-#9352=ORIENTED_EDGE('',*,*,#6197,.T.);\r
+-#9354=ORIENTED_EDGE('',*,*,#9353,.F.);\r
+-#9356=ORIENTED_EDGE('',*,*,#9355,.F.);\r
+-#9357=EDGE_LOOP('',(#9351,#9352,#9354,#9356));\r
+-#9358=FACE_OUTER_BOUND('',#9357,.F.);\r
+-#9359=ADVANCED_FACE('',(#9358),#9350,.T.);\r
+-#9360=CARTESIAN_POINT('',(2.115E1,2.35E0,9.441108058217E0));\r
+-#9361=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9362=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));\r
+-#9363=AXIS2_PLACEMENT_3D('',#9360,#9361,#9362);\r
+-#9364=CYLINDRICAL_SURFACE('',#9363,3.5E-1);\r
+-#9366=ORIENTED_EDGE('',*,*,#9365,.F.);\r
+-#9368=ORIENTED_EDGE('',*,*,#9367,.T.);\r
+-#9369=ORIENTED_EDGE('',*,*,#9353,.T.);\r
+-#9370=ORIENTED_EDGE('',*,*,#6195,.T.);\r
+-#9371=EDGE_LOOP('',(#9366,#9368,#9369,#9370));\r
+-#9372=FACE_OUTER_BOUND('',#9371,.F.);\r
+-#9373=ADVANCED_FACE('',(#9372),#9364,.F.);\r
+-#9374=CARTESIAN_POINT('',(2.15E1,2.E0,1.E1));\r
+-#9375=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9376=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9377=AXIS2_PLACEMENT_3D('',#9374,#9375,#9376);\r
+-#9378=PLANE('',#9377);\r
+-#9379=ORIENTED_EDGE('',*,*,#9365,.T.);\r
+-#9380=ORIENTED_EDGE('',*,*,#6193,.T.);\r
+-#9382=ORIENTED_EDGE('',*,*,#9381,.F.);\r
+-#9384=ORIENTED_EDGE('',*,*,#9383,.F.);\r
+-#9385=EDGE_LOOP('',(#9379,#9380,#9382,#9384));\r
+-#9386=FACE_OUTER_BOUND('',#9385,.F.);\r
+-#9387=ADVANCED_FACE('',(#9386),#9378,.T.);\r
+-#9388=CARTESIAN_POINT('',(1.985E1,2.35E0,9.441108058217E0));\r
+-#9389=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9390=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9391=AXIS2_PLACEMENT_3D('',#9388,#9389,#9390);\r
+-#9392=CYLINDRICAL_SURFACE('',#9391,3.5E-1);\r
+-#9394=ORIENTED_EDGE('',*,*,#9393,.F.);\r
+-#9396=ORIENTED_EDGE('',*,*,#9395,.T.);\r
+-#9397=ORIENTED_EDGE('',*,*,#9381,.T.);\r
+-#9398=ORIENTED_EDGE('',*,*,#6191,.T.);\r
+-#9399=EDGE_LOOP('',(#9394,#9396,#9397,#9398));\r
+-#9400=FACE_OUTER_BOUND('',#9399,.F.);\r
+-#9401=ADVANCED_FACE('',(#9400),#9392,.F.);\r
+-#9402=CARTESIAN_POINT('',(1.95E1,2.E0,1.E1));\r
+-#9403=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9404=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9405=AXIS2_PLACEMENT_3D('',#9402,#9403,#9404);\r
+-#9406=PLANE('',#9405);\r
+-#9407=ORIENTED_EDGE('',*,*,#9393,.T.);\r
+-#9408=ORIENTED_EDGE('',*,*,#6189,.T.);\r
+-#9410=ORIENTED_EDGE('',*,*,#9409,.F.);\r
+-#9412=ORIENTED_EDGE('',*,*,#9411,.F.);\r
+-#9413=EDGE_LOOP('',(#9407,#9408,#9410,#9412));\r
+-#9414=FACE_OUTER_BOUND('',#9413,.F.);\r
+-#9415=ADVANCED_FACE('',(#9414),#9406,.T.);\r
+-#9416=CARTESIAN_POINT('',(1.985E1,9.15E0,9.441108058217E0));\r
+-#9417=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9418=DIRECTION('',(-1.015061051086E-14,1.E0,0.E0));\r
+-#9419=AXIS2_PLACEMENT_3D('',#9416,#9417,#9418);\r
+-#9420=CYLINDRICAL_SURFACE('',#9419,3.5E-1);\r
+-#9422=ORIENTED_EDGE('',*,*,#9421,.F.);\r
+-#9424=ORIENTED_EDGE('',*,*,#9423,.T.);\r
+-#9425=ORIENTED_EDGE('',*,*,#9409,.T.);\r
+-#9426=ORIENTED_EDGE('',*,*,#6187,.T.);\r
+-#9427=EDGE_LOOP('',(#9422,#9424,#9425,#9426));\r
+-#9428=FACE_OUTER_BOUND('',#9427,.F.);\r
+-#9429=ADVANCED_FACE('',(#9428),#9420,.F.);\r
+-#9430=CARTESIAN_POINT('',(1.95E1,9.5E0,1.E1));\r
+-#9431=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9432=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9433=AXIS2_PLACEMENT_3D('',#9430,#9431,#9432);\r
+-#9434=PLANE('',#9433);\r
+-#9436=ORIENTED_EDGE('',*,*,#9435,.F.);\r
+-#9438=ORIENTED_EDGE('',*,*,#9437,.F.);\r
+-#9439=ORIENTED_EDGE('',*,*,#9421,.T.);\r
+-#9440=ORIENTED_EDGE('',*,*,#6185,.T.);\r
+-#9441=EDGE_LOOP('',(#9436,#9438,#9439,#9440));\r
+-#9442=FACE_OUTER_BOUND('',#9441,.F.);\r
+-#9443=ADVANCED_FACE('',(#9442),#9434,.T.);\r
+-#9444=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.441108058217E0));\r
+-#9445=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9446=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#9447=AXIS2_PLACEMENT_3D('',#9444,#9445,#9446);\r
+-#9448=CYLINDRICAL_SURFACE('',#9447,3.5E-1);\r
+-#9450=ORIENTED_EDGE('',*,*,#9449,.F.);\r
+-#9452=ORIENTED_EDGE('',*,*,#9451,.T.);\r
+-#9453=ORIENTED_EDGE('',*,*,#9435,.T.);\r
+-#9454=ORIENTED_EDGE('',*,*,#6183,.T.);\r
+-#9455=EDGE_LOOP('',(#9450,#9452,#9453,#9454));\r
+-#9456=FACE_OUTER_BOUND('',#9455,.F.);\r
+-#9457=ADVANCED_FACE('',(#9456),#9448,.F.);\r
+-#9458=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,1.E1));\r
+-#9459=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));\r
+-#9460=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
+-#9461=AXIS2_PLACEMENT_3D('',#9458,#9459,#9460);\r
+-#9462=PLANE('',#9461);\r
+-#9464=ORIENTED_EDGE('',*,*,#9463,.F.);\r
+-#9466=ORIENTED_EDGE('',*,*,#9465,.F.);\r
+-#9467=ORIENTED_EDGE('',*,*,#9449,.T.);\r
+-#9468=ORIENTED_EDGE('',*,*,#6181,.T.);\r
+-#9469=EDGE_LOOP('',(#9464,#9466,#9467,#9468));\r
+-#9470=FACE_OUTER_BOUND('',#9469,.F.);\r
+-#9471=ADVANCED_FACE('',(#9470),#9462,.T.);\r
+-#9472=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.441108058217E0));\r
+-#9473=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9474=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474);\r
+-#9476=CYLINDRICAL_SURFACE('',#9475,3.5E-1);\r
+-#9478=ORIENTED_EDGE('',*,*,#9477,.F.);\r
+-#9480=ORIENTED_EDGE('',*,*,#9479,.T.);\r
+-#9481=ORIENTED_EDGE('',*,*,#9463,.T.);\r
+-#9482=ORIENTED_EDGE('',*,*,#6179,.T.);\r
+-#9483=EDGE_LOOP('',(#9478,#9480,#9481,#9482));\r
+-#9484=FACE_OUTER_BOUND('',#9483,.F.);\r
+-#9485=ADVANCED_FACE('',(#9484),#9476,.F.);\r
+-#9486=CARTESIAN_POINT('',(2.264203082158E1,7.E0,1.E1));\r
+-#9487=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9488=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488);\r
+-#9490=PLANE('',#9489);\r
+-#9491=ORIENTED_EDGE('',*,*,#9340,.T.);\r
+-#9493=ORIENTED_EDGE('',*,*,#9492,.F.);\r
+-#9494=ORIENTED_EDGE('',*,*,#9477,.T.);\r
+-#9495=ORIENTED_EDGE('',*,*,#6177,.T.);\r
+-#9496=EDGE_LOOP('',(#9491,#9493,#9494,#9495));\r
+-#9497=FACE_OUTER_BOUND('',#9496,.F.);\r
+-#9498=ADVANCED_FACE('',(#9497),#9490,.T.);\r
+-#9499=CARTESIAN_POINT('',(2.4E1,0.E0,9.5E0));\r
+-#9500=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9501=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9502=AXIS2_PLACEMENT_3D('',#9499,#9500,#9501);\r
+-#9503=PLANE('',#9502);\r
+-#9504=ORIENTED_EDGE('',*,*,#9492,.T.);\r
+-#9505=ORIENTED_EDGE('',*,*,#9338,.F.);\r
+-#9506=ORIENTED_EDGE('',*,*,#9355,.T.);\r
+-#9507=ORIENTED_EDGE('',*,*,#9367,.F.);\r
+-#9508=ORIENTED_EDGE('',*,*,#9383,.T.);\r
+-#9509=ORIENTED_EDGE('',*,*,#9395,.F.);\r
+-#9510=ORIENTED_EDGE('',*,*,#9411,.T.);\r
+-#9511=ORIENTED_EDGE('',*,*,#9423,.F.);\r
+-#9512=ORIENTED_EDGE('',*,*,#9437,.T.);\r
+-#9513=ORIENTED_EDGE('',*,*,#9451,.F.);\r
+-#9514=ORIENTED_EDGE('',*,*,#9465,.T.);\r
+-#9515=ORIENTED_EDGE('',*,*,#9479,.F.);\r
+-#9516=EDGE_LOOP('',(#9504,#9505,#9506,#9507,#9508,#9509,#9510,#9511,#9512,#9513,\r
+-#9514,#9515));\r
+-#9517=FACE_OUTER_BOUND('',#9516,.F.);\r
+-#9518=ADVANCED_FACE('',(#9517),#9503,.F.);\r
+-#9519=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
+-#9520=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9521=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9522=AXIS2_PLACEMENT_3D('',#9519,#9520,#9521);\r
+-#9523=CYLINDRICAL_SURFACE('',#9522,9.5E-2);\r
+-#9524=ORIENTED_EDGE('',*,*,#6007,.F.);\r
+-#9526=ORIENTED_EDGE('',*,*,#9525,.T.);\r
+-#9528=ORIENTED_EDGE('',*,*,#9527,.T.);\r
+-#9530=ORIENTED_EDGE('',*,*,#9529,.F.);\r
+-#9531=EDGE_LOOP('',(#9524,#9526,#9528,#9530));\r
+-#9532=FACE_OUTER_BOUND('',#9531,.F.);\r
+-#9533=ADVANCED_FACE('',(#9532),#9523,.F.);\r
+-#9534=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
+-#9535=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9536=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9537=AXIS2_PLACEMENT_3D('',#9534,#9535,#9536);\r
+-#9538=CYLINDRICAL_SURFACE('',#9537,9.5E-2);\r
+-#9539=ORIENTED_EDGE('',*,*,#6009,.F.);\r
+-#9540=ORIENTED_EDGE('',*,*,#9529,.T.);\r
+-#9542=ORIENTED_EDGE('',*,*,#9541,.T.);\r
+-#9543=ORIENTED_EDGE('',*,*,#9525,.F.);\r
+-#9544=EDGE_LOOP('',(#9539,#9540,#9542,#9543));\r
+-#9545=FACE_OUTER_BOUND('',#9544,.F.);\r
+-#9546=ADVANCED_FACE('',(#9545),#9538,.F.);\r
+-#9547=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));\r
+-#9548=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9549=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9550=AXIS2_PLACEMENT_3D('',#9547,#9548,#9549);\r
+-#9551=PLANE('',#9550);\r
+-#9552=ORIENTED_EDGE('',*,*,#9527,.F.);\r
+-#9553=ORIENTED_EDGE('',*,*,#9541,.F.);\r
+-#9554=EDGE_LOOP('',(#9552,#9553));\r
+-#9555=FACE_OUTER_BOUND('',#9554,.F.);\r
+-#9556=ADVANCED_FACE('',(#9555),#9551,.T.);\r
+-#9557=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
+-#9558=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9559=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9560=AXIS2_PLACEMENT_3D('',#9557,#9558,#9559);\r
+-#9561=CYLINDRICAL_SURFACE('',#9560,9.5E-2);\r
+-#9562=ORIENTED_EDGE('',*,*,#6013,.F.);\r
+-#9564=ORIENTED_EDGE('',*,*,#9563,.T.);\r
+-#9566=ORIENTED_EDGE('',*,*,#9565,.T.);\r
+-#9568=ORIENTED_EDGE('',*,*,#9567,.F.);\r
+-#9569=EDGE_LOOP('',(#9562,#9564,#9566,#9568));\r
+-#9570=FACE_OUTER_BOUND('',#9569,.F.);\r
+-#9571=ADVANCED_FACE('',(#9570),#9561,.F.);\r
+-#9572=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
+-#9573=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9574=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9575=AXIS2_PLACEMENT_3D('',#9572,#9573,#9574);\r
+-#9576=CYLINDRICAL_SURFACE('',#9575,9.5E-2);\r
+-#9577=ORIENTED_EDGE('',*,*,#6015,.F.);\r
+-#9578=ORIENTED_EDGE('',*,*,#9567,.T.);\r
+-#9580=ORIENTED_EDGE('',*,*,#9579,.T.);\r
+-#9581=ORIENTED_EDGE('',*,*,#9563,.F.);\r
+-#9582=EDGE_LOOP('',(#9577,#9578,#9580,#9581));\r
+-#9583=FACE_OUTER_BOUND('',#9582,.F.);\r
+-#9584=ADVANCED_FACE('',(#9583),#9576,.F.);\r
+-#9585=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));\r
+-#9586=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9587=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9588=AXIS2_PLACEMENT_3D('',#9585,#9586,#9587);\r
+-#9589=PLANE('',#9588);\r
+-#9590=ORIENTED_EDGE('',*,*,#9565,.F.);\r
+-#9591=ORIENTED_EDGE('',*,*,#9579,.F.);\r
+-#9592=EDGE_LOOP('',(#9590,#9591));\r
+-#9593=FACE_OUTER_BOUND('',#9592,.F.);\r
+-#9594=ADVANCED_FACE('',(#9593),#9589,.T.);\r
+-#9595=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
+-#9596=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9597=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9598=AXIS2_PLACEMENT_3D('',#9595,#9596,#9597);\r
+-#9599=CYLINDRICAL_SURFACE('',#9598,9.5E-2);\r
+-#9600=ORIENTED_EDGE('',*,*,#6019,.T.);\r
+-#9602=ORIENTED_EDGE('',*,*,#9601,.T.);\r
+-#9604=ORIENTED_EDGE('',*,*,#9603,.F.);\r
+-#9606=ORIENTED_EDGE('',*,*,#9605,.F.);\r
+-#9607=EDGE_LOOP('',(#9600,#9602,#9604,#9606));\r
+-#9608=FACE_OUTER_BOUND('',#9607,.F.);\r
+-#9609=ADVANCED_FACE('',(#9608),#9599,.F.);\r
+-#9610=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
+-#9611=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9612=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9613=AXIS2_PLACEMENT_3D('',#9610,#9611,#9612);\r
+-#9614=CYLINDRICAL_SURFACE('',#9613,9.5E-2);\r
+-#9615=ORIENTED_EDGE('',*,*,#6021,.T.);\r
+-#9616=ORIENTED_EDGE('',*,*,#9605,.T.);\r
+-#9618=ORIENTED_EDGE('',*,*,#9617,.F.);\r
+-#9619=ORIENTED_EDGE('',*,*,#9601,.F.);\r
+-#9620=EDGE_LOOP('',(#9615,#9616,#9618,#9619));\r
+-#9621=FACE_OUTER_BOUND('',#9620,.F.);\r
+-#9622=ADVANCED_FACE('',(#9621),#9614,.F.);\r
+-#9623=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));\r
+-#9624=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9625=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9626=AXIS2_PLACEMENT_3D('',#9623,#9624,#9625);\r
+-#9627=PLANE('',#9626);\r
+-#9628=ORIENTED_EDGE('',*,*,#9603,.T.);\r
+-#9629=ORIENTED_EDGE('',*,*,#9617,.T.);\r
+-#9630=EDGE_LOOP('',(#9628,#9629));\r
+-#9631=FACE_OUTER_BOUND('',#9630,.F.);\r
+-#9632=ADVANCED_FACE('',(#9631),#9627,.F.);\r
+-#9633=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
+-#9634=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9635=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9636=AXIS2_PLACEMENT_3D('',#9633,#9634,#9635);\r
+-#9637=CYLINDRICAL_SURFACE('',#9636,9.5E-2);\r
+-#9638=ORIENTED_EDGE('',*,*,#6025,.T.);\r
+-#9640=ORIENTED_EDGE('',*,*,#9639,.T.);\r
+-#9642=ORIENTED_EDGE('',*,*,#9641,.F.);\r
+-#9644=ORIENTED_EDGE('',*,*,#9643,.F.);\r
+-#9645=EDGE_LOOP('',(#9638,#9640,#9642,#9644));\r
+-#9646=FACE_OUTER_BOUND('',#9645,.F.);\r
+-#9647=ADVANCED_FACE('',(#9646),#9637,.F.);\r
+-#9648=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
+-#9649=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9650=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9651=AXIS2_PLACEMENT_3D('',#9648,#9649,#9650);\r
+-#9652=CYLINDRICAL_SURFACE('',#9651,9.5E-2);\r
+-#9653=ORIENTED_EDGE('',*,*,#6027,.T.);\r
+-#9654=ORIENTED_EDGE('',*,*,#9643,.T.);\r
+-#9656=ORIENTED_EDGE('',*,*,#9655,.F.);\r
+-#9657=ORIENTED_EDGE('',*,*,#9639,.F.);\r
+-#9658=EDGE_LOOP('',(#9653,#9654,#9656,#9657));\r
+-#9659=FACE_OUTER_BOUND('',#9658,.F.);\r
+-#9660=ADVANCED_FACE('',(#9659),#9652,.F.);\r
+-#9661=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));\r
+-#9662=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9663=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9664=AXIS2_PLACEMENT_3D('',#9661,#9662,#9663);\r
+-#9665=PLANE('',#9664);\r
+-#9666=ORIENTED_EDGE('',*,*,#9641,.T.);\r
+-#9667=ORIENTED_EDGE('',*,*,#9655,.T.);\r
+-#9668=EDGE_LOOP('',(#9666,#9667));\r
+-#9669=FACE_OUTER_BOUND('',#9668,.F.);\r
+-#9670=ADVANCED_FACE('',(#9669),#9665,.F.);\r
+-#9671=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
+-#9672=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9673=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9674=AXIS2_PLACEMENT_3D('',#9671,#9672,#9673);\r
+-#9675=CYLINDRICAL_SURFACE('',#9674,9.5E-2);\r
+-#9676=ORIENTED_EDGE('',*,*,#6037,.T.);\r
+-#9678=ORIENTED_EDGE('',*,*,#9677,.T.);\r
+-#9680=ORIENTED_EDGE('',*,*,#9679,.F.);\r
+-#9682=ORIENTED_EDGE('',*,*,#9681,.F.);\r
+-#9683=EDGE_LOOP('',(#9676,#9678,#9680,#9682));\r
+-#9684=FACE_OUTER_BOUND('',#9683,.F.);\r
+-#9685=ADVANCED_FACE('',(#9684),#9675,.F.);\r
+-#9686=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
+-#9687=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9688=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9689=AXIS2_PLACEMENT_3D('',#9686,#9687,#9688);\r
+-#9690=CYLINDRICAL_SURFACE('',#9689,9.5E-2);\r
+-#9691=ORIENTED_EDGE('',*,*,#6039,.T.);\r
+-#9692=ORIENTED_EDGE('',*,*,#9681,.T.);\r
+-#9694=ORIENTED_EDGE('',*,*,#9693,.F.);\r
+-#9695=ORIENTED_EDGE('',*,*,#9677,.F.);\r
+-#9696=EDGE_LOOP('',(#9691,#9692,#9694,#9695));\r
+-#9697=FACE_OUTER_BOUND('',#9696,.F.);\r
+-#9698=ADVANCED_FACE('',(#9697),#9690,.F.);\r
+-#9699=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));\r
+-#9700=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9701=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9702=AXIS2_PLACEMENT_3D('',#9699,#9700,#9701);\r
+-#9703=PLANE('',#9702);\r
+-#9704=ORIENTED_EDGE('',*,*,#9679,.T.);\r
+-#9705=ORIENTED_EDGE('',*,*,#9693,.T.);\r
+-#9706=EDGE_LOOP('',(#9704,#9705));\r
+-#9707=FACE_OUTER_BOUND('',#9706,.F.);\r
+-#9708=ADVANCED_FACE('',(#9707),#9703,.F.);\r
+-#9709=CARTESIAN_POINT('',(4.5E0,2.E0,8.E0));\r
+-#9710=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9711=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9712=AXIS2_PLACEMENT_3D('',#9709,#9710,#9711);\r
+-#9713=PLANE('',#9712);\r
+-#9715=ORIENTED_EDGE('',*,*,#9714,.T.);\r
+-#9717=ORIENTED_EDGE('',*,*,#9716,.T.);\r
+-#9719=ORIENTED_EDGE('',*,*,#9718,.F.);\r
+-#9720=ORIENTED_EDGE('',*,*,#6043,.F.);\r
+-#9721=EDGE_LOOP('',(#9715,#9717,#9719,#9720));\r
+-#9722=FACE_OUTER_BOUND('',#9721,.F.);\r
+-#9723=ADVANCED_FACE('',(#9722),#9713,.F.);\r
+-#9724=CARTESIAN_POINT('',(3.75E0,2.75E0,7.931076025772E0));\r
+-#9725=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9726=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9727=AXIS2_PLACEMENT_3D('',#9724,#9725,#9726);\r
+-#9728=CYLINDRICAL_SURFACE('',#9727,7.5E-1);\r
+-#9729=ORIENTED_EDGE('',*,*,#9714,.F.);\r
+-#9730=ORIENTED_EDGE('',*,*,#6057,.T.);\r
+-#9732=ORIENTED_EDGE('',*,*,#9731,.T.);\r
+-#9734=ORIENTED_EDGE('',*,*,#9733,.T.);\r
+-#9735=EDGE_LOOP('',(#9729,#9730,#9732,#9734));\r
+-#9736=FACE_OUTER_BOUND('',#9735,.F.);\r
+-#9737=ADVANCED_FACE('',(#9736),#9728,.F.);\r
+-#9738=CARTESIAN_POINT('',(4.5E0,9.5E0,8.E0));\r
+-#9739=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9740=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9741=AXIS2_PLACEMENT_3D('',#9738,#9739,#9740);\r
+-#9742=PLANE('',#9741);\r
+-#9743=ORIENTED_EDGE('',*,*,#9731,.F.);\r
+-#9744=ORIENTED_EDGE('',*,*,#6055,.F.);\r
+-#9746=ORIENTED_EDGE('',*,*,#9745,.T.);\r
+-#9748=ORIENTED_EDGE('',*,*,#9747,.T.);\r
+-#9749=EDGE_LOOP('',(#9743,#9744,#9746,#9748));\r
+-#9750=FACE_OUTER_BOUND('',#9749,.F.);\r
+-#9751=ADVANCED_FACE('',(#9750),#9742,.F.);\r
+-#9752=CARTESIAN_POINT('',(3.75E0,8.75E0,7.931076025772E0));\r
+-#9753=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9754=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9755=AXIS2_PLACEMENT_3D('',#9752,#9753,#9754);\r
+-#9756=CYLINDRICAL_SURFACE('',#9755,7.5E-1);\r
+-#9757=ORIENTED_EDGE('',*,*,#9745,.F.);\r
+-#9758=ORIENTED_EDGE('',*,*,#6053,.T.);\r
+-#9760=ORIENTED_EDGE('',*,*,#9759,.T.);\r
+-#9762=ORIENTED_EDGE('',*,*,#9761,.T.);\r
+-#9763=EDGE_LOOP('',(#9757,#9758,#9760,#9762));\r
+-#9764=FACE_OUTER_BOUND('',#9763,.F.);\r
+-#9765=ADVANCED_FACE('',(#9764),#9756,.F.);\r
+-#9766=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,8.E0));\r
+-#9767=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9768=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9769=AXIS2_PLACEMENT_3D('',#9766,#9767,#9768);\r
+-#9770=PLANE('',#9769);\r
+-#9772=ORIENTED_EDGE('',*,*,#9771,.T.);\r
+-#9774=ORIENTED_EDGE('',*,*,#9773,.T.);\r
+-#9775=ORIENTED_EDGE('',*,*,#9759,.F.);\r
+-#9776=ORIENTED_EDGE('',*,*,#6051,.F.);\r
+-#9777=EDGE_LOOP('',(#9772,#9774,#9775,#9776));\r
+-#9778=FACE_OUTER_BOUND('',#9777,.F.);\r
+-#9779=ADVANCED_FACE('',(#9778),#9770,.F.);\r
+-#9780=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,7.931076025772E0));\r
+-#9781=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9782=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9783=AXIS2_PLACEMENT_3D('',#9780,#9781,#9782);\r
+-#9784=CYLINDRICAL_SURFACE('',#9783,7.5E-1);\r
+-#9785=ORIENTED_EDGE('',*,*,#9771,.F.);\r
+-#9786=ORIENTED_EDGE('',*,*,#6049,.T.);\r
+-#9788=ORIENTED_EDGE('',*,*,#9787,.T.);\r
+-#9790=ORIENTED_EDGE('',*,*,#9789,.T.);\r
+-#9791=EDGE_LOOP('',(#9785,#9786,#9788,#9790));\r
+-#9792=FACE_OUTER_BOUND('',#9791,.F.);\r
+-#9793=ADVANCED_FACE('',(#9792),#9784,.F.);\r
+-#9794=CARTESIAN_POINT('',(-1.419808599362E0,2.E0,8.E0));\r
+-#9795=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#9796=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));\r
+-#9797=AXIS2_PLACEMENT_3D('',#9794,#9795,#9796);\r
+-#9798=PLANE('',#9797);\r
+-#9800=ORIENTED_EDGE('',*,*,#9799,.T.);\r
+-#9802=ORIENTED_EDGE('',*,*,#9801,.T.);\r
+-#9803=ORIENTED_EDGE('',*,*,#9787,.F.);\r
+-#9804=ORIENTED_EDGE('',*,*,#6047,.F.);\r
+-#9805=EDGE_LOOP('',(#9800,#9802,#9803,#9804));\r
+-#9806=FACE_OUTER_BOUND('',#9805,.F.);\r
+-#9807=ADVANCED_FACE('',(#9806),#9798,.F.);\r
+-#9808=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,7.931076025772E0));\r
+-#9809=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9810=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#9811=AXIS2_PLACEMENT_3D('',#9808,#9809,#9810);\r
+-#9812=CYLINDRICAL_SURFACE('',#9811,7.5E-1);\r
+-#9813=ORIENTED_EDGE('',*,*,#9799,.F.);\r
+-#9814=ORIENTED_EDGE('',*,*,#6045,.T.);\r
+-#9815=ORIENTED_EDGE('',*,*,#9718,.T.);\r
+-#9817=ORIENTED_EDGE('',*,*,#9816,.T.);\r
+-#9818=EDGE_LOOP('',(#9813,#9814,#9815,#9817));\r
+-#9819=FACE_OUTER_BOUND('',#9818,.F.);\r
+-#9820=ADVANCED_FACE('',(#9819),#9812,.F.);\r
+-#9821=CARTESIAN_POINT('',(0.E0,0.E0,8.5E0));\r
+-#9822=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9823=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9824=AXIS2_PLACEMENT_3D('',#9821,#9822,#9823);\r
+-#9825=PLANE('',#9824);\r
+-#9826=ORIENTED_EDGE('',*,*,#9733,.F.);\r
+-#9827=ORIENTED_EDGE('',*,*,#9747,.F.);\r
+-#9828=ORIENTED_EDGE('',*,*,#9761,.F.);\r
+-#9829=ORIENTED_EDGE('',*,*,#9773,.F.);\r
+-#9830=ORIENTED_EDGE('',*,*,#9789,.F.);\r
+-#9831=ORIENTED_EDGE('',*,*,#9801,.F.);\r
+-#9832=ORIENTED_EDGE('',*,*,#9816,.F.);\r
+-#9833=ORIENTED_EDGE('',*,*,#9716,.F.);\r
+-#9834=EDGE_LOOP('',(#9826,#9827,#9828,#9829,#9830,#9831,#9832,#9833));\r
+-#9835=FACE_OUTER_BOUND('',#9834,.F.);\r
+-#9836=ADVANCED_FACE('',(#9835),#9825,.T.);\r
+-#9837=CARTESIAN_POINT('',(2.541980859936E1,2.E0,8.E0));\r
+-#9838=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));\r
+-#9839=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));\r
+-#9840=AXIS2_PLACEMENT_3D('',#9837,#9838,#9839);\r
+-#9841=PLANE('',#9840);\r
+-#9843=ORIENTED_EDGE('',*,*,#9842,.T.);\r
+-#9844=ORIENTED_EDGE('',*,*,#6061,.T.);\r
+-#9846=ORIENTED_EDGE('',*,*,#9845,.F.);\r
+-#9848=ORIENTED_EDGE('',*,*,#9847,.F.);\r
+-#9849=EDGE_LOOP('',(#9843,#9844,#9846,#9848));\r
+-#9850=FACE_OUTER_BOUND('',#9849,.F.);\r
+-#9851=ADVANCED_FACE('',(#9850),#9841,.T.);\r
+-#9852=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.558891941783E0));\r
+-#9853=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9854=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
+-#9855=AXIS2_PLACEMENT_3D('',#9852,#9853,#9854);\r
+-#9856=CYLINDRICAL_SURFACE('',#9855,7.5E-1);\r
+-#9857=ORIENTED_EDGE('',*,*,#9842,.F.);\r
+-#9859=ORIENTED_EDGE('',*,*,#9858,.T.);\r
+-#9861=ORIENTED_EDGE('',*,*,#9860,.T.);\r
+-#9862=ORIENTED_EDGE('',*,*,#6063,.T.);\r
+-#9863=EDGE_LOOP('',(#9857,#9859,#9861,#9862));\r
+-#9864=FACE_OUTER_BOUND('',#9863,.F.);\r
+-#9865=ADVANCED_FACE('',(#9864),#9856,.F.);\r
+-#9866=CARTESIAN_POINT('',(2.4E1,0.E0,8.5E0));\r
+-#9867=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9868=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9869=AXIS2_PLACEMENT_3D('',#9866,#9867,#9868);\r
+-#9870=PLANE('',#9869);\r
+-#9872=ORIENTED_EDGE('',*,*,#9871,.F.);\r
+-#9874=ORIENTED_EDGE('',*,*,#9873,.T.);\r
+-#9875=ORIENTED_EDGE('',*,*,#9858,.F.);\r
+-#9876=ORIENTED_EDGE('',*,*,#9847,.T.);\r
+-#9878=ORIENTED_EDGE('',*,*,#9877,.F.);\r
+-#9880=ORIENTED_EDGE('',*,*,#9879,.T.);\r
+-#9882=ORIENTED_EDGE('',*,*,#9881,.F.);\r
+-#9884=ORIENTED_EDGE('',*,*,#9883,.T.);\r
+-#9885=EDGE_LOOP('',(#9872,#9874,#9875,#9876,#9878,#9880,#9882,#9884));\r
+-#9886=FACE_OUTER_BOUND('',#9885,.F.);\r
+-#9887=ADVANCED_FACE('',(#9886),#9870,.F.);\r
+-#9888=CARTESIAN_POINT('',(2.025E1,2.75E0,8.558891941783E0));\r
+-#9889=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9890=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9891=AXIS2_PLACEMENT_3D('',#9888,#9889,#9890);\r
+-#9892=CYLINDRICAL_SURFACE('',#9891,7.5E-1);\r
+-#9894=ORIENTED_EDGE('',*,*,#9893,.F.);\r
+-#9895=ORIENTED_EDGE('',*,*,#9871,.T.);\r
+-#9897=ORIENTED_EDGE('',*,*,#9896,.T.);\r
+-#9898=ORIENTED_EDGE('',*,*,#6067,.T.);\r
+-#9899=EDGE_LOOP('',(#9894,#9895,#9897,#9898));\r
+-#9900=FACE_OUTER_BOUND('',#9899,.F.);\r
+-#9901=ADVANCED_FACE('',(#9900),#9892,.F.);\r
+-#9902=CARTESIAN_POINT('',(1.95E1,2.E0,8.E0));\r
+-#9903=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9904=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9905=AXIS2_PLACEMENT_3D('',#9902,#9903,#9904);\r
+-#9906=PLANE('',#9905);\r
+-#9907=ORIENTED_EDGE('',*,*,#9893,.T.);\r
+-#9908=ORIENTED_EDGE('',*,*,#6065,.T.);\r
+-#9909=ORIENTED_EDGE('',*,*,#9860,.F.);\r
+-#9910=ORIENTED_EDGE('',*,*,#9873,.F.);\r
+-#9911=EDGE_LOOP('',(#9907,#9908,#9909,#9910));\r
+-#9912=FACE_OUTER_BOUND('',#9911,.F.);\r
+-#9913=ADVANCED_FACE('',(#9912),#9906,.T.);\r
+-#9914=CARTESIAN_POINT('',(1.95E1,9.5E0,8.E0));\r
+-#9915=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9916=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9917=AXIS2_PLACEMENT_3D('',#9914,#9915,#9916);\r
+-#9918=PLANE('',#9917);\r
+-#9919=ORIENTED_EDGE('',*,*,#9896,.F.);\r
+-#9920=ORIENTED_EDGE('',*,*,#9883,.F.);\r
+-#9922=ORIENTED_EDGE('',*,*,#9921,.T.);\r
+-#9923=ORIENTED_EDGE('',*,*,#6069,.T.);\r
+-#9924=EDGE_LOOP('',(#9919,#9920,#9922,#9923));\r
+-#9925=FACE_OUTER_BOUND('',#9924,.F.);\r
+-#9926=ADVANCED_FACE('',(#9925),#9918,.T.);\r
+-#9927=CARTESIAN_POINT('',(2.025E1,8.75E0,8.558891941783E0));\r
+-#9928=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9929=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9930=AXIS2_PLACEMENT_3D('',#9927,#9928,#9929);\r
+-#9931=CYLINDRICAL_SURFACE('',#9930,7.5E-1);\r
+-#9932=ORIENTED_EDGE('',*,*,#9921,.F.);\r
+-#9933=ORIENTED_EDGE('',*,*,#9881,.T.);\r
+-#9935=ORIENTED_EDGE('',*,*,#9934,.T.);\r
+-#9936=ORIENTED_EDGE('',*,*,#6071,.T.);\r
+-#9937=EDGE_LOOP('',(#9932,#9933,#9935,#9936));\r
+-#9938=FACE_OUTER_BOUND('',#9937,.F.);\r
+-#9939=ADVANCED_FACE('',(#9938),#9931,.F.);\r
+-#9940=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,8.E0));\r
+-#9941=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9942=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9943=AXIS2_PLACEMENT_3D('',#9940,#9941,#9942);\r
+-#9944=PLANE('',#9943);\r
+-#9946=ORIENTED_EDGE('',*,*,#9945,.T.);\r
+-#9947=ORIENTED_EDGE('',*,*,#6073,.T.);\r
+-#9948=ORIENTED_EDGE('',*,*,#9934,.F.);\r
+-#9949=ORIENTED_EDGE('',*,*,#9879,.F.);\r
+-#9950=EDGE_LOOP('',(#9946,#9947,#9948,#9949));\r
+-#9951=FACE_OUTER_BOUND('',#9950,.F.);\r
+-#9952=ADVANCED_FACE('',(#9951),#9944,.T.);\r
+-#9953=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.558891941783E0));\r
+-#9954=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9955=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#9956=AXIS2_PLACEMENT_3D('',#9953,#9954,#9955);\r
+-#9957=CYLINDRICAL_SURFACE('',#9956,7.5E-1);\r
+-#9958=ORIENTED_EDGE('',*,*,#9945,.F.);\r
+-#9959=ORIENTED_EDGE('',*,*,#9877,.T.);\r
+-#9960=ORIENTED_EDGE('',*,*,#9845,.T.);\r
+-#9961=ORIENTED_EDGE('',*,*,#6075,.T.);\r
+-#9962=EDGE_LOOP('',(#9958,#9959,#9960,#9961));\r
+-#9963=FACE_OUTER_BOUND('',#9962,.F.);\r
+-#9964=ADVANCED_FACE('',(#9963),#9957,.F.);\r
+-#9965=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
+-#9966=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#9967=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9968=AXIS2_PLACEMENT_3D('',#9965,#9966,#9967);\r
+-#9969=PLANE('',#9968);\r
+-#9970=ORIENTED_EDGE('',*,*,#5726,.F.);\r
+-#9972=ORIENTED_EDGE('',*,*,#9971,.T.);\r
+-#9974=ORIENTED_EDGE('',*,*,#9973,.T.);\r
+-#9976=ORIENTED_EDGE('',*,*,#9975,.F.);\r
+-#9977=EDGE_LOOP('',(#9970,#9972,#9974,#9976));\r
+-#9978=FACE_OUTER_BOUND('',#9977,.F.);\r
+-#9979=ADVANCED_FACE('',(#9978),#9969,.F.);\r
+-#9980=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));\r
+-#9981=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#9982=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#9983=AXIS2_PLACEMENT_3D('',#9980,#9981,#9982);\r
+-#9984=CYLINDRICAL_SURFACE('',#9983,5.625E-1);\r
+-#9985=ORIENTED_EDGE('',*,*,#5732,.F.);\r
+-#9987=ORIENTED_EDGE('',*,*,#9986,.T.);\r
+-#9989=ORIENTED_EDGE('',*,*,#9988,.T.);\r
+-#9990=ORIENTED_EDGE('',*,*,#9971,.F.);\r
+-#9991=EDGE_LOOP('',(#9985,#9987,#9989,#9990));\r
+-#9992=FACE_OUTER_BOUND('',#9991,.F.);\r
+-#9993=ADVANCED_FACE('',(#9992),#9984,.F.);\r
+-#9994=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
+-#9995=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#9996=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#9997=AXIS2_PLACEMENT_3D('',#9994,#9995,#9996);\r
+-#9998=PLANE('',#9997);\r
+-#9999=ORIENTED_EDGE('',*,*,#5730,.F.);\r
+-#10001=ORIENTED_EDGE('',*,*,#10000,.T.);\r
+-#10003=ORIENTED_EDGE('',*,*,#10002,.T.);\r
+-#10004=ORIENTED_EDGE('',*,*,#9986,.F.);\r
+-#10005=EDGE_LOOP('',(#9999,#10001,#10003,#10004));\r
+-#10006=FACE_OUTER_BOUND('',#10005,.F.);\r
+-#10007=ADVANCED_FACE('',(#10006),#9998,.F.);\r
+-#10008=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));\r
+-#10009=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10010=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10011=AXIS2_PLACEMENT_3D('',#10008,#10009,#10010);\r
+-#10012=CYLINDRICAL_SURFACE('',#10011,5.625E-1);\r
+-#10013=ORIENTED_EDGE('',*,*,#5728,.F.);\r
+-#10014=ORIENTED_EDGE('',*,*,#9975,.T.);\r
+-#10016=ORIENTED_EDGE('',*,*,#10015,.T.);\r
+-#10017=ORIENTED_EDGE('',*,*,#10000,.F.);\r
+-#10018=EDGE_LOOP('',(#10013,#10014,#10016,#10017));\r
+-#10019=FACE_OUTER_BOUND('',#10018,.F.);\r
+-#10020=ADVANCED_FACE('',(#10019),#10012,.F.);\r
+-#10021=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10022=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10023=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10024=AXIS2_PLACEMENT_3D('',#10021,#10022,#10023);\r
+-#10025=PLANE('',#10024);\r
+-#10026=ORIENTED_EDGE('',*,*,#9973,.F.);\r
+-#10027=ORIENTED_EDGE('',*,*,#9988,.F.);\r
+-#10028=ORIENTED_EDGE('',*,*,#10002,.F.);\r
+-#10029=ORIENTED_EDGE('',*,*,#10015,.F.);\r
+-#10030=EDGE_LOOP('',(#10026,#10027,#10028,#10029));\r
+-#10031=FACE_OUTER_BOUND('',#10030,.F.);\r
+-#10032=ADVANCED_FACE('',(#10031),#10025,.T.);\r
+-#10033=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10034=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10035=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10036=AXIS2_PLACEMENT_3D('',#10033,#10034,#10035);\r
+-#10037=PLANE('',#10036);\r
+-#10039=ORIENTED_EDGE('',*,*,#10038,.F.);\r
+-#10041=ORIENTED_EDGE('',*,*,#10040,.F.);\r
+-#10043=ORIENTED_EDGE('',*,*,#10042,.F.);\r
+-#10045=ORIENTED_EDGE('',*,*,#10044,.F.);\r
+-#10047=ORIENTED_EDGE('',*,*,#10046,.F.);\r
+-#10048=EDGE_LOOP('',(#10039,#10041,#10043,#10045,#10047));\r
+-#10049=FACE_OUTER_BOUND('',#10048,.F.);\r
+-#10050=ADVANCED_FACE('',(#10049),#10037,.T.);\r
+-#10051=CARTESIAN_POINT('',(1.455736763592E0,-6.892397422826E-2,\r
+-4.577195232320E0));\r
+-#10052=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10053=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#10054=AXIS2_PLACEMENT_3D('',#10051,#10052,#10053);\r
+-#10055=CYLINDRICAL_SURFACE('',#10054,7.5E-1);\r
+-#10057=ORIENTED_EDGE('',*,*,#10056,.F.);\r
+-#10058=ORIENTED_EDGE('',*,*,#5738,.T.);\r
+-#10060=ORIENTED_EDGE('',*,*,#10059,.T.);\r
+-#10061=ORIENTED_EDGE('',*,*,#10038,.T.);\r
+-#10062=EDGE_LOOP('',(#10057,#10058,#10060,#10061));\r
+-#10063=FACE_OUTER_BOUND('',#10062,.F.);\r
+-#10064=ADVANCED_FACE('',(#10063),#10055,.F.);\r
+-#10065=CARTESIAN_POINT('',(6.875E-1,0.E0,4.284771824132E0));\r
+-#10066=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#10067=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#10068=AXIS2_PLACEMENT_3D('',#10065,#10066,#10067);\r
+-#10069=PLANE('',#10068);\r
+-#10070=ORIENTED_EDGE('',*,*,#10056,.T.);\r
+-#10071=ORIENTED_EDGE('',*,*,#10046,.T.);\r
+-#10073=ORIENTED_EDGE('',*,*,#10072,.F.);\r
+-#10074=ORIENTED_EDGE('',*,*,#5740,.F.);\r
+-#10075=EDGE_LOOP('',(#10070,#10071,#10073,#10074));\r
+-#10076=FACE_OUTER_BOUND('',#10075,.F.);\r
+-#10077=ADVANCED_FACE('',(#10076),#10069,.F.);\r
+-#10078=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));\r
+-#10079=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10080=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10081=AXIS2_PLACEMENT_3D('',#10078,#10079,#10080);\r
+-#10082=CYLINDRICAL_SURFACE('',#10081,8.669989027347E-1);\r
+-#10083=ORIENTED_EDGE('',*,*,#5742,.F.);\r
+-#10084=ORIENTED_EDGE('',*,*,#10072,.T.);\r
+-#10085=ORIENTED_EDGE('',*,*,#10044,.T.);\r
+-#10087=ORIENTED_EDGE('',*,*,#10086,.F.);\r
+-#10088=EDGE_LOOP('',(#10083,#10084,#10085,#10087));\r
+-#10089=FACE_OUTER_BOUND('',#10088,.F.);\r
+-#10090=ADVANCED_FACE('',(#10089),#10082,.F.);\r
+-#10091=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));\r
+-#10092=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10093=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10094=AXIS2_PLACEMENT_3D('',#10091,#10092,#10093);\r
+-#10095=CYLINDRICAL_SURFACE('',#10094,5.6875E0);\r
+-#10096=ORIENTED_EDGE('',*,*,#5744,.T.);\r
+-#10097=ORIENTED_EDGE('',*,*,#10086,.T.);\r
+-#10098=ORIENTED_EDGE('',*,*,#10042,.T.);\r
+-#10100=ORIENTED_EDGE('',*,*,#10099,.F.);\r
+-#10101=EDGE_LOOP('',(#10096,#10097,#10098,#10100));\r
+-#10102=FACE_OUTER_BOUND('',#10101,.F.);\r
+-#10103=ADVANCED_FACE('',(#10102),#10095,.T.);\r
+-#10104=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));\r
+-#10105=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10106=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10107=AXIS2_PLACEMENT_3D('',#10104,#10105,#10106);\r
+-#10108=CYLINDRICAL_SURFACE('',#10107,9.225E-1);\r
+-#10109=ORIENTED_EDGE('',*,*,#10059,.F.);\r
+-#10110=ORIENTED_EDGE('',*,*,#5736,.F.);\r
+-#10111=ORIENTED_EDGE('',*,*,#10099,.T.);\r
+-#10112=ORIENTED_EDGE('',*,*,#10040,.T.);\r
+-#10113=EDGE_LOOP('',(#10109,#10110,#10111,#10112));\r
+-#10114=FACE_OUTER_BOUND('',#10113,.F.);\r
+-#10115=ADVANCED_FACE('',(#10114),#10108,.F.);\r
+-#10116=CARTESIAN_POINT('',(-1.85E-1,7.463919417831E-1,7.815E0));\r
+-#10117=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10118=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10119=AXIS2_PLACEMENT_3D('',#10116,#10117,#10118);\r
+-#10120=CYLINDRICAL_SURFACE('',#10119,8.75E-1);\r
+-#10122=ORIENTED_EDGE('',*,*,#10121,.T.);\r
+-#10123=ORIENTED_EDGE('',*,*,#5748,.T.);\r
+-#10125=ORIENTED_EDGE('',*,*,#10124,.F.);\r
+-#10127=ORIENTED_EDGE('',*,*,#10126,.T.);\r
+-#10128=EDGE_LOOP('',(#10122,#10123,#10125,#10127));\r
+-#10129=FACE_OUTER_BOUND('',#10128,.F.);\r
+-#10130=ADVANCED_FACE('',(#10129),#10120,.T.);\r
+-#10131=CARTESIAN_POINT('',(6.9E-1,0.E0,8.69E0));\r
+-#10132=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10133=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10134=AXIS2_PLACEMENT_3D('',#10131,#10132,#10133);\r
+-#10135=PLANE('',#10134);\r
+-#10136=ORIENTED_EDGE('',*,*,#10121,.F.);\r
+-#10138=ORIENTED_EDGE('',*,*,#10137,.T.);\r
+-#10140=ORIENTED_EDGE('',*,*,#10139,.F.);\r
+-#10141=ORIENTED_EDGE('',*,*,#5750,.F.);\r
+-#10142=EDGE_LOOP('',(#10136,#10138,#10140,#10141));\r
+-#10143=FACE_OUTER_BOUND('',#10142,.F.);\r
+-#10144=ADVANCED_FACE('',(#10143),#10135,.F.);\r
+-#10145=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10146=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10147=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10148=AXIS2_PLACEMENT_3D('',#10145,#10146,#10147);\r
+-#10149=PLANE('',#10148);\r
+-#10151=ORIENTED_EDGE('',*,*,#10150,.F.);\r
+-#10153=ORIENTED_EDGE('',*,*,#10152,.F.);\r
+-#10155=ORIENTED_EDGE('',*,*,#10154,.F.);\r
+-#10157=ORIENTED_EDGE('',*,*,#10156,.F.);\r
+-#10158=ORIENTED_EDGE('',*,*,#10137,.F.);\r
+-#10159=ORIENTED_EDGE('',*,*,#10126,.F.);\r
+-#10161=ORIENTED_EDGE('',*,*,#10160,.F.);\r
+-#10163=ORIENTED_EDGE('',*,*,#10162,.F.);\r
+-#10165=ORIENTED_EDGE('',*,*,#10164,.F.);\r
+-#10167=ORIENTED_EDGE('',*,*,#10166,.F.);\r
+-#10169=ORIENTED_EDGE('',*,*,#10168,.F.);\r
+-#10171=ORIENTED_EDGE('',*,*,#10170,.F.);\r
+-#10173=ORIENTED_EDGE('',*,*,#10172,.F.);\r
+-#10175=ORIENTED_EDGE('',*,*,#10174,.F.);\r
+-#10176=EDGE_LOOP('',(#10151,#10153,#10155,#10157,#10158,#10159,#10161,#10163,\r
+-#10165,#10167,#10169,#10171,#10173,#10175));\r
+-#10177=FACE_OUTER_BOUND('',#10176,.F.);\r
+-#10178=ADVANCED_FACE('',(#10177),#10149,.T.);\r
+-#10179=CARTESIAN_POINT('',(1.8125E0,0.E0,8.69E0));\r
+-#10180=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10181=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10182=AXIS2_PLACEMENT_3D('',#10179,#10180,#10181);\r
+-#10183=PLANE('',#10182);\r
+-#10185=ORIENTED_EDGE('',*,*,#10184,.F.);\r
+-#10186=ORIENTED_EDGE('',*,*,#10150,.T.);\r
+-#10188=ORIENTED_EDGE('',*,*,#10187,.F.);\r
+-#10189=ORIENTED_EDGE('',*,*,#5758,.F.);\r
+-#10190=EDGE_LOOP('',(#10185,#10186,#10188,#10189));\r
+-#10191=FACE_OUTER_BOUND('',#10190,.F.);\r
+-#10192=ADVANCED_FACE('',(#10191),#10183,.F.);\r
+-#10193=CARTESIAN_POINT('',(2.6875E0,7.463919417831E-1,7.815E0));\r
+-#10194=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10195=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10196=AXIS2_PLACEMENT_3D('',#10193,#10194,#10195);\r
+-#10197=CYLINDRICAL_SURFACE('',#10196,8.75E-1);\r
+-#10198=ORIENTED_EDGE('',*,*,#10184,.T.);\r
+-#10199=ORIENTED_EDGE('',*,*,#5756,.T.);\r
+-#10201=ORIENTED_EDGE('',*,*,#10200,.F.);\r
+-#10202=ORIENTED_EDGE('',*,*,#10152,.T.);\r
+-#10203=EDGE_LOOP('',(#10198,#10199,#10201,#10202));\r
+-#10204=FACE_OUTER_BOUND('',#10203,.F.);\r
+-#10205=ADVANCED_FACE('',(#10204),#10197,.T.);\r
+-#10206=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
+-#10207=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10208=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10209=AXIS2_PLACEMENT_3D('',#10206,#10207,#10208);\r
+-#10210=PLANE('',#10209);\r
+-#10211=ORIENTED_EDGE('',*,*,#10200,.T.);\r
+-#10212=ORIENTED_EDGE('',*,*,#5754,.F.);\r
+-#10214=ORIENTED_EDGE('',*,*,#10213,.T.);\r
+-#10215=ORIENTED_EDGE('',*,*,#10154,.T.);\r
+-#10216=EDGE_LOOP('',(#10211,#10212,#10214,#10215));\r
+-#10217=FACE_OUTER_BOUND('',#10216,.F.);\r
+-#10218=ADVANCED_FACE('',(#10217),#10210,.F.);\r
+-#10219=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));\r
+-#10220=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10221=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10222=AXIS2_PLACEMENT_3D('',#10219,#10220,#10221);\r
+-#10223=CYLINDRICAL_SURFACE('',#10222,5.6125E-1);\r
+-#10224=ORIENTED_EDGE('',*,*,#5752,.F.);\r
+-#10225=ORIENTED_EDGE('',*,*,#10139,.T.);\r
+-#10226=ORIENTED_EDGE('',*,*,#10156,.T.);\r
+-#10227=ORIENTED_EDGE('',*,*,#10213,.F.);\r
+-#10228=EDGE_LOOP('',(#10224,#10225,#10226,#10227));\r
+-#10229=FACE_OUTER_BOUND('',#10228,.F.);\r
+-#10230=ADVANCED_FACE('',(#10229),#10223,.F.);\r
+-#10231=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,9.565E0));\r
+-#10232=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10233=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10234=AXIS2_PLACEMENT_3D('',#10231,#10232,#10233);\r
+-#10235=CYLINDRICAL_SURFACE('',#10234,8.75E-1);\r
+-#10237=ORIENTED_EDGE('',*,*,#10236,.F.);\r
+-#10238=ORIENTED_EDGE('',*,*,#5760,.T.);\r
+-#10239=ORIENTED_EDGE('',*,*,#10187,.T.);\r
+-#10240=ORIENTED_EDGE('',*,*,#10174,.T.);\r
+-#10241=EDGE_LOOP('',(#10237,#10238,#10239,#10240));\r
+-#10242=FACE_OUTER_BOUND('',#10241,.F.);\r
+-#10243=ADVANCED_FACE('',(#10242),#10235,.F.);\r
+-#10244=CARTESIAN_POINT('',(4.3125E0,0.E0,8.69E0));\r
+-#10245=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10246=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10247=AXIS2_PLACEMENT_3D('',#10244,#10245,#10246);\r
+-#10248=PLANE('',#10247);\r
+-#10249=ORIENTED_EDGE('',*,*,#10236,.T.);\r
+-#10250=ORIENTED_EDGE('',*,*,#10172,.T.);\r
+-#10252=ORIENTED_EDGE('',*,*,#10251,.F.);\r
+-#10253=ORIENTED_EDGE('',*,*,#5762,.F.);\r
+-#10254=EDGE_LOOP('',(#10249,#10250,#10252,#10253));\r
+-#10255=FACE_OUTER_BOUND('',#10254,.F.);\r
+-#10256=ADVANCED_FACE('',(#10255),#10248,.F.);\r
+-#10257=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,1.0375E1));\r
+-#10258=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10259=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10260=AXIS2_PLACEMENT_3D('',#10257,#10258,#10259);\r
+-#10261=CYLINDRICAL_SURFACE('',#10260,8.75E-1);\r
+-#10263=ORIENTED_EDGE('',*,*,#10262,.F.);\r
+-#10264=ORIENTED_EDGE('',*,*,#5764,.T.);\r
+-#10265=ORIENTED_EDGE('',*,*,#10251,.T.);\r
+-#10266=ORIENTED_EDGE('',*,*,#10170,.T.);\r
+-#10267=EDGE_LOOP('',(#10263,#10264,#10265,#10266));\r
+-#10268=FACE_OUTER_BOUND('',#10267,.F.);\r
+-#10269=ADVANCED_FACE('',(#10268),#10261,.F.);\r
+-#10270=CARTESIAN_POINT('',(4.3125E0,0.E0,1.125E1));\r
+-#10271=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10272=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10273=AXIS2_PLACEMENT_3D('',#10270,#10271,#10272);\r
+-#10274=PLANE('',#10273);\r
+-#10276=ORIENTED_EDGE('',*,*,#10275,.F.);\r
+-#10277=ORIENTED_EDGE('',*,*,#5766,.F.);\r
+-#10278=ORIENTED_EDGE('',*,*,#10262,.T.);\r
+-#10279=ORIENTED_EDGE('',*,*,#10168,.T.);\r
+-#10280=EDGE_LOOP('',(#10276,#10277,#10278,#10279));\r
+-#10281=FACE_OUTER_BOUND('',#10280,.F.);\r
+-#10282=ADVANCED_FACE('',(#10281),#10274,.F.);\r
+-#10283=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,1.0375E1));\r
+-#10284=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10285=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10286=AXIS2_PLACEMENT_3D('',#10283,#10284,#10285);\r
+-#10287=CYLINDRICAL_SURFACE('',#10286,8.75E-1);\r
+-#10289=ORIENTED_EDGE('',*,*,#10288,.F.);\r
+-#10290=ORIENTED_EDGE('',*,*,#5768,.T.);\r
+-#10291=ORIENTED_EDGE('',*,*,#10275,.T.);\r
+-#10292=ORIENTED_EDGE('',*,*,#10166,.T.);\r
+-#10293=EDGE_LOOP('',(#10289,#10290,#10291,#10292));\r
+-#10294=FACE_OUTER_BOUND('',#10293,.F.);\r
+-#10295=ADVANCED_FACE('',(#10294),#10287,.F.);\r
+-#10296=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.125E1));\r
+-#10297=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10298=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10299=AXIS2_PLACEMENT_3D('',#10296,#10297,#10298);\r
+-#10300=PLANE('',#10299);\r
+-#10301=ORIENTED_EDGE('',*,*,#10288,.T.);\r
+-#10302=ORIENTED_EDGE('',*,*,#10164,.T.);\r
+-#10304=ORIENTED_EDGE('',*,*,#10303,.F.);\r
+-#10305=ORIENTED_EDGE('',*,*,#5770,.F.);\r
+-#10306=EDGE_LOOP('',(#10301,#10302,#10304,#10305));\r
+-#10307=FACE_OUTER_BOUND('',#10306,.F.);\r
+-#10308=ADVANCED_FACE('',(#10307),#10300,.F.);\r
+-#10309=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,9.565E0));\r
+-#10310=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10311=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10312=AXIS2_PLACEMENT_3D('',#10309,#10310,#10311);\r
+-#10313=CYLINDRICAL_SURFACE('',#10312,8.75E-1);\r
+-#10315=ORIENTED_EDGE('',*,*,#10314,.F.);\r
+-#10316=ORIENTED_EDGE('',*,*,#5772,.T.);\r
+-#10317=ORIENTED_EDGE('',*,*,#10303,.T.);\r
+-#10318=ORIENTED_EDGE('',*,*,#10162,.T.);\r
+-#10319=EDGE_LOOP('',(#10315,#10316,#10317,#10318));\r
+-#10320=FACE_OUTER_BOUND('',#10319,.F.);\r
+-#10321=ADVANCED_FACE('',(#10320),#10313,.F.);\r
+-#10322=CARTESIAN_POINT('',(-1.3125E0,0.E0,8.69E0));\r
+-#10323=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10324=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10325=AXIS2_PLACEMENT_3D('',#10322,#10323,#10324);\r
+-#10326=PLANE('',#10325);\r
+-#10327=ORIENTED_EDGE('',*,*,#10124,.T.);\r
+-#10328=ORIENTED_EDGE('',*,*,#5774,.F.);\r
+-#10329=ORIENTED_EDGE('',*,*,#10314,.T.);\r
+-#10330=ORIENTED_EDGE('',*,*,#10160,.T.);\r
+-#10331=EDGE_LOOP('',(#10327,#10328,#10329,#10330));\r
+-#10332=FACE_OUTER_BOUND('',#10331,.F.);\r
+-#10333=ADVANCED_FACE('',(#10332),#10326,.F.);\r
+-#10334=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
+-#10335=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10336=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10337=AXIS2_PLACEMENT_3D('',#10334,#10335,#10336);\r
+-#10338=PLANE('',#10337);\r
+-#10339=ORIENTED_EDGE('',*,*,#5778,.F.);\r
+-#10341=ORIENTED_EDGE('',*,*,#10340,.T.);\r
+-#10343=ORIENTED_EDGE('',*,*,#10342,.T.);\r
+-#10345=ORIENTED_EDGE('',*,*,#10344,.F.);\r
+-#10346=EDGE_LOOP('',(#10339,#10341,#10343,#10345));\r
+-#10347=FACE_OUTER_BOUND('',#10346,.F.);\r
+-#10348=ADVANCED_FACE('',(#10347),#10338,.F.);\r
+-#10349=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));\r
+-#10350=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10351=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10352=AXIS2_PLACEMENT_3D('',#10349,#10350,#10351);\r
+-#10353=CYLINDRICAL_SURFACE('',#10352,5.625E-1);\r
+-#10354=ORIENTED_EDGE('',*,*,#5784,.F.);\r
+-#10356=ORIENTED_EDGE('',*,*,#10355,.T.);\r
+-#10358=ORIENTED_EDGE('',*,*,#10357,.T.);\r
+-#10359=ORIENTED_EDGE('',*,*,#10340,.F.);\r
+-#10360=EDGE_LOOP('',(#10354,#10356,#10358,#10359));\r
+-#10361=FACE_OUTER_BOUND('',#10360,.F.);\r
+-#10362=ADVANCED_FACE('',(#10361),#10353,.F.);\r
+-#10363=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
+-#10364=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10365=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10366=AXIS2_PLACEMENT_3D('',#10363,#10364,#10365);\r
+-#10367=PLANE('',#10366);\r
+-#10368=ORIENTED_EDGE('',*,*,#5782,.F.);\r
+-#10370=ORIENTED_EDGE('',*,*,#10369,.T.);\r
+-#10372=ORIENTED_EDGE('',*,*,#10371,.T.);\r
+-#10373=ORIENTED_EDGE('',*,*,#10355,.F.);\r
+-#10374=EDGE_LOOP('',(#10368,#10370,#10372,#10373));\r
+-#10375=FACE_OUTER_BOUND('',#10374,.F.);\r
+-#10376=ADVANCED_FACE('',(#10375),#10367,.F.);\r
+-#10377=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));\r
+-#10378=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10379=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10380=AXIS2_PLACEMENT_3D('',#10377,#10378,#10379);\r
+-#10381=CYLINDRICAL_SURFACE('',#10380,5.625E-1);\r
+-#10382=ORIENTED_EDGE('',*,*,#5780,.F.);\r
+-#10383=ORIENTED_EDGE('',*,*,#10344,.T.);\r
+-#10385=ORIENTED_EDGE('',*,*,#10384,.T.);\r
+-#10386=ORIENTED_EDGE('',*,*,#10369,.F.);\r
+-#10387=EDGE_LOOP('',(#10382,#10383,#10385,#10386));\r
+-#10388=FACE_OUTER_BOUND('',#10387,.F.);\r
+-#10389=ADVANCED_FACE('',(#10388),#10381,.F.);\r
+-#10390=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10391=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10392=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10393=AXIS2_PLACEMENT_3D('',#10390,#10391,#10392);\r
+-#10394=PLANE('',#10393);\r
+-#10395=ORIENTED_EDGE('',*,*,#10342,.F.);\r
+-#10396=ORIENTED_EDGE('',*,*,#10357,.F.);\r
+-#10397=ORIENTED_EDGE('',*,*,#10371,.F.);\r
+-#10398=ORIENTED_EDGE('',*,*,#10384,.F.);\r
+-#10399=EDGE_LOOP('',(#10395,#10396,#10397,#10398));\r
+-#10400=FACE_OUTER_BOUND('',#10399,.F.);\r
+-#10401=ADVANCED_FACE('',(#10400),#10394,.T.);\r
+-#10402=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
+-#10403=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10404=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10405=AXIS2_PLACEMENT_3D('',#10402,#10403,#10404);\r
+-#10406=PLANE('',#10405);\r
+-#10407=ORIENTED_EDGE('',*,*,#5788,.F.);\r
+-#10409=ORIENTED_EDGE('',*,*,#10408,.T.);\r
+-#10411=ORIENTED_EDGE('',*,*,#10410,.T.);\r
+-#10413=ORIENTED_EDGE('',*,*,#10412,.F.);\r
+-#10414=EDGE_LOOP('',(#10407,#10409,#10411,#10413));\r
+-#10415=FACE_OUTER_BOUND('',#10414,.F.);\r
+-#10416=ADVANCED_FACE('',(#10415),#10406,.F.);\r
+-#10417=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));\r
+-#10418=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10419=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10420=AXIS2_PLACEMENT_3D('',#10417,#10418,#10419);\r
+-#10421=CYLINDRICAL_SURFACE('',#10420,5.625E-1);\r
+-#10422=ORIENTED_EDGE('',*,*,#5794,.F.);\r
+-#10424=ORIENTED_EDGE('',*,*,#10423,.T.);\r
+-#10426=ORIENTED_EDGE('',*,*,#10425,.T.);\r
+-#10427=ORIENTED_EDGE('',*,*,#10408,.F.);\r
+-#10428=EDGE_LOOP('',(#10422,#10424,#10426,#10427));\r
+-#10429=FACE_OUTER_BOUND('',#10428,.F.);\r
+-#10430=ADVANCED_FACE('',(#10429),#10421,.F.);\r
+-#10431=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
+-#10432=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10433=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10434=AXIS2_PLACEMENT_3D('',#10431,#10432,#10433);\r
+-#10435=PLANE('',#10434);\r
+-#10436=ORIENTED_EDGE('',*,*,#5792,.F.);\r
+-#10438=ORIENTED_EDGE('',*,*,#10437,.T.);\r
+-#10440=ORIENTED_EDGE('',*,*,#10439,.T.);\r
+-#10441=ORIENTED_EDGE('',*,*,#10423,.F.);\r
+-#10442=EDGE_LOOP('',(#10436,#10438,#10440,#10441));\r
+-#10443=FACE_OUTER_BOUND('',#10442,.F.);\r
+-#10444=ADVANCED_FACE('',(#10443),#10435,.F.);\r
+-#10445=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));\r
+-#10446=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10447=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10448=AXIS2_PLACEMENT_3D('',#10445,#10446,#10447);\r
+-#10449=CYLINDRICAL_SURFACE('',#10448,5.625E-1);\r
+-#10450=ORIENTED_EDGE('',*,*,#5790,.F.);\r
+-#10451=ORIENTED_EDGE('',*,*,#10412,.T.);\r
+-#10453=ORIENTED_EDGE('',*,*,#10452,.T.);\r
+-#10454=ORIENTED_EDGE('',*,*,#10437,.F.);\r
+-#10455=EDGE_LOOP('',(#10450,#10451,#10453,#10454));\r
+-#10456=FACE_OUTER_BOUND('',#10455,.F.);\r
+-#10457=ADVANCED_FACE('',(#10456),#10449,.F.);\r
+-#10458=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10459=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10460=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10461=AXIS2_PLACEMENT_3D('',#10458,#10459,#10460);\r
+-#10462=PLANE('',#10461);\r
+-#10463=ORIENTED_EDGE('',*,*,#10410,.F.);\r
+-#10464=ORIENTED_EDGE('',*,*,#10425,.F.);\r
+-#10465=ORIENTED_EDGE('',*,*,#10439,.F.);\r
+-#10466=ORIENTED_EDGE('',*,*,#10452,.F.);\r
+-#10467=EDGE_LOOP('',(#10463,#10464,#10465,#10466));\r
+-#10468=FACE_OUTER_BOUND('',#10467,.F.);\r
+-#10469=ADVANCED_FACE('',(#10468),#10462,.T.);\r
+-#10470=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
+-#10471=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10472=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10473=AXIS2_PLACEMENT_3D('',#10470,#10471,#10472);\r
+-#10474=PLANE('',#10473);\r
+-#10475=ORIENTED_EDGE('',*,*,#5798,.F.);\r
+-#10477=ORIENTED_EDGE('',*,*,#10476,.T.);\r
+-#10479=ORIENTED_EDGE('',*,*,#10478,.T.);\r
+-#10481=ORIENTED_EDGE('',*,*,#10480,.F.);\r
+-#10482=EDGE_LOOP('',(#10475,#10477,#10479,#10481));\r
+-#10483=FACE_OUTER_BOUND('',#10482,.F.);\r
+-#10484=ADVANCED_FACE('',(#10483),#10474,.F.);\r
+-#10485=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));\r
+-#10486=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10487=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10488=AXIS2_PLACEMENT_3D('',#10485,#10486,#10487);\r
+-#10489=CYLINDRICAL_SURFACE('',#10488,5.E-1);\r
+-#10490=ORIENTED_EDGE('',*,*,#5804,.F.);\r
+-#10492=ORIENTED_EDGE('',*,*,#10491,.T.);\r
+-#10494=ORIENTED_EDGE('',*,*,#10493,.T.);\r
+-#10495=ORIENTED_EDGE('',*,*,#10476,.F.);\r
+-#10496=EDGE_LOOP('',(#10490,#10492,#10494,#10495));\r
+-#10497=FACE_OUTER_BOUND('',#10496,.F.);\r
+-#10498=ADVANCED_FACE('',(#10497),#10489,.F.);\r
+-#10499=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
+-#10500=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10501=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10502=AXIS2_PLACEMENT_3D('',#10499,#10500,#10501);\r
+-#10503=PLANE('',#10502);\r
+-#10504=ORIENTED_EDGE('',*,*,#5802,.F.);\r
+-#10506=ORIENTED_EDGE('',*,*,#10505,.T.);\r
+-#10508=ORIENTED_EDGE('',*,*,#10507,.T.);\r
+-#10509=ORIENTED_EDGE('',*,*,#10491,.F.);\r
+-#10510=EDGE_LOOP('',(#10504,#10506,#10508,#10509));\r
+-#10511=FACE_OUTER_BOUND('',#10510,.F.);\r
+-#10512=ADVANCED_FACE('',(#10511),#10503,.F.);\r
+-#10513=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));\r
+-#10514=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10515=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10516=AXIS2_PLACEMENT_3D('',#10513,#10514,#10515);\r
+-#10517=CYLINDRICAL_SURFACE('',#10516,5.E-1);\r
+-#10518=ORIENTED_EDGE('',*,*,#5800,.F.);\r
+-#10519=ORIENTED_EDGE('',*,*,#10480,.T.);\r
+-#10521=ORIENTED_EDGE('',*,*,#10520,.T.);\r
+-#10522=ORIENTED_EDGE('',*,*,#10505,.F.);\r
+-#10523=EDGE_LOOP('',(#10518,#10519,#10521,#10522));\r
+-#10524=FACE_OUTER_BOUND('',#10523,.F.);\r
+-#10525=ADVANCED_FACE('',(#10524),#10517,.F.);\r
+-#10526=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10527=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10528=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10529=AXIS2_PLACEMENT_3D('',#10526,#10527,#10528);\r
+-#10530=PLANE('',#10529);\r
+-#10531=ORIENTED_EDGE('',*,*,#10478,.F.);\r
+-#10532=ORIENTED_EDGE('',*,*,#10493,.F.);\r
+-#10533=ORIENTED_EDGE('',*,*,#10507,.F.);\r
+-#10534=ORIENTED_EDGE('',*,*,#10520,.F.);\r
+-#10535=EDGE_LOOP('',(#10531,#10532,#10533,#10534));\r
+-#10536=FACE_OUTER_BOUND('',#10535,.F.);\r
+-#10537=ADVANCED_FACE('',(#10536),#10530,.T.);\r
+-#10538=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
+-#10539=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10540=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10541=AXIS2_PLACEMENT_3D('',#10538,#10539,#10540);\r
+-#10542=PLANE('',#10541);\r
+-#10543=ORIENTED_EDGE('',*,*,#5808,.F.);\r
+-#10545=ORIENTED_EDGE('',*,*,#10544,.T.);\r
+-#10547=ORIENTED_EDGE('',*,*,#10546,.T.);\r
+-#10549=ORIENTED_EDGE('',*,*,#10548,.F.);\r
+-#10550=EDGE_LOOP('',(#10543,#10545,#10547,#10549));\r
+-#10551=FACE_OUTER_BOUND('',#10550,.F.);\r
+-#10552=ADVANCED_FACE('',(#10551),#10542,.F.);\r
+-#10553=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));\r
+-#10554=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10555=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10556=AXIS2_PLACEMENT_3D('',#10553,#10554,#10555);\r
+-#10557=CYLINDRICAL_SURFACE('',#10556,4.375E-1);\r
+-#10558=ORIENTED_EDGE('',*,*,#5814,.F.);\r
+-#10560=ORIENTED_EDGE('',*,*,#10559,.T.);\r
+-#10562=ORIENTED_EDGE('',*,*,#10561,.T.);\r
+-#10563=ORIENTED_EDGE('',*,*,#10544,.F.);\r
+-#10564=EDGE_LOOP('',(#10558,#10560,#10562,#10563));\r
+-#10565=FACE_OUTER_BOUND('',#10564,.F.);\r
+-#10566=ADVANCED_FACE('',(#10565),#10557,.F.);\r
+-#10567=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
+-#10568=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10569=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10570=AXIS2_PLACEMENT_3D('',#10567,#10568,#10569);\r
+-#10571=PLANE('',#10570);\r
+-#10572=ORIENTED_EDGE('',*,*,#5812,.F.);\r
+-#10574=ORIENTED_EDGE('',*,*,#10573,.T.);\r
+-#10576=ORIENTED_EDGE('',*,*,#10575,.T.);\r
+-#10577=ORIENTED_EDGE('',*,*,#10559,.F.);\r
+-#10578=EDGE_LOOP('',(#10572,#10574,#10576,#10577));\r
+-#10579=FACE_OUTER_BOUND('',#10578,.F.);\r
+-#10580=ADVANCED_FACE('',(#10579),#10571,.F.);\r
+-#10581=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));\r
+-#10582=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10583=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10584=AXIS2_PLACEMENT_3D('',#10581,#10582,#10583);\r
+-#10585=CYLINDRICAL_SURFACE('',#10584,4.375E-1);\r
+-#10586=ORIENTED_EDGE('',*,*,#5810,.F.);\r
+-#10587=ORIENTED_EDGE('',*,*,#10548,.T.);\r
+-#10589=ORIENTED_EDGE('',*,*,#10588,.T.);\r
+-#10590=ORIENTED_EDGE('',*,*,#10573,.F.);\r
+-#10591=EDGE_LOOP('',(#10586,#10587,#10589,#10590));\r
+-#10592=FACE_OUTER_BOUND('',#10591,.F.);\r
+-#10593=ADVANCED_FACE('',(#10592),#10585,.F.);\r
+-#10594=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
+-#10595=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#10596=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10597=AXIS2_PLACEMENT_3D('',#10594,#10595,#10596);\r
+-#10598=PLANE('',#10597);\r
+-#10599=ORIENTED_EDGE('',*,*,#10546,.F.);\r
+-#10600=ORIENTED_EDGE('',*,*,#10561,.F.);\r
+-#10601=ORIENTED_EDGE('',*,*,#10575,.F.);\r
+-#10602=ORIENTED_EDGE('',*,*,#10588,.F.);\r
+-#10603=EDGE_LOOP('',(#10599,#10600,#10601,#10602));\r
+-#10604=FACE_OUTER_BOUND('',#10603,.F.);\r
+-#10605=ADVANCED_FACE('',(#10604),#10598,.T.);\r
+-#10606=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
+-#10607=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10608=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10609=AXIS2_PLACEMENT_3D('',#10606,#10607,#10608);\r
+-#10610=PLANE('',#10609);\r
+-#10611=ORIENTED_EDGE('',*,*,#5818,.T.);\r
+-#10613=ORIENTED_EDGE('',*,*,#10612,.T.);\r
+-#10615=ORIENTED_EDGE('',*,*,#10614,.F.);\r
+-#10617=ORIENTED_EDGE('',*,*,#10616,.F.);\r
+-#10618=EDGE_LOOP('',(#10611,#10613,#10615,#10617));\r
+-#10619=FACE_OUTER_BOUND('',#10618,.F.);\r
+-#10620=ADVANCED_FACE('',(#10619),#10610,.T.);\r
+-#10621=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));\r
+-#10622=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10623=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10624=AXIS2_PLACEMENT_3D('',#10621,#10622,#10623);\r
+-#10625=CYLINDRICAL_SURFACE('',#10624,5.625E-1);\r
+-#10626=ORIENTED_EDGE('',*,*,#5824,.T.);\r
+-#10628=ORIENTED_EDGE('',*,*,#10627,.T.);\r
+-#10630=ORIENTED_EDGE('',*,*,#10629,.F.);\r
+-#10631=ORIENTED_EDGE('',*,*,#10612,.F.);\r
+-#10632=EDGE_LOOP('',(#10626,#10628,#10630,#10631));\r
+-#10633=FACE_OUTER_BOUND('',#10632,.F.);\r
+-#10634=ADVANCED_FACE('',(#10633),#10625,.F.);\r
+-#10635=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
+-#10636=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10637=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10638=AXIS2_PLACEMENT_3D('',#10635,#10636,#10637);\r
+-#10639=PLANE('',#10638);\r
+-#10640=ORIENTED_EDGE('',*,*,#5822,.T.);\r
+-#10642=ORIENTED_EDGE('',*,*,#10641,.T.);\r
+-#10644=ORIENTED_EDGE('',*,*,#10643,.F.);\r
+-#10645=ORIENTED_EDGE('',*,*,#10627,.F.);\r
+-#10646=EDGE_LOOP('',(#10640,#10642,#10644,#10645));\r
+-#10647=FACE_OUTER_BOUND('',#10646,.F.);\r
+-#10648=ADVANCED_FACE('',(#10647),#10639,.T.);\r
+-#10649=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));\r
+-#10650=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10651=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10652=AXIS2_PLACEMENT_3D('',#10649,#10650,#10651);\r
+-#10653=CYLINDRICAL_SURFACE('',#10652,5.625E-1);\r
+-#10654=ORIENTED_EDGE('',*,*,#5820,.T.);\r
+-#10655=ORIENTED_EDGE('',*,*,#10616,.T.);\r
+-#10657=ORIENTED_EDGE('',*,*,#10656,.F.);\r
+-#10658=ORIENTED_EDGE('',*,*,#10641,.F.);\r
+-#10659=EDGE_LOOP('',(#10654,#10655,#10657,#10658));\r
+-#10660=FACE_OUTER_BOUND('',#10659,.F.);\r
+-#10661=ADVANCED_FACE('',(#10660),#10653,.F.);\r
+-#10662=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));\r
+-#10663=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10664=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10665=AXIS2_PLACEMENT_3D('',#10662,#10663,#10664);\r
+-#10666=PLANE('',#10665);\r
+-#10667=ORIENTED_EDGE('',*,*,#10614,.T.);\r
+-#10668=ORIENTED_EDGE('',*,*,#10629,.T.);\r
+-#10669=ORIENTED_EDGE('',*,*,#10643,.T.);\r
+-#10670=ORIENTED_EDGE('',*,*,#10656,.T.);\r
+-#10671=EDGE_LOOP('',(#10667,#10668,#10669,#10670));\r
+-#10672=FACE_OUTER_BOUND('',#10671,.F.);\r
+-#10673=ADVANCED_FACE('',(#10672),#10666,.F.);\r
+-#10674=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));\r
+-#10675=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10676=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10677=AXIS2_PLACEMENT_3D('',#10674,#10675,#10676);\r
+-#10678=PLANE('',#10677);\r
+-#10680=ORIENTED_EDGE('',*,*,#10679,.F.);\r
+-#10682=ORIENTED_EDGE('',*,*,#10681,.T.);\r
+-#10684=ORIENTED_EDGE('',*,*,#10683,.T.);\r
+-#10686=ORIENTED_EDGE('',*,*,#10685,.T.);\r
+-#10688=ORIENTED_EDGE('',*,*,#10687,.T.);\r
+-#10689=EDGE_LOOP('',(#10680,#10682,#10684,#10686,#10688));\r
+-#10690=FACE_OUTER_BOUND('',#10689,.F.);\r
+-#10691=ADVANCED_FACE('',(#10690),#10678,.F.);\r
+-#10692=CARTESIAN_POINT('',(1.455736763592E0,-6.642389448824E-2,\r
+-2.742280476768E1));\r
+-#10693=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10694=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));\r
+-#10695=AXIS2_PLACEMENT_3D('',#10692,#10693,#10694);\r
+-#10696=CYLINDRICAL_SURFACE('',#10695,7.5E-1);\r
+-#10698=ORIENTED_EDGE('',*,*,#10697,.F.);\r
+-#10699=ORIENTED_EDGE('',*,*,#5932,.T.);\r
+-#10701=ORIENTED_EDGE('',*,*,#10700,.T.);\r
+-#10702=ORIENTED_EDGE('',*,*,#10679,.T.);\r
+-#10703=EDGE_LOOP('',(#10698,#10699,#10701,#10702));\r
+-#10704=FACE_OUTER_BOUND('',#10703,.F.);\r
+-#10705=ADVANCED_FACE('',(#10704),#10696,.F.);\r
+-#10706=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));\r
+-#10707=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10708=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10709=AXIS2_PLACEMENT_3D('',#10706,#10707,#10708);\r
+-#10710=CYLINDRICAL_SURFACE('',#10709,9.225E-1);\r
+-#10711=ORIENTED_EDGE('',*,*,#10697,.T.);\r
+-#10712=ORIENTED_EDGE('',*,*,#10687,.F.);\r
+-#10714=ORIENTED_EDGE('',*,*,#10713,.F.);\r
+-#10715=ORIENTED_EDGE('',*,*,#5934,.T.);\r
+-#10716=EDGE_LOOP('',(#10711,#10712,#10714,#10715));\r
+-#10717=FACE_OUTER_BOUND('',#10716,.F.);\r
+-#10718=ADVANCED_FACE('',(#10717),#10710,.F.);\r
+-#10719=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));\r
+-#10720=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10721=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10722=AXIS2_PLACEMENT_3D('',#10719,#10720,#10721);\r
+-#10723=CYLINDRICAL_SURFACE('',#10722,5.6875E0);\r
+-#10724=ORIENTED_EDGE('',*,*,#5936,.F.);\r
+-#10725=ORIENTED_EDGE('',*,*,#10713,.T.);\r
+-#10726=ORIENTED_EDGE('',*,*,#10685,.F.);\r
+-#10728=ORIENTED_EDGE('',*,*,#10727,.F.);\r
+-#10729=EDGE_LOOP('',(#10724,#10725,#10726,#10728));\r
+-#10730=FACE_OUTER_BOUND('',#10729,.F.);\r
+-#10731=ADVANCED_FACE('',(#10730),#10723,.T.);\r
+-#10732=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));\r
+-#10733=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10734=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10735=AXIS2_PLACEMENT_3D('',#10732,#10733,#10734);\r
+-#10736=CYLINDRICAL_SURFACE('',#10735,8.669989027347E-1);\r
+-#10737=ORIENTED_EDGE('',*,*,#5938,.T.);\r
+-#10738=ORIENTED_EDGE('',*,*,#10727,.T.);\r
+-#10739=ORIENTED_EDGE('',*,*,#10683,.F.);\r
+-#10741=ORIENTED_EDGE('',*,*,#10740,.F.);\r
+-#10742=EDGE_LOOP('',(#10737,#10738,#10739,#10741));\r
+-#10743=FACE_OUTER_BOUND('',#10742,.F.);\r
+-#10744=ADVANCED_FACE('',(#10743),#10736,.F.);\r
+-#10745=CARTESIAN_POINT('',(6.875E-1,0.E0,2.771522817587E1));\r
+-#10746=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#10747=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#10748=AXIS2_PLACEMENT_3D('',#10745,#10746,#10747);\r
+-#10749=PLANE('',#10748);\r
+-#10750=ORIENTED_EDGE('',*,*,#10700,.F.);\r
+-#10751=ORIENTED_EDGE('',*,*,#5930,.T.);\r
+-#10752=ORIENTED_EDGE('',*,*,#10740,.T.);\r
+-#10753=ORIENTED_EDGE('',*,*,#10681,.F.);\r
+-#10754=EDGE_LOOP('',(#10750,#10751,#10752,#10753));\r
+-#10755=FACE_OUTER_BOUND('',#10754,.F.);\r
+-#10756=ADVANCED_FACE('',(#10755),#10749,.T.);\r
+-#10757=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
+-#10758=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10759=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10760=AXIS2_PLACEMENT_3D('',#10757,#10758,#10759);\r
+-#10761=PLANE('',#10760);\r
+-#10762=ORIENTED_EDGE('',*,*,#5828,.T.);\r
+-#10764=ORIENTED_EDGE('',*,*,#10763,.T.);\r
+-#10766=ORIENTED_EDGE('',*,*,#10765,.F.);\r
+-#10768=ORIENTED_EDGE('',*,*,#10767,.F.);\r
+-#10769=EDGE_LOOP('',(#10762,#10764,#10766,#10768));\r
+-#10770=FACE_OUTER_BOUND('',#10769,.F.);\r
+-#10771=ADVANCED_FACE('',(#10770),#10761,.T.);\r
+-#10772=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));\r
+-#10773=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10774=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10775=AXIS2_PLACEMENT_3D('',#10772,#10773,#10774);\r
+-#10776=CYLINDRICAL_SURFACE('',#10775,5.625E-1);\r
+-#10777=ORIENTED_EDGE('',*,*,#5834,.T.);\r
+-#10779=ORIENTED_EDGE('',*,*,#10778,.T.);\r
+-#10781=ORIENTED_EDGE('',*,*,#10780,.F.);\r
+-#10782=ORIENTED_EDGE('',*,*,#10763,.F.);\r
+-#10783=EDGE_LOOP('',(#10777,#10779,#10781,#10782));\r
+-#10784=FACE_OUTER_BOUND('',#10783,.F.);\r
+-#10785=ADVANCED_FACE('',(#10784),#10776,.F.);\r
+-#10786=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
+-#10787=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10788=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10789=AXIS2_PLACEMENT_3D('',#10786,#10787,#10788);\r
+-#10790=PLANE('',#10789);\r
+-#10791=ORIENTED_EDGE('',*,*,#5832,.T.);\r
+-#10793=ORIENTED_EDGE('',*,*,#10792,.T.);\r
+-#10795=ORIENTED_EDGE('',*,*,#10794,.F.);\r
+-#10796=ORIENTED_EDGE('',*,*,#10778,.F.);\r
+-#10797=EDGE_LOOP('',(#10791,#10793,#10795,#10796));\r
+-#10798=FACE_OUTER_BOUND('',#10797,.F.);\r
+-#10799=ADVANCED_FACE('',(#10798),#10790,.T.);\r
+-#10800=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));\r
+-#10801=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10802=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10803=AXIS2_PLACEMENT_3D('',#10800,#10801,#10802);\r
+-#10804=CYLINDRICAL_SURFACE('',#10803,5.625E-1);\r
+-#10805=ORIENTED_EDGE('',*,*,#5830,.T.);\r
+-#10806=ORIENTED_EDGE('',*,*,#10767,.T.);\r
+-#10808=ORIENTED_EDGE('',*,*,#10807,.F.);\r
+-#10809=ORIENTED_EDGE('',*,*,#10792,.F.);\r
+-#10810=EDGE_LOOP('',(#10805,#10806,#10808,#10809));\r
+-#10811=FACE_OUTER_BOUND('',#10810,.F.);\r
+-#10812=ADVANCED_FACE('',(#10811),#10804,.F.);\r
+-#10813=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#10814=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10815=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10816=AXIS2_PLACEMENT_3D('',#10813,#10814,#10815);\r
+-#10817=PLANE('',#10816);\r
+-#10818=ORIENTED_EDGE('',*,*,#10765,.T.);\r
+-#10819=ORIENTED_EDGE('',*,*,#10780,.T.);\r
+-#10820=ORIENTED_EDGE('',*,*,#10794,.T.);\r
+-#10821=ORIENTED_EDGE('',*,*,#10807,.T.);\r
+-#10822=EDGE_LOOP('',(#10818,#10819,#10820,#10821));\r
+-#10823=FACE_OUTER_BOUND('',#10822,.F.);\r
+-#10824=ADVANCED_FACE('',(#10823),#10817,.F.);\r
+-#10825=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#10826=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10827=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10828=AXIS2_PLACEMENT_3D('',#10825,#10826,#10827);\r
+-#10829=PLANE('',#10828);\r
+-#10831=ORIENTED_EDGE('',*,*,#10830,.F.);\r
+-#10833=ORIENTED_EDGE('',*,*,#10832,.T.);\r
+-#10835=ORIENTED_EDGE('',*,*,#10834,.T.);\r
+-#10837=ORIENTED_EDGE('',*,*,#10836,.T.);\r
+-#10839=ORIENTED_EDGE('',*,*,#10838,.T.);\r
+-#10840=EDGE_LOOP('',(#10831,#10833,#10835,#10837,#10839));\r
+-#10841=FACE_OUTER_BOUND('',#10840,.F.);\r
+-#10842=ADVANCED_FACE('',(#10841),#10829,.F.);\r
+-#10843=CARTESIAN_POINT('',(2.254426323641E1,-6.642389448824E-2,\r
+-4.577195232320E0));\r
+-#10844=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10845=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));\r
+-#10846=AXIS2_PLACEMENT_3D('',#10843,#10844,#10845);\r
+-#10847=CYLINDRICAL_SURFACE('',#10846,7.5E-1);\r
+-#10849=ORIENTED_EDGE('',*,*,#10848,.F.);\r
+-#10850=ORIENTED_EDGE('',*,*,#5920,.T.);\r
+-#10852=ORIENTED_EDGE('',*,*,#10851,.T.);\r
+-#10853=ORIENTED_EDGE('',*,*,#10830,.T.);\r
+-#10854=EDGE_LOOP('',(#10849,#10850,#10852,#10853));\r
+-#10855=FACE_OUTER_BOUND('',#10854,.F.);\r
+-#10856=ADVANCED_FACE('',(#10855),#10847,.F.);\r
+-#10857=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));\r
+-#10858=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10859=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10860=AXIS2_PLACEMENT_3D('',#10857,#10858,#10859);\r
+-#10861=CYLINDRICAL_SURFACE('',#10860,9.225E-1);\r
+-#10862=ORIENTED_EDGE('',*,*,#10848,.T.);\r
+-#10863=ORIENTED_EDGE('',*,*,#10838,.F.);\r
+-#10865=ORIENTED_EDGE('',*,*,#10864,.F.);\r
+-#10866=ORIENTED_EDGE('',*,*,#5922,.T.);\r
+-#10867=EDGE_LOOP('',(#10862,#10863,#10865,#10866));\r
+-#10868=FACE_OUTER_BOUND('',#10867,.F.);\r
+-#10869=ADVANCED_FACE('',(#10868),#10861,.F.);\r
+-#10870=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));\r
+-#10871=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10872=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10873=AXIS2_PLACEMENT_3D('',#10870,#10871,#10872);\r
+-#10874=CYLINDRICAL_SURFACE('',#10873,5.6875E0);\r
+-#10875=ORIENTED_EDGE('',*,*,#5924,.F.);\r
+-#10876=ORIENTED_EDGE('',*,*,#10864,.T.);\r
+-#10877=ORIENTED_EDGE('',*,*,#10836,.F.);\r
+-#10879=ORIENTED_EDGE('',*,*,#10878,.F.);\r
+-#10880=EDGE_LOOP('',(#10875,#10876,#10877,#10879));\r
+-#10881=FACE_OUTER_BOUND('',#10880,.F.);\r
+-#10882=ADVANCED_FACE('',(#10881),#10874,.T.);\r
+-#10883=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));\r
+-#10884=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10885=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10886=AXIS2_PLACEMENT_3D('',#10883,#10884,#10885);\r
+-#10887=CYLINDRICAL_SURFACE('',#10886,8.669989027347E-1);\r
+-#10888=ORIENTED_EDGE('',*,*,#5926,.T.);\r
+-#10889=ORIENTED_EDGE('',*,*,#10878,.T.);\r
+-#10890=ORIENTED_EDGE('',*,*,#10834,.F.);\r
+-#10892=ORIENTED_EDGE('',*,*,#10891,.F.);\r
+-#10893=EDGE_LOOP('',(#10888,#10889,#10890,#10892));\r
+-#10894=FACE_OUTER_BOUND('',#10893,.F.);\r
+-#10895=ADVANCED_FACE('',(#10894),#10887,.F.);\r
+-#10896=CARTESIAN_POINT('',(2.33125E1,0.E0,4.284771824132E0));\r
+-#10897=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#10898=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
+-#10899=AXIS2_PLACEMENT_3D('',#10896,#10897,#10898);\r
+-#10900=PLANE('',#10899);\r
+-#10901=ORIENTED_EDGE('',*,*,#10851,.F.);\r
+-#10902=ORIENTED_EDGE('',*,*,#5918,.T.);\r
+-#10903=ORIENTED_EDGE('',*,*,#10891,.T.);\r
+-#10904=ORIENTED_EDGE('',*,*,#10832,.F.);\r
+-#10905=EDGE_LOOP('',(#10901,#10902,#10903,#10904));\r
+-#10906=FACE_OUTER_BOUND('',#10905,.F.);\r
+-#10907=ADVANCED_FACE('',(#10906),#10900,.T.);\r
+-#10908=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
+-#10909=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10910=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10911=AXIS2_PLACEMENT_3D('',#10908,#10909,#10910);\r
+-#10912=PLANE('',#10911);\r
+-#10913=ORIENTED_EDGE('',*,*,#5838,.T.);\r
+-#10915=ORIENTED_EDGE('',*,*,#10914,.T.);\r
+-#10917=ORIENTED_EDGE('',*,*,#10916,.F.);\r
+-#10919=ORIENTED_EDGE('',*,*,#10918,.F.);\r
+-#10920=EDGE_LOOP('',(#10913,#10915,#10917,#10919));\r
+-#10921=FACE_OUTER_BOUND('',#10920,.F.);\r
+-#10922=ADVANCED_FACE('',(#10921),#10912,.T.);\r
+-#10923=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));\r
+-#10924=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10925=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10926=AXIS2_PLACEMENT_3D('',#10923,#10924,#10925);\r
+-#10927=CYLINDRICAL_SURFACE('',#10926,5.625E-1);\r
+-#10928=ORIENTED_EDGE('',*,*,#5844,.T.);\r
+-#10930=ORIENTED_EDGE('',*,*,#10929,.T.);\r
+-#10932=ORIENTED_EDGE('',*,*,#10931,.F.);\r
+-#10933=ORIENTED_EDGE('',*,*,#10914,.F.);\r
+-#10934=EDGE_LOOP('',(#10928,#10930,#10932,#10933));\r
+-#10935=FACE_OUTER_BOUND('',#10934,.F.);\r
+-#10936=ADVANCED_FACE('',(#10935),#10927,.F.);\r
+-#10937=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
+-#10938=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#10939=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#10940=AXIS2_PLACEMENT_3D('',#10937,#10938,#10939);\r
+-#10941=PLANE('',#10940);\r
+-#10942=ORIENTED_EDGE('',*,*,#5842,.T.);\r
+-#10944=ORIENTED_EDGE('',*,*,#10943,.T.);\r
+-#10946=ORIENTED_EDGE('',*,*,#10945,.F.);\r
+-#10947=ORIENTED_EDGE('',*,*,#10929,.F.);\r
+-#10948=EDGE_LOOP('',(#10942,#10944,#10946,#10947));\r
+-#10949=FACE_OUTER_BOUND('',#10948,.F.);\r
+-#10950=ADVANCED_FACE('',(#10949),#10941,.T.);\r
+-#10951=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));\r
+-#10952=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10953=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10954=AXIS2_PLACEMENT_3D('',#10951,#10952,#10953);\r
+-#10955=CYLINDRICAL_SURFACE('',#10954,5.625E-1);\r
+-#10956=ORIENTED_EDGE('',*,*,#5840,.T.);\r
+-#10957=ORIENTED_EDGE('',*,*,#10918,.T.);\r
+-#10959=ORIENTED_EDGE('',*,*,#10958,.F.);\r
+-#10960=ORIENTED_EDGE('',*,*,#10943,.F.);\r
+-#10961=EDGE_LOOP('',(#10956,#10957,#10959,#10960));\r
+-#10962=FACE_OUTER_BOUND('',#10961,.F.);\r
+-#10963=ADVANCED_FACE('',(#10962),#10955,.F.);\r
+-#10964=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#10965=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10966=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10967=AXIS2_PLACEMENT_3D('',#10964,#10965,#10966);\r
+-#10968=PLANE('',#10967);\r
+-#10969=ORIENTED_EDGE('',*,*,#10916,.T.);\r
+-#10970=ORIENTED_EDGE('',*,*,#10931,.T.);\r
+-#10971=ORIENTED_EDGE('',*,*,#10945,.T.);\r
+-#10972=ORIENTED_EDGE('',*,*,#10958,.T.);\r
+-#10973=EDGE_LOOP('',(#10969,#10970,#10971,#10972));\r
+-#10974=FACE_OUTER_BOUND('',#10973,.F.);\r
+-#10975=ADVANCED_FACE('',(#10974),#10968,.F.);\r
+-#10976=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
+-#10977=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10978=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#10979=AXIS2_PLACEMENT_3D('',#10976,#10977,#10978);\r
+-#10980=PLANE('',#10979);\r
+-#10981=ORIENTED_EDGE('',*,*,#5848,.T.);\r
+-#10983=ORIENTED_EDGE('',*,*,#10982,.T.);\r
+-#10985=ORIENTED_EDGE('',*,*,#10984,.F.);\r
+-#10987=ORIENTED_EDGE('',*,*,#10986,.F.);\r
+-#10988=EDGE_LOOP('',(#10981,#10983,#10985,#10987));\r
+-#10989=FACE_OUTER_BOUND('',#10988,.F.);\r
+-#10990=ADVANCED_FACE('',(#10989),#10980,.T.);\r
+-#10991=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));\r
+-#10992=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#10993=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#10994=AXIS2_PLACEMENT_3D('',#10991,#10992,#10993);\r
+-#10995=CYLINDRICAL_SURFACE('',#10994,5.625E-1);\r
+-#10996=ORIENTED_EDGE('',*,*,#5854,.T.);\r
+-#10998=ORIENTED_EDGE('',*,*,#10997,.T.);\r
+-#11000=ORIENTED_EDGE('',*,*,#10999,.F.);\r
+-#11001=ORIENTED_EDGE('',*,*,#10982,.F.);\r
+-#11002=EDGE_LOOP('',(#10996,#10998,#11000,#11001));\r
+-#11003=FACE_OUTER_BOUND('',#11002,.F.);\r
+-#11004=ADVANCED_FACE('',(#11003),#10995,.F.);\r
+-#11005=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
+-#11006=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11007=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11008=AXIS2_PLACEMENT_3D('',#11005,#11006,#11007);\r
+-#11009=PLANE('',#11008);\r
+-#11010=ORIENTED_EDGE('',*,*,#5852,.T.);\r
+-#11012=ORIENTED_EDGE('',*,*,#11011,.T.);\r
+-#11014=ORIENTED_EDGE('',*,*,#11013,.F.);\r
+-#11015=ORIENTED_EDGE('',*,*,#10997,.F.);\r
+-#11016=EDGE_LOOP('',(#11010,#11012,#11014,#11015));\r
+-#11017=FACE_OUTER_BOUND('',#11016,.F.);\r
+-#11018=ADVANCED_FACE('',(#11017),#11009,.T.);\r
+-#11019=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));\r
+-#11020=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11021=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11022=AXIS2_PLACEMENT_3D('',#11019,#11020,#11021);\r
+-#11023=CYLINDRICAL_SURFACE('',#11022,5.625E-1);\r
+-#11024=ORIENTED_EDGE('',*,*,#5850,.T.);\r
+-#11025=ORIENTED_EDGE('',*,*,#10986,.T.);\r
+-#11027=ORIENTED_EDGE('',*,*,#11026,.F.);\r
+-#11028=ORIENTED_EDGE('',*,*,#11011,.F.);\r
+-#11029=EDGE_LOOP('',(#11024,#11025,#11027,#11028));\r
+-#11030=FACE_OUTER_BOUND('',#11029,.F.);\r
+-#11031=ADVANCED_FACE('',(#11030),#11023,.F.);\r
+-#11032=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#11033=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11034=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11035=AXIS2_PLACEMENT_3D('',#11032,#11033,#11034);\r
+-#11036=PLANE('',#11035);\r
+-#11037=ORIENTED_EDGE('',*,*,#10984,.T.);\r
+-#11038=ORIENTED_EDGE('',*,*,#10999,.T.);\r
+-#11039=ORIENTED_EDGE('',*,*,#11013,.T.);\r
+-#11040=ORIENTED_EDGE('',*,*,#11026,.T.);\r
+-#11041=EDGE_LOOP('',(#11037,#11038,#11039,#11040));\r
+-#11042=FACE_OUTER_BOUND('',#11041,.F.);\r
+-#11043=ADVANCED_FACE('',(#11042),#11036,.F.);\r
+-#11044=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
+-#11045=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11046=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11047=AXIS2_PLACEMENT_3D('',#11044,#11045,#11046);\r
+-#11048=PLANE('',#11047);\r
+-#11049=ORIENTED_EDGE('',*,*,#5858,.T.);\r
+-#11051=ORIENTED_EDGE('',*,*,#11050,.T.);\r
+-#11053=ORIENTED_EDGE('',*,*,#11052,.F.);\r
+-#11055=ORIENTED_EDGE('',*,*,#11054,.F.);\r
+-#11056=EDGE_LOOP('',(#11049,#11051,#11053,#11055));\r
+-#11057=FACE_OUTER_BOUND('',#11056,.F.);\r
+-#11058=ADVANCED_FACE('',(#11057),#11048,.T.);\r
+-#11059=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));\r
+-#11060=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11061=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11062=AXIS2_PLACEMENT_3D('',#11059,#11060,#11061);\r
+-#11063=CYLINDRICAL_SURFACE('',#11062,5.E-1);\r
+-#11064=ORIENTED_EDGE('',*,*,#5864,.T.);\r
+-#11066=ORIENTED_EDGE('',*,*,#11065,.T.);\r
+-#11068=ORIENTED_EDGE('',*,*,#11067,.F.);\r
+-#11069=ORIENTED_EDGE('',*,*,#11050,.F.);\r
+-#11070=EDGE_LOOP('',(#11064,#11066,#11068,#11069));\r
+-#11071=FACE_OUTER_BOUND('',#11070,.F.);\r
+-#11072=ADVANCED_FACE('',(#11071),#11063,.F.);\r
+-#11073=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
+-#11074=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11075=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11076=AXIS2_PLACEMENT_3D('',#11073,#11074,#11075);\r
+-#11077=PLANE('',#11076);\r
+-#11078=ORIENTED_EDGE('',*,*,#5862,.T.);\r
+-#11080=ORIENTED_EDGE('',*,*,#11079,.T.);\r
+-#11082=ORIENTED_EDGE('',*,*,#11081,.F.);\r
+-#11083=ORIENTED_EDGE('',*,*,#11065,.F.);\r
+-#11084=EDGE_LOOP('',(#11078,#11080,#11082,#11083));\r
+-#11085=FACE_OUTER_BOUND('',#11084,.F.);\r
+-#11086=ADVANCED_FACE('',(#11085),#11077,.T.);\r
+-#11087=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));\r
+-#11088=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11089=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11090=AXIS2_PLACEMENT_3D('',#11087,#11088,#11089);\r
+-#11091=CYLINDRICAL_SURFACE('',#11090,5.E-1);\r
+-#11092=ORIENTED_EDGE('',*,*,#5860,.T.);\r
+-#11093=ORIENTED_EDGE('',*,*,#11054,.T.);\r
+-#11095=ORIENTED_EDGE('',*,*,#11094,.F.);\r
+-#11096=ORIENTED_EDGE('',*,*,#11079,.F.);\r
+-#11097=EDGE_LOOP('',(#11092,#11093,#11095,#11096));\r
+-#11098=FACE_OUTER_BOUND('',#11097,.F.);\r
+-#11099=ADVANCED_FACE('',(#11098),#11091,.F.);\r
+-#11100=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#11101=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11102=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11103=AXIS2_PLACEMENT_3D('',#11100,#11101,#11102);\r
+-#11104=PLANE('',#11103);\r
+-#11105=ORIENTED_EDGE('',*,*,#11052,.T.);\r
+-#11106=ORIENTED_EDGE('',*,*,#11067,.T.);\r
+-#11107=ORIENTED_EDGE('',*,*,#11081,.T.);\r
+-#11108=ORIENTED_EDGE('',*,*,#11094,.T.);\r
+-#11109=EDGE_LOOP('',(#11105,#11106,#11107,#11108));\r
+-#11110=FACE_OUTER_BOUND('',#11109,.F.);\r
+-#11111=ADVANCED_FACE('',(#11110),#11104,.F.);\r
+-#11112=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
+-#11113=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11114=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11115=AXIS2_PLACEMENT_3D('',#11112,#11113,#11114);\r
+-#11116=PLANE('',#11115);\r
+-#11117=ORIENTED_EDGE('',*,*,#5868,.T.);\r
+-#11119=ORIENTED_EDGE('',*,*,#11118,.T.);\r
+-#11121=ORIENTED_EDGE('',*,*,#11120,.F.);\r
+-#11123=ORIENTED_EDGE('',*,*,#11122,.F.);\r
+-#11124=EDGE_LOOP('',(#11117,#11119,#11121,#11123));\r
+-#11125=FACE_OUTER_BOUND('',#11124,.F.);\r
+-#11126=ADVANCED_FACE('',(#11125),#11116,.T.);\r
+-#11127=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));\r
+-#11128=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11129=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11130=AXIS2_PLACEMENT_3D('',#11127,#11128,#11129);\r
+-#11131=CYLINDRICAL_SURFACE('',#11130,4.375E-1);\r
+-#11132=ORIENTED_EDGE('',*,*,#5874,.T.);\r
+-#11134=ORIENTED_EDGE('',*,*,#11133,.T.);\r
+-#11136=ORIENTED_EDGE('',*,*,#11135,.F.);\r
+-#11137=ORIENTED_EDGE('',*,*,#11118,.F.);\r
+-#11138=EDGE_LOOP('',(#11132,#11134,#11136,#11137));\r
+-#11139=FACE_OUTER_BOUND('',#11138,.F.);\r
+-#11140=ADVANCED_FACE('',(#11139),#11131,.F.);\r
+-#11141=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
+-#11142=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11143=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11144=AXIS2_PLACEMENT_3D('',#11141,#11142,#11143);\r
+-#11145=PLANE('',#11144);\r
+-#11146=ORIENTED_EDGE('',*,*,#5872,.T.);\r
+-#11148=ORIENTED_EDGE('',*,*,#11147,.T.);\r
+-#11150=ORIENTED_EDGE('',*,*,#11149,.F.);\r
+-#11151=ORIENTED_EDGE('',*,*,#11133,.F.);\r
+-#11152=EDGE_LOOP('',(#11146,#11148,#11150,#11151));\r
+-#11153=FACE_OUTER_BOUND('',#11152,.F.);\r
+-#11154=ADVANCED_FACE('',(#11153),#11145,.T.);\r
+-#11155=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));\r
+-#11156=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11157=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11158=AXIS2_PLACEMENT_3D('',#11155,#11156,#11157);\r
+-#11159=CYLINDRICAL_SURFACE('',#11158,4.375E-1);\r
+-#11160=ORIENTED_EDGE('',*,*,#5870,.T.);\r
+-#11161=ORIENTED_EDGE('',*,*,#11122,.T.);\r
+-#11163=ORIENTED_EDGE('',*,*,#11162,.F.);\r
+-#11164=ORIENTED_EDGE('',*,*,#11147,.F.);\r
+-#11165=EDGE_LOOP('',(#11160,#11161,#11163,#11164));\r
+-#11166=FACE_OUTER_BOUND('',#11165,.F.);\r
+-#11167=ADVANCED_FACE('',(#11166),#11159,.F.);\r
+-#11168=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#11169=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11170=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11171=AXIS2_PLACEMENT_3D('',#11168,#11169,#11170);\r
+-#11172=PLANE('',#11171);\r
+-#11173=ORIENTED_EDGE('',*,*,#11120,.T.);\r
+-#11174=ORIENTED_EDGE('',*,*,#11135,.T.);\r
+-#11175=ORIENTED_EDGE('',*,*,#11149,.T.);\r
+-#11176=ORIENTED_EDGE('',*,*,#11162,.T.);\r
+-#11177=EDGE_LOOP('',(#11173,#11174,#11175,#11176));\r
+-#11178=FACE_OUTER_BOUND('',#11177,.F.);\r
+-#11179=ADVANCED_FACE('',(#11178),#11172,.F.);\r
+-#11180=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
+-#11181=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11182=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11183=AXIS2_PLACEMENT_3D('',#11180,#11181,#11182);\r
+-#11184=PLANE('',#11183);\r
+-#11185=ORIENTED_EDGE('',*,*,#5878,.F.);\r
+-#11187=ORIENTED_EDGE('',*,*,#11186,.T.);\r
+-#11189=ORIENTED_EDGE('',*,*,#11188,.T.);\r
+-#11191=ORIENTED_EDGE('',*,*,#11190,.F.);\r
+-#11192=EDGE_LOOP('',(#11185,#11187,#11189,#11191));\r
+-#11193=FACE_OUTER_BOUND('',#11192,.F.);\r
+-#11194=ADVANCED_FACE('',(#11193),#11184,.F.);\r
+-#11195=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));\r
+-#11196=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11197=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11198=AXIS2_PLACEMENT_3D('',#11195,#11196,#11197);\r
+-#11199=CYLINDRICAL_SURFACE('',#11198,5.625E-1);\r
+-#11200=ORIENTED_EDGE('',*,*,#5884,.F.);\r
+-#11202=ORIENTED_EDGE('',*,*,#11201,.T.);\r
+-#11204=ORIENTED_EDGE('',*,*,#11203,.T.);\r
+-#11205=ORIENTED_EDGE('',*,*,#11186,.F.);\r
+-#11206=EDGE_LOOP('',(#11200,#11202,#11204,#11205));\r
+-#11207=FACE_OUTER_BOUND('',#11206,.F.);\r
+-#11208=ADVANCED_FACE('',(#11207),#11199,.F.);\r
+-#11209=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
+-#11210=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11211=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11212=AXIS2_PLACEMENT_3D('',#11209,#11210,#11211);\r
+-#11213=PLANE('',#11212);\r
+-#11214=ORIENTED_EDGE('',*,*,#5882,.F.);\r
+-#11216=ORIENTED_EDGE('',*,*,#11215,.T.);\r
+-#11218=ORIENTED_EDGE('',*,*,#11217,.T.);\r
+-#11219=ORIENTED_EDGE('',*,*,#11201,.F.);\r
+-#11220=EDGE_LOOP('',(#11214,#11216,#11218,#11219));\r
+-#11221=FACE_OUTER_BOUND('',#11220,.F.);\r
+-#11222=ADVANCED_FACE('',(#11221),#11213,.F.);\r
+-#11223=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));\r
+-#11224=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11225=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11226=AXIS2_PLACEMENT_3D('',#11223,#11224,#11225);\r
+-#11227=CYLINDRICAL_SURFACE('',#11226,5.625E-1);\r
+-#11228=ORIENTED_EDGE('',*,*,#5880,.F.);\r
+-#11229=ORIENTED_EDGE('',*,*,#11190,.T.);\r
+-#11231=ORIENTED_EDGE('',*,*,#11230,.T.);\r
+-#11232=ORIENTED_EDGE('',*,*,#11215,.F.);\r
+-#11233=EDGE_LOOP('',(#11228,#11229,#11231,#11232));\r
+-#11234=FACE_OUTER_BOUND('',#11233,.F.);\r
+-#11235=ADVANCED_FACE('',(#11234),#11227,.F.);\r
+-#11236=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));\r
+-#11237=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11238=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11239=AXIS2_PLACEMENT_3D('',#11236,#11237,#11238);\r
+-#11240=PLANE('',#11239);\r
+-#11241=ORIENTED_EDGE('',*,*,#11188,.F.);\r
+-#11242=ORIENTED_EDGE('',*,*,#11203,.F.);\r
+-#11243=ORIENTED_EDGE('',*,*,#11217,.F.);\r
+-#11244=ORIENTED_EDGE('',*,*,#11230,.F.);\r
+-#11245=EDGE_LOOP('',(#11241,#11242,#11243,#11244));\r
+-#11246=FACE_OUTER_BOUND('',#11245,.F.);\r
+-#11247=ADVANCED_FACE('',(#11246),#11240,.T.);\r
+-#11248=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));\r
+-#11249=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11250=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11251=AXIS2_PLACEMENT_3D('',#11248,#11249,#11250);\r
+-#11252=PLANE('',#11251);\r
+-#11254=ORIENTED_EDGE('',*,*,#11253,.F.);\r
+-#11256=ORIENTED_EDGE('',*,*,#11255,.F.);\r
+-#11258=ORIENTED_EDGE('',*,*,#11257,.F.);\r
+-#11260=ORIENTED_EDGE('',*,*,#11259,.F.);\r
+-#11262=ORIENTED_EDGE('',*,*,#11261,.F.);\r
+-#11263=EDGE_LOOP('',(#11254,#11256,#11258,#11260,#11262));\r
+-#11264=FACE_OUTER_BOUND('',#11263,.F.);\r
+-#11265=ADVANCED_FACE('',(#11264),#11252,.T.);\r
+-#11266=CARTESIAN_POINT('',(2.254426323641E1,-6.892397422826E-2,\r
+-2.742280476768E1));\r
+-#11267=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11268=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#11269=AXIS2_PLACEMENT_3D('',#11266,#11267,#11268);\r
+-#11270=CYLINDRICAL_SURFACE('',#11269,7.5E-1);\r
+-#11272=ORIENTED_EDGE('',*,*,#11271,.F.);\r
+-#11273=ORIENTED_EDGE('',*,*,#5944,.T.);\r
+-#11275=ORIENTED_EDGE('',*,*,#11274,.T.);\r
+-#11276=ORIENTED_EDGE('',*,*,#11253,.T.);\r
+-#11277=EDGE_LOOP('',(#11272,#11273,#11275,#11276));\r
+-#11278=FACE_OUTER_BOUND('',#11277,.F.);\r
+-#11279=ADVANCED_FACE('',(#11278),#11270,.F.);\r
+-#11280=CARTESIAN_POINT('',(2.33125E1,0.E0,2.771522817587E1));\r
+-#11281=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#11282=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
+-#11283=AXIS2_PLACEMENT_3D('',#11280,#11281,#11282);\r
+-#11284=PLANE('',#11283);\r
+-#11285=ORIENTED_EDGE('',*,*,#11271,.T.);\r
+-#11286=ORIENTED_EDGE('',*,*,#11261,.T.);\r
+-#11288=ORIENTED_EDGE('',*,*,#11287,.F.);\r
+-#11289=ORIENTED_EDGE('',*,*,#5946,.F.);\r
+-#11290=EDGE_LOOP('',(#11285,#11286,#11288,#11289));\r
+-#11291=FACE_OUTER_BOUND('',#11290,.F.);\r
+-#11292=ADVANCED_FACE('',(#11291),#11284,.F.);\r
+-#11293=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));\r
+-#11294=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11295=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11296=AXIS2_PLACEMENT_3D('',#11293,#11294,#11295);\r
+-#11297=CYLINDRICAL_SURFACE('',#11296,8.669989027347E-1);\r
+-#11298=ORIENTED_EDGE('',*,*,#5948,.F.);\r
+-#11299=ORIENTED_EDGE('',*,*,#11287,.T.);\r
+-#11300=ORIENTED_EDGE('',*,*,#11259,.T.);\r
+-#11302=ORIENTED_EDGE('',*,*,#11301,.F.);\r
+-#11303=EDGE_LOOP('',(#11298,#11299,#11300,#11302));\r
+-#11304=FACE_OUTER_BOUND('',#11303,.F.);\r
+-#11305=ADVANCED_FACE('',(#11304),#11297,.F.);\r
+-#11306=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));\r
+-#11307=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11308=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11309=AXIS2_PLACEMENT_3D('',#11306,#11307,#11308);\r
+-#11310=CYLINDRICAL_SURFACE('',#11309,5.6875E0);\r
+-#11311=ORIENTED_EDGE('',*,*,#5950,.T.);\r
+-#11312=ORIENTED_EDGE('',*,*,#11301,.T.);\r
+-#11313=ORIENTED_EDGE('',*,*,#11257,.T.);\r
+-#11315=ORIENTED_EDGE('',*,*,#11314,.F.);\r
+-#11316=EDGE_LOOP('',(#11311,#11312,#11313,#11315));\r
+-#11317=FACE_OUTER_BOUND('',#11316,.F.);\r
+-#11318=ADVANCED_FACE('',(#11317),#11310,.T.);\r
+-#11319=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));\r
+-#11320=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11321=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11322=AXIS2_PLACEMENT_3D('',#11319,#11320,#11321);\r
+-#11323=CYLINDRICAL_SURFACE('',#11322,9.225E-1);\r
+-#11324=ORIENTED_EDGE('',*,*,#11274,.F.);\r
+-#11325=ORIENTED_EDGE('',*,*,#5942,.F.);\r
+-#11326=ORIENTED_EDGE('',*,*,#11314,.T.);\r
+-#11327=ORIENTED_EDGE('',*,*,#11255,.T.);\r
+-#11328=EDGE_LOOP('',(#11324,#11325,#11326,#11327));\r
+-#11329=FACE_OUTER_BOUND('',#11328,.F.);\r
+-#11330=ADVANCED_FACE('',(#11329),#11323,.F.);\r
+-#11331=CARTESIAN_POINT('',(2.13075E1,-6.892397422826E-2,7.81E0));\r
+-#11332=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11333=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11334=AXIS2_PLACEMENT_3D('',#11331,#11332,#11333);\r
+-#11335=CYLINDRICAL_SURFACE('',#11334,8.8E-1);\r
+-#11337=ORIENTED_EDGE('',*,*,#11336,.T.);\r
+-#11339=ORIENTED_EDGE('',*,*,#11338,.T.);\r
+-#11341=ORIENTED_EDGE('',*,*,#11340,.F.);\r
+-#11342=ORIENTED_EDGE('',*,*,#5888,.T.);\r
+-#11343=EDGE_LOOP('',(#11337,#11339,#11341,#11342));\r
+-#11344=FACE_OUTER_BOUND('',#11343,.F.);\r
+-#11345=ADVANCED_FACE('',(#11344),#11335,.T.);\r
+-#11346=CARTESIAN_POINT('',(2.21875E1,0.E0,8.69E0));\r
+-#11347=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11348=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11349=AXIS2_PLACEMENT_3D('',#11346,#11347,#11348);\r
+-#11350=PLANE('',#11349);\r
+-#11351=ORIENTED_EDGE('',*,*,#11336,.F.);\r
+-#11352=ORIENTED_EDGE('',*,*,#5914,.T.);\r
+-#11354=ORIENTED_EDGE('',*,*,#11353,.F.);\r
+-#11356=ORIENTED_EDGE('',*,*,#11355,.F.);\r
+-#11357=EDGE_LOOP('',(#11351,#11352,#11354,#11356));\r
+-#11358=FACE_OUTER_BOUND('',#11357,.F.);\r
+-#11359=ADVANCED_FACE('',(#11358),#11350,.T.);\r
+-#11360=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,9.57E0));\r
+-#11361=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11362=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11363=AXIS2_PLACEMENT_3D('',#11360,#11361,#11362);\r
+-#11364=CYLINDRICAL_SURFACE('',#11363,8.8E-1);\r
+-#11366=ORIENTED_EDGE('',*,*,#11365,.F.);\r
+-#11368=ORIENTED_EDGE('',*,*,#11367,.T.);\r
+-#11369=ORIENTED_EDGE('',*,*,#11353,.T.);\r
+-#11370=ORIENTED_EDGE('',*,*,#5912,.T.);\r
+-#11371=EDGE_LOOP('',(#11366,#11368,#11369,#11370));\r
+-#11372=FACE_OUTER_BOUND('',#11371,.F.);\r
+-#11373=ADVANCED_FACE('',(#11372),#11364,.F.);\r
+-#11374=CARTESIAN_POINT('',(1.96875E1,0.E0,8.69E0));\r
+-#11375=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11376=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11377=AXIS2_PLACEMENT_3D('',#11374,#11375,#11376);\r
+-#11378=PLANE('',#11377);\r
+-#11379=ORIENTED_EDGE('',*,*,#11365,.T.);\r
+-#11380=ORIENTED_EDGE('',*,*,#5910,.T.);\r
+-#11382=ORIENTED_EDGE('',*,*,#11381,.F.);\r
+-#11384=ORIENTED_EDGE('',*,*,#11383,.F.);\r
+-#11385=EDGE_LOOP('',(#11379,#11380,#11382,#11384));\r
+-#11386=FACE_OUTER_BOUND('',#11385,.F.);\r
+-#11387=ADVANCED_FACE('',(#11386),#11378,.T.);\r
+-#11388=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,1.037E1));\r
+-#11389=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11390=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11391=AXIS2_PLACEMENT_3D('',#11388,#11389,#11390);\r
+-#11392=CYLINDRICAL_SURFACE('',#11391,8.8E-1);\r
+-#11394=ORIENTED_EDGE('',*,*,#11393,.F.);\r
+-#11396=ORIENTED_EDGE('',*,*,#11395,.T.);\r
+-#11397=ORIENTED_EDGE('',*,*,#11381,.T.);\r
+-#11398=ORIENTED_EDGE('',*,*,#5908,.T.);\r
+-#11399=EDGE_LOOP('',(#11394,#11396,#11397,#11398));\r
+-#11400=FACE_OUTER_BOUND('',#11399,.F.);\r
+-#11401=ADVANCED_FACE('',(#11400),#11392,.F.);\r
+-#11402=CARTESIAN_POINT('',(1.96875E1,0.E0,1.125E1));\r
+-#11403=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11404=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11405=AXIS2_PLACEMENT_3D('',#11402,#11403,#11404);\r
+-#11406=PLANE('',#11405);\r
+-#11407=ORIENTED_EDGE('',*,*,#11393,.T.);\r
+-#11408=ORIENTED_EDGE('',*,*,#5906,.T.);\r
+-#11410=ORIENTED_EDGE('',*,*,#11409,.F.);\r
+-#11412=ORIENTED_EDGE('',*,*,#11411,.F.);\r
+-#11413=EDGE_LOOP('',(#11407,#11408,#11410,#11412));\r
+-#11414=FACE_OUTER_BOUND('',#11413,.F.);\r
+-#11415=ADVANCED_FACE('',(#11414),#11406,.T.);\r
+-#11416=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,1.037E1));\r
+-#11417=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11418=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11419=AXIS2_PLACEMENT_3D('',#11416,#11417,#11418);\r
+-#11420=CYLINDRICAL_SURFACE('',#11419,8.8E-1);\r
+-#11422=ORIENTED_EDGE('',*,*,#11421,.F.);\r
+-#11424=ORIENTED_EDGE('',*,*,#11423,.T.);\r
+-#11425=ORIENTED_EDGE('',*,*,#11409,.T.);\r
+-#11426=ORIENTED_EDGE('',*,*,#5904,.T.);\r
+-#11427=EDGE_LOOP('',(#11422,#11424,#11425,#11426));\r
+-#11428=FACE_OUTER_BOUND('',#11427,.F.);\r
+-#11429=ADVANCED_FACE('',(#11428),#11420,.F.);\r
+-#11430=CARTESIAN_POINT('',(2.53125E1,0.E0,1.125E1));\r
+-#11431=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11432=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11433=AXIS2_PLACEMENT_3D('',#11430,#11431,#11432);\r
+-#11434=PLANE('',#11433);\r
+-#11436=ORIENTED_EDGE('',*,*,#11435,.F.);\r
+-#11438=ORIENTED_EDGE('',*,*,#11437,.F.);\r
+-#11439=ORIENTED_EDGE('',*,*,#11421,.T.);\r
+-#11440=ORIENTED_EDGE('',*,*,#5902,.T.);\r
+-#11441=EDGE_LOOP('',(#11436,#11438,#11439,#11440));\r
+-#11442=FACE_OUTER_BOUND('',#11441,.F.);\r
+-#11443=ADVANCED_FACE('',(#11442),#11434,.T.);\r
+-#11444=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,9.57E0));\r
+-#11445=DIRECTION('',(0.E0,-1.E0,0.E0));\r
+-#11446=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11447=AXIS2_PLACEMENT_3D('',#11444,#11445,#11446);\r
+-#11448=CYLINDRICAL_SURFACE('',#11447,8.8E-1);\r
+-#11450=ORIENTED_EDGE('',*,*,#11449,.F.);\r
+-#11452=ORIENTED_EDGE('',*,*,#11451,.T.);\r
+-#11453=ORIENTED_EDGE('',*,*,#11435,.T.);\r
+-#11454=ORIENTED_EDGE('',*,*,#5900,.T.);\r
+-#11455=EDGE_LOOP('',(#11450,#11452,#11453,#11454));\r
+-#11456=FACE_OUTER_BOUND('',#11455,.F.);\r
+-#11457=ADVANCED_FACE('',(#11456),#11448,.F.);\r
+-#11458=CARTESIAN_POINT('',(2.53125E1,0.E0,8.69E0));\r
+-#11459=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11460=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11461=AXIS2_PLACEMENT_3D('',#11458,#11459,#11460);\r
+-#11462=PLANE('',#11461);\r
+-#11464=ORIENTED_EDGE('',*,*,#11463,.T.);\r
+-#11466=ORIENTED_EDGE('',*,*,#11465,.F.);\r
+-#11467=ORIENTED_EDGE('',*,*,#11449,.T.);\r
+-#11468=ORIENTED_EDGE('',*,*,#5898,.T.);\r
+-#11469=EDGE_LOOP('',(#11464,#11466,#11467,#11468));\r
+-#11470=FACE_OUTER_BOUND('',#11469,.F.);\r
+-#11471=ADVANCED_FACE('',(#11470),#11462,.T.);\r
+-#11472=CARTESIAN_POINT('',(2.419E1,-6.892397422826E-2,7.81E0));\r
+-#11473=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11474=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11475=AXIS2_PLACEMENT_3D('',#11472,#11473,#11474);\r
+-#11476=CYLINDRICAL_SURFACE('',#11475,8.8E-1);\r
+-#11478=ORIENTED_EDGE('',*,*,#11477,.T.);\r
+-#11480=ORIENTED_EDGE('',*,*,#11479,.T.);\r
+-#11481=ORIENTED_EDGE('',*,*,#11463,.F.);\r
+-#11482=ORIENTED_EDGE('',*,*,#5896,.T.);\r
+-#11483=EDGE_LOOP('',(#11478,#11480,#11481,#11482));\r
+-#11484=FACE_OUTER_BOUND('',#11483,.F.);\r
+-#11485=ADVANCED_FACE('',(#11484),#11476,.T.);\r
+-#11486=CARTESIAN_POINT('',(2.331E1,0.E0,8.69E0));\r
+-#11487=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11488=DIRECTION('',(0.E0,0.E0,-1.E0));\r
+-#11489=AXIS2_PLACEMENT_3D('',#11486,#11487,#11488);\r
+-#11490=PLANE('',#11489);\r
+-#11491=ORIENTED_EDGE('',*,*,#11477,.F.);\r
+-#11492=ORIENTED_EDGE('',*,*,#5894,.T.);\r
+-#11494=ORIENTED_EDGE('',*,*,#11493,.T.);\r
+-#11496=ORIENTED_EDGE('',*,*,#11495,.F.);\r
+-#11497=EDGE_LOOP('',(#11491,#11492,#11494,#11496));\r
+-#11498=FACE_OUTER_BOUND('',#11497,.F.);\r
+-#11499=ADVANCED_FACE('',(#11498),#11490,.T.);\r
+-#11500=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));\r
+-#11501=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11502=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11503=AXIS2_PLACEMENT_3D('',#11500,#11501,#11502);\r
+-#11504=CYLINDRICAL_SURFACE('',#11503,5.6125E-1);\r
+-#11505=ORIENTED_EDGE('',*,*,#5892,.T.);\r
+-#11507=ORIENTED_EDGE('',*,*,#11506,.T.);\r
+-#11509=ORIENTED_EDGE('',*,*,#11508,.F.);\r
+-#11510=ORIENTED_EDGE('',*,*,#11493,.F.);\r
+-#11511=EDGE_LOOP('',(#11505,#11507,#11509,#11510));\r
+-#11512=FACE_OUTER_BOUND('',#11511,.F.);\r
+-#11513=ADVANCED_FACE('',(#11512),#11504,.F.);\r
+-#11514=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
+-#11515=DIRECTION('',(1.E0,0.E0,0.E0));\r
+-#11516=DIRECTION('',(0.E0,0.E0,1.E0));\r
+-#11517=AXIS2_PLACEMENT_3D('',#11514,#11515,#11516);\r
+-#11518=PLANE('',#11517);\r
+-#11519=ORIENTED_EDGE('',*,*,#11340,.T.);\r
+-#11521=ORIENTED_EDGE('',*,*,#11520,.F.);\r
+-#11522=ORIENTED_EDGE('',*,*,#11506,.F.);\r
+-#11523=ORIENTED_EDGE('',*,*,#5890,.T.);\r
+-#11524=EDGE_LOOP('',(#11519,#11521,#11522,#11523));\r
+-#11525=FACE_OUTER_BOUND('',#11524,.F.);\r
+-#11526=ADVANCED_FACE('',(#11525),#11518,.T.);\r
+-#11527=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
+-#11528=DIRECTION('',(0.E0,1.E0,0.E0));\r
+-#11529=DIRECTION('',(-1.E0,0.E0,0.E0));\r
+-#11530=AXIS2_PLACEMENT_3D('',#11527,#11528,#11529);\r
+-#11531=PLANE('',#11530);\r
+-#11532=ORIENTED_EDGE('',*,*,#11465,.T.);\r
+-#11533=ORIENTED_EDGE('',*,*,#11479,.F.);\r
+-#11534=ORIENTED_EDGE('',*,*,#11495,.T.);\r
+-#11535=ORIENTED_EDGE('',*,*,#11508,.T.);\r
+-#11536=ORIENTED_EDGE('',*,*,#11520,.T.);\r
+-#11537=ORIENTED_EDGE('',*,*,#11338,.F.);\r
+-#11538=ORIENTED_EDGE('',*,*,#11355,.T.);\r
+-#11539=ORIENTED_EDGE('',*,*,#11367,.F.);\r
+-#11540=ORIENTED_EDGE('',*,*,#11383,.T.);\r
+-#11541=ORIENTED_EDGE('',*,*,#11395,.F.);\r
+-#11542=ORIENTED_EDGE('',*,*,#11411,.T.);\r
+-#11543=ORIENTED_EDGE('',*,*,#11423,.F.);\r
+-#11544=ORIENTED_EDGE('',*,*,#11437,.T.);\r
+-#11545=ORIENTED_EDGE('',*,*,#11451,.F.);\r
+-#11546=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536,#11537,#11538,#11539,\r
+-#11540,#11541,#11542,#11543,#11544,#11545));\r
+-#11547=FACE_OUTER_BOUND('',#11546,.F.);\r
+-#11548=ADVANCED_FACE('',(#11547),#11531,.F.);\r
+-#11549=CLOSED_SHELL('',(#5954,#6079,#6094,#6107,#6117,#6132,#6145,#6201,#6214,\r
+-#6278,#6488,#6503,#6516,#6529,#6540,#6555,#6568,#6581,#6592,#6605,#6618,#6631,\r
+-#6644,#6656,#6669,#6683,#6696,#6709,#6723,#6736,#6749,#6763,#6776,#6789,#6802,\r
+-#6815,#6828,#6842,#6855,#6868,#6880,#6893,#6906,#6918,#6931,#6945,#6958,#6971,\r
+-#6984,#6998,#7011,#7024,#7036,#7048,#7061,#7074,#7086,#7099,#7114,#7127,#7152,\r
+-#7166,#7178,#7191,#7204,#7217,#7230,#7244,#7256,#7311,#7325,#7337,#7349,#7368,\r
+-#7379,#7394,#7407,#7423,#7437,#7449,#7465,#7477,#7490,#7514,#7529,#7542,#7552,\r
+-#7567,#7580,#7590,#7605,#7619,#7649,#7662,#7675,#7688,#7701,#7714,#7727,#7740,\r
+-#7753,#7766,#7778,#7790,#7805,#7818,#7828,#7843,#7856,#7866,#7881,#7894,#7907,\r
+-#7918,#7933,#7946,#7959,#7970,#7985,#7998,#8014,#8028,#8040,#8055,#8068,#8084,\r
+-#8098,#8110,#8125,#8138,#8154,#8168,#8180,#8195,#8208,#8224,#8238,#8250,#8265,\r
+-#8278,#8294,#8308,#8320,#8335,#8348,#8364,#8378,#8390,#8405,#8418,#8434,#8448,\r
+-#8460,#8475,#8488,#8504,#8518,#8530,#8545,#8558,#8574,#8588,#8600,#8615,#8628,\r
+-#8644,#8658,#8670,#8685,#8698,#8714,#8728,#8740,#8755,#8768,#8784,#8798,#8810,\r
+-#8825,#8838,#8854,#8868,#8880,#8895,#8908,#8924,#8938,#8950,#8965,#8978,#8994,\r
+-#9008,#9020,#9035,#9048,#9064,#9078,#9090,#9105,#9118,#9134,#9148,#9160,#9175,\r
+-#9188,#9204,#9218,#9230,#9242,#9260,#9275,#9288,#9304,#9318,#9330,#9345,#9359,\r
+-#9373,#9387,#9401,#9415,#9429,#9443,#9457,#9471,#9485,#9498,#9518,#9533,#9546,\r
+-#9556,#9571,#9584,#9594,#9609,#9622,#9632,#9647,#9660,#9670,#9685,#9698,#9708,\r
+-#9723,#9737,#9751,#9765,#9779,#9793,#9807,#9820,#9836,#9851,#9865,#9887,#9901,\r
+-#9913,#9926,#9939,#9952,#9964,#9979,#9993,#10007,#10020,#10032,#10050,#10064,\r
+-#10077,#10090,#10103,#10115,#10130,#10144,#10178,#10192,#10205,#10218,#10230,\r
+-#10243,#10256,#10269,#10282,#10295,#10308,#10321,#10333,#10348,#10362,#10376,\r
+-#10389,#10401,#10416,#10430,#10444,#10457,#10469,#10484,#10498,#10512,#10525,\r
+-#10537,#10552,#10566,#10580,#10593,#10605,#10620,#10634,#10648,#10661,#10673,\r
+-#10691,#10705,#10718,#10731,#10744,#10756,#10771,#10785,#10799,#10812,#10824,\r
+-#10842,#10856,#10869,#10882,#10895,#10907,#10922,#10936,#10950,#10963,#10975,\r
+-#10990,#11004,#11018,#11031,#11043,#11058,#11072,#11086,#11099,#11111,#11126,\r
+-#11140,#11154,#11167,#11179,#11194,#11208,#11222,#11235,#11247,#11265,#11279,\r
+-#11292,#11305,#11318,#11330,#11345,#11359,#11373,#11387,#11401,#11415,#11429,\r
+-#11443,#11457,#11471,#11485,#11499,#11513,#11526,#11548));\r
+-#11550=MANIFOLD_SOLID_BREP('',#11549);\r
+-#11551=DIMENSIONAL_EXPONENTS(1.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);\r
+-#11552=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));\r
+-#11553=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.54E1),#11552);\r
+-#11554=(CONVERSION_BASED_UNIT('INCH',#11553)LENGTH_UNIT()NAMED_UNIT(#11551));\r
+-#11555=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);\r
+-#11556=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));\r
+-#11557=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),\r
+-#11556);\r
+-#11558=(CONVERSION_BASED_UNIT('DEGREE',#11557)NAMED_UNIT(#11555)PLANE_ANGLE_UNIT());\r
+-#11559=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());\r
+-#11560=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(4.404650704771E-3),#11554,\r
+-'closure',\r
+-'Maximum model space distance between geometric entities at asserted connectivities');\r
+-#11561=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((\r
+-#11560))GLOBAL_UNIT_ASSIGNED_CONTEXT((#11554,#11558,#11559))REPRESENTATION_CONTEXT('ID1','3'));\r
+-#11563=APPLICATION_CONTEXT(\r
+-'CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES');\r
+-#11564=APPLICATION_PROTOCOL_DEFINITION('international standard',\r
+-'config_control_design',1994,#11563);\r
+-#11565=DESIGN_CONTEXT('',#11563,'design');\r
+-#11566=MECHANICAL_CONTEXT('',#11563,'mechanical');\r
+-#11567=PRODUCT('PROESOURCE','PROESOURCE','NOT SPECIFIED',(#11566));\r
+-#11568=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',\r
+-#11567,.MADE.);\r
+-#11572=PRODUCT_CATEGORY('part','');\r
+-#11573=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#11567));\r
+-#11574=PRODUCT_CATEGORY_RELATIONSHIP('','',#11572,#11573);\r
+-#11575=SECURITY_CLASSIFICATION_LEVEL('unclassified');\r
+-#11576=SECURITY_CLASSIFICATION('','',#11575);\r
+-#11577=CC_DESIGN_SECURITY_CLASSIFICATION(#11576,(#11568));\r
+-#11578=APPROVAL_STATUS('approved');\r
+-#11579=APPROVAL(#11578,'');\r
+-#11580=CC_DESIGN_APPROVAL(#11579,(#11576,#11568,#11569));\r
+-#11581=CALENDAR_DATE(102,4,11);\r
+-#11582=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);\r
+-#11583=LOCAL_TIME(14,0,4.8E1,#11582);\r
+-#11584=DATE_AND_TIME(#11581,#11583);\r
+-#11585=APPROVAL_DATE_TIME(#11584,#11579);\r
+-#11586=DATE_TIME_ROLE('creation_date');\r
+-#11587=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11586,(#11569));\r
+-#11588=DATE_TIME_ROLE('classification_date');\r
+-#11589=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11588,(#11576));\r
+-#11590=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$);\r
+-#11591=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED');\r
+-#11592=PERSON_AND_ORGANIZATION(#11590,#11591);\r
+-#11593=APPROVAL_ROLE('approver');\r
+-#11594=APPROVAL_PERSON_ORGANIZATION(#11592,#11579,#11593);\r
+-#11595=PERSON_AND_ORGANIZATION_ROLE('creator');\r
+-#11596=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11595,(#11568,\r
+-#11569));\r
+-#11597=PERSON_AND_ORGANIZATION_ROLE('design_supplier');\r
+-#11598=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11597,(#11568));\r
+-#11599=PERSON_AND_ORGANIZATION_ROLE('classification_officer');\r
+-#11600=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11599,(#11576));\r
+-#11601=PERSON_AND_ORGANIZATION_ROLE('design_owner');\r
+-#11602=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11601,(#11567));\r
+-#13=CIRCLE('',#12,1.925E-1);\r
+-#18=CIRCLE('',#17,1.925E-1);\r
+-#23=CIRCLE('',#22,1.925E-1);\r
+-#28=CIRCLE('',#27,1.925E-1);\r
+-#33=CIRCLE('',#32,1.925E-1);\r
+-#38=CIRCLE('',#37,1.925E-1);\r
+-#43=CIRCLE('',#42,1.925E-1);\r
+-#48=CIRCLE('',#47,1.925E-1);\r
+-#53=CIRCLE('',#52,1.925E-1);\r
+-#58=CIRCLE('',#57,1.925E-1);\r
+-#63=CIRCLE('',#62,1.925E-1);\r
+-#68=CIRCLE('',#67,1.925E-1);\r
+-#73=CIRCLE('',#72,1.925E-1);\r
+-#78=CIRCLE('',#77,1.925E-1);\r
+-#83=CIRCLE('',#82,1.925E-1);\r
+-#88=CIRCLE('',#87,1.925E-1);\r
+-#93=CIRCLE('',#92,1.925E-1);\r
+-#98=CIRCLE('',#97,1.925E-1);\r
+-#103=CIRCLE('',#102,1.925E-1);\r
+-#108=CIRCLE('',#107,1.925E-1);\r
+-#113=CIRCLE('',#112,1.925E-1);\r
+-#118=CIRCLE('',#117,1.925E-1);\r
+-#123=CIRCLE('',#122,1.925E-1);\r
+-#128=CIRCLE('',#127,1.925E-1);\r
+-#181=CIRCLE('',#180,1.925E-1);\r
+-#186=CIRCLE('',#185,1.925E-1);\r
+-#191=CIRCLE('',#190,1.925E-1);\r
+-#196=CIRCLE('',#195,1.925E-1);\r
+-#249=CIRCLE('',#248,1.925E-1);\r
+-#254=CIRCLE('',#253,1.925E-1);\r
+-#259=CIRCLE('',#258,1.925E-1);\r
+-#264=CIRCLE('',#263,1.925E-1);\r
+-#269=CIRCLE('',#268,1.925E-1);\r
+-#274=CIRCLE('',#273,1.925E-1);\r
+-#279=CIRCLE('',#278,1.925E-1);\r
+-#284=CIRCLE('',#283,1.925E-1);\r
+-#289=CIRCLE('',#288,1.925E-1);\r
+-#294=CIRCLE('',#293,1.925E-1);\r
+-#299=CIRCLE('',#298,1.925E-1);\r
+-#304=CIRCLE('',#303,1.925E-1);\r
+-#313=CIRCLE('',#312,5.625E-1);\r
+-#322=CIRCLE('',#321,5.625E-1);\r
+-#327=CIRCLE('',#326,9.225E-1);\r
+-#336=CIRCLE('',#335,8.669989027347E-1);\r
+-#341=CIRCLE('',#340,5.6875E0);\r
+-#350=CIRCLE('',#349,5.6125E-1);\r
+-#383=CIRCLE('',#382,5.625E-1);\r
+-#392=CIRCLE('',#391,5.625E-1);\r
+-#401=CIRCLE('',#400,5.625E-1);\r
+-#410=CIRCLE('',#409,5.625E-1);\r
+-#419=CIRCLE('',#418,5.E-1);\r
+-#428=CIRCLE('',#427,5.E-1);\r
+-#437=CIRCLE('',#436,4.375E-1);\r
+-#446=CIRCLE('',#445,4.375E-1);\r
+-#455=CIRCLE('',#454,5.625E-1);\r
+-#464=CIRCLE('',#463,5.625E-1);\r
+-#473=CIRCLE('',#472,5.625E-1);\r
+-#482=CIRCLE('',#481,5.625E-1);\r
+-#491=CIRCLE('',#490,5.625E-1);\r
+-#500=CIRCLE('',#499,5.625E-1);\r
+-#509=CIRCLE('',#508,5.625E-1);\r
+-#518=CIRCLE('',#517,5.625E-1);\r
+-#527=CIRCLE('',#526,5.E-1);\r
+-#536=CIRCLE('',#535,5.E-1);\r
+-#545=CIRCLE('',#544,4.375E-1);\r
+-#554=CIRCLE('',#553,4.375E-1);\r
+-#563=CIRCLE('',#562,5.625E-1);\r
+-#572=CIRCLE('',#571,5.625E-1);\r
+-#581=CIRCLE('',#580,5.6125E-1);\r
+-#614=CIRCLE('',#613,9.225E-1);\r
+-#619=CIRCLE('',#618,5.6875E0);\r
+-#624=CIRCLE('',#623,8.669989027347E-1);\r
+-#633=CIRCLE('',#632,9.225E-1);\r
+-#638=CIRCLE('',#637,5.6875E0);\r
+-#643=CIRCLE('',#642,8.669989027347E-1);\r
+-#648=CIRCLE('',#647,9.225E-1);\r
+-#657=CIRCLE('',#656,8.669989027347E-1);\r
+-#662=CIRCLE('',#661,5.6875E0);\r
+-#667=CIRCLE('',#666,9.5E-2);\r
+-#672=CIRCLE('',#671,9.5E-2);\r
+-#677=CIRCLE('',#676,1.625E-1);\r
+-#682=CIRCLE('',#681,1.625E-1);\r
+-#687=CIRCLE('',#686,9.5E-2);\r
+-#692=CIRCLE('',#691,9.5E-2);\r
+-#697=CIRCLE('',#696,9.5E-2);\r
+-#702=CIRCLE('',#701,9.5E-2);\r
+-#707=CIRCLE('',#706,9.5E-2);\r
+-#712=CIRCLE('',#711,9.5E-2);\r
+-#717=CIRCLE('',#716,9.5E-2);\r
+-#722=CIRCLE('',#721,9.5E-2);\r
+-#727=CIRCLE('',#726,1.625E-1);\r
+-#732=CIRCLE('',#731,1.625E-1);\r
+-#737=CIRCLE('',#736,9.5E-2);\r
+-#742=CIRCLE('',#741,9.5E-2);\r
+-#803=CIRCLE('',#802,9.5E-2);\r
+-#808=CIRCLE('',#807,9.5E-2);\r
+-#821=CIRCLE('',#820,1.625E-1);\r
+-#826=CIRCLE('',#825,1.625E-1);\r
+-#887=CIRCLE('',#886,1.E-1);\r
+-#892=CIRCLE('',#891,1.E-1);\r
+-#897=CIRCLE('',#896,1.E-1);\r
+-#902=CIRCLE('',#901,1.E-1);\r
+-#931=CIRCLE('',#930,1.E-1);\r
+-#936=CIRCLE('',#935,1.E-1);\r
+-#941=CIRCLE('',#940,1.E-1);\r
+-#946=CIRCLE('',#945,1.E-1);\r
+-#951=CIRCLE('',#950,2.575E-1);\r
+-#956=CIRCLE('',#955,2.575E-1);\r
+-#961=CIRCLE('',#960,2.575E-1);\r
+-#966=CIRCLE('',#965,2.575E-1);\r
+-#971=CIRCLE('',#970,2.575E-1);\r
+-#976=CIRCLE('',#975,2.575E-1);\r
+-#981=CIRCLE('',#980,2.575E-1);\r
+-#986=CIRCLE('',#985,2.575E-1);\r
+-#991=CIRCLE('',#990,2.575E-1);\r
+-#996=CIRCLE('',#995,2.575E-1);\r
+-#1001=CIRCLE('',#1000,2.575E-1);\r
+-#1006=CIRCLE('',#1005,2.575E-1);\r
+-#1011=CIRCLE('',#1010,2.56E-1);\r
+-#1016=CIRCLE('',#1015,2.56E-1);\r
+-#1021=CIRCLE('',#1020,2.56E-1);\r
+-#1026=CIRCLE('',#1025,2.56E-1);\r
+-#1031=CIRCLE('',#1030,2.56E-1);\r
+-#1036=CIRCLE('',#1035,2.56E-1);\r
+-#1041=CIRCLE('',#1040,2.56E-1);\r
+-#1046=CIRCLE('',#1045,2.56E-1);\r
+-#1051=CIRCLE('',#1050,2.56E-1);\r
+-#1056=CIRCLE('',#1055,2.56E-1);\r
+-#1061=CIRCLE('',#1060,2.56E-1);\r
+-#1066=CIRCLE('',#1065,2.56E-1);\r
+-#1115=CIRCLE('',#1114,2.575E-1);\r
+-#1120=CIRCLE('',#1119,2.575E-1);\r
+-#1125=CIRCLE('',#1124,2.575E-1);\r
+-#1130=CIRCLE('',#1129,2.575E-1);\r
+-#1135=CIRCLE('',#1134,2.575E-1);\r
+-#1140=CIRCLE('',#1139,2.575E-1);\r
+-#1145=CIRCLE('',#1144,2.575E-1);\r
+-#1150=CIRCLE('',#1149,2.575E-1);\r
+-#1155=CIRCLE('',#1154,2.575E-1);\r
+-#1160=CIRCLE('',#1159,2.575E-1);\r
+-#1165=CIRCLE('',#1164,2.575E-1);\r
+-#1170=CIRCLE('',#1169,2.575E-1);\r
+-#1259=CIRCLE('',#1258,1.E-1);\r
+-#1268=CIRCLE('',#1267,1.E-1);\r
+-#1285=CIRCLE('',#1284,1.E-1);\r
+-#1294=CIRCLE('',#1293,1.E-1);\r
+-#1303=CIRCLE('',#1302,1.E0);\r
+-#1312=CIRCLE('',#1311,1.E0);\r
+-#1317=CIRCLE('',#1316,5.E0);\r
+-#1326=CIRCLE('',#1325,5.E0);\r
+-#1331=CIRCLE('',#1330,5.E0);\r
+-#1340=CIRCLE('',#1339,5.E0);\r
+-#1349=CIRCLE('',#1348,1.E0);\r
+-#1358=CIRCLE('',#1357,1.E0);\r
+-#1367=CIRCLE('',#1366,1.E0);\r
+-#1376=CIRCLE('',#1375,1.E0);\r
+-#1385=CIRCLE('',#1384,1.E0);\r
+-#1394=CIRCLE('',#1393,1.E0);\r
+-#1403=CIRCLE('',#1402,1.E0);\r
+-#1412=CIRCLE('',#1411,1.E0);\r
+-#1421=CIRCLE('',#1420,3.E0);\r
+-#1430=CIRCLE('',#1429,3.E0);\r
+-#1439=CIRCLE('',#1438,3.E0);\r
+-#1448=CIRCLE('',#1447,3.E0);\r
+-#1457=CIRCLE('',#1456,5.E0);\r
+-#1466=CIRCLE('',#1465,5.E0);\r
+-#1475=CIRCLE('',#1474,5.E0);\r
+-#1484=CIRCLE('',#1483,5.E0);\r
+-#1493=CIRCLE('',#1492,3.E0);\r
+-#1502=CIRCLE('',#1501,3.E0);\r
+-#1511=CIRCLE('',#1510,3.E0);\r
+-#1520=CIRCLE('',#1519,3.E0);\r
+-#1529=CIRCLE('',#1528,1.E0);\r
+-#1538=CIRCLE('',#1537,1.E0);\r
+-#1547=CIRCLE('',#1546,1.E0);\r
+-#1556=CIRCLE('',#1555,1.E0);\r
+-#1597=CIRCLE('',#1596,1.E0);\r
+-#1606=CIRCLE('',#1605,1.E0);\r
+-#1675=CIRCLE('',#1674,9.5E-2);\r
+-#1680=CIRCLE('',#1679,9.5E-2);\r
+-#1685=CIRCLE('',#1684,6.25E-2);\r
+-#1690=CIRCLE('',#1689,6.25E-2);\r
+-#1707=CIRCLE('',#1706,1.E0);\r
+-#1716=CIRCLE('',#1715,1.E0);\r
+-#1729=CIRCLE('',#1728,1.E0);\r
+-#1738=CIRCLE('',#1737,1.E0);\r
+-#1767=CIRCLE('',#1766,1.625E-1);\r
+-#1772=CIRCLE('',#1771,1.625E-1);\r
+-#1846=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1837,#1838,#1839,#1840,#1841,#1842,#1843,\r
+-#1844,#1845),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
+-6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
+-#1856=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1847,#1848,#1849,#1850,#1851,#1852,#1853,\r
+-#1854,#1855),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
+-6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
+-#1873=CIRCLE('',#1872,2.575E-1);\r
+-#1878=CIRCLE('',#1877,2.575E-1);\r
+-#1883=CIRCLE('',#1882,1.925E-1);\r
+-#1888=CIRCLE('',#1887,1.925E-1);\r
+-#1933=CIRCLE('',#1932,9.5E-2);\r
+-#1938=CIRCLE('',#1937,9.5E-2);\r
+-#1943=CIRCLE('',#1942,6.25E-2);\r
+-#1948=CIRCLE('',#1947,6.25E-2);\r
+-#1961=CIRCLE('',#1960,9.5E-2);\r
+-#1966=CIRCLE('',#1965,9.5E-2);\r
+-#1979=CIRCLE('',#1978,6.25E-2);\r
+-#1984=CIRCLE('',#1983,6.25E-2);\r
+-#1993=CIRCLE('',#1992,3.5E-1);\r
+-#2002=CIRCLE('',#2001,3.5E-1);\r
+-#2035=CIRCLE('',#2034,3.5E-1);\r
+-#2044=CIRCLE('',#2043,3.5E-1);\r
+-#2053=CIRCLE('',#2052,3.5E-1);\r
+-#2062=CIRCLE('',#2061,3.5E-1);\r
+-#2071=CIRCLE('',#2070,3.5E-1);\r
+-#2080=CIRCLE('',#2079,3.5E-1);\r
+-#2089=CIRCLE('',#2088,3.5E-1);\r
+-#2098=CIRCLE('',#2097,3.5E-1);\r
+-#2107=CIRCLE('',#2106,3.5E-1);\r
+-#2116=CIRCLE('',#2115,3.5E-1);\r
+-#2145=CIRCLE('',#2144,9.5E-2);\r
+-#2150=CIRCLE('',#2149,9.5E-2);\r
+-#2163=CIRCLE('',#2162,6.25E-2);\r
+-#2168=CIRCLE('',#2167,6.25E-2);\r
+-#2189=CIRCLE('',#2188,1.E-1);\r
+-#2194=CIRCLE('',#2193,1.E-1);\r
+-#2215=CIRCLE('',#2214,1.E-1);\r
+-#2220=CIRCLE('',#2219,1.E-1);\r
+-#2233=CIRCLE('',#2232,2.575E-1);\r
+-#2238=CIRCLE('',#2237,2.575E-1);\r
+-#2243=CIRCLE('',#2242,1.925E-1);\r
+-#2248=CIRCLE('',#2247,1.925E-1);\r
+-#2269=CIRCLE('',#2268,2.575E-1);\r
+-#2274=CIRCLE('',#2273,2.575E-1);\r
+-#2279=CIRCLE('',#2278,1.925E-1);\r
+-#2284=CIRCLE('',#2283,1.925E-1);\r
+-#2305=CIRCLE('',#2304,2.575E-1);\r
+-#2310=CIRCLE('',#2309,2.575E-1);\r
+-#2315=CIRCLE('',#2314,1.925E-1);\r
+-#2320=CIRCLE('',#2319,1.925E-1);\r
+-#2341=CIRCLE('',#2340,2.575E-1);\r
+-#2346=CIRCLE('',#2345,2.575E-1);\r
+-#2351=CIRCLE('',#2350,1.925E-1);\r
+-#2356=CIRCLE('',#2355,1.925E-1);\r
+-#2377=CIRCLE('',#2376,2.575E-1);\r
+-#2382=CIRCLE('',#2381,2.575E-1);\r
+-#2387=CIRCLE('',#2386,1.925E-1);\r
+-#2392=CIRCLE('',#2391,1.925E-1);\r
+-#2413=CIRCLE('',#2412,2.575E-1);\r
+-#2418=CIRCLE('',#2417,2.575E-1);\r
+-#2423=CIRCLE('',#2422,1.925E-1);\r
+-#2428=CIRCLE('',#2427,1.925E-1);\r
+-#2449=CIRCLE('',#2448,2.56E-1);\r
+-#2454=CIRCLE('',#2453,2.56E-1);\r
+-#2459=CIRCLE('',#2458,1.925E-1);\r
+-#2464=CIRCLE('',#2463,1.925E-1);\r
+-#2485=CIRCLE('',#2484,2.56E-1);\r
+-#2490=CIRCLE('',#2489,2.56E-1);\r
+-#2495=CIRCLE('',#2494,1.925E-1);\r
+-#2500=CIRCLE('',#2499,1.925E-1);\r
+-#2521=CIRCLE('',#2520,2.56E-1);\r
+-#2526=CIRCLE('',#2525,2.56E-1);\r
+-#2531=CIRCLE('',#2530,1.925E-1);\r
+-#2536=CIRCLE('',#2535,1.925E-1);\r
+-#2557=CIRCLE('',#2556,2.56E-1);\r
+-#2562=CIRCLE('',#2561,2.56E-1);\r
+-#2567=CIRCLE('',#2566,1.925E-1);\r
+-#2572=CIRCLE('',#2571,1.925E-1);\r
+-#2593=CIRCLE('',#2592,2.56E-1);\r
+-#2598=CIRCLE('',#2597,2.56E-1);\r
+-#2603=CIRCLE('',#2602,1.925E-1);\r
+-#2608=CIRCLE('',#2607,1.925E-1);\r
+-#2629=CIRCLE('',#2628,2.56E-1);\r
+-#2634=CIRCLE('',#2633,2.56E-1);\r
+-#2639=CIRCLE('',#2638,1.925E-1);\r
+-#2644=CIRCLE('',#2643,1.925E-1);\r
+-#2665=CIRCLE('',#2664,2.575E-1);\r
+-#2670=CIRCLE('',#2669,2.575E-1);\r
+-#2675=CIRCLE('',#2674,1.925E-1);\r
+-#2680=CIRCLE('',#2679,1.925E-1);\r
+-#2701=CIRCLE('',#2700,2.575E-1);\r
+-#2706=CIRCLE('',#2705,2.575E-1);\r
+-#2711=CIRCLE('',#2710,1.925E-1);\r
+-#2716=CIRCLE('',#2715,1.925E-1);\r
+-#2737=CIRCLE('',#2736,2.575E-1);\r
+-#2742=CIRCLE('',#2741,2.575E-1);\r
+-#2747=CIRCLE('',#2746,1.925E-1);\r
+-#2752=CIRCLE('',#2751,1.925E-1);\r
+-#2773=CIRCLE('',#2772,2.575E-1);\r
+-#2778=CIRCLE('',#2777,2.575E-1);\r
+-#2783=CIRCLE('',#2782,1.925E-1);\r
+-#2788=CIRCLE('',#2787,1.925E-1);\r
+-#2809=CIRCLE('',#2808,2.575E-1);\r
+-#2814=CIRCLE('',#2813,2.575E-1);\r
+-#2819=CIRCLE('',#2818,1.925E-1);\r
+-#2824=CIRCLE('',#2823,1.925E-1);\r
+-#2845=CIRCLE('',#2844,2.575E-1);\r
+-#2850=CIRCLE('',#2849,2.575E-1);\r
+-#2855=CIRCLE('',#2854,1.925E-1);\r
+-#2860=CIRCLE('',#2859,1.925E-1);\r
+-#2882=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2873,#2874,#2875,#2876,#2877,#2878,#2879,\r
+-#2880,#2881),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
+-6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
+-#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2883,#2884,#2885,#2886,#2887,#2888,#2889,\r
+-#2890,#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
+-6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
+-#2905=CIRCLE('',#2904,2.575E-1);\r
+-#2910=CIRCLE('',#2909,2.575E-1);\r
+-#2915=CIRCLE('',#2914,1.925E-1);\r
+-#2920=CIRCLE('',#2919,1.925E-1);\r
+-#2937=CIRCLE('',#2936,3.5E-1);\r
+-#2946=CIRCLE('',#2945,3.5E-1);\r
+-#2955=CIRCLE('',#2954,3.5E-1);\r
+-#2964=CIRCLE('',#2963,3.5E-1);\r
+-#2973=CIRCLE('',#2972,3.5E-1);\r
+-#2982=CIRCLE('',#2981,3.5E-1);\r
+-#2991=CIRCLE('',#2990,3.5E-1);\r
+-#3000=CIRCLE('',#2999,3.5E-1);\r
+-#3009=CIRCLE('',#3008,3.5E-1);\r
+-#3018=CIRCLE('',#3017,3.5E-1);\r
+-#3027=CIRCLE('',#3026,3.5E-1);\r
+-#3036=CIRCLE('',#3035,3.5E-1);\r
+-#3073=CIRCLE('',#3072,9.5E-2);\r
+-#3078=CIRCLE('',#3077,9.5E-2);\r
+-#3091=CIRCLE('',#3090,9.5E-2);\r
+-#3096=CIRCLE('',#3095,9.5E-2);\r
+-#3109=CIRCLE('',#3108,9.5E-2);\r
+-#3114=CIRCLE('',#3113,9.5E-2);\r
+-#3127=CIRCLE('',#3126,9.5E-2);\r
+-#3132=CIRCLE('',#3131,9.5E-2);\r
+-#3145=CIRCLE('',#3144,9.5E-2);\r
+-#3150=CIRCLE('',#3149,9.5E-2);\r
+-#3159=CIRCLE('',#3158,7.5E-1);\r
+-#3168=CIRCLE('',#3167,7.5E-1);\r
+-#3177=CIRCLE('',#3176,7.5E-1);\r
+-#3186=CIRCLE('',#3185,7.5E-1);\r
+-#3195=CIRCLE('',#3194,7.5E-1);\r
+-#3204=CIRCLE('',#3203,7.5E-1);\r
+-#3213=CIRCLE('',#3212,7.5E-1);\r
+-#3222=CIRCLE('',#3221,7.5E-1);\r
+-#3247=CIRCLE('',#3246,7.5E-1);\r
+-#3256=CIRCLE('',#3255,7.5E-1);\r
+-#3281=CIRCLE('',#3280,7.5E-1);\r
+-#3290=CIRCLE('',#3289,7.5E-1);\r
+-#3299=CIRCLE('',#3298,7.5E-1);\r
+-#3308=CIRCLE('',#3307,7.5E-1);\r
+-#3317=CIRCLE('',#3316,7.5E-1);\r
+-#3326=CIRCLE('',#3325,7.5E-1);\r
+-#3351=CIRCLE('',#3350,5.625E-1);\r
+-#3360=CIRCLE('',#3359,5.625E-1);\r
+-#3365=CIRCLE('',#3364,9.225E-1);\r
+-#3370=CIRCLE('',#3369,5.6875E0);\r
+-#3375=CIRCLE('',#3374,8.669989027347E-1);\r
+-#3388=CIRCLE('',#3387,7.5E-1);\r
+-#3397=CIRCLE('',#3396,7.5E-1);\r
+-#3418=CIRCLE('',#3417,8.75E-1);\r
+-#3427=CIRCLE('',#3426,8.75E-1);\r
+-#3440=CIRCLE('',#3439,5.6125E-1);\r
+-#3469=CIRCLE('',#3468,8.75E-1);\r
+-#3478=CIRCLE('',#3477,8.75E-1);\r
+-#3495=CIRCLE('',#3494,8.75E-1);\r
+-#3504=CIRCLE('',#3503,8.75E-1);\r
+-#3513=CIRCLE('',#3512,8.75E-1);\r
+-#3522=CIRCLE('',#3521,8.75E-1);\r
+-#3531=CIRCLE('',#3530,8.75E-1);\r
+-#3540=CIRCLE('',#3539,8.75E-1);\r
+-#3549=CIRCLE('',#3548,8.75E-1);\r
+-#3558=CIRCLE('',#3557,8.75E-1);\r
+-#3583=CIRCLE('',#3582,5.625E-1);\r
+-#3592=CIRCLE('',#3591,5.625E-1);\r
+-#3617=CIRCLE('',#3616,5.625E-1);\r
+-#3626=CIRCLE('',#3625,5.625E-1);\r
+-#3651=CIRCLE('',#3650,5.E-1);\r
+-#3660=CIRCLE('',#3659,5.E-1);\r
+-#3685=CIRCLE('',#3684,4.375E-1);\r
+-#3694=CIRCLE('',#3693,4.375E-1);\r
+-#3719=CIRCLE('',#3718,5.625E-1);\r
+-#3728=CIRCLE('',#3727,5.625E-1);\r
+-#3737=CIRCLE('',#3736,8.669989027347E-1);\r
+-#3742=CIRCLE('',#3741,5.6875E0);\r
+-#3747=CIRCLE('',#3746,9.225E-1);\r
+-#3756=CIRCLE('',#3755,7.5E-1);\r
+-#3765=CIRCLE('',#3764,7.5E-1);\r
+-#3802=CIRCLE('',#3801,5.625E-1);\r
+-#3811=CIRCLE('',#3810,5.625E-1);\r
+-#3820=CIRCLE('',#3819,8.669989027347E-1);\r
+-#3825=CIRCLE('',#3824,5.6875E0);\r
+-#3830=CIRCLE('',#3829,9.225E-1);\r
+-#3839=CIRCLE('',#3838,7.5E-1);\r
+-#3848=CIRCLE('',#3847,7.5E-1);\r
+-#3885=CIRCLE('',#3884,5.625E-1);\r
+-#3894=CIRCLE('',#3893,5.625E-1);\r
+-#3919=CIRCLE('',#3918,5.625E-1);\r
+-#3928=CIRCLE('',#3927,5.625E-1);\r
+-#3953=CIRCLE('',#3952,5.E-1);\r
+-#3962=CIRCLE('',#3961,5.E-1);\r
+-#3987=CIRCLE('',#3986,4.375E-1);\r
+-#3996=CIRCLE('',#3995,4.375E-1);\r
+-#4021=CIRCLE('',#4020,5.625E-1);\r
+-#4030=CIRCLE('',#4029,5.625E-1);\r
+-#4035=CIRCLE('',#4034,9.225E-1);\r
+-#4040=CIRCLE('',#4039,5.6875E0);\r
+-#4045=CIRCLE('',#4044,8.669989027347E-1);\r
+-#4058=CIRCLE('',#4057,7.5E-1);\r
+-#4067=CIRCLE('',#4066,7.5E-1);\r
+-#4088=CIRCLE('',#4087,8.8E-1);\r
+-#4097=CIRCLE('',#4096,8.8E-1);\r
+-#4106=CIRCLE('',#4105,8.8E-1);\r
+-#4115=CIRCLE('',#4114,8.8E-1);\r
+-#4124=CIRCLE('',#4123,8.8E-1);\r
+-#4133=CIRCLE('',#4132,8.8E-1);\r
+-#4142=CIRCLE('',#4141,8.8E-1);\r
+-#4151=CIRCLE('',#4150,8.8E-1);\r
+-#4160=CIRCLE('',#4159,8.8E-1);\r
+-#4169=CIRCLE('',#4168,8.8E-1);\r
+-#4178=CIRCLE('',#4177,8.8E-1);\r
+-#4187=CIRCLE('',#4186,8.8E-1);\r
+-#4208=CIRCLE('',#4207,5.6125E-1);\r
+-#5494=EDGE_CURVE('',#4423,#4400,#132,.T.);\r
+-#5496=EDGE_CURVE('',#4419,#4423,#1597,.T.);\r
+-#5498=EDGE_CURVE('',#4419,#4243,#136,.T.);\r
+-#5500=EDGE_CURVE('',#4239,#4243,#1614,.T.);\r
+-#5502=EDGE_CURVE('',#4239,#4259,#140,.T.);\r
+-#5504=EDGE_CURVE('',#4255,#4259,#1630,.T.);\r
+-#5506=EDGE_CURVE('',#4255,#4320,#144,.T.);\r
+-#5508=EDGE_CURVE('',#4324,#4320,#1376,.T.);\r
+-#5510=EDGE_CURVE('',#4324,#4300,#148,.T.);\r
+-#5512=EDGE_CURVE('',#4300,#4347,#152,.T.);\r
+-#5514=EDGE_CURVE('',#4343,#4347,#1912,.T.);\r
+-#5516=EDGE_CURVE('',#4343,#4315,#156,.T.);\r
+-#5518=EDGE_CURVE('',#4311,#4315,#1385,.T.);\r
+-#5520=EDGE_CURVE('',#4311,#4251,#160,.T.);\r
+-#5522=EDGE_CURVE('',#4247,#4251,#1580,.T.);\r
+-#5524=EDGE_CURVE('',#4247,#4235,#164,.T.);\r
+-#5526=EDGE_CURVE('',#4231,#4235,#1564,.T.);\r
+-#5528=EDGE_CURVE('',#4231,#4404,#168,.T.);\r
+-#5530=EDGE_CURVE('',#4408,#4404,#1556,.T.);\r
+-#5532=EDGE_CURVE('',#4444,#4408,#172,.T.);\r
+-#5534=EDGE_CURVE('',#4444,#4448,#1654,.T.);\r
+-#5536=EDGE_CURVE('',#4400,#4448,#176,.T.);\r
+-#5540=EDGE_CURVE('',#4427,#4328,#4,.T.);\r
+-#5542=EDGE_CURVE('',#4332,#4328,#1358,.T.);\r
+-#5544=EDGE_CURVE('',#4264,#4332,#1340,.T.);\r
+-#5546=EDGE_CURVE('',#4268,#4264,#8,.T.);\r
+-#5548=EDGE_CURVE('',#4431,#4268,#1317,.T.);\r
+-#5550=EDGE_CURVE('',#4427,#4431,#1303,.T.);\r
+-#5554=EDGE_CURVE('',#4639,#4640,#13,.T.);\r
+-#5556=EDGE_CURVE('',#4640,#4639,#18,.T.);\r
+-#5560=EDGE_CURVE('',#4635,#4636,#23,.T.);\r
+-#5562=EDGE_CURVE('',#4636,#4635,#28,.T.);\r
+-#5566=EDGE_CURVE('',#4631,#4632,#33,.T.);\r
+-#5568=EDGE_CURVE('',#4632,#4631,#38,.T.);\r
+-#5572=EDGE_CURVE('',#4627,#4628,#43,.T.);\r
+-#5574=EDGE_CURVE('',#4628,#4627,#48,.T.);\r
+-#5578=EDGE_CURVE('',#4623,#4624,#53,.T.);\r
+-#5580=EDGE_CURVE('',#4624,#4623,#58,.T.);\r
+-#5584=EDGE_CURVE('',#4527,#4528,#63,.T.);\r
+-#5586=EDGE_CURVE('',#4528,#4527,#68,.T.);\r
+-#5590=EDGE_CURVE('',#4523,#4524,#73,.T.);\r
+-#5592=EDGE_CURVE('',#4524,#4523,#78,.T.);\r
+-#5596=EDGE_CURVE('',#4519,#4520,#83,.T.);\r
+-#5598=EDGE_CURVE('',#4520,#4519,#88,.T.);\r
+-#5602=EDGE_CURVE('',#4515,#4516,#93,.T.);\r
+-#5604=EDGE_CURVE('',#4516,#4515,#98,.T.);\r
+-#5608=EDGE_CURVE('',#4511,#4512,#103,.T.);\r
+-#5610=EDGE_CURVE('',#4512,#4511,#108,.T.);\r
+-#5614=EDGE_CURVE('',#4507,#4508,#113,.T.);\r
+-#5616=EDGE_CURVE('',#4508,#4507,#118,.T.);\r
+-#5620=EDGE_CURVE('',#4503,#4504,#123,.T.);\r
+-#5622=EDGE_CURVE('',#4504,#4503,#128,.T.);\r
+-#5626=EDGE_CURVE('',#4487,#4488,#181,.T.);\r
+-#5628=EDGE_CURVE('',#4488,#4487,#186,.T.);\r
+-#5632=EDGE_CURVE('',#4607,#4608,#191,.T.);\r
+-#5634=EDGE_CURVE('',#4608,#4607,#196,.T.);\r
+-#5638=EDGE_CURVE('',#4796,#4803,#200,.T.);\r
+-#5640=EDGE_CURVE('',#4799,#4803,#1439,.T.);\r
+-#5642=EDGE_CURVE('',#4280,#4799,#204,.T.);\r
+-#5644=EDGE_CURVE('',#4284,#4280,#1466,.T.);\r
+-#5646=EDGE_CURVE('',#4272,#4284,#208,.T.);\r
+-#5648=EDGE_CURVE('',#4276,#4272,#1484,.T.);\r
+-#5650=EDGE_CURVE('',#4792,#4276,#212,.T.);\r
+-#5652=EDGE_CURVE('',#4796,#4792,#1430,.T.);\r
+-#5656=EDGE_CURVE('',#4808,#4411,#216,.T.);\r
+-#5658=EDGE_CURVE('',#4812,#4808,#1502,.T.);\r
+-#5660=EDGE_CURVE('',#4812,#4819,#220,.T.);\r
+-#5662=EDGE_CURVE('',#4815,#4819,#1511,.T.);\r
+-#5664=EDGE_CURVE('',#4304,#4815,#224,.T.);\r
+-#5666=EDGE_CURVE('',#4308,#4304,#1412,.T.);\r
+-#5668=EDGE_CURVE('',#4308,#4339,#228,.T.);\r
+-#5670=EDGE_CURVE('',#4335,#4339,#1754,.T.);\r
+-#5672=EDGE_CURVE('',#4335,#4772,#232,.T.);\r
+-#5674=EDGE_CURVE('',#4776,#4772,#1738,.T.);\r
+-#5676=EDGE_CURVE('',#4776,#4783,#236,.T.);\r
+-#5678=EDGE_CURVE('',#4779,#4783,#1707,.T.);\r
+-#5680=EDGE_CURVE('',#4436,#4779,#240,.T.);\r
+-#5682=EDGE_CURVE('',#4436,#4440,#2132,.T.);\r
+-#5684=EDGE_CURVE('',#4415,#4440,#244,.T.);\r
+-#5686=EDGE_CURVE('',#4411,#4415,#1529,.T.);\r
+-#5690=EDGE_CURVE('',#4823,#4824,#249,.T.);\r
+-#5692=EDGE_CURVE('',#4824,#4823,#254,.T.);\r
+-#5696=EDGE_CURVE('',#4839,#4840,#259,.T.);\r
+-#5698=EDGE_CURVE('',#4840,#4839,#264,.T.);\r
+-#5702=EDGE_CURVE('',#4843,#4844,#269,.T.);\r
+-#5704=EDGE_CURVE('',#4844,#4843,#274,.T.);\r
+-#5708=EDGE_CURVE('',#4847,#4848,#279,.T.);\r
+-#5710=EDGE_CURVE('',#4848,#4847,#284,.T.);\r
+-#5714=EDGE_CURVE('',#4851,#4852,#289,.T.);\r
+-#5716=EDGE_CURVE('',#4852,#4851,#294,.T.);\r
+-#5720=EDGE_CURVE('',#4855,#4856,#299,.T.);\r
+-#5722=EDGE_CURVE('',#4856,#4855,#304,.T.);\r
+-#5726=EDGE_CURVE('',#5121,#5122,#308,.T.);\r
+-#5728=EDGE_CURVE('',#5122,#5124,#313,.T.);\r
+-#5730=EDGE_CURVE('',#5124,#5126,#317,.T.);\r
+-#5732=EDGE_CURVE('',#5126,#5121,#322,.T.);\r
+-#5736=EDGE_CURVE('',#5132,#5139,#327,.T.);\r
+-#5738=EDGE_CURVE('',#5135,#5139,#3388,.T.);\r
+-#5740=EDGE_CURVE('',#5135,#5129,#331,.T.);\r
+-#5742=EDGE_CURVE('',#5129,#5130,#336,.T.);\r
+-#5744=EDGE_CURVE('',#5132,#5130,#341,.T.);\r
+-#5748=EDGE_CURVE('',#5184,#5186,#3418,.T.);\r
+-#5750=EDGE_CURVE('',#5184,#5147,#345,.T.);\r
+-#5752=EDGE_CURVE('',#5147,#5148,#350,.T.);\r
+-#5754=EDGE_CURVE('',#5148,#5194,#354,.T.);\r
+-#5756=EDGE_CURVE('',#5192,#5194,#3469,.T.);\r
+-#5758=EDGE_CURVE('',#5192,#5171,#358,.T.);\r
+-#5760=EDGE_CURVE('',#5167,#5171,#3495,.T.);\r
+-#5762=EDGE_CURVE('',#5167,#5179,#362,.T.);\r
+-#5764=EDGE_CURVE('',#5175,#5179,#3513,.T.);\r
+-#5766=EDGE_CURVE('',#5175,#5155,#366,.T.);\r
+-#5768=EDGE_CURVE('',#5151,#5155,#3531,.T.);\r
+-#5770=EDGE_CURVE('',#5151,#5163,#370,.T.);\r
+-#5772=EDGE_CURVE('',#5159,#5163,#3549,.T.);\r
+-#5774=EDGE_CURVE('',#5159,#5186,#374,.T.);\r
+-#5778=EDGE_CURVE('',#5207,#5208,#378,.T.);\r
+-#5780=EDGE_CURVE('',#5208,#5210,#383,.T.);\r
+-#5782=EDGE_CURVE('',#5210,#5212,#387,.T.);\r
+-#5784=EDGE_CURVE('',#5212,#5207,#392,.T.);\r
+-#5788=EDGE_CURVE('',#5223,#5224,#396,.T.);\r
+-#5790=EDGE_CURVE('',#5224,#5226,#401,.T.);\r
+-#5792=EDGE_CURVE('',#5226,#5228,#405,.T.);\r
+-#5794=EDGE_CURVE('',#5228,#5223,#410,.T.);\r
+-#5798=EDGE_CURVE('',#5239,#5240,#414,.T.);\r
+-#5800=EDGE_CURVE('',#5240,#5242,#419,.T.);\r
+-#5802=EDGE_CURVE('',#5242,#5244,#423,.T.);\r
+-#5804=EDGE_CURVE('',#5244,#5239,#428,.T.);\r
+-#5808=EDGE_CURVE('',#5255,#5256,#432,.T.);\r
+-#5810=EDGE_CURVE('',#5256,#5258,#437,.T.);\r
+-#5812=EDGE_CURVE('',#5258,#5260,#441,.T.);\r
+-#5814=EDGE_CURVE('',#5260,#5255,#446,.T.);\r
+-#5818=EDGE_CURVE('',#5277,#5278,#450,.T.);\r
+-#5820=EDGE_CURVE('',#5282,#5277,#455,.T.);\r
+-#5822=EDGE_CURVE('',#5280,#5282,#459,.T.);\r
+-#5824=EDGE_CURVE('',#5278,#5280,#464,.T.);\r
+-#5828=EDGE_CURVE('',#5305,#5306,#468,.T.);\r
+-#5830=EDGE_CURVE('',#5310,#5305,#473,.T.);\r
+-#5832=EDGE_CURVE('',#5308,#5310,#477,.T.);\r
+-#5834=EDGE_CURVE('',#5306,#5308,#482,.T.);\r
+-#5838=EDGE_CURVE('',#5335,#5336,#486,.T.);\r
+-#5840=EDGE_CURVE('',#5340,#5335,#491,.T.);\r
+-#5842=EDGE_CURVE('',#5338,#5340,#495,.T.);\r
+-#5844=EDGE_CURVE('',#5336,#5338,#500,.T.);\r
+-#5848=EDGE_CURVE('',#5351,#5352,#504,.T.);\r
+-#5850=EDGE_CURVE('',#5356,#5351,#509,.T.);\r
+-#5852=EDGE_CURVE('',#5354,#5356,#513,.T.);\r
+-#5854=EDGE_CURVE('',#5352,#5354,#518,.T.);\r
+-#5858=EDGE_CURVE('',#5367,#5368,#522,.T.);\r
+-#5860=EDGE_CURVE('',#5372,#5367,#527,.T.);\r
+-#5862=EDGE_CURVE('',#5370,#5372,#531,.T.);\r
+-#5864=EDGE_CURVE('',#5368,#5370,#536,.T.);\r
+-#5868=EDGE_CURVE('',#5383,#5384,#540,.T.);\r
+-#5870=EDGE_CURVE('',#5388,#5383,#545,.T.);\r
+-#5872=EDGE_CURVE('',#5386,#5388,#549,.T.);\r
+-#5874=EDGE_CURVE('',#5384,#5386,#554,.T.);\r
+-#5878=EDGE_CURVE('',#5405,#5406,#558,.T.);\r
+-#5880=EDGE_CURVE('',#5406,#5408,#563,.T.);\r
+-#5882=EDGE_CURVE('',#5408,#5410,#567,.T.);\r
+-#5884=EDGE_CURVE('',#5410,#5405,#572,.T.);\r
+-#5888=EDGE_CURVE('',#5455,#5451,#4097,.T.);\r
+-#5890=EDGE_CURVE('',#5324,#5455,#576,.T.);\r
+-#5892=EDGE_CURVE('',#5323,#5324,#581,.T.);\r
+-#5894=EDGE_CURVE('',#5459,#5323,#585,.T.);\r
+-#5896=EDGE_CURVE('',#5463,#5459,#4187,.T.);\r
+-#5898=EDGE_CURVE('',#5436,#5463,#589,.T.);\r
+-#5900=EDGE_CURVE('',#5440,#5436,#4169,.T.);\r
+-#5902=EDGE_CURVE('',#5444,#5440,#593,.T.);\r
+-#5904=EDGE_CURVE('',#5448,#5444,#4151,.T.);\r
+-#5906=EDGE_CURVE('',#5428,#5448,#597,.T.);\r
+-#5908=EDGE_CURVE('',#5432,#5428,#4133,.T.);\r
+-#5910=EDGE_CURVE('',#5420,#5432,#601,.T.);\r
+-#5912=EDGE_CURVE('',#5424,#5420,#4115,.T.);\r
+-#5914=EDGE_CURVE('',#5451,#5424,#605,.T.);\r
+-#5918=EDGE_CURVE('',#5471,#5313,#609,.T.);\r
+-#5920=EDGE_CURVE('',#5467,#5471,#3839,.T.);\r
+-#5922=EDGE_CURVE('',#5316,#5467,#614,.T.);\r
+-#5924=EDGE_CURVE('',#5316,#5314,#619,.T.);\r
+-#5926=EDGE_CURVE('',#5313,#5314,#624,.T.);\r
+-#5930=EDGE_CURVE('',#5479,#5285,#628,.T.);\r
+-#5932=EDGE_CURVE('',#5475,#5479,#3756,.T.);\r
+-#5934=EDGE_CURVE('',#5288,#5475,#633,.T.);\r
+-#5936=EDGE_CURVE('',#5288,#5286,#638,.T.);\r
+-#5938=EDGE_CURVE('',#5285,#5286,#643,.T.);\r
+-#5942=EDGE_CURVE('',#5416,#5487,#648,.T.);\r
+-#5944=EDGE_CURVE('',#5483,#5487,#4058,.T.);\r
+-#5946=EDGE_CURVE('',#5483,#5413,#652,.T.);\r
+-#5948=EDGE_CURVE('',#5413,#5414,#657,.T.);\r
+-#5950=EDGE_CURVE('',#5416,#5414,#662,.T.);\r
+-#5961=EDGE_CURVE('',#4427,#4428,#1298,.T.);\r
+-#5963=EDGE_CURVE('',#4424,#4428,#906,.T.);\r
+-#5965=EDGE_CURVE('',#4423,#4424,#1601,.T.);\r
+-#5968=EDGE_CURVE('',#4390,#4400,#1658,.T.);\r
+-#5970=EDGE_CURVE('',#4387,#4390,#746,.T.);\r
+-#5972=EDGE_CURVE('',#4387,#4388,#750,.T.);\r
+-#5974=EDGE_CURVE('',#4768,#4388,#1698,.T.);\r
+-#5976=EDGE_CURVE('',#4767,#4768,#1230,.T.);\r
+-#5978=EDGE_CURVE('',#4287,#4767,#1746,.T.);\r
+-#5980=EDGE_CURVE('',#4287,#4288,#754,.T.);\r
+-#5982=EDGE_CURVE('',#4288,#4290,#758,.T.);\r
+-#5984=EDGE_CURVE('',#4300,#4290,#1900,.T.);\r
+-#5987=EDGE_CURVE('',#4323,#4324,#1371,.T.);\r
+-#5989=EDGE_CURVE('',#4327,#4323,#914,.T.);\r
+-#5991=EDGE_CURVE('',#4327,#4328,#1344,.T.);\r
+-#5995=EDGE_CURVE('',#4747,#4748,#667,.T.);\r
+-#5997=EDGE_CURVE('',#4748,#4747,#672,.T.);\r
+-#6001=EDGE_CURVE('',#4735,#4736,#677,.T.);\r
+-#6003=EDGE_CURVE('',#4736,#4735,#682,.T.);\r
+-#6007=EDGE_CURVE('',#4755,#4756,#687,.T.);\r
+-#6009=EDGE_CURVE('',#4756,#4755,#692,.T.);\r
+-#6013=EDGE_CURVE('',#4763,#4764,#697,.T.);\r
+-#6015=EDGE_CURVE('',#4764,#4763,#702,.T.);\r
+-#6019=EDGE_CURVE('',#4731,#4732,#707,.T.);\r
+-#6021=EDGE_CURVE('',#4732,#4731,#712,.T.);\r
+-#6025=EDGE_CURVE('',#4723,#4724,#717,.T.);\r
+-#6027=EDGE_CURVE('',#4724,#4723,#722,.T.);\r
+-#6031=EDGE_CURVE('',#4703,#4704,#727,.T.);\r
+-#6033=EDGE_CURVE('',#4704,#4703,#732,.T.);\r
+-#6037=EDGE_CURVE('',#4715,#4716,#737,.T.);\r
+-#6039=EDGE_CURVE('',#4716,#4715,#742,.T.);\r
+-#6043=EDGE_CURVE('',#4947,#4959,#762,.T.);\r
+-#6045=EDGE_CURVE('',#4955,#4959,#3213,.T.);\r
+-#6047=EDGE_CURVE('',#4955,#4967,#766,.T.);\r
+-#6049=EDGE_CURVE('',#4963,#4967,#3195,.T.);\r
+-#6051=EDGE_CURVE('',#4963,#4975,#770,.T.);\r
+-#6053=EDGE_CURVE('',#4971,#4975,#3177,.T.);\r
+-#6055=EDGE_CURVE('',#4971,#4951,#774,.T.);\r
+-#6057=EDGE_CURVE('',#4947,#4951,#3159,.T.);\r
+-#6061=EDGE_CURVE('',#5036,#5048,#778,.T.);\r
+-#6063=EDGE_CURVE('',#5040,#5036,#3256,.T.);\r
+-#6065=EDGE_CURVE('',#5028,#5040,#782,.T.);\r
+-#6067=EDGE_CURVE('',#5032,#5028,#3290,.T.);\r
+-#6069=EDGE_CURVE('',#5052,#5032,#786,.T.);\r
+-#6071=EDGE_CURVE('',#5056,#5052,#3308,.T.);\r
+-#6073=EDGE_CURVE('',#5044,#5056,#790,.T.);\r
+-#6075=EDGE_CURVE('',#5048,#5044,#3326,.T.);\r
+-#6086=EDGE_CURVE('',#4747,#4743,#794,.T.);\r
+-#6088=EDGE_CURVE('',#4743,#4744,#803,.T.);\r
+-#6090=EDGE_CURVE('',#4748,#4744,#798,.T.);\r
+-#6102=EDGE_CURVE('',#4744,#4743,#808,.T.);\r
+-#6124=EDGE_CURVE('',#4735,#4739,#812,.T.);\r
+-#6126=EDGE_CURVE('',#4739,#4740,#821,.T.);\r
+-#6128=EDGE_CURVE('',#4736,#4740,#816,.T.);\r
+-#6140=EDGE_CURVE('',#4740,#4739,#826,.T.);\r
+-#6151=EDGE_CURVE('',#4934,#4940,#830,.T.);\r
+-#6153=EDGE_CURVE('',#4940,#4942,#834,.T.);\r
+-#6155=EDGE_CURVE('',#4938,#4942,#838,.T.);\r
+-#6157=EDGE_CURVE('',#4788,#4938,#1234,.T.);\r
+-#6159=EDGE_CURVE('',#4788,#4393,#842,.T.);\r
+-#6161=EDGE_CURVE('',#4393,#4394,#846,.T.);\r
+-#6163=EDGE_CURVE('',#4394,#4396,#850,.T.);\r
+-#6165=EDGE_CURVE('',#4396,#4398,#854,.T.);\r
+-#6167=EDGE_CURVE('',#4934,#4398,#1178,.T.);\r
+-#6175=EDGE_CURVE('',#5103,#5099,#2946,.T.);\r
+-#6177=EDGE_CURVE('',#5076,#5103,#858,.T.);\r
+-#6179=EDGE_CURVE('',#5080,#5076,#3036,.T.);\r
+-#6181=EDGE_CURVE('',#5084,#5080,#862,.T.);\r
+-#6183=EDGE_CURVE('',#5088,#5084,#3018,.T.);\r
+-#6185=EDGE_CURVE('',#5092,#5088,#866,.T.);\r
+-#6187=EDGE_CURVE('',#5096,#5092,#3000,.T.);\r
+-#6189=EDGE_CURVE('',#5068,#5096,#870,.T.);\r
+-#6191=EDGE_CURVE('',#5072,#5068,#2982,.T.);\r
+-#6193=EDGE_CURVE('',#5060,#5072,#874,.T.);\r
+-#6195=EDGE_CURVE('',#5064,#5060,#2964,.T.);\r
+-#6197=EDGE_CURVE('',#5099,#5064,#878,.T.);\r
+-#6207=EDGE_CURVE('',#4933,#4934,#1174,.T.);\r
+-#6209=EDGE_CURVE('',#4940,#4933,#882,.T.);\r
+-#6221=EDGE_CURVE('',#4432,#4428,#1312,.T.);\r
+-#6223=EDGE_CURVE('',#4267,#4432,#1326,.T.);\r
+-#6225=EDGE_CURVE('',#4267,#4263,#910,.T.);\r
+-#6227=EDGE_CURVE('',#4331,#4263,#1331,.T.);\r
+-#6229=EDGE_CURVE('',#4327,#4331,#1349,.T.);\r
+-#6232=EDGE_CURVE('',#4319,#4323,#1367,.T.);\r
+-#6234=EDGE_CURVE('',#4256,#4319,#918,.T.);\r
+-#6236=EDGE_CURVE('',#4256,#4260,#1638,.T.);\r
+-#6238=EDGE_CURVE('',#4240,#4260,#922,.T.);\r
+-#6240=EDGE_CURVE('',#4240,#4244,#1622,.T.);\r
+-#6242=EDGE_CURVE('',#4420,#4244,#926,.T.);\r
+-#6244=EDGE_CURVE('',#4424,#4420,#1606,.T.);\r
+-#6248=EDGE_CURVE('',#4495,#4496,#951,.T.);\r
+-#6250=EDGE_CURVE('',#4496,#4495,#956,.T.);\r
+-#6254=EDGE_CURVE('',#4567,#4568,#981,.T.);\r
+-#6256=EDGE_CURVE('',#4568,#4567,#986,.T.);\r
+-#6260=EDGE_CURVE('',#4615,#4616,#1011,.T.);\r
+-#6262=EDGE_CURVE('',#4616,#4615,#1016,.T.);\r
+-#6266=EDGE_CURVE('',#4647,#4648,#1021,.T.);\r
+-#6268=EDGE_CURVE('',#4648,#4647,#1026,.T.);\r
+-#6272=EDGE_CURVE('',#4659,#4660,#1031,.T.);\r
+-#6274=EDGE_CURVE('',#4660,#4659,#1036,.T.);\r
+-#6286=EDGE_CURVE('',#4398,#4447,#1182,.T.);\r
+-#6288=EDGE_CURVE('',#4443,#4447,#1646,.T.);\r
+-#6290=EDGE_CURVE('',#4443,#4407,#1186,.T.);\r
+-#6292=EDGE_CURVE('',#4403,#4407,#1547,.T.);\r
+-#6294=EDGE_CURVE('',#4232,#4403,#1190,.T.);\r
+-#6296=EDGE_CURVE('',#4232,#4236,#1572,.T.);\r
+-#6298=EDGE_CURVE('',#4248,#4236,#1194,.T.);\r
+-#6300=EDGE_CURVE('',#4248,#4252,#1588,.T.);\r
+-#6302=EDGE_CURVE('',#4312,#4252,#1198,.T.);\r
+-#6304=EDGE_CURVE('',#4316,#4312,#1394,.T.);\r
+-#6306=EDGE_CURVE('',#4344,#4316,#1202,.T.);\r
+-#6308=EDGE_CURVE('',#4344,#4348,#1920,.T.);\r
+-#6310=EDGE_CURVE('',#4298,#4348,#1206,.T.);\r
+-#6312=EDGE_CURVE('',#4298,#4920,#1210,.T.);\r
+-#6314=EDGE_CURVE('',#4919,#4920,#1214,.T.);\r
+-#6316=EDGE_CURVE('',#4919,#4923,#1218,.T.);\r
+-#6318=EDGE_CURVE('',#4923,#4924,#1222,.T.);\r
+-#6320=EDGE_CURVE('',#4924,#4786,#1226,.T.);\r
+-#6322=EDGE_CURVE('',#4767,#4786,#1742,.T.);\r
+-#6325=EDGE_CURVE('',#4768,#4788,#1694,.T.);\r
+-#6328=EDGE_CURVE('',#4937,#4938,#1238,.T.);\r
+-#6330=EDGE_CURVE('',#4933,#4937,#1242,.T.);\r
+-#6334=EDGE_CURVE('',#4373,#4374,#887,.T.);\r
+-#6336=EDGE_CURVE('',#4374,#4373,#892,.T.);\r
+-#6340=EDGE_CURVE('',#4383,#4384,#897,.T.);\r
+-#6342=EDGE_CURVE('',#4384,#4383,#902,.T.);\r
+-#6346=EDGE_CURVE('',#4473,#4474,#931,.T.);\r
+-#6348=EDGE_CURVE('',#4474,#4473,#936,.T.);\r
+-#6352=EDGE_CURVE('',#4483,#4484,#941,.T.);\r
+-#6354=EDGE_CURVE('',#4484,#4483,#946,.T.);\r
+-#6358=EDGE_CURVE('',#4543,#4544,#961,.T.);\r
+-#6360=EDGE_CURVE('',#4544,#4543,#966,.T.);\r
+-#6364=EDGE_CURVE('',#4555,#4556,#971,.T.);\r
+-#6366=EDGE_CURVE('',#4556,#4555,#976,.T.);\r
+-#6370=EDGE_CURVE('',#4587,#4588,#991,.T.);\r
+-#6372=EDGE_CURVE('',#4588,#4587,#996,.T.);\r
+-#6376=EDGE_CURVE('',#4599,#4600,#1001,.T.);\r
+-#6378=EDGE_CURVE('',#4600,#4599,#1006,.T.);\r
+-#6382=EDGE_CURVE('',#4671,#4672,#1041,.T.);\r
+-#6384=EDGE_CURVE('',#4672,#4671,#1046,.T.);\r
+-#6388=EDGE_CURVE('',#4683,#4684,#1051,.T.);\r
+-#6390=EDGE_CURVE('',#4684,#4683,#1056,.T.);\r
+-#6394=EDGE_CURVE('',#4695,#4696,#1061,.T.);\r
+-#6396=EDGE_CURVE('',#4696,#4695,#1066,.T.);\r
+-#6400=EDGE_CURVE('',#4279,#4800,#1070,.T.);\r
+-#6402=EDGE_CURVE('',#4804,#4800,#1448,.T.);\r
+-#6404=EDGE_CURVE('',#4795,#4804,#1074,.T.);\r
+-#6406=EDGE_CURVE('',#4791,#4795,#1421,.T.);\r
+-#6408=EDGE_CURVE('',#4791,#4275,#1078,.T.);\r
+-#6410=EDGE_CURVE('',#4271,#4275,#1475,.T.);\r
+-#6412=EDGE_CURVE('',#4271,#4283,#1082,.T.);\r
+-#6414=EDGE_CURVE('',#4279,#4283,#1457,.T.);\r
+-#6418=EDGE_CURVE('',#4811,#4820,#1086,.T.);\r
+-#6420=EDGE_CURVE('',#4807,#4811,#1493,.T.);\r
+-#6422=EDGE_CURVE('',#4807,#4412,#1090,.T.);\r
+-#6424=EDGE_CURVE('',#4416,#4412,#1538,.T.);\r
+-#6426=EDGE_CURVE('',#4416,#4439,#1094,.T.);\r
+-#6428=EDGE_CURVE('',#4435,#4439,#2124,.T.);\r
+-#6430=EDGE_CURVE('',#4435,#4780,#1098,.T.);\r
+-#6432=EDGE_CURVE('',#4784,#4780,#1716,.T.);\r
+-#6434=EDGE_CURVE('',#4775,#4784,#1720,.T.);\r
+-#6436=EDGE_CURVE('',#4771,#4775,#1729,.T.);\r
+-#6438=EDGE_CURVE('',#4336,#4771,#1102,.T.);\r
+-#6440=EDGE_CURVE('',#4336,#4340,#1762,.T.);\r
+-#6442=EDGE_CURVE('',#4307,#4340,#1106,.T.);\r
+-#6444=EDGE_CURVE('',#4303,#4307,#1403,.T.);\r
+-#6446=EDGE_CURVE('',#4303,#4816,#1110,.T.);\r
+-#6448=EDGE_CURVE('',#4820,#4816,#1520,.T.);\r
+-#6452=EDGE_CURVE('',#4831,#4832,#1115,.T.);\r
+-#6454=EDGE_CURVE('',#4832,#4831,#1120,.T.);\r
+-#6458=EDGE_CURVE('',#4863,#4864,#1125,.T.);\r
+-#6460=EDGE_CURVE('',#4864,#4863,#1130,.T.);\r
+-#6464=EDGE_CURVE('',#4875,#4876,#1135,.T.);\r
+-#6466=EDGE_CURVE('',#4876,#4875,#1140,.T.);\r
+-#6470=EDGE_CURVE('',#4887,#4888,#1145,.T.);\r
+-#6472=EDGE_CURVE('',#4888,#4887,#1150,.T.);\r
+-#6476=EDGE_CURVE('',#4899,#4900,#1155,.T.);\r
+-#6478=EDGE_CURVE('',#4900,#4899,#1160,.T.);\r
+-#6482=EDGE_CURVE('',#4911,#4912,#1165,.T.);\r
+-#6484=EDGE_CURVE('',#4912,#4911,#1170,.T.);\r
+-#6495=EDGE_CURVE('',#4368,#4374,#1250,.T.);\r
+-#6497=EDGE_CURVE('',#4370,#4368,#1268,.T.);\r
+-#6499=EDGE_CURVE('',#4370,#4373,#1246,.T.);\r
+-#6511=EDGE_CURVE('',#4370,#4368,#1259,.T.);\r
+-#6522=EDGE_CURVE('',#4367,#4368,#1254,.T.);\r
+-#6525=EDGE_CURVE('',#4367,#4370,#1263,.T.);\r
+-#6547=EDGE_CURVE('',#4378,#4384,#1276,.T.);\r
+-#6549=EDGE_CURVE('',#4380,#4378,#1294,.T.);\r
+-#6551=EDGE_CURVE('',#4380,#4383,#1272,.T.);\r
+-#6563=EDGE_CURVE('',#4380,#4378,#1285,.T.);\r
+-#6574=EDGE_CURVE('',#4377,#4378,#1280,.T.);\r
+-#6577=EDGE_CURVE('',#4377,#4380,#1289,.T.);\r
+-#6600=EDGE_CURVE('',#4431,#4432,#1307,.T.);\r
+-#6613=EDGE_CURVE('',#4267,#4268,#1321,.T.);\r
+-#6624=EDGE_CURVE('',#4263,#4264,#1335,.T.);\r
+-#6637=EDGE_CURVE('',#4331,#4332,#1353,.T.);\r
+-#6662=EDGE_CURVE('',#4319,#4320,#1362,.T.);\r
+-#6675=EDGE_CURVE('',#4311,#4312,#1380,.T.);\r
+-#6678=EDGE_CURVE('',#4251,#4252,#1584,.T.);\r
+-#6691=EDGE_CURVE('',#4255,#4256,#1626,.T.);\r
+-#6704=EDGE_CURVE('',#4315,#4316,#1389,.T.);\r
+-#6715=EDGE_CURVE('',#4307,#4308,#1407,.T.);\r
+-#6718=EDGE_CURVE('',#4339,#4340,#1758,.T.);\r
+-#6731=EDGE_CURVE('',#4343,#4344,#1908,.T.);\r
+-#6742=EDGE_CURVE('',#4303,#4304,#1398,.T.);\r
+-#6755=EDGE_CURVE('',#4791,#4792,#1416,.T.);\r
+-#6758=EDGE_CURVE('',#4275,#4276,#1479,.T.);\r
+-#6769=EDGE_CURVE('',#4815,#4816,#1506,.T.);\r
+-#6784=EDGE_CURVE('',#4795,#4796,#1425,.T.);\r
+-#6797=EDGE_CURVE('',#4803,#4804,#1443,.T.);\r
+-#6808=EDGE_CURVE('',#4799,#4800,#1434,.T.);\r
+-#6823=EDGE_CURVE('',#4279,#4280,#1452,.T.);\r
+-#6834=EDGE_CURVE('',#4807,#4808,#1488,.T.);\r
+-#6837=EDGE_CURVE('',#4411,#4412,#1524,.T.);\r
+-#6850=EDGE_CURVE('',#4283,#4284,#1461,.T.);\r
+-#6861=EDGE_CURVE('',#4271,#4272,#1470,.T.);\r
+-#6888=EDGE_CURVE('',#4811,#4812,#1497,.T.);\r
+-#6901=EDGE_CURVE('',#4819,#4820,#1515,.T.);\r
+-#6926=EDGE_CURVE('',#4415,#4416,#1533,.T.);\r
+-#6937=EDGE_CURVE('',#4407,#4408,#1551,.T.);\r
+-#6940=EDGE_CURVE('',#4443,#4444,#1642,.T.);\r
+-#6953=EDGE_CURVE('',#4439,#4440,#2128,.T.);\r
+-#6964=EDGE_CURVE('',#4403,#4404,#1542,.T.);\r
+-#6979=EDGE_CURVE('',#4231,#4232,#1560,.T.);\r
+-#6990=EDGE_CURVE('',#4419,#4420,#1592,.T.);\r
+-#6993=EDGE_CURVE('',#4243,#4244,#1618,.T.);\r
+-#7006=EDGE_CURVE('',#4235,#4236,#1568,.T.);\r
+-#7018=EDGE_CURVE('',#4247,#4248,#1576,.T.);\r
+-#7054=EDGE_CURVE('',#4239,#4240,#1610,.T.);\r
+-#7070=EDGE_CURVE('',#4259,#4260,#1634,.T.);\r
+-#7094=EDGE_CURVE('',#4447,#4448,#1650,.T.);\r
+-#7110=EDGE_CURVE('',#4390,#4396,#1662,.T.);\r
+-#7123=EDGE_CURVE('',#4387,#4394,#1666,.T.);\r
+-#7136=EDGE_CURVE('',#4388,#4393,#1670,.T.);\r
+-#7140=EDGE_CURVE('',#4455,#4456,#1675,.T.);\r
+-#7142=EDGE_CURVE('',#4456,#4455,#1680,.T.);\r
+-#7146=EDGE_CURVE('',#4463,#4464,#1685,.T.);\r
+-#7148=EDGE_CURVE('',#4464,#4463,#1690,.T.);\r
+-#7158=EDGE_CURVE('',#4779,#4780,#1702,.T.);\r
+-#7161=EDGE_CURVE('',#4435,#4436,#2120,.T.);\r
+-#7186=EDGE_CURVE('',#4783,#4784,#1711,.T.);\r
+-#7197=EDGE_CURVE('',#4775,#4776,#1733,.T.);\r
+-#7210=EDGE_CURVE('',#4771,#4772,#1724,.T.);\r
+-#7225=EDGE_CURVE('',#4335,#4336,#1750,.T.);\r
+-#7237=EDGE_CURVE('',#4786,#4293,#1792,.T.);\r
+-#7239=EDGE_CURVE('',#4287,#4293,#1928,.T.);\r
+-#7262=EDGE_CURVE('',#4920,#4926,#1776,.T.);\r
+-#7265=EDGE_CURVE('',#4296,#4298,#1780,.T.);\r
+-#7267=EDGE_CURVE('',#4294,#4296,#1784,.T.);\r
+-#7269=EDGE_CURVE('',#4293,#4294,#1788,.T.);\r
+-#7273=EDGE_CURVE('',#4924,#4928,#1796,.T.);\r
+-#7275=EDGE_CURVE('',#4926,#4928,#1800,.T.);\r
+-#7279=EDGE_CURVE('',#4707,#4708,#1767,.T.);\r
+-#7281=EDGE_CURVE('',#4708,#4707,#1772,.T.);\r
+-#7285=EDGE_CURVE('',#5020,#5022,#1993,.T.);\r
+-#7287=EDGE_CURVE('',#5020,#4983,#1804,.T.);\r
+-#7289=EDGE_CURVE('',#4979,#4983,#2107,.T.);\r
+-#7291=EDGE_CURVE('',#4979,#4991,#1808,.T.);\r
+-#7293=EDGE_CURVE('',#4987,#4991,#2089,.T.);\r
+-#7295=EDGE_CURVE('',#4987,#5015,#1812,.T.);\r
+-#7297=EDGE_CURVE('',#5011,#5015,#2071,.T.);\r
+-#7299=EDGE_CURVE('',#5011,#5007,#1816,.T.);\r
+-#7301=EDGE_CURVE('',#5003,#5007,#2053,.T.);\r
+-#7303=EDGE_CURVE('',#5003,#4999,#1820,.T.);\r
+-#7305=EDGE_CURVE('',#4995,#4999,#2035,.T.);\r
+-#7307=EDGE_CURVE('',#4995,#5022,#1824,.T.);\r
+-#7318=EDGE_CURVE('',#4704,#4708,#1832,.T.);\r
+-#7321=EDGE_CURVE('',#4703,#4707,#1828,.T.);\r
+-#7345=EDGE_CURVE('',#4926,#4919,#1836,.T.);\r
+-#7358=EDGE_CURVE('',#4928,#4923,#1860,.T.);\r
+-#7362=EDGE_CURVE('',#4929,#4930,#1846,.T.);\r
+-#7364=EDGE_CURVE('',#4930,#4929,#1856,.T.);\r
+-#7385=EDGE_CURVE('',#4930,#4531,#1868,.T.);\r
+-#7388=EDGE_CURVE('',#4532,#4929,#1864,.T.);\r
+-#7390=EDGE_CURVE('',#4531,#4532,#1873,.T.);\r
+-#7403=EDGE_CURVE('',#4532,#4531,#1878,.T.);\r
+-#7417=EDGE_CURVE('',#4535,#4536,#1883,.T.);\r
+-#7419=EDGE_CURVE('',#4536,#4535,#1888,.T.);\r
+-#7430=EDGE_CURVE('',#4536,#4504,#1896,.T.);\r
+-#7433=EDGE_CURVE('',#4535,#4503,#1892,.T.);\r
+-#7457=EDGE_CURVE('',#4347,#4348,#1916,.T.);\r
+-#7461=EDGE_CURVE('',#4290,#4296,#1904,.T.);\r
+-#7484=EDGE_CURVE('',#4288,#4294,#1924,.T.);\r
+-#7502=EDGE_CURVE('',#4355,#4356,#1933,.T.);\r
+-#7504=EDGE_CURVE('',#4356,#4355,#1938,.T.);\r
+-#7508=EDGE_CURVE('',#4363,#4364,#1943,.T.);\r
+-#7510=EDGE_CURVE('',#4364,#4363,#1948,.T.);\r
+-#7521=EDGE_CURVE('',#4356,#4352,#1956,.T.);\r
+-#7523=EDGE_CURVE('',#4351,#4352,#1961,.T.);\r
+-#7525=EDGE_CURVE('',#4355,#4351,#1952,.T.);\r
+-#7537=EDGE_CURVE('',#4352,#4351,#1966,.T.);\r
+-#7559=EDGE_CURVE('',#4364,#4360,#1974,.T.);\r
+-#7561=EDGE_CURVE('',#4359,#4360,#1979,.T.);\r
+-#7563=EDGE_CURVE('',#4363,#4359,#1970,.T.);\r
+-#7575=EDGE_CURVE('',#4360,#4359,#1984,.T.);\r
+-#7596=EDGE_CURVE('',#5019,#5020,#1988,.T.);\r
+-#7599=EDGE_CURVE('',#5024,#5022,#1997,.T.);\r
+-#7601=EDGE_CURVE('',#5024,#5019,#2002,.T.);\r
+-#7612=EDGE_CURVE('',#5019,#4984,#2006,.T.);\r
+-#7614=EDGE_CURVE('',#4983,#4984,#2111,.T.);\r
+-#7627=EDGE_CURVE('',#4996,#5024,#2010,.T.);\r
+-#7629=EDGE_CURVE('',#5000,#4996,#2044,.T.);\r
+-#7631=EDGE_CURVE('',#5004,#5000,#2014,.T.);\r
+-#7633=EDGE_CURVE('',#5008,#5004,#2062,.T.);\r
+-#7635=EDGE_CURVE('',#5012,#5008,#2018,.T.);\r
+-#7637=EDGE_CURVE('',#5016,#5012,#2080,.T.);\r
+-#7639=EDGE_CURVE('',#4988,#5016,#2022,.T.);\r
+-#7641=EDGE_CURVE('',#4992,#4988,#2098,.T.);\r
+-#7643=EDGE_CURVE('',#4980,#4992,#2026,.T.);\r
+-#7645=EDGE_CURVE('',#4984,#4980,#2116,.T.);\r
+-#7657=EDGE_CURVE('',#4995,#4996,#2030,.T.);\r
+-#7670=EDGE_CURVE('',#4999,#5000,#2039,.T.);\r
+-#7683=EDGE_CURVE('',#5003,#5004,#2048,.T.);\r
+-#7696=EDGE_CURVE('',#5007,#5008,#2057,.T.);\r
+-#7709=EDGE_CURVE('',#5011,#5012,#2066,.T.);\r
+-#7722=EDGE_CURVE('',#5015,#5016,#2075,.T.);\r
+-#7733=EDGE_CURVE('',#4987,#4988,#2084,.T.);\r
+-#7748=EDGE_CURVE('',#4991,#4992,#2093,.T.);\r
+-#7759=EDGE_CURVE('',#4979,#4980,#2102,.T.);\r
+-#7797=EDGE_CURVE('',#4455,#4451,#2136,.T.);\r
+-#7799=EDGE_CURVE('',#4451,#4452,#2145,.T.);\r
+-#7801=EDGE_CURVE('',#4456,#4452,#2140,.T.);\r
+-#7813=EDGE_CURVE('',#4452,#4451,#2150,.T.);\r
+-#7835=EDGE_CURVE('',#4463,#4459,#2154,.T.);\r
+-#7837=EDGE_CURVE('',#4459,#4460,#2163,.T.);\r
+-#7839=EDGE_CURVE('',#4464,#4460,#2158,.T.);\r
+-#7851=EDGE_CURVE('',#4460,#4459,#2168,.T.);\r
+-#7873=EDGE_CURVE('',#4470,#4473,#2176,.T.);\r
+-#7875=EDGE_CURVE('',#4470,#4468,#2194,.T.);\r
+-#7877=EDGE_CURVE('',#4468,#4474,#2172,.T.);\r
+-#7889=EDGE_CURVE('',#4470,#4468,#2189,.T.);\r
+-#7900=EDGE_CURVE('',#4467,#4468,#2180,.T.);\r
+-#7902=EDGE_CURVE('',#4467,#4470,#2184,.T.);\r
+-#7925=EDGE_CURVE('',#4480,#4483,#2202,.T.);\r
+-#7927=EDGE_CURVE('',#4480,#4478,#2220,.T.);\r
+-#7929=EDGE_CURVE('',#4478,#4484,#2198,.T.);\r
+-#7941=EDGE_CURVE('',#4480,#4478,#2215,.T.);\r
+-#7952=EDGE_CURVE('',#4477,#4478,#2206,.T.);\r
+-#7954=EDGE_CURVE('',#4477,#4480,#2210,.T.);\r
+-#7977=EDGE_CURVE('',#4496,#4492,#2228,.T.);\r
+-#7979=EDGE_CURVE('',#4491,#4492,#2233,.T.);\r
+-#7981=EDGE_CURVE('',#4495,#4491,#2224,.T.);\r
+-#7993=EDGE_CURVE('',#4492,#4491,#2238,.T.);\r
+-#8008=EDGE_CURVE('',#4499,#4500,#2243,.T.);\r
+-#8010=EDGE_CURVE('',#4500,#4499,#2248,.T.);\r
+-#8021=EDGE_CURVE('',#4500,#4488,#2256,.T.);\r
+-#8024=EDGE_CURVE('',#4499,#4487,#2252,.T.);\r
+-#8047=EDGE_CURVE('',#4544,#4540,#2264,.T.);\r
+-#8049=EDGE_CURVE('',#4539,#4540,#2269,.T.);\r
+-#8051=EDGE_CURVE('',#4543,#4539,#2260,.T.);\r
+-#8063=EDGE_CURVE('',#4540,#4539,#2274,.T.);\r
+-#8078=EDGE_CURVE('',#4547,#4548,#2279,.T.);\r
+-#8080=EDGE_CURVE('',#4548,#4547,#2284,.T.);\r
+-#8091=EDGE_CURVE('',#4548,#4508,#2292,.T.);\r
+-#8094=EDGE_CURVE('',#4547,#4507,#2288,.T.);\r
+-#8117=EDGE_CURVE('',#4556,#4552,#2300,.T.);\r
+-#8119=EDGE_CURVE('',#4551,#4552,#2305,.T.);\r
+-#8121=EDGE_CURVE('',#4555,#4551,#2296,.T.);\r
+-#8133=EDGE_CURVE('',#4552,#4551,#2310,.T.);\r
+-#8148=EDGE_CURVE('',#4559,#4560,#2315,.T.);\r
+-#8150=EDGE_CURVE('',#4560,#4559,#2320,.T.);\r
+-#8161=EDGE_CURVE('',#4560,#4512,#2328,.T.);\r
+-#8164=EDGE_CURVE('',#4559,#4511,#2324,.T.);\r
+-#8187=EDGE_CURVE('',#4568,#4564,#2336,.T.);\r
+-#8189=EDGE_CURVE('',#4563,#4564,#2341,.T.);\r
+-#8191=EDGE_CURVE('',#4567,#4563,#2332,.T.);\r
+-#8203=EDGE_CURVE('',#4564,#4563,#2346,.T.);\r
+-#8218=EDGE_CURVE('',#4571,#4572,#2351,.T.);\r
+-#8220=EDGE_CURVE('',#4572,#4571,#2356,.T.);\r
+-#8231=EDGE_CURVE('',#4572,#4516,#2364,.T.);\r
+-#8234=EDGE_CURVE('',#4571,#4515,#2360,.T.);\r
+-#8257=EDGE_CURVE('',#4588,#4584,#2372,.T.);\r
+-#8259=EDGE_CURVE('',#4583,#4584,#2377,.T.);\r
+-#8261=EDGE_CURVE('',#4587,#4583,#2368,.T.);\r
+-#8273=EDGE_CURVE('',#4584,#4583,#2382,.T.);\r
+-#8288=EDGE_CURVE('',#4591,#4592,#2387,.T.);\r
+-#8290=EDGE_CURVE('',#4592,#4591,#2392,.T.);\r
+-#8301=EDGE_CURVE('',#4592,#4524,#2400,.T.);\r
+-#8304=EDGE_CURVE('',#4591,#4523,#2396,.T.);\r
+-#8327=EDGE_CURVE('',#4600,#4596,#2408,.T.);\r
+-#8329=EDGE_CURVE('',#4595,#4596,#2413,.T.);\r
+-#8331=EDGE_CURVE('',#4599,#4595,#2404,.T.);\r
+-#8343=EDGE_CURVE('',#4596,#4595,#2418,.T.);\r
+-#8358=EDGE_CURVE('',#4603,#4604,#2423,.T.);\r
+-#8360=EDGE_CURVE('',#4604,#4603,#2428,.T.);\r
+-#8371=EDGE_CURVE('',#4604,#4528,#2436,.T.);\r
+-#8374=EDGE_CURVE('',#4603,#4527,#2432,.T.);\r
+-#8397=EDGE_CURVE('',#4616,#4612,#2444,.T.);\r
+-#8399=EDGE_CURVE('',#4611,#4612,#2449,.T.);\r
+-#8401=EDGE_CURVE('',#4615,#4611,#2440,.T.);\r
+-#8413=EDGE_CURVE('',#4612,#4611,#2454,.T.);\r
+-#8428=EDGE_CURVE('',#4619,#4620,#2459,.T.);\r
+-#8430=EDGE_CURVE('',#4620,#4619,#2464,.T.);\r
+-#8441=EDGE_CURVE('',#4620,#4608,#2472,.T.);\r
+-#8444=EDGE_CURVE('',#4619,#4607,#2468,.T.);\r
+-#8467=EDGE_CURVE('',#4648,#4644,#2480,.T.);\r
+-#8469=EDGE_CURVE('',#4643,#4644,#2485,.T.);\r
+-#8471=EDGE_CURVE('',#4647,#4643,#2476,.T.);\r
+-#8483=EDGE_CURVE('',#4644,#4643,#2490,.T.);\r
+-#8498=EDGE_CURVE('',#4651,#4652,#2495,.T.);\r
+-#8500=EDGE_CURVE('',#4652,#4651,#2500,.T.);\r
+-#8511=EDGE_CURVE('',#4652,#4624,#2508,.T.);\r
+-#8514=EDGE_CURVE('',#4651,#4623,#2504,.T.);\r
+-#8537=EDGE_CURVE('',#4660,#4656,#2516,.T.);\r
+-#8539=EDGE_CURVE('',#4655,#4656,#2521,.T.);\r
+-#8541=EDGE_CURVE('',#4659,#4655,#2512,.T.);\r
+-#8553=EDGE_CURVE('',#4656,#4655,#2526,.T.);\r
+-#8568=EDGE_CURVE('',#4663,#4664,#2531,.T.);\r
+-#8570=EDGE_CURVE('',#4664,#4663,#2536,.T.);\r
+-#8581=EDGE_CURVE('',#4664,#4636,#2544,.T.);\r
+-#8584=EDGE_CURVE('',#4663,#4635,#2540,.T.);\r
+-#8607=EDGE_CURVE('',#4672,#4668,#2552,.T.);\r
+-#8609=EDGE_CURVE('',#4667,#4668,#2557,.T.);\r
+-#8611=EDGE_CURVE('',#4671,#4667,#2548,.T.);\r
+-#8623=EDGE_CURVE('',#4668,#4667,#2562,.T.);\r
+-#8638=EDGE_CURVE('',#4675,#4676,#2567,.T.);\r
+-#8640=EDGE_CURVE('',#4676,#4675,#2572,.T.);\r
+-#8651=EDGE_CURVE('',#4676,#4628,#2580,.T.);\r
+-#8654=EDGE_CURVE('',#4675,#4627,#2576,.T.);\r
+-#8677=EDGE_CURVE('',#4684,#4680,#2588,.T.);\r
+-#8679=EDGE_CURVE('',#4679,#4680,#2593,.T.);\r
+-#8681=EDGE_CURVE('',#4683,#4679,#2584,.T.);\r
+-#8693=EDGE_CURVE('',#4680,#4679,#2598,.T.);\r
+-#8708=EDGE_CURVE('',#4687,#4688,#2603,.T.);\r
+-#8710=EDGE_CURVE('',#4688,#4687,#2608,.T.);\r
+-#8721=EDGE_CURVE('',#4688,#4632,#2616,.T.);\r
+-#8724=EDGE_CURVE('',#4687,#4631,#2612,.T.);\r
+-#8747=EDGE_CURVE('',#4696,#4692,#2624,.T.);\r
+-#8749=EDGE_CURVE('',#4691,#4692,#2629,.T.);\r
+-#8751=EDGE_CURVE('',#4695,#4691,#2620,.T.);\r
+-#8763=EDGE_CURVE('',#4692,#4691,#2634,.T.);\r
+-#8778=EDGE_CURVE('',#4699,#4700,#2639,.T.);\r
+-#8780=EDGE_CURVE('',#4700,#4699,#2644,.T.);\r
+-#8791=EDGE_CURVE('',#4700,#4640,#2652,.T.);\r
+-#8794=EDGE_CURVE('',#4699,#4639,#2648,.T.);\r
+-#8817=EDGE_CURVE('',#4832,#4828,#2660,.T.);\r
+-#8819=EDGE_CURVE('',#4827,#4828,#2665,.T.);\r
+-#8821=EDGE_CURVE('',#4831,#4827,#2656,.T.);\r
+-#8833=EDGE_CURVE('',#4828,#4827,#2670,.T.);\r
+-#8848=EDGE_CURVE('',#4835,#4836,#2675,.T.);\r
+-#8850=EDGE_CURVE('',#4836,#4835,#2680,.T.);\r
+-#8861=EDGE_CURVE('',#4836,#4824,#2688,.T.);\r
+-#8864=EDGE_CURVE('',#4835,#4823,#2684,.T.);\r
+-#8887=EDGE_CURVE('',#4864,#4860,#2696,.T.);\r
+-#8889=EDGE_CURVE('',#4859,#4860,#2701,.T.);\r
+-#8891=EDGE_CURVE('',#4863,#4859,#2692,.T.);\r
+-#8903=EDGE_CURVE('',#4860,#4859,#2706,.T.);\r
+-#8918=EDGE_CURVE('',#4867,#4868,#2711,.T.);\r
+-#8920=EDGE_CURVE('',#4868,#4867,#2716,.T.);\r
+-#8931=EDGE_CURVE('',#4868,#4840,#2724,.T.);\r
+-#8934=EDGE_CURVE('',#4867,#4839,#2720,.T.);\r
+-#8957=EDGE_CURVE('',#4876,#4872,#2732,.T.);\r
+-#8959=EDGE_CURVE('',#4871,#4872,#2737,.T.);\r
+-#8961=EDGE_CURVE('',#4875,#4871,#2728,.T.);\r
+-#8973=EDGE_CURVE('',#4872,#4871,#2742,.T.);\r
+-#8988=EDGE_CURVE('',#4879,#4880,#2747,.T.);\r
+-#8990=EDGE_CURVE('',#4880,#4879,#2752,.T.);\r
+-#9001=EDGE_CURVE('',#4880,#4844,#2760,.T.);\r
+-#9004=EDGE_CURVE('',#4879,#4843,#2756,.T.);\r
+-#9027=EDGE_CURVE('',#4888,#4884,#2768,.T.);\r
+-#9029=EDGE_CURVE('',#4883,#4884,#2773,.T.);\r
+-#9031=EDGE_CURVE('',#4887,#4883,#2764,.T.);\r
+-#9043=EDGE_CURVE('',#4884,#4883,#2778,.T.);\r
+-#9058=EDGE_CURVE('',#4891,#4892,#2783,.T.);\r
+-#9060=EDGE_CURVE('',#4892,#4891,#2788,.T.);\r
+-#9071=EDGE_CURVE('',#4892,#4848,#2796,.T.);\r
+-#9074=EDGE_CURVE('',#4891,#4847,#2792,.T.);\r
+-#9097=EDGE_CURVE('',#4900,#4896,#2804,.T.);\r
+-#9099=EDGE_CURVE('',#4895,#4896,#2809,.T.);\r
+-#9101=EDGE_CURVE('',#4899,#4895,#2800,.T.);\r
+-#9113=EDGE_CURVE('',#4896,#4895,#2814,.T.);\r
+-#9128=EDGE_CURVE('',#4903,#4904,#2819,.T.);\r
+-#9130=EDGE_CURVE('',#4904,#4903,#2824,.T.);\r
+-#9141=EDGE_CURVE('',#4904,#4852,#2832,.T.);\r
+-#9144=EDGE_CURVE('',#4903,#4851,#2828,.T.);\r
+-#9167=EDGE_CURVE('',#4912,#4908,#2840,.T.);\r
+-#9169=EDGE_CURVE('',#4907,#4908,#2845,.T.);\r
+-#9171=EDGE_CURVE('',#4911,#4907,#2836,.T.);\r
+-#9183=EDGE_CURVE('',#4908,#4907,#2850,.T.);\r
+-#9198=EDGE_CURVE('',#4915,#4916,#2855,.T.);\r
+-#9200=EDGE_CURVE('',#4916,#4915,#2860,.T.);\r
+-#9211=EDGE_CURVE('',#4916,#4856,#2868,.T.);\r
+-#9214=EDGE_CURVE('',#4915,#4855,#2864,.T.);\r
+-#9238=EDGE_CURVE('',#4942,#4937,#2872,.T.);\r
+-#9254=EDGE_CURVE('',#4943,#4944,#2882,.T.);\r
+-#9256=EDGE_CURVE('',#4944,#4943,#2892,.T.);\r
+-#9266=EDGE_CURVE('',#4943,#4575,#2900,.T.);\r
+-#9269=EDGE_CURVE('',#4576,#4944,#2896,.T.);\r
+-#9271=EDGE_CURVE('',#4575,#4576,#2905,.T.);\r
+-#9284=EDGE_CURVE('',#4576,#4575,#2910,.T.);\r
+-#9298=EDGE_CURVE('',#4579,#4580,#2915,.T.);\r
+-#9300=EDGE_CURVE('',#4580,#4579,#2920,.T.);\r
+-#9311=EDGE_CURVE('',#4580,#4520,#2928,.T.);\r
+-#9314=EDGE_CURVE('',#4579,#4519,#2924,.T.);\r
+-#9336=EDGE_CURVE('',#5099,#5100,#2932,.T.);\r
+-#9338=EDGE_CURVE('',#5100,#5104,#2937,.T.);\r
+-#9340=EDGE_CURVE('',#5103,#5104,#2941,.T.);\r
+-#9353=EDGE_CURVE('',#5062,#5064,#2959,.T.);\r
+-#9355=EDGE_CURVE('',#5100,#5062,#3044,.T.);\r
+-#9365=EDGE_CURVE('',#5059,#5060,#2950,.T.);\r
+-#9367=EDGE_CURVE('',#5059,#5062,#2955,.T.);\r
+-#9381=EDGE_CURVE('',#5070,#5072,#2977,.T.);\r
+-#9383=EDGE_CURVE('',#5059,#5070,#3048,.T.);\r
+-#9393=EDGE_CURVE('',#5067,#5068,#2968,.T.);\r
+-#9395=EDGE_CURVE('',#5067,#5070,#2973,.T.);\r
+-#9409=EDGE_CURVE('',#5094,#5096,#2995,.T.);\r
+-#9411=EDGE_CURVE('',#5067,#5094,#3052,.T.);\r
+-#9421=EDGE_CURVE('',#5091,#5092,#2986,.T.);\r
+-#9423=EDGE_CURVE('',#5091,#5094,#2991,.T.);\r
+-#9435=EDGE_CURVE('',#5086,#5088,#3013,.T.);\r
+-#9437=EDGE_CURVE('',#5091,#5086,#3056,.T.);\r
+-#9449=EDGE_CURVE('',#5083,#5084,#3004,.T.);\r
+-#9451=EDGE_CURVE('',#5083,#5086,#3009,.T.);\r
+-#9463=EDGE_CURVE('',#5078,#5080,#3031,.T.);\r
+-#9465=EDGE_CURVE('',#5083,#5078,#3060,.T.);\r
+-#9477=EDGE_CURVE('',#5075,#5076,#3022,.T.);\r
+-#9479=EDGE_CURVE('',#5075,#5078,#3027,.T.);\r
+-#9492=EDGE_CURVE('',#5075,#5104,#3040,.T.);\r
+-#9525=EDGE_CURVE('',#4755,#4751,#3064,.T.);\r
+-#9527=EDGE_CURVE('',#4751,#4752,#3073,.T.);\r
+-#9529=EDGE_CURVE('',#4756,#4752,#3068,.T.);\r
+-#9541=EDGE_CURVE('',#4752,#4751,#3078,.T.);\r
+-#9563=EDGE_CURVE('',#4763,#4759,#3082,.T.);\r
+-#9565=EDGE_CURVE('',#4759,#4760,#3091,.T.);\r
+-#9567=EDGE_CURVE('',#4764,#4760,#3086,.T.);\r
+-#9579=EDGE_CURVE('',#4760,#4759,#3096,.T.);\r
+-#9601=EDGE_CURVE('',#4732,#4728,#3104,.T.);\r
+-#9603=EDGE_CURVE('',#4727,#4728,#3109,.T.);\r
+-#9605=EDGE_CURVE('',#4731,#4727,#3100,.T.);\r
+-#9617=EDGE_CURVE('',#4728,#4727,#3114,.T.);\r
+-#9639=EDGE_CURVE('',#4724,#4720,#3122,.T.);\r
+-#9641=EDGE_CURVE('',#4719,#4720,#3127,.T.);\r
+-#9643=EDGE_CURVE('',#4723,#4719,#3118,.T.);\r
+-#9655=EDGE_CURVE('',#4720,#4719,#3132,.T.);\r
+-#9677=EDGE_CURVE('',#4716,#4712,#3140,.T.);\r
+-#9679=EDGE_CURVE('',#4711,#4712,#3145,.T.);\r
+-#9681=EDGE_CURVE('',#4715,#4711,#3136,.T.);\r
+-#9693=EDGE_CURVE('',#4712,#4711,#3150,.T.);\r
+-#9714=EDGE_CURVE('',#4947,#4948,#3154,.T.);\r
+-#9716=EDGE_CURVE('',#4948,#4960,#3238,.T.);\r
+-#9718=EDGE_CURVE('',#4959,#4960,#3217,.T.);\r
+-#9731=EDGE_CURVE('',#4951,#4952,#3163,.T.);\r
+-#9733=EDGE_CURVE('',#4952,#4948,#3168,.T.);\r
+-#9745=EDGE_CURVE('',#4971,#4972,#3172,.T.);\r
+-#9747=EDGE_CURVE('',#4972,#4952,#3226,.T.);\r
+-#9759=EDGE_CURVE('',#4975,#4976,#3181,.T.);\r
+-#9761=EDGE_CURVE('',#4976,#4972,#3186,.T.);\r
+-#9771=EDGE_CURVE('',#4963,#4964,#3190,.T.);\r
+-#9773=EDGE_CURVE('',#4964,#4976,#3230,.T.);\r
+-#9787=EDGE_CURVE('',#4967,#4968,#3199,.T.);\r
+-#9789=EDGE_CURVE('',#4968,#4964,#3204,.T.);\r
+-#9799=EDGE_CURVE('',#4955,#4956,#3208,.T.);\r
+-#9801=EDGE_CURVE('',#4956,#4968,#3234,.T.);\r
+-#9816=EDGE_CURVE('',#4960,#4956,#3222,.T.);\r
+-#9842=EDGE_CURVE('',#5035,#5036,#3242,.T.);\r
+-#9845=EDGE_CURVE('',#5046,#5048,#3321,.T.);\r
+-#9847=EDGE_CURVE('',#5035,#5046,#3264,.T.);\r
+-#9858=EDGE_CURVE('',#5035,#5038,#3247,.T.);\r
+-#9860=EDGE_CURVE('',#5038,#5040,#3251,.T.);\r
+-#9871=EDGE_CURVE('',#5027,#5030,#3281,.T.);\r
+-#9873=EDGE_CURVE('',#5027,#5038,#3260,.T.);\r
+-#9877=EDGE_CURVE('',#5043,#5046,#3317,.T.);\r
+-#9879=EDGE_CURVE('',#5043,#5054,#3268,.T.);\r
+-#9881=EDGE_CURVE('',#5051,#5054,#3299,.T.);\r
+-#9883=EDGE_CURVE('',#5051,#5030,#3272,.T.);\r
+-#9893=EDGE_CURVE('',#5027,#5028,#3276,.T.);\r
+-#9896=EDGE_CURVE('',#5030,#5032,#3285,.T.);\r
+-#9921=EDGE_CURVE('',#5051,#5052,#3294,.T.);\r
+-#9934=EDGE_CURVE('',#5054,#5056,#3303,.T.);\r
+-#9945=EDGE_CURVE('',#5043,#5044,#3312,.T.);\r
+-#9971=EDGE_CURVE('',#5121,#5107,#3330,.T.);\r
+-#9973=EDGE_CURVE('',#5107,#5108,#3346,.T.);\r
+-#9975=EDGE_CURVE('',#5122,#5108,#3342,.T.);\r
+-#9986=EDGE_CURVE('',#5126,#5112,#3334,.T.);\r
+-#9988=EDGE_CURVE('',#5112,#5107,#3351,.T.);\r
+-#10000=EDGE_CURVE('',#5124,#5110,#3338,.T.);\r
+-#10002=EDGE_CURVE('',#5110,#5112,#3355,.T.);\r
+-#10015=EDGE_CURVE('',#5108,#5110,#3360,.T.);\r
+-#10038=EDGE_CURVE('',#5140,#5136,#3397,.T.);\r
+-#10040=EDGE_CURVE('',#5118,#5140,#3365,.T.);\r
+-#10042=EDGE_CURVE('',#5116,#5118,#3370,.T.);\r
+-#10044=EDGE_CURVE('',#5115,#5116,#3375,.T.);\r
+-#10046=EDGE_CURVE('',#5136,#5115,#3379,.T.);\r
+-#10056=EDGE_CURVE('',#5135,#5136,#3383,.T.);\r
+-#10059=EDGE_CURVE('',#5139,#5140,#3392,.T.);\r
+-#10072=EDGE_CURVE('',#5129,#5115,#3401,.T.);\r
+-#10086=EDGE_CURVE('',#5130,#5116,#3405,.T.);\r
+-#10099=EDGE_CURVE('',#5132,#5118,#3409,.T.);\r
+-#10121=EDGE_CURVE('',#5183,#5184,#3413,.T.);\r
+-#10124=EDGE_CURVE('',#5188,#5186,#3422,.T.);\r
+-#10126=EDGE_CURVE('',#5188,#5183,#3427,.T.);\r
+-#10137=EDGE_CURVE('',#5183,#5143,#3444,.T.);\r
+-#10139=EDGE_CURVE('',#5147,#5143,#3486,.T.);\r
+-#10150=EDGE_CURVE('',#5191,#5172,#3431,.T.);\r
+-#10152=EDGE_CURVE('',#5196,#5191,#3478,.T.);\r
+-#10154=EDGE_CURVE('',#5144,#5196,#3435,.T.);\r
+-#10156=EDGE_CURVE('',#5143,#5144,#3440,.T.);\r
+-#10160=EDGE_CURVE('',#5160,#5188,#3448,.T.);\r
+-#10162=EDGE_CURVE('',#5164,#5160,#3558,.T.);\r
+-#10164=EDGE_CURVE('',#5152,#5164,#3452,.T.);\r
+-#10166=EDGE_CURVE('',#5156,#5152,#3540,.T.);\r
+-#10168=EDGE_CURVE('',#5176,#5156,#3456,.T.);\r
+-#10170=EDGE_CURVE('',#5180,#5176,#3522,.T.);\r
+-#10172=EDGE_CURVE('',#5168,#5180,#3460,.T.);\r
+-#10174=EDGE_CURVE('',#5172,#5168,#3504,.T.);\r
+-#10184=EDGE_CURVE('',#5191,#5192,#3464,.T.);\r
+-#10187=EDGE_CURVE('',#5171,#5172,#3499,.T.);\r
+-#10200=EDGE_CURVE('',#5196,#5194,#3473,.T.);\r
+-#10213=EDGE_CURVE('',#5148,#5144,#3482,.T.);\r
+-#10236=EDGE_CURVE('',#5167,#5168,#3490,.T.);\r
+-#10251=EDGE_CURVE('',#5179,#5180,#3517,.T.);\r
+-#10262=EDGE_CURVE('',#5175,#5176,#3508,.T.);\r
+-#10275=EDGE_CURVE('',#5155,#5156,#3535,.T.);\r
+-#10288=EDGE_CURVE('',#5151,#5152,#3526,.T.);\r
+-#10303=EDGE_CURVE('',#5163,#5164,#3553,.T.);\r
+-#10314=EDGE_CURVE('',#5159,#5160,#3544,.T.);\r
+-#10340=EDGE_CURVE('',#5207,#5199,#3562,.T.);\r
+-#10342=EDGE_CURVE('',#5199,#5200,#3578,.T.);\r
+-#10344=EDGE_CURVE('',#5208,#5200,#3574,.T.);\r
+-#10355=EDGE_CURVE('',#5212,#5204,#3566,.T.);\r
+-#10357=EDGE_CURVE('',#5204,#5199,#3583,.T.);\r
+-#10369=EDGE_CURVE('',#5210,#5202,#3570,.T.);\r
+-#10371=EDGE_CURVE('',#5202,#5204,#3587,.T.);\r
+-#10384=EDGE_CURVE('',#5200,#5202,#3592,.T.);\r
+-#10408=EDGE_CURVE('',#5223,#5215,#3596,.T.);\r
+-#10410=EDGE_CURVE('',#5215,#5216,#3612,.T.);\r
+-#10412=EDGE_CURVE('',#5224,#5216,#3608,.T.);\r
+-#10423=EDGE_CURVE('',#5228,#5220,#3600,.T.);\r
+-#10425=EDGE_CURVE('',#5220,#5215,#3617,.T.);\r
+-#10437=EDGE_CURVE('',#5226,#5218,#3604,.T.);\r
+-#10439=EDGE_CURVE('',#5218,#5220,#3621,.T.);\r
+-#10452=EDGE_CURVE('',#5216,#5218,#3626,.T.);\r
+-#10476=EDGE_CURVE('',#5239,#5231,#3630,.T.);\r
+-#10478=EDGE_CURVE('',#5231,#5232,#3646,.T.);\r
+-#10480=EDGE_CURVE('',#5240,#5232,#3642,.T.);\r
+-#10491=EDGE_CURVE('',#5244,#5236,#3634,.T.);\r
+-#10493=EDGE_CURVE('',#5236,#5231,#3651,.T.);\r
+-#10505=EDGE_CURVE('',#5242,#5234,#3638,.T.);\r
+-#10507=EDGE_CURVE('',#5234,#5236,#3655,.T.);\r
+-#10520=EDGE_CURVE('',#5232,#5234,#3660,.T.);\r
+-#10544=EDGE_CURVE('',#5255,#5247,#3664,.T.);\r
+-#10546=EDGE_CURVE('',#5247,#5248,#3680,.T.);\r
+-#10548=EDGE_CURVE('',#5256,#5248,#3676,.T.);\r
+-#10559=EDGE_CURVE('',#5260,#5252,#3668,.T.);\r
+-#10561=EDGE_CURVE('',#5252,#5247,#3685,.T.);\r
+-#10573=EDGE_CURVE('',#5258,#5250,#3672,.T.);\r
+-#10575=EDGE_CURVE('',#5250,#5252,#3689,.T.);\r
+-#10588=EDGE_CURVE('',#5248,#5250,#3694,.T.);\r
+-#10612=EDGE_CURVE('',#5278,#5264,#3702,.T.);\r
+-#10614=EDGE_CURVE('',#5263,#5264,#3714,.T.);\r
+-#10616=EDGE_CURVE('',#5277,#5263,#3698,.T.);\r
+-#10627=EDGE_CURVE('',#5280,#5266,#3706,.T.);\r
+-#10629=EDGE_CURVE('',#5264,#5266,#3719,.T.);\r
+-#10641=EDGE_CURVE('',#5282,#5268,#3710,.T.);\r
+-#10643=EDGE_CURVE('',#5266,#5268,#3723,.T.);\r
+-#10656=EDGE_CURVE('',#5268,#5263,#3728,.T.);\r
+-#10679=EDGE_CURVE('',#5480,#5476,#3765,.T.);\r
+-#10681=EDGE_CURVE('',#5480,#5271,#3732,.T.);\r
+-#10683=EDGE_CURVE('',#5271,#5272,#3737,.T.);\r
+-#10685=EDGE_CURVE('',#5272,#5274,#3742,.T.);\r
+-#10687=EDGE_CURVE('',#5274,#5476,#3747,.T.);\r
+-#10697=EDGE_CURVE('',#5475,#5476,#3751,.T.);\r
+-#10700=EDGE_CURVE('',#5479,#5480,#3760,.T.);\r
+-#10713=EDGE_CURVE('',#5288,#5274,#3769,.T.);\r
+-#10727=EDGE_CURVE('',#5286,#5272,#3773,.T.);\r
+-#10740=EDGE_CURVE('',#5285,#5271,#3777,.T.);\r
+-#10763=EDGE_CURVE('',#5306,#5292,#3785,.T.);\r
+-#10765=EDGE_CURVE('',#5291,#5292,#3797,.T.);\r
+-#10767=EDGE_CURVE('',#5305,#5291,#3781,.T.);\r
+-#10778=EDGE_CURVE('',#5308,#5294,#3789,.T.);\r
+-#10780=EDGE_CURVE('',#5292,#5294,#3802,.T.);\r
+-#10792=EDGE_CURVE('',#5310,#5296,#3793,.T.);\r
+-#10794=EDGE_CURVE('',#5294,#5296,#3806,.T.);\r
+-#10807=EDGE_CURVE('',#5296,#5291,#3811,.T.);\r
+-#10830=EDGE_CURVE('',#5472,#5468,#3848,.T.);\r
+-#10832=EDGE_CURVE('',#5472,#5299,#3815,.T.);\r
+-#10834=EDGE_CURVE('',#5299,#5300,#3820,.T.);\r
+-#10836=EDGE_CURVE('',#5300,#5302,#3825,.T.);\r
+-#10838=EDGE_CURVE('',#5302,#5468,#3830,.T.);\r
+-#10848=EDGE_CURVE('',#5467,#5468,#3834,.T.);\r
+-#10851=EDGE_CURVE('',#5471,#5472,#3843,.T.);\r
+-#10864=EDGE_CURVE('',#5316,#5302,#3852,.T.);\r
+-#10878=EDGE_CURVE('',#5314,#5300,#3856,.T.);\r
+-#10891=EDGE_CURVE('',#5313,#5299,#3860,.T.);\r
+-#10914=EDGE_CURVE('',#5336,#5328,#3868,.T.);\r
+-#10916=EDGE_CURVE('',#5327,#5328,#3880,.T.);\r
+-#10918=EDGE_CURVE('',#5335,#5327,#3864,.T.);\r
+-#10929=EDGE_CURVE('',#5338,#5330,#3872,.T.);\r
+-#10931=EDGE_CURVE('',#5328,#5330,#3885,.T.);\r
+-#10943=EDGE_CURVE('',#5340,#5332,#3876,.T.);\r
+-#10945=EDGE_CURVE('',#5330,#5332,#3889,.T.);\r
+-#10958=EDGE_CURVE('',#5332,#5327,#3894,.T.);\r
+-#10982=EDGE_CURVE('',#5352,#5344,#3902,.T.);\r
+-#10984=EDGE_CURVE('',#5343,#5344,#3914,.T.);\r
+-#10986=EDGE_CURVE('',#5351,#5343,#3898,.T.);\r
+-#10997=EDGE_CURVE('',#5354,#5346,#3906,.T.);\r
+-#10999=EDGE_CURVE('',#5344,#5346,#3919,.T.);\r
+-#11011=EDGE_CURVE('',#5356,#5348,#3910,.T.);\r
+-#11013=EDGE_CURVE('',#5346,#5348,#3923,.T.);\r
+-#11026=EDGE_CURVE('',#5348,#5343,#3928,.T.);\r
+-#11050=EDGE_CURVE('',#5368,#5360,#3936,.T.);\r
+-#11052=EDGE_CURVE('',#5359,#5360,#3948,.T.);\r
+-#11054=EDGE_CURVE('',#5367,#5359,#3932,.T.);\r
+-#11065=EDGE_CURVE('',#5370,#5362,#3940,.T.);\r
+-#11067=EDGE_CURVE('',#5360,#5362,#3953,.T.);\r
+-#11079=EDGE_CURVE('',#5372,#5364,#3944,.T.);\r
+-#11081=EDGE_CURVE('',#5362,#5364,#3957,.T.);\r
+-#11094=EDGE_CURVE('',#5364,#5359,#3962,.T.);\r
+-#11118=EDGE_CURVE('',#5384,#5376,#3970,.T.);\r
+-#11120=EDGE_CURVE('',#5375,#5376,#3982,.T.);\r
+-#11122=EDGE_CURVE('',#5383,#5375,#3966,.T.);\r
+-#11133=EDGE_CURVE('',#5386,#5378,#3974,.T.);\r
+-#11135=EDGE_CURVE('',#5376,#5378,#3987,.T.);\r
+-#11147=EDGE_CURVE('',#5388,#5380,#3978,.T.);\r
+-#11149=EDGE_CURVE('',#5378,#5380,#3991,.T.);\r
+-#11162=EDGE_CURVE('',#5380,#5375,#3996,.T.);\r
+-#11186=EDGE_CURVE('',#5405,#5391,#4000,.T.);\r
+-#11188=EDGE_CURVE('',#5391,#5392,#4016,.T.);\r
+-#11190=EDGE_CURVE('',#5406,#5392,#4012,.T.);\r
+-#11201=EDGE_CURVE('',#5410,#5396,#4004,.T.);\r
+-#11203=EDGE_CURVE('',#5396,#5391,#4021,.T.);\r
+-#11215=EDGE_CURVE('',#5408,#5394,#4008,.T.);\r
+-#11217=EDGE_CURVE('',#5394,#5396,#4025,.T.);\r
+-#11230=EDGE_CURVE('',#5392,#5394,#4030,.T.);\r
+-#11253=EDGE_CURVE('',#5488,#5484,#4067,.T.);\r
+-#11255=EDGE_CURVE('',#5402,#5488,#4035,.T.);\r
+-#11257=EDGE_CURVE('',#5400,#5402,#4040,.T.);\r
+-#11259=EDGE_CURVE('',#5399,#5400,#4045,.T.);\r
+-#11261=EDGE_CURVE('',#5484,#5399,#4049,.T.);\r
+-#11271=EDGE_CURVE('',#5483,#5484,#4053,.T.);\r
+-#11274=EDGE_CURVE('',#5487,#5488,#4062,.T.);\r
+-#11287=EDGE_CURVE('',#5413,#5399,#4071,.T.);\r
+-#11301=EDGE_CURVE('',#5414,#5400,#4075,.T.);\r
+-#11314=EDGE_CURVE('',#5416,#5402,#4079,.T.);\r
+-#11336=EDGE_CURVE('',#5451,#5452,#4083,.T.);\r
+-#11338=EDGE_CURVE('',#5452,#5456,#4088,.T.);\r
+-#11340=EDGE_CURVE('',#5455,#5456,#4092,.T.);\r
+-#11353=EDGE_CURVE('',#5422,#5424,#4110,.T.);\r
+-#11355=EDGE_CURVE('',#5452,#5422,#4216,.T.);\r
+-#11365=EDGE_CURVE('',#5419,#5420,#4101,.T.);\r
+-#11367=EDGE_CURVE('',#5419,#5422,#4106,.T.);\r
+-#11381=EDGE_CURVE('',#5430,#5432,#4128,.T.);\r
+-#11383=EDGE_CURVE('',#5419,#5430,#4220,.T.);\r
+-#11393=EDGE_CURVE('',#5427,#5428,#4119,.T.);\r
+-#11395=EDGE_CURVE('',#5427,#5430,#4124,.T.);\r
+-#11409=EDGE_CURVE('',#5446,#5448,#4146,.T.);\r
+-#11411=EDGE_CURVE('',#5427,#5446,#4224,.T.);\r
+-#11421=EDGE_CURVE('',#5443,#5444,#4137,.T.);\r
+-#11423=EDGE_CURVE('',#5443,#5446,#4142,.T.);\r
+-#11435=EDGE_CURVE('',#5438,#5440,#4164,.T.);\r
+-#11437=EDGE_CURVE('',#5443,#5438,#4228,.T.);\r
+-#11449=EDGE_CURVE('',#5435,#5436,#4155,.T.);\r
+-#11451=EDGE_CURVE('',#5435,#5438,#4160,.T.);\r
+-#11463=EDGE_CURVE('',#5463,#5464,#4182,.T.);\r
+-#11465=EDGE_CURVE('',#5435,#5464,#4199,.T.);\r
+-#11477=EDGE_CURVE('',#5459,#5460,#4173,.T.);\r
+-#11479=EDGE_CURVE('',#5460,#5464,#4178,.T.);\r
+-#11493=EDGE_CURVE('',#5323,#5319,#4191,.T.);\r
+-#11495=EDGE_CURVE('',#5460,#5319,#4203,.T.);\r
+-#11506=EDGE_CURVE('',#5324,#5320,#4195,.T.);\r
+-#11508=EDGE_CURVE('',#5319,#5320,#4208,.T.);\r
+-#11520=EDGE_CURVE('',#5320,#5456,#4212,.T.);\r
+-#11562=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11550),#11561);\r
+-#11569=PRODUCT_DEFINITION('design','',#11568,#11565);\r
+-#11570=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR PROESOURCE.',#11569);\r
+-#11571=SHAPE_DEFINITION_REPRESENTATION(#11570,#11562);\r
+-ENDSEC;\r
+-END-ISO-10303-21;\r
++ISO-10303-21;
++HEADER;
++FILE_DESCRIPTION((''),'2;1');
++FILE_NAME('PROESOURCE','2002-11-04T',('user-01'),(''),
++'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060',
++'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060','');
++FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
++ENDSEC;
++DATA;
++#1=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2=VECTOR('',#1,1.693725393319E1);
++#3=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
++#4=LINE('',#3,#2);
++#5=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6=VECTOR('',#5,9.E0);
++#7=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
++#8=LINE('',#7,#6);
++#9=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
++#10=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11=DIRECTION('',(1.E0,0.E0,0.E0));
++#12=AXIS2_PLACEMENT_3D('',#9,#10,#11);
++#14=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
++#15=DIRECTION('',(0.E0,-1.E0,0.E0));
++#16=DIRECTION('',(-1.E0,0.E0,0.E0));
++#17=AXIS2_PLACEMENT_3D('',#14,#15,#16);
++#19=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
++#20=DIRECTION('',(0.E0,-1.E0,0.E0));
++#21=DIRECTION('',(1.E0,0.E0,0.E0));
++#22=AXIS2_PLACEMENT_3D('',#19,#20,#21);
++#24=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
++#25=DIRECTION('',(0.E0,-1.E0,0.E0));
++#26=DIRECTION('',(-1.E0,0.E0,0.E0));
++#27=AXIS2_PLACEMENT_3D('',#24,#25,#26);
++#29=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
++#30=DIRECTION('',(0.E0,-1.E0,0.E0));
++#31=DIRECTION('',(1.E0,0.E0,0.E0));
++#32=AXIS2_PLACEMENT_3D('',#29,#30,#31);
++#34=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
++#35=DIRECTION('',(0.E0,-1.E0,0.E0));
++#36=DIRECTION('',(-1.E0,0.E0,0.E0));
++#37=AXIS2_PLACEMENT_3D('',#34,#35,#36);
++#39=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
++#40=DIRECTION('',(0.E0,-1.E0,0.E0));
++#41=DIRECTION('',(1.E0,0.E0,0.E0));
++#42=AXIS2_PLACEMENT_3D('',#39,#40,#41);
++#44=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
++#45=DIRECTION('',(0.E0,-1.E0,0.E0));
++#46=DIRECTION('',(-1.E0,0.E0,0.E0));
++#47=AXIS2_PLACEMENT_3D('',#44,#45,#46);
++#49=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
++#50=DIRECTION('',(0.E0,-1.E0,0.E0));
++#51=DIRECTION('',(1.E0,0.E0,0.E0));
++#52=AXIS2_PLACEMENT_3D('',#49,#50,#51);
++#54=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
++#55=DIRECTION('',(0.E0,-1.E0,0.E0));
++#56=DIRECTION('',(-1.E0,0.E0,0.E0));
++#57=AXIS2_PLACEMENT_3D('',#54,#55,#56);
++#59=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
++#60=DIRECTION('',(0.E0,-1.E0,0.E0));
++#61=DIRECTION('',(1.E0,0.E0,0.E0));
++#62=AXIS2_PLACEMENT_3D('',#59,#60,#61);
++#64=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
++#65=DIRECTION('',(0.E0,-1.E0,0.E0));
++#66=DIRECTION('',(-1.E0,0.E0,0.E0));
++#67=AXIS2_PLACEMENT_3D('',#64,#65,#66);
++#69=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
++#70=DIRECTION('',(0.E0,-1.E0,0.E0));
++#71=DIRECTION('',(1.E0,0.E0,0.E0));
++#72=AXIS2_PLACEMENT_3D('',#69,#70,#71);
++#74=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
++#75=DIRECTION('',(0.E0,-1.E0,0.E0));
++#76=DIRECTION('',(-1.E0,0.E0,0.E0));
++#77=AXIS2_PLACEMENT_3D('',#74,#75,#76);
++#79=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
++#80=DIRECTION('',(0.E0,-1.E0,0.E0));
++#81=DIRECTION('',(1.E0,0.E0,0.E0));
++#82=AXIS2_PLACEMENT_3D('',#79,#80,#81);
++#84=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
++#85=DIRECTION('',(0.E0,-1.E0,0.E0));
++#86=DIRECTION('',(-1.E0,0.E0,0.E0));
++#87=AXIS2_PLACEMENT_3D('',#84,#85,#86);
++#89=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
++#90=DIRECTION('',(0.E0,-1.E0,0.E0));
++#91=DIRECTION('',(1.E0,0.E0,0.E0));
++#92=AXIS2_PLACEMENT_3D('',#89,#90,#91);
++#94=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
++#95=DIRECTION('',(0.E0,-1.E0,0.E0));
++#96=DIRECTION('',(-1.E0,0.E0,0.E0));
++#97=AXIS2_PLACEMENT_3D('',#94,#95,#96);
++#99=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
++#100=DIRECTION('',(0.E0,-1.E0,0.E0));
++#101=DIRECTION('',(1.E0,0.E0,0.E0));
++#102=AXIS2_PLACEMENT_3D('',#99,#100,#101);
++#104=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
++#105=DIRECTION('',(0.E0,-1.E0,0.E0));
++#106=DIRECTION('',(-1.E0,0.E0,0.E0));
++#107=AXIS2_PLACEMENT_3D('',#104,#105,#106);
++#109=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
++#110=DIRECTION('',(0.E0,-1.E0,0.E0));
++#111=DIRECTION('',(1.E0,0.E0,0.E0));
++#112=AXIS2_PLACEMENT_3D('',#109,#110,#111);
++#114=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
++#115=DIRECTION('',(0.E0,-1.E0,0.E0));
++#116=DIRECTION('',(-1.E0,0.E0,0.E0));
++#117=AXIS2_PLACEMENT_3D('',#114,#115,#116);
++#119=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
++#120=DIRECTION('',(0.E0,-1.E0,0.E0));
++#121=DIRECTION('',(1.E0,0.E0,0.E0));
++#122=AXIS2_PLACEMENT_3D('',#119,#120,#121);
++#124=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
++#125=DIRECTION('',(0.E0,-1.E0,0.E0));
++#126=DIRECTION('',(-1.E0,0.E0,0.E0));
++#127=AXIS2_PLACEMENT_3D('',#124,#125,#126);
++#129=DIRECTION('',(1.E0,0.E0,0.E0));
++#130=VECTOR('',#129,1.E0);
++#131=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
++#132=LINE('',#131,#130);
++#133=DIRECTION('',(0.E0,0.E0,-1.E0));
++#134=VECTOR('',#133,3.E0);
++#135=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
++#136=LINE('',#135,#134);
++#137=DIRECTION('',(-1.E0,0.E0,0.E0));
++#138=VECTOR('',#137,1.6E1);
++#139=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
++#140=LINE('',#139,#138);
++#141=DIRECTION('',(0.E0,0.E0,1.E0));
++#142=VECTOR('',#141,3.E0);
++#143=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
++#144=LINE('',#143,#142);
++#145=DIRECTION('',(-1.E0,0.E0,0.E0));
++#146=VECTOR('',#145,1.E0);
++#147=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
++#148=LINE('',#147,#146);
++#149=DIRECTION('',(0.E0,0.E0,1.E0));
++#150=VECTOR('',#149,3.75E0);
++#151=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
++#152=LINE('',#151,#150);
++#153=DIRECTION('',(1.E0,0.E0,0.E0));
++#154=VECTOR('',#153,5.E-1);
++#155=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
++#156=LINE('',#155,#154);
++#157=DIRECTION('',(0.E0,0.E0,1.E0));
++#158=VECTOR('',#157,1.475E1);
++#159=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
++#160=LINE('',#159,#158);
++#161=DIRECTION('',(1.E0,0.E0,0.E0));
++#162=VECTOR('',#161,1.6E1);
++#163=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
++#164=LINE('',#163,#162);
++#165=DIRECTION('',(0.E0,0.E0,-1.E0));
++#166=VECTOR('',#165,1.475E1);
++#167=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
++#168=LINE('',#167,#166);
++#169=DIRECTION('',(-1.E0,0.E0,0.E0));
++#170=VECTOR('',#169,5.E-1);
++#171=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
++#172=LINE('',#171,#170);
++#173=DIRECTION('',(0.E0,0.E0,1.E0));
++#174=VECTOR('',#173,3.75E0);
++#175=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
++#176=LINE('',#175,#174);
++#177=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
++#178=DIRECTION('',(0.E0,-1.E0,0.E0));
++#179=DIRECTION('',(1.E0,0.E0,0.E0));
++#180=AXIS2_PLACEMENT_3D('',#177,#178,#179);
++#182=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
++#183=DIRECTION('',(0.E0,-1.E0,0.E0));
++#184=DIRECTION('',(-1.E0,0.E0,0.E0));
++#185=AXIS2_PLACEMENT_3D('',#182,#183,#184);
++#187=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
++#188=DIRECTION('',(0.E0,-1.E0,0.E0));
++#189=DIRECTION('',(1.E0,0.E0,0.E0));
++#190=AXIS2_PLACEMENT_3D('',#187,#188,#189);
++#192=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
++#193=DIRECTION('',(0.E0,-1.E0,0.E0));
++#194=DIRECTION('',(-1.E0,0.E0,0.E0));
++#195=AXIS2_PLACEMENT_3D('',#192,#193,#194);
++#197=DIRECTION('',(1.E0,0.E0,0.E0));
++#198=VECTOR('',#197,1.3E1);
++#199=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
++#200=LINE('',#199,#198);
++#201=DIRECTION('',(0.E0,0.E0,-1.E0));
++#202=VECTOR('',#201,2.5625E0);
++#203=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
++#204=LINE('',#203,#202);
++#205=DIRECTION('',(1.E0,0.E0,0.E0));
++#206=VECTOR('',#205,9.E0);
++#207=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
++#208=LINE('',#207,#206);
++#209=DIRECTION('',(0.E0,0.E0,1.E0));
++#210=VECTOR('',#209,2.5625E0);
++#211=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
++#212=LINE('',#211,#210);
++#213=DIRECTION('',(0.E0,0.E0,-1.E0));
++#214=VECTOR('',#213,8.125E-1);
++#215=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
++#216=LINE('',#215,#214);
++#217=DIRECTION('',(-1.E0,0.E0,0.E0));
++#218=VECTOR('',#217,1.3E1);
++#219=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
++#220=LINE('',#219,#218);
++#221=DIRECTION('',(0.E0,0.E0,1.E0));
++#222=VECTOR('',#221,8.125E-1);
++#223=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
++#224=LINE('',#223,#222);
++#225=DIRECTION('',(1.E0,0.E0,0.E0));
++#226=VECTOR('',#225,1.E0);
++#227=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
++#228=LINE('',#227,#226);
++#229=DIRECTION('',(0.E0,0.E0,-1.E0));
++#230=VECTOR('',#229,7.5E-1);
++#231=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
++#232=LINE('',#231,#230);
++#233=DIRECTION('',(1.E0,0.E0,0.E0));
++#234=VECTOR('',#233,1.2E1);
++#235=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
++#236=LINE('',#235,#234);
++#237=DIRECTION('',(0.E0,0.E0,-1.E0));
++#238=VECTOR('',#237,7.5E-1);
++#239=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
++#240=LINE('',#239,#238);
++#241=DIRECTION('',(-1.E0,0.E0,0.E0));
++#242=VECTOR('',#241,1.E0);
++#243=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
++#244=LINE('',#243,#242);
++#245=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
++#246=DIRECTION('',(0.E0,-1.E0,0.E0));
++#247=DIRECTION('',(1.E0,0.E0,0.E0));
++#248=AXIS2_PLACEMENT_3D('',#245,#246,#247);
++#250=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
++#251=DIRECTION('',(0.E0,-1.E0,0.E0));
++#252=DIRECTION('',(-1.E0,0.E0,0.E0));
++#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);
++#255=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
++#256=DIRECTION('',(0.E0,-1.E0,0.E0));
++#257=DIRECTION('',(1.E0,0.E0,0.E0));
++#258=AXIS2_PLACEMENT_3D('',#255,#256,#257);
++#260=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
++#261=DIRECTION('',(0.E0,-1.E0,0.E0));
++#262=DIRECTION('',(-1.E0,0.E0,0.E0));
++#263=AXIS2_PLACEMENT_3D('',#260,#261,#262);
++#265=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
++#266=DIRECTION('',(0.E0,-1.E0,0.E0));
++#267=DIRECTION('',(1.E0,0.E0,0.E0));
++#268=AXIS2_PLACEMENT_3D('',#265,#266,#267);
++#270=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
++#271=DIRECTION('',(0.E0,-1.E0,0.E0));
++#272=DIRECTION('',(-1.E0,0.E0,0.E0));
++#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);
++#275=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
++#276=DIRECTION('',(0.E0,-1.E0,0.E0));
++#277=DIRECTION('',(1.E0,0.E0,0.E0));
++#278=AXIS2_PLACEMENT_3D('',#275,#276,#277);
++#280=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
++#281=DIRECTION('',(0.E0,-1.E0,0.E0));
++#282=DIRECTION('',(-1.E0,0.E0,0.E0));
++#283=AXIS2_PLACEMENT_3D('',#280,#281,#282);
++#285=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
++#286=DIRECTION('',(0.E0,-1.E0,0.E0));
++#287=DIRECTION('',(1.E0,0.E0,0.E0));
++#288=AXIS2_PLACEMENT_3D('',#285,#286,#287);
++#290=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
++#291=DIRECTION('',(0.E0,-1.E0,0.E0));
++#292=DIRECTION('',(-1.E0,0.E0,0.E0));
++#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);
++#295=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
++#296=DIRECTION('',(0.E0,-1.E0,0.E0));
++#297=DIRECTION('',(1.E0,0.E0,0.E0));
++#298=AXIS2_PLACEMENT_3D('',#295,#296,#297);
++#300=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
++#301=DIRECTION('',(0.E0,-1.E0,0.E0));
++#302=DIRECTION('',(-1.E0,0.E0,0.E0));
++#303=AXIS2_PLACEMENT_3D('',#300,#301,#302);
++#305=DIRECTION('',(1.E0,0.E0,0.E0));
++#306=VECTOR('',#305,3.E0);
++#307=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
++#308=LINE('',#307,#306);
++#309=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
++#310=DIRECTION('',(0.E0,-1.E0,0.E0));
++#311=DIRECTION('',(0.E0,0.E0,-1.E0));
++#312=AXIS2_PLACEMENT_3D('',#309,#310,#311);
++#314=DIRECTION('',(-1.E0,0.E0,0.E0));
++#315=VECTOR('',#314,3.E0);
++#316=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
++#317=LINE('',#316,#315);
++#318=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
++#319=DIRECTION('',(0.E0,-1.E0,0.E0));
++#320=DIRECTION('',(0.E0,0.E0,1.E0));
++#321=AXIS2_PLACEMENT_3D('',#318,#319,#320);
++#323=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
++#324=DIRECTION('',(0.E0,-1.E0,0.E0));
++#325=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
++#326=AXIS2_PLACEMENT_3D('',#323,#324,#325);
++#328=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#329=VECTOR('',#328,4.263248410977E0);
++#330=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
++#331=LINE('',#330,#329);
++#332=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
++#333=DIRECTION('',(0.E0,-1.E0,0.E0));
++#334=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#335=AXIS2_PLACEMENT_3D('',#332,#333,#334);
++#337=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
++#338=DIRECTION('',(0.E0,-1.E0,0.E0));
++#339=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
++#340=AXIS2_PLACEMENT_3D('',#337,#338,#339);
++#342=DIRECTION('',(0.E0,0.E0,-1.E0));
++#343=VECTOR('',#342,3.15E-1);
++#344=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
++#345=LINE('',#344,#343);
++#346=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
++#347=DIRECTION('',(0.E0,-1.E0,0.E0));
++#348=DIRECTION('',(-1.E0,0.E0,0.E0));
++#349=AXIS2_PLACEMENT_3D('',#346,#347,#348);
++#351=DIRECTION('',(0.E0,0.E0,1.E0));
++#352=VECTOR('',#351,3.15E-1);
++#353=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
++#354=LINE('',#353,#352);
++#355=DIRECTION('',(1.E0,0.E0,0.E0));
++#356=VECTOR('',#355,7.5E-1);
++#357=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
++#358=LINE('',#357,#356);
++#359=DIRECTION('',(0.E0,0.E0,1.E0));
++#360=VECTOR('',#359,8.1E-1);
++#361=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
++#362=LINE('',#361,#360);
++#363=DIRECTION('',(-1.E0,0.E0,0.E0));
++#364=VECTOR('',#363,3.875E0);
++#365=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
++#366=LINE('',#365,#364);
++#367=DIRECTION('',(0.E0,0.E0,-1.E0));
++#368=VECTOR('',#367,8.1E-1);
++#369=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
++#370=LINE('',#369,#368);
++#371=DIRECTION('',(1.E0,0.E0,0.E0));
++#372=VECTOR('',#371,2.525E-1);
++#373=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
++#374=LINE('',#373,#372);
++#375=DIRECTION('',(0.E0,0.E0,-1.E0));
++#376=VECTOR('',#375,3.E0);
++#377=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
++#378=LINE('',#377,#376);
++#379=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
++#380=DIRECTION('',(0.E0,-1.E0,0.E0));
++#381=DIRECTION('',(-1.E0,0.E0,0.E0));
++#382=AXIS2_PLACEMENT_3D('',#379,#380,#381);
++#384=DIRECTION('',(0.E0,0.E0,1.E0));
++#385=VECTOR('',#384,3.E0);
++#386=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
++#387=LINE('',#386,#385);
++#388=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
++#389=DIRECTION('',(0.E0,-1.E0,0.E0));
++#390=DIRECTION('',(1.E0,0.E0,0.E0));
++#391=AXIS2_PLACEMENT_3D('',#388,#389,#390);
++#393=DIRECTION('',(0.E0,0.E0,-1.E0));
++#394=VECTOR('',#393,3.E0);
++#395=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
++#396=LINE('',#395,#394);
++#397=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
++#398=DIRECTION('',(0.E0,-1.E0,0.E0));
++#399=DIRECTION('',(-1.E0,0.E0,0.E0));
++#400=AXIS2_PLACEMENT_3D('',#397,#398,#399);
++#402=DIRECTION('',(0.E0,0.E0,1.E0));
++#403=VECTOR('',#402,3.E0);
++#404=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
++#405=LINE('',#404,#403);
++#406=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
++#407=DIRECTION('',(0.E0,-1.E0,0.E0));
++#408=DIRECTION('',(1.E0,0.E0,0.E0));
++#409=AXIS2_PLACEMENT_3D('',#406,#407,#408);
++#411=DIRECTION('',(1.E0,0.E0,0.E0));
++#412=VECTOR('',#411,3.E0);
++#413=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
++#414=LINE('',#413,#412);
++#415=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
++#416=DIRECTION('',(0.E0,-1.E0,0.E0));
++#417=DIRECTION('',(0.E0,0.E0,-1.E0));
++#418=AXIS2_PLACEMENT_3D('',#415,#416,#417);
++#420=DIRECTION('',(-1.E0,0.E0,0.E0));
++#421=VECTOR('',#420,3.E0);
++#422=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
++#423=LINE('',#422,#421);
++#424=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
++#425=DIRECTION('',(0.E0,-1.E0,0.E0));
++#426=DIRECTION('',(0.E0,0.E0,1.E0));
++#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);
++#429=DIRECTION('',(1.E0,0.E0,0.E0));
++#430=VECTOR('',#429,3.E0);
++#431=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
++#432=LINE('',#431,#430);
++#433=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
++#434=DIRECTION('',(0.E0,-1.E0,0.E0));
++#435=DIRECTION('',(0.E0,0.E0,-1.E0));
++#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);
++#438=DIRECTION('',(-1.E0,0.E0,0.E0));
++#439=VECTOR('',#438,3.E0);
++#440=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
++#441=LINE('',#440,#439);
++#442=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
++#443=DIRECTION('',(0.E0,-1.E0,0.E0));
++#444=DIRECTION('',(0.E0,0.E0,1.E0));
++#445=AXIS2_PLACEMENT_3D('',#442,#443,#444);
++#447=DIRECTION('',(1.E0,0.E0,0.E0));
++#448=VECTOR('',#447,3.E0);
++#449=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
++#450=LINE('',#449,#448);
++#451=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
++#452=DIRECTION('',(0.E0,1.E0,0.E0));
++#453=DIRECTION('',(0.E0,0.E0,-1.E0));
++#454=AXIS2_PLACEMENT_3D('',#451,#452,#453);
++#456=DIRECTION('',(-1.E0,0.E0,0.E0));
++#457=VECTOR('',#456,3.E0);
++#458=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
++#459=LINE('',#458,#457);
++#460=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
++#461=DIRECTION('',(0.E0,1.E0,0.E0));
++#462=DIRECTION('',(0.E0,0.E0,1.E0));
++#463=AXIS2_PLACEMENT_3D('',#460,#461,#462);
++#465=DIRECTION('',(-1.E0,0.E0,0.E0));
++#466=VECTOR('',#465,3.E0);
++#467=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
++#468=LINE('',#467,#466);
++#469=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
++#470=DIRECTION('',(0.E0,1.E0,0.E0));
++#471=DIRECTION('',(0.E0,0.E0,1.E0));
++#472=AXIS2_PLACEMENT_3D('',#469,#470,#471);
++#474=DIRECTION('',(1.E0,0.E0,0.E0));
++#475=VECTOR('',#474,3.E0);
++#476=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
++#477=LINE('',#476,#475);
++#478=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
++#479=DIRECTION('',(0.E0,1.E0,0.E0));
++#480=DIRECTION('',(0.E0,0.E0,-1.E0));
++#481=AXIS2_PLACEMENT_3D('',#478,#479,#480);
++#483=DIRECTION('',(0.E0,0.E0,-1.E0));
++#484=VECTOR('',#483,3.E0);
++#485=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
++#486=LINE('',#485,#484);
++#487=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
++#488=DIRECTION('',(0.E0,1.E0,0.E0));
++#489=DIRECTION('',(-1.E0,0.E0,0.E0));
++#490=AXIS2_PLACEMENT_3D('',#487,#488,#489);
++#492=DIRECTION('',(0.E0,0.E0,1.E0));
++#493=VECTOR('',#492,3.E0);
++#494=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
++#495=LINE('',#494,#493);
++#496=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
++#497=DIRECTION('',(0.E0,1.E0,0.E0));
++#498=DIRECTION('',(1.E0,0.E0,0.E0));
++#499=AXIS2_PLACEMENT_3D('',#496,#497,#498);
++#501=DIRECTION('',(0.E0,0.E0,-1.E0));
++#502=VECTOR('',#501,3.E0);
++#503=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
++#504=LINE('',#503,#502);
++#505=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
++#506=DIRECTION('',(0.E0,1.E0,0.E0));
++#507=DIRECTION('',(-1.E0,0.E0,0.E0));
++#508=AXIS2_PLACEMENT_3D('',#505,#506,#507);
++#510=DIRECTION('',(0.E0,0.E0,1.E0));
++#511=VECTOR('',#510,3.E0);
++#512=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
++#513=LINE('',#512,#511);
++#514=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
++#515=DIRECTION('',(0.E0,1.E0,0.E0));
++#516=DIRECTION('',(1.E0,0.E0,0.E0));
++#517=AXIS2_PLACEMENT_3D('',#514,#515,#516);
++#519=DIRECTION('',(-1.E0,0.E0,0.E0));
++#520=VECTOR('',#519,3.E0);
++#521=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
++#522=LINE('',#521,#520);
++#523=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
++#524=DIRECTION('',(0.E0,1.E0,0.E0));
++#525=DIRECTION('',(0.E0,0.E0,1.E0));
++#526=AXIS2_PLACEMENT_3D('',#523,#524,#525);
++#528=DIRECTION('',(1.E0,0.E0,0.E0));
++#529=VECTOR('',#528,3.E0);
++#530=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
++#531=LINE('',#530,#529);
++#532=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
++#533=DIRECTION('',(0.E0,1.E0,0.E0));
++#534=DIRECTION('',(0.E0,0.E0,-1.E0));
++#535=AXIS2_PLACEMENT_3D('',#532,#533,#534);
++#537=DIRECTION('',(-1.E0,0.E0,0.E0));
++#538=VECTOR('',#537,3.E0);
++#539=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
++#540=LINE('',#539,#538);
++#541=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
++#542=DIRECTION('',(0.E0,1.E0,0.E0));
++#543=DIRECTION('',(0.E0,0.E0,1.E0));
++#544=AXIS2_PLACEMENT_3D('',#541,#542,#543);
++#546=DIRECTION('',(1.E0,0.E0,0.E0));
++#547=VECTOR('',#546,3.E0);
++#548=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
++#549=LINE('',#548,#547);
++#550=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
++#551=DIRECTION('',(0.E0,1.E0,0.E0));
++#552=DIRECTION('',(0.E0,0.E0,-1.E0));
++#553=AXIS2_PLACEMENT_3D('',#550,#551,#552);
++#555=DIRECTION('',(-1.E0,0.E0,0.E0));
++#556=VECTOR('',#555,3.E0);
++#557=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
++#558=LINE('',#557,#556);
++#559=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
++#560=DIRECTION('',(0.E0,-1.E0,0.E0));
++#561=DIRECTION('',(0.E0,0.E0,1.E0));
++#562=AXIS2_PLACEMENT_3D('',#559,#560,#561);
++#564=DIRECTION('',(1.E0,0.E0,0.E0));
++#565=VECTOR('',#564,3.E0);
++#566=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
++#567=LINE('',#566,#565);
++#568=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
++#569=DIRECTION('',(0.E0,-1.E0,0.E0));
++#570=DIRECTION('',(0.E0,0.E0,-1.E0));
++#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);
++#573=DIRECTION('',(0.E0,0.E0,1.E0));
++#574=VECTOR('',#573,3.1E-1);
++#575=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
++#576=LINE('',#575,#574);
++#577=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
++#578=DIRECTION('',(0.E0,1.E0,0.E0));
++#579=DIRECTION('',(1.E0,0.E0,-3.956251312695E-14));
++#580=AXIS2_PLACEMENT_3D('',#577,#578,#579);
++#582=DIRECTION('',(2.292073341162E-14,0.E0,-1.E0));
++#583=VECTOR('',#582,3.1E-1);
++#584=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
++#585=LINE('',#584,#583);
++#586=DIRECTION('',(-1.E0,0.E0,0.E0));
++#587=VECTOR('',#586,2.425E-1);
++#588=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
++#589=LINE('',#588,#587);
++#590=DIRECTION('',(0.E0,0.E0,-1.E0));
++#591=VECTOR('',#590,8.E-1);
++#592=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
++#593=LINE('',#592,#591);
++#594=DIRECTION('',(1.E0,0.E0,0.E0));
++#595=VECTOR('',#594,3.865E0);
++#596=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
++#597=LINE('',#596,#595);
++#598=DIRECTION('',(0.E0,0.E0,1.E0));
++#599=VECTOR('',#598,8.E-1);
++#600=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
++#601=LINE('',#600,#599);
++#602=DIRECTION('',(-1.E0,0.E0,0.E0));
++#603=VECTOR('',#602,7.4E-1);
++#604=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
++#605=LINE('',#604,#603);
++#606=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#607=VECTOR('',#606,4.263248410977E0);
++#608=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
++#609=LINE('',#608,#607);
++#610=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
++#611=DIRECTION('',(0.E0,1.E0,0.E0));
++#612=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
++#613=AXIS2_PLACEMENT_3D('',#610,#611,#612);
++#615=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
++#616=DIRECTION('',(0.E0,1.E0,0.E0));
++#617=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
++#618=AXIS2_PLACEMENT_3D('',#615,#616,#617);
++#620=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
++#621=DIRECTION('',(0.E0,1.E0,0.E0));
++#622=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811866E-1));
++#623=AXIS2_PLACEMENT_3D('',#620,#621,#622);
++#625=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#626=VECTOR('',#625,4.263248410977E0);
++#627=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
++#628=LINE('',#627,#626);
++#629=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
++#630=DIRECTION('',(0.E0,1.E0,0.E0));
++#631=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
++#632=AXIS2_PLACEMENT_3D('',#629,#630,#631);
++#634=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
++#635=DIRECTION('',(0.E0,1.E0,0.E0));
++#636=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
++#637=AXIS2_PLACEMENT_3D('',#634,#635,#636);
++#639=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
++#640=DIRECTION('',(0.E0,1.E0,0.E0));
++#641=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#642=AXIS2_PLACEMENT_3D('',#639,#640,#641);
++#644=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
++#645=DIRECTION('',(0.E0,-1.E0,0.E0));
++#646=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
++#647=AXIS2_PLACEMENT_3D('',#644,#645,#646);
++#649=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#650=VECTOR('',#649,4.263248410977E0);
++#651=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
++#652=LINE('',#651,#650);
++#653=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
++#654=DIRECTION('',(0.E0,-1.E0,0.E0));
++#655=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811866E-1));
++#656=AXIS2_PLACEMENT_3D('',#653,#654,#655);
++#658=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
++#659=DIRECTION('',(0.E0,-1.E0,0.E0));
++#660=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
++#661=AXIS2_PLACEMENT_3D('',#658,#659,#660);
++#663=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
++#664=DIRECTION('',(0.E0,0.E0,-1.E0));
++#665=DIRECTION('',(-1.E0,0.E0,0.E0));
++#666=AXIS2_PLACEMENT_3D('',#663,#664,#665);
++#668=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
++#669=DIRECTION('',(0.E0,0.E0,-1.E0));
++#670=DIRECTION('',(1.E0,0.E0,0.E0));
++#671=AXIS2_PLACEMENT_3D('',#668,#669,#670);
++#673=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
++#674=DIRECTION('',(0.E0,0.E0,-1.E0));
++#675=DIRECTION('',(-1.E0,0.E0,0.E0));
++#676=AXIS2_PLACEMENT_3D('',#673,#674,#675);
++#678=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
++#679=DIRECTION('',(0.E0,0.E0,-1.E0));
++#680=DIRECTION('',(1.E0,0.E0,0.E0));
++#681=AXIS2_PLACEMENT_3D('',#678,#679,#680);
++#683=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
++#684=DIRECTION('',(0.E0,0.E0,-1.E0));
++#685=DIRECTION('',(-1.E0,0.E0,0.E0));
++#686=AXIS2_PLACEMENT_3D('',#683,#684,#685);
++#688=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
++#689=DIRECTION('',(0.E0,0.E0,-1.E0));
++#690=DIRECTION('',(1.E0,0.E0,0.E0));
++#691=AXIS2_PLACEMENT_3D('',#688,#689,#690);
++#693=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
++#694=DIRECTION('',(0.E0,0.E0,-1.E0));
++#695=DIRECTION('',(-1.E0,0.E0,0.E0));
++#696=AXIS2_PLACEMENT_3D('',#693,#694,#695);
++#698=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
++#699=DIRECTION('',(0.E0,0.E0,-1.E0));
++#700=DIRECTION('',(1.E0,0.E0,0.E0));
++#701=AXIS2_PLACEMENT_3D('',#698,#699,#700);
++#703=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
++#704=DIRECTION('',(0.E0,0.E0,1.E0));
++#705=DIRECTION('',(1.E0,0.E0,0.E0));
++#706=AXIS2_PLACEMENT_3D('',#703,#704,#705);
++#708=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
++#709=DIRECTION('',(0.E0,0.E0,1.E0));
++#710=DIRECTION('',(-1.E0,0.E0,0.E0));
++#711=AXIS2_PLACEMENT_3D('',#708,#709,#710);
++#713=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
++#714=DIRECTION('',(0.E0,0.E0,1.E0));
++#715=DIRECTION('',(1.E0,0.E0,0.E0));
++#716=AXIS2_PLACEMENT_3D('',#713,#714,#715);
++#718=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
++#719=DIRECTION('',(0.E0,0.E0,1.E0));
++#720=DIRECTION('',(-1.E0,0.E0,0.E0));
++#721=AXIS2_PLACEMENT_3D('',#718,#719,#720);
++#723=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
++#724=DIRECTION('',(0.E0,0.E0,1.E0));
++#725=DIRECTION('',(1.E0,0.E0,0.E0));
++#726=AXIS2_PLACEMENT_3D('',#723,#724,#725);
++#728=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
++#729=DIRECTION('',(0.E0,0.E0,1.E0));
++#730=DIRECTION('',(-1.E0,0.E0,0.E0));
++#731=AXIS2_PLACEMENT_3D('',#728,#729,#730);
++#733=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
++#734=DIRECTION('',(0.E0,0.E0,1.E0));
++#735=DIRECTION('',(1.E0,0.E0,0.E0));
++#736=AXIS2_PLACEMENT_3D('',#733,#734,#735);
++#738=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
++#739=DIRECTION('',(0.E0,0.E0,1.E0));
++#740=DIRECTION('',(-1.E0,0.E0,0.E0));
++#741=AXIS2_PLACEMENT_3D('',#738,#739,#740);
++#743=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
++#744=VECTOR('',#743,1.029563014099E1);
++#745=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
++#746=LINE('',#745,#744);
++#747=DIRECTION('',(-1.E0,0.E0,0.E0));
++#748=VECTOR('',#747,2.E0);
++#749=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
++#750=LINE('',#749,#748);
++#751=DIRECTION('',(-1.E0,0.E0,0.E0));
++#752=VECTOR('',#751,2.E0);
++#753=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
++#754=LINE('',#753,#752);
++#755=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
++#756=VECTOR('',#755,1.029563014099E1);
++#757=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
++#758=LINE('',#757,#756);
++#759=DIRECTION('',(-1.E0,0.E0,0.E0));
++#760=VECTOR('',#759,3.895172754280E0);
++#761=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
++#762=LINE('',#761,#760);
++#763=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
++#764=VECTOR('',#763,6.863753427325E0);
++#765=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
++#766=LINE('',#765,#764);
++#767=DIRECTION('',(1.E0,0.E0,0.E0));
++#768=VECTOR('',#767,5.618394209466E-1);
++#769=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
++#770=LINE('',#769,#768);
++#771=DIRECTION('',(0.E0,-1.E0,0.E0));
++#772=VECTOR('',#771,6.E0);
++#773=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
++#774=LINE('',#773,#772);
++#775=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
++#776=VECTOR('',#775,6.863753427325E0);
++#777=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
++#778=LINE('',#777,#776);
++#779=DIRECTION('',(1.E0,0.E0,0.E0));
++#780=VECTOR('',#779,3.895172754280E0);
++#781=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
++#782=LINE('',#781,#780);
++#783=DIRECTION('',(0.E0,-1.E0,0.E0));
++#784=VECTOR('',#783,6.E0);
++#785=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
++#786=LINE('',#785,#784);
++#787=DIRECTION('',(-1.E0,0.E0,0.E0));
++#788=VECTOR('',#787,5.618394209466E-1);
++#789=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
++#790=LINE('',#789,#788);
++#791=DIRECTION('',(0.E0,0.E0,1.E0));
++#792=VECTOR('',#791,2.5E-1);
++#793=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
++#794=LINE('',#793,#792);
++#795=DIRECTION('',(0.E0,0.E0,1.E0));
++#796=VECTOR('',#795,2.5E-1);
++#797=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
++#798=LINE('',#797,#796);
++#799=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
++#800=DIRECTION('',(0.E0,0.E0,-1.E0));
++#801=DIRECTION('',(-1.E0,0.E0,0.E0));
++#802=AXIS2_PLACEMENT_3D('',#799,#800,#801);
++#804=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
++#805=DIRECTION('',(0.E0,0.E0,-1.E0));
++#806=DIRECTION('',(1.E0,0.E0,0.E0));
++#807=AXIS2_PLACEMENT_3D('',#804,#805,#806);
++#809=DIRECTION('',(0.E0,0.E0,1.E0));
++#810=VECTOR('',#809,2.E0);
++#811=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
++#812=LINE('',#811,#810);
++#813=DIRECTION('',(0.E0,0.E0,1.E0));
++#814=VECTOR('',#813,2.E0);
++#815=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
++#816=LINE('',#815,#814);
++#817=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
++#818=DIRECTION('',(0.E0,0.E0,-1.E0));
++#819=DIRECTION('',(-1.E0,0.E0,0.E0));
++#820=AXIS2_PLACEMENT_3D('',#817,#818,#819);
++#822=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
++#823=DIRECTION('',(0.E0,0.E0,-1.E0));
++#824=DIRECTION('',(1.E0,0.E0,0.E0));
++#825=AXIS2_PLACEMENT_3D('',#822,#823,#824);
++#827=DIRECTION('',(0.E0,1.E0,0.E0));
++#828=VECTOR('',#827,5.E0);
++#829=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
++#830=LINE('',#829,#828);
++#831=DIRECTION('',(-1.E0,0.E0,0.E0));
++#832=VECTOR('',#831,1.75E0);
++#833=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
++#834=LINE('',#833,#832);
++#835=DIRECTION('',(0.E0,1.E0,0.E0));
++#836=VECTOR('',#835,5.E0);
++#837=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
++#838=LINE('',#837,#836);
++#839=DIRECTION('',(0.E0,1.E0,0.E0));
++#840=VECTOR('',#839,1.E1);
++#841=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
++#842=LINE('',#841,#840);
++#843=DIRECTION('',(1.E0,0.E0,0.E0));
++#844=VECTOR('',#843,2.E0);
++#845=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
++#846=LINE('',#845,#844);
++#847=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
++#848=VECTOR('',#847,1.029563014099E1);
++#849=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
++#850=LINE('',#849,#848);
++#851=DIRECTION('',(0.E0,-1.E0,0.E0));
++#852=VECTOR('',#851,1.E0);
++#853=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
++#854=LINE('',#853,#852);
++#855=DIRECTION('',(-1.E0,0.E0,0.E0));
++#856=VECTOR('',#855,1.972007605460E-1);
++#857=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
++#858=LINE('',#857,#856);
++#859=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
++#860=VECTOR('',#859,2.059126028197E0);
++#861=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
++#862=LINE('',#861,#860);
++#863=DIRECTION('',(1.E0,0.E0,0.E0));
++#864=VECTOR('',#863,1.197200760546E0);
++#865=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
++#866=LINE('',#865,#864);
++#867=DIRECTION('',(0.E0,1.E0,0.E0));
++#868=VECTOR('',#867,6.8E0);
++#869=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
++#870=LINE('',#869,#868);
++#871=DIRECTION('',(-1.E0,0.E0,0.E0));
++#872=VECTOR('',#871,1.3E0);
++#873=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
++#874=LINE('',#873,#872);
++#875=DIRECTION('',(0.E0,-1.E0,0.E0));
++#876=VECTOR('',#875,4.3E0);
++#877=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
++#878=LINE('',#877,#876);
++#879=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
++#880=VECTOR('',#879,5.773502691896E0);
++#881=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
++#882=LINE('',#881,#880);
++#883=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
++#884=DIRECTION('',(0.E0,-1.E0,0.E0));
++#885=DIRECTION('',(-1.E0,0.E0,0.E0));
++#886=AXIS2_PLACEMENT_3D('',#883,#884,#885);
++#888=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
++#889=DIRECTION('',(0.E0,-1.E0,0.E0));
++#890=DIRECTION('',(1.E0,0.E0,0.E0));
++#891=AXIS2_PLACEMENT_3D('',#888,#889,#890);
++#893=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
++#894=DIRECTION('',(0.E0,-1.E0,0.E0));
++#895=DIRECTION('',(-1.E0,0.E0,0.E0));
++#896=AXIS2_PLACEMENT_3D('',#893,#894,#895);
++#898=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
++#899=DIRECTION('',(0.E0,-1.E0,0.E0));
++#900=DIRECTION('',(1.E0,0.E0,0.E0));
++#901=AXIS2_PLACEMENT_3D('',#898,#899,#900);
++#903=DIRECTION('',(-1.E0,0.E0,0.E0));
++#904=VECTOR('',#903,4.531373033403E0);
++#905=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
++#906=LINE('',#905,#904);
++#907=DIRECTION('',(-1.E0,0.E0,0.E0));
++#908=VECTOR('',#907,9.E0);
++#909=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
++#910=LINE('',#909,#908);
++#911=DIRECTION('',(-1.E0,0.E0,0.E0));
++#912=VECTOR('',#911,4.531373033403E0);
++#913=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
++#914=LINE('',#913,#912);
++#915=DIRECTION('',(0.E0,0.E0,1.E0));
++#916=VECTOR('',#915,3.E0);
++#917=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
++#918=LINE('',#917,#916);
++#919=DIRECTION('',(-1.E0,0.E0,0.E0));
++#920=VECTOR('',#919,1.6E1);
++#921=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
++#922=LINE('',#921,#920);
++#923=DIRECTION('',(0.E0,0.E0,-1.E0));
++#924=VECTOR('',#923,3.E0);
++#925=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
++#926=LINE('',#925,#924);
++#927=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
++#928=DIRECTION('',(0.E0,1.E0,0.E0));
++#929=DIRECTION('',(1.E0,0.E0,0.E0));
++#930=AXIS2_PLACEMENT_3D('',#927,#928,#929);
++#932=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
++#933=DIRECTION('',(0.E0,1.E0,0.E0));
++#934=DIRECTION('',(-1.E0,0.E0,0.E0));
++#935=AXIS2_PLACEMENT_3D('',#932,#933,#934);
++#937=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
++#938=DIRECTION('',(0.E0,1.E0,0.E0));
++#939=DIRECTION('',(1.E0,0.E0,0.E0));
++#940=AXIS2_PLACEMENT_3D('',#937,#938,#939);
++#942=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
++#943=DIRECTION('',(0.E0,1.E0,0.E0));
++#944=DIRECTION('',(-1.E0,0.E0,0.E0));
++#945=AXIS2_PLACEMENT_3D('',#942,#943,#944);
++#947=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
++#948=DIRECTION('',(0.E0,-1.E0,0.E0));
++#949=DIRECTION('',(1.E0,0.E0,0.E0));
++#950=AXIS2_PLACEMENT_3D('',#947,#948,#949);
++#952=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
++#953=DIRECTION('',(0.E0,-1.E0,0.E0));
++#954=DIRECTION('',(-1.E0,0.E0,0.E0));
++#955=AXIS2_PLACEMENT_3D('',#952,#953,#954);
++#957=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
++#958=DIRECTION('',(0.E0,-1.E0,0.E0));
++#959=DIRECTION('',(1.E0,0.E0,0.E0));
++#960=AXIS2_PLACEMENT_3D('',#957,#958,#959);
++#962=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
++#963=DIRECTION('',(0.E0,-1.E0,0.E0));
++#964=DIRECTION('',(-1.E0,0.E0,0.E0));
++#965=AXIS2_PLACEMENT_3D('',#962,#963,#964);
++#967=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
++#968=DIRECTION('',(0.E0,-1.E0,0.E0));
++#969=DIRECTION('',(1.E0,0.E0,0.E0));
++#970=AXIS2_PLACEMENT_3D('',#967,#968,#969);
++#972=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
++#973=DIRECTION('',(0.E0,-1.E0,0.E0));
++#974=DIRECTION('',(-1.E0,0.E0,0.E0));
++#975=AXIS2_PLACEMENT_3D('',#972,#973,#974);
++#977=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
++#978=DIRECTION('',(0.E0,-1.E0,0.E0));
++#979=DIRECTION('',(1.E0,0.E0,0.E0));
++#980=AXIS2_PLACEMENT_3D('',#977,#978,#979);
++#982=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
++#983=DIRECTION('',(0.E0,-1.E0,0.E0));
++#984=DIRECTION('',(-1.E0,0.E0,0.E0));
++#985=AXIS2_PLACEMENT_3D('',#982,#983,#984);
++#987=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
++#988=DIRECTION('',(0.E0,-1.E0,0.E0));
++#989=DIRECTION('',(1.E0,0.E0,0.E0));
++#990=AXIS2_PLACEMENT_3D('',#987,#988,#989);
++#992=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
++#993=DIRECTION('',(0.E0,-1.E0,0.E0));
++#994=DIRECTION('',(-1.E0,0.E0,0.E0));
++#995=AXIS2_PLACEMENT_3D('',#992,#993,#994);
++#997=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
++#998=DIRECTION('',(0.E0,-1.E0,0.E0));
++#999=DIRECTION('',(1.E0,0.E0,0.E0));
++#1000=AXIS2_PLACEMENT_3D('',#997,#998,#999);
++#1002=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
++#1003=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1004=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1005=AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);
++#1007=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
++#1008=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1009=DIRECTION('',(1.E0,0.E0,0.E0));
++#1010=AXIS2_PLACEMENT_3D('',#1007,#1008,#1009);
++#1012=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
++#1013=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1014=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1015=AXIS2_PLACEMENT_3D('',#1012,#1013,#1014);
++#1017=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
++#1018=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1019=DIRECTION('',(1.E0,0.E0,0.E0));
++#1020=AXIS2_PLACEMENT_3D('',#1017,#1018,#1019);
++#1022=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
++#1023=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1024=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1025=AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);
++#1027=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
++#1028=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1029=DIRECTION('',(1.E0,0.E0,0.E0));
++#1030=AXIS2_PLACEMENT_3D('',#1027,#1028,#1029);
++#1032=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
++#1033=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1034=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1035=AXIS2_PLACEMENT_3D('',#1032,#1033,#1034);
++#1037=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
++#1038=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1039=DIRECTION('',(1.E0,0.E0,0.E0));
++#1040=AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);
++#1042=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
++#1043=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1044=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1045=AXIS2_PLACEMENT_3D('',#1042,#1043,#1044);
++#1047=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
++#1048=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1049=DIRECTION('',(1.E0,0.E0,0.E0));
++#1050=AXIS2_PLACEMENT_3D('',#1047,#1048,#1049);
++#1052=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
++#1053=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1054=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1055=AXIS2_PLACEMENT_3D('',#1052,#1053,#1054);
++#1057=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
++#1058=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1059=DIRECTION('',(1.E0,0.E0,0.E0));
++#1060=AXIS2_PLACEMENT_3D('',#1057,#1058,#1059);
++#1062=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
++#1063=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1064=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1065=AXIS2_PLACEMENT_3D('',#1062,#1063,#1064);
++#1067=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1068=VECTOR('',#1067,2.5625E0);
++#1069=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
++#1070=LINE('',#1069,#1068);
++#1071=DIRECTION('',(1.E0,0.E0,0.E0));
++#1072=VECTOR('',#1071,1.3E1);
++#1073=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
++#1074=LINE('',#1073,#1072);
++#1075=DIRECTION('',(0.E0,0.E0,1.E0));
++#1076=VECTOR('',#1075,2.5625E0);
++#1077=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
++#1078=LINE('',#1077,#1076);
++#1079=DIRECTION('',(1.E0,0.E0,0.E0));
++#1080=VECTOR('',#1079,9.E0);
++#1081=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
++#1082=LINE('',#1081,#1080);
++#1083=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1084=VECTOR('',#1083,1.3E1);
++#1085=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
++#1086=LINE('',#1085,#1084);
++#1087=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1088=VECTOR('',#1087,8.125E-1);
++#1089=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
++#1090=LINE('',#1089,#1088);
++#1091=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1092=VECTOR('',#1091,1.E0);
++#1093=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
++#1094=LINE('',#1093,#1092);
++#1095=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1096=VECTOR('',#1095,7.5E-1);
++#1097=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
++#1098=LINE('',#1097,#1096);
++#1099=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1100=VECTOR('',#1099,7.5E-1);
++#1101=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
++#1102=LINE('',#1101,#1100);
++#1103=DIRECTION('',(1.E0,0.E0,0.E0));
++#1104=VECTOR('',#1103,1.E0);
++#1105=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
++#1106=LINE('',#1105,#1104);
++#1107=DIRECTION('',(0.E0,0.E0,1.E0));
++#1108=VECTOR('',#1107,8.125E-1);
++#1109=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
++#1110=LINE('',#1109,#1108);
++#1111=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
++#1112=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1113=DIRECTION('',(1.E0,0.E0,0.E0));
++#1114=AXIS2_PLACEMENT_3D('',#1111,#1112,#1113);
++#1116=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
++#1117=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1118=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1119=AXIS2_PLACEMENT_3D('',#1116,#1117,#1118);
++#1121=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
++#1122=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1123=DIRECTION('',(1.E0,0.E0,0.E0));
++#1124=AXIS2_PLACEMENT_3D('',#1121,#1122,#1123);
++#1126=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
++#1127=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1128=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1129=AXIS2_PLACEMENT_3D('',#1126,#1127,#1128);
++#1131=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
++#1132=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1133=DIRECTION('',(1.E0,0.E0,0.E0));
++#1134=AXIS2_PLACEMENT_3D('',#1131,#1132,#1133);
++#1136=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
++#1137=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1138=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1139=AXIS2_PLACEMENT_3D('',#1136,#1137,#1138);
++#1141=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
++#1142=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1143=DIRECTION('',(1.E0,0.E0,0.E0));
++#1144=AXIS2_PLACEMENT_3D('',#1141,#1142,#1143);
++#1146=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
++#1147=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1148=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1149=AXIS2_PLACEMENT_3D('',#1146,#1147,#1148);
++#1151=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
++#1152=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1153=DIRECTION('',(1.E0,0.E0,0.E0));
++#1154=AXIS2_PLACEMENT_3D('',#1151,#1152,#1153);
++#1156=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
++#1157=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1158=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1159=AXIS2_PLACEMENT_3D('',#1156,#1157,#1158);
++#1161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
++#1162=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1163=DIRECTION('',(1.E0,0.E0,0.E0));
++#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163);
++#1166=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
++#1167=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1168=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168);
++#1171=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1172=VECTOR('',#1171,2.886751345948E0);
++#1173=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
++#1174=LINE('',#1173,#1172);
++#1175=DIRECTION('',(1.E0,0.E0,0.E0));
++#1176=VECTOR('',#1175,2.25E0);
++#1177=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
++#1178=LINE('',#1177,#1176);
++#1179=DIRECTION('',(0.E0,0.E0,1.E0));
++#1180=VECTOR('',#1179,1.75E0);
++#1181=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
++#1182=LINE('',#1181,#1180);
++#1183=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1184=VECTOR('',#1183,5.E-1);
++#1185=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
++#1186=LINE('',#1185,#1184);
++#1187=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1188=VECTOR('',#1187,1.475E1);
++#1189=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
++#1190=LINE('',#1189,#1188);
++#1191=DIRECTION('',(1.E0,0.E0,0.E0));
++#1192=VECTOR('',#1191,1.6E1);
++#1193=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
++#1194=LINE('',#1193,#1192);
++#1195=DIRECTION('',(0.E0,0.E0,1.E0));
++#1196=VECTOR('',#1195,1.475E1);
++#1197=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
++#1198=LINE('',#1197,#1196);
++#1199=DIRECTION('',(1.E0,0.E0,0.E0));
++#1200=VECTOR('',#1199,5.E-1);
++#1201=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
++#1202=LINE('',#1201,#1200);
++#1203=DIRECTION('',(0.E0,0.E0,1.E0));
++#1204=VECTOR('',#1203,1.75E0);
++#1205=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
++#1206=LINE('',#1205,#1204);
++#1207=DIRECTION('',(1.E0,0.E0,0.E0));
++#1208=VECTOR('',#1207,2.25E0);
++#1209=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
++#1210=LINE('',#1209,#1208);
++#1211=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1212=VECTOR('',#1211,2.886751345948E0);
++#1213=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
++#1214=LINE('',#1213,#1212);
++#1215=DIRECTION('',(1.E0,0.E0,0.E0));
++#1216=VECTOR('',#1215,1.75E0);
++#1217=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
++#1218=LINE('',#1217,#1216);
++#1219=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1220=VECTOR('',#1219,2.886751345948E0);
++#1221=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
++#1222=LINE('',#1221,#1220);
++#1223=DIRECTION('',(1.E0,0.E0,0.E0));
++#1224=VECTOR('',#1223,3.E0);
++#1225=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
++#1226=LINE('',#1225,#1224);
++#1227=DIRECTION('',(1.E0,0.E0,0.E0));
++#1228=VECTOR('',#1227,1.4E1);
++#1229=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
++#1230=LINE('',#1229,#1228);
++#1231=DIRECTION('',(1.E0,0.E0,0.E0));
++#1232=VECTOR('',#1231,3.E0);
++#1233=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
++#1234=LINE('',#1233,#1232);
++#1235=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1236=VECTOR('',#1235,2.886751345948E0);
++#1237=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
++#1238=LINE('',#1237,#1236);
++#1239=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1240=VECTOR('',#1239,1.75E0);
++#1241=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
++#1242=LINE('',#1241,#1240);
++#1243=DIRECTION('',(0.E0,1.E0,0.E0));
++#1244=VECTOR('',#1243,2.5E-1);
++#1245=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
++#1246=LINE('',#1245,#1244);
++#1247=DIRECTION('',(0.E0,1.E0,0.E0));
++#1248=VECTOR('',#1247,2.5E-1);
++#1249=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
++#1250=LINE('',#1249,#1248);
++#1251=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
++#1252=VECTOR('',#1251,1.154700538379E-1);
++#1253=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
++#1254=LINE('',#1253,#1252);
++#1255=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
++#1256=DIRECTION('',(0.E0,1.E0,0.E0));
++#1257=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1258=AXIS2_PLACEMENT_3D('',#1255,#1256,#1257);
++#1260=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
++#1261=VECTOR('',#1260,1.154700538379E-1);
++#1262=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
++#1263=LINE('',#1262,#1261);
++#1264=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
++#1265=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1266=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1267=AXIS2_PLACEMENT_3D('',#1264,#1265,#1266);
++#1269=DIRECTION('',(0.E0,1.E0,0.E0));
++#1270=VECTOR('',#1269,2.5E-1);
++#1271=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
++#1272=LINE('',#1271,#1270);
++#1273=DIRECTION('',(0.E0,1.E0,0.E0));
++#1274=VECTOR('',#1273,2.5E-1);
++#1275=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
++#1276=LINE('',#1275,#1274);
++#1277=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
++#1278=VECTOR('',#1277,1.154700538379E-1);
++#1279=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
++#1280=LINE('',#1279,#1278);
++#1281=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
++#1282=DIRECTION('',(0.E0,1.E0,0.E0));
++#1283=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);
++#1286=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
++#1287=VECTOR('',#1286,1.154700538379E-1);
++#1288=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
++#1289=LINE('',#1288,#1287);
++#1290=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
++#1291=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1292=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1293=AXIS2_PLACEMENT_3D('',#1290,#1291,#1292);
++#1295=DIRECTION('',(0.E0,1.E0,0.E0));
++#1296=VECTOR('',#1295,1.5E0);
++#1297=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
++#1298=LINE('',#1297,#1296);
++#1299=CARTESIAN_POINT('',(2.046862696660E1,0.E0,7.E0));
++#1300=DIRECTION('',(0.E0,1.E0,0.E0));
++#1301=DIRECTION('',(0.E0,0.E0,1.E0));
++#1302=AXIS2_PLACEMENT_3D('',#1299,#1300,#1301);
++#1304=DIRECTION('',(0.E0,1.E0,0.E0));
++#1305=VECTOR('',#1304,1.5E0);
++#1306=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
++#1307=LINE('',#1306,#1305);
++#1308=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,7.E0));
++#1309=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1310=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
++#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);
++#1313=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
++#1314=DIRECTION('',(0.E0,1.E0,0.E0));
++#1315=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
++#1316=AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);
++#1318=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1319=VECTOR('',#1318,1.5E0);
++#1320=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
++#1321=LINE('',#1320,#1319);
++#1322=CARTESIAN_POINT('',(1.65E1,1.5E0,7.5E0));
++#1323=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1324=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1325=AXIS2_PLACEMENT_3D('',#1322,#1323,#1324);
++#1327=CARTESIAN_POINT('',(7.5E0,1.5E0,7.5E0));
++#1328=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1329=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
++#1330=AXIS2_PLACEMENT_3D('',#1327,#1328,#1329);
++#1332=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1333=VECTOR('',#1332,1.5E0);
++#1334=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
++#1335=LINE('',#1334,#1333);
++#1336=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
++#1337=DIRECTION('',(0.E0,1.E0,0.E0));
++#1338=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1339=AXIS2_PLACEMENT_3D('',#1336,#1337,#1338);
++#1341=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1342=VECTOR('',#1341,1.5E0);
++#1343=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
++#1344=LINE('',#1343,#1342);
++#1345=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,7.E0));
++#1346=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1347=DIRECTION('',(0.E0,0.E0,1.E0));
++#1348=AXIS2_PLACEMENT_3D('',#1345,#1346,#1347);
++#1350=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1351=VECTOR('',#1350,1.5E0);
++#1352=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
++#1353=LINE('',#1352,#1351);
++#1354=CARTESIAN_POINT('',(3.531373033403E0,0.E0,7.E0));
++#1355=DIRECTION('',(0.E0,1.E0,0.E0));
++#1356=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
++#1357=AXIS2_PLACEMENT_3D('',#1354,#1355,#1356);
++#1359=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1360=VECTOR('',#1359,1.5E0);
++#1361=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
++#1362=LINE('',#1361,#1360);
++#1363=CARTESIAN_POINT('',(-1.E0,1.5E0,7.E0));
++#1364=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1365=DIRECTION('',(1.E0,0.E0,0.E0));
++#1366=AXIS2_PLACEMENT_3D('',#1363,#1364,#1365);
++#1368=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1369=VECTOR('',#1368,1.5E0);
++#1370=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
++#1371=LINE('',#1370,#1369);
++#1372=CARTESIAN_POINT('',(-1.E0,0.E0,7.E0));
++#1373=DIRECTION('',(0.E0,1.E0,0.E0));
++#1374=DIRECTION('',(0.E0,0.E0,1.E0));
++#1375=AXIS2_PLACEMENT_3D('',#1372,#1373,#1374);
++#1377=DIRECTION('',(0.E0,1.E0,0.E0));
++#1378=VECTOR('',#1377,1.5E0);
++#1379=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
++#1380=LINE('',#1379,#1378);
++#1381=CARTESIAN_POINT('',(-1.E0,0.E0,1.325E1));
++#1382=DIRECTION('',(0.E0,1.E0,0.E0));
++#1383=DIRECTION('',(1.E0,0.E0,0.E0));
++#1384=AXIS2_PLACEMENT_3D('',#1381,#1382,#1383);
++#1386=DIRECTION('',(0.E0,1.E0,0.E0));
++#1387=VECTOR('',#1386,1.5E0);
++#1388=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
++#1389=LINE('',#1388,#1387);
++#1390=CARTESIAN_POINT('',(-1.E0,1.5E0,1.325E1));
++#1391=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1392=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1393=AXIS2_PLACEMENT_3D('',#1390,#1391,#1392);
++#1395=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1396=VECTOR('',#1395,1.5E0);
++#1397=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
++#1398=LINE('',#1397,#1396);
++#1399=CARTESIAN_POINT('',(3.5E0,1.5E0,1.325E1));
++#1400=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1401=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1402=AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);
++#1404=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1405=VECTOR('',#1404,1.5E0);
++#1406=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
++#1407=LINE('',#1406,#1405);
++#1408=CARTESIAN_POINT('',(3.5E0,0.E0,1.325E1));
++#1409=DIRECTION('',(0.E0,1.E0,0.E0));
++#1410=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1411=AXIS2_PLACEMENT_3D('',#1408,#1409,#1410);
++#1413=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1414=VECTOR('',#1413,1.5E0);
++#1415=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
++#1416=LINE('',#1415,#1414);
++#1417=CARTESIAN_POINT('',(5.5E0,1.5E0,2.19375E1));
++#1418=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1419=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1420=AXIS2_PLACEMENT_3D('',#1417,#1418,#1419);
++#1422=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1423=VECTOR('',#1422,1.5E0);
++#1424=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
++#1425=LINE('',#1424,#1423);
++#1426=CARTESIAN_POINT('',(5.5E0,0.E0,2.19375E1));
++#1427=DIRECTION('',(0.E0,1.E0,0.E0));
++#1428=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1429=AXIS2_PLACEMENT_3D('',#1426,#1427,#1428);
++#1431=DIRECTION('',(0.E0,1.E0,0.E0));
++#1432=VECTOR('',#1431,1.5E0);
++#1433=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
++#1434=LINE('',#1433,#1432);
++#1435=CARTESIAN_POINT('',(1.85E1,0.E0,2.19375E1));
++#1436=DIRECTION('',(0.E0,1.E0,0.E0));
++#1437=DIRECTION('',(1.E0,0.E0,0.E0));
++#1438=AXIS2_PLACEMENT_3D('',#1435,#1436,#1437);
++#1440=DIRECTION('',(0.E0,1.E0,0.E0));
++#1441=VECTOR('',#1440,1.5E0);
++#1442=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
++#1443=LINE('',#1442,#1441);
++#1444=CARTESIAN_POINT('',(1.85E1,1.5E0,2.19375E1));
++#1445=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1446=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);
++#1449=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1450=VECTOR('',#1449,1.5E0);
++#1451=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
++#1452=LINE('',#1451,#1450);
++#1453=CARTESIAN_POINT('',(1.65E1,1.5E0,2.45E1));
++#1454=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1455=DIRECTION('',(1.E0,0.E0,0.E0));
++#1456=AXIS2_PLACEMENT_3D('',#1453,#1454,#1455);
++#1458=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1459=VECTOR('',#1458,1.5E0);
++#1460=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
++#1461=LINE('',#1460,#1459);
++#1462=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
++#1463=DIRECTION('',(0.E0,1.E0,0.E0));
++#1464=DIRECTION('',(0.E0,0.E0,1.E0));
++#1465=AXIS2_PLACEMENT_3D('',#1462,#1463,#1464);
++#1467=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1468=VECTOR('',#1467,1.5E0);
++#1469=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
++#1470=LINE('',#1469,#1468);
++#1471=CARTESIAN_POINT('',(7.5E0,1.5E0,2.45E1));
++#1472=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1473=DIRECTION('',(0.E0,0.E0,1.E0));
++#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473);
++#1476=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1477=VECTOR('',#1476,1.5E0);
++#1478=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
++#1479=LINE('',#1478,#1477);
++#1480=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
++#1481=DIRECTION('',(0.E0,1.E0,0.E0));
++#1482=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1483=AXIS2_PLACEMENT_3D('',#1480,#1481,#1482);
++#1485=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1486=VECTOR('',#1485,1.5E0);
++#1487=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
++#1488=LINE('',#1487,#1486);
++#1489=CARTESIAN_POINT('',(1.85E1,1.5E0,1.40625E1));
++#1490=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1491=DIRECTION('',(1.E0,0.E0,0.E0));
++#1492=AXIS2_PLACEMENT_3D('',#1489,#1490,#1491);
++#1494=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1495=VECTOR('',#1494,1.5E0);
++#1496=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
++#1497=LINE('',#1496,#1495);
++#1498=CARTESIAN_POINT('',(1.85E1,0.E0,1.40625E1));
++#1499=DIRECTION('',(0.E0,1.E0,0.E0));
++#1500=DIRECTION('',(0.E0,0.E0,1.E0));
++#1501=AXIS2_PLACEMENT_3D('',#1498,#1499,#1500);
++#1503=DIRECTION('',(0.E0,1.E0,0.E0));
++#1504=VECTOR('',#1503,1.5E0);
++#1505=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
++#1506=LINE('',#1505,#1504);
++#1507=CARTESIAN_POINT('',(5.5E0,0.E0,1.40625E1));
++#1508=DIRECTION('',(0.E0,1.E0,0.E0));
++#1509=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1510=AXIS2_PLACEMENT_3D('',#1507,#1508,#1509);
++#1512=DIRECTION('',(0.E0,1.E0,0.E0));
++#1513=VECTOR('',#1512,1.5E0);
++#1514=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
++#1515=LINE('',#1514,#1513);
++#1516=CARTESIAN_POINT('',(5.5E0,1.5E0,1.40625E1));
++#1517=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1518=DIRECTION('',(0.E0,0.E0,1.E0));
++#1519=AXIS2_PLACEMENT_3D('',#1516,#1517,#1518);
++#1521=DIRECTION('',(0.E0,1.E0,0.E0));
++#1522=VECTOR('',#1521,1.5E0);
++#1523=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
++#1524=LINE('',#1523,#1522);
++#1525=CARTESIAN_POINT('',(2.05E1,0.E0,1.325E1));
++#1526=DIRECTION('',(0.E0,1.E0,0.E0));
++#1527=DIRECTION('',(1.E0,0.E0,0.E0));
++#1528=AXIS2_PLACEMENT_3D('',#1525,#1526,#1527);
++#1530=DIRECTION('',(0.E0,1.E0,0.E0));
++#1531=VECTOR('',#1530,1.5E0);
++#1532=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
++#1533=LINE('',#1532,#1531);
++#1534=CARTESIAN_POINT('',(2.05E1,1.5E0,1.325E1));
++#1535=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1536=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1537=AXIS2_PLACEMENT_3D('',#1534,#1535,#1536);
++#1539=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1540=VECTOR('',#1539,1.5E0);
++#1541=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
++#1542=LINE('',#1541,#1540);
++#1543=CARTESIAN_POINT('',(2.5E1,1.5E0,1.325E1));
++#1544=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1545=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1546=AXIS2_PLACEMENT_3D('',#1543,#1544,#1545);
++#1548=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1549=VECTOR('',#1548,1.5E0);
++#1550=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
++#1551=LINE('',#1550,#1549);
++#1552=CARTESIAN_POINT('',(2.5E1,0.E0,1.325E1));
++#1553=DIRECTION('',(0.E0,1.E0,0.E0));
++#1554=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1555=AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);
++#1557=DIRECTION('',(0.E0,1.E0,0.E0));
++#1558=VECTOR('',#1557,1.5E0);
++#1559=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
++#1560=LINE('',#1559,#1558);
++#1561=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#1562=VECTOR('',#1561,5.656854249492E0);
++#1563=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
++#1564=LINE('',#1563,#1562);
++#1565=DIRECTION('',(0.E0,1.E0,0.E0));
++#1566=VECTOR('',#1565,1.5E0);
++#1567=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
++#1568=LINE('',#1567,#1566);
++#1569=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#1570=VECTOR('',#1569,5.656854249492E0);
++#1571=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
++#1572=LINE('',#1571,#1570);
++#1573=DIRECTION('',(0.E0,1.E0,0.E0));
++#1574=VECTOR('',#1573,1.5E0);
++#1575=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
++#1576=LINE('',#1575,#1574);
++#1577=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1578=VECTOR('',#1577,5.656854249492E0);
++#1579=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
++#1580=LINE('',#1579,#1578);
++#1581=DIRECTION('',(0.E0,1.E0,0.E0));
++#1582=VECTOR('',#1581,1.5E0);
++#1583=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
++#1584=LINE('',#1583,#1582);
++#1585=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1586=VECTOR('',#1585,5.656854249492E0);
++#1587=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
++#1588=LINE('',#1587,#1586);
++#1589=DIRECTION('',(0.E0,1.E0,0.E0));
++#1590=VECTOR('',#1589,1.5E0);
++#1591=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
++#1592=LINE('',#1591,#1590);
++#1593=CARTESIAN_POINT('',(2.5E1,0.E0,7.E0));
++#1594=DIRECTION('',(0.E0,1.E0,0.E0));
++#1595=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1596=AXIS2_PLACEMENT_3D('',#1593,#1594,#1595);
++#1598=DIRECTION('',(0.E0,1.E0,0.E0));
++#1599=VECTOR('',#1598,1.5E0);
++#1600=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
++#1601=LINE('',#1600,#1599);
++#1602=CARTESIAN_POINT('',(2.5E1,1.5E0,7.E0));
++#1603=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1604=DIRECTION('',(0.E0,0.E0,1.E0));
++#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);
++#1607=DIRECTION('',(0.E0,1.E0,0.E0));
++#1608=VECTOR('',#1607,1.5E0);
++#1609=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
++#1610=LINE('',#1609,#1608);
++#1611=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#1612=VECTOR('',#1611,5.656854249492E0);
++#1613=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
++#1614=LINE('',#1613,#1612);
++#1615=DIRECTION('',(0.E0,1.E0,0.E0));
++#1616=VECTOR('',#1615,1.5E0);
++#1617=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
++#1618=LINE('',#1617,#1616);
++#1619=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#1620=VECTOR('',#1619,5.656854249492E0);
++#1621=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
++#1622=LINE('',#1621,#1620);
++#1623=DIRECTION('',(0.E0,1.E0,0.E0));
++#1624=VECTOR('',#1623,1.5E0);
++#1625=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
++#1626=LINE('',#1625,#1624);
++#1627=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1628=VECTOR('',#1627,5.656854249492E0);
++#1629=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
++#1630=LINE('',#1629,#1628);
++#1631=DIRECTION('',(0.E0,1.E0,0.E0));
++#1632=VECTOR('',#1631,1.5E0);
++#1633=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
++#1634=LINE('',#1633,#1632);
++#1635=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1636=VECTOR('',#1635,5.656854249492E0);
++#1637=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
++#1638=LINE('',#1637,#1636);
++#1639=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1640=VECTOR('',#1639,1.5E0);
++#1641=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
++#1642=LINE('',#1641,#1640);
++#1643=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1644=VECTOR('',#1643,7.071067811865E-1);
++#1645=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
++#1646=LINE('',#1645,#1644);
++#1647=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1648=VECTOR('',#1647,1.5E0);
++#1649=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
++#1650=LINE('',#1649,#1648);
++#1651=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1652=VECTOR('',#1651,7.071067811865E-1);
++#1653=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
++#1654=LINE('',#1653,#1652);
++#1655=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1656=VECTOR('',#1655,2.5E0);
++#1657=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
++#1658=LINE('',#1657,#1656);
++#1659=DIRECTION('',(0.E0,0.E0,1.E0));
++#1660=VECTOR('',#1659,2.E0);
++#1661=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
++#1662=LINE('',#1661,#1660);
++#1663=DIRECTION('',(0.E0,0.E0,1.E0));
++#1664=VECTOR('',#1663,2.E0);
++#1665=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
++#1666=LINE('',#1665,#1664);
++#1667=DIRECTION('',(0.E0,0.E0,1.E0));
++#1668=VECTOR('',#1667,2.E0);
++#1669=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
++#1670=LINE('',#1669,#1668);
++#1671=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
++#1672=DIRECTION('',(0.E0,1.E0,0.E0));
++#1673=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1674=AXIS2_PLACEMENT_3D('',#1671,#1672,#1673);
++#1676=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
++#1677=DIRECTION('',(0.E0,1.E0,0.E0));
++#1678=DIRECTION('',(1.E0,0.E0,0.E0));
++#1679=AXIS2_PLACEMENT_3D('',#1676,#1677,#1678);
++#1681=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
++#1682=DIRECTION('',(0.E0,1.E0,0.E0));
++#1683=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1684=AXIS2_PLACEMENT_3D('',#1681,#1682,#1683);
++#1686=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
++#1687=DIRECTION('',(0.E0,1.E0,0.E0));
++#1688=DIRECTION('',(1.E0,0.E0,0.E0));
++#1689=AXIS2_PLACEMENT_3D('',#1686,#1687,#1688);
++#1691=DIRECTION('',(0.E0,0.E0,1.E0));
++#1692=VECTOR('',#1691,2.E0);
++#1693=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
++#1694=LINE('',#1693,#1692);
++#1695=DIRECTION('',(0.E0,1.E0,0.E0));
++#1696=VECTOR('',#1695,1.E1);
++#1697=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
++#1698=LINE('',#1697,#1696);
++#1699=DIRECTION('',(0.E0,1.E0,0.E0));
++#1700=VECTOR('',#1699,1.5E0);
++#1701=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
++#1702=LINE('',#1701,#1700);
++#1703=CARTESIAN_POINT('',(1.8E1,0.E0,1.1E1));
++#1704=DIRECTION('',(0.E0,1.E0,0.E0));
++#1705=DIRECTION('',(1.E0,0.E0,0.E0));
++#1706=AXIS2_PLACEMENT_3D('',#1703,#1704,#1705);
++#1708=DIRECTION('',(0.E0,1.E0,0.E0));
++#1709=VECTOR('',#1708,1.5E0);
++#1710=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
++#1711=LINE('',#1710,#1709);
++#1712=CARTESIAN_POINT('',(1.8E1,1.5E0,1.1E1));
++#1713=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1714=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1715=AXIS2_PLACEMENT_3D('',#1712,#1713,#1714);
++#1717=DIRECTION('',(1.E0,0.E0,0.E0));
++#1718=VECTOR('',#1717,1.2E1);
++#1719=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
++#1720=LINE('',#1719,#1718);
++#1721=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1722=VECTOR('',#1721,1.5E0);
++#1723=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
++#1724=LINE('',#1723,#1722);
++#1725=CARTESIAN_POINT('',(6.E0,1.5E0,1.1E1));
++#1726=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1727=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1728=AXIS2_PLACEMENT_3D('',#1725,#1726,#1727);
++#1730=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1731=VECTOR('',#1730,1.5E0);
++#1732=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
++#1733=LINE('',#1732,#1731);
++#1734=CARTESIAN_POINT('',(6.E0,0.E0,1.1E1));
++#1735=DIRECTION('',(0.E0,1.E0,0.E0));
++#1736=DIRECTION('',(0.E0,0.E0,-1.E0));
++#1737=AXIS2_PLACEMENT_3D('',#1734,#1735,#1736);
++#1739=DIRECTION('',(0.E0,0.E0,1.E0));
++#1740=VECTOR('',#1739,2.E0);
++#1741=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
++#1742=LINE('',#1741,#1740);
++#1743=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1744=VECTOR('',#1743,1.E1);
++#1745=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
++#1746=LINE('',#1745,#1744);
++#1747=DIRECTION('',(0.E0,1.E0,0.E0));
++#1748=VECTOR('',#1747,1.5E0);
++#1749=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
++#1750=LINE('',#1749,#1748);
++#1751=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#1752=VECTOR('',#1751,7.071067811865E-1);
++#1753=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
++#1754=LINE('',#1753,#1752);
++#1755=DIRECTION('',(0.E0,1.E0,0.E0));
++#1756=VECTOR('',#1755,1.5E0);
++#1757=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
++#1758=LINE('',#1757,#1756);
++#1759=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#1760=VECTOR('',#1759,7.071067811865E-1);
++#1761=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
++#1762=LINE('',#1761,#1760);
++#1763=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
++#1764=DIRECTION('',(0.E0,0.E0,1.E0));
++#1765=DIRECTION('',(1.E0,0.E0,0.E0));
++#1766=AXIS2_PLACEMENT_3D('',#1763,#1764,#1765);
++#1768=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
++#1769=DIRECTION('',(0.E0,0.E0,1.E0));
++#1770=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1771=AXIS2_PLACEMENT_3D('',#1768,#1769,#1770);
++#1773=DIRECTION('',(0.E0,1.E0,0.E0));
++#1774=VECTOR('',#1773,5.E0);
++#1775=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
++#1776=LINE('',#1775,#1774);
++#1777=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1778=VECTOR('',#1777,1.E0);
++#1779=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
++#1780=LINE('',#1779,#1778);
++#1781=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
++#1782=VECTOR('',#1781,1.029563014099E1);
++#1783=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
++#1784=LINE('',#1783,#1782);
++#1785=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1786=VECTOR('',#1785,2.E0);
++#1787=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
++#1788=LINE('',#1787,#1786);
++#1789=DIRECTION('',(0.E0,1.E0,0.E0));
++#1790=VECTOR('',#1789,1.E1);
++#1791=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
++#1792=LINE('',#1791,#1790);
++#1793=DIRECTION('',(0.E0,1.E0,0.E0));
++#1794=VECTOR('',#1793,5.E0);
++#1795=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
++#1796=LINE('',#1795,#1794);
++#1797=DIRECTION('',(1.E0,0.E0,0.E0));
++#1798=VECTOR('',#1797,1.75E0);
++#1799=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
++#1800=LINE('',#1799,#1798);
++#1801=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1802=VECTOR('',#1801,4.3E0);
++#1803=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
++#1804=LINE('',#1803,#1802);
++#1805=DIRECTION('',(1.E0,0.E0,0.E0));
++#1806=VECTOR('',#1805,1.3E0);
++#1807=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
++#1808=LINE('',#1807,#1806);
++#1809=DIRECTION('',(0.E0,1.E0,0.E0));
++#1810=VECTOR('',#1809,6.8E0);
++#1811=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
++#1812=LINE('',#1811,#1810);
++#1813=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1814=VECTOR('',#1813,1.197200760546E0);
++#1815=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
++#1816=LINE('',#1815,#1814);
++#1817=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
++#1818=VECTOR('',#1817,2.059126028197E0);
++#1819=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
++#1820=LINE('',#1819,#1818);
++#1821=DIRECTION('',(1.E0,0.E0,0.E0));
++#1822=VECTOR('',#1821,1.972007605460E-1);
++#1823=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
++#1824=LINE('',#1823,#1822);
++#1825=DIRECTION('',(0.E0,0.E0,1.E0));
++#1826=VECTOR('',#1825,2.E0);
++#1827=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
++#1828=LINE('',#1827,#1826);
++#1829=DIRECTION('',(0.E0,0.E0,1.E0));
++#1830=VECTOR('',#1829,2.E0);
++#1831=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
++#1832=LINE('',#1831,#1830);
++#1833=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
++#1834=VECTOR('',#1833,5.773502691896E0);
++#1835=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
++#1836=LINE('',#1835,#1834);
++#1837=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
++#1838=CARTESIAN_POINT('',(8.675E-1,2.930774450068E0,1.206069333205E1));
++#1839=CARTESIAN_POINT('',(9.058386382037E-1,2.745461691651E0,1.216768370301E1));
++#1840=CARTESIAN_POINT('',(1.029862281194E0,2.608885438662E0,1.224653603944E1));
++#1841=CARTESIAN_POINT('',(1.125E0,2.580400233539E0,1.226298198028E1));
++#1842=CARTESIAN_POINT('',(1.220137718806E0,2.608885438662E0,1.224653603944E1));
++#1843=CARTESIAN_POINT('',(1.344161361796E0,2.745461691651E0,1.216768370301E1));
++#1844=CARTESIAN_POINT('',(1.3825E0,2.930774450068E0,1.206069333205E1));
++#1845=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
++#1847=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
++#1848=CARTESIAN_POINT('',(1.3825E0,3.141022319657E0,1.193930666795E1));
++#1849=CARTESIAN_POINT('',(1.344161361796E0,3.326335078073E0,1.183231629699E1));
++#1850=CARTESIAN_POINT('',(1.220137718806E0,3.462911331062E0,1.175346396056E1));
++#1851=CARTESIAN_POINT('',(1.125E0,3.491396536186E0,1.173701801972E1));
++#1852=CARTESIAN_POINT('',(1.029862281194E0,3.462911331062E0,1.175346396056E1));
++#1853=CARTESIAN_POINT('',(9.058386382037E-1,3.326335078073E0,1.183231629699E1));
++#1854=CARTESIAN_POINT('',(8.675E-1,3.141022319657E0,1.193930666795E1));
++#1855=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
++#1857=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
++#1858=VECTOR('',#1857,5.773502691896E0);
++#1859=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
++#1860=LINE('',#1859,#1858);
++#1861=DIRECTION('',(0.E0,1.E0,0.E0));
++#1862=VECTOR('',#1861,2.035898384862E0);
++#1863=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
++#1864=LINE('',#1863,#1862);
++#1865=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1866=VECTOR('',#1865,2.035898384862E0);
++#1867=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
++#1868=LINE('',#1867,#1866);
++#1869=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
++#1870=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1871=DIRECTION('',(1.E0,0.E0,0.E0));
++#1872=AXIS2_PLACEMENT_3D('',#1869,#1870,#1871);
++#1874=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
++#1875=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1876=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1877=AXIS2_PLACEMENT_3D('',#1874,#1875,#1876);
++#1879=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
++#1880=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1881=DIRECTION('',(1.E0,0.E0,0.E0));
++#1882=AXIS2_PLACEMENT_3D('',#1879,#1880,#1881);
++#1884=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
++#1885=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1886=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1887=AXIS2_PLACEMENT_3D('',#1884,#1885,#1886);
++#1889=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1890=VECTOR('',#1889,1.E0);
++#1891=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
++#1892=LINE('',#1891,#1890);
++#1893=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1894=VECTOR('',#1893,1.E0);
++#1895=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
++#1896=LINE('',#1895,#1894);
++#1897=DIRECTION('',(0.E0,1.E0,0.E0));
++#1898=VECTOR('',#1897,2.5E0);
++#1899=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
++#1900=LINE('',#1899,#1898);
++#1901=DIRECTION('',(0.E0,0.E0,1.E0));
++#1902=VECTOR('',#1901,2.E0);
++#1903=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
++#1904=LINE('',#1903,#1902);
++#1905=DIRECTION('',(0.E0,1.E0,0.E0));
++#1906=VECTOR('',#1905,1.5E0);
++#1907=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
++#1908=LINE('',#1907,#1906);
++#1909=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1910=VECTOR('',#1909,7.071067811865E-1);
++#1911=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
++#1912=LINE('',#1911,#1910);
++#1913=DIRECTION('',(0.E0,1.E0,0.E0));
++#1914=VECTOR('',#1913,1.5E0);
++#1915=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
++#1916=LINE('',#1915,#1914);
++#1917=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#1918=VECTOR('',#1917,7.071067811865E-1);
++#1919=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
++#1920=LINE('',#1919,#1918);
++#1921=DIRECTION('',(0.E0,0.E0,1.E0));
++#1922=VECTOR('',#1921,2.E0);
++#1923=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
++#1924=LINE('',#1923,#1922);
++#1925=DIRECTION('',(0.E0,0.E0,1.E0));
++#1926=VECTOR('',#1925,2.E0);
++#1927=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
++#1928=LINE('',#1927,#1926);
++#1929=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
++#1930=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1931=DIRECTION('',(1.E0,0.E0,0.E0));
++#1932=AXIS2_PLACEMENT_3D('',#1929,#1930,#1931);
++#1934=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
++#1935=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1936=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1937=AXIS2_PLACEMENT_3D('',#1934,#1935,#1936);
++#1939=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
++#1940=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1941=DIRECTION('',(1.E0,0.E0,0.E0));
++#1942=AXIS2_PLACEMENT_3D('',#1939,#1940,#1941);
++#1944=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
++#1945=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1946=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1947=AXIS2_PLACEMENT_3D('',#1944,#1945,#1946);
++#1949=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1950=VECTOR('',#1949,3.75E-1);
++#1951=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
++#1952=LINE('',#1951,#1950);
++#1953=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1954=VECTOR('',#1953,3.75E-1);
++#1955=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
++#1956=LINE('',#1955,#1954);
++#1957=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
++#1958=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1959=DIRECTION('',(1.E0,0.E0,0.E0));
++#1960=AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);
++#1962=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
++#1963=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1964=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1965=AXIS2_PLACEMENT_3D('',#1962,#1963,#1964);
++#1967=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1968=VECTOR('',#1967,2.5E-1);
++#1969=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
++#1970=LINE('',#1969,#1968);
++#1971=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1972=VECTOR('',#1971,2.5E-1);
++#1973=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
++#1974=LINE('',#1973,#1972);
++#1975=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
++#1976=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1977=DIRECTION('',(1.E0,0.E0,0.E0));
++#1978=AXIS2_PLACEMENT_3D('',#1975,#1976,#1977);
++#1980=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
++#1981=DIRECTION('',(0.E0,-1.E0,0.E0));
++#1982=DIRECTION('',(-1.E0,0.E0,0.E0));
++#1983=AXIS2_PLACEMENT_3D('',#1980,#1981,#1982);
++#1985=DIRECTION('',(0.E0,0.E0,1.E0));
++#1986=VECTOR('',#1985,5.E-1);
++#1987=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
++#1988=LINE('',#1987,#1986);
++#1989=CARTESIAN_POINT('',(2.15E0,6.65E0,1.E1));
++#1990=DIRECTION('',(0.E0,0.E0,1.E0));
++#1991=DIRECTION('',(1.E0,0.E0,0.E0));
++#1992=AXIS2_PLACEMENT_3D('',#1989,#1990,#1991);
++#1994=DIRECTION('',(0.E0,0.E0,1.E0));
++#1995=VECTOR('',#1994,5.E-1);
++#1996=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
++#1997=LINE('',#1996,#1995);
++#1998=CARTESIAN_POINT('',(2.15E0,6.65E0,9.5E0));
++#1999=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2000=DIRECTION('',(0.E0,1.E0,0.E0));
++#2001=AXIS2_PLACEMENT_3D('',#1998,#1999,#2000);
++#2003=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2004=VECTOR('',#2003,4.3E0);
++#2005=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
++#2006=LINE('',#2005,#2004);
++#2007=DIRECTION('',(1.E0,0.E0,0.E0));
++#2008=VECTOR('',#2007,1.972007605460E-1);
++#2009=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
++#2010=LINE('',#2009,#2008);
++#2011=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
++#2012=VECTOR('',#2011,2.059126028197E0);
++#2013=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
++#2014=LINE('',#2013,#2012);
++#2015=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2016=VECTOR('',#2015,1.197200760546E0);
++#2017=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
++#2018=LINE('',#2017,#2016);
++#2019=DIRECTION('',(0.E0,1.E0,0.E0));
++#2020=VECTOR('',#2019,6.8E0);
++#2021=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
++#2022=LINE('',#2021,#2020);
++#2023=DIRECTION('',(1.E0,0.E0,0.E0));
++#2024=VECTOR('',#2023,1.3E0);
++#2025=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
++#2026=LINE('',#2025,#2024);
++#2027=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2028=VECTOR('',#2027,5.E-1);
++#2029=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
++#2030=LINE('',#2029,#2028);
++#2031=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.E1));
++#2032=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2033=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2034=AXIS2_PLACEMENT_3D('',#2031,#2032,#2033);
++#2036=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2037=VECTOR('',#2036,5.E-1);
++#2038=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
++#2039=LINE('',#2038,#2037);
++#2040=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,9.5E0));
++#2041=DIRECTION('',(0.E0,0.E0,1.E0));
++#2042=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#2043=AXIS2_PLACEMENT_3D('',#2040,#2041,#2042);
++#2045=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2046=VECTOR('',#2045,5.E-1);
++#2047=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
++#2048=LINE('',#2047,#2046);
++#2049=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.E1));
++#2050=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2051=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#2052=AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);
++#2054=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2055=VECTOR('',#2054,5.E-1);
++#2056=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
++#2057=LINE('',#2056,#2055);
++#2058=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,9.5E0));
++#2059=DIRECTION('',(0.E0,0.E0,1.E0));
++#2060=DIRECTION('',(0.E0,1.E0,0.E0));
++#2061=AXIS2_PLACEMENT_3D('',#2058,#2059,#2060);
++#2063=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2064=VECTOR('',#2063,5.E-1);
++#2065=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
++#2066=LINE('',#2065,#2064);
++#2067=CARTESIAN_POINT('',(4.15E0,9.15E0,1.E1));
++#2068=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2069=DIRECTION('',(0.E0,1.E0,0.E0));
++#2070=AXIS2_PLACEMENT_3D('',#2067,#2068,#2069);
++#2072=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2073=VECTOR('',#2072,5.E-1);
++#2074=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
++#2075=LINE('',#2074,#2073);
++#2076=CARTESIAN_POINT('',(4.15E0,9.15E0,9.5E0));
++#2077=DIRECTION('',(0.E0,0.E0,1.E0));
++#2078=DIRECTION('',(1.E0,0.E0,0.E0));
++#2079=AXIS2_PLACEMENT_3D('',#2076,#2077,#2078);
++#2081=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2082=VECTOR('',#2081,5.E-1);
++#2083=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
++#2084=LINE('',#2083,#2082);
++#2085=CARTESIAN_POINT('',(4.15E0,2.35E0,1.E1));
++#2086=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2087=DIRECTION('',(1.E0,0.E0,0.E0));
++#2088=AXIS2_PLACEMENT_3D('',#2085,#2086,#2087);
++#2090=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2091=VECTOR('',#2090,5.E-1);
++#2092=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
++#2093=LINE('',#2092,#2091);
++#2094=CARTESIAN_POINT('',(4.15E0,2.35E0,9.5E0));
++#2095=DIRECTION('',(0.E0,0.E0,1.E0));
++#2096=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2097=AXIS2_PLACEMENT_3D('',#2094,#2095,#2096);
++#2099=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2100=VECTOR('',#2099,5.E-1);
++#2101=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
++#2102=LINE('',#2101,#2100);
++#2103=CARTESIAN_POINT('',(2.85E0,2.35E0,1.E1));
++#2104=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2105=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2106=AXIS2_PLACEMENT_3D('',#2103,#2104,#2105);
++#2108=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2109=VECTOR('',#2108,5.E-1);
++#2110=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
++#2111=LINE('',#2110,#2109);
++#2112=CARTESIAN_POINT('',(2.85E0,2.35E0,9.5E0));
++#2113=DIRECTION('',(0.E0,0.E0,1.E0));
++#2114=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2115=AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);
++#2117=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2118=VECTOR('',#2117,1.5E0);
++#2119=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
++#2120=LINE('',#2119,#2118);
++#2121=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#2122=VECTOR('',#2121,7.071067811865E-1);
++#2123=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
++#2124=LINE('',#2123,#2122);
++#2125=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2126=VECTOR('',#2125,1.5E0);
++#2127=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
++#2128=LINE('',#2127,#2126);
++#2129=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#2130=VECTOR('',#2129,7.071067811865E-1);
++#2131=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
++#2132=LINE('',#2131,#2130);
++#2133=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2134=VECTOR('',#2133,3.75E-1);
++#2135=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
++#2136=LINE('',#2135,#2134);
++#2137=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2138=VECTOR('',#2137,3.75E-1);
++#2139=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
++#2140=LINE('',#2139,#2138);
++#2141=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
++#2142=DIRECTION('',(0.E0,1.E0,0.E0));
++#2143=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2144=AXIS2_PLACEMENT_3D('',#2141,#2142,#2143);
++#2146=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
++#2147=DIRECTION('',(0.E0,1.E0,0.E0));
++#2148=DIRECTION('',(1.E0,0.E0,0.E0));
++#2149=AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);
++#2151=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2152=VECTOR('',#2151,2.5E-1);
++#2153=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
++#2154=LINE('',#2153,#2152);
++#2155=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2156=VECTOR('',#2155,2.5E-1);
++#2157=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
++#2158=LINE('',#2157,#2156);
++#2159=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
++#2160=DIRECTION('',(0.E0,1.E0,0.E0));
++#2161=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2162=AXIS2_PLACEMENT_3D('',#2159,#2160,#2161);
++#2164=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
++#2165=DIRECTION('',(0.E0,1.E0,0.E0));
++#2166=DIRECTION('',(1.E0,0.E0,0.E0));
++#2167=AXIS2_PLACEMENT_3D('',#2164,#2165,#2166);
++#2169=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
++#2170=VECTOR('',#2169,2.5E-1);
++#2171=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
++#2172=LINE('',#2171,#2170);
++#2173=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
++#2174=VECTOR('',#2173,2.5E-1);
++#2175=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
++#2176=LINE('',#2175,#2174);
++#2177=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
++#2178=VECTOR('',#2177,1.154700538379E-1);
++#2179=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
++#2180=LINE('',#2179,#2178);
++#2181=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
++#2182=VECTOR('',#2181,1.154700538379E-1);
++#2183=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
++#2184=LINE('',#2183,#2182);
++#2185=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
++#2186=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2187=DIRECTION('',(1.E0,0.E0,0.E0));
++#2188=AXIS2_PLACEMENT_3D('',#2185,#2186,#2187);
++#2190=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
++#2191=DIRECTION('',(0.E0,1.E0,0.E0));
++#2192=DIRECTION('',(1.E0,0.E0,0.E0));
++#2193=AXIS2_PLACEMENT_3D('',#2190,#2191,#2192);
++#2195=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
++#2196=VECTOR('',#2195,2.5E-1);
++#2197=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
++#2198=LINE('',#2197,#2196);
++#2199=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
++#2200=VECTOR('',#2199,2.5E-1);
++#2201=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
++#2202=LINE('',#2201,#2200);
++#2203=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
++#2204=VECTOR('',#2203,1.154700538379E-1);
++#2205=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
++#2206=LINE('',#2205,#2204);
++#2207=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
++#2208=VECTOR('',#2207,1.154700538379E-1);
++#2209=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
++#2210=LINE('',#2209,#2208);
++#2211=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
++#2212=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2213=DIRECTION('',(1.E0,0.E0,0.E0));
++#2214=AXIS2_PLACEMENT_3D('',#2211,#2212,#2213);
++#2216=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
++#2217=DIRECTION('',(0.E0,1.E0,0.E0));
++#2218=DIRECTION('',(1.E0,0.E0,0.E0));
++#2219=AXIS2_PLACEMENT_3D('',#2216,#2217,#2218);
++#2221=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2222=VECTOR('',#2221,5.E-1);
++#2223=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
++#2224=LINE('',#2223,#2222);
++#2225=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2226=VECTOR('',#2225,5.E-1);
++#2227=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
++#2228=LINE('',#2227,#2226);
++#2229=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
++#2230=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2231=DIRECTION('',(1.E0,0.E0,0.E0));
++#2232=AXIS2_PLACEMENT_3D('',#2229,#2230,#2231);
++#2234=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
++#2235=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2236=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2237=AXIS2_PLACEMENT_3D('',#2234,#2235,#2236);
++#2239=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
++#2240=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2241=DIRECTION('',(1.E0,0.E0,0.E0));
++#2242=AXIS2_PLACEMENT_3D('',#2239,#2240,#2241);
++#2244=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
++#2245=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2246=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2247=AXIS2_PLACEMENT_3D('',#2244,#2245,#2246);
++#2249=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2250=VECTOR('',#2249,1.E0);
++#2251=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
++#2252=LINE('',#2251,#2250);
++#2253=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2254=VECTOR('',#2253,1.E0);
++#2255=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
++#2256=LINE('',#2255,#2254);
++#2257=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2258=VECTOR('',#2257,5.E-1);
++#2259=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
++#2260=LINE('',#2259,#2258);
++#2261=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2262=VECTOR('',#2261,5.E-1);
++#2263=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
++#2264=LINE('',#2263,#2262);
++#2265=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
++#2266=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2267=DIRECTION('',(1.E0,0.E0,0.E0));
++#2268=AXIS2_PLACEMENT_3D('',#2265,#2266,#2267);
++#2270=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
++#2271=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2272=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2273=AXIS2_PLACEMENT_3D('',#2270,#2271,#2272);
++#2275=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
++#2276=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2277=DIRECTION('',(1.E0,0.E0,0.E0));
++#2278=AXIS2_PLACEMENT_3D('',#2275,#2276,#2277);
++#2280=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
++#2281=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2282=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2283=AXIS2_PLACEMENT_3D('',#2280,#2281,#2282);
++#2285=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2286=VECTOR('',#2285,1.E0);
++#2287=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
++#2288=LINE('',#2287,#2286);
++#2289=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2290=VECTOR('',#2289,1.E0);
++#2291=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
++#2292=LINE('',#2291,#2290);
++#2293=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2294=VECTOR('',#2293,5.E-1);
++#2295=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
++#2296=LINE('',#2295,#2294);
++#2297=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2298=VECTOR('',#2297,5.E-1);
++#2299=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
++#2300=LINE('',#2299,#2298);
++#2301=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
++#2302=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2303=DIRECTION('',(1.E0,0.E0,0.E0));
++#2304=AXIS2_PLACEMENT_3D('',#2301,#2302,#2303);
++#2306=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
++#2307=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2308=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308);
++#2311=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
++#2312=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2313=DIRECTION('',(1.E0,0.E0,0.E0));
++#2314=AXIS2_PLACEMENT_3D('',#2311,#2312,#2313);
++#2316=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
++#2317=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2318=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2319=AXIS2_PLACEMENT_3D('',#2316,#2317,#2318);
++#2321=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2322=VECTOR('',#2321,1.E0);
++#2323=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
++#2324=LINE('',#2323,#2322);
++#2325=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2326=VECTOR('',#2325,1.E0);
++#2327=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
++#2328=LINE('',#2327,#2326);
++#2329=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2330=VECTOR('',#2329,5.E-1);
++#2331=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
++#2332=LINE('',#2331,#2330);
++#2333=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2334=VECTOR('',#2333,5.E-1);
++#2335=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
++#2336=LINE('',#2335,#2334);
++#2337=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
++#2338=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2339=DIRECTION('',(1.E0,0.E0,0.E0));
++#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339);
++#2342=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
++#2343=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2344=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2345=AXIS2_PLACEMENT_3D('',#2342,#2343,#2344);
++#2347=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
++#2348=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2349=DIRECTION('',(1.E0,0.E0,0.E0));
++#2350=AXIS2_PLACEMENT_3D('',#2347,#2348,#2349);
++#2352=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
++#2353=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2354=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2355=AXIS2_PLACEMENT_3D('',#2352,#2353,#2354);
++#2357=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2358=VECTOR('',#2357,1.E0);
++#2359=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
++#2360=LINE('',#2359,#2358);
++#2361=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2362=VECTOR('',#2361,1.E0);
++#2363=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
++#2364=LINE('',#2363,#2362);
++#2365=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2366=VECTOR('',#2365,5.E-1);
++#2367=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
++#2368=LINE('',#2367,#2366);
++#2369=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2370=VECTOR('',#2369,5.E-1);
++#2371=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
++#2372=LINE('',#2371,#2370);
++#2373=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
++#2374=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2375=DIRECTION('',(1.E0,0.E0,0.E0));
++#2376=AXIS2_PLACEMENT_3D('',#2373,#2374,#2375);
++#2378=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
++#2379=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2380=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2381=AXIS2_PLACEMENT_3D('',#2378,#2379,#2380);
++#2383=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
++#2384=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2385=DIRECTION('',(1.E0,0.E0,0.E0));
++#2386=AXIS2_PLACEMENT_3D('',#2383,#2384,#2385);
++#2388=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
++#2389=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2390=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2391=AXIS2_PLACEMENT_3D('',#2388,#2389,#2390);
++#2393=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2394=VECTOR('',#2393,1.E0);
++#2395=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
++#2396=LINE('',#2395,#2394);
++#2397=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2398=VECTOR('',#2397,1.E0);
++#2399=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
++#2400=LINE('',#2399,#2398);
++#2401=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2402=VECTOR('',#2401,5.E-1);
++#2403=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
++#2404=LINE('',#2403,#2402);
++#2405=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2406=VECTOR('',#2405,5.E-1);
++#2407=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
++#2408=LINE('',#2407,#2406);
++#2409=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
++#2410=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2411=DIRECTION('',(1.E0,0.E0,0.E0));
++#2412=AXIS2_PLACEMENT_3D('',#2409,#2410,#2411);
++#2414=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
++#2415=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2416=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2417=AXIS2_PLACEMENT_3D('',#2414,#2415,#2416);
++#2419=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
++#2420=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2421=DIRECTION('',(1.E0,0.E0,0.E0));
++#2422=AXIS2_PLACEMENT_3D('',#2419,#2420,#2421);
++#2424=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
++#2425=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2426=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2427=AXIS2_PLACEMENT_3D('',#2424,#2425,#2426);
++#2429=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2430=VECTOR('',#2429,1.E0);
++#2431=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
++#2432=LINE('',#2431,#2430);
++#2433=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2434=VECTOR('',#2433,1.E0);
++#2435=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
++#2436=LINE('',#2435,#2434);
++#2437=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2438=VECTOR('',#2437,5.E-1);
++#2439=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
++#2440=LINE('',#2439,#2438);
++#2441=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2442=VECTOR('',#2441,5.E-1);
++#2443=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
++#2444=LINE('',#2443,#2442);
++#2445=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
++#2446=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2447=DIRECTION('',(1.E0,0.E0,0.E0));
++#2448=AXIS2_PLACEMENT_3D('',#2445,#2446,#2447);
++#2450=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
++#2451=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2452=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2453=AXIS2_PLACEMENT_3D('',#2450,#2451,#2452);
++#2455=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
++#2456=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2457=DIRECTION('',(1.E0,0.E0,0.E0));
++#2458=AXIS2_PLACEMENT_3D('',#2455,#2456,#2457);
++#2460=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
++#2461=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2462=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2463=AXIS2_PLACEMENT_3D('',#2460,#2461,#2462);
++#2465=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2466=VECTOR('',#2465,1.E0);
++#2467=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
++#2468=LINE('',#2467,#2466);
++#2469=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2470=VECTOR('',#2469,1.E0);
++#2471=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
++#2472=LINE('',#2471,#2470);
++#2473=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2474=VECTOR('',#2473,5.E-1);
++#2475=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
++#2476=LINE('',#2475,#2474);
++#2477=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2478=VECTOR('',#2477,5.E-1);
++#2479=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
++#2480=LINE('',#2479,#2478);
++#2481=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
++#2482=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2483=DIRECTION('',(1.E0,0.E0,0.E0));
++#2484=AXIS2_PLACEMENT_3D('',#2481,#2482,#2483);
++#2486=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
++#2487=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2488=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2489=AXIS2_PLACEMENT_3D('',#2486,#2487,#2488);
++#2491=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
++#2492=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2493=DIRECTION('',(1.E0,0.E0,0.E0));
++#2494=AXIS2_PLACEMENT_3D('',#2491,#2492,#2493);
++#2496=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
++#2497=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2498=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2499=AXIS2_PLACEMENT_3D('',#2496,#2497,#2498);
++#2501=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2502=VECTOR('',#2501,1.E0);
++#2503=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
++#2504=LINE('',#2503,#2502);
++#2505=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2506=VECTOR('',#2505,1.E0);
++#2507=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
++#2508=LINE('',#2507,#2506);
++#2509=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2510=VECTOR('',#2509,5.E-1);
++#2511=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
++#2512=LINE('',#2511,#2510);
++#2513=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2514=VECTOR('',#2513,5.E-1);
++#2515=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
++#2516=LINE('',#2515,#2514);
++#2517=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
++#2518=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2519=DIRECTION('',(1.E0,0.E0,0.E0));
++#2520=AXIS2_PLACEMENT_3D('',#2517,#2518,#2519);
++#2522=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
++#2523=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2524=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2525=AXIS2_PLACEMENT_3D('',#2522,#2523,#2524);
++#2527=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
++#2528=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2529=DIRECTION('',(1.E0,0.E0,0.E0));
++#2530=AXIS2_PLACEMENT_3D('',#2527,#2528,#2529);
++#2532=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
++#2533=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2534=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2535=AXIS2_PLACEMENT_3D('',#2532,#2533,#2534);
++#2537=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2538=VECTOR('',#2537,1.E0);
++#2539=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
++#2540=LINE('',#2539,#2538);
++#2541=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2542=VECTOR('',#2541,1.E0);
++#2543=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
++#2544=LINE('',#2543,#2542);
++#2545=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2546=VECTOR('',#2545,5.E-1);
++#2547=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
++#2548=LINE('',#2547,#2546);
++#2549=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2550=VECTOR('',#2549,5.E-1);
++#2551=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
++#2552=LINE('',#2551,#2550);
++#2553=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
++#2554=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2555=DIRECTION('',(1.E0,0.E0,0.E0));
++#2556=AXIS2_PLACEMENT_3D('',#2553,#2554,#2555);
++#2558=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
++#2559=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2560=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2561=AXIS2_PLACEMENT_3D('',#2558,#2559,#2560);
++#2563=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
++#2564=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2565=DIRECTION('',(1.E0,0.E0,0.E0));
++#2566=AXIS2_PLACEMENT_3D('',#2563,#2564,#2565);
++#2568=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
++#2569=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2570=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2571=AXIS2_PLACEMENT_3D('',#2568,#2569,#2570);
++#2573=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2574=VECTOR('',#2573,1.E0);
++#2575=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
++#2576=LINE('',#2575,#2574);
++#2577=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2578=VECTOR('',#2577,1.E0);
++#2579=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
++#2580=LINE('',#2579,#2578);
++#2581=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2582=VECTOR('',#2581,5.E-1);
++#2583=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
++#2584=LINE('',#2583,#2582);
++#2585=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2586=VECTOR('',#2585,5.E-1);
++#2587=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
++#2588=LINE('',#2587,#2586);
++#2589=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
++#2590=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2591=DIRECTION('',(1.E0,0.E0,0.E0));
++#2592=AXIS2_PLACEMENT_3D('',#2589,#2590,#2591);
++#2594=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
++#2595=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2596=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2597=AXIS2_PLACEMENT_3D('',#2594,#2595,#2596);
++#2599=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
++#2600=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2601=DIRECTION('',(1.E0,0.E0,0.E0));
++#2602=AXIS2_PLACEMENT_3D('',#2599,#2600,#2601);
++#2604=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
++#2605=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2606=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2607=AXIS2_PLACEMENT_3D('',#2604,#2605,#2606);
++#2609=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2610=VECTOR('',#2609,1.E0);
++#2611=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
++#2612=LINE('',#2611,#2610);
++#2613=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2614=VECTOR('',#2613,1.E0);
++#2615=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
++#2616=LINE('',#2615,#2614);
++#2617=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2618=VECTOR('',#2617,5.E-1);
++#2619=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
++#2620=LINE('',#2619,#2618);
++#2621=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2622=VECTOR('',#2621,5.E-1);
++#2623=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
++#2624=LINE('',#2623,#2622);
++#2625=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
++#2626=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2627=DIRECTION('',(1.E0,0.E0,0.E0));
++#2628=AXIS2_PLACEMENT_3D('',#2625,#2626,#2627);
++#2630=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
++#2631=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2632=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2633=AXIS2_PLACEMENT_3D('',#2630,#2631,#2632);
++#2635=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
++#2636=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2637=DIRECTION('',(1.E0,0.E0,0.E0));
++#2638=AXIS2_PLACEMENT_3D('',#2635,#2636,#2637);
++#2640=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
++#2641=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2642=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2643=AXIS2_PLACEMENT_3D('',#2640,#2641,#2642);
++#2645=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2646=VECTOR('',#2645,1.E0);
++#2647=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
++#2648=LINE('',#2647,#2646);
++#2649=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2650=VECTOR('',#2649,1.E0);
++#2651=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
++#2652=LINE('',#2651,#2650);
++#2653=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2654=VECTOR('',#2653,5.E-1);
++#2655=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
++#2656=LINE('',#2655,#2654);
++#2657=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2658=VECTOR('',#2657,5.E-1);
++#2659=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
++#2660=LINE('',#2659,#2658);
++#2661=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
++#2662=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2663=DIRECTION('',(1.E0,0.E0,0.E0));
++#2664=AXIS2_PLACEMENT_3D('',#2661,#2662,#2663);
++#2666=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
++#2667=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2668=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2669=AXIS2_PLACEMENT_3D('',#2666,#2667,#2668);
++#2671=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
++#2672=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2673=DIRECTION('',(1.E0,0.E0,0.E0));
++#2674=AXIS2_PLACEMENT_3D('',#2671,#2672,#2673);
++#2676=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
++#2677=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2678=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2679=AXIS2_PLACEMENT_3D('',#2676,#2677,#2678);
++#2681=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2682=VECTOR('',#2681,1.E0);
++#2683=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
++#2684=LINE('',#2683,#2682);
++#2685=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2686=VECTOR('',#2685,1.E0);
++#2687=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
++#2688=LINE('',#2687,#2686);
++#2689=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2690=VECTOR('',#2689,5.E-1);
++#2691=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
++#2692=LINE('',#2691,#2690);
++#2693=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2694=VECTOR('',#2693,5.E-1);
++#2695=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
++#2696=LINE('',#2695,#2694);
++#2697=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
++#2698=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2699=DIRECTION('',(1.E0,0.E0,0.E0));
++#2700=AXIS2_PLACEMENT_3D('',#2697,#2698,#2699);
++#2702=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
++#2703=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2704=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2705=AXIS2_PLACEMENT_3D('',#2702,#2703,#2704);
++#2707=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
++#2708=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2709=DIRECTION('',(1.E0,0.E0,0.E0));
++#2710=AXIS2_PLACEMENT_3D('',#2707,#2708,#2709);
++#2712=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
++#2713=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2714=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2715=AXIS2_PLACEMENT_3D('',#2712,#2713,#2714);
++#2717=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2718=VECTOR('',#2717,1.E0);
++#2719=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
++#2720=LINE('',#2719,#2718);
++#2721=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2722=VECTOR('',#2721,1.E0);
++#2723=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
++#2724=LINE('',#2723,#2722);
++#2725=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2726=VECTOR('',#2725,5.E-1);
++#2727=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
++#2728=LINE('',#2727,#2726);
++#2729=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2730=VECTOR('',#2729,5.E-1);
++#2731=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
++#2732=LINE('',#2731,#2730);
++#2733=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
++#2734=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2735=DIRECTION('',(1.E0,0.E0,0.E0));
++#2736=AXIS2_PLACEMENT_3D('',#2733,#2734,#2735);
++#2738=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
++#2739=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2740=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2741=AXIS2_PLACEMENT_3D('',#2738,#2739,#2740);
++#2743=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
++#2744=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2745=DIRECTION('',(1.E0,0.E0,0.E0));
++#2746=AXIS2_PLACEMENT_3D('',#2743,#2744,#2745);
++#2748=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
++#2749=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2750=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2751=AXIS2_PLACEMENT_3D('',#2748,#2749,#2750);
++#2753=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2754=VECTOR('',#2753,1.E0);
++#2755=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
++#2756=LINE('',#2755,#2754);
++#2757=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2758=VECTOR('',#2757,1.E0);
++#2759=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
++#2760=LINE('',#2759,#2758);
++#2761=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2762=VECTOR('',#2761,5.E-1);
++#2763=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
++#2764=LINE('',#2763,#2762);
++#2765=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2766=VECTOR('',#2765,5.E-1);
++#2767=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
++#2768=LINE('',#2767,#2766);
++#2769=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
++#2770=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2771=DIRECTION('',(1.E0,0.E0,0.E0));
++#2772=AXIS2_PLACEMENT_3D('',#2769,#2770,#2771);
++#2774=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
++#2775=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2776=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2777=AXIS2_PLACEMENT_3D('',#2774,#2775,#2776);
++#2779=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
++#2780=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2781=DIRECTION('',(1.E0,0.E0,0.E0));
++#2782=AXIS2_PLACEMENT_3D('',#2779,#2780,#2781);
++#2784=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
++#2785=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2786=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2787=AXIS2_PLACEMENT_3D('',#2784,#2785,#2786);
++#2789=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2790=VECTOR('',#2789,1.E0);
++#2791=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
++#2792=LINE('',#2791,#2790);
++#2793=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2794=VECTOR('',#2793,1.E0);
++#2795=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
++#2796=LINE('',#2795,#2794);
++#2797=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2798=VECTOR('',#2797,5.E-1);
++#2799=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
++#2800=LINE('',#2799,#2798);
++#2801=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2802=VECTOR('',#2801,5.E-1);
++#2803=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
++#2804=LINE('',#2803,#2802);
++#2805=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
++#2806=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2807=DIRECTION('',(1.E0,0.E0,0.E0));
++#2808=AXIS2_PLACEMENT_3D('',#2805,#2806,#2807);
++#2810=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
++#2811=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2812=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2813=AXIS2_PLACEMENT_3D('',#2810,#2811,#2812);
++#2815=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
++#2816=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2817=DIRECTION('',(1.E0,0.E0,0.E0));
++#2818=AXIS2_PLACEMENT_3D('',#2815,#2816,#2817);
++#2820=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
++#2821=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2822=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2823=AXIS2_PLACEMENT_3D('',#2820,#2821,#2822);
++#2825=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2826=VECTOR('',#2825,1.E0);
++#2827=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
++#2828=LINE('',#2827,#2826);
++#2829=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2830=VECTOR('',#2829,1.E0);
++#2831=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
++#2832=LINE('',#2831,#2830);
++#2833=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2834=VECTOR('',#2833,5.E-1);
++#2835=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
++#2836=LINE('',#2835,#2834);
++#2837=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2838=VECTOR('',#2837,5.E-1);
++#2839=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
++#2840=LINE('',#2839,#2838);
++#2841=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
++#2842=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2843=DIRECTION('',(1.E0,0.E0,0.E0));
++#2844=AXIS2_PLACEMENT_3D('',#2841,#2842,#2843);
++#2846=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
++#2847=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2848=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2849=AXIS2_PLACEMENT_3D('',#2846,#2847,#2848);
++#2851=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
++#2852=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2853=DIRECTION('',(1.E0,0.E0,0.E0));
++#2854=AXIS2_PLACEMENT_3D('',#2851,#2852,#2853);
++#2856=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
++#2857=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2858=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2859=AXIS2_PLACEMENT_3D('',#2856,#2857,#2858);
++#2861=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2862=VECTOR('',#2861,1.E0);
++#2863=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
++#2864=LINE('',#2863,#2862);
++#2865=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2866=VECTOR('',#2865,1.E0);
++#2867=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
++#2868=LINE('',#2867,#2866);
++#2869=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
++#2870=VECTOR('',#2869,5.773502691896E0);
++#2871=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
++#2872=LINE('',#2871,#2870);
++#2873=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
++#2874=CARTESIAN_POINT('',(2.31325E1,2.930774450068E0,1.206069333205E1));
++#2875=CARTESIAN_POINT('',(2.309416136180E1,2.745461691651E0,1.216768370301E1));
++#2876=CARTESIAN_POINT('',(2.297013771881E1,2.608885438662E0,1.224653603944E1));
++#2877=CARTESIAN_POINT('',(2.2875E1,2.580400233539E0,1.226298198028E1));
++#2878=CARTESIAN_POINT('',(2.277986228119E1,2.608885438662E0,1.224653603944E1));
++#2879=CARTESIAN_POINT('',(2.265583863820E1,2.745461691651E0,1.216768370301E1));
++#2880=CARTESIAN_POINT('',(2.26175E1,2.930774450068E0,1.206069333205E1));
++#2881=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
++#2883=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
++#2884=CARTESIAN_POINT('',(2.26175E1,3.141022319657E0,1.193930666795E1));
++#2885=CARTESIAN_POINT('',(2.265583863820E1,3.326335078073E0,1.183231629699E1));
++#2886=CARTESIAN_POINT('',(2.277986228119E1,3.462911331062E0,1.175346396056E1));
++#2887=CARTESIAN_POINT('',(2.2875E1,3.491396536186E0,1.173701801972E1));
++#2888=CARTESIAN_POINT('',(2.297013771881E1,3.462911331062E0,1.175346396056E1));
++#2889=CARTESIAN_POINT('',(2.309416136180E1,3.326335078073E0,1.183231629699E1));
++#2890=CARTESIAN_POINT('',(2.31325E1,3.141022319657E0,1.193930666795E1));
++#2891=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
++#2893=DIRECTION('',(0.E0,1.E0,0.E0));
++#2894=VECTOR('',#2893,2.035898384862E0);
++#2895=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
++#2896=LINE('',#2895,#2894);
++#2897=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2898=VECTOR('',#2897,2.035898384862E0);
++#2899=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
++#2900=LINE('',#2899,#2898);
++#2901=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
++#2902=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2903=DIRECTION('',(1.E0,0.E0,0.E0));
++#2904=AXIS2_PLACEMENT_3D('',#2901,#2902,#2903);
++#2906=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
++#2907=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2908=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2909=AXIS2_PLACEMENT_3D('',#2906,#2907,#2908);
++#2911=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
++#2912=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2913=DIRECTION('',(1.E0,0.E0,0.E0));
++#2914=AXIS2_PLACEMENT_3D('',#2911,#2912,#2913);
++#2916=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
++#2917=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2918=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2919=AXIS2_PLACEMENT_3D('',#2916,#2917,#2918);
++#2921=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2922=VECTOR('',#2921,1.E0);
++#2923=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
++#2924=LINE('',#2923,#2922);
++#2925=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2926=VECTOR('',#2925,1.E0);
++#2927=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
++#2928=LINE('',#2927,#2926);
++#2929=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2930=VECTOR('',#2929,5.E-1);
++#2931=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
++#2932=LINE('',#2931,#2930);
++#2933=CARTESIAN_POINT('',(2.185E1,6.65E0,9.5E0));
++#2934=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2935=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2936=AXIS2_PLACEMENT_3D('',#2933,#2934,#2935);
++#2938=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2939=VECTOR('',#2938,5.E-1);
++#2940=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
++#2941=LINE('',#2940,#2939);
++#2942=CARTESIAN_POINT('',(2.185E1,6.65E0,1.E1));
++#2943=DIRECTION('',(0.E0,0.E0,1.E0));
++#2944=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
++#2945=AXIS2_PLACEMENT_3D('',#2942,#2943,#2944);
++#2947=DIRECTION('',(0.E0,0.E0,1.E0));
++#2948=VECTOR('',#2947,5.E-1);
++#2949=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
++#2950=LINE('',#2949,#2948);
++#2951=CARTESIAN_POINT('',(2.115E1,2.35E0,9.5E0));
++#2952=DIRECTION('',(0.E0,0.E0,1.E0));
++#2953=DIRECTION('',(0.E0,-1.E0,0.E0));
++#2954=AXIS2_PLACEMENT_3D('',#2951,#2952,#2953);
++#2956=DIRECTION('',(0.E0,0.E0,1.E0));
++#2957=VECTOR('',#2956,5.E-1);
++#2958=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
++#2959=LINE('',#2958,#2957);
++#2960=CARTESIAN_POINT('',(2.115E1,2.35E0,1.E1));
++#2961=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2962=DIRECTION('',(1.E0,0.E0,0.E0));
++#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962);
++#2965=DIRECTION('',(0.E0,0.E0,1.E0));
++#2966=VECTOR('',#2965,5.E-1);
++#2967=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
++#2968=LINE('',#2967,#2966);
++#2969=CARTESIAN_POINT('',(1.985E1,2.35E0,9.5E0));
++#2970=DIRECTION('',(0.E0,0.E0,1.E0));
++#2971=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2972=AXIS2_PLACEMENT_3D('',#2969,#2970,#2971);
++#2974=DIRECTION('',(0.E0,0.E0,1.E0));
++#2975=VECTOR('',#2974,5.E-1);
++#2976=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
++#2977=LINE('',#2976,#2975);
++#2978=CARTESIAN_POINT('',(1.985E1,2.35E0,1.E1));
++#2979=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2980=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
++#2981=AXIS2_PLACEMENT_3D('',#2978,#2979,#2980);
++#2983=DIRECTION('',(0.E0,0.E0,1.E0));
++#2984=VECTOR('',#2983,5.E-1);
++#2985=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
++#2986=LINE('',#2985,#2984);
++#2987=CARTESIAN_POINT('',(1.985E1,9.15E0,9.5E0));
++#2988=DIRECTION('',(0.E0,0.E0,1.E0));
++#2989=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
++#2990=AXIS2_PLACEMENT_3D('',#2987,#2988,#2989);
++#2992=DIRECTION('',(0.E0,0.E0,1.E0));
++#2993=VECTOR('',#2992,5.E-1);
++#2994=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
++#2995=LINE('',#2994,#2993);
++#2996=CARTESIAN_POINT('',(1.985E1,9.15E0,1.E1));
++#2997=DIRECTION('',(0.E0,0.E0,-1.E0));
++#2998=DIRECTION('',(-1.E0,0.E0,0.E0));
++#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998);
++#3001=DIRECTION('',(0.E0,0.E0,1.E0));
++#3002=VECTOR('',#3001,5.E-1);
++#3003=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
++#3004=LINE('',#3003,#3002);
++#3005=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.5E0));
++#3006=DIRECTION('',(0.E0,0.E0,1.E0));
++#3007=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
++#3008=AXIS2_PLACEMENT_3D('',#3005,#3006,#3007);
++#3010=DIRECTION('',(0.E0,0.E0,1.E0));
++#3011=VECTOR('',#3010,5.E-1);
++#3012=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
++#3013=LINE('',#3012,#3011);
++#3014=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,1.E1));
++#3015=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3016=DIRECTION('',(0.E0,1.E0,0.E0));
++#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016);
++#3019=DIRECTION('',(0.E0,0.E0,1.E0));
++#3020=VECTOR('',#3019,5.E-1);
++#3021=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
++#3022=LINE('',#3021,#3020);
++#3023=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.5E0));
++#3024=DIRECTION('',(0.E0,0.E0,1.E0));
++#3025=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3026=AXIS2_PLACEMENT_3D('',#3023,#3024,#3025);
++#3028=DIRECTION('',(0.E0,0.E0,1.E0));
++#3029=VECTOR('',#3028,5.E-1);
++#3030=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
++#3031=LINE('',#3030,#3029);
++#3032=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,1.E1));
++#3033=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3034=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
++#3035=AXIS2_PLACEMENT_3D('',#3032,#3033,#3034);
++#3037=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3038=VECTOR('',#3037,1.972007605460E-1);
++#3039=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
++#3040=LINE('',#3039,#3038);
++#3041=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3042=VECTOR('',#3041,4.3E0);
++#3043=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
++#3044=LINE('',#3043,#3042);
++#3045=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3046=VECTOR('',#3045,1.3E0);
++#3047=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
++#3048=LINE('',#3047,#3046);
++#3049=DIRECTION('',(0.E0,1.E0,0.E0));
++#3050=VECTOR('',#3049,6.8E0);
++#3051=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
++#3052=LINE('',#3051,#3050);
++#3053=DIRECTION('',(1.E0,0.E0,0.E0));
++#3054=VECTOR('',#3053,1.197200760546E0);
++#3055=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
++#3056=LINE('',#3055,#3054);
++#3057=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
++#3058=VECTOR('',#3057,2.059126028197E0);
++#3059=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
++#3060=LINE('',#3059,#3058);
++#3061=DIRECTION('',(0.E0,0.E0,1.E0));
++#3062=VECTOR('',#3061,2.5E-1);
++#3063=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
++#3064=LINE('',#3063,#3062);
++#3065=DIRECTION('',(0.E0,0.E0,1.E0));
++#3066=VECTOR('',#3065,2.5E-1);
++#3067=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
++#3068=LINE('',#3067,#3066);
++#3069=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
++#3070=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3071=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3072=AXIS2_PLACEMENT_3D('',#3069,#3070,#3071);
++#3074=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
++#3075=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3076=DIRECTION('',(1.E0,0.E0,0.E0));
++#3077=AXIS2_PLACEMENT_3D('',#3074,#3075,#3076);
++#3079=DIRECTION('',(0.E0,0.E0,1.E0));
++#3080=VECTOR('',#3079,2.5E-1);
++#3081=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
++#3082=LINE('',#3081,#3080);
++#3083=DIRECTION('',(0.E0,0.E0,1.E0));
++#3084=VECTOR('',#3083,2.5E-1);
++#3085=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
++#3086=LINE('',#3085,#3084);
++#3087=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
++#3088=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3089=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3090=AXIS2_PLACEMENT_3D('',#3087,#3088,#3089);
++#3092=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
++#3093=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3094=DIRECTION('',(1.E0,0.E0,0.E0));
++#3095=AXIS2_PLACEMENT_3D('',#3092,#3093,#3094);
++#3097=DIRECTION('',(0.E0,0.E0,1.E0));
++#3098=VECTOR('',#3097,2.5E-1);
++#3099=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
++#3100=LINE('',#3099,#3098);
++#3101=DIRECTION('',(0.E0,0.E0,1.E0));
++#3102=VECTOR('',#3101,2.5E-1);
++#3103=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
++#3104=LINE('',#3103,#3102);
++#3105=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
++#3106=DIRECTION('',(0.E0,0.E0,1.E0));
++#3107=DIRECTION('',(1.E0,0.E0,0.E0));
++#3108=AXIS2_PLACEMENT_3D('',#3105,#3106,#3107);
++#3110=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
++#3111=DIRECTION('',(0.E0,0.E0,1.E0));
++#3112=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3113=AXIS2_PLACEMENT_3D('',#3110,#3111,#3112);
++#3115=DIRECTION('',(0.E0,0.E0,1.E0));
++#3116=VECTOR('',#3115,2.5E-1);
++#3117=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
++#3118=LINE('',#3117,#3116);
++#3119=DIRECTION('',(0.E0,0.E0,1.E0));
++#3120=VECTOR('',#3119,2.5E-1);
++#3121=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
++#3122=LINE('',#3121,#3120);
++#3123=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
++#3124=DIRECTION('',(0.E0,0.E0,1.E0));
++#3125=DIRECTION('',(1.E0,0.E0,0.E0));
++#3126=AXIS2_PLACEMENT_3D('',#3123,#3124,#3125);
++#3128=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
++#3129=DIRECTION('',(0.E0,0.E0,1.E0));
++#3130=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3131=AXIS2_PLACEMENT_3D('',#3128,#3129,#3130);
++#3133=DIRECTION('',(0.E0,0.E0,1.E0));
++#3134=VECTOR('',#3133,2.5E-1);
++#3135=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
++#3136=LINE('',#3135,#3134);
++#3137=DIRECTION('',(0.E0,0.E0,1.E0));
++#3138=VECTOR('',#3137,2.5E-1);
++#3139=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
++#3140=LINE('',#3139,#3138);
++#3141=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
++#3142=DIRECTION('',(0.E0,0.E0,1.E0));
++#3143=DIRECTION('',(1.E0,0.E0,0.E0));
++#3144=AXIS2_PLACEMENT_3D('',#3141,#3142,#3143);
++#3146=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
++#3147=DIRECTION('',(0.E0,0.E0,1.E0));
++#3148=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3149=AXIS2_PLACEMENT_3D('',#3146,#3147,#3148);
++#3151=DIRECTION('',(0.E0,0.E0,1.E0));
++#3152=VECTOR('',#3151,5.E-1);
++#3153=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
++#3154=LINE('',#3153,#3152);
++#3155=CARTESIAN_POINT('',(3.75E0,2.75E0,8.E0));
++#3156=DIRECTION('',(0.E0,0.E0,1.E0));
++#3157=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3158=AXIS2_PLACEMENT_3D('',#3155,#3156,#3157);
++#3160=DIRECTION('',(0.E0,0.E0,1.E0));
++#3161=VECTOR('',#3160,5.E-1);
++#3162=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
++#3163=LINE('',#3162,#3161);
++#3164=CARTESIAN_POINT('',(3.75E0,2.75E0,8.5E0));
++#3165=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3166=DIRECTION('',(1.E0,0.E0,0.E0));
++#3167=AXIS2_PLACEMENT_3D('',#3164,#3165,#3166);
++#3169=DIRECTION('',(0.E0,0.E0,1.E0));
++#3170=VECTOR('',#3169,5.E-1);
++#3171=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
++#3172=LINE('',#3171,#3170);
++#3173=CARTESIAN_POINT('',(3.75E0,8.75E0,8.E0));
++#3174=DIRECTION('',(0.E0,0.E0,1.E0));
++#3175=DIRECTION('',(1.E0,0.E0,0.E0));
++#3176=AXIS2_PLACEMENT_3D('',#3173,#3174,#3175);
++#3178=DIRECTION('',(0.E0,0.E0,1.E0));
++#3179=VECTOR('',#3178,5.E-1);
++#3180=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
++#3181=LINE('',#3180,#3179);
++#3182=CARTESIAN_POINT('',(3.75E0,8.75E0,8.5E0));
++#3183=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3184=DIRECTION('',(0.E0,1.E0,0.E0));
++#3185=AXIS2_PLACEMENT_3D('',#3182,#3183,#3184);
++#3187=DIRECTION('',(0.E0,0.E0,1.E0));
++#3188=VECTOR('',#3187,5.E-1);
++#3189=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
++#3190=LINE('',#3189,#3188);
++#3191=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.E0));
++#3192=DIRECTION('',(0.E0,0.E0,1.E0));
++#3193=DIRECTION('',(0.E0,1.E0,0.E0));
++#3194=AXIS2_PLACEMENT_3D('',#3191,#3192,#3193);
++#3196=DIRECTION('',(0.E0,0.E0,1.E0));
++#3197=VECTOR('',#3196,5.E-1);
++#3198=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
++#3199=LINE('',#3198,#3197);
++#3200=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.5E0));
++#3201=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3202=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#3203=AXIS2_PLACEMENT_3D('',#3200,#3201,#3202);
++#3205=DIRECTION('',(0.E0,0.E0,1.E0));
++#3206=VECTOR('',#3205,5.E-1);
++#3207=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
++#3208=LINE('',#3207,#3206);
++#3209=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.E0));
++#3210=DIRECTION('',(0.E0,0.E0,1.E0));
++#3211=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#3212=AXIS2_PLACEMENT_3D('',#3209,#3210,#3211);
++#3214=DIRECTION('',(0.E0,0.E0,1.E0));
++#3215=VECTOR('',#3214,5.E-1);
++#3216=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
++#3217=LINE('',#3216,#3215);
++#3218=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.5E0));
++#3219=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3220=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3221=AXIS2_PLACEMENT_3D('',#3218,#3219,#3220);
++#3223=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3224=VECTOR('',#3223,6.E0);
++#3225=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
++#3226=LINE('',#3225,#3224);
++#3227=DIRECTION('',(1.E0,0.E0,0.E0));
++#3228=VECTOR('',#3227,5.618394209466E-1);
++#3229=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
++#3230=LINE('',#3229,#3228);
++#3231=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
++#3232=VECTOR('',#3231,6.863753427325E0);
++#3233=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
++#3234=LINE('',#3233,#3232);
++#3235=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3236=VECTOR('',#3235,3.895172754280E0);
++#3237=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
++#3238=LINE('',#3237,#3236);
++#3239=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3240=VECTOR('',#3239,5.E-1);
++#3241=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
++#3242=LINE('',#3241,#3240);
++#3243=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.5E0));
++#3244=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3245=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
++#3246=AXIS2_PLACEMENT_3D('',#3243,#3244,#3245);
++#3248=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3249=VECTOR('',#3248,5.E-1);
++#3250=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
++#3251=LINE('',#3250,#3249);
++#3252=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.E0));
++#3253=DIRECTION('',(0.E0,0.E0,1.E0));
++#3254=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3255=AXIS2_PLACEMENT_3D('',#3252,#3253,#3254);
++#3257=DIRECTION('',(1.E0,0.E0,0.E0));
++#3258=VECTOR('',#3257,3.895172754280E0);
++#3259=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
++#3260=LINE('',#3259,#3258);
++#3261=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
++#3262=VECTOR('',#3261,6.863753427325E0);
++#3263=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
++#3264=LINE('',#3263,#3262);
++#3265=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3266=VECTOR('',#3265,5.618394209466E-1);
++#3267=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
++#3268=LINE('',#3267,#3266);
++#3269=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3270=VECTOR('',#3269,6.E0);
++#3271=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
++#3272=LINE('',#3271,#3270);
++#3273=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3274=VECTOR('',#3273,5.E-1);
++#3275=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
++#3276=LINE('',#3275,#3274);
++#3277=CARTESIAN_POINT('',(2.025E1,2.75E0,8.5E0));
++#3278=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3279=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3280=AXIS2_PLACEMENT_3D('',#3277,#3278,#3279);
++#3282=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3283=VECTOR('',#3282,5.E-1);
++#3284=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
++#3285=LINE('',#3284,#3283);
++#3286=CARTESIAN_POINT('',(2.025E1,2.75E0,8.E0));
++#3287=DIRECTION('',(0.E0,0.E0,1.E0));
++#3288=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3289=AXIS2_PLACEMENT_3D('',#3286,#3287,#3288);
++#3291=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3292=VECTOR('',#3291,5.E-1);
++#3293=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
++#3294=LINE('',#3293,#3292);
++#3295=CARTESIAN_POINT('',(2.025E1,8.75E0,8.5E0));
++#3296=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3297=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3298=AXIS2_PLACEMENT_3D('',#3295,#3296,#3297);
++#3300=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3301=VECTOR('',#3300,5.E-1);
++#3302=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
++#3303=LINE('',#3302,#3301);
++#3304=CARTESIAN_POINT('',(2.025E1,8.75E0,8.E0));
++#3305=DIRECTION('',(0.E0,0.E0,1.E0));
++#3306=DIRECTION('',(0.E0,1.E0,0.E0));
++#3307=AXIS2_PLACEMENT_3D('',#3304,#3305,#3306);
++#3309=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3310=VECTOR('',#3309,5.E-1);
++#3311=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
++#3312=LINE('',#3311,#3310);
++#3313=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.5E0));
++#3314=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3315=DIRECTION('',(0.E0,1.E0,0.E0));
++#3316=AXIS2_PLACEMENT_3D('',#3313,#3314,#3315);
++#3318=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3319=VECTOR('',#3318,5.E-1);
++#3320=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
++#3321=LINE('',#3320,#3319);
++#3322=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.E0));
++#3323=DIRECTION('',(0.E0,0.E0,1.E0));
++#3324=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
++#3325=AXIS2_PLACEMENT_3D('',#3322,#3323,#3324);
++#3327=DIRECTION('',(0.E0,1.E0,0.E0));
++#3328=VECTOR('',#3327,6.875E-1);
++#3329=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
++#3330=LINE('',#3329,#3328);
++#3331=DIRECTION('',(0.E0,1.E0,0.E0));
++#3332=VECTOR('',#3331,6.875E-1);
++#3333=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
++#3334=LINE('',#3333,#3332);
++#3335=DIRECTION('',(0.E0,1.E0,0.E0));
++#3336=VECTOR('',#3335,6.875E-1);
++#3337=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
++#3338=LINE('',#3337,#3336);
++#3339=DIRECTION('',(0.E0,1.E0,0.E0));
++#3340=VECTOR('',#3339,6.875E-1);
++#3341=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
++#3342=LINE('',#3341,#3340);
++#3343=DIRECTION('',(1.E0,0.E0,0.E0));
++#3344=VECTOR('',#3343,3.E0);
++#3345=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
++#3346=LINE('',#3345,#3344);
++#3347=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.25E0));
++#3348=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3349=DIRECTION('',(0.E0,0.E0,1.E0));
++#3350=AXIS2_PLACEMENT_3D('',#3347,#3348,#3349);
++#3352=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3353=VECTOR('',#3352,3.E0);
++#3354=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
++#3355=LINE('',#3354,#3353);
++#3356=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.25E0));
++#3357=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3358=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3359=AXIS2_PLACEMENT_3D('',#3356,#3357,#3358);
++#3361=CARTESIAN_POINT('',(1.61E0,6.875E-1,4.5E0));
++#3362=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3363=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
++#3364=AXIS2_PLACEMENT_3D('',#3361,#3362,#3363);
++#3366=CARTESIAN_POINT('',(7.5E0,6.875E-1,7.5E0));
++#3367=DIRECTION('',(0.E0,1.E0,0.E0));
++#3368=DIRECTION('',(-4.496088413988E-1,0.E0,-8.932255536739E-1));
++#3369=AXIS2_PLACEMENT_3D('',#3366,#3367,#3368);
++#3371=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,1.645354088550E0));
++#3372=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3373=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#3374=AXIS2_PLACEMENT_3D('',#3371,#3372,#3373);
++#3376=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#3377=VECTOR('',#3376,4.263248410977E0);
++#3378=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
++#3379=LINE('',#3378,#3377);
++#3380=DIRECTION('',(0.E0,1.E0,0.E0));
++#3381=VECTOR('',#3380,6.875E-1);
++#3382=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
++#3383=LINE('',#3382,#3381);
++#3384=CARTESIAN_POINT('',(1.455736763592E0,0.E0,4.577195232320E0));
++#3385=DIRECTION('',(0.E0,1.E0,0.E0));
++#3386=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#3387=AXIS2_PLACEMENT_3D('',#3384,#3385,#3386);
++#3389=DIRECTION('',(0.E0,1.E0,0.E0));
++#3390=VECTOR('',#3389,6.875E-1);
++#3391=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
++#3392=LINE('',#3391,#3390);
++#3393=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,4.577195232320E0));
++#3394=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3395=DIRECTION('',(-8.942796313519E-1,0.E0,4.475085931567E-1));
++#3396=AXIS2_PLACEMENT_3D('',#3393,#3394,#3395);
++#3398=DIRECTION('',(0.E0,1.E0,0.E0));
++#3399=VECTOR('',#3398,6.875E-1);
++#3400=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
++#3401=LINE('',#3400,#3399);
++#3402=DIRECTION('',(0.E0,1.E0,0.E0));
++#3403=VECTOR('',#3402,6.875E-1);
++#3404=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
++#3405=LINE('',#3404,#3403);
++#3406=DIRECTION('',(0.E0,1.E0,0.E0));
++#3407=VECTOR('',#3406,6.875E-1);
++#3408=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
++#3409=LINE('',#3408,#3407);
++#3410=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3411=VECTOR('',#3410,6.875E-1);
++#3412=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
++#3413=LINE('',#3412,#3411);
++#3414=CARTESIAN_POINT('',(-1.85E-1,0.E0,7.815E0));
++#3415=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3416=DIRECTION('',(1.E0,0.E0,0.E0));
++#3417=AXIS2_PLACEMENT_3D('',#3414,#3415,#3416);
++#3419=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3420=VECTOR('',#3419,6.875E-1);
++#3421=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
++#3422=LINE('',#3421,#3420);
++#3423=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,7.815E0));
++#3424=DIRECTION('',(0.E0,1.E0,0.E0));
++#3425=DIRECTION('',(0.E0,0.E0,1.E0));
++#3426=AXIS2_PLACEMENT_3D('',#3423,#3424,#3425);
++#3428=DIRECTION('',(1.E0,0.E0,0.E0));
++#3429=VECTOR('',#3428,7.5E-1);
++#3430=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
++#3431=LINE('',#3430,#3429);
++#3432=DIRECTION('',(0.E0,0.E0,1.E0));
++#3433=VECTOR('',#3432,3.15E-1);
++#3434=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
++#3435=LINE('',#3434,#3433);
++#3436=CARTESIAN_POINT('',(1.25125E0,6.875E-1,7.5E0));
++#3437=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3438=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3439=AXIS2_PLACEMENT_3D('',#3436,#3437,#3438);
++#3441=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3442=VECTOR('',#3441,3.15E-1);
++#3443=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
++#3444=LINE('',#3443,#3442);
++#3445=DIRECTION('',(1.E0,0.E0,0.E0));
++#3446=VECTOR('',#3445,2.525E-1);
++#3447=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
++#3448=LINE('',#3447,#3446);
++#3449=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3450=VECTOR('',#3449,8.1E-1);
++#3451=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
++#3452=LINE('',#3451,#3450);
++#3453=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3454=VECTOR('',#3453,3.875E0);
++#3455=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
++#3456=LINE('',#3455,#3454);
++#3457=DIRECTION('',(0.E0,0.E0,1.E0));
++#3458=VECTOR('',#3457,8.1E-1);
++#3459=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
++#3460=LINE('',#3459,#3458);
++#3461=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3462=VECTOR('',#3461,6.875E-1);
++#3463=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
++#3464=LINE('',#3463,#3462);
++#3465=CARTESIAN_POINT('',(2.6875E0,0.E0,7.815E0));
++#3466=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3467=DIRECTION('',(0.E0,0.E0,1.E0));
++#3468=AXIS2_PLACEMENT_3D('',#3465,#3466,#3467);
++#3470=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3471=VECTOR('',#3470,6.875E-1);
++#3472=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
++#3473=LINE('',#3472,#3471);
++#3474=CARTESIAN_POINT('',(2.6875E0,6.875E-1,7.815E0));
++#3475=DIRECTION('',(0.E0,1.E0,0.E0));
++#3476=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3477=AXIS2_PLACEMENT_3D('',#3474,#3475,#3476);
++#3479=DIRECTION('',(0.E0,1.E0,0.E0));
++#3480=VECTOR('',#3479,6.875E-1);
++#3481=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
++#3482=LINE('',#3481,#3480);
++#3483=DIRECTION('',(0.E0,1.E0,0.E0));
++#3484=VECTOR('',#3483,6.875E-1);
++#3485=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
++#3486=LINE('',#3485,#3484);
++#3487=DIRECTION('',(0.E0,1.E0,0.E0));
++#3488=VECTOR('',#3487,6.875E-1);
++#3489=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
++#3490=LINE('',#3489,#3488);
++#3491=CARTESIAN_POINT('',(3.4375E0,0.E0,9.565E0));
++#3492=DIRECTION('',(0.E0,1.E0,0.E0));
++#3493=DIRECTION('',(1.E0,0.E0,0.E0));
++#3494=AXIS2_PLACEMENT_3D('',#3491,#3492,#3493);
++#3496=DIRECTION('',(0.E0,1.E0,0.E0));
++#3497=VECTOR('',#3496,6.875E-1);
++#3498=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
++#3499=LINE('',#3498,#3497);
++#3500=CARTESIAN_POINT('',(3.4375E0,6.875E-1,9.565E0));
++#3501=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3502=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3503=AXIS2_PLACEMENT_3D('',#3500,#3501,#3502);
++#3505=DIRECTION('',(0.E0,1.E0,0.E0));
++#3506=VECTOR('',#3505,6.875E-1);
++#3507=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
++#3508=LINE('',#3507,#3506);
++#3509=CARTESIAN_POINT('',(3.4375E0,0.E0,1.0375E1));
++#3510=DIRECTION('',(0.E0,1.E0,0.E0));
++#3511=DIRECTION('',(0.E0,0.E0,1.E0));
++#3512=AXIS2_PLACEMENT_3D('',#3509,#3510,#3511);
++#3514=DIRECTION('',(0.E0,1.E0,0.E0));
++#3515=VECTOR('',#3514,6.875E-1);
++#3516=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
++#3517=LINE('',#3516,#3515);
++#3518=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.0375E1));
++#3519=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3520=DIRECTION('',(1.E0,0.E0,0.E0));
++#3521=AXIS2_PLACEMENT_3D('',#3518,#3519,#3520);
++#3523=DIRECTION('',(0.E0,1.E0,0.E0));
++#3524=VECTOR('',#3523,6.875E-1);
++#3525=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
++#3526=LINE('',#3525,#3524);
++#3527=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.0375E1));
++#3528=DIRECTION('',(0.E0,1.E0,0.E0));
++#3529=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3530=AXIS2_PLACEMENT_3D('',#3527,#3528,#3529);
++#3532=DIRECTION('',(0.E0,1.E0,0.E0));
++#3533=VECTOR('',#3532,6.875E-1);
++#3534=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
++#3535=LINE('',#3534,#3533);
++#3536=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.0375E1));
++#3537=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3538=DIRECTION('',(0.E0,0.E0,1.E0));
++#3539=AXIS2_PLACEMENT_3D('',#3536,#3537,#3538);
++#3541=DIRECTION('',(0.E0,1.E0,0.E0));
++#3542=VECTOR('',#3541,6.875E-1);
++#3543=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
++#3544=LINE('',#3543,#3542);
++#3545=CARTESIAN_POINT('',(-4.375E-1,0.E0,9.565E0));
++#3546=DIRECTION('',(0.E0,1.E0,0.E0));
++#3547=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3548=AXIS2_PLACEMENT_3D('',#3545,#3546,#3547);
++#3550=DIRECTION('',(0.E0,1.E0,0.E0));
++#3551=VECTOR('',#3550,6.875E-1);
++#3552=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
++#3553=LINE('',#3552,#3551);
++#3554=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,9.565E0));
++#3555=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3556=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3557=AXIS2_PLACEMENT_3D('',#3554,#3555,#3556);
++#3559=DIRECTION('',(0.E0,1.E0,0.E0));
++#3560=VECTOR('',#3559,6.875E-1);
++#3561=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
++#3562=LINE('',#3561,#3560);
++#3563=DIRECTION('',(0.E0,1.E0,0.E0));
++#3564=VECTOR('',#3563,6.875E-1);
++#3565=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
++#3566=LINE('',#3565,#3564);
++#3567=DIRECTION('',(0.E0,1.E0,0.E0));
++#3568=VECTOR('',#3567,6.875E-1);
++#3569=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
++#3570=LINE('',#3569,#3568);
++#3571=DIRECTION('',(0.E0,1.E0,0.E0));
++#3572=VECTOR('',#3571,6.875E-1);
++#3573=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
++#3574=LINE('',#3573,#3572);
++#3575=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3576=VECTOR('',#3575,3.E0);
++#3577=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
++#3578=LINE('',#3577,#3576);
++#3579=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.65E1));
++#3580=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3581=DIRECTION('',(1.E0,0.E0,0.E0));
++#3582=AXIS2_PLACEMENT_3D('',#3579,#3580,#3581);
++#3584=DIRECTION('',(0.E0,0.E0,1.E0));
++#3585=VECTOR('',#3584,3.E0);
++#3586=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
++#3587=LINE('',#3586,#3585);
++#3588=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.35E1));
++#3589=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3590=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3591=AXIS2_PLACEMENT_3D('',#3588,#3589,#3590);
++#3593=DIRECTION('',(0.E0,1.E0,0.E0));
++#3594=VECTOR('',#3593,6.875E-1);
++#3595=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
++#3596=LINE('',#3595,#3594);
++#3597=DIRECTION('',(0.E0,1.E0,0.E0));
++#3598=VECTOR('',#3597,6.875E-1);
++#3599=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
++#3600=LINE('',#3599,#3598);
++#3601=DIRECTION('',(0.E0,1.E0,0.E0));
++#3602=VECTOR('',#3601,6.875E-1);
++#3603=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
++#3604=LINE('',#3603,#3602);
++#3605=DIRECTION('',(0.E0,1.E0,0.E0));
++#3606=VECTOR('',#3605,6.875E-1);
++#3607=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
++#3608=LINE('',#3607,#3606);
++#3609=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3610=VECTOR('',#3609,3.E0);
++#3611=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
++#3612=LINE('',#3611,#3610);
++#3613=CARTESIAN_POINT('',(1.25E0,6.875E-1,2.25E1));
++#3614=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3615=DIRECTION('',(1.E0,0.E0,0.E0));
++#3616=AXIS2_PLACEMENT_3D('',#3613,#3614,#3615);
++#3618=DIRECTION('',(0.E0,0.E0,1.E0));
++#3619=VECTOR('',#3618,3.E0);
++#3620=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
++#3621=LINE('',#3620,#3619);
++#3622=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.95E1));
++#3623=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3624=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3625=AXIS2_PLACEMENT_3D('',#3622,#3623,#3624);
++#3627=DIRECTION('',(0.E0,1.E0,0.E0));
++#3628=VECTOR('',#3627,6.875E-1);
++#3629=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
++#3630=LINE('',#3629,#3628);
++#3631=DIRECTION('',(0.E0,1.E0,0.E0));
++#3632=VECTOR('',#3631,6.875E-1);
++#3633=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
++#3634=LINE('',#3633,#3632);
++#3635=DIRECTION('',(0.E0,1.E0,0.E0));
++#3636=VECTOR('',#3635,6.875E-1);
++#3637=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
++#3638=LINE('',#3637,#3636);
++#3639=DIRECTION('',(0.E0,1.E0,0.E0));
++#3640=VECTOR('',#3639,6.875E-1);
++#3641=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
++#3642=LINE('',#3641,#3640);
++#3643=DIRECTION('',(1.E0,0.E0,0.E0));
++#3644=VECTOR('',#3643,3.E0);
++#3645=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
++#3646=LINE('',#3645,#3644);
++#3647=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.E0));
++#3648=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3649=DIRECTION('',(0.E0,0.E0,1.E0));
++#3650=AXIS2_PLACEMENT_3D('',#3647,#3648,#3649);
++#3652=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3653=VECTOR('',#3652,3.E0);
++#3654=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
++#3655=LINE('',#3654,#3653);
++#3656=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.E0));
++#3657=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3658=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3659=AXIS2_PLACEMENT_3D('',#3656,#3657,#3658);
++#3661=DIRECTION('',(0.E0,1.E0,0.E0));
++#3662=VECTOR('',#3661,6.875E-1);
++#3663=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
++#3664=LINE('',#3663,#3662);
++#3665=DIRECTION('',(0.E0,1.E0,0.E0));
++#3666=VECTOR('',#3665,6.875E-1);
++#3667=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
++#3668=LINE('',#3667,#3666);
++#3669=DIRECTION('',(0.E0,1.E0,0.E0));
++#3670=VECTOR('',#3669,6.875E-1);
++#3671=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
++#3672=LINE('',#3671,#3670);
++#3673=DIRECTION('',(0.E0,1.E0,0.E0));
++#3674=VECTOR('',#3673,6.875E-1);
++#3675=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
++#3676=LINE('',#3675,#3674);
++#3677=DIRECTION('',(1.E0,0.E0,0.E0));
++#3678=VECTOR('',#3677,3.E0);
++#3679=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
++#3680=LINE('',#3679,#3678);
++#3681=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8E1));
++#3682=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3683=DIRECTION('',(0.E0,0.E0,1.E0));
++#3684=AXIS2_PLACEMENT_3D('',#3681,#3682,#3683);
++#3686=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3687=VECTOR('',#3686,3.E0);
++#3688=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
++#3689=LINE('',#3688,#3687);
++#3690=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8E1));
++#3691=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3692=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3693=AXIS2_PLACEMENT_3D('',#3690,#3691,#3692);
++#3695=DIRECTION('',(0.E0,1.E0,0.E0));
++#3696=VECTOR('',#3695,6.875E-1);
++#3697=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
++#3698=LINE('',#3697,#3696);
++#3699=DIRECTION('',(0.E0,1.E0,0.E0));
++#3700=VECTOR('',#3699,6.875E-1);
++#3701=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
++#3702=LINE('',#3701,#3700);
++#3703=DIRECTION('',(0.E0,1.E0,0.E0));
++#3704=VECTOR('',#3703,6.875E-1);
++#3705=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
++#3706=LINE('',#3705,#3704);
++#3707=DIRECTION('',(0.E0,1.E0,0.E0));
++#3708=VECTOR('',#3707,6.875E-1);
++#3709=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
++#3710=LINE('',#3709,#3708);
++#3711=DIRECTION('',(1.E0,0.E0,0.E0));
++#3712=VECTOR('',#3711,3.E0);
++#3713=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
++#3714=LINE('',#3713,#3712);
++#3715=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.075E1));
++#3716=DIRECTION('',(0.E0,1.E0,0.E0));
++#3717=DIRECTION('',(0.E0,0.E0,1.E0));
++#3718=AXIS2_PLACEMENT_3D('',#3715,#3716,#3717);
++#3720=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3721=VECTOR('',#3720,3.E0);
++#3722=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
++#3723=LINE('',#3722,#3721);
++#3724=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.075E1));
++#3725=DIRECTION('',(0.E0,1.E0,0.E0));
++#3726=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3727=AXIS2_PLACEMENT_3D('',#3724,#3725,#3726);
++#3729=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#3730=VECTOR('',#3729,4.263248410977E0);
++#3731=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
++#3732=LINE('',#3731,#3730);
++#3733=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,3.035464591145E1));
++#3734=DIRECTION('',(0.E0,1.E0,0.E0));
++#3735=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#3736=AXIS2_PLACEMENT_3D('',#3733,#3734,#3735);
++#3738=CARTESIAN_POINT('',(7.5E0,6.875E-1,2.45E1));
++#3739=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3740=DIRECTION('',(-4.496088413988E-1,0.E0,8.932255536739E-1));
++#3741=AXIS2_PLACEMENT_3D('',#3738,#3739,#3740);
++#3743=CARTESIAN_POINT('',(1.61E0,6.875E-1,2.75E1));
++#3744=DIRECTION('',(0.E0,1.E0,0.E0));
++#3745=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
++#3746=AXIS2_PLACEMENT_3D('',#3743,#3744,#3745);
++#3748=DIRECTION('',(0.E0,1.E0,-1.033516706560E-14));
++#3749=VECTOR('',#3748,6.875E-1);
++#3750=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
++#3751=LINE('',#3750,#3749);
++#3752=CARTESIAN_POINT('',(1.455736763592E0,0.E0,2.742280476768E1));
++#3753=DIRECTION('',(0.E0,1.E0,0.E0));
++#3754=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
++#3755=AXIS2_PLACEMENT_3D('',#3752,#3753,#3754);
++#3757=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
++#3758=VECTOR('',#3757,6.875E-1);
++#3759=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
++#3760=LINE('',#3759,#3758);
++#3761=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,2.742280476768E1));
++#3762=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3763=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811866E-1));
++#3764=AXIS2_PLACEMENT_3D('',#3761,#3762,#3763);
++#3766=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
++#3767=VECTOR('',#3766,6.875E-1);
++#3768=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
++#3769=LINE('',#3768,#3767);
++#3770=DIRECTION('',(0.E0,1.E0,0.E0));
++#3771=VECTOR('',#3770,6.875E-1);
++#3772=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
++#3773=LINE('',#3772,#3771);
++#3774=DIRECTION('',(0.E0,1.E0,0.E0));
++#3775=VECTOR('',#3774,6.875E-1);
++#3776=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
++#3777=LINE('',#3776,#3775);
++#3778=DIRECTION('',(0.E0,1.E0,0.E0));
++#3779=VECTOR('',#3778,6.875E-1);
++#3780=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
++#3781=LINE('',#3780,#3779);
++#3782=DIRECTION('',(0.E0,1.E0,0.E0));
++#3783=VECTOR('',#3782,6.875E-1);
++#3784=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
++#3785=LINE('',#3784,#3783);
++#3786=DIRECTION('',(0.E0,1.E0,0.E0));
++#3787=VECTOR('',#3786,6.875E-1);
++#3788=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
++#3789=LINE('',#3788,#3787);
++#3790=DIRECTION('',(0.E0,1.E0,0.E0));
++#3791=VECTOR('',#3790,6.875E-1);
++#3792=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
++#3793=LINE('',#3792,#3791);
++#3794=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3795=VECTOR('',#3794,3.E0);
++#3796=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
++#3797=LINE('',#3796,#3795);
++#3798=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.25E0));
++#3799=DIRECTION('',(0.E0,1.E0,0.E0));
++#3800=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3801=AXIS2_PLACEMENT_3D('',#3798,#3799,#3800);
++#3803=DIRECTION('',(1.E0,0.E0,0.E0));
++#3804=VECTOR('',#3803,3.E0);
++#3805=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
++#3806=LINE('',#3805,#3804);
++#3807=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.25E0));
++#3808=DIRECTION('',(0.E0,1.E0,0.E0));
++#3809=DIRECTION('',(0.E0,0.E0,1.E0));
++#3810=AXIS2_PLACEMENT_3D('',#3807,#3808,#3809);
++#3812=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#3813=VECTOR('',#3812,4.263248410977E0);
++#3814=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
++#3815=LINE('',#3814,#3813);
++#3816=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,1.645354088550E0));
++#3817=DIRECTION('',(0.E0,1.E0,0.E0));
++#3818=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#3819=AXIS2_PLACEMENT_3D('',#3816,#3817,#3818);
++#3821=CARTESIAN_POINT('',(1.65E1,6.875E-1,7.5E0));
++#3822=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3823=DIRECTION('',(4.496088413988E-1,0.E0,-8.932255536739E-1));
++#3824=AXIS2_PLACEMENT_3D('',#3821,#3822,#3823);
++#3826=CARTESIAN_POINT('',(2.239E1,6.875E-1,4.5E0));
++#3827=DIRECTION('',(0.E0,1.E0,0.E0));
++#3828=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
++#3829=AXIS2_PLACEMENT_3D('',#3826,#3827,#3828);
++#3831=DIRECTION('',(-1.033516706560E-14,1.E0,2.583791766400E-14));
++#3832=VECTOR('',#3831,6.875E-1);
++#3833=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
++#3834=LINE('',#3833,#3832);
++#3835=CARTESIAN_POINT('',(2.254426323641E1,0.E0,4.577195232320E0));
++#3836=DIRECTION('',(0.E0,1.E0,0.E0));
++#3837=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
++#3838=AXIS2_PLACEMENT_3D('',#3835,#3836,#3837);
++#3840=DIRECTION('',(0.E0,1.E0,0.E0));
++#3841=VECTOR('',#3840,6.875E-1);
++#3842=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
++#3843=LINE('',#3842,#3841);
++#3844=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,4.577195232320E0));
++#3845=DIRECTION('',(0.E0,-1.E0,0.E0));
++#3846=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#3847=AXIS2_PLACEMENT_3D('',#3844,#3845,#3846);
++#3849=DIRECTION('',(-1.550275059840E-14,1.E0,-2.067033413120E-14));
++#3850=VECTOR('',#3849,6.875E-1);
++#3851=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
++#3852=LINE('',#3851,#3850);
++#3853=DIRECTION('',(1.550275059840E-14,1.E0,0.E0));
++#3854=VECTOR('',#3853,6.875E-1);
++#3855=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
++#3856=LINE('',#3855,#3854);
++#3857=DIRECTION('',(0.E0,1.E0,0.E0));
++#3858=VECTOR('',#3857,6.875E-1);
++#3859=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
++#3860=LINE('',#3859,#3858);
++#3861=DIRECTION('',(0.E0,1.E0,0.E0));
++#3862=VECTOR('',#3861,6.875E-1);
++#3863=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
++#3864=LINE('',#3863,#3862);
++#3865=DIRECTION('',(0.E0,1.E0,0.E0));
++#3866=VECTOR('',#3865,6.875E-1);
++#3867=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
++#3868=LINE('',#3867,#3866);
++#3869=DIRECTION('',(0.E0,1.E0,0.E0));
++#3870=VECTOR('',#3869,6.875E-1);
++#3871=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
++#3872=LINE('',#3871,#3870);
++#3873=DIRECTION('',(0.E0,1.E0,0.E0));
++#3874=VECTOR('',#3873,6.875E-1);
++#3875=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
++#3876=LINE('',#3875,#3874);
++#3877=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3878=VECTOR('',#3877,3.E0);
++#3879=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
++#3880=LINE('',#3879,#3878);
++#3881=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.35E1));
++#3882=DIRECTION('',(0.E0,1.E0,0.E0));
++#3883=DIRECTION('',(1.E0,0.E0,0.E0));
++#3884=AXIS2_PLACEMENT_3D('',#3881,#3882,#3883);
++#3886=DIRECTION('',(0.E0,0.E0,1.E0));
++#3887=VECTOR('',#3886,3.E0);
++#3888=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
++#3889=LINE('',#3888,#3887);
++#3890=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.65E1));
++#3891=DIRECTION('',(0.E0,1.E0,0.E0));
++#3892=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3893=AXIS2_PLACEMENT_3D('',#3890,#3891,#3892);
++#3895=DIRECTION('',(0.E0,1.E0,0.E0));
++#3896=VECTOR('',#3895,6.875E-1);
++#3897=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
++#3898=LINE('',#3897,#3896);
++#3899=DIRECTION('',(0.E0,1.E0,0.E0));
++#3900=VECTOR('',#3899,6.875E-1);
++#3901=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
++#3902=LINE('',#3901,#3900);
++#3903=DIRECTION('',(0.E0,1.E0,0.E0));
++#3904=VECTOR('',#3903,6.875E-1);
++#3905=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
++#3906=LINE('',#3905,#3904);
++#3907=DIRECTION('',(0.E0,1.E0,0.E0));
++#3908=VECTOR('',#3907,6.875E-1);
++#3909=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
++#3910=LINE('',#3909,#3908);
++#3911=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3912=VECTOR('',#3911,3.E0);
++#3913=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
++#3914=LINE('',#3913,#3912);
++#3915=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.95E1));
++#3916=DIRECTION('',(0.E0,1.E0,0.E0));
++#3917=DIRECTION('',(1.E0,0.E0,0.E0));
++#3918=AXIS2_PLACEMENT_3D('',#3915,#3916,#3917);
++#3920=DIRECTION('',(0.E0,0.E0,1.E0));
++#3921=VECTOR('',#3920,3.E0);
++#3922=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
++#3923=LINE('',#3922,#3921);
++#3924=CARTESIAN_POINT('',(2.275E1,6.875E-1,2.25E1));
++#3925=DIRECTION('',(0.E0,1.E0,0.E0));
++#3926=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3927=AXIS2_PLACEMENT_3D('',#3924,#3925,#3926);
++#3929=DIRECTION('',(0.E0,1.E0,0.E0));
++#3930=VECTOR('',#3929,6.875E-1);
++#3931=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
++#3932=LINE('',#3931,#3930);
++#3933=DIRECTION('',(0.E0,1.E0,0.E0));
++#3934=VECTOR('',#3933,6.875E-1);
++#3935=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
++#3936=LINE('',#3935,#3934);
++#3937=DIRECTION('',(0.E0,1.E0,0.E0));
++#3938=VECTOR('',#3937,6.875E-1);
++#3939=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
++#3940=LINE('',#3939,#3938);
++#3941=DIRECTION('',(0.E0,1.E0,0.E0));
++#3942=VECTOR('',#3941,6.875E-1);
++#3943=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
++#3944=LINE('',#3943,#3942);
++#3945=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3946=VECTOR('',#3945,3.E0);
++#3947=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
++#3948=LINE('',#3947,#3946);
++#3949=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.E0));
++#3950=DIRECTION('',(0.E0,1.E0,0.E0));
++#3951=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3952=AXIS2_PLACEMENT_3D('',#3949,#3950,#3951);
++#3954=DIRECTION('',(1.E0,0.E0,0.E0));
++#3955=VECTOR('',#3954,3.E0);
++#3956=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
++#3957=LINE('',#3956,#3955);
++#3958=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.E0));
++#3959=DIRECTION('',(0.E0,1.E0,0.E0));
++#3960=DIRECTION('',(0.E0,0.E0,1.E0));
++#3961=AXIS2_PLACEMENT_3D('',#3958,#3959,#3960);
++#3963=DIRECTION('',(0.E0,1.E0,0.E0));
++#3964=VECTOR('',#3963,6.875E-1);
++#3965=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
++#3966=LINE('',#3965,#3964);
++#3967=DIRECTION('',(0.E0,1.E0,0.E0));
++#3968=VECTOR('',#3967,6.875E-1);
++#3969=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
++#3970=LINE('',#3969,#3968);
++#3971=DIRECTION('',(0.E0,1.E0,0.E0));
++#3972=VECTOR('',#3971,6.875E-1);
++#3973=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
++#3974=LINE('',#3973,#3972);
++#3975=DIRECTION('',(0.E0,1.E0,0.E0));
++#3976=VECTOR('',#3975,6.875E-1);
++#3977=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
++#3978=LINE('',#3977,#3976);
++#3979=DIRECTION('',(-1.E0,0.E0,0.E0));
++#3980=VECTOR('',#3979,3.E0);
++#3981=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
++#3982=LINE('',#3981,#3980);
++#3983=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8E1));
++#3984=DIRECTION('',(0.E0,1.E0,0.E0));
++#3985=DIRECTION('',(0.E0,0.E0,-1.E0));
++#3986=AXIS2_PLACEMENT_3D('',#3983,#3984,#3985);
++#3988=DIRECTION('',(1.E0,0.E0,0.E0));
++#3989=VECTOR('',#3988,3.E0);
++#3990=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
++#3991=LINE('',#3990,#3989);
++#3992=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8E1));
++#3993=DIRECTION('',(0.E0,1.E0,0.E0));
++#3994=DIRECTION('',(0.E0,0.E0,1.E0));
++#3995=AXIS2_PLACEMENT_3D('',#3992,#3993,#3994);
++#3997=DIRECTION('',(0.E0,1.E0,0.E0));
++#3998=VECTOR('',#3997,6.875E-1);
++#3999=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
++#4000=LINE('',#3999,#3998);
++#4001=DIRECTION('',(0.E0,1.E0,0.E0));
++#4002=VECTOR('',#4001,6.875E-1);
++#4003=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
++#4004=LINE('',#4003,#4002);
++#4005=DIRECTION('',(0.E0,1.E0,0.E0));
++#4006=VECTOR('',#4005,6.875E-1);
++#4007=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
++#4008=LINE('',#4007,#4006);
++#4009=DIRECTION('',(0.E0,1.E0,0.E0));
++#4010=VECTOR('',#4009,6.875E-1);
++#4011=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
++#4012=LINE('',#4011,#4010);
++#4013=DIRECTION('',(-1.E0,0.E0,0.E0));
++#4014=VECTOR('',#4013,3.E0);
++#4015=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
++#4016=LINE('',#4015,#4014);
++#4017=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.075E1));
++#4018=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4019=DIRECTION('',(0.E0,0.E0,-1.E0));
++#4020=AXIS2_PLACEMENT_3D('',#4017,#4018,#4019);
++#4022=DIRECTION('',(1.E0,0.E0,0.E0));
++#4023=VECTOR('',#4022,3.E0);
++#4024=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
++#4025=LINE('',#4024,#4023);
++#4026=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.075E1));
++#4027=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4028=DIRECTION('',(0.E0,0.E0,1.E0));
++#4029=AXIS2_PLACEMENT_3D('',#4026,#4027,#4028);
++#4031=CARTESIAN_POINT('',(2.239E1,6.875E-1,2.75E1));
++#4032=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4033=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
++#4034=AXIS2_PLACEMENT_3D('',#4031,#4032,#4033);
++#4036=CARTESIAN_POINT('',(1.65E1,6.875E-1,2.45E1));
++#4037=DIRECTION('',(0.E0,1.E0,0.E0));
++#4038=DIRECTION('',(4.496088413988E-1,0.E0,8.932255536739E-1));
++#4039=AXIS2_PLACEMENT_3D('',#4036,#4037,#4038);
++#4041=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,3.035464591145E1));
++#4042=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4043=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#4044=AXIS2_PLACEMENT_3D('',#4041,#4042,#4043);
++#4046=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#4047=VECTOR('',#4046,4.263248410977E0);
++#4048=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
++#4049=LINE('',#4048,#4047);
++#4050=DIRECTION('',(0.E0,1.E0,0.E0));
++#4051=VECTOR('',#4050,6.875E-1);
++#4052=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
++#4053=LINE('',#4052,#4051);
++#4054=CARTESIAN_POINT('',(2.254426323641E1,0.E0,2.742280476768E1));
++#4055=DIRECTION('',(0.E0,1.E0,0.E0));
++#4056=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#4057=AXIS2_PLACEMENT_3D('',#4054,#4055,#4056);
++#4059=DIRECTION('',(0.E0,1.E0,2.067033413120E-14));
++#4060=VECTOR('',#4059,6.875E-1);
++#4061=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
++#4062=LINE('',#4061,#4060);
++#4063=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,2.742280476768E1));
++#4064=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4065=DIRECTION('',(8.942796313519E-1,0.E0,-4.475085931567E-1));
++#4066=AXIS2_PLACEMENT_3D('',#4063,#4064,#4065);
++#4068=DIRECTION('',(0.E0,1.E0,0.E0));
++#4069=VECTOR('',#4068,6.875E-1);
++#4070=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
++#4071=LINE('',#4070,#4069);
++#4072=DIRECTION('',(1.033516706560E-14,1.E0,0.E0));
++#4073=VECTOR('',#4072,6.875E-1);
++#4074=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
++#4075=LINE('',#4074,#4073);
++#4076=DIRECTION('',(-2.067033413120E-14,1.E0,3.100550119680E-14));
++#4077=VECTOR('',#4076,6.875E-1);
++#4078=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
++#4079=LINE('',#4078,#4077);
++#4080=DIRECTION('',(0.E0,1.E0,0.E0));
++#4081=VECTOR('',#4080,6.875E-1);
++#4082=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
++#4083=LINE('',#4082,#4081);
++#4084=CARTESIAN_POINT('',(2.13075E1,6.875E-1,7.81E0));
++#4085=DIRECTION('',(0.E0,1.E0,0.E0));
++#4086=DIRECTION('',(0.E0,0.E0,1.E0));
++#4087=AXIS2_PLACEMENT_3D('',#4084,#4085,#4086);
++#4089=DIRECTION('',(0.E0,1.E0,0.E0));
++#4090=VECTOR('',#4089,6.875E-1);
++#4091=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
++#4092=LINE('',#4091,#4090);
++#4093=CARTESIAN_POINT('',(2.13075E1,0.E0,7.81E0));
++#4094=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4095=DIRECTION('',(1.E0,0.E0,0.E0));
++#4096=AXIS2_PLACEMENT_3D('',#4093,#4094,#4095);
++#4098=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4099=VECTOR('',#4098,6.875E-1);
++#4100=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
++#4101=LINE('',#4100,#4099);
++#4102=CARTESIAN_POINT('',(2.05675E1,6.875E-1,9.57E0));
++#4103=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4104=DIRECTION('',(-1.E0,0.E0,0.E0));
++#4105=AXIS2_PLACEMENT_3D('',#4102,#4103,#4104);
++#4107=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4108=VECTOR('',#4107,6.875E-1);
++#4109=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
++#4110=LINE('',#4109,#4108);
++#4111=CARTESIAN_POINT('',(2.05675E1,0.E0,9.57E0));
++#4112=DIRECTION('',(0.E0,1.E0,0.E0));
++#4113=DIRECTION('',(0.E0,0.E0,-1.E0));
++#4114=AXIS2_PLACEMENT_3D('',#4111,#4112,#4113);
++#4116=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4117=VECTOR('',#4116,6.875E-1);
++#4118=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
++#4119=LINE('',#4118,#4117);
++#4120=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.037E1));
++#4121=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4122=DIRECTION('',(0.E0,0.E0,1.E0));
++#4123=AXIS2_PLACEMENT_3D('',#4120,#4121,#4122);
++#4125=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4126=VECTOR('',#4125,6.875E-1);
++#4127=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
++#4128=LINE('',#4127,#4126);
++#4129=CARTESIAN_POINT('',(2.05675E1,0.E0,1.037E1));
++#4130=DIRECTION('',(0.E0,1.E0,0.E0));
++#4131=DIRECTION('',(-1.E0,0.E0,0.E0));
++#4132=AXIS2_PLACEMENT_3D('',#4129,#4130,#4131);
++#4134=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4135=VECTOR('',#4134,6.875E-1);
++#4136=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
++#4137=LINE('',#4136,#4135);
++#4138=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.037E1));
++#4139=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4140=DIRECTION('',(1.E0,0.E0,0.E0));
++#4141=AXIS2_PLACEMENT_3D('',#4138,#4139,#4140);
++#4143=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4144=VECTOR('',#4143,6.875E-1);
++#4145=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
++#4146=LINE('',#4145,#4144);
++#4147=CARTESIAN_POINT('',(2.44325E1,0.E0,1.037E1));
++#4148=DIRECTION('',(0.E0,1.E0,0.E0));
++#4149=DIRECTION('',(0.E0,0.E0,1.E0));
++#4150=AXIS2_PLACEMENT_3D('',#4147,#4148,#4149);
++#4152=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4153=VECTOR('',#4152,6.875E-1);
++#4154=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
++#4155=LINE('',#4154,#4153);
++#4156=CARTESIAN_POINT('',(2.44325E1,6.875E-1,9.57E0));
++#4157=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4158=DIRECTION('',(0.E0,0.E0,-1.E0));
++#4159=AXIS2_PLACEMENT_3D('',#4156,#4157,#4158);
++#4161=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4162=VECTOR('',#4161,6.875E-1);
++#4163=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
++#4164=LINE('',#4163,#4162);
++#4165=CARTESIAN_POINT('',(2.44325E1,0.E0,9.57E0));
++#4166=DIRECTION('',(0.E0,1.E0,0.E0));
++#4167=DIRECTION('',(1.E0,0.E0,0.E0));
++#4168=AXIS2_PLACEMENT_3D('',#4165,#4166,#4167);
++#4170=DIRECTION('',(0.E0,1.E0,0.E0));
++#4171=VECTOR('',#4170,6.875E-1);
++#4172=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
++#4173=LINE('',#4172,#4171);
++#4174=CARTESIAN_POINT('',(2.419E1,6.875E-1,7.81E0));
++#4175=DIRECTION('',(0.E0,1.E0,0.E0));
++#4176=DIRECTION('',(-1.E0,0.E0,0.E0));
++#4177=AXIS2_PLACEMENT_3D('',#4174,#4175,#4176);
++#4179=DIRECTION('',(0.E0,1.E0,0.E0));
++#4180=VECTOR('',#4179,6.875E-1);
++#4181=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
++#4182=LINE('',#4181,#4180);
++#4183=CARTESIAN_POINT('',(2.419E1,0.E0,7.81E0));
++#4184=DIRECTION('',(0.E0,-1.E0,0.E0));
++#4185=DIRECTION('',(0.E0,0.E0,1.E0));
++#4186=AXIS2_PLACEMENT_3D('',#4183,#4184,#4185);
++#4188=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
++#4189=VECTOR('',#4188,6.875E-1);
++#4190=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
++#4191=LINE('',#4190,#4189);
++#4192=DIRECTION('',(0.E0,1.E0,0.E0));
++#4193=VECTOR('',#4192,6.875E-1);
++#4194=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
++#4195=LINE('',#4194,#4193);
++#4196=DIRECTION('',(-1.E0,0.E0,0.E0));
++#4197=VECTOR('',#4196,2.425E-1);
++#4198=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
++#4199=LINE('',#4198,#4197);
++#4200=DIRECTION('',(0.E0,0.E0,-1.E0));
++#4201=VECTOR('',#4200,3.1E-1);
++#4202=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
++#4203=LINE('',#4202,#4201);
++#4204=CARTESIAN_POINT('',(2.274875E1,6.875E-1,7.5E0));
++#4205=DIRECTION('',(0.E0,1.E0,0.E0));
++#4206=DIRECTION('',(1.E0,0.E0,0.E0));
++#4207=AXIS2_PLACEMENT_3D('',#4204,#4205,#4206);
++#4209=DIRECTION('',(0.E0,0.E0,1.E0));
++#4210=VECTOR('',#4209,3.1E-1);
++#4211=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
++#4212=LINE('',#4211,#4210);
++#4213=DIRECTION('',(-1.E0,0.E0,0.E0));
++#4214=VECTOR('',#4213,7.4E-1);
++#4215=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
++#4216=LINE('',#4215,#4214);
++#4217=DIRECTION('',(0.E0,0.E0,1.E0));
++#4218=VECTOR('',#4217,8.E-1);
++#4219=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
++#4220=LINE('',#4219,#4218);
++#4221=DIRECTION('',(1.E0,0.E0,0.E0));
++#4222=VECTOR('',#4221,3.865E0);
++#4223=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
++#4224=LINE('',#4223,#4222);
++#4225=DIRECTION('',(0.E0,0.E0,-1.E0));
++#4226=VECTOR('',#4225,8.E-1);
++#4227=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
++#4228=LINE('',#4227,#4226);
++#4229=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
++#4230=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
++#4231=VERTEX_POINT('',#4229);
++#4232=VERTEX_POINT('',#4230);
++#4233=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
++#4234=CARTESIAN_POINT('',(2.E1,1.5E0,3.2E1));
++#4235=VERTEX_POINT('',#4233);
++#4236=VERTEX_POINT('',#4234);
++#4237=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
++#4238=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
++#4239=VERTEX_POINT('',#4237);
++#4240=VERTEX_POINT('',#4238);
++#4241=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
++#4242=CARTESIAN_POINT('',(2.4E1,1.5E0,4.E0));
++#4243=VERTEX_POINT('',#4241);
++#4244=VERTEX_POINT('',#4242);
++#4245=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
++#4246=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
++#4247=VERTEX_POINT('',#4245);
++#4248=VERTEX_POINT('',#4246);
++#4249=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
++#4250=CARTESIAN_POINT('',(0.E0,1.5E0,2.8E1));
++#4251=VERTEX_POINT('',#4249);
++#4252=VERTEX_POINT('',#4250);
++#4253=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
++#4254=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
++#4255=VERTEX_POINT('',#4253);
++#4256=VERTEX_POINT('',#4254);
++#4257=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
++#4258=CARTESIAN_POINT('',(4.E0,1.5E0,0.E0));
++#4259=VERTEX_POINT('',#4257);
++#4260=VERTEX_POINT('',#4258);
++#4261=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
++#4262=CARTESIAN_POINT('',(7.5E0,0.E0,2.5E0));
++#4263=VERTEX_POINT('',#4261);
++#4264=VERTEX_POINT('',#4262);
++#4265=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
++#4266=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
++#4267=VERTEX_POINT('',#4265);
++#4268=VERTEX_POINT('',#4266);
++#4269=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
++#4270=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
++#4271=VERTEX_POINT('',#4269);
++#4272=VERTEX_POINT('',#4270);
++#4273=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
++#4274=CARTESIAN_POINT('',(2.5E0,0.E0,2.45E1));
++#4275=VERTEX_POINT('',#4273);
++#4276=VERTEX_POINT('',#4274);
++#4277=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
++#4278=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
++#4279=VERTEX_POINT('',#4277);
++#4280=VERTEX_POINT('',#4278);
++#4281=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
++#4282=CARTESIAN_POINT('',(1.65E1,0.E0,2.95E1));
++#4283=VERTEX_POINT('',#4281);
++#4284=VERTEX_POINT('',#4282);
++#4285=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
++#4286=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
++#4287=VERTEX_POINT('',#4285);
++#4288=VERTEX_POINT('',#4286);
++#4289=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
++#4290=VERTEX_POINT('',#4289);
++#4291=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
++#4292=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
++#4293=VERTEX_POINT('',#4291);
++#4294=VERTEX_POINT('',#4292);
++#4295=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
++#4296=VERTEX_POINT('',#4295);
++#4297=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
++#4298=VERTEX_POINT('',#4297);
++#4299=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
++#4300=VERTEX_POINT('',#4299);
++#4301=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
++#4302=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
++#4303=VERTEX_POINT('',#4301);
++#4304=VERTEX_POINT('',#4302);
++#4305=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
++#4306=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
++#4307=VERTEX_POINT('',#4305);
++#4308=VERTEX_POINT('',#4306);
++#4309=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
++#4310=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
++#4311=VERTEX_POINT('',#4309);
++#4312=VERTEX_POINT('',#4310);
++#4313=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
++#4314=CARTESIAN_POINT('',(-1.E0,1.5E0,1.225E1));
++#4315=VERTEX_POINT('',#4313);
++#4316=VERTEX_POINT('',#4314);
++#4317=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
++#4318=CARTESIAN_POINT('',(0.E0,0.E0,7.E0));
++#4319=VERTEX_POINT('',#4317);
++#4320=VERTEX_POINT('',#4318);
++#4321=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
++#4322=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
++#4323=VERTEX_POINT('',#4321);
++#4324=VERTEX_POINT('',#4322);
++#4325=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
++#4326=CARTESIAN_POINT('',(3.531373033403E0,0.E0,8.E0));
++#4327=VERTEX_POINT('',#4325);
++#4328=VERTEX_POINT('',#4326);
++#4329=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
++#4330=CARTESIAN_POINT('',(2.539216291754E0,0.E0,6.875E0));
++#4331=VERTEX_POINT('',#4329);
++#4332=VERTEX_POINT('',#4330);
++#4333=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
++#4334=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
++#4335=VERTEX_POINT('',#4333);
++#4336=VERTEX_POINT('',#4334);
++#4337=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
++#4338=CARTESIAN_POINT('',(4.5E0,1.5E0,1.225E1));
++#4339=VERTEX_POINT('',#4337);
++#4340=VERTEX_POINT('',#4338);
++#4341=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
++#4342=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
++#4343=VERTEX_POINT('',#4341);
++#4344=VERTEX_POINT('',#4342);
++#4345=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
++#4346=CARTESIAN_POINT('',(-2.E0,1.5E0,1.175E1));
++#4347=VERTEX_POINT('',#4345);
++#4348=VERTEX_POINT('',#4346);
++#4349=CARTESIAN_POINT('',(4.095E0,1.1125E1,9.E0));
++#4350=CARTESIAN_POINT('',(3.905E0,1.1125E1,9.E0));
++#4351=VERTEX_POINT('',#4349);
++#4352=VERTEX_POINT('',#4350);
++#4353=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
++#4354=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
++#4355=VERTEX_POINT('',#4353);
++#4356=VERTEX_POINT('',#4354);
++#4357=CARTESIAN_POINT('',(3.929917478528E0,1.125E1,9.132582521472E0));
++#4358=CARTESIAN_POINT('',(3.804917478528E0,1.125E1,9.132582521472E0));
++#4359=VERTEX_POINT('',#4357);
++#4360=VERTEX_POINT('',#4358);
++#4361=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
++#4362=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
++#4363=VERTEX_POINT('',#4361);
++#4364=VERTEX_POINT('',#4362);
++#4365=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
++#4366=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
++#4367=VERTEX_POINT('',#4365);
++#4368=VERTEX_POINT('',#4366);
++#4369=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
++#4370=VERTEX_POINT('',#4369);
++#4371=CARTESIAN_POINT('',(6.35E0,1.5E0,2.975E1));
++#4372=CARTESIAN_POINT('',(6.55E0,1.5E0,2.975E1));
++#4373=VERTEX_POINT('',#4371);
++#4374=VERTEX_POINT('',#4372);
++#4375=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
++#4376=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
++#4377=VERTEX_POINT('',#4375);
++#4378=VERTEX_POINT('',#4376);
++#4379=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
++#4380=VERTEX_POINT('',#4379);
++#4381=CARTESIAN_POINT('',(7.35E0,1.5E0,2.975E1));
++#4382=CARTESIAN_POINT('',(7.55E0,1.5E0,2.975E1));
++#4383=VERTEX_POINT('',#4381);
++#4384=VERTEX_POINT('',#4382);
++#4385=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
++#4386=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
++#4387=VERTEX_POINT('',#4385);
++#4388=VERTEX_POINT('',#4386);
++#4389=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
++#4390=VERTEX_POINT('',#4389);
++#4391=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
++#4392=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
++#4393=VERTEX_POINT('',#4391);
++#4394=VERTEX_POINT('',#4392);
++#4395=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
++#4396=VERTEX_POINT('',#4395);
++#4397=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
++#4398=VERTEX_POINT('',#4397);
++#4399=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
++#4400=VERTEX_POINT('',#4399);
++#4401=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
++#4402=CARTESIAN_POINT('',(2.4E1,0.E0,1.325E1));
++#4403=VERTEX_POINT('',#4401);
++#4404=VERTEX_POINT('',#4402);
++#4405=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
++#4406=CARTESIAN_POINT('',(2.5E1,0.E0,1.225E1));
++#4407=VERTEX_POINT('',#4405);
++#4408=VERTEX_POINT('',#4406);
++#4409=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
++#4410=CARTESIAN_POINT('',(2.15E1,1.5E0,1.325E1));
++#4411=VERTEX_POINT('',#4409);
++#4412=VERTEX_POINT('',#4410);
++#4413=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
++#4414=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
++#4415=VERTEX_POINT('',#4413);
++#4416=VERTEX_POINT('',#4414);
++#4417=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
++#4418=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
++#4419=VERTEX_POINT('',#4417);
++#4420=VERTEX_POINT('',#4418);
++#4421=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
++#4422=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
++#4423=VERTEX_POINT('',#4421);
++#4424=VERTEX_POINT('',#4422);
++#4425=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
++#4426=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,8.E0));
++#4427=VERTEX_POINT('',#4425);
++#4428=VERTEX_POINT('',#4426);
++#4429=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
++#4430=CARTESIAN_POINT('',(2.146078370825E1,1.5E0,6.875E0));
++#4431=VERTEX_POINT('',#4429);
++#4432=VERTEX_POINT('',#4430);
++#4433=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
++#4434=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
++#4435=VERTEX_POINT('',#4433);
++#4436=VERTEX_POINT('',#4434);
++#4437=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
++#4438=CARTESIAN_POINT('',(1.95E1,0.E0,1.225E1));
++#4439=VERTEX_POINT('',#4437);
++#4440=VERTEX_POINT('',#4438);
++#4441=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
++#4442=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
++#4443=VERTEX_POINT('',#4441);
++#4444=VERTEX_POINT('',#4442);
++#4445=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
++#4446=CARTESIAN_POINT('',(2.6E1,0.E0,1.175E1));
++#4447=VERTEX_POINT('',#4445);
++#4448=VERTEX_POINT('',#4446);
++#4449=CARTESIAN_POINT('',(1.9905E1,1.1125E1,9.E0));
++#4450=CARTESIAN_POINT('',(2.0095E1,1.1125E1,9.E0));
++#4451=VERTEX_POINT('',#4449);
++#4452=VERTEX_POINT('',#4450);
++#4453=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
++#4454=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
++#4455=VERTEX_POINT('',#4453);
++#4456=VERTEX_POINT('',#4454);
++#4457=CARTESIAN_POINT('',(2.007008252147E1,1.125E1,9.132582521472E0));
++#4458=CARTESIAN_POINT('',(2.019508252147E1,1.125E1,9.132582521472E0));
++#4459=VERTEX_POINT('',#4457);
++#4460=VERTEX_POINT('',#4458);
++#4461=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
++#4462=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
++#4463=VERTEX_POINT('',#4461);
++#4464=VERTEX_POINT('',#4462);
++#4465=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
++#4466=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
++#4467=VERTEX_POINT('',#4465);
++#4468=VERTEX_POINT('',#4466);
++#4469=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
++#4470=VERTEX_POINT('',#4469);
++#4471=CARTESIAN_POINT('',(1.765E1,1.5E0,2.975E1));
++#4472=CARTESIAN_POINT('',(1.745E1,1.5E0,2.975E1));
++#4473=VERTEX_POINT('',#4471);
++#4474=VERTEX_POINT('',#4472);
++#4475=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
++#4476=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
++#4477=VERTEX_POINT('',#4475);
++#4478=VERTEX_POINT('',#4476);
++#4479=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
++#4480=VERTEX_POINT('',#4479);
++#4481=CARTESIAN_POINT('',(1.665E1,1.5E0,2.975E1));
++#4482=CARTESIAN_POINT('',(1.645E1,1.5E0,2.975E1));
++#4483=VERTEX_POINT('',#4481);
++#4484=VERTEX_POINT('',#4482);
++#4485=CARTESIAN_POINT('',(1.3175E0,0.E0,6.E0));
++#4486=CARTESIAN_POINT('',(9.325E-1,0.E0,6.E0));
++#4487=VERTEX_POINT('',#4485);
++#4488=VERTEX_POINT('',#4486);
++#4489=CARTESIAN_POINT('',(1.3825E0,1.E0,6.E0));
++#4490=CARTESIAN_POINT('',(8.675E-1,1.E0,6.E0));
++#4491=VERTEX_POINT('',#4489);
++#4492=VERTEX_POINT('',#4490);
++#4493=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
++#4494=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
++#4495=VERTEX_POINT('',#4493);
++#4496=VERTEX_POINT('',#4494);
++#4497=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
++#4498=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
++#4499=VERTEX_POINT('',#4497);
++#4500=VERTEX_POINT('',#4498);
++#4501=CARTESIAN_POINT('',(1.3175E0,0.E0,1.2E1));
++#4502=CARTESIAN_POINT('',(9.325E-1,0.E0,1.2E1));
++#4503=VERTEX_POINT('',#4501);
++#4504=VERTEX_POINT('',#4502);
++#4505=CARTESIAN_POINT('',(1.3175E0,0.E0,1.8E1));
++#4506=CARTESIAN_POINT('',(9.325E-1,0.E0,1.8E1));
++#4507=VERTEX_POINT('',#4505);
++#4508=VERTEX_POINT('',#4506);
++#4509=CARTESIAN_POINT('',(1.3175E0,0.E0,2.4E1));
++#4510=CARTESIAN_POINT('',(9.325E-1,0.E0,2.4E1));
++#4511=VERTEX_POINT('',#4509);
++#4512=VERTEX_POINT('',#4510);
++#4513=CARTESIAN_POINT('',(2.30675E1,0.E0,6.E0));
++#4514=CARTESIAN_POINT('',(2.26825E1,0.E0,6.E0));
++#4515=VERTEX_POINT('',#4513);
++#4516=VERTEX_POINT('',#4514);
++#4517=CARTESIAN_POINT('',(2.30675E1,0.E0,1.2E1));
++#4518=CARTESIAN_POINT('',(2.26825E1,0.E0,1.2E1));
++#4519=VERTEX_POINT('',#4517);
++#4520=VERTEX_POINT('',#4518);
++#4521=CARTESIAN_POINT('',(2.30675E1,0.E0,1.8E1));
++#4522=CARTESIAN_POINT('',(2.26825E1,0.E0,1.8E1));
++#4523=VERTEX_POINT('',#4521);
++#4524=VERTEX_POINT('',#4522);
++#4525=CARTESIAN_POINT('',(2.30675E1,0.E0,2.4E1));
++#4526=CARTESIAN_POINT('',(2.26825E1,0.E0,2.4E1));
++#4527=VERTEX_POINT('',#4525);
++#4528=VERTEX_POINT('',#4526);
++#4529=CARTESIAN_POINT('',(1.3825E0,1.E0,1.2E1));
++#4530=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
++#4531=VERTEX_POINT('',#4529);
++#4532=VERTEX_POINT('',#4530);
++#4533=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
++#4534=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
++#4535=VERTEX_POINT('',#4533);
++#4536=VERTEX_POINT('',#4534);
++#4537=CARTESIAN_POINT('',(1.3825E0,1.E0,1.8E1));
++#4538=CARTESIAN_POINT('',(8.675E-1,1.E0,1.8E1));
++#4539=VERTEX_POINT('',#4537);
++#4540=VERTEX_POINT('',#4538);
++#4541=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
++#4542=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
++#4543=VERTEX_POINT('',#4541);
++#4544=VERTEX_POINT('',#4542);
++#4545=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
++#4546=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
++#4547=VERTEX_POINT('',#4545);
++#4548=VERTEX_POINT('',#4546);
++#4549=CARTESIAN_POINT('',(1.3825E0,1.E0,2.4E1));
++#4550=CARTESIAN_POINT('',(8.675E-1,1.E0,2.4E1));
++#4551=VERTEX_POINT('',#4549);
++#4552=VERTEX_POINT('',#4550);
++#4553=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
++#4554=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
++#4555=VERTEX_POINT('',#4553);
++#4556=VERTEX_POINT('',#4554);
++#4557=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
++#4558=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
++#4559=VERTEX_POINT('',#4557);
++#4560=VERTEX_POINT('',#4558);
++#4561=CARTESIAN_POINT('',(2.31325E1,1.E0,6.E0));
++#4562=CARTESIAN_POINT('',(2.26175E1,1.E0,6.E0));
++#4563=VERTEX_POINT('',#4561);
++#4564=VERTEX_POINT('',#4562);
++#4565=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
++#4566=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
++#4567=VERTEX_POINT('',#4565);
++#4568=VERTEX_POINT('',#4566);
++#4569=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
++#4570=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
++#4571=VERTEX_POINT('',#4569);
++#4572=VERTEX_POINT('',#4570);
++#4573=CARTESIAN_POINT('',(2.31325E1,1.E0,1.2E1));
++#4574=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
++#4575=VERTEX_POINT('',#4573);
++#4576=VERTEX_POINT('',#4574);
++#4577=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
++#4578=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
++#4579=VERTEX_POINT('',#4577);
++#4580=VERTEX_POINT('',#4578);
++#4581=CARTESIAN_POINT('',(2.31325E1,1.E0,1.8E1));
++#4582=CARTESIAN_POINT('',(2.26175E1,1.E0,1.8E1));
++#4583=VERTEX_POINT('',#4581);
++#4584=VERTEX_POINT('',#4582);
++#4585=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
++#4586=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
++#4587=VERTEX_POINT('',#4585);
++#4588=VERTEX_POINT('',#4586);
++#4589=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
++#4590=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
++#4591=VERTEX_POINT('',#4589);
++#4592=VERTEX_POINT('',#4590);
++#4593=CARTESIAN_POINT('',(2.31325E1,1.E0,2.4E1));
++#4594=CARTESIAN_POINT('',(2.26175E1,1.E0,2.4E1));
++#4595=VERTEX_POINT('',#4593);
++#4596=VERTEX_POINT('',#4594);
++#4597=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
++#4598=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
++#4599=VERTEX_POINT('',#4597);
++#4600=VERTEX_POINT('',#4598);
++#4601=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
++#4602=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
++#4603=VERTEX_POINT('',#4601);
++#4604=VERTEX_POINT('',#4602);
++#4605=CARTESIAN_POINT('',(6.1925E0,0.E0,1.25E0));
++#4606=CARTESIAN_POINT('',(5.8075E0,0.E0,1.25E0));
++#4607=VERTEX_POINT('',#4605);
++#4608=VERTEX_POINT('',#4606);
++#4609=CARTESIAN_POINT('',(6.256E0,1.E0,1.25E0));
++#4610=CARTESIAN_POINT('',(5.744E0,1.E0,1.25E0));
++#4611=VERTEX_POINT('',#4609);
++#4612=VERTEX_POINT('',#4610);
++#4613=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
++#4614=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
++#4615=VERTEX_POINT('',#4613);
++#4616=VERTEX_POINT('',#4614);
++#4617=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
++#4618=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
++#4619=VERTEX_POINT('',#4617);
++#4620=VERTEX_POINT('',#4618);
++#4621=CARTESIAN_POINT('',(1.21925E1,0.E0,1.25E0));
++#4622=CARTESIAN_POINT('',(1.18075E1,0.E0,1.25E0));
++#4623=VERTEX_POINT('',#4621);
++#4624=VERTEX_POINT('',#4622);
++#4625=CARTESIAN_POINT('',(6.1925E0,0.E0,3.075E1));
++#4626=CARTESIAN_POINT('',(5.8075E0,0.E0,3.075E1));
++#4627=VERTEX_POINT('',#4625);
++#4628=VERTEX_POINT('',#4626);
++#4629=CARTESIAN_POINT('',(1.21925E1,0.E0,3.075E1));
++#4630=CARTESIAN_POINT('',(1.18075E1,0.E0,3.075E1));
++#4631=VERTEX_POINT('',#4629);
++#4632=VERTEX_POINT('',#4630);
++#4633=CARTESIAN_POINT('',(1.81925E1,0.E0,1.25E0));
++#4634=CARTESIAN_POINT('',(1.78075E1,0.E0,1.25E0));
++#4635=VERTEX_POINT('',#4633);
++#4636=VERTEX_POINT('',#4634);
++#4637=CARTESIAN_POINT('',(1.81925E1,0.E0,3.075E1));
++#4638=CARTESIAN_POINT('',(1.78075E1,0.E0,3.075E1));
++#4639=VERTEX_POINT('',#4637);
++#4640=VERTEX_POINT('',#4638);
++#4641=CARTESIAN_POINT('',(1.2256E1,1.E0,1.25E0));
++#4642=CARTESIAN_POINT('',(1.1744E1,1.E0,1.25E0));
++#4643=VERTEX_POINT('',#4641);
++#4644=VERTEX_POINT('',#4642);
++#4645=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
++#4646=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
++#4647=VERTEX_POINT('',#4645);
++#4648=VERTEX_POINT('',#4646);
++#4649=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
++#4650=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
++#4651=VERTEX_POINT('',#4649);
++#4652=VERTEX_POINT('',#4650);
++#4653=CARTESIAN_POINT('',(1.8256E1,1.E0,1.25E0));
++#4654=CARTESIAN_POINT('',(1.7744E1,1.E0,1.25E0));
++#4655=VERTEX_POINT('',#4653);
++#4656=VERTEX_POINT('',#4654);
++#4657=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
++#4658=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
++#4659=VERTEX_POINT('',#4657);
++#4660=VERTEX_POINT('',#4658);
++#4661=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
++#4662=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
++#4663=VERTEX_POINT('',#4661);
++#4664=VERTEX_POINT('',#4662);
++#4665=CARTESIAN_POINT('',(6.256E0,1.E0,3.075E1));
++#4666=CARTESIAN_POINT('',(5.744E0,1.E0,3.075E1));
++#4667=VERTEX_POINT('',#4665);
++#4668=VERTEX_POINT('',#4666);
++#4669=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
++#4670=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
++#4671=VERTEX_POINT('',#4669);
++#4672=VERTEX_POINT('',#4670);
++#4673=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
++#4674=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
++#4675=VERTEX_POINT('',#4673);
++#4676=VERTEX_POINT('',#4674);
++#4677=CARTESIAN_POINT('',(1.2256E1,1.E0,3.075E1));
++#4678=CARTESIAN_POINT('',(1.1744E1,1.E0,3.075E1));
++#4679=VERTEX_POINT('',#4677);
++#4680=VERTEX_POINT('',#4678);
++#4681=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
++#4682=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
++#4683=VERTEX_POINT('',#4681);
++#4684=VERTEX_POINT('',#4682);
++#4685=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
++#4686=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
++#4687=VERTEX_POINT('',#4685);
++#4688=VERTEX_POINT('',#4686);
++#4689=CARTESIAN_POINT('',(1.8256E1,1.E0,3.075E1));
++#4690=CARTESIAN_POINT('',(1.7744E1,1.E0,3.075E1));
++#4691=VERTEX_POINT('',#4689);
++#4692=VERTEX_POINT('',#4690);
++#4693=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
++#4694=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
++#4695=VERTEX_POINT('',#4693);
++#4696=VERTEX_POINT('',#4694);
++#4697=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
++#4698=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
++#4699=VERTEX_POINT('',#4697);
++#4700=VERTEX_POINT('',#4698);
++#4701=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
++#4702=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
++#4703=VERTEX_POINT('',#4701);
++#4704=VERTEX_POINT('',#4702);
++#4705=CARTESIAN_POINT('',(4.4125E0,1.05E1,1.E1));
++#4706=CARTESIAN_POINT('',(4.0875E0,1.05E1,1.E1));
++#4707=VERTEX_POINT('',#4705);
++#4708=VERTEX_POINT('',#4706);
++#4709=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.25E0));
++#4710=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.25E0));
++#4711=VERTEX_POINT('',#4709);
++#4712=VERTEX_POINT('',#4710);
++#4713=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
++#4714=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
++#4715=VERTEX_POINT('',#4713);
++#4716=VERTEX_POINT('',#4714);
++#4717=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.25E0));
++#4718=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.25E0));
++#4719=VERTEX_POINT('',#4717);
++#4720=VERTEX_POINT('',#4718);
++#4721=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
++#4722=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
++#4723=VERTEX_POINT('',#4721);
++#4724=VERTEX_POINT('',#4722);
++#4725=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.25E0));
++#4726=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.25E0));
++#4727=VERTEX_POINT('',#4725);
++#4728=VERTEX_POINT('',#4726);
++#4729=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
++#4730=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
++#4731=VERTEX_POINT('',#4729);
++#4732=VERTEX_POINT('',#4730);
++#4733=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
++#4734=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
++#4735=VERTEX_POINT('',#4733);
++#4736=VERTEX_POINT('',#4734);
++#4737=CARTESIAN_POINT('',(1.95875E1,1.05E1,1.E1));
++#4738=CARTESIAN_POINT('',(1.99125E1,1.05E1,1.E1));
++#4739=VERTEX_POINT('',#4737);
++#4740=VERTEX_POINT('',#4738);
++#4741=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.25E0));
++#4742=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.25E0));
++#4743=VERTEX_POINT('',#4741);
++#4744=VERTEX_POINT('',#4742);
++#4745=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
++#4746=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
++#4747=VERTEX_POINT('',#4745);
++#4748=VERTEX_POINT('',#4746);
++#4749=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.25E0));
++#4750=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.25E0));
++#4751=VERTEX_POINT('',#4749);
++#4752=VERTEX_POINT('',#4750);
++#4753=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
++#4754=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
++#4755=VERTEX_POINT('',#4753);
++#4756=VERTEX_POINT('',#4754);
++#4757=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.25E0));
++#4758=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.25E0));
++#4759=VERTEX_POINT('',#4757);
++#4760=VERTEX_POINT('',#4758);
++#4761=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
++#4762=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
++#4763=VERTEX_POINT('',#4761);
++#4764=VERTEX_POINT('',#4762);
++#4765=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
++#4766=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
++#4767=VERTEX_POINT('',#4765);
++#4768=VERTEX_POINT('',#4766);
++#4769=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
++#4770=CARTESIAN_POINT('',(5.E0,0.E0,1.1E1));
++#4771=VERTEX_POINT('',#4769);
++#4772=VERTEX_POINT('',#4770);
++#4773=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
++#4774=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
++#4775=VERTEX_POINT('',#4773);
++#4776=VERTEX_POINT('',#4774);
++#4777=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
++#4778=CARTESIAN_POINT('',(1.9E1,1.5E0,1.1E1));
++#4779=VERTEX_POINT('',#4777);
++#4780=VERTEX_POINT('',#4778);
++#4781=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
++#4782=CARTESIAN_POINT('',(1.8E1,1.5E0,1.E1));
++#4783=VERTEX_POINT('',#4781);
++#4784=VERTEX_POINT('',#4782);
++#4785=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
++#4786=VERTEX_POINT('',#4785);
++#4787=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
++#4788=VERTEX_POINT('',#4787);
++#4789=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
++#4790=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
++#4791=VERTEX_POINT('',#4789);
++#4792=VERTEX_POINT('',#4790);
++#4793=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
++#4794=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
++#4795=VERTEX_POINT('',#4793);
++#4796=VERTEX_POINT('',#4794);
++#4797=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
++#4798=CARTESIAN_POINT('',(2.15E1,1.5E0,2.19375E1));
++#4799=VERTEX_POINT('',#4797);
++#4800=VERTEX_POINT('',#4798);
++#4801=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
++#4802=CARTESIAN_POINT('',(1.85E1,1.5E0,1.89375E1));
++#4803=VERTEX_POINT('',#4801);
++#4804=VERTEX_POINT('',#4802);
++#4805=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
++#4806=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
++#4807=VERTEX_POINT('',#4805);
++#4808=VERTEX_POINT('',#4806);
++#4809=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
++#4810=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
++#4811=VERTEX_POINT('',#4809);
++#4812=VERTEX_POINT('',#4810);
++#4813=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
++#4814=CARTESIAN_POINT('',(2.5E0,1.5E0,1.40625E1));
++#4815=VERTEX_POINT('',#4813);
++#4816=VERTEX_POINT('',#4814);
++#4817=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
++#4818=CARTESIAN_POINT('',(5.5E0,1.5E0,1.70625E1));
++#4819=VERTEX_POINT('',#4817);
++#4820=VERTEX_POINT('',#4818);
++#4821=CARTESIAN_POINT('',(6.1925E0,0.E0,9.E0));
++#4822=CARTESIAN_POINT('',(5.8075E0,0.E0,9.E0));
++#4823=VERTEX_POINT('',#4821);
++#4824=VERTEX_POINT('',#4822);
++#4825=CARTESIAN_POINT('',(6.2575E0,1.E0,9.E0));
++#4826=CARTESIAN_POINT('',(5.7425E0,1.E0,9.E0));
++#4827=VERTEX_POINT('',#4825);
++#4828=VERTEX_POINT('',#4826);
++#4829=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
++#4830=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
++#4831=VERTEX_POINT('',#4829);
++#4832=VERTEX_POINT('',#4830);
++#4833=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
++#4834=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
++#4835=VERTEX_POINT('',#4833);
++#4836=VERTEX_POINT('',#4834);
++#4837=CARTESIAN_POINT('',(1.21925E1,0.E0,9.E0));
++#4838=CARTESIAN_POINT('',(1.18075E1,0.E0,9.E0));
++#4839=VERTEX_POINT('',#4837);
++#4840=VERTEX_POINT('',#4838);
++#4841=CARTESIAN_POINT('',(1.81925E1,0.E0,9.E0));
++#4842=CARTESIAN_POINT('',(1.78075E1,0.E0,9.E0));
++#4843=VERTEX_POINT('',#4841);
++#4844=VERTEX_POINT('',#4842);
++#4845=CARTESIAN_POINT('',(6.1925E0,0.E0,1.8E1));
++#4846=CARTESIAN_POINT('',(5.8075E0,0.E0,1.8E1));
++#4847=VERTEX_POINT('',#4845);
++#4848=VERTEX_POINT('',#4846);
++#4849=CARTESIAN_POINT('',(1.21925E1,0.E0,1.8E1));
++#4850=CARTESIAN_POINT('',(1.18075E1,0.E0,1.8E1));
++#4851=VERTEX_POINT('',#4849);
++#4852=VERTEX_POINT('',#4850);
++#4853=CARTESIAN_POINT('',(1.81925E1,0.E0,1.8E1));
++#4854=CARTESIAN_POINT('',(1.78075E1,0.E0,1.8E1));
++#4855=VERTEX_POINT('',#4853);
++#4856=VERTEX_POINT('',#4854);
++#4857=CARTESIAN_POINT('',(1.22575E1,1.E0,9.E0));
++#4858=CARTESIAN_POINT('',(1.17425E1,1.E0,9.E0));
++#4859=VERTEX_POINT('',#4857);
++#4860=VERTEX_POINT('',#4858);
++#4861=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
++#4862=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
++#4863=VERTEX_POINT('',#4861);
++#4864=VERTEX_POINT('',#4862);
++#4865=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
++#4866=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
++#4867=VERTEX_POINT('',#4865);
++#4868=VERTEX_POINT('',#4866);
++#4869=CARTESIAN_POINT('',(1.82575E1,1.E0,9.E0));
++#4870=CARTESIAN_POINT('',(1.77425E1,1.E0,9.E0));
++#4871=VERTEX_POINT('',#4869);
++#4872=VERTEX_POINT('',#4870);
++#4873=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
++#4874=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
++#4875=VERTEX_POINT('',#4873);
++#4876=VERTEX_POINT('',#4874);
++#4877=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
++#4878=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
++#4879=VERTEX_POINT('',#4877);
++#4880=VERTEX_POINT('',#4878);
++#4881=CARTESIAN_POINT('',(6.2575E0,1.E0,1.8E1));
++#4882=CARTESIAN_POINT('',(5.7425E0,1.E0,1.8E1));
++#4883=VERTEX_POINT('',#4881);
++#4884=VERTEX_POINT('',#4882);
++#4885=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
++#4886=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
++#4887=VERTEX_POINT('',#4885);
++#4888=VERTEX_POINT('',#4886);
++#4889=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
++#4890=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
++#4891=VERTEX_POINT('',#4889);
++#4892=VERTEX_POINT('',#4890);
++#4893=CARTESIAN_POINT('',(1.22575E1,1.E0,1.8E1));
++#4894=CARTESIAN_POINT('',(1.17425E1,1.E0,1.8E1));
++#4895=VERTEX_POINT('',#4893);
++#4896=VERTEX_POINT('',#4894);
++#4897=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
++#4898=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
++#4899=VERTEX_POINT('',#4897);
++#4900=VERTEX_POINT('',#4898);
++#4901=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
++#4902=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
++#4903=VERTEX_POINT('',#4901);
++#4904=VERTEX_POINT('',#4902);
++#4905=CARTESIAN_POINT('',(1.82575E1,1.E0,1.8E1));
++#4906=CARTESIAN_POINT('',(1.77425E1,1.E0,1.8E1));
++#4907=VERTEX_POINT('',#4905);
++#4908=VERTEX_POINT('',#4906);
++#4909=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
++#4910=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
++#4911=VERTEX_POINT('',#4909);
++#4912=VERTEX_POINT('',#4910);
++#4913=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
++#4914=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
++#4915=VERTEX_POINT('',#4913);
++#4916=VERTEX_POINT('',#4914);
++#4917=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
++#4918=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
++#4919=VERTEX_POINT('',#4917);
++#4920=VERTEX_POINT('',#4918);
++#4921=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
++#4922=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
++#4923=VERTEX_POINT('',#4921);
++#4924=VERTEX_POINT('',#4922);
++#4925=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
++#4926=VERTEX_POINT('',#4925);
++#4927=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
++#4928=VERTEX_POINT('',#4927);
++#4929=VERTEX_POINT('',#1837);
++#4930=VERTEX_POINT('',#1845);
++#4931=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
++#4932=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
++#4933=VERTEX_POINT('',#4931);
++#4934=VERTEX_POINT('',#4932);
++#4935=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
++#4936=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
++#4937=VERTEX_POINT('',#4935);
++#4938=VERTEX_POINT('',#4936);
++#4939=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
++#4940=VERTEX_POINT('',#4939);
++#4941=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
++#4942=VERTEX_POINT('',#4941);
++#4943=VERTEX_POINT('',#2873);
++#4944=VERTEX_POINT('',#2881);
++#4945=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
++#4946=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
++#4947=VERTEX_POINT('',#4945);
++#4948=VERTEX_POINT('',#4946);
++#4949=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
++#4950=CARTESIAN_POINT('',(4.5E0,2.75E0,8.5E0));
++#4951=VERTEX_POINT('',#4949);
++#4952=VERTEX_POINT('',#4950);
++#4953=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
++#4954=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
++#4955=VERTEX_POINT('',#4953);
++#4956=VERTEX_POINT('',#4954);
++#4957=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
++#4958=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.5E0));
++#4959=VERTEX_POINT('',#4957);
++#4960=VERTEX_POINT('',#4958);
++#4961=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
++#4962=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
++#4963=VERTEX_POINT('',#4961);
++#4964=VERTEX_POINT('',#4962);
++#4965=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
++#4966=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.5E0));
++#4967=VERTEX_POINT('',#4965);
++#4968=VERTEX_POINT('',#4966);
++#4969=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
++#4970=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
++#4971=VERTEX_POINT('',#4969);
++#4972=VERTEX_POINT('',#4970);
++#4973=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
++#4974=CARTESIAN_POINT('',(3.75E0,9.5E0,8.5E0));
++#4975=VERTEX_POINT('',#4973);
++#4976=VERTEX_POINT('',#4974);
++#4977=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
++#4978=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
++#4979=VERTEX_POINT('',#4977);
++#4980=VERTEX_POINT('',#4978);
++#4981=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
++#4982=CARTESIAN_POINT('',(2.5E0,2.35E0,9.5E0));
++#4983=VERTEX_POINT('',#4981);
++#4984=VERTEX_POINT('',#4982);
++#4985=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
++#4986=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
++#4987=VERTEX_POINT('',#4985);
++#4988=VERTEX_POINT('',#4986);
++#4989=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
++#4990=CARTESIAN_POINT('',(4.15E0,2.E0,9.5E0));
++#4991=VERTEX_POINT('',#4989);
++#4992=VERTEX_POINT('',#4990);
++#4993=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
++#4994=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
++#4995=VERTEX_POINT('',#4993);
++#4996=VERTEX_POINT('',#4994);
++#4997=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
++#4998=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,9.5E0));
++#4999=VERTEX_POINT('',#4997);
++#5000=VERTEX_POINT('',#4998);
++#5001=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
++#5002=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
++#5003=VERTEX_POINT('',#5001);
++#5004=VERTEX_POINT('',#5002);
++#5005=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
++#5006=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,9.5E0));
++#5007=VERTEX_POINT('',#5005);
++#5008=VERTEX_POINT('',#5006);
++#5009=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
++#5010=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
++#5011=VERTEX_POINT('',#5009);
++#5012=VERTEX_POINT('',#5010);
++#5013=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
++#5014=CARTESIAN_POINT('',(4.5E0,9.15E0,9.5E0));
++#5015=VERTEX_POINT('',#5013);
++#5016=VERTEX_POINT('',#5014);
++#5017=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
++#5018=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
++#5019=VERTEX_POINT('',#5017);
++#5020=VERTEX_POINT('',#5018);
++#5021=CARTESIAN_POINT('',(2.15E0,7.E0,1.E1));
++#5022=VERTEX_POINT('',#5021);
++#5023=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
++#5024=VERTEX_POINT('',#5023);
++#5025=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
++#5026=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
++#5027=VERTEX_POINT('',#5025);
++#5028=VERTEX_POINT('',#5026);
++#5029=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
++#5030=VERTEX_POINT('',#5029);
++#5031=CARTESIAN_POINT('',(1.95E1,2.75E0,8.E0));
++#5032=VERTEX_POINT('',#5031);
++#5033=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
++#5034=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
++#5035=VERTEX_POINT('',#5033);
++#5036=VERTEX_POINT('',#5034);
++#5037=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
++#5038=VERTEX_POINT('',#5037);
++#5039=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.E0));
++#5040=VERTEX_POINT('',#5039);
++#5041=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
++#5042=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
++#5043=VERTEX_POINT('',#5041);
++#5044=VERTEX_POINT('',#5042);
++#5045=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
++#5046=VERTEX_POINT('',#5045);
++#5047=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.E0));
++#5048=VERTEX_POINT('',#5047);
++#5049=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
++#5050=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
++#5051=VERTEX_POINT('',#5049);
++#5052=VERTEX_POINT('',#5050);
++#5053=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
++#5054=VERTEX_POINT('',#5053);
++#5055=CARTESIAN_POINT('',(2.025E1,9.5E0,8.E0));
++#5056=VERTEX_POINT('',#5055);
++#5057=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
++#5058=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
++#5059=VERTEX_POINT('',#5057);
++#5060=VERTEX_POINT('',#5058);
++#5061=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
++#5062=VERTEX_POINT('',#5061);
++#5063=CARTESIAN_POINT('',(2.15E1,2.35E0,1.E1));
++#5064=VERTEX_POINT('',#5063);
++#5065=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
++#5066=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
++#5067=VERTEX_POINT('',#5065);
++#5068=VERTEX_POINT('',#5066);
++#5069=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
++#5070=VERTEX_POINT('',#5069);
++#5071=CARTESIAN_POINT('',(1.985E1,2.E0,1.E1));
++#5072=VERTEX_POINT('',#5071);
++#5073=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
++#5074=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
++#5075=VERTEX_POINT('',#5073);
++#5076=VERTEX_POINT('',#5074);
++#5077=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
++#5078=VERTEX_POINT('',#5077);
++#5079=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,1.E1));
++#5080=VERTEX_POINT('',#5079);
++#5081=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
++#5082=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
++#5083=VERTEX_POINT('',#5081);
++#5084=VERTEX_POINT('',#5082);
++#5085=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
++#5086=VERTEX_POINT('',#5085);
++#5087=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,1.E1));
++#5088=VERTEX_POINT('',#5087);
++#5089=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
++#5090=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
++#5091=VERTEX_POINT('',#5089);
++#5092=VERTEX_POINT('',#5090);
++#5093=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
++#5094=VERTEX_POINT('',#5093);
++#5095=CARTESIAN_POINT('',(1.95E1,9.15E0,1.E1));
++#5096=VERTEX_POINT('',#5095);
++#5097=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
++#5098=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
++#5099=VERTEX_POINT('',#5097);
++#5100=VERTEX_POINT('',#5098);
++#5101=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
++#5102=CARTESIAN_POINT('',(2.185E1,7.E0,9.5E0));
++#5103=VERTEX_POINT('',#5101);
++#5104=VERTEX_POINT('',#5102);
++#5105=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
++#5106=CARTESIAN_POINT('',(1.05E1,6.875E-1,6.875E-1));
++#5107=VERTEX_POINT('',#5105);
++#5108=VERTEX_POINT('',#5106);
++#5109=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
++#5110=VERTEX_POINT('',#5109);
++#5111=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8125E0));
++#5112=VERTEX_POINT('',#5111);
++#5113=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,1.032293285145E0));
++#5114=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.419779663480E0));
++#5115=VERTEX_POINT('',#5113);
++#5116=VERTEX_POINT('',#5114);
++#5117=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,4.918683812405E0));
++#5118=VERTEX_POINT('',#5117);
++#5119=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
++#5120=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
++#5121=VERTEX_POINT('',#5119);
++#5122=VERTEX_POINT('',#5120);
++#5123=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
++#5124=VERTEX_POINT('',#5123);
++#5125=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
++#5126=VERTEX_POINT('',#5125);
++#5127=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
++#5128=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
++#5129=VERTEX_POINT('',#5127);
++#5130=VERTEX_POINT('',#5128);
++#5131=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
++#5132=VERTEX_POINT('',#5131);
++#5133=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
++#5134=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
++#5135=VERTEX_POINT('',#5133);
++#5136=VERTEX_POINT('',#5134);
++#5137=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
++#5138=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,4.912826677187E0));
++#5139=VERTEX_POINT('',#5137);
++#5140=VERTEX_POINT('',#5138);
++#5141=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.5E0));
++#5142=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
++#5143=VERTEX_POINT('',#5141);
++#5144=VERTEX_POINT('',#5142);
++#5145=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
++#5146=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
++#5147=VERTEX_POINT('',#5145);
++#5148=VERTEX_POINT('',#5146);
++#5149=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
++#5150=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
++#5151=VERTEX_POINT('',#5149);
++#5152=VERTEX_POINT('',#5150);
++#5153=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
++#5154=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.125E1));
++#5155=VERTEX_POINT('',#5153);
++#5156=VERTEX_POINT('',#5154);
++#5157=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
++#5158=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
++#5159=VERTEX_POINT('',#5157);
++#5160=VERTEX_POINT('',#5158);
++#5161=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
++#5162=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,9.565E0));
++#5163=VERTEX_POINT('',#5161);
++#5164=VERTEX_POINT('',#5162);
++#5165=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
++#5166=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
++#5167=VERTEX_POINT('',#5165);
++#5168=VERTEX_POINT('',#5166);
++#5169=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
++#5170=CARTESIAN_POINT('',(3.4375E0,6.875E-1,8.69E0));
++#5171=VERTEX_POINT('',#5169);
++#5172=VERTEX_POINT('',#5170);
++#5173=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
++#5174=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
++#5175=VERTEX_POINT('',#5173);
++#5176=VERTEX_POINT('',#5174);
++#5177=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
++#5178=CARTESIAN_POINT('',(4.3125E0,6.875E-1,1.0375E1));
++#5179=VERTEX_POINT('',#5177);
++#5180=VERTEX_POINT('',#5178);
++#5181=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
++#5182=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
++#5183=VERTEX_POINT('',#5181);
++#5184=VERTEX_POINT('',#5182);
++#5185=CARTESIAN_POINT('',(-1.85E-1,0.E0,8.69E0));
++#5186=VERTEX_POINT('',#5185);
++#5187=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
++#5188=VERTEX_POINT('',#5187);
++#5189=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
++#5190=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
++#5191=VERTEX_POINT('',#5189);
++#5192=VERTEX_POINT('',#5190);
++#5193=CARTESIAN_POINT('',(1.8125E0,0.E0,7.815E0));
++#5194=VERTEX_POINT('',#5193);
++#5195=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
++#5196=VERTEX_POINT('',#5195);
++#5197=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
++#5198=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.35E1));
++#5199=VERTEX_POINT('',#5197);
++#5200=VERTEX_POINT('',#5198);
++#5201=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
++#5202=VERTEX_POINT('',#5201);
++#5203=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.65E1));
++#5204=VERTEX_POINT('',#5203);
++#5205=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
++#5206=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
++#5207=VERTEX_POINT('',#5205);
++#5208=VERTEX_POINT('',#5206);
++#5209=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
++#5210=VERTEX_POINT('',#5209);
++#5211=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
++#5212=VERTEX_POINT('',#5211);
++#5213=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
++#5214=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.95E1));
++#5215=VERTEX_POINT('',#5213);
++#5216=VERTEX_POINT('',#5214);
++#5217=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
++#5218=VERTEX_POINT('',#5217);
++#5219=CARTESIAN_POINT('',(1.8125E0,6.875E-1,2.25E1));
++#5220=VERTEX_POINT('',#5219);
++#5221=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
++#5222=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
++#5223=VERTEX_POINT('',#5221);
++#5224=VERTEX_POINT('',#5222);
++#5225=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
++#5226=VERTEX_POINT('',#5225);
++#5227=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
++#5228=VERTEX_POINT('',#5227);
++#5229=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
++#5230=CARTESIAN_POINT('',(1.05E1,6.875E-1,8.5E0));
++#5231=VERTEX_POINT('',#5229);
++#5232=VERTEX_POINT('',#5230);
++#5233=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
++#5234=VERTEX_POINT('',#5233);
++#5235=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.5E0));
++#5236=VERTEX_POINT('',#5235);
++#5237=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
++#5238=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
++#5239=VERTEX_POINT('',#5237);
++#5240=VERTEX_POINT('',#5238);
++#5241=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
++#5242=VERTEX_POINT('',#5241);
++#5243=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
++#5244=VERTEX_POINT('',#5243);
++#5245=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
++#5246=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.75625E1));
++#5247=VERTEX_POINT('',#5245);
++#5248=VERTEX_POINT('',#5246);
++#5249=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
++#5250=VERTEX_POINT('',#5249);
++#5251=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.84375E1));
++#5252=VERTEX_POINT('',#5251);
++#5253=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
++#5254=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
++#5255=VERTEX_POINT('',#5253);
++#5256=VERTEX_POINT('',#5254);
++#5257=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
++#5258=VERTEX_POINT('',#5257);
++#5259=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
++#5260=VERTEX_POINT('',#5259);
++#5261=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
++#5262=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.13125E1));
++#5263=VERTEX_POINT('',#5261);
++#5264=VERTEX_POINT('',#5262);
++#5265=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
++#5266=VERTEX_POINT('',#5265);
++#5267=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.01875E1));
++#5268=VERTEX_POINT('',#5267);
++#5269=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,3.096770671486E1));
++#5270=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.958022033652E1));
++#5271=VERTEX_POINT('',#5269);
++#5272=VERTEX_POINT('',#5270);
++#5273=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,2.708131618759E1));
++#5274=VERTEX_POINT('',#5273);
++#5275=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
++#5276=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
++#5277=VERTEX_POINT('',#5275);
++#5278=VERTEX_POINT('',#5276);
++#5279=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
++#5280=VERTEX_POINT('',#5279);
++#5281=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
++#5282=VERTEX_POINT('',#5281);
++#5283=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
++#5284=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
++#5285=VERTEX_POINT('',#5283);
++#5286=VERTEX_POINT('',#5284);
++#5287=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
++#5288=VERTEX_POINT('',#5287);
++#5289=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
++#5290=CARTESIAN_POINT('',(1.35E1,6.875E-1,6.875E-1));
++#5291=VERTEX_POINT('',#5289);
++#5292=VERTEX_POINT('',#5290);
++#5293=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
++#5294=VERTEX_POINT('',#5293);
++#5295=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8125E0));
++#5296=VERTEX_POINT('',#5295);
++#5297=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,1.032293285145E0));
++#5298=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.419779663480E0));
++#5299=VERTEX_POINT('',#5297);
++#5300=VERTEX_POINT('',#5298);
++#5301=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,4.918683812405E0));
++#5302=VERTEX_POINT('',#5301);
++#5303=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
++#5304=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
++#5305=VERTEX_POINT('',#5303);
++#5306=VERTEX_POINT('',#5304);
++#5307=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
++#5308=VERTEX_POINT('',#5307);
++#5309=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
++#5310=VERTEX_POINT('',#5309);
++#5311=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
++#5312=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
++#5313=VERTEX_POINT('',#5311);
++#5314=VERTEX_POINT('',#5312);
++#5315=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
++#5316=VERTEX_POINT('',#5315);
++#5317=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.5E0));
++#5318=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
++#5319=VERTEX_POINT('',#5317);
++#5320=VERTEX_POINT('',#5318);
++#5321=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
++#5322=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
++#5323=VERTEX_POINT('',#5321);
++#5324=VERTEX_POINT('',#5322);
++#5325=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
++#5326=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.35E1));
++#5327=VERTEX_POINT('',#5325);
++#5328=VERTEX_POINT('',#5326);
++#5329=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
++#5330=VERTEX_POINT('',#5329);
++#5331=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.65E1));
++#5332=VERTEX_POINT('',#5331);
++#5333=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
++#5334=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
++#5335=VERTEX_POINT('',#5333);
++#5336=VERTEX_POINT('',#5334);
++#5337=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
++#5338=VERTEX_POINT('',#5337);
++#5339=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
++#5340=VERTEX_POINT('',#5339);
++#5341=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
++#5342=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.95E1));
++#5343=VERTEX_POINT('',#5341);
++#5344=VERTEX_POINT('',#5342);
++#5345=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
++#5346=VERTEX_POINT('',#5345);
++#5347=CARTESIAN_POINT('',(2.21875E1,6.875E-1,2.25E1));
++#5348=VERTEX_POINT('',#5347);
++#5349=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
++#5350=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
++#5351=VERTEX_POINT('',#5349);
++#5352=VERTEX_POINT('',#5350);
++#5353=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
++#5354=VERTEX_POINT('',#5353);
++#5355=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
++#5356=VERTEX_POINT('',#5355);
++#5357=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
++#5358=CARTESIAN_POINT('',(1.35E1,6.875E-1,8.5E0));
++#5359=VERTEX_POINT('',#5357);
++#5360=VERTEX_POINT('',#5358);
++#5361=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
++#5362=VERTEX_POINT('',#5361);
++#5363=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.5E0));
++#5364=VERTEX_POINT('',#5363);
++#5365=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
++#5366=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
++#5367=VERTEX_POINT('',#5365);
++#5368=VERTEX_POINT('',#5366);
++#5369=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
++#5370=VERTEX_POINT('',#5369);
++#5371=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
++#5372=VERTEX_POINT('',#5371);
++#5373=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
++#5374=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.75625E1));
++#5375=VERTEX_POINT('',#5373);
++#5376=VERTEX_POINT('',#5374);
++#5377=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
++#5378=VERTEX_POINT('',#5377);
++#5379=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.84375E1));
++#5380=VERTEX_POINT('',#5379);
++#5381=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
++#5382=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
++#5383=VERTEX_POINT('',#5381);
++#5384=VERTEX_POINT('',#5382);
++#5385=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
++#5386=VERTEX_POINT('',#5385);
++#5387=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
++#5388=VERTEX_POINT('',#5387);
++#5389=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
++#5390=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.13125E1));
++#5391=VERTEX_POINT('',#5389);
++#5392=VERTEX_POINT('',#5390);
++#5393=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
++#5394=VERTEX_POINT('',#5393);
++#5395=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.01875E1));
++#5396=VERTEX_POINT('',#5395);
++#5397=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,3.096770671486E1));
++#5398=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.958022033652E1));
++#5399=VERTEX_POINT('',#5397);
++#5400=VERTEX_POINT('',#5398);
++#5401=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,2.708131618759E1));
++#5402=VERTEX_POINT('',#5401);
++#5403=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
++#5404=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
++#5405=VERTEX_POINT('',#5403);
++#5406=VERTEX_POINT('',#5404);
++#5407=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
++#5408=VERTEX_POINT('',#5407);
++#5409=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
++#5410=VERTEX_POINT('',#5409);
++#5411=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
++#5412=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
++#5413=VERTEX_POINT('',#5411);
++#5414=VERTEX_POINT('',#5412);
++#5415=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
++#5416=VERTEX_POINT('',#5415);
++#5417=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
++#5418=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
++#5419=VERTEX_POINT('',#5417);
++#5420=VERTEX_POINT('',#5418);
++#5421=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
++#5422=VERTEX_POINT('',#5421);
++#5423=CARTESIAN_POINT('',(2.05675E1,0.E0,8.69E0));
++#5424=VERTEX_POINT('',#5423);
++#5425=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
++#5426=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
++#5427=VERTEX_POINT('',#5425);
++#5428=VERTEX_POINT('',#5426);
++#5429=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
++#5430=VERTEX_POINT('',#5429);
++#5431=CARTESIAN_POINT('',(1.96875E1,0.E0,1.037E1));
++#5432=VERTEX_POINT('',#5431);
++#5433=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
++#5434=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
++#5435=VERTEX_POINT('',#5433);
++#5436=VERTEX_POINT('',#5434);
++#5437=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
++#5438=VERTEX_POINT('',#5437);
++#5439=CARTESIAN_POINT('',(2.53125E1,0.E0,9.57E0));
++#5440=VERTEX_POINT('',#5439);
++#5441=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
++#5442=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
++#5443=VERTEX_POINT('',#5441);
++#5444=VERTEX_POINT('',#5442);
++#5445=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
++#5446=VERTEX_POINT('',#5445);
++#5447=CARTESIAN_POINT('',(2.44325E1,0.E0,1.125E1));
++#5448=VERTEX_POINT('',#5447);
++#5449=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
++#5450=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
++#5451=VERTEX_POINT('',#5449);
++#5452=VERTEX_POINT('',#5450);
++#5453=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
++#5454=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.81E0));
++#5455=VERTEX_POINT('',#5453);
++#5456=VERTEX_POINT('',#5454);
++#5457=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
++#5458=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
++#5459=VERTEX_POINT('',#5457);
++#5460=VERTEX_POINT('',#5458);
++#5461=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
++#5462=CARTESIAN_POINT('',(2.419E1,6.875E-1,8.69E0));
++#5463=VERTEX_POINT('',#5461);
++#5464=VERTEX_POINT('',#5462);
++#5465=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
++#5466=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,4.912826677187E0));
++#5467=VERTEX_POINT('',#5465);
++#5468=VERTEX_POINT('',#5466);
++#5469=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
++#5470=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
++#5471=VERTEX_POINT('',#5469);
++#5472=VERTEX_POINT('',#5470);
++#5473=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
++#5474=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,2.708717332281E1));
++#5475=VERTEX_POINT('',#5473);
++#5476=VERTEX_POINT('',#5474);
++#5477=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
++#5478=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
++#5479=VERTEX_POINT('',#5477);
++#5480=VERTEX_POINT('',#5478);
++#5481=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
++#5482=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
++#5483=VERTEX_POINT('',#5481);
++#5484=VERTEX_POINT('',#5482);
++#5485=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
++#5486=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,2.708717332281E1));
++#5487=VERTEX_POINT('',#5485);
++#5488=VERTEX_POINT('',#5486);
++#5489=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
++#5490=DIRECTION('',(0.E0,1.E0,0.E0));
++#5491=DIRECTION('',(1.E0,0.E0,0.E0));
++#5492=AXIS2_PLACEMENT_3D('',#5489,#5490,#5491);
++#5493=PLANE('',#5492);
++#5495=ORIENTED_EDGE('',*,*,#5494,.F.);
++#5497=ORIENTED_EDGE('',*,*,#5496,.F.);
++#5499=ORIENTED_EDGE('',*,*,#5498,.T.);
++#5501=ORIENTED_EDGE('',*,*,#5500,.F.);
++#5503=ORIENTED_EDGE('',*,*,#5502,.T.);
++#5505=ORIENTED_EDGE('',*,*,#5504,.F.);
++#5507=ORIENTED_EDGE('',*,*,#5506,.T.);
++#5509=ORIENTED_EDGE('',*,*,#5508,.F.);
++#5511=ORIENTED_EDGE('',*,*,#5510,.T.);
++#5513=ORIENTED_EDGE('',*,*,#5512,.T.);
++#5515=ORIENTED_EDGE('',*,*,#5514,.F.);
++#5517=ORIENTED_EDGE('',*,*,#5516,.T.);
++#5519=ORIENTED_EDGE('',*,*,#5518,.F.);
++#5521=ORIENTED_EDGE('',*,*,#5520,.T.);
++#5523=ORIENTED_EDGE('',*,*,#5522,.F.);
++#5525=ORIENTED_EDGE('',*,*,#5524,.T.);
++#5527=ORIENTED_EDGE('',*,*,#5526,.F.);
++#5529=ORIENTED_EDGE('',*,*,#5528,.T.);
++#5531=ORIENTED_EDGE('',*,*,#5530,.F.);
++#5533=ORIENTED_EDGE('',*,*,#5532,.F.);
++#5535=ORIENTED_EDGE('',*,*,#5534,.T.);
++#5537=ORIENTED_EDGE('',*,*,#5536,.F.);
++#5538=EDGE_LOOP('',(#5495,#5497,#5499,#5501,#5503,#5505,#5507,#5509,#5511,#5513,
++#5515,#5517,#5519,#5521,#5523,#5525,#5527,#5529,#5531,#5533,#5535,#5537));
++#5539=FACE_OUTER_BOUND('',#5538,.F.);
++#5541=ORIENTED_EDGE('',*,*,#5540,.T.);
++#5543=ORIENTED_EDGE('',*,*,#5542,.F.);
++#5545=ORIENTED_EDGE('',*,*,#5544,.F.);
++#5547=ORIENTED_EDGE('',*,*,#5546,.F.);
++#5549=ORIENTED_EDGE('',*,*,#5548,.F.);
++#5551=ORIENTED_EDGE('',*,*,#5550,.F.);
++#5552=EDGE_LOOP('',(#5541,#5543,#5545,#5547,#5549,#5551));
++#5553=FACE_BOUND('',#5552,.F.);
++#5555=ORIENTED_EDGE('',*,*,#5554,.T.);
++#5557=ORIENTED_EDGE('',*,*,#5556,.T.);
++#5558=EDGE_LOOP('',(#5555,#5557));
++#5559=FACE_BOUND('',#5558,.F.);
++#5561=ORIENTED_EDGE('',*,*,#5560,.T.);
++#5563=ORIENTED_EDGE('',*,*,#5562,.T.);
++#5564=EDGE_LOOP('',(#5561,#5563));
++#5565=FACE_BOUND('',#5564,.F.);
++#5567=ORIENTED_EDGE('',*,*,#5566,.T.);
++#5569=ORIENTED_EDGE('',*,*,#5568,.T.);
++#5570=EDGE_LOOP('',(#5567,#5569));
++#5571=FACE_BOUND('',#5570,.F.);
++#5573=ORIENTED_EDGE('',*,*,#5572,.T.);
++#5575=ORIENTED_EDGE('',*,*,#5574,.T.);
++#5576=EDGE_LOOP('',(#5573,#5575));
++#5577=FACE_BOUND('',#5576,.F.);
++#5579=ORIENTED_EDGE('',*,*,#5578,.T.);
++#5581=ORIENTED_EDGE('',*,*,#5580,.T.);
++#5582=EDGE_LOOP('',(#5579,#5581));
++#5583=FACE_BOUND('',#5582,.F.);
++#5585=ORIENTED_EDGE('',*,*,#5584,.T.);
++#5587=ORIENTED_EDGE('',*,*,#5586,.T.);
++#5588=EDGE_LOOP('',(#5585,#5587));
++#5589=FACE_BOUND('',#5588,.F.);
++#5591=ORIENTED_EDGE('',*,*,#5590,.T.);
++#5593=ORIENTED_EDGE('',*,*,#5592,.T.);
++#5594=EDGE_LOOP('',(#5591,#5593));
++#5595=FACE_BOUND('',#5594,.F.);
++#5597=ORIENTED_EDGE('',*,*,#5596,.T.);
++#5599=ORIENTED_EDGE('',*,*,#5598,.T.);
++#5600=EDGE_LOOP('',(#5597,#5599));
++#5601=FACE_BOUND('',#5600,.F.);
++#5603=ORIENTED_EDGE('',*,*,#5602,.T.);
++#5605=ORIENTED_EDGE('',*,*,#5604,.T.);
++#5606=EDGE_LOOP('',(#5603,#5605));
++#5607=FACE_BOUND('',#5606,.F.);
++#5609=ORIENTED_EDGE('',*,*,#5608,.T.);
++#5611=ORIENTED_EDGE('',*,*,#5610,.T.);
++#5612=EDGE_LOOP('',(#5609,#5611));
++#5613=FACE_BOUND('',#5612,.F.);
++#5615=ORIENTED_EDGE('',*,*,#5614,.T.);
++#5617=ORIENTED_EDGE('',*,*,#5616,.T.);
++#5618=EDGE_LOOP('',(#5615,#5617));
++#5619=FACE_BOUND('',#5618,.F.);
++#5621=ORIENTED_EDGE('',*,*,#5620,.T.);
++#5623=ORIENTED_EDGE('',*,*,#5622,.T.);
++#5624=EDGE_LOOP('',(#5621,#5623));
++#5625=FACE_BOUND('',#5624,.F.);
++#5627=ORIENTED_EDGE('',*,*,#5626,.T.);
++#5629=ORIENTED_EDGE('',*,*,#5628,.T.);
++#5630=EDGE_LOOP('',(#5627,#5629));
++#5631=FACE_BOUND('',#5630,.F.);
++#5633=ORIENTED_EDGE('',*,*,#5632,.T.);
++#5635=ORIENTED_EDGE('',*,*,#5634,.T.);
++#5636=EDGE_LOOP('',(#5633,#5635));
++#5637=FACE_BOUND('',#5636,.F.);
++#5639=ORIENTED_EDGE('',*,*,#5638,.T.);
++#5641=ORIENTED_EDGE('',*,*,#5640,.F.);
++#5643=ORIENTED_EDGE('',*,*,#5642,.F.);
++#5645=ORIENTED_EDGE('',*,*,#5644,.F.);
++#5647=ORIENTED_EDGE('',*,*,#5646,.F.);
++#5649=ORIENTED_EDGE('',*,*,#5648,.F.);
++#5651=ORIENTED_EDGE('',*,*,#5650,.F.);
++#5653=ORIENTED_EDGE('',*,*,#5652,.F.);
++#5654=EDGE_LOOP('',(#5639,#5641,#5643,#5645,#5647,#5649,#5651,#5653));
++#5655=FACE_BOUND('',#5654,.F.);
++#5657=ORIENTED_EDGE('',*,*,#5656,.F.);
++#5659=ORIENTED_EDGE('',*,*,#5658,.F.);
++#5661=ORIENTED_EDGE('',*,*,#5660,.T.);
++#5663=ORIENTED_EDGE('',*,*,#5662,.F.);
++#5665=ORIENTED_EDGE('',*,*,#5664,.F.);
++#5667=ORIENTED_EDGE('',*,*,#5666,.F.);
++#5669=ORIENTED_EDGE('',*,*,#5668,.T.);
++#5671=ORIENTED_EDGE('',*,*,#5670,.F.);
++#5673=ORIENTED_EDGE('',*,*,#5672,.T.);
++#5675=ORIENTED_EDGE('',*,*,#5674,.F.);
++#5677=ORIENTED_EDGE('',*,*,#5676,.T.);
++#5679=ORIENTED_EDGE('',*,*,#5678,.F.);
++#5681=ORIENTED_EDGE('',*,*,#5680,.F.);
++#5683=ORIENTED_EDGE('',*,*,#5682,.T.);
++#5685=ORIENTED_EDGE('',*,*,#5684,.F.);
++#5687=ORIENTED_EDGE('',*,*,#5686,.F.);
++#5688=EDGE_LOOP('',(#5657,#5659,#5661,#5663,#5665,#5667,#5669,#5671,#5673,#5675,
++#5677,#5679,#5681,#5683,#5685,#5687));
++#5689=FACE_BOUND('',#5688,.F.);
++#5691=ORIENTED_EDGE('',*,*,#5690,.T.);
++#5693=ORIENTED_EDGE('',*,*,#5692,.T.);
++#5694=EDGE_LOOP('',(#5691,#5693));
++#5695=FACE_BOUND('',#5694,.F.);
++#5697=ORIENTED_EDGE('',*,*,#5696,.T.);
++#5699=ORIENTED_EDGE('',*,*,#5698,.T.);
++#5700=EDGE_LOOP('',(#5697,#5699));
++#5701=FACE_BOUND('',#5700,.F.);
++#5703=ORIENTED_EDGE('',*,*,#5702,.T.);
++#5705=ORIENTED_EDGE('',*,*,#5704,.T.);
++#5706=EDGE_LOOP('',(#5703,#5705));
++#5707=FACE_BOUND('',#5706,.F.);
++#5709=ORIENTED_EDGE('',*,*,#5708,.T.);
++#5711=ORIENTED_EDGE('',*,*,#5710,.T.);
++#5712=EDGE_LOOP('',(#5709,#5711));
++#5713=FACE_BOUND('',#5712,.F.);
++#5715=ORIENTED_EDGE('',*,*,#5714,.T.);
++#5717=ORIENTED_EDGE('',*,*,#5716,.T.);
++#5718=EDGE_LOOP('',(#5715,#5717));
++#5719=FACE_BOUND('',#5718,.F.);
++#5721=ORIENTED_EDGE('',*,*,#5720,.T.);
++#5723=ORIENTED_EDGE('',*,*,#5722,.T.);
++#5724=EDGE_LOOP('',(#5721,#5723));
++#5725=FACE_BOUND('',#5724,.F.);
++#5727=ORIENTED_EDGE('',*,*,#5726,.T.);
++#5729=ORIENTED_EDGE('',*,*,#5728,.T.);
++#5731=ORIENTED_EDGE('',*,*,#5730,.T.);
++#5733=ORIENTED_EDGE('',*,*,#5732,.T.);
++#5734=EDGE_LOOP('',(#5727,#5729,#5731,#5733));
++#5735=FACE_BOUND('',#5734,.F.);
++#5737=ORIENTED_EDGE('',*,*,#5736,.T.);
++#5739=ORIENTED_EDGE('',*,*,#5738,.F.);
++#5741=ORIENTED_EDGE('',*,*,#5740,.T.);
++#5743=ORIENTED_EDGE('',*,*,#5742,.T.);
++#5745=ORIENTED_EDGE('',*,*,#5744,.F.);
++#5746=EDGE_LOOP('',(#5737,#5739,#5741,#5743,#5745));
++#5747=FACE_BOUND('',#5746,.F.);
++#5749=ORIENTED_EDGE('',*,*,#5748,.F.);
++#5751=ORIENTED_EDGE('',*,*,#5750,.T.);
++#5753=ORIENTED_EDGE('',*,*,#5752,.T.);
++#5755=ORIENTED_EDGE('',*,*,#5754,.T.);
++#5757=ORIENTED_EDGE('',*,*,#5756,.F.);
++#5759=ORIENTED_EDGE('',*,*,#5758,.T.);
++#5761=ORIENTED_EDGE('',*,*,#5760,.F.);
++#5763=ORIENTED_EDGE('',*,*,#5762,.T.);
++#5765=ORIENTED_EDGE('',*,*,#5764,.F.);
++#5767=ORIENTED_EDGE('',*,*,#5766,.T.);
++#5769=ORIENTED_EDGE('',*,*,#5768,.F.);
++#5771=ORIENTED_EDGE('',*,*,#5770,.T.);
++#5773=ORIENTED_EDGE('',*,*,#5772,.F.);
++#5775=ORIENTED_EDGE('',*,*,#5774,.T.);
++#5776=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5759,#5761,#5763,#5765,#5767,
++#5769,#5771,#5773,#5775));
++#5777=FACE_BOUND('',#5776,.F.);
++#5779=ORIENTED_EDGE('',*,*,#5778,.T.);
++#5781=ORIENTED_EDGE('',*,*,#5780,.T.);
++#5783=ORIENTED_EDGE('',*,*,#5782,.T.);
++#5785=ORIENTED_EDGE('',*,*,#5784,.T.);
++#5786=EDGE_LOOP('',(#5779,#5781,#5783,#5785));
++#5787=FACE_BOUND('',#5786,.F.);
++#5789=ORIENTED_EDGE('',*,*,#5788,.T.);
++#5791=ORIENTED_EDGE('',*,*,#5790,.T.);
++#5793=ORIENTED_EDGE('',*,*,#5792,.T.);
++#5795=ORIENTED_EDGE('',*,*,#5794,.T.);
++#5796=EDGE_LOOP('',(#5789,#5791,#5793,#5795));
++#5797=FACE_BOUND('',#5796,.F.);
++#5799=ORIENTED_EDGE('',*,*,#5798,.T.);
++#5801=ORIENTED_EDGE('',*,*,#5800,.T.);
++#5803=ORIENTED_EDGE('',*,*,#5802,.T.);
++#5805=ORIENTED_EDGE('',*,*,#5804,.T.);
++#5806=EDGE_LOOP('',(#5799,#5801,#5803,#5805));
++#5807=FACE_BOUND('',#5806,.F.);
++#5809=ORIENTED_EDGE('',*,*,#5808,.T.);
++#5811=ORIENTED_EDGE('',*,*,#5810,.T.);
++#5813=ORIENTED_EDGE('',*,*,#5812,.T.);
++#5815=ORIENTED_EDGE('',*,*,#5814,.T.);
++#5816=EDGE_LOOP('',(#5809,#5811,#5813,#5815));
++#5817=FACE_BOUND('',#5816,.F.);
++#5819=ORIENTED_EDGE('',*,*,#5818,.F.);
++#5821=ORIENTED_EDGE('',*,*,#5820,.F.);
++#5823=ORIENTED_EDGE('',*,*,#5822,.F.);
++#5825=ORIENTED_EDGE('',*,*,#5824,.F.);
++#5826=EDGE_LOOP('',(#5819,#5821,#5823,#5825));
++#5827=FACE_BOUND('',#5826,.F.);
++#5829=ORIENTED_EDGE('',*,*,#5828,.F.);
++#5831=ORIENTED_EDGE('',*,*,#5830,.F.);
++#5833=ORIENTED_EDGE('',*,*,#5832,.F.);
++#5835=ORIENTED_EDGE('',*,*,#5834,.F.);
++#5836=EDGE_LOOP('',(#5829,#5831,#5833,#5835));
++#5837=FACE_BOUND('',#5836,.F.);
++#5839=ORIENTED_EDGE('',*,*,#5838,.F.);
++#5841=ORIENTED_EDGE('',*,*,#5840,.F.);
++#5843=ORIENTED_EDGE('',*,*,#5842,.F.);
++#5845=ORIENTED_EDGE('',*,*,#5844,.F.);
++#5846=EDGE_LOOP('',(#5839,#5841,#5843,#5845));
++#5847=FACE_BOUND('',#5846,.F.);
++#5849=ORIENTED_EDGE('',*,*,#5848,.F.);
++#5851=ORIENTED_EDGE('',*,*,#5850,.F.);
++#5853=ORIENTED_EDGE('',*,*,#5852,.F.);
++#5855=ORIENTED_EDGE('',*,*,#5854,.F.);
++#5856=EDGE_LOOP('',(#5849,#5851,#5853,#5855));
++#5857=FACE_BOUND('',#5856,.F.);
++#5859=ORIENTED_EDGE('',*,*,#5858,.F.);
++#5861=ORIENTED_EDGE('',*,*,#5860,.F.);
++#5863=ORIENTED_EDGE('',*,*,#5862,.F.);
++#5865=ORIENTED_EDGE('',*,*,#5864,.F.);
++#5866=EDGE_LOOP('',(#5859,#5861,#5863,#5865));
++#5867=FACE_BOUND('',#5866,.F.);
++#5869=ORIENTED_EDGE('',*,*,#5868,.F.);
++#5871=ORIENTED_EDGE('',*,*,#5870,.F.);
++#5873=ORIENTED_EDGE('',*,*,#5872,.F.);
++#5875=ORIENTED_EDGE('',*,*,#5874,.F.);
++#5876=EDGE_LOOP('',(#5869,#5871,#5873,#5875));
++#5877=FACE_BOUND('',#5876,.F.);
++#5879=ORIENTED_EDGE('',*,*,#5878,.T.);
++#5881=ORIENTED_EDGE('',*,*,#5880,.T.);
++#5883=ORIENTED_EDGE('',*,*,#5882,.T.);
++#5885=ORIENTED_EDGE('',*,*,#5884,.T.);
++#5886=EDGE_LOOP('',(#5879,#5881,#5883,#5885));
++#5887=FACE_BOUND('',#5886,.F.);
++#5889=ORIENTED_EDGE('',*,*,#5888,.F.);
++#5891=ORIENTED_EDGE('',*,*,#5890,.F.);
++#5893=ORIENTED_EDGE('',*,*,#5892,.F.);
++#5895=ORIENTED_EDGE('',*,*,#5894,.F.);
++#5897=ORIENTED_EDGE('',*,*,#5896,.F.);
++#5899=ORIENTED_EDGE('',*,*,#5898,.F.);
++#5901=ORIENTED_EDGE('',*,*,#5900,.F.);
++#5903=ORIENTED_EDGE('',*,*,#5902,.F.);
++#5905=ORIENTED_EDGE('',*,*,#5904,.F.);
++#5907=ORIENTED_EDGE('',*,*,#5906,.F.);
++#5909=ORIENTED_EDGE('',*,*,#5908,.F.);
++#5911=ORIENTED_EDGE('',*,*,#5910,.F.);
++#5913=ORIENTED_EDGE('',*,*,#5912,.F.);
++#5915=ORIENTED_EDGE('',*,*,#5914,.F.);
++#5916=EDGE_LOOP('',(#5889,#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,
++#5909,#5911,#5913,#5915));
++#5917=FACE_BOUND('',#5916,.F.);
++#5919=ORIENTED_EDGE('',*,*,#5918,.F.);
++#5921=ORIENTED_EDGE('',*,*,#5920,.F.);
++#5923=ORIENTED_EDGE('',*,*,#5922,.F.);
++#5925=ORIENTED_EDGE('',*,*,#5924,.T.);
++#5927=ORIENTED_EDGE('',*,*,#5926,.F.);
++#5928=EDGE_LOOP('',(#5919,#5921,#5923,#5925,#5927));
++#5929=FACE_BOUND('',#5928,.F.);
++#5931=ORIENTED_EDGE('',*,*,#5930,.F.);
++#5933=ORIENTED_EDGE('',*,*,#5932,.F.);
++#5935=ORIENTED_EDGE('',*,*,#5934,.F.);
++#5937=ORIENTED_EDGE('',*,*,#5936,.T.);
++#5939=ORIENTED_EDGE('',*,*,#5938,.F.);
++#5940=EDGE_LOOP('',(#5931,#5933,#5935,#5937,#5939));
++#5941=FACE_BOUND('',#5940,.F.);
++#5943=ORIENTED_EDGE('',*,*,#5942,.T.);
++#5945=ORIENTED_EDGE('',*,*,#5944,.F.);
++#5947=ORIENTED_EDGE('',*,*,#5946,.T.);
++#5949=ORIENTED_EDGE('',*,*,#5948,.T.);
++#5951=ORIENTED_EDGE('',*,*,#5950,.F.);
++#5952=EDGE_LOOP('',(#5943,#5945,#5947,#5949,#5951));
++#5953=FACE_BOUND('',#5952,.F.);
++#5954=ADVANCED_FACE('',(#5539,#5553,#5559,#5565,#5571,#5577,#5583,#5589,#5595,
++#5601,#5607,#5613,#5619,#5625,#5631,#5637,#5655,#5689,#5695,#5701,#5707,#5713,
++#5719,#5725,#5735,#5747,#5777,#5787,#5797,#5807,#5817,#5827,#5837,#5847,#5857,
++#5867,#5877,#5887,#5917,#5929,#5941,#5953),#5493,.F.);
++#5955=CARTESIAN_POINT('',(0.E0,0.E0,8.E0));
++#5956=DIRECTION('',(0.E0,0.E0,1.E0));
++#5957=DIRECTION('',(1.E0,0.E0,0.E0));
++#5958=AXIS2_PLACEMENT_3D('',#5955,#5956,#5957);
++#5959=PLANE('',#5958);
++#5960=ORIENTED_EDGE('',*,*,#5540,.F.);
++#5962=ORIENTED_EDGE('',*,*,#5961,.T.);
++#5964=ORIENTED_EDGE('',*,*,#5963,.F.);
++#5966=ORIENTED_EDGE('',*,*,#5965,.F.);
++#5967=ORIENTED_EDGE('',*,*,#5494,.T.);
++#5969=ORIENTED_EDGE('',*,*,#5968,.F.);
++#5971=ORIENTED_EDGE('',*,*,#5970,.F.);
++#5973=ORIENTED_EDGE('',*,*,#5972,.T.);
++#5975=ORIENTED_EDGE('',*,*,#5974,.F.);
++#5977=ORIENTED_EDGE('',*,*,#5976,.F.);
++#5979=ORIENTED_EDGE('',*,*,#5978,.F.);
++#5981=ORIENTED_EDGE('',*,*,#5980,.T.);
++#5983=ORIENTED_EDGE('',*,*,#5982,.T.);
++#5985=ORIENTED_EDGE('',*,*,#5984,.F.);
++#5986=ORIENTED_EDGE('',*,*,#5510,.F.);
++#5988=ORIENTED_EDGE('',*,*,#5987,.F.);
++#5990=ORIENTED_EDGE('',*,*,#5989,.F.);
++#5992=ORIENTED_EDGE('',*,*,#5991,.T.);
++#5993=EDGE_LOOP('',(#5960,#5962,#5964,#5966,#5967,#5969,#5971,#5973,#5975,#5977,
++#5979,#5981,#5983,#5985,#5986,#5988,#5990,#5992));
++#5994=FACE_OUTER_BOUND('',#5993,.F.);
++#5996=ORIENTED_EDGE('',*,*,#5995,.T.);
++#5998=ORIENTED_EDGE('',*,*,#5997,.T.);
++#5999=EDGE_LOOP('',(#5996,#5998));
++#6000=FACE_BOUND('',#5999,.F.);
++#6002=ORIENTED_EDGE('',*,*,#6001,.T.);
++#6004=ORIENTED_EDGE('',*,*,#6003,.T.);
++#6005=EDGE_LOOP('',(#6002,#6004));
++#6006=FACE_BOUND('',#6005,.F.);
++#6008=ORIENTED_EDGE('',*,*,#6007,.T.);
++#6010=ORIENTED_EDGE('',*,*,#6009,.T.);
++#6011=EDGE_LOOP('',(#6008,#6010));
++#6012=FACE_BOUND('',#6011,.F.);
++#6014=ORIENTED_EDGE('',*,*,#6013,.T.);
++#6016=ORIENTED_EDGE('',*,*,#6015,.T.);
++#6017=EDGE_LOOP('',(#6014,#6016));
++#6018=FACE_BOUND('',#6017,.F.);
++#6020=ORIENTED_EDGE('',*,*,#6019,.F.);
++#6022=ORIENTED_EDGE('',*,*,#6021,.F.);
++#6023=EDGE_LOOP('',(#6020,#6022));
++#6024=FACE_BOUND('',#6023,.F.);
++#6026=ORIENTED_EDGE('',*,*,#6025,.F.);
++#6028=ORIENTED_EDGE('',*,*,#6027,.F.);
++#6029=EDGE_LOOP('',(#6026,#6028));
++#6030=FACE_BOUND('',#6029,.F.);
++#6032=ORIENTED_EDGE('',*,*,#6031,.F.);
++#6034=ORIENTED_EDGE('',*,*,#6033,.F.);
++#6035=EDGE_LOOP('',(#6032,#6034));
++#6036=FACE_BOUND('',#6035,.F.);
++#6038=ORIENTED_EDGE('',*,*,#6037,.F.);
++#6040=ORIENTED_EDGE('',*,*,#6039,.F.);
++#6041=EDGE_LOOP('',(#6038,#6040));
++#6042=FACE_BOUND('',#6041,.F.);
++#6044=ORIENTED_EDGE('',*,*,#6043,.T.);
++#6046=ORIENTED_EDGE('',*,*,#6045,.F.);
++#6048=ORIENTED_EDGE('',*,*,#6047,.T.);
++#6050=ORIENTED_EDGE('',*,*,#6049,.F.);
++#6052=ORIENTED_EDGE('',*,*,#6051,.T.);
++#6054=ORIENTED_EDGE('',*,*,#6053,.F.);
++#6056=ORIENTED_EDGE('',*,*,#6055,.T.);
++#6058=ORIENTED_EDGE('',*,*,#6057,.F.);
++#6059=EDGE_LOOP('',(#6044,#6046,#6048,#6050,#6052,#6054,#6056,#6058));
++#6060=FACE_BOUND('',#6059,.F.);
++#6062=ORIENTED_EDGE('',*,*,#6061,.F.);
++#6064=ORIENTED_EDGE('',*,*,#6063,.F.);
++#6066=ORIENTED_EDGE('',*,*,#6065,.F.);
++#6068=ORIENTED_EDGE('',*,*,#6067,.F.);
++#6070=ORIENTED_EDGE('',*,*,#6069,.F.);
++#6072=ORIENTED_EDGE('',*,*,#6071,.F.);
++#6074=ORIENTED_EDGE('',*,*,#6073,.F.);
++#6076=ORIENTED_EDGE('',*,*,#6075,.F.);
++#6077=EDGE_LOOP('',(#6062,#6064,#6066,#6068,#6070,#6072,#6074,#6076));
++#6078=FACE_BOUND('',#6077,.F.);
++#6079=ADVANCED_FACE('',(#5994,#6000,#6006,#6012,#6018,#6024,#6030,#6036,#6042,
++#6060,#6078),#5959,.F.);
++#6080=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
++#6081=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6082=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6083=AXIS2_PLACEMENT_3D('',#6080,#6081,#6082);
++#6084=CYLINDRICAL_SURFACE('',#6083,9.5E-2);
++#6085=ORIENTED_EDGE('',*,*,#5995,.F.);
++#6087=ORIENTED_EDGE('',*,*,#6086,.T.);
++#6089=ORIENTED_EDGE('',*,*,#6088,.T.);
++#6091=ORIENTED_EDGE('',*,*,#6090,.F.);
++#6092=EDGE_LOOP('',(#6085,#6087,#6089,#6091));
++#6093=FACE_OUTER_BOUND('',#6092,.F.);
++#6094=ADVANCED_FACE('',(#6093),#6084,.F.);
++#6095=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
++#6096=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6097=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6098=AXIS2_PLACEMENT_3D('',#6095,#6096,#6097);
++#6099=CYLINDRICAL_SURFACE('',#6098,9.5E-2);
++#6100=ORIENTED_EDGE('',*,*,#5997,.F.);
++#6101=ORIENTED_EDGE('',*,*,#6090,.T.);
++#6103=ORIENTED_EDGE('',*,*,#6102,.T.);
++#6104=ORIENTED_EDGE('',*,*,#6086,.F.);
++#6105=EDGE_LOOP('',(#6100,#6101,#6103,#6104));
++#6106=FACE_OUTER_BOUND('',#6105,.F.);
++#6107=ADVANCED_FACE('',(#6106),#6099,.F.);
++#6108=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
++#6109=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6110=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6111=AXIS2_PLACEMENT_3D('',#6108,#6109,#6110);
++#6112=PLANE('',#6111);
++#6113=ORIENTED_EDGE('',*,*,#6088,.F.);
++#6114=ORIENTED_EDGE('',*,*,#6102,.F.);
++#6115=EDGE_LOOP('',(#6113,#6114));
++#6116=FACE_OUTER_BOUND('',#6115,.F.);
++#6117=ADVANCED_FACE('',(#6116),#6112,.T.);
++#6118=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
++#6119=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6120=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6121=AXIS2_PLACEMENT_3D('',#6118,#6119,#6120);
++#6122=CYLINDRICAL_SURFACE('',#6121,1.625E-1);
++#6123=ORIENTED_EDGE('',*,*,#6001,.F.);
++#6125=ORIENTED_EDGE('',*,*,#6124,.T.);
++#6127=ORIENTED_EDGE('',*,*,#6126,.T.);
++#6129=ORIENTED_EDGE('',*,*,#6128,.F.);
++#6130=EDGE_LOOP('',(#6123,#6125,#6127,#6129));
++#6131=FACE_OUTER_BOUND('',#6130,.F.);
++#6132=ADVANCED_FACE('',(#6131),#6122,.F.);
++#6133=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
++#6134=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6135=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6136=AXIS2_PLACEMENT_3D('',#6133,#6134,#6135);
++#6137=CYLINDRICAL_SURFACE('',#6136,1.625E-1);
++#6138=ORIENTED_EDGE('',*,*,#6003,.F.);
++#6139=ORIENTED_EDGE('',*,*,#6128,.T.);
++#6141=ORIENTED_EDGE('',*,*,#6140,.T.);
++#6142=ORIENTED_EDGE('',*,*,#6124,.F.);
++#6143=EDGE_LOOP('',(#6138,#6139,#6141,#6142));
++#6144=FACE_OUTER_BOUND('',#6143,.F.);
++#6145=ADVANCED_FACE('',(#6144),#6137,.F.);
++#6146=CARTESIAN_POINT('',(2.4E1,0.E0,1.E1));
++#6147=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6148=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6149=AXIS2_PLACEMENT_3D('',#6146,#6147,#6148);
++#6150=PLANE('',#6149);
++#6152=ORIENTED_EDGE('',*,*,#6151,.T.);
++#6154=ORIENTED_EDGE('',*,*,#6153,.T.);
++#6156=ORIENTED_EDGE('',*,*,#6155,.F.);
++#6158=ORIENTED_EDGE('',*,*,#6157,.F.);
++#6160=ORIENTED_EDGE('',*,*,#6159,.T.);
++#6162=ORIENTED_EDGE('',*,*,#6161,.T.);
++#6164=ORIENTED_EDGE('',*,*,#6163,.T.);
++#6166=ORIENTED_EDGE('',*,*,#6165,.T.);
++#6168=ORIENTED_EDGE('',*,*,#6167,.F.);
++#6169=EDGE_LOOP('',(#6152,#6154,#6156,#6158,#6160,#6162,#6164,#6166,#6168));
++#6170=FACE_OUTER_BOUND('',#6169,.F.);
++#6171=ORIENTED_EDGE('',*,*,#6126,.F.);
++#6172=ORIENTED_EDGE('',*,*,#6140,.F.);
++#6173=EDGE_LOOP('',(#6171,#6172));
++#6174=FACE_BOUND('',#6173,.F.);
++#6176=ORIENTED_EDGE('',*,*,#6175,.F.);
++#6178=ORIENTED_EDGE('',*,*,#6177,.F.);
++#6180=ORIENTED_EDGE('',*,*,#6179,.F.);
++#6182=ORIENTED_EDGE('',*,*,#6181,.F.);
++#6184=ORIENTED_EDGE('',*,*,#6183,.F.);
++#6186=ORIENTED_EDGE('',*,*,#6185,.F.);
++#6188=ORIENTED_EDGE('',*,*,#6187,.F.);
++#6190=ORIENTED_EDGE('',*,*,#6189,.F.);
++#6192=ORIENTED_EDGE('',*,*,#6191,.F.);
++#6194=ORIENTED_EDGE('',*,*,#6193,.F.);
++#6196=ORIENTED_EDGE('',*,*,#6195,.F.);
++#6198=ORIENTED_EDGE('',*,*,#6197,.F.);
++#6199=EDGE_LOOP('',(#6176,#6178,#6180,#6182,#6184,#6186,#6188,#6190,#6192,#6194,
++#6196,#6198));
++#6200=FACE_BOUND('',#6199,.F.);
++#6201=ADVANCED_FACE('',(#6170,#6174,#6200),#6150,.F.);
++#6202=CARTESIAN_POINT('',(2.375E1,1.5E0,1.2E1));
++#6203=DIRECTION('',(1.E0,0.E0,0.E0));
++#6204=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6205=AXIS2_PLACEMENT_3D('',#6202,#6203,#6204);
++#6206=PLANE('',#6205);
++#6208=ORIENTED_EDGE('',*,*,#6207,.F.);
++#6210=ORIENTED_EDGE('',*,*,#6209,.F.);
++#6211=ORIENTED_EDGE('',*,*,#6151,.F.);
++#6212=EDGE_LOOP('',(#6208,#6210,#6211));
++#6213=FACE_OUTER_BOUND('',#6212,.F.);
++#6214=ADVANCED_FACE('',(#6213),#6206,.T.);
++#6215=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
++#6216=DIRECTION('',(0.E0,1.E0,0.E0));
++#6217=DIRECTION('',(1.E0,0.E0,0.E0));
++#6218=AXIS2_PLACEMENT_3D('',#6215,#6216,#6217);
++#6219=PLANE('',#6218);
++#6220=ORIENTED_EDGE('',*,*,#5963,.T.);
++#6222=ORIENTED_EDGE('',*,*,#6221,.F.);
++#6224=ORIENTED_EDGE('',*,*,#6223,.F.);
++#6226=ORIENTED_EDGE('',*,*,#6225,.T.);
++#6228=ORIENTED_EDGE('',*,*,#6227,.F.);
++#6230=ORIENTED_EDGE('',*,*,#6229,.F.);
++#6231=ORIENTED_EDGE('',*,*,#5989,.T.);
++#6233=ORIENTED_EDGE('',*,*,#6232,.F.);
++#6235=ORIENTED_EDGE('',*,*,#6234,.F.);
++#6237=ORIENTED_EDGE('',*,*,#6236,.T.);
++#6239=ORIENTED_EDGE('',*,*,#6238,.F.);
++#6241=ORIENTED_EDGE('',*,*,#6240,.T.);
++#6243=ORIENTED_EDGE('',*,*,#6242,.F.);
++#6245=ORIENTED_EDGE('',*,*,#6244,.F.);
++#6246=EDGE_LOOP('',(#6220,#6222,#6224,#6226,#6228,#6230,#6231,#6233,#6235,#6237,
++#6239,#6241,#6243,#6245));
++#6247=FACE_OUTER_BOUND('',#6246,.F.);
++#6249=ORIENTED_EDGE('',*,*,#6248,.F.);
++#6251=ORIENTED_EDGE('',*,*,#6250,.F.);
++#6252=EDGE_LOOP('',(#6249,#6251));
++#6253=FACE_BOUND('',#6252,.F.);
++#6255=ORIENTED_EDGE('',*,*,#6254,.F.);
++#6257=ORIENTED_EDGE('',*,*,#6256,.F.);
++#6258=EDGE_LOOP('',(#6255,#6257));
++#6259=FACE_BOUND('',#6258,.F.);
++#6261=ORIENTED_EDGE('',*,*,#6260,.F.);
++#6263=ORIENTED_EDGE('',*,*,#6262,.F.);
++#6264=EDGE_LOOP('',(#6261,#6263));
++#6265=FACE_BOUND('',#6264,.F.);
++#6267=ORIENTED_EDGE('',*,*,#6266,.F.);
++#6269=ORIENTED_EDGE('',*,*,#6268,.F.);
++#6270=EDGE_LOOP('',(#6267,#6269));
++#6271=FACE_BOUND('',#6270,.F.);
++#6273=ORIENTED_EDGE('',*,*,#6272,.F.);
++#6275=ORIENTED_EDGE('',*,*,#6274,.F.);
++#6276=EDGE_LOOP('',(#6273,#6275));
++#6277=FACE_BOUND('',#6276,.F.);
++#6278=ADVANCED_FACE('',(#6247,#6253,#6259,#6265,#6271,#6277),#6219,.T.);
++#6279=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
++#6280=DIRECTION('',(0.E0,1.E0,0.E0));
++#6281=DIRECTION('',(1.E0,0.E0,0.E0));
++#6282=AXIS2_PLACEMENT_3D('',#6279,#6280,#6281);
++#6283=PLANE('',#6282);
++#6284=ORIENTED_EDGE('',*,*,#6207,.T.);
++#6285=ORIENTED_EDGE('',*,*,#6167,.T.);
++#6287=ORIENTED_EDGE('',*,*,#6286,.T.);
++#6289=ORIENTED_EDGE('',*,*,#6288,.F.);
++#6291=ORIENTED_EDGE('',*,*,#6290,.T.);
++#6293=ORIENTED_EDGE('',*,*,#6292,.F.);
++#6295=ORIENTED_EDGE('',*,*,#6294,.F.);
++#6297=ORIENTED_EDGE('',*,*,#6296,.T.);
++#6299=ORIENTED_EDGE('',*,*,#6298,.F.);
++#6301=ORIENTED_EDGE('',*,*,#6300,.T.);
++#6303=ORIENTED_EDGE('',*,*,#6302,.F.);
++#6305=ORIENTED_EDGE('',*,*,#6304,.F.);
++#6307=ORIENTED_EDGE('',*,*,#6306,.F.);
++#6309=ORIENTED_EDGE('',*,*,#6308,.T.);
++#6311=ORIENTED_EDGE('',*,*,#6310,.F.);
++#6313=ORIENTED_EDGE('',*,*,#6312,.T.);
++#6315=ORIENTED_EDGE('',*,*,#6314,.F.);
++#6317=ORIENTED_EDGE('',*,*,#6316,.T.);
++#6319=ORIENTED_EDGE('',*,*,#6318,.T.);
++#6321=ORIENTED_EDGE('',*,*,#6320,.T.);
++#6323=ORIENTED_EDGE('',*,*,#6322,.F.);
++#6324=ORIENTED_EDGE('',*,*,#5976,.T.);
++#6326=ORIENTED_EDGE('',*,*,#6325,.T.);
++#6327=ORIENTED_EDGE('',*,*,#6157,.T.);
++#6329=ORIENTED_EDGE('',*,*,#6328,.F.);
++#6331=ORIENTED_EDGE('',*,*,#6330,.F.);
++#6332=EDGE_LOOP('',(#6284,#6285,#6287,#6289,#6291,#6293,#6295,#6297,#6299,#6301,
++#6303,#6305,#6307,#6309,#6311,#6313,#6315,#6317,#6319,#6321,#6323,#6324,#6326,
++#6327,#6329,#6331));
++#6333=FACE_OUTER_BOUND('',#6332,.F.);
++#6335=ORIENTED_EDGE('',*,*,#6334,.F.);
++#6337=ORIENTED_EDGE('',*,*,#6336,.F.);
++#6338=EDGE_LOOP('',(#6335,#6337));
++#6339=FACE_BOUND('',#6338,.F.);
++#6341=ORIENTED_EDGE('',*,*,#6340,.F.);
++#6343=ORIENTED_EDGE('',*,*,#6342,.F.);
++#6344=EDGE_LOOP('',(#6341,#6343));
++#6345=FACE_BOUND('',#6344,.F.);
++#6347=ORIENTED_EDGE('',*,*,#6346,.T.);
++#6349=ORIENTED_EDGE('',*,*,#6348,.T.);
++#6350=EDGE_LOOP('',(#6347,#6349));
++#6351=FACE_BOUND('',#6350,.F.);
++#6353=ORIENTED_EDGE('',*,*,#6352,.T.);
++#6355=ORIENTED_EDGE('',*,*,#6354,.T.);
++#6356=EDGE_LOOP('',(#6353,#6355));
++#6357=FACE_BOUND('',#6356,.F.);
++#6359=ORIENTED_EDGE('',*,*,#6358,.F.);
++#6361=ORIENTED_EDGE('',*,*,#6360,.F.);
++#6362=EDGE_LOOP('',(#6359,#6361));
++#6363=FACE_BOUND('',#6362,.F.);
++#6365=ORIENTED_EDGE('',*,*,#6364,.F.);
++#6367=ORIENTED_EDGE('',*,*,#6366,.F.);
++#6368=EDGE_LOOP('',(#6365,#6367));
++#6369=FACE_BOUND('',#6368,.F.);
++#6371=ORIENTED_EDGE('',*,*,#6370,.F.);
++#6373=ORIENTED_EDGE('',*,*,#6372,.F.);
++#6374=EDGE_LOOP('',(#6371,#6373));
++#6375=FACE_BOUND('',#6374,.F.);
++#6377=ORIENTED_EDGE('',*,*,#6376,.F.);
++#6379=ORIENTED_EDGE('',*,*,#6378,.F.);
++#6380=EDGE_LOOP('',(#6377,#6379));
++#6381=FACE_BOUND('',#6380,.F.);
++#6383=ORIENTED_EDGE('',*,*,#6382,.F.);
++#6385=ORIENTED_EDGE('',*,*,#6384,.F.);
++#6386=EDGE_LOOP('',(#6383,#6385));
++#6387=FACE_BOUND('',#6386,.F.);
++#6389=ORIENTED_EDGE('',*,*,#6388,.F.);
++#6391=ORIENTED_EDGE('',*,*,#6390,.F.);
++#6392=EDGE_LOOP('',(#6389,#6391));
++#6393=FACE_BOUND('',#6392,.F.);
++#6395=ORIENTED_EDGE('',*,*,#6394,.F.);
++#6397=ORIENTED_EDGE('',*,*,#6396,.F.);
++#6398=EDGE_LOOP('',(#6395,#6397));
++#6399=FACE_BOUND('',#6398,.F.);
++#6401=ORIENTED_EDGE('',*,*,#6400,.T.);
++#6403=ORIENTED_EDGE('',*,*,#6402,.F.);
++#6405=ORIENTED_EDGE('',*,*,#6404,.F.);
++#6407=ORIENTED_EDGE('',*,*,#6406,.F.);
++#6409=ORIENTED_EDGE('',*,*,#6408,.T.);
++#6411=ORIENTED_EDGE('',*,*,#6410,.F.);
++#6413=ORIENTED_EDGE('',*,*,#6412,.T.);
++#6415=ORIENTED_EDGE('',*,*,#6414,.F.);
++#6416=EDGE_LOOP('',(#6401,#6403,#6405,#6407,#6409,#6411,#6413,#6415));
++#6417=FACE_BOUND('',#6416,.F.);
++#6419=ORIENTED_EDGE('',*,*,#6418,.F.);
++#6421=ORIENTED_EDGE('',*,*,#6420,.F.);
++#6423=ORIENTED_EDGE('',*,*,#6422,.T.);
++#6425=ORIENTED_EDGE('',*,*,#6424,.F.);
++#6427=ORIENTED_EDGE('',*,*,#6426,.T.);
++#6429=ORIENTED_EDGE('',*,*,#6428,.F.);
++#6431=ORIENTED_EDGE('',*,*,#6430,.T.);
++#6433=ORIENTED_EDGE('',*,*,#6432,.F.);
++#6435=ORIENTED_EDGE('',*,*,#6434,.F.);
++#6437=ORIENTED_EDGE('',*,*,#6436,.F.);
++#6439=ORIENTED_EDGE('',*,*,#6438,.F.);
++#6441=ORIENTED_EDGE('',*,*,#6440,.T.);
++#6443=ORIENTED_EDGE('',*,*,#6442,.F.);
++#6445=ORIENTED_EDGE('',*,*,#6444,.F.);
++#6447=ORIENTED_EDGE('',*,*,#6446,.T.);
++#6449=ORIENTED_EDGE('',*,*,#6448,.F.);
++#6450=EDGE_LOOP('',(#6419,#6421,#6423,#6425,#6427,#6429,#6431,#6433,#6435,#6437,
++#6439,#6441,#6443,#6445,#6447,#6449));
++#6451=FACE_BOUND('',#6450,.F.);
++#6453=ORIENTED_EDGE('',*,*,#6452,.F.);
++#6455=ORIENTED_EDGE('',*,*,#6454,.F.);
++#6456=EDGE_LOOP('',(#6453,#6455));
++#6457=FACE_BOUND('',#6456,.F.);
++#6459=ORIENTED_EDGE('',*,*,#6458,.F.);
++#6461=ORIENTED_EDGE('',*,*,#6460,.F.);
++#6462=EDGE_LOOP('',(#6459,#6461));
++#6463=FACE_BOUND('',#6462,.F.);
++#6465=ORIENTED_EDGE('',*,*,#6464,.F.);
++#6467=ORIENTED_EDGE('',*,*,#6466,.F.);
++#6468=EDGE_LOOP('',(#6465,#6467));
++#6469=FACE_BOUND('',#6468,.F.);
++#6471=ORIENTED_EDGE('',*,*,#6470,.F.);
++#6473=ORIENTED_EDGE('',*,*,#6472,.F.);
++#6474=EDGE_LOOP('',(#6471,#6473));
++#6475=FACE_BOUND('',#6474,.F.);
++#6477=ORIENTED_EDGE('',*,*,#6476,.F.);
++#6479=ORIENTED_EDGE('',*,*,#6478,.F.);
++#6480=EDGE_LOOP('',(#6477,#6479));
++#6481=FACE_BOUND('',#6480,.F.);
++#6483=ORIENTED_EDGE('',*,*,#6482,.F.);
++#6485=ORIENTED_EDGE('',*,*,#6484,.F.);
++#6486=EDGE_LOOP('',(#6483,#6485));
++#6487=FACE_BOUND('',#6486,.F.);
++#6488=ADVANCED_FACE('',(#6333,#6339,#6345,#6351,#6357,#6363,#6369,#6375,#6381,
++#6387,#6393,#6399,#6417,#6451,#6457,#6463,#6469,#6475,#6481,#6487),#6283,.T.);
++#6489=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
++#6490=DIRECTION('',(0.E0,1.E0,0.E0));
++#6491=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6492=AXIS2_PLACEMENT_3D('',#6489,#6490,#6491);
++#6493=CYLINDRICAL_SURFACE('',#6492,1.E-1);
++#6494=ORIENTED_EDGE('',*,*,#6334,.T.);
++#6496=ORIENTED_EDGE('',*,*,#6495,.F.);
++#6498=ORIENTED_EDGE('',*,*,#6497,.F.);
++#6500=ORIENTED_EDGE('',*,*,#6499,.T.);
++#6501=EDGE_LOOP('',(#6494,#6496,#6498,#6500));
++#6502=FACE_OUTER_BOUND('',#6501,.F.);
++#6503=ADVANCED_FACE('',(#6502),#6493,.F.);
++#6504=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
++#6505=DIRECTION('',(0.E0,1.E0,0.E0));
++#6506=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6507=AXIS2_PLACEMENT_3D('',#6504,#6505,#6506);
++#6508=CYLINDRICAL_SURFACE('',#6507,1.E-1);
++#6509=ORIENTED_EDGE('',*,*,#6336,.T.);
++#6510=ORIENTED_EDGE('',*,*,#6499,.F.);
++#6512=ORIENTED_EDGE('',*,*,#6511,.T.);
++#6513=ORIENTED_EDGE('',*,*,#6495,.T.);
++#6514=EDGE_LOOP('',(#6509,#6510,#6512,#6513));
++#6515=FACE_OUTER_BOUND('',#6514,.F.);
++#6516=ADVANCED_FACE('',(#6515),#6508,.F.);
++#6517=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
++#6518=DIRECTION('',(0.E0,1.E0,0.E0));
++#6519=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6520=AXIS2_PLACEMENT_3D('',#6517,#6518,#6519);
++#6521=CONICAL_SURFACE('',#6520,7.288815195685E-2,6.E1);
++#6523=ORIENTED_EDGE('',*,*,#6522,.T.);
++#6524=ORIENTED_EDGE('',*,*,#6511,.F.);
++#6526=ORIENTED_EDGE('',*,*,#6525,.F.);
++#6527=EDGE_LOOP('',(#6523,#6524,#6526));
++#6528=FACE_OUTER_BOUND('',#6527,.F.);
++#6529=ADVANCED_FACE('',(#6528),#6521,.F.);
++#6530=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
++#6531=DIRECTION('',(0.E0,1.E0,0.E0));
++#6532=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6533=AXIS2_PLACEMENT_3D('',#6530,#6531,#6532);
++#6534=CONICAL_SURFACE('',#6533,7.288815195685E-2,6.E1);
++#6535=ORIENTED_EDGE('',*,*,#6522,.F.);
++#6536=ORIENTED_EDGE('',*,*,#6525,.T.);
++#6537=ORIENTED_EDGE('',*,*,#6497,.T.);
++#6538=EDGE_LOOP('',(#6535,#6536,#6537));
++#6539=FACE_OUTER_BOUND('',#6538,.F.);
++#6540=ADVANCED_FACE('',(#6539),#6534,.F.);
++#6541=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
++#6542=DIRECTION('',(0.E0,1.E0,0.E0));
++#6543=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6544=AXIS2_PLACEMENT_3D('',#6541,#6542,#6543);
++#6545=CYLINDRICAL_SURFACE('',#6544,1.E-1);
++#6546=ORIENTED_EDGE('',*,*,#6340,.T.);
++#6548=ORIENTED_EDGE('',*,*,#6547,.F.);
++#6550=ORIENTED_EDGE('',*,*,#6549,.F.);
++#6552=ORIENTED_EDGE('',*,*,#6551,.T.);
++#6553=EDGE_LOOP('',(#6546,#6548,#6550,#6552));
++#6554=FACE_OUTER_BOUND('',#6553,.F.);
++#6555=ADVANCED_FACE('',(#6554),#6545,.F.);
++#6556=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
++#6557=DIRECTION('',(0.E0,1.E0,0.E0));
++#6558=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6559=AXIS2_PLACEMENT_3D('',#6556,#6557,#6558);
++#6560=CYLINDRICAL_SURFACE('',#6559,1.E-1);
++#6561=ORIENTED_EDGE('',*,*,#6342,.T.);
++#6562=ORIENTED_EDGE('',*,*,#6551,.F.);
++#6564=ORIENTED_EDGE('',*,*,#6563,.T.);
++#6565=ORIENTED_EDGE('',*,*,#6547,.T.);
++#6566=EDGE_LOOP('',(#6561,#6562,#6564,#6565));
++#6567=FACE_OUTER_BOUND('',#6566,.F.);
++#6568=ADVANCED_FACE('',(#6567),#6560,.F.);
++#6569=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
++#6570=DIRECTION('',(0.E0,1.E0,0.E0));
++#6571=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6572=AXIS2_PLACEMENT_3D('',#6569,#6570,#6571);
++#6573=CONICAL_SURFACE('',#6572,7.288815195685E-2,6.E1);
++#6575=ORIENTED_EDGE('',*,*,#6574,.T.);
++#6576=ORIENTED_EDGE('',*,*,#6563,.F.);
++#6578=ORIENTED_EDGE('',*,*,#6577,.F.);
++#6579=EDGE_LOOP('',(#6575,#6576,#6578));
++#6580=FACE_OUTER_BOUND('',#6579,.F.);
++#6581=ADVANCED_FACE('',(#6580),#6573,.F.);
++#6582=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
++#6583=DIRECTION('',(0.E0,1.E0,0.E0));
++#6584=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6585=AXIS2_PLACEMENT_3D('',#6582,#6583,#6584);
++#6586=CONICAL_SURFACE('',#6585,7.288815195685E-2,6.E1);
++#6587=ORIENTED_EDGE('',*,*,#6574,.F.);
++#6588=ORIENTED_EDGE('',*,*,#6577,.T.);
++#6589=ORIENTED_EDGE('',*,*,#6549,.T.);
++#6590=EDGE_LOOP('',(#6587,#6588,#6589));
++#6591=FACE_OUTER_BOUND('',#6590,.F.);
++#6592=ADVANCED_FACE('',(#6591),#6586,.F.);
++#6593=CARTESIAN_POINT('',(2.046862696660E1,-7.805924235695E-2,7.E0));
++#6594=DIRECTION('',(0.E0,1.E0,0.E0));
++#6595=DIRECTION('',(0.E0,0.E0,1.E0));
++#6596=AXIS2_PLACEMENT_3D('',#6593,#6594,#6595);
++#6597=CYLINDRICAL_SURFACE('',#6596,1.E0);
++#6598=ORIENTED_EDGE('',*,*,#5961,.F.);
++#6599=ORIENTED_EDGE('',*,*,#5550,.T.);
++#6601=ORIENTED_EDGE('',*,*,#6600,.T.);
++#6602=ORIENTED_EDGE('',*,*,#6221,.T.);
++#6603=EDGE_LOOP('',(#6598,#6599,#6601,#6602));
++#6604=FACE_OUTER_BOUND('',#6603,.F.);
++#6605=ADVANCED_FACE('',(#6604),#6597,.F.);
++#6606=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,7.5E0));
++#6607=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6608=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6609=AXIS2_PLACEMENT_3D('',#6606,#6607,#6608);
++#6610=CYLINDRICAL_SURFACE('',#6609,5.E0);
++#6611=ORIENTED_EDGE('',*,*,#6600,.F.);
++#6612=ORIENTED_EDGE('',*,*,#5548,.T.);
++#6614=ORIENTED_EDGE('',*,*,#6613,.F.);
++#6615=ORIENTED_EDGE('',*,*,#6223,.T.);
++#6616=EDGE_LOOP('',(#6611,#6612,#6614,#6615));
++#6617=FACE_OUTER_BOUND('',#6616,.F.);
++#6618=ADVANCED_FACE('',(#6617),#6610,.F.);
++#6619=CARTESIAN_POINT('',(2.15E1,1.5E0,2.5E0));
++#6620=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6621=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6622=AXIS2_PLACEMENT_3D('',#6619,#6620,#6621);
++#6623=PLANE('',#6622);
++#6625=ORIENTED_EDGE('',*,*,#6624,.F.);
++#6626=ORIENTED_EDGE('',*,*,#6225,.F.);
++#6627=ORIENTED_EDGE('',*,*,#6613,.T.);
++#6628=ORIENTED_EDGE('',*,*,#5546,.T.);
++#6629=EDGE_LOOP('',(#6625,#6626,#6627,#6628));
++#6630=FACE_OUTER_BOUND('',#6629,.F.);
++#6631=ADVANCED_FACE('',(#6630),#6623,.F.);
++#6632=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,7.5E0));
++#6633=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6634=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6635=AXIS2_PLACEMENT_3D('',#6632,#6633,#6634);
++#6636=CYLINDRICAL_SURFACE('',#6635,5.E0);
++#6638=ORIENTED_EDGE('',*,*,#6637,.F.);
++#6639=ORIENTED_EDGE('',*,*,#6227,.T.);
++#6640=ORIENTED_EDGE('',*,*,#6624,.T.);
++#6641=ORIENTED_EDGE('',*,*,#5544,.T.);
++#6642=EDGE_LOOP('',(#6638,#6639,#6640,#6641));
++#6643=FACE_OUTER_BOUND('',#6642,.F.);
++#6644=ADVANCED_FACE('',(#6643),#6636,.F.);
++#6645=CARTESIAN_POINT('',(3.531373033403E0,1.157860978230E1,7.E0));
++#6646=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6647=DIRECTION('',(0.E0,0.E0,1.E0));
++#6648=AXIS2_PLACEMENT_3D('',#6645,#6646,#6647);
++#6649=CYLINDRICAL_SURFACE('',#6648,1.E0);
++#6650=ORIENTED_EDGE('',*,*,#5991,.F.);
++#6651=ORIENTED_EDGE('',*,*,#6229,.T.);
++#6652=ORIENTED_EDGE('',*,*,#6637,.T.);
++#6653=ORIENTED_EDGE('',*,*,#5542,.T.);
++#6654=EDGE_LOOP('',(#6650,#6651,#6652,#6653));
++#6655=FACE_OUTER_BOUND('',#6654,.F.);
++#6656=ADVANCED_FACE('',(#6655),#6649,.F.);
++#6657=CARTESIAN_POINT('',(-1.E0,1.161044894892E1,7.E0));
++#6658=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6659=DIRECTION('',(1.E0,0.E0,0.E0));
++#6660=AXIS2_PLACEMENT_3D('',#6657,#6658,#6659);
++#6661=CYLINDRICAL_SURFACE('',#6660,1.E0);
++#6663=ORIENTED_EDGE('',*,*,#6662,.F.);
++#6664=ORIENTED_EDGE('',*,*,#6232,.T.);
++#6665=ORIENTED_EDGE('',*,*,#5987,.T.);
++#6666=ORIENTED_EDGE('',*,*,#5508,.T.);
++#6667=EDGE_LOOP('',(#6663,#6664,#6665,#6666));
++#6668=FACE_OUTER_BOUND('',#6667,.F.);
++#6669=ADVANCED_FACE('',(#6668),#6661,.F.);
++#6670=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
++#6671=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6672=DIRECTION('',(0.E0,0.E0,1.E0));
++#6673=AXIS2_PLACEMENT_3D('',#6670,#6671,#6672);
++#6674=PLANE('',#6673);
++#6676=ORIENTED_EDGE('',*,*,#6675,.T.);
++#6677=ORIENTED_EDGE('',*,*,#6302,.T.);
++#6679=ORIENTED_EDGE('',*,*,#6678,.F.);
++#6680=ORIENTED_EDGE('',*,*,#5520,.F.);
++#6681=EDGE_LOOP('',(#6676,#6677,#6679,#6680));
++#6682=FACE_OUTER_BOUND('',#6681,.F.);
++#6683=ADVANCED_FACE('',(#6682),#6674,.T.);
++#6684=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
++#6685=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6686=DIRECTION('',(0.E0,0.E0,1.E0));
++#6687=AXIS2_PLACEMENT_3D('',#6684,#6685,#6686);
++#6688=PLANE('',#6687);
++#6689=ORIENTED_EDGE('',*,*,#6662,.T.);
++#6690=ORIENTED_EDGE('',*,*,#5506,.F.);
++#6692=ORIENTED_EDGE('',*,*,#6691,.T.);
++#6693=ORIENTED_EDGE('',*,*,#6234,.T.);
++#6694=EDGE_LOOP('',(#6689,#6690,#6692,#6693));
++#6695=FACE_OUTER_BOUND('',#6694,.F.);
++#6696=ADVANCED_FACE('',(#6695),#6688,.T.);
++#6697=CARTESIAN_POINT('',(-1.E0,-5.722942641981E-2,1.325E1));
++#6698=DIRECTION('',(0.E0,1.E0,0.E0));
++#6699=DIRECTION('',(1.E0,0.E0,0.E0));
++#6700=AXIS2_PLACEMENT_3D('',#6697,#6698,#6699);
++#6701=CYLINDRICAL_SURFACE('',#6700,1.E0);
++#6702=ORIENTED_EDGE('',*,*,#6675,.F.);
++#6703=ORIENTED_EDGE('',*,*,#5518,.T.);
++#6705=ORIENTED_EDGE('',*,*,#6704,.T.);
++#6706=ORIENTED_EDGE('',*,*,#6304,.T.);
++#6707=EDGE_LOOP('',(#6702,#6703,#6705,#6706));
++#6708=FACE_OUTER_BOUND('',#6707,.F.);
++#6709=ADVANCED_FACE('',(#6708),#6701,.F.);
++#6710=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
++#6711=DIRECTION('',(0.E0,0.E0,1.E0));
++#6712=DIRECTION('',(1.E0,0.E0,0.E0));
++#6713=AXIS2_PLACEMENT_3D('',#6710,#6711,#6712);
++#6714=PLANE('',#6713);
++#6716=ORIENTED_EDGE('',*,*,#6715,.F.);
++#6717=ORIENTED_EDGE('',*,*,#6442,.T.);
++#6719=ORIENTED_EDGE('',*,*,#6718,.F.);
++#6720=ORIENTED_EDGE('',*,*,#5668,.F.);
++#6721=EDGE_LOOP('',(#6716,#6717,#6719,#6720));
++#6722=FACE_OUTER_BOUND('',#6721,.F.);
++#6723=ADVANCED_FACE('',(#6722),#6714,.T.);
++#6724=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
++#6725=DIRECTION('',(0.E0,0.E0,1.E0));
++#6726=DIRECTION('',(1.E0,0.E0,0.E0));
++#6727=AXIS2_PLACEMENT_3D('',#6724,#6725,#6726);
++#6728=PLANE('',#6727);
++#6729=ORIENTED_EDGE('',*,*,#6704,.F.);
++#6730=ORIENTED_EDGE('',*,*,#5516,.F.);
++#6732=ORIENTED_EDGE('',*,*,#6731,.T.);
++#6733=ORIENTED_EDGE('',*,*,#6306,.T.);
++#6734=EDGE_LOOP('',(#6729,#6730,#6732,#6733));
++#6735=FACE_OUTER_BOUND('',#6734,.F.);
++#6736=ADVANCED_FACE('',(#6735),#6728,.T.);
++#6737=CARTESIAN_POINT('',(3.5E0,1.566978255297E0,1.325E1));
++#6738=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6739=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6740=AXIS2_PLACEMENT_3D('',#6737,#6738,#6739);
++#6741=CYLINDRICAL_SURFACE('',#6740,1.E0);
++#6743=ORIENTED_EDGE('',*,*,#6742,.F.);
++#6744=ORIENTED_EDGE('',*,*,#6444,.T.);
++#6745=ORIENTED_EDGE('',*,*,#6715,.T.);
++#6746=ORIENTED_EDGE('',*,*,#5666,.T.);
++#6747=EDGE_LOOP('',(#6743,#6744,#6745,#6746));
++#6748=FACE_OUTER_BOUND('',#6747,.F.);
++#6749=ADVANCED_FACE('',(#6748),#6741,.F.);
++#6750=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
++#6751=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6752=DIRECTION('',(0.E0,0.E0,1.E0));
++#6753=AXIS2_PLACEMENT_3D('',#6750,#6751,#6752);
++#6754=PLANE('',#6753);
++#6756=ORIENTED_EDGE('',*,*,#6755,.T.);
++#6757=ORIENTED_EDGE('',*,*,#5650,.T.);
++#6759=ORIENTED_EDGE('',*,*,#6758,.F.);
++#6760=ORIENTED_EDGE('',*,*,#6408,.F.);
++#6761=EDGE_LOOP('',(#6756,#6757,#6759,#6760));
++#6762=FACE_OUTER_BOUND('',#6761,.F.);
++#6763=ADVANCED_FACE('',(#6762),#6754,.F.);
++#6764=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
++#6765=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6766=DIRECTION('',(0.E0,0.E0,1.E0));
++#6767=AXIS2_PLACEMENT_3D('',#6764,#6765,#6766);
++#6768=PLANE('',#6767);
++#6770=ORIENTED_EDGE('',*,*,#6769,.T.);
++#6771=ORIENTED_EDGE('',*,*,#6446,.F.);
++#6772=ORIENTED_EDGE('',*,*,#6742,.T.);
++#6773=ORIENTED_EDGE('',*,*,#5664,.T.);
++#6774=EDGE_LOOP('',(#6770,#6771,#6772,#6773));
++#6775=FACE_OUTER_BOUND('',#6774,.F.);
++#6776=ADVANCED_FACE('',(#6775),#6768,.F.);
++#6777=CARTESIAN_POINT('',(5.5E0,1.568923974228E0,2.19375E1));
++#6778=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6779=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6780=AXIS2_PLACEMENT_3D('',#6777,#6778,#6779);
++#6781=CYLINDRICAL_SURFACE('',#6780,3.E0);
++#6782=ORIENTED_EDGE('',*,*,#6755,.F.);
++#6783=ORIENTED_EDGE('',*,*,#6406,.T.);
++#6785=ORIENTED_EDGE('',*,*,#6784,.T.);
++#6786=ORIENTED_EDGE('',*,*,#5652,.T.);
++#6787=EDGE_LOOP('',(#6782,#6783,#6785,#6786));
++#6788=FACE_OUTER_BOUND('',#6787,.F.);
++#6789=ADVANCED_FACE('',(#6788),#6781,.F.);
++#6790=CARTESIAN_POINT('',(2.5E0,0.E0,1.89375E1));
++#6791=DIRECTION('',(0.E0,0.E0,1.E0));
++#6792=DIRECTION('',(1.E0,0.E0,0.E0));
++#6793=AXIS2_PLACEMENT_3D('',#6790,#6791,#6792);
++#6794=PLANE('',#6793);
++#6795=ORIENTED_EDGE('',*,*,#6784,.F.);
++#6796=ORIENTED_EDGE('',*,*,#6404,.T.);
++#6798=ORIENTED_EDGE('',*,*,#6797,.F.);
++#6799=ORIENTED_EDGE('',*,*,#5638,.F.);
++#6800=EDGE_LOOP('',(#6795,#6796,#6798,#6799));
++#6801=FACE_OUTER_BOUND('',#6800,.F.);
++#6802=ADVANCED_FACE('',(#6801),#6794,.T.);
++#6803=CARTESIAN_POINT('',(1.85E1,-5.889194178308E-2,2.19375E1));
++#6804=DIRECTION('',(0.E0,1.E0,0.E0));
++#6805=DIRECTION('',(1.E0,0.E0,0.E0));
++#6806=AXIS2_PLACEMENT_3D('',#6803,#6804,#6805);
++#6807=CYLINDRICAL_SURFACE('',#6806,3.E0);
++#6809=ORIENTED_EDGE('',*,*,#6808,.F.);
++#6810=ORIENTED_EDGE('',*,*,#5640,.T.);
++#6811=ORIENTED_EDGE('',*,*,#6797,.T.);
++#6812=ORIENTED_EDGE('',*,*,#6402,.T.);
++#6813=EDGE_LOOP('',(#6809,#6810,#6811,#6812));
++#6814=FACE_OUTER_BOUND('',#6813,.F.);
++#6815=ADVANCED_FACE('',(#6814),#6807,.F.);
++#6816=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
++#6817=DIRECTION('',(1.E0,0.E0,0.E0));
++#6818=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6819=AXIS2_PLACEMENT_3D('',#6816,#6817,#6818);
++#6820=PLANE('',#6819);
++#6821=ORIENTED_EDGE('',*,*,#6808,.T.);
++#6822=ORIENTED_EDGE('',*,*,#6400,.F.);
++#6824=ORIENTED_EDGE('',*,*,#6823,.T.);
++#6825=ORIENTED_EDGE('',*,*,#5642,.T.);
++#6826=EDGE_LOOP('',(#6821,#6822,#6824,#6825));
++#6827=FACE_OUTER_BOUND('',#6826,.F.);
++#6828=ADVANCED_FACE('',(#6827),#6820,.F.);
++#6829=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
++#6830=DIRECTION('',(1.E0,0.E0,0.E0));
++#6831=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6832=AXIS2_PLACEMENT_3D('',#6829,#6830,#6831);
++#6833=PLANE('',#6832);
++#6835=ORIENTED_EDGE('',*,*,#6834,.T.);
++#6836=ORIENTED_EDGE('',*,*,#5656,.T.);
++#6838=ORIENTED_EDGE('',*,*,#6837,.T.);
++#6839=ORIENTED_EDGE('',*,*,#6422,.F.);
++#6840=EDGE_LOOP('',(#6835,#6836,#6838,#6839));
++#6841=FACE_OUTER_BOUND('',#6840,.F.);
++#6842=ADVANCED_FACE('',(#6841),#6833,.F.);
++#6843=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,2.45E1));
++#6844=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6845=DIRECTION('',(1.E0,0.E0,0.E0));
++#6846=AXIS2_PLACEMENT_3D('',#6843,#6844,#6845);
++#6847=CYLINDRICAL_SURFACE('',#6846,5.E0);
++#6848=ORIENTED_EDGE('',*,*,#6823,.F.);
++#6849=ORIENTED_EDGE('',*,*,#6414,.T.);
++#6851=ORIENTED_EDGE('',*,*,#6850,.T.);
++#6852=ORIENTED_EDGE('',*,*,#5644,.T.);
++#6853=EDGE_LOOP('',(#6848,#6849,#6851,#6852));
++#6854=FACE_OUTER_BOUND('',#6853,.F.);
++#6855=ADVANCED_FACE('',(#6854),#6847,.F.);
++#6856=CARTESIAN_POINT('',(2.5E0,1.5E0,2.95E1));
++#6857=DIRECTION('',(0.E0,0.E0,1.E0));
++#6858=DIRECTION('',(1.E0,0.E0,0.E0));
++#6859=AXIS2_PLACEMENT_3D('',#6856,#6857,#6858);
++#6860=PLANE('',#6859);
++#6862=ORIENTED_EDGE('',*,*,#6861,.T.);
++#6863=ORIENTED_EDGE('',*,*,#5646,.T.);
++#6864=ORIENTED_EDGE('',*,*,#6850,.F.);
++#6865=ORIENTED_EDGE('',*,*,#6412,.F.);
++#6866=EDGE_LOOP('',(#6862,#6863,#6864,#6865));
++#6867=FACE_OUTER_BOUND('',#6866,.F.);
++#6868=ADVANCED_FACE('',(#6867),#6860,.F.);
++#6869=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,2.45E1));
++#6870=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6871=DIRECTION('',(0.E0,0.E0,1.E0));
++#6872=AXIS2_PLACEMENT_3D('',#6869,#6870,#6871);
++#6873=CYLINDRICAL_SURFACE('',#6872,5.E0);
++#6874=ORIENTED_EDGE('',*,*,#6861,.F.);
++#6875=ORIENTED_EDGE('',*,*,#6410,.T.);
++#6876=ORIENTED_EDGE('',*,*,#6758,.T.);
++#6877=ORIENTED_EDGE('',*,*,#5648,.T.);
++#6878=EDGE_LOOP('',(#6874,#6875,#6876,#6877));
++#6879=FACE_OUTER_BOUND('',#6878,.F.);
++#6880=ADVANCED_FACE('',(#6879),#6873,.F.);
++#6881=CARTESIAN_POINT('',(1.85E1,1.568923974228E0,1.40625E1));
++#6882=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6883=DIRECTION('',(1.E0,0.E0,0.E0));
++#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883);
++#6885=CYLINDRICAL_SURFACE('',#6884,3.E0);
++#6886=ORIENTED_EDGE('',*,*,#6834,.F.);
++#6887=ORIENTED_EDGE('',*,*,#6420,.T.);
++#6889=ORIENTED_EDGE('',*,*,#6888,.T.);
++#6890=ORIENTED_EDGE('',*,*,#5658,.T.);
++#6891=EDGE_LOOP('',(#6886,#6887,#6889,#6890));
++#6892=FACE_OUTER_BOUND('',#6891,.F.);
++#6893=ADVANCED_FACE('',(#6892),#6885,.F.);
++#6894=CARTESIAN_POINT('',(2.15E1,0.E0,1.70625E1));
++#6895=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6896=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6897=AXIS2_PLACEMENT_3D('',#6894,#6895,#6896);
++#6898=PLANE('',#6897);
++#6899=ORIENTED_EDGE('',*,*,#6888,.F.);
++#6900=ORIENTED_EDGE('',*,*,#6418,.T.);
++#6902=ORIENTED_EDGE('',*,*,#6901,.F.);
++#6903=ORIENTED_EDGE('',*,*,#5660,.F.);
++#6904=EDGE_LOOP('',(#6899,#6900,#6902,#6903));
++#6905=FACE_OUTER_BOUND('',#6904,.F.);
++#6906=ADVANCED_FACE('',(#6905),#6898,.T.);
++#6907=CARTESIAN_POINT('',(5.5E0,-5.889194178308E-2,1.40625E1));
++#6908=DIRECTION('',(0.E0,1.E0,0.E0));
++#6909=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6910=AXIS2_PLACEMENT_3D('',#6907,#6908,#6909);
++#6911=CYLINDRICAL_SURFACE('',#6910,3.E0);
++#6912=ORIENTED_EDGE('',*,*,#6769,.F.);
++#6913=ORIENTED_EDGE('',*,*,#5662,.T.);
++#6914=ORIENTED_EDGE('',*,*,#6901,.T.);
++#6915=ORIENTED_EDGE('',*,*,#6448,.T.);
++#6916=EDGE_LOOP('',(#6912,#6913,#6914,#6915));
++#6917=FACE_OUTER_BOUND('',#6916,.F.);
++#6918=ADVANCED_FACE('',(#6917),#6911,.F.);
++#6919=CARTESIAN_POINT('',(2.05E1,-5.889194178308E-2,1.325E1));
++#6920=DIRECTION('',(0.E0,1.E0,0.E0));
++#6921=DIRECTION('',(1.E0,0.E0,0.E0));
++#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921);
++#6923=CYLINDRICAL_SURFACE('',#6922,1.E0);
++#6924=ORIENTED_EDGE('',*,*,#6837,.F.);
++#6925=ORIENTED_EDGE('',*,*,#5686,.T.);
++#6927=ORIENTED_EDGE('',*,*,#6926,.T.);
++#6928=ORIENTED_EDGE('',*,*,#6424,.T.);
++#6929=EDGE_LOOP('',(#6924,#6925,#6927,#6928));
++#6930=FACE_OUTER_BOUND('',#6929,.F.);
++#6931=ADVANCED_FACE('',(#6930),#6923,.F.);
++#6932=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
++#6933=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6934=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6935=AXIS2_PLACEMENT_3D('',#6932,#6933,#6934);
++#6936=PLANE('',#6935);
++#6938=ORIENTED_EDGE('',*,*,#6937,.F.);
++#6939=ORIENTED_EDGE('',*,*,#6290,.F.);
++#6941=ORIENTED_EDGE('',*,*,#6940,.T.);
++#6942=ORIENTED_EDGE('',*,*,#5532,.T.);
++#6943=EDGE_LOOP('',(#6938,#6939,#6941,#6942));
++#6944=FACE_OUTER_BOUND('',#6943,.F.);
++#6945=ADVANCED_FACE('',(#6944),#6936,.F.);
++#6946=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
++#6947=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6948=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6949=AXIS2_PLACEMENT_3D('',#6946,#6947,#6948);
++#6950=PLANE('',#6949);
++#6951=ORIENTED_EDGE('',*,*,#6926,.F.);
++#6952=ORIENTED_EDGE('',*,*,#5684,.T.);
++#6954=ORIENTED_EDGE('',*,*,#6953,.F.);
++#6955=ORIENTED_EDGE('',*,*,#6426,.F.);
++#6956=EDGE_LOOP('',(#6951,#6952,#6954,#6955));
++#6957=FACE_OUTER_BOUND('',#6956,.F.);
++#6958=ADVANCED_FACE('',(#6957),#6950,.F.);
++#6959=CARTESIAN_POINT('',(2.5E1,1.568923974228E0,1.325E1));
++#6960=DIRECTION('',(0.E0,-1.E0,0.E0));
++#6961=DIRECTION('',(-1.E0,0.E0,0.E0));
++#6962=AXIS2_PLACEMENT_3D('',#6959,#6960,#6961);
++#6963=CYLINDRICAL_SURFACE('',#6962,1.E0);
++#6965=ORIENTED_EDGE('',*,*,#6964,.F.);
++#6966=ORIENTED_EDGE('',*,*,#6292,.T.);
++#6967=ORIENTED_EDGE('',*,*,#6937,.T.);
++#6968=ORIENTED_EDGE('',*,*,#5530,.T.);
++#6969=EDGE_LOOP('',(#6965,#6966,#6967,#6968));
++#6970=FACE_OUTER_BOUND('',#6969,.F.);
++#6971=ADVANCED_FACE('',(#6970),#6963,.F.);
++#6972=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
++#6973=DIRECTION('',(1.E0,0.E0,0.E0));
++#6974=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6975=AXIS2_PLACEMENT_3D('',#6972,#6973,#6974);
++#6976=PLANE('',#6975);
++#6977=ORIENTED_EDGE('',*,*,#6964,.T.);
++#6978=ORIENTED_EDGE('',*,*,#5528,.F.);
++#6980=ORIENTED_EDGE('',*,*,#6979,.T.);
++#6981=ORIENTED_EDGE('',*,*,#6294,.T.);
++#6982=EDGE_LOOP('',(#6977,#6978,#6980,#6981));
++#6983=FACE_OUTER_BOUND('',#6982,.F.);
++#6984=ADVANCED_FACE('',(#6983),#6976,.T.);
++#6985=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
++#6986=DIRECTION('',(1.E0,0.E0,0.E0));
++#6987=DIRECTION('',(0.E0,0.E0,-1.E0));
++#6988=AXIS2_PLACEMENT_3D('',#6985,#6986,#6987);
++#6989=PLANE('',#6988);
++#6991=ORIENTED_EDGE('',*,*,#6990,.T.);
++#6992=ORIENTED_EDGE('',*,*,#6242,.T.);
++#6994=ORIENTED_EDGE('',*,*,#6993,.F.);
++#6995=ORIENTED_EDGE('',*,*,#5498,.F.);
++#6996=EDGE_LOOP('',(#6991,#6992,#6994,#6995));
++#6997=FACE_OUTER_BOUND('',#6996,.F.);
++#6998=ADVANCED_FACE('',(#6997),#6989,.T.);
++#6999=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
++#7000=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#7001=DIRECTION('',(0.E0,1.E0,0.E0));
++#7002=AXIS2_PLACEMENT_3D('',#6999,#7000,#7001);
++#7003=PLANE('',#7002);
++#7004=ORIENTED_EDGE('',*,*,#6979,.F.);
++#7005=ORIENTED_EDGE('',*,*,#5526,.T.);
++#7007=ORIENTED_EDGE('',*,*,#7006,.T.);
++#7008=ORIENTED_EDGE('',*,*,#6296,.F.);
++#7009=EDGE_LOOP('',(#7004,#7005,#7007,#7008));
++#7010=FACE_OUTER_BOUND('',#7009,.F.);
++#7011=ADVANCED_FACE('',(#7010),#7003,.T.);
++#7012=CARTESIAN_POINT('',(0.E0,0.E0,3.2E1));
++#7013=DIRECTION('',(0.E0,0.E0,1.E0));
++#7014=DIRECTION('',(1.E0,0.E0,0.E0));
++#7015=AXIS2_PLACEMENT_3D('',#7012,#7013,#7014);
++#7016=PLANE('',#7015);
++#7017=ORIENTED_EDGE('',*,*,#5524,.F.);
++#7019=ORIENTED_EDGE('',*,*,#7018,.T.);
++#7020=ORIENTED_EDGE('',*,*,#6298,.T.);
++#7021=ORIENTED_EDGE('',*,*,#7006,.F.);
++#7022=EDGE_LOOP('',(#7017,#7019,#7020,#7021));
++#7023=FACE_OUTER_BOUND('',#7022,.F.);
++#7024=ADVANCED_FACE('',(#7023),#7016,.T.);
++#7025=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
++#7026=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#7027=DIRECTION('',(0.E0,1.E0,0.E0));
++#7028=AXIS2_PLACEMENT_3D('',#7025,#7026,#7027);
++#7029=PLANE('',#7028);
++#7030=ORIENTED_EDGE('',*,*,#7018,.F.);
++#7031=ORIENTED_EDGE('',*,*,#5522,.T.);
++#7032=ORIENTED_EDGE('',*,*,#6678,.T.);
++#7033=ORIENTED_EDGE('',*,*,#6300,.F.);
++#7034=EDGE_LOOP('',(#7030,#7031,#7032,#7033));
++#7035=FACE_OUTER_BOUND('',#7034,.F.);
++#7036=ADVANCED_FACE('',(#7035),#7029,.T.);
++#7037=CARTESIAN_POINT('',(2.5E1,-7.055249658685E-2,7.E0));
++#7038=DIRECTION('',(0.E0,1.E0,0.E0));
++#7039=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7040=AXIS2_PLACEMENT_3D('',#7037,#7038,#7039);
++#7041=CYLINDRICAL_SURFACE('',#7040,1.E0);
++#7042=ORIENTED_EDGE('',*,*,#6990,.F.);
++#7043=ORIENTED_EDGE('',*,*,#5496,.T.);
++#7044=ORIENTED_EDGE('',*,*,#5965,.T.);
++#7045=ORIENTED_EDGE('',*,*,#6244,.T.);
++#7046=EDGE_LOOP('',(#7042,#7043,#7044,#7045));
++#7047=FACE_OUTER_BOUND('',#7046,.F.);
++#7048=ADVANCED_FACE('',(#7047),#7041,.F.);
++#7049=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
++#7050=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#7051=DIRECTION('',(0.E0,1.E0,0.E0));
++#7052=AXIS2_PLACEMENT_3D('',#7049,#7050,#7051);
++#7053=PLANE('',#7052);
++#7055=ORIENTED_EDGE('',*,*,#7054,.F.);
++#7056=ORIENTED_EDGE('',*,*,#5500,.T.);
++#7057=ORIENTED_EDGE('',*,*,#6993,.T.);
++#7058=ORIENTED_EDGE('',*,*,#6240,.F.);
++#7059=EDGE_LOOP('',(#7055,#7056,#7057,#7058));
++#7060=FACE_OUTER_BOUND('',#7059,.F.);
++#7061=ADVANCED_FACE('',(#7060),#7053,.T.);
++#7062=CARTESIAN_POINT('',(2.4E1,0.E0,0.E0));
++#7063=DIRECTION('',(0.E0,0.E0,-1.E0));
++#7064=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7065=AXIS2_PLACEMENT_3D('',#7062,#7063,#7064);
++#7066=PLANE('',#7065);
++#7067=ORIENTED_EDGE('',*,*,#5502,.F.);
++#7068=ORIENTED_EDGE('',*,*,#7054,.T.);
++#7069=ORIENTED_EDGE('',*,*,#6238,.T.);
++#7071=ORIENTED_EDGE('',*,*,#7070,.F.);
++#7072=EDGE_LOOP('',(#7067,#7068,#7069,#7071));
++#7073=FACE_OUTER_BOUND('',#7072,.F.);
++#7074=ADVANCED_FACE('',(#7073),#7066,.T.);
++#7075=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
++#7076=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#7077=DIRECTION('',(0.E0,1.E0,0.E0));
++#7078=AXIS2_PLACEMENT_3D('',#7075,#7076,#7077);
++#7079=PLANE('',#7078);
++#7080=ORIENTED_EDGE('',*,*,#6691,.F.);
++#7081=ORIENTED_EDGE('',*,*,#5504,.T.);
++#7082=ORIENTED_EDGE('',*,*,#7070,.T.);
++#7083=ORIENTED_EDGE('',*,*,#6236,.F.);
++#7084=EDGE_LOOP('',(#7080,#7081,#7082,#7083));
++#7085=FACE_OUTER_BOUND('',#7084,.F.);
++#7086=ADVANCED_FACE('',(#7085),#7079,.T.);
++#7087=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
++#7088=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#7089=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7090=AXIS2_PLACEMENT_3D('',#7087,#7088,#7089);
++#7091=PLANE('',#7090);
++#7092=ORIENTED_EDGE('',*,*,#6940,.F.);
++#7093=ORIENTED_EDGE('',*,*,#6288,.T.);
++#7095=ORIENTED_EDGE('',*,*,#7094,.T.);
++#7096=ORIENTED_EDGE('',*,*,#5534,.F.);
++#7097=EDGE_LOOP('',(#7092,#7093,#7095,#7096));
++#7098=FACE_OUTER_BOUND('',#7097,.F.);
++#7099=ADVANCED_FACE('',(#7098),#7091,.T.);
++#7100=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
++#7101=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7102=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7103=AXIS2_PLACEMENT_3D('',#7100,#7101,#7102);
++#7104=PLANE('',#7103);
++#7105=ORIENTED_EDGE('',*,*,#5968,.T.);
++#7106=ORIENTED_EDGE('',*,*,#5536,.T.);
++#7107=ORIENTED_EDGE('',*,*,#7094,.F.);
++#7108=ORIENTED_EDGE('',*,*,#6286,.F.);
++#7109=ORIENTED_EDGE('',*,*,#6165,.F.);
++#7111=ORIENTED_EDGE('',*,*,#7110,.F.);
++#7112=EDGE_LOOP('',(#7105,#7106,#7107,#7108,#7109,#7111));
++#7113=FACE_OUTER_BOUND('',#7112,.F.);
++#7114=ADVANCED_FACE('',(#7113),#7104,.F.);
++#7115=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
++#7116=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
++#7117=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
++#7118=AXIS2_PLACEMENT_3D('',#7115,#7116,#7117);
++#7119=PLANE('',#7118);
++#7120=ORIENTED_EDGE('',*,*,#5970,.T.);
++#7121=ORIENTED_EDGE('',*,*,#7110,.T.);
++#7122=ORIENTED_EDGE('',*,*,#6163,.F.);
++#7124=ORIENTED_EDGE('',*,*,#7123,.F.);
++#7125=EDGE_LOOP('',(#7120,#7121,#7122,#7124));
++#7126=FACE_OUTER_BOUND('',#7125,.F.);
++#7127=ADVANCED_FACE('',(#7126),#7119,.F.);
++#7128=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
++#7129=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7130=DIRECTION('',(1.E0,0.E0,0.E0));
++#7131=AXIS2_PLACEMENT_3D('',#7128,#7129,#7130);
++#7132=PLANE('',#7131);
++#7133=ORIENTED_EDGE('',*,*,#5972,.F.);
++#7134=ORIENTED_EDGE('',*,*,#7123,.T.);
++#7135=ORIENTED_EDGE('',*,*,#6161,.F.);
++#7137=ORIENTED_EDGE('',*,*,#7136,.F.);
++#7138=EDGE_LOOP('',(#7133,#7134,#7135,#7137));
++#7139=FACE_OUTER_BOUND('',#7138,.F.);
++#7141=ORIENTED_EDGE('',*,*,#7140,.T.);
++#7143=ORIENTED_EDGE('',*,*,#7142,.T.);
++#7144=EDGE_LOOP('',(#7141,#7143));
++#7145=FACE_BOUND('',#7144,.F.);
++#7147=ORIENTED_EDGE('',*,*,#7146,.T.);
++#7149=ORIENTED_EDGE('',*,*,#7148,.T.);
++#7150=EDGE_LOOP('',(#7147,#7149));
++#7151=FACE_BOUND('',#7150,.F.);
++#7152=ADVANCED_FACE('',(#7139,#7145,#7151),#7132,.F.);
++#7153=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
++#7154=DIRECTION('',(1.E0,0.E0,0.E0));
++#7155=DIRECTION('',(0.E0,1.E0,0.E0));
++#7156=AXIS2_PLACEMENT_3D('',#7153,#7154,#7155);
++#7157=PLANE('',#7156);
++#7159=ORIENTED_EDGE('',*,*,#7158,.T.);
++#7160=ORIENTED_EDGE('',*,*,#6430,.F.);
++#7162=ORIENTED_EDGE('',*,*,#7161,.T.);
++#7163=ORIENTED_EDGE('',*,*,#5680,.T.);
++#7164=EDGE_LOOP('',(#7159,#7160,#7162,#7163));
++#7165=FACE_OUTER_BOUND('',#7164,.F.);
++#7166=ADVANCED_FACE('',(#7165),#7157,.F.);
++#7167=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
++#7168=DIRECTION('',(1.E0,0.E0,0.E0));
++#7169=DIRECTION('',(0.E0,1.E0,0.E0));
++#7170=AXIS2_PLACEMENT_3D('',#7167,#7168,#7169);
++#7171=PLANE('',#7170);
++#7172=ORIENTED_EDGE('',*,*,#6325,.F.);
++#7173=ORIENTED_EDGE('',*,*,#5974,.T.);
++#7174=ORIENTED_EDGE('',*,*,#7136,.T.);
++#7175=ORIENTED_EDGE('',*,*,#6159,.F.);
++#7176=EDGE_LOOP('',(#7172,#7173,#7174,#7175));
++#7177=FACE_OUTER_BOUND('',#7176,.F.);
++#7178=ADVANCED_FACE('',(#7177),#7171,.F.);
++#7179=CARTESIAN_POINT('',(1.8E1,-7.099592191979E-2,1.1E1));
++#7180=DIRECTION('',(0.E0,1.E0,0.E0));
++#7181=DIRECTION('',(1.E0,0.E0,0.E0));
++#7182=AXIS2_PLACEMENT_3D('',#7179,#7180,#7181);
++#7183=CYLINDRICAL_SURFACE('',#7182,1.E0);
++#7184=ORIENTED_EDGE('',*,*,#7158,.F.);
++#7185=ORIENTED_EDGE('',*,*,#5678,.T.);
++#7187=ORIENTED_EDGE('',*,*,#7186,.T.);
++#7188=ORIENTED_EDGE('',*,*,#6432,.T.);
++#7189=EDGE_LOOP('',(#7184,#7185,#7187,#7188));
++#7190=FACE_OUTER_BOUND('',#7189,.F.);
++#7191=ADVANCED_FACE('',(#7190),#7183,.F.);
++#7192=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
++#7193=DIRECTION('',(0.E0,0.E0,1.E0));
++#7194=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7195=AXIS2_PLACEMENT_3D('',#7192,#7193,#7194);
++#7196=PLANE('',#7195);
++#7198=ORIENTED_EDGE('',*,*,#7197,.F.);
++#7199=ORIENTED_EDGE('',*,*,#6434,.T.);
++#7200=ORIENTED_EDGE('',*,*,#7186,.F.);
++#7201=ORIENTED_EDGE('',*,*,#5676,.F.);
++#7202=EDGE_LOOP('',(#7198,#7199,#7200,#7201));
++#7203=FACE_OUTER_BOUND('',#7202,.F.);
++#7204=ADVANCED_FACE('',(#7203),#7196,.T.);
++#7205=CARTESIAN_POINT('',(6.E0,1.567729432957E0,1.1E1));
++#7206=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7207=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7208=AXIS2_PLACEMENT_3D('',#7205,#7206,#7207);
++#7209=CYLINDRICAL_SURFACE('',#7208,1.E0);
++#7211=ORIENTED_EDGE('',*,*,#7210,.F.);
++#7212=ORIENTED_EDGE('',*,*,#6436,.T.);
++#7213=ORIENTED_EDGE('',*,*,#7197,.T.);
++#7214=ORIENTED_EDGE('',*,*,#5674,.T.);
++#7215=EDGE_LOOP('',(#7211,#7212,#7213,#7214));
++#7216=FACE_OUTER_BOUND('',#7215,.F.);
++#7217=ADVANCED_FACE('',(#7216),#7209,.F.);
++#7218=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
++#7219=DIRECTION('',(1.E0,0.E0,0.E0));
++#7220=DIRECTION('',(0.E0,1.E0,0.E0));
++#7221=AXIS2_PLACEMENT_3D('',#7218,#7219,#7220);
++#7222=PLANE('',#7221);
++#7223=ORIENTED_EDGE('',*,*,#7210,.T.);
++#7224=ORIENTED_EDGE('',*,*,#5672,.F.);
++#7226=ORIENTED_EDGE('',*,*,#7225,.T.);
++#7227=ORIENTED_EDGE('',*,*,#6438,.T.);
++#7228=EDGE_LOOP('',(#7223,#7224,#7226,#7227));
++#7229=FACE_OUTER_BOUND('',#7228,.F.);
++#7230=ADVANCED_FACE('',(#7229),#7222,.T.);
++#7231=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
++#7232=DIRECTION('',(1.E0,0.E0,0.E0));
++#7233=DIRECTION('',(0.E0,1.E0,0.E0));
++#7234=AXIS2_PLACEMENT_3D('',#7231,#7232,#7233);
++#7235=PLANE('',#7234);
++#7236=ORIENTED_EDGE('',*,*,#6322,.T.);
++#7238=ORIENTED_EDGE('',*,*,#7237,.T.);
++#7240=ORIENTED_EDGE('',*,*,#7239,.F.);
++#7241=ORIENTED_EDGE('',*,*,#5978,.T.);
++#7242=EDGE_LOOP('',(#7236,#7238,#7240,#7241));
++#7243=FACE_OUTER_BOUND('',#7242,.F.);
++#7244=ADVANCED_FACE('',(#7243),#7235,.T.);
++#7245=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
++#7246=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#7247=DIRECTION('',(0.E0,1.E0,0.E0));
++#7248=AXIS2_PLACEMENT_3D('',#7245,#7246,#7247);
++#7249=PLANE('',#7248);
++#7250=ORIENTED_EDGE('',*,*,#7225,.F.);
++#7251=ORIENTED_EDGE('',*,*,#5670,.T.);
++#7252=ORIENTED_EDGE('',*,*,#6718,.T.);
++#7253=ORIENTED_EDGE('',*,*,#6440,.F.);
++#7254=EDGE_LOOP('',(#7250,#7251,#7252,#7253));
++#7255=FACE_OUTER_BOUND('',#7254,.F.);
++#7256=ADVANCED_FACE('',(#7255),#7249,.T.);
++#7257=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));
++#7258=DIRECTION('',(0.E0,0.E0,1.E0));
++#7259=DIRECTION('',(1.E0,0.E0,0.E0));
++#7260=AXIS2_PLACEMENT_3D('',#7257,#7258,#7259);
++#7261=PLANE('',#7260);
++#7263=ORIENTED_EDGE('',*,*,#7262,.F.);
++#7264=ORIENTED_EDGE('',*,*,#6312,.F.);
++#7266=ORIENTED_EDGE('',*,*,#7265,.F.);
++#7268=ORIENTED_EDGE('',*,*,#7267,.F.);
++#7270=ORIENTED_EDGE('',*,*,#7269,.F.);
++#7271=ORIENTED_EDGE('',*,*,#7237,.F.);
++#7272=ORIENTED_EDGE('',*,*,#6320,.F.);
++#7274=ORIENTED_EDGE('',*,*,#7273,.T.);
++#7276=ORIENTED_EDGE('',*,*,#7275,.F.);
++#7277=EDGE_LOOP('',(#7263,#7264,#7266,#7268,#7270,#7271,#7272,#7274,#7276));
++#7278=FACE_OUTER_BOUND('',#7277,.F.);
++#7280=ORIENTED_EDGE('',*,*,#7279,.T.);
++#7282=ORIENTED_EDGE('',*,*,#7281,.T.);
++#7283=EDGE_LOOP('',(#7280,#7282));
++#7284=FACE_BOUND('',#7283,.F.);
++#7286=ORIENTED_EDGE('',*,*,#7285,.F.);
++#7288=ORIENTED_EDGE('',*,*,#7287,.T.);
++#7290=ORIENTED_EDGE('',*,*,#7289,.F.);
++#7292=ORIENTED_EDGE('',*,*,#7291,.T.);
++#7294=ORIENTED_EDGE('',*,*,#7293,.F.);
++#7296=ORIENTED_EDGE('',*,*,#7295,.T.);
++#7298=ORIENTED_EDGE('',*,*,#7297,.F.);
++#7300=ORIENTED_EDGE('',*,*,#7299,.T.);
++#7302=ORIENTED_EDGE('',*,*,#7301,.F.);
++#7304=ORIENTED_EDGE('',*,*,#7303,.T.);
++#7306=ORIENTED_EDGE('',*,*,#7305,.F.);
++#7308=ORIENTED_EDGE('',*,*,#7307,.T.);
++#7309=EDGE_LOOP('',(#7286,#7288,#7290,#7292,#7294,#7296,#7298,#7300,#7302,#7304,
++#7306,#7308));
++#7310=FACE_BOUND('',#7309,.F.);
++#7311=ADVANCED_FACE('',(#7278,#7284,#7310),#7261,.T.);
++#7312=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
++#7313=DIRECTION('',(0.E0,0.E0,1.E0));
++#7314=DIRECTION('',(1.E0,0.E0,0.E0));
++#7315=AXIS2_PLACEMENT_3D('',#7312,#7313,#7314);
++#7316=CYLINDRICAL_SURFACE('',#7315,1.625E-1);
++#7317=ORIENTED_EDGE('',*,*,#6031,.T.);
++#7319=ORIENTED_EDGE('',*,*,#7318,.T.);
++#7320=ORIENTED_EDGE('',*,*,#7279,.F.);
++#7322=ORIENTED_EDGE('',*,*,#7321,.F.);
++#7323=EDGE_LOOP('',(#7317,#7319,#7320,#7322));
++#7324=FACE_OUTER_BOUND('',#7323,.F.);
++#7325=ADVANCED_FACE('',(#7324),#7316,.F.);
++#7326=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
++#7327=DIRECTION('',(0.E0,0.E0,1.E0));
++#7328=DIRECTION('',(1.E0,0.E0,0.E0));
++#7329=AXIS2_PLACEMENT_3D('',#7326,#7327,#7328);
++#7330=CYLINDRICAL_SURFACE('',#7329,1.625E-1);
++#7331=ORIENTED_EDGE('',*,*,#6033,.T.);
++#7332=ORIENTED_EDGE('',*,*,#7321,.T.);
++#7333=ORIENTED_EDGE('',*,*,#7281,.F.);
++#7334=ORIENTED_EDGE('',*,*,#7318,.F.);
++#7335=EDGE_LOOP('',(#7331,#7332,#7333,#7334));
++#7336=FACE_OUTER_BOUND('',#7335,.F.);
++#7337=ADVANCED_FACE('',(#7336),#7330,.F.);
++#7338=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.2E1));
++#7339=DIRECTION('',(1.E0,0.E0,0.E0));
++#7340=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7341=AXIS2_PLACEMENT_3D('',#7338,#7339,#7340);
++#7342=PLANE('',#7341);
++#7343=ORIENTED_EDGE('',*,*,#6314,.T.);
++#7344=ORIENTED_EDGE('',*,*,#7262,.T.);
++#7346=ORIENTED_EDGE('',*,*,#7345,.T.);
++#7347=EDGE_LOOP('',(#7343,#7344,#7346));
++#7348=FACE_OUTER_BOUND('',#7347,.F.);
++#7349=ADVANCED_FACE('',(#7348),#7342,.F.);
++#7350=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
++#7351=DIRECTION('',(0.E0,5.E-1,8.660254037844E-1));
++#7352=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
++#7353=AXIS2_PLACEMENT_3D('',#7350,#7351,#7352);
++#7354=PLANE('',#7353);
++#7355=ORIENTED_EDGE('',*,*,#6316,.F.);
++#7356=ORIENTED_EDGE('',*,*,#7345,.F.);
++#7357=ORIENTED_EDGE('',*,*,#7275,.T.);
++#7359=ORIENTED_EDGE('',*,*,#7358,.T.);
++#7360=EDGE_LOOP('',(#7355,#7356,#7357,#7359));
++#7361=FACE_OUTER_BOUND('',#7360,.F.);
++#7363=ORIENTED_EDGE('',*,*,#7362,.T.);
++#7365=ORIENTED_EDGE('',*,*,#7364,.T.);
++#7366=EDGE_LOOP('',(#7363,#7365));
++#7367=FACE_BOUND('',#7366,.F.);
++#7368=ADVANCED_FACE('',(#7361,#7367),#7354,.T.);
++#7369=CARTESIAN_POINT('',(2.E0,1.5E0,1.2E1));
++#7370=DIRECTION('',(1.E0,0.E0,0.E0));
++#7371=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7372=AXIS2_PLACEMENT_3D('',#7369,#7370,#7371);
++#7373=PLANE('',#7372);
++#7374=ORIENTED_EDGE('',*,*,#6318,.F.);
++#7375=ORIENTED_EDGE('',*,*,#7358,.F.);
++#7376=ORIENTED_EDGE('',*,*,#7273,.F.);
++#7377=EDGE_LOOP('',(#7374,#7375,#7376));
++#7378=FACE_OUTER_BOUND('',#7377,.F.);
++#7379=ADVANCED_FACE('',(#7378),#7373,.T.);
++#7380=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
++#7381=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7382=DIRECTION('',(1.E0,0.E0,0.E0));
++#7383=AXIS2_PLACEMENT_3D('',#7380,#7381,#7382);
++#7384=CYLINDRICAL_SURFACE('',#7383,2.575E-1);
++#7386=ORIENTED_EDGE('',*,*,#7385,.F.);
++#7387=ORIENTED_EDGE('',*,*,#7362,.F.);
++#7389=ORIENTED_EDGE('',*,*,#7388,.F.);
++#7391=ORIENTED_EDGE('',*,*,#7390,.F.);
++#7392=EDGE_LOOP('',(#7386,#7387,#7389,#7391));
++#7393=FACE_OUTER_BOUND('',#7392,.F.);
++#7394=ADVANCED_FACE('',(#7393),#7384,.F.);
++#7395=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
++#7396=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7397=DIRECTION('',(1.E0,0.E0,0.E0));
++#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397);
++#7399=CYLINDRICAL_SURFACE('',#7398,2.575E-1);
++#7400=ORIENTED_EDGE('',*,*,#7388,.T.);
++#7401=ORIENTED_EDGE('',*,*,#7364,.F.);
++#7402=ORIENTED_EDGE('',*,*,#7385,.T.);
++#7404=ORIENTED_EDGE('',*,*,#7403,.F.);
++#7405=EDGE_LOOP('',(#7400,#7401,#7402,#7404));
++#7406=FACE_OUTER_BOUND('',#7405,.F.);
++#7407=ADVANCED_FACE('',(#7406),#7399,.F.);
++#7408=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
++#7409=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7410=DIRECTION('',(1.E0,0.E0,0.E0));
++#7411=AXIS2_PLACEMENT_3D('',#7408,#7409,#7410);
++#7412=PLANE('',#7411);
++#7413=ORIENTED_EDGE('',*,*,#7390,.T.);
++#7414=ORIENTED_EDGE('',*,*,#7403,.T.);
++#7415=EDGE_LOOP('',(#7413,#7414));
++#7416=FACE_OUTER_BOUND('',#7415,.F.);
++#7418=ORIENTED_EDGE('',*,*,#7417,.F.);
++#7420=ORIENTED_EDGE('',*,*,#7419,.F.);
++#7421=EDGE_LOOP('',(#7418,#7420));
++#7422=FACE_BOUND('',#7421,.F.);
++#7423=ADVANCED_FACE('',(#7416,#7422),#7412,.F.);
++#7424=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
++#7425=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7426=DIRECTION('',(1.E0,0.E0,0.E0));
++#7427=AXIS2_PLACEMENT_3D('',#7424,#7425,#7426);
++#7428=CYLINDRICAL_SURFACE('',#7427,1.925E-1);
++#7429=ORIENTED_EDGE('',*,*,#7417,.T.);
++#7431=ORIENTED_EDGE('',*,*,#7430,.T.);
++#7432=ORIENTED_EDGE('',*,*,#5620,.F.);
++#7434=ORIENTED_EDGE('',*,*,#7433,.F.);
++#7435=EDGE_LOOP('',(#7429,#7431,#7432,#7434));
++#7436=FACE_OUTER_BOUND('',#7435,.F.);
++#7437=ADVANCED_FACE('',(#7436),#7428,.F.);
++#7438=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
++#7439=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7440=DIRECTION('',(1.E0,0.E0,0.E0));
++#7441=AXIS2_PLACEMENT_3D('',#7438,#7439,#7440);
++#7442=CYLINDRICAL_SURFACE('',#7441,1.925E-1);
++#7443=ORIENTED_EDGE('',*,*,#7419,.T.);
++#7444=ORIENTED_EDGE('',*,*,#7433,.T.);
++#7445=ORIENTED_EDGE('',*,*,#5622,.F.);
++#7446=ORIENTED_EDGE('',*,*,#7430,.F.);
++#7447=EDGE_LOOP('',(#7443,#7444,#7445,#7446));
++#7448=FACE_OUTER_BOUND('',#7447,.F.);
++#7449=ADVANCED_FACE('',(#7448),#7442,.F.);
++#7450=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
++#7451=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7452=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7453=AXIS2_PLACEMENT_3D('',#7450,#7451,#7452);
++#7454=PLANE('',#7453);
++#7455=ORIENTED_EDGE('',*,*,#7265,.T.);
++#7456=ORIENTED_EDGE('',*,*,#6310,.T.);
++#7458=ORIENTED_EDGE('',*,*,#7457,.F.);
++#7459=ORIENTED_EDGE('',*,*,#5512,.F.);
++#7460=ORIENTED_EDGE('',*,*,#5984,.T.);
++#7462=ORIENTED_EDGE('',*,*,#7461,.T.);
++#7463=EDGE_LOOP('',(#7455,#7456,#7458,#7459,#7460,#7462));
++#7464=FACE_OUTER_BOUND('',#7463,.F.);
++#7465=ADVANCED_FACE('',(#7464),#7454,.T.);
++#7466=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
++#7467=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#7468=DIRECTION('',(0.E0,1.E0,0.E0));
++#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468);
++#7470=PLANE('',#7469);
++#7471=ORIENTED_EDGE('',*,*,#6731,.F.);
++#7472=ORIENTED_EDGE('',*,*,#5514,.T.);
++#7473=ORIENTED_EDGE('',*,*,#7457,.T.);
++#7474=ORIENTED_EDGE('',*,*,#6308,.F.);
++#7475=EDGE_LOOP('',(#7471,#7472,#7473,#7474));
++#7476=FACE_OUTER_BOUND('',#7475,.F.);
++#7477=ADVANCED_FACE('',(#7476),#7470,.T.);
++#7478=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
++#7479=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#7480=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
++#7481=AXIS2_PLACEMENT_3D('',#7478,#7479,#7480);
++#7482=PLANE('',#7481);
++#7483=ORIENTED_EDGE('',*,*,#5982,.F.);
++#7485=ORIENTED_EDGE('',*,*,#7484,.T.);
++#7486=ORIENTED_EDGE('',*,*,#7267,.T.);
++#7487=ORIENTED_EDGE('',*,*,#7461,.F.);
++#7488=EDGE_LOOP('',(#7483,#7485,#7486,#7487));
++#7489=FACE_OUTER_BOUND('',#7488,.F.);
++#7490=ADVANCED_FACE('',(#7489),#7482,.T.);
++#7491=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
++#7492=DIRECTION('',(0.E0,1.E0,0.E0));
++#7493=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7494=AXIS2_PLACEMENT_3D('',#7491,#7492,#7493);
++#7495=PLANE('',#7494);
++#7496=ORIENTED_EDGE('',*,*,#5980,.F.);
++#7497=ORIENTED_EDGE('',*,*,#7239,.T.);
++#7498=ORIENTED_EDGE('',*,*,#7269,.T.);
++#7499=ORIENTED_EDGE('',*,*,#7484,.F.);
++#7500=EDGE_LOOP('',(#7496,#7497,#7498,#7499));
++#7501=FACE_OUTER_BOUND('',#7500,.F.);
++#7503=ORIENTED_EDGE('',*,*,#7502,.F.);
++#7505=ORIENTED_EDGE('',*,*,#7504,.F.);
++#7506=EDGE_LOOP('',(#7503,#7505));
++#7507=FACE_BOUND('',#7506,.F.);
++#7509=ORIENTED_EDGE('',*,*,#7508,.F.);
++#7511=ORIENTED_EDGE('',*,*,#7510,.F.);
++#7512=EDGE_LOOP('',(#7509,#7511));
++#7513=FACE_BOUND('',#7512,.F.);
++#7514=ADVANCED_FACE('',(#7501,#7507,#7513),#7495,.T.);
++#7515=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
++#7516=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7517=DIRECTION('',(1.E0,0.E0,0.E0));
++#7518=AXIS2_PLACEMENT_3D('',#7515,#7516,#7517);
++#7519=CYLINDRICAL_SURFACE('',#7518,9.5E-2);
++#7520=ORIENTED_EDGE('',*,*,#7502,.T.);
++#7522=ORIENTED_EDGE('',*,*,#7521,.T.);
++#7524=ORIENTED_EDGE('',*,*,#7523,.F.);
++#7526=ORIENTED_EDGE('',*,*,#7525,.F.);
++#7527=EDGE_LOOP('',(#7520,#7522,#7524,#7526));
++#7528=FACE_OUTER_BOUND('',#7527,.F.);
++#7529=ADVANCED_FACE('',(#7528),#7519,.F.);
++#7530=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
++#7531=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7532=DIRECTION('',(1.E0,0.E0,0.E0));
++#7533=AXIS2_PLACEMENT_3D('',#7530,#7531,#7532);
++#7534=CYLINDRICAL_SURFACE('',#7533,9.5E-2);
++#7535=ORIENTED_EDGE('',*,*,#7504,.T.);
++#7536=ORIENTED_EDGE('',*,*,#7525,.T.);
++#7538=ORIENTED_EDGE('',*,*,#7537,.F.);
++#7539=ORIENTED_EDGE('',*,*,#7521,.F.);
++#7540=EDGE_LOOP('',(#7535,#7536,#7538,#7539));
++#7541=FACE_OUTER_BOUND('',#7540,.F.);
++#7542=ADVANCED_FACE('',(#7541),#7534,.F.);
++#7543=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
++#7544=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7545=DIRECTION('',(1.E0,0.E0,0.E0));
++#7546=AXIS2_PLACEMENT_3D('',#7543,#7544,#7545);
++#7547=PLANE('',#7546);
++#7548=ORIENTED_EDGE('',*,*,#7523,.T.);
++#7549=ORIENTED_EDGE('',*,*,#7537,.T.);
++#7550=EDGE_LOOP('',(#7548,#7549));
++#7551=FACE_OUTER_BOUND('',#7550,.F.);
++#7552=ADVANCED_FACE('',(#7551),#7547,.F.);
++#7553=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
++#7554=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7555=DIRECTION('',(1.E0,0.E0,0.E0));
++#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555);
++#7557=CYLINDRICAL_SURFACE('',#7556,6.25E-2);
++#7558=ORIENTED_EDGE('',*,*,#7508,.T.);
++#7560=ORIENTED_EDGE('',*,*,#7559,.T.);
++#7562=ORIENTED_EDGE('',*,*,#7561,.F.);
++#7564=ORIENTED_EDGE('',*,*,#7563,.F.);
++#7565=EDGE_LOOP('',(#7558,#7560,#7562,#7564));
++#7566=FACE_OUTER_BOUND('',#7565,.F.);
++#7567=ADVANCED_FACE('',(#7566),#7557,.F.);
++#7568=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
++#7569=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7570=DIRECTION('',(1.E0,0.E0,0.E0));
++#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570);
++#7572=CYLINDRICAL_SURFACE('',#7571,6.25E-2);
++#7573=ORIENTED_EDGE('',*,*,#7510,.T.);
++#7574=ORIENTED_EDGE('',*,*,#7563,.T.);
++#7576=ORIENTED_EDGE('',*,*,#7575,.F.);
++#7577=ORIENTED_EDGE('',*,*,#7559,.F.);
++#7578=EDGE_LOOP('',(#7573,#7574,#7576,#7577));
++#7579=FACE_OUTER_BOUND('',#7578,.F.);
++#7580=ADVANCED_FACE('',(#7579),#7572,.F.);
++#7581=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
++#7582=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7583=DIRECTION('',(1.E0,0.E0,0.E0));
++#7584=AXIS2_PLACEMENT_3D('',#7581,#7582,#7583);
++#7585=PLANE('',#7584);
++#7586=ORIENTED_EDGE('',*,*,#7561,.T.);
++#7587=ORIENTED_EDGE('',*,*,#7575,.T.);
++#7588=EDGE_LOOP('',(#7586,#7587));
++#7589=FACE_OUTER_BOUND('',#7588,.F.);
++#7590=ADVANCED_FACE('',(#7589),#7585,.F.);
++#7591=CARTESIAN_POINT('',(2.15E0,6.65E0,9.441108058217E0));
++#7592=DIRECTION('',(0.E0,0.E0,1.E0));
++#7593=DIRECTION('',(1.E0,0.E0,0.E0));
++#7594=AXIS2_PLACEMENT_3D('',#7591,#7592,#7593);
++#7595=CYLINDRICAL_SURFACE('',#7594,3.5E-1);
++#7597=ORIENTED_EDGE('',*,*,#7596,.T.);
++#7598=ORIENTED_EDGE('',*,*,#7285,.T.);
++#7600=ORIENTED_EDGE('',*,*,#7599,.F.);
++#7602=ORIENTED_EDGE('',*,*,#7601,.T.);
++#7603=EDGE_LOOP('',(#7597,#7598,#7600,#7602));
++#7604=FACE_OUTER_BOUND('',#7603,.F.);
++#7605=ADVANCED_FACE('',(#7604),#7595,.T.);
++#7606=CARTESIAN_POINT('',(2.5E0,7.E0,1.E1));
++#7607=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7608=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7609=AXIS2_PLACEMENT_3D('',#7606,#7607,#7608);
++#7610=PLANE('',#7609);
++#7611=ORIENTED_EDGE('',*,*,#7596,.F.);
++#7613=ORIENTED_EDGE('',*,*,#7612,.T.);
++#7615=ORIENTED_EDGE('',*,*,#7614,.F.);
++#7616=ORIENTED_EDGE('',*,*,#7287,.F.);
++#7617=EDGE_LOOP('',(#7611,#7613,#7615,#7616));
++#7618=FACE_OUTER_BOUND('',#7617,.F.);
++#7619=ADVANCED_FACE('',(#7618),#7610,.F.);
++#7620=CARTESIAN_POINT('',(0.E0,0.E0,9.5E0));
++#7621=DIRECTION('',(0.E0,0.E0,1.E0));
++#7622=DIRECTION('',(1.E0,0.E0,0.E0));
++#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622);
++#7624=PLANE('',#7623);
++#7625=ORIENTED_EDGE('',*,*,#7612,.F.);
++#7626=ORIENTED_EDGE('',*,*,#7601,.F.);
++#7628=ORIENTED_EDGE('',*,*,#7627,.F.);
++#7630=ORIENTED_EDGE('',*,*,#7629,.F.);
++#7632=ORIENTED_EDGE('',*,*,#7631,.F.);
++#7634=ORIENTED_EDGE('',*,*,#7633,.F.);
++#7636=ORIENTED_EDGE('',*,*,#7635,.F.);
++#7638=ORIENTED_EDGE('',*,*,#7637,.F.);
++#7640=ORIENTED_EDGE('',*,*,#7639,.F.);
++#7642=ORIENTED_EDGE('',*,*,#7641,.F.);
++#7644=ORIENTED_EDGE('',*,*,#7643,.F.);
++#7646=ORIENTED_EDGE('',*,*,#7645,.F.);
++#7647=EDGE_LOOP('',(#7625,#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7640,#7642,
++#7644,#7646));
++#7648=FACE_OUTER_BOUND('',#7647,.F.);
++#7649=ADVANCED_FACE('',(#7648),#7624,.T.);
++#7650=CARTESIAN_POINT('',(1.357969178416E0,7.E0,1.E1));
++#7651=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7652=DIRECTION('',(1.E0,0.E0,0.E0));
++#7653=AXIS2_PLACEMENT_3D('',#7650,#7651,#7652);
++#7654=PLANE('',#7653);
++#7655=ORIENTED_EDGE('',*,*,#7599,.T.);
++#7656=ORIENTED_EDGE('',*,*,#7307,.F.);
++#7658=ORIENTED_EDGE('',*,*,#7657,.T.);
++#7659=ORIENTED_EDGE('',*,*,#7627,.T.);
++#7660=EDGE_LOOP('',(#7655,#7656,#7658,#7659));
++#7661=FACE_OUTER_BOUND('',#7660,.F.);
++#7662=ADVANCED_FACE('',(#7661),#7654,.F.);
++#7663=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.006892397423E1));
++#7664=DIRECTION('',(0.E0,0.E0,-1.E0));
++#7665=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7666=AXIS2_PLACEMENT_3D('',#7663,#7664,#7665);
++#7667=CYLINDRICAL_SURFACE('',#7666,3.5E-1);
++#7668=ORIENTED_EDGE('',*,*,#7657,.F.);
++#7669=ORIENTED_EDGE('',*,*,#7305,.T.);
++#7671=ORIENTED_EDGE('',*,*,#7670,.T.);
++#7672=ORIENTED_EDGE('',*,*,#7629,.T.);
++#7673=EDGE_LOOP('',(#7668,#7669,#7671,#7672));
++#7674=FACE_OUTER_BOUND('',#7673,.F.);
++#7675=ADVANCED_FACE('',(#7674),#7667,.F.);
++#7676=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,1.E1));
++#7677=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#7678=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
++#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678);
++#7680=PLANE('',#7679);
++#7681=ORIENTED_EDGE('',*,*,#7670,.F.);
++#7682=ORIENTED_EDGE('',*,*,#7303,.F.);
++#7684=ORIENTED_EDGE('',*,*,#7683,.T.);
++#7685=ORIENTED_EDGE('',*,*,#7631,.T.);
++#7686=EDGE_LOOP('',(#7681,#7682,#7684,#7685));
++#7687=FACE_OUTER_BOUND('',#7686,.F.);
++#7688=ADVANCED_FACE('',(#7687),#7680,.F.);
++#7689=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.006892397423E1));
++#7690=DIRECTION('',(0.E0,0.E0,-1.E0));
++#7691=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#7692=AXIS2_PLACEMENT_3D('',#7689,#7690,#7691);
++#7693=CYLINDRICAL_SURFACE('',#7692,3.5E-1);
++#7694=ORIENTED_EDGE('',*,*,#7683,.F.);
++#7695=ORIENTED_EDGE('',*,*,#7301,.T.);
++#7697=ORIENTED_EDGE('',*,*,#7696,.T.);
++#7698=ORIENTED_EDGE('',*,*,#7633,.T.);
++#7699=EDGE_LOOP('',(#7694,#7695,#7697,#7698));
++#7700=FACE_OUTER_BOUND('',#7699,.F.);
++#7701=ADVANCED_FACE('',(#7700),#7693,.F.);
++#7702=CARTESIAN_POINT('',(4.5E0,9.5E0,1.E1));
++#7703=DIRECTION('',(0.E0,1.E0,0.E0));
++#7704=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704);
++#7706=PLANE('',#7705);
++#7707=ORIENTED_EDGE('',*,*,#7696,.F.);
++#7708=ORIENTED_EDGE('',*,*,#7299,.F.);
++#7710=ORIENTED_EDGE('',*,*,#7709,.T.);
++#7711=ORIENTED_EDGE('',*,*,#7635,.T.);
++#7712=EDGE_LOOP('',(#7707,#7708,#7710,#7711));
++#7713=FACE_OUTER_BOUND('',#7712,.F.);
++#7714=ADVANCED_FACE('',(#7713),#7706,.F.);
++#7715=CARTESIAN_POINT('',(4.15E0,9.15E0,1.006892397423E1));
++#7716=DIRECTION('',(0.E0,0.E0,-1.E0));
++#7717=DIRECTION('',(0.E0,1.E0,0.E0));
++#7718=AXIS2_PLACEMENT_3D('',#7715,#7716,#7717);
++#7719=CYLINDRICAL_SURFACE('',#7718,3.5E-1);
++#7720=ORIENTED_EDGE('',*,*,#7709,.F.);
++#7721=ORIENTED_EDGE('',*,*,#7297,.T.);
++#7723=ORIENTED_EDGE('',*,*,#7722,.T.);
++#7724=ORIENTED_EDGE('',*,*,#7637,.T.);
++#7725=EDGE_LOOP('',(#7720,#7721,#7723,#7724));
++#7726=FACE_OUTER_BOUND('',#7725,.F.);
++#7727=ADVANCED_FACE('',(#7726),#7719,.F.);
++#7728=CARTESIAN_POINT('',(4.5E0,2.E0,1.E1));
++#7729=DIRECTION('',(1.E0,0.E0,0.E0));
++#7730=DIRECTION('',(0.E0,1.E0,0.E0));
++#7731=AXIS2_PLACEMENT_3D('',#7728,#7729,#7730);
++#7732=PLANE('',#7731);
++#7734=ORIENTED_EDGE('',*,*,#7733,.T.);
++#7735=ORIENTED_EDGE('',*,*,#7639,.T.);
++#7736=ORIENTED_EDGE('',*,*,#7722,.F.);
++#7737=ORIENTED_EDGE('',*,*,#7295,.F.);
++#7738=EDGE_LOOP('',(#7734,#7735,#7736,#7737));
++#7739=FACE_OUTER_BOUND('',#7738,.F.);
++#7740=ADVANCED_FACE('',(#7739),#7732,.F.);
++#7741=CARTESIAN_POINT('',(4.15E0,2.35E0,1.006892397423E1));
++#7742=DIRECTION('',(0.E0,0.E0,-1.E0));
++#7743=DIRECTION('',(1.E0,0.E0,0.E0));
++#7744=AXIS2_PLACEMENT_3D('',#7741,#7742,#7743);
++#7745=CYLINDRICAL_SURFACE('',#7744,3.5E-1);
++#7746=ORIENTED_EDGE('',*,*,#7733,.F.);
++#7747=ORIENTED_EDGE('',*,*,#7293,.T.);
++#7749=ORIENTED_EDGE('',*,*,#7748,.T.);
++#7750=ORIENTED_EDGE('',*,*,#7641,.T.);
++#7751=EDGE_LOOP('',(#7746,#7747,#7749,#7750));
++#7752=FACE_OUTER_BOUND('',#7751,.F.);
++#7753=ADVANCED_FACE('',(#7752),#7745,.F.);
++#7754=CARTESIAN_POINT('',(2.5E0,2.E0,1.E1));
++#7755=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7756=DIRECTION('',(1.E0,0.E0,0.E0));
++#7757=AXIS2_PLACEMENT_3D('',#7754,#7755,#7756);
++#7758=PLANE('',#7757);
++#7760=ORIENTED_EDGE('',*,*,#7759,.T.);
++#7761=ORIENTED_EDGE('',*,*,#7643,.T.);
++#7762=ORIENTED_EDGE('',*,*,#7748,.F.);
++#7763=ORIENTED_EDGE('',*,*,#7291,.F.);
++#7764=EDGE_LOOP('',(#7760,#7761,#7762,#7763));
++#7765=FACE_OUTER_BOUND('',#7764,.F.);
++#7766=ADVANCED_FACE('',(#7765),#7758,.F.);
++#7767=CARTESIAN_POINT('',(2.85E0,2.35E0,1.006892397423E1));
++#7768=DIRECTION('',(0.E0,0.E0,-1.E0));
++#7769=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7770=AXIS2_PLACEMENT_3D('',#7767,#7768,#7769);
++#7771=CYLINDRICAL_SURFACE('',#7770,3.5E-1);
++#7772=ORIENTED_EDGE('',*,*,#7759,.F.);
++#7773=ORIENTED_EDGE('',*,*,#7289,.T.);
++#7774=ORIENTED_EDGE('',*,*,#7614,.T.);
++#7775=ORIENTED_EDGE('',*,*,#7645,.T.);
++#7776=EDGE_LOOP('',(#7772,#7773,#7774,#7775));
++#7777=FACE_OUTER_BOUND('',#7776,.F.);
++#7778=ADVANCED_FACE('',(#7777),#7771,.F.);
++#7779=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
++#7780=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#7781=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7782=AXIS2_PLACEMENT_3D('',#7779,#7780,#7781);
++#7783=PLANE('',#7782);
++#7784=ORIENTED_EDGE('',*,*,#7161,.F.);
++#7785=ORIENTED_EDGE('',*,*,#6428,.T.);
++#7786=ORIENTED_EDGE('',*,*,#6953,.T.);
++#7787=ORIENTED_EDGE('',*,*,#5682,.F.);
++#7788=EDGE_LOOP('',(#7784,#7785,#7786,#7787));
++#7789=FACE_OUTER_BOUND('',#7788,.F.);
++#7790=ADVANCED_FACE('',(#7789),#7783,.T.);
++#7791=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
++#7792=DIRECTION('',(0.E0,1.E0,0.E0));
++#7793=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7794=AXIS2_PLACEMENT_3D('',#7791,#7792,#7793);
++#7795=CYLINDRICAL_SURFACE('',#7794,9.5E-2);
++#7796=ORIENTED_EDGE('',*,*,#7140,.F.);
++#7798=ORIENTED_EDGE('',*,*,#7797,.T.);
++#7800=ORIENTED_EDGE('',*,*,#7799,.T.);
++#7802=ORIENTED_EDGE('',*,*,#7801,.F.);
++#7803=EDGE_LOOP('',(#7796,#7798,#7800,#7802));
++#7804=FACE_OUTER_BOUND('',#7803,.F.);
++#7805=ADVANCED_FACE('',(#7804),#7795,.F.);
++#7806=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
++#7807=DIRECTION('',(0.E0,1.E0,0.E0));
++#7808=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7809=AXIS2_PLACEMENT_3D('',#7806,#7807,#7808);
++#7810=CYLINDRICAL_SURFACE('',#7809,9.5E-2);
++#7811=ORIENTED_EDGE('',*,*,#7142,.F.);
++#7812=ORIENTED_EDGE('',*,*,#7801,.T.);
++#7814=ORIENTED_EDGE('',*,*,#7813,.T.);
++#7815=ORIENTED_EDGE('',*,*,#7797,.F.);
++#7816=EDGE_LOOP('',(#7811,#7812,#7814,#7815));
++#7817=FACE_OUTER_BOUND('',#7816,.F.);
++#7818=ADVANCED_FACE('',(#7817),#7810,.F.);
++#7819=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
++#7820=DIRECTION('',(0.E0,1.E0,0.E0));
++#7821=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7822=AXIS2_PLACEMENT_3D('',#7819,#7820,#7821);
++#7823=PLANE('',#7822);
++#7824=ORIENTED_EDGE('',*,*,#7799,.F.);
++#7825=ORIENTED_EDGE('',*,*,#7813,.F.);
++#7826=EDGE_LOOP('',(#7824,#7825));
++#7827=FACE_OUTER_BOUND('',#7826,.F.);
++#7828=ADVANCED_FACE('',(#7827),#7823,.T.);
++#7829=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
++#7830=DIRECTION('',(0.E0,1.E0,0.E0));
++#7831=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7832=AXIS2_PLACEMENT_3D('',#7829,#7830,#7831);
++#7833=CYLINDRICAL_SURFACE('',#7832,6.25E-2);
++#7834=ORIENTED_EDGE('',*,*,#7146,.F.);
++#7836=ORIENTED_EDGE('',*,*,#7835,.T.);
++#7838=ORIENTED_EDGE('',*,*,#7837,.T.);
++#7840=ORIENTED_EDGE('',*,*,#7839,.F.);
++#7841=EDGE_LOOP('',(#7834,#7836,#7838,#7840));
++#7842=FACE_OUTER_BOUND('',#7841,.F.);
++#7843=ADVANCED_FACE('',(#7842),#7833,.F.);
++#7844=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
++#7845=DIRECTION('',(0.E0,1.E0,0.E0));
++#7846=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7847=AXIS2_PLACEMENT_3D('',#7844,#7845,#7846);
++#7848=CYLINDRICAL_SURFACE('',#7847,6.25E-2);
++#7849=ORIENTED_EDGE('',*,*,#7148,.F.);
++#7850=ORIENTED_EDGE('',*,*,#7839,.T.);
++#7852=ORIENTED_EDGE('',*,*,#7851,.T.);
++#7853=ORIENTED_EDGE('',*,*,#7835,.F.);
++#7854=EDGE_LOOP('',(#7849,#7850,#7852,#7853));
++#7855=FACE_OUTER_BOUND('',#7854,.F.);
++#7856=ADVANCED_FACE('',(#7855),#7848,.F.);
++#7857=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
++#7858=DIRECTION('',(0.E0,1.E0,0.E0));
++#7859=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7860=AXIS2_PLACEMENT_3D('',#7857,#7858,#7859);
++#7861=PLANE('',#7860);
++#7862=ORIENTED_EDGE('',*,*,#7837,.F.);
++#7863=ORIENTED_EDGE('',*,*,#7851,.F.);
++#7864=EDGE_LOOP('',(#7862,#7863));
++#7865=FACE_OUTER_BOUND('',#7864,.F.);
++#7866=ADVANCED_FACE('',(#7865),#7861,.T.);
++#7867=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
++#7868=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7869=DIRECTION('',(1.E0,0.E0,0.E0));
++#7870=AXIS2_PLACEMENT_3D('',#7867,#7868,#7869);
++#7871=CYLINDRICAL_SURFACE('',#7870,1.E-1);
++#7872=ORIENTED_EDGE('',*,*,#6346,.F.);
++#7874=ORIENTED_EDGE('',*,*,#7873,.F.);
++#7876=ORIENTED_EDGE('',*,*,#7875,.T.);
++#7878=ORIENTED_EDGE('',*,*,#7877,.T.);
++#7879=EDGE_LOOP('',(#7872,#7874,#7876,#7878));
++#7880=FACE_OUTER_BOUND('',#7879,.F.);
++#7881=ADVANCED_FACE('',(#7880),#7871,.F.);
++#7882=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
++#7883=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7884=DIRECTION('',(1.E0,0.E0,0.E0));
++#7885=AXIS2_PLACEMENT_3D('',#7882,#7883,#7884);
++#7886=CYLINDRICAL_SURFACE('',#7885,1.E-1);
++#7887=ORIENTED_EDGE('',*,*,#6348,.F.);
++#7888=ORIENTED_EDGE('',*,*,#7877,.F.);
++#7890=ORIENTED_EDGE('',*,*,#7889,.F.);
++#7891=ORIENTED_EDGE('',*,*,#7873,.T.);
++#7892=EDGE_LOOP('',(#7887,#7888,#7890,#7891));
++#7893=FACE_OUTER_BOUND('',#7892,.F.);
++#7894=ADVANCED_FACE('',(#7893),#7886,.F.);
++#7895=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
++#7896=DIRECTION('',(0.E0,1.E0,0.E0));
++#7897=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7898=AXIS2_PLACEMENT_3D('',#7895,#7896,#7897);
++#7899=CONICAL_SURFACE('',#7898,7.288815195685E-2,6.E1);
++#7901=ORIENTED_EDGE('',*,*,#7900,.F.);
++#7903=ORIENTED_EDGE('',*,*,#7902,.T.);
++#7904=ORIENTED_EDGE('',*,*,#7889,.T.);
++#7905=EDGE_LOOP('',(#7901,#7903,#7904));
++#7906=FACE_OUTER_BOUND('',#7905,.F.);
++#7907=ADVANCED_FACE('',(#7906),#7899,.F.);
++#7908=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
++#7909=DIRECTION('',(0.E0,1.E0,0.E0));
++#7910=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7911=AXIS2_PLACEMENT_3D('',#7908,#7909,#7910);
++#7912=CONICAL_SURFACE('',#7911,7.288815195685E-2,6.E1);
++#7913=ORIENTED_EDGE('',*,*,#7900,.T.);
++#7914=ORIENTED_EDGE('',*,*,#7875,.F.);
++#7915=ORIENTED_EDGE('',*,*,#7902,.F.);
++#7916=EDGE_LOOP('',(#7913,#7914,#7915));
++#7917=FACE_OUTER_BOUND('',#7916,.F.);
++#7918=ADVANCED_FACE('',(#7917),#7912,.F.);
++#7919=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
++#7920=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7921=DIRECTION('',(1.E0,0.E0,0.E0));
++#7922=AXIS2_PLACEMENT_3D('',#7919,#7920,#7921);
++#7923=CYLINDRICAL_SURFACE('',#7922,1.E-1);
++#7924=ORIENTED_EDGE('',*,*,#6352,.F.);
++#7926=ORIENTED_EDGE('',*,*,#7925,.F.);
++#7928=ORIENTED_EDGE('',*,*,#7927,.T.);
++#7930=ORIENTED_EDGE('',*,*,#7929,.T.);
++#7931=EDGE_LOOP('',(#7924,#7926,#7928,#7930));
++#7932=FACE_OUTER_BOUND('',#7931,.F.);
++#7933=ADVANCED_FACE('',(#7932),#7923,.F.);
++#7934=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
++#7935=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7936=DIRECTION('',(1.E0,0.E0,0.E0));
++#7937=AXIS2_PLACEMENT_3D('',#7934,#7935,#7936);
++#7938=CYLINDRICAL_SURFACE('',#7937,1.E-1);
++#7939=ORIENTED_EDGE('',*,*,#6354,.F.);
++#7940=ORIENTED_EDGE('',*,*,#7929,.F.);
++#7942=ORIENTED_EDGE('',*,*,#7941,.F.);
++#7943=ORIENTED_EDGE('',*,*,#7925,.T.);
++#7944=EDGE_LOOP('',(#7939,#7940,#7942,#7943));
++#7945=FACE_OUTER_BOUND('',#7944,.F.);
++#7946=ADVANCED_FACE('',(#7945),#7938,.F.);
++#7947=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
++#7948=DIRECTION('',(0.E0,1.E0,0.E0));
++#7949=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7950=AXIS2_PLACEMENT_3D('',#7947,#7948,#7949);
++#7951=CONICAL_SURFACE('',#7950,7.288815195685E-2,6.E1);
++#7953=ORIENTED_EDGE('',*,*,#7952,.F.);
++#7955=ORIENTED_EDGE('',*,*,#7954,.T.);
++#7956=ORIENTED_EDGE('',*,*,#7941,.T.);
++#7957=EDGE_LOOP('',(#7953,#7955,#7956));
++#7958=FACE_OUTER_BOUND('',#7957,.F.);
++#7959=ADVANCED_FACE('',(#7958),#7951,.F.);
++#7960=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
++#7961=DIRECTION('',(0.E0,1.E0,0.E0));
++#7962=DIRECTION('',(-1.E0,0.E0,0.E0));
++#7963=AXIS2_PLACEMENT_3D('',#7960,#7961,#7962);
++#7964=CONICAL_SURFACE('',#7963,7.288815195685E-2,6.E1);
++#7965=ORIENTED_EDGE('',*,*,#7952,.T.);
++#7966=ORIENTED_EDGE('',*,*,#7927,.F.);
++#7967=ORIENTED_EDGE('',*,*,#7954,.F.);
++#7968=EDGE_LOOP('',(#7965,#7966,#7967));
++#7969=FACE_OUTER_BOUND('',#7968,.F.);
++#7970=ADVANCED_FACE('',(#7969),#7964,.F.);
++#7971=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
++#7972=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7973=DIRECTION('',(1.E0,0.E0,0.E0));
++#7974=AXIS2_PLACEMENT_3D('',#7971,#7972,#7973);
++#7975=CYLINDRICAL_SURFACE('',#7974,2.575E-1);
++#7976=ORIENTED_EDGE('',*,*,#6248,.T.);
++#7978=ORIENTED_EDGE('',*,*,#7977,.T.);
++#7980=ORIENTED_EDGE('',*,*,#7979,.F.);
++#7982=ORIENTED_EDGE('',*,*,#7981,.F.);
++#7983=EDGE_LOOP('',(#7976,#7978,#7980,#7982));
++#7984=FACE_OUTER_BOUND('',#7983,.F.);
++#7985=ADVANCED_FACE('',(#7984),#7975,.F.);
++#7986=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
++#7987=DIRECTION('',(0.E0,-1.E0,0.E0));
++#7988=DIRECTION('',(1.E0,0.E0,0.E0));
++#7989=AXIS2_PLACEMENT_3D('',#7986,#7987,#7988);
++#7990=CYLINDRICAL_SURFACE('',#7989,2.575E-1);
++#7991=ORIENTED_EDGE('',*,*,#6250,.T.);
++#7992=ORIENTED_EDGE('',*,*,#7981,.T.);
++#7994=ORIENTED_EDGE('',*,*,#7993,.F.);
++#7995=ORIENTED_EDGE('',*,*,#7977,.F.);
++#7996=EDGE_LOOP('',(#7991,#7992,#7994,#7995));
++#7997=FACE_OUTER_BOUND('',#7996,.F.);
++#7998=ADVANCED_FACE('',(#7997),#7990,.F.);
++#7999=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
++#8000=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8001=DIRECTION('',(1.E0,0.E0,0.E0));
++#8002=AXIS2_PLACEMENT_3D('',#7999,#8000,#8001);
++#8003=PLANE('',#8002);
++#8004=ORIENTED_EDGE('',*,*,#7979,.T.);
++#8005=ORIENTED_EDGE('',*,*,#7993,.T.);
++#8006=EDGE_LOOP('',(#8004,#8005));
++#8007=FACE_OUTER_BOUND('',#8006,.F.);
++#8009=ORIENTED_EDGE('',*,*,#8008,.F.);
++#8011=ORIENTED_EDGE('',*,*,#8010,.F.);
++#8012=EDGE_LOOP('',(#8009,#8011));
++#8013=FACE_BOUND('',#8012,.F.);
++#8014=ADVANCED_FACE('',(#8007,#8013),#8003,.F.);
++#8015=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
++#8016=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8017=DIRECTION('',(1.E0,0.E0,0.E0));
++#8018=AXIS2_PLACEMENT_3D('',#8015,#8016,#8017);
++#8019=CYLINDRICAL_SURFACE('',#8018,1.925E-1);
++#8020=ORIENTED_EDGE('',*,*,#8008,.T.);
++#8022=ORIENTED_EDGE('',*,*,#8021,.T.);
++#8023=ORIENTED_EDGE('',*,*,#5626,.F.);
++#8025=ORIENTED_EDGE('',*,*,#8024,.F.);
++#8026=EDGE_LOOP('',(#8020,#8022,#8023,#8025));
++#8027=FACE_OUTER_BOUND('',#8026,.F.);
++#8028=ADVANCED_FACE('',(#8027),#8019,.F.);
++#8029=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
++#8030=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8031=DIRECTION('',(1.E0,0.E0,0.E0));
++#8032=AXIS2_PLACEMENT_3D('',#8029,#8030,#8031);
++#8033=CYLINDRICAL_SURFACE('',#8032,1.925E-1);
++#8034=ORIENTED_EDGE('',*,*,#8010,.T.);
++#8035=ORIENTED_EDGE('',*,*,#8024,.T.);
++#8036=ORIENTED_EDGE('',*,*,#5628,.F.);
++#8037=ORIENTED_EDGE('',*,*,#8021,.F.);
++#8038=EDGE_LOOP('',(#8034,#8035,#8036,#8037));
++#8039=FACE_OUTER_BOUND('',#8038,.F.);
++#8040=ADVANCED_FACE('',(#8039),#8033,.F.);
++#8041=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
++#8042=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8043=DIRECTION('',(1.E0,0.E0,0.E0));
++#8044=AXIS2_PLACEMENT_3D('',#8041,#8042,#8043);
++#8045=CYLINDRICAL_SURFACE('',#8044,2.575E-1);
++#8046=ORIENTED_EDGE('',*,*,#6358,.T.);
++#8048=ORIENTED_EDGE('',*,*,#8047,.T.);
++#8050=ORIENTED_EDGE('',*,*,#8049,.F.);
++#8052=ORIENTED_EDGE('',*,*,#8051,.F.);
++#8053=EDGE_LOOP('',(#8046,#8048,#8050,#8052));
++#8054=FACE_OUTER_BOUND('',#8053,.F.);
++#8055=ADVANCED_FACE('',(#8054),#8045,.F.);
++#8056=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
++#8057=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8058=DIRECTION('',(1.E0,0.E0,0.E0));
++#8059=AXIS2_PLACEMENT_3D('',#8056,#8057,#8058);
++#8060=CYLINDRICAL_SURFACE('',#8059,2.575E-1);
++#8061=ORIENTED_EDGE('',*,*,#6360,.T.);
++#8062=ORIENTED_EDGE('',*,*,#8051,.T.);
++#8064=ORIENTED_EDGE('',*,*,#8063,.F.);
++#8065=ORIENTED_EDGE('',*,*,#8047,.F.);
++#8066=EDGE_LOOP('',(#8061,#8062,#8064,#8065));
++#8067=FACE_OUTER_BOUND('',#8066,.F.);
++#8068=ADVANCED_FACE('',(#8067),#8060,.F.);
++#8069=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
++#8070=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8071=DIRECTION('',(1.E0,0.E0,0.E0));
++#8072=AXIS2_PLACEMENT_3D('',#8069,#8070,#8071);
++#8073=PLANE('',#8072);
++#8074=ORIENTED_EDGE('',*,*,#8049,.T.);
++#8075=ORIENTED_EDGE('',*,*,#8063,.T.);
++#8076=EDGE_LOOP('',(#8074,#8075));
++#8077=FACE_OUTER_BOUND('',#8076,.F.);
++#8079=ORIENTED_EDGE('',*,*,#8078,.F.);
++#8081=ORIENTED_EDGE('',*,*,#8080,.F.);
++#8082=EDGE_LOOP('',(#8079,#8081));
++#8083=FACE_BOUND('',#8082,.F.);
++#8084=ADVANCED_FACE('',(#8077,#8083),#8073,.F.);
++#8085=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
++#8086=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8087=DIRECTION('',(1.E0,0.E0,0.E0));
++#8088=AXIS2_PLACEMENT_3D('',#8085,#8086,#8087);
++#8089=CYLINDRICAL_SURFACE('',#8088,1.925E-1);
++#8090=ORIENTED_EDGE('',*,*,#8078,.T.);
++#8092=ORIENTED_EDGE('',*,*,#8091,.T.);
++#8093=ORIENTED_EDGE('',*,*,#5614,.F.);
++#8095=ORIENTED_EDGE('',*,*,#8094,.F.);
++#8096=EDGE_LOOP('',(#8090,#8092,#8093,#8095));
++#8097=FACE_OUTER_BOUND('',#8096,.F.);
++#8098=ADVANCED_FACE('',(#8097),#8089,.F.);
++#8099=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
++#8100=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8101=DIRECTION('',(1.E0,0.E0,0.E0));
++#8102=AXIS2_PLACEMENT_3D('',#8099,#8100,#8101);
++#8103=CYLINDRICAL_SURFACE('',#8102,1.925E-1);
++#8104=ORIENTED_EDGE('',*,*,#8080,.T.);
++#8105=ORIENTED_EDGE('',*,*,#8094,.T.);
++#8106=ORIENTED_EDGE('',*,*,#5616,.F.);
++#8107=ORIENTED_EDGE('',*,*,#8091,.F.);
++#8108=EDGE_LOOP('',(#8104,#8105,#8106,#8107));
++#8109=FACE_OUTER_BOUND('',#8108,.F.);
++#8110=ADVANCED_FACE('',(#8109),#8103,.F.);
++#8111=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
++#8112=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8113=DIRECTION('',(1.E0,0.E0,0.E0));
++#8114=AXIS2_PLACEMENT_3D('',#8111,#8112,#8113);
++#8115=CYLINDRICAL_SURFACE('',#8114,2.575E-1);
++#8116=ORIENTED_EDGE('',*,*,#6364,.T.);
++#8118=ORIENTED_EDGE('',*,*,#8117,.T.);
++#8120=ORIENTED_EDGE('',*,*,#8119,.F.);
++#8122=ORIENTED_EDGE('',*,*,#8121,.F.);
++#8123=EDGE_LOOP('',(#8116,#8118,#8120,#8122));
++#8124=FACE_OUTER_BOUND('',#8123,.F.);
++#8125=ADVANCED_FACE('',(#8124),#8115,.F.);
++#8126=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
++#8127=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8128=DIRECTION('',(1.E0,0.E0,0.E0));
++#8129=AXIS2_PLACEMENT_3D('',#8126,#8127,#8128);
++#8130=CYLINDRICAL_SURFACE('',#8129,2.575E-1);
++#8131=ORIENTED_EDGE('',*,*,#6366,.T.);
++#8132=ORIENTED_EDGE('',*,*,#8121,.T.);
++#8134=ORIENTED_EDGE('',*,*,#8133,.F.);
++#8135=ORIENTED_EDGE('',*,*,#8117,.F.);
++#8136=EDGE_LOOP('',(#8131,#8132,#8134,#8135));
++#8137=FACE_OUTER_BOUND('',#8136,.F.);
++#8138=ADVANCED_FACE('',(#8137),#8130,.F.);
++#8139=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
++#8140=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8141=DIRECTION('',(1.E0,0.E0,0.E0));
++#8142=AXIS2_PLACEMENT_3D('',#8139,#8140,#8141);
++#8143=PLANE('',#8142);
++#8144=ORIENTED_EDGE('',*,*,#8119,.T.);
++#8145=ORIENTED_EDGE('',*,*,#8133,.T.);
++#8146=EDGE_LOOP('',(#8144,#8145));
++#8147=FACE_OUTER_BOUND('',#8146,.F.);
++#8149=ORIENTED_EDGE('',*,*,#8148,.F.);
++#8151=ORIENTED_EDGE('',*,*,#8150,.F.);
++#8152=EDGE_LOOP('',(#8149,#8151));
++#8153=FACE_BOUND('',#8152,.F.);
++#8154=ADVANCED_FACE('',(#8147,#8153),#8143,.F.);
++#8155=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
++#8156=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8157=DIRECTION('',(1.E0,0.E0,0.E0));
++#8158=AXIS2_PLACEMENT_3D('',#8155,#8156,#8157);
++#8159=CYLINDRICAL_SURFACE('',#8158,1.925E-1);
++#8160=ORIENTED_EDGE('',*,*,#8148,.T.);
++#8162=ORIENTED_EDGE('',*,*,#8161,.T.);
++#8163=ORIENTED_EDGE('',*,*,#5608,.F.);
++#8165=ORIENTED_EDGE('',*,*,#8164,.F.);
++#8166=EDGE_LOOP('',(#8160,#8162,#8163,#8165));
++#8167=FACE_OUTER_BOUND('',#8166,.F.);
++#8168=ADVANCED_FACE('',(#8167),#8159,.F.);
++#8169=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
++#8170=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8171=DIRECTION('',(1.E0,0.E0,0.E0));
++#8172=AXIS2_PLACEMENT_3D('',#8169,#8170,#8171);
++#8173=CYLINDRICAL_SURFACE('',#8172,1.925E-1);
++#8174=ORIENTED_EDGE('',*,*,#8150,.T.);
++#8175=ORIENTED_EDGE('',*,*,#8164,.T.);
++#8176=ORIENTED_EDGE('',*,*,#5610,.F.);
++#8177=ORIENTED_EDGE('',*,*,#8161,.F.);
++#8178=EDGE_LOOP('',(#8174,#8175,#8176,#8177));
++#8179=FACE_OUTER_BOUND('',#8178,.F.);
++#8180=ADVANCED_FACE('',(#8179),#8173,.F.);
++#8181=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
++#8182=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8183=DIRECTION('',(1.E0,0.E0,0.E0));
++#8184=AXIS2_PLACEMENT_3D('',#8181,#8182,#8183);
++#8185=CYLINDRICAL_SURFACE('',#8184,2.575E-1);
++#8186=ORIENTED_EDGE('',*,*,#6254,.T.);
++#8188=ORIENTED_EDGE('',*,*,#8187,.T.);
++#8190=ORIENTED_EDGE('',*,*,#8189,.F.);
++#8192=ORIENTED_EDGE('',*,*,#8191,.F.);
++#8193=EDGE_LOOP('',(#8186,#8188,#8190,#8192));
++#8194=FACE_OUTER_BOUND('',#8193,.F.);
++#8195=ADVANCED_FACE('',(#8194),#8185,.F.);
++#8196=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
++#8197=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8198=DIRECTION('',(1.E0,0.E0,0.E0));
++#8199=AXIS2_PLACEMENT_3D('',#8196,#8197,#8198);
++#8200=CYLINDRICAL_SURFACE('',#8199,2.575E-1);
++#8201=ORIENTED_EDGE('',*,*,#6256,.T.);
++#8202=ORIENTED_EDGE('',*,*,#8191,.T.);
++#8204=ORIENTED_EDGE('',*,*,#8203,.F.);
++#8205=ORIENTED_EDGE('',*,*,#8187,.F.);
++#8206=EDGE_LOOP('',(#8201,#8202,#8204,#8205));
++#8207=FACE_OUTER_BOUND('',#8206,.F.);
++#8208=ADVANCED_FACE('',(#8207),#8200,.F.);
++#8209=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
++#8210=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8211=DIRECTION('',(1.E0,0.E0,0.E0));
++#8212=AXIS2_PLACEMENT_3D('',#8209,#8210,#8211);
++#8213=PLANE('',#8212);
++#8214=ORIENTED_EDGE('',*,*,#8189,.T.);
++#8215=ORIENTED_EDGE('',*,*,#8203,.T.);
++#8216=EDGE_LOOP('',(#8214,#8215));
++#8217=FACE_OUTER_BOUND('',#8216,.F.);
++#8219=ORIENTED_EDGE('',*,*,#8218,.F.);
++#8221=ORIENTED_EDGE('',*,*,#8220,.F.);
++#8222=EDGE_LOOP('',(#8219,#8221));
++#8223=FACE_BOUND('',#8222,.F.);
++#8224=ADVANCED_FACE('',(#8217,#8223),#8213,.F.);
++#8225=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
++#8226=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8227=DIRECTION('',(1.E0,0.E0,0.E0));
++#8228=AXIS2_PLACEMENT_3D('',#8225,#8226,#8227);
++#8229=CYLINDRICAL_SURFACE('',#8228,1.925E-1);
++#8230=ORIENTED_EDGE('',*,*,#8218,.T.);
++#8232=ORIENTED_EDGE('',*,*,#8231,.T.);
++#8233=ORIENTED_EDGE('',*,*,#5602,.F.);
++#8235=ORIENTED_EDGE('',*,*,#8234,.F.);
++#8236=EDGE_LOOP('',(#8230,#8232,#8233,#8235));
++#8237=FACE_OUTER_BOUND('',#8236,.F.);
++#8238=ADVANCED_FACE('',(#8237),#8229,.F.);
++#8239=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
++#8240=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8241=DIRECTION('',(1.E0,0.E0,0.E0));
++#8242=AXIS2_PLACEMENT_3D('',#8239,#8240,#8241);
++#8243=CYLINDRICAL_SURFACE('',#8242,1.925E-1);
++#8244=ORIENTED_EDGE('',*,*,#8220,.T.);
++#8245=ORIENTED_EDGE('',*,*,#8234,.T.);
++#8246=ORIENTED_EDGE('',*,*,#5604,.F.);
++#8247=ORIENTED_EDGE('',*,*,#8231,.F.);
++#8248=EDGE_LOOP('',(#8244,#8245,#8246,#8247));
++#8249=FACE_OUTER_BOUND('',#8248,.F.);
++#8250=ADVANCED_FACE('',(#8249),#8243,.F.);
++#8251=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
++#8252=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8253=DIRECTION('',(1.E0,0.E0,0.E0));
++#8254=AXIS2_PLACEMENT_3D('',#8251,#8252,#8253);
++#8255=CYLINDRICAL_SURFACE('',#8254,2.575E-1);
++#8256=ORIENTED_EDGE('',*,*,#6370,.T.);
++#8258=ORIENTED_EDGE('',*,*,#8257,.T.);
++#8260=ORIENTED_EDGE('',*,*,#8259,.F.);
++#8262=ORIENTED_EDGE('',*,*,#8261,.F.);
++#8263=EDGE_LOOP('',(#8256,#8258,#8260,#8262));
++#8264=FACE_OUTER_BOUND('',#8263,.F.);
++#8265=ADVANCED_FACE('',(#8264),#8255,.F.);
++#8266=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
++#8267=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8268=DIRECTION('',(1.E0,0.E0,0.E0));
++#8269=AXIS2_PLACEMENT_3D('',#8266,#8267,#8268);
++#8270=CYLINDRICAL_SURFACE('',#8269,2.575E-1);
++#8271=ORIENTED_EDGE('',*,*,#6372,.T.);
++#8272=ORIENTED_EDGE('',*,*,#8261,.T.);
++#8274=ORIENTED_EDGE('',*,*,#8273,.F.);
++#8275=ORIENTED_EDGE('',*,*,#8257,.F.);
++#8276=EDGE_LOOP('',(#8271,#8272,#8274,#8275));
++#8277=FACE_OUTER_BOUND('',#8276,.F.);
++#8278=ADVANCED_FACE('',(#8277),#8270,.F.);
++#8279=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
++#8280=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8281=DIRECTION('',(1.E0,0.E0,0.E0));
++#8282=AXIS2_PLACEMENT_3D('',#8279,#8280,#8281);
++#8283=PLANE('',#8282);
++#8284=ORIENTED_EDGE('',*,*,#8259,.T.);
++#8285=ORIENTED_EDGE('',*,*,#8273,.T.);
++#8286=EDGE_LOOP('',(#8284,#8285));
++#8287=FACE_OUTER_BOUND('',#8286,.F.);
++#8289=ORIENTED_EDGE('',*,*,#8288,.F.);
++#8291=ORIENTED_EDGE('',*,*,#8290,.F.);
++#8292=EDGE_LOOP('',(#8289,#8291));
++#8293=FACE_BOUND('',#8292,.F.);
++#8294=ADVANCED_FACE('',(#8287,#8293),#8283,.F.);
++#8295=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
++#8296=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8297=DIRECTION('',(1.E0,0.E0,0.E0));
++#8298=AXIS2_PLACEMENT_3D('',#8295,#8296,#8297);
++#8299=CYLINDRICAL_SURFACE('',#8298,1.925E-1);
++#8300=ORIENTED_EDGE('',*,*,#8288,.T.);
++#8302=ORIENTED_EDGE('',*,*,#8301,.T.);
++#8303=ORIENTED_EDGE('',*,*,#5590,.F.);
++#8305=ORIENTED_EDGE('',*,*,#8304,.F.);
++#8306=EDGE_LOOP('',(#8300,#8302,#8303,#8305));
++#8307=FACE_OUTER_BOUND('',#8306,.F.);
++#8308=ADVANCED_FACE('',(#8307),#8299,.F.);
++#8309=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
++#8310=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8311=DIRECTION('',(1.E0,0.E0,0.E0));
++#8312=AXIS2_PLACEMENT_3D('',#8309,#8310,#8311);
++#8313=CYLINDRICAL_SURFACE('',#8312,1.925E-1);
++#8314=ORIENTED_EDGE('',*,*,#8290,.T.);
++#8315=ORIENTED_EDGE('',*,*,#8304,.T.);
++#8316=ORIENTED_EDGE('',*,*,#5592,.F.);
++#8317=ORIENTED_EDGE('',*,*,#8301,.F.);
++#8318=EDGE_LOOP('',(#8314,#8315,#8316,#8317));
++#8319=FACE_OUTER_BOUND('',#8318,.F.);
++#8320=ADVANCED_FACE('',(#8319),#8313,.F.);
++#8321=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
++#8322=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8323=DIRECTION('',(1.E0,0.E0,0.E0));
++#8324=AXIS2_PLACEMENT_3D('',#8321,#8322,#8323);
++#8325=CYLINDRICAL_SURFACE('',#8324,2.575E-1);
++#8326=ORIENTED_EDGE('',*,*,#6376,.T.);
++#8328=ORIENTED_EDGE('',*,*,#8327,.T.);
++#8330=ORIENTED_EDGE('',*,*,#8329,.F.);
++#8332=ORIENTED_EDGE('',*,*,#8331,.F.);
++#8333=EDGE_LOOP('',(#8326,#8328,#8330,#8332));
++#8334=FACE_OUTER_BOUND('',#8333,.F.);
++#8335=ADVANCED_FACE('',(#8334),#8325,.F.);
++#8336=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
++#8337=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8338=DIRECTION('',(1.E0,0.E0,0.E0));
++#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338);
++#8340=CYLINDRICAL_SURFACE('',#8339,2.575E-1);
++#8341=ORIENTED_EDGE('',*,*,#6378,.T.);
++#8342=ORIENTED_EDGE('',*,*,#8331,.T.);
++#8344=ORIENTED_EDGE('',*,*,#8343,.F.);
++#8345=ORIENTED_EDGE('',*,*,#8327,.F.);
++#8346=EDGE_LOOP('',(#8341,#8342,#8344,#8345));
++#8347=FACE_OUTER_BOUND('',#8346,.F.);
++#8348=ADVANCED_FACE('',(#8347),#8340,.F.);
++#8349=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
++#8350=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8351=DIRECTION('',(1.E0,0.E0,0.E0));
++#8352=AXIS2_PLACEMENT_3D('',#8349,#8350,#8351);
++#8353=PLANE('',#8352);
++#8354=ORIENTED_EDGE('',*,*,#8329,.T.);
++#8355=ORIENTED_EDGE('',*,*,#8343,.T.);
++#8356=EDGE_LOOP('',(#8354,#8355));
++#8357=FACE_OUTER_BOUND('',#8356,.F.);
++#8359=ORIENTED_EDGE('',*,*,#8358,.F.);
++#8361=ORIENTED_EDGE('',*,*,#8360,.F.);
++#8362=EDGE_LOOP('',(#8359,#8361));
++#8363=FACE_BOUND('',#8362,.F.);
++#8364=ADVANCED_FACE('',(#8357,#8363),#8353,.F.);
++#8365=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
++#8366=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8367=DIRECTION('',(1.E0,0.E0,0.E0));
++#8368=AXIS2_PLACEMENT_3D('',#8365,#8366,#8367);
++#8369=CYLINDRICAL_SURFACE('',#8368,1.925E-1);
++#8370=ORIENTED_EDGE('',*,*,#8358,.T.);
++#8372=ORIENTED_EDGE('',*,*,#8371,.T.);
++#8373=ORIENTED_EDGE('',*,*,#5584,.F.);
++#8375=ORIENTED_EDGE('',*,*,#8374,.F.);
++#8376=EDGE_LOOP('',(#8370,#8372,#8373,#8375));
++#8377=FACE_OUTER_BOUND('',#8376,.F.);
++#8378=ADVANCED_FACE('',(#8377),#8369,.F.);
++#8379=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
++#8380=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8381=DIRECTION('',(1.E0,0.E0,0.E0));
++#8382=AXIS2_PLACEMENT_3D('',#8379,#8380,#8381);
++#8383=CYLINDRICAL_SURFACE('',#8382,1.925E-1);
++#8384=ORIENTED_EDGE('',*,*,#8360,.T.);
++#8385=ORIENTED_EDGE('',*,*,#8374,.T.);
++#8386=ORIENTED_EDGE('',*,*,#5586,.F.);
++#8387=ORIENTED_EDGE('',*,*,#8371,.F.);
++#8388=EDGE_LOOP('',(#8384,#8385,#8386,#8387));
++#8389=FACE_OUTER_BOUND('',#8388,.F.);
++#8390=ADVANCED_FACE('',(#8389),#8383,.F.);
++#8391=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
++#8392=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8393=DIRECTION('',(1.E0,0.E0,0.E0));
++#8394=AXIS2_PLACEMENT_3D('',#8391,#8392,#8393);
++#8395=CYLINDRICAL_SURFACE('',#8394,2.56E-1);
++#8396=ORIENTED_EDGE('',*,*,#6260,.T.);
++#8398=ORIENTED_EDGE('',*,*,#8397,.T.);
++#8400=ORIENTED_EDGE('',*,*,#8399,.F.);
++#8402=ORIENTED_EDGE('',*,*,#8401,.F.);
++#8403=EDGE_LOOP('',(#8396,#8398,#8400,#8402));
++#8404=FACE_OUTER_BOUND('',#8403,.F.);
++#8405=ADVANCED_FACE('',(#8404),#8395,.F.);
++#8406=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
++#8407=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8408=DIRECTION('',(1.E0,0.E0,0.E0));
++#8409=AXIS2_PLACEMENT_3D('',#8406,#8407,#8408);
++#8410=CYLINDRICAL_SURFACE('',#8409,2.56E-1);
++#8411=ORIENTED_EDGE('',*,*,#6262,.T.);
++#8412=ORIENTED_EDGE('',*,*,#8401,.T.);
++#8414=ORIENTED_EDGE('',*,*,#8413,.F.);
++#8415=ORIENTED_EDGE('',*,*,#8397,.F.);
++#8416=EDGE_LOOP('',(#8411,#8412,#8414,#8415));
++#8417=FACE_OUTER_BOUND('',#8416,.F.);
++#8418=ADVANCED_FACE('',(#8417),#8410,.F.);
++#8419=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
++#8420=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8421=DIRECTION('',(1.E0,0.E0,0.E0));
++#8422=AXIS2_PLACEMENT_3D('',#8419,#8420,#8421);
++#8423=PLANE('',#8422);
++#8424=ORIENTED_EDGE('',*,*,#8399,.T.);
++#8425=ORIENTED_EDGE('',*,*,#8413,.T.);
++#8426=EDGE_LOOP('',(#8424,#8425));
++#8427=FACE_OUTER_BOUND('',#8426,.F.);
++#8429=ORIENTED_EDGE('',*,*,#8428,.F.);
++#8431=ORIENTED_EDGE('',*,*,#8430,.F.);
++#8432=EDGE_LOOP('',(#8429,#8431));
++#8433=FACE_BOUND('',#8432,.F.);
++#8434=ADVANCED_FACE('',(#8427,#8433),#8423,.F.);
++#8435=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
++#8436=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8437=DIRECTION('',(1.E0,0.E0,0.E0));
++#8438=AXIS2_PLACEMENT_3D('',#8435,#8436,#8437);
++#8439=CYLINDRICAL_SURFACE('',#8438,1.925E-1);
++#8440=ORIENTED_EDGE('',*,*,#8428,.T.);
++#8442=ORIENTED_EDGE('',*,*,#8441,.T.);
++#8443=ORIENTED_EDGE('',*,*,#5632,.F.);
++#8445=ORIENTED_EDGE('',*,*,#8444,.F.);
++#8446=EDGE_LOOP('',(#8440,#8442,#8443,#8445));
++#8447=FACE_OUTER_BOUND('',#8446,.F.);
++#8448=ADVANCED_FACE('',(#8447),#8439,.F.);
++#8449=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
++#8450=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8451=DIRECTION('',(1.E0,0.E0,0.E0));
++#8452=AXIS2_PLACEMENT_3D('',#8449,#8450,#8451);
++#8453=CYLINDRICAL_SURFACE('',#8452,1.925E-1);
++#8454=ORIENTED_EDGE('',*,*,#8430,.T.);
++#8455=ORIENTED_EDGE('',*,*,#8444,.T.);
++#8456=ORIENTED_EDGE('',*,*,#5634,.F.);
++#8457=ORIENTED_EDGE('',*,*,#8441,.F.);
++#8458=EDGE_LOOP('',(#8454,#8455,#8456,#8457));
++#8459=FACE_OUTER_BOUND('',#8458,.F.);
++#8460=ADVANCED_FACE('',(#8459),#8453,.F.);
++#8461=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
++#8462=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8463=DIRECTION('',(1.E0,0.E0,0.E0));
++#8464=AXIS2_PLACEMENT_3D('',#8461,#8462,#8463);
++#8465=CYLINDRICAL_SURFACE('',#8464,2.56E-1);
++#8466=ORIENTED_EDGE('',*,*,#6266,.T.);
++#8468=ORIENTED_EDGE('',*,*,#8467,.T.);
++#8470=ORIENTED_EDGE('',*,*,#8469,.F.);
++#8472=ORIENTED_EDGE('',*,*,#8471,.F.);
++#8473=EDGE_LOOP('',(#8466,#8468,#8470,#8472));
++#8474=FACE_OUTER_BOUND('',#8473,.F.);
++#8475=ADVANCED_FACE('',(#8474),#8465,.F.);
++#8476=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
++#8477=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8478=DIRECTION('',(1.E0,0.E0,0.E0));
++#8479=AXIS2_PLACEMENT_3D('',#8476,#8477,#8478);
++#8480=CYLINDRICAL_SURFACE('',#8479,2.56E-1);
++#8481=ORIENTED_EDGE('',*,*,#6268,.T.);
++#8482=ORIENTED_EDGE('',*,*,#8471,.T.);
++#8484=ORIENTED_EDGE('',*,*,#8483,.F.);
++#8485=ORIENTED_EDGE('',*,*,#8467,.F.);
++#8486=EDGE_LOOP('',(#8481,#8482,#8484,#8485));
++#8487=FACE_OUTER_BOUND('',#8486,.F.);
++#8488=ADVANCED_FACE('',(#8487),#8480,.F.);
++#8489=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
++#8490=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8491=DIRECTION('',(1.E0,0.E0,0.E0));
++#8492=AXIS2_PLACEMENT_3D('',#8489,#8490,#8491);
++#8493=PLANE('',#8492);
++#8494=ORIENTED_EDGE('',*,*,#8469,.T.);
++#8495=ORIENTED_EDGE('',*,*,#8483,.T.);
++#8496=EDGE_LOOP('',(#8494,#8495));
++#8497=FACE_OUTER_BOUND('',#8496,.F.);
++#8499=ORIENTED_EDGE('',*,*,#8498,.F.);
++#8501=ORIENTED_EDGE('',*,*,#8500,.F.);
++#8502=EDGE_LOOP('',(#8499,#8501));
++#8503=FACE_BOUND('',#8502,.F.);
++#8504=ADVANCED_FACE('',(#8497,#8503),#8493,.F.);
++#8505=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
++#8506=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8507=DIRECTION('',(1.E0,0.E0,0.E0));
++#8508=AXIS2_PLACEMENT_3D('',#8505,#8506,#8507);
++#8509=CYLINDRICAL_SURFACE('',#8508,1.925E-1);
++#8510=ORIENTED_EDGE('',*,*,#8498,.T.);
++#8512=ORIENTED_EDGE('',*,*,#8511,.T.);
++#8513=ORIENTED_EDGE('',*,*,#5578,.F.);
++#8515=ORIENTED_EDGE('',*,*,#8514,.F.);
++#8516=EDGE_LOOP('',(#8510,#8512,#8513,#8515));
++#8517=FACE_OUTER_BOUND('',#8516,.F.);
++#8518=ADVANCED_FACE('',(#8517),#8509,.F.);
++#8519=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
++#8520=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8521=DIRECTION('',(1.E0,0.E0,0.E0));
++#8522=AXIS2_PLACEMENT_3D('',#8519,#8520,#8521);
++#8523=CYLINDRICAL_SURFACE('',#8522,1.925E-1);
++#8524=ORIENTED_EDGE('',*,*,#8500,.T.);
++#8525=ORIENTED_EDGE('',*,*,#8514,.T.);
++#8526=ORIENTED_EDGE('',*,*,#5580,.F.);
++#8527=ORIENTED_EDGE('',*,*,#8511,.F.);
++#8528=EDGE_LOOP('',(#8524,#8525,#8526,#8527));
++#8529=FACE_OUTER_BOUND('',#8528,.F.);
++#8530=ADVANCED_FACE('',(#8529),#8523,.F.);
++#8531=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
++#8532=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8533=DIRECTION('',(1.E0,0.E0,0.E0));
++#8534=AXIS2_PLACEMENT_3D('',#8531,#8532,#8533);
++#8535=CYLINDRICAL_SURFACE('',#8534,2.56E-1);
++#8536=ORIENTED_EDGE('',*,*,#6272,.T.);
++#8538=ORIENTED_EDGE('',*,*,#8537,.T.);
++#8540=ORIENTED_EDGE('',*,*,#8539,.F.);
++#8542=ORIENTED_EDGE('',*,*,#8541,.F.);
++#8543=EDGE_LOOP('',(#8536,#8538,#8540,#8542));
++#8544=FACE_OUTER_BOUND('',#8543,.F.);
++#8545=ADVANCED_FACE('',(#8544),#8535,.F.);
++#8546=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
++#8547=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8548=DIRECTION('',(1.E0,0.E0,0.E0));
++#8549=AXIS2_PLACEMENT_3D('',#8546,#8547,#8548);
++#8550=CYLINDRICAL_SURFACE('',#8549,2.56E-1);
++#8551=ORIENTED_EDGE('',*,*,#6274,.T.);
++#8552=ORIENTED_EDGE('',*,*,#8541,.T.);
++#8554=ORIENTED_EDGE('',*,*,#8553,.F.);
++#8555=ORIENTED_EDGE('',*,*,#8537,.F.);
++#8556=EDGE_LOOP('',(#8551,#8552,#8554,#8555));
++#8557=FACE_OUTER_BOUND('',#8556,.F.);
++#8558=ADVANCED_FACE('',(#8557),#8550,.F.);
++#8559=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
++#8560=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8561=DIRECTION('',(1.E0,0.E0,0.E0));
++#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561);
++#8563=PLANE('',#8562);
++#8564=ORIENTED_EDGE('',*,*,#8539,.T.);
++#8565=ORIENTED_EDGE('',*,*,#8553,.T.);
++#8566=EDGE_LOOP('',(#8564,#8565));
++#8567=FACE_OUTER_BOUND('',#8566,.F.);
++#8569=ORIENTED_EDGE('',*,*,#8568,.F.);
++#8571=ORIENTED_EDGE('',*,*,#8570,.F.);
++#8572=EDGE_LOOP('',(#8569,#8571));
++#8573=FACE_BOUND('',#8572,.F.);
++#8574=ADVANCED_FACE('',(#8567,#8573),#8563,.F.);
++#8575=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
++#8576=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8577=DIRECTION('',(1.E0,0.E0,0.E0));
++#8578=AXIS2_PLACEMENT_3D('',#8575,#8576,#8577);
++#8579=CYLINDRICAL_SURFACE('',#8578,1.925E-1);
++#8580=ORIENTED_EDGE('',*,*,#8568,.T.);
++#8582=ORIENTED_EDGE('',*,*,#8581,.T.);
++#8583=ORIENTED_EDGE('',*,*,#5560,.F.);
++#8585=ORIENTED_EDGE('',*,*,#8584,.F.);
++#8586=EDGE_LOOP('',(#8580,#8582,#8583,#8585));
++#8587=FACE_OUTER_BOUND('',#8586,.F.);
++#8588=ADVANCED_FACE('',(#8587),#8579,.F.);
++#8589=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
++#8590=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8591=DIRECTION('',(1.E0,0.E0,0.E0));
++#8592=AXIS2_PLACEMENT_3D('',#8589,#8590,#8591);
++#8593=CYLINDRICAL_SURFACE('',#8592,1.925E-1);
++#8594=ORIENTED_EDGE('',*,*,#8570,.T.);
++#8595=ORIENTED_EDGE('',*,*,#8584,.T.);
++#8596=ORIENTED_EDGE('',*,*,#5562,.F.);
++#8597=ORIENTED_EDGE('',*,*,#8581,.F.);
++#8598=EDGE_LOOP('',(#8594,#8595,#8596,#8597));
++#8599=FACE_OUTER_BOUND('',#8598,.F.);
++#8600=ADVANCED_FACE('',(#8599),#8593,.F.);
++#8601=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
++#8602=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8603=DIRECTION('',(1.E0,0.E0,0.E0));
++#8604=AXIS2_PLACEMENT_3D('',#8601,#8602,#8603);
++#8605=CYLINDRICAL_SURFACE('',#8604,2.56E-1);
++#8606=ORIENTED_EDGE('',*,*,#6382,.T.);
++#8608=ORIENTED_EDGE('',*,*,#8607,.T.);
++#8610=ORIENTED_EDGE('',*,*,#8609,.F.);
++#8612=ORIENTED_EDGE('',*,*,#8611,.F.);
++#8613=EDGE_LOOP('',(#8606,#8608,#8610,#8612));
++#8614=FACE_OUTER_BOUND('',#8613,.F.);
++#8615=ADVANCED_FACE('',(#8614),#8605,.F.);
++#8616=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
++#8617=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8618=DIRECTION('',(1.E0,0.E0,0.E0));
++#8619=AXIS2_PLACEMENT_3D('',#8616,#8617,#8618);
++#8620=CYLINDRICAL_SURFACE('',#8619,2.56E-1);
++#8621=ORIENTED_EDGE('',*,*,#6384,.T.);
++#8622=ORIENTED_EDGE('',*,*,#8611,.T.);
++#8624=ORIENTED_EDGE('',*,*,#8623,.F.);
++#8625=ORIENTED_EDGE('',*,*,#8607,.F.);
++#8626=EDGE_LOOP('',(#8621,#8622,#8624,#8625));
++#8627=FACE_OUTER_BOUND('',#8626,.F.);
++#8628=ADVANCED_FACE('',(#8627),#8620,.F.);
++#8629=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
++#8630=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8631=DIRECTION('',(1.E0,0.E0,0.E0));
++#8632=AXIS2_PLACEMENT_3D('',#8629,#8630,#8631);
++#8633=PLANE('',#8632);
++#8634=ORIENTED_EDGE('',*,*,#8609,.T.);
++#8635=ORIENTED_EDGE('',*,*,#8623,.T.);
++#8636=EDGE_LOOP('',(#8634,#8635));
++#8637=FACE_OUTER_BOUND('',#8636,.F.);
++#8639=ORIENTED_EDGE('',*,*,#8638,.F.);
++#8641=ORIENTED_EDGE('',*,*,#8640,.F.);
++#8642=EDGE_LOOP('',(#8639,#8641));
++#8643=FACE_BOUND('',#8642,.F.);
++#8644=ADVANCED_FACE('',(#8637,#8643),#8633,.F.);
++#8645=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
++#8646=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8647=DIRECTION('',(1.E0,0.E0,0.E0));
++#8648=AXIS2_PLACEMENT_3D('',#8645,#8646,#8647);
++#8649=CYLINDRICAL_SURFACE('',#8648,1.925E-1);
++#8650=ORIENTED_EDGE('',*,*,#8638,.T.);
++#8652=ORIENTED_EDGE('',*,*,#8651,.T.);
++#8653=ORIENTED_EDGE('',*,*,#5572,.F.);
++#8655=ORIENTED_EDGE('',*,*,#8654,.F.);
++#8656=EDGE_LOOP('',(#8650,#8652,#8653,#8655));
++#8657=FACE_OUTER_BOUND('',#8656,.F.);
++#8658=ADVANCED_FACE('',(#8657),#8649,.F.);
++#8659=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
++#8660=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8661=DIRECTION('',(1.E0,0.E0,0.E0));
++#8662=AXIS2_PLACEMENT_3D('',#8659,#8660,#8661);
++#8663=CYLINDRICAL_SURFACE('',#8662,1.925E-1);
++#8664=ORIENTED_EDGE('',*,*,#8640,.T.);
++#8665=ORIENTED_EDGE('',*,*,#8654,.T.);
++#8666=ORIENTED_EDGE('',*,*,#5574,.F.);
++#8667=ORIENTED_EDGE('',*,*,#8651,.F.);
++#8668=EDGE_LOOP('',(#8664,#8665,#8666,#8667));
++#8669=FACE_OUTER_BOUND('',#8668,.F.);
++#8670=ADVANCED_FACE('',(#8669),#8663,.F.);
++#8671=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
++#8672=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8673=DIRECTION('',(1.E0,0.E0,0.E0));
++#8674=AXIS2_PLACEMENT_3D('',#8671,#8672,#8673);
++#8675=CYLINDRICAL_SURFACE('',#8674,2.56E-1);
++#8676=ORIENTED_EDGE('',*,*,#6388,.T.);
++#8678=ORIENTED_EDGE('',*,*,#8677,.T.);
++#8680=ORIENTED_EDGE('',*,*,#8679,.F.);
++#8682=ORIENTED_EDGE('',*,*,#8681,.F.);
++#8683=EDGE_LOOP('',(#8676,#8678,#8680,#8682));
++#8684=FACE_OUTER_BOUND('',#8683,.F.);
++#8685=ADVANCED_FACE('',(#8684),#8675,.F.);
++#8686=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
++#8687=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8688=DIRECTION('',(1.E0,0.E0,0.E0));
++#8689=AXIS2_PLACEMENT_3D('',#8686,#8687,#8688);
++#8690=CYLINDRICAL_SURFACE('',#8689,2.56E-1);
++#8691=ORIENTED_EDGE('',*,*,#6390,.T.);
++#8692=ORIENTED_EDGE('',*,*,#8681,.T.);
++#8694=ORIENTED_EDGE('',*,*,#8693,.F.);
++#8695=ORIENTED_EDGE('',*,*,#8677,.F.);
++#8696=EDGE_LOOP('',(#8691,#8692,#8694,#8695));
++#8697=FACE_OUTER_BOUND('',#8696,.F.);
++#8698=ADVANCED_FACE('',(#8697),#8690,.F.);
++#8699=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
++#8700=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8701=DIRECTION('',(1.E0,0.E0,0.E0));
++#8702=AXIS2_PLACEMENT_3D('',#8699,#8700,#8701);
++#8703=PLANE('',#8702);
++#8704=ORIENTED_EDGE('',*,*,#8679,.T.);
++#8705=ORIENTED_EDGE('',*,*,#8693,.T.);
++#8706=EDGE_LOOP('',(#8704,#8705));
++#8707=FACE_OUTER_BOUND('',#8706,.F.);
++#8709=ORIENTED_EDGE('',*,*,#8708,.F.);
++#8711=ORIENTED_EDGE('',*,*,#8710,.F.);
++#8712=EDGE_LOOP('',(#8709,#8711));
++#8713=FACE_BOUND('',#8712,.F.);
++#8714=ADVANCED_FACE('',(#8707,#8713),#8703,.F.);
++#8715=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
++#8716=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8717=DIRECTION('',(1.E0,0.E0,0.E0));
++#8718=AXIS2_PLACEMENT_3D('',#8715,#8716,#8717);
++#8719=CYLINDRICAL_SURFACE('',#8718,1.925E-1);
++#8720=ORIENTED_EDGE('',*,*,#8708,.T.);
++#8722=ORIENTED_EDGE('',*,*,#8721,.T.);
++#8723=ORIENTED_EDGE('',*,*,#5566,.F.);
++#8725=ORIENTED_EDGE('',*,*,#8724,.F.);
++#8726=EDGE_LOOP('',(#8720,#8722,#8723,#8725));
++#8727=FACE_OUTER_BOUND('',#8726,.F.);
++#8728=ADVANCED_FACE('',(#8727),#8719,.F.);
++#8729=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
++#8730=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8731=DIRECTION('',(1.E0,0.E0,0.E0));
++#8732=AXIS2_PLACEMENT_3D('',#8729,#8730,#8731);
++#8733=CYLINDRICAL_SURFACE('',#8732,1.925E-1);
++#8734=ORIENTED_EDGE('',*,*,#8710,.T.);
++#8735=ORIENTED_EDGE('',*,*,#8724,.T.);
++#8736=ORIENTED_EDGE('',*,*,#5568,.F.);
++#8737=ORIENTED_EDGE('',*,*,#8721,.F.);
++#8738=EDGE_LOOP('',(#8734,#8735,#8736,#8737));
++#8739=FACE_OUTER_BOUND('',#8738,.F.);
++#8740=ADVANCED_FACE('',(#8739),#8733,.F.);
++#8741=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
++#8742=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8743=DIRECTION('',(1.E0,0.E0,0.E0));
++#8744=AXIS2_PLACEMENT_3D('',#8741,#8742,#8743);
++#8745=CYLINDRICAL_SURFACE('',#8744,2.56E-1);
++#8746=ORIENTED_EDGE('',*,*,#6394,.T.);
++#8748=ORIENTED_EDGE('',*,*,#8747,.T.);
++#8750=ORIENTED_EDGE('',*,*,#8749,.F.);
++#8752=ORIENTED_EDGE('',*,*,#8751,.F.);
++#8753=EDGE_LOOP('',(#8746,#8748,#8750,#8752));
++#8754=FACE_OUTER_BOUND('',#8753,.F.);
++#8755=ADVANCED_FACE('',(#8754),#8745,.F.);
++#8756=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
++#8757=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8758=DIRECTION('',(1.E0,0.E0,0.E0));
++#8759=AXIS2_PLACEMENT_3D('',#8756,#8757,#8758);
++#8760=CYLINDRICAL_SURFACE('',#8759,2.56E-1);
++#8761=ORIENTED_EDGE('',*,*,#6396,.T.);
++#8762=ORIENTED_EDGE('',*,*,#8751,.T.);
++#8764=ORIENTED_EDGE('',*,*,#8763,.F.);
++#8765=ORIENTED_EDGE('',*,*,#8747,.F.);
++#8766=EDGE_LOOP('',(#8761,#8762,#8764,#8765));
++#8767=FACE_OUTER_BOUND('',#8766,.F.);
++#8768=ADVANCED_FACE('',(#8767),#8760,.F.);
++#8769=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
++#8770=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8771=DIRECTION('',(1.E0,0.E0,0.E0));
++#8772=AXIS2_PLACEMENT_3D('',#8769,#8770,#8771);
++#8773=PLANE('',#8772);
++#8774=ORIENTED_EDGE('',*,*,#8749,.T.);
++#8775=ORIENTED_EDGE('',*,*,#8763,.T.);
++#8776=EDGE_LOOP('',(#8774,#8775));
++#8777=FACE_OUTER_BOUND('',#8776,.F.);
++#8779=ORIENTED_EDGE('',*,*,#8778,.F.);
++#8781=ORIENTED_EDGE('',*,*,#8780,.F.);
++#8782=EDGE_LOOP('',(#8779,#8781));
++#8783=FACE_BOUND('',#8782,.F.);
++#8784=ADVANCED_FACE('',(#8777,#8783),#8773,.F.);
++#8785=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
++#8786=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8787=DIRECTION('',(1.E0,0.E0,0.E0));
++#8788=AXIS2_PLACEMENT_3D('',#8785,#8786,#8787);
++#8789=CYLINDRICAL_SURFACE('',#8788,1.925E-1);
++#8790=ORIENTED_EDGE('',*,*,#8778,.T.);
++#8792=ORIENTED_EDGE('',*,*,#8791,.T.);
++#8793=ORIENTED_EDGE('',*,*,#5554,.F.);
++#8795=ORIENTED_EDGE('',*,*,#8794,.F.);
++#8796=EDGE_LOOP('',(#8790,#8792,#8793,#8795));
++#8797=FACE_OUTER_BOUND('',#8796,.F.);
++#8798=ADVANCED_FACE('',(#8797),#8789,.F.);
++#8799=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
++#8800=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8801=DIRECTION('',(1.E0,0.E0,0.E0));
++#8802=AXIS2_PLACEMENT_3D('',#8799,#8800,#8801);
++#8803=CYLINDRICAL_SURFACE('',#8802,1.925E-1);
++#8804=ORIENTED_EDGE('',*,*,#8780,.T.);
++#8805=ORIENTED_EDGE('',*,*,#8794,.T.);
++#8806=ORIENTED_EDGE('',*,*,#5556,.F.);
++#8807=ORIENTED_EDGE('',*,*,#8791,.F.);
++#8808=EDGE_LOOP('',(#8804,#8805,#8806,#8807));
++#8809=FACE_OUTER_BOUND('',#8808,.F.);
++#8810=ADVANCED_FACE('',(#8809),#8803,.F.);
++#8811=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
++#8812=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8813=DIRECTION('',(1.E0,0.E0,0.E0));
++#8814=AXIS2_PLACEMENT_3D('',#8811,#8812,#8813);
++#8815=CYLINDRICAL_SURFACE('',#8814,2.575E-1);
++#8816=ORIENTED_EDGE('',*,*,#6452,.T.);
++#8818=ORIENTED_EDGE('',*,*,#8817,.T.);
++#8820=ORIENTED_EDGE('',*,*,#8819,.F.);
++#8822=ORIENTED_EDGE('',*,*,#8821,.F.);
++#8823=EDGE_LOOP('',(#8816,#8818,#8820,#8822));
++#8824=FACE_OUTER_BOUND('',#8823,.F.);
++#8825=ADVANCED_FACE('',(#8824),#8815,.F.);
++#8826=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
++#8827=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8828=DIRECTION('',(1.E0,0.E0,0.E0));
++#8829=AXIS2_PLACEMENT_3D('',#8826,#8827,#8828);
++#8830=CYLINDRICAL_SURFACE('',#8829,2.575E-1);
++#8831=ORIENTED_EDGE('',*,*,#6454,.T.);
++#8832=ORIENTED_EDGE('',*,*,#8821,.T.);
++#8834=ORIENTED_EDGE('',*,*,#8833,.F.);
++#8835=ORIENTED_EDGE('',*,*,#8817,.F.);
++#8836=EDGE_LOOP('',(#8831,#8832,#8834,#8835));
++#8837=FACE_OUTER_BOUND('',#8836,.F.);
++#8838=ADVANCED_FACE('',(#8837),#8830,.F.);
++#8839=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
++#8840=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8841=DIRECTION('',(1.E0,0.E0,0.E0));
++#8842=AXIS2_PLACEMENT_3D('',#8839,#8840,#8841);
++#8843=PLANE('',#8842);
++#8844=ORIENTED_EDGE('',*,*,#8819,.T.);
++#8845=ORIENTED_EDGE('',*,*,#8833,.T.);
++#8846=EDGE_LOOP('',(#8844,#8845));
++#8847=FACE_OUTER_BOUND('',#8846,.F.);
++#8849=ORIENTED_EDGE('',*,*,#8848,.F.);
++#8851=ORIENTED_EDGE('',*,*,#8850,.F.);
++#8852=EDGE_LOOP('',(#8849,#8851));
++#8853=FACE_BOUND('',#8852,.F.);
++#8854=ADVANCED_FACE('',(#8847,#8853),#8843,.F.);
++#8855=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
++#8856=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8857=DIRECTION('',(1.E0,0.E0,0.E0));
++#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857);
++#8859=CYLINDRICAL_SURFACE('',#8858,1.925E-1);
++#8860=ORIENTED_EDGE('',*,*,#8848,.T.);
++#8862=ORIENTED_EDGE('',*,*,#8861,.T.);
++#8863=ORIENTED_EDGE('',*,*,#5690,.F.);
++#8865=ORIENTED_EDGE('',*,*,#8864,.F.);
++#8866=EDGE_LOOP('',(#8860,#8862,#8863,#8865));
++#8867=FACE_OUTER_BOUND('',#8866,.F.);
++#8868=ADVANCED_FACE('',(#8867),#8859,.F.);
++#8869=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
++#8870=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8871=DIRECTION('',(1.E0,0.E0,0.E0));
++#8872=AXIS2_PLACEMENT_3D('',#8869,#8870,#8871);
++#8873=CYLINDRICAL_SURFACE('',#8872,1.925E-1);
++#8874=ORIENTED_EDGE('',*,*,#8850,.T.);
++#8875=ORIENTED_EDGE('',*,*,#8864,.T.);
++#8876=ORIENTED_EDGE('',*,*,#5692,.F.);
++#8877=ORIENTED_EDGE('',*,*,#8861,.F.);
++#8878=EDGE_LOOP('',(#8874,#8875,#8876,#8877));
++#8879=FACE_OUTER_BOUND('',#8878,.F.);
++#8880=ADVANCED_FACE('',(#8879),#8873,.F.);
++#8881=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
++#8882=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8883=DIRECTION('',(1.E0,0.E0,0.E0));
++#8884=AXIS2_PLACEMENT_3D('',#8881,#8882,#8883);
++#8885=CYLINDRICAL_SURFACE('',#8884,2.575E-1);
++#8886=ORIENTED_EDGE('',*,*,#6458,.T.);
++#8888=ORIENTED_EDGE('',*,*,#8887,.T.);
++#8890=ORIENTED_EDGE('',*,*,#8889,.F.);
++#8892=ORIENTED_EDGE('',*,*,#8891,.F.);
++#8893=EDGE_LOOP('',(#8886,#8888,#8890,#8892));
++#8894=FACE_OUTER_BOUND('',#8893,.F.);
++#8895=ADVANCED_FACE('',(#8894),#8885,.F.);
++#8896=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
++#8897=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8898=DIRECTION('',(1.E0,0.E0,0.E0));
++#8899=AXIS2_PLACEMENT_3D('',#8896,#8897,#8898);
++#8900=CYLINDRICAL_SURFACE('',#8899,2.575E-1);
++#8901=ORIENTED_EDGE('',*,*,#6460,.T.);
++#8902=ORIENTED_EDGE('',*,*,#8891,.T.);
++#8904=ORIENTED_EDGE('',*,*,#8903,.F.);
++#8905=ORIENTED_EDGE('',*,*,#8887,.F.);
++#8906=EDGE_LOOP('',(#8901,#8902,#8904,#8905));
++#8907=FACE_OUTER_BOUND('',#8906,.F.);
++#8908=ADVANCED_FACE('',(#8907),#8900,.F.);
++#8909=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
++#8910=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8911=DIRECTION('',(1.E0,0.E0,0.E0));
++#8912=AXIS2_PLACEMENT_3D('',#8909,#8910,#8911);
++#8913=PLANE('',#8912);
++#8914=ORIENTED_EDGE('',*,*,#8889,.T.);
++#8915=ORIENTED_EDGE('',*,*,#8903,.T.);
++#8916=EDGE_LOOP('',(#8914,#8915));
++#8917=FACE_OUTER_BOUND('',#8916,.F.);
++#8919=ORIENTED_EDGE('',*,*,#8918,.F.);
++#8921=ORIENTED_EDGE('',*,*,#8920,.F.);
++#8922=EDGE_LOOP('',(#8919,#8921));
++#8923=FACE_BOUND('',#8922,.F.);
++#8924=ADVANCED_FACE('',(#8917,#8923),#8913,.F.);
++#8925=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
++#8926=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8927=DIRECTION('',(1.E0,0.E0,0.E0));
++#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927);
++#8929=CYLINDRICAL_SURFACE('',#8928,1.925E-1);
++#8930=ORIENTED_EDGE('',*,*,#8918,.T.);
++#8932=ORIENTED_EDGE('',*,*,#8931,.T.);
++#8933=ORIENTED_EDGE('',*,*,#5696,.F.);
++#8935=ORIENTED_EDGE('',*,*,#8934,.F.);
++#8936=EDGE_LOOP('',(#8930,#8932,#8933,#8935));
++#8937=FACE_OUTER_BOUND('',#8936,.F.);
++#8938=ADVANCED_FACE('',(#8937),#8929,.F.);
++#8939=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
++#8940=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8941=DIRECTION('',(1.E0,0.E0,0.E0));
++#8942=AXIS2_PLACEMENT_3D('',#8939,#8940,#8941);
++#8943=CYLINDRICAL_SURFACE('',#8942,1.925E-1);
++#8944=ORIENTED_EDGE('',*,*,#8920,.T.);
++#8945=ORIENTED_EDGE('',*,*,#8934,.T.);
++#8946=ORIENTED_EDGE('',*,*,#5698,.F.);
++#8947=ORIENTED_EDGE('',*,*,#8931,.F.);
++#8948=EDGE_LOOP('',(#8944,#8945,#8946,#8947));
++#8949=FACE_OUTER_BOUND('',#8948,.F.);
++#8950=ADVANCED_FACE('',(#8949),#8943,.F.);
++#8951=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
++#8952=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8953=DIRECTION('',(1.E0,0.E0,0.E0));
++#8954=AXIS2_PLACEMENT_3D('',#8951,#8952,#8953);
++#8955=CYLINDRICAL_SURFACE('',#8954,2.575E-1);
++#8956=ORIENTED_EDGE('',*,*,#6464,.T.);
++#8958=ORIENTED_EDGE('',*,*,#8957,.T.);
++#8960=ORIENTED_EDGE('',*,*,#8959,.F.);
++#8962=ORIENTED_EDGE('',*,*,#8961,.F.);
++#8963=EDGE_LOOP('',(#8956,#8958,#8960,#8962));
++#8964=FACE_OUTER_BOUND('',#8963,.F.);
++#8965=ADVANCED_FACE('',(#8964),#8955,.F.);
++#8966=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
++#8967=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8968=DIRECTION('',(1.E0,0.E0,0.E0));
++#8969=AXIS2_PLACEMENT_3D('',#8966,#8967,#8968);
++#8970=CYLINDRICAL_SURFACE('',#8969,2.575E-1);
++#8971=ORIENTED_EDGE('',*,*,#6466,.T.);
++#8972=ORIENTED_EDGE('',*,*,#8961,.T.);
++#8974=ORIENTED_EDGE('',*,*,#8973,.F.);
++#8975=ORIENTED_EDGE('',*,*,#8957,.F.);
++#8976=EDGE_LOOP('',(#8971,#8972,#8974,#8975));
++#8977=FACE_OUTER_BOUND('',#8976,.F.);
++#8978=ADVANCED_FACE('',(#8977),#8970,.F.);
++#8979=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
++#8980=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8981=DIRECTION('',(1.E0,0.E0,0.E0));
++#8982=AXIS2_PLACEMENT_3D('',#8979,#8980,#8981);
++#8983=PLANE('',#8982);
++#8984=ORIENTED_EDGE('',*,*,#8959,.T.);
++#8985=ORIENTED_EDGE('',*,*,#8973,.T.);
++#8986=EDGE_LOOP('',(#8984,#8985));
++#8987=FACE_OUTER_BOUND('',#8986,.F.);
++#8989=ORIENTED_EDGE('',*,*,#8988,.F.);
++#8991=ORIENTED_EDGE('',*,*,#8990,.F.);
++#8992=EDGE_LOOP('',(#8989,#8991));
++#8993=FACE_BOUND('',#8992,.F.);
++#8994=ADVANCED_FACE('',(#8987,#8993),#8983,.F.);
++#8995=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
++#8996=DIRECTION('',(0.E0,-1.E0,0.E0));
++#8997=DIRECTION('',(1.E0,0.E0,0.E0));
++#8998=AXIS2_PLACEMENT_3D('',#8995,#8996,#8997);
++#8999=CYLINDRICAL_SURFACE('',#8998,1.925E-1);
++#9000=ORIENTED_EDGE('',*,*,#8988,.T.);
++#9002=ORIENTED_EDGE('',*,*,#9001,.T.);
++#9003=ORIENTED_EDGE('',*,*,#5702,.F.);
++#9005=ORIENTED_EDGE('',*,*,#9004,.F.);
++#9006=EDGE_LOOP('',(#9000,#9002,#9003,#9005));
++#9007=FACE_OUTER_BOUND('',#9006,.F.);
++#9008=ADVANCED_FACE('',(#9007),#8999,.F.);
++#9009=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
++#9010=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9011=DIRECTION('',(1.E0,0.E0,0.E0));
++#9012=AXIS2_PLACEMENT_3D('',#9009,#9010,#9011);
++#9013=CYLINDRICAL_SURFACE('',#9012,1.925E-1);
++#9014=ORIENTED_EDGE('',*,*,#8990,.T.);
++#9015=ORIENTED_EDGE('',*,*,#9004,.T.);
++#9016=ORIENTED_EDGE('',*,*,#5704,.F.);
++#9017=ORIENTED_EDGE('',*,*,#9001,.F.);
++#9018=EDGE_LOOP('',(#9014,#9015,#9016,#9017));
++#9019=FACE_OUTER_BOUND('',#9018,.F.);
++#9020=ADVANCED_FACE('',(#9019),#9013,.F.);
++#9021=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
++#9022=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9023=DIRECTION('',(1.E0,0.E0,0.E0));
++#9024=AXIS2_PLACEMENT_3D('',#9021,#9022,#9023);
++#9025=CYLINDRICAL_SURFACE('',#9024,2.575E-1);
++#9026=ORIENTED_EDGE('',*,*,#6470,.T.);
++#9028=ORIENTED_EDGE('',*,*,#9027,.T.);
++#9030=ORIENTED_EDGE('',*,*,#9029,.F.);
++#9032=ORIENTED_EDGE('',*,*,#9031,.F.);
++#9033=EDGE_LOOP('',(#9026,#9028,#9030,#9032));
++#9034=FACE_OUTER_BOUND('',#9033,.F.);
++#9035=ADVANCED_FACE('',(#9034),#9025,.F.);
++#9036=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
++#9037=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9038=DIRECTION('',(1.E0,0.E0,0.E0));
++#9039=AXIS2_PLACEMENT_3D('',#9036,#9037,#9038);
++#9040=CYLINDRICAL_SURFACE('',#9039,2.575E-1);
++#9041=ORIENTED_EDGE('',*,*,#6472,.T.);
++#9042=ORIENTED_EDGE('',*,*,#9031,.T.);
++#9044=ORIENTED_EDGE('',*,*,#9043,.F.);
++#9045=ORIENTED_EDGE('',*,*,#9027,.F.);
++#9046=EDGE_LOOP('',(#9041,#9042,#9044,#9045));
++#9047=FACE_OUTER_BOUND('',#9046,.F.);
++#9048=ADVANCED_FACE('',(#9047),#9040,.F.);
++#9049=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
++#9050=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9051=DIRECTION('',(1.E0,0.E0,0.E0));
++#9052=AXIS2_PLACEMENT_3D('',#9049,#9050,#9051);
++#9053=PLANE('',#9052);
++#9054=ORIENTED_EDGE('',*,*,#9029,.T.);
++#9055=ORIENTED_EDGE('',*,*,#9043,.T.);
++#9056=EDGE_LOOP('',(#9054,#9055));
++#9057=FACE_OUTER_BOUND('',#9056,.F.);
++#9059=ORIENTED_EDGE('',*,*,#9058,.F.);
++#9061=ORIENTED_EDGE('',*,*,#9060,.F.);
++#9062=EDGE_LOOP('',(#9059,#9061));
++#9063=FACE_BOUND('',#9062,.F.);
++#9064=ADVANCED_FACE('',(#9057,#9063),#9053,.F.);
++#9065=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
++#9066=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9067=DIRECTION('',(1.E0,0.E0,0.E0));
++#9068=AXIS2_PLACEMENT_3D('',#9065,#9066,#9067);
++#9069=CYLINDRICAL_SURFACE('',#9068,1.925E-1);
++#9070=ORIENTED_EDGE('',*,*,#9058,.T.);
++#9072=ORIENTED_EDGE('',*,*,#9071,.T.);
++#9073=ORIENTED_EDGE('',*,*,#5708,.F.);
++#9075=ORIENTED_EDGE('',*,*,#9074,.F.);
++#9076=EDGE_LOOP('',(#9070,#9072,#9073,#9075));
++#9077=FACE_OUTER_BOUND('',#9076,.F.);
++#9078=ADVANCED_FACE('',(#9077),#9069,.F.);
++#9079=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
++#9080=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9081=DIRECTION('',(1.E0,0.E0,0.E0));
++#9082=AXIS2_PLACEMENT_3D('',#9079,#9080,#9081);
++#9083=CYLINDRICAL_SURFACE('',#9082,1.925E-1);
++#9084=ORIENTED_EDGE('',*,*,#9060,.T.);
++#9085=ORIENTED_EDGE('',*,*,#9074,.T.);
++#9086=ORIENTED_EDGE('',*,*,#5710,.F.);
++#9087=ORIENTED_EDGE('',*,*,#9071,.F.);
++#9088=EDGE_LOOP('',(#9084,#9085,#9086,#9087));
++#9089=FACE_OUTER_BOUND('',#9088,.F.);
++#9090=ADVANCED_FACE('',(#9089),#9083,.F.);
++#9091=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
++#9092=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9093=DIRECTION('',(1.E0,0.E0,0.E0));
++#9094=AXIS2_PLACEMENT_3D('',#9091,#9092,#9093);
++#9095=CYLINDRICAL_SURFACE('',#9094,2.575E-1);
++#9096=ORIENTED_EDGE('',*,*,#6476,.T.);
++#9098=ORIENTED_EDGE('',*,*,#9097,.T.);
++#9100=ORIENTED_EDGE('',*,*,#9099,.F.);
++#9102=ORIENTED_EDGE('',*,*,#9101,.F.);
++#9103=EDGE_LOOP('',(#9096,#9098,#9100,#9102));
++#9104=FACE_OUTER_BOUND('',#9103,.F.);
++#9105=ADVANCED_FACE('',(#9104),#9095,.F.);
++#9106=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
++#9107=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9108=DIRECTION('',(1.E0,0.E0,0.E0));
++#9109=AXIS2_PLACEMENT_3D('',#9106,#9107,#9108);
++#9110=CYLINDRICAL_SURFACE('',#9109,2.575E-1);
++#9111=ORIENTED_EDGE('',*,*,#6478,.T.);
++#9112=ORIENTED_EDGE('',*,*,#9101,.T.);
++#9114=ORIENTED_EDGE('',*,*,#9113,.F.);
++#9115=ORIENTED_EDGE('',*,*,#9097,.F.);
++#9116=EDGE_LOOP('',(#9111,#9112,#9114,#9115));
++#9117=FACE_OUTER_BOUND('',#9116,.F.);
++#9118=ADVANCED_FACE('',(#9117),#9110,.F.);
++#9119=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
++#9120=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9121=DIRECTION('',(1.E0,0.E0,0.E0));
++#9122=AXIS2_PLACEMENT_3D('',#9119,#9120,#9121);
++#9123=PLANE('',#9122);
++#9124=ORIENTED_EDGE('',*,*,#9099,.T.);
++#9125=ORIENTED_EDGE('',*,*,#9113,.T.);
++#9126=EDGE_LOOP('',(#9124,#9125));
++#9127=FACE_OUTER_BOUND('',#9126,.F.);
++#9129=ORIENTED_EDGE('',*,*,#9128,.F.);
++#9131=ORIENTED_EDGE('',*,*,#9130,.F.);
++#9132=EDGE_LOOP('',(#9129,#9131));
++#9133=FACE_BOUND('',#9132,.F.);
++#9134=ADVANCED_FACE('',(#9127,#9133),#9123,.F.);
++#9135=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
++#9136=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9137=DIRECTION('',(1.E0,0.E0,0.E0));
++#9138=AXIS2_PLACEMENT_3D('',#9135,#9136,#9137);
++#9139=CYLINDRICAL_SURFACE('',#9138,1.925E-1);
++#9140=ORIENTED_EDGE('',*,*,#9128,.T.);
++#9142=ORIENTED_EDGE('',*,*,#9141,.T.);
++#9143=ORIENTED_EDGE('',*,*,#5714,.F.);
++#9145=ORIENTED_EDGE('',*,*,#9144,.F.);
++#9146=EDGE_LOOP('',(#9140,#9142,#9143,#9145));
++#9147=FACE_OUTER_BOUND('',#9146,.F.);
++#9148=ADVANCED_FACE('',(#9147),#9139,.F.);
++#9149=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
++#9150=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9151=DIRECTION('',(1.E0,0.E0,0.E0));
++#9152=AXIS2_PLACEMENT_3D('',#9149,#9150,#9151);
++#9153=CYLINDRICAL_SURFACE('',#9152,1.925E-1);
++#9154=ORIENTED_EDGE('',*,*,#9130,.T.);
++#9155=ORIENTED_EDGE('',*,*,#9144,.T.);
++#9156=ORIENTED_EDGE('',*,*,#5716,.F.);
++#9157=ORIENTED_EDGE('',*,*,#9141,.F.);
++#9158=EDGE_LOOP('',(#9154,#9155,#9156,#9157));
++#9159=FACE_OUTER_BOUND('',#9158,.F.);
++#9160=ADVANCED_FACE('',(#9159),#9153,.F.);
++#9161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
++#9162=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9163=DIRECTION('',(1.E0,0.E0,0.E0));
++#9164=AXIS2_PLACEMENT_3D('',#9161,#9162,#9163);
++#9165=CYLINDRICAL_SURFACE('',#9164,2.575E-1);
++#9166=ORIENTED_EDGE('',*,*,#6482,.T.);
++#9168=ORIENTED_EDGE('',*,*,#9167,.T.);
++#9170=ORIENTED_EDGE('',*,*,#9169,.F.);
++#9172=ORIENTED_EDGE('',*,*,#9171,.F.);
++#9173=EDGE_LOOP('',(#9166,#9168,#9170,#9172));
++#9174=FACE_OUTER_BOUND('',#9173,.F.);
++#9175=ADVANCED_FACE('',(#9174),#9165,.F.);
++#9176=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
++#9177=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9178=DIRECTION('',(1.E0,0.E0,0.E0));
++#9179=AXIS2_PLACEMENT_3D('',#9176,#9177,#9178);
++#9180=CYLINDRICAL_SURFACE('',#9179,2.575E-1);
++#9181=ORIENTED_EDGE('',*,*,#6484,.T.);
++#9182=ORIENTED_EDGE('',*,*,#9171,.T.);
++#9184=ORIENTED_EDGE('',*,*,#9183,.F.);
++#9185=ORIENTED_EDGE('',*,*,#9167,.F.);
++#9186=EDGE_LOOP('',(#9181,#9182,#9184,#9185));
++#9187=FACE_OUTER_BOUND('',#9186,.F.);
++#9188=ADVANCED_FACE('',(#9187),#9180,.F.);
++#9189=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
++#9190=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9191=DIRECTION('',(1.E0,0.E0,0.E0));
++#9192=AXIS2_PLACEMENT_3D('',#9189,#9190,#9191);
++#9193=PLANE('',#9192);
++#9194=ORIENTED_EDGE('',*,*,#9169,.T.);
++#9195=ORIENTED_EDGE('',*,*,#9183,.T.);
++#9196=EDGE_LOOP('',(#9194,#9195));
++#9197=FACE_OUTER_BOUND('',#9196,.F.);
++#9199=ORIENTED_EDGE('',*,*,#9198,.F.);
++#9201=ORIENTED_EDGE('',*,*,#9200,.F.);
++#9202=EDGE_LOOP('',(#9199,#9201));
++#9203=FACE_BOUND('',#9202,.F.);
++#9204=ADVANCED_FACE('',(#9197,#9203),#9193,.F.);
++#9205=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
++#9206=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9207=DIRECTION('',(1.E0,0.E0,0.E0));
++#9208=AXIS2_PLACEMENT_3D('',#9205,#9206,#9207);
++#9209=CYLINDRICAL_SURFACE('',#9208,1.925E-1);
++#9210=ORIENTED_EDGE('',*,*,#9198,.T.);
++#9212=ORIENTED_EDGE('',*,*,#9211,.T.);
++#9213=ORIENTED_EDGE('',*,*,#5720,.F.);
++#9215=ORIENTED_EDGE('',*,*,#9214,.F.);
++#9216=EDGE_LOOP('',(#9210,#9212,#9213,#9215));
++#9217=FACE_OUTER_BOUND('',#9216,.F.);
++#9218=ADVANCED_FACE('',(#9217),#9209,.F.);
++#9219=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
++#9220=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9221=DIRECTION('',(1.E0,0.E0,0.E0));
++#9222=AXIS2_PLACEMENT_3D('',#9219,#9220,#9221);
++#9223=CYLINDRICAL_SURFACE('',#9222,1.925E-1);
++#9224=ORIENTED_EDGE('',*,*,#9200,.T.);
++#9225=ORIENTED_EDGE('',*,*,#9214,.T.);
++#9226=ORIENTED_EDGE('',*,*,#5722,.F.);
++#9227=ORIENTED_EDGE('',*,*,#9211,.F.);
++#9228=EDGE_LOOP('',(#9224,#9225,#9226,#9227));
++#9229=FACE_OUTER_BOUND('',#9228,.F.);
++#9230=ADVANCED_FACE('',(#9229),#9223,.F.);
++#9231=CARTESIAN_POINT('',(2.2E1,1.5E0,1.2E1));
++#9232=DIRECTION('',(1.E0,0.E0,0.E0));
++#9233=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9234=AXIS2_PLACEMENT_3D('',#9231,#9232,#9233);
++#9235=PLANE('',#9234);
++#9236=ORIENTED_EDGE('',*,*,#6328,.T.);
++#9237=ORIENTED_EDGE('',*,*,#6155,.T.);
++#9239=ORIENTED_EDGE('',*,*,#9238,.T.);
++#9240=EDGE_LOOP('',(#9236,#9237,#9239));
++#9241=FACE_OUTER_BOUND('',#9240,.F.);
++#9242=ADVANCED_FACE('',(#9241),#9235,.F.);
++#9243=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
++#9244=DIRECTION('',(0.E0,-5.E-1,-8.660254037844E-1));
++#9245=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
++#9246=AXIS2_PLACEMENT_3D('',#9243,#9244,#9245);
++#9247=PLANE('',#9246);
++#9248=ORIENTED_EDGE('',*,*,#6330,.T.);
++#9249=ORIENTED_EDGE('',*,*,#9238,.F.);
++#9250=ORIENTED_EDGE('',*,*,#6153,.F.);
++#9251=ORIENTED_EDGE('',*,*,#6209,.T.);
++#9252=EDGE_LOOP('',(#9248,#9249,#9250,#9251));
++#9253=FACE_OUTER_BOUND('',#9252,.F.);
++#9255=ORIENTED_EDGE('',*,*,#9254,.F.);
++#9257=ORIENTED_EDGE('',*,*,#9256,.F.);
++#9258=EDGE_LOOP('',(#9255,#9257));
++#9259=FACE_BOUND('',#9258,.F.);
++#9260=ADVANCED_FACE('',(#9253,#9259),#9247,.F.);
++#9261=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
++#9262=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9263=DIRECTION('',(1.E0,0.E0,0.E0));
++#9264=AXIS2_PLACEMENT_3D('',#9261,#9262,#9263);
++#9265=CYLINDRICAL_SURFACE('',#9264,2.575E-1);
++#9267=ORIENTED_EDGE('',*,*,#9266,.F.);
++#9268=ORIENTED_EDGE('',*,*,#9254,.T.);
++#9270=ORIENTED_EDGE('',*,*,#9269,.F.);
++#9272=ORIENTED_EDGE('',*,*,#9271,.F.);
++#9273=EDGE_LOOP('',(#9267,#9268,#9270,#9272));
++#9274=FACE_OUTER_BOUND('',#9273,.F.);
++#9275=ADVANCED_FACE('',(#9274),#9265,.F.);
++#9276=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
++#9277=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9278=DIRECTION('',(1.E0,0.E0,0.E0));
++#9279=AXIS2_PLACEMENT_3D('',#9276,#9277,#9278);
++#9280=CYLINDRICAL_SURFACE('',#9279,2.575E-1);
++#9281=ORIENTED_EDGE('',*,*,#9269,.T.);
++#9282=ORIENTED_EDGE('',*,*,#9256,.T.);
++#9283=ORIENTED_EDGE('',*,*,#9266,.T.);
++#9285=ORIENTED_EDGE('',*,*,#9284,.F.);
++#9286=EDGE_LOOP('',(#9281,#9282,#9283,#9285));
++#9287=FACE_OUTER_BOUND('',#9286,.F.);
++#9288=ADVANCED_FACE('',(#9287),#9280,.F.);
++#9289=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
++#9290=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9291=DIRECTION('',(1.E0,0.E0,0.E0));
++#9292=AXIS2_PLACEMENT_3D('',#9289,#9290,#9291);
++#9293=PLANE('',#9292);
++#9294=ORIENTED_EDGE('',*,*,#9271,.T.);
++#9295=ORIENTED_EDGE('',*,*,#9284,.T.);
++#9296=EDGE_LOOP('',(#9294,#9295));
++#9297=FACE_OUTER_BOUND('',#9296,.F.);
++#9299=ORIENTED_EDGE('',*,*,#9298,.F.);
++#9301=ORIENTED_EDGE('',*,*,#9300,.F.);
++#9302=EDGE_LOOP('',(#9299,#9301));
++#9303=FACE_BOUND('',#9302,.F.);
++#9304=ADVANCED_FACE('',(#9297,#9303),#9293,.F.);
++#9305=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
++#9306=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9307=DIRECTION('',(1.E0,0.E0,0.E0));
++#9308=AXIS2_PLACEMENT_3D('',#9305,#9306,#9307);
++#9309=CYLINDRICAL_SURFACE('',#9308,1.925E-1);
++#9310=ORIENTED_EDGE('',*,*,#9298,.T.);
++#9312=ORIENTED_EDGE('',*,*,#9311,.T.);
++#9313=ORIENTED_EDGE('',*,*,#5596,.F.);
++#9315=ORIENTED_EDGE('',*,*,#9314,.F.);
++#9316=EDGE_LOOP('',(#9310,#9312,#9313,#9315));
++#9317=FACE_OUTER_BOUND('',#9316,.F.);
++#9318=ADVANCED_FACE('',(#9317),#9309,.F.);
++#9319=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
++#9320=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9321=DIRECTION('',(1.E0,0.E0,0.E0));
++#9322=AXIS2_PLACEMENT_3D('',#9319,#9320,#9321);
++#9323=CYLINDRICAL_SURFACE('',#9322,1.925E-1);
++#9324=ORIENTED_EDGE('',*,*,#9300,.T.);
++#9325=ORIENTED_EDGE('',*,*,#9314,.T.);
++#9326=ORIENTED_EDGE('',*,*,#5598,.F.);
++#9327=ORIENTED_EDGE('',*,*,#9311,.F.);
++#9328=EDGE_LOOP('',(#9324,#9325,#9326,#9327));
++#9329=FACE_OUTER_BOUND('',#9328,.F.);
++#9330=ADVANCED_FACE('',(#9329),#9323,.F.);
++#9331=CARTESIAN_POINT('',(2.185E1,6.65E0,1.006892397423E1));
++#9332=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9333=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9334=AXIS2_PLACEMENT_3D('',#9331,#9332,#9333);
++#9335=CYLINDRICAL_SURFACE('',#9334,3.5E-1);
++#9337=ORIENTED_EDGE('',*,*,#9336,.T.);
++#9339=ORIENTED_EDGE('',*,*,#9338,.T.);
++#9341=ORIENTED_EDGE('',*,*,#9340,.F.);
++#9342=ORIENTED_EDGE('',*,*,#6175,.T.);
++#9343=EDGE_LOOP('',(#9337,#9339,#9341,#9342));
++#9344=FACE_OUTER_BOUND('',#9343,.F.);
++#9345=ADVANCED_FACE('',(#9344),#9335,.T.);
++#9346=CARTESIAN_POINT('',(2.15E1,7.E0,1.E1));
++#9347=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9348=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9349=AXIS2_PLACEMENT_3D('',#9346,#9347,#9348);
++#9350=PLANE('',#9349);
++#9351=ORIENTED_EDGE('',*,*,#9336,.F.);
++#9352=ORIENTED_EDGE('',*,*,#6197,.T.);
++#9354=ORIENTED_EDGE('',*,*,#9353,.F.);
++#9356=ORIENTED_EDGE('',*,*,#9355,.F.);
++#9357=EDGE_LOOP('',(#9351,#9352,#9354,#9356));
++#9358=FACE_OUTER_BOUND('',#9357,.F.);
++#9359=ADVANCED_FACE('',(#9358),#9350,.T.);
++#9360=CARTESIAN_POINT('',(2.115E1,2.35E0,9.441108058217E0));
++#9361=DIRECTION('',(0.E0,0.E0,1.E0));
++#9362=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
++#9363=AXIS2_PLACEMENT_3D('',#9360,#9361,#9362);
++#9364=CYLINDRICAL_SURFACE('',#9363,3.5E-1);
++#9366=ORIENTED_EDGE('',*,*,#9365,.F.);
++#9368=ORIENTED_EDGE('',*,*,#9367,.T.);
++#9369=ORIENTED_EDGE('',*,*,#9353,.T.);
++#9370=ORIENTED_EDGE('',*,*,#6195,.T.);
++#9371=EDGE_LOOP('',(#9366,#9368,#9369,#9370));
++#9372=FACE_OUTER_BOUND('',#9371,.F.);
++#9373=ADVANCED_FACE('',(#9372),#9364,.F.);
++#9374=CARTESIAN_POINT('',(2.15E1,2.E0,1.E1));
++#9375=DIRECTION('',(0.E0,1.E0,0.E0));
++#9376=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9377=AXIS2_PLACEMENT_3D('',#9374,#9375,#9376);
++#9378=PLANE('',#9377);
++#9379=ORIENTED_EDGE('',*,*,#9365,.T.);
++#9380=ORIENTED_EDGE('',*,*,#6193,.T.);
++#9382=ORIENTED_EDGE('',*,*,#9381,.F.);
++#9384=ORIENTED_EDGE('',*,*,#9383,.F.);
++#9385=EDGE_LOOP('',(#9379,#9380,#9382,#9384));
++#9386=FACE_OUTER_BOUND('',#9385,.F.);
++#9387=ADVANCED_FACE('',(#9386),#9378,.T.);
++#9388=CARTESIAN_POINT('',(1.985E1,2.35E0,9.441108058217E0));
++#9389=DIRECTION('',(0.E0,0.E0,1.E0));
++#9390=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9391=AXIS2_PLACEMENT_3D('',#9388,#9389,#9390);
++#9392=CYLINDRICAL_SURFACE('',#9391,3.5E-1);
++#9394=ORIENTED_EDGE('',*,*,#9393,.F.);
++#9396=ORIENTED_EDGE('',*,*,#9395,.T.);
++#9397=ORIENTED_EDGE('',*,*,#9381,.T.);
++#9398=ORIENTED_EDGE('',*,*,#6191,.T.);
++#9399=EDGE_LOOP('',(#9394,#9396,#9397,#9398));
++#9400=FACE_OUTER_BOUND('',#9399,.F.);
++#9401=ADVANCED_FACE('',(#9400),#9392,.F.);
++#9402=CARTESIAN_POINT('',(1.95E1,2.E0,1.E1));
++#9403=DIRECTION('',(1.E0,0.E0,0.E0));
++#9404=DIRECTION('',(0.E0,1.E0,0.E0));
++#9405=AXIS2_PLACEMENT_3D('',#9402,#9403,#9404);
++#9406=PLANE('',#9405);
++#9407=ORIENTED_EDGE('',*,*,#9393,.T.);
++#9408=ORIENTED_EDGE('',*,*,#6189,.T.);
++#9410=ORIENTED_EDGE('',*,*,#9409,.F.);
++#9412=ORIENTED_EDGE('',*,*,#9411,.F.);
++#9413=EDGE_LOOP('',(#9407,#9408,#9410,#9412));
++#9414=FACE_OUTER_BOUND('',#9413,.F.);
++#9415=ADVANCED_FACE('',(#9414),#9406,.T.);
++#9416=CARTESIAN_POINT('',(1.985E1,9.15E0,9.441108058217E0));
++#9417=DIRECTION('',(0.E0,0.E0,1.E0));
++#9418=DIRECTION('',(-1.015061051086E-14,1.E0,0.E0));
++#9419=AXIS2_PLACEMENT_3D('',#9416,#9417,#9418);
++#9420=CYLINDRICAL_SURFACE('',#9419,3.5E-1);
++#9422=ORIENTED_EDGE('',*,*,#9421,.F.);
++#9424=ORIENTED_EDGE('',*,*,#9423,.T.);
++#9425=ORIENTED_EDGE('',*,*,#9409,.T.);
++#9426=ORIENTED_EDGE('',*,*,#6187,.T.);
++#9427=EDGE_LOOP('',(#9422,#9424,#9425,#9426));
++#9428=FACE_OUTER_BOUND('',#9427,.F.);
++#9429=ADVANCED_FACE('',(#9428),#9420,.F.);
++#9430=CARTESIAN_POINT('',(1.95E1,9.5E0,1.E1));
++#9431=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9432=DIRECTION('',(1.E0,0.E0,0.E0));
++#9433=AXIS2_PLACEMENT_3D('',#9430,#9431,#9432);
++#9434=PLANE('',#9433);
++#9436=ORIENTED_EDGE('',*,*,#9435,.F.);
++#9438=ORIENTED_EDGE('',*,*,#9437,.F.);
++#9439=ORIENTED_EDGE('',*,*,#9421,.T.);
++#9440=ORIENTED_EDGE('',*,*,#6185,.T.);
++#9441=EDGE_LOOP('',(#9436,#9438,#9439,#9440));
++#9442=FACE_OUTER_BOUND('',#9441,.F.);
++#9443=ADVANCED_FACE('',(#9442),#9434,.T.);
++#9444=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.441108058217E0));
++#9445=DIRECTION('',(0.E0,0.E0,1.E0));
++#9446=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
++#9447=AXIS2_PLACEMENT_3D('',#9444,#9445,#9446);
++#9448=CYLINDRICAL_SURFACE('',#9447,3.5E-1);
++#9450=ORIENTED_EDGE('',*,*,#9449,.F.);
++#9452=ORIENTED_EDGE('',*,*,#9451,.T.);
++#9453=ORIENTED_EDGE('',*,*,#9435,.T.);
++#9454=ORIENTED_EDGE('',*,*,#6183,.T.);
++#9455=EDGE_LOOP('',(#9450,#9452,#9453,#9454));
++#9456=FACE_OUTER_BOUND('',#9455,.F.);
++#9457=ADVANCED_FACE('',(#9456),#9448,.F.);
++#9458=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,1.E1));
++#9459=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
++#9460=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
++#9461=AXIS2_PLACEMENT_3D('',#9458,#9459,#9460);
++#9462=PLANE('',#9461);
++#9464=ORIENTED_EDGE('',*,*,#9463,.F.);
++#9466=ORIENTED_EDGE('',*,*,#9465,.F.);
++#9467=ORIENTED_EDGE('',*,*,#9449,.T.);
++#9468=ORIENTED_EDGE('',*,*,#6181,.T.);
++#9469=EDGE_LOOP('',(#9464,#9466,#9467,#9468));
++#9470=FACE_OUTER_BOUND('',#9469,.F.);
++#9471=ADVANCED_FACE('',(#9470),#9462,.T.);
++#9472=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.441108058217E0));
++#9473=DIRECTION('',(0.E0,0.E0,1.E0));
++#9474=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474);
++#9476=CYLINDRICAL_SURFACE('',#9475,3.5E-1);
++#9478=ORIENTED_EDGE('',*,*,#9477,.F.);
++#9480=ORIENTED_EDGE('',*,*,#9479,.T.);
++#9481=ORIENTED_EDGE('',*,*,#9463,.T.);
++#9482=ORIENTED_EDGE('',*,*,#6179,.T.);
++#9483=EDGE_LOOP('',(#9478,#9480,#9481,#9482));
++#9484=FACE_OUTER_BOUND('',#9483,.F.);
++#9485=ADVANCED_FACE('',(#9484),#9476,.F.);
++#9486=CARTESIAN_POINT('',(2.264203082158E1,7.E0,1.E1));
++#9487=DIRECTION('',(0.E0,1.E0,0.E0));
++#9488=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488);
++#9490=PLANE('',#9489);
++#9491=ORIENTED_EDGE('',*,*,#9340,.T.);
++#9493=ORIENTED_EDGE('',*,*,#9492,.F.);
++#9494=ORIENTED_EDGE('',*,*,#9477,.T.);
++#9495=ORIENTED_EDGE('',*,*,#6177,.T.);
++#9496=EDGE_LOOP('',(#9491,#9493,#9494,#9495));
++#9497=FACE_OUTER_BOUND('',#9496,.F.);
++#9498=ADVANCED_FACE('',(#9497),#9490,.T.);
++#9499=CARTESIAN_POINT('',(2.4E1,0.E0,9.5E0));
++#9500=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9501=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9502=AXIS2_PLACEMENT_3D('',#9499,#9500,#9501);
++#9503=PLANE('',#9502);
++#9504=ORIENTED_EDGE('',*,*,#9492,.T.);
++#9505=ORIENTED_EDGE('',*,*,#9338,.F.);
++#9506=ORIENTED_EDGE('',*,*,#9355,.T.);
++#9507=ORIENTED_EDGE('',*,*,#9367,.F.);
++#9508=ORIENTED_EDGE('',*,*,#9383,.T.);
++#9509=ORIENTED_EDGE('',*,*,#9395,.F.);
++#9510=ORIENTED_EDGE('',*,*,#9411,.T.);
++#9511=ORIENTED_EDGE('',*,*,#9423,.F.);
++#9512=ORIENTED_EDGE('',*,*,#9437,.T.);
++#9513=ORIENTED_EDGE('',*,*,#9451,.F.);
++#9514=ORIENTED_EDGE('',*,*,#9465,.T.);
++#9515=ORIENTED_EDGE('',*,*,#9479,.F.);
++#9516=EDGE_LOOP('',(#9504,#9505,#9506,#9507,#9508,#9509,#9510,#9511,#9512,#9513,
++#9514,#9515));
++#9517=FACE_OUTER_BOUND('',#9516,.F.);
++#9518=ADVANCED_FACE('',(#9517),#9503,.F.);
++#9519=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
++#9520=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9521=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9522=AXIS2_PLACEMENT_3D('',#9519,#9520,#9521);
++#9523=CYLINDRICAL_SURFACE('',#9522,9.5E-2);
++#9524=ORIENTED_EDGE('',*,*,#6007,.F.);
++#9526=ORIENTED_EDGE('',*,*,#9525,.T.);
++#9528=ORIENTED_EDGE('',*,*,#9527,.T.);
++#9530=ORIENTED_EDGE('',*,*,#9529,.F.);
++#9531=EDGE_LOOP('',(#9524,#9526,#9528,#9530));
++#9532=FACE_OUTER_BOUND('',#9531,.F.);
++#9533=ADVANCED_FACE('',(#9532),#9523,.F.);
++#9534=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
++#9535=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9536=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9537=AXIS2_PLACEMENT_3D('',#9534,#9535,#9536);
++#9538=CYLINDRICAL_SURFACE('',#9537,9.5E-2);
++#9539=ORIENTED_EDGE('',*,*,#6009,.F.);
++#9540=ORIENTED_EDGE('',*,*,#9529,.T.);
++#9542=ORIENTED_EDGE('',*,*,#9541,.T.);
++#9543=ORIENTED_EDGE('',*,*,#9525,.F.);
++#9544=EDGE_LOOP('',(#9539,#9540,#9542,#9543));
++#9545=FACE_OUTER_BOUND('',#9544,.F.);
++#9546=ADVANCED_FACE('',(#9545),#9538,.F.);
++#9547=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
++#9548=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9549=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9550=AXIS2_PLACEMENT_3D('',#9547,#9548,#9549);
++#9551=PLANE('',#9550);
++#9552=ORIENTED_EDGE('',*,*,#9527,.F.);
++#9553=ORIENTED_EDGE('',*,*,#9541,.F.);
++#9554=EDGE_LOOP('',(#9552,#9553));
++#9555=FACE_OUTER_BOUND('',#9554,.F.);
++#9556=ADVANCED_FACE('',(#9555),#9551,.T.);
++#9557=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
++#9558=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9559=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9560=AXIS2_PLACEMENT_3D('',#9557,#9558,#9559);
++#9561=CYLINDRICAL_SURFACE('',#9560,9.5E-2);
++#9562=ORIENTED_EDGE('',*,*,#6013,.F.);
++#9564=ORIENTED_EDGE('',*,*,#9563,.T.);
++#9566=ORIENTED_EDGE('',*,*,#9565,.T.);
++#9568=ORIENTED_EDGE('',*,*,#9567,.F.);
++#9569=EDGE_LOOP('',(#9562,#9564,#9566,#9568));
++#9570=FACE_OUTER_BOUND('',#9569,.F.);
++#9571=ADVANCED_FACE('',(#9570),#9561,.F.);
++#9572=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
++#9573=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9574=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9575=AXIS2_PLACEMENT_3D('',#9572,#9573,#9574);
++#9576=CYLINDRICAL_SURFACE('',#9575,9.5E-2);
++#9577=ORIENTED_EDGE('',*,*,#6015,.F.);
++#9578=ORIENTED_EDGE('',*,*,#9567,.T.);
++#9580=ORIENTED_EDGE('',*,*,#9579,.T.);
++#9581=ORIENTED_EDGE('',*,*,#9563,.F.);
++#9582=EDGE_LOOP('',(#9577,#9578,#9580,#9581));
++#9583=FACE_OUTER_BOUND('',#9582,.F.);
++#9584=ADVANCED_FACE('',(#9583),#9576,.F.);
++#9585=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
++#9586=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9587=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9588=AXIS2_PLACEMENT_3D('',#9585,#9586,#9587);
++#9589=PLANE('',#9588);
++#9590=ORIENTED_EDGE('',*,*,#9565,.F.);
++#9591=ORIENTED_EDGE('',*,*,#9579,.F.);
++#9592=EDGE_LOOP('',(#9590,#9591));
++#9593=FACE_OUTER_BOUND('',#9592,.F.);
++#9594=ADVANCED_FACE('',(#9593),#9589,.T.);
++#9595=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
++#9596=DIRECTION('',(0.E0,0.E0,1.E0));
++#9597=DIRECTION('',(1.E0,0.E0,0.E0));
++#9598=AXIS2_PLACEMENT_3D('',#9595,#9596,#9597);
++#9599=CYLINDRICAL_SURFACE('',#9598,9.5E-2);
++#9600=ORIENTED_EDGE('',*,*,#6019,.T.);
++#9602=ORIENTED_EDGE('',*,*,#9601,.T.);
++#9604=ORIENTED_EDGE('',*,*,#9603,.F.);
++#9606=ORIENTED_EDGE('',*,*,#9605,.F.);
++#9607=EDGE_LOOP('',(#9600,#9602,#9604,#9606));
++#9608=FACE_OUTER_BOUND('',#9607,.F.);
++#9609=ADVANCED_FACE('',(#9608),#9599,.F.);
++#9610=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
++#9611=DIRECTION('',(0.E0,0.E0,1.E0));
++#9612=DIRECTION('',(1.E0,0.E0,0.E0));
++#9613=AXIS2_PLACEMENT_3D('',#9610,#9611,#9612);
++#9614=CYLINDRICAL_SURFACE('',#9613,9.5E-2);
++#9615=ORIENTED_EDGE('',*,*,#6021,.T.);
++#9616=ORIENTED_EDGE('',*,*,#9605,.T.);
++#9618=ORIENTED_EDGE('',*,*,#9617,.F.);
++#9619=ORIENTED_EDGE('',*,*,#9601,.F.);
++#9620=EDGE_LOOP('',(#9615,#9616,#9618,#9619));
++#9621=FACE_OUTER_BOUND('',#9620,.F.);
++#9622=ADVANCED_FACE('',(#9621),#9614,.F.);
++#9623=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
++#9624=DIRECTION('',(0.E0,0.E0,1.E0));
++#9625=DIRECTION('',(1.E0,0.E0,0.E0));
++#9626=AXIS2_PLACEMENT_3D('',#9623,#9624,#9625);
++#9627=PLANE('',#9626);
++#9628=ORIENTED_EDGE('',*,*,#9603,.T.);
++#9629=ORIENTED_EDGE('',*,*,#9617,.T.);
++#9630=EDGE_LOOP('',(#9628,#9629));
++#9631=FACE_OUTER_BOUND('',#9630,.F.);
++#9632=ADVANCED_FACE('',(#9631),#9627,.F.);
++#9633=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
++#9634=DIRECTION('',(0.E0,0.E0,1.E0));
++#9635=DIRECTION('',(1.E0,0.E0,0.E0));
++#9636=AXIS2_PLACEMENT_3D('',#9633,#9634,#9635);
++#9637=CYLINDRICAL_SURFACE('',#9636,9.5E-2);
++#9638=ORIENTED_EDGE('',*,*,#6025,.T.);
++#9640=ORIENTED_EDGE('',*,*,#9639,.T.);
++#9642=ORIENTED_EDGE('',*,*,#9641,.F.);
++#9644=ORIENTED_EDGE('',*,*,#9643,.F.);
++#9645=EDGE_LOOP('',(#9638,#9640,#9642,#9644));
++#9646=FACE_OUTER_BOUND('',#9645,.F.);
++#9647=ADVANCED_FACE('',(#9646),#9637,.F.);
++#9648=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
++#9649=DIRECTION('',(0.E0,0.E0,1.E0));
++#9650=DIRECTION('',(1.E0,0.E0,0.E0));
++#9651=AXIS2_PLACEMENT_3D('',#9648,#9649,#9650);
++#9652=CYLINDRICAL_SURFACE('',#9651,9.5E-2);
++#9653=ORIENTED_EDGE('',*,*,#6027,.T.);
++#9654=ORIENTED_EDGE('',*,*,#9643,.T.);
++#9656=ORIENTED_EDGE('',*,*,#9655,.F.);
++#9657=ORIENTED_EDGE('',*,*,#9639,.F.);
++#9658=EDGE_LOOP('',(#9653,#9654,#9656,#9657));
++#9659=FACE_OUTER_BOUND('',#9658,.F.);
++#9660=ADVANCED_FACE('',(#9659),#9652,.F.);
++#9661=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
++#9662=DIRECTION('',(0.E0,0.E0,1.E0));
++#9663=DIRECTION('',(1.E0,0.E0,0.E0));
++#9664=AXIS2_PLACEMENT_3D('',#9661,#9662,#9663);
++#9665=PLANE('',#9664);
++#9666=ORIENTED_EDGE('',*,*,#9641,.T.);
++#9667=ORIENTED_EDGE('',*,*,#9655,.T.);
++#9668=EDGE_LOOP('',(#9666,#9667));
++#9669=FACE_OUTER_BOUND('',#9668,.F.);
++#9670=ADVANCED_FACE('',(#9669),#9665,.F.);
++#9671=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
++#9672=DIRECTION('',(0.E0,0.E0,1.E0));
++#9673=DIRECTION('',(1.E0,0.E0,0.E0));
++#9674=AXIS2_PLACEMENT_3D('',#9671,#9672,#9673);
++#9675=CYLINDRICAL_SURFACE('',#9674,9.5E-2);
++#9676=ORIENTED_EDGE('',*,*,#6037,.T.);
++#9678=ORIENTED_EDGE('',*,*,#9677,.T.);
++#9680=ORIENTED_EDGE('',*,*,#9679,.F.);
++#9682=ORIENTED_EDGE('',*,*,#9681,.F.);
++#9683=EDGE_LOOP('',(#9676,#9678,#9680,#9682));
++#9684=FACE_OUTER_BOUND('',#9683,.F.);
++#9685=ADVANCED_FACE('',(#9684),#9675,.F.);
++#9686=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
++#9687=DIRECTION('',(0.E0,0.E0,1.E0));
++#9688=DIRECTION('',(1.E0,0.E0,0.E0));
++#9689=AXIS2_PLACEMENT_3D('',#9686,#9687,#9688);
++#9690=CYLINDRICAL_SURFACE('',#9689,9.5E-2);
++#9691=ORIENTED_EDGE('',*,*,#6039,.T.);
++#9692=ORIENTED_EDGE('',*,*,#9681,.T.);
++#9694=ORIENTED_EDGE('',*,*,#9693,.F.);
++#9695=ORIENTED_EDGE('',*,*,#9677,.F.);
++#9696=EDGE_LOOP('',(#9691,#9692,#9694,#9695));
++#9697=FACE_OUTER_BOUND('',#9696,.F.);
++#9698=ADVANCED_FACE('',(#9697),#9690,.F.);
++#9699=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
++#9700=DIRECTION('',(0.E0,0.E0,1.E0));
++#9701=DIRECTION('',(1.E0,0.E0,0.E0));
++#9702=AXIS2_PLACEMENT_3D('',#9699,#9700,#9701);
++#9703=PLANE('',#9702);
++#9704=ORIENTED_EDGE('',*,*,#9679,.T.);
++#9705=ORIENTED_EDGE('',*,*,#9693,.T.);
++#9706=EDGE_LOOP('',(#9704,#9705));
++#9707=FACE_OUTER_BOUND('',#9706,.F.);
++#9708=ADVANCED_FACE('',(#9707),#9703,.F.);
++#9709=CARTESIAN_POINT('',(4.5E0,2.E0,8.E0));
++#9710=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9711=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9712=AXIS2_PLACEMENT_3D('',#9709,#9710,#9711);
++#9713=PLANE('',#9712);
++#9715=ORIENTED_EDGE('',*,*,#9714,.T.);
++#9717=ORIENTED_EDGE('',*,*,#9716,.T.);
++#9719=ORIENTED_EDGE('',*,*,#9718,.F.);
++#9720=ORIENTED_EDGE('',*,*,#6043,.F.);
++#9721=EDGE_LOOP('',(#9715,#9717,#9719,#9720));
++#9722=FACE_OUTER_BOUND('',#9721,.F.);
++#9723=ADVANCED_FACE('',(#9722),#9713,.F.);
++#9724=CARTESIAN_POINT('',(3.75E0,2.75E0,7.931076025772E0));
++#9725=DIRECTION('',(0.E0,0.E0,1.E0));
++#9726=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9727=AXIS2_PLACEMENT_3D('',#9724,#9725,#9726);
++#9728=CYLINDRICAL_SURFACE('',#9727,7.5E-1);
++#9729=ORIENTED_EDGE('',*,*,#9714,.F.);
++#9730=ORIENTED_EDGE('',*,*,#6057,.T.);
++#9732=ORIENTED_EDGE('',*,*,#9731,.T.);
++#9734=ORIENTED_EDGE('',*,*,#9733,.T.);
++#9735=EDGE_LOOP('',(#9729,#9730,#9732,#9734));
++#9736=FACE_OUTER_BOUND('',#9735,.F.);
++#9737=ADVANCED_FACE('',(#9736),#9728,.F.);
++#9738=CARTESIAN_POINT('',(4.5E0,9.5E0,8.E0));
++#9739=DIRECTION('',(1.E0,0.E0,0.E0));
++#9740=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9741=AXIS2_PLACEMENT_3D('',#9738,#9739,#9740);
++#9742=PLANE('',#9741);
++#9743=ORIENTED_EDGE('',*,*,#9731,.F.);
++#9744=ORIENTED_EDGE('',*,*,#6055,.F.);
++#9746=ORIENTED_EDGE('',*,*,#9745,.T.);
++#9748=ORIENTED_EDGE('',*,*,#9747,.T.);
++#9749=EDGE_LOOP('',(#9743,#9744,#9746,#9748));
++#9750=FACE_OUTER_BOUND('',#9749,.F.);
++#9751=ADVANCED_FACE('',(#9750),#9742,.F.);
++#9752=CARTESIAN_POINT('',(3.75E0,8.75E0,7.931076025772E0));
++#9753=DIRECTION('',(0.E0,0.E0,1.E0));
++#9754=DIRECTION('',(1.E0,0.E0,0.E0));
++#9755=AXIS2_PLACEMENT_3D('',#9752,#9753,#9754);
++#9756=CYLINDRICAL_SURFACE('',#9755,7.5E-1);
++#9757=ORIENTED_EDGE('',*,*,#9745,.F.);
++#9758=ORIENTED_EDGE('',*,*,#6053,.T.);
++#9760=ORIENTED_EDGE('',*,*,#9759,.T.);
++#9762=ORIENTED_EDGE('',*,*,#9761,.T.);
++#9763=EDGE_LOOP('',(#9757,#9758,#9760,#9762));
++#9764=FACE_OUTER_BOUND('',#9763,.F.);
++#9765=ADVANCED_FACE('',(#9764),#9756,.F.);
++#9766=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,8.E0));
++#9767=DIRECTION('',(0.E0,1.E0,0.E0));
++#9768=DIRECTION('',(1.E0,0.E0,0.E0));
++#9769=AXIS2_PLACEMENT_3D('',#9766,#9767,#9768);
++#9770=PLANE('',#9769);
++#9772=ORIENTED_EDGE('',*,*,#9771,.T.);
++#9774=ORIENTED_EDGE('',*,*,#9773,.T.);
++#9775=ORIENTED_EDGE('',*,*,#9759,.F.);
++#9776=ORIENTED_EDGE('',*,*,#6051,.F.);
++#9777=EDGE_LOOP('',(#9772,#9774,#9775,#9776));
++#9778=FACE_OUTER_BOUND('',#9777,.F.);
++#9779=ADVANCED_FACE('',(#9778),#9770,.F.);
++#9780=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,7.931076025772E0));
++#9781=DIRECTION('',(0.E0,0.E0,1.E0));
++#9782=DIRECTION('',(0.E0,1.E0,0.E0));
++#9783=AXIS2_PLACEMENT_3D('',#9780,#9781,#9782);
++#9784=CYLINDRICAL_SURFACE('',#9783,7.5E-1);
++#9785=ORIENTED_EDGE('',*,*,#9771,.F.);
++#9786=ORIENTED_EDGE('',*,*,#6049,.T.);
++#9788=ORIENTED_EDGE('',*,*,#9787,.T.);
++#9790=ORIENTED_EDGE('',*,*,#9789,.T.);
++#9791=EDGE_LOOP('',(#9785,#9786,#9788,#9790));
++#9792=FACE_OUTER_BOUND('',#9791,.F.);
++#9793=ADVANCED_FACE('',(#9792),#9784,.F.);
++#9794=CARTESIAN_POINT('',(-1.419808599362E0,2.E0,8.E0));
++#9795=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#9796=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
++#9797=AXIS2_PLACEMENT_3D('',#9794,#9795,#9796);
++#9798=PLANE('',#9797);
++#9800=ORIENTED_EDGE('',*,*,#9799,.T.);
++#9802=ORIENTED_EDGE('',*,*,#9801,.T.);
++#9803=ORIENTED_EDGE('',*,*,#9787,.F.);
++#9804=ORIENTED_EDGE('',*,*,#6047,.F.);
++#9805=EDGE_LOOP('',(#9800,#9802,#9803,#9804));
++#9806=FACE_OUTER_BOUND('',#9805,.F.);
++#9807=ADVANCED_FACE('',(#9806),#9798,.F.);
++#9808=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,7.931076025772E0));
++#9809=DIRECTION('',(0.E0,0.E0,1.E0));
++#9810=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
++#9811=AXIS2_PLACEMENT_3D('',#9808,#9809,#9810);
++#9812=CYLINDRICAL_SURFACE('',#9811,7.5E-1);
++#9813=ORIENTED_EDGE('',*,*,#9799,.F.);
++#9814=ORIENTED_EDGE('',*,*,#6045,.T.);
++#9815=ORIENTED_EDGE('',*,*,#9718,.T.);
++#9817=ORIENTED_EDGE('',*,*,#9816,.T.);
++#9818=EDGE_LOOP('',(#9813,#9814,#9815,#9817));
++#9819=FACE_OUTER_BOUND('',#9818,.F.);
++#9820=ADVANCED_FACE('',(#9819),#9812,.F.);
++#9821=CARTESIAN_POINT('',(0.E0,0.E0,8.5E0));
++#9822=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9823=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9824=AXIS2_PLACEMENT_3D('',#9821,#9822,#9823);
++#9825=PLANE('',#9824);
++#9826=ORIENTED_EDGE('',*,*,#9733,.F.);
++#9827=ORIENTED_EDGE('',*,*,#9747,.F.);
++#9828=ORIENTED_EDGE('',*,*,#9761,.F.);
++#9829=ORIENTED_EDGE('',*,*,#9773,.F.);
++#9830=ORIENTED_EDGE('',*,*,#9789,.F.);
++#9831=ORIENTED_EDGE('',*,*,#9801,.F.);
++#9832=ORIENTED_EDGE('',*,*,#9816,.F.);
++#9833=ORIENTED_EDGE('',*,*,#9716,.F.);
++#9834=EDGE_LOOP('',(#9826,#9827,#9828,#9829,#9830,#9831,#9832,#9833));
++#9835=FACE_OUTER_BOUND('',#9834,.F.);
++#9836=ADVANCED_FACE('',(#9835),#9825,.T.);
++#9837=CARTESIAN_POINT('',(2.541980859936E1,2.E0,8.E0));
++#9838=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
++#9839=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
++#9840=AXIS2_PLACEMENT_3D('',#9837,#9838,#9839);
++#9841=PLANE('',#9840);
++#9843=ORIENTED_EDGE('',*,*,#9842,.T.);
++#9844=ORIENTED_EDGE('',*,*,#6061,.T.);
++#9846=ORIENTED_EDGE('',*,*,#9845,.F.);
++#9848=ORIENTED_EDGE('',*,*,#9847,.F.);
++#9849=EDGE_LOOP('',(#9843,#9844,#9846,#9848));
++#9850=FACE_OUTER_BOUND('',#9849,.F.);
++#9851=ADVANCED_FACE('',(#9850),#9841,.T.);
++#9852=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.558891941783E0));
++#9853=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9854=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
++#9855=AXIS2_PLACEMENT_3D('',#9852,#9853,#9854);
++#9856=CYLINDRICAL_SURFACE('',#9855,7.5E-1);
++#9857=ORIENTED_EDGE('',*,*,#9842,.F.);
++#9859=ORIENTED_EDGE('',*,*,#9858,.T.);
++#9861=ORIENTED_EDGE('',*,*,#9860,.T.);
++#9862=ORIENTED_EDGE('',*,*,#6063,.T.);
++#9863=EDGE_LOOP('',(#9857,#9859,#9861,#9862));
++#9864=FACE_OUTER_BOUND('',#9863,.F.);
++#9865=ADVANCED_FACE('',(#9864),#9856,.F.);
++#9866=CARTESIAN_POINT('',(2.4E1,0.E0,8.5E0));
++#9867=DIRECTION('',(0.E0,0.E0,1.E0));
++#9868=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9869=AXIS2_PLACEMENT_3D('',#9866,#9867,#9868);
++#9870=PLANE('',#9869);
++#9872=ORIENTED_EDGE('',*,*,#9871,.F.);
++#9874=ORIENTED_EDGE('',*,*,#9873,.T.);
++#9875=ORIENTED_EDGE('',*,*,#9858,.F.);
++#9876=ORIENTED_EDGE('',*,*,#9847,.T.);
++#9878=ORIENTED_EDGE('',*,*,#9877,.F.);
++#9880=ORIENTED_EDGE('',*,*,#9879,.T.);
++#9882=ORIENTED_EDGE('',*,*,#9881,.F.);
++#9884=ORIENTED_EDGE('',*,*,#9883,.T.);
++#9885=EDGE_LOOP('',(#9872,#9874,#9875,#9876,#9878,#9880,#9882,#9884));
++#9886=FACE_OUTER_BOUND('',#9885,.F.);
++#9887=ADVANCED_FACE('',(#9886),#9870,.F.);
++#9888=CARTESIAN_POINT('',(2.025E1,2.75E0,8.558891941783E0));
++#9889=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9890=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9891=AXIS2_PLACEMENT_3D('',#9888,#9889,#9890);
++#9892=CYLINDRICAL_SURFACE('',#9891,7.5E-1);
++#9894=ORIENTED_EDGE('',*,*,#9893,.F.);
++#9895=ORIENTED_EDGE('',*,*,#9871,.T.);
++#9897=ORIENTED_EDGE('',*,*,#9896,.T.);
++#9898=ORIENTED_EDGE('',*,*,#6067,.T.);
++#9899=EDGE_LOOP('',(#9894,#9895,#9897,#9898));
++#9900=FACE_OUTER_BOUND('',#9899,.F.);
++#9901=ADVANCED_FACE('',(#9900),#9892,.F.);
++#9902=CARTESIAN_POINT('',(1.95E1,2.E0,8.E0));
++#9903=DIRECTION('',(0.E0,1.E0,0.E0));
++#9904=DIRECTION('',(1.E0,0.E0,0.E0));
++#9905=AXIS2_PLACEMENT_3D('',#9902,#9903,#9904);
++#9906=PLANE('',#9905);
++#9907=ORIENTED_EDGE('',*,*,#9893,.T.);
++#9908=ORIENTED_EDGE('',*,*,#6065,.T.);
++#9909=ORIENTED_EDGE('',*,*,#9860,.F.);
++#9910=ORIENTED_EDGE('',*,*,#9873,.F.);
++#9911=EDGE_LOOP('',(#9907,#9908,#9909,#9910));
++#9912=FACE_OUTER_BOUND('',#9911,.F.);
++#9913=ADVANCED_FACE('',(#9912),#9906,.T.);
++#9914=CARTESIAN_POINT('',(1.95E1,9.5E0,8.E0));
++#9915=DIRECTION('',(1.E0,0.E0,0.E0));
++#9916=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9917=AXIS2_PLACEMENT_3D('',#9914,#9915,#9916);
++#9918=PLANE('',#9917);
++#9919=ORIENTED_EDGE('',*,*,#9896,.F.);
++#9920=ORIENTED_EDGE('',*,*,#9883,.F.);
++#9922=ORIENTED_EDGE('',*,*,#9921,.T.);
++#9923=ORIENTED_EDGE('',*,*,#6069,.T.);
++#9924=EDGE_LOOP('',(#9919,#9920,#9922,#9923));
++#9925=FACE_OUTER_BOUND('',#9924,.F.);
++#9926=ADVANCED_FACE('',(#9925),#9918,.T.);
++#9927=CARTESIAN_POINT('',(2.025E1,8.75E0,8.558891941783E0));
++#9928=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9929=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9930=AXIS2_PLACEMENT_3D('',#9927,#9928,#9929);
++#9931=CYLINDRICAL_SURFACE('',#9930,7.5E-1);
++#9932=ORIENTED_EDGE('',*,*,#9921,.F.);
++#9933=ORIENTED_EDGE('',*,*,#9881,.T.);
++#9935=ORIENTED_EDGE('',*,*,#9934,.T.);
++#9936=ORIENTED_EDGE('',*,*,#6071,.T.);
++#9937=EDGE_LOOP('',(#9932,#9933,#9935,#9936));
++#9938=FACE_OUTER_BOUND('',#9937,.F.);
++#9939=ADVANCED_FACE('',(#9938),#9931,.F.);
++#9940=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,8.E0));
++#9941=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9942=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9943=AXIS2_PLACEMENT_3D('',#9940,#9941,#9942);
++#9944=PLANE('',#9943);
++#9946=ORIENTED_EDGE('',*,*,#9945,.T.);
++#9947=ORIENTED_EDGE('',*,*,#6073,.T.);
++#9948=ORIENTED_EDGE('',*,*,#9934,.F.);
++#9949=ORIENTED_EDGE('',*,*,#9879,.F.);
++#9950=EDGE_LOOP('',(#9946,#9947,#9948,#9949));
++#9951=FACE_OUTER_BOUND('',#9950,.F.);
++#9952=ADVANCED_FACE('',(#9951),#9944,.T.);
++#9953=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.558891941783E0));
++#9954=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9955=DIRECTION('',(0.E0,1.E0,0.E0));
++#9956=AXIS2_PLACEMENT_3D('',#9953,#9954,#9955);
++#9957=CYLINDRICAL_SURFACE('',#9956,7.5E-1);
++#9958=ORIENTED_EDGE('',*,*,#9945,.F.);
++#9959=ORIENTED_EDGE('',*,*,#9877,.T.);
++#9960=ORIENTED_EDGE('',*,*,#9845,.T.);
++#9961=ORIENTED_EDGE('',*,*,#6075,.T.);
++#9962=EDGE_LOOP('',(#9958,#9959,#9960,#9961));
++#9963=FACE_OUTER_BOUND('',#9962,.F.);
++#9964=ADVANCED_FACE('',(#9963),#9957,.F.);
++#9965=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
++#9966=DIRECTION('',(0.E0,0.E0,-1.E0));
++#9967=DIRECTION('',(1.E0,0.E0,0.E0));
++#9968=AXIS2_PLACEMENT_3D('',#9965,#9966,#9967);
++#9969=PLANE('',#9968);
++#9970=ORIENTED_EDGE('',*,*,#5726,.F.);
++#9972=ORIENTED_EDGE('',*,*,#9971,.T.);
++#9974=ORIENTED_EDGE('',*,*,#9973,.T.);
++#9976=ORIENTED_EDGE('',*,*,#9975,.F.);
++#9977=EDGE_LOOP('',(#9970,#9972,#9974,#9976));
++#9978=FACE_OUTER_BOUND('',#9977,.F.);
++#9979=ADVANCED_FACE('',(#9978),#9969,.F.);
++#9980=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
++#9981=DIRECTION('',(0.E0,-1.E0,0.E0));
++#9982=DIRECTION('',(1.E0,0.E0,0.E0));
++#9983=AXIS2_PLACEMENT_3D('',#9980,#9981,#9982);
++#9984=CYLINDRICAL_SURFACE('',#9983,5.625E-1);
++#9985=ORIENTED_EDGE('',*,*,#5732,.F.);
++#9987=ORIENTED_EDGE('',*,*,#9986,.T.);
++#9989=ORIENTED_EDGE('',*,*,#9988,.T.);
++#9990=ORIENTED_EDGE('',*,*,#9971,.F.);
++#9991=EDGE_LOOP('',(#9985,#9987,#9989,#9990));
++#9992=FACE_OUTER_BOUND('',#9991,.F.);
++#9993=ADVANCED_FACE('',(#9992),#9984,.F.);
++#9994=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
++#9995=DIRECTION('',(0.E0,0.E0,1.E0));
++#9996=DIRECTION('',(-1.E0,0.E0,0.E0));
++#9997=AXIS2_PLACEMENT_3D('',#9994,#9995,#9996);
++#9998=PLANE('',#9997);
++#9999=ORIENTED_EDGE('',*,*,#5730,.F.);
++#10001=ORIENTED_EDGE('',*,*,#10000,.T.);
++#10003=ORIENTED_EDGE('',*,*,#10002,.T.);
++#10004=ORIENTED_EDGE('',*,*,#9986,.F.);
++#10005=EDGE_LOOP('',(#9999,#10001,#10003,#10004));
++#10006=FACE_OUTER_BOUND('',#10005,.F.);
++#10007=ADVANCED_FACE('',(#10006),#9998,.F.);
++#10008=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
++#10009=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10010=DIRECTION('',(1.E0,0.E0,0.E0));
++#10011=AXIS2_PLACEMENT_3D('',#10008,#10009,#10010);
++#10012=CYLINDRICAL_SURFACE('',#10011,5.625E-1);
++#10013=ORIENTED_EDGE('',*,*,#5728,.F.);
++#10014=ORIENTED_EDGE('',*,*,#9975,.T.);
++#10016=ORIENTED_EDGE('',*,*,#10015,.T.);
++#10017=ORIENTED_EDGE('',*,*,#10000,.F.);
++#10018=EDGE_LOOP('',(#10013,#10014,#10016,#10017));
++#10019=FACE_OUTER_BOUND('',#10018,.F.);
++#10020=ADVANCED_FACE('',(#10019),#10012,.F.);
++#10021=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10022=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10023=DIRECTION('',(1.E0,0.E0,0.E0));
++#10024=AXIS2_PLACEMENT_3D('',#10021,#10022,#10023);
++#10025=PLANE('',#10024);
++#10026=ORIENTED_EDGE('',*,*,#9973,.F.);
++#10027=ORIENTED_EDGE('',*,*,#9988,.F.);
++#10028=ORIENTED_EDGE('',*,*,#10002,.F.);
++#10029=ORIENTED_EDGE('',*,*,#10015,.F.);
++#10030=EDGE_LOOP('',(#10026,#10027,#10028,#10029));
++#10031=FACE_OUTER_BOUND('',#10030,.F.);
++#10032=ADVANCED_FACE('',(#10031),#10025,.T.);
++#10033=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10034=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10035=DIRECTION('',(1.E0,0.E0,0.E0));
++#10036=AXIS2_PLACEMENT_3D('',#10033,#10034,#10035);
++#10037=PLANE('',#10036);
++#10039=ORIENTED_EDGE('',*,*,#10038,.F.);
++#10041=ORIENTED_EDGE('',*,*,#10040,.F.);
++#10043=ORIENTED_EDGE('',*,*,#10042,.F.);
++#10045=ORIENTED_EDGE('',*,*,#10044,.F.);
++#10047=ORIENTED_EDGE('',*,*,#10046,.F.);
++#10048=EDGE_LOOP('',(#10039,#10041,#10043,#10045,#10047));
++#10049=FACE_OUTER_BOUND('',#10048,.F.);
++#10050=ADVANCED_FACE('',(#10049),#10037,.T.);
++#10051=CARTESIAN_POINT('',(1.455736763592E0,-6.892397422826E-2,
++4.577195232320E0));
++#10052=DIRECTION('',(0.E0,1.E0,0.E0));
++#10053=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#10054=AXIS2_PLACEMENT_3D('',#10051,#10052,#10053);
++#10055=CYLINDRICAL_SURFACE('',#10054,7.5E-1);
++#10057=ORIENTED_EDGE('',*,*,#10056,.F.);
++#10058=ORIENTED_EDGE('',*,*,#5738,.T.);
++#10060=ORIENTED_EDGE('',*,*,#10059,.T.);
++#10061=ORIENTED_EDGE('',*,*,#10038,.T.);
++#10062=EDGE_LOOP('',(#10057,#10058,#10060,#10061));
++#10063=FACE_OUTER_BOUND('',#10062,.F.);
++#10064=ADVANCED_FACE('',(#10063),#10055,.F.);
++#10065=CARTESIAN_POINT('',(6.875E-1,0.E0,4.284771824132E0));
++#10066=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#10067=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#10068=AXIS2_PLACEMENT_3D('',#10065,#10066,#10067);
++#10069=PLANE('',#10068);
++#10070=ORIENTED_EDGE('',*,*,#10056,.T.);
++#10071=ORIENTED_EDGE('',*,*,#10046,.T.);
++#10073=ORIENTED_EDGE('',*,*,#10072,.F.);
++#10074=ORIENTED_EDGE('',*,*,#5740,.F.);
++#10075=EDGE_LOOP('',(#10070,#10071,#10073,#10074));
++#10076=FACE_OUTER_BOUND('',#10075,.F.);
++#10077=ADVANCED_FACE('',(#10076),#10069,.F.);
++#10078=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
++#10079=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10080=DIRECTION('',(1.E0,0.E0,0.E0));
++#10081=AXIS2_PLACEMENT_3D('',#10078,#10079,#10080);
++#10082=CYLINDRICAL_SURFACE('',#10081,8.669989027347E-1);
++#10083=ORIENTED_EDGE('',*,*,#5742,.F.);
++#10084=ORIENTED_EDGE('',*,*,#10072,.T.);
++#10085=ORIENTED_EDGE('',*,*,#10044,.T.);
++#10087=ORIENTED_EDGE('',*,*,#10086,.F.);
++#10088=EDGE_LOOP('',(#10083,#10084,#10085,#10087));
++#10089=FACE_OUTER_BOUND('',#10088,.F.);
++#10090=ADVANCED_FACE('',(#10089),#10082,.F.);
++#10091=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
++#10092=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10093=DIRECTION('',(1.E0,0.E0,0.E0));
++#10094=AXIS2_PLACEMENT_3D('',#10091,#10092,#10093);
++#10095=CYLINDRICAL_SURFACE('',#10094,5.6875E0);
++#10096=ORIENTED_EDGE('',*,*,#5744,.T.);
++#10097=ORIENTED_EDGE('',*,*,#10086,.T.);
++#10098=ORIENTED_EDGE('',*,*,#10042,.T.);
++#10100=ORIENTED_EDGE('',*,*,#10099,.F.);
++#10101=EDGE_LOOP('',(#10096,#10097,#10098,#10100));
++#10102=FACE_OUTER_BOUND('',#10101,.F.);
++#10103=ADVANCED_FACE('',(#10102),#10095,.T.);
++#10104=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
++#10105=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10106=DIRECTION('',(1.E0,0.E0,0.E0));
++#10107=AXIS2_PLACEMENT_3D('',#10104,#10105,#10106);
++#10108=CYLINDRICAL_SURFACE('',#10107,9.225E-1);
++#10109=ORIENTED_EDGE('',*,*,#10059,.F.);
++#10110=ORIENTED_EDGE('',*,*,#5736,.F.);
++#10111=ORIENTED_EDGE('',*,*,#10099,.T.);
++#10112=ORIENTED_EDGE('',*,*,#10040,.T.);
++#10113=EDGE_LOOP('',(#10109,#10110,#10111,#10112));
++#10114=FACE_OUTER_BOUND('',#10113,.F.);
++#10115=ADVANCED_FACE('',(#10114),#10108,.F.);
++#10116=CARTESIAN_POINT('',(-1.85E-1,7.463919417831E-1,7.815E0));
++#10117=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10118=DIRECTION('',(1.E0,0.E0,0.E0));
++#10119=AXIS2_PLACEMENT_3D('',#10116,#10117,#10118);
++#10120=CYLINDRICAL_SURFACE('',#10119,8.75E-1);
++#10122=ORIENTED_EDGE('',*,*,#10121,.T.);
++#10123=ORIENTED_EDGE('',*,*,#5748,.T.);
++#10125=ORIENTED_EDGE('',*,*,#10124,.F.);
++#10127=ORIENTED_EDGE('',*,*,#10126,.T.);
++#10128=EDGE_LOOP('',(#10122,#10123,#10125,#10127));
++#10129=FACE_OUTER_BOUND('',#10128,.F.);
++#10130=ADVANCED_FACE('',(#10129),#10120,.T.);
++#10131=CARTESIAN_POINT('',(6.9E-1,0.E0,8.69E0));
++#10132=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10133=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10134=AXIS2_PLACEMENT_3D('',#10131,#10132,#10133);
++#10135=PLANE('',#10134);
++#10136=ORIENTED_EDGE('',*,*,#10121,.F.);
++#10138=ORIENTED_EDGE('',*,*,#10137,.T.);
++#10140=ORIENTED_EDGE('',*,*,#10139,.F.);
++#10141=ORIENTED_EDGE('',*,*,#5750,.F.);
++#10142=EDGE_LOOP('',(#10136,#10138,#10140,#10141));
++#10143=FACE_OUTER_BOUND('',#10142,.F.);
++#10144=ADVANCED_FACE('',(#10143),#10135,.F.);
++#10145=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10146=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10147=DIRECTION('',(1.E0,0.E0,0.E0));
++#10148=AXIS2_PLACEMENT_3D('',#10145,#10146,#10147);
++#10149=PLANE('',#10148);
++#10151=ORIENTED_EDGE('',*,*,#10150,.F.);
++#10153=ORIENTED_EDGE('',*,*,#10152,.F.);
++#10155=ORIENTED_EDGE('',*,*,#10154,.F.);
++#10157=ORIENTED_EDGE('',*,*,#10156,.F.);
++#10158=ORIENTED_EDGE('',*,*,#10137,.F.);
++#10159=ORIENTED_EDGE('',*,*,#10126,.F.);
++#10161=ORIENTED_EDGE('',*,*,#10160,.F.);
++#10163=ORIENTED_EDGE('',*,*,#10162,.F.);
++#10165=ORIENTED_EDGE('',*,*,#10164,.F.);
++#10167=ORIENTED_EDGE('',*,*,#10166,.F.);
++#10169=ORIENTED_EDGE('',*,*,#10168,.F.);
++#10171=ORIENTED_EDGE('',*,*,#10170,.F.);
++#10173=ORIENTED_EDGE('',*,*,#10172,.F.);
++#10175=ORIENTED_EDGE('',*,*,#10174,.F.);
++#10176=EDGE_LOOP('',(#10151,#10153,#10155,#10157,#10158,#10159,#10161,#10163,
++#10165,#10167,#10169,#10171,#10173,#10175));
++#10177=FACE_OUTER_BOUND('',#10176,.F.);
++#10178=ADVANCED_FACE('',(#10177),#10149,.T.);
++#10179=CARTESIAN_POINT('',(1.8125E0,0.E0,8.69E0));
++#10180=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10181=DIRECTION('',(1.E0,0.E0,0.E0));
++#10182=AXIS2_PLACEMENT_3D('',#10179,#10180,#10181);
++#10183=PLANE('',#10182);
++#10185=ORIENTED_EDGE('',*,*,#10184,.F.);
++#10186=ORIENTED_EDGE('',*,*,#10150,.T.);
++#10188=ORIENTED_EDGE('',*,*,#10187,.F.);
++#10189=ORIENTED_EDGE('',*,*,#5758,.F.);
++#10190=EDGE_LOOP('',(#10185,#10186,#10188,#10189));
++#10191=FACE_OUTER_BOUND('',#10190,.F.);
++#10192=ADVANCED_FACE('',(#10191),#10183,.F.);
++#10193=CARTESIAN_POINT('',(2.6875E0,7.463919417831E-1,7.815E0));
++#10194=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10195=DIRECTION('',(0.E0,0.E0,1.E0));
++#10196=AXIS2_PLACEMENT_3D('',#10193,#10194,#10195);
++#10197=CYLINDRICAL_SURFACE('',#10196,8.75E-1);
++#10198=ORIENTED_EDGE('',*,*,#10184,.T.);
++#10199=ORIENTED_EDGE('',*,*,#5756,.T.);
++#10201=ORIENTED_EDGE('',*,*,#10200,.F.);
++#10202=ORIENTED_EDGE('',*,*,#10152,.T.);
++#10203=EDGE_LOOP('',(#10198,#10199,#10201,#10202));
++#10204=FACE_OUTER_BOUND('',#10203,.F.);
++#10205=ADVANCED_FACE('',(#10204),#10197,.T.);
++#10206=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
++#10207=DIRECTION('',(1.E0,0.E0,0.E0));
++#10208=DIRECTION('',(0.E0,0.E0,1.E0));
++#10209=AXIS2_PLACEMENT_3D('',#10206,#10207,#10208);
++#10210=PLANE('',#10209);
++#10211=ORIENTED_EDGE('',*,*,#10200,.T.);
++#10212=ORIENTED_EDGE('',*,*,#5754,.F.);
++#10214=ORIENTED_EDGE('',*,*,#10213,.T.);
++#10215=ORIENTED_EDGE('',*,*,#10154,.T.);
++#10216=EDGE_LOOP('',(#10211,#10212,#10214,#10215));
++#10217=FACE_OUTER_BOUND('',#10216,.F.);
++#10218=ADVANCED_FACE('',(#10217),#10210,.F.);
++#10219=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
++#10220=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10221=DIRECTION('',(1.E0,0.E0,0.E0));
++#10222=AXIS2_PLACEMENT_3D('',#10219,#10220,#10221);
++#10223=CYLINDRICAL_SURFACE('',#10222,5.6125E-1);
++#10224=ORIENTED_EDGE('',*,*,#5752,.F.);
++#10225=ORIENTED_EDGE('',*,*,#10139,.T.);
++#10226=ORIENTED_EDGE('',*,*,#10156,.T.);
++#10227=ORIENTED_EDGE('',*,*,#10213,.F.);
++#10228=EDGE_LOOP('',(#10224,#10225,#10226,#10227));
++#10229=FACE_OUTER_BOUND('',#10228,.F.);
++#10230=ADVANCED_FACE('',(#10229),#10223,.F.);
++#10231=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,9.565E0));
++#10232=DIRECTION('',(0.E0,1.E0,0.E0));
++#10233=DIRECTION('',(1.E0,0.E0,0.E0));
++#10234=AXIS2_PLACEMENT_3D('',#10231,#10232,#10233);
++#10235=CYLINDRICAL_SURFACE('',#10234,8.75E-1);
++#10237=ORIENTED_EDGE('',*,*,#10236,.F.);
++#10238=ORIENTED_EDGE('',*,*,#5760,.T.);
++#10239=ORIENTED_EDGE('',*,*,#10187,.T.);
++#10240=ORIENTED_EDGE('',*,*,#10174,.T.);
++#10241=EDGE_LOOP('',(#10237,#10238,#10239,#10240));
++#10242=FACE_OUTER_BOUND('',#10241,.F.);
++#10243=ADVANCED_FACE('',(#10242),#10235,.F.);
++#10244=CARTESIAN_POINT('',(4.3125E0,0.E0,8.69E0));
++#10245=DIRECTION('',(1.E0,0.E0,0.E0));
++#10246=DIRECTION('',(0.E0,0.E0,1.E0));
++#10247=AXIS2_PLACEMENT_3D('',#10244,#10245,#10246);
++#10248=PLANE('',#10247);
++#10249=ORIENTED_EDGE('',*,*,#10236,.T.);
++#10250=ORIENTED_EDGE('',*,*,#10172,.T.);
++#10252=ORIENTED_EDGE('',*,*,#10251,.F.);
++#10253=ORIENTED_EDGE('',*,*,#5762,.F.);
++#10254=EDGE_LOOP('',(#10249,#10250,#10252,#10253));
++#10255=FACE_OUTER_BOUND('',#10254,.F.);
++#10256=ADVANCED_FACE('',(#10255),#10248,.F.);
++#10257=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,1.0375E1));
++#10258=DIRECTION('',(0.E0,1.E0,0.E0));
++#10259=DIRECTION('',(0.E0,0.E0,1.E0));
++#10260=AXIS2_PLACEMENT_3D('',#10257,#10258,#10259);
++#10261=CYLINDRICAL_SURFACE('',#10260,8.75E-1);
++#10263=ORIENTED_EDGE('',*,*,#10262,.F.);
++#10264=ORIENTED_EDGE('',*,*,#5764,.T.);
++#10265=ORIENTED_EDGE('',*,*,#10251,.T.);
++#10266=ORIENTED_EDGE('',*,*,#10170,.T.);
++#10267=EDGE_LOOP('',(#10263,#10264,#10265,#10266));
++#10268=FACE_OUTER_BOUND('',#10267,.F.);
++#10269=ADVANCED_FACE('',(#10268),#10261,.F.);
++#10270=CARTESIAN_POINT('',(4.3125E0,0.E0,1.125E1));
++#10271=DIRECTION('',(0.E0,0.E0,1.E0));
++#10272=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10273=AXIS2_PLACEMENT_3D('',#10270,#10271,#10272);
++#10274=PLANE('',#10273);
++#10276=ORIENTED_EDGE('',*,*,#10275,.F.);
++#10277=ORIENTED_EDGE('',*,*,#5766,.F.);
++#10278=ORIENTED_EDGE('',*,*,#10262,.T.);
++#10279=ORIENTED_EDGE('',*,*,#10168,.T.);
++#10280=EDGE_LOOP('',(#10276,#10277,#10278,#10279));
++#10281=FACE_OUTER_BOUND('',#10280,.F.);
++#10282=ADVANCED_FACE('',(#10281),#10274,.F.);
++#10283=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,1.0375E1));
++#10284=DIRECTION('',(0.E0,1.E0,0.E0));
++#10285=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10286=AXIS2_PLACEMENT_3D('',#10283,#10284,#10285);
++#10287=CYLINDRICAL_SURFACE('',#10286,8.75E-1);
++#10289=ORIENTED_EDGE('',*,*,#10288,.F.);
++#10290=ORIENTED_EDGE('',*,*,#5768,.T.);
++#10291=ORIENTED_EDGE('',*,*,#10275,.T.);
++#10292=ORIENTED_EDGE('',*,*,#10166,.T.);
++#10293=EDGE_LOOP('',(#10289,#10290,#10291,#10292));
++#10294=FACE_OUTER_BOUND('',#10293,.F.);
++#10295=ADVANCED_FACE('',(#10294),#10287,.F.);
++#10296=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.125E1));
++#10297=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10298=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10299=AXIS2_PLACEMENT_3D('',#10296,#10297,#10298);
++#10300=PLANE('',#10299);
++#10301=ORIENTED_EDGE('',*,*,#10288,.T.);
++#10302=ORIENTED_EDGE('',*,*,#10164,.T.);
++#10304=ORIENTED_EDGE('',*,*,#10303,.F.);
++#10305=ORIENTED_EDGE('',*,*,#5770,.F.);
++#10306=EDGE_LOOP('',(#10301,#10302,#10304,#10305));
++#10307=FACE_OUTER_BOUND('',#10306,.F.);
++#10308=ADVANCED_FACE('',(#10307),#10300,.F.);
++#10309=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,9.565E0));
++#10310=DIRECTION('',(0.E0,1.E0,0.E0));
++#10311=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10312=AXIS2_PLACEMENT_3D('',#10309,#10310,#10311);
++#10313=CYLINDRICAL_SURFACE('',#10312,8.75E-1);
++#10315=ORIENTED_EDGE('',*,*,#10314,.F.);
++#10316=ORIENTED_EDGE('',*,*,#5772,.T.);
++#10317=ORIENTED_EDGE('',*,*,#10303,.T.);
++#10318=ORIENTED_EDGE('',*,*,#10162,.T.);
++#10319=EDGE_LOOP('',(#10315,#10316,#10317,#10318));
++#10320=FACE_OUTER_BOUND('',#10319,.F.);
++#10321=ADVANCED_FACE('',(#10320),#10313,.F.);
++#10322=CARTESIAN_POINT('',(-1.3125E0,0.E0,8.69E0));
++#10323=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10324=DIRECTION('',(1.E0,0.E0,0.E0));
++#10325=AXIS2_PLACEMENT_3D('',#10322,#10323,#10324);
++#10326=PLANE('',#10325);
++#10327=ORIENTED_EDGE('',*,*,#10124,.T.);
++#10328=ORIENTED_EDGE('',*,*,#5774,.F.);
++#10329=ORIENTED_EDGE('',*,*,#10314,.T.);
++#10330=ORIENTED_EDGE('',*,*,#10160,.T.);
++#10331=EDGE_LOOP('',(#10327,#10328,#10329,#10330));
++#10332=FACE_OUTER_BOUND('',#10331,.F.);
++#10333=ADVANCED_FACE('',(#10332),#10326,.F.);
++#10334=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
++#10335=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10336=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10337=AXIS2_PLACEMENT_3D('',#10334,#10335,#10336);
++#10338=PLANE('',#10337);
++#10339=ORIENTED_EDGE('',*,*,#5778,.F.);
++#10341=ORIENTED_EDGE('',*,*,#10340,.T.);
++#10343=ORIENTED_EDGE('',*,*,#10342,.T.);
++#10345=ORIENTED_EDGE('',*,*,#10344,.F.);
++#10346=EDGE_LOOP('',(#10339,#10341,#10343,#10345));
++#10347=FACE_OUTER_BOUND('',#10346,.F.);
++#10348=ADVANCED_FACE('',(#10347),#10338,.F.);
++#10349=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
++#10350=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10351=DIRECTION('',(1.E0,0.E0,0.E0));
++#10352=AXIS2_PLACEMENT_3D('',#10349,#10350,#10351);
++#10353=CYLINDRICAL_SURFACE('',#10352,5.625E-1);
++#10354=ORIENTED_EDGE('',*,*,#5784,.F.);
++#10356=ORIENTED_EDGE('',*,*,#10355,.T.);
++#10358=ORIENTED_EDGE('',*,*,#10357,.T.);
++#10359=ORIENTED_EDGE('',*,*,#10340,.F.);
++#10360=EDGE_LOOP('',(#10354,#10356,#10358,#10359));
++#10361=FACE_OUTER_BOUND('',#10360,.F.);
++#10362=ADVANCED_FACE('',(#10361),#10353,.F.);
++#10363=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
++#10364=DIRECTION('',(1.E0,0.E0,0.E0));
++#10365=DIRECTION('',(0.E0,0.E0,1.E0));
++#10366=AXIS2_PLACEMENT_3D('',#10363,#10364,#10365);
++#10367=PLANE('',#10366);
++#10368=ORIENTED_EDGE('',*,*,#5782,.F.);
++#10370=ORIENTED_EDGE('',*,*,#10369,.T.);
++#10372=ORIENTED_EDGE('',*,*,#10371,.T.);
++#10373=ORIENTED_EDGE('',*,*,#10355,.F.);
++#10374=EDGE_LOOP('',(#10368,#10370,#10372,#10373));
++#10375=FACE_OUTER_BOUND('',#10374,.F.);
++#10376=ADVANCED_FACE('',(#10375),#10367,.F.);
++#10377=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
++#10378=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10379=DIRECTION('',(1.E0,0.E0,0.E0));
++#10380=AXIS2_PLACEMENT_3D('',#10377,#10378,#10379);
++#10381=CYLINDRICAL_SURFACE('',#10380,5.625E-1);
++#10382=ORIENTED_EDGE('',*,*,#5780,.F.);
++#10383=ORIENTED_EDGE('',*,*,#10344,.T.);
++#10385=ORIENTED_EDGE('',*,*,#10384,.T.);
++#10386=ORIENTED_EDGE('',*,*,#10369,.F.);
++#10387=EDGE_LOOP('',(#10382,#10383,#10385,#10386));
++#10388=FACE_OUTER_BOUND('',#10387,.F.);
++#10389=ADVANCED_FACE('',(#10388),#10381,.F.);
++#10390=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10391=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10392=DIRECTION('',(1.E0,0.E0,0.E0));
++#10393=AXIS2_PLACEMENT_3D('',#10390,#10391,#10392);
++#10394=PLANE('',#10393);
++#10395=ORIENTED_EDGE('',*,*,#10342,.F.);
++#10396=ORIENTED_EDGE('',*,*,#10357,.F.);
++#10397=ORIENTED_EDGE('',*,*,#10371,.F.);
++#10398=ORIENTED_EDGE('',*,*,#10384,.F.);
++#10399=EDGE_LOOP('',(#10395,#10396,#10397,#10398));
++#10400=FACE_OUTER_BOUND('',#10399,.F.);
++#10401=ADVANCED_FACE('',(#10400),#10394,.T.);
++#10402=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
++#10403=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10404=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10405=AXIS2_PLACEMENT_3D('',#10402,#10403,#10404);
++#10406=PLANE('',#10405);
++#10407=ORIENTED_EDGE('',*,*,#5788,.F.);
++#10409=ORIENTED_EDGE('',*,*,#10408,.T.);
++#10411=ORIENTED_EDGE('',*,*,#10410,.T.);
++#10413=ORIENTED_EDGE('',*,*,#10412,.F.);
++#10414=EDGE_LOOP('',(#10407,#10409,#10411,#10413));
++#10415=FACE_OUTER_BOUND('',#10414,.F.);
++#10416=ADVANCED_FACE('',(#10415),#10406,.F.);
++#10417=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
++#10418=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10419=DIRECTION('',(1.E0,0.E0,0.E0));
++#10420=AXIS2_PLACEMENT_3D('',#10417,#10418,#10419);
++#10421=CYLINDRICAL_SURFACE('',#10420,5.625E-1);
++#10422=ORIENTED_EDGE('',*,*,#5794,.F.);
++#10424=ORIENTED_EDGE('',*,*,#10423,.T.);
++#10426=ORIENTED_EDGE('',*,*,#10425,.T.);
++#10427=ORIENTED_EDGE('',*,*,#10408,.F.);
++#10428=EDGE_LOOP('',(#10422,#10424,#10426,#10427));
++#10429=FACE_OUTER_BOUND('',#10428,.F.);
++#10430=ADVANCED_FACE('',(#10429),#10421,.F.);
++#10431=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
++#10432=DIRECTION('',(1.E0,0.E0,0.E0));
++#10433=DIRECTION('',(0.E0,0.E0,1.E0));
++#10434=AXIS2_PLACEMENT_3D('',#10431,#10432,#10433);
++#10435=PLANE('',#10434);
++#10436=ORIENTED_EDGE('',*,*,#5792,.F.);
++#10438=ORIENTED_EDGE('',*,*,#10437,.T.);
++#10440=ORIENTED_EDGE('',*,*,#10439,.T.);
++#10441=ORIENTED_EDGE('',*,*,#10423,.F.);
++#10442=EDGE_LOOP('',(#10436,#10438,#10440,#10441));
++#10443=FACE_OUTER_BOUND('',#10442,.F.);
++#10444=ADVANCED_FACE('',(#10443),#10435,.F.);
++#10445=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
++#10446=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10447=DIRECTION('',(1.E0,0.E0,0.E0));
++#10448=AXIS2_PLACEMENT_3D('',#10445,#10446,#10447);
++#10449=CYLINDRICAL_SURFACE('',#10448,5.625E-1);
++#10450=ORIENTED_EDGE('',*,*,#5790,.F.);
++#10451=ORIENTED_EDGE('',*,*,#10412,.T.);
++#10453=ORIENTED_EDGE('',*,*,#10452,.T.);
++#10454=ORIENTED_EDGE('',*,*,#10437,.F.);
++#10455=EDGE_LOOP('',(#10450,#10451,#10453,#10454));
++#10456=FACE_OUTER_BOUND('',#10455,.F.);
++#10457=ADVANCED_FACE('',(#10456),#10449,.F.);
++#10458=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10459=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10460=DIRECTION('',(1.E0,0.E0,0.E0));
++#10461=AXIS2_PLACEMENT_3D('',#10458,#10459,#10460);
++#10462=PLANE('',#10461);
++#10463=ORIENTED_EDGE('',*,*,#10410,.F.);
++#10464=ORIENTED_EDGE('',*,*,#10425,.F.);
++#10465=ORIENTED_EDGE('',*,*,#10439,.F.);
++#10466=ORIENTED_EDGE('',*,*,#10452,.F.);
++#10467=EDGE_LOOP('',(#10463,#10464,#10465,#10466));
++#10468=FACE_OUTER_BOUND('',#10467,.F.);
++#10469=ADVANCED_FACE('',(#10468),#10462,.T.);
++#10470=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
++#10471=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10472=DIRECTION('',(1.E0,0.E0,0.E0));
++#10473=AXIS2_PLACEMENT_3D('',#10470,#10471,#10472);
++#10474=PLANE('',#10473);
++#10475=ORIENTED_EDGE('',*,*,#5798,.F.);
++#10477=ORIENTED_EDGE('',*,*,#10476,.T.);
++#10479=ORIENTED_EDGE('',*,*,#10478,.T.);
++#10481=ORIENTED_EDGE('',*,*,#10480,.F.);
++#10482=EDGE_LOOP('',(#10475,#10477,#10479,#10481));
++#10483=FACE_OUTER_BOUND('',#10482,.F.);
++#10484=ADVANCED_FACE('',(#10483),#10474,.F.);
++#10485=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
++#10486=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10487=DIRECTION('',(1.E0,0.E0,0.E0));
++#10488=AXIS2_PLACEMENT_3D('',#10485,#10486,#10487);
++#10489=CYLINDRICAL_SURFACE('',#10488,5.E-1);
++#10490=ORIENTED_EDGE('',*,*,#5804,.F.);
++#10492=ORIENTED_EDGE('',*,*,#10491,.T.);
++#10494=ORIENTED_EDGE('',*,*,#10493,.T.);
++#10495=ORIENTED_EDGE('',*,*,#10476,.F.);
++#10496=EDGE_LOOP('',(#10490,#10492,#10494,#10495));
++#10497=FACE_OUTER_BOUND('',#10496,.F.);
++#10498=ADVANCED_FACE('',(#10497),#10489,.F.);
++#10499=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
++#10500=DIRECTION('',(0.E0,0.E0,1.E0));
++#10501=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10502=AXIS2_PLACEMENT_3D('',#10499,#10500,#10501);
++#10503=PLANE('',#10502);
++#10504=ORIENTED_EDGE('',*,*,#5802,.F.);
++#10506=ORIENTED_EDGE('',*,*,#10505,.T.);
++#10508=ORIENTED_EDGE('',*,*,#10507,.T.);
++#10509=ORIENTED_EDGE('',*,*,#10491,.F.);
++#10510=EDGE_LOOP('',(#10504,#10506,#10508,#10509));
++#10511=FACE_OUTER_BOUND('',#10510,.F.);
++#10512=ADVANCED_FACE('',(#10511),#10503,.F.);
++#10513=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
++#10514=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10515=DIRECTION('',(1.E0,0.E0,0.E0));
++#10516=AXIS2_PLACEMENT_3D('',#10513,#10514,#10515);
++#10517=CYLINDRICAL_SURFACE('',#10516,5.E-1);
++#10518=ORIENTED_EDGE('',*,*,#5800,.F.);
++#10519=ORIENTED_EDGE('',*,*,#10480,.T.);
++#10521=ORIENTED_EDGE('',*,*,#10520,.T.);
++#10522=ORIENTED_EDGE('',*,*,#10505,.F.);
++#10523=EDGE_LOOP('',(#10518,#10519,#10521,#10522));
++#10524=FACE_OUTER_BOUND('',#10523,.F.);
++#10525=ADVANCED_FACE('',(#10524),#10517,.F.);
++#10526=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10527=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10528=DIRECTION('',(1.E0,0.E0,0.E0));
++#10529=AXIS2_PLACEMENT_3D('',#10526,#10527,#10528);
++#10530=PLANE('',#10529);
++#10531=ORIENTED_EDGE('',*,*,#10478,.F.);
++#10532=ORIENTED_EDGE('',*,*,#10493,.F.);
++#10533=ORIENTED_EDGE('',*,*,#10507,.F.);
++#10534=ORIENTED_EDGE('',*,*,#10520,.F.);
++#10535=EDGE_LOOP('',(#10531,#10532,#10533,#10534));
++#10536=FACE_OUTER_BOUND('',#10535,.F.);
++#10537=ADVANCED_FACE('',(#10536),#10530,.T.);
++#10538=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
++#10539=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10540=DIRECTION('',(1.E0,0.E0,0.E0));
++#10541=AXIS2_PLACEMENT_3D('',#10538,#10539,#10540);
++#10542=PLANE('',#10541);
++#10543=ORIENTED_EDGE('',*,*,#5808,.F.);
++#10545=ORIENTED_EDGE('',*,*,#10544,.T.);
++#10547=ORIENTED_EDGE('',*,*,#10546,.T.);
++#10549=ORIENTED_EDGE('',*,*,#10548,.F.);
++#10550=EDGE_LOOP('',(#10543,#10545,#10547,#10549));
++#10551=FACE_OUTER_BOUND('',#10550,.F.);
++#10552=ADVANCED_FACE('',(#10551),#10542,.F.);
++#10553=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
++#10554=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10555=DIRECTION('',(1.E0,0.E0,0.E0));
++#10556=AXIS2_PLACEMENT_3D('',#10553,#10554,#10555);
++#10557=CYLINDRICAL_SURFACE('',#10556,4.375E-1);
++#10558=ORIENTED_EDGE('',*,*,#5814,.F.);
++#10560=ORIENTED_EDGE('',*,*,#10559,.T.);
++#10562=ORIENTED_EDGE('',*,*,#10561,.T.);
++#10563=ORIENTED_EDGE('',*,*,#10544,.F.);
++#10564=EDGE_LOOP('',(#10558,#10560,#10562,#10563));
++#10565=FACE_OUTER_BOUND('',#10564,.F.);
++#10566=ADVANCED_FACE('',(#10565),#10557,.F.);
++#10567=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
++#10568=DIRECTION('',(0.E0,0.E0,1.E0));
++#10569=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10570=AXIS2_PLACEMENT_3D('',#10567,#10568,#10569);
++#10571=PLANE('',#10570);
++#10572=ORIENTED_EDGE('',*,*,#5812,.F.);
++#10574=ORIENTED_EDGE('',*,*,#10573,.T.);
++#10576=ORIENTED_EDGE('',*,*,#10575,.T.);
++#10577=ORIENTED_EDGE('',*,*,#10559,.F.);
++#10578=EDGE_LOOP('',(#10572,#10574,#10576,#10577));
++#10579=FACE_OUTER_BOUND('',#10578,.F.);
++#10580=ADVANCED_FACE('',(#10579),#10571,.F.);
++#10581=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
++#10582=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10583=DIRECTION('',(1.E0,0.E0,0.E0));
++#10584=AXIS2_PLACEMENT_3D('',#10581,#10582,#10583);
++#10585=CYLINDRICAL_SURFACE('',#10584,4.375E-1);
++#10586=ORIENTED_EDGE('',*,*,#5810,.F.);
++#10587=ORIENTED_EDGE('',*,*,#10548,.T.);
++#10589=ORIENTED_EDGE('',*,*,#10588,.T.);
++#10590=ORIENTED_EDGE('',*,*,#10573,.F.);
++#10591=EDGE_LOOP('',(#10586,#10587,#10589,#10590));
++#10592=FACE_OUTER_BOUND('',#10591,.F.);
++#10593=ADVANCED_FACE('',(#10592),#10585,.F.);
++#10594=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
++#10595=DIRECTION('',(0.E0,-1.E0,0.E0));
++#10596=DIRECTION('',(1.E0,0.E0,0.E0));
++#10597=AXIS2_PLACEMENT_3D('',#10594,#10595,#10596);
++#10598=PLANE('',#10597);
++#10599=ORIENTED_EDGE('',*,*,#10546,.F.);
++#10600=ORIENTED_EDGE('',*,*,#10561,.F.);
++#10601=ORIENTED_EDGE('',*,*,#10575,.F.);
++#10602=ORIENTED_EDGE('',*,*,#10588,.F.);
++#10603=EDGE_LOOP('',(#10599,#10600,#10601,#10602));
++#10604=FACE_OUTER_BOUND('',#10603,.F.);
++#10605=ADVANCED_FACE('',(#10604),#10598,.T.);
++#10606=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
++#10607=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10608=DIRECTION('',(1.E0,0.E0,0.E0));
++#10609=AXIS2_PLACEMENT_3D('',#10606,#10607,#10608);
++#10610=PLANE('',#10609);
++#10611=ORIENTED_EDGE('',*,*,#5818,.T.);
++#10613=ORIENTED_EDGE('',*,*,#10612,.T.);
++#10615=ORIENTED_EDGE('',*,*,#10614,.F.);
++#10617=ORIENTED_EDGE('',*,*,#10616,.F.);
++#10618=EDGE_LOOP('',(#10611,#10613,#10615,#10617));
++#10619=FACE_OUTER_BOUND('',#10618,.F.);
++#10620=ADVANCED_FACE('',(#10619),#10610,.T.);
++#10621=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
++#10622=DIRECTION('',(0.E0,1.E0,0.E0));
++#10623=DIRECTION('',(1.E0,0.E0,0.E0));
++#10624=AXIS2_PLACEMENT_3D('',#10621,#10622,#10623);
++#10625=CYLINDRICAL_SURFACE('',#10624,5.625E-1);
++#10626=ORIENTED_EDGE('',*,*,#5824,.T.);
++#10628=ORIENTED_EDGE('',*,*,#10627,.T.);
++#10630=ORIENTED_EDGE('',*,*,#10629,.F.);
++#10631=ORIENTED_EDGE('',*,*,#10612,.F.);
++#10632=EDGE_LOOP('',(#10626,#10628,#10630,#10631));
++#10633=FACE_OUTER_BOUND('',#10632,.F.);
++#10634=ADVANCED_FACE('',(#10633),#10625,.F.);
++#10635=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
++#10636=DIRECTION('',(0.E0,0.E0,1.E0));
++#10637=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10638=AXIS2_PLACEMENT_3D('',#10635,#10636,#10637);
++#10639=PLANE('',#10638);
++#10640=ORIENTED_EDGE('',*,*,#5822,.T.);
++#10642=ORIENTED_EDGE('',*,*,#10641,.T.);
++#10644=ORIENTED_EDGE('',*,*,#10643,.F.);
++#10645=ORIENTED_EDGE('',*,*,#10627,.F.);
++#10646=EDGE_LOOP('',(#10640,#10642,#10644,#10645));
++#10647=FACE_OUTER_BOUND('',#10646,.F.);
++#10648=ADVANCED_FACE('',(#10647),#10639,.T.);
++#10649=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
++#10650=DIRECTION('',(0.E0,1.E0,0.E0));
++#10651=DIRECTION('',(1.E0,0.E0,0.E0));
++#10652=AXIS2_PLACEMENT_3D('',#10649,#10650,#10651);
++#10653=CYLINDRICAL_SURFACE('',#10652,5.625E-1);
++#10654=ORIENTED_EDGE('',*,*,#5820,.T.);
++#10655=ORIENTED_EDGE('',*,*,#10616,.T.);
++#10657=ORIENTED_EDGE('',*,*,#10656,.F.);
++#10658=ORIENTED_EDGE('',*,*,#10641,.F.);
++#10659=EDGE_LOOP('',(#10654,#10655,#10657,#10658));
++#10660=FACE_OUTER_BOUND('',#10659,.F.);
++#10661=ADVANCED_FACE('',(#10660),#10653,.F.);
++#10662=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
++#10663=DIRECTION('',(0.E0,1.E0,0.E0));
++#10664=DIRECTION('',(1.E0,0.E0,0.E0));
++#10665=AXIS2_PLACEMENT_3D('',#10662,#10663,#10664);
++#10666=PLANE('',#10665);
++#10667=ORIENTED_EDGE('',*,*,#10614,.T.);
++#10668=ORIENTED_EDGE('',*,*,#10629,.T.);
++#10669=ORIENTED_EDGE('',*,*,#10643,.T.);
++#10670=ORIENTED_EDGE('',*,*,#10656,.T.);
++#10671=EDGE_LOOP('',(#10667,#10668,#10669,#10670));
++#10672=FACE_OUTER_BOUND('',#10671,.F.);
++#10673=ADVANCED_FACE('',(#10672),#10666,.F.);
++#10674=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
++#10675=DIRECTION('',(0.E0,1.E0,0.E0));
++#10676=DIRECTION('',(1.E0,0.E0,0.E0));
++#10677=AXIS2_PLACEMENT_3D('',#10674,#10675,#10676);
++#10678=PLANE('',#10677);
++#10680=ORIENTED_EDGE('',*,*,#10679,.F.);
++#10682=ORIENTED_EDGE('',*,*,#10681,.T.);
++#10684=ORIENTED_EDGE('',*,*,#10683,.T.);
++#10686=ORIENTED_EDGE('',*,*,#10685,.T.);
++#10688=ORIENTED_EDGE('',*,*,#10687,.T.);
++#10689=EDGE_LOOP('',(#10680,#10682,#10684,#10686,#10688));
++#10690=FACE_OUTER_BOUND('',#10689,.F.);
++#10691=ADVANCED_FACE('',(#10690),#10678,.F.);
++#10692=CARTESIAN_POINT('',(1.455736763592E0,-6.642389448824E-2,
++2.742280476768E1));
++#10693=DIRECTION('',(0.E0,1.E0,0.E0));
++#10694=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
++#10695=AXIS2_PLACEMENT_3D('',#10692,#10693,#10694);
++#10696=CYLINDRICAL_SURFACE('',#10695,7.5E-1);
++#10698=ORIENTED_EDGE('',*,*,#10697,.F.);
++#10699=ORIENTED_EDGE('',*,*,#5932,.T.);
++#10701=ORIENTED_EDGE('',*,*,#10700,.T.);
++#10702=ORIENTED_EDGE('',*,*,#10679,.T.);
++#10703=EDGE_LOOP('',(#10698,#10699,#10701,#10702));
++#10704=FACE_OUTER_BOUND('',#10703,.F.);
++#10705=ADVANCED_FACE('',(#10704),#10696,.F.);
++#10706=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
++#10707=DIRECTION('',(0.E0,1.E0,0.E0));
++#10708=DIRECTION('',(1.E0,0.E0,0.E0));
++#10709=AXIS2_PLACEMENT_3D('',#10706,#10707,#10708);
++#10710=CYLINDRICAL_SURFACE('',#10709,9.225E-1);
++#10711=ORIENTED_EDGE('',*,*,#10697,.T.);
++#10712=ORIENTED_EDGE('',*,*,#10687,.F.);
++#10714=ORIENTED_EDGE('',*,*,#10713,.F.);
++#10715=ORIENTED_EDGE('',*,*,#5934,.T.);
++#10716=EDGE_LOOP('',(#10711,#10712,#10714,#10715));
++#10717=FACE_OUTER_BOUND('',#10716,.F.);
++#10718=ADVANCED_FACE('',(#10717),#10710,.F.);
++#10719=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
++#10720=DIRECTION('',(0.E0,1.E0,0.E0));
++#10721=DIRECTION('',(1.E0,0.E0,0.E0));
++#10722=AXIS2_PLACEMENT_3D('',#10719,#10720,#10721);
++#10723=CYLINDRICAL_SURFACE('',#10722,5.6875E0);
++#10724=ORIENTED_EDGE('',*,*,#5936,.F.);
++#10725=ORIENTED_EDGE('',*,*,#10713,.T.);
++#10726=ORIENTED_EDGE('',*,*,#10685,.F.);
++#10728=ORIENTED_EDGE('',*,*,#10727,.F.);
++#10729=EDGE_LOOP('',(#10724,#10725,#10726,#10728));
++#10730=FACE_OUTER_BOUND('',#10729,.F.);
++#10731=ADVANCED_FACE('',(#10730),#10723,.T.);
++#10732=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
++#10733=DIRECTION('',(0.E0,1.E0,0.E0));
++#10734=DIRECTION('',(1.E0,0.E0,0.E0));
++#10735=AXIS2_PLACEMENT_3D('',#10732,#10733,#10734);
++#10736=CYLINDRICAL_SURFACE('',#10735,8.669989027347E-1);
++#10737=ORIENTED_EDGE('',*,*,#5938,.T.);
++#10738=ORIENTED_EDGE('',*,*,#10727,.T.);
++#10739=ORIENTED_EDGE('',*,*,#10683,.F.);
++#10741=ORIENTED_EDGE('',*,*,#10740,.F.);
++#10742=EDGE_LOOP('',(#10737,#10738,#10739,#10741));
++#10743=FACE_OUTER_BOUND('',#10742,.F.);
++#10744=ADVANCED_FACE('',(#10743),#10736,.F.);
++#10745=CARTESIAN_POINT('',(6.875E-1,0.E0,2.771522817587E1));
++#10746=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
++#10747=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#10748=AXIS2_PLACEMENT_3D('',#10745,#10746,#10747);
++#10749=PLANE('',#10748);
++#10750=ORIENTED_EDGE('',*,*,#10700,.F.);
++#10751=ORIENTED_EDGE('',*,*,#5930,.T.);
++#10752=ORIENTED_EDGE('',*,*,#10740,.T.);
++#10753=ORIENTED_EDGE('',*,*,#10681,.F.);
++#10754=EDGE_LOOP('',(#10750,#10751,#10752,#10753));
++#10755=FACE_OUTER_BOUND('',#10754,.F.);
++#10756=ADVANCED_FACE('',(#10755),#10749,.T.);
++#10757=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
++#10758=DIRECTION('',(0.E0,0.E0,1.E0));
++#10759=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10760=AXIS2_PLACEMENT_3D('',#10757,#10758,#10759);
++#10761=PLANE('',#10760);
++#10762=ORIENTED_EDGE('',*,*,#5828,.T.);
++#10764=ORIENTED_EDGE('',*,*,#10763,.T.);
++#10766=ORIENTED_EDGE('',*,*,#10765,.F.);
++#10768=ORIENTED_EDGE('',*,*,#10767,.F.);
++#10769=EDGE_LOOP('',(#10762,#10764,#10766,#10768));
++#10770=FACE_OUTER_BOUND('',#10769,.F.);
++#10771=ADVANCED_FACE('',(#10770),#10761,.T.);
++#10772=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
++#10773=DIRECTION('',(0.E0,1.E0,0.E0));
++#10774=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10775=AXIS2_PLACEMENT_3D('',#10772,#10773,#10774);
++#10776=CYLINDRICAL_SURFACE('',#10775,5.625E-1);
++#10777=ORIENTED_EDGE('',*,*,#5834,.T.);
++#10779=ORIENTED_EDGE('',*,*,#10778,.T.);
++#10781=ORIENTED_EDGE('',*,*,#10780,.F.);
++#10782=ORIENTED_EDGE('',*,*,#10763,.F.);
++#10783=EDGE_LOOP('',(#10777,#10779,#10781,#10782));
++#10784=FACE_OUTER_BOUND('',#10783,.F.);
++#10785=ADVANCED_FACE('',(#10784),#10776,.F.);
++#10786=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
++#10787=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10788=DIRECTION('',(1.E0,0.E0,0.E0));
++#10789=AXIS2_PLACEMENT_3D('',#10786,#10787,#10788);
++#10790=PLANE('',#10789);
++#10791=ORIENTED_EDGE('',*,*,#5832,.T.);
++#10793=ORIENTED_EDGE('',*,*,#10792,.T.);
++#10795=ORIENTED_EDGE('',*,*,#10794,.F.);
++#10796=ORIENTED_EDGE('',*,*,#10778,.F.);
++#10797=EDGE_LOOP('',(#10791,#10793,#10795,#10796));
++#10798=FACE_OUTER_BOUND('',#10797,.F.);
++#10799=ADVANCED_FACE('',(#10798),#10790,.T.);
++#10800=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
++#10801=DIRECTION('',(0.E0,1.E0,0.E0));
++#10802=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10803=AXIS2_PLACEMENT_3D('',#10800,#10801,#10802);
++#10804=CYLINDRICAL_SURFACE('',#10803,5.625E-1);
++#10805=ORIENTED_EDGE('',*,*,#5830,.T.);
++#10806=ORIENTED_EDGE('',*,*,#10767,.T.);
++#10808=ORIENTED_EDGE('',*,*,#10807,.F.);
++#10809=ORIENTED_EDGE('',*,*,#10792,.F.);
++#10810=EDGE_LOOP('',(#10805,#10806,#10808,#10809));
++#10811=FACE_OUTER_BOUND('',#10810,.F.);
++#10812=ADVANCED_FACE('',(#10811),#10804,.F.);
++#10813=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#10814=DIRECTION('',(0.E0,1.E0,0.E0));
++#10815=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10816=AXIS2_PLACEMENT_3D('',#10813,#10814,#10815);
++#10817=PLANE('',#10816);
++#10818=ORIENTED_EDGE('',*,*,#10765,.T.);
++#10819=ORIENTED_EDGE('',*,*,#10780,.T.);
++#10820=ORIENTED_EDGE('',*,*,#10794,.T.);
++#10821=ORIENTED_EDGE('',*,*,#10807,.T.);
++#10822=EDGE_LOOP('',(#10818,#10819,#10820,#10821));
++#10823=FACE_OUTER_BOUND('',#10822,.F.);
++#10824=ADVANCED_FACE('',(#10823),#10817,.F.);
++#10825=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#10826=DIRECTION('',(0.E0,1.E0,0.E0));
++#10827=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10828=AXIS2_PLACEMENT_3D('',#10825,#10826,#10827);
++#10829=PLANE('',#10828);
++#10831=ORIENTED_EDGE('',*,*,#10830,.F.);
++#10833=ORIENTED_EDGE('',*,*,#10832,.T.);
++#10835=ORIENTED_EDGE('',*,*,#10834,.T.);
++#10837=ORIENTED_EDGE('',*,*,#10836,.T.);
++#10839=ORIENTED_EDGE('',*,*,#10838,.T.);
++#10840=EDGE_LOOP('',(#10831,#10833,#10835,#10837,#10839));
++#10841=FACE_OUTER_BOUND('',#10840,.F.);
++#10842=ADVANCED_FACE('',(#10841),#10829,.F.);
++#10843=CARTESIAN_POINT('',(2.254426323641E1,-6.642389448824E-2,
++4.577195232320E0));
++#10844=DIRECTION('',(0.E0,1.E0,0.E0));
++#10845=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
++#10846=AXIS2_PLACEMENT_3D('',#10843,#10844,#10845);
++#10847=CYLINDRICAL_SURFACE('',#10846,7.5E-1);
++#10849=ORIENTED_EDGE('',*,*,#10848,.F.);
++#10850=ORIENTED_EDGE('',*,*,#5920,.T.);
++#10852=ORIENTED_EDGE('',*,*,#10851,.T.);
++#10853=ORIENTED_EDGE('',*,*,#10830,.T.);
++#10854=EDGE_LOOP('',(#10849,#10850,#10852,#10853));
++#10855=FACE_OUTER_BOUND('',#10854,.F.);
++#10856=ADVANCED_FACE('',(#10855),#10847,.F.);
++#10857=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
++#10858=DIRECTION('',(0.E0,1.E0,0.E0));
++#10859=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10860=AXIS2_PLACEMENT_3D('',#10857,#10858,#10859);
++#10861=CYLINDRICAL_SURFACE('',#10860,9.225E-1);
++#10862=ORIENTED_EDGE('',*,*,#10848,.T.);
++#10863=ORIENTED_EDGE('',*,*,#10838,.F.);
++#10865=ORIENTED_EDGE('',*,*,#10864,.F.);
++#10866=ORIENTED_EDGE('',*,*,#5922,.T.);
++#10867=EDGE_LOOP('',(#10862,#10863,#10865,#10866));
++#10868=FACE_OUTER_BOUND('',#10867,.F.);
++#10869=ADVANCED_FACE('',(#10868),#10861,.F.);
++#10870=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
++#10871=DIRECTION('',(0.E0,1.E0,0.E0));
++#10872=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10873=AXIS2_PLACEMENT_3D('',#10870,#10871,#10872);
++#10874=CYLINDRICAL_SURFACE('',#10873,5.6875E0);
++#10875=ORIENTED_EDGE('',*,*,#5924,.F.);
++#10876=ORIENTED_EDGE('',*,*,#10864,.T.);
++#10877=ORIENTED_EDGE('',*,*,#10836,.F.);
++#10879=ORIENTED_EDGE('',*,*,#10878,.F.);
++#10880=EDGE_LOOP('',(#10875,#10876,#10877,#10879));
++#10881=FACE_OUTER_BOUND('',#10880,.F.);
++#10882=ADVANCED_FACE('',(#10881),#10874,.T.);
++#10883=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
++#10884=DIRECTION('',(0.E0,1.E0,0.E0));
++#10885=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10886=AXIS2_PLACEMENT_3D('',#10883,#10884,#10885);
++#10887=CYLINDRICAL_SURFACE('',#10886,8.669989027347E-1);
++#10888=ORIENTED_EDGE('',*,*,#5926,.T.);
++#10889=ORIENTED_EDGE('',*,*,#10878,.T.);
++#10890=ORIENTED_EDGE('',*,*,#10834,.F.);
++#10892=ORIENTED_EDGE('',*,*,#10891,.F.);
++#10893=EDGE_LOOP('',(#10888,#10889,#10890,#10892));
++#10894=FACE_OUTER_BOUND('',#10893,.F.);
++#10895=ADVANCED_FACE('',(#10894),#10887,.F.);
++#10896=CARTESIAN_POINT('',(2.33125E1,0.E0,4.284771824132E0));
++#10897=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#10898=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
++#10899=AXIS2_PLACEMENT_3D('',#10896,#10897,#10898);
++#10900=PLANE('',#10899);
++#10901=ORIENTED_EDGE('',*,*,#10851,.F.);
++#10902=ORIENTED_EDGE('',*,*,#5918,.T.);
++#10903=ORIENTED_EDGE('',*,*,#10891,.T.);
++#10904=ORIENTED_EDGE('',*,*,#10832,.F.);
++#10905=EDGE_LOOP('',(#10901,#10902,#10903,#10904));
++#10906=FACE_OUTER_BOUND('',#10905,.F.);
++#10907=ADVANCED_FACE('',(#10906),#10900,.T.);
++#10908=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
++#10909=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10910=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10911=AXIS2_PLACEMENT_3D('',#10908,#10909,#10910);
++#10912=PLANE('',#10911);
++#10913=ORIENTED_EDGE('',*,*,#5838,.T.);
++#10915=ORIENTED_EDGE('',*,*,#10914,.T.);
++#10917=ORIENTED_EDGE('',*,*,#10916,.F.);
++#10919=ORIENTED_EDGE('',*,*,#10918,.F.);
++#10920=EDGE_LOOP('',(#10913,#10915,#10917,#10919));
++#10921=FACE_OUTER_BOUND('',#10920,.F.);
++#10922=ADVANCED_FACE('',(#10921),#10912,.T.);
++#10923=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
++#10924=DIRECTION('',(0.E0,1.E0,0.E0));
++#10925=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10926=AXIS2_PLACEMENT_3D('',#10923,#10924,#10925);
++#10927=CYLINDRICAL_SURFACE('',#10926,5.625E-1);
++#10928=ORIENTED_EDGE('',*,*,#5844,.T.);
++#10930=ORIENTED_EDGE('',*,*,#10929,.T.);
++#10932=ORIENTED_EDGE('',*,*,#10931,.F.);
++#10933=ORIENTED_EDGE('',*,*,#10914,.F.);
++#10934=EDGE_LOOP('',(#10928,#10930,#10932,#10933));
++#10935=FACE_OUTER_BOUND('',#10934,.F.);
++#10936=ADVANCED_FACE('',(#10935),#10927,.F.);
++#10937=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
++#10938=DIRECTION('',(1.E0,0.E0,0.E0));
++#10939=DIRECTION('',(0.E0,0.E0,1.E0));
++#10940=AXIS2_PLACEMENT_3D('',#10937,#10938,#10939);
++#10941=PLANE('',#10940);
++#10942=ORIENTED_EDGE('',*,*,#5842,.T.);
++#10944=ORIENTED_EDGE('',*,*,#10943,.T.);
++#10946=ORIENTED_EDGE('',*,*,#10945,.F.);
++#10947=ORIENTED_EDGE('',*,*,#10929,.F.);
++#10948=EDGE_LOOP('',(#10942,#10944,#10946,#10947));
++#10949=FACE_OUTER_BOUND('',#10948,.F.);
++#10950=ADVANCED_FACE('',(#10949),#10941,.T.);
++#10951=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
++#10952=DIRECTION('',(0.E0,1.E0,0.E0));
++#10953=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10954=AXIS2_PLACEMENT_3D('',#10951,#10952,#10953);
++#10955=CYLINDRICAL_SURFACE('',#10954,5.625E-1);
++#10956=ORIENTED_EDGE('',*,*,#5840,.T.);
++#10957=ORIENTED_EDGE('',*,*,#10918,.T.);
++#10959=ORIENTED_EDGE('',*,*,#10958,.F.);
++#10960=ORIENTED_EDGE('',*,*,#10943,.F.);
++#10961=EDGE_LOOP('',(#10956,#10957,#10959,#10960));
++#10962=FACE_OUTER_BOUND('',#10961,.F.);
++#10963=ADVANCED_FACE('',(#10962),#10955,.F.);
++#10964=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#10965=DIRECTION('',(0.E0,1.E0,0.E0));
++#10966=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10967=AXIS2_PLACEMENT_3D('',#10964,#10965,#10966);
++#10968=PLANE('',#10967);
++#10969=ORIENTED_EDGE('',*,*,#10916,.T.);
++#10970=ORIENTED_EDGE('',*,*,#10931,.T.);
++#10971=ORIENTED_EDGE('',*,*,#10945,.T.);
++#10972=ORIENTED_EDGE('',*,*,#10958,.T.);
++#10973=EDGE_LOOP('',(#10969,#10970,#10971,#10972));
++#10974=FACE_OUTER_BOUND('',#10973,.F.);
++#10975=ADVANCED_FACE('',(#10974),#10968,.F.);
++#10976=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
++#10977=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10978=DIRECTION('',(0.E0,0.E0,-1.E0));
++#10979=AXIS2_PLACEMENT_3D('',#10976,#10977,#10978);
++#10980=PLANE('',#10979);
++#10981=ORIENTED_EDGE('',*,*,#5848,.T.);
++#10983=ORIENTED_EDGE('',*,*,#10982,.T.);
++#10985=ORIENTED_EDGE('',*,*,#10984,.F.);
++#10987=ORIENTED_EDGE('',*,*,#10986,.F.);
++#10988=EDGE_LOOP('',(#10981,#10983,#10985,#10987));
++#10989=FACE_OUTER_BOUND('',#10988,.F.);
++#10990=ADVANCED_FACE('',(#10989),#10980,.T.);
++#10991=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
++#10992=DIRECTION('',(0.E0,1.E0,0.E0));
++#10993=DIRECTION('',(-1.E0,0.E0,0.E0));
++#10994=AXIS2_PLACEMENT_3D('',#10991,#10992,#10993);
++#10995=CYLINDRICAL_SURFACE('',#10994,5.625E-1);
++#10996=ORIENTED_EDGE('',*,*,#5854,.T.);
++#10998=ORIENTED_EDGE('',*,*,#10997,.T.);
++#11000=ORIENTED_EDGE('',*,*,#10999,.F.);
++#11001=ORIENTED_EDGE('',*,*,#10982,.F.);
++#11002=EDGE_LOOP('',(#10996,#10998,#11000,#11001));
++#11003=FACE_OUTER_BOUND('',#11002,.F.);
++#11004=ADVANCED_FACE('',(#11003),#10995,.F.);
++#11005=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
++#11006=DIRECTION('',(1.E0,0.E0,0.E0));
++#11007=DIRECTION('',(0.E0,0.E0,1.E0));
++#11008=AXIS2_PLACEMENT_3D('',#11005,#11006,#11007);
++#11009=PLANE('',#11008);
++#11010=ORIENTED_EDGE('',*,*,#5852,.T.);
++#11012=ORIENTED_EDGE('',*,*,#11011,.T.);
++#11014=ORIENTED_EDGE('',*,*,#11013,.F.);
++#11015=ORIENTED_EDGE('',*,*,#10997,.F.);
++#11016=EDGE_LOOP('',(#11010,#11012,#11014,#11015));
++#11017=FACE_OUTER_BOUND('',#11016,.F.);
++#11018=ADVANCED_FACE('',(#11017),#11009,.T.);
++#11019=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
++#11020=DIRECTION('',(0.E0,1.E0,0.E0));
++#11021=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11022=AXIS2_PLACEMENT_3D('',#11019,#11020,#11021);
++#11023=CYLINDRICAL_SURFACE('',#11022,5.625E-1);
++#11024=ORIENTED_EDGE('',*,*,#5850,.T.);
++#11025=ORIENTED_EDGE('',*,*,#10986,.T.);
++#11027=ORIENTED_EDGE('',*,*,#11026,.F.);
++#11028=ORIENTED_EDGE('',*,*,#11011,.F.);
++#11029=EDGE_LOOP('',(#11024,#11025,#11027,#11028));
++#11030=FACE_OUTER_BOUND('',#11029,.F.);
++#11031=ADVANCED_FACE('',(#11030),#11023,.F.);
++#11032=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#11033=DIRECTION('',(0.E0,1.E0,0.E0));
++#11034=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11035=AXIS2_PLACEMENT_3D('',#11032,#11033,#11034);
++#11036=PLANE('',#11035);
++#11037=ORIENTED_EDGE('',*,*,#10984,.T.);
++#11038=ORIENTED_EDGE('',*,*,#10999,.T.);
++#11039=ORIENTED_EDGE('',*,*,#11013,.T.);
++#11040=ORIENTED_EDGE('',*,*,#11026,.T.);
++#11041=EDGE_LOOP('',(#11037,#11038,#11039,#11040));
++#11042=FACE_OUTER_BOUND('',#11041,.F.);
++#11043=ADVANCED_FACE('',(#11042),#11036,.F.);
++#11044=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
++#11045=DIRECTION('',(0.E0,0.E0,1.E0));
++#11046=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11047=AXIS2_PLACEMENT_3D('',#11044,#11045,#11046);
++#11048=PLANE('',#11047);
++#11049=ORIENTED_EDGE('',*,*,#5858,.T.);
++#11051=ORIENTED_EDGE('',*,*,#11050,.T.);
++#11053=ORIENTED_EDGE('',*,*,#11052,.F.);
++#11055=ORIENTED_EDGE('',*,*,#11054,.F.);
++#11056=EDGE_LOOP('',(#11049,#11051,#11053,#11055));
++#11057=FACE_OUTER_BOUND('',#11056,.F.);
++#11058=ADVANCED_FACE('',(#11057),#11048,.T.);
++#11059=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
++#11060=DIRECTION('',(0.E0,1.E0,0.E0));
++#11061=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11062=AXIS2_PLACEMENT_3D('',#11059,#11060,#11061);
++#11063=CYLINDRICAL_SURFACE('',#11062,5.E-1);
++#11064=ORIENTED_EDGE('',*,*,#5864,.T.);
++#11066=ORIENTED_EDGE('',*,*,#11065,.T.);
++#11068=ORIENTED_EDGE('',*,*,#11067,.F.);
++#11069=ORIENTED_EDGE('',*,*,#11050,.F.);
++#11070=EDGE_LOOP('',(#11064,#11066,#11068,#11069));
++#11071=FACE_OUTER_BOUND('',#11070,.F.);
++#11072=ADVANCED_FACE('',(#11071),#11063,.F.);
++#11073=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
++#11074=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11075=DIRECTION('',(1.E0,0.E0,0.E0));
++#11076=AXIS2_PLACEMENT_3D('',#11073,#11074,#11075);
++#11077=PLANE('',#11076);
++#11078=ORIENTED_EDGE('',*,*,#5862,.T.);
++#11080=ORIENTED_EDGE('',*,*,#11079,.T.);
++#11082=ORIENTED_EDGE('',*,*,#11081,.F.);
++#11083=ORIENTED_EDGE('',*,*,#11065,.F.);
++#11084=EDGE_LOOP('',(#11078,#11080,#11082,#11083));
++#11085=FACE_OUTER_BOUND('',#11084,.F.);
++#11086=ADVANCED_FACE('',(#11085),#11077,.T.);
++#11087=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
++#11088=DIRECTION('',(0.E0,1.E0,0.E0));
++#11089=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11090=AXIS2_PLACEMENT_3D('',#11087,#11088,#11089);
++#11091=CYLINDRICAL_SURFACE('',#11090,5.E-1);
++#11092=ORIENTED_EDGE('',*,*,#5860,.T.);
++#11093=ORIENTED_EDGE('',*,*,#11054,.T.);
++#11095=ORIENTED_EDGE('',*,*,#11094,.F.);
++#11096=ORIENTED_EDGE('',*,*,#11079,.F.);
++#11097=EDGE_LOOP('',(#11092,#11093,#11095,#11096));
++#11098=FACE_OUTER_BOUND('',#11097,.F.);
++#11099=ADVANCED_FACE('',(#11098),#11091,.F.);
++#11100=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#11101=DIRECTION('',(0.E0,1.E0,0.E0));
++#11102=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11103=AXIS2_PLACEMENT_3D('',#11100,#11101,#11102);
++#11104=PLANE('',#11103);
++#11105=ORIENTED_EDGE('',*,*,#11052,.T.);
++#11106=ORIENTED_EDGE('',*,*,#11067,.T.);
++#11107=ORIENTED_EDGE('',*,*,#11081,.T.);
++#11108=ORIENTED_EDGE('',*,*,#11094,.T.);
++#11109=EDGE_LOOP('',(#11105,#11106,#11107,#11108));
++#11110=FACE_OUTER_BOUND('',#11109,.F.);
++#11111=ADVANCED_FACE('',(#11110),#11104,.F.);
++#11112=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
++#11113=DIRECTION('',(0.E0,0.E0,1.E0));
++#11114=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11115=AXIS2_PLACEMENT_3D('',#11112,#11113,#11114);
++#11116=PLANE('',#11115);
++#11117=ORIENTED_EDGE('',*,*,#5868,.T.);
++#11119=ORIENTED_EDGE('',*,*,#11118,.T.);
++#11121=ORIENTED_EDGE('',*,*,#11120,.F.);
++#11123=ORIENTED_EDGE('',*,*,#11122,.F.);
++#11124=EDGE_LOOP('',(#11117,#11119,#11121,#11123));
++#11125=FACE_OUTER_BOUND('',#11124,.F.);
++#11126=ADVANCED_FACE('',(#11125),#11116,.T.);
++#11127=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
++#11128=DIRECTION('',(0.E0,1.E0,0.E0));
++#11129=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11130=AXIS2_PLACEMENT_3D('',#11127,#11128,#11129);
++#11131=CYLINDRICAL_SURFACE('',#11130,4.375E-1);
++#11132=ORIENTED_EDGE('',*,*,#5874,.T.);
++#11134=ORIENTED_EDGE('',*,*,#11133,.T.);
++#11136=ORIENTED_EDGE('',*,*,#11135,.F.);
++#11137=ORIENTED_EDGE('',*,*,#11118,.F.);
++#11138=EDGE_LOOP('',(#11132,#11134,#11136,#11137));
++#11139=FACE_OUTER_BOUND('',#11138,.F.);
++#11140=ADVANCED_FACE('',(#11139),#11131,.F.);
++#11141=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
++#11142=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11143=DIRECTION('',(1.E0,0.E0,0.E0));
++#11144=AXIS2_PLACEMENT_3D('',#11141,#11142,#11143);
++#11145=PLANE('',#11144);
++#11146=ORIENTED_EDGE('',*,*,#5872,.T.);
++#11148=ORIENTED_EDGE('',*,*,#11147,.T.);
++#11150=ORIENTED_EDGE('',*,*,#11149,.F.);
++#11151=ORIENTED_EDGE('',*,*,#11133,.F.);
++#11152=EDGE_LOOP('',(#11146,#11148,#11150,#11151));
++#11153=FACE_OUTER_BOUND('',#11152,.F.);
++#11154=ADVANCED_FACE('',(#11153),#11145,.T.);
++#11155=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
++#11156=DIRECTION('',(0.E0,1.E0,0.E0));
++#11157=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11158=AXIS2_PLACEMENT_3D('',#11155,#11156,#11157);
++#11159=CYLINDRICAL_SURFACE('',#11158,4.375E-1);
++#11160=ORIENTED_EDGE('',*,*,#5870,.T.);
++#11161=ORIENTED_EDGE('',*,*,#11122,.T.);
++#11163=ORIENTED_EDGE('',*,*,#11162,.F.);
++#11164=ORIENTED_EDGE('',*,*,#11147,.F.);
++#11165=EDGE_LOOP('',(#11160,#11161,#11163,#11164));
++#11166=FACE_OUTER_BOUND('',#11165,.F.);
++#11167=ADVANCED_FACE('',(#11166),#11159,.F.);
++#11168=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#11169=DIRECTION('',(0.E0,1.E0,0.E0));
++#11170=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11171=AXIS2_PLACEMENT_3D('',#11168,#11169,#11170);
++#11172=PLANE('',#11171);
++#11173=ORIENTED_EDGE('',*,*,#11120,.T.);
++#11174=ORIENTED_EDGE('',*,*,#11135,.T.);
++#11175=ORIENTED_EDGE('',*,*,#11149,.T.);
++#11176=ORIENTED_EDGE('',*,*,#11162,.T.);
++#11177=EDGE_LOOP('',(#11173,#11174,#11175,#11176));
++#11178=FACE_OUTER_BOUND('',#11177,.F.);
++#11179=ADVANCED_FACE('',(#11178),#11172,.F.);
++#11180=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
++#11181=DIRECTION('',(0.E0,0.E0,1.E0));
++#11182=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11183=AXIS2_PLACEMENT_3D('',#11180,#11181,#11182);
++#11184=PLANE('',#11183);
++#11185=ORIENTED_EDGE('',*,*,#5878,.F.);
++#11187=ORIENTED_EDGE('',*,*,#11186,.T.);
++#11189=ORIENTED_EDGE('',*,*,#11188,.T.);
++#11191=ORIENTED_EDGE('',*,*,#11190,.F.);
++#11192=EDGE_LOOP('',(#11185,#11187,#11189,#11191));
++#11193=FACE_OUTER_BOUND('',#11192,.F.);
++#11194=ADVANCED_FACE('',(#11193),#11184,.F.);
++#11195=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
++#11196=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11197=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11198=AXIS2_PLACEMENT_3D('',#11195,#11196,#11197);
++#11199=CYLINDRICAL_SURFACE('',#11198,5.625E-1);
++#11200=ORIENTED_EDGE('',*,*,#5884,.F.);
++#11202=ORIENTED_EDGE('',*,*,#11201,.T.);
++#11204=ORIENTED_EDGE('',*,*,#11203,.T.);
++#11205=ORIENTED_EDGE('',*,*,#11186,.F.);
++#11206=EDGE_LOOP('',(#11200,#11202,#11204,#11205));
++#11207=FACE_OUTER_BOUND('',#11206,.F.);
++#11208=ADVANCED_FACE('',(#11207),#11199,.F.);
++#11209=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
++#11210=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11211=DIRECTION('',(1.E0,0.E0,0.E0));
++#11212=AXIS2_PLACEMENT_3D('',#11209,#11210,#11211);
++#11213=PLANE('',#11212);
++#11214=ORIENTED_EDGE('',*,*,#5882,.F.);
++#11216=ORIENTED_EDGE('',*,*,#11215,.T.);
++#11218=ORIENTED_EDGE('',*,*,#11217,.T.);
++#11219=ORIENTED_EDGE('',*,*,#11201,.F.);
++#11220=EDGE_LOOP('',(#11214,#11216,#11218,#11219));
++#11221=FACE_OUTER_BOUND('',#11220,.F.);
++#11222=ADVANCED_FACE('',(#11221),#11213,.F.);
++#11223=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
++#11224=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11225=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11226=AXIS2_PLACEMENT_3D('',#11223,#11224,#11225);
++#11227=CYLINDRICAL_SURFACE('',#11226,5.625E-1);
++#11228=ORIENTED_EDGE('',*,*,#5880,.F.);
++#11229=ORIENTED_EDGE('',*,*,#11190,.T.);
++#11231=ORIENTED_EDGE('',*,*,#11230,.T.);
++#11232=ORIENTED_EDGE('',*,*,#11215,.F.);
++#11233=EDGE_LOOP('',(#11228,#11229,#11231,#11232));
++#11234=FACE_OUTER_BOUND('',#11233,.F.);
++#11235=ADVANCED_FACE('',(#11234),#11227,.F.);
++#11236=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
++#11237=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11238=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11239=AXIS2_PLACEMENT_3D('',#11236,#11237,#11238);
++#11240=PLANE('',#11239);
++#11241=ORIENTED_EDGE('',*,*,#11188,.F.);
++#11242=ORIENTED_EDGE('',*,*,#11203,.F.);
++#11243=ORIENTED_EDGE('',*,*,#11217,.F.);
++#11244=ORIENTED_EDGE('',*,*,#11230,.F.);
++#11245=EDGE_LOOP('',(#11241,#11242,#11243,#11244));
++#11246=FACE_OUTER_BOUND('',#11245,.F.);
++#11247=ADVANCED_FACE('',(#11246),#11240,.T.);
++#11248=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
++#11249=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11250=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11251=AXIS2_PLACEMENT_3D('',#11248,#11249,#11250);
++#11252=PLANE('',#11251);
++#11254=ORIENTED_EDGE('',*,*,#11253,.F.);
++#11256=ORIENTED_EDGE('',*,*,#11255,.F.);
++#11258=ORIENTED_EDGE('',*,*,#11257,.F.);
++#11260=ORIENTED_EDGE('',*,*,#11259,.F.);
++#11262=ORIENTED_EDGE('',*,*,#11261,.F.);
++#11263=EDGE_LOOP('',(#11254,#11256,#11258,#11260,#11262));
++#11264=FACE_OUTER_BOUND('',#11263,.F.);
++#11265=ADVANCED_FACE('',(#11264),#11252,.T.);
++#11266=CARTESIAN_POINT('',(2.254426323641E1,-6.892397422826E-2,
++2.742280476768E1));
++#11267=DIRECTION('',(0.E0,1.E0,0.E0));
++#11268=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#11269=AXIS2_PLACEMENT_3D('',#11266,#11267,#11268);
++#11270=CYLINDRICAL_SURFACE('',#11269,7.5E-1);
++#11272=ORIENTED_EDGE('',*,*,#11271,.F.);
++#11273=ORIENTED_EDGE('',*,*,#5944,.T.);
++#11275=ORIENTED_EDGE('',*,*,#11274,.T.);
++#11276=ORIENTED_EDGE('',*,*,#11253,.T.);
++#11277=EDGE_LOOP('',(#11272,#11273,#11275,#11276));
++#11278=FACE_OUTER_BOUND('',#11277,.F.);
++#11279=ADVANCED_FACE('',(#11278),#11270,.F.);
++#11280=CARTESIAN_POINT('',(2.33125E1,0.E0,2.771522817587E1));
++#11281=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
++#11282=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
++#11283=AXIS2_PLACEMENT_3D('',#11280,#11281,#11282);
++#11284=PLANE('',#11283);
++#11285=ORIENTED_EDGE('',*,*,#11271,.T.);
++#11286=ORIENTED_EDGE('',*,*,#11261,.T.);
++#11288=ORIENTED_EDGE('',*,*,#11287,.F.);
++#11289=ORIENTED_EDGE('',*,*,#5946,.F.);
++#11290=EDGE_LOOP('',(#11285,#11286,#11288,#11289));
++#11291=FACE_OUTER_BOUND('',#11290,.F.);
++#11292=ADVANCED_FACE('',(#11291),#11284,.F.);
++#11293=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
++#11294=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11295=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11296=AXIS2_PLACEMENT_3D('',#11293,#11294,#11295);
++#11297=CYLINDRICAL_SURFACE('',#11296,8.669989027347E-1);
++#11298=ORIENTED_EDGE('',*,*,#5948,.F.);
++#11299=ORIENTED_EDGE('',*,*,#11287,.T.);
++#11300=ORIENTED_EDGE('',*,*,#11259,.T.);
++#11302=ORIENTED_EDGE('',*,*,#11301,.F.);
++#11303=EDGE_LOOP('',(#11298,#11299,#11300,#11302));
++#11304=FACE_OUTER_BOUND('',#11303,.F.);
++#11305=ADVANCED_FACE('',(#11304),#11297,.F.);
++#11306=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
++#11307=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11308=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11309=AXIS2_PLACEMENT_3D('',#11306,#11307,#11308);
++#11310=CYLINDRICAL_SURFACE('',#11309,5.6875E0);
++#11311=ORIENTED_EDGE('',*,*,#5950,.T.);
++#11312=ORIENTED_EDGE('',*,*,#11301,.T.);
++#11313=ORIENTED_EDGE('',*,*,#11257,.T.);
++#11315=ORIENTED_EDGE('',*,*,#11314,.F.);
++#11316=EDGE_LOOP('',(#11311,#11312,#11313,#11315));
++#11317=FACE_OUTER_BOUND('',#11316,.F.);
++#11318=ADVANCED_FACE('',(#11317),#11310,.T.);
++#11319=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
++#11320=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11321=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11322=AXIS2_PLACEMENT_3D('',#11319,#11320,#11321);
++#11323=CYLINDRICAL_SURFACE('',#11322,9.225E-1);
++#11324=ORIENTED_EDGE('',*,*,#11274,.F.);
++#11325=ORIENTED_EDGE('',*,*,#5942,.F.);
++#11326=ORIENTED_EDGE('',*,*,#11314,.T.);
++#11327=ORIENTED_EDGE('',*,*,#11255,.T.);
++#11328=EDGE_LOOP('',(#11324,#11325,#11326,#11327));
++#11329=FACE_OUTER_BOUND('',#11328,.F.);
++#11330=ADVANCED_FACE('',(#11329),#11323,.F.);
++#11331=CARTESIAN_POINT('',(2.13075E1,-6.892397422826E-2,7.81E0));
++#11332=DIRECTION('',(0.E0,1.E0,0.E0));
++#11333=DIRECTION('',(0.E0,0.E0,1.E0));
++#11334=AXIS2_PLACEMENT_3D('',#11331,#11332,#11333);
++#11335=CYLINDRICAL_SURFACE('',#11334,8.8E-1);
++#11337=ORIENTED_EDGE('',*,*,#11336,.T.);
++#11339=ORIENTED_EDGE('',*,*,#11338,.T.);
++#11341=ORIENTED_EDGE('',*,*,#11340,.F.);
++#11342=ORIENTED_EDGE('',*,*,#5888,.T.);
++#11343=EDGE_LOOP('',(#11337,#11339,#11341,#11342));
++#11344=FACE_OUTER_BOUND('',#11343,.F.);
++#11345=ADVANCED_FACE('',(#11344),#11335,.T.);
++#11346=CARTESIAN_POINT('',(2.21875E1,0.E0,8.69E0));
++#11347=DIRECTION('',(0.E0,0.E0,1.E0));
++#11348=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11349=AXIS2_PLACEMENT_3D('',#11346,#11347,#11348);
++#11350=PLANE('',#11349);
++#11351=ORIENTED_EDGE('',*,*,#11336,.F.);
++#11352=ORIENTED_EDGE('',*,*,#5914,.T.);
++#11354=ORIENTED_EDGE('',*,*,#11353,.F.);
++#11356=ORIENTED_EDGE('',*,*,#11355,.F.);
++#11357=EDGE_LOOP('',(#11351,#11352,#11354,#11356));
++#11358=FACE_OUTER_BOUND('',#11357,.F.);
++#11359=ADVANCED_FACE('',(#11358),#11350,.T.);
++#11360=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,9.57E0));
++#11361=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11362=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11363=AXIS2_PLACEMENT_3D('',#11360,#11361,#11362);
++#11364=CYLINDRICAL_SURFACE('',#11363,8.8E-1);
++#11366=ORIENTED_EDGE('',*,*,#11365,.F.);
++#11368=ORIENTED_EDGE('',*,*,#11367,.T.);
++#11369=ORIENTED_EDGE('',*,*,#11353,.T.);
++#11370=ORIENTED_EDGE('',*,*,#5912,.T.);
++#11371=EDGE_LOOP('',(#11366,#11368,#11369,#11370));
++#11372=FACE_OUTER_BOUND('',#11371,.F.);
++#11373=ADVANCED_FACE('',(#11372),#11364,.F.);
++#11374=CARTESIAN_POINT('',(1.96875E1,0.E0,8.69E0));
++#11375=DIRECTION('',(1.E0,0.E0,0.E0));
++#11376=DIRECTION('',(0.E0,0.E0,1.E0));
++#11377=AXIS2_PLACEMENT_3D('',#11374,#11375,#11376);
++#11378=PLANE('',#11377);
++#11379=ORIENTED_EDGE('',*,*,#11365,.T.);
++#11380=ORIENTED_EDGE('',*,*,#5910,.T.);
++#11382=ORIENTED_EDGE('',*,*,#11381,.F.);
++#11384=ORIENTED_EDGE('',*,*,#11383,.F.);
++#11385=EDGE_LOOP('',(#11379,#11380,#11382,#11384));
++#11386=FACE_OUTER_BOUND('',#11385,.F.);
++#11387=ADVANCED_FACE('',(#11386),#11378,.T.);
++#11388=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,1.037E1));
++#11389=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11390=DIRECTION('',(0.E0,0.E0,1.E0));
++#11391=AXIS2_PLACEMENT_3D('',#11388,#11389,#11390);
++#11392=CYLINDRICAL_SURFACE('',#11391,8.8E-1);
++#11394=ORIENTED_EDGE('',*,*,#11393,.F.);
++#11396=ORIENTED_EDGE('',*,*,#11395,.T.);
++#11397=ORIENTED_EDGE('',*,*,#11381,.T.);
++#11398=ORIENTED_EDGE('',*,*,#5908,.T.);
++#11399=EDGE_LOOP('',(#11394,#11396,#11397,#11398));
++#11400=FACE_OUTER_BOUND('',#11399,.F.);
++#11401=ADVANCED_FACE('',(#11400),#11392,.F.);
++#11402=CARTESIAN_POINT('',(1.96875E1,0.E0,1.125E1));
++#11403=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11404=DIRECTION('',(1.E0,0.E0,0.E0));
++#11405=AXIS2_PLACEMENT_3D('',#11402,#11403,#11404);
++#11406=PLANE('',#11405);
++#11407=ORIENTED_EDGE('',*,*,#11393,.T.);
++#11408=ORIENTED_EDGE('',*,*,#5906,.T.);
++#11410=ORIENTED_EDGE('',*,*,#11409,.F.);
++#11412=ORIENTED_EDGE('',*,*,#11411,.F.);
++#11413=EDGE_LOOP('',(#11407,#11408,#11410,#11412));
++#11414=FACE_OUTER_BOUND('',#11413,.F.);
++#11415=ADVANCED_FACE('',(#11414),#11406,.T.);
++#11416=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,1.037E1));
++#11417=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11418=DIRECTION('',(1.E0,0.E0,0.E0));
++#11419=AXIS2_PLACEMENT_3D('',#11416,#11417,#11418);
++#11420=CYLINDRICAL_SURFACE('',#11419,8.8E-1);
++#11422=ORIENTED_EDGE('',*,*,#11421,.F.);
++#11424=ORIENTED_EDGE('',*,*,#11423,.T.);
++#11425=ORIENTED_EDGE('',*,*,#11409,.T.);
++#11426=ORIENTED_EDGE('',*,*,#5904,.T.);
++#11427=EDGE_LOOP('',(#11422,#11424,#11425,#11426));
++#11428=FACE_OUTER_BOUND('',#11427,.F.);
++#11429=ADVANCED_FACE('',(#11428),#11420,.F.);
++#11430=CARTESIAN_POINT('',(2.53125E1,0.E0,1.125E1));
++#11431=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11432=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11433=AXIS2_PLACEMENT_3D('',#11430,#11431,#11432);
++#11434=PLANE('',#11433);
++#11436=ORIENTED_EDGE('',*,*,#11435,.F.);
++#11438=ORIENTED_EDGE('',*,*,#11437,.F.);
++#11439=ORIENTED_EDGE('',*,*,#11421,.T.);
++#11440=ORIENTED_EDGE('',*,*,#5902,.T.);
++#11441=EDGE_LOOP('',(#11436,#11438,#11439,#11440));
++#11442=FACE_OUTER_BOUND('',#11441,.F.);
++#11443=ADVANCED_FACE('',(#11442),#11434,.T.);
++#11444=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,9.57E0));
++#11445=DIRECTION('',(0.E0,-1.E0,0.E0));
++#11446=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11447=AXIS2_PLACEMENT_3D('',#11444,#11445,#11446);
++#11448=CYLINDRICAL_SURFACE('',#11447,8.8E-1);
++#11450=ORIENTED_EDGE('',*,*,#11449,.F.);
++#11452=ORIENTED_EDGE('',*,*,#11451,.T.);
++#11453=ORIENTED_EDGE('',*,*,#11435,.T.);
++#11454=ORIENTED_EDGE('',*,*,#5900,.T.);
++#11455=EDGE_LOOP('',(#11450,#11452,#11453,#11454));
++#11456=FACE_OUTER_BOUND('',#11455,.F.);
++#11457=ADVANCED_FACE('',(#11456),#11448,.F.);
++#11458=CARTESIAN_POINT('',(2.53125E1,0.E0,8.69E0));
++#11459=DIRECTION('',(0.E0,0.E0,1.E0));
++#11460=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11461=AXIS2_PLACEMENT_3D('',#11458,#11459,#11460);
++#11462=PLANE('',#11461);
++#11464=ORIENTED_EDGE('',*,*,#11463,.T.);
++#11466=ORIENTED_EDGE('',*,*,#11465,.F.);
++#11467=ORIENTED_EDGE('',*,*,#11449,.T.);
++#11468=ORIENTED_EDGE('',*,*,#5898,.T.);
++#11469=EDGE_LOOP('',(#11464,#11466,#11467,#11468));
++#11470=FACE_OUTER_BOUND('',#11469,.F.);
++#11471=ADVANCED_FACE('',(#11470),#11462,.T.);
++#11472=CARTESIAN_POINT('',(2.419E1,-6.892397422826E-2,7.81E0));
++#11473=DIRECTION('',(0.E0,1.E0,0.E0));
++#11474=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11475=AXIS2_PLACEMENT_3D('',#11472,#11473,#11474);
++#11476=CYLINDRICAL_SURFACE('',#11475,8.8E-1);
++#11478=ORIENTED_EDGE('',*,*,#11477,.T.);
++#11480=ORIENTED_EDGE('',*,*,#11479,.T.);
++#11481=ORIENTED_EDGE('',*,*,#11463,.F.);
++#11482=ORIENTED_EDGE('',*,*,#5896,.T.);
++#11483=EDGE_LOOP('',(#11478,#11480,#11481,#11482));
++#11484=FACE_OUTER_BOUND('',#11483,.F.);
++#11485=ADVANCED_FACE('',(#11484),#11476,.T.);
++#11486=CARTESIAN_POINT('',(2.331E1,0.E0,8.69E0));
++#11487=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11488=DIRECTION('',(0.E0,0.E0,-1.E0));
++#11489=AXIS2_PLACEMENT_3D('',#11486,#11487,#11488);
++#11490=PLANE('',#11489);
++#11491=ORIENTED_EDGE('',*,*,#11477,.F.);
++#11492=ORIENTED_EDGE('',*,*,#5894,.T.);
++#11494=ORIENTED_EDGE('',*,*,#11493,.T.);
++#11496=ORIENTED_EDGE('',*,*,#11495,.F.);
++#11497=EDGE_LOOP('',(#11491,#11492,#11494,#11496));
++#11498=FACE_OUTER_BOUND('',#11497,.F.);
++#11499=ADVANCED_FACE('',(#11498),#11490,.T.);
++#11500=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
++#11501=DIRECTION('',(0.E0,1.E0,0.E0));
++#11502=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11503=AXIS2_PLACEMENT_3D('',#11500,#11501,#11502);
++#11504=CYLINDRICAL_SURFACE('',#11503,5.6125E-1);
++#11505=ORIENTED_EDGE('',*,*,#5892,.T.);
++#11507=ORIENTED_EDGE('',*,*,#11506,.T.);
++#11509=ORIENTED_EDGE('',*,*,#11508,.F.);
++#11510=ORIENTED_EDGE('',*,*,#11493,.F.);
++#11511=EDGE_LOOP('',(#11505,#11507,#11509,#11510));
++#11512=FACE_OUTER_BOUND('',#11511,.F.);
++#11513=ADVANCED_FACE('',(#11512),#11504,.F.);
++#11514=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
++#11515=DIRECTION('',(1.E0,0.E0,0.E0));
++#11516=DIRECTION('',(0.E0,0.E0,1.E0));
++#11517=AXIS2_PLACEMENT_3D('',#11514,#11515,#11516);
++#11518=PLANE('',#11517);
++#11519=ORIENTED_EDGE('',*,*,#11340,.T.);
++#11521=ORIENTED_EDGE('',*,*,#11520,.F.);
++#11522=ORIENTED_EDGE('',*,*,#11506,.F.);
++#11523=ORIENTED_EDGE('',*,*,#5890,.T.);
++#11524=EDGE_LOOP('',(#11519,#11521,#11522,#11523));
++#11525=FACE_OUTER_BOUND('',#11524,.F.);
++#11526=ADVANCED_FACE('',(#11525),#11518,.T.);
++#11527=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
++#11528=DIRECTION('',(0.E0,1.E0,0.E0));
++#11529=DIRECTION('',(-1.E0,0.E0,0.E0));
++#11530=AXIS2_PLACEMENT_3D('',#11527,#11528,#11529);
++#11531=PLANE('',#11530);
++#11532=ORIENTED_EDGE('',*,*,#11465,.T.);
++#11533=ORIENTED_EDGE('',*,*,#11479,.F.);
++#11534=ORIENTED_EDGE('',*,*,#11495,.T.);
++#11535=ORIENTED_EDGE('',*,*,#11508,.T.);
++#11536=ORIENTED_EDGE('',*,*,#11520,.T.);
++#11537=ORIENTED_EDGE('',*,*,#11338,.F.);
++#11538=ORIENTED_EDGE('',*,*,#11355,.T.);
++#11539=ORIENTED_EDGE('',*,*,#11367,.F.);
++#11540=ORIENTED_EDGE('',*,*,#11383,.T.);
++#11541=ORIENTED_EDGE('',*,*,#11395,.F.);
++#11542=ORIENTED_EDGE('',*,*,#11411,.T.);
++#11543=ORIENTED_EDGE('',*,*,#11423,.F.);
++#11544=ORIENTED_EDGE('',*,*,#11437,.T.);
++#11545=ORIENTED_EDGE('',*,*,#11451,.F.);
++#11546=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536,#11537,#11538,#11539,
++#11540,#11541,#11542,#11543,#11544,#11545));
++#11547=FACE_OUTER_BOUND('',#11546,.F.);
++#11548=ADVANCED_FACE('',(#11547),#11531,.F.);
++#11549=CLOSED_SHELL('',(#5954,#6079,#6094,#6107,#6117,#6132,#6145,#6201,#6214,
++#6278,#6488,#6503,#6516,#6529,#6540,#6555,#6568,#6581,#6592,#6605,#6618,#6631,
++#6644,#6656,#6669,#6683,#6696,#6709,#6723,#6736,#6749,#6763,#6776,#6789,#6802,
++#6815,#6828,#6842,#6855,#6868,#6880,#6893,#6906,#6918,#6931,#6945,#6958,#6971,
++#6984,#6998,#7011,#7024,#7036,#7048,#7061,#7074,#7086,#7099,#7114,#7127,#7152,
++#7166,#7178,#7191,#7204,#7217,#7230,#7244,#7256,#7311,#7325,#7337,#7349,#7368,
++#7379,#7394,#7407,#7423,#7437,#7449,#7465,#7477,#7490,#7514,#7529,#7542,#7552,
++#7567,#7580,#7590,#7605,#7619,#7649,#7662,#7675,#7688,#7701,#7714,#7727,#7740,
++#7753,#7766,#7778,#7790,#7805,#7818,#7828,#7843,#7856,#7866,#7881,#7894,#7907,
++#7918,#7933,#7946,#7959,#7970,#7985,#7998,#8014,#8028,#8040,#8055,#8068,#8084,
++#8098,#8110,#8125,#8138,#8154,#8168,#8180,#8195,#8208,#8224,#8238,#8250,#8265,
++#8278,#8294,#8308,#8320,#8335,#8348,#8364,#8378,#8390,#8405,#8418,#8434,#8448,
++#8460,#8475,#8488,#8504,#8518,#8530,#8545,#8558,#8574,#8588,#8600,#8615,#8628,
++#8644,#8658,#8670,#8685,#8698,#8714,#8728,#8740,#8755,#8768,#8784,#8798,#8810,
++#8825,#8838,#8854,#8868,#8880,#8895,#8908,#8924,#8938,#8950,#8965,#8978,#8994,
++#9008,#9020,#9035,#9048,#9064,#9078,#9090,#9105,#9118,#9134,#9148,#9160,#9175,
++#9188,#9204,#9218,#9230,#9242,#9260,#9275,#9288,#9304,#9318,#9330,#9345,#9359,
++#9373,#9387,#9401,#9415,#9429,#9443,#9457,#9471,#9485,#9498,#9518,#9533,#9546,
++#9556,#9571,#9584,#9594,#9609,#9622,#9632,#9647,#9660,#9670,#9685,#9698,#9708,
++#9723,#9737,#9751,#9765,#9779,#9793,#9807,#9820,#9836,#9851,#9865,#9887,#9901,
++#9913,#9926,#9939,#9952,#9964,#9979,#9993,#10007,#10020,#10032,#10050,#10064,
++#10077,#10090,#10103,#10115,#10130,#10144,#10178,#10192,#10205,#10218,#10230,
++#10243,#10256,#10269,#10282,#10295,#10308,#10321,#10333,#10348,#10362,#10376,
++#10389,#10401,#10416,#10430,#10444,#10457,#10469,#10484,#10498,#10512,#10525,
++#10537,#10552,#10566,#10580,#10593,#10605,#10620,#10634,#10648,#10661,#10673,
++#10691,#10705,#10718,#10731,#10744,#10756,#10771,#10785,#10799,#10812,#10824,
++#10842,#10856,#10869,#10882,#10895,#10907,#10922,#10936,#10950,#10963,#10975,
++#10990,#11004,#11018,#11031,#11043,#11058,#11072,#11086,#11099,#11111,#11126,
++#11140,#11154,#11167,#11179,#11194,#11208,#11222,#11235,#11247,#11265,#11279,
++#11292,#11305,#11318,#11330,#11345,#11359,#11373,#11387,#11401,#11415,#11429,
++#11443,#11457,#11471,#11485,#11499,#11513,#11526,#11548));
++#11550=MANIFOLD_SOLID_BREP('',#11549);
++#11551=DIMENSIONAL_EXPONENTS(1.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
++#11552=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
++#11553=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.54E1),#11552);
++#11554=(CONVERSION_BASED_UNIT('INCH',#11553)LENGTH_UNIT()NAMED_UNIT(#11551));
++#11555=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
++#11556=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
++#11557=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),
++#11556);
++#11558=(CONVERSION_BASED_UNIT('DEGREE',#11557)NAMED_UNIT(#11555)PLANE_ANGLE_UNIT());
++#11559=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
++#11560=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(4.404650704771E-3),#11554,
++'closure',
++'Maximum model space distance between geometric entities at asserted connectivities');
++#11561=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((
++#11560))GLOBAL_UNIT_ASSIGNED_CONTEXT((#11554,#11558,#11559))REPRESENTATION_CONTEXT('ID1','3'));
++#11563=APPLICATION_CONTEXT(
++'CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES');
++#11564=APPLICATION_PROTOCOL_DEFINITION('international standard',
++'config_control_design',1994,#11563);
++#11565=DESIGN_CONTEXT('',#11563,'design');
++#11566=MECHANICAL_CONTEXT('',#11563,'mechanical');
++#11567=PRODUCT('PROESOURCE','PROESOURCE','NOT SPECIFIED',(#11566));
++#11568=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',
++#11567,.MADE.);
++#11572=PRODUCT_CATEGORY('part','');
++#11573=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#11567));
++#11574=PRODUCT_CATEGORY_RELATIONSHIP('','',#11572,#11573);
++#11575=SECURITY_CLASSIFICATION_LEVEL('unclassified');
++#11576=SECURITY_CLASSIFICATION('','',#11575);
++#11577=CC_DESIGN_SECURITY_CLASSIFICATION(#11576,(#11568));
++#11578=APPROVAL_STATUS('approved');
++#11579=APPROVAL(#11578,'');
++#11580=CC_DESIGN_APPROVAL(#11579,(#11576,#11568,#11569));
++#11581=CALENDAR_DATE(102,4,11);
++#11582=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);
++#11583=LOCAL_TIME(14,0,4.8E1,#11582);
++#11584=DATE_AND_TIME(#11581,#11583);
++#11585=APPROVAL_DATE_TIME(#11584,#11579);
++#11586=DATE_TIME_ROLE('creation_date');
++#11587=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11586,(#11569));
++#11588=DATE_TIME_ROLE('classification_date');
++#11589=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11588,(#11576));
++#11590=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$);
++#11591=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED');
++#11592=PERSON_AND_ORGANIZATION(#11590,#11591);
++#11593=APPROVAL_ROLE('approver');
++#11594=APPROVAL_PERSON_ORGANIZATION(#11592,#11579,#11593);
++#11595=PERSON_AND_ORGANIZATION_ROLE('creator');
++#11596=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11595,(#11568,
++#11569));
++#11597=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
++#11598=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11597,(#11568));
++#11599=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
++#11600=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11599,(#11576));
++#11601=PERSON_AND_ORGANIZATION_ROLE('design_owner');
++#11602=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11601,(#11567));
++#13=CIRCLE('',#12,1.925E-1);
++#18=CIRCLE('',#17,1.925E-1);
++#23=CIRCLE('',#22,1.925E-1);
++#28=CIRCLE('',#27,1.925E-1);
++#33=CIRCLE('',#32,1.925E-1);
++#38=CIRCLE('',#37,1.925E-1);
++#43=CIRCLE('',#42,1.925E-1);
++#48=CIRCLE('',#47,1.925E-1);
++#53=CIRCLE('',#52,1.925E-1);
++#58=CIRCLE('',#57,1.925E-1);
++#63=CIRCLE('',#62,1.925E-1);
++#68=CIRCLE('',#67,1.925E-1);
++#73=CIRCLE('',#72,1.925E-1);
++#78=CIRCLE('',#77,1.925E-1);
++#83=CIRCLE('',#82,1.925E-1);
++#88=CIRCLE('',#87,1.925E-1);
++#93=CIRCLE('',#92,1.925E-1);
++#98=CIRCLE('',#97,1.925E-1);
++#103=CIRCLE('',#102,1.925E-1);
++#108=CIRCLE('',#107,1.925E-1);
++#113=CIRCLE('',#112,1.925E-1);
++#118=CIRCLE('',#117,1.925E-1);
++#123=CIRCLE('',#122,1.925E-1);
++#128=CIRCLE('',#127,1.925E-1);
++#181=CIRCLE('',#180,1.925E-1);
++#186=CIRCLE('',#185,1.925E-1);
++#191=CIRCLE('',#190,1.925E-1);
++#196=CIRCLE('',#195,1.925E-1);
++#249=CIRCLE('',#248,1.925E-1);
++#254=CIRCLE('',#253,1.925E-1);
++#259=CIRCLE('',#258,1.925E-1);
++#264=CIRCLE('',#263,1.925E-1);
++#269=CIRCLE('',#268,1.925E-1);
++#274=CIRCLE('',#273,1.925E-1);
++#279=CIRCLE('',#278,1.925E-1);
++#284=CIRCLE('',#283,1.925E-1);
++#289=CIRCLE('',#288,1.925E-1);
++#294=CIRCLE('',#293,1.925E-1);
++#299=CIRCLE('',#298,1.925E-1);
++#304=CIRCLE('',#303,1.925E-1);
++#313=CIRCLE('',#312,5.625E-1);
++#322=CIRCLE('',#321,5.625E-1);
++#327=CIRCLE('',#326,9.225E-1);
++#336=CIRCLE('',#335,8.669989027347E-1);
++#341=CIRCLE('',#340,5.6875E0);
++#350=CIRCLE('',#349,5.6125E-1);
++#383=CIRCLE('',#382,5.625E-1);
++#392=CIRCLE('',#391,5.625E-1);
++#401=CIRCLE('',#400,5.625E-1);
++#410=CIRCLE('',#409,5.625E-1);
++#419=CIRCLE('',#418,5.E-1);
++#428=CIRCLE('',#427,5.E-1);
++#437=CIRCLE('',#436,4.375E-1);
++#446=CIRCLE('',#445,4.375E-1);
++#455=CIRCLE('',#454,5.625E-1);
++#464=CIRCLE('',#463,5.625E-1);
++#473=CIRCLE('',#472,5.625E-1);
++#482=CIRCLE('',#481,5.625E-1);
++#491=CIRCLE('',#490,5.625E-1);
++#500=CIRCLE('',#499,5.625E-1);
++#509=CIRCLE('',#508,5.625E-1);
++#518=CIRCLE('',#517,5.625E-1);
++#527=CIRCLE('',#526,5.E-1);
++#536=CIRCLE('',#535,5.E-1);
++#545=CIRCLE('',#544,4.375E-1);
++#554=CIRCLE('',#553,4.375E-1);
++#563=CIRCLE('',#562,5.625E-1);
++#572=CIRCLE('',#571,5.625E-1);
++#581=CIRCLE('',#580,5.6125E-1);
++#614=CIRCLE('',#613,9.225E-1);
++#619=CIRCLE('',#618,5.6875E0);
++#624=CIRCLE('',#623,8.669989027347E-1);
++#633=CIRCLE('',#632,9.225E-1);
++#638=CIRCLE('',#637,5.6875E0);
++#643=CIRCLE('',#642,8.669989027347E-1);
++#648=CIRCLE('',#647,9.225E-1);
++#657=CIRCLE('',#656,8.669989027347E-1);
++#662=CIRCLE('',#661,5.6875E0);
++#667=CIRCLE('',#666,9.5E-2);
++#672=CIRCLE('',#671,9.5E-2);
++#677=CIRCLE('',#676,1.625E-1);
++#682=CIRCLE('',#681,1.625E-1);
++#687=CIRCLE('',#686,9.5E-2);
++#692=CIRCLE('',#691,9.5E-2);
++#697=CIRCLE('',#696,9.5E-2);
++#702=CIRCLE('',#701,9.5E-2);
++#707=CIRCLE('',#706,9.5E-2);
++#712=CIRCLE('',#711,9.5E-2);
++#717=CIRCLE('',#716,9.5E-2);
++#722=CIRCLE('',#721,9.5E-2);
++#727=CIRCLE('',#726,1.625E-1);
++#732=CIRCLE('',#731,1.625E-1);
++#737=CIRCLE('',#736,9.5E-2);
++#742=CIRCLE('',#741,9.5E-2);
++#803=CIRCLE('',#802,9.5E-2);
++#808=CIRCLE('',#807,9.5E-2);
++#821=CIRCLE('',#820,1.625E-1);
++#826=CIRCLE('',#825,1.625E-1);
++#887=CIRCLE('',#886,1.E-1);
++#892=CIRCLE('',#891,1.E-1);
++#897=CIRCLE('',#896,1.E-1);
++#902=CIRCLE('',#901,1.E-1);
++#931=CIRCLE('',#930,1.E-1);
++#936=CIRCLE('',#935,1.E-1);
++#941=CIRCLE('',#940,1.E-1);
++#946=CIRCLE('',#945,1.E-1);
++#951=CIRCLE('',#950,2.575E-1);
++#956=CIRCLE('',#955,2.575E-1);
++#961=CIRCLE('',#960,2.575E-1);
++#966=CIRCLE('',#965,2.575E-1);
++#971=CIRCLE('',#970,2.575E-1);
++#976=CIRCLE('',#975,2.575E-1);
++#981=CIRCLE('',#980,2.575E-1);
++#986=CIRCLE('',#985,2.575E-1);
++#991=CIRCLE('',#990,2.575E-1);
++#996=CIRCLE('',#995,2.575E-1);
++#1001=CIRCLE('',#1000,2.575E-1);
++#1006=CIRCLE('',#1005,2.575E-1);
++#1011=CIRCLE('',#1010,2.56E-1);
++#1016=CIRCLE('',#1015,2.56E-1);
++#1021=CIRCLE('',#1020,2.56E-1);
++#1026=CIRCLE('',#1025,2.56E-1);
++#1031=CIRCLE('',#1030,2.56E-1);
++#1036=CIRCLE('',#1035,2.56E-1);
++#1041=CIRCLE('',#1040,2.56E-1);
++#1046=CIRCLE('',#1045,2.56E-1);
++#1051=CIRCLE('',#1050,2.56E-1);
++#1056=CIRCLE('',#1055,2.56E-1);
++#1061=CIRCLE('',#1060,2.56E-1);
++#1066=CIRCLE('',#1065,2.56E-1);
++#1115=CIRCLE('',#1114,2.575E-1);
++#1120=CIRCLE('',#1119,2.575E-1);
++#1125=CIRCLE('',#1124,2.575E-1);
++#1130=CIRCLE('',#1129,2.575E-1);
++#1135=CIRCLE('',#1134,2.575E-1);
++#1140=CIRCLE('',#1139,2.575E-1);
++#1145=CIRCLE('',#1144,2.575E-1);
++#1150=CIRCLE('',#1149,2.575E-1);
++#1155=CIRCLE('',#1154,2.575E-1);
++#1160=CIRCLE('',#1159,2.575E-1);
++#1165=CIRCLE('',#1164,2.575E-1);
++#1170=CIRCLE('',#1169,2.575E-1);
++#1259=CIRCLE('',#1258,1.E-1);
++#1268=CIRCLE('',#1267,1.E-1);
++#1285=CIRCLE('',#1284,1.E-1);
++#1294=CIRCLE('',#1293,1.E-1);
++#1303=CIRCLE('',#1302,1.E0);
++#1312=CIRCLE('',#1311,1.E0);
++#1317=CIRCLE('',#1316,5.E0);
++#1326=CIRCLE('',#1325,5.E0);
++#1331=CIRCLE('',#1330,5.E0);
++#1340=CIRCLE('',#1339,5.E0);
++#1349=CIRCLE('',#1348,1.E0);
++#1358=CIRCLE('',#1357,1.E0);
++#1367=CIRCLE('',#1366,1.E0);
++#1376=CIRCLE('',#1375,1.E0);
++#1385=CIRCLE('',#1384,1.E0);
++#1394=CIRCLE('',#1393,1.E0);
++#1403=CIRCLE('',#1402,1.E0);
++#1412=CIRCLE('',#1411,1.E0);
++#1421=CIRCLE('',#1420,3.E0);
++#1430=CIRCLE('',#1429,3.E0);
++#1439=CIRCLE('',#1438,3.E0);
++#1448=CIRCLE('',#1447,3.E0);
++#1457=CIRCLE('',#1456,5.E0);
++#1466=CIRCLE('',#1465,5.E0);
++#1475=CIRCLE('',#1474,5.E0);
++#1484=CIRCLE('',#1483,5.E0);
++#1493=CIRCLE('',#1492,3.E0);
++#1502=CIRCLE('',#1501,3.E0);
++#1511=CIRCLE('',#1510,3.E0);
++#1520=CIRCLE('',#1519,3.E0);
++#1529=CIRCLE('',#1528,1.E0);
++#1538=CIRCLE('',#1537,1.E0);
++#1547=CIRCLE('',#1546,1.E0);
++#1556=CIRCLE('',#1555,1.E0);
++#1597=CIRCLE('',#1596,1.E0);
++#1606=CIRCLE('',#1605,1.E0);
++#1675=CIRCLE('',#1674,9.5E-2);
++#1680=CIRCLE('',#1679,9.5E-2);
++#1685=CIRCLE('',#1684,6.25E-2);
++#1690=CIRCLE('',#1689,6.25E-2);
++#1707=CIRCLE('',#1706,1.E0);
++#1716=CIRCLE('',#1715,1.E0);
++#1729=CIRCLE('',#1728,1.E0);
++#1738=CIRCLE('',#1737,1.E0);
++#1767=CIRCLE('',#1766,1.625E-1);
++#1772=CIRCLE('',#1771,1.625E-1);
++#1846=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1837,#1838,#1839,#1840,#1841,#1842,#1843,
++#1844,#1845),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
++6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
++#1856=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1847,#1848,#1849,#1850,#1851,#1852,#1853,
++#1854,#1855),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
++6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
++#1873=CIRCLE('',#1872,2.575E-1);
++#1878=CIRCLE('',#1877,2.575E-1);
++#1883=CIRCLE('',#1882,1.925E-1);
++#1888=CIRCLE('',#1887,1.925E-1);
++#1933=CIRCLE('',#1932,9.5E-2);
++#1938=CIRCLE('',#1937,9.5E-2);
++#1943=CIRCLE('',#1942,6.25E-2);
++#1948=CIRCLE('',#1947,6.25E-2);
++#1961=CIRCLE('',#1960,9.5E-2);
++#1966=CIRCLE('',#1965,9.5E-2);
++#1979=CIRCLE('',#1978,6.25E-2);
++#1984=CIRCLE('',#1983,6.25E-2);
++#1993=CIRCLE('',#1992,3.5E-1);
++#2002=CIRCLE('',#2001,3.5E-1);
++#2035=CIRCLE('',#2034,3.5E-1);
++#2044=CIRCLE('',#2043,3.5E-1);
++#2053=CIRCLE('',#2052,3.5E-1);
++#2062=CIRCLE('',#2061,3.5E-1);
++#2071=CIRCLE('',#2070,3.5E-1);
++#2080=CIRCLE('',#2079,3.5E-1);
++#2089=CIRCLE('',#2088,3.5E-1);
++#2098=CIRCLE('',#2097,3.5E-1);
++#2107=CIRCLE('',#2106,3.5E-1);
++#2116=CIRCLE('',#2115,3.5E-1);
++#2145=CIRCLE('',#2144,9.5E-2);
++#2150=CIRCLE('',#2149,9.5E-2);
++#2163=CIRCLE('',#2162,6.25E-2);
++#2168=CIRCLE('',#2167,6.25E-2);
++#2189=CIRCLE('',#2188,1.E-1);
++#2194=CIRCLE('',#2193,1.E-1);
++#2215=CIRCLE('',#2214,1.E-1);
++#2220=CIRCLE('',#2219,1.E-1);
++#2233=CIRCLE('',#2232,2.575E-1);
++#2238=CIRCLE('',#2237,2.575E-1);
++#2243=CIRCLE('',#2242,1.925E-1);
++#2248=CIRCLE('',#2247,1.925E-1);
++#2269=CIRCLE('',#2268,2.575E-1);
++#2274=CIRCLE('',#2273,2.575E-1);
++#2279=CIRCLE('',#2278,1.925E-1);
++#2284=CIRCLE('',#2283,1.925E-1);
++#2305=CIRCLE('',#2304,2.575E-1);
++#2310=CIRCLE('',#2309,2.575E-1);
++#2315=CIRCLE('',#2314,1.925E-1);
++#2320=CIRCLE('',#2319,1.925E-1);
++#2341=CIRCLE('',#2340,2.575E-1);
++#2346=CIRCLE('',#2345,2.575E-1);
++#2351=CIRCLE('',#2350,1.925E-1);
++#2356=CIRCLE('',#2355,1.925E-1);
++#2377=CIRCLE('',#2376,2.575E-1);
++#2382=CIRCLE('',#2381,2.575E-1);
++#2387=CIRCLE('',#2386,1.925E-1);
++#2392=CIRCLE('',#2391,1.925E-1);
++#2413=CIRCLE('',#2412,2.575E-1);
++#2418=CIRCLE('',#2417,2.575E-1);
++#2423=CIRCLE('',#2422,1.925E-1);
++#2428=CIRCLE('',#2427,1.925E-1);
++#2449=CIRCLE('',#2448,2.56E-1);
++#2454=CIRCLE('',#2453,2.56E-1);
++#2459=CIRCLE('',#2458,1.925E-1);
++#2464=CIRCLE('',#2463,1.925E-1);
++#2485=CIRCLE('',#2484,2.56E-1);
++#2490=CIRCLE('',#2489,2.56E-1);
++#2495=CIRCLE('',#2494,1.925E-1);
++#2500=CIRCLE('',#2499,1.925E-1);
++#2521=CIRCLE('',#2520,2.56E-1);
++#2526=CIRCLE('',#2525,2.56E-1);
++#2531=CIRCLE('',#2530,1.925E-1);
++#2536=CIRCLE('',#2535,1.925E-1);
++#2557=CIRCLE('',#2556,2.56E-1);
++#2562=CIRCLE('',#2561,2.56E-1);
++#2567=CIRCLE('',#2566,1.925E-1);
++#2572=CIRCLE('',#2571,1.925E-1);
++#2593=CIRCLE('',#2592,2.56E-1);
++#2598=CIRCLE('',#2597,2.56E-1);
++#2603=CIRCLE('',#2602,1.925E-1);
++#2608=CIRCLE('',#2607,1.925E-1);
++#2629=CIRCLE('',#2628,2.56E-1);
++#2634=CIRCLE('',#2633,2.56E-1);
++#2639=CIRCLE('',#2638,1.925E-1);
++#2644=CIRCLE('',#2643,1.925E-1);
++#2665=CIRCLE('',#2664,2.575E-1);
++#2670=CIRCLE('',#2669,2.575E-1);
++#2675=CIRCLE('',#2674,1.925E-1);
++#2680=CIRCLE('',#2679,1.925E-1);
++#2701=CIRCLE('',#2700,2.575E-1);
++#2706=CIRCLE('',#2705,2.575E-1);
++#2711=CIRCLE('',#2710,1.925E-1);
++#2716=CIRCLE('',#2715,1.925E-1);
++#2737=CIRCLE('',#2736,2.575E-1);
++#2742=CIRCLE('',#2741,2.575E-1);
++#2747=CIRCLE('',#2746,1.925E-1);
++#2752=CIRCLE('',#2751,1.925E-1);
++#2773=CIRCLE('',#2772,2.575E-1);
++#2778=CIRCLE('',#2777,2.575E-1);
++#2783=CIRCLE('',#2782,1.925E-1);
++#2788=CIRCLE('',#2787,1.925E-1);
++#2809=CIRCLE('',#2808,2.575E-1);
++#2814=CIRCLE('',#2813,2.575E-1);
++#2819=CIRCLE('',#2818,1.925E-1);
++#2824=CIRCLE('',#2823,1.925E-1);
++#2845=CIRCLE('',#2844,2.575E-1);
++#2850=CIRCLE('',#2849,2.575E-1);
++#2855=CIRCLE('',#2854,1.925E-1);
++#2860=CIRCLE('',#2859,1.925E-1);
++#2882=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2873,#2874,#2875,#2876,#2877,#2878,#2879,
++#2880,#2881),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
++6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
++#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2883,#2884,#2885,#2886,#2887,#2888,#2889,
++#2890,#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
++6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
++#2905=CIRCLE('',#2904,2.575E-1);
++#2910=CIRCLE('',#2909,2.575E-1);
++#2915=CIRCLE('',#2914,1.925E-1);
++#2920=CIRCLE('',#2919,1.925E-1);
++#2937=CIRCLE('',#2936,3.5E-1);
++#2946=CIRCLE('',#2945,3.5E-1);
++#2955=CIRCLE('',#2954,3.5E-1);
++#2964=CIRCLE('',#2963,3.5E-1);
++#2973=CIRCLE('',#2972,3.5E-1);
++#2982=CIRCLE('',#2981,3.5E-1);
++#2991=CIRCLE('',#2990,3.5E-1);
++#3000=CIRCLE('',#2999,3.5E-1);
++#3009=CIRCLE('',#3008,3.5E-1);
++#3018=CIRCLE('',#3017,3.5E-1);
++#3027=CIRCLE('',#3026,3.5E-1);
++#3036=CIRCLE('',#3035,3.5E-1);
++#3073=CIRCLE('',#3072,9.5E-2);
++#3078=CIRCLE('',#3077,9.5E-2);
++#3091=CIRCLE('',#3090,9.5E-2);
++#3096=CIRCLE('',#3095,9.5E-2);
++#3109=CIRCLE('',#3108,9.5E-2);
++#3114=CIRCLE('',#3113,9.5E-2);
++#3127=CIRCLE('',#3126,9.5E-2);
++#3132=CIRCLE('',#3131,9.5E-2);
++#3145=CIRCLE('',#3144,9.5E-2);
++#3150=CIRCLE('',#3149,9.5E-2);
++#3159=CIRCLE('',#3158,7.5E-1);
++#3168=CIRCLE('',#3167,7.5E-1);
++#3177=CIRCLE('',#3176,7.5E-1);
++#3186=CIRCLE('',#3185,7.5E-1);
++#3195=CIRCLE('',#3194,7.5E-1);
++#3204=CIRCLE('',#3203,7.5E-1);
++#3213=CIRCLE('',#3212,7.5E-1);
++#3222=CIRCLE('',#3221,7.5E-1);
++#3247=CIRCLE('',#3246,7.5E-1);
++#3256=CIRCLE('',#3255,7.5E-1);
++#3281=CIRCLE('',#3280,7.5E-1);
++#3290=CIRCLE('',#3289,7.5E-1);
++#3299=CIRCLE('',#3298,7.5E-1);
++#3308=CIRCLE('',#3307,7.5E-1);
++#3317=CIRCLE('',#3316,7.5E-1);
++#3326=CIRCLE('',#3325,7.5E-1);
++#3351=CIRCLE('',#3350,5.625E-1);
++#3360=CIRCLE('',#3359,5.625E-1);
++#3365=CIRCLE('',#3364,9.225E-1);
++#3370=CIRCLE('',#3369,5.6875E0);
++#3375=CIRCLE('',#3374,8.669989027347E-1);
++#3388=CIRCLE('',#3387,7.5E-1);
++#3397=CIRCLE('',#3396,7.5E-1);
++#3418=CIRCLE('',#3417,8.75E-1);
++#3427=CIRCLE('',#3426,8.75E-1);
++#3440=CIRCLE('',#3439,5.6125E-1);
++#3469=CIRCLE('',#3468,8.75E-1);
++#3478=CIRCLE('',#3477,8.75E-1);
++#3495=CIRCLE('',#3494,8.75E-1);
++#3504=CIRCLE('',#3503,8.75E-1);
++#3513=CIRCLE('',#3512,8.75E-1);
++#3522=CIRCLE('',#3521,8.75E-1);
++#3531=CIRCLE('',#3530,8.75E-1);
++#3540=CIRCLE('',#3539,8.75E-1);
++#3549=CIRCLE('',#3548,8.75E-1);
++#3558=CIRCLE('',#3557,8.75E-1);
++#3583=CIRCLE('',#3582,5.625E-1);
++#3592=CIRCLE('',#3591,5.625E-1);
++#3617=CIRCLE('',#3616,5.625E-1);
++#3626=CIRCLE('',#3625,5.625E-1);
++#3651=CIRCLE('',#3650,5.E-1);
++#3660=CIRCLE('',#3659,5.E-1);
++#3685=CIRCLE('',#3684,4.375E-1);
++#3694=CIRCLE('',#3693,4.375E-1);
++#3719=CIRCLE('',#3718,5.625E-1);
++#3728=CIRCLE('',#3727,5.625E-1);
++#3737=CIRCLE('',#3736,8.669989027347E-1);
++#3742=CIRCLE('',#3741,5.6875E0);
++#3747=CIRCLE('',#3746,9.225E-1);
++#3756=CIRCLE('',#3755,7.5E-1);
++#3765=CIRCLE('',#3764,7.5E-1);
++#3802=CIRCLE('',#3801,5.625E-1);
++#3811=CIRCLE('',#3810,5.625E-1);
++#3820=CIRCLE('',#3819,8.669989027347E-1);
++#3825=CIRCLE('',#3824,5.6875E0);
++#3830=CIRCLE('',#3829,9.225E-1);
++#3839=CIRCLE('',#3838,7.5E-1);
++#3848=CIRCLE('',#3847,7.5E-1);
++#3885=CIRCLE('',#3884,5.625E-1);
++#3894=CIRCLE('',#3893,5.625E-1);
++#3919=CIRCLE('',#3918,5.625E-1);
++#3928=CIRCLE('',#3927,5.625E-1);
++#3953=CIRCLE('',#3952,5.E-1);
++#3962=CIRCLE('',#3961,5.E-1);
++#3987=CIRCLE('',#3986,4.375E-1);
++#3996=CIRCLE('',#3995,4.375E-1);
++#4021=CIRCLE('',#4020,5.625E-1);
++#4030=CIRCLE('',#4029,5.625E-1);
++#4035=CIRCLE('',#4034,9.225E-1);
++#4040=CIRCLE('',#4039,5.6875E0);
++#4045=CIRCLE('',#4044,8.669989027347E-1);
++#4058=CIRCLE('',#4057,7.5E-1);
++#4067=CIRCLE('',#4066,7.5E-1);
++#4088=CIRCLE('',#4087,8.8E-1);
++#4097=CIRCLE('',#4096,8.8E-1);
++#4106=CIRCLE('',#4105,8.8E-1);
++#4115=CIRCLE('',#4114,8.8E-1);
++#4124=CIRCLE('',#4123,8.8E-1);
++#4133=CIRCLE('',#4132,8.8E-1);
++#4142=CIRCLE('',#4141,8.8E-1);
++#4151=CIRCLE('',#4150,8.8E-1);
++#4160=CIRCLE('',#4159,8.8E-1);
++#4169=CIRCLE('',#4168,8.8E-1);
++#4178=CIRCLE('',#4177,8.8E-1);
++#4187=CIRCLE('',#4186,8.8E-1);
++#4208=CIRCLE('',#4207,5.6125E-1);
++#5494=EDGE_CURVE('',#4423,#4400,#132,.T.);
++#5496=EDGE_CURVE('',#4419,#4423,#1597,.T.);
++#5498=EDGE_CURVE('',#4419,#4243,#136,.T.);
++#5500=EDGE_CURVE('',#4239,#4243,#1614,.T.);
++#5502=EDGE_CURVE('',#4239,#4259,#140,.T.);
++#5504=EDGE_CURVE('',#4255,#4259,#1630,.T.);
++#5506=EDGE_CURVE('',#4255,#4320,#144,.T.);
++#5508=EDGE_CURVE('',#4324,#4320,#1376,.T.);
++#5510=EDGE_CURVE('',#4324,#4300,#148,.T.);
++#5512=EDGE_CURVE('',#4300,#4347,#152,.T.);
++#5514=EDGE_CURVE('',#4343,#4347,#1912,.T.);
++#5516=EDGE_CURVE('',#4343,#4315,#156,.T.);
++#5518=EDGE_CURVE('',#4311,#4315,#1385,.T.);
++#5520=EDGE_CURVE('',#4311,#4251,#160,.T.);
++#5522=EDGE_CURVE('',#4247,#4251,#1580,.T.);
++#5524=EDGE_CURVE('',#4247,#4235,#164,.T.);
++#5526=EDGE_CURVE('',#4231,#4235,#1564,.T.);
++#5528=EDGE_CURVE('',#4231,#4404,#168,.T.);
++#5530=EDGE_CURVE('',#4408,#4404,#1556,.T.);
++#5532=EDGE_CURVE('',#4444,#4408,#172,.T.);
++#5534=EDGE_CURVE('',#4444,#4448,#1654,.T.);
++#5536=EDGE_CURVE('',#4400,#4448,#176,.T.);
++#5540=EDGE_CURVE('',#4427,#4328,#4,.T.);
++#5542=EDGE_CURVE('',#4332,#4328,#1358,.T.);
++#5544=EDGE_CURVE('',#4264,#4332,#1340,.T.);
++#5546=EDGE_CURVE('',#4268,#4264,#8,.T.);
++#5548=EDGE_CURVE('',#4431,#4268,#1317,.T.);
++#5550=EDGE_CURVE('',#4427,#4431,#1303,.T.);
++#5554=EDGE_CURVE('',#4639,#4640,#13,.T.);
++#5556=EDGE_CURVE('',#4640,#4639,#18,.T.);
++#5560=EDGE_CURVE('',#4635,#4636,#23,.T.);
++#5562=EDGE_CURVE('',#4636,#4635,#28,.T.);
++#5566=EDGE_CURVE('',#4631,#4632,#33,.T.);
++#5568=EDGE_CURVE('',#4632,#4631,#38,.T.);
++#5572=EDGE_CURVE('',#4627,#4628,#43,.T.);
++#5574=EDGE_CURVE('',#4628,#4627,#48,.T.);
++#5578=EDGE_CURVE('',#4623,#4624,#53,.T.);
++#5580=EDGE_CURVE('',#4624,#4623,#58,.T.);
++#5584=EDGE_CURVE('',#4527,#4528,#63,.T.);
++#5586=EDGE_CURVE('',#4528,#4527,#68,.T.);
++#5590=EDGE_CURVE('',#4523,#4524,#73,.T.);
++#5592=EDGE_CURVE('',#4524,#4523,#78,.T.);
++#5596=EDGE_CURVE('',#4519,#4520,#83,.T.);
++#5598=EDGE_CURVE('',#4520,#4519,#88,.T.);
++#5602=EDGE_CURVE('',#4515,#4516,#93,.T.);
++#5604=EDGE_CURVE('',#4516,#4515,#98,.T.);
++#5608=EDGE_CURVE('',#4511,#4512,#103,.T.);
++#5610=EDGE_CURVE('',#4512,#4511,#108,.T.);
++#5614=EDGE_CURVE('',#4507,#4508,#113,.T.);
++#5616=EDGE_CURVE('',#4508,#4507,#118,.T.);
++#5620=EDGE_CURVE('',#4503,#4504,#123,.T.);
++#5622=EDGE_CURVE('',#4504,#4503,#128,.T.);
++#5626=EDGE_CURVE('',#4487,#4488,#181,.T.);
++#5628=EDGE_CURVE('',#4488,#4487,#186,.T.);
++#5632=EDGE_CURVE('',#4607,#4608,#191,.T.);
++#5634=EDGE_CURVE('',#4608,#4607,#196,.T.);
++#5638=EDGE_CURVE('',#4796,#4803,#200,.T.);
++#5640=EDGE_CURVE('',#4799,#4803,#1439,.T.);
++#5642=EDGE_CURVE('',#4280,#4799,#204,.T.);
++#5644=EDGE_CURVE('',#4284,#4280,#1466,.T.);
++#5646=EDGE_CURVE('',#4272,#4284,#208,.T.);
++#5648=EDGE_CURVE('',#4276,#4272,#1484,.T.);
++#5650=EDGE_CURVE('',#4792,#4276,#212,.T.);
++#5652=EDGE_CURVE('',#4796,#4792,#1430,.T.);
++#5656=EDGE_CURVE('',#4808,#4411,#216,.T.);
++#5658=EDGE_CURVE('',#4812,#4808,#1502,.T.);
++#5660=EDGE_CURVE('',#4812,#4819,#220,.T.);
++#5662=EDGE_CURVE('',#4815,#4819,#1511,.T.);
++#5664=EDGE_CURVE('',#4304,#4815,#224,.T.);
++#5666=EDGE_CURVE('',#4308,#4304,#1412,.T.);
++#5668=EDGE_CURVE('',#4308,#4339,#228,.T.);
++#5670=EDGE_CURVE('',#4335,#4339,#1754,.T.);
++#5672=EDGE_CURVE('',#4335,#4772,#232,.T.);
++#5674=EDGE_CURVE('',#4776,#4772,#1738,.T.);
++#5676=EDGE_CURVE('',#4776,#4783,#236,.T.);
++#5678=EDGE_CURVE('',#4779,#4783,#1707,.T.);
++#5680=EDGE_CURVE('',#4436,#4779,#240,.T.);
++#5682=EDGE_CURVE('',#4436,#4440,#2132,.T.);
++#5684=EDGE_CURVE('',#4415,#4440,#244,.T.);
++#5686=EDGE_CURVE('',#4411,#4415,#1529,.T.);
++#5690=EDGE_CURVE('',#4823,#4824,#249,.T.);
++#5692=EDGE_CURVE('',#4824,#4823,#254,.T.);
++#5696=EDGE_CURVE('',#4839,#4840,#259,.T.);
++#5698=EDGE_CURVE('',#4840,#4839,#264,.T.);
++#5702=EDGE_CURVE('',#4843,#4844,#269,.T.);
++#5704=EDGE_CURVE('',#4844,#4843,#274,.T.);
++#5708=EDGE_CURVE('',#4847,#4848,#279,.T.);
++#5710=EDGE_CURVE('',#4848,#4847,#284,.T.);
++#5714=EDGE_CURVE('',#4851,#4852,#289,.T.);
++#5716=EDGE_CURVE('',#4852,#4851,#294,.T.);
++#5720=EDGE_CURVE('',#4855,#4856,#299,.T.);
++#5722=EDGE_CURVE('',#4856,#4855,#304,.T.);
++#5726=EDGE_CURVE('',#5121,#5122,#308,.T.);
++#5728=EDGE_CURVE('',#5122,#5124,#313,.T.);
++#5730=EDGE_CURVE('',#5124,#5126,#317,.T.);
++#5732=EDGE_CURVE('',#5126,#5121,#322,.T.);
++#5736=EDGE_CURVE('',#5132,#5139,#327,.T.);
++#5738=EDGE_CURVE('',#5135,#5139,#3388,.T.);
++#5740=EDGE_CURVE('',#5135,#5129,#331,.T.);
++#5742=EDGE_CURVE('',#5129,#5130,#336,.T.);
++#5744=EDGE_CURVE('',#5132,#5130,#341,.T.);
++#5748=EDGE_CURVE('',#5184,#5186,#3418,.T.);
++#5750=EDGE_CURVE('',#5184,#5147,#345,.T.);
++#5752=EDGE_CURVE('',#5147,#5148,#350,.T.);
++#5754=EDGE_CURVE('',#5148,#5194,#354,.T.);
++#5756=EDGE_CURVE('',#5192,#5194,#3469,.T.);
++#5758=EDGE_CURVE('',#5192,#5171,#358,.T.);
++#5760=EDGE_CURVE('',#5167,#5171,#3495,.T.);
++#5762=EDGE_CURVE('',#5167,#5179,#362,.T.);
++#5764=EDGE_CURVE('',#5175,#5179,#3513,.T.);
++#5766=EDGE_CURVE('',#5175,#5155,#366,.T.);
++#5768=EDGE_CURVE('',#5151,#5155,#3531,.T.);
++#5770=EDGE_CURVE('',#5151,#5163,#370,.T.);
++#5772=EDGE_CURVE('',#5159,#5163,#3549,.T.);
++#5774=EDGE_CURVE('',#5159,#5186,#374,.T.);
++#5778=EDGE_CURVE('',#5207,#5208,#378,.T.);
++#5780=EDGE_CURVE('',#5208,#5210,#383,.T.);
++#5782=EDGE_CURVE('',#5210,#5212,#387,.T.);
++#5784=EDGE_CURVE('',#5212,#5207,#392,.T.);
++#5788=EDGE_CURVE('',#5223,#5224,#396,.T.);
++#5790=EDGE_CURVE('',#5224,#5226,#401,.T.);
++#5792=EDGE_CURVE('',#5226,#5228,#405,.T.);
++#5794=EDGE_CURVE('',#5228,#5223,#410,.T.);
++#5798=EDGE_CURVE('',#5239,#5240,#414,.T.);
++#5800=EDGE_CURVE('',#5240,#5242,#419,.T.);
++#5802=EDGE_CURVE('',#5242,#5244,#423,.T.);
++#5804=EDGE_CURVE('',#5244,#5239,#428,.T.);
++#5808=EDGE_CURVE('',#5255,#5256,#432,.T.);
++#5810=EDGE_CURVE('',#5256,#5258,#437,.T.);
++#5812=EDGE_CURVE('',#5258,#5260,#441,.T.);
++#5814=EDGE_CURVE('',#5260,#5255,#446,.T.);
++#5818=EDGE_CURVE('',#5277,#5278,#450,.T.);
++#5820=EDGE_CURVE('',#5282,#5277,#455,.T.);
++#5822=EDGE_CURVE('',#5280,#5282,#459,.T.);
++#5824=EDGE_CURVE('',#5278,#5280,#464,.T.);
++#5828=EDGE_CURVE('',#5305,#5306,#468,.T.);
++#5830=EDGE_CURVE('',#5310,#5305,#473,.T.);
++#5832=EDGE_CURVE('',#5308,#5310,#477,.T.);
++#5834=EDGE_CURVE('',#5306,#5308,#482,.T.);
++#5838=EDGE_CURVE('',#5335,#5336,#486,.T.);
++#5840=EDGE_CURVE('',#5340,#5335,#491,.T.);
++#5842=EDGE_CURVE('',#5338,#5340,#495,.T.);
++#5844=EDGE_CURVE('',#5336,#5338,#500,.T.);
++#5848=EDGE_CURVE('',#5351,#5352,#504,.T.);
++#5850=EDGE_CURVE('',#5356,#5351,#509,.T.);
++#5852=EDGE_CURVE('',#5354,#5356,#513,.T.);
++#5854=EDGE_CURVE('',#5352,#5354,#518,.T.);
++#5858=EDGE_CURVE('',#5367,#5368,#522,.T.);
++#5860=EDGE_CURVE('',#5372,#5367,#527,.T.);
++#5862=EDGE_CURVE('',#5370,#5372,#531,.T.);
++#5864=EDGE_CURVE('',#5368,#5370,#536,.T.);
++#5868=EDGE_CURVE('',#5383,#5384,#540,.T.);
++#5870=EDGE_CURVE('',#5388,#5383,#545,.T.);
++#5872=EDGE_CURVE('',#5386,#5388,#549,.T.);
++#5874=EDGE_CURVE('',#5384,#5386,#554,.T.);
++#5878=EDGE_CURVE('',#5405,#5406,#558,.T.);
++#5880=EDGE_CURVE('',#5406,#5408,#563,.T.);
++#5882=EDGE_CURVE('',#5408,#5410,#567,.T.);
++#5884=EDGE_CURVE('',#5410,#5405,#572,.T.);
++#5888=EDGE_CURVE('',#5455,#5451,#4097,.T.);
++#5890=EDGE_CURVE('',#5324,#5455,#576,.T.);
++#5892=EDGE_CURVE('',#5323,#5324,#581,.T.);
++#5894=EDGE_CURVE('',#5459,#5323,#585,.T.);
++#5896=EDGE_CURVE('',#5463,#5459,#4187,.T.);
++#5898=EDGE_CURVE('',#5436,#5463,#589,.T.);
++#5900=EDGE_CURVE('',#5440,#5436,#4169,.T.);
++#5902=EDGE_CURVE('',#5444,#5440,#593,.T.);
++#5904=EDGE_CURVE('',#5448,#5444,#4151,.T.);
++#5906=EDGE_CURVE('',#5428,#5448,#597,.T.);
++#5908=EDGE_CURVE('',#5432,#5428,#4133,.T.);
++#5910=EDGE_CURVE('',#5420,#5432,#601,.T.);
++#5912=EDGE_CURVE('',#5424,#5420,#4115,.T.);
++#5914=EDGE_CURVE('',#5451,#5424,#605,.T.);
++#5918=EDGE_CURVE('',#5471,#5313,#609,.T.);
++#5920=EDGE_CURVE('',#5467,#5471,#3839,.T.);
++#5922=EDGE_CURVE('',#5316,#5467,#614,.T.);
++#5924=EDGE_CURVE('',#5316,#5314,#619,.T.);
++#5926=EDGE_CURVE('',#5313,#5314,#624,.T.);
++#5930=EDGE_CURVE('',#5479,#5285,#628,.T.);
++#5932=EDGE_CURVE('',#5475,#5479,#3756,.T.);
++#5934=EDGE_CURVE('',#5288,#5475,#633,.T.);
++#5936=EDGE_CURVE('',#5288,#5286,#638,.T.);
++#5938=EDGE_CURVE('',#5285,#5286,#643,.T.);
++#5942=EDGE_CURVE('',#5416,#5487,#648,.T.);
++#5944=EDGE_CURVE('',#5483,#5487,#4058,.T.);
++#5946=EDGE_CURVE('',#5483,#5413,#652,.T.);
++#5948=EDGE_CURVE('',#5413,#5414,#657,.T.);
++#5950=EDGE_CURVE('',#5416,#5414,#662,.T.);
++#5961=EDGE_CURVE('',#4427,#4428,#1298,.T.);
++#5963=EDGE_CURVE('',#4424,#4428,#906,.T.);
++#5965=EDGE_CURVE('',#4423,#4424,#1601,.T.);
++#5968=EDGE_CURVE('',#4390,#4400,#1658,.T.);
++#5970=EDGE_CURVE('',#4387,#4390,#746,.T.);
++#5972=EDGE_CURVE('',#4387,#4388,#750,.T.);
++#5974=EDGE_CURVE('',#4768,#4388,#1698,.T.);
++#5976=EDGE_CURVE('',#4767,#4768,#1230,.T.);
++#5978=EDGE_CURVE('',#4287,#4767,#1746,.T.);
++#5980=EDGE_CURVE('',#4287,#4288,#754,.T.);
++#5982=EDGE_CURVE('',#4288,#4290,#758,.T.);
++#5984=EDGE_CURVE('',#4300,#4290,#1900,.T.);
++#5987=EDGE_CURVE('',#4323,#4324,#1371,.T.);
++#5989=EDGE_CURVE('',#4327,#4323,#914,.T.);
++#5991=EDGE_CURVE('',#4327,#4328,#1344,.T.);
++#5995=EDGE_CURVE('',#4747,#4748,#667,.T.);
++#5997=EDGE_CURVE('',#4748,#4747,#672,.T.);
++#6001=EDGE_CURVE('',#4735,#4736,#677,.T.);
++#6003=EDGE_CURVE('',#4736,#4735,#682,.T.);
++#6007=EDGE_CURVE('',#4755,#4756,#687,.T.);
++#6009=EDGE_CURVE('',#4756,#4755,#692,.T.);
++#6013=EDGE_CURVE('',#4763,#4764,#697,.T.);
++#6015=EDGE_CURVE('',#4764,#4763,#702,.T.);
++#6019=EDGE_CURVE('',#4731,#4732,#707,.T.);
++#6021=EDGE_CURVE('',#4732,#4731,#712,.T.);
++#6025=EDGE_CURVE('',#4723,#4724,#717,.T.);
++#6027=EDGE_CURVE('',#4724,#4723,#722,.T.);
++#6031=EDGE_CURVE('',#4703,#4704,#727,.T.);
++#6033=EDGE_CURVE('',#4704,#4703,#732,.T.);
++#6037=EDGE_CURVE('',#4715,#4716,#737,.T.);
++#6039=EDGE_CURVE('',#4716,#4715,#742,.T.);
++#6043=EDGE_CURVE('',#4947,#4959,#762,.T.);
++#6045=EDGE_CURVE('',#4955,#4959,#3213,.T.);
++#6047=EDGE_CURVE('',#4955,#4967,#766,.T.);
++#6049=EDGE_CURVE('',#4963,#4967,#3195,.T.);
++#6051=EDGE_CURVE('',#4963,#4975,#770,.T.);
++#6053=EDGE_CURVE('',#4971,#4975,#3177,.T.);
++#6055=EDGE_CURVE('',#4971,#4951,#774,.T.);
++#6057=EDGE_CURVE('',#4947,#4951,#3159,.T.);
++#6061=EDGE_CURVE('',#5036,#5048,#778,.T.);
++#6063=EDGE_CURVE('',#5040,#5036,#3256,.T.);
++#6065=EDGE_CURVE('',#5028,#5040,#782,.T.);
++#6067=EDGE_CURVE('',#5032,#5028,#3290,.T.);
++#6069=EDGE_CURVE('',#5052,#5032,#786,.T.);
++#6071=EDGE_CURVE('',#5056,#5052,#3308,.T.);
++#6073=EDGE_CURVE('',#5044,#5056,#790,.T.);
++#6075=EDGE_CURVE('',#5048,#5044,#3326,.T.);
++#6086=EDGE_CURVE('',#4747,#4743,#794,.T.);
++#6088=EDGE_CURVE('',#4743,#4744,#803,.T.);
++#6090=EDGE_CURVE('',#4748,#4744,#798,.T.);
++#6102=EDGE_CURVE('',#4744,#4743,#808,.T.);
++#6124=EDGE_CURVE('',#4735,#4739,#812,.T.);
++#6126=EDGE_CURVE('',#4739,#4740,#821,.T.);
++#6128=EDGE_CURVE('',#4736,#4740,#816,.T.);
++#6140=EDGE_CURVE('',#4740,#4739,#826,.T.);
++#6151=EDGE_CURVE('',#4934,#4940,#830,.T.);
++#6153=EDGE_CURVE('',#4940,#4942,#834,.T.);
++#6155=EDGE_CURVE('',#4938,#4942,#838,.T.);
++#6157=EDGE_CURVE('',#4788,#4938,#1234,.T.);
++#6159=EDGE_CURVE('',#4788,#4393,#842,.T.);
++#6161=EDGE_CURVE('',#4393,#4394,#846,.T.);
++#6163=EDGE_CURVE('',#4394,#4396,#850,.T.);
++#6165=EDGE_CURVE('',#4396,#4398,#854,.T.);
++#6167=EDGE_CURVE('',#4934,#4398,#1178,.T.);
++#6175=EDGE_CURVE('',#5103,#5099,#2946,.T.);
++#6177=EDGE_CURVE('',#5076,#5103,#858,.T.);
++#6179=EDGE_CURVE('',#5080,#5076,#3036,.T.);
++#6181=EDGE_CURVE('',#5084,#5080,#862,.T.);
++#6183=EDGE_CURVE('',#5088,#5084,#3018,.T.);
++#6185=EDGE_CURVE('',#5092,#5088,#866,.T.);
++#6187=EDGE_CURVE('',#5096,#5092,#3000,.T.);
++#6189=EDGE_CURVE('',#5068,#5096,#870,.T.);
++#6191=EDGE_CURVE('',#5072,#5068,#2982,.T.);
++#6193=EDGE_CURVE('',#5060,#5072,#874,.T.);
++#6195=EDGE_CURVE('',#5064,#5060,#2964,.T.);
++#6197=EDGE_CURVE('',#5099,#5064,#878,.T.);
++#6207=EDGE_CURVE('',#4933,#4934,#1174,.T.);
++#6209=EDGE_CURVE('',#4940,#4933,#882,.T.);
++#6221=EDGE_CURVE('',#4432,#4428,#1312,.T.);
++#6223=EDGE_CURVE('',#4267,#4432,#1326,.T.);
++#6225=EDGE_CURVE('',#4267,#4263,#910,.T.);
++#6227=EDGE_CURVE('',#4331,#4263,#1331,.T.);
++#6229=EDGE_CURVE('',#4327,#4331,#1349,.T.);
++#6232=EDGE_CURVE('',#4319,#4323,#1367,.T.);
++#6234=EDGE_CURVE('',#4256,#4319,#918,.T.);
++#6236=EDGE_CURVE('',#4256,#4260,#1638,.T.);
++#6238=EDGE_CURVE('',#4240,#4260,#922,.T.);
++#6240=EDGE_CURVE('',#4240,#4244,#1622,.T.);
++#6242=EDGE_CURVE('',#4420,#4244,#926,.T.);
++#6244=EDGE_CURVE('',#4424,#4420,#1606,.T.);
++#6248=EDGE_CURVE('',#4495,#4496,#951,.T.);
++#6250=EDGE_CURVE('',#4496,#4495,#956,.T.);
++#6254=EDGE_CURVE('',#4567,#4568,#981,.T.);
++#6256=EDGE_CURVE('',#4568,#4567,#986,.T.);
++#6260=EDGE_CURVE('',#4615,#4616,#1011,.T.);
++#6262=EDGE_CURVE('',#4616,#4615,#1016,.T.);
++#6266=EDGE_CURVE('',#4647,#4648,#1021,.T.);
++#6268=EDGE_CURVE('',#4648,#4647,#1026,.T.);
++#6272=EDGE_CURVE('',#4659,#4660,#1031,.T.);
++#6274=EDGE_CURVE('',#4660,#4659,#1036,.T.);
++#6286=EDGE_CURVE('',#4398,#4447,#1182,.T.);
++#6288=EDGE_CURVE('',#4443,#4447,#1646,.T.);
++#6290=EDGE_CURVE('',#4443,#4407,#1186,.T.);
++#6292=EDGE_CURVE('',#4403,#4407,#1547,.T.);
++#6294=EDGE_CURVE('',#4232,#4403,#1190,.T.);
++#6296=EDGE_CURVE('',#4232,#4236,#1572,.T.);
++#6298=EDGE_CURVE('',#4248,#4236,#1194,.T.);
++#6300=EDGE_CURVE('',#4248,#4252,#1588,.T.);
++#6302=EDGE_CURVE('',#4312,#4252,#1198,.T.);
++#6304=EDGE_CURVE('',#4316,#4312,#1394,.T.);
++#6306=EDGE_CURVE('',#4344,#4316,#1202,.T.);
++#6308=EDGE_CURVE('',#4344,#4348,#1920,.T.);
++#6310=EDGE_CURVE('',#4298,#4348,#1206,.T.);
++#6312=EDGE_CURVE('',#4298,#4920,#1210,.T.);
++#6314=EDGE_CURVE('',#4919,#4920,#1214,.T.);
++#6316=EDGE_CURVE('',#4919,#4923,#1218,.T.);
++#6318=EDGE_CURVE('',#4923,#4924,#1222,.T.);
++#6320=EDGE_CURVE('',#4924,#4786,#1226,.T.);
++#6322=EDGE_CURVE('',#4767,#4786,#1742,.T.);
++#6325=EDGE_CURVE('',#4768,#4788,#1694,.T.);
++#6328=EDGE_CURVE('',#4937,#4938,#1238,.T.);
++#6330=EDGE_CURVE('',#4933,#4937,#1242,.T.);
++#6334=EDGE_CURVE('',#4373,#4374,#887,.T.);
++#6336=EDGE_CURVE('',#4374,#4373,#892,.T.);
++#6340=EDGE_CURVE('',#4383,#4384,#897,.T.);
++#6342=EDGE_CURVE('',#4384,#4383,#902,.T.);
++#6346=EDGE_CURVE('',#4473,#4474,#931,.T.);
++#6348=EDGE_CURVE('',#4474,#4473,#936,.T.);
++#6352=EDGE_CURVE('',#4483,#4484,#941,.T.);
++#6354=EDGE_CURVE('',#4484,#4483,#946,.T.);
++#6358=EDGE_CURVE('',#4543,#4544,#961,.T.);
++#6360=EDGE_CURVE('',#4544,#4543,#966,.T.);
++#6364=EDGE_CURVE('',#4555,#4556,#971,.T.);
++#6366=EDGE_CURVE('',#4556,#4555,#976,.T.);
++#6370=EDGE_CURVE('',#4587,#4588,#991,.T.);
++#6372=EDGE_CURVE('',#4588,#4587,#996,.T.);
++#6376=EDGE_CURVE('',#4599,#4600,#1001,.T.);
++#6378=EDGE_CURVE('',#4600,#4599,#1006,.T.);
++#6382=EDGE_CURVE('',#4671,#4672,#1041,.T.);
++#6384=EDGE_CURVE('',#4672,#4671,#1046,.T.);
++#6388=EDGE_CURVE('',#4683,#4684,#1051,.T.);
++#6390=EDGE_CURVE('',#4684,#4683,#1056,.T.);
++#6394=EDGE_CURVE('',#4695,#4696,#1061,.T.);
++#6396=EDGE_CURVE('',#4696,#4695,#1066,.T.);
++#6400=EDGE_CURVE('',#4279,#4800,#1070,.T.);
++#6402=EDGE_CURVE('',#4804,#4800,#1448,.T.);
++#6404=EDGE_CURVE('',#4795,#4804,#1074,.T.);
++#6406=EDGE_CURVE('',#4791,#4795,#1421,.T.);
++#6408=EDGE_CURVE('',#4791,#4275,#1078,.T.);
++#6410=EDGE_CURVE('',#4271,#4275,#1475,.T.);
++#6412=EDGE_CURVE('',#4271,#4283,#1082,.T.);
++#6414=EDGE_CURVE('',#4279,#4283,#1457,.T.);
++#6418=EDGE_CURVE('',#4811,#4820,#1086,.T.);
++#6420=EDGE_CURVE('',#4807,#4811,#1493,.T.);
++#6422=EDGE_CURVE('',#4807,#4412,#1090,.T.);
++#6424=EDGE_CURVE('',#4416,#4412,#1538,.T.);
++#6426=EDGE_CURVE('',#4416,#4439,#1094,.T.);
++#6428=EDGE_CURVE('',#4435,#4439,#2124,.T.);
++#6430=EDGE_CURVE('',#4435,#4780,#1098,.T.);
++#6432=EDGE_CURVE('',#4784,#4780,#1716,.T.);
++#6434=EDGE_CURVE('',#4775,#4784,#1720,.T.);
++#6436=EDGE_CURVE('',#4771,#4775,#1729,.T.);
++#6438=EDGE_CURVE('',#4336,#4771,#1102,.T.);
++#6440=EDGE_CURVE('',#4336,#4340,#1762,.T.);
++#6442=EDGE_CURVE('',#4307,#4340,#1106,.T.);
++#6444=EDGE_CURVE('',#4303,#4307,#1403,.T.);
++#6446=EDGE_CURVE('',#4303,#4816,#1110,.T.);
++#6448=EDGE_CURVE('',#4820,#4816,#1520,.T.);
++#6452=EDGE_CURVE('',#4831,#4832,#1115,.T.);
++#6454=EDGE_CURVE('',#4832,#4831,#1120,.T.);
++#6458=EDGE_CURVE('',#4863,#4864,#1125,.T.);
++#6460=EDGE_CURVE('',#4864,#4863,#1130,.T.);
++#6464=EDGE_CURVE('',#4875,#4876,#1135,.T.);
++#6466=EDGE_CURVE('',#4876,#4875,#1140,.T.);
++#6470=EDGE_CURVE('',#4887,#4888,#1145,.T.);
++#6472=EDGE_CURVE('',#4888,#4887,#1150,.T.);
++#6476=EDGE_CURVE('',#4899,#4900,#1155,.T.);
++#6478=EDGE_CURVE('',#4900,#4899,#1160,.T.);
++#6482=EDGE_CURVE('',#4911,#4912,#1165,.T.);
++#6484=EDGE_CURVE('',#4912,#4911,#1170,.T.);
++#6495=EDGE_CURVE('',#4368,#4374,#1250,.T.);
++#6497=EDGE_CURVE('',#4370,#4368,#1268,.T.);
++#6499=EDGE_CURVE('',#4370,#4373,#1246,.T.);
++#6511=EDGE_CURVE('',#4370,#4368,#1259,.T.);
++#6522=EDGE_CURVE('',#4367,#4368,#1254,.T.);
++#6525=EDGE_CURVE('',#4367,#4370,#1263,.T.);
++#6547=EDGE_CURVE('',#4378,#4384,#1276,.T.);
++#6549=EDGE_CURVE('',#4380,#4378,#1294,.T.);
++#6551=EDGE_CURVE('',#4380,#4383,#1272,.T.);
++#6563=EDGE_CURVE('',#4380,#4378,#1285,.T.);
++#6574=EDGE_CURVE('',#4377,#4378,#1280,.T.);
++#6577=EDGE_CURVE('',#4377,#4380,#1289,.T.);
++#6600=EDGE_CURVE('',#4431,#4432,#1307,.T.);
++#6613=EDGE_CURVE('',#4267,#4268,#1321,.T.);
++#6624=EDGE_CURVE('',#4263,#4264,#1335,.T.);
++#6637=EDGE_CURVE('',#4331,#4332,#1353,.T.);
++#6662=EDGE_CURVE('',#4319,#4320,#1362,.T.);
++#6675=EDGE_CURVE('',#4311,#4312,#1380,.T.);
++#6678=EDGE_CURVE('',#4251,#4252,#1584,.T.);
++#6691=EDGE_CURVE('',#4255,#4256,#1626,.T.);
++#6704=EDGE_CURVE('',#4315,#4316,#1389,.T.);
++#6715=EDGE_CURVE('',#4307,#4308,#1407,.T.);
++#6718=EDGE_CURVE('',#4339,#4340,#1758,.T.);
++#6731=EDGE_CURVE('',#4343,#4344,#1908,.T.);
++#6742=EDGE_CURVE('',#4303,#4304,#1398,.T.);
++#6755=EDGE_CURVE('',#4791,#4792,#1416,.T.);
++#6758=EDGE_CURVE('',#4275,#4276,#1479,.T.);
++#6769=EDGE_CURVE('',#4815,#4816,#1506,.T.);
++#6784=EDGE_CURVE('',#4795,#4796,#1425,.T.);
++#6797=EDGE_CURVE('',#4803,#4804,#1443,.T.);
++#6808=EDGE_CURVE('',#4799,#4800,#1434,.T.);
++#6823=EDGE_CURVE('',#4279,#4280,#1452,.T.);
++#6834=EDGE_CURVE('',#4807,#4808,#1488,.T.);
++#6837=EDGE_CURVE('',#4411,#4412,#1524,.T.);
++#6850=EDGE_CURVE('',#4283,#4284,#1461,.T.);
++#6861=EDGE_CURVE('',#4271,#4272,#1470,.T.);
++#6888=EDGE_CURVE('',#4811,#4812,#1497,.T.);
++#6901=EDGE_CURVE('',#4819,#4820,#1515,.T.);
++#6926=EDGE_CURVE('',#4415,#4416,#1533,.T.);
++#6937=EDGE_CURVE('',#4407,#4408,#1551,.T.);
++#6940=EDGE_CURVE('',#4443,#4444,#1642,.T.);
++#6953=EDGE_CURVE('',#4439,#4440,#2128,.T.);
++#6964=EDGE_CURVE('',#4403,#4404,#1542,.T.);
++#6979=EDGE_CURVE('',#4231,#4232,#1560,.T.);
++#6990=EDGE_CURVE('',#4419,#4420,#1592,.T.);
++#6993=EDGE_CURVE('',#4243,#4244,#1618,.T.);
++#7006=EDGE_CURVE('',#4235,#4236,#1568,.T.);
++#7018=EDGE_CURVE('',#4247,#4248,#1576,.T.);
++#7054=EDGE_CURVE('',#4239,#4240,#1610,.T.);
++#7070=EDGE_CURVE('',#4259,#4260,#1634,.T.);
++#7094=EDGE_CURVE('',#4447,#4448,#1650,.T.);
++#7110=EDGE_CURVE('',#4390,#4396,#1662,.T.);
++#7123=EDGE_CURVE('',#4387,#4394,#1666,.T.);
++#7136=EDGE_CURVE('',#4388,#4393,#1670,.T.);
++#7140=EDGE_CURVE('',#4455,#4456,#1675,.T.);
++#7142=EDGE_CURVE('',#4456,#4455,#1680,.T.);
++#7146=EDGE_CURVE('',#4463,#4464,#1685,.T.);
++#7148=EDGE_CURVE('',#4464,#4463,#1690,.T.);
++#7158=EDGE_CURVE('',#4779,#4780,#1702,.T.);
++#7161=EDGE_CURVE('',#4435,#4436,#2120,.T.);
++#7186=EDGE_CURVE('',#4783,#4784,#1711,.T.);
++#7197=EDGE_CURVE('',#4775,#4776,#1733,.T.);
++#7210=EDGE_CURVE('',#4771,#4772,#1724,.T.);
++#7225=EDGE_CURVE('',#4335,#4336,#1750,.T.);
++#7237=EDGE_CURVE('',#4786,#4293,#1792,.T.);
++#7239=EDGE_CURVE('',#4287,#4293,#1928,.T.);
++#7262=EDGE_CURVE('',#4920,#4926,#1776,.T.);
++#7265=EDGE_CURVE('',#4296,#4298,#1780,.T.);
++#7267=EDGE_CURVE('',#4294,#4296,#1784,.T.);
++#7269=EDGE_CURVE('',#4293,#4294,#1788,.T.);
++#7273=EDGE_CURVE('',#4924,#4928,#1796,.T.);
++#7275=EDGE_CURVE('',#4926,#4928,#1800,.T.);
++#7279=EDGE_CURVE('',#4707,#4708,#1767,.T.);
++#7281=EDGE_CURVE('',#4708,#4707,#1772,.T.);
++#7285=EDGE_CURVE('',#5020,#5022,#1993,.T.);
++#7287=EDGE_CURVE('',#5020,#4983,#1804,.T.);
++#7289=EDGE_CURVE('',#4979,#4983,#2107,.T.);
++#7291=EDGE_CURVE('',#4979,#4991,#1808,.T.);
++#7293=EDGE_CURVE('',#4987,#4991,#2089,.T.);
++#7295=EDGE_CURVE('',#4987,#5015,#1812,.T.);
++#7297=EDGE_CURVE('',#5011,#5015,#2071,.T.);
++#7299=EDGE_CURVE('',#5011,#5007,#1816,.T.);
++#7301=EDGE_CURVE('',#5003,#5007,#2053,.T.);
++#7303=EDGE_CURVE('',#5003,#4999,#1820,.T.);
++#7305=EDGE_CURVE('',#4995,#4999,#2035,.T.);
++#7307=EDGE_CURVE('',#4995,#5022,#1824,.T.);
++#7318=EDGE_CURVE('',#4704,#4708,#1832,.T.);
++#7321=EDGE_CURVE('',#4703,#4707,#1828,.T.);
++#7345=EDGE_CURVE('',#4926,#4919,#1836,.T.);
++#7358=EDGE_CURVE('',#4928,#4923,#1860,.T.);
++#7362=EDGE_CURVE('',#4929,#4930,#1846,.T.);
++#7364=EDGE_CURVE('',#4930,#4929,#1856,.T.);
++#7385=EDGE_CURVE('',#4930,#4531,#1868,.T.);
++#7388=EDGE_CURVE('',#4532,#4929,#1864,.T.);
++#7390=EDGE_CURVE('',#4531,#4532,#1873,.T.);
++#7403=EDGE_CURVE('',#4532,#4531,#1878,.T.);
++#7417=EDGE_CURVE('',#4535,#4536,#1883,.T.);
++#7419=EDGE_CURVE('',#4536,#4535,#1888,.T.);
++#7430=EDGE_CURVE('',#4536,#4504,#1896,.T.);
++#7433=EDGE_CURVE('',#4535,#4503,#1892,.T.);
++#7457=EDGE_CURVE('',#4347,#4348,#1916,.T.);
++#7461=EDGE_CURVE('',#4290,#4296,#1904,.T.);
++#7484=EDGE_CURVE('',#4288,#4294,#1924,.T.);
++#7502=EDGE_CURVE('',#4355,#4356,#1933,.T.);
++#7504=EDGE_CURVE('',#4356,#4355,#1938,.T.);
++#7508=EDGE_CURVE('',#4363,#4364,#1943,.T.);
++#7510=EDGE_CURVE('',#4364,#4363,#1948,.T.);
++#7521=EDGE_CURVE('',#4356,#4352,#1956,.T.);
++#7523=EDGE_CURVE('',#4351,#4352,#1961,.T.);
++#7525=EDGE_CURVE('',#4355,#4351,#1952,.T.);
++#7537=EDGE_CURVE('',#4352,#4351,#1966,.T.);
++#7559=EDGE_CURVE('',#4364,#4360,#1974,.T.);
++#7561=EDGE_CURVE('',#4359,#4360,#1979,.T.);
++#7563=EDGE_CURVE('',#4363,#4359,#1970,.T.);
++#7575=EDGE_CURVE('',#4360,#4359,#1984,.T.);
++#7596=EDGE_CURVE('',#5019,#5020,#1988,.T.);
++#7599=EDGE_CURVE('',#5024,#5022,#1997,.T.);
++#7601=EDGE_CURVE('',#5024,#5019,#2002,.T.);
++#7612=EDGE_CURVE('',#5019,#4984,#2006,.T.);
++#7614=EDGE_CURVE('',#4983,#4984,#2111,.T.);
++#7627=EDGE_CURVE('',#4996,#5024,#2010,.T.);
++#7629=EDGE_CURVE('',#5000,#4996,#2044,.T.);
++#7631=EDGE_CURVE('',#5004,#5000,#2014,.T.);
++#7633=EDGE_CURVE('',#5008,#5004,#2062,.T.);
++#7635=EDGE_CURVE('',#5012,#5008,#2018,.T.);
++#7637=EDGE_CURVE('',#5016,#5012,#2080,.T.);
++#7639=EDGE_CURVE('',#4988,#5016,#2022,.T.);
++#7641=EDGE_CURVE('',#4992,#4988,#2098,.T.);
++#7643=EDGE_CURVE('',#4980,#4992,#2026,.T.);
++#7645=EDGE_CURVE('',#4984,#4980,#2116,.T.);
++#7657=EDGE_CURVE('',#4995,#4996,#2030,.T.);
++#7670=EDGE_CURVE('',#4999,#5000,#2039,.T.);
++#7683=EDGE_CURVE('',#5003,#5004,#2048,.T.);
++#7696=EDGE_CURVE('',#5007,#5008,#2057,.T.);
++#7709=EDGE_CURVE('',#5011,#5012,#2066,.T.);
++#7722=EDGE_CURVE('',#5015,#5016,#2075,.T.);
++#7733=EDGE_CURVE('',#4987,#4988,#2084,.T.);
++#7748=EDGE_CURVE('',#4991,#4992,#2093,.T.);
++#7759=EDGE_CURVE('',#4979,#4980,#2102,.T.);
++#7797=EDGE_CURVE('',#4455,#4451,#2136,.T.);
++#7799=EDGE_CURVE('',#4451,#4452,#2145,.T.);
++#7801=EDGE_CURVE('',#4456,#4452,#2140,.T.);
++#7813=EDGE_CURVE('',#4452,#4451,#2150,.T.);
++#7835=EDGE_CURVE('',#4463,#4459,#2154,.T.);
++#7837=EDGE_CURVE('',#4459,#4460,#2163,.T.);
++#7839=EDGE_CURVE('',#4464,#4460,#2158,.T.);
++#7851=EDGE_CURVE('',#4460,#4459,#2168,.T.);
++#7873=EDGE_CURVE('',#4470,#4473,#2176,.T.);
++#7875=EDGE_CURVE('',#4470,#4468,#2194,.T.);
++#7877=EDGE_CURVE('',#4468,#4474,#2172,.T.);
++#7889=EDGE_CURVE('',#4470,#4468,#2189,.T.);
++#7900=EDGE_CURVE('',#4467,#4468,#2180,.T.);
++#7902=EDGE_CURVE('',#4467,#4470,#2184,.T.);
++#7925=EDGE_CURVE('',#4480,#4483,#2202,.T.);
++#7927=EDGE_CURVE('',#4480,#4478,#2220,.T.);
++#7929=EDGE_CURVE('',#4478,#4484,#2198,.T.);
++#7941=EDGE_CURVE('',#4480,#4478,#2215,.T.);
++#7952=EDGE_CURVE('',#4477,#4478,#2206,.T.);
++#7954=EDGE_CURVE('',#4477,#4480,#2210,.T.);
++#7977=EDGE_CURVE('',#4496,#4492,#2228,.T.);
++#7979=EDGE_CURVE('',#4491,#4492,#2233,.T.);
++#7981=EDGE_CURVE('',#4495,#4491,#2224,.T.);
++#7993=EDGE_CURVE('',#4492,#4491,#2238,.T.);
++#8008=EDGE_CURVE('',#4499,#4500,#2243,.T.);
++#8010=EDGE_CURVE('',#4500,#4499,#2248,.T.);
++#8021=EDGE_CURVE('',#4500,#4488,#2256,.T.);
++#8024=EDGE_CURVE('',#4499,#4487,#2252,.T.);
++#8047=EDGE_CURVE('',#4544,#4540,#2264,.T.);
++#8049=EDGE_CURVE('',#4539,#4540,#2269,.T.);
++#8051=EDGE_CURVE('',#4543,#4539,#2260,.T.);
++#8063=EDGE_CURVE('',#4540,#4539,#2274,.T.);
++#8078=EDGE_CURVE('',#4547,#4548,#2279,.T.);
++#8080=EDGE_CURVE('',#4548,#4547,#2284,.T.);
++#8091=EDGE_CURVE('',#4548,#4508,#2292,.T.);
++#8094=EDGE_CURVE('',#4547,#4507,#2288,.T.);
++#8117=EDGE_CURVE('',#4556,#4552,#2300,.T.);
++#8119=EDGE_CURVE('',#4551,#4552,#2305,.T.);
++#8121=EDGE_CURVE('',#4555,#4551,#2296,.T.);
++#8133=EDGE_CURVE('',#4552,#4551,#2310,.T.);
++#8148=EDGE_CURVE('',#4559,#4560,#2315,.T.);
++#8150=EDGE_CURVE('',#4560,#4559,#2320,.T.);
++#8161=EDGE_CURVE('',#4560,#4512,#2328,.T.);
++#8164=EDGE_CURVE('',#4559,#4511,#2324,.T.);
++#8187=EDGE_CURVE('',#4568,#4564,#2336,.T.);
++#8189=EDGE_CURVE('',#4563,#4564,#2341,.T.);
++#8191=EDGE_CURVE('',#4567,#4563,#2332,.T.);
++#8203=EDGE_CURVE('',#4564,#4563,#2346,.T.);
++#8218=EDGE_CURVE('',#4571,#4572,#2351,.T.);
++#8220=EDGE_CURVE('',#4572,#4571,#2356,.T.);
++#8231=EDGE_CURVE('',#4572,#4516,#2364,.T.);
++#8234=EDGE_CURVE('',#4571,#4515,#2360,.T.);
++#8257=EDGE_CURVE('',#4588,#4584,#2372,.T.);
++#8259=EDGE_CURVE('',#4583,#4584,#2377,.T.);
++#8261=EDGE_CURVE('',#4587,#4583,#2368,.T.);
++#8273=EDGE_CURVE('',#4584,#4583,#2382,.T.);
++#8288=EDGE_CURVE('',#4591,#4592,#2387,.T.);
++#8290=EDGE_CURVE('',#4592,#4591,#2392,.T.);
++#8301=EDGE_CURVE('',#4592,#4524,#2400,.T.);
++#8304=EDGE_CURVE('',#4591,#4523,#2396,.T.);
++#8327=EDGE_CURVE('',#4600,#4596,#2408,.T.);
++#8329=EDGE_CURVE('',#4595,#4596,#2413,.T.);
++#8331=EDGE_CURVE('',#4599,#4595,#2404,.T.);
++#8343=EDGE_CURVE('',#4596,#4595,#2418,.T.);
++#8358=EDGE_CURVE('',#4603,#4604,#2423,.T.);
++#8360=EDGE_CURVE('',#4604,#4603,#2428,.T.);
++#8371=EDGE_CURVE('',#4604,#4528,#2436,.T.);
++#8374=EDGE_CURVE('',#4603,#4527,#2432,.T.);
++#8397=EDGE_CURVE('',#4616,#4612,#2444,.T.);
++#8399=EDGE_CURVE('',#4611,#4612,#2449,.T.);
++#8401=EDGE_CURVE('',#4615,#4611,#2440,.T.);
++#8413=EDGE_CURVE('',#4612,#4611,#2454,.T.);
++#8428=EDGE_CURVE('',#4619,#4620,#2459,.T.);
++#8430=EDGE_CURVE('',#4620,#4619,#2464,.T.);
++#8441=EDGE_CURVE('',#4620,#4608,#2472,.T.);
++#8444=EDGE_CURVE('',#4619,#4607,#2468,.T.);
++#8467=EDGE_CURVE('',#4648,#4644,#2480,.T.);
++#8469=EDGE_CURVE('',#4643,#4644,#2485,.T.);
++#8471=EDGE_CURVE('',#4647,#4643,#2476,.T.);
++#8483=EDGE_CURVE('',#4644,#4643,#2490,.T.);
++#8498=EDGE_CURVE('',#4651,#4652,#2495,.T.);
++#8500=EDGE_CURVE('',#4652,#4651,#2500,.T.);
++#8511=EDGE_CURVE('',#4652,#4624,#2508,.T.);
++#8514=EDGE_CURVE('',#4651,#4623,#2504,.T.);
++#8537=EDGE_CURVE('',#4660,#4656,#2516,.T.);
++#8539=EDGE_CURVE('',#4655,#4656,#2521,.T.);
++#8541=EDGE_CURVE('',#4659,#4655,#2512,.T.);
++#8553=EDGE_CURVE('',#4656,#4655,#2526,.T.);
++#8568=EDGE_CURVE('',#4663,#4664,#2531,.T.);
++#8570=EDGE_CURVE('',#4664,#4663,#2536,.T.);
++#8581=EDGE_CURVE('',#4664,#4636,#2544,.T.);
++#8584=EDGE_CURVE('',#4663,#4635,#2540,.T.);
++#8607=EDGE_CURVE('',#4672,#4668,#2552,.T.);
++#8609=EDGE_CURVE('',#4667,#4668,#2557,.T.);
++#8611=EDGE_CURVE('',#4671,#4667,#2548,.T.);
++#8623=EDGE_CURVE('',#4668,#4667,#2562,.T.);
++#8638=EDGE_CURVE('',#4675,#4676,#2567,.T.);
++#8640=EDGE_CURVE('',#4676,#4675,#2572,.T.);
++#8651=EDGE_CURVE('',#4676,#4628,#2580,.T.);
++#8654=EDGE_CURVE('',#4675,#4627,#2576,.T.);
++#8677=EDGE_CURVE('',#4684,#4680,#2588,.T.);
++#8679=EDGE_CURVE('',#4679,#4680,#2593,.T.);
++#8681=EDGE_CURVE('',#4683,#4679,#2584,.T.);
++#8693=EDGE_CURVE('',#4680,#4679,#2598,.T.);
++#8708=EDGE_CURVE('',#4687,#4688,#2603,.T.);
++#8710=EDGE_CURVE('',#4688,#4687,#2608,.T.);
++#8721=EDGE_CURVE('',#4688,#4632,#2616,.T.);
++#8724=EDGE_CURVE('',#4687,#4631,#2612,.T.);
++#8747=EDGE_CURVE('',#4696,#4692,#2624,.T.);
++#8749=EDGE_CURVE('',#4691,#4692,#2629,.T.);
++#8751=EDGE_CURVE('',#4695,#4691,#2620,.T.);
++#8763=EDGE_CURVE('',#4692,#4691,#2634,.T.);
++#8778=EDGE_CURVE('',#4699,#4700,#2639,.T.);
++#8780=EDGE_CURVE('',#4700,#4699,#2644,.T.);
++#8791=EDGE_CURVE('',#4700,#4640,#2652,.T.);
++#8794=EDGE_CURVE('',#4699,#4639,#2648,.T.);
++#8817=EDGE_CURVE('',#4832,#4828,#2660,.T.);
++#8819=EDGE_CURVE('',#4827,#4828,#2665,.T.);
++#8821=EDGE_CURVE('',#4831,#4827,#2656,.T.);
++#8833=EDGE_CURVE('',#4828,#4827,#2670,.T.);
++#8848=EDGE_CURVE('',#4835,#4836,#2675,.T.);
++#8850=EDGE_CURVE('',#4836,#4835,#2680,.T.);
++#8861=EDGE_CURVE('',#4836,#4824,#2688,.T.);
++#8864=EDGE_CURVE('',#4835,#4823,#2684,.T.);
++#8887=EDGE_CURVE('',#4864,#4860,#2696,.T.);
++#8889=EDGE_CURVE('',#4859,#4860,#2701,.T.);
++#8891=EDGE_CURVE('',#4863,#4859,#2692,.T.);
++#8903=EDGE_CURVE('',#4860,#4859,#2706,.T.);
++#8918=EDGE_CURVE('',#4867,#4868,#2711,.T.);
++#8920=EDGE_CURVE('',#4868,#4867,#2716,.T.);
++#8931=EDGE_CURVE('',#4868,#4840,#2724,.T.);
++#8934=EDGE_CURVE('',#4867,#4839,#2720,.T.);
++#8957=EDGE_CURVE('',#4876,#4872,#2732,.T.);
++#8959=EDGE_CURVE('',#4871,#4872,#2737,.T.);
++#8961=EDGE_CURVE('',#4875,#4871,#2728,.T.);
++#8973=EDGE_CURVE('',#4872,#4871,#2742,.T.);
++#8988=EDGE_CURVE('',#4879,#4880,#2747,.T.);
++#8990=EDGE_CURVE('',#4880,#4879,#2752,.T.);
++#9001=EDGE_CURVE('',#4880,#4844,#2760,.T.);
++#9004=EDGE_CURVE('',#4879,#4843,#2756,.T.);
++#9027=EDGE_CURVE('',#4888,#4884,#2768,.T.);
++#9029=EDGE_CURVE('',#4883,#4884,#2773,.T.);
++#9031=EDGE_CURVE('',#4887,#4883,#2764,.T.);
++#9043=EDGE_CURVE('',#4884,#4883,#2778,.T.);
++#9058=EDGE_CURVE('',#4891,#4892,#2783,.T.);
++#9060=EDGE_CURVE('',#4892,#4891,#2788,.T.);
++#9071=EDGE_CURVE('',#4892,#4848,#2796,.T.);
++#9074=EDGE_CURVE('',#4891,#4847,#2792,.T.);
++#9097=EDGE_CURVE('',#4900,#4896,#2804,.T.);
++#9099=EDGE_CURVE('',#4895,#4896,#2809,.T.);
++#9101=EDGE_CURVE('',#4899,#4895,#2800,.T.);
++#9113=EDGE_CURVE('',#4896,#4895,#2814,.T.);
++#9128=EDGE_CURVE('',#4903,#4904,#2819,.T.);
++#9130=EDGE_CURVE('',#4904,#4903,#2824,.T.);
++#9141=EDGE_CURVE('',#4904,#4852,#2832,.T.);
++#9144=EDGE_CURVE('',#4903,#4851,#2828,.T.);
++#9167=EDGE_CURVE('',#4912,#4908,#2840,.T.);
++#9169=EDGE_CURVE('',#4907,#4908,#2845,.T.);
++#9171=EDGE_CURVE('',#4911,#4907,#2836,.T.);
++#9183=EDGE_CURVE('',#4908,#4907,#2850,.T.);
++#9198=EDGE_CURVE('',#4915,#4916,#2855,.T.);
++#9200=EDGE_CURVE('',#4916,#4915,#2860,.T.);
++#9211=EDGE_CURVE('',#4916,#4856,#2868,.T.);
++#9214=EDGE_CURVE('',#4915,#4855,#2864,.T.);
++#9238=EDGE_CURVE('',#4942,#4937,#2872,.T.);
++#9254=EDGE_CURVE('',#4943,#4944,#2882,.T.);
++#9256=EDGE_CURVE('',#4944,#4943,#2892,.T.);
++#9266=EDGE_CURVE('',#4943,#4575,#2900,.T.);
++#9269=EDGE_CURVE('',#4576,#4944,#2896,.T.);
++#9271=EDGE_CURVE('',#4575,#4576,#2905,.T.);
++#9284=EDGE_CURVE('',#4576,#4575,#2910,.T.);
++#9298=EDGE_CURVE('',#4579,#4580,#2915,.T.);
++#9300=EDGE_CURVE('',#4580,#4579,#2920,.T.);
++#9311=EDGE_CURVE('',#4580,#4520,#2928,.T.);
++#9314=EDGE_CURVE('',#4579,#4519,#2924,.T.);
++#9336=EDGE_CURVE('',#5099,#5100,#2932,.T.);
++#9338=EDGE_CURVE('',#5100,#5104,#2937,.T.);
++#9340=EDGE_CURVE('',#5103,#5104,#2941,.T.);
++#9353=EDGE_CURVE('',#5062,#5064,#2959,.T.);
++#9355=EDGE_CURVE('',#5100,#5062,#3044,.T.);
++#9365=EDGE_CURVE('',#5059,#5060,#2950,.T.);
++#9367=EDGE_CURVE('',#5059,#5062,#2955,.T.);
++#9381=EDGE_CURVE('',#5070,#5072,#2977,.T.);
++#9383=EDGE_CURVE('',#5059,#5070,#3048,.T.);
++#9393=EDGE_CURVE('',#5067,#5068,#2968,.T.);
++#9395=EDGE_CURVE('',#5067,#5070,#2973,.T.);
++#9409=EDGE_CURVE('',#5094,#5096,#2995,.T.);
++#9411=EDGE_CURVE('',#5067,#5094,#3052,.T.);
++#9421=EDGE_CURVE('',#5091,#5092,#2986,.T.);
++#9423=EDGE_CURVE('',#5091,#5094,#2991,.T.);
++#9435=EDGE_CURVE('',#5086,#5088,#3013,.T.);
++#9437=EDGE_CURVE('',#5091,#5086,#3056,.T.);
++#9449=EDGE_CURVE('',#5083,#5084,#3004,.T.);
++#9451=EDGE_CURVE('',#5083,#5086,#3009,.T.);
++#9463=EDGE_CURVE('',#5078,#5080,#3031,.T.);
++#9465=EDGE_CURVE('',#5083,#5078,#3060,.T.);
++#9477=EDGE_CURVE('',#5075,#5076,#3022,.T.);
++#9479=EDGE_CURVE('',#5075,#5078,#3027,.T.);
++#9492=EDGE_CURVE('',#5075,#5104,#3040,.T.);
++#9525=EDGE_CURVE('',#4755,#4751,#3064,.T.);
++#9527=EDGE_CURVE('',#4751,#4752,#3073,.T.);
++#9529=EDGE_CURVE('',#4756,#4752,#3068,.T.);
++#9541=EDGE_CURVE('',#4752,#4751,#3078,.T.);
++#9563=EDGE_CURVE('',#4763,#4759,#3082,.T.);
++#9565=EDGE_CURVE('',#4759,#4760,#3091,.T.);
++#9567=EDGE_CURVE('',#4764,#4760,#3086,.T.);
++#9579=EDGE_CURVE('',#4760,#4759,#3096,.T.);
++#9601=EDGE_CURVE('',#4732,#4728,#3104,.T.);
++#9603=EDGE_CURVE('',#4727,#4728,#3109,.T.);
++#9605=EDGE_CURVE('',#4731,#4727,#3100,.T.);
++#9617=EDGE_CURVE('',#4728,#4727,#3114,.T.);
++#9639=EDGE_CURVE('',#4724,#4720,#3122,.T.);
++#9641=EDGE_CURVE('',#4719,#4720,#3127,.T.);
++#9643=EDGE_CURVE('',#4723,#4719,#3118,.T.);
++#9655=EDGE_CURVE('',#4720,#4719,#3132,.T.);
++#9677=EDGE_CURVE('',#4716,#4712,#3140,.T.);
++#9679=EDGE_CURVE('',#4711,#4712,#3145,.T.);
++#9681=EDGE_CURVE('',#4715,#4711,#3136,.T.);
++#9693=EDGE_CURVE('',#4712,#4711,#3150,.T.);
++#9714=EDGE_CURVE('',#4947,#4948,#3154,.T.);
++#9716=EDGE_CURVE('',#4948,#4960,#3238,.T.);
++#9718=EDGE_CURVE('',#4959,#4960,#3217,.T.);
++#9731=EDGE_CURVE('',#4951,#4952,#3163,.T.);
++#9733=EDGE_CURVE('',#4952,#4948,#3168,.T.);
++#9745=EDGE_CURVE('',#4971,#4972,#3172,.T.);
++#9747=EDGE_CURVE('',#4972,#4952,#3226,.T.);
++#9759=EDGE_CURVE('',#4975,#4976,#3181,.T.);
++#9761=EDGE_CURVE('',#4976,#4972,#3186,.T.);
++#9771=EDGE_CURVE('',#4963,#4964,#3190,.T.);
++#9773=EDGE_CURVE('',#4964,#4976,#3230,.T.);
++#9787=EDGE_CURVE('',#4967,#4968,#3199,.T.);
++#9789=EDGE_CURVE('',#4968,#4964,#3204,.T.);
++#9799=EDGE_CURVE('',#4955,#4956,#3208,.T.);
++#9801=EDGE_CURVE('',#4956,#4968,#3234,.T.);
++#9816=EDGE_CURVE('',#4960,#4956,#3222,.T.);
++#9842=EDGE_CURVE('',#5035,#5036,#3242,.T.);
++#9845=EDGE_CURVE('',#5046,#5048,#3321,.T.);
++#9847=EDGE_CURVE('',#5035,#5046,#3264,.T.);
++#9858=EDGE_CURVE('',#5035,#5038,#3247,.T.);
++#9860=EDGE_CURVE('',#5038,#5040,#3251,.T.);
++#9871=EDGE_CURVE('',#5027,#5030,#3281,.T.);
++#9873=EDGE_CURVE('',#5027,#5038,#3260,.T.);
++#9877=EDGE_CURVE('',#5043,#5046,#3317,.T.);
++#9879=EDGE_CURVE('',#5043,#5054,#3268,.T.);
++#9881=EDGE_CURVE('',#5051,#5054,#3299,.T.);
++#9883=EDGE_CURVE('',#5051,#5030,#3272,.T.);
++#9893=EDGE_CURVE('',#5027,#5028,#3276,.T.);
++#9896=EDGE_CURVE('',#5030,#5032,#3285,.T.);
++#9921=EDGE_CURVE('',#5051,#5052,#3294,.T.);
++#9934=EDGE_CURVE('',#5054,#5056,#3303,.T.);
++#9945=EDGE_CURVE('',#5043,#5044,#3312,.T.);
++#9971=EDGE_CURVE('',#5121,#5107,#3330,.T.);
++#9973=EDGE_CURVE('',#5107,#5108,#3346,.T.);
++#9975=EDGE_CURVE('',#5122,#5108,#3342,.T.);
++#9986=EDGE_CURVE('',#5126,#5112,#3334,.T.);
++#9988=EDGE_CURVE('',#5112,#5107,#3351,.T.);
++#10000=EDGE_CURVE('',#5124,#5110,#3338,.T.);
++#10002=EDGE_CURVE('',#5110,#5112,#3355,.T.);
++#10015=EDGE_CURVE('',#5108,#5110,#3360,.T.);
++#10038=EDGE_CURVE('',#5140,#5136,#3397,.T.);
++#10040=EDGE_CURVE('',#5118,#5140,#3365,.T.);
++#10042=EDGE_CURVE('',#5116,#5118,#3370,.T.);
++#10044=EDGE_CURVE('',#5115,#5116,#3375,.T.);
++#10046=EDGE_CURVE('',#5136,#5115,#3379,.T.);
++#10056=EDGE_CURVE('',#5135,#5136,#3383,.T.);
++#10059=EDGE_CURVE('',#5139,#5140,#3392,.T.);
++#10072=EDGE_CURVE('',#5129,#5115,#3401,.T.);
++#10086=EDGE_CURVE('',#5130,#5116,#3405,.T.);
++#10099=EDGE_CURVE('',#5132,#5118,#3409,.T.);
++#10121=EDGE_CURVE('',#5183,#5184,#3413,.T.);
++#10124=EDGE_CURVE('',#5188,#5186,#3422,.T.);
++#10126=EDGE_CURVE('',#5188,#5183,#3427,.T.);
++#10137=EDGE_CURVE('',#5183,#5143,#3444,.T.);
++#10139=EDGE_CURVE('',#5147,#5143,#3486,.T.);
++#10150=EDGE_CURVE('',#5191,#5172,#3431,.T.);
++#10152=EDGE_CURVE('',#5196,#5191,#3478,.T.);
++#10154=EDGE_CURVE('',#5144,#5196,#3435,.T.);
++#10156=EDGE_CURVE('',#5143,#5144,#3440,.T.);
++#10160=EDGE_CURVE('',#5160,#5188,#3448,.T.);
++#10162=EDGE_CURVE('',#5164,#5160,#3558,.T.);
++#10164=EDGE_CURVE('',#5152,#5164,#3452,.T.);
++#10166=EDGE_CURVE('',#5156,#5152,#3540,.T.);
++#10168=EDGE_CURVE('',#5176,#5156,#3456,.T.);
++#10170=EDGE_CURVE('',#5180,#5176,#3522,.T.);
++#10172=EDGE_CURVE('',#5168,#5180,#3460,.T.);
++#10174=EDGE_CURVE('',#5172,#5168,#3504,.T.);
++#10184=EDGE_CURVE('',#5191,#5192,#3464,.T.);
++#10187=EDGE_CURVE('',#5171,#5172,#3499,.T.);
++#10200=EDGE_CURVE('',#5196,#5194,#3473,.T.);
++#10213=EDGE_CURVE('',#5148,#5144,#3482,.T.);
++#10236=EDGE_CURVE('',#5167,#5168,#3490,.T.);
++#10251=EDGE_CURVE('',#5179,#5180,#3517,.T.);
++#10262=EDGE_CURVE('',#5175,#5176,#3508,.T.);
++#10275=EDGE_CURVE('',#5155,#5156,#3535,.T.);
++#10288=EDGE_CURVE('',#5151,#5152,#3526,.T.);
++#10303=EDGE_CURVE('',#5163,#5164,#3553,.T.);
++#10314=EDGE_CURVE('',#5159,#5160,#3544,.T.);
++#10340=EDGE_CURVE('',#5207,#5199,#3562,.T.);
++#10342=EDGE_CURVE('',#5199,#5200,#3578,.T.);
++#10344=EDGE_CURVE('',#5208,#5200,#3574,.T.);
++#10355=EDGE_CURVE('',#5212,#5204,#3566,.T.);
++#10357=EDGE_CURVE('',#5204,#5199,#3583,.T.);
++#10369=EDGE_CURVE('',#5210,#5202,#3570,.T.);
++#10371=EDGE_CURVE('',#5202,#5204,#3587,.T.);
++#10384=EDGE_CURVE('',#5200,#5202,#3592,.T.);
++#10408=EDGE_CURVE('',#5223,#5215,#3596,.T.);
++#10410=EDGE_CURVE('',#5215,#5216,#3612,.T.);
++#10412=EDGE_CURVE('',#5224,#5216,#3608,.T.);
++#10423=EDGE_CURVE('',#5228,#5220,#3600,.T.);
++#10425=EDGE_CURVE('',#5220,#5215,#3617,.T.);
++#10437=EDGE_CURVE('',#5226,#5218,#3604,.T.);
++#10439=EDGE_CURVE('',#5218,#5220,#3621,.T.);
++#10452=EDGE_CURVE('',#5216,#5218,#3626,.T.);
++#10476=EDGE_CURVE('',#5239,#5231,#3630,.T.);
++#10478=EDGE_CURVE('',#5231,#5232,#3646,.T.);
++#10480=EDGE_CURVE('',#5240,#5232,#3642,.T.);
++#10491=EDGE_CURVE('',#5244,#5236,#3634,.T.);
++#10493=EDGE_CURVE('',#5236,#5231,#3651,.T.);
++#10505=EDGE_CURVE('',#5242,#5234,#3638,.T.);
++#10507=EDGE_CURVE('',#5234,#5236,#3655,.T.);
++#10520=EDGE_CURVE('',#5232,#5234,#3660,.T.);
++#10544=EDGE_CURVE('',#5255,#5247,#3664,.T.);
++#10546=EDGE_CURVE('',#5247,#5248,#3680,.T.);
++#10548=EDGE_CURVE('',#5256,#5248,#3676,.T.);
++#10559=EDGE_CURVE('',#5260,#5252,#3668,.T.);
++#10561=EDGE_CURVE('',#5252,#5247,#3685,.T.);
++#10573=EDGE_CURVE('',#5258,#5250,#3672,.T.);
++#10575=EDGE_CURVE('',#5250,#5252,#3689,.T.);
++#10588=EDGE_CURVE('',#5248,#5250,#3694,.T.);
++#10612=EDGE_CURVE('',#5278,#5264,#3702,.T.);
++#10614=EDGE_CURVE('',#5263,#5264,#3714,.T.);
++#10616=EDGE_CURVE('',#5277,#5263,#3698,.T.);
++#10627=EDGE_CURVE('',#5280,#5266,#3706,.T.);
++#10629=EDGE_CURVE('',#5264,#5266,#3719,.T.);
++#10641=EDGE_CURVE('',#5282,#5268,#3710,.T.);
++#10643=EDGE_CURVE('',#5266,#5268,#3723,.T.);
++#10656=EDGE_CURVE('',#5268,#5263,#3728,.T.);
++#10679=EDGE_CURVE('',#5480,#5476,#3765,.T.);
++#10681=EDGE_CURVE('',#5480,#5271,#3732,.T.);
++#10683=EDGE_CURVE('',#5271,#5272,#3737,.T.);
++#10685=EDGE_CURVE('',#5272,#5274,#3742,.T.);
++#10687=EDGE_CURVE('',#5274,#5476,#3747,.T.);
++#10697=EDGE_CURVE('',#5475,#5476,#3751,.T.);
++#10700=EDGE_CURVE('',#5479,#5480,#3760,.T.);
++#10713=EDGE_CURVE('',#5288,#5274,#3769,.T.);
++#10727=EDGE_CURVE('',#5286,#5272,#3773,.T.);
++#10740=EDGE_CURVE('',#5285,#5271,#3777,.T.);
++#10763=EDGE_CURVE('',#5306,#5292,#3785,.T.);
++#10765=EDGE_CURVE('',#5291,#5292,#3797,.T.);
++#10767=EDGE_CURVE('',#5305,#5291,#3781,.T.);
++#10778=EDGE_CURVE('',#5308,#5294,#3789,.T.);
++#10780=EDGE_CURVE('',#5292,#5294,#3802,.T.);
++#10792=EDGE_CURVE('',#5310,#5296,#3793,.T.);
++#10794=EDGE_CURVE('',#5294,#5296,#3806,.T.);
++#10807=EDGE_CURVE('',#5296,#5291,#3811,.T.);
++#10830=EDGE_CURVE('',#5472,#5468,#3848,.T.);
++#10832=EDGE_CURVE('',#5472,#5299,#3815,.T.);
++#10834=EDGE_CURVE('',#5299,#5300,#3820,.T.);
++#10836=EDGE_CURVE('',#5300,#5302,#3825,.T.);
++#10838=EDGE_CURVE('',#5302,#5468,#3830,.T.);
++#10848=EDGE_CURVE('',#5467,#5468,#3834,.T.);
++#10851=EDGE_CURVE('',#5471,#5472,#3843,.T.);
++#10864=EDGE_CURVE('',#5316,#5302,#3852,.T.);
++#10878=EDGE_CURVE('',#5314,#5300,#3856,.T.);
++#10891=EDGE_CURVE('',#5313,#5299,#3860,.T.);
++#10914=EDGE_CURVE('',#5336,#5328,#3868,.T.);
++#10916=EDGE_CURVE('',#5327,#5328,#3880,.T.);
++#10918=EDGE_CURVE('',#5335,#5327,#3864,.T.);
++#10929=EDGE_CURVE('',#5338,#5330,#3872,.T.);
++#10931=EDGE_CURVE('',#5328,#5330,#3885,.T.);
++#10943=EDGE_CURVE('',#5340,#5332,#3876,.T.);
++#10945=EDGE_CURVE('',#5330,#5332,#3889,.T.);
++#10958=EDGE_CURVE('',#5332,#5327,#3894,.T.);
++#10982=EDGE_CURVE('',#5352,#5344,#3902,.T.);
++#10984=EDGE_CURVE('',#5343,#5344,#3914,.T.);
++#10986=EDGE_CURVE('',#5351,#5343,#3898,.T.);
++#10997=EDGE_CURVE('',#5354,#5346,#3906,.T.);
++#10999=EDGE_CURVE('',#5344,#5346,#3919,.T.);
++#11011=EDGE_CURVE('',#5356,#5348,#3910,.T.);
++#11013=EDGE_CURVE('',#5346,#5348,#3923,.T.);
++#11026=EDGE_CURVE('',#5348,#5343,#3928,.T.);
++#11050=EDGE_CURVE('',#5368,#5360,#3936,.T.);
++#11052=EDGE_CURVE('',#5359,#5360,#3948,.T.);
++#11054=EDGE_CURVE('',#5367,#5359,#3932,.T.);
++#11065=EDGE_CURVE('',#5370,#5362,#3940,.T.);
++#11067=EDGE_CURVE('',#5360,#5362,#3953,.T.);
++#11079=EDGE_CURVE('',#5372,#5364,#3944,.T.);
++#11081=EDGE_CURVE('',#5362,#5364,#3957,.T.);
++#11094=EDGE_CURVE('',#5364,#5359,#3962,.T.);
++#11118=EDGE_CURVE('',#5384,#5376,#3970,.T.);
++#11120=EDGE_CURVE('',#5375,#5376,#3982,.T.);
++#11122=EDGE_CURVE('',#5383,#5375,#3966,.T.);
++#11133=EDGE_CURVE('',#5386,#5378,#3974,.T.);
++#11135=EDGE_CURVE('',#5376,#5378,#3987,.T.);
++#11147=EDGE_CURVE('',#5388,#5380,#3978,.T.);
++#11149=EDGE_CURVE('',#5378,#5380,#3991,.T.);
++#11162=EDGE_CURVE('',#5380,#5375,#3996,.T.);
++#11186=EDGE_CURVE('',#5405,#5391,#4000,.T.);
++#11188=EDGE_CURVE('',#5391,#5392,#4016,.T.);
++#11190=EDGE_CURVE('',#5406,#5392,#4012,.T.);
++#11201=EDGE_CURVE('',#5410,#5396,#4004,.T.);
++#11203=EDGE_CURVE('',#5396,#5391,#4021,.T.);
++#11215=EDGE_CURVE('',#5408,#5394,#4008,.T.);
++#11217=EDGE_CURVE('',#5394,#5396,#4025,.T.);
++#11230=EDGE_CURVE('',#5392,#5394,#4030,.T.);
++#11253=EDGE_CURVE('',#5488,#5484,#4067,.T.);
++#11255=EDGE_CURVE('',#5402,#5488,#4035,.T.);
++#11257=EDGE_CURVE('',#5400,#5402,#4040,.T.);
++#11259=EDGE_CURVE('',#5399,#5400,#4045,.T.);
++#11261=EDGE_CURVE('',#5484,#5399,#4049,.T.);
++#11271=EDGE_CURVE('',#5483,#5484,#4053,.T.);
++#11274=EDGE_CURVE('',#5487,#5488,#4062,.T.);
++#11287=EDGE_CURVE('',#5413,#5399,#4071,.T.);
++#11301=EDGE_CURVE('',#5414,#5400,#4075,.T.);
++#11314=EDGE_CURVE('',#5416,#5402,#4079,.T.);
++#11336=EDGE_CURVE('',#5451,#5452,#4083,.T.);
++#11338=EDGE_CURVE('',#5452,#5456,#4088,.T.);
++#11340=EDGE_CURVE('',#5455,#5456,#4092,.T.);
++#11353=EDGE_CURVE('',#5422,#5424,#4110,.T.);
++#11355=EDGE_CURVE('',#5452,#5422,#4216,.T.);
++#11365=EDGE_CURVE('',#5419,#5420,#4101,.T.);
++#11367=EDGE_CURVE('',#5419,#5422,#4106,.T.);
++#11381=EDGE_CURVE('',#5430,#5432,#4128,.T.);
++#11383=EDGE_CURVE('',#5419,#5430,#4220,.T.);
++#11393=EDGE_CURVE('',#5427,#5428,#4119,.T.);
++#11395=EDGE_CURVE('',#5427,#5430,#4124,.T.);
++#11409=EDGE_CURVE('',#5446,#5448,#4146,.T.);
++#11411=EDGE_CURVE('',#5427,#5446,#4224,.T.);
++#11421=EDGE_CURVE('',#5443,#5444,#4137,.T.);
++#11423=EDGE_CURVE('',#5443,#5446,#4142,.T.);
++#11435=EDGE_CURVE('',#5438,#5440,#4164,.T.);
++#11437=EDGE_CURVE('',#5443,#5438,#4228,.T.);
++#11449=EDGE_CURVE('',#5435,#5436,#4155,.T.);
++#11451=EDGE_CURVE('',#5435,#5438,#4160,.T.);
++#11463=EDGE_CURVE('',#5463,#5464,#4182,.T.);
++#11465=EDGE_CURVE('',#5435,#5464,#4199,.T.);
++#11477=EDGE_CURVE('',#5459,#5460,#4173,.T.);
++#11479=EDGE_CURVE('',#5460,#5464,#4178,.T.);
++#11493=EDGE_CURVE('',#5323,#5319,#4191,.T.);
++#11495=EDGE_CURVE('',#5460,#5319,#4203,.T.);
++#11506=EDGE_CURVE('',#5324,#5320,#4195,.T.);
++#11508=EDGE_CURVE('',#5319,#5320,#4208,.T.);
++#11520=EDGE_CURVE('',#5320,#5456,#4212,.T.);
++#11562=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11550),#11561);
++#11569=PRODUCT_DEFINITION('design','',#11568,#11565);
++#11570=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR PROESOURCE.',#11569);
++#11571=SHAPE_DEFINITION_REPRESENTATION(#11570,#11562);
++ENDSEC;
++END-ISO-10303-21;
+diff -Naur netgen-5.3.1_SRC_orig/windows/netgen.rc netgen-5.3.1_SRC_modif/windows/netgen.rc
+--- netgen-5.3.1_SRC_orig/windows/netgen.rc    2014-10-06 14:59:42.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/netgen.rc   2019-11-14 16:56:26.870327358 +0300
+@@ -1,105 +1,105 @@
+-// Microsoft Visual C++ generated resource script.\r
+-//\r
+-#include "resource.h"\r
+-\r
+-#define APSTUDIO_READONLY_SYMBOLS\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-//\r
+-// Generated from the TEXTINCLUDE 2 resource.\r
+-//\r
+-#include "afxres.h"\r\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-#undef APSTUDIO_READONLY_SYMBOLS\r
+-\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-// German (Germany) resources\r
+-\r
+-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r
+-LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
+-#pragma code_page(1252)\r
+-\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-//\r
+-// Icon\r
+-//\r
+-\r
+-// Icon with lowest ID value placed first to ensure application icon\r
+-// remains consistent on all systems.\r
+-100                     ICON                    "netgen.ico"\r
+-\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-//\r
+-// Version\r
+-//\r
+-\r
+-VS_VERSION_INFO VERSIONINFO\r
+- FILEVERSION 5,3,0,0\r
+- PRODUCTVERSION 5,3,0,0\r
+- FILEFLAGSMASK 0x3fL\r
+-#ifdef _DEBUG\r
+- FILEFLAGS 0x3L\r
+-#else\r
+- FILEFLAGS 0x2L\r
+-#endif\r
+- FILEOS 0x4L\r
+- FILETYPE 0x1L\r
+- FILESUBTYPE 0x0L\r
+-BEGIN\r
+-    BLOCK "StringFileInfo"\r
+-    BEGIN\r
+-        BLOCK "040904b0"\r
+-        BEGIN\r
+-            VALUE "CompanyName", "Vienna UT"\r
+-            VALUE "FileDescription", "Netgen Meshing Software"\r
+-            VALUE "FileVersion", "5.3"\r
+-            VALUE "InternalName", "Netgen"\r
+-            VALUE "LegalCopyright", "GNU Public License (GPL)"\r
+-            VALUE "OriginalFilename", "Netgen.exe"\r
+-            VALUE "ProductName", "Netgen"\r
+-            VALUE "ProductVersion", "5.3"\r
+-        END\r
+-    END\r
+-    BLOCK "VarFileInfo"\r
+-    BEGIN\r
+-        VALUE "Translation", 0x409, 1200\r
+-    END\r
+-END\r
+-\r
+-\r
+-#ifdef APSTUDIO_INVOKED\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-//\r
+-// TEXTINCLUDE\r
+-//\r
+-\r
+-1 TEXTINCLUDE \r
+-BEGIN\r
+-    "resource.\0"\r
+-END\r
+-\r
+-3 TEXTINCLUDE \r
+-BEGIN\r
+-    "\r\0"\r
+-END\r
+-\r
+-2 TEXTINCLUDE \r
+-BEGIN\r
+-    "#include ""afxres.h""\r\0"\r
+-END\r
+-\r
+-#endif    // APSTUDIO_INVOKED\r
+-\r
+-#endif    // German (Germany) resources\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-\r
+-\r
+-\r
+-#ifndef APSTUDIO_INVOKED\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-//\r
+-// Generated from the TEXTINCLUDE 3 resource.\r
+-//\r
+-\r\r
+-/////////////////////////////////////////////////////////////////////////////\r
+-#endif    // not APSTUDIO_INVOKED\r
+-\r
++// Microsoft Visual C++ generated resource script.
++//
++#include "resource.h"
++
++#define APSTUDIO_READONLY_SYMBOLS
++/////////////////////////////////////////////////////////////////////////////
++//
++// Generated from the TEXTINCLUDE 2 resource.
++//
++#include "afxres.h"\r
++/////////////////////////////////////////////////////////////////////////////
++#undef APSTUDIO_READONLY_SYMBOLS
++
++/////////////////////////////////////////////////////////////////////////////
++// German (Germany) resources
++
++#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
++LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
++#pragma code_page(1252)
++
++/////////////////////////////////////////////////////////////////////////////
++//
++// Icon
++//
++
++// Icon with lowest ID value placed first to ensure application icon
++// remains consistent on all systems.
++100                     ICON                    "netgen.ico"
++
++/////////////////////////////////////////////////////////////////////////////
++//
++// Version
++//
++
++VS_VERSION_INFO VERSIONINFO
++ FILEVERSION 5,3,0,0
++ PRODUCTVERSION 5,3,0,0
++ FILEFLAGSMASK 0x3fL
++#ifdef _DEBUG
++ FILEFLAGS 0x3L
++#else
++ FILEFLAGS 0x2L
++#endif
++ FILEOS 0x4L
++ FILETYPE 0x1L
++ FILESUBTYPE 0x0L
++BEGIN
++    BLOCK "StringFileInfo"
++    BEGIN
++        BLOCK "040904b0"
++        BEGIN
++            VALUE "CompanyName", "Vienna UT"
++            VALUE "FileDescription", "Netgen Meshing Software"
++            VALUE "FileVersion", "5.3"
++            VALUE "InternalName", "Netgen"
++            VALUE "LegalCopyright", "GNU Public License (GPL)"
++            VALUE "OriginalFilename", "Netgen.exe"
++            VALUE "ProductName", "Netgen"
++            VALUE "ProductVersion", "5.3"
++        END
++    END
++    BLOCK "VarFileInfo"
++    BEGIN
++        VALUE "Translation", 0x409, 1200
++    END
++END
++
++
++#ifdef APSTUDIO_INVOKED
++/////////////////////////////////////////////////////////////////////////////
++//
++// TEXTINCLUDE
++//
++
++1 TEXTINCLUDE 
++BEGIN
++    "resource.\0"
++END
++
++3 TEXTINCLUDE 
++BEGIN
++    "\r\0"
++END
++
++2 TEXTINCLUDE 
++BEGIN
++    "#include ""afxres.h""\r\0"
++END
++
++#endif    // APSTUDIO_INVOKED
++
++#endif    // German (Germany) resources
++/////////////////////////////////////////////////////////////////////////////
++
++
++
++#ifndef APSTUDIO_INVOKED
++/////////////////////////////////////////////////////////////////////////////
++//
++// Generated from the TEXTINCLUDE 3 resource.
++//
++\r
++/////////////////////////////////////////////////////////////////////////////
++#endif    // not APSTUDIO_INVOKED
++
+diff -Naur netgen-5.3.1_SRC_orig/windows/netgen.sln netgen-5.3.1_SRC_modif/windows/netgen.sln
+--- netgen-5.3.1_SRC_orig/windows/netgen.sln   2014-08-29 13:53:59.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/netgen.sln  2019-11-14 16:56:26.930325678 +0300
+@@ -1,38 +1,38 @@
+-\r
+-Microsoft Visual Studio Solution File, Format Version 13.00\r
+-# Visual Studio 2013\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netgen", "netgen.vcxproj", "{87468946-A594-4101-81A4-A131F35261EF}"\r
+-EndProject\r
+-Global\r
+-      GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+-              Debug(OCC)|Win32 = Debug(OCC)|Win32\r
+-              Debug(OCC)|x64 = Debug(OCC)|x64\r
+-              Debug|Win32 = Debug|Win32\r
+-              Debug|x64 = Debug|x64\r
+-              Release(OCC)|Win32 = Release(OCC)|Win32\r
+-              Release(OCC)|x64 = Release(OCC)|x64\r
+-              Release|Win32 = Release|Win32\r
+-              Release|x64 = Release|x64\r
+-      EndGlobalSection\r
+-      GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.ActiveCfg = Debug(OCC)|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.Build.0 = Debug(OCC)|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.ActiveCfg = Debug(OCC)|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.Build.0 = Debug(OCC)|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.Build.0 = Debug|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.Build.0 = Release(OCC)|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.Build.0 = Release|Win32\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.ActiveCfg = Release|x64\r
+-              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.Build.0 = Release|x64\r
+-      EndGlobalSection\r
+-      GlobalSection(SolutionProperties) = preSolution\r
+-              HideSolutionNode = FALSE\r
+-      EndGlobalSection\r
+-EndGlobal\r
++
++Microsoft Visual Studio Solution File, Format Version 13.00
++# Visual Studio 2013
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netgen", "netgen.vcxproj", "{87468946-A594-4101-81A4-A131F35261EF}"
++EndProject
++Global
++      GlobalSection(SolutionConfigurationPlatforms) = preSolution
++              Debug(OCC)|Win32 = Debug(OCC)|Win32
++              Debug(OCC)|x64 = Debug(OCC)|x64
++              Debug|Win32 = Debug|Win32
++              Debug|x64 = Debug|x64
++              Release(OCC)|Win32 = Release(OCC)|Win32
++              Release(OCC)|x64 = Release(OCC)|x64
++              Release|Win32 = Release|Win32
++              Release|x64 = Release|x64
++      EndGlobalSection
++      GlobalSection(ProjectConfigurationPlatforms) = postSolution
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.ActiveCfg = Debug(OCC)|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.Build.0 = Debug(OCC)|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.ActiveCfg = Debug(OCC)|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.Build.0 = Debug(OCC)|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.ActiveCfg = Debug|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.Build.0 = Debug|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.ActiveCfg = Debug|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.Build.0 = Debug|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.Build.0 = Release(OCC)|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.ActiveCfg = Release|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.Build.0 = Release|Win32
++              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.ActiveCfg = Release|x64
++              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.Build.0 = Release|x64
++      EndGlobalSection
++      GlobalSection(SolutionProperties) = preSolution
++              HideSolutionNode = FALSE
++      EndGlobalSection
++EndGlobal
+diff -Naur netgen-5.3.1_SRC_orig/windows/netgen.vcxproj netgen-5.3.1_SRC_modif/windows/netgen.vcxproj
+--- netgen-5.3.1_SRC_orig/windows/netgen.vcxproj       2014-10-06 14:59:42.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/netgen.vcxproj      2019-11-14 16:56:26.914326126 +0300
+@@ -1,863 +1,863 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug(OCC)|Win32">\r
+-      <Configuration>Debug(OCC)</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug(OCC)|x64">\r
+-      <Configuration>Debug(OCC)</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release(OCC)|Win32">\r
+-      <Configuration>Release(OCC)</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release(OCC)|x64">\r
+-      <Configuration>Release(OCC)</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectGuid>{87468946-A594-4101-81A4-A131F35261EF}</ProjectGuid>\r
+-    <RootNamespace>netgen</RootNamespace>\r
+-    <Keyword>Win32Proj</Keyword>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>Application</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>11.0.60610.1</_ProjectFileVersion>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <OutDir>Debug\</OutDir>\r
+-    <IntDir>Debug\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <OutDir>Release\</OutDir>\r
+-    <IntDir>Release\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
+-    <OutDir>$(Configuration)\</OutDir>\r
+-    <IntDir>$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
+-    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">\r
+-    <OutDir>$(Configuration)\</OutDir>\r
+-    <IntDir>$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">\r
+-    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-    <LinkIncremental />\r
+-    <GenerateManifest>true</GenerateManifest>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <IntrinsicFunctions>false</IntrinsicFunctions>\r
+-      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <LinkTimeCodeGeneration />\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX86</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <IntrinsicFunctions>false</IntrinsicFunctions>\r
+-      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <LinkTimeCodeGeneration />\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <OptimizeReferences>true</OptimizeReferences>\r
+-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX86</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(SolutionDir)..\..\ext_libs\zlib\include</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;tcl85.lib;tk85.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <OptimizeReferences>false</OptimizeReferences>\r
+-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-      <StackReserveSize>4000000</StackReserveSize>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;$(CASROOT)\win32\vc8\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <OptimizeReferences>true</OptimizeReferences>\r
+-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX86</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <StringPooling>true</StringPooling>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;zlib1.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(CASROOT)\win64\vc9\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <OptimizeReferences>true</OptimizeReferences>\r
+-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
+-      <StackReserveSize>4000000</StackReserveSize>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <IntrinsicFunctions>false</IntrinsicFunctions>\r
+-      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;$(CASROOT)\win32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <LinkTimeCodeGeneration />\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX86</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <IntrinsicFunctions>false</IntrinsicFunctions>\r
+-      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <ProjectReference>\r
+-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+-    </ProjectReference>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <ShowProgress>NotSet</ShowProgress>\r
+-      <Version />\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;$(CASROOT)\win64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <EnableUAC>true</EnableUAC>\r
+-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+-      <SubSystem>Console</SubSystem>\r
+-      <LinkTimeCodeGeneration />\r
+-      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-      <AllowIsolation>true</AllowIsolation>\r
+-    </Link>\r
+-    <PostBuildEvent>\r
+-      <Message>Running POSTBUILD Script....</Message>\r
+-      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\libsrc\csg\algprim.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\brick.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\csg.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\geoml.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\identify.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\manifold.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\revolution.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\singularref.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\solid.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\surface.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\vscsg.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\archive_base.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\array.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\autodiff.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\autoptr.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\bitarray.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\flags.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\gzstream.h" />\r
+-    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\myadt.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\mystring.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\netgenout.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\ngexception.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\optmem.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\parthreads.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\profiler.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\seti.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\sort.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\stack.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\symbolta.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\table.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\template.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\vsgeom2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\spline.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\splinegeometry.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\csg.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\gprim.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\incvis.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\linalg.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\meshing.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\myadt.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\mydefs.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\mystdlib.h" />\r
+-    <ClInclude Include="..\libsrc\include\nginterface.h" />\r
+-    <ClInclude Include="..\libsrc\include\nginterface_v2.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\nginterface_v2_impl.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\occgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\opti.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\parallel.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\visual.hpp" />\r
+-    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\opti.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\vector.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\bcfunctions.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\findip.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\global.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\localh.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\specials.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\topology.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\validate.hpp" />\r
+-    <ClInclude Include="..\libsrc\occ\occgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\utilities.h" />\r
+-    <ClInclude Include="..\libsrc\occ\vsocc.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\vsstl.hpp" />\r
+-    <ClInclude Include="..\libsrc\visualization\meshdoc.hpp" />\r
+-    <ClInclude Include="..\libsrc\visualization\mvdraw.hpp" />\r
+-    <ClInclude Include="..\libsrc\visualization\soldata.hpp" />\r
+-    <ClInclude Include="..\libsrc\visualization\vispar.hpp" />\r
+-    <ClInclude Include="..\libsrc\visualization\visual.hpp" />\r
+-    <ClInclude Include="..\libsrc\visualization\vssolution.hpp" />\r
+-    <ClInclude Include="..\ng\demoview.hpp" />\r
+-    <ClInclude Include="..\ng\ng_acis.hpp" />\r
+-    <ClInclude Include="..\ng\parallelfunc.hpp" />\r
+-    <ClInclude Include="..\ng\togl_1_7.h" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\libsrc\csg\algprim.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\brick.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\csgpkg.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\identify.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\manifold.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\revolution.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\singularref.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\solid.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\surface.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\vscsg.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\array.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\bitarray.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\flags.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\gzstream.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\mpi_interface.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\mystring.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\ngexception.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\optmem.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\parthreads.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\profiler.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\seti.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\sort.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\symbolta.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\table.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\geom2dpkg.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\vsgeom2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\spline.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\readuser.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writetet.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\bcfunctions.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\global.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\localh.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\refine.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\specials.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\topology.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\validate.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occconstruction.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occpkg.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\vsocc.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlpkg.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\vsstl.cpp" />\r
+-    <ClCompile Include="..\libsrc\visualization\importsolution.cpp" />\r
+-    <ClCompile Include="..\libsrc\visualization\meshdoc.cpp" />\r
+-    <ClCompile Include="..\libsrc\visualization\mvdraw.cpp" />\r
+-    <ClCompile Include="..\libsrc\visualization\vsfieldlines.cpp" />\r
+-    <ClCompile Include="..\libsrc\visualization\vsmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\visualization\vssolution.cpp" />\r
+-    <ClCompile Include="..\ng\demoview.cpp" />\r
+-    <ClCompile Include="..\ng\ngappinit.cpp" />\r
+-    <ClCompile Include="..\ng\ngpkg.cpp" />\r
+-    <ClCompile Include="..\ng\onetcl.cpp" />\r
+-    <ClCompile Include="..\ng\parallelfunc.cpp" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <None Include="..\libsrc\occ\Partition_Inter2d.ixx" />\r
+-    <None Include="..\libsrc\occ\Partition_Inter2d.jxx" />\r
+-    <None Include="..\libsrc\occ\Partition_Inter3d.ixx" />\r
+-    <None Include="..\libsrc\occ\Partition_Inter3d.jxx" />\r
+-    <None Include="..\libsrc\occ\Partition_Loop.ixx" />\r
+-    <None Include="..\libsrc\occ\Partition_Loop.jxx" />\r
+-    <None Include="..\libsrc\occ\Partition_Loop2d.ixx" />\r
+-    <None Include="..\libsrc\occ\Partition_Loop2d.jxx" />\r
+-    <None Include="..\libsrc\occ\Partition_Loop3d.ixx" />\r
+-    <None Include="..\libsrc\occ\Partition_Loop3d.jxx" />\r
+-    <None Include="..\libsrc\occ\Partition_Spliter.ixx" />\r
+-    <None Include="..\libsrc\occ\Partition_Spliter.jxx" />\r
+-    <None Include="resource." />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <Image Include="netgen.ico" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ResourceCompile Include="netgen.rc" />\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
+-  <ProjectExtensions>\r
+-    <VisualStudio>\r
+-      <UserProperties HPC_Debug="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Properties xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;&lt;ProjectNameDisplay&gt;netgen&lt;/ProjectNameDisplay&gt;&lt;CollapseAdvanced&gt;true&lt;/CollapseAdvanced&gt;&lt;ApplicationPlatform&gt;x86&lt;/ApplicationPlatform&gt;&lt;/Properties&gt;" />\r
+-    </VisualStudio>\r
+-  </ProjectExtensions>\r
++<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++  <ItemGroup Label="ProjectConfigurations">
++    <ProjectConfiguration Include="Debug(OCC)|Win32">
++      <Configuration>Debug(OCC)</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Debug(OCC)|x64">
++      <Configuration>Debug(OCC)</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Debug|Win32">
++      <Configuration>Debug</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Debug|x64">
++      <Configuration>Debug</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release(OCC)|Win32">
++      <Configuration>Release(OCC)</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release(OCC)|x64">
++      <Configuration>Release(OCC)</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|Win32">
++      <Configuration>Release</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|x64">
++      <Configuration>Release</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++  </ItemGroup>
++  <PropertyGroup Label="Globals">
++    <ProjectGuid>{87468946-A594-4101-81A4-A131F35261EF}</ProjectGuid>
++    <RootNamespace>netgen</RootNamespace>
++    <Keyword>Win32Proj</Keyword>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++    <ConfigurationType>Application</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++  <ImportGroup Label="ExtensionSettings">
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <PropertyGroup Label="UserMacros" />
++  <PropertyGroup>
++    <_ProjectFileVersion>11.0.60610.1</_ProjectFileVersion>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <OutDir>Debug\</OutDir>
++    <IntDir>Debug\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <OutDir>$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(Platform)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <OutDir>Release\</OutDir>
++    <IntDir>Release\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <OutDir>$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(Platform)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
++    <OutDir>$(Configuration)\</OutDir>
++    <IntDir>$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
++    <OutDir>$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(Platform)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">
++    <OutDir>$(Configuration)\</OutDir>
++    <IntDir>$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">
++    <OutDir>$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(Platform)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++    <LinkIncremental />
++    <GenerateManifest>true</GenerateManifest>
++  </PropertyGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Disabled</Optimization>
++      <IntrinsicFunctions>false</IntrinsicFunctions>
++      <WholeProgramOptimization>false</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <MinimalRebuild>true</MinimalRebuild>
++      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++      <PrecompiledHeader />
++      <WarningLevel>Level3</WarningLevel>
++      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>true</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <LinkTimeCodeGeneration />
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX86</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Disabled</Optimization>
++      <IntrinsicFunctions>false</IntrinsicFunctions>
++      <WholeProgramOptimization>false</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <MinimalRebuild>true</MinimalRebuild>
++      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++      <PrecompiledHeader />
++      <WarningLevel>Level3</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>true</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <LinkTimeCodeGeneration />
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX64</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <WholeProgramOptimization>true</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <StringPooling>true</StringPooling>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>false</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <OptimizeReferences>true</OptimizeReferences>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX86</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <WholeProgramOptimization>true</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(SolutionDir)..\..\ext_libs\zlib\include</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <StringPooling>true</StringPooling>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;tcl85.lib;tk85.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>false</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <OptimizeReferences>false</OptimizeReferences>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX64</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++      <StackReserveSize>4000000</StackReserveSize>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <WholeProgramOptimization>true</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <StringPooling>true</StringPooling>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;$(CASROOT)\win32\vc8\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>false</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <OptimizeReferences>true</OptimizeReferences>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX86</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <WholeProgramOptimization>true</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <StringPooling>true</StringPooling>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;zlib1.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(CASROOT)\win64\vc9\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>false</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <OptimizeReferences>true</OptimizeReferences>
++      <EnableCOMDATFolding>true</EnableCOMDATFolding>
++      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX64</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
++      <StackReserveSize>4000000</StackReserveSize>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Disabled</Optimization>
++      <IntrinsicFunctions>false</IntrinsicFunctions>
++      <WholeProgramOptimization>false</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <MinimalRebuild>true</MinimalRebuild>
++      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++      <PrecompiledHeader />
++      <WarningLevel>Level3</WarningLevel>
++      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;$(CASROOT)\win32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>true</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <LinkTimeCodeGeneration />
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX86</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Disabled</Optimization>
++      <IntrinsicFunctions>false</IntrinsicFunctions>
++      <WholeProgramOptimization>false</WholeProgramOptimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <MinimalRebuild>true</MinimalRebuild>
++      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++      <PrecompiledHeader />
++      <WarningLevel>Level3</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <ProjectReference>
++      <LinkLibraryDependencies>false</LinkLibraryDependencies>
++    </ProjectReference>
++    <Link>
++      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <ShowProgress>NotSet</ShowProgress>
++      <Version />
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;$(CASROOT)\win64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <EnableUAC>true</EnableUAC>
++      <GenerateDebugInformation>true</GenerateDebugInformation>
++      <SubSystem>Console</SubSystem>
++      <LinkTimeCodeGeneration />
++      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
++      <TargetMachine>MachineX64</TargetMachine>
++      <AllowIsolation>true</AllowIsolation>
++    </Link>
++    <PostBuildEvent>
++      <Message>Running POSTBUILD Script....</Message>
++      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemGroup>
++    <ClInclude Include="..\libsrc\csg\algprim.hpp" />
++    <ClInclude Include="..\libsrc\csg\brick.hpp" />
++    <ClInclude Include="..\libsrc\csg\csg.hpp" />
++    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />
++    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />
++    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />
++    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />
++    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />
++    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />
++    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />
++    <ClInclude Include="..\libsrc\csg\geoml.hpp" />
++    <ClInclude Include="..\libsrc\csg\identify.hpp" />
++    <ClInclude Include="..\libsrc\csg\manifold.hpp" />
++    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />
++    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />
++    <ClInclude Include="..\libsrc\csg\revolution.hpp" />
++    <ClInclude Include="..\libsrc\csg\singularref.hpp" />
++    <ClInclude Include="..\libsrc\csg\solid.hpp" />
++    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />
++    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />
++    <ClInclude Include="..\libsrc\csg\surface.hpp" />
++    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />
++    <ClInclude Include="..\libsrc\csg\vscsg.hpp" />
++    <ClInclude Include="..\libsrc\general\archive_base.hpp" />
++    <ClInclude Include="..\libsrc\general\array.hpp" />
++    <ClInclude Include="..\libsrc\general\autodiff.hpp" />
++    <ClInclude Include="..\libsrc\general\autoptr.hpp" />
++    <ClInclude Include="..\libsrc\general\bitarray.hpp" />
++    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />
++    <ClInclude Include="..\libsrc\general\flags.hpp" />
++    <ClInclude Include="..\libsrc\general\gzstream.h" />
++    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />
++    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />
++    <ClInclude Include="..\libsrc\general\myadt.hpp" />
++    <ClInclude Include="..\libsrc\general\mystring.hpp" />
++    <ClInclude Include="..\libsrc\general\netgenout.hpp" />
++    <ClInclude Include="..\libsrc\general\ngexception.hpp" />
++    <ClInclude Include="..\libsrc\general\optmem.hpp" />
++    <ClInclude Include="..\libsrc\general\parthreads.hpp" />
++    <ClInclude Include="..\libsrc\general\profiler.hpp" />
++    <ClInclude Include="..\libsrc\general\seti.hpp" />
++    <ClInclude Include="..\libsrc\general\sort.hpp" />
++    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />
++    <ClInclude Include="..\libsrc\general\stack.hpp" />
++    <ClInclude Include="..\libsrc\general\symbolta.hpp" />
++    <ClInclude Include="..\libsrc\general\table.hpp" />
++    <ClInclude Include="..\libsrc\general\template.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\vsgeom2d.hpp" />
++    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />
++    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />
++    <ClInclude Include="..\libsrc\gprim\spline.hpp" />
++    <ClInclude Include="..\libsrc\gprim\splinegeometry.hpp" />
++    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />
++    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />
++    <ClInclude Include="..\libsrc\include\csg.hpp" />
++    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />
++    <ClInclude Include="..\libsrc\include\gprim.hpp" />
++    <ClInclude Include="..\libsrc\include\incvis.hpp" />
++    <ClInclude Include="..\libsrc\include\linalg.hpp" />
++    <ClInclude Include="..\libsrc\include\meshing.hpp" />
++    <ClInclude Include="..\libsrc\include\myadt.hpp" />
++    <ClInclude Include="..\libsrc\include\mydefs.hpp" />
++    <ClInclude Include="..\libsrc\include\mystdlib.h" />
++    <ClInclude Include="..\libsrc\include\nginterface.h" />
++    <ClInclude Include="..\libsrc\include\nginterface_v2.hpp" />
++    <ClInclude Include="..\libsrc\include\nginterface_v2_impl.hpp" />
++    <ClInclude Include="..\libsrc\include\occgeom.hpp" />
++    <ClInclude Include="..\libsrc\include\opti.hpp" />
++    <ClInclude Include="..\libsrc\include\parallel.hpp" />
++    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />
++    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />
++    <ClInclude Include="..\libsrc\include\visual.hpp" />
++    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />
++    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />
++    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />
++    <ClInclude Include="..\libsrc\linalg\opti.hpp" />
++    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />
++    <ClInclude Include="..\libsrc\linalg\vector.hpp" />
++    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />
++    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />
++    <ClInclude Include="..\libsrc\meshing\bcfunctions.hpp" />
++    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />
++    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />
++    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />
++    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />
++    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />
++    <ClInclude Include="..\libsrc\meshing\findip.hpp" />
++    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />
++    <ClInclude Include="..\libsrc\meshing\global.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />
++    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />
++    <ClInclude Include="..\libsrc\meshing\localh.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />
++    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />
++    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />
++    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />
++    <ClInclude Include="..\libsrc\meshing\specials.hpp" />
++    <ClInclude Include="..\libsrc\meshing\topology.hpp" />
++    <ClInclude Include="..\libsrc\meshing\validate.hpp" />
++    <ClInclude Include="..\libsrc\occ\occgeom.hpp" />
++    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />
++    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />
++    <ClInclude Include="..\libsrc\occ\utilities.h" />
++    <ClInclude Include="..\libsrc\occ\vsocc.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\vsstl.hpp" />
++    <ClInclude Include="..\libsrc\visualization\meshdoc.hpp" />
++    <ClInclude Include="..\libsrc\visualization\mvdraw.hpp" />
++    <ClInclude Include="..\libsrc\visualization\soldata.hpp" />
++    <ClInclude Include="..\libsrc\visualization\vispar.hpp" />
++    <ClInclude Include="..\libsrc\visualization\visual.hpp" />
++    <ClInclude Include="..\libsrc\visualization\vssolution.hpp" />
++    <ClInclude Include="..\ng\demoview.hpp" />
++    <ClInclude Include="..\ng\ng_acis.hpp" />
++    <ClInclude Include="..\ng\parallelfunc.hpp" />
++    <ClInclude Include="..\ng\togl_1_7.h" />
++  </ItemGroup>
++  <ItemGroup>
++    <ClCompile Include="..\libsrc\csg\algprim.cpp" />
++    <ClCompile Include="..\libsrc\csg\brick.cpp" />
++    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />
++    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />
++    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />
++    <ClCompile Include="..\libsrc\csg\csgpkg.cpp" />
++    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />
++    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />
++    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />
++    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />
++    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />
++    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />
++    <ClCompile Include="..\libsrc\csg\identify.cpp" />
++    <ClCompile Include="..\libsrc\csg\manifold.cpp" />
++    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />
++    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />
++    <ClCompile Include="..\libsrc\csg\revolution.cpp" />
++    <ClCompile Include="..\libsrc\csg\singularref.cpp" />
++    <ClCompile Include="..\libsrc\csg\solid.cpp" />
++    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />
++    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />
++    <ClCompile Include="..\libsrc\csg\surface.cpp" />
++    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />
++    <ClCompile Include="..\libsrc\csg\vscsg.cpp" />
++    <ClCompile Include="..\libsrc\general\array.cpp" />
++    <ClCompile Include="..\libsrc\general\bitarray.cpp" />
++    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />
++    <ClCompile Include="..\libsrc\general\flags.cpp" />
++    <ClCompile Include="..\libsrc\general\gzstream.cpp" />
++    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />
++    <ClCompile Include="..\libsrc\general\mpi_interface.cpp" />
++    <ClCompile Include="..\libsrc\general\mystring.cpp" />
++    <ClCompile Include="..\libsrc\general\ngexception.cpp" />
++    <ClCompile Include="..\libsrc\general\optmem.cpp" />
++    <ClCompile Include="..\libsrc\general\parthreads.cpp" />
++    <ClCompile Include="..\libsrc\general\profiler.cpp" />
++    <ClCompile Include="..\libsrc\general\seti.cpp" />
++    <ClCompile Include="..\libsrc\general\sort.cpp" />
++    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />
++    <ClCompile Include="..\libsrc\general\symbolta.cpp" />
++    <ClCompile Include="..\libsrc\general\table.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\geom2dpkg.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\vsgeom2d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\spline.cpp" />
++    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />
++    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />
++    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />
++    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />
++    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />
++    <ClCompile Include="..\libsrc\interface\readuser.cpp" />
++    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />
++    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />
++    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />
++    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />
++    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />
++    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />
++    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />
++    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />
++    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />
++    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />
++    <ClCompile Include="..\libsrc\interface\writetet.cpp" />
++    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />
++    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />
++    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />
++    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />
++    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />
++    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />
++    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />
++    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />
++    <ClCompile Include="..\libsrc\meshing\bcfunctions.cpp" />
++    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />
++    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />
++    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />
++    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />
++    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />
++    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />
++    <ClCompile Include="..\libsrc\meshing\global.cpp" />
++    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />
++    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />
++    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\localh.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />
++    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />
++    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />
++    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />
++    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\refine.cpp" />
++    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />
++    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />
++    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\specials.cpp" />
++    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\topology.cpp" />
++    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\validate.cpp" />
++    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />
++    <ClCompile Include="..\libsrc\occ\occconstruction.cpp" />
++    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />
++    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />
++    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />
++    <ClCompile Include="..\libsrc\occ\occpkg.cpp" />
++    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />
++    <ClCompile Include="..\libsrc\occ\vsocc.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlpkg.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\vsstl.cpp" />
++    <ClCompile Include="..\libsrc\visualization\importsolution.cpp" />
++    <ClCompile Include="..\libsrc\visualization\meshdoc.cpp" />
++    <ClCompile Include="..\libsrc\visualization\mvdraw.cpp" />
++    <ClCompile Include="..\libsrc\visualization\vsfieldlines.cpp" />
++    <ClCompile Include="..\libsrc\visualization\vsmesh.cpp" />
++    <ClCompile Include="..\libsrc\visualization\vssolution.cpp" />
++    <ClCompile Include="..\ng\demoview.cpp" />
++    <ClCompile Include="..\ng\ngappinit.cpp" />
++    <ClCompile Include="..\ng\ngpkg.cpp" />
++    <ClCompile Include="..\ng\onetcl.cpp" />
++    <ClCompile Include="..\ng\parallelfunc.cpp" />
++  </ItemGroup>
++  <ItemGroup>
++    <None Include="..\libsrc\occ\Partition_Inter2d.ixx" />
++    <None Include="..\libsrc\occ\Partition_Inter2d.jxx" />
++    <None Include="..\libsrc\occ\Partition_Inter3d.ixx" />
++    <None Include="..\libsrc\occ\Partition_Inter3d.jxx" />
++    <None Include="..\libsrc\occ\Partition_Loop.ixx" />
++    <None Include="..\libsrc\occ\Partition_Loop.jxx" />
++    <None Include="..\libsrc\occ\Partition_Loop2d.ixx" />
++    <None Include="..\libsrc\occ\Partition_Loop2d.jxx" />
++    <None Include="..\libsrc\occ\Partition_Loop3d.ixx" />
++    <None Include="..\libsrc\occ\Partition_Loop3d.jxx" />
++    <None Include="..\libsrc\occ\Partition_Spliter.ixx" />
++    <None Include="..\libsrc\occ\Partition_Spliter.jxx" />
++    <None Include="resource." />
++  </ItemGroup>
++  <ItemGroup>
++    <Image Include="netgen.ico" />
++  </ItemGroup>
++  <ItemGroup>
++    <ResourceCompile Include="netgen.rc" />
++  </ItemGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++  <ImportGroup Label="ExtensionTargets">
++  </ImportGroup>
++  <ProjectExtensions>
++    <VisualStudio>
++      <UserProperties HPC_Debug="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Properties xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;&lt;ProjectNameDisplay&gt;netgen&lt;/ProjectNameDisplay&gt;&lt;CollapseAdvanced&gt;true&lt;/CollapseAdvanced&gt;&lt;ApplicationPlatform&gt;x86&lt;/ApplicationPlatform&gt;&lt;/Properties&gt;" />
++    </VisualStudio>
++  </ProjectExtensions>
+ </Project>
+\ No newline at end of file
+diff -Naur netgen-5.3.1_SRC_orig/windows/nglib.sln netgen-5.3.1_SRC_modif/windows/nglib.sln
+--- netgen-5.3.1_SRC_orig/windows/nglib.sln    2014-08-29 13:53:59.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/nglib.sln   2019-11-14 16:56:26.918326014 +0300
+@@ -1,32 +1,32 @@
+-\r
+-Microsoft Visual Studio Solution File, Format Version 13.00\r
+-# Visual Studio 2013\r
+-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nglib", "nglib.vcxproj", "{2E260C8C-595C-442A-A962-51AC06EF8143}"\r
+-EndProject\r
+-Global\r
+-      GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+-              Debug|Win32 = Debug|Win32\r
+-              Debug|x64 = Debug|x64\r
+-              Release(OCC)|Win32 = Release(OCC)|Win32\r
+-              Release(OCC)|x64 = Release(OCC)|x64\r
+-              Release|Win32 = Release|Win32\r
+-              Release|x64 = Release|x64\r
+-      EndGlobalSection\r
+-      GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.ActiveCfg = Debug|Win32\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.Build.0 = Debug|Win32\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.ActiveCfg = Debug|x64\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.Build.0 = Debug|x64\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.Build.0 = Release(OCC)|x64\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.ActiveCfg = Release|Win32\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.Build.0 = Release|Win32\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.ActiveCfg = Release|x64\r
+-              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.Build.0 = Release|x64\r
+-      EndGlobalSection\r
+-      GlobalSection(SolutionProperties) = preSolution\r
+-              HideSolutionNode = FALSE\r
+-      EndGlobalSection\r
+-EndGlobal\r
++
++Microsoft Visual Studio Solution File, Format Version 13.00
++# Visual Studio 2013
++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nglib", "nglib.vcxproj", "{2E260C8C-595C-442A-A962-51AC06EF8143}"
++EndProject
++Global
++      GlobalSection(SolutionConfigurationPlatforms) = preSolution
++              Debug|Win32 = Debug|Win32
++              Debug|x64 = Debug|x64
++              Release(OCC)|Win32 = Release(OCC)|Win32
++              Release(OCC)|x64 = Release(OCC)|x64
++              Release|Win32 = Release|Win32
++              Release|x64 = Release|x64
++      EndGlobalSection
++      GlobalSection(ProjectConfigurationPlatforms) = postSolution
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.ActiveCfg = Debug|Win32
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.Build.0 = Debug|Win32
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.ActiveCfg = Debug|x64
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.Build.0 = Debug|x64
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.Build.0 = Release(OCC)|x64
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.ActiveCfg = Release|Win32
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.Build.0 = Release|Win32
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.ActiveCfg = Release|x64
++              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.Build.0 = Release|x64
++      EndGlobalSection
++      GlobalSection(SolutionProperties) = preSolution
++              HideSolutionNode = FALSE
++      EndGlobalSection
++EndGlobal
+diff -Naur netgen-5.3.1_SRC_orig/windows/nglib.vcxproj netgen-5.3.1_SRC_modif/windows/nglib.vcxproj
+--- netgen-5.3.1_SRC_orig/windows/nglib.vcxproj        2014-08-29 13:53:59.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/nglib.vcxproj       2019-11-14 16:56:26.882327022 +0300
+@@ -1,632 +1,632 @@
+-<?xml version="1.0" encoding="utf-8"?>\r
+-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+-  <ItemGroup Label="ProjectConfigurations">\r
+-    <ProjectConfiguration Include="Debug|Win32">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Debug|x64">\r
+-      <Configuration>Debug</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release(OCC)|Win32">\r
+-      <Configuration>Release(OCC)</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release(OCC)|x64">\r
+-      <Configuration>Release(OCC)</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|Win32">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>Win32</Platform>\r
+-    </ProjectConfiguration>\r
+-    <ProjectConfiguration Include="Release|x64">\r
+-      <Configuration>Release</Configuration>\r
+-      <Platform>x64</Platform>\r
+-    </ProjectConfiguration>\r
+-  </ItemGroup>\r
+-  <PropertyGroup Label="Globals">\r
+-    <ProjectGuid>{2E260C8C-595C-442A-A962-51AC06EF8143}</ProjectGuid>\r
+-    <RootNamespace>nglib</RootNamespace>\r
+-    <Keyword>Win32Proj</Keyword>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-    <CharacterSet>Unicode</CharacterSet>\r
+-    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-    <CharacterSet>Unicode</CharacterSet>\r
+-    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-    <CharacterSet>Unicode</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-    <CharacterSet>Unicode</CharacterSet>\r
+-    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-    <CharacterSet>Unicode</CharacterSet>\r
+-    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+-    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+-    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
+-    <CharacterSet>Unicode</CharacterSet>\r
+-  </PropertyGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+-  <ImportGroup Label="ExtensionSettings">\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+-  </ImportGroup>\r
+-  <PropertyGroup Label="UserMacros" />\r
+-  <PropertyGroup>\r
+-    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>\r
+-    <LinkIncremental>true</LinkIncremental>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>\r
+-    <LinkIncremental>true</LinkIncremental>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
+-    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-  </PropertyGroup>\r
+-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
+-    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>\r
+-    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>\r
+-    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
+-  </PropertyGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
+-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+-      <SubSystem>Windows</SubSystem>\r
+-      <TargetMachine>MachineX86</TargetMachine>\r
+-    </Link>\r
+-    <Manifest>\r
+-      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
+-    </Manifest>\r
+-    <ManifestResourceCompile>\r
+-      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
+-    </ManifestResourceCompile>\r
+-    <PostBuildEvent>\r
+-      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Disabled</Optimization>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <MinimalRebuild>true</MinimalRebuild>\r
+-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+-      <PrecompiledHeader />\r
+-      <WarningLevel>Level3</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2_64.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
+-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+-      <SubSystem>Windows</SubSystem>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-    </Link>\r
+-    <Manifest>\r
+-      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
+-    </Manifest>\r
+-    <ManifestResourceCompile>\r
+-      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
+-    </ManifestResourceCompile>\r
+-    <PostBuildEvent>\r
+-      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <ObjectFileName>$(IntDir)</ObjectFileName>\r
+-      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
+-      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
+-    </Link>\r
+-    <Manifest>\r
+-      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
+-    </Manifest>\r
+-    <ManifestResourceCompile>\r
+-      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
+-    </ManifestResourceCompile>\r
+-    <PostBuildEvent>\r
+-      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;NOTCL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <ObjectFileName>$(IntDir)</ObjectFileName>\r
+-      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
+-      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-    </Link>\r
+-    <Manifest>\r
+-      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
+-    </Manifest>\r
+-    <ManifestResourceCompile>\r
+-      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
+-    </ManifestResourceCompile>\r
+-    <PostBuildEvent>\r
+-      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
+-    </BuildLog>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <ObjectFileName>$(IntDir)</ObjectFileName>\r
+-      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
+-      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <AdditionalLibraryDirectories>$(CASROOT)\win32\vc8\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
+-    </Link>\r
+-    <Manifest>\r
+-      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
+-    </Manifest>\r
+-    <ManifestResourceCompile>\r
+-      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
+-    </ManifestResourceCompile>\r
+-    <PostBuildEvent>\r
+-      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
+-    <BuildLog>\r
+-      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>\r
+-    </BuildLog>\r
+-    <Midl>\r
+-      <TargetEnvironment>X64</TargetEnvironment>\r
+-    </Midl>\r
+-    <ClCompile>\r
+-      <Optimization>Full</Optimization>\r
+-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+-      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;$(SolutionDir)..\..\ext_libs\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+-      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_OCC64;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+-      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
+-      <PrecompiledHeader />\r
+-      <ObjectFileName>$(IntDir)</ObjectFileName>\r
+-      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
+-      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
+-      <WarningLevel>Level2</WarningLevel>\r
+-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+-      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
+-    </ClCompile>\r
+-    <Link>\r
+-      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+-      <AdditionalLibraryDirectories>$(CASROOT)\win64\vc9\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+-      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
+-      <TargetMachine>MachineX64</TargetMachine>\r
+-    </Link>\r
+-    <Manifest>\r
+-      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
+-    </Manifest>\r
+-    <ManifestResourceCompile>\r
+-      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
+-    </ManifestResourceCompile>\r
+-    <PostBuildEvent>\r
+-      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
+-    </PostBuildEvent>\r
+-  </ItemDefinitionGroup>\r
+-  <ItemGroup>\r
+-    <ClCompile Include="..\libsrc\general\gzstream.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\algprim.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\array.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\bitarray.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\brick.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\flags.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\global.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\identify.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\localh.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\manifold.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\mystring.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\ngexception.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />\r
+-    <ClCompile Include="..\nglib\nglib.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\optmem.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\parthreads.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />\r
+-    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\profiler.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\readuser.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\refine.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\revolution.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\seti.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\singularref.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\solid.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\sort.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\specials.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\spline.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />\r
+-    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\surface.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\symbolta.cpp" />\r
+-    <ClCompile Include="..\libsrc\general\table.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\topology.cpp" />\r
+-    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />\r
+-    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\validate.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writetet.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />\r
+-    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />\r
+-    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />\r
+-    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />\r
+-  </ItemGroup>\r
+-  <ItemGroup>\r
+-    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\algprim.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\array.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\autodiff.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\autoptr.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\bitarray.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\brick.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\csg.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\csg.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\findip.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\flags.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\geoml.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\global.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\gprim.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\identify.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\linalg.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\localh.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\manifold.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\meshing.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\myadt.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\myadt.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\mydefs.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\mystdlib.h" />\r
+-    <ClInclude Include="..\libsrc\general\mystring.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\netgenout.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\ngexception.hpp" />\r
+-    <ClInclude Include="..\nglib\nglib.h" />\r
+-    <ClInclude Include="..\libsrc\include\occgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\opti.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\opti.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\optmem.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\parallel.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\parthreads.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\profiler.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\revolution.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\seti.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\singularref.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\solid.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\sort.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\specials.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\spline.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\splinegeometry.hpp" />\r
+-    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\stack.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />\r
+-    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\surface.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\symbolta.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\table.hpp" />\r
+-    <ClInclude Include="..\libsrc\general\template.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\topology.hpp" />\r
+-    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />\r
+-    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />\r
+-    <ClInclude Include="..\libsrc\meshing\validate.hpp" />\r
+-    <ClInclude Include="..\libsrc\linalg\vector.hpp" />\r
+-    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />\r
+-    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />\r
+-  </ItemGroup>\r
+-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+-  <ImportGroup Label="ExtensionTargets">\r
+-  </ImportGroup>\r
++<?xml version="1.0" encoding="utf-8"?>
++<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++  <ItemGroup Label="ProjectConfigurations">
++    <ProjectConfiguration Include="Debug|Win32">
++      <Configuration>Debug</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Debug|x64">
++      <Configuration>Debug</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release(OCC)|Win32">
++      <Configuration>Release(OCC)</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release(OCC)|x64">
++      <Configuration>Release(OCC)</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|Win32">
++      <Configuration>Release</Configuration>
++      <Platform>Win32</Platform>
++    </ProjectConfiguration>
++    <ProjectConfiguration Include="Release|x64">
++      <Configuration>Release</Configuration>
++      <Platform>x64</Platform>
++    </ProjectConfiguration>
++  </ItemGroup>
++  <PropertyGroup Label="Globals">
++    <ProjectGuid>{2E260C8C-595C-442A-A962-51AC06EF8143}</ProjectGuid>
++    <RootNamespace>nglib</RootNamespace>
++    <Keyword>Win32Proj</Keyword>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++    <WholeProgramOptimization>true</WholeProgramOptimization>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
++    <ConfigurationType>DynamicLibrary</ConfigurationType>
++    <PlatformToolset>CTP_Nov2013</PlatformToolset>
++    <CharacterSet>Unicode</CharacterSet>
++  </PropertyGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
++  <ImportGroup Label="ExtensionSettings">
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
++    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
++  </ImportGroup>
++  <PropertyGroup Label="UserMacros" />
++  <PropertyGroup>
++    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>
++    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>
++    <LinkIncremental>true</LinkIncremental>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
++    <LinkIncremental>true</LinkIncremental>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>
++    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
++    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>
++    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++  </PropertyGroup>
++  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
++    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
++    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
++    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
++  </PropertyGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Disabled</Optimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <MinimalRebuild>true</MinimalRebuild>
++      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++      <PrecompiledHeader />
++      <WarningLevel>Level3</WarningLevel>
++      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++    </ClCompile>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
++      <GenerateDebugInformation>true</GenerateDebugInformation>
++      <SubSystem>Windows</SubSystem>
++      <TargetMachine>MachineX86</TargetMachine>
++    </Link>
++    <Manifest>
++      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
++    </Manifest>
++    <ManifestResourceCompile>
++      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
++    </ManifestResourceCompile>
++    <PostBuildEvent>
++      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Disabled</Optimization>
++      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <MinimalRebuild>true</MinimalRebuild>
++      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
++      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
++      <PrecompiledHeader />
++      <WarningLevel>Level3</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++    </ClCompile>
++    <Link>
++      <AdditionalDependencies>pthreadVC2_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
++      <GenerateDebugInformation>true</GenerateDebugInformation>
++      <SubSystem>Windows</SubSystem>
++      <TargetMachine>MachineX64</TargetMachine>
++    </Link>
++    <Manifest>
++      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
++    </Manifest>
++    <ManifestResourceCompile>
++      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
++    </ManifestResourceCompile>
++    <PostBuildEvent>
++      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <ObjectFileName>$(IntDir)</ObjectFileName>
++      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
++      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++    </ClCompile>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
++    </Link>
++    <Manifest>
++      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
++    </Manifest>
++    <ManifestResourceCompile>
++      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
++    </ManifestResourceCompile>
++    <PostBuildEvent>
++      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;NOTCL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <ObjectFileName>$(IntDir)</ObjectFileName>
++      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
++      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++    </ClCompile>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
++      <TargetMachine>MachineX64</TargetMachine>
++    </Link>
++    <Manifest>
++      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
++    </Manifest>
++    <ManifestResourceCompile>
++      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
++    </ManifestResourceCompile>
++    <PostBuildEvent>
++      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
++    </BuildLog>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <ObjectFileName>$(IntDir)</ObjectFileName>
++      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
++      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalLibraryDirectories>$(CASROOT)\win32\vc8\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
++    </Link>
++    <Manifest>
++      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
++    </Manifest>
++    <ManifestResourceCompile>
++      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
++    </ManifestResourceCompile>
++    <PostBuildEvent>
++      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
++    <BuildLog>
++      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>
++    </BuildLog>
++    <Midl>
++      <TargetEnvironment>X64</TargetEnvironment>
++    </Midl>
++    <ClCompile>
++      <Optimization>Full</Optimization>
++      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
++      <IntrinsicFunctions>true</IntrinsicFunctions>
++      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
++      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;$(SolutionDir)..\..\ext_libs\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
++      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_OCC64;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
++      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
++      <FunctionLevelLinking>true</FunctionLevelLinking>
++      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
++      <PrecompiledHeader />
++      <ObjectFileName>$(IntDir)</ObjectFileName>
++      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
++      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
++      <WarningLevel>Level2</WarningLevel>
++      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
++      <MultiProcessorCompilation>true</MultiProcessorCompilation>
++      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
++    </ClCompile>
++    <Link>
++      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
++      <AdditionalLibraryDirectories>$(CASROOT)\win64\vc9\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
++      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
++      <TargetMachine>MachineX64</TargetMachine>
++    </Link>
++    <Manifest>
++      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
++    </Manifest>
++    <ManifestResourceCompile>
++      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
++    </ManifestResourceCompile>
++    <PostBuildEvent>
++      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
++    </PostBuildEvent>
++  </ItemDefinitionGroup>
++  <ItemGroup>
++    <ClCompile Include="..\libsrc\general\gzstream.cpp" />
++    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />
++    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />
++    <ClCompile Include="..\libsrc\csg\algprim.cpp" />
++    <ClCompile Include="..\libsrc\general\array.cpp" />
++    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />
++    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />
++    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />
++    <ClCompile Include="..\libsrc\general\bitarray.cpp" />
++    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />
++    <ClCompile Include="..\libsrc\csg\brick.cpp" />
++    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />
++    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />
++    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />
++    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />
++    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />
++    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />
++    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />
++    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />
++    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />
++    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />
++    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />
++    <ClCompile Include="..\libsrc\general\flags.cpp" />
++    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />
++    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />
++    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />
++    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />
++    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\global.cpp" />
++    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />
++    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />
++    <ClCompile Include="..\libsrc\csg\identify.cpp" />
++    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />
++    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />
++    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />
++    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />
++    <ClCompile Include="..\libsrc\meshing\localh.cpp" />
++    <ClCompile Include="..\libsrc\csg\manifold.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />
++    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />
++    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />
++    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />
++    <ClCompile Include="..\libsrc\general\mystring.cpp" />
++    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />
++    <ClCompile Include="..\libsrc\general\ngexception.cpp" />
++    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />
++    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />
++    <ClCompile Include="..\nglib\nglib.cpp" />
++    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />
++    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />
++    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />
++    <ClCompile Include="..\libsrc\general\optmem.cpp" />
++    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />
++    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />
++    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />
++    <ClCompile Include="..\libsrc\general\parthreads.cpp" />
++    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />
++    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />
++    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />
++    <ClCompile Include="..\libsrc\general\profiler.cpp" />
++    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />
++    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />
++    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />
++    <ClCompile Include="..\libsrc\interface\readuser.cpp" />
++    <ClCompile Include="..\libsrc\meshing\refine.cpp" />
++    <ClCompile Include="..\libsrc\csg\revolution.cpp" />
++    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />
++    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />
++    <ClCompile Include="..\libsrc\general\seti.cpp" />
++    <ClCompile Include="..\libsrc\csg\singularref.cpp" />
++    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />
++    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />
++    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />
++    <ClCompile Include="..\libsrc\csg\solid.cpp" />
++    <ClCompile Include="..\libsrc\general\sort.cpp" />
++    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />
++    <ClCompile Include="..\libsrc\meshing\specials.cpp" />
++    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />
++    <ClCompile Include="..\libsrc\gprim\spline.cpp" />
++    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />
++    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />
++    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />
++    <ClCompile Include="..\libsrc\csg\surface.cpp" />
++    <ClCompile Include="..\libsrc\general\symbolta.cpp" />
++    <ClCompile Include="..\libsrc\general\table.cpp" />
++    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\topology.cpp" />
++    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />
++    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />
++    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />
++    <ClCompile Include="..\libsrc\meshing\validate.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />
++    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />
++    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />
++    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />
++    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />
++    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />
++    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />
++    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />
++    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />
++    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />
++    <ClCompile Include="..\libsrc\interface\writetet.cpp" />
++    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />
++    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />
++    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />
++    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />
++    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />
++    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />
++  </ItemGroup>
++  <ItemGroup>
++    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />
++    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />
++    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />
++    <ClInclude Include="..\libsrc\csg\algprim.hpp" />
++    <ClInclude Include="..\libsrc\general\array.hpp" />
++    <ClInclude Include="..\libsrc\general\autodiff.hpp" />
++    <ClInclude Include="..\libsrc\general\autoptr.hpp" />
++    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />
++    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />
++    <ClInclude Include="..\libsrc\general\bitarray.hpp" />
++    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />
++    <ClInclude Include="..\libsrc\csg\brick.hpp" />
++    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />
++    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />
++    <ClInclude Include="..\libsrc\include\csg.hpp" />
++    <ClInclude Include="..\libsrc\csg\csg.hpp" />
++    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />
++    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />
++    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />
++    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />
++    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />
++    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />
++    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />
++    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />
++    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />
++    <ClInclude Include="..\libsrc\meshing\findip.hpp" />
++    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />
++    <ClInclude Include="..\libsrc\general\flags.hpp" />
++    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />
++    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />
++    <ClInclude Include="..\libsrc\csg\geoml.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />
++    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />
++    <ClInclude Include="..\libsrc\meshing\global.hpp" />
++    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />
++    <ClInclude Include="..\libsrc\include\gprim.hpp" />
++    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />
++    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />
++    <ClInclude Include="..\libsrc\csg\identify.hpp" />
++    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />
++    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />
++    <ClInclude Include="..\libsrc\include\linalg.hpp" />
++    <ClInclude Include="..\libsrc\meshing\localh.hpp" />
++    <ClInclude Include="..\libsrc\csg\manifold.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />
++    <ClInclude Include="..\libsrc\include\meshing.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />
++    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />
++    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />
++    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />
++    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />
++    <ClInclude Include="..\libsrc\include\myadt.hpp" />
++    <ClInclude Include="..\libsrc\general\myadt.hpp" />
++    <ClInclude Include="..\libsrc\include\mydefs.hpp" />
++    <ClInclude Include="..\libsrc\include\mystdlib.h" />
++    <ClInclude Include="..\libsrc\general\mystring.hpp" />
++    <ClInclude Include="..\libsrc\general\netgenout.hpp" />
++    <ClInclude Include="..\libsrc\general\ngexception.hpp" />
++    <ClInclude Include="..\nglib\nglib.h" />
++    <ClInclude Include="..\libsrc\include\occgeom.hpp" />
++    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />
++    <ClInclude Include="..\libsrc\include\opti.hpp" />
++    <ClInclude Include="..\libsrc\linalg\opti.hpp" />
++    <ClInclude Include="..\libsrc\general\optmem.hpp" />
++    <ClInclude Include="..\libsrc\include\parallel.hpp" />
++    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />
++    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />
++    <ClInclude Include="..\libsrc\general\parthreads.hpp" />
++    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />
++    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />
++    <ClInclude Include="..\libsrc\general\profiler.hpp" />
++    <ClInclude Include="..\libsrc\csg\revolution.hpp" />
++    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />
++    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />
++    <ClInclude Include="..\libsrc\general\seti.hpp" />
++    <ClInclude Include="..\libsrc\csg\singularref.hpp" />
++    <ClInclude Include="..\libsrc\csg\solid.hpp" />
++    <ClInclude Include="..\libsrc\general\sort.hpp" />
++    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />
++    <ClInclude Include="..\libsrc\meshing\specials.hpp" />
++    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\spline.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />
++    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\splinegeometry.hpp" />
++    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />
++    <ClInclude Include="..\libsrc\general\stack.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />
++    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />
++    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />
++    <ClInclude Include="..\libsrc\csg\surface.hpp" />
++    <ClInclude Include="..\libsrc\general\symbolta.hpp" />
++    <ClInclude Include="..\libsrc\general\table.hpp" />
++    <ClInclude Include="..\libsrc\general\template.hpp" />
++    <ClInclude Include="..\libsrc\meshing\topology.hpp" />
++    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />
++    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />
++    <ClInclude Include="..\libsrc\meshing\validate.hpp" />
++    <ClInclude Include="..\libsrc\linalg\vector.hpp" />
++    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />
++    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />
++    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />
++  </ItemGroup>
++  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
++  <ImportGroup Label="ExtensionTargets">
++  </ImportGroup>
+ </Project>
+\ No newline at end of file
+diff -Naur netgen-5.3.1_SRC_orig/windows/postBuild_netgen.bat netgen-5.3.1_SRC_modif/windows/postBuild_netgen.bat
+--- netgen-5.3.1_SRC_orig/windows/postBuild_netgen.bat 2014-10-06 14:59:42.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/postBuild_netgen.bat        2019-11-14 16:56:26.846328030 +0300
+@@ -1,162 +1,162 @@
+-REM *********************************************************************************\r
+-REM *** Netgen Windows Post-Build Script\r
+-REM *** Author: Philippose Rajan\r
+-REM *** Date: 31/01/2009\r
+-REM ***\r
+-REM *** Used to perform an "Install" of the generated executable \r
+-REM *** along with the required *.tcl files\r
+-REM ***\r
+-REM *** Call from Visual C++ using:\r
+-REM *** postBuild_netgen.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir) <lib filename>\r
+-REM *********************************************************************************\r
+-if [%1]==[] goto InputParamsFailed\r
+-set PROJ_NAME=%~1\r
+-set PROJ_EXEC=%~2\r
+-set BUILD_TYPE=%~3\r
+-set BUILD_ARCH=%~4\r
+-set PROJ_DIR=%~5\r
+-set LIB_NAME=%~6\r
+-\r
+-REM *** Change these Folders if required ***\r
+-REM Check if the environment variable NETGENDIR exists, \r
+-REM and use it as the installation folder\r
+-set W_WO_OCC=%BUILD_TYPE:~-4,3%\r
+-if defined NETGENDIR (\r
+-   echo Environment variable NETGENDIR found: %NETGENDIR%\r
+-   set INSTALL_FOLDER=%NETGENDIR%\..\r
+-) else (\r
+-   echo Environment variable NETGENDIR not found.... using default location!!!\r
+-   if /i "%W_WO_OCC%" == "OCC" (\r
+-      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%\r
+-   ) else (\r
+-      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%\r
+-   )   \r
+-)\r
+-   \r
+-set NETGEN_TCLSRC=%PROJ_DIR%..\ng\r
+-set NETGEN_LIBINC=%PROJ_DIR%..\libsrc\include\r
+-set NETGEN_NGSINC=%PROJ_DIR%..\libsrc\r
+-\r
+-REM *** Start the Installation procedure ***\r
+-echo POSTBUILD Script for %PROJ_NAME% ........\r
+-\r
+-REM *** Embed the Windows Manifest into the Executable File ***\r
+-REM echo Embedding Manifest into the executable: %PROJ_EXEC% ....\r
+-REM mt.exe -manifest "%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%BUILD_TYPE%\%PROJ_EXEC%;#1" \r
+-REM if errorlevel 1 goto ManifestFailed\r
+-REM echo Embedding Manifest into the executable: Completed OK!!\r
+-\r
+-REM *** Copy the core TCL files into the Install Folder ***\r
+-echo Installing core TCL files into %INSTALL_FOLDER%\bin ....\r
+-xcopy  "%NETGEN_TCLSRC%\*.tcl" "%INSTALL_FOLDER%\bin\" /i /d /y\r
+-xcopy  "%NETGEN_TCLSRC%\*.ocf" "%INSTALL_FOLDER%\bin\" /i /d /y\r
+-if errorlevel 1 goto CoreTCLFailed\r
+-echo Installing core TCL Files: Completed OK!!\r
+-\r
+-REM *** Copy any more auxiliary TCL files into the Install Folder ***\r
+-REM if errorlevel 1 goto AuxTCLFailed\r
+-REM echo Installing auxiliary TCL Files: Completed OK!!\r
+-\r
+-REM *** Copy the primary Netgen executable file into the Install Folder ***\r
+-echo Installing %PROJ_EXEC% into %INSTALL_FOLDER%\bin ....\r
+-if /i "%BUILD_ARCH%" == "win32" (\r
+-   xcopy "%PROJ_DIR%%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
+-   if errorlevel 1 goto ExecInstallFailed\r
+-)\r
+-if /i "%BUILD_ARCH%" == "x64" (\r
+-   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
+-   if errorlevel 1 goto ExecInstallFailed\r
+-)   \r
+-echo Installing %PROJ_EXEC%: Completed OK!!\r
+-\r
+-REM *** Copy the primary Netgen library and include files into the Install Folder ***\r
+-echo Installing %LIB_NAME%.lib into %INSTALL_FOLDER%\lib ....\r
+-if /i "%BUILD_ARCH%" == "win32" (\r
+-   xcopy "%PROJ_DIR%%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
+-   if errorlevel 1 goto LibInstallFailed\r
+-)\r
+-if /i "%BUILD_ARCH%" == "x64" (\r
+-   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
+-   if errorlevel 1 goto LibInstallFailed\r
+-)   \r
+-echo Installing %LIB_NAME%.lib: Completed OK!!\r
+-\r
+-echo Installing %LIB_NAME%.h into %INSTALL_FOLDER%\include ....\r
+-xcopy "%NETGEN_LIBINC%\%LIB_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-if errorlevel 1 goto LibInstallFailed\r
+-echo Installing %LIB_NAME%.h: Completed OK!!\r
+-\r
+-echo Installing NgSolve dependent header files into %INSTALL_FOLDER%\include ....\r
+-xcopy "%NETGEN_NGSINC%\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-xcopy "%NETGEN_NGSINC%\general\dynamicmem.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-xcopy "%NETGEN_NGSINC%\general\ngexception.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-xcopy "%NETGEN_NGSINC%\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-\r
+-echo Installing external dependencies\r
+-if /i "%BUILD_ARCH%" == "x64" (   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q\r
+-   REM if errorlevel 1 goto externalInstallFailed\r
+-)   \r
+-\r
+-if /i "%BUILD_ARCH%" == "win32" (   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x86\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q\r
+-   REM if errorlevel 1 goto externalInstallFailed\r
+-)\r
+-\r
+-REM *** Finally copy the FFMPEG dlls to the bin folder ***\r
+-if /i "%BUILD_ARCH%"=="x64" (\r
+-              echo Copying FFMPEG dlls\r
+-              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y           \r
+-)\r
+-if /i "%BUILD_ARCH%"=="win32" (\r
+-              echo Copying FFMPEG dlls\r
+-              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\Win32\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y         \r
+-)\r
+-\r
+-echo Copying tutorials\r
+-xcopy "%PROJ_DIR%..\tutorials" "%INSTALL_FOLDER%\tutorials\" /i /d /y /e\r
+-\r
+-\r
+-\r
+-REM *** Done with the installation routine ***\r
+-\r
+-REM *** Clean up the build directory by deleting the OBJ files ***\r
+-REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....\r
+-REM rmdir %PROJ_DIR%%BUILD_TYPE% /s /q\r
+-\r
+-REM *** If there have been no errors so far, we are done ***\r
+-goto BuildEventOK\r
+-\r
+-REM *** Error Messages for each stage of the post build process ***\r
+-:InputParamsFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!\r
+-exit 1\r
+-:ManifestFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!\r
+-exit 1\r
+-:CoreTCLFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying core TCL Files into install folder!!!\r
+-exit 1\r
+-:ExecInstallFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% executable into install folder!!!\r
+-exit 1\r
+-:LibInstallFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %LIB_NAME%.lib or %LIB_NAME%.h into install folder!!!\r
+-exit 1\r
+-:externalInstallFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying external dependencies to install folder!!!\r
+-exit 1\r
+-\r
+-:BuildEventOK\r
+-echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!\r
+-\r
++REM *********************************************************************************
++REM *** Netgen Windows Post-Build Script
++REM *** Author: Philippose Rajan
++REM *** Date: 31/01/2009
++REM ***
++REM *** Used to perform an "Install" of the generated executable 
++REM *** along with the required *.tcl files
++REM ***
++REM *** Call from Visual C++ using:
++REM *** postBuild_netgen.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir) <lib filename>
++REM *********************************************************************************
++if [%1]==[] goto InputParamsFailed
++set PROJ_NAME=%~1
++set PROJ_EXEC=%~2
++set BUILD_TYPE=%~3
++set BUILD_ARCH=%~4
++set PROJ_DIR=%~5
++set LIB_NAME=%~6
++
++REM *** Change these Folders if required ***
++REM Check if the environment variable NETGENDIR exists, 
++REM and use it as the installation folder
++set W_WO_OCC=%BUILD_TYPE:~-4,3%
++if defined NETGENDIR (
++   echo Environment variable NETGENDIR found: %NETGENDIR%
++   set INSTALL_FOLDER=%NETGENDIR%\..
++) else (
++   echo Environment variable NETGENDIR not found.... using default location!!!
++   if /i "%W_WO_OCC%" == "OCC" (
++      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%
++   ) else (
++      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%
++   )   
++)
++   
++set NETGEN_TCLSRC=%PROJ_DIR%..\ng
++set NETGEN_LIBINC=%PROJ_DIR%..\libsrc\include
++set NETGEN_NGSINC=%PROJ_DIR%..\libsrc
++
++REM *** Start the Installation procedure ***
++echo POSTBUILD Script for %PROJ_NAME% ........
++
++REM *** Embed the Windows Manifest into the Executable File ***
++REM echo Embedding Manifest into the executable: %PROJ_EXEC% ....
++REM mt.exe -manifest "%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%BUILD_TYPE%\%PROJ_EXEC%;#1" 
++REM if errorlevel 1 goto ManifestFailed
++REM echo Embedding Manifest into the executable: Completed OK!!
++
++REM *** Copy the core TCL files into the Install Folder ***
++echo Installing core TCL files into %INSTALL_FOLDER%\bin ....
++xcopy  "%NETGEN_TCLSRC%\*.tcl" "%INSTALL_FOLDER%\bin\" /i /d /y
++xcopy  "%NETGEN_TCLSRC%\*.ocf" "%INSTALL_FOLDER%\bin\" /i /d /y
++if errorlevel 1 goto CoreTCLFailed
++echo Installing core TCL Files: Completed OK!!
++
++REM *** Copy any more auxiliary TCL files into the Install Folder ***
++REM if errorlevel 1 goto AuxTCLFailed
++REM echo Installing auxiliary TCL Files: Completed OK!!
++
++REM *** Copy the primary Netgen executable file into the Install Folder ***
++echo Installing %PROJ_EXEC% into %INSTALL_FOLDER%\bin ....
++if /i "%BUILD_ARCH%" == "win32" (
++   xcopy "%PROJ_DIR%%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
++   if errorlevel 1 goto ExecInstallFailed
++)
++if /i "%BUILD_ARCH%" == "x64" (
++   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
++   if errorlevel 1 goto ExecInstallFailed
++)   
++echo Installing %PROJ_EXEC%: Completed OK!!
++
++REM *** Copy the primary Netgen library and include files into the Install Folder ***
++echo Installing %LIB_NAME%.lib into %INSTALL_FOLDER%\lib ....
++if /i "%BUILD_ARCH%" == "win32" (
++   xcopy "%PROJ_DIR%%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
++   if errorlevel 1 goto LibInstallFailed
++)
++if /i "%BUILD_ARCH%" == "x64" (
++   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
++   if errorlevel 1 goto LibInstallFailed
++)   
++echo Installing %LIB_NAME%.lib: Completed OK!!
++
++echo Installing %LIB_NAME%.h into %INSTALL_FOLDER%\include ....
++xcopy "%NETGEN_LIBINC%\%LIB_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y
++if errorlevel 1 goto LibInstallFailed
++echo Installing %LIB_NAME%.h: Completed OK!!
++
++echo Installing NgSolve dependent header files into %INSTALL_FOLDER%\include ....
++xcopy "%NETGEN_NGSINC%\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
++xcopy "%NETGEN_NGSINC%\general\dynamicmem.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
++xcopy "%NETGEN_NGSINC%\general\ngexception.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
++xcopy "%NETGEN_NGSINC%\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
++
++echo Installing external dependencies
++if /i "%BUILD_ARCH%" == "x64" (   
++   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
++   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q
++   REM if errorlevel 1 goto externalInstallFailed
++)   
++
++if /i "%BUILD_ARCH%" == "win32" (   
++   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
++   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x86\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q
++   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q
++   REM if errorlevel 1 goto externalInstallFailed
++)
++
++REM *** Finally copy the FFMPEG dlls to the bin folder ***
++if /i "%BUILD_ARCH%"=="x64" (
++              echo Copying FFMPEG dlls
++              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y           
++)
++if /i "%BUILD_ARCH%"=="win32" (
++              echo Copying FFMPEG dlls
++              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\Win32\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y         
++)
++
++echo Copying tutorials
++xcopy "%PROJ_DIR%..\tutorials" "%INSTALL_FOLDER%\tutorials\" /i /d /y /e
++
++
++
++REM *** Done with the installation routine ***
++
++REM *** Clean up the build directory by deleting the OBJ files ***
++REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....
++REM rmdir %PROJ_DIR%%BUILD_TYPE% /s /q
++
++REM *** If there have been no errors so far, we are done ***
++goto BuildEventOK
++
++REM *** Error Messages for each stage of the post build process ***
++:InputParamsFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!
++exit 1
++:ManifestFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!
++exit 1
++:CoreTCLFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying core TCL Files into install folder!!!
++exit 1
++:ExecInstallFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% executable into install folder!!!
++exit 1
++:LibInstallFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %LIB_NAME%.lib or %LIB_NAME%.h into install folder!!!
++exit 1
++:externalInstallFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying external dependencies to install folder!!!
++exit 1
++
++:BuildEventOK
++echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!
++
+diff -Naur netgen-5.3.1_SRC_orig/windows/postBuild_nglib.bat netgen-5.3.1_SRC_modif/windows/postBuild_nglib.bat
+--- netgen-5.3.1_SRC_orig/windows/postBuild_nglib.bat  2014-08-29 13:53:59.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/postBuild_nglib.bat 2019-11-14 16:56:26.902326462 +0300
+@@ -1,117 +1,117 @@
+-REM *********************************************************************************\r
+-REM *** Netgen Library (nglib) Windows Post-Build Script\r
+-REM *** Author: Philippose Rajan\r
+-REM *** Date: 15/02/2009\r
+-REM ***\r
+-REM *** Used to perform an "Install" of the generated Dynamic Link Library (DLL)  \r
+-REM *** and the corresponding LIB file.\r
+-REM ***\r
+-REM *** Call from Visual C++ using:\r
+-REM *** postBuild_nglib.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir)\r
+-REM *********************************************************************************\r
+-if [%1]==[] goto InputParamsFailed\r
+-set PROJ_NAME=%~1\r
+-set PROJ_EXEC=%~2\r
+-set BUILD_TYPE=%~3\r
+-set BUILD_ARCH=%~4\r
+-set PROJ_DIR=%~5\r
+-\r
+-REM *** Change these Folders if required ***\r
+-REM Check if the environment variable NETGENDIR exists, \r
+-REM and use it as the installation folder\r
+-set W_WO_OCC=%BUILD_TYPE:~-4,3%\r
+-if defined NETGENDIR (\r
+-   echo Environment variable NETGENDIR found: %NETGENDIR%\r
+-   set INSTALL_FOLDER=%NETGENDIR%\..\r
+-) else (\r
+-   echo Environment variable NETGENDIR not found.... using default location!!!\r
+-   if /i "%W_WO_OCC%" == "OCC" (   \r
+-      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%\r
+-   ) else (\r
+-      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%\r
+-   )   \r
+-)\r
+-   \r
+-set NGLIB_LIBINC=%PROJ_DIR%..\nglib\r
+-\r
+-\r
+-echo POSTBUILD Script for %PROJ_NAME% ........\r
+-\r
+-REM *** Embed the Windows Manifest into the Executable File ***\r
+-REM echo Embedding Manifest into the DLL: %PROJ_EXEC% ....\r
+-REM mt.exe -manifest "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%;#2" \r
+-REM if errorlevel 1 goto ManifestFailed\r
+-REM echo Embedding Manifest into the DLL: Completed OK!!\r
+-\r
+-REM *** Copy the DLL and LIB Files into the install folder ***\r
+-echo Installing required files into %INSTALL_FOLDER% ....\r
+-if /i "%BUILD_ARCH%" == "win32" (\r
+-   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
+-   if errorlevel 1 goto DLLInstallFailed\r
+-)\r
+-if /i "%BUILD_ARCH%" == "x64" (\r
+-   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
+-   if errorlevel 1 goto DLLInstallFailed\r
+-)   \r
+-echo Installing %PROJ_EXEC%: Completed OK!!\r
+-\r
+-if /i "%BUILD_ARCH%" == "win32" (\r
+-   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
+-   if errorlevel 1 goto LibInstallFailed\r
+-)\r
+-if /i "%BUILD_ARCH%" == "x64" (\r
+-   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
+-   if errorlevel 1 goto LibInstallFailed\r
+-)   \r
+-\r
+-if /i "%BUILD_ARCH%" == "x64" (\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
+-\r
+-   if errorlevel 1 goto ExternalInstallFailed\r
+-)\r
+-if /i "%BUILD_ARCH%" == "win32" (\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
+-   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
+-   if errorlevel 1 goto ExternalInstallFailed\r
+-)\r
+-\r
+-echo Installing %PROJ_NAME%.lib: Completed OK!!\r
+-\r
+-REM *** Copy the include file nglib.h into the install folder ***\r
+-echo Installing %PROJ_NAME%.h into %INSTALL_FOLDER%\include ....\r
+-xcopy "%NGLIB_LIBINC%\%PROJ_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-echo  "%NGLIB_LIBINC%\..\libsrc\include\nginterface.hpp"\r
+-xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface.h" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-xcopy "%NGLIB_LIBINC%\..\libsrc\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
+-if errorlevel 1 goto LibInstallFailed\r
+-echo Installing %PROJ_NAME%.h: Completed OK!!\r
+-\r
+-\r
+-REM *** Clean up the build directory by deleting the OBJ files ***\r
+-REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....\r
+-REM rmdir %PROJ_DIR%%PROJ_NAME% /s /q\r
+-\r
+-REM *** If there have been no errors so far, we are done ***\r
+-goto BuildEventOK\r
+-\r
+-REM *** Error Messages for each stage of the post build process ***\r
+-:InputParamsFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!\r
+-exit 1\r
+-:ManifestFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!\r
+-exit 1\r
+-:DLLInstallFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% DLL into install folder!!!\r
+-exit 1\r
+-:LibInstallFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %PROJ_NAME%.lib or %PROJ_NAME%.h into install folder!!!\r
+-exit 1\r
+-:ExternalInstallFailed\r
+-echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying pthreadVC2.dll into install folder!!!\r
+-exit 1 \r
+-\r
+-:BuildEventOK\r
+-echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!\r
++REM *********************************************************************************
++REM *** Netgen Library (nglib) Windows Post-Build Script
++REM *** Author: Philippose Rajan
++REM *** Date: 15/02/2009
++REM ***
++REM *** Used to perform an "Install" of the generated Dynamic Link Library (DLL)  
++REM *** and the corresponding LIB file.
++REM ***
++REM *** Call from Visual C++ using:
++REM *** postBuild_nglib.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir)
++REM *********************************************************************************
++if [%1]==[] goto InputParamsFailed
++set PROJ_NAME=%~1
++set PROJ_EXEC=%~2
++set BUILD_TYPE=%~3
++set BUILD_ARCH=%~4
++set PROJ_DIR=%~5
++
++REM *** Change these Folders if required ***
++REM Check if the environment variable NETGENDIR exists, 
++REM and use it as the installation folder
++set W_WO_OCC=%BUILD_TYPE:~-4,3%
++if defined NETGENDIR (
++   echo Environment variable NETGENDIR found: %NETGENDIR%
++   set INSTALL_FOLDER=%NETGENDIR%\..
++) else (
++   echo Environment variable NETGENDIR not found.... using default location!!!
++   if /i "%W_WO_OCC%" == "OCC" (   
++      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%
++   ) else (
++      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%
++   )   
++)
++   
++set NGLIB_LIBINC=%PROJ_DIR%..\nglib
++
++
++echo POSTBUILD Script for %PROJ_NAME% ........
++
++REM *** Embed the Windows Manifest into the Executable File ***
++REM echo Embedding Manifest into the DLL: %PROJ_EXEC% ....
++REM mt.exe -manifest "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%;#2" 
++REM if errorlevel 1 goto ManifestFailed
++REM echo Embedding Manifest into the DLL: Completed OK!!
++
++REM *** Copy the DLL and LIB Files into the install folder ***
++echo Installing required files into %INSTALL_FOLDER% ....
++if /i "%BUILD_ARCH%" == "win32" (
++   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
++   if errorlevel 1 goto DLLInstallFailed
++)
++if /i "%BUILD_ARCH%" == "x64" (
++   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
++   if errorlevel 1 goto DLLInstallFailed
++)   
++echo Installing %PROJ_EXEC%: Completed OK!!
++
++if /i "%BUILD_ARCH%" == "win32" (
++   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
++   if errorlevel 1 goto LibInstallFailed
++)
++if /i "%BUILD_ARCH%" == "x64" (
++   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
++   if errorlevel 1 goto LibInstallFailed
++)   
++
++if /i "%BUILD_ARCH%" == "x64" (
++   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
++   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y
++
++   if errorlevel 1 goto ExternalInstallFailed
++)
++if /i "%BUILD_ARCH%" == "win32" (
++   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y
++   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y
++   if errorlevel 1 goto ExternalInstallFailed
++)
++
++echo Installing %PROJ_NAME%.lib: Completed OK!!
++
++REM *** Copy the include file nglib.h into the install folder ***
++echo Installing %PROJ_NAME%.h into %INSTALL_FOLDER%\include ....
++xcopy "%NGLIB_LIBINC%\%PROJ_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y
++echo  "%NGLIB_LIBINC%\..\libsrc\include\nginterface.hpp"
++xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface.h" "%INSTALL_FOLDER%\include\" /i /d /y
++xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
++xcopy "%NGLIB_LIBINC%\..\libsrc\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
++if errorlevel 1 goto LibInstallFailed
++echo Installing %PROJ_NAME%.h: Completed OK!!
++
++
++REM *** Clean up the build directory by deleting the OBJ files ***
++REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....
++REM rmdir %PROJ_DIR%%PROJ_NAME% /s /q
++
++REM *** If there have been no errors so far, we are done ***
++goto BuildEventOK
++
++REM *** Error Messages for each stage of the post build process ***
++:InputParamsFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!
++exit 1
++:ManifestFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!
++exit 1
++:DLLInstallFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% DLL into install folder!!!
++exit 1
++:LibInstallFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %PROJ_NAME%.lib or %PROJ_NAME%.h into install folder!!!
++exit 1
++:ExternalInstallFailed
++echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying pthreadVC2.dll into install folder!!!
++exit 1 
++
++:BuildEventOK
++echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!
+diff -Naur netgen-5.3.1_SRC_orig/windows/resource.h netgen-5.3.1_SRC_modif/windows/resource.h
+--- netgen-5.3.1_SRC_orig/windows/resource.h   2014-08-29 13:53:59.000000000 +0400
++++ netgen-5.3.1_SRC_modif/windows/resource.h  2019-11-14 16:56:26.894326686 +0300
+@@ -1,25 +1,25 @@
+-//{{NO_DEPENDENCIES}}\r
+-// Microsoft Visual C++ generated include file.\r
+-// Used by netgen.rc and nglib.rc\r
+-//\r
+-#define _USE_DECLSPECS_FOR_SAL          0\r
+-#define _USE_ATTRIBUTES_FOR_SAL         0\r
+-#define VS_VERSION_INFO                 1\r
+-#define VFFF_ISSHAREDFILE               0x0001\r
+-#define VFF_CURNEDEST                   0x0001\r
+-#define VIFF_FORCEINSTALL               0x0001\r
+-#define VFF_FILEINUSE                   0x0002\r
+-#define VIFF_DONTDELETEOLD              0x0002\r
+-#define VFF_BUFFTOOSMALL                0x0004\r
+-#define VS_USER_DEFINED                 100\r
+-\r
+-// Next default values for new objects\r
+-// \r
+-#ifdef APSTUDIO_INVOKED\r
+-#ifndef APSTUDIO_READONLY_SYMBOLS\r
+-#define _APS_NEXT_RESOURCE_VALUE        101\r
+-#define _APS_NEXT_COMMAND_VALUE         40001\r
+-#define _APS_NEXT_CONTROL_VALUE         1000\r
+-#define _APS_NEXT_SYMED_VALUE           101\r
+-#endif\r
+-#endif\r
++//{{NO_DEPENDENCIES}}
++// Microsoft Visual C++ generated include file.
++// Used by netgen.rc and nglib.rc
++//
++#define _USE_DECLSPECS_FOR_SAL          0
++#define _USE_ATTRIBUTES_FOR_SAL         0
++#define VS_VERSION_INFO                 1
++#define VFFF_ISSHAREDFILE               0x0001
++#define VFF_CURNEDEST                   0x0001
++#define VIFF_FORCEINSTALL               0x0001
++#define VFF_FILEINUSE                   0x0002
++#define VIFF_DONTDELETEOLD              0x0002
++#define VFF_BUFFTOOSMALL                0x0004
++#define VS_USER_DEFINED                 100
++
++// Next default values for new objects
++// 
++#ifdef APSTUDIO_INVOKED
++#ifndef APSTUDIO_READONLY_SYMBOLS
++#define _APS_NEXT_RESOURCE_VALUE        101
++#define _APS_NEXT_COMMAND_VALUE         40001
++#define _APS_NEXT_CONTROL_VALUE         1000
++#define _APS_NEXT_SYMED_VALUE           101
++#endif
++#endif
diff --git a/config/patches/netgen.001_sources.patch b/config/patches/netgen.001_sources.patch
deleted file mode 100644 (file)
index ccd4e8c..0000000
+++ /dev/null
@@ -1,1455 +0,0 @@
-diff -NaurwB netgen-5.3.1_orig/Makefile.am netgen-5.3.1_new/Makefile.am
---- netgen-5.3.1_orig/Makefile.am      2016-10-21 17:32:01.000000000 +0300
-+++ netgen-5.3.1_new/Makefile.am       2016-10-21 17:31:54.000000000 +0300
-@@ -2,7 +2,7 @@
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- # TESTS = ng/netgen -batchmode
-diff -NaurwB netgen-5.3.1_orig/Makefile.in netgen-5.3.1_new/Makefile.in
---- netgen-5.3.1_orig/Makefile.in      2014-10-06 15:04:37.000000000 +0400
-+++ netgen-5.3.1_new/Makefile.in       2016-10-03 16:17:10.164707368 +0300
-@@ -280,7 +280,7 @@
- top_srcdir = @top_srcdir@
- ACLOCAL_AMFLAGS = -I m4
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- all: config.h
-       $(MAKE) $(AM_MAKEFLAGS) all-recursive
-diff -NaurwB netgen-5.3.1_orig/configure.ac netgen-5.3.1_new/configure.ac
---- netgen-5.3.1_orig/configure.ac     2014-10-06 15:00:17.000000000 +0400
-+++ netgen-5.3.1_new/configure.ac      2016-09-29 14:34:11.957389447 +0300
-@@ -20,7 +20,7 @@
- CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
- # LDFLAGS="$LDFLAGS $OPENMP_CXXFLAGS"
--AM_PROG_AR
-+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AC_PROG_LIBTOOL
- LT_INIT
-@@ -42,8 +42,8 @@
- if test a$occon = atrue ; then
--      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/opencascade"])
--      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
-+      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
-+      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
- #  -lTKDCAF
-diff -NaurwB netgen-5.3.1_orig/libsrc/meshing/findip.hpp netgen-5.3.1_new/libsrc/meshing/findip.hpp
---- netgen-5.3.1_orig/libsrc/meshing/findip.hpp        2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/meshing/findip.hpp 2016-09-30 20:38:56.662234111 +0300
-@@ -75,6 +75,9 @@
-   static int timer = NgProfiler::CreateTimer ("FindInnerPoint");
-   NgProfiler::RegionTimer reg (timer);
-+  if ( points.Size() < 3 )
-+    return 0;
-+
-   Array<Vec3d> a;
-   Array<double> c;
-   Mat<3> m, inv;
-diff -NaurwB netgen-5.3.1_orig/libsrc/meshing/improve3.cpp netgen-5.3.1_new/libsrc/meshing/improve3.cpp
---- netgen-5.3.1_orig/libsrc/meshing/improve3.cpp      2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/meshing/improve3.cpp       2016-10-03 16:16:57.636639300 +0300
-@@ -1219,6 +1219,7 @@
-             tetused = 0;
-             tetused[0] = 1;
-+              int nbtetused = 0;
-             for (int l = 2; l < nsuround; l++)
-               {
-@@ -1239,10 +1240,12 @@
-                             
-                             tetused[k] = 1; 
-                             suroundpts[l] = newpi;
-+                              ++nbtetused;
-                           }                   
-                     }
-               }
--
-+              if ( nbtetused < nsuround )
-+                continue;
-             
-             bad1 = 0;
-             for (int k = 0; k < nsuround; k++)
-diff -NaurwB netgen-5.3.1_orig/libsrc/meshing/meshtype.cpp netgen-5.3.1_new/libsrc/meshing/meshtype.cpp
---- netgen-5.3.1_orig/libsrc/meshing/meshtype.cpp      2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/meshing/meshtype.cpp       2016-09-29 14:04:51.500148293 +0300
-@@ -1,4 +1,5 @@
- #include <mystdlib.h>
-+#include <float.h> // to get DBL_MIN defined
- #include "meshing.hpp"  
-@@ -666,7 +667,8 @@
-         double det = trans.Det();
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -722,7 +724,8 @@
-             double det = trans(0,0)*trans(1,1)-trans(1,0)*trans(0,1);
--            if (det <= 0)
-+            // if (det <= 0)
-+            if (det <= DBL_MIN)  // avoid FPE
-               {
-                 dd = 0;
-                 return 1e12;
-@@ -806,7 +809,8 @@
-           = dtrans(0,0) * trans(1,1) - trans(0,1) * dtrans(1,0)
-           + trans(0,0) * dtrans(1,1) - dtrans(0,1) * trans(1,0);
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -856,7 +860,8 @@
-         frob /= 2;
-         double det = trans.Det();
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -1864,7 +1869,8 @@
-       case PYRAMID:
-         {
-           double noz = 1-p(2);
--          if (noz == 0.0) noz = 1e-10;
-+          //if (noz == 0.0) noz = 1e-10;
-+          if (noz <= DBL_MIN) noz = 1e-10; // avoid FPE
-           double xi  = p(0) / noz;
-           double eta = p(1) / noz;
-@@ -2030,7 +2036,8 @@
-         double det = -trans.Det();
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob * frob / det;
-@@ -2102,7 +2109,8 @@
-         ddet *= -1;
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -2184,7 +2192,7 @@
-       
-         det *= -1;
-       
--        if (det <= 0)
-+        if (det <= DBL_MIN)
-           err += 1e12;
-         else
-           {
-diff -NaurwB netgen-5.3.1_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_new/libsrc/meshing/meshtype.hpp
---- netgen-5.3.1_orig/libsrc/meshing/meshtype.hpp      2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/meshing/meshtype.hpp       2016-09-30 14:28:09.147575801 +0300
-@@ -15,6 +15,7 @@
-     Classes for NETGEN
-   */
-+class Mesh; // added due to compilation errors on some platforms
-   enum ELEMENT_TYPE { 
-@@ -360,7 +361,7 @@
-         {
- #ifdef DEBUG
-           if (typ != QUAD && typ != QUAD6 && typ != QUAD8)
--            PrintSysError ("element2d::GetNV not implemented for typ", typ)
-+            PrintSysError ("element2d::GetNV not implemented for typ", typ);
- #endif
-           return 4;
-         }
-@@ -618,7 +619,7 @@
-         return 8;
-       default:
- #ifdef DEBUG
--        PrintSysError ("Element3d::GetNV not implemented for typ ", typ)
-+        PrintSysError ("Element3d::GetNV not implemented for typ ", typ);
- #endif
-           ;
-       }
-@@ -682,7 +683,7 @@
-       case PRISM12: return 5;
-       default:
- #ifdef DEBUG
--        PrintSysError ("element3d::GetNFaces not implemented for typ", typ)
-+        PrintSysError ("element3d::GetNFaces not implemented for typ", typ);
- #endif
-           ;
-       }
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Inter2d.cxx netgen-5.3.1_new/libsrc/occ/Partition_Inter2d.cxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Inter2d.cxx 2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Inter2d.cxx  2016-09-29 14:44:01.996464598 +0300
-@@ -47,9 +47,7 @@
- #include <TopOpeBRep_EdgesIntersector.hxx>
- #include <TopOpeBRep_Point2d.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
--#include <TopTools_MapOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Edge.hxx>
- #include <TopoDS_Vertex.hxx>
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Inter2d.hxx netgen-5.3.1_new/libsrc/occ/Partition_Inter2d.hxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Inter2d.hxx 2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Inter2d.hxx  2016-09-29 14:44:01.996464598 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter2d_HeaderFile
- #define _Partition_Inter2d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _Standard_Real_HeaderFile
-@@ -36,11 +38,13 @@
- #ifndef _Standard_Boolean_HeaderFile
- #include <Standard_Boolean.hxx>
- #endif
-+
-+#include <TopTools_MapOfShape.hxx>
-+#include <TopTools_ListOfShape.hxx>
-+
- class BRepAlgo_AsDes;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Vertex;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Inter3d.cxx netgen-5.3.1_new/libsrc/occ/Partition_Inter3d.cxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Inter3d.cxx 2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Inter3d.cxx  2016-09-29 14:44:02.000464619 +0300
-@@ -48,7 +48,6 @@
- #include <TopOpeBRepTool_BoxSort.hxx>
- #include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Compound.hxx>
- #include <TopoDS_Edge.hxx>
-@@ -206,7 +205,7 @@
-   Handle (Geom_Surface) S   = BRep_Tool::Surface(F,L);
-   if (S->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
--    S = (*(Handle_Geom_RectangularTrimmedSurface*)&S)->BasisSurface();
-+    S = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
-   }
-   if (!S->IsUPeriodic() && !S->IsVPeriodic())
-     return;
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Inter3d.hxx netgen-5.3.1_new/libsrc/occ/Partition_Inter3d.hxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Inter3d.hxx 2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Inter3d.hxx  2016-09-29 14:44:02.000464619 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter3d_HeaderFile
- #define _Partition_Inter3d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
-@@ -36,6 +38,9 @@
- #ifndef _TopTools_MapOfShape_HeaderFile
- #include <TopTools_MapOfShape.hxx>
- #endif
-+#ifndef _TopTools_ListOfShape_HeaderFile
-+#include <TopTools_ListOfShape.hxx>
-+#endif
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
-@@ -43,10 +48,7 @@
- #include <Standard_Boolean.hxx>
- #endif
- class BRepAlgo_AsDes;
--class TopTools_ListOfShape;
--class TopTools_DataMapOfShapeShape;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Shape;
- class TopoDS_Vertex;
- class TopoDS_Edge;
-@@ -83,13 +85,13 @@
-    void FacesPartition(const TopoDS_Face& F1,const TopoDS_Face& F2) ;
-    Standard_Boolean IsDone(const TopoDS_Face& F1,const TopoDS_Face& F2) const;
-    TopTools_MapOfShape& TouchedFaces() ;
--   Handle_BRepAlgo_AsDes AsDes() const;
-+   Handle(BRepAlgo_AsDes) AsDes() const;
-    TopTools_MapOfShape& NewEdges() ;
-    Standard_Boolean HasSameDomainF(const TopoDS_Shape& F) const;
-    Standard_Boolean IsSameDomainF(const TopoDS_Shape& F1,const TopoDS_Shape& F2) const;
-    const TopTools_ListOfShape& SameDomain(const TopoDS_Face& F) const;
-    TopoDS_Vertex ReplaceSameDomainV(const TopoDS_Vertex& V,const TopoDS_Edge& E) const;
--   Handle_BRepAlgo_AsDes SectionEdgesAD() const;
-+   Handle(BRepAlgo_AsDes) SectionEdgesAD() const;
-    Standard_Boolean IsSectionEdge(const TopoDS_Edge& E) const;
-    Standard_Boolean HasSectionEdge(const TopoDS_Face& F) const;
-    Standard_Boolean IsSplitOn(const TopoDS_Edge& NewE,const TopoDS_Edge& OldE,const TopoDS_Face& F) const;
-@@ -121,11 +123,11 @@
-    // Fields PRIVATE
-    //
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    TopTools_DataMapOfShapeListOfShape myDone;
-    TopTools_MapOfShape myTouched;
-    TopTools_MapOfShape myNewEdges;
--   Handle_BRepAlgo_AsDes mySectionEdgesAD;
-+   Handle(BRepAlgo_AsDes) mySectionEdgesAD;
-    TopTools_DataMapOfShapeListOfShape mySameDomainFM;
-    TopTools_DataMapOfShapeShape mySameDomainVM;
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Loop.hxx netgen-5.3.1_new/libsrc/occ/Partition_Loop.hxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Loop.hxx    2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Loop.hxx     2016-09-29 14:44:02.000464619 +0300
-@@ -38,8 +38,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
--
- #ifndef _Standard_HeaderFile
- #include <Standard.hxx>
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Loop2d.cxx netgen-5.3.1_new/libsrc/occ/Partition_Loop2d.cxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Loop2d.cxx  2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Loop2d.cxx   2016-09-29 14:04:51.504148314 +0300
-@@ -210,7 +210,7 @@
-     Cc->D1(uc, PC, CTg1);
-     if (!isForward) CTg1.Reverse();
--    Standard_Real anglemin = 3 * PI, tolAng = 1.e-8;
-+    Standard_Real anglemin = 3 * M_PI, tolAng = 1.e-8;
-     // select an edge whose first derivative is most left of CTg1
-     // ie an angle between Tg1 and CTg1 is least
-@@ -234,7 +234,7 @@
-       // -PI < angle < PI
-       Standard_Real angle = Tg1.Angle(CTg1);
--      if (PI - Abs(angle) <= tolAng)
-+      if (M_PI - Abs(angle) <= tolAng)
-       {
-         // an angle is too close to PI; assure that an angle sign really
-         // reflects an edge position: +PI - an edge is worst,
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Loop2d.hxx netgen-5.3.1_new/libsrc/occ/Partition_Loop2d.hxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Loop2d.hxx  2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Loop2d.hxx   2016-09-29 14:44:02.000464619 +0300
-@@ -24,7 +24,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
- class BRepAlgo_Image;
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Loop3d.hxx netgen-5.3.1_new/libsrc/occ/Partition_Loop3d.hxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Loop3d.hxx  2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Loop3d.hxx   2016-09-29 14:44:02.000464619 +0300
-@@ -13,6 +13,9 @@
- #ifndef _TopTools_ListOfShape_HeaderFile
- #include <TopTools_ListOfShape.hxx>
- #endif
-+#ifndef _TopTools_MapOfOrientedShape_HeaderFile
-+#include <TopTools_MapOfOrientedShape.hxx>
-+#endif
- #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #endif
-@@ -23,8 +26,6 @@
- #include <Standard_Real.hxx>
- #endif
- class TopoDS_Shape;
--class TopTools_ListOfShape;
--class TopTools_MapOfOrientedShape;
- class TopoDS_Edge;
- class TopoDS_Face;
- class gp_Vec;
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Spliter.cxx netgen-5.3.1_new/libsrc/occ/Partition_Spliter.cxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Spliter.cxx 2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Spliter.cxx  2016-09-29 14:44:02.000464619 +0300
-@@ -48,7 +48,6 @@
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #include <TopTools_IndexedMapOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
- #include <TopTools_SequenceOfShape.hxx>
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/Partition_Spliter.hxx netgen-5.3.1_new/libsrc/occ/Partition_Spliter.hxx
---- netgen-5.3.1_orig/libsrc/occ/Partition_Spliter.hxx 2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Partition_Spliter.hxx  2016-09-29 14:44:02.004464639 +0300
-@@ -28,9 +28,6 @@
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
--#include <Handle_BRepAlgo_AsDes.hxx>
--#endif
- #ifndef _BRepAlgo_Image_HeaderFile
- #include <BRepAlgo_Image.hxx>
- #endif
-@@ -45,7 +42,6 @@
- #endif
- class BRepAlgo_AsDes;
- class TopoDS_Shape;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-@@ -129,7 +125,7 @@
-    TopTools_DataMapOfShapeShape myFaceShapeMap;
-    TopTools_DataMapOfShapeShape myInternalFaces;
-    TopTools_DataMapOfShapeShape myIntNotClFaces;
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    BRepAlgo_Image myImagesFaces;
-    BRepAlgo_Image myImagesEdges;
-    BRepAlgo_Image myImageShape;
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/occconstruction.cpp netgen-5.3.1_new/libsrc/occ/occconstruction.cpp
---- netgen-5.3.1_orig/libsrc/occ/occconstruction.cpp   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/occconstruction.cpp    2016-09-29 14:04:51.500148293 +0300
-@@ -28,7 +28,7 @@
- #include <BRepAlgoAPI_Common.hxx>
- #include <BRepAlgoAPI_Fuse.hxx>
- #include <BRepAlgoAPI_Section.hxx>
--#include <BRepOffsetAPI_Sewing.hxx>
-+//#include <BRepOffsetAPI_Sewing.hxx>
- //#include <BRepAlgo_Sewing.hxx>
- #include <BRepOffsetAPI_MakeOffsetShape.hxx>
- #include <ShapeFix_Shape.hxx>
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_new/libsrc/occ/occgenmesh.cpp
---- netgen-5.3.1_orig/libsrc/occ/occgenmesh.cpp        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/occgenmesh.cpp 2016-09-29 14:04:51.500148293 +0300
-@@ -171,8 +171,8 @@
-          if(h < 1e-4*maxside)\r
-             return;\r
\r
--\r
--         if (h > 30) return;\r
-+         // commented to restrict H on a large sphere for example
-+         //if (h > 30) return;
-       }\r
\r
-       if (h < maxside && depth < 10)\r
-@@ -250,8 +250,8 @@
-       hvalue[0] = 0;\r
-       pnt = c->Value(s0);\r
\r
--      double olddist = 0;\r
--      double dist = 0;\r
-+      //double olddist = 0; -- useless variables
-+      //double dist = 0;
\r
-       int tmpVal = (int)(DIVIDEEDGESECTIONS);\r
\r
-@@ -259,15 +259,19 @@
-       {\r
-          oldpnt = pnt;\r
-          pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));\r
-+         // -- no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
-          hvalue[i] = hvalue[i-1] +\r
-+         //   1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+         //   pnt.Distance(oldpnt);
-+           min( 1.0,
-             1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*\r
--            pnt.Distance(oldpnt);\r
-+                pnt.Distance(oldpnt));
\r
-          //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))\r
-          //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;\r
\r
--         olddist = dist;\r
--         dist = pnt.Distance(oldpnt);\r
-+         //olddist = dist; -- useless variables
-+         //dist = pnt.Distance(oldpnt);
-       }\r
\r
-       //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));\r
-@@ -282,7 +286,10 @@
-       {\r
-          if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)\r
-          {\r
--            params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);\r
-+            // -- for nsubedges comparable to DIVIDEEDGESECTIONS
-+            //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+            double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
-+            params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-             pnt = c->Value(params[i]);\r
-             ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));\r
-             i++;\r
-@@ -326,6 +333,9 @@
-       (*testout) << "nedges = " << nedges << endl;\r
\r
-       double eps = 1e-6 * geom.GetBoundingBox().Diam();\r
-+      const double eps2 = eps * eps; // -- small optimization
-+
-+      int first_vp = mesh.GetNP()+1; // -- to support SALOME sub-meshes
\r
-       for (int i = 1; i <= nvertices; i++)\r
-       {\r
-@@ -335,7 +345,8 @@
-          bool exists = 0;\r
-          if (merge_solids)\r
-             for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)\r
--               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)\r
-+               //if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)              
-+               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2 ) // -- small optimization
-                {\r
-                   exists = 1;\r
-                   break;\r
-@@ -365,6 +376,7 @@
-          {\r
-             TopoDS_Face face = TopoDS::Face(exp1.Current());\r
-             int facenr = geom.fmap.FindIndex(face);\r
-+            if ( facenr < 1 ) continue; // -- to support SALOME sub-meshes
\r
-             if (face2solid[0][facenr-1] == 0)\r
-                face2solid[0][facenr-1] = solidnr;\r
-@@ -384,6 +396,7 @@
-       int facenr = 0;\r
-       int edgenr = 0;\r
\r
-+      edgenr = mesh.GetNSeg(); // to support SALOME sub-meshes
\r
-       (*testout) << "faces = " << geom.fmap.Extent() << endl;\r
-       int curr = 0;\r
-@@ -445,6 +458,7 @@
-                   //(*testout) << "ignoring degenerated edge" << endl;\r
-                   continue;\r
-                }\r
-+               if ( geom.emap.FindIndex(edge) < 1 ) continue; // to support SALOME sub-meshes
\r
-                if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==\r
-                   geom.vmap.FindIndex(TopExp::LastVertex (edge)))\r
-@@ -477,20 +491,104 @@
\r
-                if (!merge_solids)\r
-                {\r
--                  pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));\r
--                  pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));\r
-+                 //pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));
-+                 //pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));
-+                 MeshPoint dfltP ( Point<3> ( 0, 0, 0 ) );
-+                 int *ipp[] = { &pnums[0], &pnums[pnums.Size()-1] };
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v[2];
-+                 v[0] = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 v[1] = TopoDS::Vertex( vIt.Value() );
-+                 if ( v[0].Orientation() == TopAbs_REVERSED )
-+                   std::swap( v[0], v[1] );
-+                 for ( int i = 0; i < 2; ++i)
-+                 {
-+                   int &ip = *ipp[i];
-+                   ip = geom.vmap.FindIndex ( v[i] );
-+                   if ( ip == 0 || ip > nvertices )
-+                   {
-+                     int iv = ip;
-+                     if ( ip == 0 )
-+                       ip = iv = geom.vmap.Add( v[i] );
-+                     gp_Pnt pnt = BRep_Tool::Pnt( v[i] );
-+                     MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
-+                     for (PointIndex pi = 1; pi < first_vp; pi++)
-+                       if ( Dist2 (mesh.Point(pi), Point<3>(mp)) < 1e-100 )
-+                       {
-+                         ip = pi;
-+                         if ( mesh.Point(ip).GetLayer() != dfltP.GetLayer() && mesh.Point(ip).GetLayer() != iv )
-+                           continue;
-+                         if ( mesh.Point(ip).GetLayer() == dfltP.GetLayer())
-+                           mesh.Point(ip) = MeshPoint( mesh.Point(ip), iv );
-+                         break;
-+                       }
-                }\r
-                else\r
-                {\r
--                  Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));\r
--                  Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));\r
-+                     ip += first_vp - 1;
-+                   }
-+                 }
-+               }
-+               else
-+               {
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );
-+                 if ( v1.Orientation() == TopAbs_REVERSED )
-+                   std::swap( v1, v2 );
-+                 const bool isClosedEdge = v1.IsSame( v2 );
-+                 
-+                  Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
-+                  Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
-+                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
-+                  if ( isClosedEdge )
-+                    tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
\r
-                   pnums[0] = -1;\r
-                   pnums.Last() = -1;\r
-                   for (PointIndex pi = 1; pi < first_ep; pi++)\r
-                   {\r
--                     if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;\r
--                     if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;\r
-+                    if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;
-+                    if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;
-+                  }
-+                  if (( isClosedEdge && pnums[0] != pnums.Last() ) ||
-+                      ( !isClosedEdge && pnums[0] == pnums.Last() ))
-+                    pnums[0] = pnums.Last() = -1;
-+                  if ( pnums[0] == -1 || pnums.Last() == -1 )
-+                  {
-+                    // take into account a possible large gap between a vertex and an edge curve
-+                    // end and a large vertex tolerance covering the whole edge
-+                    if ( pnums[0] == -1 )
-+                    {
-+                      double tol = BRep_Tool::Tolerance( v1 );
-+                      for (PointIndex pi = 1; pi < first_ep; pi++)
-+                        if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)
-+                          pnums[0] = pi;
-+
-+                      if ( pnums[0] == -1 )
-+                        pnums[0] = first_ep-1- nvertices + geom.vmap.FindIndex ( v1 );
-+                    }
-+                    if ( isClosedEdge )
-+                    {
-+                      pnums.Last() = pnums[0];
-+                    }
-+                    else
-+                    {
-+                      if ( pnums.Last() == -1 )
-+                      {
-+                        double tol = BRep_Tool::Tolerance( v2 );
-+                        for (PointIndex pi = 1; pi < first_ep; pi++)
-+                          if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)
-+                            pnums.Last() = pi;
-+
-+                        if ( pnums.Last() == -1 )
-+                          pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );
-+                      }
-+
-+                      if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >
-+                           Dist2( lp, mesh[PointIndex(pnums.Last())]))
-+                      std::swap( pnums[0], pnums.Last() );
-+                    }
-                   }\r
-                }\r
\r
-@@ -500,17 +598,20 @@
-                   bool exists = 0;\r
-                   int j;\r
-                   for (j = first_ep; j <= mesh.GetNP(); j++)\r
-+                  {
-+                     if (!merge_solids && mesh.Point(j).GetLayer() != geomedgenr ) continue; // to support SALOME fuse edges
-                      if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)\r
-                      {\r
-                         exists = 1;\r
-                         break;\r
-                      }\r
-+                  }
\r
-                      if (exists)\r
-                         pnums[i] = j;\r
-                      else\r
-                      {\r
--                        mesh.AddPoint (mp[i-1]);\r
-+                        mesh.AddPoint (mp[i-1], geomedgenr); // to support SALOME fuse edges
-                         (*testout) << "add meshpoint " << mp[i-1] << endl;\r
-                         pnums[i] = mesh.GetNP();\r
-                      }\r
-@@ -594,6 +695,8 @@
-       //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si\r
-       //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;\r
-       //      exit(10);\r
-+      for (int j = 1; j <= mesh.GetNP(); j++) // to support SALOME fuse edges: set level to zero
-+        mesh.Point(j) = MeshPoint( (Point<3>&) mesh.Point(j) );
\r
-       mesh.CalcSurfacesOfNode();\r
-       multithread.task = savetask;\r
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/occgeom.cpp netgen-5.3.1_new/libsrc/occ/occgeom.cpp
---- netgen-5.3.1_orig/libsrc/occ/occgeom.cpp   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/occgeom.cpp    2016-09-29 16:22:31.636328123 +0300
-@@ -8,6 +8,8 @@
- #include "ShapeAnalysis_CheckSmallFace.hxx"\r
- #include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"\r
- #include "ShapeAnalysis_Surface.hxx"\r
-+#include <BRepTopAdaptor_FClass2d.hxx> // -- to optimize Project() and FastProject()
-+#include <TopAbs_State.hxx>
- #include "BRepAlgoAPI_Fuse.hxx"\r
- #include "BRepCheck_Analyzer.hxx"\r
- #include "BRepLib.hxx"\r
-@@ -16,9 +18,16 @@
- #include "ShapeFix_FixSmallFace.hxx"\r
- #include "Partition_Spliter.hxx"\r
\r
--\r
- namespace netgen\r
- {\r
-+  // free data used to optimize Project() and FastProject()
-+  OCCGeometry::~OCCGeometry()
-+  {
-+    NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
-+    for (; it.More(); it.Next())
-+      delete it.Value();
-+  }
-+
-    void OCCGeometry :: PrintNrShapes ()\r
-    {\r
-       TopExp_Explorer e;\r
-@@ -112,7 +121,7 @@
-       double surfacecont = 0;\r
\r
-       {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
-          for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-          {\r
-@@ -143,7 +152,7 @@
-          cout << endl << "- repairing faces" << endl;\r
\r
-          Handle(ShapeFix_Face) sff;\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
\r
\r
-@@ -200,7 +209,7 @@
\r
\r
-       {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
-          for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-          {\r
-@@ -217,7 +226,7 @@
-          cout << endl << "- fixing small edges" << endl;\r
\r
-          Handle(ShapeFix_Wire) sfw;\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
\r
\r
-@@ -284,7 +293,7 @@
\r
-          {\r
-             BuildFMap();\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-             rebuild->Apply(shape);\r
\r
-             for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-@@ -312,7 +321,7 @@
\r
\r
-          {\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-             rebuild->Apply(shape);\r
-             for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-             {\r
-@@ -438,7 +447,7 @@
\r
\r
-       {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
-          for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-          {\r
-@@ -483,7 +492,7 @@
-                   TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
-                   TopoDS_Solid newsolid = solid;\r
-                   BRepLib::OrientClosedSolid (newsolid);\r
--                  Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+                  Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-                   //            rebuild->Apply(shape);\r
-                   rebuild->Replace(solid, newsolid, Standard_False);\r
-                   TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);\r
-@@ -906,7 +915,7 @@
-             TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
-             TopoDS_Solid newsolid = solid;\r
-             BRepLib::OrientClosedSolid (newsolid);\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-             rebuild->Replace(solid, newsolid, Standard_False);\r
\r
-             TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);\r
-@@ -951,25 +960,58 @@
-    }\r
\r
\r
-+   // returns a projector and a classifier for the given surface
-+   void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                                  BRepTopAdaptor_FClass2d*& cls) const
-+   {
-+     //MSV: organize caching projector in the map
-+     if (fprjmap.IsBound(surfi))
-+     {
-+       proj = fprjmap.Find(surfi);
-+       cls = fclsmap.Find(surfi);
-+     }
-+     else
-+     {
-+       const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
-+       Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
-+       proj = new ShapeAnalysis_Surface(aSurf);
-+       fprjmap.Bind(surfi, proj);
-+       cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
-+       fclsmap.Bind(surfi, cls);
-+     }
-+   }
\r
--\r
--   void OCCGeometry :: Project (int surfi, Point<3> & p) const\r
-+   // void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+   bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
-    {\r
-       static int cnt = 0;\r
-       if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;\r
\r
-       gp_Pnt pnt(p(0), p(1), p(2));\r
\r
--      double u,v;\r
--      Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
--      Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );\r
--      gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );\r
--      suval.Coord( u, v);\r
--      pnt = thesurf->Value( u, v );\r
-+      // -- Optimization: use cached projector and classifier
-+      // double u,v;
-+      // Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
-+      // gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
-+      // suval.Coord( u, v);
-+      // pnt = thesurf->Value( u, v );  
-+
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
\r
-+      gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        return false;
-+      }
-+      pnt = proj->Value(p2d);
-+      p2d.Coord(u, v);
\r
-       p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());\r
\r
-+      return true;
-    }\r
\r
\r
-@@ -979,54 +1021,69 @@
-    {\r
-       gp_Pnt p(ap(0), ap(1), ap(2));\r
\r
--      Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
--\r
--      gp_Pnt x = surface->Value (u,v);\r
--\r
--      if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;\r
--\r
--      gp_Vec du, dv;\r
-+      // -- Optimization: use cached projector and classifier
-+      // Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // 
-+      // gp_Pnt x = surface->Value (u,v);
-+      // 
-+      // if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
-+      // 
-+      // gp_Vec du, dv;
-+      // 
-+      // surface->D1(u,v,x,du,dv);
-+      // 
-+      // int count = 0;
-+      // 
-+      // gp_Pnt xold;
-+      // gp_Vec n;
-+      // double det, lambda, mu;
-+      // 
-+      // do {
-+      //    count++;
-+      // 
-+      //    n = du^dv;
-+      // 
-+      //    det = Det3 (n.X(), du.X(), dv.X(),
-+      //       n.Y(), du.Y(), dv.Y(),
-+      //       n.Z(), du.Z(), dv.Z());
-+      // 
-+      //    if (det < 1e-15) return false;
-+      // 
-+      //    lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-+      //       n.Y(), p.Y()-x.Y(), dv.Y(),
-+      //       n.Z(), p.Z()-x.Z(), dv.Z())/det;
-+      // 
-+      //    mu     = Det3 (n.X(), du.X(), p.X()-x.X(),
-+      //       n.Y(), du.Y(), p.Y()-x.Y(),
-+      //       n.Z(), du.Z(), p.Z()-x.Z())/det;
-+      // 
-+      //    u += lambda;
-+      //    v += mu;
-+      // 
-+      //    xold = x;
-+      //    surface->D1(u,v,x,du,dv);
-+      // 
-+      // } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
-+      // 
-+      // //    (*testout) << "FastProject count: " << count << endl;
-+      // 
-+      // if (count == 50) return false;
-+      // 
-+      // ap = Point<3> (x.X(), x.Y(), x.Z());
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
\r
--      surface->D1(u,v,x,du,dv);\r
--\r
--      int count = 0;\r
--\r
--      gp_Pnt xold;\r
--      gp_Vec n;\r
--      double det, lambda, mu;\r
--\r
--      do {\r
--         count++;\r
--\r
--         n = du^dv;\r
--\r
--         det = Det3 (n.X(), du.X(), dv.X(),\r
--            n.Y(), du.Y(), dv.Y(),\r
--            n.Z(), du.Z(), dv.Z());\r
--\r
--         if (det < 1e-15) return false;\r
--\r
--         lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),\r
--            n.Y(), p.Y()-x.Y(), dv.Y(),\r
--            n.Z(), p.Z()-x.Z(), dv.Z())/det;\r
--\r
--         mu     = Det3 (n.X(), du.X(), p.X()-x.X(),\r
--            n.Y(), du.Y(), p.Y()-x.Y(),\r
--            n.Z(), du.Z(), p.Z()-x.Z())/det;\r
--\r
--         u += lambda;\r
--         v += mu;\r
--\r
--         xold = x;\r
--         surface->D1(u,v,x,du,dv);\r
--\r
--      } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);\r
--\r
--      //    (*testout) << "FastProject count: " << count << endl;\r
--\r
--      if (count == 50) return false;\r
-+      gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        //cout << "Projection fails" << endl;
-+        return false;
-+      }
\r
--      ap = Point<3> (x.X(), x.Y(), x.Z());\r
-+      p = proj->Value(p2d);
-+      p2d.Coord(u, v);
-+      ap = Point<3> (p.X(), p.Y(), p.Z());
\r
-       return true;\r
-    }\r
-@@ -1038,9 +1095,9 @@
-    {\r
-       cout << "writing stl..."; cout.flush();\r
-       StlAPI_Writer writer;\r
--      writer.RelativeMode() = Standard_False;\r
-+      //writer.RelativeMode() = Standard_False;
\r
--      writer.SetDeflection(0.02);\r
-+      //writer.SetDeflection(0.02);
-       writer.Write(shape,filename);\r
\r
-       cout << "done" << endl;\r
-@@ -1059,10 +1116,10 @@
-       occgeo = new OCCGeometry;\r
\r
-       // Initiate a dummy XCAF Application to handle the IGES XCAF Document\r
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
\r
-       // Create an XCAF Document to contain the IGES file itself\r
--      Handle_TDocStd_Document iges_doc;\r
-+      Handle(TDocStd_Document) iges_doc;
\r
-       // Check if a IGES File is already open under this handle, if so, close it to prevent\r
-       // Segmentation Faults when trying to create a new document\r
-@@ -1089,8 +1146,8 @@
-       reader.Transfer(iges_doc);\r
\r
-       // Read in the shape(s) and the colours present in the IGES File\r
--      Handle_XCAFDoc_ShapeTool iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());\r
--      Handle_XCAFDoc_ColorTool iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());\r
-+      Handle(XCAFDoc_ShapeTool) iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());
-+      Handle(XCAFDoc_ColorTool) iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());
\r
-       TDF_LabelSequence iges_shapes;\r
-       iges_shape_contents->GetShapes(iges_shapes);\r
-@@ -1137,10 +1194,10 @@
-       occgeo = new OCCGeometry;\r
\r
-       // Initiate a dummy XCAF Application to handle the STEP XCAF Document\r
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
\r
-       // Create an XCAF Document to contain the STEP file itself\r
--      Handle_TDocStd_Document step_doc;\r
-+      Handle(TDocStd_Document) step_doc;
\r
-       // Check if a STEP File is already open under this handle, if so, close it to prevent\r
-       // Segmentation Faults when trying to create a new document\r
-@@ -1167,8 +1224,8 @@
-       reader.Transfer(step_doc);\r
\r
-       // Read in the shape(s) and the colours present in the STEP File\r
--      Handle_XCAFDoc_ShapeTool step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());\r
--      Handle_XCAFDoc_ColorTool step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());\r
-+      Handle(XCAFDoc_ShapeTool) step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());
-+      Handle(XCAFDoc_ColorTool) step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());
\r
-       TDF_LabelSequence step_shapes;\r
-       step_shape_contents->GetShapes(step_shapes);\r
-@@ -1221,7 +1278,7 @@
-       // Fixed a bug in the OpenCascade XDE Colour handling when \r
-       // opening BREP Files, since BREP Files have no colour data.\r
-       // Hence, the face_colours Handle needs to be created as a NULL handle.\r
--      occgeo->face_colours = Handle_XCAFDoc_ColorTool();\r
-+      occgeo->face_colours = Handle(XCAFDoc_ColorTool)();
-       occgeo->face_colours.Nullify();\r
-       occgeo->changed = 1;\r
-       occgeo->BuildFMap();\r
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_new/libsrc/occ/occgeom.hpp
---- netgen-5.3.1_orig/libsrc/occ/occgeom.hpp   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/occgeom.hpp    2016-09-29 14:44:01.996464598 +0300
-@@ -15,8 +15,8 @@
- #include "Geom_Curve.hxx"\r
- #include "Geom2d_Curve.hxx"\r
- #include "Geom_Surface.hxx"\r
--#include "GeomAPI_ProjectPointOnSurf.hxx"\r
--#include "GeomAPI_ProjectPointOnCurve.hxx"\r
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "BRepTools.hxx"\r
- #include "TopExp.hxx"\r
- #include "BRepBuilderAPI_MakeVertex.hxx"\r
-@@ -42,8 +42,8 @@
- #include "Geom_Curve.hxx"\r
- #include "Geom2d_Curve.hxx"\r
- #include "Geom_Surface.hxx"\r
--#include "GeomAPI_ProjectPointOnSurf.hxx"\r
--#include "GeomAPI_ProjectPointOnCurve.hxx"\r
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "TopoDS_Wire.hxx"\r
- #include "BRepTools_WireExplorer.hxx"\r
- #include "BRepTools.hxx"\r
-@@ -68,18 +68,26 @@
- #include "IGESToBRep_Reader.hxx"\r
- #include "Interface_Static.hxx"\r
- #include "GeomAPI_ExtremaCurveCurve.hxx"\r
--#include "Standard_ErrorHandler.hxx"\r
-+//#include "Standard_ErrorHandler.hxx"
- #include "Standard_Failure.hxx"\r
- #include "ShapeUpgrade_ShellSewing.hxx"\r
- #include "ShapeFix_Shape.hxx"\r
- #include "ShapeFix_Wireframe.hxx"\r
-+#include <Standard_Version.hxx>
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) <= 0x060702
-+// porting to OCCT6.7.3
- #include "BRepMesh.hxx"\r
-+#endif
- #include "BRepMesh_IncrementalMesh.hxx"\r
- #include "BRepBndLib.hxx"\r
- #include "Bnd_Box.hxx"\r
- #include "ShapeAnalysis.hxx"\r
- #include "ShapeBuild_ReShape.hxx"\r
\r
-+// -- Optimization: to use cached projector and classifier
-+#include <NCollection_DataMap.hxx>
-+class ShapeAnalysis_Surface;
-+class BRepTopAdaptor_FClass2d;
\r
- // Philippose - 29/01/2009\r
- // OpenCascade XDE Support\r
-@@ -192,6 +200,9 @@
-    class OCCGeometry : public NetgenGeometry\r
-    {\r
-       Point<3> center;\r
-+      // -- Optimization: to use cached projector and classifier
-+      mutable NCollection_DataMap<int,Handle(ShapeAnalysis_Surface)> fprjmap;
-+      mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
\r
-    public:\r
-       TopoDS_Shape shape;\r
-@@ -203,7 +214,7 @@
-       // OpenCascade XDE Support\r
-       // XCAF Handle to make the face colours available to the rest of\r
-       // the system\r
--      Handle_XCAFDoc_ColorTool face_colours;\r
-+      Handle(XCAFDoc_ColorTool) face_colours;
\r
-      mutable int changed;\r
-       Array<int> facemeshstatus;\r
-@@ -247,6 +258,8 @@
-      virtual void Save (string filename) const;\r
\r
\r
-+      ~OCCGeometry();      // -- to free cached projector and classifier
-+
-       void BuildFMap();\r
\r
-       Box<3> GetBoundingBox()\r
-@@ -266,9 +279,14 @@
-       Point<3> Center()\r
-       {  return center;}\r
\r
--      void Project (int surfi, Point<3> & p) const;\r
-+      // void Project (int surfi, Point<3> & p) const; -- optimization
-+      bool Project (int surfi, Point<3> & p, double& u, double& v) const;
-       bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;\r
\r
-+      // -- Optimization: to use cached projector and classifier
-+      void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                        BRepTopAdaptor_FClass2d*& cls) const;
-+
-       OCCSurface GetSurface (int surfi)\r
-       {\r
-          cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;\r
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/occmeshsurf.cpp netgen-5.3.1_new/libsrc/occ/occmeshsurf.cpp
---- netgen-5.3.1_orig/libsrc/occ/occmeshsurf.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/occmeshsurf.cpp        2016-09-29 14:08:00.045144560 +0300
-@@ -6,6 +6,7 @@
- #include <meshing.hpp>
- #include <GeomLProp_SLProps.hxx>
- #include <ShapeAnalysis_Surface.hxx>
-+#include <GeomAPI_ProjectPointOnCurve.hxx> // -- moved here from occgeom.hpp
- namespace netgen
-@@ -96,13 +97,16 @@
-       n.Normalize();
-       }
--    else
-+    else if ( lprop.IsNormalDefined() )
-       {
-       n(0)=lprop.Normal().X();
-       n(1)=lprop.Normal().Y();
-       n(2)=lprop.Normal().Z();
-       }
--
-+    else
-+      {
-+        n = 0;
-+      }
-     if(glob_testout)
-       {
-       (*testout) << "u " << geominfo.u << " v " << geominfo.v 
-@@ -434,23 +435,33 @@
-   void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point<3> & p) const
-   {
--    geometry.Project (surfind, p);
-+    // geometry.Project (surfind, p); -- signature of Project() changed for optimization
-+    double u, v;
-+    geometry.Project (surfind, p, u, v);
-   }
-   int MeshOptimize2dOCCSurfaces :: ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
-   {
--    double u = gi.u;
--    double v = gi.v;
-+    //double u = gi.u;
-+    //double v = gi.v;
-     Point<3> hp = p;
--    if (geometry.FastProject (surfind, hp, u, v))
--      {
-+    // -- u and v are computed by FastProject() and Project(), no need to call CalcPointGeomInfo()
-+    // if (geometry.FastProject (surfind, hp, u, v))
-+    //   {
-+    //    p = hp;
-+    //    return 1;
-+    //   }
-+    // ProjectPoint (surfind, p); 
-+    // return CalcPointGeomInfo (surfind, gi, p); 
-+    bool ok;
-+    if (gi.trignum > 0)
-+      ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
-+    else
-+      ok = geometry.Project (surfind, hp, gi.u, gi.v);
-       p = hp;
--      return 1;
--      }
--    ProjectPoint (surfind, p); 
--    return CalcPointGeomInfo (surfind, gi, p); 
-+    return ok;
-   }
-@@ -680,7 +691,8 @@
-       if (!geometry.FastProject (surfi, hnewp, u, v))
-         {
-         //  cout << "Fast projection to surface fails! Using OCC projection" << endl;
--          geometry.Project (surfi, hnewp);
-+          // geometry.Project (surfi, hnewp); -- Project() changed for optimization
-+          geometry.Project (surfi, hnewp, u, v);
-         }
-       newgi.trignum = 1;
-@@ -689,7 +701,7 @@
-       }
-   
-     newp = hnewp;
--  }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: 
-@@ -708,14 +720,18 @@
-     hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-     newp = hnewp;
-     newgi = ap1;
--  };
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi) const
-   {
-     if (surfi > 0)
--      geometry.Project (surfi, p);
--  };
-+      //geometry.Project (surfi, p);
-+    {
-+      double u, v;
-+      geometry.Project (surfi, p, u, v);
-+    }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi) const
-   {
-@@ -723,9 +739,10 @@
-       if (!geometry.FastProject (surfi, p, gi.u, gi.v))
-       {
-         cout << "Fast projection to surface fails! Using OCC projection" << endl;
--        geometry.Project (surfi, p);
-+          double u, v;
-+        geometry.Project (surfi, p, u, v);
-+      }
-       }
--  };
-diff -NaurwB netgen-5.3.1_orig/libsrc/occ/utilities.h netgen-5.3.1_new/libsrc/occ/utilities.h
---- netgen-5.3.1_orig/libsrc/occ/utilities.h   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/utilities.h    2016-09-29 14:04:51.504148314 +0300
-@@ -33,6 +33,7 @@
- #include <string>
- #include <iostream>
-+#include <iomanip>
- #include <cstdlib>
- // #include "SALOME_Log.hxx"
-diff -NaurwB netgen-5.3.1_orig/nglib/nglib.h netgen-5.3.1_new/nglib/nglib.h
---- netgen-5.3.1_orig/nglib/nglib.h    2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_new/nglib/nglib.h     2016-09-29 14:04:51.504148314 +0300
-@@ -24,7 +24,7 @@
- // Philippose - 14.02.2009\r
- // Modifications for creating a DLL in Windows\r
- #ifdef WIN32\r
--   #ifdef NGLIB_EXPORTS || nglib_EXPORTS\r
-+   #if defined NGLIB_EXPORTS || defined nglib_EXPORTS
-       #define DLL_HEADER   __declspec(dllexport)\r
-    #else\r
-       #define DLL_HEADER   __declspec(dllimport)\r
-diff -Naur netgen-5.3.1_orig/libsrc/csg/Makefile.am netgen-5.3.1_new/libsrc/csg/Makefile.am
---- netgen-5.3.1_orig/libsrc/csg/Makefile.am   2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/csg/Makefile.am    2016-11-08 17:48:02.000000000 +0300
-@@ -8,7 +8,7 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include  $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libcsg.la
-+noinst_LTLIBRARIES = libcsg.la
- libcsg_la_SOURCES = algprim.cpp brick.cpp   \
-@@ -17,12 +17,9 @@
- manifold.cpp meshsurf.cpp polyhedra.cpp revolution.cpp singularref.cpp \
- solid.cpp specpoin.cpp spline3d.cpp surface.cpp triapprox.cpp
--libcsg_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
--
--
- if NGGUI
--lib_LTLIBRARIES += libcsgvis.la 
-+lib_LTLIBRARIES = libcsgvis.la 
- libcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
- libcsgvis_la_LIBADD = libcsg.la
-diff -Naur netgen-5.3.1_orig/libsrc/geom2d/Makefile.am netgen-5.3.1_new/libsrc/geom2d/Makefile.am
---- netgen-5.3.1_orig/libsrc/geom2d/Makefile.am        2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/geom2d/Makefile.am 2016-11-08 17:49:13.000000000 +0300
-@@ -4,16 +4,15 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libgeom2d.la 
-+noinst_LTLIBRARIES = libgeom2d.la 
- if NGGUI
--lib_LTLIBRARIES += libgeom2dvis.la 
-+lib_LTLIBRARIES = libgeom2dvis.la 
- endif
- libgeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
--libgeom2d_la_LIBADD =         $(top_builddir)/libsrc/meshing/libmesh.la
- libgeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
- libgeom2dvis_la_LIBADD = libgeom2d.la
-diff -Naur netgen-5.3.1_orig/libsrc/interface/Makefile.am netgen-5.3.1_new/libsrc/interface/Makefile.am
---- netgen-5.3.1_orig/libsrc/interface/Makefile.am     2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/interface/Makefile.am      2016-11-08 17:49:26.000000000 +0300
-@@ -2,14 +2,11 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface  $(MPI_INCLUDES) $(TCL_INCLUDES) -DOPENGL
- METASOURCES = AUTO
--lib_LTLIBRARIES = libinterface.la
-+noinst_LTLIBRARIES = libinterface.la
- libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
-       read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
-       writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
-       writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
-       wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp 
--
--libinterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
--
- # libinterface_la_LDFLAGS = -rdynamic
-diff -Naur netgen-5.3.1_orig/libsrc/meshing/Makefile.am netgen-5.3.1_new/libsrc/meshing/Makefile.am
---- netgen-5.3.1_orig/libsrc/meshing/Makefile.am       2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/meshing/Makefile.am        2016-11-08 17:48:44.000000000 +0300
-@@ -15,7 +15,7 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libmesh.la
-+noinst_LTLIBRARIES = libmesh.la
- libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
-       clusters.cpp curvedelems.cpp delaunay.cpp delaunay2d.cpp            \
-@@ -30,8 +30,5 @@
-       topology.cpp triarls.cpp validate.cpp zrefine.cpp bcfunctions.cpp   \
-       parallelmesh.cpp  paralleltop.cpp  paralleltop.hpp basegeom.cpp 
--libmesh_la_LIBADD =  $(top_builddir)/libsrc/linalg/libla.la \
--      $(top_builddir)/libsrc/gprim/libgprim.la \
--      $(top_builddir)/libsrc/general/libgen.la \
--      -lz
-+libmesh_la_LIBADD = -lz
-diff -Naur netgen-5.3.1_orig/libsrc/occ/Makefile.am netgen-5.3.1_new/libsrc/occ/Makefile.am
---- netgen-5.3.1_orig/libsrc/occ/Makefile.am   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/occ/Makefile.am    2016-11-08 17:30:53.000000000 +0300
-@@ -14,10 +14,10 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libocc.la
-+noinst_LTLIBRARIES = libocc.la
- if NGGUI
--lib_LTLIBRARIES += liboccvis.la 
-+lib_LTLIBRARIES = liboccvis.la 
- endif
-diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/Makefile.am netgen-5.3.1_new/libsrc/stlgeom/Makefile.am
---- netgen-5.3.1_orig/libsrc/stlgeom/Makefile.am       2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_new/libsrc/stlgeom/Makefile.am        2016-11-08 18:28:09.000000000 +0300
-@@ -4,10 +4,10 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libstl.la 
-+noinst_LTLIBRARIES = libstl.la 
- if NGGUI
--lib_LTLIBRARIES += libstlvis.la 
-+lib_LTLIBRARIES = libstlvis.la 
- endif
- libstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
-@@ -16,6 +16,5 @@
- libstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
- libstlvis_la_LIBADD = libstl.la
--libstl_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
- # libstlvis_la_LIBADD = libstl.la $(top_builddir)/libsrc/linalg/libla.la 
-diff -Naur netgen-5.3.1_orig/nglib/Makefile.am netgen-5.3.1_new/nglib/Makefile.am
---- netgen-5.3.1_orig/nglib/Makefile.am        2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_new/nglib/Makefile.am 2016-11-08 19:01:17.000000000 +0300
-@@ -14,6 +14,9 @@
-       $(top_builddir)/libsrc/stlgeom/libstl.la \
-       $(top_builddir)/libsrc/occ/libocc.la \
-       $(top_builddir)/libsrc/meshing/libmesh.la \
-+      $(top_builddir)/libsrc/general/libgen.la \
-+      $(top_builddir)/libsrc/gprim/libgprim.la \
-+      $(top_builddir)/libsrc/linalg/libla.la
-       $(OCCLIBS) $(MPI_LIBS)
- libnglib_la_LDFLAGS = -avoid-version
diff --git a/config/patches/numpy.001_shell.patch b/config/patches/numpy.001_shell.patch
new file mode 100644 (file)
index 0000000..13b28ef
--- /dev/null
@@ -0,0 +1,15 @@
+diff -Naur numpy-1.15.1_SRC_orig/numpy/distutils/exec_command.py numpy-1.15.1_SRC_modif/numpy/distutils/exec_command.py
+--- numpy-1.15.1_SRC_orig/numpy/distutils/exec_command.py      2018-08-19 11:17:10.000000000 +0300
++++ numpy-1.15.1_SRC_modif/numpy/distutils/exec_command.py     2018-09-26 11:44:07.000000000 +0300
+@@ -234,9 +234,9 @@
+         # On POSIX, subprocess always uses /bin/sh, override
+         sh = os.environ.get('SHELL', '/bin/sh')
+         if is_sequence(command):
+-            command = [sh, '-c', ' '.join(command)]
++            command = [sh, '-cf', ' '.join(command)]
+         else:
+-            command = [sh, '-c', command]
++            command = [sh, '-cf', command]
+         use_shell = False
+     elif os.name == 'nt' and is_sequence(command):
diff --git a/config/patches/occ/README b/config/patches/occ/README
deleted file mode 100644 (file)
index 7e72364..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-This directory containes patches needed to build SALOME pre-requisites at OCCT side.
-
-Comments
-========
-
-1. freeimage
-   - freeimage.001_sources.patch : patch to add missing defines
-   - freeimage.002_build_procedure.patch : patch to correct installation procedure
-   - freeimage.003_gcc47_compat.patch : patch to build freeimage with gcc 4.7 version
-   - freeimage.004_gcc66.patch : patch to build freeimage with gcc 6 version
-
-2. graphvis
-   - graphviz.001_build_procedure.patch : correct a mistake in the configure script
-   ! Additional patch is applied to binaries installation of grapvis to correct config6 via sed utility
-
-3. qt
-   - qt.001_proxy_factory.patch : fix a problem with compilation of QNetworkProxy
-   - qt.002_disable_qtgamepad.patch : disable qtgamepad package on CentOS-6.4 ONLY!
-
-4. scotch
-   - scotch.001.create_makefile.patch : patch to create proper Makefile
-
-5. solvespace 
-   - solvespace.001_nogui.patch : patch to build solvespace without GUI
-
-6. gl2ps
-   - gl2ps.001_libs.patch : patch to add missing link libraries
-
-7. qwt
-   ! Patch which contains hardcoded path to qwt install directory is applied via sed utility. It is impossible to create such a patch using diff syntax.
-
-8. hdf5
-   - hdf5.001_threads_threads.patch : fix problem with Threads::Threads library for CMake build procedure
-
-9. omniorb
-   ! Patch is applied to installed omniorb in order to set correct path to python3 executable
-
-10. matplotlib
-   - matplotlib.001_build_procedure.patch : patch for creation matplotlib configuration file for build procedure
-
-11. med
-   - med.001.bug_correct_cmake.patch : patch to correct med-4.0.0r1 CMake build procedure
-
-12. opencv
-   - opencv.001_compile.patch : patch to reduce gcc optimization level
-   - opencv.002_gcc6.patch : patch for gcc 6 version
-
-13. netgen
-   - netgen.001.common.patch : common patch for netgen
-
-14. planegcs
-   - planegcs.001_for_shaper.patch : patch planegcs for Shaper module needs
diff --git a/config/patches/occ/freeimage.001_sources.patch b/config/patches/occ/freeimage.001_sources.patch
deleted file mode 100644 (file)
index 8bf79df..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur --exclude=CVS freeimage-3.16.0_orig/Source/LibWebP/src/utils/bit_writer.c freeimage-3.16.0_patch/Source/LibWebP/src/utils/bit_writer.c
---- freeimage-3.16.0_orig/Source/LibWebP/src/utils/bit_writer.c
-+++ freeimage-3.16.0_patch/Source/LibWebP/src/utils/bit_writer.c
-@@ -226,6 +226,21 @@
- #define htole16(x) (x)\r
- #else     // pretty much all linux and/or glibc\r
- #include <endian.h>\r
-+#if !defined(htole32)
-+# include <byteswap.h>
-+# ifdef __USE_BSD
-+/* Conversion interfaces.  */
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+#define htole16(x) (x)
-+#define htole32(x) (x)
-+#define htole64(x) (x)
-+#else
-+#define htole16(x) __bswap_16 (x)
-+#define htole32(x) __bswap_32 (x)
-+#define htole64(x) __bswap_64 (x)
-+#endif
-+#endif
-+#endif
- #endif\r
\r
- // Returns 1 on success.\r
diff --git a/config/patches/occ/freeimage.002_build_procedure.patch b/config/patches/occ/freeimage.002_build_procedure.patch
deleted file mode 100644 (file)
index bcbaad3..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -NaurwB freeimage-3.16.0__0/Makefile.fip freeimage-3.16.0__1/Makefile.fip
---- freeimage-3.16.0__0/Makefile.fip   2014-03-15 19:35:28.000000000 +0400
-+++ freeimage-3.16.0__1/Makefile.fip   2017-03-15 15:05:20.396869687 +0300
-@@ -4,9 +4,9 @@
- include fipMakefile.srcs\r
\r
- # General configuration variables:\r
--DESTDIR ?= /\r
--INCDIR ?= $(DESTDIR)/usr/include\r
--INSTALLDIR ?= $(DESTDIR)/usr/lib\r
-+DESTDIR ?= /usr\r
-+INCDIR ?= $(DESTDIR)/include\r
-+INSTALLDIR ?= $(DESTDIR)/lib\r
\r
- # Converts cr/lf to just lf\r
- DOS2UNIX = dos2unix\r
-@@ -71,10 +71,12 @@
\r
- install:\r
-       install -d $(INCDIR) $(INSTALLDIR)\r
--      install -m 644 -o root -g root $(HEADER) $(INCDIR)\r
--      install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)\r
--      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)\r
--      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)\r
-+      install -m 644 $(HEADER) $(INCDIR)\r
-+      install -m 644 $(HEADERFIP) $(INCDIR)\r
-+      install -m 644 $(STATICLIB) $(INSTALLDIR)\r
-+      install -m 755 $(SHAREDLIB) $(INSTALLDIR)
-+      ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-+      ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)\r
\r
- clean:\r
-       rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)\r
-diff -NaurwB freeimage-3.16.0__0/Makefile.gnu freeimage-3.16.0__1/Makefile.gnu
---- freeimage-3.16.0__0/Makefile.gnu   2014-03-16 00:02:08.000000000 +0400
-+++ freeimage-3.16.0__1/Makefile.gnu   2017-03-15 15:05:20.384869623 +0300
-@@ -4,9 +4,9 @@
- include Makefile.srcs\r
\r
- # General configuration variables:\r
--DESTDIR ?= /\r
--INCDIR ?= $(DESTDIR)/usr/include\r
--INSTALLDIR ?= $(DESTDIR)/usr/lib\r
-+DESTDIR ?= /usr\r
-+INCDIR ?= $(DESTDIR)/include\r
-+INSTALLDIR ?= $(DESTDIR)/lib\r
\r
- # Converts cr/lf to just lf\r
- DOS2UNIX = dos2unix\r
-@@ -70,9 +70,9 @@
\r
- install:\r
-       install -d $(INCDIR) $(INSTALLDIR)\r
--      install -m 644 -o root -g root $(HEADER) $(INCDIR)\r
--      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)\r
--      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)\r
-+      install -m 644 $(HEADER) $(INCDIR)\r
-+      install -m 644 $(STATICLIB) $(INSTALLDIR)\r
-+      install -m 755 $(SHAREDLIB) $(INSTALLDIR)\r
-       ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)\r
-       ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)   \r
- #     ldconfig\r
diff --git a/config/patches/occ/freeimage.003_gcc47_compat.patch b/config/patches/occ/freeimage.003_gcc47_compat.patch
deleted file mode 100644 (file)
index 516a499..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -NaurwB freeimage-3.16.0__0/Source/OpenEXR/IlmImf/ImfAutoArray.h freeimage-3.16.0__1/Source/OpenEXR/IlmImf/ImfAutoArray.h
---- freeimage-3.16.0__0/Source/OpenEXR/IlmImf/ImfAutoArray.h   2014-03-08 01:31:08.000000000 +0400
-+++ freeimage-3.16.0__1/Source/OpenEXR/IlmImf/ImfAutoArray.h   2017-03-15 14:10:35.682298047 +0300
-@@ -45,6 +45,7 @@
- //-----------------------------------------------------------------------------
- #include "OpenEXRConfig.h"
-+#include <string.h>
- #if !defined(_WIN32) || defined(__MINGW32__)
- // needed for memset
- #include <string.h>
diff --git a/config/patches/occ/freeimage.004_gcc66.patch b/config/patches/occ/freeimage.004_gcc66.patch
deleted file mode 100644 (file)
index 614a853..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-diff -Naur freeimage-3.16.0_SRC_orig/Source/LibRawLite/dcraw/dcraw.c freeimage-3.16.0_SRC_patched/Source/LibRawLite/dcraw/dcraw.c
---- freeimage-3.16.0_SRC_orig/Source/LibRawLite/dcraw/dcraw.c  2014-02-07 23:48:10.000000000 +0400
-+++ freeimage-3.16.0_SRC_patched/Source/LibRawLite/dcraw/dcraw.c       2016-10-14 12:05:37.481253676 +0300
-@@ -4072,22 +4072,22 @@
-     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,\r
-     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,\r
-     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,\r
--    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
--    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,\r
-+    -1,-2,-1,+0,0,(signed char)0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
-+    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char)0x88, -1,-1,+1,-2,0,0x40,\r
-     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,\r
-     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,\r
-     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,\r
-     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,\r
-     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,\r
-     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,\r
--    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,\r
-+    +0,-2,+0,+0,1,(signed char)0x80, +0,-1,+0,+1,1,(signed char)0x88, +0,-1,+1,-2,0,0x40,\r
-     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,\r
-     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,\r
-     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,\r
-     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,\r
-     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,\r
--    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,\r
--    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-+    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char)0x80,\r
-+    +1,-1,+1,+1,0,(signed char)0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-     +1,+0,+2,+1,0,0x10\r
-   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };\r
-   ushort (*brow[5])[4], *pix;\r
-diff -Naur freeimage-3.16.0_SRC_orig/Source/LibRawLite/internal/dcraw_common.cpp freeimage-3.16.0_SRC_patched/Source/LibRawLite/internal/dcraw_common.cpp
---- freeimage-3.16.0_SRC_orig/Source/LibRawLite/internal/dcraw_common.cpp      2014-02-07 23:48:10.000000000 +0400
-+++ freeimage-3.16.0_SRC_patched/Source/LibRawLite/internal/dcraw_common.cpp   2016-10-14 12:06:27.540395171 +0300
-@@ -3782,22 +3782,22 @@
-     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,\r
-     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,\r
-     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,\r
--    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
--    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,\r
-+    -1,-2,-1,+0,0,(signed char)0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
-+    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char)0x88, -1,-1,+1,-2,0,0x40,\r
-     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,\r
-     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,\r
-     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,\r
-     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,\r
-     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,\r
-     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,\r
--    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,\r
-+    +0,-2,+0,+0,1,(signed char)0x80, +0,-1,+0,+1,1,(signed char)0x88, +0,-1,+1,-2,0,0x40,\r
-     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,\r
-     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,\r
-     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,\r
-     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,\r
-     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,\r
--    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,\r
--    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-+    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char)0x80,\r
-+    +1,-1,+1,+1,0,(signed char)0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-     +1,+0,+2,+1,0,0x10\r
-   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };\r
-   ushort (*brow[5])[4], *pix;\r
-@@ -7380,7 +7380,7 @@
-       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },\r
-     { "Phase One P65", 0, 0,\r
-       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },\r
--    { "Red One", 704, 0xffff,         /* DJC */\r
-+    { "Red One", 704, (short int)0xffff,              /* DJC */\r
-       { 21014,-7891,-2613,-3056,12201,856,-2203,5125,8042 } },\r
-     { "Samsung EK-GN120", 0, 0, /* Adobe; Galaxy NX */\r
-         { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },\r
diff --git a/config/patches/occ/gl2ps.001_libs.patch b/config/patches/occ/gl2ps.001_libs.patch
deleted file mode 100644 (file)
index 68168b3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -NaurwB gl2ps-1.3.9__1/CMakeLists.txt gl2ps-1.3.9__0/CMakeLists.txt
---- gl2ps-1.3.9__1/CMakeLists.txt      2017-03-15 14:16:29.548325553 +0300
-+++ gl2ps-1.3.9__0/CMakeLists.txt      2017-03-15 14:17:13.060574241 +0300
-@@ -76,6 +76,9 @@
-   add_definitions(-DHAVE_NO_VSNPRINTF)
- endif(NOT HAVE_VSNPRINTF)
-+find_library(LIBM_LIBRARY NAMES m)
-+list(APPEND EXTERNAL_LIBRARIES ${LIBM_LIBRARY})
-+
- find_package(OpenGL)
- if(OPENGL_FOUND)
-   list(APPEND EXTERNAL_INCLUDES ${OPENGL_INCLUDE_DIR})
diff --git a/config/patches/occ/graphviz.001_build_procedure.patch b/config/patches/occ/graphviz.001_build_procedure.patch
deleted file mode 100644 (file)
index ede5edd..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -NaurwB graphviz-2.38.0__1/configure graphviz-2.38.0__0/configure
---- graphviz-2.38.0__0/configure       2017-03-15 14:22:15.286297951 +0300
-+++ graphviz-2.38.0__1/configure       2017-03-15 14:23:12.054621051 +0300
-@@ -22415,7 +22415,7 @@
-       else
-         PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
-         PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION_SHORT
--        PYTHON_LIBS="-lpython$PYTHON_VERSION_SHORT"
-+        PYTHON_LIBS="-L$PYTHON_PREFIX/lib -lpython$PYTHON_VERSION_SHORT"
-         PYTHON_INSTALL_DIR="`$PYTHON $srcdir/config/config_python.py archsitelib`"
-         save_CPPFLAGS=$CPPFLAGS
-         CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-@@ -23797,7 +23797,7 @@
- fi
- if test "x$use_tcl" = "x"; then
--  TCL_VERSION_FOUND=`echo 'puts [info tclversion]' | $TCLSH`
-+  TCL_VERSION_FOUND=`echo 'puts [info tclversion]' | $TCLSH 2>/dev/null | grep -E '^[0-9.]+$'`
-   # can't assume ksh on all architectures
-   # TCLSH_EXEC_PREFIX=${TCLSH%%/bin/tclsh.*}
diff --git a/config/patches/occ/hdf5.001_threads_threads.patch b/config/patches/occ/hdf5.001_threads_threads.patch
deleted file mode 100644 (file)
index 776800f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur --exclude=CVS --exclude=.git hdf5-1.10.3_orig/src/CMakeLists.txt hdf5-1.10.3_patched/src/CMakeLists.txt
---- hdf5-1.10.3_orig/src/CMakeLists.txt        2018-08-10 00:36:31.000000000 +0300
-+++ hdf5-1.10.3_patched/src/CMakeLists.txt     2018-10-10 16:25:28.196773245 +0300
-@@ -954,9 +954,10 @@
-           $<$<BOOL:${HDF5_ENABLE_DEBUG_APIS}>:H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG>
-   )
-   TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED)
-+  get_property(_threads_libs TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES)
-   target_link_libraries (${HDF5_LIBSH_TARGET}
-       PRIVATE ${LINK_LIBS} ${LINK_COMP_LIBS} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_LIBRARIES}>"
--      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:Threads::Threads>
-+      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:${_threads_libs}>
-   )
-   set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_LIBSH_TARGET}")
-   H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED "LIB")
diff --git a/config/patches/occ/matplotlib.001_build_procedure.patch b/config/patches/occ/matplotlib.001_build_procedure.patch
deleted file mode 100644 (file)
index c0aae3d..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-diff -NaurwB matplotlib-1.4.3__1/setup.cfg matplotlib-1.4.3__0/setup.cfg
---- matplotlib-1.4.3__0/setup.cfg      1970-01-01 03:00:00.000000000 +0300
-+++ matplotlib-1.4.3__1/setup.cfg      2017-03-15 14:42:36.569265032 +0300
-@@ -0,0 +1,86 @@
-+# Rename this file to setup.cfg to modify matplotlib's
-+# build options.
-+
-+[egg_info]
-+tag_svn_revision = 1
-+
-+[directories]
-+# Uncomment to override the default basedir in setupext.py.
-+# This can be a single directory or a comma-delimited list of directories.
-+#basedirlist = /usr
-+
-+[status]
-+# To suppress display of the dependencies and their versions
-+# at the top of the build log, uncomment the following line:
-+#suppress = False
-+
-+[packages]
-+# There are a number of subpackages of matplotlib that are considered
-+# optional.  They are all installed by default, but they may be turned
-+# off here.
-+#
-+tests = False
-+sample_data = False
-+toolkits = True
-+# Tests for the toolkits are only automatically installed
-+# if the tests and toolkits packages are also getting installed.
-+#toolkits_tests = auto
-+
-+[gui_support]
-+# Matplotlib supports multiple GUI toolkits, including Cocoa,
-+# GTK, Fltk, MacOSX, Qt, Qt4, Tk, and WX. Support for many of
-+# these toolkits requires AGG, the Anti-Grain Geometry library,
-+# which is provided by matplotlib and built by default.
-+#
-+# Some backends are written in pure Python, and others require
-+# extension code to be compiled. By default, matplotlib checks for
-+# these GUI toolkits during installation and, if present, compiles the
-+# required extensions to support the toolkit.
-+#
-+# - GTK 2.x support of any kind requires the GTK runtime environment
-+#   headers and PyGTK.
-+# - Tk support requires Tk development headers and Tkinter.
-+# - Mac OSX backend requires the Cocoa headers included with XCode.
-+# - Windowing is MS-Windows specific, and requires the "windows.h"
-+#   header.
-+#
-+# The other GUI toolkits do not require any extension code, and can be
-+# used as long as the libraries are installed on your system --
-+# therefore they are installed unconditionally.
-+#
-+# You can uncomment any the following lines to change this
-+# behavior. Acceptible values are:
-+#
-+#     True: build the extension. Exits with a warning if the
-+#           required dependencies are not available
-+#     False: do not build the extension
-+#     auto: build if the required dependencies are available,
-+#           otherwise skip silently. This is the default
-+#           behavior
-+#
-+#agg = auto
-+#cairo = auto
-+#gtk = auto
-+#gtk3agg = auto
-+#gtk3cairo = auto
-+#gtkagg = auto
-+#macosx = auto
-+#pyside = auto
-+qt5agg = auto
-+#tkagg = auto
-+#windowing = auto
-+#wxagg = auto
-+
-+[rc_options]
-+# User-configurable options
-+#
-+# Default backend, one of: Agg, Cairo, CocoaAgg, GTK, GTKAgg, GTKCairo,
-+# FltkAgg, MacOSX, Pdf, Ps, QtAgg, Qt4Agg, SVG, TkAgg, WX, WXAgg.
-+#
-+# The Agg, Ps, Pdf and SVG backends do not require external
-+# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, or TkAgg
-+# if you have disabled the relevent extension modules.  Agg will be used
-+# by default.
-+#
-+backend = Qt5Agg
-+#
diff --git a/config/patches/occ/med.001.bug_correct_cmake.patch b/config/patches/occ/med.001.bug_correct_cmake.patch
deleted file mode 100644 (file)
index e477630..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -Naur --exclude=CVS --exclude=.git med-4.0.0rc1.orig/CMakeLists.txt med-4.0.0rc1.patched/CMakeLists.txt
---- med-4.0.0rc1.orig/CMakeLists.txt   2018-10-24 18:38:31.000000000 +0300
-+++ med-4.0.0rc1.patched/CMakeLists.txt        2018-10-30 18:57:34.000000000 +0300
-@@ -121,7 +121,8 @@
- ## Installation of the doc
- IF(MEDFILE_INSTALL_DOC)
--  INSTALL(DIRECTORY doc DESTINATION ${CMAKE_INSTALL_PREFIX}/share)
-+  INSTALL(DIRECTORY doc/html.dox/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/med REGEX "Makefile*" EXCLUDE PATTERN "*.am" EXCLUDE)
-+  INSTALL(DIRECTORY doc/gif doc/jpg doc/png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/med FILES_MATCHING PATTERN "*.gif" PATTERN "*.jpg" PATTERN "*.svg" PATTERN "*.png")
- ENDIF()
- #######################
-diff -Naur --exclude=CVS --exclude=.git med-4.0.0rc1.orig/config/cmake_files/medMacros.cmake med-4.0.0rc1.patched/config/cmake_files/medMacros.cmake
---- med-4.0.0rc1.orig/config/cmake_files/medMacros.cmake       2018-10-22 11:36:07.000000000 +0300
-+++ med-4.0.0rc1.patched/config/cmake_files/medMacros.cmake    2018-10-30 19:03:44.673012496 +0300
-@@ -406,7 +406,7 @@
-     ADD_DEFINITIONS(-DH5_USE_16_API)  
-     IF(WIN32 AND MEDFILE_BUILD_SHARED_LIBS)
--      ADD_DEFINITIONS(-D_HDF5USEDLL_)  
-+      ADD_DEFINITIONS(-D_HDF5USEDLL_ -DH5_BUILT_AS_DYNAMIC_LIB=1)   
-     ENDIF()
-     
-     # Take what is exposed by the standard FIND_PACKAGE()
-diff -Naur --exclude=CVS --exclude=.git med-4.0.0rc1.orig/python/CMakeLists.txt med-4.0.0rc1.patched/python/CMakeLists.txt
---- med-4.0.0rc1.orig/python/CMakeLists.txt    2018-10-23 01:43:04.000000000 +0300
-+++ med-4.0.0rc1.patched/python/CMakeLists.txt 2018-10-30 19:03:44.657012959 +0300
-@@ -24,7 +24,7 @@
-   medparameter_module.i
-   medprofile_module.i
-   medsubdomain_module.i
--  medstructelement.i
-+  medstructelement_module.i
- )
- IF(APPLE)
diff --git a/config/patches/occ/netgen.001.common.patch b/config/patches/occ/netgen.001.common.patch
deleted file mode 100644 (file)
index 135c34f..0000000
+++ /dev/null
@@ -1,45375 +0,0 @@
-diff -Naur netgen-5.3.1_SRC_orig/Makefile.am netgen-5.3.1_SRC_modif/Makefile.am
---- netgen-5.3.1_SRC_orig/Makefile.am  2014-08-29 13:55:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/Makefile.am 2018-03-01 15:41:03.989158469 +0300
-@@ -2,7 +2,7 @@
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- # TESTS = ng/netgen -batchmode
-diff -Naur netgen-5.3.1_SRC_orig/Makefile.in netgen-5.3.1_SRC_modif/Makefile.in
---- netgen-5.3.1_SRC_orig/Makefile.in  2014-10-06 15:04:37.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/Makefile.in 2018-03-01 15:41:03.990158362 +0300
-@@ -280,7 +280,7 @@
- top_srcdir = @top_srcdir@
- ACLOCAL_AMFLAGS = -I m4
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- all: config.h
-       $(MAKE) $(AM_MAKEFLAGS) all-recursive
-diff -Naur netgen-5.3.1_SRC_orig/configure.ac netgen-5.3.1_SRC_modif/configure.ac
---- netgen-5.3.1_SRC_orig/configure.ac 2014-10-06 15:00:17.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/configure.ac        2018-03-01 15:41:03.990158362 +0300
-@@ -20,7 +20,7 @@
- CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
- # LDFLAGS="$LDFLAGS $OPENMP_CXXFLAGS"
--AM_PROG_AR
-+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AC_PROG_LIBTOOL
- LT_INIT
-@@ -42,8 +42,8 @@
- if test a$occon = atrue ; then
--      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/opencascade"])
--      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
-+      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
-+      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
- #  -lTKDCAF
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am       2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am      2018-03-01 15:41:03.990158362 +0300
-@@ -8,7 +8,7 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include  $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libcsg.la
-+noinst_LTLIBRARIES = libcsg.la
- libcsg_la_SOURCES = algprim.cpp brick.cpp   \
-@@ -17,12 +17,9 @@
- manifold.cpp meshsurf.cpp polyhedra.cpp revolution.cpp singularref.cpp \
- solid.cpp specpoin.cpp spline3d.cpp surface.cpp triapprox.cpp
--libcsg_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
--
--
- if NGGUI
--lib_LTLIBRARIES += libcsgvis.la 
-+lib_LTLIBRARIES = libcsgvis.la 
- libcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
- libcsgvis_la_LIBADD = libcsg.la
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/general/parthreads.cpp netgen-5.3.1_SRC_modif/libsrc/general/parthreads.cpp
---- netgen-5.3.1_SRC_orig/libsrc/general/parthreads.cpp        2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/general/parthreads.cpp       2018-03-01 15:45:08.691877252 +0300
-@@ -1,40 +1,40 @@
--/**************************************************************************/
--/* File:   parthreads.cpp                                                 */
--/* Author: Joachim Schoeberl                                              */
--/* Date:   01. Jun. 95                                                    */
--/**************************************************************************/
--
--
--#include <mystdlib.h>
--#include <myadt.hpp>
--
--/*
--
--namespace netgen
--{
--  using namespace netgen;
--
--#ifdef WIN32
--
--  NgLock :: NgLock (NgMutex & mut)
--    : sl(&mut.cs)
--  {
--    ;
--  }
--
--  void NgLock :: Lock ()
--  {
--    sl.Lock();
--  }
--  void NgLock :: UnLock ()
--  {
--    sl.Unlock();
--  }
--
--
--#else
--
--#endif
--}
--
--*/
-+/**************************************************************************/
-+/* File:   parthreads.cpp                                                 */
-+/* Author: Joachim Schoeberl                                              */
-+/* Date:   01. Jun. 95                                                    */
-+/**************************************************************************/
-+
-+
-+#include <mystdlib.h>
-+#include <myadt.hpp>
-+
-+/*
-+
-+namespace netgen
-+{
-+  using namespace netgen;
-+
-+#ifdef WIN32
-+
-+  NgLock :: NgLock (NgMutex & mut)
-+    : sl(&mut.cs)
-+  {
-+    ;
-+  }
-+
-+  void NgLock :: Lock ()
-+  {
-+    sl.Lock();
-+  }
-+  void NgLock :: UnLock ()
-+  {
-+    sl.Unlock();
-+  }
-+
-+
-+#else
-+
-+#endif
-+}
-+
-+*/
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am    2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am   2018-03-01 15:41:03.990158362 +0300
-@@ -4,16 +4,15 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libgeom2d.la 
-+noinst_LTLIBRARIES = libgeom2d.la 
- if NGGUI
--lib_LTLIBRARIES += libgeom2dvis.la 
-+lib_LTLIBRARIES = libgeom2dvis.la 
- endif
- libgeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
--libgeom2d_la_LIBADD =         $(top_builddir)/libsrc/meshing/libmesh.la
- libgeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
- libgeom2dvis_la_LIBADD = libgeom2d.la
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am 2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am        2018-03-01 15:41:03.990158362 +0300
-@@ -2,14 +2,11 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface  $(MPI_INCLUDES) $(TCL_INCLUDES) -DOPENGL
- METASOURCES = AUTO
--lib_LTLIBRARIES = libinterface.la
-+noinst_LTLIBRARIES = libinterface.la
- libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
-       read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
-       writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
-       writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
-       wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp 
--
--libinterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
--
- # libinterface_la_LDFLAGS = -rdynamic
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeOpenFOAM15x.cpp netgen-5.3.1_SRC_modif/libsrc/interface/writeOpenFOAM15x.cpp
---- netgen-5.3.1_SRC_orig/libsrc/interface/writeOpenFOAM15x.cpp        2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/writeOpenFOAM15x.cpp       2018-03-01 15:45:08.692877144 +0300
-@@ -1,811 +1,811 @@
--/*! \file writeOpenFOAM15x.cpp
--*  \brief Export Netgen Mesh in the OpenFOAM 1.5+ File format
--*  \author Philippose Rajan
--*  \date 25 October 2009
--*
--*  This function extends the export capabilities of
--*  Netgen to include the OpenFOAM 1.5+ File Format.
--*
--*  The OpenFOAM 1.5+ mesh format consists of a set of 5 files 
--*  which together define the mesh points, faces, cells and 
--*  boundary conditions. 
--*
--*  The files are:
--*  1. points    -> A list of the point co-ordinates
--*  2. faces     -> A list of the faces with format <n>(pnt_ind1 pnt_ind2 .... pnt_ind<n>)
--*  3. owner     -> The owner cell of each face 
--*  4. neighbour -> The neighbour cell of each face
--*  5. boundary  -> The set of boundaries with name, start face, and num. of faces
--*
--*  For a detailed description of the format, refer to the following link:
--*  http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes
--*
--*/
--
--#include <mystdlib.h>
--
--#include <myadt.hpp>
--#include <linalg.hpp>
--#include <csg.hpp>
--#include <meshing.hpp>
--#include <sys/stat.h>
--
--
--namespace netgen
--{
--#include "writeuser.hpp"
--
--   // Global arrays used to maintain the owner, neighbour and face lists 
--   // so that they are accessible across functions
--   static Array<int> owner_facelist;
--   static Array<int> owner_celllist;
--   static Array<int> neighbour_celllist;
--   static Array<int> surfelem_bclist;
--   static Array<INDEX_2> surfelem_lists;
--
--
--
--   static void WriteOpenFOAM15xBanner(ostream * outfile)
--   {
--      static char FOAMversion[4] = "1.5";
--      static char spaces[40];
--
--      memset(spaces, ' ', 40);
--      spaces[38 - strlen(FOAMversion)] = '\0';
--      
--      *outfile << 
--              "/*--------------------------------*- C++ -*----------------------------------*\\\n";
--
--      *outfile <<
--              "| =========                 |                                                 |\n"
--              "| \\\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |\n"
--              "|  \\\\    /   O peration     | Version:  " << FOAMversion << spaces << "|\n"
--              "|   \\\\  /    A nd           | Web:      http://www.OpenFOAM.org               |\n"
--              "|    \\\\/     M anipulation  |                                                 |\n"
--              "\\*---------------------------------------------------------------------------*/\n";
--
--   }
--
--
--
--   static void WriteOpenFOAM15xDividerStart(ostream * outfile)
--   {
--      *outfile  <<
--               "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //\n";
--   }
--
--
--
--   static void WriteOpenFOAM15xDividerEnd(ostream * outfile)
--   {
--      *outfile <<
--              "// ************************************************************************* //\n";
--   }
--
--
--
--   static bool BuildOwnerNeighbourLists (const Mesh & mesh)
--   {
--      // Clear all the arrays
--      owner_facelist.DeleteAll();
--      owner_celllist.DeleteAll();
--      neighbour_celllist.DeleteAll();
--      surfelem_bclist.DeleteAll();
--      surfelem_lists.DeleteAll();
--
--      const MeshTopology& meshtopo = mesh.GetTopology();
--      
--      // Update the mesh topology structures
--      const_cast<MeshTopology&> (meshtopo).SetBuildEdges(true);
--      const_cast<MeshTopology&> (meshtopo).SetBuildFaces(true);
--      const_cast<MeshTopology&> (meshtopo).Update();
--
--      // Extract important mesh metrics
--      int ne = mesh.GetNE();
--      int nse = mesh.GetNSE();
--      int totfaces = meshtopo.GetNFaces();
--
--      // Preset the size of the arrays to speed up future operations
--      // Number of internal faces = total faces - num. of surface faces
--      owner_facelist.SetSize(totfaces - nse);
--      owner_celllist.SetSize(totfaces - nse);
--      neighbour_celllist.SetSize(totfaces - nse);
--      surfelem_bclist.SetSize(nse);
--      surfelem_lists.SetSize(nse);
--
--      // Initialise arrays to zero if required
--      neighbour_celllist = 0;
--
--      // Array used to keep track of Faces which have already been 
--      // processed and added to the Owner list... In addition, also the 
--      // location where the face appears in the Owner list is also stored 
--      // to speed up creation of the Neighbour list
--      Array<int> ownerfaces(totfaces);
--      ownerfaces = 0;
--
--      // Array to hold the set of local faces of each volume element 
--      // while running through the set of volume elements
--      // NOTE: The size is set automatically by the Netgen topology function
--      Array<int> locfaces;
--
--      // Secondary indices used to independently advance the owner 
--      // and boundary condition arrays within the main loop
--      int owner_ind = 1;
--      int bc_ind = 1;
--
--      // Loop through all the volume elements
--      for(int elind = 1; elind <= ne; elind++)
--      {
--         // Extract the current volume element
--      // const Element & el = mesh.VolumeElement(elind);
--
--         // Get the face numbers of the faces of the current volume element
--         // The values returned are given a sign depending on the orientation 
--         // of the faces. This is used while writing the faces file, to 
--         // determine whether or not to invert the face triangle before writing 
--         // it to file
--         meshtopo.GetElementFaces(elind,locfaces,true);
--
--         // Loop through the faces
--         for(int i = 1; i <= locfaces.Size(); i++)
--         {
--            // The absolute value of a face number (because the faces 
--            // returned by the GetElementFaces function prepend it 
--            // with a sign depending on the face orientation)
--            int absfacenr = abs(locfaces.Elem(i));
--
--            // If the face already exists in the owner list, add 
--            // the current cell into the neighbour list, in the 
--            // same location where the face appears in the owner list
--            int owner_face = ownerfaces.Elem(absfacenr);
--            if(owner_face)
--            {
--               neighbour_celllist.Elem(owner_face) = elind;
--
--               // From this point on, the code within this "if" block 
--               // basically sorts the order of the the Neighbour cells (along 
--               // with the faces list) in ascending order.
--               // The approach used is..... to traverse the owner and neighbour cell lists
--               // up and down, and sort the neighbour cells of a given owner cell 
--               // as the list evolves.
--               // NOTE: A value of "zero" in the neighbour list implies that 
--               // the neighbour has not been found yet, so the "zero" locations need 
--               // to be skipped while sorting in ascending order
--               int curr_owner = owner_celllist.Elem(owner_face);
--
--               int peek_loc = owner_face - 1;
--               int new_loc = owner_face;
--
--               // Traversing upwards in the list
--               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc >= 1))
--               {
--                  if((neighbour_celllist.Elem(peek_loc) != 0) 
--                     && (neighbour_celllist.Elem(new_loc) < neighbour_celllist.Elem(peek_loc)))
--                  {
--                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
--                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
--                     new_loc = peek_loc;
--                  }
--
--                  peek_loc--;
--               }
--
--               peek_loc = owner_face + 1;
--
--               // Traversing downwards in the list
--               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc <= owner_ind))
--               {
--                  if((neighbour_celllist.Elem(peek_loc) != 0) 
--                     && (neighbour_celllist.Elem(new_loc) > neighbour_celllist.Elem(peek_loc)))
--                  {
--                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
--                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
--                     new_loc = peek_loc;
--                  }
--
--                  peek_loc++;
--               }
--
--               continue;
--            }
--
--            // Check if the face is a surface element (boundary face)
--            // if not, add the current volume element and the corresponding face into 
--            // the owner list
--            int surfelem = meshtopo.GetFace2SurfaceElement(absfacenr);
--            if(!surfelem)
--            {
--               // If it is a new face which has not been listed before, 
--               // add the current cell into the owner list, and save 
--               // the index location to be used later by the neighbour list
--               owner_celllist.Elem(owner_ind) = elind;
--               owner_facelist.Elem(owner_ind) = locfaces.Elem(i);
--               // Update the array to indicate that the face is already processed
--               ownerfaces.Elem(absfacenr) = owner_ind;
--
--               owner_ind++;
--            }
--            // If the face is a boundary face, extract the boundary condition number of the 
--            // face, and append that along with the face number and the current cell 
--            // into the various surface elements lists
--            else
--            {
--               Element2d sel = mesh.SurfaceElement(surfelem);
--               surfelem_bclist.Elem(bc_ind) = mesh.GetFaceDescriptor(sel.GetIndex()).BCProperty();
--               surfelem_lists.Elem(bc_ind) = INDEX_2(locfaces.Elem(i),elind);
--
--               bc_ind++;
--            }
--         }
--      }
--
--      // This correction is required in cases where the mesh has been "uniform refined".... for 
--      // some reason, the number of faces reported by Netgen is higher than the actual number 
--      // of faces in the mesh
--      owner_facelist.SetSize(owner_ind-1);
--      owner_celllist.SetSize(owner_ind-1);
--      neighbour_celllist.SetSize(owner_ind-1);
--
--
--      // Sort the list of surface elements in ascending order of boundary condition number
--      // also sort the cell list in the same manner
--      QuickSort(surfelem_bclist,surfelem_lists);
--
--/*    
--      // Debugging output to a file 
--      ofstream dbg("OpenFOAMDebug.log");
--
--      dbg << " ------- Boundary List -------- \n";
--
--      for(int i = 1; i <= surfelem_bclist.Size(); i++)
--      {
--         dbg << "bc = " << surfelem_bclist.Elem(i) 
--              << " : face = " << surfelem_lists.Elem(i).I1()
--              << " : cell = " << surfelem_lists.Elem(i).I2() << "\n";
--      }
--
--      dbg << "\n ------- Owner / Face / Neighbour List ------- \n";
--
--      for(int i = 1; i <= owner_celllist.Size(); i++)
--      {
--         dbg << "Ind:" << i << " :: (" 
--              << owner_celllist.Elem(i) << " "
--              << owner_facelist.Elem(i) << "  "
--              << neighbour_celllist.Elem(i) << ")\n";
--      }
--
--      dbg.close();
--*/
--      return(false);
--   }
--
--
--
--   static void WriteNeighbourFile (ostream * outfile)
--   {
--      // Write the OpenFOAM standard banner and dividers, etc...
--      WriteOpenFOAM15xBanner(outfile);
--      *outfile << "FoamFile \n"
--              << "{ \n"
--              << "    version     2.0; \n"
--              << "    format      ascii; \n"
--              << "    class       labelList; \n"
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
--              << "    location    \"constant\\polyMesh\"; \n"
--              << "    object      neighbour; \n"
--              << "} \n";
--      WriteOpenFOAM15xDividerStart(outfile);
--
--      *outfile << "\n\n";
--
--      int nneighbours = neighbour_celllist.Size();
--
--      *outfile << nneighbours << "\n";
--
--      *outfile << "(\n";
--
--      // Write the neighbour cells to file
--      for(int i = 1; i <= neighbour_celllist.Size(); i++)
--      {
--         *outfile << neighbour_celllist.Elem(i) - 1 << "\n";
--      }
--      *outfile << ")\n\n";
--      WriteOpenFOAM15xDividerEnd(outfile);
--   }
--
--
--
--   static void WriteOwnerFile (ostream * outfile)
--   {
--      // Write the OpenFOAM standard banner and dividers, etc...
--      WriteOpenFOAM15xBanner(outfile);
--      *outfile << "FoamFile \n"
--              << "{ \n"
--              << "    version     2.0; \n"
--              << "    format      ascii; \n"
--              << "    class       labelList; \n"
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
--              << "    location    \"constant\\polyMesh\"; \n"
--              << "    object      owner; \n"
--              << "} \n";
--      WriteOpenFOAM15xDividerStart(outfile);
--
--      *outfile << "\n\n";
--
--      int nowners = owner_celllist.Size() + surfelem_lists.Size();
--
--      *outfile << nowners << "\n";
--
--      *outfile << "(\n";
--
--      // Write the owners of the internal cells to file
--      for(int i = 1; i <= owner_celllist.Size(); i++)
--      {
--         *outfile << owner_celllist.Elem(i) - 1 << "\n";
--      }
--
--      // Write the owners of the boundary cells to file
--      // (Written in order of ascending boundary condition numbers)
--      for(int i = 1; i <= surfelem_lists.Size(); i++)
--      {
--         *outfile << surfelem_lists.Elem(i).I2() - 1 << "\n";
--      }
--      *outfile << ")\n\n";
--      WriteOpenFOAM15xDividerEnd(outfile);
--   }
--
--
--
--   static void WriteFacesFile (ostream * outfile, const Mesh & mesh)
--   {
--      const MeshTopology& meshtopo = mesh.GetTopology();
--
--      // Write the OpenFOAM standard banner and dividers, etc...
--      WriteOpenFOAM15xBanner(outfile);
--      *outfile << "FoamFile \n"
--              << "{ \n"
--              << "    version     2.0; \n"
--              << "    format      ascii; \n"
--              << "    class       faceList; \n"
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
--              << "    location    \"constant\\polyMesh\"; \n"
--              << "    object      faces; \n"
--              << "} \n";
--      WriteOpenFOAM15xDividerStart(outfile);
--
--      *outfile << "\n\n";
--
--      int nfaces = owner_facelist.Size() + surfelem_lists.Size();
--
--      *outfile << nfaces << "\n";
--
--      *outfile << "(\n";
--
--      // Array to hold the indices of the points of each face to 
--      // flip if required 
--      Array<int> facepnts;
--
--      // Write the faces in the order specified in the owners lists of the 
--      // internal cells and the boundary cells
--      for(int i = 1; i <= owner_facelist.Size(); i++)
--      {
--         int face_w_orientation = owner_facelist.Elem(i);
--         int facenr = abs(face_w_orientation);
--
--         meshtopo.GetFaceVertices(facenr,facepnts);
--
--         // Get the orientation of the face, and invert it if required
--         // Since the faces already have the orientation "embedded" into 
--         // them by means of the prepended sign, only this needs to be 
--         // checked for...
--         if(face_w_orientation > 0)
--         {
--            int tmppnts = 0;
--
--            if(facepnts.Size() == 4)
--            {
--               tmppnts = facepnts.Elem(1);
--               facepnts.Elem(1) = facepnts.Elem(2);
--               facepnts.Elem(2) = tmppnts;
--               
--               tmppnts = facepnts.Elem(3);
--               facepnts.Elem(3) = facepnts.Elem(4);
--               facepnts.Elem(4) = tmppnts;
--            }
--            else if(facepnts.Size() == 3)
--            {
--               tmppnts = facepnts.Elem(1);
--               facepnts.Elem(1) = facepnts.Elem(3);
--               facepnts.Elem(3) = tmppnts;
--            }
--         }
--
--         *outfile << facepnts.Size();
--         *outfile << "(";
--         for(int j = 1; j <= facepnts.Size(); j++)
--         {
--            *outfile << facepnts.Elem(j)-1;
--            if(j != facepnts.Size()) *outfile << " ";
--         }
--         *outfile << ")\n";
--      }
--
--      // Now append the faces of the surface elements (written in 
--      // ascending order of boundary condition number) also into 
--      // the faces file
--      for(int i = 1; i <= surfelem_lists.Size(); i++)
--      {
--         int face_w_orientation = surfelem_lists.Elem(i).I1();
--         int facenr = abs(face_w_orientation);
--
--         meshtopo.GetFaceVertices(facenr,facepnts);
--
--         // Get the orientation of the face, and invert it if required
--         if(face_w_orientation > 0)
--         {
--            int tmppnts = 0;
--
--            if(facepnts.Size() == 4)
--            {
--               tmppnts = facepnts.Elem(1);
--               facepnts.Elem(1) = facepnts.Elem(2);
--               facepnts.Elem(2) = tmppnts;
--               
--               tmppnts = facepnts.Elem(3);
--               facepnts.Elem(3) = facepnts.Elem(4);
--               facepnts.Elem(4) = tmppnts;
--            }
--            else if(facepnts.Size() == 3)
--            {
--               tmppnts = facepnts.Elem(1);
--               facepnts.Elem(1) = facepnts.Elem(3);
--               facepnts.Elem(3) = tmppnts;
--            }
--         }
--
--         *outfile << facepnts.Size();
--         *outfile << "(";
--         for(int j = 1; j <= facepnts.Size(); j++)
--         {
--            *outfile << facepnts.Elem(j)-1;
--            if(j != facepnts.Size()) *outfile << " ";
--         }
--         *outfile << ")\n";
--      }
--
--      *outfile << ")\n\n";
--      WriteOpenFOAM15xDividerEnd(outfile);
--   }
--
--
-- 
--   static void WritePointsFile (ostream * outfile, const Mesh & mesh)
--   {
--      int np = mesh.GetNP();
--
--      // Write the OpenFOAM standard banner and dividers, etc...
--      WriteOpenFOAM15xBanner(outfile);
--      *outfile << "FoamFile \n"
--              << "{ \n"
--              << "    version     2.0; \n"
--              << "    format      ascii; \n"
--              << "    class       vectorField; \n"
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
--              << "    location    \"constant\\polyMesh\"; \n"
--              << "    object      points; \n"
--              << "} \n";
--      WriteOpenFOAM15xDividerStart(outfile);
--
--      *outfile << "\n\n";
--
--      // Number of points in the following list
--      *outfile << np << "\n";
--
--      outfile->precision(6);
--      outfile->setf (ios::fixed, ios::floatfield);
--      outfile->setf (ios::showpoint);
--
--      // Coordinate list starts here
--      *outfile << "(\n";
--
--      for(int i = 1; i <= np; i++)
--      {
--         const Point3d & p = mesh.Point(i);
--
--         // Write coordinates to file
--         *outfile << "(";
--         *outfile << p.X() << " ";
--         *outfile << p.Y() << " ";
--         *outfile << p.Z();
--         *outfile << ")\n";
--      }
--      *outfile << ")\n\n";
--      WriteOpenFOAM15xDividerEnd(outfile);
--   }
--
--
--
--   static void WriteBoundaryFile (ostream * outfile)
--   {
--      // Write the OpenFOAM standard banner and dividers, etc...
--      WriteOpenFOAM15xBanner(outfile);
--      *outfile << "FoamFile \n"
--              << "{ \n"
--              << "    version     2.0; \n"
--              << "    format      ascii; \n"
--              << "    class       polyBoundaryMesh; \n"
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
--              << "    location    \"constant\\polyMesh\"; \n"
--              << "    object      boundary; \n"
--              << "} \n";
--      WriteOpenFOAM15xDividerStart(outfile);
--
--      *outfile << "\n";
--
--
--      Array<INDEX_3> bcarray;
--      int ind = 1;
--
--      // Since the boundary conditions are already sorted in ascending 
--      // order, the last element will give the maximum number of possible 
--      // boundary condition entries
--      int bcmax = surfelem_bclist.Elem(surfelem_bclist.Size());
--
--      bcarray.SetSize(bcmax+1);
--
--      bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(1),1,0);
--            
--      for(int i = 2; i <= surfelem_bclist.Size(); i++)
--      {
--         if(surfelem_bclist.Elem(i) == bcarray.Elem(ind).I1())
--         {
--            bcarray.Elem(ind).I2() = bcarray.Elem(ind).I2()+1;
--         }
--         else
--         {
--            ind++;
--            bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(i),1,i-1);
--         }
--      }
--
--      bcarray.SetSize(ind);
--
--      *outfile << bcarray.Size() << "\n";
--      *outfile << "(\n";
--
--      int startface = 0;
--
--      for(int i = 1; i <= bcarray.Size(); i++)
--      {
--         startface = owner_celllist.Size() + bcarray.Elem(i).I3();
--
--         *outfile << "    patch" << bcarray.Elem(i).I1() << "\n"
--                 << "    {\n"
--                 << "        type            patch;\n"
--                 << "        physicalType    patch;\n"
--                 << "        nFaces          " << bcarray.Elem(i).I2() << ";\n"
--                 << "        startFace       " << startface << ";\n"
--                 << "    }\n";
--      }
--
--      *outfile << ")\n\n";
--      WriteOpenFOAM15xDividerEnd(outfile);
--   }
--
--
--
--   void WriteOpenFOAM15xFormat (const Mesh & mesh, const string & casename, const bool compressed)
--   {
--      bool error = false;
--      char casefiles[256];
--
--      // Make sure that the mesh data has been updated
--      const_cast<Mesh&> (mesh).Compress();
--      const_cast<Mesh&> (mesh).CalcSurfacesOfNode();
--      const_cast<Mesh&> (mesh).RebuildSurfaceElementLists();
--      const_cast<Mesh&> (mesh).BuildElementSearchTree();
--
--
--      int np = mesh.GetNP();
--      int nse = mesh.GetNSE();
--      int ne = mesh.GetNE();
--
--      cout << "Write OpenFOAM 1.5+ Mesh Files....\n";
--
--      // Abort if there are no points, surface elements or volume elements
--      if((np <= 0) || (ne <= 0) || (nse <= 0))
--      {
--         cout << "Export Error: Invalid mesh.... Aborting!\n";
--         return;
--      }
--
--      // OpenFOAM only supports linear meshes!
--      if(mparam.secondorder || mesh.GetCurvedElements().IsHighOrder())
--      {
--         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
--         return;
--      }
--
--      if(( (mesh.SurfaceElement(nse/2).GetType() != TRIG) 
--         && (mesh.SurfaceElement(nse/2).GetType() != QUAD) )
--         || (mesh.VolumeElement(ne/2).GetType() == TET10)
--         || (mesh.VolumeElement(ne/2).GetType() == PRISM12))
--      {
--         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
--         return;
--      }
--
--
--      cout << "Writing OpenFOAM 1.5+ Mesh files to case: " << casename << "\n";
--
--      // Create the case directory if it does not already exist
--      // NOTE: This needs to be improved for the Linux variant....!!!
--   #ifdef WIN32
--      char casedir[256];
--      sprintf(casedir, "mkdir %s\\constant\\polyMesh", casename.c_str());
--      system(casedir);
--   #else
--      char casedir[256];
--      mkdir(casename.c_str(), S_IRWXU|S_IRWXG);
--      sprintf(casedir, "%s/constant", casename.c_str());
--      mkdir(casedir, S_IRWXU|S_IRWXG);
--      sprintf(casedir, "%s/constant/polyMesh", casename.c_str());
--      mkdir(casedir, S_IRWXU|S_IRWXG);
--   #endif
--
--      // Open handles to the five required mesh files
--      // points
--      // faces
--      // owner
--      // neighbour
--      // boundary
--        ostream *outfile_pnts;
--        ostream *outfile_faces;
--        ostream *outfile_own;
--        ostream *outfile_nei;
--        ostream *outfile_bnd;
--
--        if(compressed)
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/points.gz", casename.c_str());
--                outfile_pnts = new ogzstream(casefiles);
--        }
--        else
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/points", casename.c_str());
--                outfile_pnts = new ofstream(casefiles);
--        }
--
--        if(compressed)
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/faces.gz", casename.c_str());
--                outfile_faces = new ogzstream(casefiles);
--        }
--        else
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/faces", casename.c_str());
--                outfile_faces = new ofstream(casefiles);
--        }
--
--        if(compressed)
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/owner.gz", casename.c_str()); 
--                outfile_own = new ogzstream(casefiles);
--        }
--        else
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/owner", casename.c_str()); 
--                outfile_own = new ofstream(casefiles);
--        }
--
--        if(compressed)
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/neighbour.gz", casename.c_str());
--                outfile_nei = new ogzstream(casefiles);
--        }
--        else
--        {
--                sprintf(casefiles, "%s/constant/polyMesh/neighbour", casename.c_str());
--                outfile_nei = new ofstream(casefiles);
--        }
--
--        // Note... the boundary file is not compressed
--      sprintf(casefiles, "%s/constant/polyMesh/boundary", casename.c_str()); 
--      outfile_bnd = new ofstream(casefiles);
--
--      ResetTime();
--
--      // Build the owner, neighbour, faces and boundary lists 
--      // from the Netgen mesh
--      cout << "\nBuilding Owner, Neighbour and Face Lists: ";
--
--      error = BuildOwnerNeighbourLists(mesh);
--
--      cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
--
--
--      // Write the "owner" file
--      if(outfile_own->good() && !error)
--      {
--         cout << "Writing the owner file: ";
--         WriteOwnerFile(outfile_own);
--         delete outfile_own;
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
--      }
--      else
--      {
--         cout << "Export Error: Error creating file: owner.... Aborting\n";
--         error = true;
--      }
--
--
--      // Write the "neighbour" file
--      if(outfile_nei->good() && !error)
--      {
--         cout << "Writing the neighbour file: ";
--         WriteNeighbourFile(outfile_nei);
--         delete outfile_nei;
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
--      }
--      else
--      {
--         cout << "Export Error: Error creating file: neighbour.... Aborting\n";
--         error = true;
--      }
--
--
--      // Write the "faces" file
--      if(outfile_faces->good() && !error)
--      {
--         cout << "Writing the faces file: ";
--         WriteFacesFile(outfile_faces, mesh);
--         delete outfile_faces;
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
--      }
--      else
--      {
--         cout << "Export Error: Error creating file: faces.... Aborting\n";
--         error = true;
--      }
--
--
--      // Write the "points" file
--      if(outfile_pnts->good() && !error)
--      {
--         cout << "Writing the points file: ";
--         WritePointsFile(outfile_pnts,mesh);
--         delete outfile_pnts;
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
--      }
--      else
--      {
--         cout << "Export Error: Error creating file: points.... Aborting\n";
--         error = true;
--      }
--
--
--      // Write the "boundary" file
--      if(outfile_bnd->good() && !error)
--      {
--         cout << "Writing the boundary file: ";
--         WriteBoundaryFile(outfile_bnd);
--         delete outfile_bnd;
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
--      }
--      else
--      {
--         cout << "Export Error: Error creating file: boundary.... Aborting\n";
--         error = true;
--      }
--
--      if(!error)
--      {
--         cout << "OpenFOAM 1.5+ Export successfully completed (Time elapsed = " << GetTime() << " sec) !\n";
--      }
--      else
--      {
--         cout << "Error in OpenFOAM 1.5+ Export.... Aborted!\n";
--      }
--   }
--}
--
-+/*! \file writeOpenFOAM15x.cpp
-+*  \brief Export Netgen Mesh in the OpenFOAM 1.5+ File format
-+*  \author Philippose Rajan
-+*  \date 25 October 2009
-+*
-+*  This function extends the export capabilities of
-+*  Netgen to include the OpenFOAM 1.5+ File Format.
-+*
-+*  The OpenFOAM 1.5+ mesh format consists of a set of 5 files
-+*  which together define the mesh points, faces, cells and
-+*  boundary conditions.
-+*
-+*  The files are:
-+*  1. points    -> A list of the point co-ordinates
-+*  2. faces     -> A list of the faces with format <n>(pnt_ind1 pnt_ind2 .... pnt_ind<n>)
-+*  3. owner     -> The owner cell of each face
-+*  4. neighbour -> The neighbour cell of each face
-+*  5. boundary  -> The set of boundaries with name, start face, and num. of faces
-+*
-+*  For a detailed description of the format, refer to the following link:
-+*  http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes
-+*
-+*/
-+
-+#include <mystdlib.h>
-+
-+#include <myadt.hpp>
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <meshing.hpp>
-+#include <sys/stat.h>
-+
-+
-+namespace netgen
-+{
-+#include "writeuser.hpp"
-+
-+   // Global arrays used to maintain the owner, neighbour and face lists
-+   // so that they are accessible across functions
-+   static Array<int> owner_facelist;
-+   static Array<int> owner_celllist;
-+   static Array<int> neighbour_celllist;
-+   static Array<int> surfelem_bclist;
-+   static Array<INDEX_2> surfelem_lists;
-+
-+
-+
-+   static void WriteOpenFOAM15xBanner(ostream * outfile)
-+   {
-+      static char FOAMversion[4] = "1.5";
-+      static char spaces[40];
-+
-+      memset(spaces, ' ', 40);
-+      spaces[38 - strlen(FOAMversion)] = '\0';
-+
-+      *outfile <<
-+              "/*--------------------------------*- C++ -*----------------------------------*\\\n";
-+
-+      *outfile <<
-+              "| =========                 |                                                 |\n"
-+              "| \\\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |\n"
-+              "|  \\\\    /   O peration     | Version:  " << FOAMversion << spaces << "|\n"
-+              "|   \\\\  /    A nd           | Web:      http://www.OpenFOAM.org               |\n"
-+              "|    \\\\/     M anipulation  |                                                 |\n"
-+              "\\*---------------------------------------------------------------------------*/\n";
-+
-+   }
-+
-+
-+
-+   static void WriteOpenFOAM15xDividerStart(ostream * outfile)
-+   {
-+      *outfile  <<
-+               "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //\n";
-+   }
-+
-+
-+
-+   static void WriteOpenFOAM15xDividerEnd(ostream * outfile)
-+   {
-+      *outfile <<
-+              "// ************************************************************************* //\n";
-+   }
-+
-+
-+
-+   static bool BuildOwnerNeighbourLists (const Mesh & mesh)
-+   {
-+      // Clear all the arrays
-+      owner_facelist.DeleteAll();
-+      owner_celllist.DeleteAll();
-+      neighbour_celllist.DeleteAll();
-+      surfelem_bclist.DeleteAll();
-+      surfelem_lists.DeleteAll();
-+
-+      const MeshTopology& meshtopo = mesh.GetTopology();
-+
-+      // Update the mesh topology structures
-+      const_cast<MeshTopology&> (meshtopo).SetBuildEdges(true);
-+      const_cast<MeshTopology&> (meshtopo).SetBuildFaces(true);
-+      const_cast<MeshTopology&> (meshtopo).Update();
-+
-+      // Extract important mesh metrics
-+      int ne = mesh.GetNE();
-+      int nse = mesh.GetNSE();
-+      int totfaces = meshtopo.GetNFaces();
-+
-+      // Preset the size of the arrays to speed up future operations
-+      // Number of internal faces = total faces - num. of surface faces
-+      owner_facelist.SetSize(totfaces - nse);
-+      owner_celllist.SetSize(totfaces - nse);
-+      neighbour_celllist.SetSize(totfaces - nse);
-+      surfelem_bclist.SetSize(nse);
-+      surfelem_lists.SetSize(nse);
-+
-+      // Initialise arrays to zero if required
-+      neighbour_celllist = 0;
-+
-+      // Array used to keep track of Faces which have already been
-+      // processed and added to the Owner list... In addition, also the
-+      // location where the face appears in the Owner list is also stored
-+      // to speed up creation of the Neighbour list
-+      Array<int> ownerfaces(totfaces);
-+      ownerfaces = 0;
-+
-+      // Array to hold the set of local faces of each volume element
-+      // while running through the set of volume elements
-+      // NOTE: The size is set automatically by the Netgen topology function
-+      Array<int> locfaces;
-+
-+      // Secondary indices used to independently advance the owner
-+      // and boundary condition arrays within the main loop
-+      int owner_ind = 1;
-+      int bc_ind = 1;
-+
-+      // Loop through all the volume elements
-+      for(int elind = 1; elind <= ne; elind++)
-+      {
-+         // Extract the current volume element
-+      // const Element & el = mesh.VolumeElement(elind);
-+
-+         // Get the face numbers of the faces of the current volume element
-+         // The values returned are given a sign depending on the orientation
-+         // of the faces. This is used while writing the faces file, to
-+         // determine whether or not to invert the face triangle before writing
-+         // it to file
-+         meshtopo.GetElementFaces(elind,locfaces,true);
-+
-+         // Loop through the faces
-+         for(int i = 1; i <= locfaces.Size(); i++)
-+         {
-+            // The absolute value of a face number (because the faces
-+            // returned by the GetElementFaces function prepend it
-+            // with a sign depending on the face orientation)
-+            int absfacenr = abs(locfaces.Elem(i));
-+
-+            // If the face already exists in the owner list, add
-+            // the current cell into the neighbour list, in the
-+            // same location where the face appears in the owner list
-+            int owner_face = ownerfaces.Elem(absfacenr);
-+            if(owner_face)
-+            {
-+               neighbour_celllist.Elem(owner_face) = elind;
-+
-+               // From this point on, the code within this "if" block
-+               // basically sorts the order of the the Neighbour cells (along
-+               // with the faces list) in ascending order.
-+               // The approach used is..... to traverse the owner and neighbour cell lists
-+               // up and down, and sort the neighbour cells of a given owner cell
-+               // as the list evolves.
-+               // NOTE: A value of "zero" in the neighbour list implies that
-+               // the neighbour has not been found yet, so the "zero" locations need
-+               // to be skipped while sorting in ascending order
-+               int curr_owner = owner_celllist.Elem(owner_face);
-+
-+               int peek_loc = owner_face - 1;
-+               int new_loc = owner_face;
-+
-+               // Traversing upwards in the list
-+               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc >= 1))
-+               {
-+                  if((neighbour_celllist.Elem(peek_loc) != 0)
-+                     && (neighbour_celllist.Elem(new_loc) < neighbour_celllist.Elem(peek_loc)))
-+                  {
-+                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
-+                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
-+                     new_loc = peek_loc;
-+                  }
-+
-+                  peek_loc--;
-+               }
-+
-+               peek_loc = owner_face + 1;
-+
-+               // Traversing downwards in the list
-+               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc <= owner_ind))
-+               {
-+                  if((neighbour_celllist.Elem(peek_loc) != 0)
-+                     && (neighbour_celllist.Elem(new_loc) > neighbour_celllist.Elem(peek_loc)))
-+                  {
-+                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
-+                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
-+                     new_loc = peek_loc;
-+                  }
-+
-+                  peek_loc++;
-+               }
-+
-+               continue;
-+            }
-+
-+            // Check if the face is a surface element (boundary face)
-+            // if not, add the current volume element and the corresponding face into
-+            // the owner list
-+            int surfelem = meshtopo.GetFace2SurfaceElement(absfacenr);
-+            if(!surfelem)
-+            {
-+               // If it is a new face which has not been listed before,
-+               // add the current cell into the owner list, and save
-+               // the index location to be used later by the neighbour list
-+               owner_celllist.Elem(owner_ind) = elind;
-+               owner_facelist.Elem(owner_ind) = locfaces.Elem(i);
-+               // Update the array to indicate that the face is already processed
-+               ownerfaces.Elem(absfacenr) = owner_ind;
-+
-+               owner_ind++;
-+            }
-+            // If the face is a boundary face, extract the boundary condition number of the
-+            // face, and append that along with the face number and the current cell
-+            // into the various surface elements lists
-+            else
-+            {
-+               Element2d sel = mesh.SurfaceElement(surfelem);
-+               surfelem_bclist.Elem(bc_ind) = mesh.GetFaceDescriptor(sel.GetIndex()).BCProperty();
-+               surfelem_lists.Elem(bc_ind) = INDEX_2(locfaces.Elem(i),elind);
-+
-+               bc_ind++;
-+            }
-+         }
-+      }
-+
-+      // This correction is required in cases where the mesh has been "uniform refined".... for
-+      // some reason, the number of faces reported by Netgen is higher than the actual number
-+      // of faces in the mesh
-+      owner_facelist.SetSize(owner_ind-1);
-+      owner_celllist.SetSize(owner_ind-1);
-+      neighbour_celllist.SetSize(owner_ind-1);
-+
-+
-+      // Sort the list of surface elements in ascending order of boundary condition number
-+      // also sort the cell list in the same manner
-+      QuickSort(surfelem_bclist,surfelem_lists);
-+
-+/*
-+      // Debugging output to a file
-+      ofstream dbg("OpenFOAMDebug.log");
-+
-+      dbg << " ------- Boundary List -------- \n";
-+
-+      for(int i = 1; i <= surfelem_bclist.Size(); i++)
-+      {
-+         dbg << "bc = " << surfelem_bclist.Elem(i)
-+              << " : face = " << surfelem_lists.Elem(i).I1()
-+              << " : cell = " << surfelem_lists.Elem(i).I2() << "\n";
-+      }
-+
-+      dbg << "\n ------- Owner / Face / Neighbour List ------- \n";
-+
-+      for(int i = 1; i <= owner_celllist.Size(); i++)
-+      {
-+         dbg << "Ind:" << i << " :: ("
-+              << owner_celllist.Elem(i) << " "
-+              << owner_facelist.Elem(i) << "  "
-+              << neighbour_celllist.Elem(i) << ")\n";
-+      }
-+
-+      dbg.close();
-+*/
-+      return(false);
-+   }
-+
-+
-+
-+   static void WriteNeighbourFile (ostream * outfile)
-+   {
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       labelList; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      neighbour; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      int nneighbours = neighbour_celllist.Size();
-+
-+      *outfile << nneighbours << "\n";
-+
-+      *outfile << "(\n";
-+
-+      // Write the neighbour cells to file
-+      for(int i = 1; i <= neighbour_celllist.Size(); i++)
-+      {
-+         *outfile << neighbour_celllist.Elem(i) - 1 << "\n";
-+      }
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WriteOwnerFile (ostream * outfile)
-+   {
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       labelList; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      owner; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      int nowners = owner_celllist.Size() + surfelem_lists.Size();
-+
-+      *outfile << nowners << "\n";
-+
-+      *outfile << "(\n";
-+
-+      // Write the owners of the internal cells to file
-+      for(int i = 1; i <= owner_celllist.Size(); i++)
-+      {
-+         *outfile << owner_celllist.Elem(i) - 1 << "\n";
-+      }
-+
-+      // Write the owners of the boundary cells to file
-+      // (Written in order of ascending boundary condition numbers)
-+      for(int i = 1; i <= surfelem_lists.Size(); i++)
-+      {
-+         *outfile << surfelem_lists.Elem(i).I2() - 1 << "\n";
-+      }
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WriteFacesFile (ostream * outfile, const Mesh & mesh)
-+   {
-+      const MeshTopology& meshtopo = mesh.GetTopology();
-+
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       faceList; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      faces; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      int nfaces = owner_facelist.Size() + surfelem_lists.Size();
-+
-+      *outfile << nfaces << "\n";
-+
-+      *outfile << "(\n";
-+
-+      // Array to hold the indices of the points of each face to
-+      // flip if required
-+      Array<int> facepnts;
-+
-+      // Write the faces in the order specified in the owners lists of the
-+      // internal cells and the boundary cells
-+      for(int i = 1; i <= owner_facelist.Size(); i++)
-+      {
-+         int face_w_orientation = owner_facelist.Elem(i);
-+         int facenr = abs(face_w_orientation);
-+
-+         meshtopo.GetFaceVertices(facenr,facepnts);
-+
-+         // Get the orientation of the face, and invert it if required
-+         // Since the faces already have the orientation "embedded" into
-+         // them by means of the prepended sign, only this needs to be
-+         // checked for...
-+         if(face_w_orientation > 0)
-+         {
-+            int tmppnts = 0;
-+
-+            if(facepnts.Size() == 4)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(2);
-+               facepnts.Elem(2) = tmppnts;
-+
-+               tmppnts = facepnts.Elem(3);
-+               facepnts.Elem(3) = facepnts.Elem(4);
-+               facepnts.Elem(4) = tmppnts;
-+            }
-+            else if(facepnts.Size() == 3)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(3);
-+               facepnts.Elem(3) = tmppnts;
-+            }
-+         }
-+
-+         *outfile << facepnts.Size();
-+         *outfile << "(";
-+         for(int j = 1; j <= facepnts.Size(); j++)
-+         {
-+            *outfile << facepnts.Elem(j)-1;
-+            if(j != facepnts.Size()) *outfile << " ";
-+         }
-+         *outfile << ")\n";
-+      }
-+
-+      // Now append the faces of the surface elements (written in
-+      // ascending order of boundary condition number) also into
-+      // the faces file
-+      for(int i = 1; i <= surfelem_lists.Size(); i++)
-+      {
-+         int face_w_orientation = surfelem_lists.Elem(i).I1();
-+         int facenr = abs(face_w_orientation);
-+
-+         meshtopo.GetFaceVertices(facenr,facepnts);
-+
-+         // Get the orientation of the face, and invert it if required
-+         if(face_w_orientation > 0)
-+         {
-+            int tmppnts = 0;
-+
-+            if(facepnts.Size() == 4)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(2);
-+               facepnts.Elem(2) = tmppnts;
-+
-+               tmppnts = facepnts.Elem(3);
-+               facepnts.Elem(3) = facepnts.Elem(4);
-+               facepnts.Elem(4) = tmppnts;
-+            }
-+            else if(facepnts.Size() == 3)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(3);
-+               facepnts.Elem(3) = tmppnts;
-+            }
-+         }
-+
-+         *outfile << facepnts.Size();
-+         *outfile << "(";
-+         for(int j = 1; j <= facepnts.Size(); j++)
-+         {
-+            *outfile << facepnts.Elem(j)-1;
-+            if(j != facepnts.Size()) *outfile << " ";
-+         }
-+         *outfile << ")\n";
-+      }
-+
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WritePointsFile (ostream * outfile, const Mesh & mesh)
-+   {
-+      int np = mesh.GetNP();
-+
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       vectorField; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      points; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      // Number of points in the following list
-+      *outfile << np << "\n";
-+
-+      outfile->precision(6);
-+      outfile->setf (ios::fixed, ios::floatfield);
-+      outfile->setf (ios::showpoint);
-+
-+      // Coordinate list starts here
-+      *outfile << "(\n";
-+
-+      for(int i = 1; i <= np; i++)
-+      {
-+         const Point3d & p = mesh.Point(i);
-+
-+         // Write coordinates to file
-+         *outfile << "(";
-+         *outfile << p.X() << " ";
-+         *outfile << p.Y() << " ";
-+         *outfile << p.Z();
-+         *outfile << ")\n";
-+      }
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WriteBoundaryFile (ostream * outfile)
-+   {
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       polyBoundaryMesh; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      boundary; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n";
-+
-+
-+      Array<INDEX_3> bcarray;
-+      int ind = 1;
-+
-+      // Since the boundary conditions are already sorted in ascending
-+      // order, the last element will give the maximum number of possible
-+      // boundary condition entries
-+      int bcmax = surfelem_bclist.Elem(surfelem_bclist.Size());
-+
-+      bcarray.SetSize(bcmax+1);
-+
-+      bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(1),1,0);
-+
-+      for(int i = 2; i <= surfelem_bclist.Size(); i++)
-+      {
-+         if(surfelem_bclist.Elem(i) == bcarray.Elem(ind).I1())
-+         {
-+            bcarray.Elem(ind).I2() = bcarray.Elem(ind).I2()+1;
-+         }
-+         else
-+         {
-+            ind++;
-+            bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(i),1,i-1);
-+         }
-+      }
-+
-+      bcarray.SetSize(ind);
-+
-+      *outfile << bcarray.Size() << "\n";
-+      *outfile << "(\n";
-+
-+      int startface = 0;
-+
-+      for(int i = 1; i <= bcarray.Size(); i++)
-+      {
-+         startface = owner_celllist.Size() + bcarray.Elem(i).I3();
-+
-+         *outfile << "    patch" << bcarray.Elem(i).I1() << "\n"
-+                 << "    {\n"
-+                 << "        type            patch;\n"
-+                 << "        physicalType    patch;\n"
-+                 << "        nFaces          " << bcarray.Elem(i).I2() << ";\n"
-+                 << "        startFace       " << startface << ";\n"
-+                 << "    }\n";
-+      }
-+
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   void WriteOpenFOAM15xFormat (const Mesh & mesh, const string & casename, const bool compressed)
-+   {
-+      bool error = false;
-+      char casefiles[256];
-+
-+      // Make sure that the mesh data has been updated
-+      const_cast<Mesh&> (mesh).Compress();
-+      const_cast<Mesh&> (mesh).CalcSurfacesOfNode();
-+      const_cast<Mesh&> (mesh).RebuildSurfaceElementLists();
-+      const_cast<Mesh&> (mesh).BuildElementSearchTree();
-+
-+
-+      int np = mesh.GetNP();
-+      int nse = mesh.GetNSE();
-+      int ne = mesh.GetNE();
-+
-+      cout << "Write OpenFOAM 1.5+ Mesh Files....\n";
-+
-+      // Abort if there are no points, surface elements or volume elements
-+      if((np <= 0) || (ne <= 0) || (nse <= 0))
-+      {
-+         cout << "Export Error: Invalid mesh.... Aborting!\n";
-+         return;
-+      }
-+
-+      // OpenFOAM only supports linear meshes!
-+      if(mparam.secondorder || mesh.GetCurvedElements().IsHighOrder())
-+      {
-+         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
-+         return;
-+      }
-+
-+      if(( (mesh.SurfaceElement(nse/2).GetType() != TRIG)
-+         && (mesh.SurfaceElement(nse/2).GetType() != QUAD) )
-+         || (mesh.VolumeElement(ne/2).GetType() == TET10)
-+         || (mesh.VolumeElement(ne/2).GetType() == PRISM12))
-+      {
-+         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
-+         return;
-+      }
-+
-+
-+      cout << "Writing OpenFOAM 1.5+ Mesh files to case: " << casename << "\n";
-+
-+      // Create the case directory if it does not already exist
-+      // NOTE: This needs to be improved for the Linux variant....!!!
-+   #ifdef WIN32
-+      char casedir[256];
-+      sprintf(casedir, "mkdir %s\\constant\\polyMesh", casename.c_str());
-+      system(casedir);
-+   #else
-+      char casedir[256];
-+      mkdir(casename.c_str(), S_IRWXU|S_IRWXG);
-+      sprintf(casedir, "%s/constant", casename.c_str());
-+      mkdir(casedir, S_IRWXU|S_IRWXG);
-+      sprintf(casedir, "%s/constant/polyMesh", casename.c_str());
-+      mkdir(casedir, S_IRWXU|S_IRWXG);
-+   #endif
-+
-+      // Open handles to the five required mesh files
-+      // points
-+      // faces
-+      // owner
-+      // neighbour
-+      // boundary
-+        ostream *outfile_pnts;
-+        ostream *outfile_faces;
-+        ostream *outfile_own;
-+        ostream *outfile_nei;
-+        ostream *outfile_bnd;
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/points.gz", casename.c_str());
-+                outfile_pnts = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/points", casename.c_str());
-+                outfile_pnts = new ofstream(casefiles);
-+        }
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/faces.gz", casename.c_str());
-+                outfile_faces = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/faces", casename.c_str());
-+                outfile_faces = new ofstream(casefiles);
-+        }
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/owner.gz", casename.c_str());
-+                outfile_own = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/owner", casename.c_str());
-+                outfile_own = new ofstream(casefiles);
-+        }
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/neighbour.gz", casename.c_str());
-+                outfile_nei = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/neighbour", casename.c_str());
-+                outfile_nei = new ofstream(casefiles);
-+        }
-+
-+        // Note... the boundary file is not compressed
-+      sprintf(casefiles, "%s/constant/polyMesh/boundary", casename.c_str());
-+      outfile_bnd = new ofstream(casefiles);
-+
-+      ResetTime();
-+
-+      // Build the owner, neighbour, faces and boundary lists
-+      // from the Netgen mesh
-+      cout << "\nBuilding Owner, Neighbour and Face Lists: ";
-+
-+      error = BuildOwnerNeighbourLists(mesh);
-+
-+      cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+
-+
-+      // Write the "owner" file
-+      if(outfile_own->good() && !error)
-+      {
-+         cout << "Writing the owner file: ";
-+         WriteOwnerFile(outfile_own);
-+         delete outfile_own;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: owner.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "neighbour" file
-+      if(outfile_nei->good() && !error)
-+      {
-+         cout << "Writing the neighbour file: ";
-+         WriteNeighbourFile(outfile_nei);
-+         delete outfile_nei;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: neighbour.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "faces" file
-+      if(outfile_faces->good() && !error)
-+      {
-+         cout << "Writing the faces file: ";
-+         WriteFacesFile(outfile_faces, mesh);
-+         delete outfile_faces;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: faces.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "points" file
-+      if(outfile_pnts->good() && !error)
-+      {
-+         cout << "Writing the points file: ";
-+         WritePointsFile(outfile_pnts,mesh);
-+         delete outfile_pnts;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: points.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "boundary" file
-+      if(outfile_bnd->good() && !error)
-+      {
-+         cout << "Writing the boundary file: ";
-+         WriteBoundaryFile(outfile_bnd);
-+         delete outfile_bnd;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: boundary.... Aborting\n";
-+         error = true;
-+      }
-+
-+      if(!error)
-+      {
-+         cout << "OpenFOAM 1.5+ Export successfully completed (Time elapsed = " << GetTime() << " sec) !\n";
-+      }
-+      else
-+      {
-+         cout << "Error in OpenFOAM 1.5+ Export.... Aborted!\n";
-+      }
-+   }
-+}
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.cpp netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.cpp
---- netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.cpp       2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.cpp      2018-03-01 15:45:08.693877037 +0300
-@@ -1,1040 +1,1040 @@
--//
--//  Write user dependent output file
--//
--
--#include <mystdlib.h>
--
--#include <myadt.hpp>
--#include <linalg.hpp>
--#include <csg.hpp>
--#include <geometry2d.hpp>
--#include <meshing.hpp>
--
--namespace netgen
--{
--#include "writeuser.hpp"
--
--
--  void RegisterUserFormats (Array<const char*> & names,
--                          Array<const char*> & extensions)
--                          
--{
--  const char *types[] =
--    {
--      "Neutral Format",  ".mesh",
--      "Surface Mesh Format", ".mesh" ,
--      "DIFFPACK Format", ".mesh",
--      "TecPlot Format", ".mesh",
--      "Tochnog Format", ".mesh",
--      "Abaqus Format", ".mesh",
--      "Fluent Format", ".mesh",
--      "Permas Format", ".mesh",
--      "FEAP Format", ".mesh",
--      "Elmer Format", "*",
--      "STL Format", ".stl",
--      "STL Extended Format", ".stl",
--      "VRML Format", ".*",
--      "Gmsh Format", ".gmsh",
--      "Gmsh2 Format", ".gmsh2",
--      "OpenFOAM 1.5+ Format", "*",
--        "OpenFOAM 1.5+ Compressed", "*",
--      "JCMwave Format", ".jcm",
--      "TET Format", ".tet",
--      //      { "Chemnitz Format" },
--      0
--    };
--  
--  for (int i = 0; types[2*i]; i++)
--    {
--      names.Append (types[2*i]);
--      extensions.Append (types[2*i+1]);
--    }
--}
--  
--
--
--bool WriteUserFormat (const string & format,
--                    const Mesh & mesh,
--                    const NetgenGeometry & hgeom,
--                    const string & filename)
--{
--  const CSGeometry & geom = *dynamic_cast<const CSGeometry*> (&hgeom);
--
--  PrintMessage (1, "Export mesh to file ", filename,
--              ", format is ", format);
--
--  if (format == "Neutral Format")
--    WriteNeutralFormat (mesh, geom, filename);
--
--  else if (format == "Surface Mesh Format")
--    WriteSurfaceFormat (mesh, filename);
--
--  else if (format == "DIFFPACK Format")
--    WriteDiffPackFormat (mesh, geom, filename);
--
--  else if (format == "Tochnog Format")
--    WriteTochnogFormat (mesh, filename);
--
--  else if (format == "TecPlot Format")
--    cerr << "ERROR: TecPlot format currently out of order" << endl;
--      // WriteTecPlotFormat (mesh, geom, filename);
--
--  else if (format == "Abaqus Format")
--    WriteAbaqusFormat (mesh, filename);
--
--  else if (format == "Fluent Format")
--    WriteFluentFormat (mesh, filename);
--
--  else if (format == "Permas Format")
--    WritePermasFormat (mesh, filename);
--
--  else if (format == "FEAP Format")
--    WriteFEAPFormat (mesh, filename);
--
--  else if (format == "Elmer Format")
--    WriteElmerFormat (mesh, filename);
--
--  else if (format == "STL Format")
--    WriteSTLFormat (mesh, filename);
--
--  // Philippose - 16 August 2010
--  // Added additional STL Export in which
--  // each face of the geometry is treated
--  // as a separate "solid" entity
--  else if (format == "STL Extended Format")
--      WriteSTLExtFormat (mesh, filename);
--
--  else if (format == "VRML Format")
--    WriteVRMLFormat (mesh, 1, filename);
--
--  else if (format == "Fepp Format")
--    WriteFEPPFormat (mesh, geom, filename);
--
--  else if (format ==  "EdgeElement Format")
--    WriteEdgeElementFormat (mesh, geom, filename);
--
--  else if (format == "Chemnitz Format")
--    WriteUserChemnitz (mesh, filename);
--
--  else if (format == "Gmsh Format")
--    WriteGmshFormat (mesh, geom, filename);
--
--  // Philippose - 29/01/2009
--  // Added Gmsh v2.xx Mesh export capability
--  else if (format == "Gmsh2 Format")
--    WriteGmsh2Format (mesh, geom, filename);
--
--  // Philippose - 25/10/2009
--  // Added OpenFOAM 1.5+ Mesh export capability
--  else if (format == "OpenFOAM 1.5+ Format")
--    WriteOpenFOAM15xFormat (mesh, filename, false);
--
--  else if (format == "OpenFOAM 1.5+ Compressed")
--    WriteOpenFOAM15xFormat (mesh, filename, true);
--
--  else if (format == "JCMwave Format")
--    WriteJCMFormat (mesh, geom, filename);
--
--#ifdef OLIVER
--  else if (format == "TET Format")
--    WriteTETFormat( mesh, filename);//, "High Frequency" );
--#endif
--
--  else
--    {
--      return 1;
--    }
--
--  return 0;
--}
--
--
--
--
--/*
-- *  Neutral mesh format
-- *  points, elements, surface elements
-- */
--
--void WriteNeutralFormat (const Mesh & mesh,
--                       const CSGeometry & geom,
--                       const string & filename)
--{
--  cout << "write neutral, new" << endl;
--  int np = mesh.GetNP();
--  int ne = mesh.GetNE();
--  int nse = mesh.GetNSE();
--  int nseg = mesh.GetNSeg();
--  int i, j;
--
--  int inverttets = mparam.inverttets;
--  int invertsurf = mparam.inverttrigs;
--
--  ofstream outfile (filename.c_str());
--
--  outfile.precision(6);
--  outfile.setf (ios::fixed, ios::floatfield);
--  outfile.setf (ios::showpoint);
--
--  outfile << np << "\n";
--
--  for (i = 1; i <= np; i++)
--    {
--      const Point3d & p = mesh.Point(i);
--
--      outfile.width(10);
--      outfile << p.X() << " ";
--      outfile.width(9);
--      outfile << p.Y() << " ";
--      if (mesh.GetDimension() == 3)
--      {
--        outfile.width(9);
--        outfile << p.Z();
--        }
--      outfile << "\n";
--    }
--
--  if (mesh.GetDimension() == 3)
--    {
--      outfile << ne << "\n";
--      for (i = 1; i <= ne; i++)
--      {
--        Element el = mesh.VolumeElement(i);
--        if (inverttets)
--          el.Invert();
--        outfile.width(4);
--        outfile << el.GetIndex() << "  ";
--        for (j = 1; j <= el.GetNP(); j++)
--          {
--            outfile << " ";
--            outfile.width(8);
--            outfile << el.PNum(j);
--          }
--        outfile << "\n";
--      }
--    }
--
--  outfile << nse << "\n";
--  for (i = 1; i <= nse; i++)
--    {
--      Element2d el = mesh.SurfaceElement(i);
--      if (invertsurf)
--      el.Invert();
--      outfile.width(4);
--      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "    ";
--      for (j = 1; j <= el.GetNP(); j++)
--      {
--        outfile << " ";
--        outfile.width(8);
--        outfile << el.PNum(j);
--      }
--      outfile << "\n";
--    }
--
--
--  if (mesh.GetDimension() == 2)
--    {
--      outfile << nseg << "\n";
--      for (i = 1; i <= nseg; i++)
--      {
--        const Segment & seg = mesh.LineSegment(i);
--        outfile.width(4);
--        outfile << seg.si << "    ";
--
--        outfile << " ";
--        outfile.width(8);
--        outfile << seg[0];
--        outfile << " ";
--        outfile.width(8);
--        outfile << seg[1];
--
--        outfile << "\n";
--      }
--    }
--}
--
--
--
--
--
--
--
--
--
--void WriteSurfaceFormat (const Mesh & mesh,
--                       const string & filename)
--{
--  // surface mesh
--  int i, j;
--
--  cout << "Write Surface Mesh" << endl;
--
--  ofstream outfile (filename.c_str());
--
--  outfile << "surfacemesh" << endl;
--
--  outfile << mesh.GetNP() << endl;
--  for (i = 1; i <= mesh.GetNP(); i++)
--    {
--      for (j = 0; j < 3; j++)
--      {
--        outfile.width(10);
--        outfile << mesh.Point(i)(j) << " ";
--      }
--      outfile << endl;
--    }
--  outfile << mesh.GetNSE() << endl;
--  for (i = 1; i <= mesh.GetNSE(); i++)
--    {
--      for (j = 1; j <= 3; j++)
--      {
--        outfile.width(8);
--        outfile << mesh.SurfaceElement(i).PNum(j);
--      }
--      outfile << endl;
--    }
--}
--
--
--
--
--
--/*
-- *  save surface mesh as STL file
-- */
--
--void WriteSTLFormat (const Mesh & mesh,
--                   const string & filename)
--{
--  cout << "\nWrite STL Surface Mesh" << endl;
--
--  ostream *outfile;
--
--  if(filename.substr(filename.length()-3,3) == ".gz")
--        outfile = new ogzstream(filename.c_str());
--  else
--        outfile = new ofstream(filename.c_str());
--
--  int i;
--
--  outfile->precision(10);
--
--  *outfile << "solid" << endl;
--
--  for (i = 1; i <= mesh.GetNSE(); i++)
--    {
--      *outfile << "facet normal ";
--      const Point3d& p1 = mesh.Point(mesh.SurfaceElement(i).PNum(1));
--      const Point3d& p2 = mesh.Point(mesh.SurfaceElement(i).PNum(2));
--      const Point3d& p3 = mesh.Point(mesh.SurfaceElement(i).PNum(3));
--
--      Vec3d normal = Cross(p2-p1,p3-p1);
--      if (normal.Length() != 0)
--      {
--        normal /= (normal.Length());
--      }
--
--      *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
--      *outfile << "outer loop\n";
--
--      *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
--      *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
--      *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
--
--      *outfile << "endloop\n";
--      *outfile << "endfacet\n";
--    }
--  *outfile << "endsolid" << endl;
--}
--
--
--
--
--
--/*
-- *  Philippose - 16 August 2010
-- *  Save surface mesh as STL file
-- *  with a separate solid definition
-- *  for each face
-- *  - This helps in splitting up the
-- *    STL into named boundary faces
-- *    when using a third-party mesher
-- */
--void WriteSTLExtFormat (const Mesh & mesh,
--                   const string & filename)
--{
--  cout << "\nWrite STL Surface Mesh (with separated boundary faces)" << endl;
--
--  ostream *outfile;
--
--  if(filename.substr(filename.length()-3,3) == ".gz")
--        outfile = new ogzstream(filename.c_str());
--  else
--        outfile = new ofstream(filename.c_str());
--
--  outfile->precision(10);
--
--  int numBCs = 0;
--
--  Array<int> faceBCs;
--  TABLE<int> faceBCMapping;
--
--  faceBCs.SetSize(mesh.GetNFD());
--  faceBCMapping.SetSize(mesh.GetNFD());
--
--  faceBCs = -1;
--
--  // Collect the BC numbers used in the mesh
--  for(int faceNr = 1; faceNr <= mesh.GetNFD(); faceNr++)
--  {
--        int bcNum = mesh.GetFaceDescriptor(faceNr).BCProperty();
--
--        if(faceBCs.Pos(bcNum) < 0)
--        {
--        numBCs++;
--                faceBCs.Set(numBCs,bcNum);
--        faceBCMapping.Add1(numBCs,faceNr);        
--        }
--     else
--     {
--        faceBCMapping.Add1(faceBCs.Pos(bcNum)+1,faceNr);
--     }
--  }
--
--  faceBCs.SetSize(numBCs);
--  faceBCMapping.ChangeSize(numBCs);
--
--  // Now actually write the data to file
--  for(int bcInd = 1; bcInd <= faceBCs.Size(); bcInd++)
--  {
--      *outfile << "solid Boundary_" << faceBCs.Elem(bcInd) << "\n";
--
--      for(int faceNr = 1;faceNr <= faceBCMapping.EntrySize(bcInd); faceNr++)
--      {
--          Array<SurfaceElementIndex> faceSei;
--          mesh.GetSurfaceElementsOfFace(faceBCMapping.Get(bcInd,faceNr),faceSei);
--
--          for (int i = 0; i < faceSei.Size(); i++)
--          {
--                *outfile << "facet normal ";
--                const Point3d& p1 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(1));
--                const Point3d& p2 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(2));
--                const Point3d& p3 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(3));
--
--                Vec3d normal = Cross(p2-p1,p3-p1);
--                if (normal.Length() != 0)
--                {
--                        normal /= (normal.Length());
--                }
--
--                *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
--                *outfile << "outer loop\n";
--
--                *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
--                *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
--                *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
--
--                *outfile << "endloop\n";
--                *outfile << "endfacet\n";
--          }
--      }
--      *outfile << "endsolid Boundary_" << faceBCs.Elem(bcInd) << "\n";
--  }
--}
--
--
--
--
--/*
-- *
-- *  write surface mesh as VRML file
-- *
-- */
--
--void WriteVRMLFormat (const Mesh & mesh,
--                    bool faces,
--                    const string & filename)
--{
--
--  if (faces)
--
--    {
--      // Output in VRML, IndexedFaceSet is used
--      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
--
--      int np = mesh.GetNP();
--      int nse = mesh.GetNSE();
--      int i, j;
--
--      ofstream outfile (filename.c_str());
--
--      outfile.precision(6);
--      outfile.setf (ios::fixed, ios::floatfield);
--      outfile.setf (ios::showpoint);
--
--      outfile << "#VRML V2.0 utf8 \n"
--               "Background {\n"
--               "    skyColor [1 1 1]\n"
--               "    groundColor [1 1 1]\n"
--               "}\n"
--               "Group{ children [\n"
--               "Shape{ \n"
--               "appearance Appearance { material Material { }} \n"
--                 "geometry IndexedFaceSet { \n"
--                 "coord Coordinate { point [ \n";
--
--
--      for (i = 1; i <= np; i++)
--        {
--          const Point3d & p = mesh.Point(i);
--          outfile.width(10);
--          outfile << p.X() << " ";
--          outfile << p.Y() << " ";
--          outfile << p.Z() << " \n";
--      }
--
--      outfile << "  ] } \n"
--                 "coordIndex [ \n";
--
--      for (i = 1; i <= nse; i++)
--      {
--        const Element2d & el = mesh.SurfaceElement(i);
--
--        for (j = 1; j <= 3; j++)
--          {
--            outfile.width(8);
--            outfile << el.PNum(j)-1;
--          }
--        outfile << " -1 \n";
--      }
--
--      outfile << "  ] \n";
--
--      //define number and RGB definitions of colors
--      outfile << "color Color { color [1 0 0, 0 1 0, 0 0 1, 1 1 0]} \n"
--                 "colorIndex [\n";
--
--      for (i = 1; i <= nse; i++)
--      {
--        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
--          outfile << endl;
--      }
--
--      outfile << " ] \n"
--                 "colorPerVertex FALSE \n"
--                 "creaseAngle 0 \n"
--               "solid FALSE \n"
--                 "ccw FALSE \n"
--               "convex TRUE \n"
--                 "} } # end of Shape\n"
--               "] }\n";
--
--    } /* end of VRMLFACES */
--
--
--  else
--
--    {
--        // Output in VRML, IndexedLineSet is used
--      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
--
--      int np = mesh.GetNP();
--      int nse = mesh.GetNSE();
--      int i, j;
--
--      ofstream outfile (filename.c_str());
--
--      outfile.precision(6);
--      outfile.setf (ios::fixed, ios::floatfield);
--      outfile.setf (ios::showpoint);
--
--      outfile << "#VRML V2.0 utf8 \n"
--               "Background {\n"
--               "    skyColor [1 1 1]\n"
--               "    groundColor [1 1 1]\n"
--               "}\n"
--               "Group{ children [\n"
--               "Shape{ \n"
--               "appearance Appearance { material Material { }} \n"
--                 "geometry IndexedLineSet { \n"
--                 "coord Coordinate { point [ \n";
--
--
--      for (i = 1; i <= np; i++)
--        {
--          const Point3d & p = mesh.Point(i);
--          outfile.width(10);
--          outfile << p.X() << " ";
--          outfile << p.Y() << " ";
--          outfile << p.Z() << " \n";
--      }
--
--      outfile << "  ] } \n"
--                 "coordIndex [ \n";
--
--      for (i = 1; i <= nse; i++)
--      {
--        const Element2d & el = mesh.SurfaceElement(i);
--
--        for (j = 1; j <= 3; j++)
--          {
--            outfile.width(8);
--            outfile << el.PNum(j)-1;
--          }
--        outfile.width(8);
--        outfile << el.PNum(1)-1;
--        outfile << " -1 \n";
--      }
--
--      outfile << "  ] \n";
--
--/* Uncomment if you want color mesh
--      outfile << "color Color { color [1 1 1, 0 1 0, 0 0 1, 1 1 0]} \n"
--                 "colorIndex [\n";
--
--      for (i = 1; i <= nse; i++)
--      {
--        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
--          outfile << endl;
--      }
--
--      outfile << " ] \n"
--*/
--      outfile << "colorPerVertex FALSE \n"
--                 "} } #end of Shape\n"
--               "] } \n";
--
--    }
--
--}
--
--
--
--
--
--
--/*
-- * FEPP .. a finite element package developed at University Linz, Austria
-- */
--void WriteFEPPFormat (const Mesh & mesh,
--                    const CSGeometry & geom,
--                    const string & filename)
--{
--
--  ofstream outfile (filename.c_str());
--
--  if (mesh.GetDimension() == 3)
--
--    {
--
--      // output for FEPP
--
--      int np = mesh.GetNP();
--      int ne = mesh.GetNE();
--      int nse = mesh.GetNSE();
--      int ns = mesh.GetNFD();
--      int i, j;
--
--      outfile.precision(5);
--      outfile.setf (ios::fixed, ios::floatfield);
--      outfile.setf (ios::showpoint);
--
--      outfile << "volumemesh4" << endl;
--      outfile << nse << endl;
--      for (i = 1; i <= nse; i++)
--      {
--        const Element2d & el = mesh.SurfaceElement(i);
--
--        //      int facenr = mesh.facedecoding.Get(el.GetIndex()).surfnr;
--        outfile.width(4);
--        outfile << el.GetIndex() << " ";
--        outfile.width(4);
--        //      outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
--        outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
--        outfile.width(4);
--        outfile << el.GetNP() << "    ";
--        for (j = 1; j <= el.GetNP(); j++)
--          {
--            outfile.width(8);
--            outfile << el.PNum(j);
--          }
--        outfile << "\n";
--      }
--
--
--      outfile << ne << "\n";
--      for (i = 1; i <= ne; i++)
--      {
--        const Element & el = mesh.VolumeElement(i);
--        outfile.width(4);
--        outfile << el.GetIndex() << " ";
--        outfile.width(4);
--        outfile << el.GetNP() << " ";
--        for (j = 1; j <= el.GetNP(); j++)
--          {
--            outfile.width(8);
--            outfile << el.PNum(j);
--          }
--        outfile << "\n";
--      }
--
--      outfile << np << "\n";
--      for (i = 1; i <= np; i++)
--      {
--        const Point3d & p = mesh.Point(i);
--
--        outfile.width(10);
--        outfile << p.X() << " ";
--        outfile.width(9);
--        outfile << p.Y() << " ";
--        outfile.width(9);
--        outfile << p.Z() << "\n";
--      }
--
--      /*
--      if (typ == WRITE_FEPPML)
--      {
--        int nbn =  mesh.mlbetweennodes.Size();
--        outfile << nbn << "\n";
--        for (i = 1; i <= nbn; i++)
--          outfile << mesh.mlbetweennodes.Get(i).I1() << " "
--                  << mesh.mlbetweennodes.Get(i).I2() << "\n";
--
--
--        //      int ncon = mesh.connectedtonode.Size();
--        //      outfile << ncon << "\n";
--        //      for (i = 1; i <= ncon; i++)
--        //        outfile << i << " " << mesh.connectedtonode.Get(i) << endl;
--      }
--      */
--
--
--      // write CSG surfaces
--      if (&geom && geom.GetNSurf() >= ns)
--      {
--        outfile << ns << endl;
--        for (i = 1; i <= ns; i++)
--          geom.GetSurface(mesh.GetFaceDescriptor(i).SurfNr())->Print(outfile);
--      }
--      else
--      outfile << "0" << endl;
--    }
--
--
--  else
--
--    { // 2D fepp format
--
--      ;
--      /*
--      extern SplineGeometry2d * geometry2d;
--      if (geometry2d)
--      Save2DMesh (mesh, &geometry2d->GetSplines(), outfile);
--      else
--      Save2DMesh (mesh, 0, outfile);
--      */
--    }
--}
--
--
--
--
--
--
--/*
-- *  Edge element mesh format
-- *  points, elements, edges
-- */
--
--void WriteEdgeElementFormat (const Mesh & mesh,
--                           const CSGeometry & geom,
--                           const string & filename)
--{
--  cout << "write edge element format" << endl;
--
--  const MeshTopology * top = &mesh.GetTopology();
--  int npoints = mesh.GetNP();
--  int nelements = mesh.GetNE();
--  int nsurfelem = mesh.GetNSE();
--  int nedges = top->GetNEdges();
--  int i, j;
--
--  int inverttets = mparam.inverttets;
--  int invertsurf = mparam.inverttrigs;
--  Array<int> edges;
--
--  ofstream outfile (filename.c_str());
--
--  outfile.precision(6);
--  outfile.setf (ios::fixed, ios::floatfield);
--  outfile.setf (ios::showpoint);
--
--
--  // vertices with coordinates
--  outfile << npoints << "\n";
--  for (i = 1; i <= npoints; i++)
--    {
--      const Point3d & p = mesh.Point(i);
--
--      outfile.width(10);
--      outfile << p.X() << " ";
--      outfile.width(9);
--      outfile << p.Y() << " ";
--      outfile.width(9);
--      outfile << p.Z() << "\n";
--    }
--
--  // element - edge - list
--  outfile << nelements << " " << nedges << "\n";
--  for (i = 1; i <= nelements; i++)
--    {
--      Element el = mesh.VolumeElement(i);
--      if (inverttets)
--              el.Invert();
--      outfile.width(4);
--      outfile << el.GetIndex() << "  ";
--      outfile.width(8);
--      outfile << el.GetNP();
--      for (j = 1; j <= el.GetNP(); j++)
--      {
--        outfile << " ";
--        outfile.width(8);
--        outfile << el.PNum(j);
--      }
--
--      top->GetElementEdges(i,edges);
--      outfile << endl << "      ";
--      outfile.width(8);
--      outfile << edges.Size();
--      for (j=1; j <= edges.Size(); j++)
--      {
--        outfile << " ";
--        outfile.width(8);
--        outfile << edges[j-1];
--      }
--      outfile << "\n";
--
--      // orientation:
--      top->GetElementEdgeOrientations(i,edges);
--      outfile << "              ";
--      for (j=1; j <= edges.Size(); j++)
--      {
--        outfile << " ";
--        outfile.width(8);
--        outfile << edges[j-1];
--      }
--      outfile << "\n";
--    }
--
--  // surface element - edge - list (with boundary conditions)
--  outfile << nsurfelem << "\n";
--  for (i = 1; i <= nsurfelem; i++)
--    {
--      Element2d el = mesh.SurfaceElement(i);
--      if (invertsurf)
--      el.Invert();
--      outfile.width(4);
--      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "  ";
--      outfile.width(8);
--      outfile << el.GetNP();
--      for (j = 1; j <= el.GetNP(); j++)
--      {
--        outfile << " ";
--        outfile.width(8);
--        outfile << el.PNum(j);
--      }
--
--      top->GetSurfaceElementEdges(i,edges);
--      outfile << endl << "      ";
--      outfile.width(8);
--      outfile << edges.Size();
--      for (j=1; j <= edges.Size(); j++)
--      {
--        outfile << " ";
--        outfile.width(8);
--        outfile << edges[j-1];
--      }
--      outfile << "\n";
--    }
--
--
--  int v1, v2;
--  // edge - vertex - list
--  outfile << nedges << "\n";
--  for (i=1; i <= nedges; i++)
--    {
--      top->GetEdgeVertices(i,v1,v2);
--      outfile.width(4);
--      outfile << v1;
--      outfile << " ";
--      outfile.width(8);
--      outfile << v2 << endl;
--    }
--}
--
--
--
--
--
--
--
--
--
--#ifdef OLDSTYLE_WRITE
--
--
--void WriteFile (int typ,
--              const Mesh & mesh,
--              const CSGeometry & geom,
--              const char * filename,
--              const char * geomfile,
--              double h)
--{
--
--
--  int inverttets = mparam.inverttets;
--  int invertsurf = mparam.inverttrigs;
--
--
--
--
--
--
--
--
--  if (typ == WRITE_EDGEELEMENT)
--    {
--      // write edge element file
--      // Peter Harscher, ETHZ
--
--      cout << "Write Edge-Element Format" << endl;
--
--      ofstream outfile (filename);
--
--      int i, j;
--      int ned;
--
--      // hash table representing edges;
--      INDEX_2_HASHTABLE<int> edgeht(mesh.GetNP());
--
--      // list of edges
--      Array<INDEX_2> edgelist;
--
--      // edge (point) on boundary ?
--      BitArray bedge, bpoint(mesh.GetNP());
--
--      static int eledges[6][2] = { { 1, 2 } , { 1, 3 } , { 1, 4 },
--                                 { 2, 3 } , { 2, 4 } , { 3, 4 } };
--
--      // fill hashtable   (point1, point2)  ---->  edgenr
--      for (i = 1; i <= mesh.GetNE(); i++)
--      {
--        const Element & el = mesh.VolumeElement (i);
--        INDEX_2 edge;
--        for (j = 1; j <= 6; j++)
--          {
--            edge.I1() = el.PNum (eledges[j-1][0]);
--            edge.I2() = el.PNum (eledges[j-1][1]);
--            edge.Sort();
--
--            if (!edgeht.Used (edge))
--              {
--                edgelist.Append (edge);
--                edgeht.Set (edge, edgelist.Size());
--              }
--          }
--      }
--
--
--      // set bedges, bpoints
--      bedge.SetSize (edgelist.Size());
--      bedge.Clear();
--      bpoint.Clear();
--
--      for (i = 1; i <= mesh.GetNSE(); i++)
--      {
--        const Element2d & sel = mesh.SurfaceElement(i);
--        for (j = 1; j <= 3; j++)
--          {
--            bpoint.Set (sel.PNum(j));
--
--            INDEX_2 edge;
--            edge.I1() = sel.PNum(j);
--            edge.I2() = sel.PNum(j%3+1);
--            edge.Sort();
--
--            bedge.Set (edgeht.Get (edge));
--          }
--      }
--
--
--
--      outfile << mesh.GetNE() << endl;
--      // write element ---> point
--      for (i = 1; i <= mesh.GetNE(); i++)
--      {
--        const Element & el = mesh.VolumeElement(i);
--
--        outfile.width(8);
--        outfile << i;
--        for (j = 1; j <= 4; j++)
--          {
--            outfile.width(8);
--            outfile << el.PNum(j);
--          }
--        outfile << endl;
--      }
--
--      // write element ---> edge
--      for (i = 1; i <= mesh.GetNE(); i++)
--      {
--        const Element & el = mesh.VolumeElement (i);
--        INDEX_2 edge;
--        for (j = 1; j <= 6; j++)
--          {
--            edge.I1() = el.PNum (eledges[j-1][0]);
--            edge.I2() = el.PNum (eledges[j-1][1]);
--            edge.Sort();
--
--            outfile.width(8);
--            outfile << edgeht.Get (edge);
--          }
--        outfile << endl;
--      }
--
--      // write points
--      outfile << mesh.GetNP() << endl;
--      outfile.precision (6);
--      for (i = 1; i <= mesh.GetNP(); i++)
--      {
--        const Point3d & p = mesh.Point(i);
--
--        for (j = 1; j <= 3; j++)
--          {
--            outfile.width(8);
--            outfile << p.X(j);
--          }
--        outfile << "       "
--                << (bpoint.Test(i) ? "1" : 0) << endl;
--      }
--
--      // write edges
--      outfile << edgelist.Size() << endl;
--      for (i = 1; i <= edgelist.Size(); i++)
--      {
--        outfile.width(8);
--        outfile << edgelist.Get(i).I1();
--        outfile.width(8);
--        outfile << edgelist.Get(i).I2();
--        outfile << "       "
--                << (bedge.Test(i) ? "1" : "0") << endl;
--      }
--    }
--
--
--
--
--}
--#endif
--}
--
-+//
-+//  Write user dependent output file
-+//
-+
-+#include <mystdlib.h>
-+
-+#include <myadt.hpp>
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <geometry2d.hpp>
-+#include <meshing.hpp>
-+
-+namespace netgen
-+{
-+#include "writeuser.hpp"
-+
-+
-+  void RegisterUserFormats (Array<const char*> & names,
-+                          Array<const char*> & extensions)
-+
-+{
-+  const char *types[] =
-+    {
-+      "Neutral Format",  ".mesh",
-+      "Surface Mesh Format", ".mesh" ,
-+      "DIFFPACK Format", ".mesh",
-+      "TecPlot Format", ".mesh",
-+      "Tochnog Format", ".mesh",
-+      "Abaqus Format", ".mesh",
-+      "Fluent Format", ".mesh",
-+      "Permas Format", ".mesh",
-+      "FEAP Format", ".mesh",
-+      "Elmer Format", "*",
-+      "STL Format", ".stl",
-+      "STL Extended Format", ".stl",
-+      "VRML Format", ".*",
-+      "Gmsh Format", ".gmsh",
-+      "Gmsh2 Format", ".gmsh2",
-+      "OpenFOAM 1.5+ Format", "*",
-+        "OpenFOAM 1.5+ Compressed", "*",
-+      "JCMwave Format", ".jcm",
-+      "TET Format", ".tet",
-+      //      { "Chemnitz Format" },
-+      0
-+    };
-+
-+  for (int i = 0; types[2*i]; i++)
-+    {
-+      names.Append (types[2*i]);
-+      extensions.Append (types[2*i+1]);
-+    }
-+}
-+
-+
-+
-+bool WriteUserFormat (const string & format,
-+                    const Mesh & mesh,
-+                    const NetgenGeometry & hgeom,
-+                    const string & filename)
-+{
-+  const CSGeometry & geom = *dynamic_cast<const CSGeometry*> (&hgeom);
-+
-+  PrintMessage (1, "Export mesh to file ", filename,
-+              ", format is ", format);
-+
-+  if (format == "Neutral Format")
-+    WriteNeutralFormat (mesh, geom, filename);
-+
-+  else if (format == "Surface Mesh Format")
-+    WriteSurfaceFormat (mesh, filename);
-+
-+  else if (format == "DIFFPACK Format")
-+    WriteDiffPackFormat (mesh, geom, filename);
-+
-+  else if (format == "Tochnog Format")
-+    WriteTochnogFormat (mesh, filename);
-+
-+  else if (format == "TecPlot Format")
-+    cerr << "ERROR: TecPlot format currently out of order" << endl;
-+      // WriteTecPlotFormat (mesh, geom, filename);
-+
-+  else if (format == "Abaqus Format")
-+    WriteAbaqusFormat (mesh, filename);
-+
-+  else if (format == "Fluent Format")
-+    WriteFluentFormat (mesh, filename);
-+
-+  else if (format == "Permas Format")
-+    WritePermasFormat (mesh, filename);
-+
-+  else if (format == "FEAP Format")
-+    WriteFEAPFormat (mesh, filename);
-+
-+  else if (format == "Elmer Format")
-+    WriteElmerFormat (mesh, filename);
-+
-+  else if (format == "STL Format")
-+    WriteSTLFormat (mesh, filename);
-+
-+  // Philippose - 16 August 2010
-+  // Added additional STL Export in which
-+  // each face of the geometry is treated
-+  // as a separate "solid" entity
-+  else if (format == "STL Extended Format")
-+      WriteSTLExtFormat (mesh, filename);
-+
-+  else if (format == "VRML Format")
-+    WriteVRMLFormat (mesh, 1, filename);
-+
-+  else if (format == "Fepp Format")
-+    WriteFEPPFormat (mesh, geom, filename);
-+
-+  else if (format ==  "EdgeElement Format")
-+    WriteEdgeElementFormat (mesh, geom, filename);
-+
-+  else if (format == "Chemnitz Format")
-+    WriteUserChemnitz (mesh, filename);
-+
-+  else if (format == "Gmsh Format")
-+    WriteGmshFormat (mesh, geom, filename);
-+
-+  // Philippose - 29/01/2009
-+  // Added Gmsh v2.xx Mesh export capability
-+  else if (format == "Gmsh2 Format")
-+    WriteGmsh2Format (mesh, geom, filename);
-+
-+  // Philippose - 25/10/2009
-+  // Added OpenFOAM 1.5+ Mesh export capability
-+  else if (format == "OpenFOAM 1.5+ Format")
-+    WriteOpenFOAM15xFormat (mesh, filename, false);
-+
-+  else if (format == "OpenFOAM 1.5+ Compressed")
-+    WriteOpenFOAM15xFormat (mesh, filename, true);
-+
-+  else if (format == "JCMwave Format")
-+    WriteJCMFormat (mesh, geom, filename);
-+
-+#ifdef OLIVER
-+  else if (format == "TET Format")
-+    WriteTETFormat( mesh, filename);//, "High Frequency" );
-+#endif
-+
-+  else
-+    {
-+      return 1;
-+    }
-+
-+  return 0;
-+}
-+
-+
-+
-+
-+/*
-+ *  Neutral mesh format
-+ *  points, elements, surface elements
-+ */
-+
-+void WriteNeutralFormat (const Mesh & mesh,
-+                       const CSGeometry & geom,
-+                       const string & filename)
-+{
-+  cout << "write neutral, new" << endl;
-+  int np = mesh.GetNP();
-+  int ne = mesh.GetNE();
-+  int nse = mesh.GetNSE();
-+  int nseg = mesh.GetNSeg();
-+  int i, j;
-+
-+  int inverttets = mparam.inverttets;
-+  int invertsurf = mparam.inverttrigs;
-+
-+  ofstream outfile (filename.c_str());
-+
-+  outfile.precision(6);
-+  outfile.setf (ios::fixed, ios::floatfield);
-+  outfile.setf (ios::showpoint);
-+
-+  outfile << np << "\n";
-+
-+  for (i = 1; i <= np; i++)
-+    {
-+      const Point3d & p = mesh.Point(i);
-+
-+      outfile.width(10);
-+      outfile << p.X() << " ";
-+      outfile.width(9);
-+      outfile << p.Y() << " ";
-+      if (mesh.GetDimension() == 3)
-+      {
-+        outfile.width(9);
-+        outfile << p.Z();
-+        }
-+      outfile << "\n";
-+    }
-+
-+  if (mesh.GetDimension() == 3)
-+    {
-+      outfile << ne << "\n";
-+      for (i = 1; i <= ne; i++)
-+      {
-+        Element el = mesh.VolumeElement(i);
-+        if (inverttets)
-+          el.Invert();
-+        outfile.width(4);
-+        outfile << el.GetIndex() << "  ";
-+        for (j = 1; j <= el.GetNP(); j++)
-+          {
-+            outfile << " ";
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << "\n";
-+      }
-+    }
-+
-+  outfile << nse << "\n";
-+  for (i = 1; i <= nse; i++)
-+    {
-+      Element2d el = mesh.SurfaceElement(i);
-+      if (invertsurf)
-+      el.Invert();
-+      outfile.width(4);
-+      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "    ";
-+      for (j = 1; j <= el.GetNP(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << el.PNum(j);
-+      }
-+      outfile << "\n";
-+    }
-+
-+
-+  if (mesh.GetDimension() == 2)
-+    {
-+      outfile << nseg << "\n";
-+      for (i = 1; i <= nseg; i++)
-+      {
-+        const Segment & seg = mesh.LineSegment(i);
-+        outfile.width(4);
-+        outfile << seg.si << "    ";
-+
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << seg[0];
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << seg[1];
-+
-+        outfile << "\n";
-+      }
-+    }
-+}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+void WriteSurfaceFormat (const Mesh & mesh,
-+                       const string & filename)
-+{
-+  // surface mesh
-+  int i, j;
-+
-+  cout << "Write Surface Mesh" << endl;
-+
-+  ofstream outfile (filename.c_str());
-+
-+  outfile << "surfacemesh" << endl;
-+
-+  outfile << mesh.GetNP() << endl;
-+  for (i = 1; i <= mesh.GetNP(); i++)
-+    {
-+      for (j = 0; j < 3; j++)
-+      {
-+        outfile.width(10);
-+        outfile << mesh.Point(i)(j) << " ";
-+      }
-+      outfile << endl;
-+    }
-+  outfile << mesh.GetNSE() << endl;
-+  for (i = 1; i <= mesh.GetNSE(); i++)
-+    {
-+      for (j = 1; j <= 3; j++)
-+      {
-+        outfile.width(8);
-+        outfile << mesh.SurfaceElement(i).PNum(j);
-+      }
-+      outfile << endl;
-+    }
-+}
-+
-+
-+
-+
-+
-+/*
-+ *  save surface mesh as STL file
-+ */
-+
-+void WriteSTLFormat (const Mesh & mesh,
-+                   const string & filename)
-+{
-+  cout << "\nWrite STL Surface Mesh" << endl;
-+
-+  ostream *outfile;
-+
-+  if(filename.substr(filename.length()-3,3) == ".gz")
-+        outfile = new ogzstream(filename.c_str());
-+  else
-+        outfile = new ofstream(filename.c_str());
-+
-+  int i;
-+
-+  outfile->precision(10);
-+
-+  *outfile << "solid" << endl;
-+
-+  for (i = 1; i <= mesh.GetNSE(); i++)
-+    {
-+      *outfile << "facet normal ";
-+      const Point3d& p1 = mesh.Point(mesh.SurfaceElement(i).PNum(1));
-+      const Point3d& p2 = mesh.Point(mesh.SurfaceElement(i).PNum(2));
-+      const Point3d& p3 = mesh.Point(mesh.SurfaceElement(i).PNum(3));
-+
-+      Vec3d normal = Cross(p2-p1,p3-p1);
-+      if (normal.Length() != 0)
-+      {
-+        normal /= (normal.Length());
-+      }
-+
-+      *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
-+      *outfile << "outer loop\n";
-+
-+      *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
-+      *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
-+      *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
-+
-+      *outfile << "endloop\n";
-+      *outfile << "endfacet\n";
-+    }
-+  *outfile << "endsolid" << endl;
-+}
-+
-+
-+
-+
-+
-+/*
-+ *  Philippose - 16 August 2010
-+ *  Save surface mesh as STL file
-+ *  with a separate solid definition
-+ *  for each face
-+ *  - This helps in splitting up the
-+ *    STL into named boundary faces
-+ *    when using a third-party mesher
-+ */
-+void WriteSTLExtFormat (const Mesh & mesh,
-+                   const string & filename)
-+{
-+  cout << "\nWrite STL Surface Mesh (with separated boundary faces)" << endl;
-+
-+  ostream *outfile;
-+
-+  if(filename.substr(filename.length()-3,3) == ".gz")
-+        outfile = new ogzstream(filename.c_str());
-+  else
-+        outfile = new ofstream(filename.c_str());
-+
-+  outfile->precision(10);
-+
-+  int numBCs = 0;
-+
-+  Array<int> faceBCs;
-+  TABLE<int> faceBCMapping;
-+
-+  faceBCs.SetSize(mesh.GetNFD());
-+  faceBCMapping.SetSize(mesh.GetNFD());
-+
-+  faceBCs = -1;
-+
-+  // Collect the BC numbers used in the mesh
-+  for(int faceNr = 1; faceNr <= mesh.GetNFD(); faceNr++)
-+  {
-+        int bcNum = mesh.GetFaceDescriptor(faceNr).BCProperty();
-+
-+        if(faceBCs.Pos(bcNum) < 0)
-+        {
-+        numBCs++;
-+                faceBCs.Set(numBCs,bcNum);
-+        faceBCMapping.Add1(numBCs,faceNr);
-+        }
-+     else
-+     {
-+        faceBCMapping.Add1(faceBCs.Pos(bcNum)+1,faceNr);
-+     }
-+  }
-+
-+  faceBCs.SetSize(numBCs);
-+  faceBCMapping.ChangeSize(numBCs);
-+
-+  // Now actually write the data to file
-+  for(int bcInd = 1; bcInd <= faceBCs.Size(); bcInd++)
-+  {
-+      *outfile << "solid Boundary_" << faceBCs.Elem(bcInd) << "\n";
-+
-+      for(int faceNr = 1;faceNr <= faceBCMapping.EntrySize(bcInd); faceNr++)
-+      {
-+          Array<SurfaceElementIndex> faceSei;
-+          mesh.GetSurfaceElementsOfFace(faceBCMapping.Get(bcInd,faceNr),faceSei);
-+
-+          for (int i = 0; i < faceSei.Size(); i++)
-+          {
-+                *outfile << "facet normal ";
-+                const Point3d& p1 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(1));
-+                const Point3d& p2 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(2));
-+                const Point3d& p3 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(3));
-+
-+                Vec3d normal = Cross(p2-p1,p3-p1);
-+                if (normal.Length() != 0)
-+                {
-+                        normal /= (normal.Length());
-+                }
-+
-+                *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
-+                *outfile << "outer loop\n";
-+
-+                *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
-+                *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
-+                *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
-+
-+                *outfile << "endloop\n";
-+                *outfile << "endfacet\n";
-+          }
-+      }
-+      *outfile << "endsolid Boundary_" << faceBCs.Elem(bcInd) << "\n";
-+  }
-+}
-+
-+
-+
-+
-+/*
-+ *
-+ *  write surface mesh as VRML file
-+ *
-+ */
-+
-+void WriteVRMLFormat (const Mesh & mesh,
-+                    bool faces,
-+                    const string & filename)
-+{
-+
-+  if (faces)
-+
-+    {
-+      // Output in VRML, IndexedFaceSet is used
-+      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
-+
-+      int np = mesh.GetNP();
-+      int nse = mesh.GetNSE();
-+      int i, j;
-+
-+      ofstream outfile (filename.c_str());
-+
-+      outfile.precision(6);
-+      outfile.setf (ios::fixed, ios::floatfield);
-+      outfile.setf (ios::showpoint);
-+
-+      outfile << "#VRML V2.0 utf8 \n"
-+               "Background {\n"
-+               "    skyColor [1 1 1]\n"
-+               "    groundColor [1 1 1]\n"
-+               "}\n"
-+               "Group{ children [\n"
-+               "Shape{ \n"
-+               "appearance Appearance { material Material { }} \n"
-+                 "geometry IndexedFaceSet { \n"
-+                 "coord Coordinate { point [ \n";
-+
-+
-+      for (i = 1; i <= np; i++)
-+        {
-+          const Point3d & p = mesh.Point(i);
-+          outfile.width(10);
-+          outfile << p.X() << " ";
-+          outfile << p.Y() << " ";
-+          outfile << p.Z() << " \n";
-+      }
-+
-+      outfile << "  ] } \n"
-+                 "coordIndex [ \n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        const Element2d & el = mesh.SurfaceElement(i);
-+
-+        for (j = 1; j <= 3; j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j)-1;
-+          }
-+        outfile << " -1 \n";
-+      }
-+
-+      outfile << "  ] \n";
-+
-+      //define number and RGB definitions of colors
-+      outfile << "color Color { color [1 0 0, 0 1 0, 0 0 1, 1 1 0]} \n"
-+                 "colorIndex [\n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
-+          outfile << endl;
-+      }
-+
-+      outfile << " ] \n"
-+                 "colorPerVertex FALSE \n"
-+                 "creaseAngle 0 \n"
-+               "solid FALSE \n"
-+                 "ccw FALSE \n"
-+               "convex TRUE \n"
-+                 "} } # end of Shape\n"
-+               "] }\n";
-+
-+    } /* end of VRMLFACES */
-+
-+
-+  else
-+
-+    {
-+        // Output in VRML, IndexedLineSet is used
-+      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
-+
-+      int np = mesh.GetNP();
-+      int nse = mesh.GetNSE();
-+      int i, j;
-+
-+      ofstream outfile (filename.c_str());
-+
-+      outfile.precision(6);
-+      outfile.setf (ios::fixed, ios::floatfield);
-+      outfile.setf (ios::showpoint);
-+
-+      outfile << "#VRML V2.0 utf8 \n"
-+               "Background {\n"
-+               "    skyColor [1 1 1]\n"
-+               "    groundColor [1 1 1]\n"
-+               "}\n"
-+               "Group{ children [\n"
-+               "Shape{ \n"
-+               "appearance Appearance { material Material { }} \n"
-+                 "geometry IndexedLineSet { \n"
-+                 "coord Coordinate { point [ \n";
-+
-+
-+      for (i = 1; i <= np; i++)
-+        {
-+          const Point3d & p = mesh.Point(i);
-+          outfile.width(10);
-+          outfile << p.X() << " ";
-+          outfile << p.Y() << " ";
-+          outfile << p.Z() << " \n";
-+      }
-+
-+      outfile << "  ] } \n"
-+                 "coordIndex [ \n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        const Element2d & el = mesh.SurfaceElement(i);
-+
-+        for (j = 1; j <= 3; j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j)-1;
-+          }
-+        outfile.width(8);
-+        outfile << el.PNum(1)-1;
-+        outfile << " -1 \n";
-+      }
-+
-+      outfile << "  ] \n";
-+
-+/* Uncomment if you want color mesh
-+      outfile << "color Color { color [1 1 1, 0 1 0, 0 0 1, 1 1 0]} \n"
-+                 "colorIndex [\n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
-+          outfile << endl;
-+      }
-+
-+      outfile << " ] \n"
-+*/
-+      outfile << "colorPerVertex FALSE \n"
-+                 "} } #end of Shape\n"
-+               "] } \n";
-+
-+    }
-+
-+}
-+
-+
-+
-+
-+
-+
-+/*
-+ * FEPP .. a finite element package developed at University Linz, Austria
-+ */
-+void WriteFEPPFormat (const Mesh & mesh,
-+                    const CSGeometry & geom,
-+                    const string & filename)
-+{
-+
-+  ofstream outfile (filename.c_str());
-+
-+  if (mesh.GetDimension() == 3)
-+
-+    {
-+
-+      // output for FEPP
-+
-+      int np = mesh.GetNP();
-+      int ne = mesh.GetNE();
-+      int nse = mesh.GetNSE();
-+      int ns = mesh.GetNFD();
-+      int i, j;
-+
-+      outfile.precision(5);
-+      outfile.setf (ios::fixed, ios::floatfield);
-+      outfile.setf (ios::showpoint);
-+
-+      outfile << "volumemesh4" << endl;
-+      outfile << nse << endl;
-+      for (i = 1; i <= nse; i++)
-+      {
-+        const Element2d & el = mesh.SurfaceElement(i);
-+
-+        //      int facenr = mesh.facedecoding.Get(el.GetIndex()).surfnr;
-+        outfile.width(4);
-+        outfile << el.GetIndex() << " ";
-+        outfile.width(4);
-+        //      outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
-+        outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
-+        outfile.width(4);
-+        outfile << el.GetNP() << "    ";
-+        for (j = 1; j <= el.GetNP(); j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << "\n";
-+      }
-+
-+
-+      outfile << ne << "\n";
-+      for (i = 1; i <= ne; i++)
-+      {
-+        const Element & el = mesh.VolumeElement(i);
-+        outfile.width(4);
-+        outfile << el.GetIndex() << " ";
-+        outfile.width(4);
-+        outfile << el.GetNP() << " ";
-+        for (j = 1; j <= el.GetNP(); j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << "\n";
-+      }
-+
-+      outfile << np << "\n";
-+      for (i = 1; i <= np; i++)
-+      {
-+        const Point3d & p = mesh.Point(i);
-+
-+        outfile.width(10);
-+        outfile << p.X() << " ";
-+        outfile.width(9);
-+        outfile << p.Y() << " ";
-+        outfile.width(9);
-+        outfile << p.Z() << "\n";
-+      }
-+
-+      /*
-+      if (typ == WRITE_FEPPML)
-+      {
-+        int nbn =  mesh.mlbetweennodes.Size();
-+        outfile << nbn << "\n";
-+        for (i = 1; i <= nbn; i++)
-+          outfile << mesh.mlbetweennodes.Get(i).I1() << " "
-+                  << mesh.mlbetweennodes.Get(i).I2() << "\n";
-+
-+
-+        //      int ncon = mesh.connectedtonode.Size();
-+        //      outfile << ncon << "\n";
-+        //      for (i = 1; i <= ncon; i++)
-+        //        outfile << i << " " << mesh.connectedtonode.Get(i) << endl;
-+      }
-+      */
-+
-+
-+      // write CSG surfaces
-+      if (&geom && geom.GetNSurf() >= ns)
-+      {
-+        outfile << ns << endl;
-+        for (i = 1; i <= ns; i++)
-+          geom.GetSurface(mesh.GetFaceDescriptor(i).SurfNr())->Print(outfile);
-+      }
-+      else
-+      outfile << "0" << endl;
-+    }
-+
-+
-+  else
-+
-+    { // 2D fepp format
-+
-+      ;
-+      /*
-+      extern SplineGeometry2d * geometry2d;
-+      if (geometry2d)
-+      Save2DMesh (mesh, &geometry2d->GetSplines(), outfile);
-+      else
-+      Save2DMesh (mesh, 0, outfile);
-+      */
-+    }
-+}
-+
-+
-+
-+
-+
-+
-+/*
-+ *  Edge element mesh format
-+ *  points, elements, edges
-+ */
-+
-+void WriteEdgeElementFormat (const Mesh & mesh,
-+                           const CSGeometry & geom,
-+                           const string & filename)
-+{
-+  cout << "write edge element format" << endl;
-+
-+  const MeshTopology * top = &mesh.GetTopology();
-+  int npoints = mesh.GetNP();
-+  int nelements = mesh.GetNE();
-+  int nsurfelem = mesh.GetNSE();
-+  int nedges = top->GetNEdges();
-+  int i, j;
-+
-+  int inverttets = mparam.inverttets;
-+  int invertsurf = mparam.inverttrigs;
-+  Array<int> edges;
-+
-+  ofstream outfile (filename.c_str());
-+
-+  outfile.precision(6);
-+  outfile.setf (ios::fixed, ios::floatfield);
-+  outfile.setf (ios::showpoint);
-+
-+
-+  // vertices with coordinates
-+  outfile << npoints << "\n";
-+  for (i = 1; i <= npoints; i++)
-+    {
-+      const Point3d & p = mesh.Point(i);
-+
-+      outfile.width(10);
-+      outfile << p.X() << " ";
-+      outfile.width(9);
-+      outfile << p.Y() << " ";
-+      outfile.width(9);
-+      outfile << p.Z() << "\n";
-+    }
-+
-+  // element - edge - list
-+  outfile << nelements << " " << nedges << "\n";
-+  for (i = 1; i <= nelements; i++)
-+    {
-+      Element el = mesh.VolumeElement(i);
-+      if (inverttets)
-+              el.Invert();
-+      outfile.width(4);
-+      outfile << el.GetIndex() << "  ";
-+      outfile.width(8);
-+      outfile << el.GetNP();
-+      for (j = 1; j <= el.GetNP(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << el.PNum(j);
-+      }
-+
-+      top->GetElementEdges(i,edges);
-+      outfile << endl << "      ";
-+      outfile.width(8);
-+      outfile << edges.Size();
-+      for (j=1; j <= edges.Size(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << edges[j-1];
-+      }
-+      outfile << "\n";
-+
-+      // orientation:
-+      top->GetElementEdgeOrientations(i,edges);
-+      outfile << "              ";
-+      for (j=1; j <= edges.Size(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << edges[j-1];
-+      }
-+      outfile << "\n";
-+    }
-+
-+  // surface element - edge - list (with boundary conditions)
-+  outfile << nsurfelem << "\n";
-+  for (i = 1; i <= nsurfelem; i++)
-+    {
-+      Element2d el = mesh.SurfaceElement(i);
-+      if (invertsurf)
-+      el.Invert();
-+      outfile.width(4);
-+      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "  ";
-+      outfile.width(8);
-+      outfile << el.GetNP();
-+      for (j = 1; j <= el.GetNP(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << el.PNum(j);
-+      }
-+
-+      top->GetSurfaceElementEdges(i,edges);
-+      outfile << endl << "      ";
-+      outfile.width(8);
-+      outfile << edges.Size();
-+      for (j=1; j <= edges.Size(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << edges[j-1];
-+      }
-+      outfile << "\n";
-+    }
-+
-+
-+  int v1, v2;
-+  // edge - vertex - list
-+  outfile << nedges << "\n";
-+  for (i=1; i <= nedges; i++)
-+    {
-+      top->GetEdgeVertices(i,v1,v2);
-+      outfile.width(4);
-+      outfile << v1;
-+      outfile << " ";
-+      outfile.width(8);
-+      outfile << v2 << endl;
-+    }
-+}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+#ifdef OLDSTYLE_WRITE
-+
-+
-+void WriteFile (int typ,
-+              const Mesh & mesh,
-+              const CSGeometry & geom,
-+              const char * filename,
-+              const char * geomfile,
-+              double h)
-+{
-+
-+
-+  int inverttets = mparam.inverttets;
-+  int invertsurf = mparam.inverttrigs;
-+
-+
-+
-+
-+
-+
-+
-+
-+  if (typ == WRITE_EDGEELEMENT)
-+    {
-+      // write edge element file
-+      // Peter Harscher, ETHZ
-+
-+      cout << "Write Edge-Element Format" << endl;
-+
-+      ofstream outfile (filename);
-+
-+      int i, j;
-+      int ned;
-+
-+      // hash table representing edges;
-+      INDEX_2_HASHTABLE<int> edgeht(mesh.GetNP());
-+
-+      // list of edges
-+      Array<INDEX_2> edgelist;
-+
-+      // edge (point) on boundary ?
-+      BitArray bedge, bpoint(mesh.GetNP());
-+
-+      static int eledges[6][2] = { { 1, 2 } , { 1, 3 } , { 1, 4 },
-+                                 { 2, 3 } , { 2, 4 } , { 3, 4 } };
-+
-+      // fill hashtable   (point1, point2)  ---->  edgenr
-+      for (i = 1; i <= mesh.GetNE(); i++)
-+      {
-+        const Element & el = mesh.VolumeElement (i);
-+        INDEX_2 edge;
-+        for (j = 1; j <= 6; j++)
-+          {
-+            edge.I1() = el.PNum (eledges[j-1][0]);
-+            edge.I2() = el.PNum (eledges[j-1][1]);
-+            edge.Sort();
-+
-+            if (!edgeht.Used (edge))
-+              {
-+                edgelist.Append (edge);
-+                edgeht.Set (edge, edgelist.Size());
-+              }
-+          }
-+      }
-+
-+
-+      // set bedges, bpoints
-+      bedge.SetSize (edgelist.Size());
-+      bedge.Clear();
-+      bpoint.Clear();
-+
-+      for (i = 1; i <= mesh.GetNSE(); i++)
-+      {
-+        const Element2d & sel = mesh.SurfaceElement(i);
-+        for (j = 1; j <= 3; j++)
-+          {
-+            bpoint.Set (sel.PNum(j));
-+
-+            INDEX_2 edge;
-+            edge.I1() = sel.PNum(j);
-+            edge.I2() = sel.PNum(j%3+1);
-+            edge.Sort();
-+
-+            bedge.Set (edgeht.Get (edge));
-+          }
-+      }
-+
-+
-+
-+      outfile << mesh.GetNE() << endl;
-+      // write element ---> point
-+      for (i = 1; i <= mesh.GetNE(); i++)
-+      {
-+        const Element & el = mesh.VolumeElement(i);
-+
-+        outfile.width(8);
-+        outfile << i;
-+        for (j = 1; j <= 4; j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << endl;
-+      }
-+
-+      // write element ---> edge
-+      for (i = 1; i <= mesh.GetNE(); i++)
-+      {
-+        const Element & el = mesh.VolumeElement (i);
-+        INDEX_2 edge;
-+        for (j = 1; j <= 6; j++)
-+          {
-+            edge.I1() = el.PNum (eledges[j-1][0]);
-+            edge.I2() = el.PNum (eledges[j-1][1]);
-+            edge.Sort();
-+
-+            outfile.width(8);
-+            outfile << edgeht.Get (edge);
-+          }
-+        outfile << endl;
-+      }
-+
-+      // write points
-+      outfile << mesh.GetNP() << endl;
-+      outfile.precision (6);
-+      for (i = 1; i <= mesh.GetNP(); i++)
-+      {
-+        const Point3d & p = mesh.Point(i);
-+
-+        for (j = 1; j <= 3; j++)
-+          {
-+            outfile.width(8);
-+            outfile << p.X(j);
-+          }
-+        outfile << "       "
-+                << (bpoint.Test(i) ? "1" : 0) << endl;
-+      }
-+
-+      // write edges
-+      outfile << edgelist.Size() << endl;
-+      for (i = 1; i <= edgelist.Size(); i++)
-+      {
-+        outfile.width(8);
-+        outfile << edgelist.Get(i).I1();
-+        outfile.width(8);
-+        outfile << edgelist.Get(i).I2();
-+        outfile << "       "
-+                << (bedge.Test(i) ? "1" : "0") << endl;
-+      }
-+    }
-+
-+
-+
-+
-+}
-+#endif
-+}
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.hpp netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.hpp
---- netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.hpp       2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.hpp      2018-03-01 15:45:08.693877037 +0300
-@@ -1,166 +1,166 @@
--#ifndef WRITEUSER
--#define WRITEUSER
--
--/**************************************************************************/
--/* File:    writeuser.hh                                                  */
--/* Authors: many                                                          */
--/* Date:    10. Dec. 97                                                   */
--/**************************************************************************/
--
--
--extern
--void WriteFile (int typ,
--                const Mesh & mesh,
--                const CSGeometry & geom,
--                const char * filename,
--                const char * geomfile = NULL,
--                double h = 0);
--
--
--
--extern
--void ReadFile (Mesh & mesh,
--               const string & filename);
--
--
--
--
--
--
--extern
--void WriteNeutralFormat (const Mesh & mesh,
--                         const CSGeometry & geom,
--                         const string & filename);
--
--extern
--void WriteSurfaceFormat (const Mesh & mesh,
--                         const string & filename);
--
--extern
--void WriteSTLFormat (const Mesh & mesh,
--                     const string & filename);
--
--
--// Philippose - 16 August 2010
--// Added the STL Extended format in which
--// each face of the geometry is treated as
--// a separate "solid" entity in the STL file
--extern
--void WriteSTLExtFormat (const Mesh & mesh,
--                        const string & filename);
--
--
--extern
--void WriteVRMLFormat (const Mesh & mesh,
--                      bool faces,
--                      const string & filename);
--
--extern
--void WriteFEPPFormat (const Mesh & mesh,
--                      const CSGeometry & geom,
--                      const string & filename);
--
--extern
--void WriteGmshFormat (const Mesh & mesh,
--                      const CSGeometry & geom,
--                      const string & filename);
--
--
--// Philippose - 29/01/2009
--// Added GMSH v2.xx Mesh Export support
--void WriteGmsh2Format (const Mesh & mesh,
--                       const CSGeometry & geom,
--                       const string & filename);
--
--
--// Philippose - 25/10/2009
--// Added OpenFOAM 1.5+ Mesh Export support
--extern 
--void WriteOpenFOAM15xFormat (const Mesh & mesh, 
--                             const string & casename,
--                                                       const bool compressed);
--
--
--extern
--void WriteUserChemnitz (const Mesh & mesh,
--                        const string & filename);
--
--extern
--void WriteJCMFormat (const Mesh & mesh,
--                     const CSGeometry & geom,
--                     const string & filename);
--
--
--extern
--void WriteDiffPackFormat (const Mesh & mesh,
--                          const CSGeometry & geom,
--                          const string & filename);
--
--extern
--void WriteTochnogFormat (const Mesh & mesh,
--                         const string & filename);
--
--extern
--void WriteTecPlotFormat (const Mesh & mesh,
--                         const CSGeometry & geom,
--                         const string & filename);
--
--extern
--void WriteAbaqusFormat (const Mesh & mesh,
--                        const string & filename);
--
--extern
--void WriteFluentFormat (const Mesh & mesh,
--                        const string & filename);
--
--extern
--void WritePermasFormat (const Mesh & mesh,
--                        const string & filename);
--
--extern
--void WriteFEAPFormat (const Mesh & mesh,
--                      const string & filename);
--
--extern
--void WriteElmerFormat (const Mesh & mesh,
--                       const string & filename);
--
--
--extern
--void WriteEdgeElementFormat (const Mesh & mesh,
--                             const CSGeometry & geom,
--                             const string & filename);
--
--
--
--#ifdef OLIVER
--extern
--void WriteTETFormat (const Mesh & mesh,
--                     const string & filename);
--
--#endif
--
--extern void ReadTETFormat (Mesh & mesh,
--                           const string & filename);
--
--
--extern void ReadFNFFormat (Mesh & mesh,
--                           const string & filename);
--
--
--
--void WriteDolfinFormat (const Mesh & mesh,
--                        const string & filename);
--
--
--extern void RegisterUserFormats (Array<const char*> & names,
--                                 Array<const char*> & extensions);
--
--
--extern bool WriteUserFormat (const string & format,
--                             const Mesh & mesh,
--                             const NetgenGeometry & geom,
--                             const string & filename);
--
--#endif
--
-+#ifndef WRITEUSER
-+#define WRITEUSER
-+
-+/**************************************************************************/
-+/* File:    writeuser.hh                                                  */
-+/* Authors: many                                                          */
-+/* Date:    10. Dec. 97                                                   */
-+/**************************************************************************/
-+
-+
-+extern
-+void WriteFile (int typ,
-+                const Mesh & mesh,
-+                const CSGeometry & geom,
-+                const char * filename,
-+                const char * geomfile = NULL,
-+                double h = 0);
-+
-+
-+
-+extern
-+void ReadFile (Mesh & mesh,
-+               const string & filename);
-+
-+
-+
-+
-+
-+
-+extern
-+void WriteNeutralFormat (const Mesh & mesh,
-+                         const CSGeometry & geom,
-+                         const string & filename);
-+
-+extern
-+void WriteSurfaceFormat (const Mesh & mesh,
-+                         const string & filename);
-+
-+extern
-+void WriteSTLFormat (const Mesh & mesh,
-+                     const string & filename);
-+
-+
-+// Philippose - 16 August 2010
-+// Added the STL Extended format in which
-+// each face of the geometry is treated as
-+// a separate "solid" entity in the STL file
-+extern
-+void WriteSTLExtFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+
-+extern
-+void WriteVRMLFormat (const Mesh & mesh,
-+                      bool faces,
-+                      const string & filename);
-+
-+extern
-+void WriteFEPPFormat (const Mesh & mesh,
-+                      const CSGeometry & geom,
-+                      const string & filename);
-+
-+extern
-+void WriteGmshFormat (const Mesh & mesh,
-+                      const CSGeometry & geom,
-+                      const string & filename);
-+
-+
-+// Philippose - 29/01/2009
-+// Added GMSH v2.xx Mesh Export support
-+void WriteGmsh2Format (const Mesh & mesh,
-+                       const CSGeometry & geom,
-+                       const string & filename);
-+
-+
-+// Philippose - 25/10/2009
-+// Added OpenFOAM 1.5+ Mesh Export support
-+extern
-+void WriteOpenFOAM15xFormat (const Mesh & mesh,
-+                             const string & casename,
-+                                                       const bool compressed);
-+
-+
-+extern
-+void WriteUserChemnitz (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WriteJCMFormat (const Mesh & mesh,
-+                     const CSGeometry & geom,
-+                     const string & filename);
-+
-+
-+extern
-+void WriteDiffPackFormat (const Mesh & mesh,
-+                          const CSGeometry & geom,
-+                          const string & filename);
-+
-+extern
-+void WriteTochnogFormat (const Mesh & mesh,
-+                         const string & filename);
-+
-+extern
-+void WriteTecPlotFormat (const Mesh & mesh,
-+                         const CSGeometry & geom,
-+                         const string & filename);
-+
-+extern
-+void WriteAbaqusFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WriteFluentFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WritePermasFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WriteFEAPFormat (const Mesh & mesh,
-+                      const string & filename);
-+
-+extern
-+void WriteElmerFormat (const Mesh & mesh,
-+                       const string & filename);
-+
-+
-+extern
-+void WriteEdgeElementFormat (const Mesh & mesh,
-+                             const CSGeometry & geom,
-+                             const string & filename);
-+
-+
-+
-+#ifdef OLIVER
-+extern
-+void WriteTETFormat (const Mesh & mesh,
-+                     const string & filename);
-+
-+#endif
-+
-+extern void ReadTETFormat (Mesh & mesh,
-+                           const string & filename);
-+
-+
-+extern void ReadFNFFormat (Mesh & mesh,
-+                           const string & filename);
-+
-+
-+
-+void WriteDolfinFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+
-+extern void RegisterUserFormats (Array<const char*> & names,
-+                                 Array<const char*> & extensions);
-+
-+
-+extern bool WriteUserFormat (const string & format,
-+                             const Mesh & mesh,
-+                             const NetgenGeometry & geom,
-+                             const string & filename);
-+
-+#endif
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am   2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am  2018-03-01 15:41:03.991158254 +0300
-@@ -15,7 +15,7 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libmesh.la
-+noinst_LTLIBRARIES = libmesh.la
- libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
-       clusters.cpp curvedelems.cpp delaunay.cpp delaunay2d.cpp            \
-@@ -30,8 +30,5 @@
-       topology.cpp triarls.cpp validate.cpp zrefine.cpp bcfunctions.cpp   \
-       parallelmesh.cpp  paralleltop.cpp  paralleltop.hpp basegeom.cpp 
--libmesh_la_LIBADD =  $(top_builddir)/libsrc/linalg/libla.la \
--      $(top_builddir)/libsrc/gprim/libgprim.la \
--      $(top_builddir)/libsrc/general/libgen.la \
--      -lz
-+libmesh_la_LIBADD = -lz
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp    2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp   2018-03-01 15:41:03.991158254 +0300
-@@ -75,6 +75,9 @@
-   static int timer = NgProfiler::CreateTimer ("FindInnerPoint");
-   NgProfiler::RegionTimer reg (timer);
-+  if ( points.Size() < 3 )
-+    return 0;
-+
-   Array<Vec3d> a;
-   Array<double> c;
-   Mat<3> m, inv;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp 2018-03-01 15:41:03.991158254 +0300
-@@ -1219,6 +1219,7 @@
-             tetused = 0;
-             tetused[0] = 1;
-+              int nbtetused = 0;
-             for (int l = 2; l < nsuround; l++)
-               {
-@@ -1239,10 +1240,12 @@
-                             
-                             tetused[k] = 1; 
-                             suroundpts[l] = newpi;
-+                              ++nbtetused;
-                           }                   
-                     }
-               }
--
-+              if ( nbtetused < nsuround )
-+                continue;
-             
-             bad1 = 0;
-             for (int k = 0; k < nsuround; k++)
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp 2018-03-01 15:41:03.992158147 +0300
-@@ -1,4 +1,5 @@
- #include <mystdlib.h>
-+#include <float.h> // to get DBL_MIN defined
- #include "meshing.hpp"  
-@@ -666,7 +667,8 @@
-         double det = trans.Det();
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -722,7 +724,8 @@
-             double det = trans(0,0)*trans(1,1)-trans(1,0)*trans(0,1);
--            if (det <= 0)
-+            // if (det <= 0)
-+            if (det <= DBL_MIN)  // avoid FPE
-               {
-                 dd = 0;
-                 return 1e12;
-@@ -806,7 +809,8 @@
-           = dtrans(0,0) * trans(1,1) - trans(0,1) * dtrans(1,0)
-           + trans(0,0) * dtrans(1,1) - dtrans(0,1) * trans(1,0);
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -856,7 +860,8 @@
-         frob /= 2;
-         double det = trans.Det();
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -1864,7 +1869,8 @@
-       case PYRAMID:
-         {
-           double noz = 1-p(2);
--          if (noz == 0.0) noz = 1e-10;
-+          //if (noz == 0.0) noz = 1e-10;
-+          if (noz <= DBL_MIN) noz = 1e-10; // avoid FPE
-           double xi  = p(0) / noz;
-           double eta = p(1) / noz;
-@@ -2030,7 +2036,8 @@
-         double det = -trans.Det();
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob * frob / det;
-@@ -2102,7 +2109,8 @@
-         ddet *= -1;
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -2184,7 +2192,7 @@
-       
-         det *= -1;
-       
--        if (det <= 0)
-+        if (det <= DBL_MIN)
-           err += 1e12;
-         else
-           {
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp 2018-03-01 15:41:03.992158147 +0300
-@@ -15,6 +15,7 @@
-     Classes for NETGEN
-   */
-+class Mesh; // added due to compilation errors on some platforms
-   enum ELEMENT_TYPE { 
-@@ -360,7 +361,7 @@
-         {
- #ifdef DEBUG
-           if (typ != QUAD && typ != QUAD6 && typ != QUAD8)
--            PrintSysError ("element2d::GetNV not implemented for typ", typ)
-+            PrintSysError ("element2d::GetNV not implemented for typ", typ);
- #endif
-           return 4;
-         }
-@@ -618,7 +619,7 @@
-         return 8;
-       default:
- #ifdef DEBUG
--        PrintSysError ("Element3d::GetNV not implemented for typ ", typ)
-+        PrintSysError ("Element3d::GetNV not implemented for typ ", typ);
- #endif
-           ;
-       }
-@@ -682,7 +683,7 @@
-       case PRISM12: return 5;
-       default:
- #ifdef DEBUG
--        PrintSysError ("element3d::GetNFaces not implemented for typ", typ)
-+        PrintSysError ("element3d::GetNFaces not implemented for typ", typ);
- #endif
-           ;
-       }
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am      2018-03-01 15:41:03.993158039 +0300
-@@ -14,10 +14,10 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libocc.la
-+noinst_LTLIBRARIES = libocc.la
- if NGGUI
--lib_LTLIBRARIES += liboccvis.la 
-+lib_LTLIBRARIES = liboccvis.la 
- endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx    2018-03-01 15:41:03.993158039 +0300
-@@ -47,9 +47,7 @@
- #include <TopOpeBRep_EdgesIntersector.hxx>
- #include <TopOpeBRep_Point2d.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
--#include <TopTools_MapOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Edge.hxx>
- #include <TopoDS_Vertex.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx    2018-03-01 15:41:03.993158039 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter2d_HeaderFile
- #define _Partition_Inter2d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _Standard_Real_HeaderFile
-@@ -36,11 +38,13 @@
- #ifndef _Standard_Boolean_HeaderFile
- #include <Standard_Boolean.hxx>
- #endif
-+
-+#include <TopTools_MapOfShape.hxx>
-+#include <TopTools_ListOfShape.hxx>
-+
- class BRepAlgo_AsDes;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Vertex;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx    2018-03-01 15:41:03.993158039 +0300
-@@ -48,7 +48,6 @@
- #include <TopOpeBRepTool_BoxSort.hxx>
- #include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Compound.hxx>
- #include <TopoDS_Edge.hxx>
-@@ -206,7 +205,7 @@
-   Handle (Geom_Surface) S   = BRep_Tool::Surface(F,L);
-   if (S->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
--    S = (*(Handle_Geom_RectangularTrimmedSurface*)&S)->BasisSurface();
-+    S = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
-   }
-   if (!S->IsUPeriodic() && !S->IsVPeriodic())
-     return;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx    2018-03-01 15:41:03.993158039 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter3d_HeaderFile
- #define _Partition_Inter3d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
-@@ -36,6 +38,9 @@
- #ifndef _TopTools_MapOfShape_HeaderFile
- #include <TopTools_MapOfShape.hxx>
- #endif
-+#ifndef _TopTools_ListOfShape_HeaderFile
-+#include <TopTools_ListOfShape.hxx>
-+#endif
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
-@@ -43,10 +48,7 @@
- #include <Standard_Boolean.hxx>
- #endif
- class BRepAlgo_AsDes;
--class TopTools_ListOfShape;
--class TopTools_DataMapOfShapeShape;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Shape;
- class TopoDS_Vertex;
- class TopoDS_Edge;
-@@ -83,13 +85,13 @@
-    void FacesPartition(const TopoDS_Face& F1,const TopoDS_Face& F2) ;
-    Standard_Boolean IsDone(const TopoDS_Face& F1,const TopoDS_Face& F2) const;
-    TopTools_MapOfShape& TouchedFaces() ;
--   Handle_BRepAlgo_AsDes AsDes() const;
-+   Handle(BRepAlgo_AsDes) AsDes() const;
-    TopTools_MapOfShape& NewEdges() ;
-    Standard_Boolean HasSameDomainF(const TopoDS_Shape& F) const;
-    Standard_Boolean IsSameDomainF(const TopoDS_Shape& F1,const TopoDS_Shape& F2) const;
-    const TopTools_ListOfShape& SameDomain(const TopoDS_Face& F) const;
-    TopoDS_Vertex ReplaceSameDomainV(const TopoDS_Vertex& V,const TopoDS_Edge& E) const;
--   Handle_BRepAlgo_AsDes SectionEdgesAD() const;
-+   Handle(BRepAlgo_AsDes) SectionEdgesAD() const;
-    Standard_Boolean IsSectionEdge(const TopoDS_Edge& E) const;
-    Standard_Boolean HasSectionEdge(const TopoDS_Face& F) const;
-    Standard_Boolean IsSplitOn(const TopoDS_Edge& NewE,const TopoDS_Edge& OldE,const TopoDS_Face& F) const;
-@@ -121,11 +123,11 @@
-    // Fields PRIVATE
-    //
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    TopTools_DataMapOfShapeListOfShape myDone;
-    TopTools_MapOfShape myTouched;
-    TopTools_MapOfShape myNewEdges;
--   Handle_BRepAlgo_AsDes mySectionEdgesAD;
-+   Handle(BRepAlgo_AsDes) mySectionEdgesAD;
-    TopTools_DataMapOfShapeListOfShape mySameDomainFM;
-    TopTools_DataMapOfShapeShape mySameDomainVM;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx       2018-03-01 15:41:03.994157932 +0300
-@@ -38,8 +38,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
--
- #ifndef _Standard_HeaderFile
- #include <Standard.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx     2018-03-01 15:41:03.994157932 +0300
-@@ -210,7 +210,7 @@
-     Cc->D1(uc, PC, CTg1);
-     if (!isForward) CTg1.Reverse();
--    Standard_Real anglemin = 3 * PI, tolAng = 1.e-8;
-+    Standard_Real anglemin = 3 * M_PI, tolAng = 1.e-8;
-     // select an edge whose first derivative is most left of CTg1
-     // ie an angle between Tg1 and CTg1 is least
-@@ -234,7 +234,7 @@
-       // -PI < angle < PI
-       Standard_Real angle = Tg1.Angle(CTg1);
--      if (PI - Abs(angle) <= tolAng)
-+      if (M_PI - Abs(angle) <= tolAng)
-       {
-         // an angle is too close to PI; assure that an angle sign really
-         // reflects an edge position: +PI - an edge is worst,
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx     2018-03-01 15:41:03.994157932 +0300
-@@ -24,7 +24,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
- class BRepAlgo_Image;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx     2018-03-01 15:41:03.994157932 +0300
-@@ -13,6 +13,9 @@
- #ifndef _TopTools_ListOfShape_HeaderFile
- #include <TopTools_ListOfShape.hxx>
- #endif
-+#ifndef _TopTools_MapOfOrientedShape_HeaderFile
-+#include <TopTools_MapOfOrientedShape.hxx>
-+#endif
- #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #endif
-@@ -23,8 +26,6 @@
- #include <Standard_Real.hxx>
- #endif
- class TopoDS_Shape;
--class TopTools_ListOfShape;
--class TopTools_MapOfOrientedShape;
- class TopoDS_Edge;
- class TopoDS_Face;
- class gp_Vec;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx    2018-03-01 15:41:03.995157825 +0300
-@@ -48,7 +48,6 @@
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #include <TopTools_IndexedMapOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
- #include <TopTools_SequenceOfShape.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx    2018-03-01 15:41:03.995157825 +0300
-@@ -28,9 +28,6 @@
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
--#include <Handle_BRepAlgo_AsDes.hxx>
--#endif
- #ifndef _BRepAlgo_Image_HeaderFile
- #include <BRepAlgo_Image.hxx>
- #endif
-@@ -45,7 +42,6 @@
- #endif
- class BRepAlgo_AsDes;
- class TopoDS_Shape;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-@@ -129,7 +125,7 @@
-    TopTools_DataMapOfShapeShape myFaceShapeMap;
-    TopTools_DataMapOfShapeShape myInternalFaces;
-    TopTools_DataMapOfShapeShape myIntNotClFaces;
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    BRepAlgo_Image myImagesFaces;
-    BRepAlgo_Image myImagesEdges;
-    BRepAlgo_Image myImageShape;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp      2018-03-01 15:41:03.995157825 +0300
-@@ -28,7 +28,7 @@
- #include <BRepAlgoAPI_Common.hxx>
- #include <BRepAlgoAPI_Fuse.hxx>
- #include <BRepAlgoAPI_Section.hxx>
--#include <BRepOffsetAPI_Sewing.hxx>
-+//#include <BRepOffsetAPI_Sewing.hxx>
- //#include <BRepAlgo_Sewing.hxx>
- #include <BRepOffsetAPI_MakeOffsetShape.hxx>
- #include <ShapeFix_Shape.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp    2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp   2018-03-01 15:45:08.690877359 +0300
-@@ -1,1467 +1,1570 @@
--#ifdef OCCGEOMETRY
--
--#include <mystdlib.h>
--#include <occgeom.hpp>
--#include <meshing.hpp>
--
--
--namespace netgen
--{
--
--#include "occmeshsurf.hpp"
--
--#define TCL_OK 0
--#define TCL_ERROR 1
--
--#define DIVIDEEDGESECTIONS 1000
--#define IGNORECURVELENGTH 1e-4
--#define VSMALL 1e-10
--
--
--   bool merge_solids = 1;
--
--
--  // can you please explain what you intend to compute here (JS) !!!
--   double Line :: Dist (Line l)
--   {
--      Vec<3> n = p1-p0;
--      Vec<3> q = l.p1-l.p0;
--      double nq = n*q;
--
--      Point<3> p = p0 + 0.5*n;
--      double lambda = (p-l.p0)*n / (nq + VSMALL);
--
--      if (lambda >= 0 && lambda <= 1)
--      {
--         double d = (p-l.p0-lambda*q).Length();
--         //        if (d < 1e-3) d = 1e99;
--         return d;
--      }
--      else
--         return 1e99;
--   }
--
--
--
--   double Line :: Length ()
--   {
--      return (p1-p0).Length();
--   }
--
--
--
--   inline Point<3> occ2ng (const gp_Pnt & p)
--   {
--      return  Point<3> (p.X(), p.Y(), p.Z());
--   }
--
--
--
--   double ComputeH (double kappa)
--   {
--      double hret;
--      kappa *= mparam.curvaturesafety;
--
--      if (mparam.maxh * kappa < 1)
--         hret = mparam.maxh;
--      else
--         hret = 1 / (kappa + VSMALL);
--
--      if (mparam.maxh < hret)
--         hret = mparam.maxh;
--
--      return (hret);
--   }
--
--
--
--
--   void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
--                           BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)
--   {
--      int ls = -1;
--
--      gp_Pnt pnt0,pnt1,pnt2;
--
--      prop->SetParameters (par0.X(), par0.Y());
--      pnt0 = prop->Value();
--
--      prop->SetParameters (par1.X(), par1.Y());
--      pnt1 = prop->Value();
--
--      prop->SetParameters (par2.X(), par2.Y());
--      pnt2 = prop->Value();
--
--      double aux;
--      double maxside = pnt0.Distance(pnt1);
--      ls = 2;
--      aux = pnt1.Distance(pnt2);
--      if(aux > maxside)
--      {
--         maxside = aux;
--         ls = 0;
--      }
--      aux = pnt2.Distance(pnt0);
--      if(aux > maxside)
--      {
--         maxside = aux;
--         ls = 1;
--      }
--
--
--
--      gp_Pnt2d parmid;
--
--      parmid.SetX( (par0.X()+par1.X()+par2.X()) / 3 );
--      parmid.SetY( (par0.Y()+par1.Y()+par2.Y()) / 3 );
--
--      if (depth%3 == 0)
--      {
--         double curvature = 0;
--
--         prop->SetParameters (parmid.X(), parmid.Y());
--         if (!prop->IsCurvatureDefined())
--         {
--            (*testout) << "curvature not defined!" << endl;
--            return;
--         }
--         curvature = max(fabs(prop->MinCurvature()),
--            fabs(prop->MaxCurvature()));
--
--         prop->SetParameters (par0.X(), par0.Y());
--         if (!prop->IsCurvatureDefined())
--         {
--            (*testout) << "curvature not defined!" << endl;
--            return;
--         }
--         curvature = max(curvature,max(fabs(prop->MinCurvature()),
--            fabs(prop->MaxCurvature())));
--
--         prop->SetParameters (par1.X(), par1.Y());
--         if (!prop->IsCurvatureDefined())
--         {
--            (*testout) << "curvature not defined!" << endl;
--            return;
--         }
--         curvature = max(curvature,max(fabs(prop->MinCurvature()),
--            fabs(prop->MaxCurvature())));
--
--         prop->SetParameters (par2.X(), par2.Y());
--         if (!prop->IsCurvatureDefined())
--         {
--            (*testout) << "curvature not defined!" << endl;
--            return;
--         }
--         curvature = max(curvature,max(fabs(prop->MinCurvature()),
--            fabs(prop->MaxCurvature())));
--
--         //(*testout) << "curvature " << curvature << endl;
--
--         if (curvature < 1e-3)
--         {
--            //(*testout) << "curvature too small (" << curvature << ")!" << endl;
--            return;
--            // return war bis 10.2.05 auskommentiert
--         }
--
--
--
--         h = ComputeH (curvature+1e-10);
--
--         if(h < 1e-4*maxside)
--            return;
--
--
--         if (h > 30) return;
--      }
--
--      if (h < maxside && depth < 10)
--      {
--         //cout << "\r h " << h << flush;
--         gp_Pnt2d pm;
--
--         //cout << "h " << h << " maxside " << maxside << " depth " << depth << endl;
--         //cout << "par0 " << par0.X() << " " << par0.Y()
--         //<< " par1 " << par1.X() << " " << par1.Y()
--         //   << " par2 " << par2.X() << " " << par2.Y()<< endl;
--
--         if(ls == 0)
--         {
--            pm.SetX(0.5*(par1.X()+par2.X())); pm.SetY(0.5*(par1.Y()+par2.Y()));
--            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
--            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
--         }
--         else if(ls == 1)
--         {
--            pm.SetX(0.5*(par0.X()+par2.X())); pm.SetY(0.5*(par0.Y()+par2.Y()));
--            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
--            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
--         }
--         else if(ls == 2)
--         {
--            pm.SetX(0.5*(par0.X()+par1.X())); pm.SetY(0.5*(par0.Y()+par1.Y()));
--            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
--            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
--         }
--
--      }
--      else
--      {
--         gp_Pnt pnt;
--         Point3d p3d;
--
--         prop->SetParameters (parmid.X(), parmid.Y());
--         pnt = prop->Value();
--         p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
--         mesh.RestrictLocalH (p3d, h);
--
--         p3d = Point3d(pnt0.X(), pnt0.Y(), pnt0.Z());
--         mesh.RestrictLocalH (p3d, h);
--
--         p3d = Point3d(pnt1.X(), pnt1.Y(), pnt1.Z());
--         mesh.RestrictLocalH (p3d, h);
--
--         p3d = Point3d(pnt2.X(), pnt2.Y(), pnt2.Z());
--         mesh.RestrictLocalH (p3d, h);
--
--         //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;
--
--      }
--   }
--
--
--
--   void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,
--                    Array<double> & params, Mesh & mesh)
--   {
--      double s0, s1;
--      double maxh = mparam.maxh;
--      int nsubedges = 1;
--      gp_Pnt pnt, oldpnt;
--      double svalue[DIVIDEEDGESECTIONS];
--
--      GProp_GProps system;
--      BRepGProp::LinearProperties(edge, system);
--      double L = system.Mass();
--
--      Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
--
--      double hvalue[DIVIDEEDGESECTIONS+1];
--      hvalue[0] = 0;
--      pnt = c->Value(s0);
--
--      double olddist = 0;
--      double dist = 0;
--
--      int tmpVal = (int)(DIVIDEEDGESECTIONS);
--
--      for (int i = 1; i <= tmpVal; i++)
--      {
--         oldpnt = pnt;
--         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
--         hvalue[i] = hvalue[i-1] +
--            1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
--            pnt.Distance(oldpnt);
--
--         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))
--         //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;
--
--         olddist = dist;
--         dist = pnt.Distance(oldpnt);
--      }
--
--      //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
--      nsubedges = max (1, int(floor(hvalue[DIVIDEEDGESECTIONS]+0.5)));
--
--      ps.SetSize(nsubedges-1);
--      params.SetSize(nsubedges+1);
--
--      int i = 1;
--      int i1 = 0;
--      do
--      {
--         if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)
--         {
--            params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
--            pnt = c->Value(params[i]);
--            ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));
--            i++;
--         }
--         i1++;
--         if (i1 > DIVIDEEDGESECTIONS)
--         {
--            nsubedges = i;
--            ps.SetSize(nsubedges-1);
--            params.SetSize(nsubedges+1);
--            cout << "divide edge: local h too small" << endl;
--         }
--      } while (i < nsubedges);
--
--      params[0] = s0;
--      params[nsubedges] = s1;
--
--      if (params[nsubedges] <= params[nsubedges-1])
--      {
--         cout << "CORRECTED" << endl;
--         ps.SetSize (nsubedges-2);
--         params.SetSize (nsubedges);
--         params[nsubedges] = s1;
--      }
--   }
--
--
--
--
--   void OCCFindEdges (OCCGeometry & geom, Mesh & mesh)
--   {
--      const char * savetask = multithread.task;
--      multithread.task = "Edge meshing";
--
--      (*testout) << "edge meshing" << endl;
--
--      int nvertices = geom.vmap.Extent();
--      int nedges = geom.emap.Extent();
--
--      (*testout) << "nvertices = " << nvertices << endl;
--      (*testout) << "nedges = " << nedges << endl;
--
--      double eps = 1e-6 * geom.GetBoundingBox().Diam();
--
--      for (int i = 1; i <= nvertices; i++)
--      {
--         gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));
--         MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
--
--         bool exists = 0;
--         if (merge_solids)
--            for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
--               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
--               {
--                  exists = 1;
--                  break;
--               }
--
--               if (!exists)
--                  mesh.AddPoint (mp);
--      }
--
--      (*testout) << "different vertices = " << mesh.GetNP() << endl;
--
--
--      int first_ep = mesh.GetNP()+1;
--
--      Array<int> face2solid[2];
--      for (int i = 0; i<2; i++)
--      {
--         face2solid[i].SetSize (geom.fmap.Extent());
--         face2solid[i] = 0;
--      }
--
--      int solidnr = 0;
--      for (TopExp_Explorer exp0(geom.shape, TopAbs_SOLID); exp0.More(); exp0.Next())
--      {
--         solidnr++;
--         for (TopExp_Explorer exp1(exp0.Current(), TopAbs_FACE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Face face = TopoDS::Face(exp1.Current());
--            int facenr = geom.fmap.FindIndex(face);
--
--            if (face2solid[0][facenr-1] == 0)
--               face2solid[0][facenr-1] = solidnr;
--            else
--               face2solid[1][facenr-1] = solidnr;
--         }
--      }
--
--
--      int total = 0;
--      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
--         for (TopExp_Explorer exp2(geom.fmap(i3), TopAbs_WIRE); exp2.More(); exp2.Next())
--            for (TopExp_Explorer exp3(exp2.Current(), TopAbs_EDGE); exp3.More(); exp3.Next())
--               total++;
--
--
--      int facenr = 0;
--      int edgenr = 0;
--
--
--      (*testout) << "faces = " << geom.fmap.Extent() << endl;
--      int curr = 0;
--
--      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
--      {
--         TopoDS_Face face = TopoDS::Face(geom.fmap(i3));
--         facenr = geom.fmap.FindIndex (face);       // sollte doch immer == i3 sein ??? JS
--
--         int solidnr0 = face2solid[0][i3-1];
--         int solidnr1 = face2solid[1][i3-1];
--
--         /* auskommentiert am 3.3.05 von robert
--         for (exp2.Init (geom.somap(solidnr0), TopAbs_FACE); exp2.More(); exp2.Next())
--         {
--         TopoDS_Face face2 = TopoDS::Face(exp2.Current());
--         if (geom.fmap.FindIndex(face2) == facenr)
--         {
--         //                 if (face.Orientation() != face2.Orientation()) swap (solidnr0, solidnr1);
--         }
--         }
--         */
--
--         mesh.AddFaceDescriptor (FaceDescriptor(facenr, solidnr0, solidnr1, 0));
--
--         // Philippose - 06/07/2009
--         // Add the face colour to the mesh data
--         Quantity_Color face_colour;
--
--         if(!(geom.face_colours.IsNull())
--            && (geom.face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour)))
--         {
--            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(face_colour.Red(),face_colour.Green(),face_colour.Blue()));
--         }
--         else
--         {
--            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(0.0,1.0,0.0));
--         }
--         // ACHTUNG! STIMMT NICHT ALLGEMEIN (RG)
--
--
--         Handle(Geom_Surface) occface = BRep_Tool::Surface(face);
--
--         for (TopExp_Explorer exp2 (face, TopAbs_WIRE); exp2.More(); exp2.Next())
--         {
--            TopoDS_Shape wire = exp2.Current();
--
--            for (TopExp_Explorer exp3 (wire, TopAbs_EDGE); exp3.More(); exp3.Next())
--            {
--               curr++;
--               (*testout) << "edge nr " << curr << endl;
--
--               multithread.percent = 100 * curr / double (total);
--               if (multithread.terminate) return;
--
--               TopoDS_Edge edge = TopoDS::Edge (exp3.Current());
--               if (BRep_Tool::Degenerated(edge))
--               {
--                  //(*testout) << "ignoring degenerated edge" << endl;
--                  continue;
--               }
--
--               if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
--                  geom.vmap.FindIndex(TopExp::LastVertex (edge)))
--               {
--                  GProp_GProps system;
--                  BRepGProp::LinearProperties(edge, system);
--
--                  if (system.Mass() < eps)
--                  {
--                     cout << "ignoring edge " << geom.emap.FindIndex (edge)
--                        << ". closed edge with length < " << eps << endl;
--                     continue;
--                  }
--               }
--
--
--               Handle(Geom2d_Curve) cof;
--               double s0, s1;
--               cof = BRep_Tool::CurveOnSurface (edge, face, s0, s1);
--
--               int geomedgenr = geom.emap.FindIndex(edge);
--
--               Array <MeshPoint> mp;
--               Array <double> params;
--
--               DivideEdge (edge, mp, params, mesh);
-- 
--               Array <int> pnums;
--               pnums.SetSize (mp.Size()+2);
--
--               if (!merge_solids)
--               {
--                  pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));
--                  pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));
--               }
--               else
--               {
--                  Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));
--                  Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));
--
--                  pnums[0] = -1;
--                  pnums.Last() = -1;
--                  for (PointIndex pi = 1; pi < first_ep; pi++)
--                  {
--                     if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;
--                     if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;
--                  }
--               }
--
--
--               for (int i = 1; i <= mp.Size(); i++)
--               {
--                  bool exists = 0;
--                  int j;
--                  for (j = first_ep; j <= mesh.GetNP(); j++)
--                     if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
--                     {
--                        exists = 1;
--                        break;
--                     }
--
--                     if (exists)
--                        pnums[i] = j;
--                     else
--                     {
--                        mesh.AddPoint (mp[i-1]);
--                        (*testout) << "add meshpoint " << mp[i-1] << endl;
--                        pnums[i] = mesh.GetNP();
--                     }
--               }
--               (*testout) << "NP = " << mesh.GetNP() << endl;
--
--               //(*testout) << pnums[pnums.Size()-1] << endl;
--
--               for (int i = 1; i <= mp.Size()+1; i++)
--               {
--                  edgenr++;
--                  Segment seg;
--
--                  seg[0] = pnums[i-1];
--                  seg[1] = pnums[i];
--                  seg.edgenr = edgenr;
--                  seg.si = facenr;
--                  seg.epgeominfo[0].dist = params[i-1];
--                  seg.epgeominfo[1].dist = params[i];
--                  seg.epgeominfo[0].edgenr = geomedgenr;
--                  seg.epgeominfo[1].edgenr = geomedgenr;
--
--                  gp_Pnt2d p2d;
--                  p2d = cof->Value(params[i-1]);
--                  //                  if (i == 1) p2d = cof->Value(s0);
--                  seg.epgeominfo[0].u = p2d.X();
--                  seg.epgeominfo[0].v = p2d.Y();
--                  p2d = cof->Value(params[i]);
--                  //                  if (i == mp.Size()+1) p2d = cof -> Value(s1);
--                  seg.epgeominfo[1].u = p2d.X();
--                  seg.epgeominfo[1].v = p2d.Y();
--
--                  /*
--                  if (occface->IsUPeriodic())
--                  {
--                  cout << "U Periodic" << endl;
--                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
--                  fabs(seg.epgeominfo[1].u-
--                  (seg.epgeominfo[0].u-occface->UPeriod())))
--                  seg.epgeominfo[0].u = p2d.X()+occface->UPeriod();
--
--                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
--                  fabs(seg.epgeominfo[1].u-
--                  (seg.epgeominfo[0].u+occface->UPeriod())))
--                  seg.epgeominfo[0].u = p2d.X()-occface->UPeriod();
--                  }
--
--                  if (occface->IsVPeriodic())
--                  {
--                  cout << "V Periodic" << endl;
--                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
--                  fabs(seg.epgeominfo[1].v-
--                  (seg.epgeominfo[0].v-occface->VPeriod())))
--                  seg.epgeominfo[0].v = p2d.Y()+occface->VPeriod();
--
--                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
--                  fabs(seg.epgeominfo[1].v-
--                  (seg.epgeominfo[0].v+occface->VPeriod())))
--                  seg.epgeominfo[0].v = p2d.Y()-occface->VPeriod();
--                  }
--                  */
--
--                  if (edge.Orientation() == TopAbs_REVERSED)
--                  {
--                     swap (seg[0], seg[1]);
--                     swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);
--                     swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);
--                     swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);
--                  }
--
--                  mesh.AddSegment (seg);
--
--                  //edgesegments[geomedgenr-1]->Append(mesh.GetNSeg());
--
--               }
--            }
--         }
--      }
--
--      //      for(i=1; i<=mesh.GetNSeg(); i++)
--      //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si
--      //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;
--      //      exit(10);
--
--      mesh.CalcSurfacesOfNode();
--      multithread.task = savetask;
--   }
--
--
--
--
--   void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend)
--   {
--      int i, j, k;
--      int changed;
--
--      const char * savetask = multithread.task;
--      multithread.task = "Surface meshing";
--
--      geom.facemeshstatus = 0;
--
--      int noldp = mesh.GetNP();
--
--      double starttime = GetTime();
--
--      Array<int> glob2loc(noldp);
--
--      //int projecttype = PARAMETERSPACE;
--
--      int projecttype = PARAMETERSPACE;
--
--      int notrys = 1;
--
--      int surfmesherror = 0;
--
--      for (k = 1; k <= mesh.GetNFD(); k++)
--      {
--         if(1==0 && !geom.fvispar[k-1].IsDrawable())
--         {
--            (*testout) << "ignoring face " << k << endl;
--            cout << "ignoring face " << k << endl;
--            continue;
--         }
--
--         (*testout) << "mesh face " << k << endl;
--         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
--         geom.facemeshstatus[k-1] = -1;
--
--
--         /*
--         if (k != 42)
--         {
--         cout << "skipped" << endl;
--         continue;
--         }
--         */
--
--
--         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
--
--         int oldnf = mesh.GetNSE();
--
--         Box<3> bb = geom.GetBoundingBox();
--
--         //      int projecttype = PLANESPACE;
--
--         Meshing2OCCSurfaces meshing(TopoDS::Face(geom.fmap(k)), bb, projecttype);
--
--         if (meshing.GetProjectionType() == PLANESPACE)
--            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (plane space projection)");
--         else
--            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (parameter space projection)");
--
--         if (surfmesherror)
--            cout << "Surface meshing error occured before (in " << surfmesherror << " faces)" << endl;
--
--         //      Meshing2OCCSurfaces meshing(f2, bb);
--         meshing.SetStartTime (starttime);
--
--         //(*testout) << "Face " << k << endl << endl;
--
--
--         if (meshing.GetProjectionType() == PLANESPACE)
--         {
--            int cntp = 0;
--            glob2loc = 0;
--            for (i = 1; i <= mesh.GetNSeg(); i++)
--            {
--               Segment & seg = mesh.LineSegment(i);
--               if (seg.si == k)
--               {
--                  for (j = 1; j <= 2; j++)
--                  {
--                     int pi = (j == 1) ? seg[0] : seg[1];
--                     if (!glob2loc.Get(pi))
--                     {
--                        meshing.AddPoint (mesh.Point(pi), pi);
--                        cntp++;
--                        glob2loc.Elem(pi) = cntp;
--                     }
--                  }
--               }
--            }
--
--            for (i = 1; i <= mesh.GetNSeg(); i++)
--            {
--               Segment & seg = mesh.LineSegment(i);
--               if (seg.si == k)
--               {
--                  PointGeomInfo gi0, gi1;
--                  gi0.trignum = gi1.trignum = k;
--                  gi0.u = seg.epgeominfo[0].u;
--                  gi0.v = seg.epgeominfo[0].v;
--                  gi1.u = seg.epgeominfo[1].u;
--                  gi1.v = seg.epgeominfo[1].v;
--
--                  meshing.AddBoundaryElement (glob2loc.Get(seg[0]), glob2loc.Get(seg[1]), gi0, gi1);
--                  //(*testout) << gi0.u << " " << gi0.v << endl;
--                  //(*testout) << gi1.u << " " << gi1.v << endl;
--               }
--            }
--         }
--         else
--         {
--            int cntp = 0;
--
--            for (i = 1; i <= mesh.GetNSeg(); i++)
--               if (mesh.LineSegment(i).si == k)
--                  cntp+=2;
--
--
--            Array< PointGeomInfo > gis;
--
--            gis.SetAllocSize (cntp);
--            gis.SetSize (0);
--
--            for (i = 1; i <= mesh.GetNSeg(); i++)
--            {
--               Segment & seg = mesh.LineSegment(i);
--               if (seg.si == k)
--               {
--                  PointGeomInfo gi0, gi1;
--                  gi0.trignum = gi1.trignum = k;
--                  gi0.u = seg.epgeominfo[0].u;
--                  gi0.v = seg.epgeominfo[0].v;
--                  gi1.u = seg.epgeominfo[1].u;
--                  gi1.v = seg.epgeominfo[1].v;
--
--                  int locpnum[2] = {0, 0};
--
--                  for (j = 0; j < 2; j++)
--                  {
--                     PointGeomInfo gi = (j == 0) ? gi0 : gi1;
--
--                     int l;
--                     for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)
--                     {
--                        double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);
--
--                        if (dist < 1e-10)
--                           locpnum[j] = l+1;
--                     }
--
--                     if (locpnum[j] == 0)
--                     {
--                        int pi = (j == 0) ? seg[0] : seg[1];
--                        meshing.AddPoint (mesh.Point(pi), pi);
--
--                        gis.SetSize (gis.Size()+1);
--                        gis[l] = gi;
--                        locpnum[j] = l+1;
--                     }
--                  }
--
--                  meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);
--                  //(*testout) << gi0.u << " " << gi0.v << endl;
--                  //(*testout) << gi1.u << " " << gi1.v << endl;
--
--               }
--            }
--         }
--
--
--
--
--
--         // Philippose - 15/01/2009
--         double maxh = geom.face_maxh[k-1];
--         //double maxh = mparam.maxh;
--         mparam.checkoverlap = 0;
--         //      int noldpoints = mesh->GetNP();
--         int noldsurfel = mesh.GetNSE();
--
--         GProp_GProps sprops;
--         BRepGProp::SurfaceProperties(TopoDS::Face(geom.fmap(k)),sprops);
--         meshing.SetMaxArea(2.*sprops.Mass());
--
--         MESHING2_RESULT res;
--
--         try {
--         res = meshing.GenerateMesh (mesh, mparam, maxh, k);
--         }
--
--         catch (SingularMatrixException)
--         {
--            (*myerr) << "Singular Matrix" << endl;
--            res = MESHING2_GIVEUP;
--         }
--
--         catch (UVBoundsException)
--         {
--            (*myerr) << "UV bounds exceeded" << endl;
--            res = MESHING2_GIVEUP;
--         }
--
--         projecttype = PARAMETERSPACE;
--
--         if (res != MESHING2_OK)
--         {
--            if (notrys == 1)
--            {
--               for (int i = noldsurfel+1; i <= mesh.GetNSE(); i++)
--                  mesh.DeleteSurfaceElement (i);
--
--               mesh.Compress();
--
--               cout << "retry Surface " << k << endl;
--
--               k--;
--               projecttype*=-1;
--               notrys++;
--               continue;
--            }
--            else
--            {
--               geom.facemeshstatus[k-1] = -1;
--               PrintError ("Problem in Surface mesh generation");
--               surfmesherror++;
--               //           throw NgException ("Problem in Surface mesh generation");
--            }
--         }
--         else
--         {
--            geom.facemeshstatus[k-1] = 1;
--         }
--
--         notrys = 1;
--
--         for (i = oldnf+1; i <= mesh.GetNSE(); i++)
--            mesh.SurfaceElement(i).SetIndex (k);
--
--      }
--
--//      ofstream problemfile("occmesh.rep");
--
--//      problemfile << "SURFACEMESHING" << endl << endl;
--
--      if (surfmesherror)
--      {
--         cout << "WARNING! NOT ALL FACES HAVE BEEN MESHED" << endl;
--         cout << "SURFACE MESHING ERROR OCCURED IN " << surfmesherror << " FACES:" << endl;
--         for (int i = 1; i <= geom.fmap.Extent(); i++)
--            if (geom.facemeshstatus[i-1] == -1)
--            {
--               cout << "Face " << i << endl;
--//               problemfile << "problem with face " << i << endl;
--//               problemfile << "vertices: " << endl;
--               TopExp_Explorer exp0,exp1,exp2;
--               for ( exp0.Init(TopoDS::Face (geom.fmap(i)), TopAbs_WIRE); exp0.More(); exp0.Next() )
--               {
--                  TopoDS_Wire wire = TopoDS::Wire(exp0.Current());
--                  for ( exp1.Init(wire,TopAbs_EDGE); exp1.More(); exp1.Next() )
--                  {
--                     TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--                     for ( exp2.Init(edge,TopAbs_VERTEX); exp2.More(); exp2.Next() )
--                     {
--                        TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());
--                        gp_Pnt point = BRep_Tool::Pnt(vertex);
--//                        problemfile << point.X() << " " << point.Y() << " " << point.Z() << endl;
--                     }
--                  }
--               }
--//               problemfile << endl;
--
--            }
--            cout << endl << endl;
--            cout << "for more information open IGES/STEP Topology Explorer" << endl;
--//            problemfile.close();
--            throw NgException ("Problem in Surface mesh generation");
--      }
--      else
--      {
--//         problemfile << "OK" << endl << endl;
--//         problemfile.close();
--      }
--
--
--
--
--      if (multithread.terminate || perfstepsend < MESHCONST_OPTSURFACE)
--         return;
--
--      multithread.task = "Optimizing surface";
--
--      static int timer_opt2d = NgProfiler::CreateTimer ("Optimization 2D");
--      NgProfiler::StartTimer (timer_opt2d);
--
--      for (k = 1; k <= mesh.GetNFD(); k++)
--      {
--         //      if (k != 42) continue;
--         //      if (k != 36) continue;
--
--         //      (*testout) << "optimize face " << k << endl;
--         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
--
--         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
--
--         PrintMessage (1, "Optimize Surface ", k);
--         for (i = 1; i <= mparam.optsteps2d; i++)
--         {
--            //          (*testout) << "optstep " << i << endl;
--            if (multithread.terminate) return;
--
--            {
--               MeshOptimize2dOCCSurfaces meshopt(geom);
--               meshopt.SetFaceIndex (k);
--               meshopt.SetImproveEdges (0);
--               meshopt.SetMetricWeight (mparam.elsizeweight);
--               //meshopt.SetMetricWeight (0.2);
--               meshopt.SetWriteStatus (0);
--
--               //         (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;
--               meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));
--            }
--
--            if (multithread.terminate) return;
--            {
--               MeshOptimize2dOCCSurfaces meshopt(geom);
--               meshopt.SetFaceIndex (k);
--               meshopt.SetImproveEdges (0);
--               //meshopt.SetMetricWeight (0.2);
--               meshopt.SetMetricWeight (mparam.elsizeweight);
--               meshopt.SetWriteStatus (0);
--
--               //         (*testout) << "ImproveMesh (mesh)" << endl;
--               meshopt.ImproveMesh (mesh, mparam);
--            }
--
--            {
--               MeshOptimize2dOCCSurfaces meshopt(geom);
--               meshopt.SetFaceIndex (k);
--               meshopt.SetImproveEdges (0);
--               //meshopt.SetMetricWeight (0.2);
--               meshopt.SetMetricWeight (mparam.elsizeweight);
--               meshopt.SetWriteStatus (0);
--
--               //         (*testout) << "CombineImprove (mesh)" << endl;
--               meshopt.CombineImprove (mesh);
--            }
--
--            if (multithread.terminate) return;
--            {
--               MeshOptimize2dOCCSurfaces meshopt(geom);
--               meshopt.SetFaceIndex (k);
--               meshopt.SetImproveEdges (0);
--               //meshopt.SetMetricWeight (0.2);
--               meshopt.SetMetricWeight (mparam.elsizeweight);
--               meshopt.SetWriteStatus (0);
--
--               //         (*testout) << "ImproveMesh (mesh)" << endl;
--               meshopt.ImproveMesh (mesh, mparam);
--            }
--         }
--
--      }
--
--
--      mesh.CalcSurfacesOfNode();
--      mesh.Compress();
--
--      NgProfiler::StopTimer (timer_opt2d);
--
--      multithread.task = savetask;
--   }
--
--
--
--   void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh)
--   {
--      mesh.SetGlobalH (mparam.maxh);
--      mesh.SetMinimalH (mparam.minh);
--
--      Array<double> maxhdom;
--      maxhdom.SetSize (geom.NrSolids());
--      maxhdom = mparam.maxh;
--
--      mesh.SetMaxHDomain (maxhdom);
--
--      Box<3> bb = geom.GetBoundingBox();
--      bb.Increase (bb.Diam()/10);
--
--      mesh.SetLocalH (bb.PMin(), bb.PMax(), 0.5);
--
--      if (mparam.uselocalh)
--      {
--         const char * savetask = multithread.task;
--         multithread.percent = 0;
--
--         mesh.SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
--
--         int nedges = geom.emap.Extent();
--
--               double mincurvelength = IGNORECURVELENGTH;
--         double maxedgelen = 0;
--         double minedgelen = 1e99;
--
--               if(occparam.resthminedgelenenable) 
--               {
--                      mincurvelength = occparam.resthminedgelen;
--                      if(mincurvelength < IGNORECURVELENGTH) mincurvelength = IGNORECURVELENGTH;
--               }
--
--         multithread.task = "Setting local mesh size (elements per edge)";
--
--         // setting elements per edge
--
--         for (int i = 1; i <= nedges && !multithread.terminate; i++)
--         {
--            TopoDS_Edge e = TopoDS::Edge (geom.emap(i));
--            multithread.percent = 100 * (i-1)/double(nedges);
--            if (BRep_Tool::Degenerated(e)) continue;
--
--            GProp_GProps system;
--            BRepGProp::LinearProperties(e, system);
--            double len = system.Mass();
--
--            if (len < mincurvelength)
--            {
--               (*testout) << "ignored" << endl;
--               continue;
--            }
--
--            double localh = len/mparam.segmentsperedge;
--            double s0, s1;
--
--            // Philippose - 23/01/2009
--            // Find all the parent faces of a given edge
--            // and limit the mesh size of the edge based on the
--            // mesh size limit of the face
--            TopTools_IndexedDataMapOfShapeListOfShape edge_face_map;
--            edge_face_map.Clear();
--
--            TopExp::MapShapesAndAncestors(geom.shape, TopAbs_EDGE, TopAbs_FACE, edge_face_map);
--            const TopTools_ListOfShape& parent_faces = edge_face_map.FindFromKey(e);
--
--            TopTools_ListIteratorOfListOfShape parent_face_list;
--
--            for(parent_face_list.Initialize(parent_faces); parent_face_list.More(); parent_face_list.Next())
--            {
--               TopoDS_Face parent_face = TopoDS::Face(parent_face_list.Value());
--
--               int face_index = geom.fmap.FindIndex(parent_face);
--
--               if(face_index >= 1) localh = min(localh,geom.face_maxh[face_index - 1]);
--            }
--
--            Handle(Geom_Curve) c = BRep_Tool::Curve(e, s0, s1);
--
--            maxedgelen = max (maxedgelen, len);
--            minedgelen = min (minedgelen, len);
--
--            // Philippose - 23/01/2009
--            // Modified the calculation of maxj, because the
--            // method used so far always results in maxj = 2,
--            // which causes the localh to be set only at the
--            // starting, mid and end of the edge.
--            // Old Algorithm:
--            // int maxj = 2 * (int) ceil (localh/len);
--            int maxj = max((int) ceil(len/localh), 2);
--
--            for (int j = 0; j <= maxj; j++)
--            {
--               gp_Pnt pnt = c->Value (s0+double(j)/maxj*(s1-s0));
--               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), localh);
--            }
--         }
--
--         multithread.task = "Setting local mesh size (edge curvature)";
--
--         // setting edge curvature
--
--         int nsections = 20;
--
--         for (int i = 1; i <= nedges && !multithread.terminate; i++)
--         {
--            double maxcur = 0;
--            multithread.percent = 100 * (i-1)/double(nedges);
--            TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
--            if (BRep_Tool::Degenerated(edge)) continue;
--            double s0, s1;
--            Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
--            BRepAdaptor_Curve brepc(edge);
--            BRepLProp_CLProps prop(brepc, 2, 1e-5);
--
--            for (int j = 1; j <= nsections; j++)
--            {
--               double s = s0 + j/(double) nsections * (s1-s0);
--               prop.SetParameter (s);
--               double curvature = prop.Curvature();
--               if(curvature> maxcur) maxcur = curvature;
--
--               if (curvature >= 1e99)
--                  continue;
--
--               gp_Pnt pnt = c->Value (s);
--
--               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature)));
--            }
--            // (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;
--         }
--
--         multithread.task = "Setting local mesh size (face curvature)";
--
--         // setting face curvature
--
--         int nfaces = geom.fmap.Extent();
--
--         for (int i = 1; i <= nfaces && !multithread.terminate; i++)
--         {
--            multithread.percent = 100 * (i-1)/double(nfaces);
--            TopoDS_Face face = TopoDS::Face(geom.fmap(i));
--            TopLoc_Location loc;
--            Handle(Geom_Surface) surf = BRep_Tool::Surface (face);
--            Handle(Poly_Triangulation) triangulation = BRep_Tool::Triangulation (face, loc);
--
--            if (triangulation.IsNull()) continue;
--
--            BRepAdaptor_Surface sf(face, Standard_True);
--            BRepLProp_SLProps prop(sf, 2, 1e-5);
--
--            int ntriangles = triangulation -> NbTriangles();
--            for (int j = 1; j <= ntriangles; j++)
--            {
--               gp_Pnt p[3];
--               gp_Pnt2d par[3];
--
--               for (int k = 1; k <=3; k++)
--               {
--                  int n = triangulation->Triangles()(j)(k);
--                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);
--                  par[k-1] = triangulation->UVNodes()(n);
--               }
--
--               //double maxside = 0;
--               //maxside = max (maxside, p[0].Distance(p[1]));
--               //maxside = max (maxside, p[0].Distance(p[2]));
--               //maxside = max (maxside, p[1].Distance(p[2]));
--               //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
--
--               RestrictHTriangle (par[0], par[1], par[2], &prop, mesh, 0);
--               //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
--            }
--         }
--
--         // setting close edges
--
--         if (occparam.resthcloseedgeenable)
--         {
--            multithread.task = "Setting local mesh size (close edges)";
--
--            int sections = 100;
--
--            Array<Line> lines(sections*nedges);
--
--            Box3dTree* searchtree =
--               new Box3dTree (bb.PMin(), bb.PMax());
--
--            int nlines = 0;
--            for (int i = 1; i <= nedges && !multithread.terminate; i++)
--            {
--               TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
--               if (BRep_Tool::Degenerated(edge)) continue;
--
--               double s0, s1;
--               Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
--               BRepAdaptor_Curve brepc(edge);
--               BRepLProp_CLProps prop(brepc, 1, 1e-5);
--               prop.SetParameter (s0);
--
--               gp_Vec d0 = prop.D1().Normalized();
--               double s_start = s0;
--               int count = 0;
--               for (int j = 1; j <= sections; j++)
--               {
--                  double s = s0 + (s1-s0)*(double)j/(double)sections;
--                  prop.SetParameter (s);
--                  gp_Vec d1 = prop.D1().Normalized();
--                  double cosalpha = fabs(d0*d1);
--                  if ((j == sections) || (cosalpha < cos(10.0/180.0*M_PI)))
--                  {
--                     count++;
--                     gp_Pnt p0 = c->Value (s_start);
--                     gp_Pnt p1 = c->Value (s);
--                     lines[nlines].p0 = Point<3> (p0.X(), p0.Y(), p0.Z());
--                     lines[nlines].p1 = Point<3> (p1.X(), p1.Y(), p1.Z());
--
--                     Box3d box;
--                     box.SetPoint (Point3d(lines[nlines].p0));
--                     box.AddPoint (Point3d(lines[nlines].p1));
--
--                     searchtree->Insert (box.PMin(), box.PMax(), nlines+1);
--                     nlines++;
--
--                     s_start = s;
--                     d0 = d1;
--                  }
--               }
--            }
--
--            Array<int> linenums;
--
--            for (int i = 0; i < nlines; i++)
--            {
--               multithread.percent = (100*i)/double(nlines);
--               Line & line = lines[i];
--
--               Box3d box;
--               box.SetPoint (Point3d(line.p0));
--               box.AddPoint (Point3d(line.p1));
--               double maxhline = max (mesh.GetH(box.PMin()),
--                  mesh.GetH(box.PMax()));
--               box.Increase(maxhline);
--
--               double mindist = 1e99;
--               linenums.SetSize(0);
--               searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);
--
--               for (int j = 0; j < linenums.Size(); j++)
--               {
--                  int num = linenums[j]-1;
--                  if (i == num) continue;
--                  if ((line.p0-lines[num].p0).Length2() < 1e-15) continue;
--                  if ((line.p0-lines[num].p1).Length2() < 1e-15) continue;
--                  if ((line.p1-lines[num].p0).Length2() < 1e-15) continue;
--                  if ((line.p1-lines[num].p1).Length2() < 1e-15) continue;
--                  mindist = min (mindist, line.Dist(lines[num]));
--               }
--
--               mindist /= (occparam.resthcloseedgefac + VSMALL);
--
--               if (mindist < 1e-3)
--               {
--                  (*testout) << "extremely small local h: " << mindist
--                     << " --> setting to 1e-3" << endl;
--                  (*testout) << "somewhere near " << line.p0 << " - " << line.p1 << endl;
--                  mindist = 1e-3;
--               }
--
--               mesh.RestrictLocalHLine(line.p0, line.p1, mindist);
--            }
--         }
--
--         multithread.task = savetask;
--
--      }
--
--      // Philippose - 09/03/2009
--      // Added the capability to load the mesh size from a 
--      // file also for OpenCascade Geometry
--      // Note: 
--      // ** If the "uselocalh" option is ticked in 
--      // the "mesh options...insider" menu, the mesh 
--      // size will be further modified by the topology 
--      // analysis routines.
--      // ** To use the mesh size file as the sole source 
--      // for defining the mesh size, uncheck the "uselocalh"
--      // option.
--      mesh.LoadLocalMeshSize (mparam.meshsizefilename);
--   }
--
--
--
--  int OCCGenerateMesh (OCCGeometry & geom, Mesh *& mesh, MeshingParameters & mparam,
--                     int perfstepsstart, int perfstepsend)
--   {
--      multithread.percent = 0;
--
--      if (perfstepsstart <= MESHCONST_ANALYSE)
--      {
--         delete mesh;
--         mesh = new Mesh();
--         mesh->geomtype = Mesh::GEOM_OCC;
--
--         OCCSetLocalMeshSize(geom,*mesh);
--      }
--
--      if (multithread.terminate || perfstepsend <= MESHCONST_ANALYSE)
--         return TCL_OK;
--
--      if (perfstepsstart <= MESHCONST_MESHEDGES)
--      {
--         OCCFindEdges (geom, *mesh);
--
--         /*
--         cout << "Removing redundant points" << endl;
--
--         int i, j;
--         int np = mesh->GetNP();
--         Array<int> equalto;
--
--         equalto.SetSize (np);
--         equalto = 0;
--
--         for (i = 1; i <= np; i++)
--         {
--         for (j = i+1; j <= np; j++)
--         {
--         if (!equalto[j-1] && (Dist2 (mesh->Point(i), mesh->Point(j)) < 1e-12))
--         equalto[j-1] = i;
--         }
--         }
--
--         for (i = 1; i <= np; i++)
--         if (equalto[i-1])
--         {
--         cout << "Point " << i << " is equal to Point " << equalto[i-1] << endl;
--         for (j = 1; j <= mesh->GetNSeg(); j++)
--         {
--         Segment & seg = mesh->LineSegment(j);
--         if (seg[0] == i) seg[0] = equalto[i-1];
--         if (seg[1] == i) seg[1] = equalto[i-1];
--         }
--         }
--
--         cout << "Removing degenerated segments" << endl;
--         for (j = 1; j <= mesh->GetNSeg(); j++)
--         {
--         Segment & seg = mesh->LineSegment(j);
--         if (seg[0] == seg[1])
--         {
--         mesh->DeleteSegment(j);
--         cout << "Deleting Segment " << j << endl;
--         }
--         }
--
--         mesh->Compress();
--         */
--
--         /*
--         for (int i = 1; i <= geom.fmap.Extent(); i++)
--         {
--         Handle(Geom_Surface) hf1 =
--         BRep_Tool::Surface(TopoDS::Face(geom.fmap(i)));
--         for (int j = i+1; j <= geom.fmap.Extent(); j++)
--         {
--         Handle(Geom_Surface) hf2 =
--         BRep_Tool::Surface(TopoDS::Face(geom.fmap(j)));
--         if (hf1 == hf2) cout << "face " << i << " and face " << j << " lie on same surface" << endl;
--         }
--         }
--         */
--
--#ifdef LOG_STREAM
--         (*logout) << "Edges meshed" << endl
--            << "time = " << GetTime() << " sec" << endl
--            << "points: " << mesh->GetNP() << endl;
--#endif
--      }
--
--      if (multithread.terminate || perfstepsend <= MESHCONST_MESHEDGES)
--         return TCL_OK;
--
--      if (perfstepsstart <= MESHCONST_MESHSURFACE)
--      {
--         OCCMeshSurface (geom, *mesh, perfstepsend);
--         if (multithread.terminate) return TCL_OK;
--
--#ifdef LOG_STREAM
--         (*logout) << "Surfaces meshed" << endl
--            << "time = " << GetTime() << " sec" << endl
--            << "points: " << mesh->GetNP() << endl;
--#endif
--
--#ifdef STAT_STREAM
--         (*statout) << mesh->GetNSeg() << " & "
--            << mesh->GetNSE() << " & - &"
--            << GetTime() << " & " << endl;
--#endif
--
--         //      MeshQuality2d (*mesh);
--         mesh->CalcSurfacesOfNode();
--      }
--
--      if (multithread.terminate || perfstepsend <= MESHCONST_OPTSURFACE)
--         return TCL_OK;
--
--      if (perfstepsstart <= MESHCONST_MESHVOLUME)
--      {
--         multithread.task = "Volume meshing";
--
--         MESHING3_RESULT res = MeshVolume (mparam, *mesh);
--
--/*
--         ofstream problemfile("occmesh.rep",ios_base::app);
--
--         problemfile << "VOLUMEMESHING" << endl << endl;
--         if(res != MESHING3_OK)
--            problemfile << "ERROR" << endl << endl;
--         else
--            problemfile << "OK" << endl
--            << mesh->GetNE() << " elements" << endl << endl;
--
--         problemfile.close();
--*/
--
--         if (res != MESHING3_OK) return TCL_ERROR;
--
--         if (multithread.terminate) return TCL_OK;
--
--         RemoveIllegalElements (*mesh);
--         if (multithread.terminate) return TCL_OK;
--
--         MeshQuality3d (*mesh);
--
--#ifdef STAT_STREAM
--         (*statout) << GetTime() << " & ";
--#endif
--
--#ifdef LOG_STREAM
--         (*logout) << "Volume meshed" << endl
--            << "time = " << GetTime() << " sec" << endl
--            << "points: " << mesh->GetNP() << endl;
--#endif
--      }
--
--      if (multithread.terminate || perfstepsend <= MESHCONST_MESHVOLUME)
--         return TCL_OK;
--
--      if (perfstepsstart <= MESHCONST_OPTVOLUME)
--      {
--         multithread.task = "Volume optimization";
--
--         OptimizeVolume (mparam, *mesh);
--         if (multithread.terminate) return TCL_OK;
--
--#ifdef STAT_STREAM
--         (*statout) << GetTime() << " & "
--            << mesh->GetNE() << " & "
--            << mesh->GetNP() << " " << '\\' << '\\' << " \\" << "hline" << endl;
--#endif
--
--#ifdef LOG_STREAM
--         (*logout) << "Volume optimized" << endl
--            << "time = " << GetTime() << " sec" << endl
--            << "points: " << mesh->GetNP() << endl;
--#endif
--
--         // cout << "Optimization complete" << endl;
--
--      }
--
--      (*testout) << "NP: " << mesh->GetNP() << endl;
--      for (int i = 1; i <= mesh->GetNP(); i++)
--         (*testout) << mesh->Point(i) << endl;
--
--      (*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;
--      for (int i = 1; i <= mesh->GetNSeg(); i++)
--         (*testout) << mesh->LineSegment(i) << endl;
--
--      return TCL_OK;
--   }
--}
--
--#endif
-+#ifdef OCCGEOMETRY
-+
-+#include <mystdlib.h>
-+#include <occgeom.hpp>
-+#include <meshing.hpp>
-+
-+
-+namespace netgen
-+{
-+
-+#include "occmeshsurf.hpp"
-+
-+#define TCL_OK 0
-+#define TCL_ERROR 1
-+
-+#define DIVIDEEDGESECTIONS 1000
-+#define IGNORECURVELENGTH 1e-4
-+#define VSMALL 1e-10
-+
-+
-+   bool merge_solids = 1;
-+
-+
-+  // can you please explain what you intend to compute here (JS) !!!
-+   double Line :: Dist (Line l)
-+   {
-+      Vec<3> n = p1-p0;
-+      Vec<3> q = l.p1-l.p0;
-+      double nq = n*q;
-+
-+      Point<3> p = p0 + 0.5*n;
-+      double lambda = (p-l.p0)*n / (nq + VSMALL);
-+
-+      if (lambda >= 0 && lambda <= 1)
-+      {
-+         double d = (p-l.p0-lambda*q).Length();
-+         //        if (d < 1e-3) d = 1e99;
-+         return d;
-+      }
-+      else
-+         return 1e99;
-+   }
-+
-+
-+
-+   double Line :: Length ()
-+   {
-+      return (p1-p0).Length();
-+   }
-+
-+
-+
-+   inline Point<3> occ2ng (const gp_Pnt & p)
-+   {
-+      return  Point<3> (p.X(), p.Y(), p.Z());
-+   }
-+
-+
-+
-+   double ComputeH (double kappa)
-+   {
-+      double hret;
-+      kappa *= mparam.curvaturesafety;
-+
-+      if (mparam.maxh * kappa < 1)
-+         hret = mparam.maxh;
-+      else
-+         hret = 1 / (kappa + VSMALL);
-+
-+      if (mparam.maxh < hret)
-+         hret = mparam.maxh;
-+
-+      return (hret);
-+   }
-+
-+
-+
-+
-+   void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
-+                           BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)
-+   {
-+      int ls = -1;
-+
-+      gp_Pnt pnt0,pnt1,pnt2;
-+
-+      prop->SetParameters (par0.X(), par0.Y());
-+      pnt0 = prop->Value();
-+
-+      prop->SetParameters (par1.X(), par1.Y());
-+      pnt1 = prop->Value();
-+
-+      prop->SetParameters (par2.X(), par2.Y());
-+      pnt2 = prop->Value();
-+
-+      double aux;
-+      double maxside = pnt0.Distance(pnt1);
-+      ls = 2;
-+      aux = pnt1.Distance(pnt2);
-+      if(aux > maxside)
-+      {
-+         maxside = aux;
-+         ls = 0;
-+      }
-+      aux = pnt2.Distance(pnt0);
-+      if(aux > maxside)
-+      {
-+         maxside = aux;
-+         ls = 1;
-+      }
-+
-+
-+
-+      gp_Pnt2d parmid;
-+
-+      parmid.SetX( (par0.X()+par1.X()+par2.X()) / 3 );
-+      parmid.SetY( (par0.Y()+par1.Y()+par2.Y()) / 3 );
-+
-+      if (depth%3 == 0)
-+      {
-+         double curvature = 0;
-+
-+         prop->SetParameters (parmid.X(), parmid.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature()));
-+
-+         prop->SetParameters (par0.X(), par0.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(curvature,max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature())));
-+
-+         prop->SetParameters (par1.X(), par1.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(curvature,max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature())));
-+
-+         prop->SetParameters (par2.X(), par2.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(curvature,max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature())));
-+
-+         //(*testout) << "curvature " << curvature << endl;
-+
-+         if (curvature < 1e-3)
-+         {
-+            //(*testout) << "curvature too small (" << curvature << ")!" << endl;
-+            return;
-+            // return war bis 10.2.05 auskommentiert
-+         }
-+
-+
-+
-+         h = ComputeH (curvature+1e-10);
-+
-+         if(h < 1e-4*maxside)
-+            return;
-+
-+         // commented to restrict H on a large sphere for example
-+         //if (h > 30) return;
-+      }
-+
-+      if (h < maxside && depth < 10)
-+      {
-+         //cout << "\r h " << h << flush;
-+         gp_Pnt2d pm;
-+
-+         //cout << "h " << h << " maxside " << maxside << " depth " << depth << endl;
-+         //cout << "par0 " << par0.X() << " " << par0.Y()
-+         //<< " par1 " << par1.X() << " " << par1.Y()
-+         //   << " par2 " << par2.X() << " " << par2.Y()<< endl;
-+
-+         if(ls == 0)
-+         {
-+            pm.SetX(0.5*(par1.X()+par2.X())); pm.SetY(0.5*(par1.Y()+par2.Y()));
-+            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
-+            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
-+         }
-+         else if(ls == 1)
-+         {
-+            pm.SetX(0.5*(par0.X()+par2.X())); pm.SetY(0.5*(par0.Y()+par2.Y()));
-+            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
-+            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
-+         }
-+         else if(ls == 2)
-+         {
-+            pm.SetX(0.5*(par0.X()+par1.X())); pm.SetY(0.5*(par0.Y()+par1.Y()));
-+            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
-+            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
-+         }
-+
-+      }
-+      else
-+      {
-+         gp_Pnt pnt;
-+         Point3d p3d;
-+
-+         prop->SetParameters (parmid.X(), parmid.Y());
-+         pnt = prop->Value();
-+         p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         p3d = Point3d(pnt0.X(), pnt0.Y(), pnt0.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         p3d = Point3d(pnt1.X(), pnt1.Y(), pnt1.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         p3d = Point3d(pnt2.X(), pnt2.Y(), pnt2.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;
-+
-+      }
-+   }
-+
-+
-+
-+   void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,
-+                    Array<double> & params, Mesh & mesh)
-+   {
-+      double s0, s1;
-+      double maxh = mparam.maxh;
-+      int nsubedges = 1;
-+      gp_Pnt pnt, oldpnt;
-+      double svalue[DIVIDEEDGESECTIONS];
-+
-+      GProp_GProps system;
-+      BRepGProp::LinearProperties(edge, system);
-+      double L = system.Mass();
-+
-+      Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
-+
-+      double hvalue[DIVIDEEDGESECTIONS+1];
-+      hvalue[0] = 0;
-+      pnt = c->Value(s0);
-+
-+      //double olddist = 0; -- useless variables
-+      //double dist = 0;
-+
-+      int tmpVal = (int)(DIVIDEEDGESECTIONS);
-+
-+      for (int i = 1; i <= tmpVal; i++)
-+      {
-+         oldpnt = pnt;
-+         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
-+         // -- no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
-+         hvalue[i] = hvalue[i-1] +
-+         //   1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+         //   pnt.Distance(oldpnt);
-+           min( 1.0,
-+            1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+                pnt.Distance(oldpnt));
-+
-+         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))
-+         //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;
-+
-+         //olddist = dist; -- useless variables
-+         //dist = pnt.Distance(oldpnt);
-+      }
-+
-+      //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
-+      nsubedges = max (1, int(floor(hvalue[DIVIDEEDGESECTIONS]+0.5)));
-+
-+      ps.SetSize(nsubedges-1);
-+      params.SetSize(nsubedges+1);
-+
-+      int i = 1;
-+      int i1 = 0;
-+      do
-+      {
-+         if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)
-+         {
-+            // -- for nsubedges comparable to DIVIDEEDGESECTIONS
-+            //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+            double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
-+            params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+            pnt = c->Value(params[i]);
-+            ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));
-+            i++;
-+         }
-+         i1++;
-+         if (i1 > DIVIDEEDGESECTIONS)
-+         {
-+            nsubedges = i;
-+            ps.SetSize(nsubedges-1);
-+            params.SetSize(nsubedges+1);
-+            cout << "divide edge: local h too small" << endl;
-+         }
-+      } while (i < nsubedges);
-+
-+      params[0] = s0;
-+      params[nsubedges] = s1;
-+
-+      if (params[nsubedges] <= params[nsubedges-1])
-+      {
-+         cout << "CORRECTED" << endl;
-+         ps.SetSize (nsubedges-2);
-+         params.SetSize (nsubedges);
-+         params[nsubedges] = s1;
-+      }
-+   }
-+
-+
-+
-+
-+   void OCCFindEdges (OCCGeometry & geom, Mesh & mesh)
-+   {
-+      const char * savetask = multithread.task;
-+      multithread.task = "Edge meshing";
-+
-+      (*testout) << "edge meshing" << endl;
-+
-+      int nvertices = geom.vmap.Extent();
-+      int nedges = geom.emap.Extent();
-+
-+      (*testout) << "nvertices = " << nvertices << endl;
-+      (*testout) << "nedges = " << nedges << endl;
-+
-+      double eps = 1e-6 * geom.GetBoundingBox().Diam();
-+      const double eps2 = eps * eps; // -- small optimization
-+
-+      int first_vp = mesh.GetNP()+1; // -- to support SALOME sub-meshes
-+
-+      for (int i = 1; i <= nvertices; i++)
-+      {
-+         gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));
-+         MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
-+
-+         bool exists = 0;
-+         if (merge_solids)
-+            for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
-+               //if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)
-+               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2 ) // -- small optimization
-+               {
-+                  exists = 1;
-+                  break;
-+               }
-+
-+               if (!exists)
-+                  mesh.AddPoint (mp);
-+      }
-+
-+      (*testout) << "different vertices = " << mesh.GetNP() << endl;
-+
-+
-+      int first_ep = mesh.GetNP()+1;
-+
-+      Array<int> face2solid[2];
-+      for (int i = 0; i<2; i++)
-+      {
-+         face2solid[i].SetSize (geom.fmap.Extent());
-+         face2solid[i] = 0;
-+      }
-+
-+      int solidnr = 0;
-+      for (TopExp_Explorer exp0(geom.shape, TopAbs_SOLID); exp0.More(); exp0.Next())
-+      {
-+         solidnr++;
-+         for (TopExp_Explorer exp1(exp0.Current(), TopAbs_FACE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Face face = TopoDS::Face(exp1.Current());
-+            int facenr = geom.fmap.FindIndex(face);
-+            if ( facenr < 1 ) continue; // -- to support SALOME sub-meshes
-+
-+            if (face2solid[0][facenr-1] == 0)
-+               face2solid[0][facenr-1] = solidnr;
-+            else
-+               face2solid[1][facenr-1] = solidnr;
-+         }
-+      }
-+
-+
-+      int total = 0;
-+      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
-+         for (TopExp_Explorer exp2(geom.fmap(i3), TopAbs_WIRE); exp2.More(); exp2.Next())
-+            for (TopExp_Explorer exp3(exp2.Current(), TopAbs_EDGE); exp3.More(); exp3.Next())
-+               total++;
-+
-+
-+      int facenr = 0;
-+      int edgenr = 0;
-+
-+      edgenr = mesh.GetNSeg(); // to support SALOME sub-meshes
-+
-+      (*testout) << "faces = " << geom.fmap.Extent() << endl;
-+      int curr = 0;
-+
-+      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
-+      {
-+         TopoDS_Face face = TopoDS::Face(geom.fmap(i3));
-+         facenr = geom.fmap.FindIndex (face);       // sollte doch immer == i3 sein ??? JS
-+
-+         int solidnr0 = face2solid[0][i3-1];
-+         int solidnr1 = face2solid[1][i3-1];
-+
-+         /* auskommentiert am 3.3.05 von robert
-+         for (exp2.Init (geom.somap(solidnr0), TopAbs_FACE); exp2.More(); exp2.Next())
-+         {
-+         TopoDS_Face face2 = TopoDS::Face(exp2.Current());
-+         if (geom.fmap.FindIndex(face2) == facenr)
-+         {
-+         //                 if (face.Orientation() != face2.Orientation()) swap (solidnr0, solidnr1);
-+         }
-+         }
-+         */
-+
-+         mesh.AddFaceDescriptor (FaceDescriptor(facenr, solidnr0, solidnr1, 0));
-+
-+         // Philippose - 06/07/2009
-+         // Add the face colour to the mesh data
-+         Quantity_Color face_colour;
-+
-+         if(!(geom.face_colours.IsNull())
-+            && (geom.face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour)))
-+         {
-+            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(face_colour.Red(),face_colour.Green(),face_colour.Blue()));
-+         }
-+         else
-+         {
-+            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(0.0,1.0,0.0));
-+         }
-+         // ACHTUNG! STIMMT NICHT ALLGEMEIN (RG)
-+
-+
-+         Handle(Geom_Surface) occface = BRep_Tool::Surface(face);
-+
-+         for (TopExp_Explorer exp2 (face, TopAbs_WIRE); exp2.More(); exp2.Next())
-+         {
-+            TopoDS_Shape wire = exp2.Current();
-+
-+            for (TopExp_Explorer exp3 (wire, TopAbs_EDGE); exp3.More(); exp3.Next())
-+            {
-+               curr++;
-+               (*testout) << "edge nr " << curr << endl;
-+
-+               multithread.percent = 100 * curr / double (total);
-+               if (multithread.terminate) return;
-+
-+               TopoDS_Edge edge = TopoDS::Edge (exp3.Current());
-+               if (BRep_Tool::Degenerated(edge))
-+               {
-+                  //(*testout) << "ignoring degenerated edge" << endl;
-+                  continue;
-+               }
-+               if ( geom.emap.FindIndex(edge) < 1 ) continue; // to support SALOME sub-meshes
-+
-+               if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
-+                  geom.vmap.FindIndex(TopExp::LastVertex (edge)))
-+               {
-+                  GProp_GProps system;
-+                  BRepGProp::LinearProperties(edge, system);
-+
-+                  if (system.Mass() < eps)
-+                  {
-+                     cout << "ignoring edge " << geom.emap.FindIndex (edge)
-+                        << ". closed edge with length < " << eps << endl;
-+                     continue;
-+                  }
-+               }
-+
-+
-+               Handle(Geom2d_Curve) cof;
-+               double s0, s1;
-+               cof = BRep_Tool::CurveOnSurface (edge, face, s0, s1);
-+
-+               int geomedgenr = geom.emap.FindIndex(edge);
-+
-+               Array <MeshPoint> mp;
-+               Array <double> params;
-+
-+               DivideEdge (edge, mp, params, mesh);
-+
-+               Array <int> pnums;
-+               pnums.SetSize (mp.Size()+2);
-+
-+               if (!merge_solids)
-+               {
-+                 //pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));
-+                 //pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));
-+                 MeshPoint dfltP ( Point<3> ( 0, 0, 0 ) );
-+                 int *ipp[] = { &pnums[0], &pnums[pnums.Size()-1] };
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v[2];
-+                 v[0] = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 v[1] = TopoDS::Vertex( vIt.Value() );
-+                 if ( v[0].Orientation() == TopAbs_REVERSED )
-+                   std::swap( v[0], v[1] );
-+                 for ( int i = 0; i < 2; ++i)
-+                 {
-+                   int &ip = *ipp[i];
-+                   ip = geom.vmap.FindIndex ( v[i] );
-+                   if ( ip == 0 || ip > nvertices )
-+                   {
-+                     int iv = ip;
-+                     if ( ip == 0 )
-+                       ip = iv = geom.vmap.Add( v[i] );
-+                     gp_Pnt pnt = BRep_Tool::Pnt( v[i] );
-+                     MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
-+                     for (PointIndex pi = 1; pi < first_vp; pi++)
-+                       if ( Dist2 (mesh.Point(pi), Point<3>(mp)) < 1e-100 )
-+                       {
-+                         ip = pi;
-+                         if ( mesh.Point(ip).GetLayer() != dfltP.GetLayer() && mesh.Point(ip).GetLayer() != iv )
-+                           continue;
-+                         if ( mesh.Point(ip).GetLayer() == dfltP.GetLayer())
-+                           mesh.Point(ip) = MeshPoint( mesh.Point(ip), iv );
-+                         break;
-+                       }
-+               }
-+               else
-+               {
-+                     ip += first_vp - 1;
-+                   }
-+                 }
-+               }
-+               else
-+               {
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );
-+                 if ( v1.Orientation() == TopAbs_REVERSED )
-+                   std::swap( v1, v2 );
-+                 const bool isClosedEdge = v1.IsSame( v2 );
-+
-+                  Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
-+                  Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
-+                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
-+                  if ( isClosedEdge )
-+                    tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
-+
-+                  pnums[0] = -1;
-+                  pnums.Last() = -1;
-+                  for (PointIndex pi = 1; pi < first_ep; pi++)
-+                  {
-+                    if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;
-+                    if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;
-+                  }
-+                  if (( isClosedEdge && pnums[0] != pnums.Last() ) ||
-+                      ( !isClosedEdge && pnums[0] == pnums.Last() ))
-+                    pnums[0] = pnums.Last() = -1;
-+                  if ( pnums[0] == -1 || pnums.Last() == -1 )
-+                  {
-+                    // take into account a possible large gap between a vertex and an edge curve
-+                    // end and a large vertex tolerance covering the whole edge
-+                    if ( pnums[0] == -1 )
-+                    {
-+                      double tol = BRep_Tool::Tolerance( v1 );
-+                      for (PointIndex pi = 1; pi < first_ep; pi++)
-+                        if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)
-+                          pnums[0] = pi;
-+
-+                      if ( pnums[0] == -1 )
-+                        pnums[0] = first_ep-1- nvertices + geom.vmap.FindIndex ( v1 );
-+                    }
-+                    if ( isClosedEdge )
-+                    {
-+                      pnums.Last() = pnums[0];
-+                    }
-+                    else
-+                    {
-+                      if ( pnums.Last() == -1 )
-+                      {
-+                        double tol = BRep_Tool::Tolerance( v2 );
-+                        for (PointIndex pi = 1; pi < first_ep; pi++)
-+                          if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)
-+                            pnums.Last() = pi;
-+
-+                        if ( pnums.Last() == -1 )
-+                          pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );
-+                      }
-+
-+                      if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >
-+                           Dist2( lp, mesh[PointIndex(pnums.Last())]))
-+                      std::swap( pnums[0], pnums.Last() );
-+                    }
-+                  }
-+               }
-+
-+
-+               for (int i = 1; i <= mp.Size(); i++)
-+               {
-+                  bool exists = 0;
-+                  int j;
-+                  for (j = first_ep; j <= mesh.GetNP(); j++)
-+                  {
-+                     if (!merge_solids && mesh.Point(j).GetLayer() != geomedgenr ) continue; // to support SALOME fuse edges
-+                     if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
-+                     {
-+                        exists = 1;
-+                        break;
-+                     }
-+                  }
-+
-+                     if (exists)
-+                        pnums[i] = j;
-+                     else
-+                     {
-+                        mesh.AddPoint (mp[i-1], geomedgenr); // to support SALOME fuse edges
-+                        (*testout) << "add meshpoint " << mp[i-1] << endl;
-+                        pnums[i] = mesh.GetNP();
-+                     }
-+               }
-+               (*testout) << "NP = " << mesh.GetNP() << endl;
-+
-+               //(*testout) << pnums[pnums.Size()-1] << endl;
-+
-+               for (int i = 1; i <= mp.Size()+1; i++)
-+               {
-+                  edgenr++;
-+                  Segment seg;
-+
-+                  seg[0] = pnums[i-1];
-+                  seg[1] = pnums[i];
-+                  seg.edgenr = edgenr;
-+                  seg.si = facenr;
-+                  seg.epgeominfo[0].dist = params[i-1];
-+                  seg.epgeominfo[1].dist = params[i];
-+                  seg.epgeominfo[0].edgenr = geomedgenr;
-+                  seg.epgeominfo[1].edgenr = geomedgenr;
-+
-+                  gp_Pnt2d p2d;
-+                  p2d = cof->Value(params[i-1]);
-+                  //                  if (i == 1) p2d = cof->Value(s0);
-+                  seg.epgeominfo[0].u = p2d.X();
-+                  seg.epgeominfo[0].v = p2d.Y();
-+                  p2d = cof->Value(params[i]);
-+                  //                  if (i == mp.Size()+1) p2d = cof -> Value(s1);
-+                  seg.epgeominfo[1].u = p2d.X();
-+                  seg.epgeominfo[1].v = p2d.Y();
-+
-+                  /*
-+                  if (occface->IsUPeriodic())
-+                  {
-+                  cout << "U Periodic" << endl;
-+                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
-+                  fabs(seg.epgeominfo[1].u-
-+                  (seg.epgeominfo[0].u-occface->UPeriod())))
-+                  seg.epgeominfo[0].u = p2d.X()+occface->UPeriod();
-+
-+                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
-+                  fabs(seg.epgeominfo[1].u-
-+                  (seg.epgeominfo[0].u+occface->UPeriod())))
-+                  seg.epgeominfo[0].u = p2d.X()-occface->UPeriod();
-+                  }
-+
-+                  if (occface->IsVPeriodic())
-+                  {
-+                  cout << "V Periodic" << endl;
-+                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
-+                  fabs(seg.epgeominfo[1].v-
-+                  (seg.epgeominfo[0].v-occface->VPeriod())))
-+                  seg.epgeominfo[0].v = p2d.Y()+occface->VPeriod();
-+
-+                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
-+                  fabs(seg.epgeominfo[1].v-
-+                  (seg.epgeominfo[0].v+occface->VPeriod())))
-+                  seg.epgeominfo[0].v = p2d.Y()-occface->VPeriod();
-+                  }
-+                  */
-+
-+                  if (edge.Orientation() == TopAbs_REVERSED)
-+                  {
-+                     swap (seg[0], seg[1]);
-+                     swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);
-+                     swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);
-+                     swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);
-+                  }
-+
-+                  mesh.AddSegment (seg);
-+
-+                  //edgesegments[geomedgenr-1]->Append(mesh.GetNSeg());
-+
-+               }
-+            }
-+         }
-+      }
-+
-+      //      for(i=1; i<=mesh.GetNSeg(); i++)
-+      //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si
-+      //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;
-+      //      exit(10);
-+      for (int j = 1; j <= mesh.GetNP(); j++) // to support SALOME fuse edges: set level to zero
-+        mesh.Point(j) = MeshPoint( (Point<3>&) mesh.Point(j) );
-+
-+      mesh.CalcSurfacesOfNode();
-+      multithread.task = savetask;
-+   }
-+
-+
-+
-+
-+   void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend)
-+   {
-+      int i, j, k;
-+      int changed;
-+
-+      const char * savetask = multithread.task;
-+      multithread.task = "Surface meshing";
-+
-+      geom.facemeshstatus = 0;
-+
-+      int noldp = mesh.GetNP();
-+
-+      double starttime = GetTime();
-+
-+      Array<int> glob2loc(noldp);
-+
-+      //int projecttype = PARAMETERSPACE;
-+
-+      int projecttype = PARAMETERSPACE;
-+
-+      int notrys = 1;
-+
-+      int surfmesherror = 0;
-+
-+      for (k = 1; k <= mesh.GetNFD(); k++)
-+      {
-+         if(1==0 && !geom.fvispar[k-1].IsDrawable())
-+         {
-+            (*testout) << "ignoring face " << k << endl;
-+            cout << "ignoring face " << k << endl;
-+            continue;
-+         }
-+
-+         (*testout) << "mesh face " << k << endl;
-+         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
-+         geom.facemeshstatus[k-1] = -1;
-+
-+
-+         /*
-+         if (k != 42)
-+         {
-+         cout << "skipped" << endl;
-+         continue;
-+         }
-+         */
-+
-+
-+         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
-+
-+         int oldnf = mesh.GetNSE();
-+
-+         Box<3> bb = geom.GetBoundingBox();
-+
-+         //      int projecttype = PLANESPACE;
-+
-+         Meshing2OCCSurfaces meshing(TopoDS::Face(geom.fmap(k)), bb, projecttype);
-+
-+         if (meshing.GetProjectionType() == PLANESPACE)
-+            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (plane space projection)");
-+         else
-+            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (parameter space projection)");
-+
-+         if (surfmesherror)
-+            cout << "Surface meshing error occured before (in " << surfmesherror << " faces)" << endl;
-+
-+         //      Meshing2OCCSurfaces meshing(f2, bb);
-+         meshing.SetStartTime (starttime);
-+
-+         //(*testout) << "Face " << k << endl << endl;
-+
-+
-+         if (meshing.GetProjectionType() == PLANESPACE)
-+         {
-+            int cntp = 0;
-+            glob2loc = 0;
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+            {
-+               Segment & seg = mesh.LineSegment(i);
-+               if (seg.si == k)
-+               {
-+                  for (j = 1; j <= 2; j++)
-+                  {
-+                     int pi = (j == 1) ? seg[0] : seg[1];
-+                     if (!glob2loc.Get(pi))
-+                     {
-+                        meshing.AddPoint (mesh.Point(pi), pi);
-+                        cntp++;
-+                        glob2loc.Elem(pi) = cntp;
-+                     }
-+                  }
-+               }
-+            }
-+
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+            {
-+               Segment & seg = mesh.LineSegment(i);
-+               if (seg.si == k)
-+               {
-+                  PointGeomInfo gi0, gi1;
-+                  gi0.trignum = gi1.trignum = k;
-+                  gi0.u = seg.epgeominfo[0].u;
-+                  gi0.v = seg.epgeominfo[0].v;
-+                  gi1.u = seg.epgeominfo[1].u;
-+                  gi1.v = seg.epgeominfo[1].v;
-+
-+                  meshing.AddBoundaryElement (glob2loc.Get(seg[0]), glob2loc.Get(seg[1]), gi0, gi1);
-+                  //(*testout) << gi0.u << " " << gi0.v << endl;
-+                  //(*testout) << gi1.u << " " << gi1.v << endl;
-+               }
-+            }
-+         }
-+         else
-+         {
-+            int cntp = 0;
-+
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+               if (mesh.LineSegment(i).si == k)
-+                  cntp+=2;
-+
-+
-+            Array< PointGeomInfo > gis;
-+
-+            gis.SetAllocSize (cntp);
-+            gis.SetSize (0);
-+
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+            {
-+               Segment & seg = mesh.LineSegment(i);
-+               if (seg.si == k)
-+               {
-+                  PointGeomInfo gi0, gi1;
-+                  gi0.trignum = gi1.trignum = k;
-+                  gi0.u = seg.epgeominfo[0].u;
-+                  gi0.v = seg.epgeominfo[0].v;
-+                  gi1.u = seg.epgeominfo[1].u;
-+                  gi1.v = seg.epgeominfo[1].v;
-+
-+                  int locpnum[2] = {0, 0};
-+
-+                  for (j = 0; j < 2; j++)
-+                  {
-+                     PointGeomInfo gi = (j == 0) ? gi0 : gi1;
-+
-+                     int l;
-+                     for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)
-+                     {
-+                        double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);
-+
-+                        if (dist < 1e-10)
-+                           locpnum[j] = l+1;
-+                     }
-+
-+                     if (locpnum[j] == 0)
-+                     {
-+                        int pi = (j == 0) ? seg[0] : seg[1];
-+                        meshing.AddPoint (mesh.Point(pi), pi);
-+
-+                        gis.SetSize (gis.Size()+1);
-+                        gis[l] = gi;
-+                        locpnum[j] = l+1;
-+                     }
-+                  }
-+
-+                  meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);
-+                  //(*testout) << gi0.u << " " << gi0.v << endl;
-+                  //(*testout) << gi1.u << " " << gi1.v << endl;
-+
-+               }
-+            }
-+         }
-+
-+
-+
-+
-+
-+         // Philippose - 15/01/2009
-+         double maxh = geom.face_maxh[k-1];
-+         //double maxh = mparam.maxh;
-+         mparam.checkoverlap = 0;
-+         //      int noldpoints = mesh->GetNP();
-+         int noldsurfel = mesh.GetNSE();
-+
-+         GProp_GProps sprops;
-+         BRepGProp::SurfaceProperties(TopoDS::Face(geom.fmap(k)),sprops);
-+         meshing.SetMaxArea(2.*sprops.Mass());
-+
-+         MESHING2_RESULT res;
-+
-+         try {
-+         res = meshing.GenerateMesh (mesh, mparam, maxh, k);
-+         }
-+
-+         catch (SingularMatrixException)
-+         {
-+            (*myerr) << "Singular Matrix" << endl;
-+            res = MESHING2_GIVEUP;
-+         }
-+
-+         catch (UVBoundsException)
-+         {
-+            (*myerr) << "UV bounds exceeded" << endl;
-+            res = MESHING2_GIVEUP;
-+         }
-+
-+         projecttype = PARAMETERSPACE;
-+
-+         if (res != MESHING2_OK)
-+         {
-+            if (notrys == 1)
-+            {
-+               for (int i = noldsurfel+1; i <= mesh.GetNSE(); i++)
-+                  mesh.DeleteSurfaceElement (i);
-+
-+               mesh.Compress();
-+
-+               cout << "retry Surface " << k << endl;
-+
-+               k--;
-+               projecttype*=-1;
-+               notrys++;
-+               continue;
-+            }
-+            else
-+            {
-+               geom.facemeshstatus[k-1] = -1;
-+               PrintError ("Problem in Surface mesh generation");
-+               surfmesherror++;
-+               //           throw NgException ("Problem in Surface mesh generation");
-+            }
-+         }
-+         else
-+         {
-+            geom.facemeshstatus[k-1] = 1;
-+         }
-+
-+         notrys = 1;
-+
-+         for (i = oldnf+1; i <= mesh.GetNSE(); i++)
-+            mesh.SurfaceElement(i).SetIndex (k);
-+
-+      }
-+
-+//      ofstream problemfile("occmesh.rep");
-+
-+//      problemfile << "SURFACEMESHING" << endl << endl;
-+
-+      if (surfmesherror)
-+      {
-+         cout << "WARNING! NOT ALL FACES HAVE BEEN MESHED" << endl;
-+         cout << "SURFACE MESHING ERROR OCCURED IN " << surfmesherror << " FACES:" << endl;
-+         for (int i = 1; i <= geom.fmap.Extent(); i++)
-+            if (geom.facemeshstatus[i-1] == -1)
-+            {
-+               cout << "Face " << i << endl;
-+//               problemfile << "problem with face " << i << endl;
-+//               problemfile << "vertices: " << endl;
-+               TopExp_Explorer exp0,exp1,exp2;
-+               for ( exp0.Init(TopoDS::Face (geom.fmap(i)), TopAbs_WIRE); exp0.More(); exp0.Next() )
-+               {
-+                  TopoDS_Wire wire = TopoDS::Wire(exp0.Current());
-+                  for ( exp1.Init(wire,TopAbs_EDGE); exp1.More(); exp1.Next() )
-+                  {
-+                     TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+                     for ( exp2.Init(edge,TopAbs_VERTEX); exp2.More(); exp2.Next() )
-+                     {
-+                        TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());
-+                        gp_Pnt point = BRep_Tool::Pnt(vertex);
-+//                        problemfile << point.X() << " " << point.Y() << " " << point.Z() << endl;
-+                     }
-+                  }
-+               }
-+//               problemfile << endl;
-+
-+            }
-+            cout << endl << endl;
-+            cout << "for more information open IGES/STEP Topology Explorer" << endl;
-+//            problemfile.close();
-+            throw NgException ("Problem in Surface mesh generation");
-+      }
-+      else
-+      {
-+//         problemfile << "OK" << endl << endl;
-+//         problemfile.close();
-+      }
-+
-+
-+
-+
-+      if (multithread.terminate || perfstepsend < MESHCONST_OPTSURFACE)
-+         return;
-+
-+      multithread.task = "Optimizing surface";
-+
-+      static int timer_opt2d = NgProfiler::CreateTimer ("Optimization 2D");
-+      NgProfiler::StartTimer (timer_opt2d);
-+
-+      for (k = 1; k <= mesh.GetNFD(); k++)
-+      {
-+         //      if (k != 42) continue;
-+         //      if (k != 36) continue;
-+
-+         //      (*testout) << "optimize face " << k << endl;
-+         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
-+
-+         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
-+
-+         PrintMessage (1, "Optimize Surface ", k);
-+         for (i = 1; i <= mparam.optsteps2d; i++)
-+         {
-+            //          (*testout) << "optstep " << i << endl;
-+            if (multithread.terminate) return;
-+
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;
-+               meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));
-+            }
-+
-+            if (multithread.terminate) return;
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "ImproveMesh (mesh)" << endl;
-+               meshopt.ImproveMesh (mesh, mparam);
-+            }
-+
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "CombineImprove (mesh)" << endl;
-+               meshopt.CombineImprove (mesh);
-+            }
-+
-+            if (multithread.terminate) return;
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "ImproveMesh (mesh)" << endl;
-+               meshopt.ImproveMesh (mesh, mparam);
-+            }
-+         }
-+
-+      }
-+
-+
-+      mesh.CalcSurfacesOfNode();
-+      mesh.Compress();
-+
-+      NgProfiler::StopTimer (timer_opt2d);
-+
-+      multithread.task = savetask;
-+   }
-+
-+
-+
-+   void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh)
-+   {
-+      mesh.SetGlobalH (mparam.maxh);
-+      mesh.SetMinimalH (mparam.minh);
-+
-+      Array<double> maxhdom;
-+      maxhdom.SetSize (geom.NrSolids());
-+      maxhdom = mparam.maxh;
-+
-+      mesh.SetMaxHDomain (maxhdom);
-+
-+      Box<3> bb = geom.GetBoundingBox();
-+      bb.Increase (bb.Diam()/10);
-+
-+      mesh.SetLocalH (bb.PMin(), bb.PMax(), 0.5);
-+
-+      if (mparam.uselocalh)
-+      {
-+         const char * savetask = multithread.task;
-+         multithread.percent = 0;
-+
-+         mesh.SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
-+
-+         int nedges = geom.emap.Extent();
-+
-+               double mincurvelength = IGNORECURVELENGTH;
-+         double maxedgelen = 0;
-+         double minedgelen = 1e99;
-+
-+               if(occparam.resthminedgelenenable)
-+               {
-+                      mincurvelength = occparam.resthminedgelen;
-+                      if(mincurvelength < IGNORECURVELENGTH) mincurvelength = IGNORECURVELENGTH;
-+               }
-+
-+         multithread.task = "Setting local mesh size (elements per edge)";
-+
-+         // setting elements per edge
-+
-+         for (int i = 1; i <= nedges && !multithread.terminate; i++)
-+         {
-+            TopoDS_Edge e = TopoDS::Edge (geom.emap(i));
-+            multithread.percent = 100 * (i-1)/double(nedges);
-+            if (BRep_Tool::Degenerated(e)) continue;
-+
-+            GProp_GProps system;
-+            BRepGProp::LinearProperties(e, system);
-+            double len = system.Mass();
-+
-+            if (len < mincurvelength)
-+            {
-+               (*testout) << "ignored" << endl;
-+               continue;
-+            }
-+
-+            double localh = len/mparam.segmentsperedge;
-+            double s0, s1;
-+
-+            // Philippose - 23/01/2009
-+            // Find all the parent faces of a given edge
-+            // and limit the mesh size of the edge based on the
-+            // mesh size limit of the face
-+            TopTools_IndexedDataMapOfShapeListOfShape edge_face_map;
-+            edge_face_map.Clear();
-+
-+            TopExp::MapShapesAndAncestors(geom.shape, TopAbs_EDGE, TopAbs_FACE, edge_face_map);
-+            const TopTools_ListOfShape& parent_faces = edge_face_map.FindFromKey(e);
-+
-+            TopTools_ListIteratorOfListOfShape parent_face_list;
-+
-+            for(parent_face_list.Initialize(parent_faces); parent_face_list.More(); parent_face_list.Next())
-+            {
-+               TopoDS_Face parent_face = TopoDS::Face(parent_face_list.Value());
-+
-+               int face_index = geom.fmap.FindIndex(parent_face);
-+
-+               if(face_index >= 1) localh = min(localh,geom.face_maxh[face_index - 1]);
-+            }
-+
-+            Handle(Geom_Curve) c = BRep_Tool::Curve(e, s0, s1);
-+
-+            maxedgelen = max (maxedgelen, len);
-+            minedgelen = min (minedgelen, len);
-+
-+            // Philippose - 23/01/2009
-+            // Modified the calculation of maxj, because the
-+            // method used so far always results in maxj = 2,
-+            // which causes the localh to be set only at the
-+            // starting, mid and end of the edge.
-+            // Old Algorithm:
-+            // int maxj = 2 * (int) ceil (localh/len);
-+            int maxj = max((int) ceil(len/localh), 2);
-+
-+            for (int j = 0; j <= maxj; j++)
-+            {
-+               gp_Pnt pnt = c->Value (s0+double(j)/maxj*(s1-s0));
-+               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), localh);
-+            }
-+         }
-+
-+         multithread.task = "Setting local mesh size (edge curvature)";
-+
-+         // setting edge curvature
-+
-+         int nsections = 20;
-+
-+         for (int i = 1; i <= nedges && !multithread.terminate; i++)
-+         {
-+            double maxcur = 0;
-+            multithread.percent = 100 * (i-1)/double(nedges);
-+            TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
-+            if (BRep_Tool::Degenerated(edge)) continue;
-+            double s0, s1;
-+            Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
-+            BRepAdaptor_Curve brepc(edge);
-+            BRepLProp_CLProps prop(brepc, 2, 1e-5);
-+
-+            for (int j = 1; j <= nsections; j++)
-+            {
-+               double s = s0 + j/(double) nsections * (s1-s0);
-+               prop.SetParameter (s);
-+               double curvature = prop.Curvature();
-+               if(curvature> maxcur) maxcur = curvature;
-+
-+               if (curvature >= 1e99)
-+                  continue;
-+
-+               gp_Pnt pnt = c->Value (s);
-+
-+               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature)));
-+            }
-+            // (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;
-+         }
-+
-+         multithread.task = "Setting local mesh size (face curvature)";
-+
-+         // setting face curvature
-+
-+         int nfaces = geom.fmap.Extent();
-+
-+         for (int i = 1; i <= nfaces && !multithread.terminate; i++)
-+         {
-+            multithread.percent = 100 * (i-1)/double(nfaces);
-+            TopoDS_Face face = TopoDS::Face(geom.fmap(i));
-+            TopLoc_Location loc;
-+            Handle(Geom_Surface) surf = BRep_Tool::Surface (face);
-+            Handle(Poly_Triangulation) triangulation = BRep_Tool::Triangulation (face, loc);
-+
-+            if (triangulation.IsNull()) continue;
-+
-+            BRepAdaptor_Surface sf(face, Standard_True);
-+            BRepLProp_SLProps prop(sf, 2, 1e-5);
-+
-+            int ntriangles = triangulation -> NbTriangles();
-+            for (int j = 1; j <= ntriangles; j++)
-+            {
-+               gp_Pnt p[3];
-+               gp_Pnt2d par[3];
-+
-+               for (int k = 1; k <=3; k++)
-+               {
-+                  int n = triangulation->Triangles()(j)(k);
-+                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);
-+                  par[k-1] = triangulation->UVNodes()(n);
-+               }
-+
-+               //double maxside = 0;
-+               //maxside = max (maxside, p[0].Distance(p[1]));
-+               //maxside = max (maxside, p[0].Distance(p[2]));
-+               //maxside = max (maxside, p[1].Distance(p[2]));
-+               //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
-+
-+               RestrictHTriangle (par[0], par[1], par[2], &prop, mesh, 0);
-+               //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
-+            }
-+         }
-+
-+         // setting close edges
-+
-+         if (occparam.resthcloseedgeenable)
-+         {
-+            multithread.task = "Setting local mesh size (close edges)";
-+
-+            int sections = 100;
-+
-+            Array<Line> lines(sections*nedges);
-+
-+            Box3dTree* searchtree =
-+               new Box3dTree (bb.PMin(), bb.PMax());
-+
-+            int nlines = 0;
-+            for (int i = 1; i <= nedges && !multithread.terminate; i++)
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
-+               if (BRep_Tool::Degenerated(edge)) continue;
-+
-+               double s0, s1;
-+               Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
-+               BRepAdaptor_Curve brepc(edge);
-+               BRepLProp_CLProps prop(brepc, 1, 1e-5);
-+               prop.SetParameter (s0);
-+
-+               gp_Vec d0 = prop.D1().Normalized();
-+               double s_start = s0;
-+               int count = 0;
-+               for (int j = 1; j <= sections; j++)
-+               {
-+                  double s = s0 + (s1-s0)*(double)j/(double)sections;
-+                  prop.SetParameter (s);
-+                  gp_Vec d1 = prop.D1().Normalized();
-+                  double cosalpha = fabs(d0*d1);
-+                  if ((j == sections) || (cosalpha < cos(10.0/180.0*M_PI)))
-+                  {
-+                     count++;
-+                     gp_Pnt p0 = c->Value (s_start);
-+                     gp_Pnt p1 = c->Value (s);
-+                     lines[nlines].p0 = Point<3> (p0.X(), p0.Y(), p0.Z());
-+                     lines[nlines].p1 = Point<3> (p1.X(), p1.Y(), p1.Z());
-+
-+                     Box3d box;
-+                     box.SetPoint (Point3d(lines[nlines].p0));
-+                     box.AddPoint (Point3d(lines[nlines].p1));
-+
-+                     searchtree->Insert (box.PMin(), box.PMax(), nlines+1);
-+                     nlines++;
-+
-+                     s_start = s;
-+                     d0 = d1;
-+                  }
-+               }
-+            }
-+
-+            Array<int> linenums;
-+
-+            for (int i = 0; i < nlines; i++)
-+            {
-+               multithread.percent = (100*i)/double(nlines);
-+               Line & line = lines[i];
-+
-+               Box3d box;
-+               box.SetPoint (Point3d(line.p0));
-+               box.AddPoint (Point3d(line.p1));
-+               double maxhline = max (mesh.GetH(box.PMin()),
-+                  mesh.GetH(box.PMax()));
-+               box.Increase(maxhline);
-+
-+               double mindist = 1e99;
-+               linenums.SetSize(0);
-+               searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);
-+
-+               for (int j = 0; j < linenums.Size(); j++)
-+               {
-+                  int num = linenums[j]-1;
-+                  if (i == num) continue;
-+                  if ((line.p0-lines[num].p0).Length2() < 1e-15) continue;
-+                  if ((line.p0-lines[num].p1).Length2() < 1e-15) continue;
-+                  if ((line.p1-lines[num].p0).Length2() < 1e-15) continue;
-+                  if ((line.p1-lines[num].p1).Length2() < 1e-15) continue;
-+                  mindist = min (mindist, line.Dist(lines[num]));
-+               }
-+
-+               mindist /= (occparam.resthcloseedgefac + VSMALL);
-+
-+               if (mindist < 1e-3)
-+               {
-+                  (*testout) << "extremely small local h: " << mindist
-+                     << " --> setting to 1e-3" << endl;
-+                  (*testout) << "somewhere near " << line.p0 << " - " << line.p1 << endl;
-+                  mindist = 1e-3;
-+               }
-+
-+               mesh.RestrictLocalHLine(line.p0, line.p1, mindist);
-+            }
-+         }
-+
-+         multithread.task = savetask;
-+
-+      }
-+
-+      // Philippose - 09/03/2009
-+      // Added the capability to load the mesh size from a
-+      // file also for OpenCascade Geometry
-+      // Note:
-+      // ** If the "uselocalh" option is ticked in
-+      // the "mesh options...insider" menu, the mesh
-+      // size will be further modified by the topology
-+      // analysis routines.
-+      // ** To use the mesh size file as the sole source
-+      // for defining the mesh size, uncheck the "uselocalh"
-+      // option.
-+      mesh.LoadLocalMeshSize (mparam.meshsizefilename);
-+   }
-+
-+
-+
-+  int OCCGenerateMesh (OCCGeometry & geom, Mesh *& mesh, MeshingParameters & mparam,
-+                     int perfstepsstart, int perfstepsend)
-+   {
-+      multithread.percent = 0;
-+
-+      if (perfstepsstart <= MESHCONST_ANALYSE)
-+      {
-+         delete mesh;
-+         mesh = new Mesh();
-+         mesh->geomtype = Mesh::GEOM_OCC;
-+
-+         OCCSetLocalMeshSize(geom,*mesh);
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_ANALYSE)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_MESHEDGES)
-+      {
-+         OCCFindEdges (geom, *mesh);
-+
-+         /*
-+         cout << "Removing redundant points" << endl;
-+
-+         int i, j;
-+         int np = mesh->GetNP();
-+         Array<int> equalto;
-+
-+         equalto.SetSize (np);
-+         equalto = 0;
-+
-+         for (i = 1; i <= np; i++)
-+         {
-+         for (j = i+1; j <= np; j++)
-+         {
-+         if (!equalto[j-1] && (Dist2 (mesh->Point(i), mesh->Point(j)) < 1e-12))
-+         equalto[j-1] = i;
-+         }
-+         }
-+
-+         for (i = 1; i <= np; i++)
-+         if (equalto[i-1])
-+         {
-+         cout << "Point " << i << " is equal to Point " << equalto[i-1] << endl;
-+         for (j = 1; j <= mesh->GetNSeg(); j++)
-+         {
-+         Segment & seg = mesh->LineSegment(j);
-+         if (seg[0] == i) seg[0] = equalto[i-1];
-+         if (seg[1] == i) seg[1] = equalto[i-1];
-+         }
-+         }
-+
-+         cout << "Removing degenerated segments" << endl;
-+         for (j = 1; j <= mesh->GetNSeg(); j++)
-+         {
-+         Segment & seg = mesh->LineSegment(j);
-+         if (seg[0] == seg[1])
-+         {
-+         mesh->DeleteSegment(j);
-+         cout << "Deleting Segment " << j << endl;
-+         }
-+         }
-+
-+         mesh->Compress();
-+         */
-+
-+         /*
-+         for (int i = 1; i <= geom.fmap.Extent(); i++)
-+         {
-+         Handle(Geom_Surface) hf1 =
-+         BRep_Tool::Surface(TopoDS::Face(geom.fmap(i)));
-+         for (int j = i+1; j <= geom.fmap.Extent(); j++)
-+         {
-+         Handle(Geom_Surface) hf2 =
-+         BRep_Tool::Surface(TopoDS::Face(geom.fmap(j)));
-+         if (hf1 == hf2) cout << "face " << i << " and face " << j << " lie on same surface" << endl;
-+         }
-+         }
-+         */
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Edges meshed" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_MESHEDGES)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_MESHSURFACE)
-+      {
-+         OCCMeshSurface (geom, *mesh, perfstepsend);
-+         if (multithread.terminate) return TCL_OK;
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Surfaces meshed" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+
-+#ifdef STAT_STREAM
-+         (*statout) << mesh->GetNSeg() << " & "
-+            << mesh->GetNSE() << " & - &"
-+            << GetTime() << " & " << endl;
-+#endif
-+
-+         //      MeshQuality2d (*mesh);
-+         mesh->CalcSurfacesOfNode();
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_OPTSURFACE)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_MESHVOLUME)
-+      {
-+         multithread.task = "Volume meshing";
-+
-+         MESHING3_RESULT res = MeshVolume (mparam, *mesh);
-+
-+/*
-+         ofstream problemfile("occmesh.rep",ios_base::app);
-+
-+         problemfile << "VOLUMEMESHING" << endl << endl;
-+         if(res != MESHING3_OK)
-+            problemfile << "ERROR" << endl << endl;
-+         else
-+            problemfile << "OK" << endl
-+            << mesh->GetNE() << " elements" << endl << endl;
-+
-+         problemfile.close();
-+*/
-+
-+         if (res != MESHING3_OK) return TCL_ERROR;
-+
-+         if (multithread.terminate) return TCL_OK;
-+
-+         RemoveIllegalElements (*mesh);
-+         if (multithread.terminate) return TCL_OK;
-+
-+         MeshQuality3d (*mesh);
-+
-+#ifdef STAT_STREAM
-+         (*statout) << GetTime() << " & ";
-+#endif
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Volume meshed" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_MESHVOLUME)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_OPTVOLUME)
-+      {
-+         multithread.task = "Volume optimization";
-+
-+         OptimizeVolume (mparam, *mesh);
-+         if (multithread.terminate) return TCL_OK;
-+
-+#ifdef STAT_STREAM
-+         (*statout) << GetTime() << " & "
-+            << mesh->GetNE() << " & "
-+            << mesh->GetNP() << " " << '\\' << '\\' << " \\" << "hline" << endl;
-+#endif
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Volume optimized" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+
-+         // cout << "Optimization complete" << endl;
-+
-+      }
-+
-+      (*testout) << "NP: " << mesh->GetNP() << endl;
-+      for (int i = 1; i <= mesh->GetNP(); i++)
-+         (*testout) << mesh->Point(i) << endl;
-+
-+      (*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;
-+      for (int i = 1; i <= mesh->GetNSeg(); i++)
-+         (*testout) << mesh->LineSegment(i) << endl;
-+
-+      return TCL_OK;
-+   }
-+}
-+
-+#endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp      2018-03-01 15:45:08.689877466 +0300
-@@ -1,1612 +1,1669 @@
--
--#ifdef OCCGEOMETRY
--
--#include <mystdlib.h>
--#include <occgeom.hpp>
--#include "ShapeAnalysis_ShapeTolerance.hxx"
--#include "ShapeAnalysis_ShapeContents.hxx"
--#include "ShapeAnalysis_CheckSmallFace.hxx"
--#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
--#include "ShapeAnalysis_Surface.hxx"
--#include "BRepAlgoAPI_Fuse.hxx"
--#include "BRepCheck_Analyzer.hxx"
--#include "BRepLib.hxx"
--#include "ShapeBuild_ReShape.hxx"
--#include "ShapeFix.hxx"
--#include "ShapeFix_FixSmallFace.hxx"
--#include "Partition_Spliter.hxx"
--
--
--namespace netgen
--{
--   void OCCGeometry :: PrintNrShapes ()
--   {
--      TopExp_Explorer e;
--      int count = 0;
--      for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) count++;
--      cout << "CompSolids: " << count << endl;
--
--      cout << "Solids    : " << somap.Extent() << endl;
--      cout << "Shells    : " << shmap.Extent() << endl;
--      cout << "Faces     : " << fmap.Extent() << endl;
--      cout << "Edges     : " << emap.Extent() << endl;
--      cout << "Vertices  : " << vmap.Extent() << endl;
--   }
--
--
--
--
--   void PrintContents (OCCGeometry * geom)
--   {
--      ShapeAnalysis_ShapeContents cont;
--      cont.Clear();
--      cont.Perform(geom->shape);
--
--      (*testout) << "OCC CONTENTS" << endl;
--      (*testout) << "============" << endl;
--      (*testout) << "SOLIDS   : " << cont.NbSolids() << endl;
--      (*testout) << "SHELLS   : " << cont.NbShells() << endl;
--      (*testout) << "FACES    : " << cont.NbFaces() << endl;
--      (*testout) << "WIRES    : " << cont.NbWires() << endl;
--      (*testout) << "EDGES    : " << cont.NbEdges() << endl;
--      (*testout) << "VERTICES : " << cont.NbVertices() << endl;
--
--      TopExp_Explorer e;
--      int count = 0;
--      for (e.Init(geom->shape, TopAbs_COMPOUND); e.More(); e.Next())
--         count++;
--      (*testout) << "Compounds: " << count << endl;
--
--      count = 0;
--      for (e.Init(geom->shape, TopAbs_COMPSOLID); e.More(); e.Next())
--         count++;
--      (*testout) << "CompSolids: " << count << endl;
--
--      (*testout) << endl;
--
--      cout << "Highest entry in topology hierarchy: " << endl;
--      if (count)
--         cout << count << " composite solid(s)" << endl;
--      else
--         if (geom->somap.Extent())
--            cout << geom->somap.Extent() << " solid(s)" << endl;
--         else
--            if (geom->shmap.Extent())
--               cout << geom->shmap.Extent() << " shells(s)" << endl;
--            else
--               if (geom->fmap.Extent())
--                  cout << geom->fmap.Extent() << " face(s)" << endl;
--               else
--                  if (geom->wmap.Extent())
--                     cout << geom->wmap.Extent() << " wire(s)" << endl;
--                  else
--                     if (geom->emap.Extent())
--                        cout << geom->emap.Extent() << " edge(s)" << endl;
--                     else
--                        if (geom->vmap.Extent())
--                           cout << geom->vmap.Extent() << " vertices(s)" << endl;
--                        else
--                           cout << "no entities" << endl;
--
--   }
--
--
--
--   void OCCGeometry :: HealGeometry ()
--   {
--      int nrc = 0, nrcs = 0,
--         nrso = somap.Extent(),
--         nrsh = shmap.Extent(),
--         nrf = fmap.Extent(),
--         nrw = wmap.Extent(),
--         nre = emap.Extent(),
--         nrv = vmap.Extent();
--
--      TopExp_Explorer exp0;
--      TopExp_Explorer exp1;
--
--
--      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++;
--      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++;
--
--      double surfacecont = 0;
--
--      {
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--         rebuild->Apply(shape);
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--            if ( BRep_Tool::Degenerated(edge) )
--               rebuild->Remove(edge, false);
--         }
--         shape = rebuild->Apply(shape);
--      }
--
--      BuildFMap();
--
--
--      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
--      {
--         TopoDS_Face face = TopoDS::Face(exp0.Current());
--
--         GProp_GProps system;
--         BRepGProp::SurfaceProperties(face, system);
--         surfacecont += system.Mass();
--      }
--
--
--      cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl
--         << "-----------------------------------" << endl;
--
--      {
--         cout << endl << "- repairing faces" << endl;
--
--         Handle(ShapeFix_Face) sff;
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--         rebuild->Apply(shape);
--
--
--         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
--         {
--            // Variable to hold the colour (if there exists one) of 
--            // the current face being processed
--            Quantity_Color face_colour;
--
--            TopoDS_Face face = TopoDS::Face (exp0.Current());
--
--            if(face_colours.IsNull()
--               || (!(face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour))))
--            {
--               // Set the default face colour to green (Netgen Standard)
--               // if no colour has been defined for the face
--               face_colour = Quantity_Color(0.0,1.0,0.0,Quantity_TOC_RGB);
--            }
--
--            sff = new ShapeFix_Face (face);
--            sff->FixAddNaturalBoundMode() = Standard_True;
--            sff->FixSmallAreaWireMode() = Standard_True;
--            sff->Perform();
--
--            if(sff->Status(ShapeExtend_DONE1) ||
--               sff->Status(ShapeExtend_DONE2) ||
--               sff->Status(ShapeExtend_DONE3) ||
--               sff->Status(ShapeExtend_DONE4) ||
--               sff->Status(ShapeExtend_DONE5))
--            {
--               cout << "repaired face " << fmap.FindIndex(face) << " ";
--               if(sff->Status(ShapeExtend_DONE1))
--                  cout << "(some wires are fixed)" <<endl;
--               else if(sff->Status(ShapeExtend_DONE2))
--                  cout << "(orientation of wires fixed)" <<endl;
--               else if(sff->Status(ShapeExtend_DONE3))
--                  cout << "(missing seam added)" <<endl;
--               else if(sff->Status(ShapeExtend_DONE4))
--                  cout << "(small area wire removed)" <<endl;
--               else if(sff->Status(ShapeExtend_DONE5))
--                  cout << "(natural bounds added)" <<endl;
--               TopoDS_Face newface = sff->Face();
--
--               rebuild->Replace(face, newface, Standard_False);
--            }
--
--            // Set the original colour of the face to the newly created 
--            // face (after the healing process)
--            face = TopoDS::Face (exp0.Current());
--            face_colours->SetColor(face,face_colour,XCAFDoc_ColorSurf);
--         }
--         shape = rebuild->Apply(shape);
--      }
--
--
--      {
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--         rebuild->Apply(shape);
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--            if ( BRep_Tool::Degenerated(edge) )
--               rebuild->Remove(edge, false);
--         }
--         shape = rebuild->Apply(shape);
--      }
--
--
--      if (fixsmalledges)
--      {
--         cout << endl << "- fixing small edges" << endl;
--
--         Handle(ShapeFix_Wire) sfw;
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--         rebuild->Apply(shape);
--
--
--         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
--         {
--            TopoDS_Face face = TopoDS::Face(exp0.Current());
--
--            for (exp1.Init (face, TopAbs_WIRE); exp1.More(); exp1.Next())
--            {
--               TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());
--               sfw = new ShapeFix_Wire (oldwire, face ,tolerance);
--               sfw->ModifyTopologyMode() = Standard_True;
--
--               sfw->ClosedWireMode() = Standard_True;
--
--               bool replace = false;
--
--               replace = sfw->FixReorder() || replace;
--
--               replace = sfw->FixConnected() || replace;
--
--
--
--               if (sfw->FixSmall (Standard_False, tolerance) && ! (sfw->StatusSmall(ShapeExtend_FAIL1) ||
--                  sfw->StatusSmall(ShapeExtend_FAIL2) ||
--                  sfw->StatusSmall(ShapeExtend_FAIL3)))
--               {
--                  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;
--                  replace = true;
--
--               }
--               else if (sfw->StatusSmall(ShapeExtend_FAIL1))
--                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
--                  << ", edge cannot be checked (no 3d curve and no pcurve)" << endl;
--               else if (sfw->StatusSmall(ShapeExtend_FAIL2))
--                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
--                  << ", edge is null-length and has different vertives at begin and end, and lockvtx is True or ModifiyTopologyMode is False" << endl;
--               else if (sfw->StatusSmall(ShapeExtend_FAIL3))
--                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
--                  << ", CheckConnected has failed" << endl;
--
--               replace = sfw->FixEdgeCurves() || replace;
--
--               replace = sfw->FixDegenerated() || replace;
--
--               replace = sfw->FixSelfIntersection() || replace;
--
--               replace = sfw->FixLacking(Standard_True) || replace;
--
--               if(replace)
--               {
--                  TopoDS_Wire newwire = sfw->Wire();
--                  rebuild->Replace(oldwire, newwire, Standard_False);
--               }
--
--               //delete sfw; sfw = NULL;
--
--            }
--         }
--
--         shape = rebuild->Apply(shape);
--
--
--
--         {
--            BuildFMap();
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--            rebuild->Apply(shape);
--
--            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--            {
--               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--               if (vmap.FindIndex(TopExp::FirstVertex (edge)) ==
--                  vmap.FindIndex(TopExp::LastVertex (edge)))
--               {
--                  GProp_GProps system;
--                  BRepGProp::LinearProperties(edge, system);
--                  if (system.Mass() < tolerance)
--                  {
--                     cout << "removing degenerated edge " << emap.FindIndex(edge)
--                        << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))
--                        << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;
--                     rebuild->Remove(edge, false);
--                  }
--               }
--            }
--            shape = rebuild->Apply(shape);
--
--            //delete rebuild; rebuild = NULL;
--         }
--
--
--
--         {
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--            rebuild->Apply(shape);
--            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--            {
--               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--               if ( BRep_Tool::Degenerated(edge) )
--                  rebuild->Remove(edge, false);
--            }
--            shape = rebuild->Apply(shape);
--         }
--
--
--
--
--         Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;
--         sfwf->SetPrecision(tolerance);
--         sfwf->Load (shape);
--         sfwf->ModeDropSmallEdges() = Standard_True;
--
--         sfwf->SetPrecision(boundingbox.Diam());
--
--         if (sfwf->FixWireGaps())
--         {
--            cout << endl << "- fixing wire gaps" << endl;
--            if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;
--            if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;
--            if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;
--            if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;
--            if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;
--         }
--
--         sfwf->SetPrecision(tolerance);
--
--
--         {
--            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--            {
--               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--               if ( BRep_Tool::Degenerated(edge) )
--                  cout << "degenerated edge at position 4" << endl;
--            }
--         }
--
--
--
--         if (sfwf->FixSmallEdges())
--         {
--            cout << endl << "- fixing wire frames" << endl;
--            if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;
--            if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;
--            if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;
--         }
--
--
--
--         shape = sfwf->Shape();
--
--         //delete sfwf; sfwf = NULL;
--         //delete rebuild; rebuild = NULL;
--
--      }
--
--
--
--
--
--      {
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--            if ( BRep_Tool::Degenerated(edge) )
--               cout << "degenerated edge at position 5" << endl;
--         }
--      }
--
--
--
--
--      if (fixspotstripfaces)
--      {
--
--         cout << endl << "- fixing spot and strip faces" << endl;
--         Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();
--         sffsm -> Init (shape);
--         sffsm -> SetPrecision (tolerance);
--         sffsm -> Perform();
--
--         shape = sffsm -> FixShape();
--         //delete sffsm; sffsm = NULL;
--      }
--
--
--      {
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--            if ( BRep_Tool::Degenerated(edge) )
--               cout << "degenerated edge at position 6" << endl;
--         }
--      }
--
--
--
--      if (sewfaces)
--      {
--         cout << endl << "- sewing faces" << endl;
--
--         BRepOffsetAPI_Sewing sewedObj(tolerance);
--
--         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
--         {
--            TopoDS_Face face = TopoDS::Face (exp0.Current());
--            sewedObj.Add (face);
--         }
--
--         sewedObj.Perform();
--
--         if (!sewedObj.SewedShape().IsNull())
--            shape = sewedObj.SewedShape();
--         else
--            cout << " not possible";
--      }
--
--
--
--      {
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--         rebuild->Apply(shape);
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--            if ( BRep_Tool::Degenerated(edge) )
--               rebuild->Remove(edge, false);
--         }
--         shape = rebuild->Apply(shape);
--      }
--
--
--      if (makesolids)
--      {
--         cout << endl << "- making solids" << endl;
--
--         BRepBuilderAPI_MakeSolid ms;
--         int count = 0;
--         for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
--         {
--            count++;
--            ms.Add (TopoDS::Shell(exp0.Current()));
--         }
--
--         if (!count)
--         {
--            cout << " not possible (no shells)" << endl;
--         }
--         else
--         {
--            BRepCheck_Analyzer ba(ms);
--            if (ba.IsValid ())
--            {
--               Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
--               sfs->Init (ms);
--               sfs->SetPrecision(tolerance);
--               sfs->SetMaxTolerance(tolerance);
--               sfs->Perform();
--               shape = sfs->Shape();
--
--               for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
--               {
--                  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
--                  TopoDS_Solid newsolid = solid;
--                  BRepLib::OrientClosedSolid (newsolid);
--                  Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--                  //            rebuild->Apply(shape);
--                  rebuild->Replace(solid, newsolid, Standard_False);
--                  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);
--                  //            TopoDS_Shape newshape = rebuild->Apply(shape);
--                  shape = newshape;
--               }
--
--               //delete sfs; sfs = NULL;
--            }
--            else
--               cout << " not possible" << endl;
--         }
--      }
--
--
--
--      if (splitpartitions)
--      {
--         cout << "- running SALOME partition splitter" << endl;
--
--         TopExp_Explorer e2;
--         Partition_Spliter ps;
--         int count = 0;
--
--         for (e2.Init (shape, TopAbs_SOLID);
--            e2.More(); e2.Next())
--         {
--            count++;
--            ps.AddShape (e2.Current());
--         }
--
--         ps.Compute();
--         shape = ps.Shape();
--
--         cout << " before: " << count << " solids" << endl;
--
--         count = 0;
--         for (e2.Init (shape, TopAbs_SOLID);
--            e2.More(); e2.Next()) count++;
--
--            cout << " after : " << count << " solids" << endl;
--      }
--
--      BuildFMap();
--
--
--
--      {
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
--         {
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
--            if ( BRep_Tool::Degenerated(edge) )
--               cout << "degenerated edge at position 8" << endl;
--         }
--      }
--
--
--      double newsurfacecont = 0;
--
--
--      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
--      {
--         TopoDS_Face face = TopoDS::Face(exp0.Current());
--         GProp_GProps system;
--         BRepGProp::SurfaceProperties(face, system);
--         newsurfacecont += system.Mass();
--      }
--
--
--      int nnrc = 0, nnrcs = 0,
--         nnrso = somap.Extent(),
--         nnrsh = shmap.Extent(),
--         nnrf = fmap.Extent(),
--         nnrw = wmap.Extent(),
--         nnre = emap.Extent(),
--         nnrv = vmap.Extent();
--
--      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++;
--      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++;
--
--      cout << "-----------------------------------" << endl;
--      cout << "Compounds       : " << nnrc << " (" << nrc << ")" << endl;
--      cout << "Composite solids: " << nnrcs << " (" << nrcs << ")" << endl;
--      cout << "Solids          : " << nnrso << " (" << nrso << ")" << endl;
--      cout << "Shells          : " << nnrsh << " (" << nrsh << ")" << endl;
--      cout << "Wires           : " << nnrw << " (" << nrw << ")" << endl;
--      cout << "Faces           : " << nnrf << " (" << nrf << ")" << endl;
--      cout << "Edges           : " << nnre << " (" << nre << ")" << endl;
--      cout << "Vertices        : " << nnrv << " (" << nrv << ")" << endl;
--      cout << endl;
--      cout << "Totol surface area : " << newsurfacecont << " (" << surfacecont << ")" << endl;
--      cout << endl;
--   }
--
--
--
--
--   void OCCGeometry :: BuildFMap()
--   {
--      somap.Clear();
--      shmap.Clear();
--      fmap.Clear();
--      wmap.Clear();
--      emap.Clear();
--      vmap.Clear();
--
--      TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5;
--
--      for (exp0.Init(shape, TopAbs_COMPOUND);
--         exp0.More(); exp0.Next())
--      {
--         TopoDS_Compound compound = TopoDS::Compound (exp0.Current());
--         (*testout) << "compound" << endl;
--         int i = 0;
--         for (exp1.Init(compound, TopAbs_SHELL);
--            exp1.More(); exp1.Next())
--         {
--            (*testout) << "shell " << ++i << endl;
--         }
--      }
--
--      for (exp0.Init(shape, TopAbs_SOLID);
--         exp0.More(); exp0.Next())
--      {
--         TopoDS_Solid solid = TopoDS::Solid (exp0.Current());
--
--         if (somap.FindIndex(solid) < 1)
--         {
--            somap.Add (solid);
--
--            for (exp1.Init(solid, TopAbs_SHELL);
--               exp1.More(); exp1.Next())
--            {
--               TopoDS_Shell shell = TopoDS::Shell (exp1.Current());
--               if (shmap.FindIndex(shell) < 1)
--               {
--                  shmap.Add (shell);
--
--                  for (exp2.Init(shell, TopAbs_FACE);
--                     exp2.More(); exp2.Next())
--                  {
--                     TopoDS_Face face = TopoDS::Face(exp2.Current());
--                     if (fmap.FindIndex(face) < 1)
--                     {
--                        fmap.Add (face);
--                        (*testout) << "face " << fmap.FindIndex(face) << " ";
--                        (*testout) << ((face.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
--                        (*testout) << ((exp2.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
--                        for (exp3.Init(exp2.Current(), TopAbs_WIRE);
--                           exp3.More(); exp3.Next())
--                        {
--                           TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
--                           if (wmap.FindIndex(wire) < 1)
--                           {
--                              wmap.Add (wire);
--
--                              for (exp4.Init(exp3.Current(), TopAbs_EDGE);
--                                 exp4.More(); exp4.Next())
--                              {
--                                 TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
--                                 if (emap.FindIndex(edge) < 1)
--                                 {
--                                    emap.Add (edge);
--                                    for (exp5.Init(exp4.Current(), TopAbs_VERTEX);
--                                       exp5.More(); exp5.Next())
--                                    {
--                                       TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
--                                       if (vmap.FindIndex(vertex) < 1)
--                                          vmap.Add (vertex);
--                                    }
--                                 }
--                              }
--                           }
--                        }
--                     }
--                  }
--               }
--            }
--         }
--      }
--
--      // Free Shells
--      for (exp1.Init(shape, TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next())
--      {
--         TopoDS_Shell shell = TopoDS::Shell(exp1.Current());
--         if (shmap.FindIndex(shell) < 1)
--         {
--            shmap.Add (shell);
--
--            (*testout) << "shell " << shmap.FindIndex(shell) << " ";
--            (*testout) << ((shell.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
--            (*testout) << ((exp1.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
--
--            for (exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next())
--            {
--               TopoDS_Face face = TopoDS::Face(exp2.Current());
--               if (fmap.FindIndex(face) < 1)
--               {
--                  fmap.Add (face);
--
--                  for (exp3.Init(face, TopAbs_WIRE); exp3.More(); exp3.Next())
--                  {
--                     TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
--                     if (wmap.FindIndex(wire) < 1)
--                     {
--                        wmap.Add (wire);
--
--                        for (exp4.Init(wire, TopAbs_EDGE); exp4.More(); exp4.Next())
--                        {
--                           TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
--                           if (emap.FindIndex(edge) < 1)
--                           {
--                              emap.Add (edge);
--                              for (exp5.Init(edge, TopAbs_VERTEX); exp5.More(); exp5.Next())
--                              {
--                                 TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
--                                 if (vmap.FindIndex(vertex) < 1)
--                                    vmap.Add (vertex);
--                              }
--                           }
--                        }
--                     }
--                  }
--               }
--            }
--         }
--      }
--
--
--      // Free Faces
--
--      for (exp2.Init(shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next())
--      {
--         TopoDS_Face face = TopoDS::Face(exp2.Current());
--         if (fmap.FindIndex(face) < 1)
--         {
--            fmap.Add (face);
--
--            for (exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next())
--            {
--               TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
--               if (wmap.FindIndex(wire) < 1)
--               {
--                  wmap.Add (wire);
--
--                  for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
--                  {
--                     TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
--                     if (emap.FindIndex(edge) < 1)
--                     {
--                        emap.Add (edge);
--                        for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
--                        {
--                           TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
--                           if (vmap.FindIndex(vertex) < 1)
--                              vmap.Add (vertex);
--                        }
--                     }
--                  }
--               }
--            }
--         }
--      }
--
--
--      // Free Wires
--
--      for (exp3.Init(shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next())
--      {
--         TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
--         if (wmap.FindIndex(wire) < 1)
--         {
--            wmap.Add (wire);
--
--            for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
--            {
--               TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
--               if (emap.FindIndex(edge) < 1)
--               {
--                  emap.Add (edge);
--                  for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
--                  {
--                     TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
--                     if (vmap.FindIndex(vertex) < 1)
--                        vmap.Add (vertex);
--                  }
--               }
--            }
--         }
--      }
--
--
--      // Free Edges
--
--      for (exp4.Init(shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next())
--      {
--         TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
--         if (emap.FindIndex(edge) < 1)
--         {
--            emap.Add (edge);
--            for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
--            {
--               TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
--               if (vmap.FindIndex(vertex) < 1)
--                  vmap.Add (vertex);
--            }
--         }
--      }
--
--
--      // Free Vertices
--
--      for (exp5.Init(shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next())
--      {
--         TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
--         if (vmap.FindIndex(vertex) < 1)
--            vmap.Add (vertex);
--      }
--
--
--
--
--      facemeshstatus.DeleteAll();
--      facemeshstatus.SetSize (fmap.Extent());
--      facemeshstatus = 0;
--
--      // Philippose - 15/01/2009
--      face_maxh.DeleteAll();
--      face_maxh.SetSize (fmap.Extent());
--      face_maxh = mparam.maxh;
--
--      // Philippose - 15/01/2010      
--      face_maxh_modified.DeleteAll();      
--      face_maxh_modified.SetSize(fmap.Extent());      
--      face_maxh_modified = 0;
--      
--
--      // Philippose - 17/01/2009
--      face_sel_status.DeleteAll();
--      face_sel_status.SetSize (fmap.Extent());
--      face_sel_status = 0;
--
--      fvispar.SetSize (fmap.Extent());
--      evispar.SetSize (emap.Extent());
--      vvispar.SetSize (vmap.Extent());
--
--      fsingular.SetSize (fmap.Extent());
--      esingular.SetSize (emap.Extent());
--      vsingular.SetSize (vmap.Extent());
--
--      fsingular = esingular = vsingular = false;
--   }
--
--
--
--   void OCCGeometry :: SewFaces ()
--   {
--      (*testout) << "Trying to sew faces ..." << endl;
--      cout << "Trying to sew faces ..." << flush;
--
--      BRepOffsetAPI_Sewing sewedObj(1);
-- 
--      for (int i = 1; i <= fmap.Extent(); i++)
--      {
--         TopoDS_Face face = TopoDS::Face (fmap(i));
--         sewedObj.Add (face);
--      }
--
--      sewedObj.Perform();
--
--      if (!sewedObj.SewedShape().IsNull())
--      {
--         shape = sewedObj.SewedShape();
--         cout << " done" << endl;
--      }
--      else
--         cout << " not possible";
--   }
--
--
--
--
--
--   void OCCGeometry :: MakeSolid ()
--   {
--      TopExp_Explorer exp0;
--
--      (*testout) << "Trying to build solids ..." << endl;
--      cout << "Trying to build solids ..." << flush;
--
--      BRepBuilderAPI_MakeSolid ms;
--      int count = 0;
--      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
--      {
--         count++;
--         ms.Add (TopoDS::Shell(exp0.Current()));
--      }
--
--      if (!count)
--      {
--         cout << " not possible (no shells)" << endl;
--         return;
--      }
--
--      BRepCheck_Analyzer ba(ms);
--      if (ba.IsValid ())
--      {
--         Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
--         sfs->Init (ms);
--
--         sfs->SetPrecision(1e-5);
--         sfs->SetMaxTolerance(1e-5);
--
--         sfs->Perform();
--
--         shape = sfs->Shape();
--
--         for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
--         {
--            TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
--            TopoDS_Solid newsolid = solid;
--            BRepLib::OrientClosedSolid (newsolid);
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--            rebuild->Replace(solid, newsolid, Standard_False);
--
--            TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);
--            shape = newshape;
--         }
--
--         cout << " done" << endl;
--      }
--      else
--         cout << " not possible" << endl;
--   }
--
--
--
--
--   void OCCGeometry :: BuildVisualizationMesh (double deflection)
--   {
--      cout << "Preparing visualization (deflection = " << deflection << ") ... " << flush;
--
--      BRepTools::Clean (shape);
--      // BRepMesh_IncrementalMesh::
--      BRepMesh_IncrementalMesh (shape, deflection, true);
--      cout << "done" << endl;
--   }
--
--
--
--
--   void OCCGeometry :: CalcBoundingBox ()
--   {
--      Bnd_Box bb;
--      BRepBndLib::Add (shape, bb);
--
--      double x1,y1,z1,x2,y2,z2;
--      bb.Get (x1,y1,z1,x2,y2,z2);
--      Point<3> p1 = Point<3> (x1,y1,z1);
--      Point<3> p2 = Point<3> (x2,y2,z2);
--
--      (*testout) << "Bounding Box = [" << p1 << " - " << p2 << "]" << endl;
--      boundingbox = Box<3> (p1,p2);
--      SetCenter();
--   }
--
--
--
--
--   void OCCGeometry :: Project (int surfi, Point<3> & p) const
--   {
--      static int cnt = 0;
--      if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;
--
--      gp_Pnt pnt(p(0), p(1), p(2));
--
--      double u,v;
--      Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
--      Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
--      gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
--      suval.Coord( u, v);
--      pnt = thesurf->Value( u, v );
--
--
--      p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
--
--   }
--
--
--
--
--   bool OCCGeometry :: FastProject (int surfi, Point<3> & ap, double& u, double& v) const
--   {
--      gp_Pnt p(ap(0), ap(1), ap(2));
--
--      Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
--
--      gp_Pnt x = surface->Value (u,v);
--
--      if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
--
--      gp_Vec du, dv;
--
--      surface->D1(u,v,x,du,dv);
--
--      int count = 0;
--
--      gp_Pnt xold;
--      gp_Vec n;
--      double det, lambda, mu;
--
--      do {
--         count++;
--
--         n = du^dv;
--
--         det = Det3 (n.X(), du.X(), dv.X(),
--            n.Y(), du.Y(), dv.Y(),
--            n.Z(), du.Z(), dv.Z());
--
--         if (det < 1e-15) return false;
--
--         lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
--            n.Y(), p.Y()-x.Y(), dv.Y(),
--            n.Z(), p.Z()-x.Z(), dv.Z())/det;
--
--         mu     = Det3 (n.X(), du.X(), p.X()-x.X(),
--            n.Y(), du.Y(), p.Y()-x.Y(),
--            n.Z(), du.Z(), p.Z()-x.Z())/det;
--
--         u += lambda;
--         v += mu;
--
--         xold = x;
--         surface->D1(u,v,x,du,dv);
--
--      } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
--
--      //    (*testout) << "FastProject count: " << count << endl;
--
--      if (count == 50) return false;
--
--      ap = Point<3> (x.X(), x.Y(), x.Z());
--
--      return true;
--   }
--
--
--
--
--   void OCCGeometry :: WriteOCC_STL(char * filename)
--   {
--      cout << "writing stl..."; cout.flush();
--      StlAPI_Writer writer;
--      writer.RelativeMode() = Standard_False;
--
--      writer.SetDeflection(0.02);
--      writer.Write(shape,filename);
--
--      cout << "done" << endl;
--   }
--
--
--
--   // Philippose - 23/02/2009
--   /* Special IGES File load function including the ability
--   to extract individual surface colours via the extended
--   OpenCascade XDE and XCAF Feature set.
--   */
--   OCCGeometry *LoadOCC_IGES(const char *filename)
--   {
--      OCCGeometry *occgeo;
--      occgeo = new OCCGeometry;
--
--      // Initiate a dummy XCAF Application to handle the IGES XCAF Document
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();
--
--      // Create an XCAF Document to contain the IGES file itself
--      Handle_TDocStd_Document iges_doc;
--
--      // Check if a IGES File is already open under this handle, if so, close it to prevent
--      // Segmentation Faults when trying to create a new document
--      if(dummy_app->NbDocuments() > 0)
--      {
--         dummy_app->GetDocument(1,iges_doc);
--         dummy_app->Close(iges_doc);
--      }
--      dummy_app->NewDocument ("IGES-XCAF",iges_doc);
--
--      IGESCAFControl_Reader reader;
--
--      Standard_Integer stat = reader.ReadFile((char*)filename);
--
--      if(stat != IFSelect_RetDone)
--      {
--         delete occgeo;
--         return NULL;
--      }
--
--      // Enable transfer of colours
--      reader.SetColorMode(Standard_True);
--
--      reader.Transfer(iges_doc);
--
--      // Read in the shape(s) and the colours present in the IGES File
--      Handle_XCAFDoc_ShapeTool iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());
--      Handle_XCAFDoc_ColorTool iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());
--
--      TDF_LabelSequence iges_shapes;
--      iges_shape_contents->GetShapes(iges_shapes);
--
--      // List out the available colours in the IGES File as Colour Names
--      TDF_LabelSequence all_colours;
--      iges_colour_contents->GetColors(all_colours);
--      PrintMessage(1,"Number of colours in IGES File: ",all_colours.Length());
--      for(int i = 1; i <= all_colours.Length(); i++)
--      {
--         Quantity_Color col;
--         stringstream col_rgb;
--         iges_colour_contents->GetColor(all_colours.Value(i),col);
--         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
--         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
--      }
--
--
--      // For the IGES Reader, all the shapes can be exported as one compund shape 
--      // using the "OneShape" member
--      occgeo->shape = reader.OneShape();
--      occgeo->face_colours = iges_colour_contents;
--      occgeo->changed = 1;
--      occgeo->BuildFMap();
--
--      occgeo->CalcBoundingBox();
--      PrintContents (occgeo);
--
--      return occgeo;
--   }
--
--
--
--
--
--   // Philippose - 29/01/2009
--   /* Special STEP File load function including the ability
--   to extract individual surface colours via the extended
--   OpenCascade XDE and XCAF Feature set.
--   */
--   OCCGeometry * LoadOCC_STEP (const char * filename)
--   {
--      OCCGeometry * occgeo;
--      occgeo = new OCCGeometry;
--
--      // Initiate a dummy XCAF Application to handle the STEP XCAF Document
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();
--
--      // Create an XCAF Document to contain the STEP file itself
--      Handle_TDocStd_Document step_doc;
--
--      // Check if a STEP File is already open under this handle, if so, close it to prevent
--      // Segmentation Faults when trying to create a new document
--      if(dummy_app->NbDocuments() > 0)
--      {
--         dummy_app->GetDocument(1,step_doc);
--         dummy_app->Close(step_doc);
--      }
--      dummy_app->NewDocument ("STEP-XCAF",step_doc);
--
--      STEPCAFControl_Reader reader;
--
--      // Enable transfer of colours
--      reader.SetColorMode(Standard_True);
--
--      Standard_Integer stat = reader.ReadFile((char*)filename);
--
--      if(stat != IFSelect_RetDone)
--      {
--         delete occgeo;
--         return NULL;
--      }
--
--      reader.Transfer(step_doc);
--
--      // Read in the shape(s) and the colours present in the STEP File
--      Handle_XCAFDoc_ShapeTool step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());
--      Handle_XCAFDoc_ColorTool step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());
--
--      TDF_LabelSequence step_shapes;
--      step_shape_contents->GetShapes(step_shapes);
--
--      // List out the available colours in the STEP File as Colour Names
--      TDF_LabelSequence all_colours;
--      step_colour_contents->GetColors(all_colours);
--      PrintMessage(1,"Number of colours in STEP File: ",all_colours.Length());
--      for(int i = 1; i <= all_colours.Length(); i++)
--      {
--         Quantity_Color col;
--         stringstream col_rgb;
--         step_colour_contents->GetColor(all_colours.Value(i),col);
--         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
--         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
--      }
--
--
--      // For the STEP File Reader in OCC, the 1st Shape contains the entire 
--      // compound geometry as one shape
--      occgeo->shape = step_shape_contents->GetShape(step_shapes.Value(1));
--      occgeo->face_colours = step_colour_contents;
--      occgeo->changed = 1;
--      occgeo->BuildFMap();
--
--      occgeo->CalcBoundingBox();
--      PrintContents (occgeo);
--
--      return occgeo;
--   }
--
--
--
--
--   OCCGeometry *LoadOCC_BREP (const char *filename)
--   {
--      OCCGeometry * occgeo;
--      occgeo = new OCCGeometry;
--
--      BRep_Builder aBuilder;
--      Standard_Boolean result = BRepTools::Read(occgeo->shape, const_cast<char*> (filename),aBuilder);
--
--      if(!result)
--      {
--         delete occgeo;
--         return NULL;
--      }
--
--      // Philippose - 23/02/2009
--      // Fixed a bug in the OpenCascade XDE Colour handling when 
--      // opening BREP Files, since BREP Files have no colour data.
--      // Hence, the face_colours Handle needs to be created as a NULL handle.
--      occgeo->face_colours = Handle_XCAFDoc_ColorTool();
--      occgeo->face_colours.Nullify();
--      occgeo->changed = 1;
--      occgeo->BuildFMap();
--
--      occgeo->CalcBoundingBox();
--      PrintContents (occgeo);
--
--      return occgeo;
--   }
--
--
--  void OCCGeometry :: Save (string sfilename) const
--  {
--    const char * filename = sfilename.c_str();
--    if (strlen(filename) < 4) 
--      throw NgException ("illegal filename");
--    
--    if (strcmp (&filename[strlen(filename)-3], "igs") == 0)
--      {
--      IGESControl_Writer writer("millimeters", 1);
--      writer.AddShape (shape);
--      writer.Write (filename);
--      }
--    else if (strcmp (&filename[strlen(filename)-3], "stp") == 0)
--      {
--      STEPControl_Writer writer;
--      writer.Transfer (shape, STEPControl_AsIs);
--      writer.Write (filename);
--      }
--    else if (strcmp (&filename[strlen(filename)-3], "stl") == 0)
--      {
--      StlAPI_Writer writer;
--      writer.ASCIIMode() = Standard_True;
--      writer.Write (shape, filename);
--      }
--    else if (strcmp (&filename[strlen(filename)-4], "stlb") == 0)
--      {
--      StlAPI_Writer writer;
--      writer.ASCIIMode() = Standard_False;
--      writer.Write (shape, filename);
--      }
--  }
--
--
--
--  const char * shapesname[] =
--   {" ", "CompSolids", "Solids", "Shells",
--
--   "Faces", "Wires", "Edges", "Vertices"};
--
--  const char * shapename[] =
--   {" ", "CompSolid", "Solid", "Shell",
--   "Face", "Wire", "Edge", "Vertex"};
--
--  const char * orientationstring[] =
--     {"+", "-"};
--
--
--
--
--   void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,
--      stringstream & str,
--      TopAbs_ShapeEnum l,
--      bool isfree,
--      const char * lname)
--   {
--      if (l > TopAbs_VERTEX) return;
--
--      TopExp_Explorer e;
--      int count = 0;
--      int count2 = 0;
--
--      if (isfree)
--         e.Init(sh, l, TopAbs_ShapeEnum(l-1));
--      else
--         e.Init(sh, l);
--
--      for (; e.More(); e.Next())
--      {
--         count++;
--
--         stringstream lname2;
--         lname2 << lname << "/" << shapename[l] << count;
--         str << lname2.str() << " ";
--
--         switch (e.Current().ShapeType())
--         {
--         case TopAbs_SOLID:
--           count2 = somap.FindIndex(TopoDS::Solid(e.Current())); break;
--         case TopAbs_SHELL:
--           count2 = shmap.FindIndex(TopoDS::Shell(e.Current())); break;
--         case TopAbs_FACE:
--           count2 = fmap.FindIndex(TopoDS::Face(e.Current())); break;
--         case TopAbs_WIRE:
--           count2 = wmap.FindIndex(TopoDS::Wire(e.Current())); break;
--         case TopAbs_EDGE:
--           count2 = emap.FindIndex(TopoDS::Edge(e.Current())); break;
--         case TopAbs_VERTEX:
--           count2 = vmap.FindIndex(TopoDS::Vertex(e.Current())); break;
--         default:
--           cout << "RecursiveTopologyTree: Case " << e.Current().ShapeType() << " not handeled" << endl;
--         }
--
--         int nrsubshapes = 0;
--
--         if (l <= TopAbs_WIRE)
--         {
--            TopExp_Explorer e2;
--            for (e2.Init (e.Current(), TopAbs_ShapeEnum (l+1));
--               e2.More(); e2.Next())
--               nrsubshapes++;
--         }
--
--         str << "{" << shapename[l] << " " << count2;
--
--         if (l <= TopAbs_EDGE)
--         {
--            str << " (" << orientationstring[e.Current().Orientation()];
--            if (nrsubshapes != 0) str << ", " << nrsubshapes;
--            str << ") } ";
--         }
--         else
--            str << " } ";
--
--         RecursiveTopologyTree (e.Current(), str, TopAbs_ShapeEnum (l+1),
--            false, (char*)lname2.str().c_str());
--
--      }
--   }
--
--
--
--
--   void OCCGeometry :: GetTopologyTree (stringstream & str)
--   {
--      cout << "Building topology tree ... " << flush;
--      RecursiveTopologyTree (shape, str, TopAbs_COMPSOLID, false, "CompSolids");
--      RecursiveTopologyTree (shape, str, TopAbs_SOLID, true, "FreeSolids");
--      RecursiveTopologyTree (shape, str, TopAbs_SHELL, true, "FreeShells");
--      RecursiveTopologyTree (shape, str, TopAbs_FACE, true, "FreeFaces");
--      RecursiveTopologyTree (shape, str, TopAbs_WIRE, true, "FreeWires");
--      RecursiveTopologyTree (shape, str, TopAbs_EDGE, true, "FreeEdges");
--      RecursiveTopologyTree (shape, str, TopAbs_VERTEX, true, "FreeVertices");
--      str << flush;
--      //  cout << "done" << endl;
--   }
--
--
--
--
--   void OCCGeometry :: CheckIrregularEntities(stringstream & str)
--   {
--      ShapeAnalysis_CheckSmallFace csm;
--
--      csm.SetTolerance (1e-6);
--
--      TopTools_DataMapOfShapeListOfShape mapEdges;
--      ShapeAnalysis_DataMapOfShapeListOfReal mapParam;
--      TopoDS_Compound theAllVert;
--
--      int spotfaces = 0;
--      int stripsupportfaces = 0;
--      int singlestripfaces = 0;
--      int stripfaces = 0;
--      int facessplitbyvertices = 0;
--      int stretchedpinfaces = 0;
--      int smoothpinfaces = 0;
--      int twistedfaces = 0;
--      // int edgessamebutnotidentified = 0;
--
--      cout << "checking faces ... " << flush;
--
--      int i;
--      for (i = 1; i <= fmap.Extent(); i++)
--      {
--         TopoDS_Face face = TopoDS::Face (fmap(i));
--         TopoDS_Edge e1, e2;
--
--         if (csm.CheckSpotFace (face))
--         {
--            if (!spotfaces++)
--               str << "SpotFace {Spot face} ";
--
--            (*testout) << "Face " << i << " is a spot face" << endl;
--            str << "SpotFace/Face" << i << " ";
--            str << "{Face " << i << " } ";
--         }
--
--         if (csm.IsStripSupport (face))
--         {
--            if (!stripsupportfaces++)
--               str << "StripSupportFace {Strip support face} ";
--
--            (*testout) << "Face " << i << " has strip support" << endl;
--            str << "StripSupportFace/Face" << i << " ";
--            str << "{Face " << i << " } ";
--         }
--
--         if (csm.CheckSingleStrip(face, e1, e2))
--         {
--            if (!singlestripfaces++)
--               str << "SingleStripFace {Single strip face} ";
--
--            (*testout) << "Face " << i << " is a single strip (edge " << emap.FindIndex(e1)
--               << " and edge " << emap.FindIndex(e2) << " are identical)" << endl;
--            str << "SingleStripFace/Face" << i << " ";
--            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
--               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
--         }
--
--         if (csm.CheckStripFace(face, e1, e2))
--         {
--            if (!stripfaces++)
--               str << "StripFace {Strip face} ";
--
--            (*testout) << "Face " << i << " is a strip (edge " << emap.FindIndex(e1)
--               << " and edge " << emap.FindIndex(e2)
--               << " are identical)" << endl;
--            str << "StripFace/Face" << i << " ";
--            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
--               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
--         }
--
--         if (int count = csm.CheckSplittingVertices(face, mapEdges, mapParam, theAllVert))
--         {
--            if (!facessplitbyvertices++)
--               str << "FaceSplitByVertices {Face split by vertices} ";
--
--            (*testout) << "Face " << i << " is split by " << count
--               << " vertex/vertices " << endl;
--            str << "FaceSplitByVertices/Face" << i << " ";
--            str << "{Face " << i << " (split by " << count << "vertex/vertices)} ";
--         }
--
--         int whatrow, sens;
--         if (int type = csm.CheckPin (face, whatrow, sens))
--         {
--            if (type == 1)
--            {
--               if (!smoothpinfaces++)
--                  str << "SmoothPinFace {Smooth pin face} ";
--
--               (*testout) << "Face " << i << " is a smooth pin" << endl;
--               str << "SmoothPinFace/Face" << i << " ";
--               str << "{Face " << i << " } ";
--            }
--            else
--            {
--               if (!stretchedpinfaces++)
--                  str << "StretchedPinFace {Stretched pin face} ";
--
--               (*testout) << "Face " << i << " is a streched pin" << endl;
--               str << "StretchedPinFace/Face" << i << " ";
--               str << "{Face " << i << " } ";
--            }
--         }
--
--         double paramu, paramv;
--         if (csm.CheckTwisted (face, paramu, paramv))
--         {
--            if (!twistedfaces++)
--               str << "TwistedFace {Twisted face} ";
--
--            (*testout) << "Face " << i << " is twisted" << endl;
--            str << "TwistedFace/Face" << i << " ";
--            str << "{Face " << i << " } ";
--         }
--      }
--
--      cout << "done" << endl;
--      cout << "checking edges ... " << flush;
--
--      // double dmax;
--      // int cnt = 0;
--      Array <double> edgeLengths;
--      Array <int> order;
--      edgeLengths.SetSize (emap.Extent());
--      order.SetSize (emap.Extent());
--
--      for (i = 1; i <= emap.Extent(); i++)
--      {
--         TopoDS_Edge edge1 = TopoDS::Edge (emap(i));
--         GProp_GProps system;
--         BRepGProp::LinearProperties(edge1, system);
--         edgeLengths[i-1] = system.Mass();
--      }
--
--      Sort (edgeLengths, order);
--
--      str << "ShortestEdges {Shortest edges} ";
--      for (i = 1; i <= min(20, emap.Extent()); i++)
--      {
--         str << "ShortestEdges/Edge" << i;
--         str << " {Edge " << order[i-1] << " (L=" << edgeLengths[order[i-1]-1] << ")} ";
--      }
--
--      str << flush;
--
--      cout << "done" << endl;
--   }
--
--
--
--
--   void OCCGeometry :: GetUnmeshedFaceInfo (stringstream & str)
--   {
--      for (int i = 1; i <= fmap.Extent(); i++)
--      {
--         if (facemeshstatus[i-1] == -1)
--            str << "Face" << i << " {Face " << i << " } ";
--      }
--      str << flush;
--   }
--
--
--
--
--   void OCCGeometry :: GetNotDrawableFaces (stringstream & str)
--   {
--      for (int i = 1; i <= fmap.Extent(); i++)
--      {
--         if (!fvispar[i-1].IsDrawable())
--            str << "Face" << i << " {Face " << i << " } ";
--      }
--      str << flush;
--   }
--
--
--
--
--   bool OCCGeometry :: ErrorInSurfaceMeshing ()
--   {
--      for (int i = 1; i <= fmap.Extent(); i++)
--         if (facemeshstatus[i-1] == -1)
--            return true;
--
--      return false;
--   }
--
--
--
--
--  int OCCGeometry :: GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,
--      int perfstepsstart, int perfstepsend)
--   {
--     return OCCGenerateMesh (*this, mesh, mparam, perfstepsstart, perfstepsend);
--   }
--
--
--
--
--   const Refinement & OCCGeometry :: GetRefinement () const
--   {
--      return * new OCCRefinementSurfaces (*this);
--   }
--
--
--
--
--   OCCParameters :: OCCParameters()
--   {
--      resthcloseedgefac = 1;
--      resthcloseedgeenable = 1;
--        resthminedgelen = 0.001;
--        resthminedgelenenable = 1;
--   }
--
--
--
--
--   void OCCParameters :: Print(ostream & ost) const
--   {
--      ost << "OCC Parameters:" << endl
--         << "close edges: " << resthcloseedgeenable
--         << ", fac = " << resthcloseedgefac << endl
--               << "minimum edge length: " << resthminedgelenenable
--               << ", min len = " << resthminedgelen << endl;
--   }
--
--
--
--
--   OCCParameters occparam;
--
--}
--
--
--#endif
-+
-+#ifdef OCCGEOMETRY
-+
-+#include <mystdlib.h>
-+#include <occgeom.hpp>
-+#include "ShapeAnalysis_ShapeTolerance.hxx"
-+#include "ShapeAnalysis_ShapeContents.hxx"
-+#include "ShapeAnalysis_CheckSmallFace.hxx"
-+#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
-+#include "ShapeAnalysis_Surface.hxx"
-+#include <BRepTopAdaptor_FClass2d.hxx> // -- to optimize Project() and FastProject()
-+#include <TopAbs_State.hxx>
-+#include "BRepAlgoAPI_Fuse.hxx"
-+#include "BRepCheck_Analyzer.hxx"
-+#include "BRepLib.hxx"
-+#include "ShapeBuild_ReShape.hxx"
-+#include "ShapeFix.hxx"
-+#include "ShapeFix_FixSmallFace.hxx"
-+#include "Partition_Spliter.hxx"
-+
-+namespace netgen
-+{
-+  // free data used to optimize Project() and FastProject()
-+  OCCGeometry::~OCCGeometry()
-+  {
-+    NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
-+    for (; it.More(); it.Next())
-+      delete it.Value();
-+  }
-+
-+   void OCCGeometry :: PrintNrShapes ()
-+   {
-+      TopExp_Explorer e;
-+      int count = 0;
-+      for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) count++;
-+      cout << "CompSolids: " << count << endl;
-+
-+      cout << "Solids    : " << somap.Extent() << endl;
-+      cout << "Shells    : " << shmap.Extent() << endl;
-+      cout << "Faces     : " << fmap.Extent() << endl;
-+      cout << "Edges     : " << emap.Extent() << endl;
-+      cout << "Vertices  : " << vmap.Extent() << endl;
-+   }
-+
-+
-+
-+
-+   void PrintContents (OCCGeometry * geom)
-+   {
-+      ShapeAnalysis_ShapeContents cont;
-+      cont.Clear();
-+      cont.Perform(geom->shape);
-+
-+      (*testout) << "OCC CONTENTS" << endl;
-+      (*testout) << "============" << endl;
-+      (*testout) << "SOLIDS   : " << cont.NbSolids() << endl;
-+      (*testout) << "SHELLS   : " << cont.NbShells() << endl;
-+      (*testout) << "FACES    : " << cont.NbFaces() << endl;
-+      (*testout) << "WIRES    : " << cont.NbWires() << endl;
-+      (*testout) << "EDGES    : " << cont.NbEdges() << endl;
-+      (*testout) << "VERTICES : " << cont.NbVertices() << endl;
-+
-+      TopExp_Explorer e;
-+      int count = 0;
-+      for (e.Init(geom->shape, TopAbs_COMPOUND); e.More(); e.Next())
-+         count++;
-+      (*testout) << "Compounds: " << count << endl;
-+
-+      count = 0;
-+      for (e.Init(geom->shape, TopAbs_COMPSOLID); e.More(); e.Next())
-+         count++;
-+      (*testout) << "CompSolids: " << count << endl;
-+
-+      (*testout) << endl;
-+
-+      cout << "Highest entry in topology hierarchy: " << endl;
-+      if (count)
-+         cout << count << " composite solid(s)" << endl;
-+      else
-+         if (geom->somap.Extent())
-+            cout << geom->somap.Extent() << " solid(s)" << endl;
-+         else
-+            if (geom->shmap.Extent())
-+               cout << geom->shmap.Extent() << " shells(s)" << endl;
-+            else
-+               if (geom->fmap.Extent())
-+                  cout << geom->fmap.Extent() << " face(s)" << endl;
-+               else
-+                  if (geom->wmap.Extent())
-+                     cout << geom->wmap.Extent() << " wire(s)" << endl;
-+                  else
-+                     if (geom->emap.Extent())
-+                        cout << geom->emap.Extent() << " edge(s)" << endl;
-+                     else
-+                        if (geom->vmap.Extent())
-+                           cout << geom->vmap.Extent() << " vertices(s)" << endl;
-+                        else
-+                           cout << "no entities" << endl;
-+
-+   }
-+
-+
-+
-+   void OCCGeometry :: HealGeometry ()
-+   {
-+      int nrc = 0, nrcs = 0,
-+         nrso = somap.Extent(),
-+         nrsh = shmap.Extent(),
-+         nrf = fmap.Extent(),
-+         nrw = wmap.Extent(),
-+         nre = emap.Extent(),
-+         nrv = vmap.Extent();
-+
-+      TopExp_Explorer exp0;
-+      TopExp_Explorer exp1;
-+
-+
-+      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++;
-+      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++;
-+
-+      double surfacecont = 0;
-+
-+      {
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               rebuild->Remove(edge);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+      BuildFMap();
-+
-+
-+      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Face face = TopoDS::Face(exp0.Current());
-+
-+         GProp_GProps system;
-+         BRepGProp::SurfaceProperties(face, system);
-+         surfacecont += system.Mass();
-+      }
-+
-+
-+      cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl
-+         << "-----------------------------------" << endl;
-+
-+      {
-+         cout << endl << "- repairing faces" << endl;
-+
-+         Handle(ShapeFix_Face) sff;
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+
-+
-+         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+         {
-+            // Variable to hold the colour (if there exists one) of
-+            // the current face being processed
-+            Quantity_Color face_colour;
-+
-+            TopoDS_Face face = TopoDS::Face (exp0.Current());
-+
-+            if(face_colours.IsNull()
-+               || (!(face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour))))
-+            {
-+               // Set the default face colour to green (Netgen Standard)
-+               // if no colour has been defined for the face
-+               face_colour = Quantity_Color(0.0,1.0,0.0,Quantity_TOC_RGB);
-+            }
-+
-+            sff = new ShapeFix_Face (face);
-+            sff->FixAddNaturalBoundMode() = Standard_True;
-+            sff->FixSmallAreaWireMode() = Standard_True;
-+            sff->Perform();
-+
-+            if(sff->Status(ShapeExtend_DONE1) ||
-+               sff->Status(ShapeExtend_DONE2) ||
-+               sff->Status(ShapeExtend_DONE3) ||
-+               sff->Status(ShapeExtend_DONE4) ||
-+               sff->Status(ShapeExtend_DONE5))
-+            {
-+               cout << "repaired face " << fmap.FindIndex(face) << " ";
-+               if(sff->Status(ShapeExtend_DONE1))
-+                  cout << "(some wires are fixed)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE2))
-+                  cout << "(orientation of wires fixed)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE3))
-+                  cout << "(missing seam added)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE4))
-+                  cout << "(small area wire removed)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE5))
-+                  cout << "(natural bounds added)" <<endl;
-+               TopoDS_Face newface = sff->Face();
-+
-+               rebuild->Replace(face, newface);
-+            }
-+
-+            // Set the original colour of the face to the newly created
-+            // face (after the healing process)
-+            face = TopoDS::Face (exp0.Current());
-+            face_colours->SetColor(face,face_colour,XCAFDoc_ColorSurf);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+
-+      {
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               rebuild->Remove(edge);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+
-+      if (fixsmalledges)
-+      {
-+         cout << endl << "- fixing small edges" << endl;
-+
-+         Handle(ShapeFix_Wire) sfw;
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+
-+
-+         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+         {
-+            TopoDS_Face face = TopoDS::Face(exp0.Current());
-+
-+            for (exp1.Init (face, TopAbs_WIRE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());
-+               sfw = new ShapeFix_Wire (oldwire, face ,tolerance);
-+               sfw->ModifyTopologyMode() = Standard_True;
-+
-+               sfw->ClosedWireMode() = Standard_True;
-+
-+               bool replace = false;
-+
-+               replace = sfw->FixReorder() || replace;
-+
-+               replace = sfw->FixConnected() || replace;
-+
-+
-+
-+               if (sfw->FixSmall (Standard_False, tolerance) && ! (sfw->StatusSmall(ShapeExtend_FAIL1) ||
-+                  sfw->StatusSmall(ShapeExtend_FAIL2) ||
-+                  sfw->StatusSmall(ShapeExtend_FAIL3)))
-+               {
-+                  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;
-+                  replace = true;
-+
-+               }
-+               else if (sfw->StatusSmall(ShapeExtend_FAIL1))
-+                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
-+                  << ", edge cannot be checked (no 3d curve and no pcurve)" << endl;
-+               else if (sfw->StatusSmall(ShapeExtend_FAIL2))
-+                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
-+                  << ", edge is null-length and has different vertives at begin and end, and lockvtx is True or ModifiyTopologyMode is False" << endl;
-+               else if (sfw->StatusSmall(ShapeExtend_FAIL3))
-+                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
-+                  << ", CheckConnected has failed" << endl;
-+
-+               replace = sfw->FixEdgeCurves() || replace;
-+
-+               replace = sfw->FixDegenerated() || replace;
-+
-+               replace = sfw->FixSelfIntersection() || replace;
-+
-+               replace = sfw->FixLacking(Standard_True) || replace;
-+
-+               if(replace)
-+               {
-+                  TopoDS_Wire newwire = sfw->Wire();
-+                  rebuild->Replace(oldwire, newwire);
-+               }
-+
-+               //delete sfw; sfw = NULL;
-+
-+            }
-+         }
-+
-+         shape = rebuild->Apply(shape);
-+
-+
-+
-+         {
-+            BuildFMap();
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Apply(shape);
-+
-+            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+               if (vmap.FindIndex(TopExp::FirstVertex (edge)) ==
-+                  vmap.FindIndex(TopExp::LastVertex (edge)))
-+               {
-+                  GProp_GProps system;
-+                  BRepGProp::LinearProperties(edge, system);
-+                  if (system.Mass() < tolerance)
-+                  {
-+                     cout << "removing degenerated edge " << emap.FindIndex(edge)
-+                        << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))
-+                        << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;
-+                     rebuild->Remove(edge);
-+                  }
-+               }
-+            }
-+            shape = rebuild->Apply(shape);
-+
-+            //delete rebuild; rebuild = NULL;
-+         }
-+
-+
-+
-+         {
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Apply(shape);
-+            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+               if ( BRep_Tool::Degenerated(edge) )
-+                  rebuild->Remove(edge);
-+            }
-+            shape = rebuild->Apply(shape);
-+         }
-+
-+
-+
-+
-+         Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;
-+         sfwf->SetPrecision(tolerance);
-+         sfwf->Load (shape);
-+         sfwf->ModeDropSmallEdges() = Standard_True;
-+
-+         sfwf->SetPrecision(boundingbox.Diam());
-+
-+         if (sfwf->FixWireGaps())
-+         {
-+            cout << endl << "- fixing wire gaps" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;
-+         }
-+
-+         sfwf->SetPrecision(tolerance);
-+
-+
-+         {
-+            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+               if ( BRep_Tool::Degenerated(edge) )
-+                  cout << "degenerated edge at position 4" << endl;
-+            }
-+         }
-+
-+
-+
-+         if (sfwf->FixSmallEdges())
-+         {
-+            cout << endl << "- fixing wire frames" << endl;
-+            if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;
-+            if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;
-+            if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;
-+         }
-+
-+
-+
-+         shape = sfwf->Shape();
-+
-+         //delete sfwf; sfwf = NULL;
-+         //delete rebuild; rebuild = NULL;
-+
-+      }
-+
-+
-+
-+
-+
-+      {
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               cout << "degenerated edge at position 5" << endl;
-+         }
-+      }
-+
-+
-+
-+
-+      if (fixspotstripfaces)
-+      {
-+
-+         cout << endl << "- fixing spot and strip faces" << endl;
-+         Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();
-+         sffsm -> Init (shape);
-+         sffsm -> SetPrecision (tolerance);
-+         sffsm -> Perform();
-+
-+         shape = sffsm -> FixShape();
-+         //delete sffsm; sffsm = NULL;
-+      }
-+
-+
-+      {
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               cout << "degenerated edge at position 6" << endl;
-+         }
-+      }
-+
-+
-+
-+      if (sewfaces)
-+      {
-+         cout << endl << "- sewing faces" << endl;
-+
-+         BRepOffsetAPI_Sewing sewedObj(tolerance);
-+
-+         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+         {
-+            TopoDS_Face face = TopoDS::Face (exp0.Current());
-+            sewedObj.Add (face);
-+         }
-+
-+         sewedObj.Perform();
-+
-+         if (!sewedObj.SewedShape().IsNull())
-+            shape = sewedObj.SewedShape();
-+         else
-+            cout << " not possible";
-+      }
-+
-+
-+
-+      {
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               rebuild->Remove(edge);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+
-+      if (makesolids)
-+      {
-+         cout << endl << "- making solids" << endl;
-+
-+         BRepBuilderAPI_MakeSolid ms;
-+         int count = 0;
-+         for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
-+         {
-+            count++;
-+            ms.Add (TopoDS::Shell(exp0.Current()));
-+         }
-+
-+         if (!count)
-+         {
-+            cout << " not possible (no shells)" << endl;
-+         }
-+         else
-+         {
-+            BRepCheck_Analyzer ba(ms);
-+            if (ba.IsValid ())
-+            {
-+               Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
-+               sfs->Init (ms);
-+               sfs->SetPrecision(tolerance);
-+               sfs->SetMaxTolerance(tolerance);
-+               sfs->Perform();
-+               shape = sfs->Shape();
-+
-+               for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
-+               {
-+                  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
-+                  TopoDS_Solid newsolid = solid;
-+                  BRepLib::OrientClosedSolid (newsolid);
-+                  Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+                  //            rebuild->Apply(shape);
-+                  rebuild->Replace(solid, newsolid);
-+                  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);
-+                  //            TopoDS_Shape newshape = rebuild->Apply(shape);
-+                  shape = newshape;
-+               }
-+
-+               //delete sfs; sfs = NULL;
-+            }
-+            else
-+               cout << " not possible" << endl;
-+         }
-+      }
-+
-+
-+
-+      if (splitpartitions)
-+      {
-+         cout << "- running SALOME partition splitter" << endl;
-+
-+         TopExp_Explorer e2;
-+         Partition_Spliter ps;
-+         int count = 0;
-+
-+         for (e2.Init (shape, TopAbs_SOLID);
-+            e2.More(); e2.Next())
-+         {
-+            count++;
-+            ps.AddShape (e2.Current());
-+         }
-+
-+         ps.Compute();
-+         shape = ps.Shape();
-+
-+         cout << " before: " << count << " solids" << endl;
-+
-+         count = 0;
-+         for (e2.Init (shape, TopAbs_SOLID);
-+            e2.More(); e2.Next()) count++;
-+
-+            cout << " after : " << count << " solids" << endl;
-+      }
-+
-+      BuildFMap();
-+
-+
-+
-+      {
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               cout << "degenerated edge at position 8" << endl;
-+         }
-+      }
-+
-+
-+      double newsurfacecont = 0;
-+
-+
-+      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Face face = TopoDS::Face(exp0.Current());
-+         GProp_GProps system;
-+         BRepGProp::SurfaceProperties(face, system);
-+         newsurfacecont += system.Mass();
-+      }
-+
-+
-+      int nnrc = 0, nnrcs = 0,
-+         nnrso = somap.Extent(),
-+         nnrsh = shmap.Extent(),
-+         nnrf = fmap.Extent(),
-+         nnrw = wmap.Extent(),
-+         nnre = emap.Extent(),
-+         nnrv = vmap.Extent();
-+
-+      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++;
-+      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++;
-+
-+      cout << "-----------------------------------" << endl;
-+      cout << "Compounds       : " << nnrc << " (" << nrc << ")" << endl;
-+      cout << "Composite solids: " << nnrcs << " (" << nrcs << ")" << endl;
-+      cout << "Solids          : " << nnrso << " (" << nrso << ")" << endl;
-+      cout << "Shells          : " << nnrsh << " (" << nrsh << ")" << endl;
-+      cout << "Wires           : " << nnrw << " (" << nrw << ")" << endl;
-+      cout << "Faces           : " << nnrf << " (" << nrf << ")" << endl;
-+      cout << "Edges           : " << nnre << " (" << nre << ")" << endl;
-+      cout << "Vertices        : " << nnrv << " (" << nrv << ")" << endl;
-+      cout << endl;
-+      cout << "Totol surface area : " << newsurfacecont << " (" << surfacecont << ")" << endl;
-+      cout << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: BuildFMap()
-+   {
-+      somap.Clear();
-+      shmap.Clear();
-+      fmap.Clear();
-+      wmap.Clear();
-+      emap.Clear();
-+      vmap.Clear();
-+
-+      TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5;
-+
-+      for (exp0.Init(shape, TopAbs_COMPOUND);
-+         exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Compound compound = TopoDS::Compound (exp0.Current());
-+         (*testout) << "compound" << endl;
-+         int i = 0;
-+         for (exp1.Init(compound, TopAbs_SHELL);
-+            exp1.More(); exp1.Next())
-+         {
-+            (*testout) << "shell " << ++i << endl;
-+         }
-+      }
-+
-+      for (exp0.Init(shape, TopAbs_SOLID);
-+         exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Solid solid = TopoDS::Solid (exp0.Current());
-+
-+         if (somap.FindIndex(solid) < 1)
-+         {
-+            somap.Add (solid);
-+
-+            for (exp1.Init(solid, TopAbs_SHELL);
-+               exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Shell shell = TopoDS::Shell (exp1.Current());
-+               if (shmap.FindIndex(shell) < 1)
-+               {
-+                  shmap.Add (shell);
-+
-+                  for (exp2.Init(shell, TopAbs_FACE);
-+                     exp2.More(); exp2.Next())
-+                  {
-+                     TopoDS_Face face = TopoDS::Face(exp2.Current());
-+                     if (fmap.FindIndex(face) < 1)
-+                     {
-+                        fmap.Add (face);
-+                        (*testout) << "face " << fmap.FindIndex(face) << " ";
-+                        (*testout) << ((face.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
-+                        (*testout) << ((exp2.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
-+                        for (exp3.Init(exp2.Current(), TopAbs_WIRE);
-+                           exp3.More(); exp3.Next())
-+                        {
-+                           TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+                           if (wmap.FindIndex(wire) < 1)
-+                           {
-+                              wmap.Add (wire);
-+
-+                              for (exp4.Init(exp3.Current(), TopAbs_EDGE);
-+                                 exp4.More(); exp4.Next())
-+                              {
-+                                 TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+                                 if (emap.FindIndex(edge) < 1)
-+                                 {
-+                                    emap.Add (edge);
-+                                    for (exp5.Init(exp4.Current(), TopAbs_VERTEX);
-+                                       exp5.More(); exp5.Next())
-+                                    {
-+                                       TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                                       if (vmap.FindIndex(vertex) < 1)
-+                                          vmap.Add (vertex);
-+                                    }
-+                                 }
-+                              }
-+                           }
-+                        }
-+                     }
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+      // Free Shells
-+      for (exp1.Init(shape, TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next())
-+      {
-+         TopoDS_Shell shell = TopoDS::Shell(exp1.Current());
-+         if (shmap.FindIndex(shell) < 1)
-+         {
-+            shmap.Add (shell);
-+
-+            (*testout) << "shell " << shmap.FindIndex(shell) << " ";
-+            (*testout) << ((shell.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
-+            (*testout) << ((exp1.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
-+
-+            for (exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next())
-+            {
-+               TopoDS_Face face = TopoDS::Face(exp2.Current());
-+               if (fmap.FindIndex(face) < 1)
-+               {
-+                  fmap.Add (face);
-+
-+                  for (exp3.Init(face, TopAbs_WIRE); exp3.More(); exp3.Next())
-+                  {
-+                     TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+                     if (wmap.FindIndex(wire) < 1)
-+                     {
-+                        wmap.Add (wire);
-+
-+                        for (exp4.Init(wire, TopAbs_EDGE); exp4.More(); exp4.Next())
-+                        {
-+                           TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+                           if (emap.FindIndex(edge) < 1)
-+                           {
-+                              emap.Add (edge);
-+                              for (exp5.Init(edge, TopAbs_VERTEX); exp5.More(); exp5.Next())
-+                              {
-+                                 TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                                 if (vmap.FindIndex(vertex) < 1)
-+                                    vmap.Add (vertex);
-+                              }
-+                           }
-+                        }
-+                     }
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+
-+      // Free Faces
-+
-+      for (exp2.Init(shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next())
-+      {
-+         TopoDS_Face face = TopoDS::Face(exp2.Current());
-+         if (fmap.FindIndex(face) < 1)
-+         {
-+            fmap.Add (face);
-+
-+            for (exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next())
-+            {
-+               TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+               if (wmap.FindIndex(wire) < 1)
-+               {
-+                  wmap.Add (wire);
-+
-+                  for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
-+                  {
-+                     TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+                     if (emap.FindIndex(edge) < 1)
-+                     {
-+                        emap.Add (edge);
-+                        for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
-+                        {
-+                           TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                           if (vmap.FindIndex(vertex) < 1)
-+                              vmap.Add (vertex);
-+                        }
-+                     }
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+
-+      // Free Wires
-+
-+      for (exp3.Init(shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next())
-+      {
-+         TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+         if (wmap.FindIndex(wire) < 1)
-+         {
-+            wmap.Add (wire);
-+
-+            for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+               if (emap.FindIndex(edge) < 1)
-+               {
-+                  emap.Add (edge);
-+                  for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
-+                  {
-+                     TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                     if (vmap.FindIndex(vertex) < 1)
-+                        vmap.Add (vertex);
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+
-+      // Free Edges
-+
-+      for (exp4.Init(shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next())
-+      {
-+         TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+         if (emap.FindIndex(edge) < 1)
-+         {
-+            emap.Add (edge);
-+            for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
-+            {
-+               TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+               if (vmap.FindIndex(vertex) < 1)
-+                  vmap.Add (vertex);
-+            }
-+         }
-+      }
-+
-+
-+      // Free Vertices
-+
-+      for (exp5.Init(shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next())
-+      {
-+         TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+         if (vmap.FindIndex(vertex) < 1)
-+            vmap.Add (vertex);
-+      }
-+
-+
-+
-+
-+      facemeshstatus.DeleteAll();
-+      facemeshstatus.SetSize (fmap.Extent());
-+      facemeshstatus = 0;
-+
-+      // Philippose - 15/01/2009
-+      face_maxh.DeleteAll();
-+      face_maxh.SetSize (fmap.Extent());
-+      face_maxh = mparam.maxh;
-+
-+      // Philippose - 15/01/2010
-+      face_maxh_modified.DeleteAll();
-+      face_maxh_modified.SetSize(fmap.Extent());
-+      face_maxh_modified = 0;
-+
-+
-+      // Philippose - 17/01/2009
-+      face_sel_status.DeleteAll();
-+      face_sel_status.SetSize (fmap.Extent());
-+      face_sel_status = 0;
-+
-+      fvispar.SetSize (fmap.Extent());
-+      evispar.SetSize (emap.Extent());
-+      vvispar.SetSize (vmap.Extent());
-+
-+      fsingular.SetSize (fmap.Extent());
-+      esingular.SetSize (emap.Extent());
-+      vsingular.SetSize (vmap.Extent());
-+
-+      fsingular = esingular = vsingular = false;
-+   }
-+
-+
-+
-+   void OCCGeometry :: SewFaces ()
-+   {
-+      (*testout) << "Trying to sew faces ..." << endl;
-+      cout << "Trying to sew faces ..." << flush;
-+
-+      BRepOffsetAPI_Sewing sewedObj(1);
-+
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+      {
-+         TopoDS_Face face = TopoDS::Face (fmap(i));
-+         sewedObj.Add (face);
-+      }
-+
-+      sewedObj.Perform();
-+
-+      if (!sewedObj.SewedShape().IsNull())
-+      {
-+         shape = sewedObj.SewedShape();
-+         cout << " done" << endl;
-+      }
-+      else
-+         cout << " not possible";
-+   }
-+
-+
-+
-+
-+
-+   void OCCGeometry :: MakeSolid ()
-+   {
-+      TopExp_Explorer exp0;
-+
-+      (*testout) << "Trying to build solids ..." << endl;
-+      cout << "Trying to build solids ..." << flush;
-+
-+      BRepBuilderAPI_MakeSolid ms;
-+      int count = 0;
-+      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
-+      {
-+         count++;
-+         ms.Add (TopoDS::Shell(exp0.Current()));
-+      }
-+
-+      if (!count)
-+      {
-+         cout << " not possible (no shells)" << endl;
-+         return;
-+      }
-+
-+      BRepCheck_Analyzer ba(ms);
-+      if (ba.IsValid ())
-+      {
-+         Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
-+         sfs->Init (ms);
-+
-+         sfs->SetPrecision(1e-5);
-+         sfs->SetMaxTolerance(1e-5);
-+
-+         sfs->Perform();
-+
-+         shape = sfs->Shape();
-+
-+         for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
-+         {
-+            TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
-+            TopoDS_Solid newsolid = solid;
-+            BRepLib::OrientClosedSolid (newsolid);
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Replace(solid, newsolid);
-+
-+            TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);
-+            shape = newshape;
-+         }
-+
-+         cout << " done" << endl;
-+      }
-+      else
-+         cout << " not possible" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: BuildVisualizationMesh (double deflection)
-+   {
-+      cout << "Preparing visualization (deflection = " << deflection << ") ... " << flush;
-+
-+      BRepTools::Clean (shape);
-+      // BRepMesh_IncrementalMesh::
-+      BRepMesh_IncrementalMesh (shape, deflection, true);
-+      cout << "done" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: CalcBoundingBox ()
-+   {
-+      Bnd_Box bb;
-+      BRepBndLib::Add (shape, bb);
-+
-+      double x1,y1,z1,x2,y2,z2;
-+      bb.Get (x1,y1,z1,x2,y2,z2);
-+      Point<3> p1 = Point<3> (x1,y1,z1);
-+      Point<3> p2 = Point<3> (x2,y2,z2);
-+
-+      (*testout) << "Bounding Box = [" << p1 << " - " << p2 << "]" << endl;
-+      boundingbox = Box<3> (p1,p2);
-+      SetCenter();
-+   }
-+
-+
-+   // returns a projector and a classifier for the given surface
-+   void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                                  BRepTopAdaptor_FClass2d*& cls) const
-+   {
-+     //MSV: organize caching projector in the map
-+     if (fprjmap.IsBound(surfi))
-+     {
-+       proj = fprjmap.Find(surfi);
-+       cls = fclsmap.Find(surfi);
-+     }
-+     else
-+     {
-+       const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
-+       Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
-+       proj = new ShapeAnalysis_Surface(aSurf);
-+       fprjmap.Bind(surfi, proj);
-+       cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
-+       fclsmap.Bind(surfi, cls);
-+     }
-+   }
-+
-+   // void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+   bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
-+   {
-+      static int cnt = 0;
-+      if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;
-+
-+      gp_Pnt pnt(p(0), p(1), p(2));
-+
-+      // -- Optimization: use cached projector and classifier
-+      // double u,v;
-+      // Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
-+      // gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
-+      // suval.Coord( u, v);
-+      // pnt = thesurf->Value( u, v );
-+
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
-+
-+      gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        return false;
-+      }
-+      pnt = proj->Value(p2d);
-+      p2d.Coord(u, v);
-+
-+      p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-+
-+      return true;
-+   }
-+
-+
-+
-+
-+   bool OCCGeometry :: FastProject (int surfi, Point<3> & ap, double& u, double& v) const
-+   {
-+      gp_Pnt p(ap(0), ap(1), ap(2));
-+
-+      // -- Optimization: use cached projector and classifier
-+      // Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      //
-+      // gp_Pnt x = surface->Value (u,v);
-+      //
-+      // if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
-+      //
-+      // gp_Vec du, dv;
-+      //
-+      // surface->D1(u,v,x,du,dv);
-+      //
-+      // int count = 0;
-+      //
-+      // gp_Pnt xold;
-+      // gp_Vec n;
-+      // double det, lambda, mu;
-+      //
-+      // do {
-+      //    count++;
-+      //
-+      //    n = du^dv;
-+      //
-+      //    det = Det3 (n.X(), du.X(), dv.X(),
-+      //       n.Y(), du.Y(), dv.Y(),
-+      //       n.Z(), du.Z(), dv.Z());
-+      //
-+      //    if (det < 1e-15) return false;
-+      //
-+      //    lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-+      //       n.Y(), p.Y()-x.Y(), dv.Y(),
-+      //       n.Z(), p.Z()-x.Z(), dv.Z())/det;
-+      //
-+      //    mu     = Det3 (n.X(), du.X(), p.X()-x.X(),
-+      //       n.Y(), du.Y(), p.Y()-x.Y(),
-+      //       n.Z(), du.Z(), p.Z()-x.Z())/det;
-+      //
-+      //    u += lambda;
-+      //    v += mu;
-+      //
-+      //    xold = x;
-+      //    surface->D1(u,v,x,du,dv);
-+      //
-+      // } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
-+      //
-+      // //    (*testout) << "FastProject count: " << count << endl;
-+      //
-+      // if (count == 50) return false;
-+      //
-+      // ap = Point<3> (x.X(), x.Y(), x.Z());
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
-+
-+      gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        //cout << "Projection fails" << endl;
-+        return false;
-+      }
-+
-+      p = proj->Value(p2d);
-+      p2d.Coord(u, v);
-+      ap = Point<3> (p.X(), p.Y(), p.Z());
-+
-+      return true;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: WriteOCC_STL(char * filename)
-+   {
-+      cout << "writing stl..."; cout.flush();
-+      StlAPI_Writer writer;
-+      //writer.RelativeMode() = Standard_False;
-+
-+      //writer.SetDeflection(0.02);
-+      writer.Write(shape,filename);
-+
-+      cout << "done" << endl;
-+   }
-+
-+
-+
-+   // Philippose - 23/02/2009
-+   /* Special IGES File load function including the ability
-+   to extract individual surface colours via the extended
-+   OpenCascade XDE and XCAF Feature set.
-+   */
-+   OCCGeometry *LoadOCC_IGES(const char *filename)
-+   {
-+      OCCGeometry *occgeo;
-+      occgeo = new OCCGeometry;
-+
-+      // Initiate a dummy XCAF Application to handle the IGES XCAF Document
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
-+
-+      // Create an XCAF Document to contain the IGES file itself
-+      Handle(TDocStd_Document) iges_doc;
-+
-+      // Check if a IGES File is already open under this handle, if so, close it to prevent
-+      // Segmentation Faults when trying to create a new document
-+      if(dummy_app->NbDocuments() > 0)
-+      {
-+         dummy_app->GetDocument(1,iges_doc);
-+         dummy_app->Close(iges_doc);
-+      }
-+      dummy_app->NewDocument ("IGES-XCAF",iges_doc);
-+
-+      IGESCAFControl_Reader reader;
-+
-+      Standard_Integer stat = reader.ReadFile((char*)filename);
-+
-+      if(stat != IFSelect_RetDone)
-+      {
-+         delete occgeo;
-+         return NULL;
-+      }
-+
-+      // Enable transfer of colours
-+      reader.SetColorMode(Standard_True);
-+
-+      reader.Transfer(iges_doc);
-+
-+      // Read in the shape(s) and the colours present in the IGES File
-+      Handle(XCAFDoc_ShapeTool) iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());
-+      Handle(XCAFDoc_ColorTool) iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());
-+
-+      TDF_LabelSequence iges_shapes;
-+      iges_shape_contents->GetShapes(iges_shapes);
-+
-+      // List out the available colours in the IGES File as Colour Names
-+      TDF_LabelSequence all_colours;
-+      iges_colour_contents->GetColors(all_colours);
-+      PrintMessage(1,"Number of colours in IGES File: ",all_colours.Length());
-+      for(int i = 1; i <= all_colours.Length(); i++)
-+      {
-+         Quantity_Color col;
-+         stringstream col_rgb;
-+         iges_colour_contents->GetColor(all_colours.Value(i),col);
-+         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
-+         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
-+      }
-+
-+
-+      // For the IGES Reader, all the shapes can be exported as one compund shape
-+      // using the "OneShape" member
-+      occgeo->shape = reader.OneShape();
-+      occgeo->face_colours = iges_colour_contents;
-+      occgeo->changed = 1;
-+      occgeo->BuildFMap();
-+
-+      occgeo->CalcBoundingBox();
-+      PrintContents (occgeo);
-+
-+      return occgeo;
-+   }
-+
-+
-+
-+
-+
-+   // Philippose - 29/01/2009
-+   /* Special STEP File load function including the ability
-+   to extract individual surface colours via the extended
-+   OpenCascade XDE and XCAF Feature set.
-+   */
-+   OCCGeometry * LoadOCC_STEP (const char * filename)
-+   {
-+      OCCGeometry * occgeo;
-+      occgeo = new OCCGeometry;
-+
-+      // Initiate a dummy XCAF Application to handle the STEP XCAF Document
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
-+
-+      // Create an XCAF Document to contain the STEP file itself
-+      Handle(TDocStd_Document) step_doc;
-+
-+      // Check if a STEP File is already open under this handle, if so, close it to prevent
-+      // Segmentation Faults when trying to create a new document
-+      if(dummy_app->NbDocuments() > 0)
-+      {
-+         dummy_app->GetDocument(1,step_doc);
-+         dummy_app->Close(step_doc);
-+      }
-+      dummy_app->NewDocument ("STEP-XCAF",step_doc);
-+
-+      STEPCAFControl_Reader reader;
-+
-+      // Enable transfer of colours
-+      reader.SetColorMode(Standard_True);
-+
-+      Standard_Integer stat = reader.ReadFile((char*)filename);
-+
-+      if(stat != IFSelect_RetDone)
-+      {
-+         delete occgeo;
-+         return NULL;
-+      }
-+
-+      reader.Transfer(step_doc);
-+
-+      // Read in the shape(s) and the colours present in the STEP File
-+      Handle(XCAFDoc_ShapeTool) step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());
-+      Handle(XCAFDoc_ColorTool) step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());
-+
-+      TDF_LabelSequence step_shapes;
-+      step_shape_contents->GetShapes(step_shapes);
-+
-+      // List out the available colours in the STEP File as Colour Names
-+      TDF_LabelSequence all_colours;
-+      step_colour_contents->GetColors(all_colours);
-+      PrintMessage(1,"Number of colours in STEP File: ",all_colours.Length());
-+      for(int i = 1; i <= all_colours.Length(); i++)
-+      {
-+         Quantity_Color col;
-+         stringstream col_rgb;
-+         step_colour_contents->GetColor(all_colours.Value(i),col);
-+         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
-+         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
-+      }
-+
-+
-+      // For the STEP File Reader in OCC, the 1st Shape contains the entire
-+      // compound geometry as one shape
-+      occgeo->shape = step_shape_contents->GetShape(step_shapes.Value(1));
-+      occgeo->face_colours = step_colour_contents;
-+      occgeo->changed = 1;
-+      occgeo->BuildFMap();
-+
-+      occgeo->CalcBoundingBox();
-+      PrintContents (occgeo);
-+
-+      return occgeo;
-+   }
-+
-+
-+
-+
-+   OCCGeometry *LoadOCC_BREP (const char *filename)
-+   {
-+      OCCGeometry * occgeo;
-+      occgeo = new OCCGeometry;
-+
-+      BRep_Builder aBuilder;
-+      Standard_Boolean result = BRepTools::Read(occgeo->shape, const_cast<char*> (filename),aBuilder);
-+
-+      if(!result)
-+      {
-+         delete occgeo;
-+         return NULL;
-+      }
-+
-+      // Philippose - 23/02/2009
-+      // Fixed a bug in the OpenCascade XDE Colour handling when
-+      // opening BREP Files, since BREP Files have no colour data.
-+      // Hence, the face_colours Handle needs to be created as a NULL handle.
-+      occgeo->face_colours = Handle(XCAFDoc_ColorTool)();
-+      occgeo->face_colours.Nullify();
-+      occgeo->changed = 1;
-+      occgeo->BuildFMap();
-+
-+      occgeo->CalcBoundingBox();
-+      PrintContents (occgeo);
-+
-+      return occgeo;
-+   }
-+
-+
-+  void OCCGeometry :: Save (string sfilename) const
-+  {
-+    const char * filename = sfilename.c_str();
-+    if (strlen(filename) < 4)
-+      throw NgException ("illegal filename");
-+
-+    if (strcmp (&filename[strlen(filename)-3], "igs") == 0)
-+      {
-+      IGESControl_Writer writer("millimeters", 1);
-+      writer.AddShape (shape);
-+      writer.Write (filename);
-+      }
-+    else if (strcmp (&filename[strlen(filename)-3], "stp") == 0)
-+      {
-+      STEPControl_Writer writer;
-+      writer.Transfer (shape, STEPControl_AsIs);
-+      writer.Write (filename);
-+      }
-+    else if (strcmp (&filename[strlen(filename)-3], "stl") == 0)
-+      {
-+      StlAPI_Writer writer;
-+      writer.ASCIIMode() = Standard_True;
-+      writer.Write (shape, filename);
-+      }
-+    else if (strcmp (&filename[strlen(filename)-4], "stlb") == 0)
-+      {
-+      StlAPI_Writer writer;
-+      writer.ASCIIMode() = Standard_False;
-+      writer.Write (shape, filename);
-+      }
-+  }
-+
-+
-+
-+  const char * shapesname[] =
-+   {" ", "CompSolids", "Solids", "Shells",
-+
-+   "Faces", "Wires", "Edges", "Vertices"};
-+
-+  const char * shapename[] =
-+   {" ", "CompSolid", "Solid", "Shell",
-+   "Face", "Wire", "Edge", "Vertex"};
-+
-+  const char * orientationstring[] =
-+     {"+", "-"};
-+
-+
-+
-+
-+   void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,
-+      stringstream & str,
-+      TopAbs_ShapeEnum l,
-+      bool isfree,
-+      const char * lname)
-+   {
-+      if (l > TopAbs_VERTEX) return;
-+
-+      TopExp_Explorer e;
-+      int count = 0;
-+      int count2 = 0;
-+
-+      if (isfree)
-+         e.Init(sh, l, TopAbs_ShapeEnum(l-1));
-+      else
-+         e.Init(sh, l);
-+
-+      for (; e.More(); e.Next())
-+      {
-+         count++;
-+
-+         stringstream lname2;
-+         lname2 << lname << "/" << shapename[l] << count;
-+         str << lname2.str() << " ";
-+
-+         switch (e.Current().ShapeType())
-+         {
-+         case TopAbs_SOLID:
-+           count2 = somap.FindIndex(TopoDS::Solid(e.Current())); break;
-+         case TopAbs_SHELL:
-+           count2 = shmap.FindIndex(TopoDS::Shell(e.Current())); break;
-+         case TopAbs_FACE:
-+           count2 = fmap.FindIndex(TopoDS::Face(e.Current())); break;
-+         case TopAbs_WIRE:
-+           count2 = wmap.FindIndex(TopoDS::Wire(e.Current())); break;
-+         case TopAbs_EDGE:
-+           count2 = emap.FindIndex(TopoDS::Edge(e.Current())); break;
-+         case TopAbs_VERTEX:
-+           count2 = vmap.FindIndex(TopoDS::Vertex(e.Current())); break;
-+         default:
-+           cout << "RecursiveTopologyTree: Case " << e.Current().ShapeType() << " not handeled" << endl;
-+         }
-+
-+         int nrsubshapes = 0;
-+
-+         if (l <= TopAbs_WIRE)
-+         {
-+            TopExp_Explorer e2;
-+            for (e2.Init (e.Current(), TopAbs_ShapeEnum (l+1));
-+               e2.More(); e2.Next())
-+               nrsubshapes++;
-+         }
-+
-+         str << "{" << shapename[l] << " " << count2;
-+
-+         if (l <= TopAbs_EDGE)
-+         {
-+            str << " (" << orientationstring[e.Current().Orientation()];
-+            if (nrsubshapes != 0) str << ", " << nrsubshapes;
-+            str << ") } ";
-+         }
-+         else
-+            str << " } ";
-+
-+         RecursiveTopologyTree (e.Current(), str, TopAbs_ShapeEnum (l+1),
-+            false, (char*)lname2.str().c_str());
-+
-+      }
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: GetTopologyTree (stringstream & str)
-+   {
-+      cout << "Building topology tree ... " << flush;
-+      RecursiveTopologyTree (shape, str, TopAbs_COMPSOLID, false, "CompSolids");
-+      RecursiveTopologyTree (shape, str, TopAbs_SOLID, true, "FreeSolids");
-+      RecursiveTopologyTree (shape, str, TopAbs_SHELL, true, "FreeShells");
-+      RecursiveTopologyTree (shape, str, TopAbs_FACE, true, "FreeFaces");
-+      RecursiveTopologyTree (shape, str, TopAbs_WIRE, true, "FreeWires");
-+      RecursiveTopologyTree (shape, str, TopAbs_EDGE, true, "FreeEdges");
-+      RecursiveTopologyTree (shape, str, TopAbs_VERTEX, true, "FreeVertices");
-+      str << flush;
-+      //  cout << "done" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: CheckIrregularEntities(stringstream & str)
-+   {
-+      ShapeAnalysis_CheckSmallFace csm;
-+
-+      csm.SetTolerance (1e-6);
-+
-+      TopTools_DataMapOfShapeListOfShape mapEdges;
-+      ShapeAnalysis_DataMapOfShapeListOfReal mapParam;
-+      TopoDS_Compound theAllVert;
-+
-+      int spotfaces = 0;
-+      int stripsupportfaces = 0;
-+      int singlestripfaces = 0;
-+      int stripfaces = 0;
-+      int facessplitbyvertices = 0;
-+      int stretchedpinfaces = 0;
-+      int smoothpinfaces = 0;
-+      int twistedfaces = 0;
-+      // int edgessamebutnotidentified = 0;
-+
-+      cout << "checking faces ... " << flush;
-+
-+      int i;
-+      for (i = 1; i <= fmap.Extent(); i++)
-+      {
-+         TopoDS_Face face = TopoDS::Face (fmap(i));
-+         TopoDS_Edge e1, e2;
-+
-+         if (csm.CheckSpotFace (face))
-+         {
-+            if (!spotfaces++)
-+               str << "SpotFace {Spot face} ";
-+
-+            (*testout) << "Face " << i << " is a spot face" << endl;
-+            str << "SpotFace/Face" << i << " ";
-+            str << "{Face " << i << " } ";
-+         }
-+
-+         if (csm.IsStripSupport (face))
-+         {
-+            if (!stripsupportfaces++)
-+               str << "StripSupportFace {Strip support face} ";
-+
-+            (*testout) << "Face " << i << " has strip support" << endl;
-+            str << "StripSupportFace/Face" << i << " ";
-+            str << "{Face " << i << " } ";
-+         }
-+
-+         if (csm.CheckSingleStrip(face, e1, e2))
-+         {
-+            if (!singlestripfaces++)
-+               str << "SingleStripFace {Single strip face} ";
-+
-+            (*testout) << "Face " << i << " is a single strip (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2) << " are identical)" << endl;
-+            str << "SingleStripFace/Face" << i << " ";
-+            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
-+         }
-+
-+         if (csm.CheckStripFace(face, e1, e2))
-+         {
-+            if (!stripfaces++)
-+               str << "StripFace {Strip face} ";
-+
-+            (*testout) << "Face " << i << " is a strip (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2)
-+               << " are identical)" << endl;
-+            str << "StripFace/Face" << i << " ";
-+            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
-+         }
-+
-+         if (int count = csm.CheckSplittingVertices(face, mapEdges, mapParam, theAllVert))
-+         {
-+            if (!facessplitbyvertices++)
-+               str << "FaceSplitByVertices {Face split by vertices} ";
-+
-+            (*testout) << "Face " << i << " is split by " << count
-+               << " vertex/vertices " << endl;
-+            str << "FaceSplitByVertices/Face" << i << " ";
-+            str << "{Face " << i << " (split by " << count << "vertex/vertices)} ";
-+         }
-+
-+         int whatrow, sens;
-+         if (int type = csm.CheckPin (face, whatrow, sens))
-+         {
-+            if (type == 1)
-+            {
-+               if (!smoothpinfaces++)
-+                  str << "SmoothPinFace {Smooth pin face} ";
-+
-+               (*testout) << "Face " << i << " is a smooth pin" << endl;
-+               str << "SmoothPinFace/Face" << i << " ";
-+               str << "{Face " << i << " } ";
-+            }
-+            else
-+            {
-+               if (!stretchedpinfaces++)
-+                  str << "StretchedPinFace {Stretched pin face} ";
-+
-+               (*testout) << "Face " << i << " is a streched pin" << endl;
-+               str << "StretchedPinFace/Face" << i << " ";
-+               str << "{Face " << i << " } ";
-+            }
-+         }
-+
-+         double paramu, paramv;
-+         if (csm.CheckTwisted (face, paramu, paramv))
-+         {
-+            if (!twistedfaces++)
-+               str << "TwistedFace {Twisted face} ";
-+
-+            (*testout) << "Face " << i << " is twisted" << endl;
-+            str << "TwistedFace/Face" << i << " ";
-+            str << "{Face " << i << " } ";
-+         }
-+      }
-+
-+      cout << "done" << endl;
-+      cout << "checking edges ... " << flush;
-+
-+      // double dmax;
-+      // int cnt = 0;
-+      Array <double> edgeLengths;
-+      Array <int> order;
-+      edgeLengths.SetSize (emap.Extent());
-+      order.SetSize (emap.Extent());
-+
-+      for (i = 1; i <= emap.Extent(); i++)
-+      {
-+         TopoDS_Edge edge1 = TopoDS::Edge (emap(i));
-+         GProp_GProps system;
-+         BRepGProp::LinearProperties(edge1, system);
-+         edgeLengths[i-1] = system.Mass();
-+      }
-+
-+      Sort (edgeLengths, order);
-+
-+      str << "ShortestEdges {Shortest edges} ";
-+      for (i = 1; i <= min(20, emap.Extent()); i++)
-+      {
-+         str << "ShortestEdges/Edge" << i;
-+         str << " {Edge " << order[i-1] << " (L=" << edgeLengths[order[i-1]-1] << ")} ";
-+      }
-+
-+      str << flush;
-+
-+      cout << "done" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: GetUnmeshedFaceInfo (stringstream & str)
-+   {
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+      {
-+         if (facemeshstatus[i-1] == -1)
-+            str << "Face" << i << " {Face " << i << " } ";
-+      }
-+      str << flush;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: GetNotDrawableFaces (stringstream & str)
-+   {
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+      {
-+         if (!fvispar[i-1].IsDrawable())
-+            str << "Face" << i << " {Face " << i << " } ";
-+      }
-+      str << flush;
-+   }
-+
-+
-+
-+
-+   bool OCCGeometry :: ErrorInSurfaceMeshing ()
-+   {
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+         if (facemeshstatus[i-1] == -1)
-+            return true;
-+
-+      return false;
-+   }
-+
-+
-+
-+
-+  int OCCGeometry :: GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,
-+      int perfstepsstart, int perfstepsend)
-+   {
-+     return OCCGenerateMesh (*this, mesh, mparam, perfstepsstart, perfstepsend);
-+   }
-+
-+
-+
-+
-+   const Refinement & OCCGeometry :: GetRefinement () const
-+   {
-+      return * new OCCRefinementSurfaces (*this);
-+   }
-+
-+
-+
-+
-+   OCCParameters :: OCCParameters()
-+   {
-+      resthcloseedgefac = 1;
-+      resthcloseedgeenable = 1;
-+        resthminedgelen = 0.001;
-+        resthminedgelenenable = 1;
-+   }
-+
-+
-+
-+
-+   void OCCParameters :: Print(ostream & ost) const
-+   {
-+      ost << "OCC Parameters:" << endl
-+         << "close edges: " << resthcloseedgeenable
-+         << ", fac = " << resthcloseedgefac << endl
-+               << "minimum edge length: " << resthminedgelenenable
-+               << ", min len = " << resthminedgelen << endl;
-+   }
-+
-+
-+
-+
-+   OCCParameters occparam;
-+
-+}
-+
-+
-+#endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp      2018-03-01 15:45:08.691877252 +0300
-@@ -1,457 +1,475 @@
--#ifndef FILE_OCCGEOM
--#define FILE_OCCGEOM
--
--/* *************************************************************************/
--/* File:   occgeom.hpp                                                     */
--/* Author: Robert Gaisbauer                                                */
--/* Date:   26. May  03                                                     */
--/* *************************************************************************/
--
--#ifdef OCCGEOMETRY
--
--#include <meshing.hpp>
--
--#include "BRep_Tool.hxx"
--#include "Geom_Curve.hxx"
--#include "Geom2d_Curve.hxx"
--#include "Geom_Surface.hxx"
--#include "GeomAPI_ProjectPointOnSurf.hxx"
--#include "GeomAPI_ProjectPointOnCurve.hxx"
--#include "BRepTools.hxx"
--#include "TopExp.hxx"
--#include "BRepBuilderAPI_MakeVertex.hxx"
--#include "BRepBuilderAPI_MakeShell.hxx"
--#include "BRepBuilderAPI_MakeSolid.hxx"
--#include "BRepOffsetAPI_Sewing.hxx"
--#include "BRepLProp_SLProps.hxx"
--#include "BRepAdaptor_Surface.hxx"
--#include "Poly_Triangulation.hxx"
--#include "Poly_Array1OfTriangle.hxx"
--#include "TColgp_Array1OfPnt2d.hxx"
--#include "Poly_Triangle.hxx"
--#include "GProp_GProps.hxx"
--#include "BRepGProp.hxx"
--#include "Geom_Surface.hxx"
--#include "TopExp.hxx"
--#include "gp_Pnt.hxx"
--#include "TopoDS.hxx"
--#include "TopoDS_Solid.hxx"
--#include "TopExp_Explorer.hxx"
--#include "TopTools_ListIteratorOfListOfShape.hxx"
--#include "BRep_Tool.hxx"
--#include "Geom_Curve.hxx"
--#include "Geom2d_Curve.hxx"
--#include "Geom_Surface.hxx"
--#include "GeomAPI_ProjectPointOnSurf.hxx"
--#include "GeomAPI_ProjectPointOnCurve.hxx"
--#include "TopoDS_Wire.hxx"
--#include "BRepTools_WireExplorer.hxx"
--#include "BRepTools.hxx"
--#include "TopTools_IndexedMapOfShape.hxx"
--#include "TopExp.hxx"
--#include "BRepBuilderAPI_MakeVertex.hxx"
--#include "BRepBuilderAPI_MakeShell.hxx"
--#include "BRepBuilderAPI_MakeSolid.hxx"
--#include "BRepOffsetAPI_Sewing.hxx"
--#include "BRepLProp_CLProps.hxx"
--#include "BRepLProp_SLProps.hxx"
--#include "BRepAdaptor_Surface.hxx"
--#include "BRepAdaptor_Curve.hxx"
--#include "Poly_Triangulation.hxx"
--#include "Poly_Array1OfTriangle.hxx"
--#include "TColgp_Array1OfPnt2d.hxx"
--#include "Poly_Triangle.hxx"
--#include "GProp_GProps.hxx"
--#include "BRepGProp.hxx"
--#include "TopoDS_Shape.hxx"
--#include "TopoDS_Face.hxx"
--#include "IGESToBRep_Reader.hxx"
--#include "Interface_Static.hxx"
--#include "GeomAPI_ExtremaCurveCurve.hxx"
--#include "Standard_ErrorHandler.hxx"
--#include "Standard_Failure.hxx"
--#include "ShapeUpgrade_ShellSewing.hxx"
--#include "ShapeFix_Shape.hxx"
--#include "ShapeFix_Wireframe.hxx"
--#include "BRepMesh.hxx"
--#include "BRepMesh_IncrementalMesh.hxx"
--#include "BRepBndLib.hxx"
--#include "Bnd_Box.hxx"
--#include "ShapeAnalysis.hxx"
--#include "ShapeBuild_ReShape.hxx"
--
--
--// Philippose - 29/01/2009
--// OpenCascade XDE Support
--// Include support for OpenCascade XDE Features
--#include "TDocStd_Document.hxx"
--#include "Quantity_Color.hxx"
--#include "XCAFApp_Application.hxx"
--#include "XCAFDoc_ShapeTool.hxx"
--#include "XCAFDoc_Color.hxx"
--#include "XCAFDoc_ColorTool.hxx"
--#include "XCAFDoc_ColorType.hxx"
--#include "XCAFDoc_LayerTool.hxx"
--#include "XCAFDoc_DimTolTool.hxx"
--#include "XCAFDoc_MaterialTool.hxx"
--#include "XCAFDoc_DocumentTool.hxx"
--#include "TDF_Label.hxx"
--#include "TDF_LabelSequence.hxx"
--#include "STEPCAFControl_Reader.hxx"
--#include "STEPCAFControl_Writer.hxx"
--#include "IGESCAFControl_Reader.hxx"
--#include "IGESCAFControl_Writer.hxx"
--
--#include "IGESControl_Reader.hxx"
--#include "STEPControl_Reader.hxx"
--#include "IGESControl_Writer.hxx"
--#include "STEPControl_Writer.hxx"
--
--#include "StlAPI_Writer.hxx"
--#include "STEPControl_StepModelType.hxx"
--
--namespace netgen
--{
--#include "occmeshsurf.hpp"
--
--  extern DLL_HEADER MeshingParameters mparam;
--
--#define PROJECTION_TOLERANCE 1e-10
--
--#define ENTITYISVISIBLE 1
--#define ENTITYISHIGHLIGHTED 2
--#define ENTITYISDRAWABLE 4
--
--#define OCCGEOMETRYVISUALIZATIONNOCHANGE   0
--#define OCCGEOMETRYVISUALIZATIONFULLCHANGE 1  // Compute transformation matrices and redraw
--#define OCCGEOMETRYVISUALIZATIONHALFCHANGE 2  // Redraw
--
--
--
--   class EntityVisualizationCode
--   {
--      int code;
--
--   public:
--
--      EntityVisualizationCode()
--      {  code = ENTITYISVISIBLE + !ENTITYISHIGHLIGHTED + ENTITYISDRAWABLE;}
--
--      int IsVisible ()
--      {  return code & ENTITYISVISIBLE;}
--
--      int IsHighlighted ()
--      {  return code & ENTITYISHIGHLIGHTED;}
--
--      int IsDrawable ()
--      {  return code & ENTITYISDRAWABLE;}
--
--      void Show ()
--      {  code |= ENTITYISVISIBLE;}
--
--      void Hide ()
--      {  code &= ~ENTITYISVISIBLE;}
--
--      void Highlight ()
--      {  code |= ENTITYISHIGHLIGHTED;}
--
--      void Lowlight ()
--      {  code &= ~ENTITYISHIGHLIGHTED;}
--
--      void SetDrawable ()
--      {  code |= ENTITYISDRAWABLE;}
--
--      void SetNotDrawable ()
--      {  code &= ~ENTITYISDRAWABLE;}
--   };
--
--
--
--   class Line
--   {
--   public:
--      Point<3> p0, p1;
--
--      double Dist (Line l);
--
--      double Length ();
--   };
--
--
--
--   inline double Det3 (double a00, double a01, double a02,
--      double a10, double a11, double a12,
--      double a20, double a21, double a22)
--   {
--      return a00*a11*a22 + a01*a12*a20 + a10*a21*a02 - a20*a11*a02 - a10*a01*a22 - a21*a12*a00;
--   }
--
--
--
--
--   class OCCGeometry : public NetgenGeometry
--   {
--      Point<3> center;
--
--   public:
--      TopoDS_Shape shape;
--      TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;
--      Array<bool> fsingular, esingular, vsingular;
--      Box<3> boundingbox;
--
--      // Philippose - 29/01/2009
--      // OpenCascade XDE Support
--      // XCAF Handle to make the face colours available to the rest of
--      // the system
--      Handle_XCAFDoc_ColorTool face_colours;
--
--     mutable int changed;
--      Array<int> facemeshstatus;
--
--      // Philippose - 15/01/2009
--      // Maximum mesh size for a given face
--      // (Used to explicitly define mesh size limits on individual faces)
--      Array<double> face_maxh;
--      
--      // Philippose - 14/01/2010
--      // Boolean array to detect whether a face has been explicitly modified 
--      // by the user or not
--      Array<bool> face_maxh_modified;
--
--      // Philippose - 15/01/2009
--      // Indicates which faces have been selected by the user in geometry mode
--      // (Currently handles only selection of one face at a time, but an array would
--      //  help to extend this to multiple faces)
--      Array<bool> face_sel_status;
--
--      Array<EntityVisualizationCode> fvispar, evispar, vvispar;
--
--      double tolerance;
--      bool fixsmalledges;
--      bool fixspotstripfaces;
--      bool sewfaces;
--      bool makesolids;
--      bool splitpartitions;
--
--      OCCGeometry()
--      {
--         somap.Clear();
--         shmap.Clear();
--         fmap.Clear();
--         wmap.Clear();
--         emap.Clear();
--         vmap.Clear();
--      }
--
--
--     virtual void Save (string filename) const;
--
--
--      void BuildFMap();
--
--      Box<3> GetBoundingBox()
--      {  return boundingbox;}
--
--      int NrSolids()
--      {  return somap.Extent();}
--
--      // Philippose - 17/01/2009
--      // Total number of faces in the geometry
--      int NrFaces()
--      {  return fmap.Extent();}
--
--      void SetCenter()
--      {  center = boundingbox.Center();}
--
--      Point<3> Center()
--      {  return center;}
--
--      void Project (int surfi, Point<3> & p) const;
--      bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;
--
--      OCCSurface GetSurface (int surfi)
--      {
--         cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
--         return OCCSurface (TopoDS::Face(fmap(surfi)), PLANESPACE);
--      }
--
--      void CalcBoundingBox ();
--      void BuildVisualizationMesh (double deflection);
--
--      void RecursiveTopologyTree (const TopoDS_Shape & sh,
--         stringstream & str,
--         TopAbs_ShapeEnum l,
--         bool free,
--         const char * lname);
--
--      void GetTopologyTree (stringstream & str);
--
--      void PrintNrShapes ();
--
--      void CheckIrregularEntities (stringstream & str);
--
--      void SewFaces();
--
--      void MakeSolid();
--
--      void HealGeometry();
--
--      // Philippose - 15/01/2009
--      // Sets the maximum mesh size for a given face
--      // (Note: Local mesh size limited by the global max mesh size)
--      void SetFaceMaxH(int facenr, double faceh)
--      {
--         if((facenr> 0) && (facenr <= fmap.Extent()))
--         {
--         face_maxh[facenr-1] = min(mparam.maxh,faceh);
--            
--            // Philippose - 14/01/2010
--            // If the face maxh is greater than or equal to the 
--            // current global maximum, then identify the face as 
--            // not explicitly controlled by the user any more
--            if(faceh >= mparam.maxh)
--            {
--               face_maxh_modified[facenr-1] = 0;
--            }
--            else
--            {
--               face_maxh_modified[facenr-1] = 1;
--            }
--         }
--      }
--
--      // Philippose - 15/01/2009
--      // Returns the local mesh size of a given face
--      double GetFaceMaxH(int facenr)
--      {
--         if((facenr> 0) && (facenr <= fmap.Extent()))
--         {
--            return face_maxh[facenr-1];
--         }
--         else
--         {
--            return 0.0;
--         }
--      }
--      
--      // Philippose - 14/01/2010
--      // Returns the flag whether the given face 
--      // has a mesh size controlled by the user or not
--      bool GetFaceMaxhModified(int facenr)
--      {
--         return face_maxh_modified[facenr-1];
--      }
--      
--      // Philippose - 17/01/2009
--      // Returns the index of the currently selected face
--      int SelectedFace()
--      {
--         int i;
--
--         for(i = 1; i <= fmap.Extent(); i++)
--         {
--            if(face_sel_status[i-1])
--            {
--               return i;
--            }
--         }
--
--         return 0;
--      }
--
--      // Philippose - 17/01/2009
--      // Sets the currently selected face
--      void SetSelectedFace(int facenr)
--      {
--         face_sel_status = 0;
--
--         if((facenr >= 1) && (facenr <= fmap.Extent()))
--         {
--            face_sel_status[facenr-1] = 1;
--         }
--      }
--
--      void LowLightAll()
--      {
--         for (int i = 1; i <= fmap.Extent(); i++)
--            fvispar[i-1].Lowlight();
--         for (int i = 1; i <= emap.Extent(); i++)
--            evispar[i-1].Lowlight();
--         for (int i = 1; i <= vmap.Extent(); i++)
--            vvispar[i-1].Lowlight();
--      }
--
--      void GetUnmeshedFaceInfo (stringstream & str);
--      void GetNotDrawableFaces (stringstream & str);
--      bool ErrorInSurfaceMeshing ();
--
--     void WriteOCC_STL(char * filename);
--
--     virtual int GenerateMesh (Mesh*& mesh, MeshingParameters & mparam, 
--         int perfstepsstart, int perfstepsend);
--
--      virtual const Refinement & GetRefinement () const;
--   };
--
--
--
--   class OCCParameters
--   {
--   public:
--
--      /// Factor for meshing close edges 
--      double resthcloseedgefac;
--
--
--      /// Enable / Disable detection of close edges
--      int resthcloseedgeenable;
--
--
--        /// Minimum edge length to be used for dividing edges to mesh points
--        double resthminedgelen;
--
--
--        /// Enable / Disable use of the minimum edge length (by default use 1e-4)
--        int resthminedgelenenable;
--
--      /*!
--         Default Constructor for the OpenCascade
--         Mesh generation parameter set
--      */
--      OCCParameters();
--
--
--      /*!
--         Dump all the OpenCascade specific meshing parameters 
--         to console
--      */
--      void Print (ostream & ost) const;
--   };
--   
--
--   void PrintContents (OCCGeometry * geom);
--
--   OCCGeometry * LoadOCC_IGES (const char * filename);
--   OCCGeometry * LoadOCC_STEP (const char * filename);
--   OCCGeometry * LoadOCC_BREP (const char * filename);
--
--   extern OCCParameters occparam;
--
--
--   // Philippose - 31.09.2009
--   // External access to the mesh generation functions within the OCC
--   // subsystem (Not sure if this is the best way to implement this....!!)
--   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
--                             MeshingParameters & mparam,
--                             int perfstepsstart, int perfstepsend);
--
--  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
--
--   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
--
--   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
--}
--
--#endif
--
--#endif
-+#ifndef FILE_OCCGEOM
-+#define FILE_OCCGEOM
-+
-+/* *************************************************************************/
-+/* File:   occgeom.hpp                                                     */
-+/* Author: Robert Gaisbauer                                                */
-+/* Date:   26. May  03                                                     */
-+/* *************************************************************************/
-+
-+#ifdef OCCGEOMETRY
-+
-+#include <meshing.hpp>
-+
-+#include "BRep_Tool.hxx"
-+#include "Geom_Curve.hxx"
-+#include "Geom2d_Curve.hxx"
-+#include "Geom_Surface.hxx"
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
-+#include "BRepTools.hxx"
-+#include "TopExp.hxx"
-+#include "BRepBuilderAPI_MakeVertex.hxx"
-+#include "BRepBuilderAPI_MakeShell.hxx"
-+#include "BRepBuilderAPI_MakeSolid.hxx"
-+#include "BRepOffsetAPI_Sewing.hxx"
-+#include "BRepLProp_SLProps.hxx"
-+#include "BRepAdaptor_Surface.hxx"
-+#include "Poly_Triangulation.hxx"
-+#include "Poly_Array1OfTriangle.hxx"
-+#include "TColgp_Array1OfPnt2d.hxx"
-+#include "Poly_Triangle.hxx"
-+#include "GProp_GProps.hxx"
-+#include "BRepGProp.hxx"
-+#include "Geom_Surface.hxx"
-+#include "TopExp.hxx"
-+#include "gp_Pnt.hxx"
-+#include "TopoDS.hxx"
-+#include "TopoDS_Solid.hxx"
-+#include "TopExp_Explorer.hxx"
-+#include "TopTools_ListIteratorOfListOfShape.hxx"
-+#include "BRep_Tool.hxx"
-+#include "Geom_Curve.hxx"
-+#include "Geom2d_Curve.hxx"
-+#include "Geom_Surface.hxx"
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
-+#include "TopoDS_Wire.hxx"
-+#include "BRepTools_WireExplorer.hxx"
-+#include "BRepTools.hxx"
-+#include "TopTools_IndexedMapOfShape.hxx"
-+#include "TopExp.hxx"
-+#include "BRepBuilderAPI_MakeVertex.hxx"
-+#include "BRepBuilderAPI_MakeShell.hxx"
-+#include "BRepBuilderAPI_MakeSolid.hxx"
-+#include "BRepOffsetAPI_Sewing.hxx"
-+#include "BRepLProp_CLProps.hxx"
-+#include "BRepLProp_SLProps.hxx"
-+#include "BRepAdaptor_Surface.hxx"
-+#include "BRepAdaptor_Curve.hxx"
-+#include "Poly_Triangulation.hxx"
-+#include "Poly_Array1OfTriangle.hxx"
-+#include "TColgp_Array1OfPnt2d.hxx"
-+#include "Poly_Triangle.hxx"
-+#include "GProp_GProps.hxx"
-+#include "BRepGProp.hxx"
-+#include "TopoDS_Shape.hxx"
-+#include "TopoDS_Face.hxx"
-+#include "IGESToBRep_Reader.hxx"
-+#include "Interface_Static.hxx"
-+#include "GeomAPI_ExtremaCurveCurve.hxx"
-+//#include "Standard_ErrorHandler.hxx"
-+#include "Standard_Failure.hxx"
-+#include "ShapeUpgrade_ShellSewing.hxx"
-+#include "ShapeFix_Shape.hxx"
-+#include "ShapeFix_Wireframe.hxx"
-+#include <Standard_Version.hxx>
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) <= 0x060702
-+// porting to OCCT6.7.3
-+#include "BRepMesh.hxx"
-+#endif
-+#include "BRepMesh_IncrementalMesh.hxx"
-+#include "BRepBndLib.hxx"
-+#include "Bnd_Box.hxx"
-+#include "ShapeAnalysis.hxx"
-+#include "ShapeBuild_ReShape.hxx"
-+
-+// -- Optimization: to use cached projector and classifier
-+#include <NCollection_DataMap.hxx>
-+class ShapeAnalysis_Surface;
-+class BRepTopAdaptor_FClass2d;
-+
-+// Philippose - 29/01/2009
-+// OpenCascade XDE Support
-+// Include support for OpenCascade XDE Features
-+#include "TDocStd_Document.hxx"
-+#include "Quantity_Color.hxx"
-+#include "XCAFApp_Application.hxx"
-+#include "XCAFDoc_ShapeTool.hxx"
-+#include "XCAFDoc_Color.hxx"
-+#include "XCAFDoc_ColorTool.hxx"
-+#include "XCAFDoc_ColorType.hxx"
-+#include "XCAFDoc_LayerTool.hxx"
-+#include "XCAFDoc_DimTolTool.hxx"
-+#include "XCAFDoc_MaterialTool.hxx"
-+#include "XCAFDoc_DocumentTool.hxx"
-+#include "TDF_Label.hxx"
-+#include "TDF_LabelSequence.hxx"
-+#include "STEPCAFControl_Reader.hxx"
-+#include "STEPCAFControl_Writer.hxx"
-+#include "IGESCAFControl_Reader.hxx"
-+#include "IGESCAFControl_Writer.hxx"
-+
-+#include "IGESControl_Reader.hxx"
-+#include "STEPControl_Reader.hxx"
-+#include "IGESControl_Writer.hxx"
-+#include "STEPControl_Writer.hxx"
-+
-+#include "StlAPI_Writer.hxx"
-+#include "STEPControl_StepModelType.hxx"
-+
-+namespace netgen
-+{
-+#include "occmeshsurf.hpp"
-+
-+  extern DLL_HEADER MeshingParameters mparam;
-+
-+#define PROJECTION_TOLERANCE 1e-10
-+
-+#define ENTITYISVISIBLE 1
-+#define ENTITYISHIGHLIGHTED 2
-+#define ENTITYISDRAWABLE 4
-+
-+#define OCCGEOMETRYVISUALIZATIONNOCHANGE   0
-+#define OCCGEOMETRYVISUALIZATIONFULLCHANGE 1  // Compute transformation matrices and redraw
-+#define OCCGEOMETRYVISUALIZATIONHALFCHANGE 2  // Redraw
-+
-+
-+
-+   class EntityVisualizationCode
-+   {
-+      int code;
-+
-+   public:
-+
-+      EntityVisualizationCode()
-+      {  code = ENTITYISVISIBLE + !ENTITYISHIGHLIGHTED + ENTITYISDRAWABLE;}
-+
-+      int IsVisible ()
-+      {  return code & ENTITYISVISIBLE;}
-+
-+      int IsHighlighted ()
-+      {  return code & ENTITYISHIGHLIGHTED;}
-+
-+      int IsDrawable ()
-+      {  return code & ENTITYISDRAWABLE;}
-+
-+      void Show ()
-+      {  code |= ENTITYISVISIBLE;}
-+
-+      void Hide ()
-+      {  code &= ~ENTITYISVISIBLE;}
-+
-+      void Highlight ()
-+      {  code |= ENTITYISHIGHLIGHTED;}
-+
-+      void Lowlight ()
-+      {  code &= ~ENTITYISHIGHLIGHTED;}
-+
-+      void SetDrawable ()
-+      {  code |= ENTITYISDRAWABLE;}
-+
-+      void SetNotDrawable ()
-+      {  code &= ~ENTITYISDRAWABLE;}
-+   };
-+
-+
-+
-+   class Line
-+   {
-+   public:
-+      Point<3> p0, p1;
-+
-+      double Dist (Line l);
-+
-+      double Length ();
-+   };
-+
-+
-+
-+   inline double Det3 (double a00, double a01, double a02,
-+      double a10, double a11, double a12,
-+      double a20, double a21, double a22)
-+   {
-+      return a00*a11*a22 + a01*a12*a20 + a10*a21*a02 - a20*a11*a02 - a10*a01*a22 - a21*a12*a00;
-+   }
-+
-+
-+
-+
-+   class OCCGeometry : public NetgenGeometry
-+   {
-+      Point<3> center;
-+      // -- Optimization: to use cached projector and classifier
-+      mutable NCollection_DataMap<int,Handle(ShapeAnalysis_Surface)> fprjmap;
-+      mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
-+
-+   public:
-+      TopoDS_Shape shape;
-+      TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;
-+      Array<bool> fsingular, esingular, vsingular;
-+      Box<3> boundingbox;
-+
-+      // Philippose - 29/01/2009
-+      // OpenCascade XDE Support
-+      // XCAF Handle to make the face colours available to the rest of
-+      // the system
-+      Handle(XCAFDoc_ColorTool) face_colours;
-+
-+     mutable int changed;
-+      Array<int> facemeshstatus;
-+
-+      // Philippose - 15/01/2009
-+      // Maximum mesh size for a given face
-+      // (Used to explicitly define mesh size limits on individual faces)
-+      Array<double> face_maxh;
-+
-+      // Philippose - 14/01/2010
-+      // Boolean array to detect whether a face has been explicitly modified
-+      // by the user or not
-+      Array<bool> face_maxh_modified;
-+
-+      // Philippose - 15/01/2009
-+      // Indicates which faces have been selected by the user in geometry mode
-+      // (Currently handles only selection of one face at a time, but an array would
-+      //  help to extend this to multiple faces)
-+      Array<bool> face_sel_status;
-+
-+      Array<EntityVisualizationCode> fvispar, evispar, vvispar;
-+
-+      double tolerance;
-+      bool fixsmalledges;
-+      bool fixspotstripfaces;
-+      bool sewfaces;
-+      bool makesolids;
-+      bool splitpartitions;
-+
-+      OCCGeometry()
-+      {
-+         somap.Clear();
-+         shmap.Clear();
-+         fmap.Clear();
-+         wmap.Clear();
-+         emap.Clear();
-+         vmap.Clear();
-+      }
-+
-+
-+     virtual void Save (string filename) const;
-+
-+
-+      ~OCCGeometry();      // -- to free cached projector and classifier
-+
-+      void BuildFMap();
-+
-+      Box<3> GetBoundingBox()
-+      {  return boundingbox;}
-+
-+      int NrSolids()
-+      {  return somap.Extent();}
-+
-+      // Philippose - 17/01/2009
-+      // Total number of faces in the geometry
-+      int NrFaces()
-+      {  return fmap.Extent();}
-+
-+      void SetCenter()
-+      {  center = boundingbox.Center();}
-+
-+      Point<3> Center()
-+      {  return center;}
-+
-+      // void Project (int surfi, Point<3> & p) const; -- optimization
-+      bool Project (int surfi, Point<3> & p, double& u, double& v) const;
-+      bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;
-+
-+      // -- Optimization: to use cached projector and classifier
-+      void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                        BRepTopAdaptor_FClass2d*& cls) const;
-+
-+      OCCSurface GetSurface (int surfi)
-+      {
-+         cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
-+         return OCCSurface (TopoDS::Face(fmap(surfi)), PLANESPACE);
-+      }
-+
-+      void CalcBoundingBox ();
-+      void BuildVisualizationMesh (double deflection);
-+
-+      void RecursiveTopologyTree (const TopoDS_Shape & sh,
-+         stringstream & str,
-+         TopAbs_ShapeEnum l,
-+         bool free,
-+         const char * lname);
-+
-+      void GetTopologyTree (stringstream & str);
-+
-+      void PrintNrShapes ();
-+
-+      void CheckIrregularEntities (stringstream & str);
-+
-+      void SewFaces();
-+
-+      void MakeSolid();
-+
-+      void HealGeometry();
-+
-+      // Philippose - 15/01/2009
-+      // Sets the maximum mesh size for a given face
-+      // (Note: Local mesh size limited by the global max mesh size)
-+      void SetFaceMaxH(int facenr, double faceh)
-+      {
-+         if((facenr> 0) && (facenr <= fmap.Extent()))
-+         {
-+         face_maxh[facenr-1] = min(mparam.maxh,faceh);
-+
-+            // Philippose - 14/01/2010
-+            // If the face maxh is greater than or equal to the
-+            // current global maximum, then identify the face as
-+            // not explicitly controlled by the user any more
-+            if(faceh >= mparam.maxh)
-+            {
-+               face_maxh_modified[facenr-1] = 0;
-+            }
-+            else
-+            {
-+               face_maxh_modified[facenr-1] = 1;
-+            }
-+         }
-+      }
-+
-+      // Philippose - 15/01/2009
-+      // Returns the local mesh size of a given face
-+      double GetFaceMaxH(int facenr)
-+      {
-+         if((facenr> 0) && (facenr <= fmap.Extent()))
-+         {
-+            return face_maxh[facenr-1];
-+         }
-+         else
-+         {
-+            return 0.0;
-+         }
-+      }
-+
-+      // Philippose - 14/01/2010
-+      // Returns the flag whether the given face
-+      // has a mesh size controlled by the user or not
-+      bool GetFaceMaxhModified(int facenr)
-+      {
-+         return face_maxh_modified[facenr-1];
-+      }
-+
-+      // Philippose - 17/01/2009
-+      // Returns the index of the currently selected face
-+      int SelectedFace()
-+      {
-+         int i;
-+
-+         for(i = 1; i <= fmap.Extent(); i++)
-+         {
-+            if(face_sel_status[i-1])
-+            {
-+               return i;
-+            }
-+         }
-+
-+         return 0;
-+      }
-+
-+      // Philippose - 17/01/2009
-+      // Sets the currently selected face
-+      void SetSelectedFace(int facenr)
-+      {
-+         face_sel_status = 0;
-+
-+         if((facenr >= 1) && (facenr <= fmap.Extent()))
-+         {
-+            face_sel_status[facenr-1] = 1;
-+         }
-+      }
-+
-+      void LowLightAll()
-+      {
-+         for (int i = 1; i <= fmap.Extent(); i++)
-+            fvispar[i-1].Lowlight();
-+         for (int i = 1; i <= emap.Extent(); i++)
-+            evispar[i-1].Lowlight();
-+         for (int i = 1; i <= vmap.Extent(); i++)
-+            vvispar[i-1].Lowlight();
-+      }
-+
-+      void GetUnmeshedFaceInfo (stringstream & str);
-+      void GetNotDrawableFaces (stringstream & str);
-+      bool ErrorInSurfaceMeshing ();
-+
-+     void WriteOCC_STL(char * filename);
-+
-+     virtual int GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,
-+         int perfstepsstart, int perfstepsend);
-+
-+      virtual const Refinement & GetRefinement () const;
-+   };
-+
-+
-+
-+   class OCCParameters
-+   {
-+   public:
-+
-+      /// Factor for meshing close edges
-+      double resthcloseedgefac;
-+
-+
-+      /// Enable / Disable detection of close edges
-+      int resthcloseedgeenable;
-+
-+
-+        /// Minimum edge length to be used for dividing edges to mesh points
-+        double resthminedgelen;
-+
-+
-+        /// Enable / Disable use of the minimum edge length (by default use 1e-4)
-+        int resthminedgelenenable;
-+
-+      /*!
-+         Default Constructor for the OpenCascade
-+         Mesh generation parameter set
-+      */
-+      OCCParameters();
-+
-+
-+      /*!
-+         Dump all the OpenCascade specific meshing parameters
-+         to console
-+      */
-+      void Print (ostream & ost) const;
-+   };
-+
-+
-+   void PrintContents (OCCGeometry * geom);
-+
-+   OCCGeometry * LoadOCC_IGES (const char * filename);
-+   OCCGeometry * LoadOCC_STEP (const char * filename);
-+   OCCGeometry * LoadOCC_BREP (const char * filename);
-+
-+   extern OCCParameters occparam;
-+
-+
-+   // Philippose - 31.09.2009
-+   // External access to the mesh generation functions within the OCC
-+   // subsystem (Not sure if this is the best way to implement this....!!)
-+   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
-+                             MeshingParameters & mparam,
-+                             int perfstepsstart, int perfstepsend);
-+
-+  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
-+
-+   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
-+
-+   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
-+}
-+
-+#endif
-+
-+#endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp  2018-03-01 15:41:03.997157610 +0300
-@@ -6,6 +6,7 @@
- #include <meshing.hpp>
- #include <GeomLProp_SLProps.hxx>
- #include <ShapeAnalysis_Surface.hxx>
-+#include <GeomAPI_ProjectPointOnCurve.hxx> // -- moved here from occgeom.hpp
- namespace netgen
-@@ -96,13 +97,16 @@
-       n.Normalize();
-       }
--    else
-+    else if ( lprop.IsNormalDefined() )
-       {
-       n(0)=lprop.Normal().X();
-       n(1)=lprop.Normal().Y();
-       n(2)=lprop.Normal().Z();
-       }
--
-+    else
-+      {
-+        n = 0;
-+      }
-     if(glob_testout)
-       {
-       (*testout) << "u " << geominfo.u << " v " << geominfo.v 
-@@ -434,23 +438,33 @@
-   void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point<3> & p) const
-   {
--    geometry.Project (surfind, p);
-+    // geometry.Project (surfind, p); -- signature of Project() changed for optimization
-+    double u, v;
-+    geometry.Project (surfind, p, u, v);
-   }
-   int MeshOptimize2dOCCSurfaces :: ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
-   {
--    double u = gi.u;
--    double v = gi.v;
-+    //double u = gi.u;
-+    //double v = gi.v;
-     Point<3> hp = p;
--    if (geometry.FastProject (surfind, hp, u, v))
--      {
-+    // -- u and v are computed by FastProject() and Project(), no need to call CalcPointGeomInfo()
-+    // if (geometry.FastProject (surfind, hp, u, v))
-+    //   {
-+    //    p = hp;
-+    //    return 1;
-+    //   }
-+    // ProjectPoint (surfind, p); 
-+    // return CalcPointGeomInfo (surfind, gi, p); 
-+    bool ok;
-+    if (gi.trignum > 0)
-+      ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
-+    else
-+      ok = geometry.Project (surfind, hp, gi.u, gi.v);
-       p = hp;
--      return 1;
--      }
--    ProjectPoint (surfind, p); 
--    return CalcPointGeomInfo (surfind, gi, p); 
-+    return ok;
-   }
-@@ -680,7 +694,8 @@
-       if (!geometry.FastProject (surfi, hnewp, u, v))
-         {
-         //  cout << "Fast projection to surface fails! Using OCC projection" << endl;
--          geometry.Project (surfi, hnewp);
-+          // geometry.Project (surfi, hnewp); -- Project() changed for optimization
-+          geometry.Project (surfi, hnewp, u, v);
-         }
-       newgi.trignum = 1;
-@@ -689,7 +704,7 @@
-       }
-   
-     newp = hnewp;
--  }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: 
-@@ -708,14 +723,18 @@
-     hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-     newp = hnewp;
-     newgi = ap1;
--  };
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi) const
-   {
-     if (surfi > 0)
--      geometry.Project (surfi, p);
--  };
-+      //geometry.Project (surfi, p);
-+    {
-+      double u, v;
-+      geometry.Project (surfi, p, u, v);
-+    }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi) const
-   {
-@@ -723,9 +742,10 @@
-       if (!geometry.FastProject (surfi, p, gi.u, gi.v))
-       {
-         cout << "Fast projection to surface fails! Using OCC projection" << endl;
--        geometry.Project (surfi, p);
-+          double u, v;
-+        geometry.Project (surfi, p, u, v);
-+      }
-       }
--  };
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp       2018-03-01 15:45:08.687877681 +0300
-@@ -1,1024 +1,1024 @@
--#ifdef OCCGEOMETRY
--
--#include <mystdlib.h>
--#include <myadt.hpp>
--#include <linalg.hpp>
--#include <csg.hpp>
--#include <occgeom.hpp>
--
--
--#include <incvis.hpp>
--#include <visual.hpp>
--
--#include "../meshing/bcfunctions.hpp"
--
--#include "vsocc.hpp"
--
--
--extern "C" int Ng_occ_Init (Tcl_Interp * interp);
--
--
--
--namespace netgen
--{
--  extern AutoPtr<NetgenGeometry> ng_geometry;
--  extern AutoPtr<Mesh> mesh;
-- 
--  char * err_needsoccgeometry = (char*) "This operation needs an OCC geometry";
--  extern char * err_needsmesh;
--  extern char * err_jobrunning;
--
--
--
--                          
--  class OCCGeometryRegister : public GeometryRegister
--  {
--  public:
--    virtual NetgenGeometry * Load (string filename) const;
--    virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;
--
--    virtual void SetParameters (Tcl_Interp * interp) 
--    {
--      occparam.resthcloseedgefac =
--      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
--      occparam.resthcloseedgeenable =
--      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
--        occparam.resthminedgelen = 
--      atof (Tcl_GetVar (interp, "::stloptions.resthminedgelen", 0));
--        occparam.resthminedgelenenable = 
--      atoi (Tcl_GetVar (interp, "::stloptions.resthminedgelenenable", 0));
--    }
--  };
--
--
--
--
--  int Ng_SetOCCVisParameters  (ClientData clientData,
--                             Tcl_Interp * interp,
--                             int argc, tcl_const char *argv[])
--  {
--#ifdef OCCGEOMETRY
--    int showvolume;
--      OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
--
--    showvolume = atoi (Tcl_GetVar (interp, "::occoptions.showvolumenr", 0));
--
--    if (occgeometry)
--      if (showvolume != vispar.occshowvolumenr)
--      {
--        if (showvolume < 0 || showvolume > occgeometry->NrSolids())
--          {
--            char buf[20];
--            sprintf (buf, "%5i", vispar.occshowvolumenr);
--            Tcl_SetVar (interp, "::occoptions.showvolumenr", buf, 0);
--          }
--        else
--          {
--            vispar.occshowvolumenr = showvolume;
--            if (occgeometry)
--              occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--          }
--      }
--    
--    int temp;
--
--    temp = atoi (Tcl_GetVar (interp, "::occoptions.visproblemfaces", 0));
--
--    if ((bool) temp != vispar.occvisproblemfaces)
--      {
--      vispar.occvisproblemfaces = temp;
--      if (occgeometry)
--        occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--      }
--
--    vispar.occshowsurfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
--    vispar.occshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
--    vispar.occzoomtohighlightedentity = atoi (Tcl_GetVar (interp, "::occoptions.zoomtohighlightedentity", 0));
--    vispar.occdeflection = pow(10.0,-1-atof (Tcl_GetVar (interp, "::occoptions.deflection", 0)));
--
--#endif
--
--
--
--
--
--#ifdef ACIS
--    vispar.ACISshowfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
--    vispar.ACISshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
--    vispar.ACISshowsolidnr = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr", 0));
--    vispar.ACISshowsolidnr2 = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr2", 0));
--
--#endif
--
--
--
--    return TCL_OK;
--  }  
--
--
--
--
--  int Ng_GetOCCData (ClientData clientData,
--                   Tcl_Interp * interp,
--                   int argc, tcl_const char *argv[])
--  {
--#ifdef OCCGEOMETRY
--    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
--
--    static char buf[1000];
--    buf[0] = 0;
--    stringstream str;
--
--    if (argc >= 2)
--      {
--      if (strcmp (argv[1], "getentities") == 0)
--        {
--          if (occgeometry)
--            {
--              occgeometry->GetTopologyTree(str);
--            }
--        }
--      }
--
--    Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
--
--#endif
--    return TCL_OK;
--  }
--
--  
--
--  int Ng_OCCCommand (ClientData clientData,
--                   Tcl_Interp * interp,
--                   int argc, tcl_const char *argv[])
--  {
--#ifdef OCCGEOMETRY
--    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
--
--    stringstream str;
--    if (argc >= 2)
--      {
--      if (strcmp (argv[1], "isoccgeometryloaded") == 0)
--        {
--          if (occgeometry)
--            str << "1 " << flush;
--          else str << "0 " << flush;
--
--          Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
--        }
--      if (occgeometry)
--        {
--          if (strcmp (argv[1], "buildvisualizationmesh") == 0)
--            {
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--            }
--          if (strcmp (argv[1], "mesherror") == 0)
--            {
--              if (occgeometry->ErrorInSurfaceMeshing())
--                str << 1;
--              else
--                str << 0;
--            }
--          if (strcmp (argv[1], "sewfaces") == 0)
--            {
--              cout << "Before operation:" << endl;
--              occgeometry->PrintNrShapes();
--              occgeometry->SewFaces();
--              occgeometry->BuildFMap();
--              cout << endl << "After operation:" << endl;
--              occgeometry->PrintNrShapes();
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--            }
--          if (strcmp (argv[1], "makesolid") == 0)
--            {
--              cout << "Before operation:" << endl;
--              occgeometry->PrintNrShapes();
--              occgeometry->MakeSolid();
--              occgeometry->BuildFMap();
--              cout << endl << "After operation:" << endl;
--              occgeometry->PrintNrShapes();
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--            }
--          if (strcmp (argv[1], "upgradetopology") == 0)
--            {
--              cout << "Before operation:" << endl;
--              occgeometry->PrintNrShapes();
--              occgeometry->SewFaces();
--              occgeometry->MakeSolid();
--              occgeometry->BuildFMap();
--              cout << endl << "After operation:" << endl;
--              occgeometry->PrintNrShapes();
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--            }
--          if (strcmp (argv[1], "shapehealing") == 0)
--            {
--              occgeometry->tolerance =
--                atof (Tcl_GetVar (interp, "::occoptions.tolerance", 0));
--              occgeometry->fixsmalledges =
--                atoi (Tcl_GetVar (interp, "::occoptions.fixsmalledges", 0));
--              occgeometry->fixspotstripfaces =
--                atoi (Tcl_GetVar (interp, "::occoptions.fixspotstripfaces", 0));
--              occgeometry->sewfaces =
--                atoi (Tcl_GetVar (interp, "::occoptions.sewfaces", 0));
--              occgeometry->makesolids =
--                atoi (Tcl_GetVar (interp, "::occoptions.makesolids", 0));
--              occgeometry->splitpartitions =
--                atoi (Tcl_GetVar (interp, "::occoptions.splitpartitions", 0));
--
--              //            cout << "Before operation:" << endl;
--              //            occgeometry->PrintNrShapes();
--              occgeometry->HealGeometry();
--              occgeometry->BuildFMap();
--              //            cout << endl << "After operation:" << endl;
--              //            occgeometry->PrintNrShapes();
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--            }
--
--
--          if (strcmp (argv[1], "highlightentity") == 0)
--            {
--              if (strcmp (argv[2], "Face") == 0)
--                {
--                  int nr = atoi (argv[3]);
--                  occgeometry->LowLightAll();
--
--                  occgeometry->fvispar[nr-1].Highlight();
--                  if (vispar.occzoomtohighlightedentity)
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
--                  else
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--              if (strcmp (argv[2], "Shell") == 0)
--                {
--                  int nr = atoi (argv[3]);
--                  occgeometry->LowLightAll();
--
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                      occgeometry->fvispar[i-1].Highlight();
--                    }
--                  if (vispar.occzoomtohighlightedentity)
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
--                  else
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--              if (strcmp (argv[2], "Solid") == 0)
--                {
--                  int nr = atoi (argv[3]);
--                  occgeometry->LowLightAll();
--
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                      occgeometry->fvispar[i-1].Highlight();
--                    }
--                  if (vispar.occzoomtohighlightedentity)
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
--                  else
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--              /*
--                if (strcmp (argv[2], "CompSolid") == 0)
--                {
--                int nr = atoi (argv[3]);
--                occgeometry->LowLightAll();
--
--                TopExp_Explorer exp;
--                for (exp.Init (occgeometry->cmap(nr), TopAbs_FACE);
--                exp.More(); exp.Next())
--                {
--                int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                occgeometry->fvispar[i-1].Highlight();
--                }
--                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--              */
--
--              if (strcmp (argv[2], "Edge") == 0)
--                {
--                  int nr = atoi (argv[3]);
--                  occgeometry->LowLightAll();
--
--                  occgeometry->evispar[nr-1].Highlight();
--                  if (vispar.occzoomtohighlightedentity)
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
--                  else
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--              if (strcmp (argv[2], "Wire") == 0)
--                {
--                  int nr = atoi (argv[3]);
--                  occgeometry->LowLightAll();
--
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
--                      occgeometry->evispar[i-1].Highlight();
--                    }
--                  if (vispar.occzoomtohighlightedentity)
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
--                  else
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--
--              if (strcmp (argv[2], "Vertex") == 0)
--                {
--                  int nr = atoi (argv[3]);
--                  occgeometry->LowLightAll();
--
--                  occgeometry->vvispar[nr-1].Highlight();
--                  if (vispar.occzoomtohighlightedentity)
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
--                  else
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--                }
--
--            }
--
--
--
--          if (strcmp (argv[1], "show") == 0)
--            {
--              int nr = atoi (argv[3]);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--
--              if (strcmp (argv[2], "Face") == 0)
--                {
--                  occgeometry->fvispar[nr-1].Show();
--                }
--              if (strcmp (argv[2], "Shell") == 0)
--                {
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                      occgeometry->fvispar[i-1].Show();
--                    }
--                }
--              if (strcmp (argv[2], "Solid") == 0)
--                {
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                      occgeometry->fvispar[i-1].Show();
--                    }
--                }
--              if (strcmp (argv[2], "Edge") == 0)
--                {
--                  occgeometry->evispar[nr-1].Show();
--                }
--              if (strcmp (argv[2], "Wire") == 0)
--                {
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
--                      occgeometry->evispar[i-1].Show();
--                    }
--                }
--            }
--
--
--          if (strcmp (argv[1], "hide") == 0)
--            {
--              int nr = atoi (argv[3]);
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--
--              if (strcmp (argv[2], "Face") == 0)
--                {
--                  occgeometry->fvispar[nr-1].Hide();
--                }
--              if (strcmp (argv[2], "Shell") == 0)
--                {
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                      occgeometry->fvispar[i-1].Hide();
--                    }
--                }
--              if (strcmp (argv[2], "Solid") == 0)
--                {
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
--                      occgeometry->fvispar[i-1].Hide();
--                    }
--                }
--              if (strcmp (argv[2], "Edge") == 0)
--                {
--                  occgeometry->evispar[nr-1].Hide();
--                }
--              if (strcmp (argv[2], "Wire") == 0)
--                {
--                  TopExp_Explorer exp;
--                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
--                       exp.More(); exp.Next())
--                    {
--                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
--                      occgeometry->evispar[i-1].Hide();
--                    }
--                }
--            }
--
--
--
--          if (strcmp (argv[1], "findsmallentities") == 0)
--            {
--              stringstream str("");
--              occgeometry->CheckIrregularEntities(str);
--              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
--            }
--          if (strcmp (argv[1], "getunmeshedfaceinfo") == 0)
--            {
--              occgeometry->GetUnmeshedFaceInfo(str);
--              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
--            }
--          if (strcmp (argv[1], "getnotdrawablefaces") == 0)
--            {
--              occgeometry->GetNotDrawableFaces(str);
--              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
--            }
--          if (strcmp (argv[1], "redrawstatus") == 0)
--            {
--              int i = atoi (argv[2]);
--              occgeometry->changed = i;
--            }
--          if (strcmp (argv[1], "swaporientation") == 0)
--            {
--              IGESControl_Writer writer("millimeters", 1);
--              writer.AddShape (occgeometry->shape);
--              writer.Write ("1.igs");
--              /*
--                int nr = atoi (argv[3]);
--
--                //          const_cast<TopoDS_Shape&> (occgeometry->fmap(nr)).Reverse();
--
--                Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
--                rebuild->Apply(occgeometry->shape);
--
--                TopoDS_Shape sh;
--
--                //          if (strcmp (argv[2], "CompSolid") == 0) sh = occgeometry->cmap(nr);
--                if (strcmp (argv[2], "Solid") == 0) sh = occgeometry->somap(nr);
--                if (strcmp (argv[2], "Shell") == 0) sh = occgeometry->shmap(nr);
--                if (strcmp (argv[2], "Face") == 0) sh = occgeometry->fmap(nr);
--                if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);
--                if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);
--
--                rebuild->Replace(sh, sh.Reversed(), Standard_False);
--
--                TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);
--                occgeometry->shape = newshape;
--
--                occgeometry->BuildFMap();
--                occgeometry->BuildVisualizationMesh();
--                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--              */
--            }
--          if (strcmp (argv[1], "marksingular") == 0)
--            {
--              int nr = atoi (argv[3]);
--              cout << "marking " << argv[2] << " " << nr << endl;
--              char buf[2]; buf[0] = '0'; buf[1] = 0;
--              bool sing = false;
--              if (strcmp (argv[2], "Face") == 0)
--                sing = occgeometry->fsingular[nr-1] = !occgeometry->fsingular[nr-1];
--              if (strcmp (argv[2], "Edge") == 0)
--                sing = occgeometry->esingular[nr-1] = !occgeometry->esingular[nr-1];
--              if (strcmp (argv[2], "Vertex") == 0)
--                sing = occgeometry->vsingular[nr-1] = !occgeometry->vsingular[nr-1];
--
--              if (sing) buf[0] = '1';
--
--                Tcl_SetVar (interp, "::ismarkedsingular", buf, 0);
--
--              stringstream str;
--              occgeometry->GetTopologyTree (str);
--
--              char* cstr = (char*)str.str().c_str();
--
--              (*testout) << cstr << endl;
--
--              char helpstr[1000];
--
--              while (strchr (cstr, '}'))
--                {
--                  strncpy (helpstr, cstr+2, strlen(strchr(cstr+2, '}')));
--                  (*testout) << "***" << cstr << "***" << endl;
--                  cstr = strchr (cstr, '}');
--                } 
--            }
--        }
--      }
--
--#endif
--    return TCL_OK;
--  }
--
--
--
--#ifdef OCCGEOMETRY
--  /*
--  void OCCConstructGeometry (OCCGeometry & geom);
--
--  int Ng_OCCConstruction (ClientData clientData,
--                        Tcl_Interp * interp,
--                        int argc, tcl_const char *argv[])
--  {
--    if (occgeometry)
--      OCCConstructGeometry (*occgeometry);
--    return TCL_OK;
--  }
--  */
--#endif
--
--
--
--
--  // Philippose - 30/01/2009
--  // TCL interface function for the Local Face Mesh size
--  // definition functionality
--  int Ng_SurfaceMeshSize (ClientData clientData,
--                                  Tcl_Interp * interp,
--                                  int argc, tcl_const char *argv[])
--  {
--#ifdef OCCGEOMETRY
--
--    static char buf[100];
--
--    if (argc < 2)
--    {
--         Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize needs arguments", TCL_STATIC);
--         return TCL_ERROR;
--    }
--
--    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
--    if (!occgeometry)
--    {
--      Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
--         return TCL_ERROR;
--    }
--
--    // Update the face mesh sizes to reflect the global maximum mesh size
--    for(int i = 1; i <= occgeometry->NrFaces(); i++)
--    {
--           if(!occgeometry->GetFaceMaxhModified(i))
--           {
--              occgeometry->SetFaceMaxH(i, mparam.maxh);
--           }   
--    }
--
--    if (strcmp (argv[1], "setsurfms") == 0)
--    {
--         int facenr = atoi (argv[2]);
--         double surfms = atof (argv[3]);
--         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
--           occgeometry->SetFaceMaxH(facenr, surfms);
--
--    }
--
--    if (strcmp (argv[1], "setall") == 0)
--    {
--         double surfms = atof (argv[2]);
--         if (occgeometry)
--         {
--           int nrFaces = occgeometry->NrFaces();
--           for (int i = 1; i <= nrFaces; i++)
--            occgeometry->SetFaceMaxH(i, surfms);
--         }
--    }
--
--    if (strcmp (argv[1], "getsurfms") == 0)
--    {
--         int facenr = atoi (argv[2]);
--         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
--         {
--           sprintf (buf, "%5.2f", occgeometry->GetFaceMaxH(facenr));
--         }
--         else
--         {
--           sprintf (buf, "%5.2f", mparam.maxh);
--         }
--         Tcl_SetResult (interp, buf, TCL_STATIC);
--    }
--
--    if (strcmp (argv[1], "getactive") == 0)
--    {
--         sprintf (buf, "%d", occgeometry->SelectedFace());
--         Tcl_SetResult (interp, buf, TCL_STATIC);
--    }
--
--    if (strcmp (argv[1], "setactive") == 0)
--    {
--         int facenr = atoi (argv[2]);
--         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
--         {
--           occgeometry->SetSelectedFace (facenr);
--
--        occgeometry->LowLightAll();
--        occgeometry->fvispar[facenr-1].Highlight();
--        occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
--         }
--    }
--
--    if (strcmp (argv[1], "getnfd") == 0)
--    {
--         if (occgeometry)
--           sprintf (buf, "%d", occgeometry->NrFaces());
--         else
--           sprintf (buf, "0");
--         Tcl_SetResult (interp, buf, TCL_STATIC);
--    }
--    return TCL_OK;
--#else // No OCCGEOMETRY 
--
--    Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
--    return TCL_ERROR;
--    
--#endif // OCCGEOMETRY
--  }
--
--
--
--  // Philippose - 25/07/2010
--  // TCL interface function for extracting and eventually 
--  // setting or editing the current colours present in the mesh
--  int Ng_CurrentFaceColours (ClientData clientData,
--                             Tcl_Interp * interp,
--                             int argc, tcl_const char *argv[])
--  {
--     if(argc < 1)
--     {
--        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours needs arguments", TCL_STATIC);
--        return TCL_ERROR;
--     }
--
--     if(!mesh.Ptr())
--     {
--        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
--           return TCL_ERROR;
--     }
--
--     if(strcmp(argv[1], "getcolours") == 0)
--     {
--        stringstream outVar;
--        Array<Vec3d> face_colours;
--        GetFaceColours(*mesh, face_colours);
--
--        for(int i = 0; i < face_colours.Size();i++)
--        {
--           outVar << "{ " << face_colours[i].X(1)
--                  << " "  << face_colours[i].X(2)
--                  << " "  << face_colours[i].X(3)
--                  << " } ";
--        }
--
--        tcl_const char * valuevar = argv[2];
--        Tcl_SetVar  (interp, valuevar, (char*)outVar.str().c_str(), 0);
--     }
--
--     if(strcmp(argv[1], "showalso") == 0)
--     {
--        Array<Vec3d> face_colours;
--        GetFaceColours(*mesh,face_colours);
--
--        int colourind = atoi (argv[2]);
--
--        for(int i = 1; i <= mesh->GetNFD(); i++)
--        {
--           Array<SurfaceElementIndex> surfElems;
--           mesh->GetSurfaceElementsOfFace(i,surfElems);
--
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
--           {
--              for(int j = 0; j < surfElems.Size(); j++)
--              {
--                 mesh->SurfaceElement(surfElems[j]).Visible(1);
--              }
--           }
--        }
--
--        mesh->SetNextTimeStamp();
--     }
--
--     if(strcmp(argv[1], "hidealso") == 0)
--     {
--        Array<Vec3d> face_colours;
--        GetFaceColours(*mesh,face_colours);
--
--        int colourind = atoi (argv[2]);
--
--        for(int i = 1; i <= mesh->GetNFD(); i++)
--        {
--           Array<SurfaceElementIndex> surfElems;
--           mesh->GetSurfaceElementsOfFace(i,surfElems);
--
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
--           {
--              for(int j = 0; j < surfElems.Size(); j++)
--              {
--                 mesh->SurfaceElement(surfElems[j]).Visible(0);
--              }
--           }
--        }
--
--        mesh->SetNextTimeStamp();
--     }
--
--     if(strcmp(argv[1], "showonly") == 0)
--     {
--        Array<Vec3d> face_colours;
--        GetFaceColours(*mesh,face_colours);
--
--        int colourind = atoi (argv[2]);
--
--        for(int i = 1; i <= mesh->GetNFD(); i++)
--        {
--           Array<SurfaceElementIndex> surfElems;
--           mesh->GetSurfaceElementsOfFace(i,surfElems);
--
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
--           {
--              for(int j = 0; j < surfElems.Size(); j++)
--              {
--                 mesh->SurfaceElement(surfElems[j]).Visible(1);
--              }
--           }
--           else
--           {
--              for(int j = 0; j < surfElems.Size(); j++)
--              {
--                 mesh->SurfaceElement(surfElems[j]).Visible(0);
--              }
--           }
--        }
--
--        mesh->SetNextTimeStamp();
--     }
--
--     if(strcmp(argv[1], "hideonly") == 0)
--     {
--        Array<Vec3d> face_colours;
--        GetFaceColours(*mesh,face_colours);
--
--        int colourind = atoi (argv[2]);
--
--        for(int i = 1; i <= mesh->GetNFD(); i++)
--        {
--           Array<SurfaceElementIndex> surfElems;
--           mesh->GetSurfaceElementsOfFace(i,surfElems);
--
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
--           {
--              for(int j = 0; j < surfElems.Size(); j++)
--              {
--                 mesh->SurfaceElement(surfElems[j]).Visible(0);
--              }
--           }
--           else
--           {
--              for(int j = 0; j < surfElems.Size(); j++)
--              {
--                 mesh->SurfaceElement(surfElems[j]).Visible(1);
--              }
--           }
--        }
--
--        mesh->SetNextTimeStamp();
--     }
--
--     if(strcmp(argv[1], "showall") == 0)
--     {
--        for(int i = 1; i <= mesh->GetNSE(); i++)
--        {
--           mesh->SurfaceElement(i).Visible(1);
--        }
--
--        mesh->SetNextTimeStamp();
--     }
--
--     if(strcmp(argv[1], "hideall") == 0)
--     {
--        for(int i = 1; i <= mesh->GetNSE(); i++)
--        {
--           mesh->SurfaceElement(i).Visible(0);
--        }
--
--        mesh->SetNextTimeStamp();
--     }
--
--     return TCL_OK;
--  }
--
--
--
--
--  // Philippose - 10/03/2009
--  // TCL interface function for the Automatic Colour-based
--  // definition of boundary conditions for OCC Geometry
--  int Ng_AutoColourBcProps (ClientData clientData,
--                                    Tcl_Interp * interp,
--                                    int argc, tcl_const char *argv[])
--  {
--     if(argc < 1)
--     {
--        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps needs arguments", TCL_STATIC);
--        return TCL_ERROR;
--     }
--
--     if(!mesh.Ptr())
--     {
--        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
--           return TCL_ERROR;
--     }
--
--     if(strcmp(argv[1], "auto") == 0)
--     {
--        AutoColourBcProps(*mesh, 0);
--     }
--
--     if(strcmp(argv[1], "profile") == 0)
--     {
--        AutoColourBcProps(*mesh, argv[2]);
--     }
--
--     return TCL_OK;
--  }
--
--
--  int Ng_SetOCCParameters  (ClientData clientData,
--                          Tcl_Interp * interp,
--                          int argc, tcl_const char *argv[])
--  {
--    OCCGeometryRegister reg;
--    reg.SetParameters (interp);
--    /*
--    occparam.resthcloseedgefac =
--      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
--
--    occparam.resthcloseedgeenable =
--      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
--    */
--    return TCL_OK;
--  }
--
--
--
--
--  NetgenGeometry *  OCCGeometryRegister :: Load (string filename) const
--  {
--    const char * lgfilename = filename.c_str();
--
--
--    /*
--    if (strcmp (&cfilename[strlen(cfilename)-3], "geo") == 0)
--      {
--      PrintMessage (1, "Load OCCG geometry file ", cfilename);
--      
--      extern OCCGeometry * ParseOCCG (istream & istr);
--
--      ifstream infile(cfilename);
--
--      OCCGeometry * hgeom = ParseOCCG (infile);
--      if (!hgeom)
--        throw NgException ("geo-file should start with 'algebraic3d'");
--
--      hgeom -> FindIdenticSurfaces(1e-8 * hgeom->MaxSize()); 
--      return hgeom;
--      }
--    */
--
--
--    if ((strcmp (&lgfilename[strlen(lgfilename)-4], "iges") == 0) ||
--      (strcmp (&lgfilename[strlen(lgfilename)-3], "igs") == 0) ||
--      (strcmp (&lgfilename[strlen(lgfilename)-3], "IGS") == 0) ||
--      (strcmp (&lgfilename[strlen(lgfilename)-4], "IGES") == 0))
--      {
--      PrintMessage (1, "Load IGES geometry file ", lgfilename);
--      OCCGeometry * occgeometry = LoadOCC_IGES (lgfilename);
--      return occgeometry;
--      }
--
--    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "step") == 0) ||
--                   (strcmp (&lgfilename[strlen(lgfilename)-3], "stp") == 0) ||
--                   (strcmp (&lgfilename[strlen(lgfilename)-3], "STP") == 0) ||
--                   (strcmp (&lgfilename[strlen(lgfilename)-4], "STEP") == 0))
--      {
--      PrintMessage (1, "Load STEP geometry file ", lgfilename);
--      OCCGeometry * occgeometry = LoadOCC_STEP (lgfilename);
--      return occgeometry;    
--      }
--    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "brep") == 0) ||
--           (strcmp (&lgfilename[strlen(lgfilename)-4], "Brep") == 0) ||
--           (strcmp (&lgfilename[strlen(lgfilename)-4], "BREP") == 0))
--      {
--      PrintMessage (1, "Load BREP geometry file ", lgfilename);
--      OCCGeometry * occgeometry = LoadOCC_BREP (lgfilename);
--      return occgeometry;
--      }
--    
--    return NULL;
--  }
--
--
--  static VisualSceneOCCGeometry vsoccgeom;
--
--  VisualScene * OCCGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
--  {
--    OCCGeometry * geometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
--    if (geometry)
--      {
--      vsoccgeom.SetGeometry (geometry);
--      return &vsoccgeom;
--      }
--    return NULL;
--  }
--
--
--
--}
--
--
--
--using namespace netgen;
--
--int Ng_occ_Init (Tcl_Interp * interp)
--{
--  geometryregister.Append (new OCCGeometryRegister);
--
--
--    Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",
--                     Ng_SetOCCVisParameters,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--
--    Tcl_CreateCommand (interp, "Ng_GetOCCData",
--                     Ng_GetOCCData,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--
--    /*
--#ifdef OCCGEOMETRY
--    Tcl_CreateCommand (interp, "Ng_OCCConstruction",
--                     Ng_OCCConstruction,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--#endif
--    */
--
--    Tcl_CreateCommand (interp, "Ng_OCCCommand",
--                     Ng_OCCCommand,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--
--
--    Tcl_CreateCommand (interp, "Ng_SetOCCParameters", Ng_SetOCCParameters,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--
--
--
--    // Philippose - 30/01/2009
--    // Register the TCL Interface Command for local face mesh size
--    // definition
--    Tcl_CreateCommand (interp, "Ng_SurfaceMeshSize", Ng_SurfaceMeshSize,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--
--    Tcl_CreateCommand (interp, "Ng_AutoColourBcProps", Ng_AutoColourBcProps,
--                     (ClientData)NULL,
--                     (Tcl_CmdDeleteProc*) NULL);
--
--    // Philippose - 25/07/2010
--    // Register the TCL Interface Command for handling the face colours 
--    // present in the mesh
--    Tcl_CreateCommand(interp, "Ng_CurrentFaceColours", Ng_CurrentFaceColours,
--                      (ClientData)NULL,
--                      (Tcl_CmdDeleteProc*) NULL);
--
--
--  return TCL_OK;
--}
--
--#endif
--
-+#ifdef OCCGEOMETRY
-+
-+#include <mystdlib.h>
-+#include <myadt.hpp>
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <occgeom.hpp>
-+
-+
-+#include <incvis.hpp>
-+#include <visual.hpp>
-+
-+#include "../meshing/bcfunctions.hpp"
-+
-+#include "vsocc.hpp"
-+
-+
-+extern "C" int Ng_occ_Init (Tcl_Interp * interp);
-+
-+
-+
-+namespace netgen
-+{
-+  extern AutoPtr<NetgenGeometry> ng_geometry;
-+  extern AutoPtr<Mesh> mesh;
-+
-+  char * err_needsoccgeometry = (char*) "This operation needs an OCC geometry";
-+  extern char * err_needsmesh;
-+  extern char * err_jobrunning;
-+
-+
-+
-+
-+  class OCCGeometryRegister : public GeometryRegister
-+  {
-+  public:
-+    virtual NetgenGeometry * Load (string filename) const;
-+    virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;
-+
-+    virtual void SetParameters (Tcl_Interp * interp)
-+    {
-+      occparam.resthcloseedgefac =
-+      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
-+      occparam.resthcloseedgeenable =
-+      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
-+        occparam.resthminedgelen =
-+      atof (Tcl_GetVar (interp, "::stloptions.resthminedgelen", 0));
-+        occparam.resthminedgelenenable =
-+      atoi (Tcl_GetVar (interp, "::stloptions.resthminedgelenenable", 0));
-+    }
-+  };
-+
-+
-+
-+
-+  int Ng_SetOCCVisParameters  (ClientData clientData,
-+                             Tcl_Interp * interp,
-+                             int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+    int showvolume;
-+      OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+
-+    showvolume = atoi (Tcl_GetVar (interp, "::occoptions.showvolumenr", 0));
-+
-+    if (occgeometry)
-+      if (showvolume != vispar.occshowvolumenr)
-+      {
-+        if (showvolume < 0 || showvolume > occgeometry->NrSolids())
-+          {
-+            char buf[20];
-+            sprintf (buf, "%5i", vispar.occshowvolumenr);
-+            Tcl_SetVar (interp, "::occoptions.showvolumenr", buf, 0);
-+          }
-+        else
-+          {
-+            vispar.occshowvolumenr = showvolume;
-+            if (occgeometry)
-+              occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+          }
-+      }
-+
-+    int temp;
-+
-+    temp = atoi (Tcl_GetVar (interp, "::occoptions.visproblemfaces", 0));
-+
-+    if ((bool) temp != vispar.occvisproblemfaces)
-+      {
-+      vispar.occvisproblemfaces = temp;
-+      if (occgeometry)
-+        occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+      }
-+
-+    vispar.occshowsurfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
-+    vispar.occshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
-+    vispar.occzoomtohighlightedentity = atoi (Tcl_GetVar (interp, "::occoptions.zoomtohighlightedentity", 0));
-+    vispar.occdeflection = pow(10.0,-1-atof (Tcl_GetVar (interp, "::occoptions.deflection", 0)));
-+
-+#endif
-+
-+
-+
-+
-+
-+#ifdef ACIS
-+    vispar.ACISshowfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
-+    vispar.ACISshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
-+    vispar.ACISshowsolidnr = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr", 0));
-+    vispar.ACISshowsolidnr2 = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr2", 0));
-+
-+#endif
-+
-+
-+
-+    return TCL_OK;
-+  }
-+
-+
-+
-+
-+  int Ng_GetOCCData (ClientData clientData,
-+                   Tcl_Interp * interp,
-+                   int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+
-+    static char buf[1000];
-+    buf[0] = 0;
-+    stringstream str;
-+
-+    if (argc >= 2)
-+      {
-+      if (strcmp (argv[1], "getentities") == 0)
-+        {
-+          if (occgeometry)
-+            {
-+              occgeometry->GetTopologyTree(str);
-+            }
-+        }
-+      }
-+
-+    Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+
-+#endif
-+    return TCL_OK;
-+  }
-+
-+
-+
-+  int Ng_OCCCommand (ClientData clientData,
-+                   Tcl_Interp * interp,
-+                   int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+
-+    stringstream str;
-+    if (argc >= 2)
-+      {
-+      if (strcmp (argv[1], "isoccgeometryloaded") == 0)
-+        {
-+          if (occgeometry)
-+            str << "1 " << flush;
-+          else str << "0 " << flush;
-+
-+          Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+        }
-+      if (occgeometry)
-+        {
-+          if (strcmp (argv[1], "buildvisualizationmesh") == 0)
-+            {
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "mesherror") == 0)
-+            {
-+              if (occgeometry->ErrorInSurfaceMeshing())
-+                str << 1;
-+              else
-+                str << 0;
-+            }
-+          if (strcmp (argv[1], "sewfaces") == 0)
-+            {
-+              cout << "Before operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->SewFaces();
-+              occgeometry->BuildFMap();
-+              cout << endl << "After operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "makesolid") == 0)
-+            {
-+              cout << "Before operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->MakeSolid();
-+              occgeometry->BuildFMap();
-+              cout << endl << "After operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "upgradetopology") == 0)
-+            {
-+              cout << "Before operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->SewFaces();
-+              occgeometry->MakeSolid();
-+              occgeometry->BuildFMap();
-+              cout << endl << "After operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "shapehealing") == 0)
-+            {
-+              occgeometry->tolerance =
-+                atof (Tcl_GetVar (interp, "::occoptions.tolerance", 0));
-+              occgeometry->fixsmalledges =
-+                atoi (Tcl_GetVar (interp, "::occoptions.fixsmalledges", 0));
-+              occgeometry->fixspotstripfaces =
-+                atoi (Tcl_GetVar (interp, "::occoptions.fixspotstripfaces", 0));
-+              occgeometry->sewfaces =
-+                atoi (Tcl_GetVar (interp, "::occoptions.sewfaces", 0));
-+              occgeometry->makesolids =
-+                atoi (Tcl_GetVar (interp, "::occoptions.makesolids", 0));
-+              occgeometry->splitpartitions =
-+                atoi (Tcl_GetVar (interp, "::occoptions.splitpartitions", 0));
-+
-+              //            cout << "Before operation:" << endl;
-+              //            occgeometry->PrintNrShapes();
-+              occgeometry->HealGeometry();
-+              occgeometry->BuildFMap();
-+              //            cout << endl << "After operation:" << endl;
-+              //            occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+
-+
-+          if (strcmp (argv[1], "highlightentity") == 0)
-+            {
-+              if (strcmp (argv[2], "Face") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  occgeometry->fvispar[nr-1].Highlight();
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              if (strcmp (argv[2], "Shell") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Highlight();
-+                    }
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              if (strcmp (argv[2], "Solid") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Highlight();
-+                    }
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              /*
-+                if (strcmp (argv[2], "CompSolid") == 0)
-+                {
-+                int nr = atoi (argv[3]);
-+                occgeometry->LowLightAll();
-+
-+                TopExp_Explorer exp;
-+                for (exp.Init (occgeometry->cmap(nr), TopAbs_FACE);
-+                exp.More(); exp.Next())
-+                {
-+                int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                occgeometry->fvispar[i-1].Highlight();
-+                }
-+                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              */
-+
-+              if (strcmp (argv[2], "Edge") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  occgeometry->evispar[nr-1].Highlight();
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              if (strcmp (argv[2], "Wire") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
-+                      occgeometry->evispar[i-1].Highlight();
-+                    }
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+
-+              if (strcmp (argv[2], "Vertex") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  occgeometry->vvispar[nr-1].Highlight();
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+
-+            }
-+
-+
-+
-+          if (strcmp (argv[1], "show") == 0)
-+            {
-+              int nr = atoi (argv[3]);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+
-+              if (strcmp (argv[2], "Face") == 0)
-+                {
-+                  occgeometry->fvispar[nr-1].Show();
-+                }
-+              if (strcmp (argv[2], "Shell") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Show();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Solid") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Show();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Edge") == 0)
-+                {
-+                  occgeometry->evispar[nr-1].Show();
-+                }
-+              if (strcmp (argv[2], "Wire") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
-+                      occgeometry->evispar[i-1].Show();
-+                    }
-+                }
-+            }
-+
-+
-+          if (strcmp (argv[1], "hide") == 0)
-+            {
-+              int nr = atoi (argv[3]);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+
-+              if (strcmp (argv[2], "Face") == 0)
-+                {
-+                  occgeometry->fvispar[nr-1].Hide();
-+                }
-+              if (strcmp (argv[2], "Shell") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Hide();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Solid") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Hide();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Edge") == 0)
-+                {
-+                  occgeometry->evispar[nr-1].Hide();
-+                }
-+              if (strcmp (argv[2], "Wire") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
-+                      occgeometry->evispar[i-1].Hide();
-+                    }
-+                }
-+            }
-+
-+
-+
-+          if (strcmp (argv[1], "findsmallentities") == 0)
-+            {
-+              stringstream str("");
-+              occgeometry->CheckIrregularEntities(str);
-+              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+            }
-+          if (strcmp (argv[1], "getunmeshedfaceinfo") == 0)
-+            {
-+              occgeometry->GetUnmeshedFaceInfo(str);
-+              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+            }
-+          if (strcmp (argv[1], "getnotdrawablefaces") == 0)
-+            {
-+              occgeometry->GetNotDrawableFaces(str);
-+              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+            }
-+          if (strcmp (argv[1], "redrawstatus") == 0)
-+            {
-+              int i = atoi (argv[2]);
-+              occgeometry->changed = i;
-+            }
-+          if (strcmp (argv[1], "swaporientation") == 0)
-+            {
-+              IGESControl_Writer writer("millimeters", 1);
-+              writer.AddShape (occgeometry->shape);
-+              writer.Write ("1.igs");
-+              /*
-+                int nr = atoi (argv[3]);
-+
-+                //          const_cast<TopoDS_Shape&> (occgeometry->fmap(nr)).Reverse();
-+
-+                Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
-+                rebuild->Apply(occgeometry->shape);
-+
-+                TopoDS_Shape sh;
-+
-+                //          if (strcmp (argv[2], "CompSolid") == 0) sh = occgeometry->cmap(nr);
-+                if (strcmp (argv[2], "Solid") == 0) sh = occgeometry->somap(nr);
-+                if (strcmp (argv[2], "Shell") == 0) sh = occgeometry->shmap(nr);
-+                if (strcmp (argv[2], "Face") == 0) sh = occgeometry->fmap(nr);
-+                if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);
-+                if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);
-+
-+                rebuild->Replace(sh, sh.Reversed());
-+
-+                TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);
-+                occgeometry->shape = newshape;
-+
-+                occgeometry->BuildFMap();
-+                occgeometry->BuildVisualizationMesh();
-+                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+              */
-+            }
-+          if (strcmp (argv[1], "marksingular") == 0)
-+            {
-+              int nr = atoi (argv[3]);
-+              cout << "marking " << argv[2] << " " << nr << endl;
-+              char buf[2]; buf[0] = '0'; buf[1] = 0;
-+              bool sing = false;
-+              if (strcmp (argv[2], "Face") == 0)
-+                sing = occgeometry->fsingular[nr-1] = !occgeometry->fsingular[nr-1];
-+              if (strcmp (argv[2], "Edge") == 0)
-+                sing = occgeometry->esingular[nr-1] = !occgeometry->esingular[nr-1];
-+              if (strcmp (argv[2], "Vertex") == 0)
-+                sing = occgeometry->vsingular[nr-1] = !occgeometry->vsingular[nr-1];
-+
-+              if (sing) buf[0] = '1';
-+
-+                Tcl_SetVar (interp, "::ismarkedsingular", buf, 0);
-+
-+              stringstream str;
-+              occgeometry->GetTopologyTree (str);
-+
-+              char* cstr = (char*)str.str().c_str();
-+
-+              (*testout) << cstr << endl;
-+
-+              char helpstr[1000];
-+
-+              while (strchr (cstr, '}'))
-+                {
-+                  strncpy (helpstr, cstr+2, strlen(strchr(cstr+2, '}')));
-+                  (*testout) << "***" << cstr << "***" << endl;
-+                  cstr = strchr (cstr, '}');
-+                }
-+            }
-+        }
-+      }
-+
-+#endif
-+    return TCL_OK;
-+  }
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+  /*
-+  void OCCConstructGeometry (OCCGeometry & geom);
-+
-+  int Ng_OCCConstruction (ClientData clientData,
-+                        Tcl_Interp * interp,
-+                        int argc, tcl_const char *argv[])
-+  {
-+    if (occgeometry)
-+      OCCConstructGeometry (*occgeometry);
-+    return TCL_OK;
-+  }
-+  */
-+#endif
-+
-+
-+
-+
-+  // Philippose - 30/01/2009
-+  // TCL interface function for the Local Face Mesh size
-+  // definition functionality
-+  int Ng_SurfaceMeshSize (ClientData clientData,
-+                                  Tcl_Interp * interp,
-+                                  int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+
-+    static char buf[100];
-+
-+    if (argc < 2)
-+    {
-+         Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize needs arguments", TCL_STATIC);
-+         return TCL_ERROR;
-+    }
-+
-+    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+    if (!occgeometry)
-+    {
-+      Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
-+         return TCL_ERROR;
-+    }
-+
-+    // Update the face mesh sizes to reflect the global maximum mesh size
-+    for(int i = 1; i <= occgeometry->NrFaces(); i++)
-+    {
-+           if(!occgeometry->GetFaceMaxhModified(i))
-+           {
-+              occgeometry->SetFaceMaxH(i, mparam.maxh);
-+           }
-+    }
-+
-+    if (strcmp (argv[1], "setsurfms") == 0)
-+    {
-+         int facenr = atoi (argv[2]);
-+         double surfms = atof (argv[3]);
-+         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
-+           occgeometry->SetFaceMaxH(facenr, surfms);
-+
-+    }
-+
-+    if (strcmp (argv[1], "setall") == 0)
-+    {
-+         double surfms = atof (argv[2]);
-+         if (occgeometry)
-+         {
-+           int nrFaces = occgeometry->NrFaces();
-+           for (int i = 1; i <= nrFaces; i++)
-+            occgeometry->SetFaceMaxH(i, surfms);
-+         }
-+    }
-+
-+    if (strcmp (argv[1], "getsurfms") == 0)
-+    {
-+         int facenr = atoi (argv[2]);
-+         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
-+         {
-+           sprintf (buf, "%5.2f", occgeometry->GetFaceMaxH(facenr));
-+         }
-+         else
-+         {
-+           sprintf (buf, "%5.2f", mparam.maxh);
-+         }
-+         Tcl_SetResult (interp, buf, TCL_STATIC);
-+    }
-+
-+    if (strcmp (argv[1], "getactive") == 0)
-+    {
-+         sprintf (buf, "%d", occgeometry->SelectedFace());
-+         Tcl_SetResult (interp, buf, TCL_STATIC);
-+    }
-+
-+    if (strcmp (argv[1], "setactive") == 0)
-+    {
-+         int facenr = atoi (argv[2]);
-+         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
-+         {
-+           occgeometry->SetSelectedFace (facenr);
-+
-+        occgeometry->LowLightAll();
-+        occgeometry->fvispar[facenr-1].Highlight();
-+        occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+         }
-+    }
-+
-+    if (strcmp (argv[1], "getnfd") == 0)
-+    {
-+         if (occgeometry)
-+           sprintf (buf, "%d", occgeometry->NrFaces());
-+         else
-+           sprintf (buf, "0");
-+         Tcl_SetResult (interp, buf, TCL_STATIC);
-+    }
-+    return TCL_OK;
-+#else // No OCCGEOMETRY
-+
-+    Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
-+    return TCL_ERROR;
-+
-+#endif // OCCGEOMETRY
-+  }
-+
-+
-+
-+  // Philippose - 25/07/2010
-+  // TCL interface function for extracting and eventually
-+  // setting or editing the current colours present in the mesh
-+  int Ng_CurrentFaceColours (ClientData clientData,
-+                             Tcl_Interp * interp,
-+                             int argc, tcl_const char *argv[])
-+  {
-+     if(argc < 1)
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours needs arguments", TCL_STATIC);
-+        return TCL_ERROR;
-+     }
-+
-+     if(!mesh.Ptr())
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
-+           return TCL_ERROR;
-+     }
-+
-+     if(strcmp(argv[1], "getcolours") == 0)
-+     {
-+        stringstream outVar;
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh, face_colours);
-+
-+        for(int i = 0; i < face_colours.Size();i++)
-+        {
-+           outVar << "{ " << face_colours[i].X(1)
-+                  << " "  << face_colours[i].X(2)
-+                  << " "  << face_colours[i].X(3)
-+                  << " } ";
-+        }
-+
-+        tcl_const char * valuevar = argv[2];
-+        Tcl_SetVar  (interp, valuevar, (char*)outVar.str().c_str(), 0);
-+     }
-+
-+     if(strcmp(argv[1], "showalso") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(1);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "hidealso") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(0);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "showonly") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(1);
-+              }
-+           }
-+           else
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(0);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "hideonly") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(0);
-+              }
-+           }
-+           else
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(1);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "showall") == 0)
-+     {
-+        for(int i = 1; i <= mesh->GetNSE(); i++)
-+        {
-+           mesh->SurfaceElement(i).Visible(1);
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "hideall") == 0)
-+     {
-+        for(int i = 1; i <= mesh->GetNSE(); i++)
-+        {
-+           mesh->SurfaceElement(i).Visible(0);
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     return TCL_OK;
-+  }
-+
-+
-+
-+
-+  // Philippose - 10/03/2009
-+  // TCL interface function for the Automatic Colour-based
-+  // definition of boundary conditions for OCC Geometry
-+  int Ng_AutoColourBcProps (ClientData clientData,
-+                                    Tcl_Interp * interp,
-+                                    int argc, tcl_const char *argv[])
-+  {
-+     if(argc < 1)
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps needs arguments", TCL_STATIC);
-+        return TCL_ERROR;
-+     }
-+
-+     if(!mesh.Ptr())
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
-+           return TCL_ERROR;
-+     }
-+
-+     if(strcmp(argv[1], "auto") == 0)
-+     {
-+        AutoColourBcProps(*mesh, 0);
-+     }
-+
-+     if(strcmp(argv[1], "profile") == 0)
-+     {
-+        AutoColourBcProps(*mesh, argv[2]);
-+     }
-+
-+     return TCL_OK;
-+  }
-+
-+
-+  int Ng_SetOCCParameters  (ClientData clientData,
-+                          Tcl_Interp * interp,
-+                          int argc, tcl_const char *argv[])
-+  {
-+    OCCGeometryRegister reg;
-+    reg.SetParameters (interp);
-+    /*
-+    occparam.resthcloseedgefac =
-+      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
-+
-+    occparam.resthcloseedgeenable =
-+      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
-+    */
-+    return TCL_OK;
-+  }
-+
-+
-+
-+
-+  NetgenGeometry *  OCCGeometryRegister :: Load (string filename) const
-+  {
-+    const char * lgfilename = filename.c_str();
-+
-+
-+    /*
-+    if (strcmp (&cfilename[strlen(cfilename)-3], "geo") == 0)
-+      {
-+      PrintMessage (1, "Load OCCG geometry file ", cfilename);
-+
-+      extern OCCGeometry * ParseOCCG (istream & istr);
-+
-+      ifstream infile(cfilename);
-+
-+      OCCGeometry * hgeom = ParseOCCG (infile);
-+      if (!hgeom)
-+        throw NgException ("geo-file should start with 'algebraic3d'");
-+
-+      hgeom -> FindIdenticSurfaces(1e-8 * hgeom->MaxSize());
-+      return hgeom;
-+      }
-+    */
-+
-+
-+    if ((strcmp (&lgfilename[strlen(lgfilename)-4], "iges") == 0) ||
-+      (strcmp (&lgfilename[strlen(lgfilename)-3], "igs") == 0) ||
-+      (strcmp (&lgfilename[strlen(lgfilename)-3], "IGS") == 0) ||
-+      (strcmp (&lgfilename[strlen(lgfilename)-4], "IGES") == 0))
-+      {
-+      PrintMessage (1, "Load IGES geometry file ", lgfilename);
-+      OCCGeometry * occgeometry = LoadOCC_IGES (lgfilename);
-+      return occgeometry;
-+      }
-+
-+    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "step") == 0) ||
-+                   (strcmp (&lgfilename[strlen(lgfilename)-3], "stp") == 0) ||
-+                   (strcmp (&lgfilename[strlen(lgfilename)-3], "STP") == 0) ||
-+                   (strcmp (&lgfilename[strlen(lgfilename)-4], "STEP") == 0))
-+      {
-+      PrintMessage (1, "Load STEP geometry file ", lgfilename);
-+      OCCGeometry * occgeometry = LoadOCC_STEP (lgfilename);
-+      return occgeometry;
-+      }
-+    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "brep") == 0) ||
-+           (strcmp (&lgfilename[strlen(lgfilename)-4], "Brep") == 0) ||
-+           (strcmp (&lgfilename[strlen(lgfilename)-4], "BREP") == 0))
-+      {
-+      PrintMessage (1, "Load BREP geometry file ", lgfilename);
-+      OCCGeometry * occgeometry = LoadOCC_BREP (lgfilename);
-+      return occgeometry;
-+      }
-+
-+    return NULL;
-+  }
-+
-+
-+  static VisualSceneOCCGeometry vsoccgeom;
-+
-+  VisualScene * OCCGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
-+  {
-+    OCCGeometry * geometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+    if (geometry)
-+      {
-+      vsoccgeom.SetGeometry (geometry);
-+      return &vsoccgeom;
-+      }
-+    return NULL;
-+  }
-+
-+
-+
-+}
-+
-+
-+
-+using namespace netgen;
-+
-+int Ng_occ_Init (Tcl_Interp * interp)
-+{
-+  geometryregister.Append (new OCCGeometryRegister);
-+
-+
-+    Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",
-+                     Ng_SetOCCVisParameters,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    Tcl_CreateCommand (interp, "Ng_GetOCCData",
-+                     Ng_GetOCCData,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    /*
-+#ifdef OCCGEOMETRY
-+    Tcl_CreateCommand (interp, "Ng_OCCConstruction",
-+                     Ng_OCCConstruction,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+#endif
-+    */
-+
-+    Tcl_CreateCommand (interp, "Ng_OCCCommand",
-+                     Ng_OCCCommand,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+
-+    Tcl_CreateCommand (interp, "Ng_SetOCCParameters", Ng_SetOCCParameters,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+
-+
-+    // Philippose - 30/01/2009
-+    // Register the TCL Interface Command for local face mesh size
-+    // definition
-+    Tcl_CreateCommand (interp, "Ng_SurfaceMeshSize", Ng_SurfaceMeshSize,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    Tcl_CreateCommand (interp, "Ng_AutoColourBcProps", Ng_AutoColourBcProps,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    // Philippose - 25/07/2010
-+    // Register the TCL Interface Command for handling the face colours
-+    // present in the mesh
-+    Tcl_CreateCommand(interp, "Ng_CurrentFaceColours", Ng_CurrentFaceColours,
-+                      (ClientData)NULL,
-+                      (Tcl_CmdDeleteProc*) NULL);
-+
-+
-+  return TCL_OK;
-+}
-+
-+#endif
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h
---- netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h      2018-03-01 15:41:03.998157502 +0300
-@@ -33,6 +33,7 @@
- #include <string>
- #include <iostream>
-+#include <iomanip>
- #include <cstdlib>
- // #include "SALOME_Log.hxx"
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am   2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am  2018-03-01 15:41:03.998157502 +0300
-@@ -4,10 +4,10 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libstl.la 
-+noinst_LTLIBRARIES = libstl.la 
- if NGGUI
--lib_LTLIBRARIES += libstlvis.la 
-+lib_LTLIBRARIES = libstlvis.la 
- endif
- libstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
-@@ -16,6 +16,5 @@
- libstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
- libstlvis_la_LIBADD = libstl.la
--libstl_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
- # libstlvis_la_LIBADD = libstl.la $(top_builddir)/libsrc/linalg/libla.la 
-diff -Naur netgen-5.3.1_SRC_orig/ng/menustat.tcl netgen-5.3.1_SRC_modif/ng/menustat.tcl
---- netgen-5.3.1_SRC_orig/ng/menustat.tcl      2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/menustat.tcl     2018-03-01 15:45:35.128037102 +0300
-@@ -1,1123 +1,1123 @@
--# netgen menus:
--
--menu .ngmenu -tearoff 0  -relief raised -bd 2
--. configure -menu .ngmenu
--
--.ngmenu add cascade -label "File" -menu .ngmenu.file -underline 0
--.ngmenu add cascade -label "Geometry" -menu .ngmenu.geometry -underline 0
--.ngmenu add cascade -label "Mesh" -menu .ngmenu.mesh -underline 0
--.ngmenu add cascade -label "View" -menu .ngmenu.view -underline 0
--.ngmenu add cascade -label "Refinement" -menu .ngmenu.meshsize -underline 5
--
--if { $userlevel == 3} {
--    .ngmenu add cascade -label "Special" -menu .ngmenu.special -underline 3
--}
--
--.ngmenu add cascade -label "Help" -menu .ngmenu.help -underline 0
--
--
--#####################################################
--#                                                   #
--#     Menu File                                     #
--#                                                   #
--#####################################################
--
--menu .ngmenu.file
--
--.ngmenu.file add command -label "Load Geometry..." -accelerator "<l><g>" \
--    -command { 
--      set types {
--          {"All Geometry types"   { .stl .stlb .step .stp .geo .in2d .igs .iges .brep .sat} }
--          {"IGES Geometry"    {.igs .iges} }
--          {"BREP OpenCascade Geometry"    {.brep} }
--          {"STL Geometry"        {.stl} }
--          {"Binary STL Geometry"    {.stlb} }
--          {"STEP Geometry"    {.step .stp} }
--          {"Geometry file"       {.geo} }
--          {"2D Geometry"   {.in2d } } 
--      } 
--
--      set ACISavailable [Ng_ACISCommand isACISavailable]
--      if {$ACISavailable == "yes" } {
--          lappend types {"ACIS Geometry" {.sat} }
--      }
--
--      if {[catch {
--          set file [tk_getOpenFile -filetypes $types -initialdir $dirname -typevariable loadgeomtypevar]
--      }]} {
--          set file [tk_getOpenFile -filetypes $types -initialdir $dirname]
--      }
--
--      if {$file != ""} {
--          AddRecentFile $file
--          Ng_LoadGeometry $file 
--          Ng_ParseGeometry
--#         if { [Ng_STLInfo status]=="ERROR" } {
--#             tk_messageBox -message  "STL ERROR: \n [Ng_STLInfo statustext]" -type ok
--#         }
--          set selectvisual geometry
--          Ng_SetVisParameters
--          redraw
--          wm title . [concat "$progname - " $file]
--          set dirname [file dirname $file]
--          set basefilename [file tail [file rootname $file]]
--
--          if { $hasocc == "yes" } {
--              rebuildoccdialog
--          }
--      }
--    }
--
--
--
--.ngmenu.file add command -label "Save Geometry..." \
--    -command { 
--      set occgeometryloaded [Ng_OCCCommand isoccgeometryloaded]
--      puts $occgeometryloaded
--      if {$occgeometryloaded == 1 } {
--          set types {
--              {"IGES Geometry file"   {.igs} } 
--              {"STEP Geometry file"   {.stp} } 
--              {"STL Geometry file"   {.stl} } 
--              {"STL BIN Geometry file"   {.stlb} } 
--          }
--      } {
--          set types {
--              {"STL Geometry file"   {.stl} } 
--              {"STL BIN Geometry file"   {.stlb} } 
--          }
--      }
--
--      set ACISavailable [Ng_ACISCommand isACISavailable]
--      puts $ACISavailable
--      if {$ACISavailable == "yes" } {
--          lappend types {"ACIS Geometry" {.sat} }
--      }
--
--      set file [tk_getSaveFile -filetypes $types -initialdir $dirname -initialfile $basefilename ]
--      if {$file != ""} {
--          Ng_SaveGeometry $file 
--      }
--    }
-- 
--
--
--.ngmenu.file add cascade -label "Recent Files" -menu .ngmenu.file.recent 
--menu .ngmenu.file.recent
--
--
--proc AddRecentFile { filename } {
--    global progname
--    global dirname
--    catch { [.ngmenu.file.recent delete $filename] }
--    .ngmenu.file.recent insert 0 command -label $filename \
--      -command "AddRecentFile {$filename}; 
--                  Ng_LoadGeometry {$filename}; 
--                Ng_ParseGeometry;
--                set selectvisual geometry;
--                Ng_SetVisParameters;
--                redraw;
--                wm title . [concat \" $progname - $filename \"];
--                  set dirname {[file dirname $filename]};
--                  set basefilename {[file tail [file rootname $filename]]};
--                rebuildoccdialog;"
--
--    
--    if { [.ngmenu.file.recent index last] >= 6 } {
--      .ngmenu.file.recent delete last }
--    
--    saveinifile;
--    }
--loadinifile;
--
--.ngmenu.file add separator
--
--
--.ngmenu.file add command -label "Load Mesh..." -accelerator "<l><m>" \
--    -command {
--      set types {
--          {"Mesh file"   {.vol .vol.gz}       } }
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
--      if {$file != ""} {
--          AddRecentMeshFile $file;
--          Ng_LoadMesh $file; 
--          set selectvisual mesh
--          Ng_SetVisParameters
--          redraw
--          Ng_ReadStatus; 
--#         Ng_MeshSizeFromSurfaceMesh
--          wm title . [concat "$progname - " $file] 
--          set dirname [file dirname $file]
--          set basefilename [file tail [file rootname $file]]
--      }
--    }
--
--
--
--# astrid
--.ngmenu.file add cascade -label "Recent Meshes" -menu .ngmenu.file.recentmesh 
--menu .ngmenu.file.recentmesh
--
--
--proc AddRecentMeshFile { filename } {
--    global progname
--    global dirname
--    catch { [.ngmenu.file.recentmesh delete $filename] }
--    .ngmenu.file.recentmesh insert 0 command -label $filename \
--      -command "AddRecentMeshFile {$filename}; 
--                  Ng_LoadMesh {$filename};
--                set selectvisual mesh;
--                Ng_SetVisParameters;
--                redraw;
--                wm title . [concat \" $progname - $filename \"];
--                  set dirname {[file dirname $filename]};
--                  set basefilename {[file tail [file rootname $filename]]};
--                  rebuildoccdialog;"
--    
--    if { [.ngmenu.file.recentmesh index last] >= 6 } {
--      .ngmenu.file.recentmesh delete last }
--   
--    savemeshinifile;
--    }
--loadmeshinifile;
--
--# astrid ende
--
--
--.ngmenu.file add command -label "Save Mesh..." -accelerator "<s><m>" \
--    -command {
--      set types {
--          {"Mesh file"   {.vol .vol.gz}       } }
--
--      set file [tk_getSaveFile -filetypes $types -defaultextension ".vol.gz" -initialfile $basefilename -initialdir $dirname ]
--      if {$file != ""} {
--          Ng_SaveMesh $file }
--      AddRecentMeshFile $file;
--
--    }
--
--.ngmenu.file add command -label "Merge Mesh..." \
--    -command {
--      set types {
--          {"Mesh file"   {.vol}       } }
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
--      if {$file != ""} {
--          Ng_MergeMesh $file; 
--          set selectvisual mesh
--          Ng_SetVisParameters
--          redraw
--          Ng_ReadStatus; 
--      }
--    }
--
--
--
--
--
--.ngmenu.file add command -label "Import Mesh..." \
--    -command { 
--      set types {
--          {"Neutral format"  {.mesh .emt} }
--          {"Surface mesh format"  {.surf} }
--          {"Universal format"  {.unv} }
--          {"Olaf format"  {.emt} }
--          {"TET format" {.tet} }
--          {"Pro/ENGINEER neutral format" {.fnf} }
--                }
--      set file [tk_getOpenFile -filetypes $types ]
--      if {$file != ""} {
--          Ng_ImportMesh $file 
--          set selectvisual mesh
--          Ng_SetVisParameters
--          redraw
--          Ng_ReadStatus; 
--      }
--    }
--
--
--.ngmenu.file add command -label "Export Mesh..." \
--    -command {
--
--#     global meshexportformats
--      foreach exportformat $meshexportformats {
--          if { [lindex $exportformat 0] == $exportfiletype } {
--              set extension [lindex $exportformat 1]
--          }
--      }
--
--      if { $exportfiletype == "Elmer Format"} {
--          set file [file nativename [tk_chooseDirectory -title "Elmer Mesh Export - Select Directory"]]
--        } elseif { $exportfiletype == "OpenFOAM 1.5+ Format"} {
--          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
--        } elseif { $exportfiletype == "OpenFOAM 1.5+ Compressed"} {
--          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
--        } else {
--#         set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {$extension} }" ]
--          set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {*}}" ]
--      }
--
--      if {$file != ""} {
--          Ng_ExportMesh $file $exportfiletype 
--      }
--    }
--
--.ngmenu.file add cascade -label "Export Filetype" -menu .ngmenu.file.filetype 
--
--menu .ngmenu.file.filetype 
--
--
--.ngmenu.file add separator
--
--
--.ngmenu.file add command -label "Save Solution..." \
--    -command { 
--      set types { 
--            {"Solution File"  {.sol} } 
--            {"VTK File"  {.vtk} } 
--        }
--      set file [tk_getSaveFile -filetypes $types ]
--      if {$file != ""} {
--          Ng_SaveSolution $file 
--      }
--    }
--#-defaultextension ".sol"  ]
--
--.ngmenu.file add command -label "Import Solution..." \
--    -command { 
--      set types { {"Solution File"  {.sol} } }
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".sol"  ]
--      if {$file != ""} {
--          Ng_ImportSolution $file 
--          set selectvisual solution
--          Ng_SetVisParameters
--          redraw
--      }
--    }
--
--
--
--
--
--
--set demostarttime [clock clicks -millisecond]
--set stopdemo 0
--proc demoredraw { } {
--    global demostarttime
--    global stopdemo
--    set curtime [clock clicks -millisecond]
--    set result [ Ng_DemoSetTime [expr $curtime - $demostarttime] ]
--    redraw
--    global videoactive
--    if { $videoactive == 1 } {
--        puts "addframe"
--        .ndraw Ng_VideoClip addframe
--    }
--    if { $result == 0 && $stopdemo == 0 } {
--      after 1 { demoredraw }
--    }
--}
--.ngmenu.file add command -label "Show Demo..." \
--    -command {
--      set types { {"Demo File"  {.dem} } }
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".dem"  ]
--      if {$file != ""} {
--          Ng_ShowDemo $file 
--          set demostarttime [clock clicks -millisecond]
--          set stopdemo 0
--          demoredraw
--      }
--     }
--
--
--
--
--.ngmenu.file add separator
--
--.ngmenu.file add command -label "Snapshot..." \
--    -command { 
--      set types { 
--          {"JPG file" {.jpg} } 
--          {"GIF file" {.gif} } 
--          {"PPM file" {.ppm} } 
--      }
--      set file [tk_getSaveFile -filetypes $types]
--#  -defaultextension ".ppm"]
--      if {$file != ""} {
--          .ndraw Ng_SnapShot $file }
--    }
--
--
--.ngmenu.file add cascade -label "Video clip" -menu .ngmenu.file.video
--menu .ngmenu.file.video
--
--set videoactive 0
--.ngmenu.file.video add command -label "start..." \
--    -command { 
--      set types { 
--          {"MPG file" {.mpg} } 
--      }
--      set file [tk_getSaveFile -filetypes $types]
--      if {$file != ""} {
--          .ndraw Ng_VideoClip init $file 
--            global videoactive
--            set videoactive 1
--        }
--     }
--
--.ngmenu.file.video add command -label "add frame..." \
--    -command {.ndraw Ng_VideoClip addframe }
--
--.ngmenu.file.video add command -label "one cycle" \
--    -command {
--      set visoptions.redrawperiodic 1
--      for { set j 0 } { $j < 100 } { incr j } {
--          puts "j =  $j"
--          Ng_Vis_Set time [expr (1000 * $j / 100)]
--          redraw
--          .ndraw Ng_VideoClip addframe 
--          after 200
--      }
--    }
--
--.ngmenu.file.video add command -label "finalize..." \
--    -command {
--        .ndraw Ng_VideoClip finalize 
--        global videoactive
--        set videoactive 0
--    }
--
--
--
--.ngmenu.file add command -label "Save Options" \
--    -command { saveoptions }
--
--
--    
--
--.ngmenu.file add separator
--
--
--## herbert tcl load menue
--# .ngmenu.file add command -label "Run tests ..." \
--\#    -command { runtestdialog }
--##
--# .ngmenu.file add separator
--
--.ngmenu.file add command -label "Quit" -accelerator "<q>" \
--    -command { 
--        puts "Thank you for using $progname"; 
--
--        if { [catch { unload libngsolve[info sharedlibextension] ngsolve } result ] } {
--            # puts "cannot unload ngsolve" 
--            # puts "error: $result"
--        } 
--
--        Ng_Exit; 
--        destroy . 
--    }
--# exit
--
--
--#####################################################
--#                                                   #
--#     Menu Mesh                                     #
--#                                                   #
--#####################################################
--
--menu .ngmenu.mesh
--.ngmenu.mesh add command -label "Generate Mesh" -accelerator "<g><m>" \
--    -command { 
--      set selectvisual mesh
--      Ng_SetVisParameters
--      Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
--      Ng_ReadStatus
--      redraw
--    }
--
--.ngmenu.mesh add command -label "Stop Meshing" \
--    -command { Ng_StopMeshing }
--
--.ngmenu.mesh add command -label "Meshing Options..." \
--    -command meshingoptionsdialog
--
--
--.ngmenu.mesh add separator
--
--.ngmenu.mesh add command -label "Delete Mesh" \
--    -command { Ng_New mesh; Ng_ReadStatus; redraw }
--
--.ngmenu.mesh add command -label "Delete Vol Mesh" \
--    -command { Ng_DeleteVolMesh; Ng_ReadStatus; redraw }
--
--
--.ngmenu.mesh add command -label "Mesh Info" \
--    -command {
--      set dim [Ng_MeshInfo dim]
--      set np [Ng_MeshInfo np]
--      set ne [Ng_MeshInfo ne]
--      set nse [Ng_MeshInfo nse]
--      set nseg [Ng_MeshInfo nseg]
--      set bbox [Ng_MeshInfo bbox]
--      tk_messageBox -message  "Dimension: $dim\nPoints: $np\nElements: $ne\nSurface Els: $nse\nSegments: $nseg\nxmin [lindex $bbox 0] xmax [lindex $bbox 1]\nymin [lindex $bbox 2] ymax [lindex $bbox 3]\nzmin [lindex $bbox 4] zmax [lindex $bbox 5]"
--    }
--
--
--.ngmenu.mesh add command -label "Mesh Quality" \
--    -command {
--      set inplanemin 0
--      set inplanemax 0
--      set betplanemin 0
--      set betplanemax 0
--      Ng_MeshQuality inplanemin inplanemax betplanemin betplanemax
--      puts "Triangle angles : $inplanemin - $inplanemax"
--      puts "Tet angles      : $betplanemin - $betplanemax"
--      tk_messageBox -message  "Triangle angles : $inplanemin - $inplanemax \n Tet angles      : $betplanemin - $betplanemax"
--    }
--
--# .ngmenu.mesh add command -label "Quality Plot" \
--#    -command { qualityviewdialog 1 }
--
--
--
--
--.ngmenu.mesh add command -label "Check Surface Mesh" \
--    -command { Ng_CheckSurfaceMesh }
--.ngmenu.mesh add command -label "Check Volume Mesh" \
--    -command { Ng_CheckVolumeMesh }
--
--.ngmenu.mesh add command -label "Edit Boundary Conditions..." \
--    -command { bcpropdialog }
--
--if { $userlevel == 3 } {
--    .ngmenu.mesh add command -label "Mesh Doctor..." \
--      -command { meshdoctordialog }
--}
--
--.ngmenu.mesh add command -label "METIS Mesh Partitioning..." \
--      -command { METISdialog }
--
--.ngmenu.mesh add separator
--
--.ngmenu.mesh add command -label "Analyze Geometry" \
--    -command { Ng_GenerateMesh ag ag; Ng_ReadStatus; redraw }
--.ngmenu.mesh add command -label "Mesh Edges" \
--    -command { Ng_GenerateMesh me me; Ng_ReadStatus; redraw }
--.ngmenu.mesh add command -label "Mesh Surface" \
--    -command { set selectvisual mesh; Ng_SetVisParameters; \
--                 Ng_GenerateMesh ms ms; Ng_ReadStatus; redraw }
--
--.ngmenu.mesh add command -label "Optimize Surface" \
--    -command { Ng_GenerateMesh os os cmsmSm; redraw }
--
--.ngmenu.mesh add cascade -label "Surface Optim. Step" -menu .ngmenu.mesh.surfoptstep 
--
--menu .ngmenu.mesh.surfoptstep 
--.ngmenu.mesh.surfoptstep add command -label "Mesh Smoothing" \
--    -command { Ng_GenerateMesh os os m; redraw}
--.ngmenu.mesh.surfoptstep add command -label "Edge swapping (topologic)" \
--    -command { Ng_GenerateMesh os os s; redraw}
--.ngmenu.mesh.surfoptstep add command -label "Edge swapping (metric)" \
--    -command { Ng_GenerateMesh os os S; redraw}
--.ngmenu.mesh.surfoptstep add command -label "Combine points" \
--    -command { Ng_GenerateMesh os os c; redraw}
--
--
--.ngmenu.mesh add separator
--.ngmenu.mesh add command -label "Mesh Volume" \
--    -command { Ng_GenerateMesh mv mv; Ng_ReadStatus }
--.ngmenu.mesh add command -label "Optimize Volume" \
--    -command { Ng_GenerateMesh ov ov; Ng_ReadStatus }
--.ngmenu.mesh add command -label "Smooth Opt Volume" \
--    -command { Ng_GenerateMesh ov ov m; Ng_ReadStatus }
--.ngmenu.mesh add command -label "Smooth Opt Volume Jacobian" \
--    -command { Ng_GenerateMesh ov ov j; Ng_ReadStatus }
--
--
--
--#####################################################
--#                                                   #
--#     Menu Geometry                                 #
--#                                                   #
--#####################################################
--
--menu .ngmenu.geometry
--
--
--
--
--
--
--
--#####################################################
--#                                                   #
--#     Menu View                                     #
--#                                                   #
--#####################################################
--
--menu .ngmenu.view
--.ngmenu.view add command -label "Zoom all" \
--    -command { Ng_ZoomAll; redraw }
--.ngmenu.view add command -label "Center" \
--    -command { Ng_Center; redraw }
--
--.ngmenu.view add command -label "x-y plane" \
--    -command { Ng_StandardRotation xy; redraw }
--.ngmenu.view add command -label "y-x plane" \
--    -command { Ng_StandardRotation yx; redraw }
--.ngmenu.view add command -label "x-z plane" \
--    -command { Ng_StandardRotation xz; redraw }
--.ngmenu.view add command -label "z-x plane" \
--    -command { Ng_StandardRotation zx; redraw }
--.ngmenu.view add command -label "y-z plane" \
--    -command { Ng_StandardRotation yz; redraw }
--.ngmenu.view add command -label "z-y plane" \
--    -command { Ng_StandardRotation zy; redraw }
--
--.ngmenu.view add command -label "Viewing Options..." \
--    -command { viewingoptionsdialog; redraw }
--.ngmenu.view add command -label "Clipping Plane..." \
--    -command { clippingdialog; redraw }
--.ngmenu.view add command -label "Solution Data..." \
--    -command { visual_dialog; redraw }
--.ngmenu.view add checkbutton -variable viewqualityplot \
--    -label "Quality Plot" \
--    -command { qualityviewdialog $viewqualityplot }
--.ngmenu.view add checkbutton -variable memuseplot \
--    -label "Memory Usage" \
--    -command { memusedialog $memuseplot }
--
--
--
--
--#####################################################
--#                                                   #
--#     Menu Refinement                               #
--#                                                   #
--#####################################################
--#
--# Mesh size menu
--#
--menu .ngmenu.meshsize
--.ngmenu.meshsize add command -label "Refine uniform" \
--    -command { Ng_Refine; Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
--
--.ngmenu.meshsize add command -label "Second Order" \
--    -command { Ng_SecondOrder; Ng_ReadStatus; redraw }
--
--.ngmenu.meshsize add command -label "Validate Second Order" \
--    -command { Ng_ValidateSecondOrder; Ng_ReadStatus; redraw }
--
--.ngmenu.meshsize add command -label "High Order" \
--    -command { Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
--
--.ngmenu.meshsize add separator
--
--.ngmenu.meshsize add command -label "Refinement Dialog..." \
--    -command { refinementdialog }
--.ngmenu.meshsize add command -label "Load Meshsize..." \
--    -command {
--      set types {
--          {"Meshsize file"   {.msz}   } }
--      set file [tk_getOpenFile -filetypes $types]
--      if {$file != ""} {
--          Ng_LoadMeshSize $file; 
--      }
--    }
--.ngmenu.meshsize add command -label "MS from Surf Mesh" \
--    -command { Ng_MeshSizeFromSurfaceMesh }
--
--
--if { $userlevel == 3 } {
--.ngmenu.meshsize add command -label "Singular point ms" \
--    -command { Ng_SingularPointMS; }
--
--.ngmenu.meshsize add command -label "Singular edge ms" \
--    -command { Ng_SingularEdgeMS; }
--
--.ngmenu.meshsize add separator
--
--set bisectfilename "";
--
--.ngmenu.meshsize add command -label "Bisection" \
--    -command { Ng_ReadStatus; set oldnp 0; set newnp $status_np; 
--#     Ng_BisectCopyMesh; 
--#     Ng_Split2Tets;
--      Ng_ReadStatus;
--      
--      while { $oldnp < $newnp } {
--#         if { $level == 0 } {
--#             Ng_ExportMesh feppmesh.vol fepp;
--#         } {
--#             Ng_ExportMesh feppmesh$level feppml 
--#         }
--          set level [expr $level+1]
--          if { $bisectfilename == ""} {
--              Ng_Bisect;
--          } else {
--              Ng_Bisect $bisectfilename;
--          }
--#         Ng_HighOrder ${options.elementorder} "noparallel"
--#         Ng_Split2Tets;
--          Ng_ReadStatus;
--          redraw; 
--          
--          if { $bisectfilename == ""} {
--              set oldnp $newnp;
--              set newnp $status_np;
--              puts "oldnp $oldnp newnp $newnp";
--          } else {
--              set oldnp $newnp;
--          }
--      }
--    }
--#    -command { Ng_Bisect; Ng_ReadStatus; redraw }
--#    -command { exec netgen abc >outfile 2>errfile; Ng_ReadStatus; redraw }
--
--}
--
--.ngmenu.meshsize add command -label "Load Refinement Info..." \
--    -command {
--      set types {
--          {"Refinement info" {.refine} }}
--      set bisectfilename [tk_getOpenFile -filetypes $types]
--    }
--
--.ngmenu.meshsize add command -label "Z-Refinement" \
--    -command { Ng_ZRefinement 2; Ng_ReadStatus; redraw }
--
--
--# .ngmenu.meshsize add command -label "hp-Refinement" \
--\#    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
--
--.ngmenu.meshsize add cascade -label "hp-Refinement" -menu .ngmenu.meshsize.hpref
--menu .ngmenu.meshsize.hpref
--.ngmenu.meshsize.hpref add command -label "1 Level" \
--    -command { Ng_HPRefinement 1; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "2 Levels" \
--    -command { Ng_HPRefinement 2; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "3 Levels" \
--    -command { Ng_HPRefinement 3; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "4 Levels" \
--    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "5 Levels" \
--    -command { Ng_HPRefinement 5; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "6 Levels" \
--    -command { Ng_HPRefinement 6; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "7 Levels" \
--    -command { Ng_HPRefinement 7; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "8 Levels" \
--    -command { Ng_HPRefinement 8; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "9 Levels" \
--    -command { Ng_HPRefinement 9; Ng_ReadStatus; redraw }
--.ngmenu.meshsize.hpref add command -label "10 Levels" \
--    -command { Ng_HPRefinement 10; Ng_ReadStatus; redraw }
--
--
--.ngmenu.meshsize add command -label "Split to Tets" \
--    -command { Ng_Split2Tets; Ng_ReadStatus; redraw }
--
--
--
--
--
--#####################################################
--#                                                   #
--#     Menu Special                                  #
--#                                                   #
--#####################################################
--
--menu .ngmenu.special
--.ngmenu.special add command -label "Prismatic Boundary Layer" \
--    -command { Ng_GenerateBoundaryLayer; redraw }
--.ngmenu.special add command -label "Insert virtual boundary layer" \
--    -command { Ng_InsertVirtualBL; redraw }
--.ngmenu.special add command -label "Cut off and combine with other" \
--    -command { 
--      set types { {"Mesh file"   {.vol}       } }
--      set file [tk_getOpenFile -filetypes $types]
--      if {$file != ""} {
--          Ng_CutOffAndCombine $file;  }
--      redraw 
--    }
--.ngmenu.special add command -label "Helmholtz Mesh grading" \
--    -command { Ng_HelmholtzMesh; }
--.ngmenu.special add cascade -label "Colour-based boundary conditions" -menu .ngmenu.special.colbndcond
--
--menu .ngmenu.special.colbndcond 
-- .ngmenu.special.colbndcond add command -label "Inspect Colours in mesh" \
--    -command { currmeshcoloursdialog }
--    
-- .ngmenu.special.colbndcond add separator     
--    
-- .ngmenu.special.colbndcond add command -label "Automatic Assignment" \
--    -command { Ng_AutoColourBcProps auto; redraw }
--      
-- .ngmenu.special.colbndcond add separator     
--
-- set ocffile [file join ${ngdir} netgen.ocf];
-- 
-- .ngmenu.special.colbndcond add command -label "Select Colour Profile file" \
--    -command {
--      set types { {"Colour Profile file"   {.ocf}   } }
--      set ocffile [tk_getOpenFile -filetypes $types]
--      if {$ocffile == ""} {
--          set ocffile [file join ${ngdir} netgen.ocf]; }
--      } 
-- .ngmenu.special.colbndcond add command -label "Profile based Assignment" \
--      -command { Ng_AutoColourBcProps profile ${ocffile}; redraw }
--
--
--# menu .mbar.stl.menu
--# .mbar.stl.menu add command -label "STL options" \
--#     -command { stloptionsdialog; }
--#.mbar.stl.menu add command -label "STL Doctor" \
--#    -command { stldoctordialog; }
--
--
--#####################################################
--#                                                   #
--#     Menu Help                                     #
--#                                                   #
--#####################################################
--
--
--
--
--menu .ngmenu.help
--# .ngmenu.help add command -label "Ng Help..." \
--\#    -command { help_main }
--# .ngmenu.view add checkbutton -variable showsensitivehelp \
--#     -label "Sensitve Help" \
--#     -command { sensitivehelpdialog $showsensitivehelp }
--.ngmenu.view add checkbutton -label "Help Line" -variable showhelpline \
--      -command {
--    if { $showhelpline == 1} {
--      pack .helpline -before .statbar -side bottom -fill x -padx 3p
--    } {
--      pack forget .helpline 
--    }
--} 
--
--.ngmenu.help add command -label "About..." \
--    -command {
--tk_messageBox -message "This is NETGEN \nmainly written by \nJoachim Schoeberl \nthanks to \nRobert Gaisbauer, Johannes Gerstmayr, Philippose Rajan"
--}
--
--# tk_menuBar .mbar .mbar.file .mbar.mesh .mbar.test .mbar.help
--# focus .mbar
--
--
--
--
--#####################################################
--#                                                   #
--#     Button bar                                    #
--#                                                   #
--#####################################################
--
--frame .bubar -relief raised -bd 2
--pack .bubar -side top -fill x
--
--button .bubar.testb -text "Test" -command { Ng_SaveGeometry }
--button .bubar.surfm -text "Generate Mesh" -command \
--    { 
--      .ngmenu.mesh invoke "Generate Mesh"; 
--#     set selectvisual mesh; 
--#     Ng_SetVisParameters;
--#     Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
--#     redraw 
--    }
--button .bubar.stopm -text "Stop" -command \
--    { 
--      # Ng_StopMeshing;  
--      set multithread_terminate 1;
--      set stopdemo 1;
--    }
--button .bubar.exitb -text "Quit" \
--    -command { 
--         set ans [tk_messageBox -title "Quit Netgen?" -message "Do you really want to quit Netgen?" -type yesno -default "no" -icon question]
--         if { $ans == "yes" } {
--           .ngmenu.file invoke "Quit"; 
--         }     
--      }
--pack  .bubar.exitb .bubar.surfm .bubar.stopm -side left
--
--#button .bubar.scan -text "Scan" \
--#    -command { Ng_ParseGeometry; set selectvisual geometry; Ng_SetVisParameters; redraw }
--
--button .bubar.zoomall -text "Zoom All" \
--    -command { Ng_ZoomAll; redraw }
--
--button .bubar.center -text "Center" \
--    -command { Ng_Center; redraw }
--
--# tk_optionMenu .bubar.modesel drawmode "rotate" "move  " "zoom  "
--tixOptionMenu .bubar.modesel \
--    -options {
--      label.width  0
--      label.anchor e
--      menubutton.width 6
--    } \
--    -variable drawmode
--
--.bubar.modesel add command rotate -label Rotate
--.bubar.modesel add command move -label Move
--.bubar.modesel add command zoom -label Zoom
--
--
--
--set viewvals { geometry specpoints mesh solution}
--if { $userlevel == 3} {
--    set viewvals { geometry mesh specpoints surfmeshing modelview solution}
--}
--
--set viewvallabs(cross)     "Cross" 
--set viewvallabs(geometry)  "Geometry" 
--set viewvallabs(mesh)      "Mesh" 
--set viewvallabs(specpoints) "Edges" 
--set viewvallabs(surfmeshing) "Mesh Gen" 
--set viewvallabs(modelview)     "Modeller" 
--set viewvallabs(solution)     "Solution" 
--
--tixOptionMenu .bubar.selview \
--    -options {
--      label.width  0
--      label.anchor e
--      menubutton.width 10
--    } \
--
--foreach viewv $viewvals {
--    .bubar.selview add command $viewv -label $viewvallabs($viewv)
--}
--
--
--
--.bubar.selview config -variable selectvisual
--.bubar.selview config -command { Ng_SetVisParameters; redraw }
--
--
--pack .bubar.modesel -side right
--pack forget .bubar.modesel
--pack .bubar.center .bubar.zoomall .bubar.selview -side right
--
--.ngmenu.view add checkbutton -variable viewrotatebutton \
--    -label "Enable LeftButton Selection" \
--    -command { 
--      if { $viewrotatebutton } {
--          pack .bubar.modesel -side right
--      } {
--          pack forget .bubar.modesel
--      }
--    }
--
--
--
--
--#####################################################
--#                                                   #
--#     Status bar                                    #
--#                                                   #
--#####################################################
--
--label .helpline -text "None"
--pack forget .helpline -side bottom -fill x
--
--frame .statbar -relief flat -bd 2
--pack .statbar -side bottom -fill x
--
--label .statbar.ptslabel -text "Points: "
--label .statbar.ptsval -textvariable status_np
--label .statbar.elslabel -text "   Elements: "
--label .statbar.elsval -textvariable status_ne
--label .statbar.selslabel -text "   Surf Elements: "
--label .statbar.selsval -textvariable status_nse
--# label .statbar.memlabel -text "   Mem: "
--# label .statbar.memval -textvariable mem_moveable
--label .statbar.task -textvariable status_task
--
--pack .statbar.ptslabel .statbar.ptsval -side left -ipady 3p 
--pack .statbar.elslabel .statbar.elsval -side left -ipady 3p 
--pack .statbar.selslabel .statbar.selsval -side left -ipady 3p
--
--# if { $userlevel == 3 } {
--#    pack .statbar.memlabel .statbar.memval -side left -ipady 3p
--# }
--
--
--tixMeter .statbar.per -value 0 -text 0%
--.statbar.per configure -fillcolor blue
--
--pack .statbar.per -side right
--pack .statbar.task -side right -ipady 4
--
--set qualbaraxis(0) 0
--set qualbar(0) 0
--set qualbarnull(0) 0
--
--
--
--proc timer2 { } {
--    global status_np
--    global status_ne
--    global status_nse
--    global multithread_running
--    global multithread_redraw
--    global status_working
--    global status_task
--    global status_percent
--    global status_tetqualclasses
--    
--
--    Ng_ReadStatus 
--
--    if { $multithread_redraw == 1 } {
--      set multithread_redraw 0;
--      redraw;
--        
--        global videoactive
--        if { $videoactive == 1 } {
--            puts "addframe"
--            .ndraw Ng_VideoClip addframe
--        }
--    }
--
--    # global mem_moveable
--    # set mem_moveable [Ng_MemInfo moveable]
--
--
--    .statbar.per config -value [expr $status_percent/100] -text [format %2.1f [expr 0.1*int(10*$status_percent)]]%
--
--
--    if { $multithread_running } {
--      pack .statbar.per -side right -before .statbar.task -padx 6
--    } { 
--      pack forget .statbar.per
--    }
--      
--
--
--    # tet quality
--    if {[winfo exists .qualityview_dlg] == 1} {
--      
--      global qualbar
--      global qualbarnull
--      global qualbaraxis
--
--      set maxval 0
--      for {set i 0} {$i < 20} {incr i} {
--          if {[lindex $status_tetqualclasses $i] > $maxval} {
--              set maxval [lindex $status_tetqualclasses $i]
--          }
--      } 
--
--      set ubound 1
--      while { $ubound < $maxval } {
--          set ubound [expr {10 * $ubound}]
--      }
--      if { $ubound/5 > $maxval } {
--          set ubound [expr $ubound/5]
--      }
--      if { $ubound/2 > $maxval } {
--          set ubound [expr $ubound/2]
--      }
--
--
--      
--      for {set i 1} {$i <= 5} {incr i} {
--          # global qualbaraxis($i)
--
--          set value [expr { $i * $ubound / 5 }]
--          .qualityview_dlg.c dchars $qualbaraxis($i) 0 end
--          .qualityview_dlg.c insert $qualbaraxis($i) end $value  
--      }
--
--      
--      for {set i 0} {$i < 20} {incr i} {
--          set x1 [expr {100 + ($i*15) + 2}]
--          set x2 [expr {$x1+10}]
--          
--          set nbrs [lindex $status_tetqualclasses $i]
--          set y [expr (249 - (200 * $nbrs / $ubound ) )]
--          
--          # global qualbar($i)
--          .qualityview_dlg.c coords $qualbar($i) $x1 250 $x2 $y
--
--#         global qualbarnull($i)
--          if { $nbrs == 0 } {
--              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text 0
--          } {
--              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text "" 
--          }           
--      }
--      
--    }
--
--
--    if {[winfo exists .memuse_dlg] == 1} {    
--      
--      global memmark
--      set usemb [Ng_MemInfo usedmb]
--      for {set i 0} {$i < [string length $usemb] } {incr i} {
--          if { [string index $usemb $i] == 0 } {
--              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 68 [expr 50+$i] 70
--          } {
--              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 50 [expr 50+$i] 70
--          }
--      }
--
--    }
--    after 30 { timer2 }
--}
--# after 1000 { timer2 }
--timer2
--
--
--
--
--proc bgerror { error } {
--    global errorInfo userlevel
--    if { $userlevel == 3} {
--      puts "ERROR: $error" 
--      puts "errinfo: $errorInfo"
--    }
--    tk_messageBox -title "Error Message" -message $error -type ok 
--}
--
--
--
--
--
--
--proc smh2 { menuitem } {
--    if {[catch {$menuitem entrycget active -label} name]} {
--      set name "    "
--    } 
--    show_menu_help $name 
--    update idletasks
--}
--
--bind .ngmenu <<MenuSelect>> { smh2 %W }
--bind .ngmenu.file <<MenuSelect>> { smh2 %W }
--bind .ngmenu.geometry <<MenuSelect>> { smh2 %W }
--bind .ngmenu.mesh <<MenuSelect>> { smh2 %W }
--bind .ngmenu.view <<MenuSelect>> { smh2 %W }
--bind .ngmenu.meshsize <<MenuSelect>> { smh2 %W }
--bind .ngmenu.special <<MenuSelect>> { smh2 %W }
--bind .ngmenu.help <<MenuSelect>> { smh2 %W }
--
--
--# command bindings  
--bind . <q> { .ngmenu.file invoke "Quit" }
--bind . <l><g> { .ngmenu.file invoke "Load Geometry..." }  ; 
--bind . <l><m> { .ngmenu.file invoke "Load Mesh..." }  ;
--bind . <s><m> { .ngmenu.file invoke "Save Mesh..." }  ;
--bind . <r><f> { .ngmenu.file activate "Recent Files" }  ;
--bind . <n><p> { newprimitivedialog }      ; # 
--bind . <e><p> { editprimitivedialog }
--bind . <e><s> { newsoliddialog }
--bind . <g><m> { .ngmenu.mesh invoke "Generate Mesh" }  ;
--
--
--
--
--
-+# netgen menus:
-+
-+menu .ngmenu -tearoff 0  -relief raised -bd 2
-+. configure -menu .ngmenu
-+
-+.ngmenu add cascade -label "File" -menu .ngmenu.file -underline 0
-+.ngmenu add cascade -label "Geometry" -menu .ngmenu.geometry -underline 0
-+.ngmenu add cascade -label "Mesh" -menu .ngmenu.mesh -underline 0
-+.ngmenu add cascade -label "View" -menu .ngmenu.view -underline 0
-+.ngmenu add cascade -label "Refinement" -menu .ngmenu.meshsize -underline 5
-+
-+if { $userlevel == 3} {
-+    .ngmenu add cascade -label "Special" -menu .ngmenu.special -underline 3
-+}
-+
-+.ngmenu add cascade -label "Help" -menu .ngmenu.help -underline 0
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu File                                     #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.file
-+
-+.ngmenu.file add command -label "Load Geometry..." -accelerator "<l><g>" \
-+    -command {
-+      set types {
-+          {"All Geometry types"   { .stl .stlb .step .stp .geo .in2d .igs .iges .brep .sat} }
-+          {"IGES Geometry"    {.igs .iges} }
-+          {"BREP OpenCascade Geometry"    {.brep} }
-+          {"STL Geometry"        {.stl} }
-+          {"Binary STL Geometry"    {.stlb} }
-+          {"STEP Geometry"    {.step .stp} }
-+          {"Geometry file"       {.geo} }
-+          {"2D Geometry"   {.in2d } }
-+      }
-+
-+      set ACISavailable [Ng_ACISCommand isACISavailable]
-+      if {$ACISavailable == "yes" } {
-+          lappend types {"ACIS Geometry" {.sat} }
-+      }
-+
-+      if {[catch {
-+          set file [tk_getOpenFile -filetypes $types -initialdir $dirname -typevariable loadgeomtypevar]
-+      }]} {
-+          set file [tk_getOpenFile -filetypes $types -initialdir $dirname]
-+      }
-+
-+      if {$file != ""} {
-+          AddRecentFile $file
-+          Ng_LoadGeometry $file
-+          Ng_ParseGeometry
-+#         if { [Ng_STLInfo status]=="ERROR" } {
-+#             tk_messageBox -message  "STL ERROR: \n [Ng_STLInfo statustext]" -type ok
-+#         }
-+          set selectvisual geometry
-+          Ng_SetVisParameters
-+          redraw
-+          wm title . [concat "$progname - " $file]
-+          set dirname [file dirname $file]
-+          set basefilename [file tail [file rootname $file]]
-+
-+          if { $hasocc == "yes" } {
-+              rebuildoccdialog
-+          }
-+      }
-+    }
-+
-+
-+
-+.ngmenu.file add command -label "Save Geometry..." \
-+    -command {
-+      set occgeometryloaded [Ng_OCCCommand isoccgeometryloaded]
-+      puts $occgeometryloaded
-+      if {$occgeometryloaded == 1 } {
-+          set types {
-+              {"IGES Geometry file"   {.igs} }
-+              {"STEP Geometry file"   {.stp} }
-+              {"STL Geometry file"   {.stl} }
-+              {"STL BIN Geometry file"   {.stlb} }
-+          }
-+      } {
-+          set types {
-+              {"STL Geometry file"   {.stl} }
-+              {"STL BIN Geometry file"   {.stlb} }
-+          }
-+      }
-+
-+      set ACISavailable [Ng_ACISCommand isACISavailable]
-+      puts $ACISavailable
-+      if {$ACISavailable == "yes" } {
-+          lappend types {"ACIS Geometry" {.sat} }
-+      }
-+
-+      set file [tk_getSaveFile -filetypes $types -initialdir $dirname -initialfile $basefilename ]
-+      if {$file != ""} {
-+          Ng_SaveGeometry $file
-+      }
-+    }
-+
-+
-+
-+.ngmenu.file add cascade -label "Recent Files" -menu .ngmenu.file.recent
-+menu .ngmenu.file.recent
-+
-+
-+proc AddRecentFile { filename } {
-+    global progname
-+    global dirname
-+    catch { [.ngmenu.file.recent delete $filename] }
-+    .ngmenu.file.recent insert 0 command -label $filename \
-+      -command "AddRecentFile {$filename};
-+                  Ng_LoadGeometry {$filename};
-+                Ng_ParseGeometry;
-+                set selectvisual geometry;
-+                Ng_SetVisParameters;
-+                redraw;
-+                wm title . [concat \" $progname - $filename \"];
-+                  set dirname {[file dirname $filename]};
-+                  set basefilename {[file tail [file rootname $filename]]};
-+                rebuildoccdialog;"
-+
-+
-+    if { [.ngmenu.file.recent index last] >= 6 } {
-+      .ngmenu.file.recent delete last }
-+
-+    saveinifile;
-+    }
-+loadinifile;
-+
-+.ngmenu.file add separator
-+
-+
-+.ngmenu.file add command -label "Load Mesh..." -accelerator "<l><m>" \
-+    -command {
-+      set types {
-+          {"Mesh file"   {.vol .vol.gz}       } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
-+      if {$file != ""} {
-+          AddRecentMeshFile $file;
-+          Ng_LoadMesh $file;
-+          set selectvisual mesh
-+          Ng_SetVisParameters
-+          redraw
-+          Ng_ReadStatus;
-+#         Ng_MeshSizeFromSurfaceMesh
-+          wm title . [concat "$progname - " $file]
-+          set dirname [file dirname $file]
-+          set basefilename [file tail [file rootname $file]]
-+      }
-+    }
-+
-+
-+
-+# astrid
-+.ngmenu.file add cascade -label "Recent Meshes" -menu .ngmenu.file.recentmesh
-+menu .ngmenu.file.recentmesh
-+
-+
-+proc AddRecentMeshFile { filename } {
-+    global progname
-+    global dirname
-+    catch { [.ngmenu.file.recentmesh delete $filename] }
-+    .ngmenu.file.recentmesh insert 0 command -label $filename \
-+      -command "AddRecentMeshFile {$filename};
-+                  Ng_LoadMesh {$filename};
-+                set selectvisual mesh;
-+                Ng_SetVisParameters;
-+                redraw;
-+                wm title . [concat \" $progname - $filename \"];
-+                  set dirname {[file dirname $filename]};
-+                  set basefilename {[file tail [file rootname $filename]]};
-+                  rebuildoccdialog;"
-+
-+    if { [.ngmenu.file.recentmesh index last] >= 6 } {
-+      .ngmenu.file.recentmesh delete last }
-+
-+    savemeshinifile;
-+    }
-+loadmeshinifile;
-+
-+# astrid ende
-+
-+
-+.ngmenu.file add command -label "Save Mesh..." -accelerator "<s><m>" \
-+    -command {
-+      set types {
-+          {"Mesh file"   {.vol .vol.gz}       } }
-+
-+      set file [tk_getSaveFile -filetypes $types -defaultextension ".vol.gz" -initialfile $basefilename -initialdir $dirname ]
-+      if {$file != ""} {
-+          Ng_SaveMesh $file }
-+      AddRecentMeshFile $file;
-+
-+    }
-+
-+.ngmenu.file add command -label "Merge Mesh..." \
-+    -command {
-+      set types {
-+          {"Mesh file"   {.vol}       } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
-+      if {$file != ""} {
-+          Ng_MergeMesh $file;
-+          set selectvisual mesh
-+          Ng_SetVisParameters
-+          redraw
-+          Ng_ReadStatus;
-+      }
-+    }
-+
-+
-+
-+
-+
-+.ngmenu.file add command -label "Import Mesh..." \
-+    -command {
-+      set types {
-+          {"Neutral format"  {.mesh .emt} }
-+          {"Surface mesh format"  {.surf} }
-+          {"Universal format"  {.unv} }
-+          {"Olaf format"  {.emt} }
-+          {"TET format" {.tet} }
-+          {"Pro/ENGINEER neutral format" {.fnf} }
-+                }
-+      set file [tk_getOpenFile -filetypes $types ]
-+      if {$file != ""} {
-+          Ng_ImportMesh $file
-+          set selectvisual mesh
-+          Ng_SetVisParameters
-+          redraw
-+          Ng_ReadStatus;
-+      }
-+    }
-+
-+
-+.ngmenu.file add command -label "Export Mesh..." \
-+    -command {
-+
-+#     global meshexportformats
-+      foreach exportformat $meshexportformats {
-+          if { [lindex $exportformat 0] == $exportfiletype } {
-+              set extension [lindex $exportformat 1]
-+          }
-+      }
-+
-+      if { $exportfiletype == "Elmer Format"} {
-+          set file [file nativename [tk_chooseDirectory -title "Elmer Mesh Export - Select Directory"]]
-+        } elseif { $exportfiletype == "OpenFOAM 1.5+ Format"} {
-+          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
-+        } elseif { $exportfiletype == "OpenFOAM 1.5+ Compressed"} {
-+          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
-+        } else {
-+#         set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {$extension} }" ]
-+          set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {*}}" ]
-+      }
-+
-+      if {$file != ""} {
-+          Ng_ExportMesh $file $exportfiletype
-+      }
-+    }
-+
-+.ngmenu.file add cascade -label "Export Filetype" -menu .ngmenu.file.filetype
-+
-+menu .ngmenu.file.filetype
-+
-+
-+.ngmenu.file add separator
-+
-+
-+.ngmenu.file add command -label "Save Solution..." \
-+    -command {
-+      set types {
-+            {"Solution File"  {.sol} }
-+            {"VTK File"  {.vtk} }
-+        }
-+      set file [tk_getSaveFile -filetypes $types ]
-+      if {$file != ""} {
-+          Ng_SaveSolution $file
-+      }
-+    }
-+#-defaultextension ".sol"  ]
-+
-+.ngmenu.file add command -label "Import Solution..." \
-+    -command {
-+      set types { {"Solution File"  {.sol} } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".sol"  ]
-+      if {$file != ""} {
-+          Ng_ImportSolution $file
-+          set selectvisual solution
-+          Ng_SetVisParameters
-+          redraw
-+      }
-+    }
-+
-+
-+
-+
-+
-+
-+set demostarttime [clock clicks -millisecond]
-+set stopdemo 0
-+proc demoredraw { } {
-+    global demostarttime
-+    global stopdemo
-+    set curtime [clock clicks -millisecond]
-+    set result [ Ng_DemoSetTime [expr $curtime - $demostarttime] ]
-+    redraw
-+    global videoactive
-+    if { $videoactive == 1 } {
-+        puts "addframe"
-+        .ndraw Ng_VideoClip addframe
-+    }
-+    if { $result == 0 && $stopdemo == 0 } {
-+      after 1 { demoredraw }
-+    }
-+}
-+.ngmenu.file add command -label "Show Demo..." \
-+    -command {
-+      set types { {"Demo File"  {.dem} } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".dem"  ]
-+      if {$file != ""} {
-+          Ng_ShowDemo $file
-+          set demostarttime [clock clicks -millisecond]
-+          set stopdemo 0
-+          demoredraw
-+      }
-+     }
-+
-+
-+
-+
-+.ngmenu.file add separator
-+
-+.ngmenu.file add command -label "Snapshot..." \
-+    -command {
-+      set types {
-+          {"JPG file" {.jpg} }
-+          {"GIF file" {.gif} }
-+          {"PPM file" {.ppm} }
-+      }
-+      set file [tk_getSaveFile -filetypes $types]
-+#  -defaultextension ".ppm"]
-+      if {$file != ""} {
-+          .ndraw Ng_SnapShot $file }
-+    }
-+
-+
-+.ngmenu.file add cascade -label "Video clip" -menu .ngmenu.file.video
-+menu .ngmenu.file.video
-+
-+set videoactive 0
-+.ngmenu.file.video add command -label "start..." \
-+    -command {
-+      set types {
-+          {"MPG file" {.mpg} }
-+      }
-+      set file [tk_getSaveFile -filetypes $types]
-+      if {$file != ""} {
-+          .ndraw Ng_VideoClip init $file
-+            global videoactive
-+            set videoactive 1
-+        }
-+     }
-+
-+.ngmenu.file.video add command -label "add frame..." \
-+    -command {.ndraw Ng_VideoClip addframe }
-+
-+.ngmenu.file.video add command -label "one cycle" \
-+    -command {
-+      set visoptions.redrawperiodic 1
-+      for { set j 0 } { $j < 100 } { incr j } {
-+          puts "j =  $j"
-+          Ng_Vis_Set time [expr (1000 * $j / 100)]
-+          redraw
-+          .ndraw Ng_VideoClip addframe
-+          after 200
-+      }
-+    }
-+
-+.ngmenu.file.video add command -label "finalize..." \
-+    -command {
-+        .ndraw Ng_VideoClip finalize
-+        global videoactive
-+        set videoactive 0
-+    }
-+
-+
-+
-+.ngmenu.file add command -label "Save Options" \
-+    -command { saveoptions }
-+
-+
-+
-+
-+.ngmenu.file add separator
-+
-+
-+## herbert tcl load menue
-+# .ngmenu.file add command -label "Run tests ..." \
-+\#    -command { runtestdialog }
-+##
-+# .ngmenu.file add separator
-+
-+.ngmenu.file add command -label "Quit" -accelerator "<q>" \
-+    -command {
-+        puts "Thank you for using $progname";
-+
-+        if { [catch { unload libngsolve[info sharedlibextension] ngsolve } result ] } {
-+            # puts "cannot unload ngsolve"
-+            # puts "error: $result"
-+        }
-+
-+        Ng_Exit;
-+        destroy .
-+    }
-+# exit
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Mesh                                     #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.mesh
-+.ngmenu.mesh add command -label "Generate Mesh" -accelerator "<g><m>" \
-+    -command {
-+      set selectvisual mesh
-+      Ng_SetVisParameters
-+      Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
-+      Ng_ReadStatus
-+      redraw
-+    }
-+
-+.ngmenu.mesh add command -label "Stop Meshing" \
-+    -command { Ng_StopMeshing }
-+
-+.ngmenu.mesh add command -label "Meshing Options..." \
-+    -command meshingoptionsdialog
-+
-+
-+.ngmenu.mesh add separator
-+
-+.ngmenu.mesh add command -label "Delete Mesh" \
-+    -command { Ng_New mesh; Ng_ReadStatus; redraw }
-+
-+.ngmenu.mesh add command -label "Delete Vol Mesh" \
-+    -command { Ng_DeleteVolMesh; Ng_ReadStatus; redraw }
-+
-+
-+.ngmenu.mesh add command -label "Mesh Info" \
-+    -command {
-+      set dim [Ng_MeshInfo dim]
-+      set np [Ng_MeshInfo np]
-+      set ne [Ng_MeshInfo ne]
-+      set nse [Ng_MeshInfo nse]
-+      set nseg [Ng_MeshInfo nseg]
-+      set bbox [Ng_MeshInfo bbox]
-+      tk_messageBox -message  "Dimension: $dim\nPoints: $np\nElements: $ne\nSurface Els: $nse\nSegments: $nseg\nxmin [lindex $bbox 0] xmax [lindex $bbox 1]\nymin [lindex $bbox 2] ymax [lindex $bbox 3]\nzmin [lindex $bbox 4] zmax [lindex $bbox 5]"
-+    }
-+
-+
-+.ngmenu.mesh add command -label "Mesh Quality" \
-+    -command {
-+      set inplanemin 0
-+      set inplanemax 0
-+      set betplanemin 0
-+      set betplanemax 0
-+      Ng_MeshQuality inplanemin inplanemax betplanemin betplanemax
-+      puts "Triangle angles : $inplanemin - $inplanemax"
-+      puts "Tet angles      : $betplanemin - $betplanemax"
-+      tk_messageBox -message  "Triangle angles : $inplanemin - $inplanemax \n Tet angles      : $betplanemin - $betplanemax"
-+    }
-+
-+# .ngmenu.mesh add command -label "Quality Plot" \
-+#    -command { qualityviewdialog 1 }
-+
-+
-+
-+
-+.ngmenu.mesh add command -label "Check Surface Mesh" \
-+    -command { Ng_CheckSurfaceMesh }
-+.ngmenu.mesh add command -label "Check Volume Mesh" \
-+    -command { Ng_CheckVolumeMesh }
-+
-+.ngmenu.mesh add command -label "Edit Boundary Conditions..." \
-+    -command { bcpropdialog }
-+
-+if { $userlevel == 3 } {
-+    .ngmenu.mesh add command -label "Mesh Doctor..." \
-+      -command { meshdoctordialog }
-+}
-+
-+.ngmenu.mesh add command -label "METIS Mesh Partitioning..." \
-+      -command { METISdialog }
-+
-+.ngmenu.mesh add separator
-+
-+.ngmenu.mesh add command -label "Analyze Geometry" \
-+    -command { Ng_GenerateMesh ag ag; Ng_ReadStatus; redraw }
-+.ngmenu.mesh add command -label "Mesh Edges" \
-+    -command { Ng_GenerateMesh me me; Ng_ReadStatus; redraw }
-+.ngmenu.mesh add command -label "Mesh Surface" \
-+    -command { set selectvisual mesh; Ng_SetVisParameters; \
-+                 Ng_GenerateMesh ms ms; Ng_ReadStatus; redraw }
-+
-+.ngmenu.mesh add command -label "Optimize Surface" \
-+    -command { Ng_GenerateMesh os os cmsmSm; redraw }
-+
-+.ngmenu.mesh add cascade -label "Surface Optim. Step" -menu .ngmenu.mesh.surfoptstep
-+
-+menu .ngmenu.mesh.surfoptstep
-+.ngmenu.mesh.surfoptstep add command -label "Mesh Smoothing" \
-+    -command { Ng_GenerateMesh os os m; redraw}
-+.ngmenu.mesh.surfoptstep add command -label "Edge swapping (topologic)" \
-+    -command { Ng_GenerateMesh os os s; redraw}
-+.ngmenu.mesh.surfoptstep add command -label "Edge swapping (metric)" \
-+    -command { Ng_GenerateMesh os os S; redraw}
-+.ngmenu.mesh.surfoptstep add command -label "Combine points" \
-+    -command { Ng_GenerateMesh os os c; redraw}
-+
-+
-+.ngmenu.mesh add separator
-+.ngmenu.mesh add command -label "Mesh Volume" \
-+    -command { Ng_GenerateMesh mv mv; Ng_ReadStatus }
-+.ngmenu.mesh add command -label "Optimize Volume" \
-+    -command { Ng_GenerateMesh ov ov; Ng_ReadStatus }
-+.ngmenu.mesh add command -label "Smooth Opt Volume" \
-+    -command { Ng_GenerateMesh ov ov m; Ng_ReadStatus }
-+.ngmenu.mesh add command -label "Smooth Opt Volume Jacobian" \
-+    -command { Ng_GenerateMesh ov ov j; Ng_ReadStatus }
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Geometry                                 #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.geometry
-+
-+
-+
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu View                                     #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.view
-+.ngmenu.view add command -label "Zoom all" \
-+    -command { Ng_ZoomAll; redraw }
-+.ngmenu.view add command -label "Center" \
-+    -command { Ng_Center; redraw }
-+
-+.ngmenu.view add command -label "x-y plane" \
-+    -command { Ng_StandardRotation xy; redraw }
-+.ngmenu.view add command -label "y-x plane" \
-+    -command { Ng_StandardRotation yx; redraw }
-+.ngmenu.view add command -label "x-z plane" \
-+    -command { Ng_StandardRotation xz; redraw }
-+.ngmenu.view add command -label "z-x plane" \
-+    -command { Ng_StandardRotation zx; redraw }
-+.ngmenu.view add command -label "y-z plane" \
-+    -command { Ng_StandardRotation yz; redraw }
-+.ngmenu.view add command -label "z-y plane" \
-+    -command { Ng_StandardRotation zy; redraw }
-+
-+.ngmenu.view add command -label "Viewing Options..." \
-+    -command { viewingoptionsdialog; redraw }
-+.ngmenu.view add command -label "Clipping Plane..." \
-+    -command { clippingdialog; redraw }
-+.ngmenu.view add command -label "Solution Data..." \
-+    -command { visual_dialog; redraw }
-+.ngmenu.view add checkbutton -variable viewqualityplot \
-+    -label "Quality Plot" \
-+    -command { qualityviewdialog $viewqualityplot }
-+.ngmenu.view add checkbutton -variable memuseplot \
-+    -label "Memory Usage" \
-+    -command { memusedialog $memuseplot }
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Refinement                               #
-+#                                                   #
-+#####################################################
-+#
-+# Mesh size menu
-+#
-+menu .ngmenu.meshsize
-+.ngmenu.meshsize add command -label "Refine uniform" \
-+    -command { Ng_Refine; Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add command -label "Second Order" \
-+    -command { Ng_SecondOrder; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add command -label "Validate Second Order" \
-+    -command { Ng_ValidateSecondOrder; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add command -label "High Order" \
-+    -command { Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add separator
-+
-+.ngmenu.meshsize add command -label "Refinement Dialog..." \
-+    -command { refinementdialog }
-+.ngmenu.meshsize add command -label "Load Meshsize..." \
-+    -command {
-+      set types {
-+          {"Meshsize file"   {.msz}   } }
-+      set file [tk_getOpenFile -filetypes $types]
-+      if {$file != ""} {
-+          Ng_LoadMeshSize $file;
-+      }
-+    }
-+.ngmenu.meshsize add command -label "MS from Surf Mesh" \
-+    -command { Ng_MeshSizeFromSurfaceMesh }
-+
-+
-+if { $userlevel == 3 } {
-+.ngmenu.meshsize add command -label "Singular point ms" \
-+    -command { Ng_SingularPointMS; }
-+
-+.ngmenu.meshsize add command -label "Singular edge ms" \
-+    -command { Ng_SingularEdgeMS; }
-+
-+.ngmenu.meshsize add separator
-+
-+set bisectfilename "";
-+
-+.ngmenu.meshsize add command -label "Bisection" \
-+    -command { Ng_ReadStatus; set oldnp 0; set newnp $status_np;
-+#     Ng_BisectCopyMesh;
-+#     Ng_Split2Tets;
-+      Ng_ReadStatus;
-+
-+      while { $oldnp < $newnp } {
-+#         if { $level == 0 } {
-+#             Ng_ExportMesh feppmesh.vol fepp;
-+#         } {
-+#             Ng_ExportMesh feppmesh$level feppml
-+#         }
-+          set level [expr $level+1]
-+          if { $bisectfilename == ""} {
-+              Ng_Bisect;
-+          } else {
-+              Ng_Bisect $bisectfilename;
-+          }
-+#         Ng_HighOrder ${options.elementorder} "noparallel"
-+#         Ng_Split2Tets;
-+          Ng_ReadStatus;
-+          redraw;
-+
-+          if { $bisectfilename == ""} {
-+              set oldnp $newnp;
-+              set newnp $status_np;
-+              puts "oldnp $oldnp newnp $newnp";
-+          } else {
-+              set oldnp $newnp;
-+          }
-+      }
-+    }
-+#    -command { Ng_Bisect; Ng_ReadStatus; redraw }
-+#    -command { exec netgen abc >outfile 2>errfile; Ng_ReadStatus; redraw }
-+
-+}
-+
-+.ngmenu.meshsize add command -label "Load Refinement Info..." \
-+    -command {
-+      set types {
-+          {"Refinement info" {.refine} }}
-+      set bisectfilename [tk_getOpenFile -filetypes $types]
-+    }
-+
-+.ngmenu.meshsize add command -label "Z-Refinement" \
-+    -command { Ng_ZRefinement 2; Ng_ReadStatus; redraw }
-+
-+
-+# .ngmenu.meshsize add command -label "hp-Refinement" \
-+\#    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add cascade -label "hp-Refinement" -menu .ngmenu.meshsize.hpref
-+menu .ngmenu.meshsize.hpref
-+.ngmenu.meshsize.hpref add command -label "1 Level" \
-+    -command { Ng_HPRefinement 1; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "2 Levels" \
-+    -command { Ng_HPRefinement 2; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "3 Levels" \
-+    -command { Ng_HPRefinement 3; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "4 Levels" \
-+    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "5 Levels" \
-+    -command { Ng_HPRefinement 5; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "6 Levels" \
-+    -command { Ng_HPRefinement 6; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "7 Levels" \
-+    -command { Ng_HPRefinement 7; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "8 Levels" \
-+    -command { Ng_HPRefinement 8; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "9 Levels" \
-+    -command { Ng_HPRefinement 9; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "10 Levels" \
-+    -command { Ng_HPRefinement 10; Ng_ReadStatus; redraw }
-+
-+
-+.ngmenu.meshsize add command -label "Split to Tets" \
-+    -command { Ng_Split2Tets; Ng_ReadStatus; redraw }
-+
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Special                                  #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.special
-+.ngmenu.special add command -label "Prismatic Boundary Layer" \
-+    -command { Ng_GenerateBoundaryLayer; redraw }
-+.ngmenu.special add command -label "Insert virtual boundary layer" \
-+    -command { Ng_InsertVirtualBL; redraw }
-+.ngmenu.special add command -label "Cut off and combine with other" \
-+    -command {
-+      set types { {"Mesh file"   {.vol}       } }
-+      set file [tk_getOpenFile -filetypes $types]
-+      if {$file != ""} {
-+          Ng_CutOffAndCombine $file;  }
-+      redraw
-+    }
-+.ngmenu.special add command -label "Helmholtz Mesh grading" \
-+    -command { Ng_HelmholtzMesh; }
-+.ngmenu.special add cascade -label "Colour-based boundary conditions" -menu .ngmenu.special.colbndcond
-+
-+menu .ngmenu.special.colbndcond
-+ .ngmenu.special.colbndcond add command -label "Inspect Colours in mesh" \
-+    -command { currmeshcoloursdialog }
-+
-+ .ngmenu.special.colbndcond add separator
-+
-+ .ngmenu.special.colbndcond add command -label "Automatic Assignment" \
-+    -command { Ng_AutoColourBcProps auto; redraw }
-+
-+ .ngmenu.special.colbndcond add separator
-+
-+ set ocffile [file join ${ngdir} netgen.ocf];
-+
-+ .ngmenu.special.colbndcond add command -label "Select Colour Profile file" \
-+    -command {
-+      set types { {"Colour Profile file"   {.ocf}   } }
-+      set ocffile [tk_getOpenFile -filetypes $types]
-+      if {$ocffile == ""} {
-+          set ocffile [file join ${ngdir} netgen.ocf]; }
-+      }
-+ .ngmenu.special.colbndcond add command -label "Profile based Assignment" \
-+      -command { Ng_AutoColourBcProps profile ${ocffile}; redraw }
-+
-+
-+# menu .mbar.stl.menu
-+# .mbar.stl.menu add command -label "STL options" \
-+#     -command { stloptionsdialog; }
-+#.mbar.stl.menu add command -label "STL Doctor" \
-+#    -command { stldoctordialog; }
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Help                                     #
-+#                                                   #
-+#####################################################
-+
-+
-+
-+
-+menu .ngmenu.help
-+# .ngmenu.help add command -label "Ng Help..." \
-+\#    -command { help_main }
-+# .ngmenu.view add checkbutton -variable showsensitivehelp \
-+#     -label "Sensitve Help" \
-+#     -command { sensitivehelpdialog $showsensitivehelp }
-+.ngmenu.view add checkbutton -label "Help Line" -variable showhelpline \
-+      -command {
-+    if { $showhelpline == 1} {
-+      pack .helpline -before .statbar -side bottom -fill x -padx 3p
-+    } {
-+      pack forget .helpline
-+    }
-+}
-+
-+.ngmenu.help add command -label "About..." \
-+    -command {
-+tk_messageBox -message "This is NETGEN \nmainly written by \nJoachim Schoeberl \nthanks to \nRobert Gaisbauer, Johannes Gerstmayr, Philippose Rajan"
-+}
-+
-+# tk_menuBar .mbar .mbar.file .mbar.mesh .mbar.test .mbar.help
-+# focus .mbar
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Button bar                                    #
-+#                                                   #
-+#####################################################
-+
-+frame .bubar -relief raised -bd 2
-+pack .bubar -side top -fill x
-+
-+button .bubar.testb -text "Test" -command { Ng_SaveGeometry }
-+button .bubar.surfm -text "Generate Mesh" -command \
-+    {
-+      .ngmenu.mesh invoke "Generate Mesh";
-+#     set selectvisual mesh;
-+#     Ng_SetVisParameters;
-+#     Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
-+#     redraw
-+    }
-+button .bubar.stopm -text "Stop" -command \
-+    {
-+      # Ng_StopMeshing;
-+      set multithread_terminate 1;
-+      set stopdemo 1;
-+    }
-+button .bubar.exitb -text "Quit" \
-+    -command {
-+         set ans [tk_messageBox -title "Quit Netgen?" -message "Do you really want to quit Netgen?" -type yesno -default "no" -icon question]
-+         if { $ans == "yes" } {
-+           .ngmenu.file invoke "Quit";
-+         }
-+      }
-+pack  .bubar.exitb .bubar.surfm .bubar.stopm -side left
-+
-+#button .bubar.scan -text "Scan" \
-+#    -command { Ng_ParseGeometry; set selectvisual geometry; Ng_SetVisParameters; redraw }
-+
-+button .bubar.zoomall -text "Zoom All" \
-+    -command { Ng_ZoomAll; redraw }
-+
-+button .bubar.center -text "Center" \
-+    -command { Ng_Center; redraw }
-+
-+# tk_optionMenu .bubar.modesel drawmode "rotate" "move  " "zoom  "
-+tixOptionMenu .bubar.modesel \
-+    -options {
-+      label.width  0
-+      label.anchor e
-+      menubutton.width 6
-+    } \
-+    -variable drawmode
-+
-+.bubar.modesel add command rotate -label Rotate
-+.bubar.modesel add command move -label Move
-+.bubar.modesel add command zoom -label Zoom
-+
-+
-+
-+set viewvals { geometry specpoints mesh solution}
-+if { $userlevel == 3} {
-+    set viewvals { geometry mesh specpoints surfmeshing modelview solution}
-+}
-+
-+set viewvallabs(cross)     "Cross"
-+set viewvallabs(geometry)  "Geometry"
-+set viewvallabs(mesh)      "Mesh"
-+set viewvallabs(specpoints) "Edges"
-+set viewvallabs(surfmeshing) "Mesh Gen"
-+set viewvallabs(modelview)     "Modeller"
-+set viewvallabs(solution)     "Solution"
-+
-+tixOptionMenu .bubar.selview \
-+    -options {
-+      label.width  0
-+      label.anchor e
-+      menubutton.width 10
-+    } \
-+
-+foreach viewv $viewvals {
-+    .bubar.selview add command $viewv -label $viewvallabs($viewv)
-+}
-+
-+
-+
-+.bubar.selview config -variable selectvisual
-+.bubar.selview config -command { Ng_SetVisParameters; redraw }
-+
-+
-+pack .bubar.modesel -side right
-+pack forget .bubar.modesel
-+pack .bubar.center .bubar.zoomall .bubar.selview -side right
-+
-+.ngmenu.view add checkbutton -variable viewrotatebutton \
-+    -label "Enable LeftButton Selection" \
-+    -command {
-+      if { $viewrotatebutton } {
-+          pack .bubar.modesel -side right
-+      } {
-+          pack forget .bubar.modesel
-+      }
-+    }
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Status bar                                    #
-+#                                                   #
-+#####################################################
-+
-+label .helpline -text "None"
-+pack forget .helpline -side bottom -fill x
-+
-+frame .statbar -relief flat -bd 2
-+pack .statbar -side bottom -fill x
-+
-+label .statbar.ptslabel -text "Points: "
-+label .statbar.ptsval -textvariable status_np
-+label .statbar.elslabel -text "   Elements: "
-+label .statbar.elsval -textvariable status_ne
-+label .statbar.selslabel -text "   Surf Elements: "
-+label .statbar.selsval -textvariable status_nse
-+# label .statbar.memlabel -text "   Mem: "
-+# label .statbar.memval -textvariable mem_moveable
-+label .statbar.task -textvariable status_task
-+
-+pack .statbar.ptslabel .statbar.ptsval -side left -ipady 3p
-+pack .statbar.elslabel .statbar.elsval -side left -ipady 3p
-+pack .statbar.selslabel .statbar.selsval -side left -ipady 3p
-+
-+# if { $userlevel == 3 } {
-+#    pack .statbar.memlabel .statbar.memval -side left -ipady 3p
-+# }
-+
-+
-+tixMeter .statbar.per -value 0 -text 0%
-+.statbar.per configure -fillcolor blue
-+
-+pack .statbar.per -side right
-+pack .statbar.task -side right -ipady 4
-+
-+set qualbaraxis(0) 0
-+set qualbar(0) 0
-+set qualbarnull(0) 0
-+
-+
-+
-+proc timer2 { } {
-+    global status_np
-+    global status_ne
-+    global status_nse
-+    global multithread_running
-+    global multithread_redraw
-+    global status_working
-+    global status_task
-+    global status_percent
-+    global status_tetqualclasses
-+
-+
-+    Ng_ReadStatus
-+
-+    if { $multithread_redraw == 1 } {
-+      set multithread_redraw 0;
-+      redraw;
-+
-+        global videoactive
-+        if { $videoactive == 1 } {
-+            puts "addframe"
-+            .ndraw Ng_VideoClip addframe
-+        }
-+    }
-+
-+    # global mem_moveable
-+    # set mem_moveable [Ng_MemInfo moveable]
-+
-+
-+    .statbar.per config -value [expr $status_percent/100] -text [format %2.1f [expr 0.1*int(10*$status_percent)]]%
-+
-+
-+    if { $multithread_running } {
-+      pack .statbar.per -side right -before .statbar.task -padx 6
-+    } {
-+      pack forget .statbar.per
-+    }
-+
-+
-+
-+    # tet quality
-+    if {[winfo exists .qualityview_dlg] == 1} {
-+
-+      global qualbar
-+      global qualbarnull
-+      global qualbaraxis
-+
-+      set maxval 0
-+      for {set i 0} {$i < 20} {incr i} {
-+          if {[lindex $status_tetqualclasses $i] > $maxval} {
-+              set maxval [lindex $status_tetqualclasses $i]
-+          }
-+      }
-+
-+      set ubound 1
-+      while { $ubound < $maxval } {
-+          set ubound [expr {10 * $ubound}]
-+      }
-+      if { $ubound/5 > $maxval } {
-+          set ubound [expr $ubound/5]
-+      }
-+      if { $ubound/2 > $maxval } {
-+          set ubound [expr $ubound/2]
-+      }
-+
-+
-+
-+      for {set i 1} {$i <= 5} {incr i} {
-+          # global qualbaraxis($i)
-+
-+          set value [expr { $i * $ubound / 5 }]
-+          .qualityview_dlg.c dchars $qualbaraxis($i) 0 end
-+          .qualityview_dlg.c insert $qualbaraxis($i) end $value
-+      }
-+
-+
-+      for {set i 0} {$i < 20} {incr i} {
-+          set x1 [expr {100 + ($i*15) + 2}]
-+          set x2 [expr {$x1+10}]
-+
-+          set nbrs [lindex $status_tetqualclasses $i]
-+          set y [expr (249 - (200 * $nbrs / $ubound ) )]
-+
-+          # global qualbar($i)
-+          .qualityview_dlg.c coords $qualbar($i) $x1 250 $x2 $y
-+
-+#         global qualbarnull($i)
-+          if { $nbrs == 0 } {
-+              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text 0
-+          } {
-+              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text ""
-+          }
-+      }
-+
-+    }
-+
-+
-+    if {[winfo exists .memuse_dlg] == 1} {
-+
-+      global memmark
-+      set usemb [Ng_MemInfo usedmb]
-+      for {set i 0} {$i < [string length $usemb] } {incr i} {
-+          if { [string index $usemb $i] == 0 } {
-+              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 68 [expr 50+$i] 70
-+          } {
-+              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 50 [expr 50+$i] 70
-+          }
-+      }
-+
-+    }
-+    after 30 { timer2 }
-+}
-+# after 1000 { timer2 }
-+timer2
-+
-+
-+
-+
-+proc bgerror { error } {
-+    global errorInfo userlevel
-+    if { $userlevel == 3} {
-+      puts "ERROR: $error"
-+      puts "errinfo: $errorInfo"
-+    }
-+    tk_messageBox -title "Error Message" -message $error -type ok
-+}
-+
-+
-+
-+
-+
-+
-+proc smh2 { menuitem } {
-+    if {[catch {$menuitem entrycget active -label} name]} {
-+      set name "    "
-+    }
-+    show_menu_help $name
-+    update idletasks
-+}
-+
-+bind .ngmenu <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.file <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.geometry <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.mesh <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.view <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.meshsize <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.special <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.help <<MenuSelect>> { smh2 %W }
-+
-+
-+# command bindings
-+bind . <q> { .ngmenu.file invoke "Quit" }
-+bind . <l><g> { .ngmenu.file invoke "Load Geometry..." }  ;
-+bind . <l><m> { .ngmenu.file invoke "Load Mesh..." }  ;
-+bind . <s><m> { .ngmenu.file invoke "Save Mesh..." }  ;
-+bind . <r><f> { .ngmenu.file activate "Recent Files" }  ;
-+bind . <n><p> { newprimitivedialog }      ; #
-+bind . <e><p> { editprimitivedialog }
-+bind . <e><s> { newsoliddialog }
-+bind . <g><m> { .ngmenu.mesh invoke "Generate Mesh" }  ;
-+
-+
-+
-+
-+
-diff -Naur netgen-5.3.1_SRC_orig/ng/netgen.ocf netgen-5.3.1_SRC_modif/ng/netgen.ocf
---- netgen-5.3.1_SRC_orig/ng/netgen.ocf        2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/netgen.ocf       2018-03-01 15:45:35.126037317 +0300
-@@ -1,32 +1,32 @@
--# Netgen Mesher
--# Boundary Condition Colour Profile
--#
--# Name: netgen.ocf
--#
--# Description: Netgen default colour 
--# profile file for colour based automatic 
--# assignment of boundary condition numbers
--#
--# Format: 
--# [boundary_colours] (mandatory keyword)
--# <num of entries>
--# <bc_num1> <R> <G> <B>
--# <bc_num2> <R> <G> <B>
--# ....
--# ....
--# NOTE: 
--# * Currently, the default Boundary 
--# Condition number assigned to faces without 
--# any colour defined is "1"
--# * Boundary Condition number "0" is invalid, 
--# and should not be used
--
--boundary_colours
--7
--2     0.0000  0.0000  0.0000
--3     1.0000  0.0000  0.0000
--4     0.0000  0.0000  1.0000
--5     1.0000  1.0000  0.0000
--6     0.0000  1.0000  1.0000
--7     1.0000  0.0000  1.0000
--8     1.0000  1.0000  1.0000
-+# Netgen Mesher
-+# Boundary Condition Colour Profile
-+#
-+# Name: netgen.ocf
-+#
-+# Description: Netgen default colour
-+# profile file for colour based automatic
-+# assignment of boundary condition numbers
-+#
-+# Format:
-+# [boundary_colours] (mandatory keyword)
-+# <num of entries>
-+# <bc_num1> <R> <G> <B>
-+# <bc_num2> <R> <G> <B>
-+# ....
-+# ....
-+# NOTE:
-+# * Currently, the default Boundary
-+# Condition number assigned to faces without
-+# any colour defined is "1"
-+# * Boundary Condition number "0" is invalid,
-+# and should not be used
-+
-+boundary_colours
-+7
-+2     0.0000  0.0000  0.0000
-+3     1.0000  0.0000  0.0000
-+4     0.0000  0.0000  1.0000
-+5     1.0000  1.0000  0.0000
-+6     0.0000  1.0000  1.0000
-+7     1.0000  0.0000  1.0000
-+8     1.0000  1.0000  1.0000
-diff -Naur netgen-5.3.1_SRC_orig/ng/parameters.tcl netgen-5.3.1_SRC_modif/ng/parameters.tcl
---- netgen-5.3.1_SRC_orig/ng/parameters.tcl    2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/parameters.tcl   2018-03-01 15:45:35.126037317 +0300
-@@ -1,50 +1,50 @@
--proc setgranularity { gran } {
--#
--#    puts "set granularity $gran"
--#
--    if {$gran == 6} { return }
--    set gran [expr $gran - 1]
--#
--    global options.curvaturesafety
--    set surfcurvlist { 1 1.5 2 3 5 }
--    set options.curvaturesafety [lindex $surfcurvlist $gran]
--
--    global options.segmentsperedge
--    set spelist { 0.3 0.5 1 2 3 }
--    set options.segmentsperedge [lindex $spelist $gran]
--    
--    global stloptions.resthsurfcurvfac
--    set surfcurvfaclist { 0.25 0.5 1 1.5 3 }
--    set stloptions.resthsurfcurvfac [lindex $surfcurvfaclist $gran]
--
--    global stloptions.resthchartdistfac
--    set chartdistfaclist { 0.8 1 1.5 2 5 }
--    set stloptions.resthchartdistfac [lindex $chartdistfaclist $gran]
--
--    global stloptions.resthlinelengthfac
--    set linelengthfaclist { 0.2 0.35 0.5 1.5 3 }
--    set stloptions.resthlinelengthfac [lindex $linelengthfaclist $gran]
--
--    global stloptions.resthcloseedgefac
--    set closeedgefaclist { 0.5 1 2 3.5 5 }
--    set stloptions.resthcloseedgefac [lindex $closeedgefaclist $gran]
--
--      global stloptions.resthminedgelen
--    set minedgelenlist { 0.002 0.02 0.2 1.0 2.0 5.0 10.0 }
--    set stloptions.resthminedgelen [lindex $minedgelenlist $gran]
--      
--    global stloptions.resthedgeanglefac
--    set edgeanglefaclist { 0.25 0.5 1 1.5 3 }
--    set stloptions.resthedgeanglefac [lindex $edgeanglefaclist $gran]
--
--
--    global stloptions.resthsurfmeshcurvfac 
--    set surfmeshcurvlist { 1 1.5 2 3 5 }
--    set stloptions.resthsurfmeshcurvfac [lindex $surfmeshcurvlist $gran]
--
--
--    global options.grading
--    set gradinglist { 0.7 0.5 0.3 0.2 0.1 }
--    set options.grading [lindex $gradinglist $gran]
--    
--}
-+proc setgranularity { gran } {
-+#
-+#    puts "set granularity $gran"
-+#
-+    if {$gran == 6} { return }
-+    set gran [expr $gran - 1]
-+#
-+    global options.curvaturesafety
-+    set surfcurvlist { 1 1.5 2 3 5 }
-+    set options.curvaturesafety [lindex $surfcurvlist $gran]
-+
-+    global options.segmentsperedge
-+    set spelist { 0.3 0.5 1 2 3 }
-+    set options.segmentsperedge [lindex $spelist $gran]
-+
-+    global stloptions.resthsurfcurvfac
-+    set surfcurvfaclist { 0.25 0.5 1 1.5 3 }
-+    set stloptions.resthsurfcurvfac [lindex $surfcurvfaclist $gran]
-+
-+    global stloptions.resthchartdistfac
-+    set chartdistfaclist { 0.8 1 1.5 2 5 }
-+    set stloptions.resthchartdistfac [lindex $chartdistfaclist $gran]
-+
-+    global stloptions.resthlinelengthfac
-+    set linelengthfaclist { 0.2 0.35 0.5 1.5 3 }
-+    set stloptions.resthlinelengthfac [lindex $linelengthfaclist $gran]
-+
-+    global stloptions.resthcloseedgefac
-+    set closeedgefaclist { 0.5 1 2 3.5 5 }
-+    set stloptions.resthcloseedgefac [lindex $closeedgefaclist $gran]
-+
-+      global stloptions.resthminedgelen
-+    set minedgelenlist { 0.002 0.02 0.2 1.0 2.0 5.0 10.0 }
-+    set stloptions.resthminedgelen [lindex $minedgelenlist $gran]
-+
-+    global stloptions.resthedgeanglefac
-+    set edgeanglefaclist { 0.25 0.5 1 1.5 3 }
-+    set stloptions.resthedgeanglefac [lindex $edgeanglefaclist $gran]
-+
-+
-+    global stloptions.resthsurfmeshcurvfac
-+    set surfmeshcurvlist { 1 1.5 2 3 5 }
-+    set stloptions.resthsurfmeshcurvfac [lindex $surfmeshcurvlist $gran]
-+
-+
-+    global options.grading
-+    set gradinglist { 0.7 0.5 0.3 0.2 0.1 }
-+    set options.grading [lindex $gradinglist $gran]
-+
-+}
-diff -Naur netgen-5.3.1_SRC_orig/ng/variables.tcl netgen-5.3.1_SRC_modif/ng/variables.tcl
---- netgen-5.3.1_SRC_orig/ng/variables.tcl     2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/variables.tcl    2018-03-01 15:45:35.127037209 +0300
-@@ -1,706 +1,706 @@
--# netgen global tcl-variables
--
--set drawmode rotate
--set selectvisual geometry
--
--set dirname .
--set loadgeomtypevar "All Geometry types"
--
--set basefilename filename
--
--set meshoptions.fineness 3
--set meshoptions.firststep ag
--set meshoptions.laststep ov
--set options.memory 0
--
--set options.localh 1
--set options.delaunay 1
--set options.checkoverlap 1
--set options.checkoverlappingboundary 0
--set options.checkchartboundary 1
--set options.startinsurface 0
--set options.blockfill 1
--set options.debugmode 0
--set options.dooptimize 1
--set options.parthread 1
--set options.elsizeweight 0.2
--set options.secondorder 0
--set options.elementorder 1
--set options.quad 0
--set options.inverttets 0
--set options.inverttrigs 0
--set options.autozrefine 0
--
--
--set options.meshsize 1000
--set options.minmeshsize 0
--
--set options.curvaturesafety 2
--set options.segmentsperedge 2
--set options.meshsizefilename ""
--set options.badellimit 175
--set options.optsteps2d 3
--set options.optsteps3d 5
--set options.opterrpow 2
--
--set options.grading 0.5
--set options.printmsg 2
--
--set debug.slowchecks 0
--set debug.debugoutput 0
--set debug.haltexistingline 0
--set debug.haltoverlap 0
--set debug.haltsuccess 0
--set debug.haltnosuccess 0
--set debug.haltlargequalclass 0
--set debug.haltsegment 0
--set debug.haltnode 0
--set debug.haltface 0
--set debug.haltfacenr 0
--set debug.haltsegmentp1 0
--set debug.haltsegmentp2 0
--
--set geooptions.drawcsg 1
--set geooptions.detail 0.001
--set geooptions.accuracy 1e-6
--set geooptions.facets 20
--set geooptions.minx -1000
--set geooptions.miny -1000
--set geooptions.minz -1000
--set geooptions.maxx 1000
--set geooptions.maxy 1000
--set geooptions.maxz 1000
--
--set viewqualityplot 0
--set memuseplot 0
--set viewrotatebutton 0
--set showsensitivehelp 0
--set showhelpline 0
--
--set viewoptions.specpointvlen 0.3
--set viewoptions.light.amb 0.3
--set viewoptions.light.diff 0.7
--set viewoptions.light.spec 1
--set viewoptions.light.locviewer 0
--set viewoptions.mat.shininess 50
--set viewoptions.mat.transp 0.3
--set viewoptions.colormeshsize 0
--set viewoptions.whitebackground 1
--set viewoptions.drawcoordinatecross 1
--set viewoptions.drawcolorbar 1
--set viewoptions.drawnetgenlogo 1
--set viewoptions.stereo 0
--set viewoptions.shrink 1
--
--set viewoptions.drawfilledtrigs 1
--set viewoptions.drawedges 0
--set viewoptions.drawbadels 0
--set viewoptions.centerpoint 0
--set viewoptions.drawelement 0
--set viewoptions.drawoutline 1
--set viewoptions.drawtets 0
--set viewoptions.drawtetsdomain 0
--set viewoptions.drawprisms 0
--set viewoptions.drawpyramids 0
--set viewoptions.drawhexes 0
--set viewoptions.drawidentified 0
--set viewoptions.drawpointnumbers 0
--set viewoptions.drawedgenumbers 0
--set viewoptions.drawfacenumbers 0
--set viewoptions.drawelementnumbers 0
--set viewoptions.drawdomainsurf 0
--
--set viewoptions.drawededges 1
--set viewoptions.drawedpoints 1
--set viewoptions.drawedpointnrs 0
--set viewoptions.drawedtangents 0
--set viewoptions.drawededgenrs 0
--set viewoptions.drawmetispartition 0
--
--set viewoptions.drawcurveproj 0
--set viewoptions.drawcurveprojedge 1
--
--set viewoptions.clipping.nx 0
--set viewoptions.clipping.ny 1
--set viewoptions.clipping.nz 0
--set viewoptions.clipping.dist 0
--set viewoptions.clipping.dist2 0
--set viewoptions.clipping.enable 0
--set viewoptions.clipping.onlydomain 0
--set viewoptions.clipping.notdomain 0
--
--set viewoptions.usecentercoords 0
--set viewoptions.centerx 0
--set viewoptions.centery 0
--set viewoptions.centerz 0
--
--set viewoptions.drawspecpoint 0
--set viewoptions.specpointx 0
--set viewoptions.specpointy 0
--set viewoptions.specpointz 0
--
--
--set stloptions.showtrias 0
--set stloptions.showfilledtrias 1
--set stloptions.showedges 1
--set stloptions.showmarktrias 0
--set stloptions.showactivechart 0
--set stloptions.yangle 30
--set stloptions.contyangle 20
--set stloptions.edgecornerangle 60
--set stloptions.chartangle 15
--set stloptions.outerchartangle 70
--set stloptions.usesearchtree 0
--set stloptions.chartnumber 1
--set stloptions.charttrignumber 1
--set stloptions.chartnumberoffset 0
--
--set stloptions.atlasminh 0.1
--set stloptions.resthsurfcurvfac 2
--set stloptions.resthsurfcurvenable 0
--set stloptions.resthatlasfac 2
--set stloptions.resthatlasenable 1
--set stloptions.resthchartdistfac 1.2
--set stloptions.resthchartdistenable 1
--set stloptions.resthlinelengthfac 0.5
--set stloptions.resthlinelengthenable 1
--set stloptions.resthcloseedgefac 1
--set stloptions.resthcloseedgeenable 1
--set stloptions.resthminedgelen 0.01
--set stloptions.resthminedgelenenable 1
--set stloptions.resthedgeanglefac 1
--set stloptions.resthedgeangleenable 0
--set stloptions.resthsurfmeshcurvfac 1
--set stloptions.resthsurfmeshcurvenable 0
--set stloptions.recalchopt 1
--
--set stldoctor.drawmeshededges 1
--set stldoctor.geom_tol_fact 0.000001
--set stldoctor.useexternaledges 0
--set stldoctor.showfaces 0
--set stldoctor.conecheck 1
--set stldoctor.spiralcheck 1
--set stldoctor.selecttrig 0
--set stldoctor.selectmode 1
--set stldoctor.longlinefact 0
--set stldoctor.showexcluded 1
--set stldoctor.edgeselectmode 0
--set stldoctor.nodeofseltrig 1
--set stldoctor.showtouchedtrigchart 0
--set stldoctor.showedgecornerpoints 0
--set stldoctor.showmarkedtrigs 1
--set stldoctor.dirtytrigfact 0.01
--set stldoctor.smoothangle 90
--set stldoctor.selectwithmouse 1
--set stldoctor.showvicinity 0
--set stldoctor.vicinity 50
--set stldoctor.smoothnormalsweight 0.2
--
--set occoptions.showvolumenr 0
--set occoptions.showsurfaces 1
--set occoptions.showedges 1
--set occoptions.showsolidnr 0
--set occoptions.showsolidnr2 0
--set occoptions.visproblemfaces 0
--set occoptions.zoomtohighlightedentity 0
--set occoptions.deflection 1
--set occoptions.tolerance 1e-3
--set occoptions.fixsmalledges 1
--set occoptions.fixspotstripfaces 1
--set occoptions.sewfaces 1
--set occoptions.makesolids 1
--set occoptions.splitpartitions 0
--
--set meshdoctor.active 0
--set meshdoctor.markedgedist 1
--
--
--# variablenname mit punkt problematisch!
--set status_np 0
--set status_ne 0
--set status_nse 0
--set status_working " "
--set status_task " "
--set status_percent 0
--set status_filename 0
--set status_tetqualclasses "10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40"
--
--set exportfiletype "Neutral Format"
--
--set preproc.facenr 0
--set preproc.selectmode query
--set preproc.numtrig 0
--
--set mem_moveable 0
--
--
--set multithread_pause 0
--set multithread_testmode 0
--set multithread_redraw 0
--set multithread_drawing 0
--set multithread_terminate 0
--set multithread_running 0
--
--set level 0
--
--
--set tablesforoutput {}
--
--
--
--set optlist {
--    options.localh 
--    options.delaunay 
--    options.checkoverlap 
--    options.startinsurface 
--    options.blockfill 
--    options.dooptimize 
--    options.elsizeweight 
--    options.meshsize 
--    options.minmeshsize 
--    options.curvaturesafety 
--    options.optsteps2d 
--    options.optsteps3d 
--    options.secondorder
--}
--
--
--set visoptions.usetexture 1
--set visoptions.invcolor 0
--set visoptions.imaginary 0
--set visoptions.lineartexture 0
--set visoptions.numtexturecols 16
--set visoptions.showclipsolution 1
--set visoptions.showsurfacesolution 0
--set visoptions.drawfieldlines 0
--set visoptions.drawpointcurves 1
--set visoptions.numfieldlines 100
--set visoptions.fieldlinesrandomstart 0
--set visoptions.fieldlinesstartarea box
--set visoptions.fieldlinesstartareap1x 1
--set visoptions.fieldlinesstartareap1y 1
--set visoptions.fieldlinesstartareap1z 1
--set visoptions.fieldlinesstartareap2x 0
--set visoptions.fieldlinesstartareap2y 0
--set visoptions.fieldlinesstartareap2z 0
--set visoptions.fieldlinesstartface -1
--set visoptions.fieldlinesfilename none
--set visoptions.fieldlinestolerance 0.0005
--set visoptions.fieldlinesrktype crungekutta
--set visoptions.fieldlineslength 0.5
--set visoptions.fieldlinesmaxpoints 500
--set visoptions.fieldlinesthickness 0.0015
--set visoptions.fieldlinesvecfunction none
--set visoptions.fieldlinesphase 0
--set visoptions.fieldlinesonlyonephase 1
--
--
--set visoptions.lineplotfile empty
--set visoptions.lineplotsource file
--set visoptions.lineplotusingx 0
--set visoptions.lineplotusingy 1
--set visoptions.lineplotautoscale 1
--set visoptions.lineplotxmin 0
--set visoptions.lineplotxmax 1
--set visoptions.lineplotymin 0
--set visoptions.lineplotymax 1
--set visoptions.lineplotcurrentnum -1
--set visoptions.lineplotinfos ""
--set visoptions.lineplotselected none
--set visoptions.lineplotselector ""
--set visoptions.lineplotcolor red
--set visoptions.lineplotsizex 500
--set visoptions.lineplotsizey 400
--set visoptions.lineplotselectedeval 0
--set visoptions.lineplotdatadescr "column1 column2 column3"
--set visoptions.lineplotxcoordselector ""
--set visoptions.lineplotycoordselector ""
--set visoptions.evaluatefilenames none
--set visoptions.evaluatefiledescriptions none
--
--
--set visoptions.clipsolution none
--set visoptions.scalfunction none
--set visoptions.vecfunction none
--set visoptions.evaluate abs
--set visoptions.gridsize 20
--set visoptions.xoffset 0
--set visoptions.yoffset 0
--set visoptions.autoscale 1
--set visoptions.redrawperiodic 0
--set visoptions.logscale 0
--set visoptions.mminval 0
--set visoptions.mmaxval 1
--set visoptions.isolines 0
--set visoptions.isosurf 0
--set visoptions.subdivisions 1
--set visoptions.numiso 10
--set visoptions.autoredraw 0
--set visoptions.autoredrawtime 2
--set visoptions.simulationtime 0
--set visoptions.multidimcomponent 0
--
--# deform by vector function
--set visoptions.deformation 0
--set visoptions.scaledeform1 1
--set visoptions.scaledeform2 1
--
--set parallel_netgen 0
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--set optfilename [file join $nguserdir ng.opt]
--set inifilename [file join $nguserdir ng.ini]
--set meshinifilename [file join $nguserdir ngmesh.ini]
--
--global env
--if { [llength [array names env NG_OPT]] == 1 } {
--    if { [string length $env(NG_OPT)] > 0 } {
--      set optfilename $env(NG_OPT) 
--    }
--}
--
--if { [file exists $optfilename] == 1 } {
--    set datei [open $optfilename r]
--    while { [gets $datei line] >= 0 } {
--      set [lindex $line 0] [lindex $line 1]
--    }
--    close $datei
--} {
--    puts "optfile $optfilename does not exist - using default values"
--}
--
--
--
--
--proc saveoptions { } {
--    uplevel 1  {
--      set file $optfilename
--      
--      if {$file != ""} {
--          set datei [open $file w]
--          puts $datei "dirname  ${dirname}"
--          puts $datei "loadgeomtypevar  \"${loadgeomtypevar}\""
--          puts $datei "exportfiletype  \"${exportfiletype}\""
--          puts $datei "meshoptions.fineness  ${meshoptions.fineness}"
--          puts $datei "meshoptions.firststep ${meshoptions.firststep}"
--          puts $datei "meshoptions.laststep  ${meshoptions.laststep}" 
--          puts $datei "options.localh  ${options.localh}"
--          puts $datei "options.delaunay  ${options.delaunay}"
--          puts $datei "options.checkoverlap  ${options.checkoverlap}"
--          puts $datei "options.checkchartboundary  ${options.checkchartboundary}"
--          puts $datei "options.startinsurface  ${options.startinsurface}" 
--          puts $datei "options.blockfill  ${options.blockfill}" 
--          puts $datei "options.debugmode  ${options.debugmode}" 
--          puts $datei "options.dooptimize ${options.dooptimize}" 
--          puts $datei "options.parthread  ${options.parthread}"  
--          puts $datei "options.elsizeweight  ${options.elsizeweight}" 
--          puts $datei "options.secondorder  ${options.secondorder}" 
--          puts $datei "options.elementorder  ${options.elementorder}" 
--#         puts $datei "options.memory  ${options.memory}" 
--          puts $datei "options.quad  ${options.quad}" 
--          puts $datei "options.inverttets  ${options.inverttets}" 
--          puts $datei "options.inverttrigs  ${options.inverttrigs}" 
--          puts $datei "options.autozrefine ${options.autozrefine}" 
--          puts $datei "options.meshsize  ${options.meshsize}" 
--          puts $datei "options.minmeshsize  ${options.minmeshsize}" 
--          puts $datei "options.curvaturesafety  ${options.curvaturesafety}" 
--          puts $datei "options.segmentsperedge  ${options.segmentsperedge}" 
--          puts $datei "options.meshsizefilename  ${options.meshsizefilename}" 
--          puts $datei "options.badellimit  ${options.badellimit}" 
--          puts $datei "options.optsteps2d  ${options.optsteps2d}" 
--          puts $datei "options.optsteps3d  ${options.optsteps3d}" 
--          puts $datei "options.opterrpow  ${options.opterrpow}" 
--          puts $datei "options.grading  ${options.grading}" 
--          puts $datei "options.printmsg  ${options.printmsg}" 
--          puts $datei "geooptions.drawcsg  ${geooptions.drawcsg}" 
--          puts $datei "geooptions.detail  ${geooptions.detail}" 
--          puts $datei "geooptions.accuracy  ${geooptions.accuracy}" 
--          puts $datei "geooptions.facets  ${geooptions.facets}" 
--          puts $datei "geooptions.minx  ${geooptions.minx}" 
--          puts $datei "geooptions.miny  ${geooptions.miny}" 
--          puts $datei "geooptions.minz  ${geooptions.minz}" 
--          puts $datei "geooptions.maxx  ${geooptions.maxx}" 
--          puts $datei "geooptions.maxy  ${geooptions.maxy}" 
--          puts $datei "geooptions.maxz  ${geooptions.maxz}" 
--          puts $datei "viewoptions.specpointvlen  ${viewoptions.specpointvlen}" 
--          puts $datei "viewoptions.light.amb  ${viewoptions.light.amb}" 
--          puts $datei "viewoptions.light.diff ${viewoptions.light.diff}"
--          puts $datei "viewoptions.light.spec ${viewoptions.light.spec}"
--          puts $datei "viewoptions.light.locviewer ${viewoptions.light.locviewer}"
--          puts $datei "viewoptions.mat.shininess  ${viewoptions.mat.shininess}" 
--          puts $datei "viewoptions.mat.transp  ${viewoptions.mat.transp}" 
--          puts $datei "viewoptions.colormeshsize ${viewoptions.colormeshsize}"
--          puts $datei "viewoptions.whitebackground  ${viewoptions.whitebackground}" 
--          puts $datei "viewoptions.drawcolorbar  ${viewoptions.drawcolorbar}" 
--          puts $datei "viewoptions.drawcoordinatecross  ${viewoptions.drawcoordinatecross}" 
--          puts $datei "viewoptions.drawnetgenlogo  ${viewoptions.drawnetgenlogo}" 
--          puts $datei "viewoptions.stereo  ${viewoptions.stereo}" 
--          puts $datei "viewoptions.drawfilledtrigs  ${viewoptions.drawfilledtrigs}" 
--          puts $datei "viewoptions.drawedges  ${viewoptions.drawedges}" 
--          puts $datei "viewoptions.drawbadels  ${viewoptions.drawbadels}" 
--          puts $datei "viewoptions.centerpoint  ${viewoptions.centerpoint}" 
--          puts $datei "viewoptions.drawelement  ${viewoptions.drawelement}" 
--          puts $datei "viewoptions.drawoutline  ${viewoptions.drawoutline}" 
--          puts $datei "viewoptions.drawtets  ${viewoptions.drawtets}"
--          puts $datei "viewoptions.drawprisms  ${viewoptions.drawprisms}"
--          puts $datei "viewoptions.drawpyramids  ${viewoptions.drawpyramids}" 
--          puts $datei "viewoptions.drawhexes  ${viewoptions.drawhexes}" 
--          puts $datei "viewoptions.drawidentified  ${viewoptions.drawidentified}" 
--          puts $datei "viewoptions.drawpointnumbers  ${viewoptions.drawpointnumbers}" 
--          
--          puts $datei "viewoptions.drawededges  ${viewoptions.drawededges}" 
--          puts $datei "viewoptions.drawedpoints  ${viewoptions.drawedpoints}" 
--          puts $datei "viewoptions.drawedpointnrs  ${viewoptions.drawedpointnrs}" 
--          puts $datei "viewoptions.drawedtangents  ${viewoptions.drawedtangents}" 
--          puts $datei "viewoptions.shrink  ${viewoptions.shrink}" 
--          
--          puts $datei "stloptions.showtrias  ${stloptions.showtrias}" 
--          puts $datei "stloptions.showfilledtrias  ${stloptions.showfilledtrias}" 
--          puts $datei "stloptions.showedges  ${stloptions.showedges}" 
--          puts $datei "stloptions.showmarktrias  ${stloptions.showmarktrias}" 
--          puts $datei "stloptions.showactivechart  ${stloptions.showactivechart}" 
--          puts $datei "stloptions.yangle  ${stloptions.yangle}" 
--          puts $datei "stloptions.contyangle  ${stloptions.contyangle}" 
--          puts $datei "stloptions.edgecornerangle  ${stloptions.edgecornerangle}" 
--          puts $datei "stloptions.chartangle  ${stloptions.chartangle}" 
--          puts $datei "stloptions.outerchartangle  ${stloptions.outerchartangle}" 
--          puts $datei "stloptions.usesearchtree  ${stloptions.usesearchtree}" 
--          puts $datei "stloptions.chartnumber  ${stloptions.chartnumber}" 
--          puts $datei "stloptions.charttrignumber  ${stloptions.charttrignumber}" 
--          puts $datei "stloptions.chartnumberoffset  ${stloptions.chartnumberoffset}" 
--          puts $datei "stloptions.atlasminh  ${stloptions.atlasminh}" 
--          puts $datei "stloptions.resthsurfcurvfac  ${stloptions.resthsurfcurvfac}" 
--          puts $datei "stloptions.resthsurfcurvenable  ${stloptions.resthsurfcurvenable}" 
--          puts $datei "stloptions.resthatlasfac  ${stloptions.resthatlasfac}" 
--          puts $datei "stloptions.resthatlasenable  ${stloptions.resthatlasenable}" 
--          puts $datei "stloptions.resthchartdistfac  ${stloptions.resthchartdistfac}" 
--          puts $datei "stloptions.resthchartdistenable  ${stloptions.resthchartdistenable}" 
--          puts $datei "stloptions.resthlinelengthfac  ${stloptions.resthlinelengthfac}" 
--          puts $datei "stloptions.resthlinelengthenable  ${stloptions.resthlinelengthenable}" 
--              puts $datei "stloptions.resthminedgelen ${stloptions.resthminedgelen}"
--              puts $datei "stloptions.resthminedgelenenable ${stloptions.resthminedgelenenable}"
--          puts $datei "stloptions.resthcloseedgefac  ${stloptions.resthcloseedgefac}" 
--          puts $datei "stloptions.resthcloseedgeenable  ${stloptions.resthcloseedgeenable}" 
--          puts $datei "stloptions.resthedgeanglefac  ${stloptions.resthedgeanglefac}" 
--          puts $datei "stloptions.resthedgeangleenable  ${stloptions.resthedgeangleenable}" 
--          puts $datei "stloptions.resthsurfmeshcurvfac  ${stloptions.resthsurfmeshcurvfac}" 
--          puts $datei "stloptions.resthsurfmeshcurvenable  ${stloptions.resthsurfmeshcurvenable}" 
--          puts $datei "stloptions.recalchopt  ${stloptions.recalchopt}" 
--          
--          puts $datei "visoptions.subdivisions ${visoptions.subdivisions}"
--          puts $datei "visoptions.autoredraw ${visoptions.autoredraw}"
--          puts $datei "visoptions.autoredrawtime ${visoptions.autoredrawtime}"
--
--
--          # trafo options   
--          # if exist trafooptions then ...
--          if { [info exists trafooptions.solver] == 1 } {
--              puts $datei "trafooptions.solver ${trafooptions.solver}" 
--              puts $datei "trafooptions.levels ${trafooptions.levels}" 
--              puts $datei "trafooptions.linits ${trafooptions.linits}" 
--              puts $datei "trafooptions.nonlinits ${trafooptions.nonlinits}" 
--              puts $datei "trafooptions.stabcurrent ${trafooptions.stabcurrent}" 
--              puts $datei "trafooptions.checkcond ${trafooptions.checkcond}" 
--              puts $datei "trafooptions.maxdirect ${trafooptions.maxdirect}" 
--              puts $datei "trafooptions.secondorder ${trafooptions.secondorder}" 
--              puts $datei "trafooptions.homogenizedcore ${trafooptions.homogenizedcore}" 
--              puts $datei "trafooptions.ordercore ${trafooptions.ordercore}" 
--              puts $datei "trafooptions.simplecurrents ${trafooptions.simplecurrents}" 
--              puts $datei "trafooptions.assemblecomplexmatrix ${trafooptions.assemblecomplexmatrix}" 
--
--              puts $datei "trafooptions.meshcasing  ${trafooptions.meshcasing}" 
--              puts $datei "trafooptions.meshcore    ${trafooptions.meshcore}" 
--              puts $datei "trafooptions.meshclumps  ${trafooptions.meshclumps}" 
--              puts $datei "trafooptions.meshshields ${trafooptions.meshshields}" 
--              puts $datei "trafooptions.meshcoils   ${trafooptions.meshcoils}" 
--              puts $datei "trafooptions.bcmdirectory  ${trafooptions.bcmdirectory}" 
--              puts $datei "trafooptions.lossdensityfile  ${trafooptions.lossdensityfile}" 
--          }
--
--          if { [info exists smalltrafomodell.tankheight] == 1 } {
--              puts $datei "smalltrafomodell.tankheight ${smalltrafomodell.tankheight}"
--              puts $datei "smalltrafomodell.tankwidth ${smalltrafomodell.tankwidth}"
--              puts $datei "smalltrafomodell.tanklength ${smalltrafomodell.tanklength}"
--              puts $datei "smalltrafomodell.corewidth ${smalltrafomodell.corewidth}"
--              puts $datei "smalltrafomodell.windowheight ${smalltrafomodell.windowheight}"
--              puts $datei "smalltrafomodell.limbdistance ${smalltrafomodell.limbdistance}"
--              puts $datei "smalltrafomodell.xposcore ${smalltrafomodell.xposcore}"
--              puts $datei "smalltrafomodell.yposcore ${smalltrafomodell.yposcore}"
--              puts $datei "smalltrafomodell.zposcore ${smalltrafomodell.zposcore}"
--              puts $datei "smalltrafomodell.leakagefluxguidethickness ${smalltrafomodell.leakagefluxguidethickness}"
--              puts $datei "smalltrafomodell.leakagefluxguidewidth ${smalltrafomodell.leakagefluxguidewidth}"
--              puts $datei "smalltrafomodell.leakagefluxguidezposition ${smalltrafomodell.leakagefluxguidezposition}"
--              puts $datei "smalltrafomodell.limbcoil.1 ${smalltrafomodell.limbcoil.1}"
--              puts $datei "smalltrafomodell.ricoil.1 ${smalltrafomodell.ricoil.1}"
--              puts $datei "smalltrafomodell.rocoil.1 ${smalltrafomodell.rocoil.1}"
--              puts $datei "smalltrafomodell.zposcoil.1 ${smalltrafomodell.zposcoil.1}"
--              puts $datei "smalltrafomodell.heightcoil.1 ${smalltrafomodell.heightcoil.1}"
--              puts $datei "smalltrafomodell.currentcoil.1 ${smalltrafomodell.currentcoil.1}"
--              puts $datei "smalltrafomodell.nturnscoil.1 ${smalltrafomodell.nturnscoil.1}"
--              puts $datei "smalltrafomodell.limbcoil.2 ${smalltrafomodell.limbcoil.2}"
--              puts $datei "smalltrafomodell.ricoil.2 ${smalltrafomodell.ricoil.2}"
--              puts $datei "smalltrafomodell.rocoil.2 ${smalltrafomodell.rocoil.2}"
--              puts $datei "smalltrafomodell.zposcoil.2 ${smalltrafomodell.zposcoil.2}"
--              puts $datei "smalltrafomodell.heightcoil.2 ${smalltrafomodell.heightcoil.2}"
--              puts $datei "smalltrafomodell.currentcoil.2 ${smalltrafomodell.currentcoil.2}"
--              puts $datei "smalltrafomodell.nturnscoil.2 ${smalltrafomodell.nturnscoil.2}"
--              puts $datei "smalltrafomodell.limbcoil.3 ${smalltrafomodell.limbcoil.3}"
--              puts $datei "smalltrafomodell.ricoil.3 ${smalltrafomodell.ricoil.3}"
--              puts $datei "smalltrafomodell.rocoil.3 ${smalltrafomodell.rocoil.3}"
--              puts $datei "smalltrafomodell.zposcoil.3 ${smalltrafomodell.zposcoil.3}"
--              puts $datei "smalltrafomodell.heightcoil.3 ${smalltrafomodell.heightcoil.3}"
--              puts $datei "smalltrafomodell.currentcoil.3 ${smalltrafomodell.currentcoil.3}"
--              puts $datei "smalltrafomodell.nturnscoil.3 ${smalltrafomodell.nturnscoil.3}"
--              puts $datei "smalltrafomodell.limbcoil.4 ${smalltrafomodell.limbcoil.4}"
--              puts $datei "smalltrafomodell.ricoil.4 ${smalltrafomodell.ricoil.4}"
--              puts $datei "smalltrafomodell.rocoil.4 ${smalltrafomodell.rocoil.4}"
--              puts $datei "smalltrafomodell.zposcoil.4 ${smalltrafomodell.zposcoil.4}"
--              puts $datei "smalltrafomodell.heightcoil.4 ${smalltrafomodell.heightcoil.4}"
--              puts $datei "smalltrafomodell.currentcoil.4 ${smalltrafomodell.currentcoil.4}"
--              puts $datei "smalltrafomodell.nturnscoil.4 ${smalltrafomodell.nturnscoil.4}"
--              puts $datei "smalltrafomodell.limbcoil.5 ${smalltrafomodell.limbcoil.5}"
--              puts $datei "smalltrafomodell.ricoil.5 ${smalltrafomodell.ricoil.5}"
--              puts $datei "smalltrafomodell.rocoil.5 ${smalltrafomodell.rocoil.5}"
--              puts $datei "smalltrafomodell.zposcoil.5 ${smalltrafomodell.zposcoil.5}"
--              puts $datei "smalltrafomodell.heightcoil.5 ${smalltrafomodell.heightcoil.5}"
--              puts $datei "smalltrafomodell.currentcoil.5 ${smalltrafomodell.currentcoil.5}"
--              puts $datei "smalltrafomodell.nturnscoil.5 ${smalltrafomodell.nturnscoil.5}"
--              puts $datei "smalltrafomodell.limbcoil.6 ${smalltrafomodell.limbcoil.6}"
--              puts $datei "smalltrafomodell.ricoil.6 ${smalltrafomodell.ricoil.6}"
--              puts $datei "smalltrafomodell.rocoil.6 ${smalltrafomodell.rocoil.6}"
--              puts $datei "smalltrafomodell.zposcoil.6 ${smalltrafomodell.zposcoil.6}"
--              puts $datei "smalltrafomodell.heightcoil.6 ${smalltrafomodell.heightcoil.6}"
--              puts $datei "smalltrafomodell.currentcoil.6 ${smalltrafomodell.currentcoil.6}"
--              puts $datei "smalltrafomodell.nturnscoil.6 ${smalltrafomodell.nturnscoil.6}"
--              puts $datei "smalltrafomodell.limbtest.1 ${smalltrafomodell.limbtest.1}"
--              puts $datei "smalltrafomodell.heighttest.1 ${smalltrafomodell.heighttest.1}"
--              puts $datei "smalltrafomodell.widthtest.1 ${smalltrafomodell.widthtest.1}"
--              puts $datei "smalltrafomodell.rtest.1 ${smalltrafomodell.rtest.1}"
--              puts $datei "smalltrafomodell.zpostest.1 ${smalltrafomodell.zpostest.1}"
--              puts $datei "smalltrafomodell.edgeradiustest.1 ${smalltrafomodell.edgeradiustest.1}"
--              puts $datei "smalltrafomodell.finetest.1 ${smalltrafomodell.finetest.1}"
--              puts $datei "smalltrafomodell.conductivetest.1 ${smalltrafomodell.conductivetest.1}"
--              puts $datei "smalltrafomodell.limbtest.2 ${smalltrafomodell.limbtest.2}"
--              puts $datei "smalltrafomodell.heighttest.2 ${smalltrafomodell.heighttest.2}"
--              puts $datei "smalltrafomodell.widthtest.2 ${smalltrafomodell.widthtest.2}"
--              puts $datei "smalltrafomodell.rtest.2 ${smalltrafomodell.rtest.2}"
--              puts $datei "smalltrafomodell.zpostest.2 ${smalltrafomodell.zpostest.2}"
--              puts $datei "smalltrafomodell.edgeradiustest.2 ${smalltrafomodell.edgeradiustest.2}"
--              puts $datei "smalltrafomodell.finetest.2 ${smalltrafomodell.finetest.2}"
--              puts $datei "smalltrafomodell.conductivetest.2 ${smalltrafomodell.conductivetest.2}"
--              puts $datei "smalltrafomodell.limbtest.3 ${smalltrafomodell.limbtest.3}"
--              puts $datei "smalltrafomodell.heighttest.3 ${smalltrafomodell.heighttest.3}"
--              puts $datei "smalltrafomodell.widthtest.3 ${smalltrafomodell.widthtest.3}"
--              puts $datei "smalltrafomodell.rtest.3 ${smalltrafomodell.rtest.3}"
--              puts $datei "smalltrafomodell.zpostest.3 ${smalltrafomodell.zpostest.3}"
--              puts $datei "smalltrafomodell.edgeradiustest.3 ${smalltrafomodell.edgeradiustest.3}"
--              puts $datei "smalltrafomodell.finetest.3 ${smalltrafomodell.finetest.3}"
--              puts $datei "smalltrafomodell.conductivetest.3 ${smalltrafomodell.conductivetest.3}"
--              puts $datei "smalltrafomodell.limbtest.4 ${smalltrafomodell.limbtest.4}"
--              puts $datei "smalltrafomodell.heighttest.4 ${smalltrafomodell.heighttest.4}"
--              puts $datei "smalltrafomodell.widthtest.4 ${smalltrafomodell.widthtest.4}"
--              puts $datei "smalltrafomodell.rtest.4 ${smalltrafomodell.rtest.4}"
--              puts $datei "smalltrafomodell.zpostest.4 ${smalltrafomodell.zpostest.4}"
--              puts $datei "smalltrafomodell.edgeradiustest.4 ${smalltrafomodell.edgeradiustest.4}"
--              puts $datei "smalltrafomodell.finetest.4 ${smalltrafomodell.finetest.4}"
--              puts $datei "smalltrafomodell.conductivetest.4 ${smalltrafomodell.conductivetest.4}"
--              puts $datei "smalltrafomodell.nperitest ${smalltrafomodell.nperitest}"
--              puts $datei "smalltrafomodell.filename ${smalltrafomodell.filename}"
--              puts $datei "smalltrafomodell.murlfguide ${smalltrafomodell.murlfguide}"
--              puts $datei "smalltrafomodell.murtestwire ${smalltrafomodell.murtestwire}"
--              puts $datei "smalltrafomodell.murcore ${smalltrafomodell.murcore}"
--              puts $datei "smalltrafomodell.kappalfguide ${smalltrafomodell.kappalfguide}"
--              puts $datei "smalltrafomodell.kappatestwire ${smalltrafomodell.kappatestwire}"
--              puts $datei "smalltrafomodell.kappacore ${smalltrafomodell.kappacore}"
--          }
--          
--          
--          close $datei
--      }
--    }
--}
--
--
--
--
--# the ini file is saved on demand :
--proc saveinifile { } {
--    global inifilename
--    if {[catch { set datei [open $inifilename w] } result ]} {
--      puts "cannot write file $inifilename"
--    } {
--      for { set i [.ngmenu.file.recent index last] } { $i >= 1 } { incr i -1 } {
--          puts $datei "recentfile \"[.ngmenu.file.recent entrycget $i -label]\""
--      }
--      close $datei
--    }    
--}
--
--
--proc savemeshinifile { } {
--    global meshinifilename 
--    if {[catch { set datei [open $meshinifilename w] } result ]} {
--      puts "cannot write file $meshinifilename"
--    } {
--      for { set i [.ngmenu.file.recentmesh index last] } { $i >= 1 } { incr i -1 } {
--          puts $datei "recentfile \"[.ngmenu.file.recentmesh entrycget $i -label]\""
--      }
--      close $datei
--    }    
--}
--
--
--
--proc loadinifile { } { 
--    global inifilename
--    if { [file exists $inifilename] == 1 } {
--      set datei [open $inifilename r]
--      while { [gets $datei line] >= 0 } {
--          if {[lindex $line 0] == "recentfile"} {
--                  set filename [lindex $line 1]
--                  if { [file exists $filename] == 1 } {
--                      AddRecentFile $filename
--                  }   
--          }
--      }
--      close $datei
--    }
--}
--
--
--proc loadmeshinifile { } {
--    global meshinifilename
--    if { [file exists $meshinifilename] == 1 } {
--      set datei [open $meshinifilename r]
--      while { [gets $datei line] >= 0 } {
--          if {[lindex $line 0] == "recentfile"} {
--              set filename [lindex $line 1]
--              if { [file exists $filename] == 1 } {
--                  AddRecentMeshFile $filename
--              }       
--          }
--      }
--      close $datei
--    }
-- }
--
--
--
--
--
--set cmdindex {}
--set hlpindex {}
--set secindex {}
-+# netgen global tcl-variables
-+
-+set drawmode rotate
-+set selectvisual geometry
-+
-+set dirname .
-+set loadgeomtypevar "All Geometry types"
-+
-+set basefilename filename
-+
-+set meshoptions.fineness 3
-+set meshoptions.firststep ag
-+set meshoptions.laststep ov
-+set options.memory 0
-+
-+set options.localh 1
-+set options.delaunay 1
-+set options.checkoverlap 1
-+set options.checkoverlappingboundary 0
-+set options.checkchartboundary 1
-+set options.startinsurface 0
-+set options.blockfill 1
-+set options.debugmode 0
-+set options.dooptimize 1
-+set options.parthread 1
-+set options.elsizeweight 0.2
-+set options.secondorder 0
-+set options.elementorder 1
-+set options.quad 0
-+set options.inverttets 0
-+set options.inverttrigs 0
-+set options.autozrefine 0
-+
-+
-+set options.meshsize 1000
-+set options.minmeshsize 0
-+
-+set options.curvaturesafety 2
-+set options.segmentsperedge 2
-+set options.meshsizefilename ""
-+set options.badellimit 175
-+set options.optsteps2d 3
-+set options.optsteps3d 5
-+set options.opterrpow 2
-+
-+set options.grading 0.5
-+set options.printmsg 2
-+
-+set debug.slowchecks 0
-+set debug.debugoutput 0
-+set debug.haltexistingline 0
-+set debug.haltoverlap 0
-+set debug.haltsuccess 0
-+set debug.haltnosuccess 0
-+set debug.haltlargequalclass 0
-+set debug.haltsegment 0
-+set debug.haltnode 0
-+set debug.haltface 0
-+set debug.haltfacenr 0
-+set debug.haltsegmentp1 0
-+set debug.haltsegmentp2 0
-+
-+set geooptions.drawcsg 1
-+set geooptions.detail 0.001
-+set geooptions.accuracy 1e-6
-+set geooptions.facets 20
-+set geooptions.minx -1000
-+set geooptions.miny -1000
-+set geooptions.minz -1000
-+set geooptions.maxx 1000
-+set geooptions.maxy 1000
-+set geooptions.maxz 1000
-+
-+set viewqualityplot 0
-+set memuseplot 0
-+set viewrotatebutton 0
-+set showsensitivehelp 0
-+set showhelpline 0
-+
-+set viewoptions.specpointvlen 0.3
-+set viewoptions.light.amb 0.3
-+set viewoptions.light.diff 0.7
-+set viewoptions.light.spec 1
-+set viewoptions.light.locviewer 0
-+set viewoptions.mat.shininess 50
-+set viewoptions.mat.transp 0.3
-+set viewoptions.colormeshsize 0
-+set viewoptions.whitebackground 1
-+set viewoptions.drawcoordinatecross 1
-+set viewoptions.drawcolorbar 1
-+set viewoptions.drawnetgenlogo 1
-+set viewoptions.stereo 0
-+set viewoptions.shrink 1
-+
-+set viewoptions.drawfilledtrigs 1
-+set viewoptions.drawedges 0
-+set viewoptions.drawbadels 0
-+set viewoptions.centerpoint 0
-+set viewoptions.drawelement 0
-+set viewoptions.drawoutline 1
-+set viewoptions.drawtets 0
-+set viewoptions.drawtetsdomain 0
-+set viewoptions.drawprisms 0
-+set viewoptions.drawpyramids 0
-+set viewoptions.drawhexes 0
-+set viewoptions.drawidentified 0
-+set viewoptions.drawpointnumbers 0
-+set viewoptions.drawedgenumbers 0
-+set viewoptions.drawfacenumbers 0
-+set viewoptions.drawelementnumbers 0
-+set viewoptions.drawdomainsurf 0
-+
-+set viewoptions.drawededges 1
-+set viewoptions.drawedpoints 1
-+set viewoptions.drawedpointnrs 0
-+set viewoptions.drawedtangents 0
-+set viewoptions.drawededgenrs 0
-+set viewoptions.drawmetispartition 0
-+
-+set viewoptions.drawcurveproj 0
-+set viewoptions.drawcurveprojedge 1
-+
-+set viewoptions.clipping.nx 0
-+set viewoptions.clipping.ny 1
-+set viewoptions.clipping.nz 0
-+set viewoptions.clipping.dist 0
-+set viewoptions.clipping.dist2 0
-+set viewoptions.clipping.enable 0
-+set viewoptions.clipping.onlydomain 0
-+set viewoptions.clipping.notdomain 0
-+
-+set viewoptions.usecentercoords 0
-+set viewoptions.centerx 0
-+set viewoptions.centery 0
-+set viewoptions.centerz 0
-+
-+set viewoptions.drawspecpoint 0
-+set viewoptions.specpointx 0
-+set viewoptions.specpointy 0
-+set viewoptions.specpointz 0
-+
-+
-+set stloptions.showtrias 0
-+set stloptions.showfilledtrias 1
-+set stloptions.showedges 1
-+set stloptions.showmarktrias 0
-+set stloptions.showactivechart 0
-+set stloptions.yangle 30
-+set stloptions.contyangle 20
-+set stloptions.edgecornerangle 60
-+set stloptions.chartangle 15
-+set stloptions.outerchartangle 70
-+set stloptions.usesearchtree 0
-+set stloptions.chartnumber 1
-+set stloptions.charttrignumber 1
-+set stloptions.chartnumberoffset 0
-+
-+set stloptions.atlasminh 0.1
-+set stloptions.resthsurfcurvfac 2
-+set stloptions.resthsurfcurvenable 0
-+set stloptions.resthatlasfac 2
-+set stloptions.resthatlasenable 1
-+set stloptions.resthchartdistfac 1.2
-+set stloptions.resthchartdistenable 1
-+set stloptions.resthlinelengthfac 0.5
-+set stloptions.resthlinelengthenable 1
-+set stloptions.resthcloseedgefac 1
-+set stloptions.resthcloseedgeenable 1
-+set stloptions.resthminedgelen 0.01
-+set stloptions.resthminedgelenenable 1
-+set stloptions.resthedgeanglefac 1
-+set stloptions.resthedgeangleenable 0
-+set stloptions.resthsurfmeshcurvfac 1
-+set stloptions.resthsurfmeshcurvenable 0
-+set stloptions.recalchopt 1
-+
-+set stldoctor.drawmeshededges 1
-+set stldoctor.geom_tol_fact 0.000001
-+set stldoctor.useexternaledges 0
-+set stldoctor.showfaces 0
-+set stldoctor.conecheck 1
-+set stldoctor.spiralcheck 1
-+set stldoctor.selecttrig 0
-+set stldoctor.selectmode 1
-+set stldoctor.longlinefact 0
-+set stldoctor.showexcluded 1
-+set stldoctor.edgeselectmode 0
-+set stldoctor.nodeofseltrig 1
-+set stldoctor.showtouchedtrigchart 0
-+set stldoctor.showedgecornerpoints 0
-+set stldoctor.showmarkedtrigs 1
-+set stldoctor.dirtytrigfact 0.01
-+set stldoctor.smoothangle 90
-+set stldoctor.selectwithmouse 1
-+set stldoctor.showvicinity 0
-+set stldoctor.vicinity 50
-+set stldoctor.smoothnormalsweight 0.2
-+
-+set occoptions.showvolumenr 0
-+set occoptions.showsurfaces 1
-+set occoptions.showedges 1
-+set occoptions.showsolidnr 0
-+set occoptions.showsolidnr2 0
-+set occoptions.visproblemfaces 0
-+set occoptions.zoomtohighlightedentity 0
-+set occoptions.deflection 1
-+set occoptions.tolerance 1e-3
-+set occoptions.fixsmalledges 1
-+set occoptions.fixspotstripfaces 1
-+set occoptions.sewfaces 1
-+set occoptions.makesolids 1
-+set occoptions.splitpartitions 0
-+
-+set meshdoctor.active 0
-+set meshdoctor.markedgedist 1
-+
-+
-+# variablenname mit punkt problematisch!
-+set status_np 0
-+set status_ne 0
-+set status_nse 0
-+set status_working " "
-+set status_task " "
-+set status_percent 0
-+set status_filename 0
-+set status_tetqualclasses "10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40"
-+
-+set exportfiletype "Neutral Format"
-+
-+set preproc.facenr 0
-+set preproc.selectmode query
-+set preproc.numtrig 0
-+
-+set mem_moveable 0
-+
-+
-+set multithread_pause 0
-+set multithread_testmode 0
-+set multithread_redraw 0
-+set multithread_drawing 0
-+set multithread_terminate 0
-+set multithread_running 0
-+
-+set level 0
-+
-+
-+set tablesforoutput {}
-+
-+
-+
-+set optlist {
-+    options.localh
-+    options.delaunay
-+    options.checkoverlap
-+    options.startinsurface
-+    options.blockfill
-+    options.dooptimize
-+    options.elsizeweight
-+    options.meshsize
-+    options.minmeshsize
-+    options.curvaturesafety
-+    options.optsteps2d
-+    options.optsteps3d
-+    options.secondorder
-+}
-+
-+
-+set visoptions.usetexture 1
-+set visoptions.invcolor 0
-+set visoptions.imaginary 0
-+set visoptions.lineartexture 0
-+set visoptions.numtexturecols 16
-+set visoptions.showclipsolution 1
-+set visoptions.showsurfacesolution 0
-+set visoptions.drawfieldlines 0
-+set visoptions.drawpointcurves 1
-+set visoptions.numfieldlines 100
-+set visoptions.fieldlinesrandomstart 0
-+set visoptions.fieldlinesstartarea box
-+set visoptions.fieldlinesstartareap1x 1
-+set visoptions.fieldlinesstartareap1y 1
-+set visoptions.fieldlinesstartareap1z 1
-+set visoptions.fieldlinesstartareap2x 0
-+set visoptions.fieldlinesstartareap2y 0
-+set visoptions.fieldlinesstartareap2z 0
-+set visoptions.fieldlinesstartface -1
-+set visoptions.fieldlinesfilename none
-+set visoptions.fieldlinestolerance 0.0005
-+set visoptions.fieldlinesrktype crungekutta
-+set visoptions.fieldlineslength 0.5
-+set visoptions.fieldlinesmaxpoints 500
-+set visoptions.fieldlinesthickness 0.0015
-+set visoptions.fieldlinesvecfunction none
-+set visoptions.fieldlinesphase 0
-+set visoptions.fieldlinesonlyonephase 1
-+
-+
-+set visoptions.lineplotfile empty
-+set visoptions.lineplotsource file
-+set visoptions.lineplotusingx 0
-+set visoptions.lineplotusingy 1
-+set visoptions.lineplotautoscale 1
-+set visoptions.lineplotxmin 0
-+set visoptions.lineplotxmax 1
-+set visoptions.lineplotymin 0
-+set visoptions.lineplotymax 1
-+set visoptions.lineplotcurrentnum -1
-+set visoptions.lineplotinfos ""
-+set visoptions.lineplotselected none
-+set visoptions.lineplotselector ""
-+set visoptions.lineplotcolor red
-+set visoptions.lineplotsizex 500
-+set visoptions.lineplotsizey 400
-+set visoptions.lineplotselectedeval 0
-+set visoptions.lineplotdatadescr "column1 column2 column3"
-+set visoptions.lineplotxcoordselector ""
-+set visoptions.lineplotycoordselector ""
-+set visoptions.evaluatefilenames none
-+set visoptions.evaluatefiledescriptions none
-+
-+
-+set visoptions.clipsolution none
-+set visoptions.scalfunction none
-+set visoptions.vecfunction none
-+set visoptions.evaluate abs
-+set visoptions.gridsize 20
-+set visoptions.xoffset 0
-+set visoptions.yoffset 0
-+set visoptions.autoscale 1
-+set visoptions.redrawperiodic 0
-+set visoptions.logscale 0
-+set visoptions.mminval 0
-+set visoptions.mmaxval 1
-+set visoptions.isolines 0
-+set visoptions.isosurf 0
-+set visoptions.subdivisions 1
-+set visoptions.numiso 10
-+set visoptions.autoredraw 0
-+set visoptions.autoredrawtime 2
-+set visoptions.simulationtime 0
-+set visoptions.multidimcomponent 0
-+
-+# deform by vector function
-+set visoptions.deformation 0
-+set visoptions.scaledeform1 1
-+set visoptions.scaledeform2 1
-+
-+set parallel_netgen 0
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+set optfilename [file join $nguserdir ng.opt]
-+set inifilename [file join $nguserdir ng.ini]
-+set meshinifilename [file join $nguserdir ngmesh.ini]
-+
-+global env
-+if { [llength [array names env NG_OPT]] == 1 } {
-+    if { [string length $env(NG_OPT)] > 0 } {
-+      set optfilename $env(NG_OPT)
-+    }
-+}
-+
-+if { [file exists $optfilename] == 1 } {
-+    set datei [open $optfilename r]
-+    while { [gets $datei line] >= 0 } {
-+      set [lindex $line 0] [lindex $line 1]
-+    }
-+    close $datei
-+} {
-+    puts "optfile $optfilename does not exist - using default values"
-+}
-+
-+
-+
-+
-+proc saveoptions { } {
-+    uplevel 1  {
-+      set file $optfilename
-+
-+      if {$file != ""} {
-+          set datei [open $file w]
-+          puts $datei "dirname  ${dirname}"
-+          puts $datei "loadgeomtypevar  \"${loadgeomtypevar}\""
-+          puts $datei "exportfiletype  \"${exportfiletype}\""
-+          puts $datei "meshoptions.fineness  ${meshoptions.fineness}"
-+          puts $datei "meshoptions.firststep ${meshoptions.firststep}"
-+          puts $datei "meshoptions.laststep  ${meshoptions.laststep}"
-+          puts $datei "options.localh  ${options.localh}"
-+          puts $datei "options.delaunay  ${options.delaunay}"
-+          puts $datei "options.checkoverlap  ${options.checkoverlap}"
-+          puts $datei "options.checkchartboundary  ${options.checkchartboundary}"
-+          puts $datei "options.startinsurface  ${options.startinsurface}"
-+          puts $datei "options.blockfill  ${options.blockfill}"
-+          puts $datei "options.debugmode  ${options.debugmode}"
-+          puts $datei "options.dooptimize ${options.dooptimize}"
-+          puts $datei "options.parthread  ${options.parthread}"
-+          puts $datei "options.elsizeweight  ${options.elsizeweight}"
-+          puts $datei "options.secondorder  ${options.secondorder}"
-+          puts $datei "options.elementorder  ${options.elementorder}"
-+#         puts $datei "options.memory  ${options.memory}"
-+          puts $datei "options.quad  ${options.quad}"
-+          puts $datei "options.inverttets  ${options.inverttets}"
-+          puts $datei "options.inverttrigs  ${options.inverttrigs}"
-+          puts $datei "options.autozrefine ${options.autozrefine}"
-+          puts $datei "options.meshsize  ${options.meshsize}"
-+          puts $datei "options.minmeshsize  ${options.minmeshsize}"
-+          puts $datei "options.curvaturesafety  ${options.curvaturesafety}"
-+          puts $datei "options.segmentsperedge  ${options.segmentsperedge}"
-+          puts $datei "options.meshsizefilename  ${options.meshsizefilename}"
-+          puts $datei "options.badellimit  ${options.badellimit}"
-+          puts $datei "options.optsteps2d  ${options.optsteps2d}"
-+          puts $datei "options.optsteps3d  ${options.optsteps3d}"
-+          puts $datei "options.opterrpow  ${options.opterrpow}"
-+          puts $datei "options.grading  ${options.grading}"
-+          puts $datei "options.printmsg  ${options.printmsg}"
-+          puts $datei "geooptions.drawcsg  ${geooptions.drawcsg}"
-+          puts $datei "geooptions.detail  ${geooptions.detail}"
-+          puts $datei "geooptions.accuracy  ${geooptions.accuracy}"
-+          puts $datei "geooptions.facets  ${geooptions.facets}"
-+          puts $datei "geooptions.minx  ${geooptions.minx}"
-+          puts $datei "geooptions.miny  ${geooptions.miny}"
-+          puts $datei "geooptions.minz  ${geooptions.minz}"
-+          puts $datei "geooptions.maxx  ${geooptions.maxx}"
-+          puts $datei "geooptions.maxy  ${geooptions.maxy}"
-+          puts $datei "geooptions.maxz  ${geooptions.maxz}"
-+          puts $datei "viewoptions.specpointvlen  ${viewoptions.specpointvlen}"
-+          puts $datei "viewoptions.light.amb  ${viewoptions.light.amb}"
-+          puts $datei "viewoptions.light.diff ${viewoptions.light.diff}"
-+          puts $datei "viewoptions.light.spec ${viewoptions.light.spec}"
-+          puts $datei "viewoptions.light.locviewer ${viewoptions.light.locviewer}"
-+          puts $datei "viewoptions.mat.shininess  ${viewoptions.mat.shininess}"
-+          puts $datei "viewoptions.mat.transp  ${viewoptions.mat.transp}"
-+          puts $datei "viewoptions.colormeshsize ${viewoptions.colormeshsize}"
-+          puts $datei "viewoptions.whitebackground  ${viewoptions.whitebackground}"
-+          puts $datei "viewoptions.drawcolorbar  ${viewoptions.drawcolorbar}"
-+          puts $datei "viewoptions.drawcoordinatecross  ${viewoptions.drawcoordinatecross}"
-+          puts $datei "viewoptions.drawnetgenlogo  ${viewoptions.drawnetgenlogo}"
-+          puts $datei "viewoptions.stereo  ${viewoptions.stereo}"
-+          puts $datei "viewoptions.drawfilledtrigs  ${viewoptions.drawfilledtrigs}"
-+          puts $datei "viewoptions.drawedges  ${viewoptions.drawedges}"
-+          puts $datei "viewoptions.drawbadels  ${viewoptions.drawbadels}"
-+          puts $datei "viewoptions.centerpoint  ${viewoptions.centerpoint}"
-+          puts $datei "viewoptions.drawelement  ${viewoptions.drawelement}"
-+          puts $datei "viewoptions.drawoutline  ${viewoptions.drawoutline}"
-+          puts $datei "viewoptions.drawtets  ${viewoptions.drawtets}"
-+          puts $datei "viewoptions.drawprisms  ${viewoptions.drawprisms}"
-+          puts $datei "viewoptions.drawpyramids  ${viewoptions.drawpyramids}"
-+          puts $datei "viewoptions.drawhexes  ${viewoptions.drawhexes}"
-+          puts $datei "viewoptions.drawidentified  ${viewoptions.drawidentified}"
-+          puts $datei "viewoptions.drawpointnumbers  ${viewoptions.drawpointnumbers}"
-+
-+          puts $datei "viewoptions.drawededges  ${viewoptions.drawededges}"
-+          puts $datei "viewoptions.drawedpoints  ${viewoptions.drawedpoints}"
-+          puts $datei "viewoptions.drawedpointnrs  ${viewoptions.drawedpointnrs}"
-+          puts $datei "viewoptions.drawedtangents  ${viewoptions.drawedtangents}"
-+          puts $datei "viewoptions.shrink  ${viewoptions.shrink}"
-+
-+          puts $datei "stloptions.showtrias  ${stloptions.showtrias}"
-+          puts $datei "stloptions.showfilledtrias  ${stloptions.showfilledtrias}"
-+          puts $datei "stloptions.showedges  ${stloptions.showedges}"
-+          puts $datei "stloptions.showmarktrias  ${stloptions.showmarktrias}"
-+          puts $datei "stloptions.showactivechart  ${stloptions.showactivechart}"
-+          puts $datei "stloptions.yangle  ${stloptions.yangle}"
-+          puts $datei "stloptions.contyangle  ${stloptions.contyangle}"
-+          puts $datei "stloptions.edgecornerangle  ${stloptions.edgecornerangle}"
-+          puts $datei "stloptions.chartangle  ${stloptions.chartangle}"
-+          puts $datei "stloptions.outerchartangle  ${stloptions.outerchartangle}"
-+          puts $datei "stloptions.usesearchtree  ${stloptions.usesearchtree}"
-+          puts $datei "stloptions.chartnumber  ${stloptions.chartnumber}"
-+          puts $datei "stloptions.charttrignumber  ${stloptions.charttrignumber}"
-+          puts $datei "stloptions.chartnumberoffset  ${stloptions.chartnumberoffset}"
-+          puts $datei "stloptions.atlasminh  ${stloptions.atlasminh}"
-+          puts $datei "stloptions.resthsurfcurvfac  ${stloptions.resthsurfcurvfac}"
-+          puts $datei "stloptions.resthsurfcurvenable  ${stloptions.resthsurfcurvenable}"
-+          puts $datei "stloptions.resthatlasfac  ${stloptions.resthatlasfac}"
-+          puts $datei "stloptions.resthatlasenable  ${stloptions.resthatlasenable}"
-+          puts $datei "stloptions.resthchartdistfac  ${stloptions.resthchartdistfac}"
-+          puts $datei "stloptions.resthchartdistenable  ${stloptions.resthchartdistenable}"
-+          puts $datei "stloptions.resthlinelengthfac  ${stloptions.resthlinelengthfac}"
-+          puts $datei "stloptions.resthlinelengthenable  ${stloptions.resthlinelengthenable}"
-+              puts $datei "stloptions.resthminedgelen ${stloptions.resthminedgelen}"
-+              puts $datei "stloptions.resthminedgelenenable ${stloptions.resthminedgelenenable}"
-+          puts $datei "stloptions.resthcloseedgefac  ${stloptions.resthcloseedgefac}"
-+          puts $datei "stloptions.resthcloseedgeenable  ${stloptions.resthcloseedgeenable}"
-+          puts $datei "stloptions.resthedgeanglefac  ${stloptions.resthedgeanglefac}"
-+          puts $datei "stloptions.resthedgeangleenable  ${stloptions.resthedgeangleenable}"
-+          puts $datei "stloptions.resthsurfmeshcurvfac  ${stloptions.resthsurfmeshcurvfac}"
-+          puts $datei "stloptions.resthsurfmeshcurvenable  ${stloptions.resthsurfmeshcurvenable}"
-+          puts $datei "stloptions.recalchopt  ${stloptions.recalchopt}"
-+
-+          puts $datei "visoptions.subdivisions ${visoptions.subdivisions}"
-+          puts $datei "visoptions.autoredraw ${visoptions.autoredraw}"
-+          puts $datei "visoptions.autoredrawtime ${visoptions.autoredrawtime}"
-+
-+
-+          # trafo options
-+          # if exist trafooptions then ...
-+          if { [info exists trafooptions.solver] == 1 } {
-+              puts $datei "trafooptions.solver ${trafooptions.solver}"
-+              puts $datei "trafooptions.levels ${trafooptions.levels}"
-+              puts $datei "trafooptions.linits ${trafooptions.linits}"
-+              puts $datei "trafooptions.nonlinits ${trafooptions.nonlinits}"
-+              puts $datei "trafooptions.stabcurrent ${trafooptions.stabcurrent}"
-+              puts $datei "trafooptions.checkcond ${trafooptions.checkcond}"
-+              puts $datei "trafooptions.maxdirect ${trafooptions.maxdirect}"
-+              puts $datei "trafooptions.secondorder ${trafooptions.secondorder}"
-+              puts $datei "trafooptions.homogenizedcore ${trafooptions.homogenizedcore}"
-+              puts $datei "trafooptions.ordercore ${trafooptions.ordercore}"
-+              puts $datei "trafooptions.simplecurrents ${trafooptions.simplecurrents}"
-+              puts $datei "trafooptions.assemblecomplexmatrix ${trafooptions.assemblecomplexmatrix}"
-+
-+              puts $datei "trafooptions.meshcasing  ${trafooptions.meshcasing}"
-+              puts $datei "trafooptions.meshcore    ${trafooptions.meshcore}"
-+              puts $datei "trafooptions.meshclumps  ${trafooptions.meshclumps}"
-+              puts $datei "trafooptions.meshshields ${trafooptions.meshshields}"
-+              puts $datei "trafooptions.meshcoils   ${trafooptions.meshcoils}"
-+              puts $datei "trafooptions.bcmdirectory  ${trafooptions.bcmdirectory}"
-+              puts $datei "trafooptions.lossdensityfile  ${trafooptions.lossdensityfile}"
-+          }
-+
-+          if { [info exists smalltrafomodell.tankheight] == 1 } {
-+              puts $datei "smalltrafomodell.tankheight ${smalltrafomodell.tankheight}"
-+              puts $datei "smalltrafomodell.tankwidth ${smalltrafomodell.tankwidth}"
-+              puts $datei "smalltrafomodell.tanklength ${smalltrafomodell.tanklength}"
-+              puts $datei "smalltrafomodell.corewidth ${smalltrafomodell.corewidth}"
-+              puts $datei "smalltrafomodell.windowheight ${smalltrafomodell.windowheight}"
-+              puts $datei "smalltrafomodell.limbdistance ${smalltrafomodell.limbdistance}"
-+              puts $datei "smalltrafomodell.xposcore ${smalltrafomodell.xposcore}"
-+              puts $datei "smalltrafomodell.yposcore ${smalltrafomodell.yposcore}"
-+              puts $datei "smalltrafomodell.zposcore ${smalltrafomodell.zposcore}"
-+              puts $datei "smalltrafomodell.leakagefluxguidethickness ${smalltrafomodell.leakagefluxguidethickness}"
-+              puts $datei "smalltrafomodell.leakagefluxguidewidth ${smalltrafomodell.leakagefluxguidewidth}"
-+              puts $datei "smalltrafomodell.leakagefluxguidezposition ${smalltrafomodell.leakagefluxguidezposition}"
-+              puts $datei "smalltrafomodell.limbcoil.1 ${smalltrafomodell.limbcoil.1}"
-+              puts $datei "smalltrafomodell.ricoil.1 ${smalltrafomodell.ricoil.1}"
-+              puts $datei "smalltrafomodell.rocoil.1 ${smalltrafomodell.rocoil.1}"
-+              puts $datei "smalltrafomodell.zposcoil.1 ${smalltrafomodell.zposcoil.1}"
-+              puts $datei "smalltrafomodell.heightcoil.1 ${smalltrafomodell.heightcoil.1}"
-+              puts $datei "smalltrafomodell.currentcoil.1 ${smalltrafomodell.currentcoil.1}"
-+              puts $datei "smalltrafomodell.nturnscoil.1 ${smalltrafomodell.nturnscoil.1}"
-+              puts $datei "smalltrafomodell.limbcoil.2 ${smalltrafomodell.limbcoil.2}"
-+              puts $datei "smalltrafomodell.ricoil.2 ${smalltrafomodell.ricoil.2}"
-+              puts $datei "smalltrafomodell.rocoil.2 ${smalltrafomodell.rocoil.2}"
-+              puts $datei "smalltrafomodell.zposcoil.2 ${smalltrafomodell.zposcoil.2}"
-+              puts $datei "smalltrafomodell.heightcoil.2 ${smalltrafomodell.heightcoil.2}"
-+              puts $datei "smalltrafomodell.currentcoil.2 ${smalltrafomodell.currentcoil.2}"
-+              puts $datei "smalltrafomodell.nturnscoil.2 ${smalltrafomodell.nturnscoil.2}"
-+              puts $datei "smalltrafomodell.limbcoil.3 ${smalltrafomodell.limbcoil.3}"
-+              puts $datei "smalltrafomodell.ricoil.3 ${smalltrafomodell.ricoil.3}"
-+              puts $datei "smalltrafomodell.rocoil.3 ${smalltrafomodell.rocoil.3}"
-+              puts $datei "smalltrafomodell.zposcoil.3 ${smalltrafomodell.zposcoil.3}"
-+              puts $datei "smalltrafomodell.heightcoil.3 ${smalltrafomodell.heightcoil.3}"
-+              puts $datei "smalltrafomodell.currentcoil.3 ${smalltrafomodell.currentcoil.3}"
-+              puts $datei "smalltrafomodell.nturnscoil.3 ${smalltrafomodell.nturnscoil.3}"
-+              puts $datei "smalltrafomodell.limbcoil.4 ${smalltrafomodell.limbcoil.4}"
-+              puts $datei "smalltrafomodell.ricoil.4 ${smalltrafomodell.ricoil.4}"
-+              puts $datei "smalltrafomodell.rocoil.4 ${smalltrafomodell.rocoil.4}"
-+              puts $datei "smalltrafomodell.zposcoil.4 ${smalltrafomodell.zposcoil.4}"
-+              puts $datei "smalltrafomodell.heightcoil.4 ${smalltrafomodell.heightcoil.4}"
-+              puts $datei "smalltrafomodell.currentcoil.4 ${smalltrafomodell.currentcoil.4}"
-+              puts $datei "smalltrafomodell.nturnscoil.4 ${smalltrafomodell.nturnscoil.4}"
-+              puts $datei "smalltrafomodell.limbcoil.5 ${smalltrafomodell.limbcoil.5}"
-+              puts $datei "smalltrafomodell.ricoil.5 ${smalltrafomodell.ricoil.5}"
-+              puts $datei "smalltrafomodell.rocoil.5 ${smalltrafomodell.rocoil.5}"
-+              puts $datei "smalltrafomodell.zposcoil.5 ${smalltrafomodell.zposcoil.5}"
-+              puts $datei "smalltrafomodell.heightcoil.5 ${smalltrafomodell.heightcoil.5}"
-+              puts $datei "smalltrafomodell.currentcoil.5 ${smalltrafomodell.currentcoil.5}"
-+              puts $datei "smalltrafomodell.nturnscoil.5 ${smalltrafomodell.nturnscoil.5}"
-+              puts $datei "smalltrafomodell.limbcoil.6 ${smalltrafomodell.limbcoil.6}"
-+              puts $datei "smalltrafomodell.ricoil.6 ${smalltrafomodell.ricoil.6}"
-+              puts $datei "smalltrafomodell.rocoil.6 ${smalltrafomodell.rocoil.6}"
-+              puts $datei "smalltrafomodell.zposcoil.6 ${smalltrafomodell.zposcoil.6}"
-+              puts $datei "smalltrafomodell.heightcoil.6 ${smalltrafomodell.heightcoil.6}"
-+              puts $datei "smalltrafomodell.currentcoil.6 ${smalltrafomodell.currentcoil.6}"
-+              puts $datei "smalltrafomodell.nturnscoil.6 ${smalltrafomodell.nturnscoil.6}"
-+              puts $datei "smalltrafomodell.limbtest.1 ${smalltrafomodell.limbtest.1}"
-+              puts $datei "smalltrafomodell.heighttest.1 ${smalltrafomodell.heighttest.1}"
-+              puts $datei "smalltrafomodell.widthtest.1 ${smalltrafomodell.widthtest.1}"
-+              puts $datei "smalltrafomodell.rtest.1 ${smalltrafomodell.rtest.1}"
-+              puts $datei "smalltrafomodell.zpostest.1 ${smalltrafomodell.zpostest.1}"
-+              puts $datei "smalltrafomodell.edgeradiustest.1 ${smalltrafomodell.edgeradiustest.1}"
-+              puts $datei "smalltrafomodell.finetest.1 ${smalltrafomodell.finetest.1}"
-+              puts $datei "smalltrafomodell.conductivetest.1 ${smalltrafomodell.conductivetest.1}"
-+              puts $datei "smalltrafomodell.limbtest.2 ${smalltrafomodell.limbtest.2}"
-+              puts $datei "smalltrafomodell.heighttest.2 ${smalltrafomodell.heighttest.2}"
-+              puts $datei "smalltrafomodell.widthtest.2 ${smalltrafomodell.widthtest.2}"
-+              puts $datei "smalltrafomodell.rtest.2 ${smalltrafomodell.rtest.2}"
-+              puts $datei "smalltrafomodell.zpostest.2 ${smalltrafomodell.zpostest.2}"
-+              puts $datei "smalltrafomodell.edgeradiustest.2 ${smalltrafomodell.edgeradiustest.2}"
-+              puts $datei "smalltrafomodell.finetest.2 ${smalltrafomodell.finetest.2}"
-+              puts $datei "smalltrafomodell.conductivetest.2 ${smalltrafomodell.conductivetest.2}"
-+              puts $datei "smalltrafomodell.limbtest.3 ${smalltrafomodell.limbtest.3}"
-+              puts $datei "smalltrafomodell.heighttest.3 ${smalltrafomodell.heighttest.3}"
-+              puts $datei "smalltrafomodell.widthtest.3 ${smalltrafomodell.widthtest.3}"
-+              puts $datei "smalltrafomodell.rtest.3 ${smalltrafomodell.rtest.3}"
-+              puts $datei "smalltrafomodell.zpostest.3 ${smalltrafomodell.zpostest.3}"
-+              puts $datei "smalltrafomodell.edgeradiustest.3 ${smalltrafomodell.edgeradiustest.3}"
-+              puts $datei "smalltrafomodell.finetest.3 ${smalltrafomodell.finetest.3}"
-+              puts $datei "smalltrafomodell.conductivetest.3 ${smalltrafomodell.conductivetest.3}"
-+              puts $datei "smalltrafomodell.limbtest.4 ${smalltrafomodell.limbtest.4}"
-+              puts $datei "smalltrafomodell.heighttest.4 ${smalltrafomodell.heighttest.4}"
-+              puts $datei "smalltrafomodell.widthtest.4 ${smalltrafomodell.widthtest.4}"
-+              puts $datei "smalltrafomodell.rtest.4 ${smalltrafomodell.rtest.4}"
-+              puts $datei "smalltrafomodell.zpostest.4 ${smalltrafomodell.zpostest.4}"
-+              puts $datei "smalltrafomodell.edgeradiustest.4 ${smalltrafomodell.edgeradiustest.4}"
-+              puts $datei "smalltrafomodell.finetest.4 ${smalltrafomodell.finetest.4}"
-+              puts $datei "smalltrafomodell.conductivetest.4 ${smalltrafomodell.conductivetest.4}"
-+              puts $datei "smalltrafomodell.nperitest ${smalltrafomodell.nperitest}"
-+              puts $datei "smalltrafomodell.filename ${smalltrafomodell.filename}"
-+              puts $datei "smalltrafomodell.murlfguide ${smalltrafomodell.murlfguide}"
-+              puts $datei "smalltrafomodell.murtestwire ${smalltrafomodell.murtestwire}"
-+              puts $datei "smalltrafomodell.murcore ${smalltrafomodell.murcore}"
-+              puts $datei "smalltrafomodell.kappalfguide ${smalltrafomodell.kappalfguide}"
-+              puts $datei "smalltrafomodell.kappatestwire ${smalltrafomodell.kappatestwire}"
-+              puts $datei "smalltrafomodell.kappacore ${smalltrafomodell.kappacore}"
-+          }
-+
-+
-+          close $datei
-+      }
-+    }
-+}
-+
-+
-+
-+
-+# the ini file is saved on demand :
-+proc saveinifile { } {
-+    global inifilename
-+    if {[catch { set datei [open $inifilename w] } result ]} {
-+      puts "cannot write file $inifilename"
-+    } {
-+      for { set i [.ngmenu.file.recent index last] } { $i >= 1 } { incr i -1 } {
-+          puts $datei "recentfile \"[.ngmenu.file.recent entrycget $i -label]\""
-+      }
-+      close $datei
-+    }
-+}
-+
-+
-+proc savemeshinifile { } {
-+    global meshinifilename
-+    if {[catch { set datei [open $meshinifilename w] } result ]} {
-+      puts "cannot write file $meshinifilename"
-+    } {
-+      for { set i [.ngmenu.file.recentmesh index last] } { $i >= 1 } { incr i -1 } {
-+          puts $datei "recentfile \"[.ngmenu.file.recentmesh entrycget $i -label]\""
-+      }
-+      close $datei
-+    }
-+}
-+
-+
-+
-+proc loadinifile { } {
-+    global inifilename
-+    if { [file exists $inifilename] == 1 } {
-+      set datei [open $inifilename r]
-+      while { [gets $datei line] >= 0 } {
-+          if {[lindex $line 0] == "recentfile"} {
-+                  set filename [lindex $line 1]
-+                  if { [file exists $filename] == 1 } {
-+                      AddRecentFile $filename
-+                  }
-+          }
-+      }
-+      close $datei
-+    }
-+}
-+
-+
-+proc loadmeshinifile { } {
-+    global meshinifilename
-+    if { [file exists $meshinifilename] == 1 } {
-+      set datei [open $meshinifilename r]
-+      while { [gets $datei line] >= 0 } {
-+          if {[lindex $line 0] == "recentfile"} {
-+              set filename [lindex $line 1]
-+              if { [file exists $filename] == 1 } {
-+                  AddRecentMeshFile $filename
-+              }
-+          }
-+      }
-+      close $datei
-+    }
-+ }
-+
-+
-+
-+
-+
-+set cmdindex {}
-+set hlpindex {}
-+set secindex {}
-diff -Naur netgen-5.3.1_SRC_orig/nglib/Makefile.am netgen-5.3.1_SRC_modif/nglib/Makefile.am
---- netgen-5.3.1_SRC_orig/nglib/Makefile.am    2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/Makefile.am   2018-03-01 15:41:03.998157502 +0300
-@@ -14,6 +14,9 @@
-       $(top_builddir)/libsrc/stlgeom/libstl.la \
-       $(top_builddir)/libsrc/occ/libocc.la \
-       $(top_builddir)/libsrc/meshing/libmesh.la \
-+      $(top_builddir)/libsrc/general/libgen.la \
-+      $(top_builddir)/libsrc/gprim/libgprim.la \
-+      $(top_builddir)/libsrc/linalg/libla.la
-       $(OCCLIBS) $(MPI_LIBS)
- libnglib_la_LDFLAGS = -avoid-version
-diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.cpp netgen-5.3.1_SRC_modif/nglib/nglib.cpp
---- netgen-5.3.1_SRC_orig/nglib/nglib.cpp      2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/nglib.cpp     2018-03-01 15:44:26.806377191 +0300
-@@ -1,1242 +1,1242 @@
--/**************************************************************************/
--/* File:   nglib.cpp                                                      */
--/* Author: Joachim Schoeberl                                              */
--/* Date:   7. May. 2000                                                   */
--/**************************************************************************/
--
--/*
--  
--  Interface to the netgen meshing kernel
--  
--*/
--#include <mystdlib.h>
--#include <myadt.hpp>
--
--#include <linalg.hpp>
--#include <csg.hpp>
--#include <stlgeom.hpp>
--#include <geometry2d.hpp>
--#include <meshing.hpp>
--#include <../visualization/soldata.hpp>
--
--#ifdef OCCGEOMETRY
--#include <occgeom.hpp>
--#endif
--
--#include <nginterface.h>
--
--
--namespace netgen {
--   extern void MeshFromSpline2D (SplineGeometry2d & geometry,
--                                 Mesh *& mesh, 
--                                 MeshingParameters & mp);
--}
--
--
--
--#ifdef PARALLEL
--#include <mpi.h>
--
--namespace netgen
--{
--  // int id = 0, ntasks = 1;
--  MPI_Comm mesh_comm;
--}
--#endif
--
--
--namespace netgen
--{
--  int id = 0, ntasks = 1;
--}
--
--
--
--/*
--// should not be needed (occ currently requires it)
--namespace netgen {
--#include "../libsrc/visualization/vispar.hpp"
--  VisualizationParameters vispar;
--  VisualizationParameters :: VisualizationParameters() { ; }
--}
--*/
--
--
--namespace nglib {
--#include "nglib.h"
--}
--
--using namespace netgen;
--
--// constants and types:
--
--namespace nglib
--{
--   // initialize, deconstruct Netgen library:
--   DLL_HEADER void Ng_Init ()
--   {
--      mycout = &cout;
--      myerr = &cerr;
--      // netgen::testout->SetOutStream (new ofstream ("test.out"));
--      testout = new ofstream ("test.out");
--   }
--
--
--
--
--   // Clean-up functions before ending usage of nglib
--   DLL_HEADER void Ng_Exit ()
--   {
--      ;
--   }
--
--
--
--
--   // Create a new netgen mesh object
--   DLL_HEADER Ng_Mesh * Ng_NewMesh ()
--   {
--      Mesh * mesh = new Mesh;  
--      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));
--      return (Ng_Mesh*)(void*)mesh;
--   }
--
--
--
--
--   // Delete an existing netgen mesh object
--   DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh)
--   {
--      if(mesh != NULL)
--      {
--         // Delete the Mesh structures
--         ((Mesh*)mesh)->DeleteMesh();
--
--         // Now delete the Mesh class itself
--         delete (Mesh*)mesh;
--
--         // Set the Ng_Mesh pointer to NULL
--         mesh = NULL;
--      }
--   }
--
--
--
--
--   // Save a netgen mesh in the native VOL format 
--   DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)
--   {
--      ((Mesh*)mesh)->Save(filename);
--   }
--
--
--
--
--   // Load a netgen native VOL mesh from a given file
--   DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename)
--   {
--      Mesh * mesh = new Mesh;
--      mesh->Load(filename);
--      return ( (Ng_Mesh*)mesh );
--   }
--
--
--
--
--   // Merge another mesh file into the currently loaded one
--   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)
--   {
--      Ng_Result status = NG_OK;
--
--      ifstream infile(filename);
--      Mesh * m = (Mesh*)mesh;
--
--      if(!infile.good())
--      {
--         status = NG_FILE_NOT_FOUND;
--      }
--
--      if(!m)
--      {
--         status = NG_ERROR;
--      }
--
--      if(status == NG_OK)
--      {
--         const int num_pts = m->GetNP();
--         const int face_offset = m->GetNFD();
--
--         m->Merge(infile, face_offset);
--
--         if(m->GetNP() > num_pts)
--         {
--            status = NG_OK;
--         }
--         else
--         {
--            status = NG_ERROR;
--         }
--      }
--
--      return status;
--   }
--
--
--
--
--   // Merge another mesh file into the currently loaded one
--   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)
--   {
--      return NG_ERROR;
--   }
--
--
--
--
--   // Manually add a point to an existing mesh object
--   DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x)
--   {
--      Mesh * m = (Mesh*)mesh;
--      m->AddPoint (Point3d (x[0], x[1], x[2]));
--   }
--
--
--
--
--   // Manually add a surface element of a given type to an existing mesh object
--   DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,
--                                         int * pi)
--   {
--      Mesh * m = (Mesh*)mesh;
--      Element2d el (3);
--      el.SetIndex (1);
--      el.PNum(1) = pi[0];
--      el.PNum(2) = pi[1];
--      el.PNum(3) = pi[2];
--      m->AddSurfaceElement (el);
--   }
--
--
--
--
--   // Manually add a volume element of a given type to an existing mesh object
--   DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,
--                                        int * pi)
--   {
--      Mesh * m = (Mesh*)mesh;
--      Element el (4);
--      el.SetIndex (1);
--      el.PNum(1) = pi[0];
--      el.PNum(2) = pi[1];
--      el.PNum(3) = pi[2];
--      el.PNum(4) = pi[3];
--      m->AddVolumeElement (el);
--   }
--
--
--
--
--   // Obtain the number of points in the mesh
--   DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh)
--   {
--      return ((Mesh*)mesh) -> GetNP();
--   }
--
--
--
--
--   // Obtain the number of surface elements in the mesh
--   DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh)
--   {
--      return ((Mesh*)mesh) -> GetNSE();
--   }
--
--
--
--
--   // Obtain the number of volume elements in the mesh
--   DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh)
--   {
--      return ((Mesh*)mesh) -> GetNE();
--   }
--
--
--
--
--   //  Return point coordinates of a given point index in the mesh
--   DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)
--   {
--      const Point3d & p = ((Mesh*)mesh)->Point(num);
--      x[0] = p.X();
--      x[1] = p.Y();
--      x[2] = p.Z();
--   }
--
--
--
--
--   // Return the surface element at a given index "pi"
--   DLL_HEADER Ng_Surface_Element_Type 
--      Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)
--   {
--      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
--      for (int i = 1; i <= el.GetNP(); i++)
--         pi[i-1] = el.PNum(i);
--      Ng_Surface_Element_Type et;
--      switch (el.GetNP())
--      {
--      case 3: et = NG_TRIG; break;
--      case 4: et = NG_QUAD; break;
--      case 6: 
--         switch (el.GetNV())
--         {
--         case 3: et = NG_TRIG6; break;
--         case 4: et = NG_QUAD6; break;
--         default:
--            et = NG_TRIG6; break;
--         }
--         break;
--      case 8: et = NG_QUAD8; break;
--      default:
--         et = NG_TRIG; break; // for the compiler
--      }
--      return et;
--   }
--
--
--
--
--   // Return the volume element at a given index "pi"
--   DLL_HEADER Ng_Volume_Element_Type
--      Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)
--   {
--      const Element & el = ((Mesh*)mesh)->VolumeElement(num);
--      for (int i = 1; i <= el.GetNP(); i++)
--         pi[i-1] = el.PNum(i);
--      Ng_Volume_Element_Type et;
--      switch (el.GetNP())
--      {
--      case 4: et = NG_TET; break;
--      case 5: et = NG_PYRAMID; break;
--      case 6: et = NG_PRISM; break;
--      case 10: et = NG_TET10; break;
--      default:
--         et = NG_TET; break; // for the compiler
--      }
--      return et;
--   }
--
--
--
--
--   // Set a global limit on the maximum mesh size allowed
--   DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)
--   {
--      ((Mesh*)mesh) -> SetGlobalH (h);
--   }
--
--
--
--
--   // Set a local limit on the maximum mesh size allowed around the given point
--   DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)
--   {
--      ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);
--   }
--
--
--
--
--   // Set a local limit on the maximum mesh size allowed within a given box region
--   DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)
--   {
--      for (double x = pmin[0]; x < pmax[0]; x += h)
--         for (double y = pmin[1]; y < pmax[1]; y += h)
--            for (double z = pmin[2]; z < pmax[2]; z += h)
--               ((Mesh*)mesh) -> RestrictLocalH (Point3d (x, y, z), h);
--   }
--
--
--
--
--   // Generates volume mesh from an existing surface mesh
--   DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
--   {
--      Mesh * m = (Mesh*)mesh;
--
--      // Philippose - 30/08/2009
--      // Do not locally re-define "mparam" here... "mparam" is a global 
--      // object 
--      //MeshingParameters mparam;
--      mp->Transfer_Parameters();
--
--      m->CalcLocalH(mparam.grading);
--
--      MeshVolume (mparam, *m);
--      RemoveIllegalElements (*m);
--      OptimizeVolume (mparam, *m);
--
--      return NG_OK;
--   }
--
--
--
--
--   /* ------------------ 2D Meshing Functions ------------------------- */
--   DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)
--   {
--      Mesh * m = (Mesh*)mesh;
--
--      m->AddPoint (Point3d (x[0], x[1], 0));
--   }
--
--
--
--
--   DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)
--   {
--      Mesh * m = (Mesh*)mesh;
--
--      Segment seg;
--      seg[0] = pi1;
--      seg[1] = pi2;
--      m->AddSegment (seg);
--   }
--
--
--
--
--   DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh)
--   {
--      Mesh * m = (Mesh*)mesh;
--      return m->GetNP();
--   }
--
--
--
--
--   DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh)
--   {
--      Mesh * m = (Mesh*)mesh;
--      return m->GetNSE();
--   }
--
--
--
--
--   DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh)
--   {
--      Mesh * m = (Mesh*)mesh;
--      return m->GetNSeg();
--   }
--
--
--
--
--   DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)
--   {
--      Mesh * m = (Mesh*)mesh;
--
--      Point<3> & p = m->Point(num);
--      x[0] = p(0);
--      x[1] = p(1);
--   }
--
--
--
--
--   DLL_HEADER Ng_Surface_Element_Type
--      Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
--   {
--      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
--      for (int i = 1; i <= el.GetNP(); i++)
--         pi[i-1] = el.PNum(i);
--
--      Ng_Surface_Element_Type et;
--      switch (el.GetNP())
--      {
--      case 3: et = NG_TRIG; break;
--      case 4: et = NG_QUAD; break;
--      case 6: 
--         switch (el.GetNV())
--         {
--         case 3: et = NG_TRIG6; break;
--         case 4: et = NG_QUAD6; break;
--         default:
--            et = NG_TRIG6; break;
--         }
--         break;
--      case 8: et = NG_QUAD8; break;
--      default:
--         et = NG_TRIG; break; // for the compiler
--      }
--
--      if (matnum)
--         *matnum = el.GetIndex();
--
--      return et;
--   }
--
--
--
--
--   DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
--   {
--      const Segment & seg = ((Mesh*)mesh)->LineSegment(num);
--      pi[0] = seg[0];
--      pi[1] = seg[1];
--
--      if (matnum)
--         *matnum = seg.edgenr;
--   }
--
--
--
--
--   DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)
--   {
--      SplineGeometry2d * geom = new SplineGeometry2d();
--      geom -> Load (filename);
--      return (Ng_Geometry_2D *)geom;
--   }
--
--
--
--
--   DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
--                                            Ng_Mesh ** mesh,
--                                            Ng_Meshing_Parameters * mp)
--   {
--      // use global variable mparam
--      //  MeshingParameters mparam;  
--      mp->Transfer_Parameters();
--
--      Mesh * m;
--      MeshFromSpline2D (*(SplineGeometry2d*)geom, m, mparam);
--
--      cout << m->GetNSE() << " elements, " << m->GetNP() << " points" << endl;
--
--      *mesh = (Ng_Mesh*)m;
--      return NG_OK;
--   }
--
--
--
--
--   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
--      Ng_Mesh * mesh,
--      int levels)
--   {
--      Refinement2d ref(*(SplineGeometry2d*)geom);
--      HPRefinement (*(Mesh*)mesh, &ref, levels);
--   }
--
--
--
--
--   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
--      Ng_Mesh * mesh,
--      int levels, double parameter)
--   {
--      Refinement2d ref(*(SplineGeometry2d*)geom);
--      HPRefinement (*(Mesh*)mesh, &ref, levels, parameter);
--   }
--
--
--
--
--   Array<STLReadTriangle> readtrias; //only before initstlgeometry
--   Array<Point<3> > readedges; //only before init stlgeometry
--
--   // loads geometry from STL file
--   DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)
--   {
--      int i;
--      STLGeometry geom;
--      STLGeometry* geo;
--      ifstream ist(filename);
--
--      if (binary)
--      {
--         geo = geom.LoadBinary(ist);
--      }
--      else
--      {
--         geo = geom.Load(ist);
--      }
--
--      readtrias.SetSize(0);
--      readedges.SetSize(0);
--
--      Point3d p;
--      Vec3d normal;
--      double p1[3];
--      double p2[3];
--      double p3[3];
--      double n[3];
--
--      Ng_STL_Geometry * geo2 = Ng_STL_NewGeometry();
--
--      for (i = 1; i <= geo->GetNT(); i++)
--      {
--         const STLTriangle& t = geo->GetTriangle(i);
--         p = geo->GetPoint(t.PNum(1));
--         p1[0] = p.X(); p1[1] = p.Y(); p1[2] = p.Z(); 
--         p = geo->GetPoint(t.PNum(2));
--         p2[0] = p.X(); p2[1] = p.Y(); p2[2] = p.Z(); 
--         p = geo->GetPoint(t.PNum(3));
--         p3[0] = p.X(); p3[1] = p.Y(); p3[2] = p.Z();
--         normal = t.Normal();
--         n[0] = normal.X(); n[1] = normal.Y(); n[2] = normal.Z();
--
--         Ng_STL_AddTriangle(geo2, p1, p2, p3, n);
--      }
--
--      return geo2;
--   }
--
--
--
--
--   // generate new STL Geometry
--   DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ()
--   {
--      return (Ng_STL_Geometry*)(void*)new STLGeometry;
--   } 
--
--
--
--
--   // after adding triangles (and edges) initialize
--   DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)
--   {
--      STLGeometry* geo = (STLGeometry*)geom;
--      geo->InitSTLGeometry(readtrias);
--      readtrias.SetSize(0);
--
--      if (readedges.Size() != 0)
--      {
--         /*
--         for (int i = 1; i <= readedges.Size(); i+=2)
--         {
--         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;
--         }
--         */
--         geo->AddEdges(readedges);
--      }
--
--      if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;
--      return NG_SURFACE_INPUT_ERROR;
--   }
--
--
--
--
--   // automatically generates edges:
--   DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
--                                          Ng_Mesh* mesh,
--                                          Ng_Meshing_Parameters * mp)
--   {
--      STLGeometry* stlgeometry = (STLGeometry*)geom;
--      Mesh* me = (Mesh*)mesh;
--
--      // Philippose - 27/07/2009
--      // Do not locally re-define "mparam" here... "mparam" is a global 
--      // object 
--      //MeshingParameters mparam;
--      mp->Transfer_Parameters();
--
--      me -> SetGlobalH (mparam.maxh);
--      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
--                       stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
--                       0.3);
--
--      me -> LoadLocalMeshSize (mp->meshsize_filename);
--      /*
--      if (mp->meshsize_filename)
--      {
--      ifstream infile (mp->meshsize_filename);
--      if (!infile.good()) return NG_FILE_NOT_FOUND;
--      me -> LoadLocalMeshSize (infile);
--      }
--      */
--
--      STLMeshing (*stlgeometry, *me);
--
--      stlgeometry->edgesfound = 1;
--      stlgeometry->surfacemeshed = 0;
--      stlgeometry->surfaceoptimized = 0;
--      stlgeometry->volumemeshed = 0;
--
--      return NG_OK;
--   }
--
--
--
--
--   // generates mesh, empty mesh be already created.
--   DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
--                                                    Ng_Mesh* mesh,
--                                                    Ng_Meshing_Parameters * mp)
--   {
--      STLGeometry* stlgeometry = (STLGeometry*)geom;
--      Mesh* me = (Mesh*)mesh;
--
--      // Philippose - 27/07/2009
--      // Do not locally re-define "mparam" here... "mparam" is a global 
--      // object
--      //MeshingParameters mparam;
--      mp->Transfer_Parameters();
--
--
--      /*
--      me -> SetGlobalH (mparam.maxh);
--      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
--      stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
--      0.3);
--      */
--      /*
--      STLMeshing (*stlgeometry, *me);
--
--      stlgeometry->edgesfound = 1;
--      stlgeometry->surfacemeshed = 0;
--      stlgeometry->surfaceoptimized = 0;
--      stlgeometry->volumemeshed = 0;
--      */  
--      int retval = STLSurfaceMeshing (*stlgeometry, *me);
--      if (retval == MESHING3_OK)
--      {
--         (*mycout) << "Success !!!!" << endl;
--         stlgeometry->surfacemeshed = 1;
--         stlgeometry->surfaceoptimized = 0;
--         stlgeometry->volumemeshed = 0;
--      } 
--      else if (retval == MESHING3_OUTERSTEPSEXCEEDED)
--      {
--         (*mycout) << "ERROR: Give up because of too many trials. Meshing aborted!" << endl;
--      }
--      else if (retval == MESHING3_TERMINATE)
--      {
--         (*mycout) << "Meshing Stopped!" << endl;
--      }
--      else
--      {
--         (*mycout) << "ERROR: Surface meshing not successful. Meshing aborted!" << endl;
--      }
--
--
--      STLSurfaceOptimization (*stlgeometry, *me, mparam);
--
--      return NG_OK;
--   }
--
--
--
--
--   // fills STL Geometry
--   // positive orientation
--   // normal vector may be null-pointer
--   DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, 
--                                       double * p1, double * p2, double * p3, 
--                                       double * nv)
--   {
--      Point<3> apts[3];
--      apts[0] = Point<3>(p1[0],p1[1],p1[2]);
--      apts[1] = Point<3>(p2[0],p2[1],p2[2]);
--      apts[2] = Point<3>(p3[0],p3[1],p3[2]);
--
--      Vec<3> n;
--      if (!nv)
--         n = Cross (apts[0]-apts[1], apts[0]-apts[2]);
--      else
--         n = Vec<3>(nv[0],nv[1],nv[2]);
--
--      readtrias.Append(STLReadTriangle(apts,n));
--   }
--
--   // add (optional) edges:
--   DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, 
--      double * p1, double * p2)
--   {
--      readedges.Append(Point3d(p1[0],p1[1],p1[2]));
--      readedges.Append(Point3d(p2[0],p2[1],p2[2]));
--   }
--
--
--
--
--#ifdef OCCGEOMETRY
--   // --------------------- OCC Geometry / Meshing Utility Functions -------------------
--   // Create new OCC Geometry Object
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ()
--   {
--      return (Ng_OCC_Geometry*)(void*)new OCCGeometry;
--   } 
--
--
--
--
--   // Delete the OCC Geometry Object
--   DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)
--   {
--      if (geom != NULL)
--      {
--         delete (OCCGeometry*)geom;
--         geom = NULL;
--         return NG_OK;
--      }
--      
--      return NG_ERROR;
--   }
--
--
--
--   
--   // Loads geometry from STEP File
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)
--   {
--      // Call the STEP File Load function. Note.. the geometry class 
--      // is created and instantiated within the load function
--      OCCGeometry * occgeo = LoadOCC_STEP(filename);
--
--      return ((Ng_OCC_Geometry *)occgeo);
--   }
--
--
--
--   
--   // Loads geometry from IGES File
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)
--   {
--      // Call the IGES File Load function. Note.. the geometry class 
--      // is created and instantiated within the load function
--      OCCGeometry * occgeo = LoadOCC_IGES(filename);
--
--      return ((Ng_OCC_Geometry *)occgeo);
--   }
--
--
--
--   
--   // Loads geometry from BREP File
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)
--   {
--      // Call the BREP File Load function. Note.. the geometry class 
--      // is created and instantiated within the load function
--      OCCGeometry * occgeo = LoadOCC_BREP(filename);
--
--      return ((Ng_OCC_Geometry *)occgeo);
--   }
--
--
--
--
--   // Locally limit the size of the mesh to be generated at various points 
--   // based on the topology of the geometry
--   DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
--                                                 Ng_Mesh * mesh,
--                                                 Ng_Meshing_Parameters * mp)
--   {
--      OCCGeometry * occgeom = (OCCGeometry*)geom;
--      Mesh * me = (Mesh*)mesh;
--
--      me->geomtype = Mesh::GEOM_OCC;
--
--      mp->Transfer_Parameters();
--      
--      occparam.resthcloseedgeenable = mp->closeedgeenable;
--      occparam.resthcloseedgefac = mp->closeedgefact;
--
--      // Delete the mesh structures in order to start with a clean 
--      // slate
--      me->DeleteMesh();
--
--      OCCSetLocalMeshSize(*occgeom, *me);
--
--      return(NG_OK);
--   }
--
--
--
--   
--   // Mesh the edges and add Face descriptors to prepare for surface meshing
--   DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
--                                                 Ng_Mesh * mesh,
--                                                 Ng_Meshing_Parameters * mp)
--   {
--      OCCGeometry * occgeom = (OCCGeometry*)geom;
--      Mesh * me = (Mesh*)mesh;
--
--      mp->Transfer_Parameters();
--
--      OCCFindEdges(*occgeom, *me);
--
--      if((me->GetNP()) && (me->GetNFD()))
--      {
--         return NG_OK;
--      }
--      else
--      {
--         return NG_ERROR;
--      }
--   }
--
--
--
--   
--   // Mesh the edges and add Face descriptors to prepare for surface meshing
--   DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
--                                                    Ng_Mesh * mesh,
--                                                    Ng_Meshing_Parameters * mp)
--   {
--      int numpoints = 0;
--
--      OCCGeometry * occgeom = (OCCGeometry*)geom;
--      Mesh * me = (Mesh*)mesh;
--
--      // Set the internal meshing parameters structure from the nglib meshing 
--      // parameters structure
--      mp->Transfer_Parameters();
--
--
--      // Only go into surface meshing if the face descriptors have already been added
--      if(!me->GetNFD())
--         return NG_ERROR;
--
--      numpoints = me->GetNP();
--
--      // Initially set up only for surface meshing without any optimisation
--      int perfstepsend = MESHCONST_MESHSURFACE;
--
--      // Check and if required, enable surface mesh optimisation step
--      if(mp->optsurfmeshenable)
--      {
--         perfstepsend = MESHCONST_OPTSURFACE;
--      }
--
--      OCCMeshSurface(*occgeom, *me, perfstepsend);
--
--      me->CalcSurfacesOfNode();
--      
--      if(me->GetNP() <= numpoints)
--         return NG_ERROR;
--
--      if(me->GetNSE() <= 0)
--         return NG_ERROR;
--
--      return NG_OK;
--   }
--
--
--
--
--   // Extract the face map from the OCC geometry
--   // The face map basically gives an index to each face in the geometry, 
--   // which can be used to access a specific face
--   DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, 
--                                       Ng_OCC_TopTools_IndexedMapOfShape * FMap)
--   {
--      OCCGeometry* occgeom = (OCCGeometry*)geom;
--      TopTools_IndexedMapOfShape *occfmap = (TopTools_IndexedMapOfShape *)FMap;
--
--      // Copy the face map from the geometry to the given variable
--      occfmap->Assign(occgeom->fmap);
--
--      if(occfmap->Extent())
--      {
--         return NG_OK;
--      }
--      else
--      {
--         return NG_ERROR;
--      }
--   }
--
--   // ------------------ End - OCC Geometry / Meshing Utility Functions ----------------
--#endif
--
--
--
--
--   // ------------------ Begin - Meshing Parameters related functions ------------------
--   // Constructor for the local nglib meshing parameters class
--   DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters()
--   {
--      uselocalh = 1;
--
--      maxh = 1000;
--      minh = 0.0;
--
--      fineness = 0.5;
--      grading = 0.3;
--
--      elementsperedge = 2.0;
--      elementspercurve = 2.0;
--
--      closeedgeenable = 0;
--      closeedgefact = 2.0;
--
--        minedgelenenable = 0;
--        minedgelen = 1e-4;
--
--      second_order = 0;
--      quad_dominated = 0;
--
--      meshsize_filename = 0;
--
--      optsurfmeshenable = 1;
--      optvolmeshenable = 1;
--
--      optsteps_2d = 3;
--      optsteps_3d = 3;
--
--      invert_tets = 0;
--      invert_trigs = 0;
--
--      check_overlap = 1;
--      check_overlapping_boundary = 1;
--   }
--
--
--
--
--   // Reset the local meshing parameters to the default values
--   DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters()
--   {
--      uselocalh = 1;
--
--      maxh = 1000;
--      minh = 0;
--
--      fineness = 0.5;
--      grading = 0.3;
--
--      elementsperedge = 2.0;
--      elementspercurve = 2.0;
--
--      closeedgeenable = 0;
--      closeedgefact = 2.0;
--
--        minedgelenenable = 0;
--        minedgelen = 1e-4;
--
--      second_order = 0;
--      quad_dominated = 0;
--
--      meshsize_filename = 0;
--
--      optsurfmeshenable = 1;
--      optvolmeshenable = 1;
--
--      optsteps_2d = 3;
--      optsteps_3d = 3;
--
--      invert_tets = 0;
--      invert_trigs = 0;
--
--      check_overlap = 1;
--      check_overlapping_boundary = 1;
--   }
--
--
--
--
--   // 
--   DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters()
--   {
--      mparam.uselocalh = uselocalh;
--      
--      mparam.maxh = maxh;
--      mparam.minh = minh;
--
--      mparam.grading = grading;
--      mparam.curvaturesafety = elementspercurve;
--      mparam.segmentsperedge = elementsperedge;
--
--      mparam.secondorder = second_order;
--      mparam.quad = quad_dominated;
--
--      mparam.meshsizefilename = meshsize_filename;
--
--      mparam.optsteps2d = optsteps_2d;
--      mparam.optsteps3d = optsteps_3d;
--
--      mparam.inverttets = invert_tets;
--      mparam.inverttrigs = invert_trigs;
--
--      mparam.checkoverlap = check_overlap;
--      mparam.checkoverlappingboundary = check_overlapping_boundary;
--   }
--   // ------------------ End - Meshing Parameters related functions --------------------
--
--
--
--
--   // ------------------ Begin - Second Order Mesh generation functions ----------------
--   DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh)
--   {
--      Refinement ref;
--      ref.MakeSecondOrder(*(Mesh*) mesh);
--   }
--
--
--
--
--   DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,
--                                        Ng_Mesh * mesh)
--   {
--      ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );
--   }
--
--
--
--
--   DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,
--                                         Ng_Mesh * mesh)
--   {
--      ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
--   }
--
--
--
--
--   DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
--                                         Ng_Mesh * mesh)
--   {
--      ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
--   }
--
--
--
--
--#ifdef OCCGEOMETRY
--   DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
--                  Ng_Mesh * mesh)
--   {
--      ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
--   }
--#endif
--   // ------------------ End - Second Order Mesh generation functions ------------------
--
--
--
--
--   // ------------------ Begin - Uniform Mesh Refinement functions ---------------------
--   DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh)
--   {
--      Refinement ref;
--      ref.Refine ( * (Mesh*) mesh );
--   }
--
--
--
--
--   DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
--      Ng_Mesh * mesh)
--   {
--      ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
--   }
--
--
--
--
--   DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
--      Ng_Mesh * mesh)
--   {
--      ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
--   }
--
--
--
--
--   DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
--      Ng_Mesh * mesh)
--   {
--      ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
--   }
--
--
--
--
--#ifdef OCCGEOMETRY
--   DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
--      Ng_Mesh * mesh)
--   {
--      ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
--   }
--#endif
--   // ------------------ End - Uniform Mesh Refinement functions -----------------------
--} // End of namespace nglib
--
--
--
--
--// compatibility functions:
--namespace netgen 
--{
--   char geomfilename[255];
--
--   DLL_HEADER void MyError (const char * ch)
--   {
--      cerr << ch;
--   }
--
--
--
--
--   //Destination for messages, errors, ...
--   DLL_HEADER void Ng_PrintDest(const char * s)
--   {
--#ifdef PARALLEL
--     int id = 0;
--     MPI_Comm_rank(MPI_COMM_WORLD, &id);
--     if (id != 0) return;
--#endif
--     (*mycout) << s << flush;
--   }
--
--
--
--
--   DLL_HEADER double GetTime ()
--   {
--      return 0;
--   }
--
--
--
--
--   void ResetTime ()
--   {
--      ;
--   }
--
--
--
--
--   void MyBeep (int i)
--   {
--      ;
--   }
--
--
--
--
--   void Render()
--   {
--      ; 
--   }
--} // End of namespace netgen
--
--
--
--
--void Ng_Redraw () { ; }
--void Ng_ClearSolutionData () { ; }
--void Ng_SetSolutionData (Ng_SolutionData * soldata) 
--{ 
--  delete soldata->solclass;
--}
--void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }
--
--
-+/**************************************************************************/
-+/* File:   nglib.cpp                                                      */
-+/* Author: Joachim Schoeberl                                              */
-+/* Date:   7. May. 2000                                                   */
-+/**************************************************************************/
-+
-+/*
-+
-+  Interface to the netgen meshing kernel
-+
-+*/
-+#include <mystdlib.h>
-+#include <myadt.hpp>
-+
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <stlgeom.hpp>
-+#include <geometry2d.hpp>
-+#include <meshing.hpp>
-+#include <../visualization/soldata.hpp>
-+
-+#ifdef OCCGEOMETRY
-+#include <occgeom.hpp>
-+#endif
-+
-+#include <nginterface.h>
-+
-+
-+namespace netgen {
-+   extern void MeshFromSpline2D (SplineGeometry2d & geometry,
-+                                 Mesh *& mesh,
-+                                 MeshingParameters & mp);
-+}
-+
-+
-+
-+#ifdef PARALLEL
-+#include <mpi.h>
-+
-+namespace netgen
-+{
-+  // int id = 0, ntasks = 1;
-+  MPI_Comm mesh_comm;
-+}
-+#endif
-+
-+
-+namespace netgen
-+{
-+  int id = 0, ntasks = 1;
-+}
-+
-+
-+
-+/*
-+// should not be needed (occ currently requires it)
-+namespace netgen {
-+#include "../libsrc/visualization/vispar.hpp"
-+  VisualizationParameters vispar;
-+  VisualizationParameters :: VisualizationParameters() { ; }
-+}
-+*/
-+
-+
-+namespace nglib {
-+#include "nglib.h"
-+}
-+
-+using namespace netgen;
-+
-+// constants and types:
-+
-+namespace nglib
-+{
-+   // initialize, deconstruct Netgen library:
-+   DLL_HEADER void Ng_Init ()
-+   {
-+      mycout = &cout;
-+      myerr = &cerr;
-+      // netgen::testout->SetOutStream (new ofstream ("test.out"));
-+      testout = new ofstream ("test.out");
-+   }
-+
-+
-+
-+
-+   // Clean-up functions before ending usage of nglib
-+   DLL_HEADER void Ng_Exit ()
-+   {
-+      ;
-+   }
-+
-+
-+
-+
-+   // Create a new netgen mesh object
-+   DLL_HEADER Ng_Mesh * Ng_NewMesh ()
-+   {
-+      Mesh * mesh = new Mesh;
-+      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));
-+      return (Ng_Mesh*)(void*)mesh;
-+   }
-+
-+
-+
-+
-+   // Delete an existing netgen mesh object
-+   DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh)
-+   {
-+      if(mesh != NULL)
-+      {
-+         // Delete the Mesh structures
-+         ((Mesh*)mesh)->DeleteMesh();
-+
-+         // Now delete the Mesh class itself
-+         delete (Mesh*)mesh;
-+
-+         // Set the Ng_Mesh pointer to NULL
-+         mesh = NULL;
-+      }
-+   }
-+
-+
-+
-+
-+   // Save a netgen mesh in the native VOL format
-+   DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)
-+   {
-+      ((Mesh*)mesh)->Save(filename);
-+   }
-+
-+
-+
-+
-+   // Load a netgen native VOL mesh from a given file
-+   DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename)
-+   {
-+      Mesh * mesh = new Mesh;
-+      mesh->Load(filename);
-+      return ( (Ng_Mesh*)mesh );
-+   }
-+
-+
-+
-+
-+   // Merge another mesh file into the currently loaded one
-+   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)
-+   {
-+      Ng_Result status = NG_OK;
-+
-+      ifstream infile(filename);
-+      Mesh * m = (Mesh*)mesh;
-+
-+      if(!infile.good())
-+      {
-+         status = NG_FILE_NOT_FOUND;
-+      }
-+
-+      if(!m)
-+      {
-+         status = NG_ERROR;
-+      }
-+
-+      if(status == NG_OK)
-+      {
-+         const int num_pts = m->GetNP();
-+         const int face_offset = m->GetNFD();
-+
-+         m->Merge(infile, face_offset);
-+
-+         if(m->GetNP() > num_pts)
-+         {
-+            status = NG_OK;
-+         }
-+         else
-+         {
-+            status = NG_ERROR;
-+         }
-+      }
-+
-+      return status;
-+   }
-+
-+
-+
-+
-+   // Merge another mesh file into the currently loaded one
-+   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)
-+   {
-+      return NG_ERROR;
-+   }
-+
-+
-+
-+
-+   // Manually add a point to an existing mesh object
-+   DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      m->AddPoint (Point3d (x[0], x[1], x[2]));
-+   }
-+
-+
-+
-+
-+   // Manually add a surface element of a given type to an existing mesh object
-+   DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,
-+                                         int * pi)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      Element2d el (3);
-+      el.SetIndex (1);
-+      el.PNum(1) = pi[0];
-+      el.PNum(2) = pi[1];
-+      el.PNum(3) = pi[2];
-+      m->AddSurfaceElement (el);
-+   }
-+
-+
-+
-+
-+   // Manually add a volume element of a given type to an existing mesh object
-+   DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,
-+                                        int * pi)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      Element el (4);
-+      el.SetIndex (1);
-+      el.PNum(1) = pi[0];
-+      el.PNum(2) = pi[1];
-+      el.PNum(3) = pi[2];
-+      el.PNum(4) = pi[3];
-+      m->AddVolumeElement (el);
-+   }
-+
-+
-+
-+
-+   // Obtain the number of points in the mesh
-+   DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh)
-+   {
-+      return ((Mesh*)mesh) -> GetNP();
-+   }
-+
-+
-+
-+
-+   // Obtain the number of surface elements in the mesh
-+   DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh)
-+   {
-+      return ((Mesh*)mesh) -> GetNSE();
-+   }
-+
-+
-+
-+
-+   // Obtain the number of volume elements in the mesh
-+   DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh)
-+   {
-+      return ((Mesh*)mesh) -> GetNE();
-+   }
-+
-+
-+
-+
-+   //  Return point coordinates of a given point index in the mesh
-+   DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)
-+   {
-+      const Point3d & p = ((Mesh*)mesh)->Point(num);
-+      x[0] = p.X();
-+      x[1] = p.Y();
-+      x[2] = p.Z();
-+   }
-+
-+
-+
-+
-+   // Return the surface element at a given index "pi"
-+   DLL_HEADER Ng_Surface_Element_Type
-+      Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)
-+   {
-+      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
-+      for (int i = 1; i <= el.GetNP(); i++)
-+         pi[i-1] = el.PNum(i);
-+      Ng_Surface_Element_Type et;
-+      switch (el.GetNP())
-+      {
-+      case 3: et = NG_TRIG; break;
-+      case 4: et = NG_QUAD; break;
-+      case 6:
-+         switch (el.GetNV())
-+         {
-+         case 3: et = NG_TRIG6; break;
-+         case 4: et = NG_QUAD6; break;
-+         default:
-+            et = NG_TRIG6; break;
-+         }
-+         break;
-+      case 8: et = NG_QUAD8; break;
-+      default:
-+         et = NG_TRIG; break; // for the compiler
-+      }
-+      return et;
-+   }
-+
-+
-+
-+
-+   // Return the volume element at a given index "pi"
-+   DLL_HEADER Ng_Volume_Element_Type
-+      Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)
-+   {
-+      const Element & el = ((Mesh*)mesh)->VolumeElement(num);
-+      for (int i = 1; i <= el.GetNP(); i++)
-+         pi[i-1] = el.PNum(i);
-+      Ng_Volume_Element_Type et;
-+      switch (el.GetNP())
-+      {
-+      case 4: et = NG_TET; break;
-+      case 5: et = NG_PYRAMID; break;
-+      case 6: et = NG_PRISM; break;
-+      case 10: et = NG_TET10; break;
-+      default:
-+         et = NG_TET; break; // for the compiler
-+      }
-+      return et;
-+   }
-+
-+
-+
-+
-+   // Set a global limit on the maximum mesh size allowed
-+   DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)
-+   {
-+      ((Mesh*)mesh) -> SetGlobalH (h);
-+   }
-+
-+
-+
-+
-+   // Set a local limit on the maximum mesh size allowed around the given point
-+   DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)
-+   {
-+      ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);
-+   }
-+
-+
-+
-+
-+   // Set a local limit on the maximum mesh size allowed within a given box region
-+   DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)
-+   {
-+      for (double x = pmin[0]; x < pmax[0]; x += h)
-+         for (double y = pmin[1]; y < pmax[1]; y += h)
-+            for (double z = pmin[2]; z < pmax[2]; z += h)
-+               ((Mesh*)mesh) -> RestrictLocalH (Point3d (x, y, z), h);
-+   }
-+
-+
-+
-+
-+   // Generates volume mesh from an existing surface mesh
-+   DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      // Philippose - 30/08/2009
-+      // Do not locally re-define "mparam" here... "mparam" is a global
-+      // object
-+      //MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+      m->CalcLocalH(mparam.grading);
-+
-+      MeshVolume (mparam, *m);
-+      RemoveIllegalElements (*m);
-+      OptimizeVolume (mparam, *m);
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   /* ------------------ 2D Meshing Functions ------------------------- */
-+   DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      m->AddPoint (Point3d (x[0], x[1], 0));
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      Segment seg;
-+      seg[0] = pi1;
-+      seg[1] = pi2;
-+      m->AddSegment (seg);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      return m->GetNP();
-+   }
-+
-+
-+
-+
-+   DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      return m->GetNSE();
-+   }
-+
-+
-+
-+
-+   DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      return m->GetNSeg();
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      Point<3> & p = m->Point(num);
-+      x[0] = p(0);
-+      x[1] = p(1);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER Ng_Surface_Element_Type
-+      Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
-+   {
-+      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
-+      for (int i = 1; i <= el.GetNP(); i++)
-+         pi[i-1] = el.PNum(i);
-+
-+      Ng_Surface_Element_Type et;
-+      switch (el.GetNP())
-+      {
-+      case 3: et = NG_TRIG; break;
-+      case 4: et = NG_QUAD; break;
-+      case 6:
-+         switch (el.GetNV())
-+         {
-+         case 3: et = NG_TRIG6; break;
-+         case 4: et = NG_QUAD6; break;
-+         default:
-+            et = NG_TRIG6; break;
-+         }
-+         break;
-+      case 8: et = NG_QUAD8; break;
-+      default:
-+         et = NG_TRIG; break; // for the compiler
-+      }
-+
-+      if (matnum)
-+         *matnum = el.GetIndex();
-+
-+      return et;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
-+   {
-+      const Segment & seg = ((Mesh*)mesh)->LineSegment(num);
-+      pi[0] = seg[0];
-+      pi[1] = seg[1];
-+
-+      if (matnum)
-+         *matnum = seg.edgenr;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)
-+   {
-+      SplineGeometry2d * geom = new SplineGeometry2d();
-+      geom -> Load (filename);
-+      return (Ng_Geometry_2D *)geom;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
-+                                            Ng_Mesh ** mesh,
-+                                            Ng_Meshing_Parameters * mp)
-+   {
-+      // use global variable mparam
-+      //  MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+      Mesh * m;
-+      MeshFromSpline2D (*(SplineGeometry2d*)geom, m, mparam);
-+
-+      cout << m->GetNSE() << " elements, " << m->GetNP() << " points" << endl;
-+
-+      *mesh = (Ng_Mesh*)m;
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
-+      Ng_Mesh * mesh,
-+      int levels)
-+   {
-+      Refinement2d ref(*(SplineGeometry2d*)geom);
-+      HPRefinement (*(Mesh*)mesh, &ref, levels);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
-+      Ng_Mesh * mesh,
-+      int levels, double parameter)
-+   {
-+      Refinement2d ref(*(SplineGeometry2d*)geom);
-+      HPRefinement (*(Mesh*)mesh, &ref, levels, parameter);
-+   }
-+
-+
-+
-+
-+   Array<STLReadTriangle> readtrias; //only before initstlgeometry
-+   Array<Point<3> > readedges; //only before init stlgeometry
-+
-+   // loads geometry from STL file
-+   DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)
-+   {
-+      int i;
-+      STLGeometry geom;
-+      STLGeometry* geo;
-+      ifstream ist(filename);
-+
-+      if (binary)
-+      {
-+         geo = geom.LoadBinary(ist);
-+      }
-+      else
-+      {
-+         geo = geom.Load(ist);
-+      }
-+
-+      readtrias.SetSize(0);
-+      readedges.SetSize(0);
-+
-+      Point3d p;
-+      Vec3d normal;
-+      double p1[3];
-+      double p2[3];
-+      double p3[3];
-+      double n[3];
-+
-+      Ng_STL_Geometry * geo2 = Ng_STL_NewGeometry();
-+
-+      for (i = 1; i <= geo->GetNT(); i++)
-+      {
-+         const STLTriangle& t = geo->GetTriangle(i);
-+         p = geo->GetPoint(t.PNum(1));
-+         p1[0] = p.X(); p1[1] = p.Y(); p1[2] = p.Z();
-+         p = geo->GetPoint(t.PNum(2));
-+         p2[0] = p.X(); p2[1] = p.Y(); p2[2] = p.Z();
-+         p = geo->GetPoint(t.PNum(3));
-+         p3[0] = p.X(); p3[1] = p.Y(); p3[2] = p.Z();
-+         normal = t.Normal();
-+         n[0] = normal.X(); n[1] = normal.Y(); n[2] = normal.Z();
-+
-+         Ng_STL_AddTriangle(geo2, p1, p2, p3, n);
-+      }
-+
-+      return geo2;
-+   }
-+
-+
-+
-+
-+   // generate new STL Geometry
-+   DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ()
-+   {
-+      return (Ng_STL_Geometry*)(void*)new STLGeometry;
-+   }
-+
-+
-+
-+
-+   // after adding triangles (and edges) initialize
-+   DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)
-+   {
-+      STLGeometry* geo = (STLGeometry*)geom;
-+      geo->InitSTLGeometry(readtrias);
-+      readtrias.SetSize(0);
-+
-+      if (readedges.Size() != 0)
-+      {
-+         /*
-+         for (int i = 1; i <= readedges.Size(); i+=2)
-+         {
-+         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;
-+         }
-+         */
-+         geo->AddEdges(readedges);
-+      }
-+
-+      if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;
-+      return NG_SURFACE_INPUT_ERROR;
-+   }
-+
-+
-+
-+
-+   // automatically generates edges:
-+   DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
-+                                          Ng_Mesh* mesh,
-+                                          Ng_Meshing_Parameters * mp)
-+   {
-+      STLGeometry* stlgeometry = (STLGeometry*)geom;
-+      Mesh* me = (Mesh*)mesh;
-+
-+      // Philippose - 27/07/2009
-+      // Do not locally re-define "mparam" here... "mparam" is a global
-+      // object
-+      //MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+      me -> SetGlobalH (mparam.maxh);
-+      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
-+                       stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
-+                       0.3);
-+
-+      me -> LoadLocalMeshSize (mp->meshsize_filename);
-+      /*
-+      if (mp->meshsize_filename)
-+      {
-+      ifstream infile (mp->meshsize_filename);
-+      if (!infile.good()) return NG_FILE_NOT_FOUND;
-+      me -> LoadLocalMeshSize (infile);
-+      }
-+      */
-+
-+      STLMeshing (*stlgeometry, *me);
-+
-+      stlgeometry->edgesfound = 1;
-+      stlgeometry->surfacemeshed = 0;
-+      stlgeometry->surfaceoptimized = 0;
-+      stlgeometry->volumemeshed = 0;
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   // generates mesh, empty mesh be already created.
-+   DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
-+                                                    Ng_Mesh* mesh,
-+                                                    Ng_Meshing_Parameters * mp)
-+   {
-+      STLGeometry* stlgeometry = (STLGeometry*)geom;
-+      Mesh* me = (Mesh*)mesh;
-+
-+      // Philippose - 27/07/2009
-+      // Do not locally re-define "mparam" here... "mparam" is a global
-+      // object
-+      //MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+
-+      /*
-+      me -> SetGlobalH (mparam.maxh);
-+      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
-+      stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
-+      0.3);
-+      */
-+      /*
-+      STLMeshing (*stlgeometry, *me);
-+
-+      stlgeometry->edgesfound = 1;
-+      stlgeometry->surfacemeshed = 0;
-+      stlgeometry->surfaceoptimized = 0;
-+      stlgeometry->volumemeshed = 0;
-+      */
-+      int retval = STLSurfaceMeshing (*stlgeometry, *me);
-+      if (retval == MESHING3_OK)
-+      {
-+         (*mycout) << "Success !!!!" << endl;
-+         stlgeometry->surfacemeshed = 1;
-+         stlgeometry->surfaceoptimized = 0;
-+         stlgeometry->volumemeshed = 0;
-+      }
-+      else if (retval == MESHING3_OUTERSTEPSEXCEEDED)
-+      {
-+         (*mycout) << "ERROR: Give up because of too many trials. Meshing aborted!" << endl;
-+      }
-+      else if (retval == MESHING3_TERMINATE)
-+      {
-+         (*mycout) << "Meshing Stopped!" << endl;
-+      }
-+      else
-+      {
-+         (*mycout) << "ERROR: Surface meshing not successful. Meshing aborted!" << endl;
-+      }
-+
-+
-+      STLSurfaceOptimization (*stlgeometry, *me, mparam);
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   // fills STL Geometry
-+   // positive orientation
-+   // normal vector may be null-pointer
-+   DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom,
-+                                       double * p1, double * p2, double * p3,
-+                                       double * nv)
-+   {
-+      Point<3> apts[3];
-+      apts[0] = Point<3>(p1[0],p1[1],p1[2]);
-+      apts[1] = Point<3>(p2[0],p2[1],p2[2]);
-+      apts[2] = Point<3>(p3[0],p3[1],p3[2]);
-+
-+      Vec<3> n;
-+      if (!nv)
-+         n = Cross (apts[0]-apts[1], apts[0]-apts[2]);
-+      else
-+         n = Vec<3>(nv[0],nv[1],nv[2]);
-+
-+      readtrias.Append(STLReadTriangle(apts,n));
-+   }
-+
-+   // add (optional) edges:
-+   DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom,
-+      double * p1, double * p2)
-+   {
-+      readedges.Append(Point3d(p1[0],p1[1],p1[2]));
-+      readedges.Append(Point3d(p2[0],p2[1],p2[2]));
-+   }
-+
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+   // --------------------- OCC Geometry / Meshing Utility Functions -------------------
-+   // Create new OCC Geometry Object
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ()
-+   {
-+      return (Ng_OCC_Geometry*)(void*)new OCCGeometry;
-+   }
-+
-+
-+
-+
-+   // Delete the OCC Geometry Object
-+   DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)
-+   {
-+      if (geom != NULL)
-+      {
-+         delete (OCCGeometry*)geom;
-+         geom = NULL;
-+         return NG_OK;
-+      }
-+
-+      return NG_ERROR;
-+   }
-+
-+
-+
-+
-+   // Loads geometry from STEP File
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)
-+   {
-+      // Call the STEP File Load function. Note.. the geometry class
-+      // is created and instantiated within the load function
-+      OCCGeometry * occgeo = LoadOCC_STEP(filename);
-+
-+      return ((Ng_OCC_Geometry *)occgeo);
-+   }
-+
-+
-+
-+
-+   // Loads geometry from IGES File
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)
-+   {
-+      // Call the IGES File Load function. Note.. the geometry class
-+      // is created and instantiated within the load function
-+      OCCGeometry * occgeo = LoadOCC_IGES(filename);
-+
-+      return ((Ng_OCC_Geometry *)occgeo);
-+   }
-+
-+
-+
-+
-+   // Loads geometry from BREP File
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)
-+   {
-+      // Call the BREP File Load function. Note.. the geometry class
-+      // is created and instantiated within the load function
-+      OCCGeometry * occgeo = LoadOCC_BREP(filename);
-+
-+      return ((Ng_OCC_Geometry *)occgeo);
-+   }
-+
-+
-+
-+
-+   // Locally limit the size of the mesh to be generated at various points
-+   // based on the topology of the geometry
-+   DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp)
-+   {
-+      OCCGeometry * occgeom = (OCCGeometry*)geom;
-+      Mesh * me = (Mesh*)mesh;
-+
-+      me->geomtype = Mesh::GEOM_OCC;
-+
-+      mp->Transfer_Parameters();
-+
-+      occparam.resthcloseedgeenable = mp->closeedgeenable;
-+      occparam.resthcloseedgefac = mp->closeedgefact;
-+
-+      // Delete the mesh structures in order to start with a clean
-+      // slate
-+      me->DeleteMesh();
-+
-+      OCCSetLocalMeshSize(*occgeom, *me);
-+
-+      return(NG_OK);
-+   }
-+
-+
-+
-+
-+   // Mesh the edges and add Face descriptors to prepare for surface meshing
-+   DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp)
-+   {
-+      OCCGeometry * occgeom = (OCCGeometry*)geom;
-+      Mesh * me = (Mesh*)mesh;
-+
-+      mp->Transfer_Parameters();
-+
-+      OCCFindEdges(*occgeom, *me);
-+
-+      if((me->GetNP()) && (me->GetNFD()))
-+      {
-+         return NG_OK;
-+      }
-+      else
-+      {
-+         return NG_ERROR;
-+      }
-+   }
-+
-+
-+
-+
-+   // Mesh the edges and add Face descriptors to prepare for surface meshing
-+   DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
-+                                                    Ng_Mesh * mesh,
-+                                                    Ng_Meshing_Parameters * mp)
-+   {
-+      int numpoints = 0;
-+
-+      OCCGeometry * occgeom = (OCCGeometry*)geom;
-+      Mesh * me = (Mesh*)mesh;
-+
-+      // Set the internal meshing parameters structure from the nglib meshing
-+      // parameters structure
-+      mp->Transfer_Parameters();
-+
-+
-+      // Only go into surface meshing if the face descriptors have already been added
-+      if(!me->GetNFD())
-+         return NG_ERROR;
-+
-+      numpoints = me->GetNP();
-+
-+      // Initially set up only for surface meshing without any optimisation
-+      int perfstepsend = MESHCONST_MESHSURFACE;
-+
-+      // Check and if required, enable surface mesh optimisation step
-+      if(mp->optsurfmeshenable)
-+      {
-+         perfstepsend = MESHCONST_OPTSURFACE;
-+      }
-+
-+      OCCMeshSurface(*occgeom, *me, perfstepsend);
-+
-+      me->CalcSurfacesOfNode();
-+
-+      if(me->GetNP() <= numpoints)
-+         return NG_ERROR;
-+
-+      if(me->GetNSE() <= 0)
-+         return NG_ERROR;
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   // Extract the face map from the OCC geometry
-+   // The face map basically gives an index to each face in the geometry,
-+   // which can be used to access a specific face
-+   DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom,
-+                                       Ng_OCC_TopTools_IndexedMapOfShape * FMap)
-+   {
-+      OCCGeometry* occgeom = (OCCGeometry*)geom;
-+      TopTools_IndexedMapOfShape *occfmap = (TopTools_IndexedMapOfShape *)FMap;
-+
-+      // Copy the face map from the geometry to the given variable
-+      occfmap->Assign(occgeom->fmap);
-+
-+      if(occfmap->Extent())
-+      {
-+         return NG_OK;
-+      }
-+      else
-+      {
-+         return NG_ERROR;
-+      }
-+   }
-+
-+   // ------------------ End - OCC Geometry / Meshing Utility Functions ----------------
-+#endif
-+
-+
-+
-+
-+   // ------------------ Begin - Meshing Parameters related functions ------------------
-+   // Constructor for the local nglib meshing parameters class
-+   DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters()
-+   {
-+      uselocalh = 1;
-+
-+      maxh = 1000;
-+      minh = 0.0;
-+
-+      fineness = 0.5;
-+      grading = 0.3;
-+
-+      elementsperedge = 2.0;
-+      elementspercurve = 2.0;
-+
-+      closeedgeenable = 0;
-+      closeedgefact = 2.0;
-+
-+        minedgelenenable = 0;
-+        minedgelen = 1e-4;
-+
-+      second_order = 0;
-+      quad_dominated = 0;
-+
-+      meshsize_filename = 0;
-+
-+      optsurfmeshenable = 1;
-+      optvolmeshenable = 1;
-+
-+      optsteps_2d = 3;
-+      optsteps_3d = 3;
-+
-+      invert_tets = 0;
-+      invert_trigs = 0;
-+
-+      check_overlap = 1;
-+      check_overlapping_boundary = 1;
-+   }
-+
-+
-+
-+
-+   // Reset the local meshing parameters to the default values
-+   DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters()
-+   {
-+      uselocalh = 1;
-+
-+      maxh = 1000;
-+      minh = 0;
-+
-+      fineness = 0.5;
-+      grading = 0.3;
-+
-+      elementsperedge = 2.0;
-+      elementspercurve = 2.0;
-+
-+      closeedgeenable = 0;
-+      closeedgefact = 2.0;
-+
-+        minedgelenenable = 0;
-+        minedgelen = 1e-4;
-+
-+      second_order = 0;
-+      quad_dominated = 0;
-+
-+      meshsize_filename = 0;
-+
-+      optsurfmeshenable = 1;
-+      optvolmeshenable = 1;
-+
-+      optsteps_2d = 3;
-+      optsteps_3d = 3;
-+
-+      invert_tets = 0;
-+      invert_trigs = 0;
-+
-+      check_overlap = 1;
-+      check_overlapping_boundary = 1;
-+   }
-+
-+
-+
-+
-+   //
-+   DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters()
-+   {
-+      mparam.uselocalh = uselocalh;
-+
-+      mparam.maxh = maxh;
-+      mparam.minh = minh;
-+
-+      mparam.grading = grading;
-+      mparam.curvaturesafety = elementspercurve;
-+      mparam.segmentsperedge = elementsperedge;
-+
-+      mparam.secondorder = second_order;
-+      mparam.quad = quad_dominated;
-+
-+      mparam.meshsizefilename = meshsize_filename;
-+
-+      mparam.optsteps2d = optsteps_2d;
-+      mparam.optsteps3d = optsteps_3d;
-+
-+      mparam.inverttets = invert_tets;
-+      mparam.inverttrigs = invert_trigs;
-+
-+      mparam.checkoverlap = check_overlap;
-+      mparam.checkoverlappingboundary = check_overlapping_boundary;
-+   }
-+   // ------------------ End - Meshing Parameters related functions --------------------
-+
-+
-+
-+
-+   // ------------------ Begin - Second Order Mesh generation functions ----------------
-+   DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh)
-+   {
-+      Refinement ref;
-+      ref.MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,
-+                                        Ng_Mesh * mesh)
-+   {
-+      ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,
-+                                         Ng_Mesh * mesh)
-+   {
-+      ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
-+                                         Ng_Mesh * mesh)
-+   {
-+      ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+   DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
-+                  Ng_Mesh * mesh)
-+   {
-+      ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+#endif
-+   // ------------------ End - Second Order Mesh generation functions ------------------
-+
-+
-+
-+
-+   // ------------------ Begin - Uniform Mesh Refinement functions ---------------------
-+   DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh)
-+   {
-+      Refinement ref;
-+      ref.Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+   DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+#endif
-+   // ------------------ End - Uniform Mesh Refinement functions -----------------------
-+} // End of namespace nglib
-+
-+
-+
-+
-+// compatibility functions:
-+namespace netgen
-+{
-+   char geomfilename[255];
-+
-+   DLL_HEADER void MyError (const char * ch)
-+   {
-+      cerr << ch;
-+   }
-+
-+
-+
-+
-+   //Destination for messages, errors, ...
-+   DLL_HEADER void Ng_PrintDest(const char * s)
-+   {
-+#ifdef PARALLEL
-+     int id = 0;
-+     MPI_Comm_rank(MPI_COMM_WORLD, &id);
-+     if (id != 0) return;
-+#endif
-+     (*mycout) << s << flush;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER double GetTime ()
-+   {
-+      return 0;
-+   }
-+
-+
-+
-+
-+   void ResetTime ()
-+   {
-+      ;
-+   }
-+
-+
-+
-+
-+   void MyBeep (int i)
-+   {
-+      ;
-+   }
-+
-+
-+
-+
-+   void Render()
-+   {
-+      ;
-+   }
-+} // End of namespace netgen
-+
-+
-+
-+
-+void Ng_Redraw () { ; }
-+void Ng_ClearSolutionData () { ; }
-+void Ng_SetSolutionData (Ng_SolutionData * soldata)
-+{
-+  delete soldata->solclass;
-+}
-+void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }
-+
-+
-diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.h netgen-5.3.1_SRC_modif/nglib/nglib.h
---- netgen-5.3.1_SRC_orig/nglib/nglib.h        2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/nglib.h       2018-03-01 15:44:37.242256019 +0300
-@@ -1,747 +1,747 @@
--#ifndef NGLIB
--#define NGLIB
--
--/**************************************************************************/
--/* File:   nglib.h                                                        */
--/* Author: Joachim Schoeberl                                              */
--/* Date:   7. May. 2000                                                   */
--/**************************************************************************/
--
--/*!
--   \file nglib.h
--   \brief Library interface to the netgen meshing kernel
--   \author Joachim Schoeberl
--   \date 7. May 2000
--
--   This header file provides access to the core functionality of the Netgen 
--   Mesher via a library interface, without an interactive User Interface.
--
--   The intention of providing these set of functions is to allow system 
--   developers to integrate Netgen into top-level code, to act as the low 
--   level mesh generation / optimisation kernel.  
--*/
--
--// Philippose - 14.02.2009
--// Modifications for creating a DLL in Windows
--#ifdef WIN32
--   #ifdef NGLIB_EXPORTS || nglib_EXPORTS
--      #define DLL_HEADER   __declspec(dllexport)
--   #else
--      #define DLL_HEADER   __declspec(dllimport)
--   #endif
--#else
--   #define DLL_HEADER 
--#endif
--
--
--
--// ** Constants used within Netgen *********************
--/// Maximum allowed number of nodes per volume element
--#define NG_VOLUME_ELEMENT_MAXPOINTS 10
--
--/// Maximum allowed number of nodes per surface element
--#define NG_SURFACE_ELEMENT_MAXPOINTS 8
--
--
--
--// *** Data-types for accessing Netgen functionality ***
--/// Data type for NETGEN mesh
--typedef void * Ng_Mesh;
--
--/// Data type for NETGEN CSG geometry
--typedef void * Ng_CSG_Geometry;
--
--/// Data type for NETGEN 2D geometry
--typedef void * Ng_Geometry_2D;
--
--/// Data type for NETGEN STL geometry
--typedef void * Ng_STL_Geometry;
--
--#ifdef OCCGEOMETRY
--/// Data type for NETGEN OpenCascade geometry
--typedef void * Ng_OCC_Geometry;
--typedef void * Ng_OCC_TopTools_IndexedMapOfShape;
--#endif
--
--
--// *** Special Enum types used within Netgen ***********
--/// Currently implemented surface element types
--enum Ng_Surface_Element_Type 
--   { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3, NG_QUAD6 = 4, NG_QUAD8 = 5 };
--
--/// Currently implemented volume element types
--enum Ng_Volume_Element_Type 
--   { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 };
--
--/// Values returned by Netgen functions
--enum Ng_Result 
--   { 
--     NG_ERROR               = -1,   
--     NG_OK                  = 0, 
--     NG_SURFACE_INPUT_ERROR = 1,
--     NG_VOLUME_FAILURE      = 2, 
--     NG_STL_INPUT_ERROR     = 3,
--     NG_SURFACE_FAILURE     = 4,
--     NG_FILE_NOT_FOUND      = 5 
--   };
--
--
--
--// *** Classes required for use within Netgen **********
--/// Netgen Meshing Parameters class
--class Ng_Meshing_Parameters 
--{
--public:
--   int uselocalh;                      //!< Switch to enable / disable usage of local mesh size modifiers
--
--   double maxh;                        //!< Maximum global mesh size allowed
--   double minh;                        //!< Minimum global mesh size allowed
--
--   double fineness;                    //!< Mesh density: 0...1 (0 => coarse; 1 => fine)
--   double grading;                     //!< Mesh grading: 0...1 (0 => uniform mesh; 1 => aggressive local grading)
--
--   double elementsperedge;             //!< Number of elements to generate per edge of the geometry
--   double elementspercurve;            //!< Elements to generate per curvature radius
--
--   int closeedgeenable;                //!< Enable / Disable mesh refinement at close edges
--   double closeedgefact;               //!< Factor to use for refinement at close edges (larger => finer)
--
--   int minedgelenenable;                         //!< Enable / Disable user defined minimum edge length for edge subdivision
--   double minedgelen;                  //!< Minimum edge length to use while subdividing the edges (default = 1e-4)
--
--   int second_order;                   //!< Generate second-order surface and volume elements
--   int quad_dominated;                 //!< Creates a Quad-dominated mesh 
--
--   char * meshsize_filename;           //!< Optional external mesh size file 
--
--   int optsurfmeshenable;              //!< Enable / Disable automatic surface mesh optimization
--   int optvolmeshenable;               //!< Enable / Disable automatic volume mesh optimization
--
--   int optsteps_3d;                     //!< Number of optimize steps to use for 3-D mesh optimization
--   int optsteps_2d;                     //!< Number of optimize steps to use for 2-D mesh optimization
--
--   // Philippose - 13/09/2010
--   // Added a couple more parameters into the meshing parameters list 
--   // from Netgen into Nglib
--   int invert_tets;                    //!< Invert all the volume elements
--   int invert_trigs;                   //!< Invert all the surface triangle elements
--
--   int check_overlap;                  //!< Check for overlapping surfaces during Surface meshing
--   int check_overlapping_boundary;     //!< Check for overlapping surface elements before volume meshing
--
--
--   /*!
--      Default constructor for the Mesh Parameters class
--
--      Note: This constructor initialises the variables in the 
--      class with the following default values
--      - #uselocalh: 1
--      - #maxh: 1000.0
--      - #fineness: 0.5
--      - #grading: 0.3
--      - #elementsperedge: 2.0
--      - #elementspercurve: 2.0
--      - #closeedgeenable: 0
--      - #closeedgefact: 2.0
--      - #secondorder: 0
--      - #meshsize_filename: null
--      - #quad_dominated: 0
--      - #optsurfmeshenable: 1
--      - #optvolmeshenable: 1
--      - #optsteps_2d: 3
--      - #optsteps_3d: 3
--      - #invert_tets: 0
--      - #invert_trigs:0 
--      - #check_overlap: 1
--      - #check_overlapping_boundary: 1
--   */
--   DLL_HEADER Ng_Meshing_Parameters();
--
--
--
--   /*!
--       Reset the meshing parameters to their defaults
--
--       This member function resets all the meshing parameters 
--       of the object to the default values
--   */
--   DLL_HEADER void Reset_Parameters();
--
--
--
--   /*!
--       Transfer local meshing parameters to internal meshing parameters
--
--       This member function transfers all the meshing parameters 
--       defined in the local meshing parameters structure of nglib into 
--       the internal meshing parameters structure used by the Netgen core
--   */
--   DLL_HEADER void Transfer_Parameters();
--};
--
--
--
--
--// *** Functions Exported by this Library *************
--
--// ------------------------------------------------------------------
--// Netgen library initialisation / destruction functions
--
--/*! \brief Initialise the Netgen library and prepare for use
--
--    This function needs to be called by the third-party 
--    program before beginning to use the other Netgen 
--    specific functions.
--*/
--DLL_HEADER void Ng_Init ();
--
--
--/*! \brief Exit the Netgen meshing kernel in a clean manner
--
--    Use this function to exit the meshing sub-system in 
--    a clean and orderly manner.
--*/
--DLL_HEADER void Ng_Exit ();
--  
--
--/*! \brief Create a new (and empty) Netgen Mesh Structure
--
--    This function creates a new Netgen Mesh, initialises 
--    it, and returns a pointer to the created mesh structure. 
--
--    Use the returned pointer for subsequent operations 
--    which involve mesh operations.
--
--    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh
--*/
--DLL_HEADER  Ng_Mesh * Ng_NewMesh ();
--
--
--/*! \brief Delete an existing Netgen Mesh Structure
--
--    Use this function to delete an existing Netgen mesh 
--    structure and release the used memory. 
--
--    \param mesh Pointer to an existing Netgen Mesh structure 
--                of type #Ng_Mesh
--*/
--DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);
--
--
--/*! \brief Save a Netgen Mesh to disk
--
--    This function allows a generated mesh structure to be saved 
--    to disk.
--
--    A Mesh saved using this function, will be written to disk 
--    in the Netgen VOL file format.
--
--    \param mesh    Pointer to an existing Netgen Mesh structure 
--                   of type #Ng_Mesh
--    \param filename Pointer to a character array containing the 
--                    name of the file to which the mesh should 
--                    be saved
--*/
--DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);
--
--
--/*! \brief Load a Netgen VOL Mesh from disk into memory
--
--    A Netgen mesh saved in the internal VOL format can be loaded 
--    into a Netgen Mesh structure using this function. 
--
--    \param filename Pointer to a character array containing the 
--                    name of the file to load
--    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing 
--                    the mesh loaded from disk
--*/
--DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);
--
--
--/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory
--
--    A Netgen mesh saved in the internal VOL format can be merged 
--    into an existing Netgen Mesh structure using this function. 
--
--    \param mesh       Name of the Mesh structure already existent in memory
--    \param filename   Pointer to a character array containing the 
--                      name of the file to load
--    \return Ng_Result Status of the merge operation
--*/
--DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);
--
--
--/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case 
--    when both are already in memory
--
--    (NOTE: FUNCTION STILL WORK IN PROGRESS!!!)
--
--    This function can be used to merge two Netgen meshes already present 
--    in memory.
--
--    \param mesh1      Parent Mesh structure into which the second mesh 
--                      will be merged
--    \param mesh2      Child mesh structure which will get merged into 
--                      the parent mesh
--    \return Ng_Result Status of the merge operation
--*/
--DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);
--// ------------------------------------------------------------------
--
--
--
--// ------------------------------------------------------------------
--// Basic Meshing functions for manually adding points, surface elements 
--// and volume elements to a Netgen Mesh structure
--
--/*! \brief Add a point to a given Netgen Mesh Structure
--
--    This function allows points to be directly added to a Netgen 
--    mesh structure by providing the co-ordinates.
--
--    Each call to the function allows only one point to be added.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param x    Pointer to an array of type double containing the co-ordinates 
--                of the point to be added in the form: \n
--                - x[0] = X co-ordinate
--                - x[1] = Y co-ordinate
--                - x[2] = Z co-ordinate
--*/
--DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);
--
--
--/*! \brief Add a surface element to a given Netgen Mesh Structure
--
--    This function allows the top-level code to directly add individual 
--    Surface Elements to a Netgen Mesh Structure by providing the type of 
--    element to be added and the indices of the points which constitute the 
--    element.
--
--    <i>Note:</i> 
--    - The points referred to by the surface elements must have been
--      added prior to calling this function. 
--    - Currently only triangular elements are supported, and the Surface Element 
--      Type argument is not used.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param et   Surface Element type provided via the enumerated type 
--                #Ng_Surface_Element_Type 
--    \param pi   Pointer to an array of integers containing the indices of the 
--                points which constitute the surface element being added
--*/
--DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);
--
--
--/*! \brief Add a volume element to a given Netgen Mesh Structure
--
--    This function allows the top-level code to directly add individual 
--    Volume Elements to a Netgen Mesh Structure by providing the type of 
--    element to be added and the indices of the points which constitute the 
--    element.
--
--    <i>Note:</i> 
--    - The points referred to by the volume elements must have been
--      added prior to calling this function. 
--    - Currently only tetrahedral elements are supported, and the Volume Element 
--      Type argument is not used.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param et   Volume Element type provided via the enumerated type 
--                #Ng_Volume_Element_Type 
--    \param pi   Pointer to an array of integers containing the indices of the 
--                points which constitute the volume element being added
--
--*/
--DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);
--  
--// ------------------------------------------------------------------
--
--
--
--// ------------------------------------------------------------------
--// Local Mesh Size restriction / limiting utilities
--
--/*! \brief Apply a global restriction on mesh element size
--
--    This utility allows the user to apply a global mesh element 
--    size limitation. 
--
--    During mesh creation, in the absence of an explicit local 
--    size restriction around the neighbourhood of a point within 
--    the meshing domain, this global size restriction will be 
--    utilised.
--
--    <b>Note</b>: This function only limits the <b>Maximum</b> 
--    size of an element within the mesh.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param h    Variable of type <i>double</i>, specifying the maximum
--                allowable mesh size
--*/
--DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);
--
--
--/*! \brief Locally restrict the mesh element size at the given point
--
--    Unlike the function #Ng_RestrictMeshSizeGlobal, this function 
--    allows the user to locally restrict the maximum allowable mesh 
--    size at a given point.
--
--    The point is specified via its three cartesian co-ordinates.
--
--    <b>Note</b>: This function only limits the <b>Maximum</b> size 
--    of the elements around the specified point.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param p    Pointer to an Array of type <i>double</i>, containing 
--                the three co-ordinates of the point in the form: \n
--                - p[0] = X co-ordinate
--                - p[1] = Y co-ordinate
--                - p[2] = Z co-ordinate
--    \param h    Variable of type <i>double</i>, specifying the maximum
--                allowable mesh size at that point
--*/
--DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);
--
--
--/*! \brief Locally restrict the mesh element size within a specified box
--
--    Similar to the function #Ng_RestrictMeshSizePoint, this function 
--    allows the size of elements within a mesh to be locally limited.
--
--    However, rather than limit the mesh size at a single point, this 
--    utility restricts the local mesh size within a 3D Box region, specified 
--    via the co-ordinates of the two diagonally opposite points of a cuboid.
--
--    <b>Note</b>: This function only limits the <b>Maximum</b> size 
--    of the elements within the specified region.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param pmin Pointer to an Array of type <i>double</i>, containing 
--                the three co-ordinates of the first point of the cuboid: \n
--                - pmin[0] = X co-ordinate
--                - pmin[1] = Y co-ordinate
--                - pmin[2] = Z co-ordinate
--    \param pmax Pointer to an Array of type <i>double</i>, containing 
--                the three co-ordinates of the opposite point of the 
--                cuboid: \n
--                - pmax[0] = X co-ordinate
--                - pmax[1] = Y co-ordinate
--                - pmax[2] = Z co-ordinate
--    \param h    Variable of type <i>double</i>, specifying the maximum
--                allowable mesh size at that point
--*/
--DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);
--
--// ------------------------------------------------------------------
--
--
--
--// ------------------------------------------------------------------
--// 3D Mesh Generation functions
--
--/*! \brief Create a 3D Volume Mesh given a Surface Mesh
--
--    After creating a surface mesh, this function can be utilised 
--    to automatically generate the corresponding 3D Volume Mesh.
--
--    Mesh generation parameters (such as grading, maximum element size, 
--    etc.) are specified via the meshing parameters class which also 
--    needs to be passed to this function.
--
--    <b>Note</b>: Currently, Netgen generates pure tetrahedral volume 
--    meshes.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \param mp   Pointer to a copy of the Meshing Parameters class
--                (#Ng_Meshing_Parameters), filled up with the 
--                required values
--
--    \return Ng_Result Status of the Mesh Generation routine. More 
--                      details regarding the return value can be 
--                      found in the description of #Ng_Result
--*/
--DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
--
--// ------------------------------------------------------------------
--
--
--
--// ------------------------------------------------------------------
--// Basic Mesh information functions
--
--/*! \brief Returns the Number of Points present in the specified Mesh
--
--    Given an already existent Netgen Mesh Structure, this function 
--    returns the number of points currently present within the Mesh.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \return 
--                Integer Data-type with the number of points in the Mesh
--*/
--DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);
--
--
--/*! \brief Returns the Number of Surface Elements present in the specified Mesh
--
--    Given an already existent Netgen Mesh Structure, this function 
--    returns the number of surface elements currently present within 
--    the Mesh.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \return 
--                Integer Data-type with the number of surface elements in the Mesh
--*/
--DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);
--
--
--/*! \brief Returns the Number of Volume Elements present in the specified Mesh
--
--    Given an already existent Netgen Mesh Structure, this function 
--    returns the number of volume elements currently present within 
--    the Mesh.
--
--    \param mesh Pointer to an existing Netgen Mesh structure of 
--                type #Ng_Mesh
--    \return 
--                Integer Data-type with the number of volume elements in the Mesh
--*/
--DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);
--
--// ------------------------------------------------------------------
--
--
--
--// ------------------------------------------------------------------
--// Mesh Topology functions
--// Use these functions to extract points, surface / volume elements, 
--// perform topological searches, etc..etc...
--  
--//  Return the Point Coordinates of a specified Point
--// The x, y and z co-ordinates are returned in the array pointer as 
--// x[0] = x ; x[1] = y ; x[2] = z
--DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);
--
--
--
--// return surface and volume element in pi
--DLL_HEADER Ng_Surface_Element_Type 
--Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);
--
--DLL_HEADER Ng_Volume_Element_Type
--Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);
--
--// ------------------------------------------------------------------
--
--
--
--
--// **********************************************************
--// **   2D Meshing                                         **
--// **********************************************************
--
--
--// feeds points and boundary to mesh
--
--DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);
--DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);
--  
--// ask for number of points, elements and boundary segments
--DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh);
--DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh);
--DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh);
--  
--//  return point coordinates
--DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);
--
--// return 2d elements
--DLL_HEADER Ng_Surface_Element_Type 
--Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
--
--// return 2d boundary segment
--DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
--
--
--// load 2d netgen spline geometry
--DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);
--
--// generate 2d mesh, mesh is allocated by function
--DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
--                                         Ng_Mesh ** mesh,
--                                         Ng_Meshing_Parameters * mp);
--  
--DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
--                                  Ng_Mesh * mesh,
--                                  int levels);
--  
--
--
--
--
--// **********************************************************
--// **   STL Meshing                                        **
--// **********************************************************
--
--
--// loads geometry from STL file
--DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);
--
--
--// generate new STL Geometry
--DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ();
--  
--
--// fills STL Geometry
--// positive orientation
--// normal vector may be null-pointer
--DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, 
--                         double * p1, double * p2, double * p3, 
--                         double * nv = NULL);
--
--// add (optional) edges :
--DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, 
--                     double * p1, double * p2);
--
--// after adding triangles (and edges) initialize
--DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);
--
--// automatically generates edges:
--DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
--                            Ng_Mesh* mesh,
--                            Ng_Meshing_Parameters * mp);
--
--
--// generates mesh, empty mesh must be already created.
--DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
--                                                 Ng_Mesh * mesh,
--                                                 Ng_Meshing_Parameters * mp);
--
--
--#ifdef ACIS
--
--// **********************************************************
--// **   ACIS Meshing                                       **
--// **********************************************************
--
--/// Data type for NETGEN STL geomty
--typedef void * Ng_ACIS_Geometry;
--
--// loads geometry from STL file
--DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);
--  
--// generates mesh, empty mesh must be already created.
--DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,
--                                                  Ng_Mesh * mesh,
--                                                  Ng_Meshing_Parameters * mp);
--
--
--#endif
--
--
--
--#ifdef OCCGEOMETRY
--
--// **********************************************************
--// **   OpenCascade Geometry / Meshing Utilities           **
--// **********************************************************
--
--// Create new OCC Geometry Object
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ();
--
--// Delete an OCC Geometry Object
--DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);
--
--// Loads geometry from STEP file
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);
--
--// Loads geometry from IGES file
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);
--
--// Loads geometry from BREP file
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);
--
--// Set the local mesh size based on geometry / topology
--DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
--                                              Ng_Mesh * mesh,
--                                              Ng_Meshing_Parameters * mp);
--
--// Mesh the edges and add Face descriptors to prepare for surface meshing
--DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
--                                              Ng_Mesh * mesh,
--                                              Ng_Meshing_Parameters * mp);
--
--// Mesh the surfaces of an OCC geometry
--DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
--                                                 Ng_Mesh * mesh,
--                                                 Ng_Meshing_Parameters * mp); 
--
--// Get the face map of an already loaded OCC geometry
--DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, 
--                                    Ng_OCC_TopTools_IndexedMapOfShape * FMap);
--
--#endif // OCCGEOMETRY
--
--
--
--// **********************************************************
--// **   Mesh refinement algorithms                         **
--// **********************************************************
--
--// uniform mesh refinement
--DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh);
--
--
--// uniform mesh refinement with geometry adaption:
--
--DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
--                                        Ng_Mesh * mesh);
--
--DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
--                                         Ng_Mesh * mesh);
--
--DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
--                                         Ng_Mesh * mesh);
--
--#ifdef OCCGEOMETRY
--DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
--                                         Ng_Mesh * mesh);
--#endif
--
--
--
--// **********************************************************
--// **   Second Order mesh algorithms                       **
--// **********************************************************
--
--// convert mesh to second order
--DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh);
--
--
--// convert mesh to second order with geometry adaption:
--
--DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,
--                                        Ng_Mesh * mesh);
--
--DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,
--                                         Ng_Mesh * mesh);
--
--DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
--                                         Ng_Mesh * mesh);
--
--#ifdef OCCGEOMETRY
--DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
--                                         Ng_Mesh * mesh);
--#endif
--
--
--#endif // NGLIB
-+#ifndef NGLIB
-+#define NGLIB
-+
-+/**************************************************************************/
-+/* File:   nglib.h                                                        */
-+/* Author: Joachim Schoeberl                                              */
-+/* Date:   7. May. 2000                                                   */
-+/**************************************************************************/
-+
-+/*!
-+   \file nglib.h
-+   \brief Library interface to the netgen meshing kernel
-+   \author Joachim Schoeberl
-+   \date 7. May 2000
-+
-+   This header file provides access to the core functionality of the Netgen
-+   Mesher via a library interface, without an interactive User Interface.
-+
-+   The intention of providing these set of functions is to allow system
-+   developers to integrate Netgen into top-level code, to act as the low
-+   level mesh generation / optimisation kernel.
-+*/
-+
-+// Philippose - 14.02.2009
-+// Modifications for creating a DLL in Windows
-+#ifdef WIN32
-+   #if defined NGLIB_EXPORTS || defined nglib_EXPORTS
-+      #define DLL_HEADER   __declspec(dllexport)
-+   #else
-+      #define DLL_HEADER   __declspec(dllimport)
-+   #endif
-+#else
-+   #define DLL_HEADER
-+#endif
-+
-+
-+
-+// ** Constants used within Netgen *********************
-+/// Maximum allowed number of nodes per volume element
-+#define NG_VOLUME_ELEMENT_MAXPOINTS 10
-+
-+/// Maximum allowed number of nodes per surface element
-+#define NG_SURFACE_ELEMENT_MAXPOINTS 8
-+
-+
-+
-+// *** Data-types for accessing Netgen functionality ***
-+/// Data type for NETGEN mesh
-+typedef void * Ng_Mesh;
-+
-+/// Data type for NETGEN CSG geometry
-+typedef void * Ng_CSG_Geometry;
-+
-+/// Data type for NETGEN 2D geometry
-+typedef void * Ng_Geometry_2D;
-+
-+/// Data type for NETGEN STL geometry
-+typedef void * Ng_STL_Geometry;
-+
-+#ifdef OCCGEOMETRY
-+/// Data type for NETGEN OpenCascade geometry
-+typedef void * Ng_OCC_Geometry;
-+typedef void * Ng_OCC_TopTools_IndexedMapOfShape;
-+#endif
-+
-+
-+// *** Special Enum types used within Netgen ***********
-+/// Currently implemented surface element types
-+enum Ng_Surface_Element_Type
-+   { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3, NG_QUAD6 = 4, NG_QUAD8 = 5 };
-+
-+/// Currently implemented volume element types
-+enum Ng_Volume_Element_Type
-+   { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 };
-+
-+/// Values returned by Netgen functions
-+enum Ng_Result
-+   {
-+     NG_ERROR               = -1,
-+     NG_OK                  = 0,
-+     NG_SURFACE_INPUT_ERROR = 1,
-+     NG_VOLUME_FAILURE      = 2,
-+     NG_STL_INPUT_ERROR     = 3,
-+     NG_SURFACE_FAILURE     = 4,
-+     NG_FILE_NOT_FOUND      = 5
-+   };
-+
-+
-+
-+// *** Classes required for use within Netgen **********
-+/// Netgen Meshing Parameters class
-+class Ng_Meshing_Parameters
-+{
-+public:
-+   int uselocalh;                      //!< Switch to enable / disable usage of local mesh size modifiers
-+
-+   double maxh;                        //!< Maximum global mesh size allowed
-+   double minh;                        //!< Minimum global mesh size allowed
-+
-+   double fineness;                    //!< Mesh density: 0...1 (0 => coarse; 1 => fine)
-+   double grading;                     //!< Mesh grading: 0...1 (0 => uniform mesh; 1 => aggressive local grading)
-+
-+   double elementsperedge;             //!< Number of elements to generate per edge of the geometry
-+   double elementspercurve;            //!< Elements to generate per curvature radius
-+
-+   int closeedgeenable;                //!< Enable / Disable mesh refinement at close edges
-+   double closeedgefact;               //!< Factor to use for refinement at close edges (larger => finer)
-+
-+   int minedgelenenable;                         //!< Enable / Disable user defined minimum edge length for edge subdivision
-+   double minedgelen;                  //!< Minimum edge length to use while subdividing the edges (default = 1e-4)
-+
-+   int second_order;                   //!< Generate second-order surface and volume elements
-+   int quad_dominated;                 //!< Creates a Quad-dominated mesh
-+
-+   char * meshsize_filename;           //!< Optional external mesh size file
-+
-+   int optsurfmeshenable;              //!< Enable / Disable automatic surface mesh optimization
-+   int optvolmeshenable;               //!< Enable / Disable automatic volume mesh optimization
-+
-+   int optsteps_3d;                     //!< Number of optimize steps to use for 3-D mesh optimization
-+   int optsteps_2d;                     //!< Number of optimize steps to use for 2-D mesh optimization
-+
-+   // Philippose - 13/09/2010
-+   // Added a couple more parameters into the meshing parameters list
-+   // from Netgen into Nglib
-+   int invert_tets;                    //!< Invert all the volume elements
-+   int invert_trigs;                   //!< Invert all the surface triangle elements
-+
-+   int check_overlap;                  //!< Check for overlapping surfaces during Surface meshing
-+   int check_overlapping_boundary;     //!< Check for overlapping surface elements before volume meshing
-+
-+
-+   /*!
-+      Default constructor for the Mesh Parameters class
-+
-+      Note: This constructor initialises the variables in the
-+      class with the following default values
-+      - #uselocalh: 1
-+      - #maxh: 1000.0
-+      - #fineness: 0.5
-+      - #grading: 0.3
-+      - #elementsperedge: 2.0
-+      - #elementspercurve: 2.0
-+      - #closeedgeenable: 0
-+      - #closeedgefact: 2.0
-+      - #secondorder: 0
-+      - #meshsize_filename: null
-+      - #quad_dominated: 0
-+      - #optsurfmeshenable: 1
-+      - #optvolmeshenable: 1
-+      - #optsteps_2d: 3
-+      - #optsteps_3d: 3
-+      - #invert_tets: 0
-+      - #invert_trigs:0
-+      - #check_overlap: 1
-+      - #check_overlapping_boundary: 1
-+   */
-+   DLL_HEADER Ng_Meshing_Parameters();
-+
-+
-+
-+   /*!
-+       Reset the meshing parameters to their defaults
-+
-+       This member function resets all the meshing parameters
-+       of the object to the default values
-+   */
-+   DLL_HEADER void Reset_Parameters();
-+
-+
-+
-+   /*!
-+       Transfer local meshing parameters to internal meshing parameters
-+
-+       This member function transfers all the meshing parameters
-+       defined in the local meshing parameters structure of nglib into
-+       the internal meshing parameters structure used by the Netgen core
-+   */
-+   DLL_HEADER void Transfer_Parameters();
-+};
-+
-+
-+
-+
-+// *** Functions Exported by this Library *************
-+
-+// ------------------------------------------------------------------
-+// Netgen library initialisation / destruction functions
-+
-+/*! \brief Initialise the Netgen library and prepare for use
-+
-+    This function needs to be called by the third-party
-+    program before beginning to use the other Netgen
-+    specific functions.
-+*/
-+DLL_HEADER void Ng_Init ();
-+
-+
-+/*! \brief Exit the Netgen meshing kernel in a clean manner
-+
-+    Use this function to exit the meshing sub-system in
-+    a clean and orderly manner.
-+*/
-+DLL_HEADER void Ng_Exit ();
-+
-+
-+/*! \brief Create a new (and empty) Netgen Mesh Structure
-+
-+    This function creates a new Netgen Mesh, initialises
-+    it, and returns a pointer to the created mesh structure.
-+
-+    Use the returned pointer for subsequent operations
-+    which involve mesh operations.
-+
-+    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh
-+*/
-+DLL_HEADER  Ng_Mesh * Ng_NewMesh ();
-+
-+
-+/*! \brief Delete an existing Netgen Mesh Structure
-+
-+    Use this function to delete an existing Netgen mesh
-+    structure and release the used memory.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure
-+                of type #Ng_Mesh
-+*/
-+DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);
-+
-+
-+/*! \brief Save a Netgen Mesh to disk
-+
-+    This function allows a generated mesh structure to be saved
-+    to disk.
-+
-+    A Mesh saved using this function, will be written to disk
-+    in the Netgen VOL file format.
-+
-+    \param mesh    Pointer to an existing Netgen Mesh structure
-+                   of type #Ng_Mesh
-+    \param filename Pointer to a character array containing the
-+                    name of the file to which the mesh should
-+                    be saved
-+*/
-+DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);
-+
-+
-+/*! \brief Load a Netgen VOL Mesh from disk into memory
-+
-+    A Netgen mesh saved in the internal VOL format can be loaded
-+    into a Netgen Mesh structure using this function.
-+
-+    \param filename Pointer to a character array containing the
-+                    name of the file to load
-+    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing
-+                    the mesh loaded from disk
-+*/
-+DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);
-+
-+
-+/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory
-+
-+    A Netgen mesh saved in the internal VOL format can be merged
-+    into an existing Netgen Mesh structure using this function.
-+
-+    \param mesh       Name of the Mesh structure already existent in memory
-+    \param filename   Pointer to a character array containing the
-+                      name of the file to load
-+    \return Ng_Result Status of the merge operation
-+*/
-+DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);
-+
-+
-+/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case
-+    when both are already in memory
-+
-+    (NOTE: FUNCTION STILL WORK IN PROGRESS!!!)
-+
-+    This function can be used to merge two Netgen meshes already present
-+    in memory.
-+
-+    \param mesh1      Parent Mesh structure into which the second mesh
-+                      will be merged
-+    \param mesh2      Child mesh structure which will get merged into
-+                      the parent mesh
-+    \return Ng_Result Status of the merge operation
-+*/
-+DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Basic Meshing functions for manually adding points, surface elements
-+// and volume elements to a Netgen Mesh structure
-+
-+/*! \brief Add a point to a given Netgen Mesh Structure
-+
-+    This function allows points to be directly added to a Netgen
-+    mesh structure by providing the co-ordinates.
-+
-+    Each call to the function allows only one point to be added.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param x    Pointer to an array of type double containing the co-ordinates
-+                of the point to be added in the form: \n
-+                - x[0] = X co-ordinate
-+                - x[1] = Y co-ordinate
-+                - x[2] = Z co-ordinate
-+*/
-+DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);
-+
-+
-+/*! \brief Add a surface element to a given Netgen Mesh Structure
-+
-+    This function allows the top-level code to directly add individual
-+    Surface Elements to a Netgen Mesh Structure by providing the type of
-+    element to be added and the indices of the points which constitute the
-+    element.
-+
-+    <i>Note:</i>
-+    - The points referred to by the surface elements must have been
-+      added prior to calling this function.
-+    - Currently only triangular elements are supported, and the Surface Element
-+      Type argument is not used.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param et   Surface Element type provided via the enumerated type
-+                #Ng_Surface_Element_Type
-+    \param pi   Pointer to an array of integers containing the indices of the
-+                points which constitute the surface element being added
-+*/
-+DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);
-+
-+
-+/*! \brief Add a volume element to a given Netgen Mesh Structure
-+
-+    This function allows the top-level code to directly add individual
-+    Volume Elements to a Netgen Mesh Structure by providing the type of
-+    element to be added and the indices of the points which constitute the
-+    element.
-+
-+    <i>Note:</i>
-+    - The points referred to by the volume elements must have been
-+      added prior to calling this function.
-+    - Currently only tetrahedral elements are supported, and the Volume Element
-+      Type argument is not used.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param et   Volume Element type provided via the enumerated type
-+                #Ng_Volume_Element_Type
-+    \param pi   Pointer to an array of integers containing the indices of the
-+                points which constitute the volume element being added
-+
-+*/
-+DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Local Mesh Size restriction / limiting utilities
-+
-+/*! \brief Apply a global restriction on mesh element size
-+
-+    This utility allows the user to apply a global mesh element
-+    size limitation.
-+
-+    During mesh creation, in the absence of an explicit local
-+    size restriction around the neighbourhood of a point within
-+    the meshing domain, this global size restriction will be
-+    utilised.
-+
-+    <b>Note</b>: This function only limits the <b>Maximum</b>
-+    size of an element within the mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param h    Variable of type <i>double</i>, specifying the maximum
-+                allowable mesh size
-+*/
-+DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);
-+
-+
-+/*! \brief Locally restrict the mesh element size at the given point
-+
-+    Unlike the function #Ng_RestrictMeshSizeGlobal, this function
-+    allows the user to locally restrict the maximum allowable mesh
-+    size at a given point.
-+
-+    The point is specified via its three cartesian co-ordinates.
-+
-+    <b>Note</b>: This function only limits the <b>Maximum</b> size
-+    of the elements around the specified point.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param p    Pointer to an Array of type <i>double</i>, containing
-+                the three co-ordinates of the point in the form: \n
-+                - p[0] = X co-ordinate
-+                - p[1] = Y co-ordinate
-+                - p[2] = Z co-ordinate
-+    \param h    Variable of type <i>double</i>, specifying the maximum
-+                allowable mesh size at that point
-+*/
-+DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);
-+
-+
-+/*! \brief Locally restrict the mesh element size within a specified box
-+
-+    Similar to the function #Ng_RestrictMeshSizePoint, this function
-+    allows the size of elements within a mesh to be locally limited.
-+
-+    However, rather than limit the mesh size at a single point, this
-+    utility restricts the local mesh size within a 3D Box region, specified
-+    via the co-ordinates of the two diagonally opposite points of a cuboid.
-+
-+    <b>Note</b>: This function only limits the <b>Maximum</b> size
-+    of the elements within the specified region.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param pmin Pointer to an Array of type <i>double</i>, containing
-+                the three co-ordinates of the first point of the cuboid: \n
-+                - pmin[0] = X co-ordinate
-+                - pmin[1] = Y co-ordinate
-+                - pmin[2] = Z co-ordinate
-+    \param pmax Pointer to an Array of type <i>double</i>, containing
-+                the three co-ordinates of the opposite point of the
-+                cuboid: \n
-+                - pmax[0] = X co-ordinate
-+                - pmax[1] = Y co-ordinate
-+                - pmax[2] = Z co-ordinate
-+    \param h    Variable of type <i>double</i>, specifying the maximum
-+                allowable mesh size at that point
-+*/
-+DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// 3D Mesh Generation functions
-+
-+/*! \brief Create a 3D Volume Mesh given a Surface Mesh
-+
-+    After creating a surface mesh, this function can be utilised
-+    to automatically generate the corresponding 3D Volume Mesh.
-+
-+    Mesh generation parameters (such as grading, maximum element size,
-+    etc.) are specified via the meshing parameters class which also
-+    needs to be passed to this function.
-+
-+    <b>Note</b>: Currently, Netgen generates pure tetrahedral volume
-+    meshes.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \param mp   Pointer to a copy of the Meshing Parameters class
-+                (#Ng_Meshing_Parameters), filled up with the
-+                required values
-+
-+    \return Ng_Result Status of the Mesh Generation routine. More
-+                      details regarding the return value can be
-+                      found in the description of #Ng_Result
-+*/
-+DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Basic Mesh information functions
-+
-+/*! \brief Returns the Number of Points present in the specified Mesh
-+
-+    Given an already existent Netgen Mesh Structure, this function
-+    returns the number of points currently present within the Mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \return
-+                Integer Data-type with the number of points in the Mesh
-+*/
-+DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);
-+
-+
-+/*! \brief Returns the Number of Surface Elements present in the specified Mesh
-+
-+    Given an already existent Netgen Mesh Structure, this function
-+    returns the number of surface elements currently present within
-+    the Mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \return
-+                Integer Data-type with the number of surface elements in the Mesh
-+*/
-+DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);
-+
-+
-+/*! \brief Returns the Number of Volume Elements present in the specified Mesh
-+
-+    Given an already existent Netgen Mesh Structure, this function
-+    returns the number of volume elements currently present within
-+    the Mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of
-+                type #Ng_Mesh
-+    \return
-+                Integer Data-type with the number of volume elements in the Mesh
-+*/
-+DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Mesh Topology functions
-+// Use these functions to extract points, surface / volume elements,
-+// perform topological searches, etc..etc...
-+
-+//  Return the Point Coordinates of a specified Point
-+// The x, y and z co-ordinates are returned in the array pointer as
-+// x[0] = x ; x[1] = y ; x[2] = z
-+DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);
-+
-+
-+
-+// return surface and volume element in pi
-+DLL_HEADER Ng_Surface_Element_Type
-+Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);
-+
-+DLL_HEADER Ng_Volume_Element_Type
-+Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+
-+// **********************************************************
-+// **   2D Meshing                                         **
-+// **********************************************************
-+
-+
-+// feeds points and boundary to mesh
-+
-+DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);
-+DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);
-+
-+// ask for number of points, elements and boundary segments
-+DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh);
-+DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh);
-+DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh);
-+
-+//  return point coordinates
-+DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);
-+
-+// return 2d elements
-+DLL_HEADER Ng_Surface_Element_Type
-+Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
-+
-+// return 2d boundary segment
-+DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
-+
-+
-+// load 2d netgen spline geometry
-+DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);
-+
-+// generate 2d mesh, mesh is allocated by function
-+DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
-+                                         Ng_Mesh ** mesh,
-+                                         Ng_Meshing_Parameters * mp);
-+
-+DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
-+                                  Ng_Mesh * mesh,
-+                                  int levels);
-+
-+
-+
-+
-+
-+// **********************************************************
-+// **   STL Meshing                                        **
-+// **********************************************************
-+
-+
-+// loads geometry from STL file
-+DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);
-+
-+
-+// generate new STL Geometry
-+DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ();
-+
-+
-+// fills STL Geometry
-+// positive orientation
-+// normal vector may be null-pointer
-+DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom,
-+                         double * p1, double * p2, double * p3,
-+                         double * nv = NULL);
-+
-+// add (optional) edges :
-+DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom,
-+                     double * p1, double * p2);
-+
-+// after adding triangles (and edges) initialize
-+DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);
-+
-+// automatically generates edges:
-+DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
-+                            Ng_Mesh* mesh,
-+                            Ng_Meshing_Parameters * mp);
-+
-+
-+// generates mesh, empty mesh must be already created.
-+DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp);
-+
-+
-+#ifdef ACIS
-+
-+// **********************************************************
-+// **   ACIS Meshing                                       **
-+// **********************************************************
-+
-+/// Data type for NETGEN STL geomty
-+typedef void * Ng_ACIS_Geometry;
-+
-+// loads geometry from STL file
-+DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);
-+
-+// generates mesh, empty mesh must be already created.
-+DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,
-+                                                  Ng_Mesh * mesh,
-+                                                  Ng_Meshing_Parameters * mp);
-+
-+
-+#endif
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+
-+// **********************************************************
-+// **   OpenCascade Geometry / Meshing Utilities           **
-+// **********************************************************
-+
-+// Create new OCC Geometry Object
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ();
-+
-+// Delete an OCC Geometry Object
-+DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);
-+
-+// Loads geometry from STEP file
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);
-+
-+// Loads geometry from IGES file
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);
-+
-+// Loads geometry from BREP file
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);
-+
-+// Set the local mesh size based on geometry / topology
-+DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
-+                                              Ng_Mesh * mesh,
-+                                              Ng_Meshing_Parameters * mp);
-+
-+// Mesh the edges and add Face descriptors to prepare for surface meshing
-+DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
-+                                              Ng_Mesh * mesh,
-+                                              Ng_Meshing_Parameters * mp);
-+
-+// Mesh the surfaces of an OCC geometry
-+DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp);
-+
-+// Get the face map of an already loaded OCC geometry
-+DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom,
-+                                    Ng_OCC_TopTools_IndexedMapOfShape * FMap);
-+
-+#endif // OCCGEOMETRY
-+
-+
-+
-+// **********************************************************
-+// **   Mesh refinement algorithms                         **
-+// **********************************************************
-+
-+// uniform mesh refinement
-+DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh);
-+
-+
-+// uniform mesh refinement with geometry adaption:
-+
-+DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
-+                                        Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+#ifdef OCCGEOMETRY
-+DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+#endif
-+
-+
-+
-+// **********************************************************
-+// **   Second Order mesh algorithms                       **
-+// **********************************************************
-+
-+// convert mesh to second order
-+DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh);
-+
-+
-+// convert mesh to second order with geometry adaption:
-+
-+DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,
-+                                        Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+#ifdef OCCGEOMETRY
-+DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+#endif
-+
-+
-+#endif // NGLIB
-diff -Naur netgen-5.3.1_SRC_orig/tutorials/frame.step netgen-5.3.1_SRC_modif/tutorials/frame.step
---- netgen-5.3.1_SRC_orig/tutorials/frame.step 2014-08-29 13:53:58.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/tutorials/frame.step        2018-03-01 15:44:37.254254730 +0300
-@@ -1,11683 +1,11683 @@
--ISO-10303-21;
--HEADER;
--FILE_DESCRIPTION((''),'2;1');
--FILE_NAME('PROESOURCE','2002-11-04T',('user-01'),(''),
--'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060',
--'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060','');
--FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
--ENDSEC;
--DATA;
--#1=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2=VECTOR('',#1,1.693725393319E1);
--#3=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
--#4=LINE('',#3,#2);
--#5=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6=VECTOR('',#5,9.E0);
--#7=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
--#8=LINE('',#7,#6);
--#9=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
--#10=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11=DIRECTION('',(1.E0,0.E0,0.E0));
--#12=AXIS2_PLACEMENT_3D('',#9,#10,#11);
--#14=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
--#15=DIRECTION('',(0.E0,-1.E0,0.E0));
--#16=DIRECTION('',(-1.E0,0.E0,0.E0));
--#17=AXIS2_PLACEMENT_3D('',#14,#15,#16);
--#19=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
--#20=DIRECTION('',(0.E0,-1.E0,0.E0));
--#21=DIRECTION('',(1.E0,0.E0,0.E0));
--#22=AXIS2_PLACEMENT_3D('',#19,#20,#21);
--#24=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
--#25=DIRECTION('',(0.E0,-1.E0,0.E0));
--#26=DIRECTION('',(-1.E0,0.E0,0.E0));
--#27=AXIS2_PLACEMENT_3D('',#24,#25,#26);
--#29=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
--#30=DIRECTION('',(0.E0,-1.E0,0.E0));
--#31=DIRECTION('',(1.E0,0.E0,0.E0));
--#32=AXIS2_PLACEMENT_3D('',#29,#30,#31);
--#34=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
--#35=DIRECTION('',(0.E0,-1.E0,0.E0));
--#36=DIRECTION('',(-1.E0,0.E0,0.E0));
--#37=AXIS2_PLACEMENT_3D('',#34,#35,#36);
--#39=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
--#40=DIRECTION('',(0.E0,-1.E0,0.E0));
--#41=DIRECTION('',(1.E0,0.E0,0.E0));
--#42=AXIS2_PLACEMENT_3D('',#39,#40,#41);
--#44=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
--#45=DIRECTION('',(0.E0,-1.E0,0.E0));
--#46=DIRECTION('',(-1.E0,0.E0,0.E0));
--#47=AXIS2_PLACEMENT_3D('',#44,#45,#46);
--#49=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
--#50=DIRECTION('',(0.E0,-1.E0,0.E0));
--#51=DIRECTION('',(1.E0,0.E0,0.E0));
--#52=AXIS2_PLACEMENT_3D('',#49,#50,#51);
--#54=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
--#55=DIRECTION('',(0.E0,-1.E0,0.E0));
--#56=DIRECTION('',(-1.E0,0.E0,0.E0));
--#57=AXIS2_PLACEMENT_3D('',#54,#55,#56);
--#59=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
--#60=DIRECTION('',(0.E0,-1.E0,0.E0));
--#61=DIRECTION('',(1.E0,0.E0,0.E0));
--#62=AXIS2_PLACEMENT_3D('',#59,#60,#61);
--#64=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
--#65=DIRECTION('',(0.E0,-1.E0,0.E0));
--#66=DIRECTION('',(-1.E0,0.E0,0.E0));
--#67=AXIS2_PLACEMENT_3D('',#64,#65,#66);
--#69=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
--#70=DIRECTION('',(0.E0,-1.E0,0.E0));
--#71=DIRECTION('',(1.E0,0.E0,0.E0));
--#72=AXIS2_PLACEMENT_3D('',#69,#70,#71);
--#74=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
--#75=DIRECTION('',(0.E0,-1.E0,0.E0));
--#76=DIRECTION('',(-1.E0,0.E0,0.E0));
--#77=AXIS2_PLACEMENT_3D('',#74,#75,#76);
--#79=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
--#80=DIRECTION('',(0.E0,-1.E0,0.E0));
--#81=DIRECTION('',(1.E0,0.E0,0.E0));
--#82=AXIS2_PLACEMENT_3D('',#79,#80,#81);
--#84=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
--#85=DIRECTION('',(0.E0,-1.E0,0.E0));
--#86=DIRECTION('',(-1.E0,0.E0,0.E0));
--#87=AXIS2_PLACEMENT_3D('',#84,#85,#86);
--#89=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
--#90=DIRECTION('',(0.E0,-1.E0,0.E0));
--#91=DIRECTION('',(1.E0,0.E0,0.E0));
--#92=AXIS2_PLACEMENT_3D('',#89,#90,#91);
--#94=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
--#95=DIRECTION('',(0.E0,-1.E0,0.E0));
--#96=DIRECTION('',(-1.E0,0.E0,0.E0));
--#97=AXIS2_PLACEMENT_3D('',#94,#95,#96);
--#99=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
--#100=DIRECTION('',(0.E0,-1.E0,0.E0));
--#101=DIRECTION('',(1.E0,0.E0,0.E0));
--#102=AXIS2_PLACEMENT_3D('',#99,#100,#101);
--#104=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
--#105=DIRECTION('',(0.E0,-1.E0,0.E0));
--#106=DIRECTION('',(-1.E0,0.E0,0.E0));
--#107=AXIS2_PLACEMENT_3D('',#104,#105,#106);
--#109=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
--#110=DIRECTION('',(0.E0,-1.E0,0.E0));
--#111=DIRECTION('',(1.E0,0.E0,0.E0));
--#112=AXIS2_PLACEMENT_3D('',#109,#110,#111);
--#114=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
--#115=DIRECTION('',(0.E0,-1.E0,0.E0));
--#116=DIRECTION('',(-1.E0,0.E0,0.E0));
--#117=AXIS2_PLACEMENT_3D('',#114,#115,#116);
--#119=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
--#120=DIRECTION('',(0.E0,-1.E0,0.E0));
--#121=DIRECTION('',(1.E0,0.E0,0.E0));
--#122=AXIS2_PLACEMENT_3D('',#119,#120,#121);
--#124=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
--#125=DIRECTION('',(0.E0,-1.E0,0.E0));
--#126=DIRECTION('',(-1.E0,0.E0,0.E0));
--#127=AXIS2_PLACEMENT_3D('',#124,#125,#126);
--#129=DIRECTION('',(1.E0,0.E0,0.E0));
--#130=VECTOR('',#129,1.E0);
--#131=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
--#132=LINE('',#131,#130);
--#133=DIRECTION('',(0.E0,0.E0,-1.E0));
--#134=VECTOR('',#133,3.E0);
--#135=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
--#136=LINE('',#135,#134);
--#137=DIRECTION('',(-1.E0,0.E0,0.E0));
--#138=VECTOR('',#137,1.6E1);
--#139=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
--#140=LINE('',#139,#138);
--#141=DIRECTION('',(0.E0,0.E0,1.E0));
--#142=VECTOR('',#141,3.E0);
--#143=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
--#144=LINE('',#143,#142);
--#145=DIRECTION('',(-1.E0,0.E0,0.E0));
--#146=VECTOR('',#145,1.E0);
--#147=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
--#148=LINE('',#147,#146);
--#149=DIRECTION('',(0.E0,0.E0,1.E0));
--#150=VECTOR('',#149,3.75E0);
--#151=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
--#152=LINE('',#151,#150);
--#153=DIRECTION('',(1.E0,0.E0,0.E0));
--#154=VECTOR('',#153,5.E-1);
--#155=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
--#156=LINE('',#155,#154);
--#157=DIRECTION('',(0.E0,0.E0,1.E0));
--#158=VECTOR('',#157,1.475E1);
--#159=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
--#160=LINE('',#159,#158);
--#161=DIRECTION('',(1.E0,0.E0,0.E0));
--#162=VECTOR('',#161,1.6E1);
--#163=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
--#164=LINE('',#163,#162);
--#165=DIRECTION('',(0.E0,0.E0,-1.E0));
--#166=VECTOR('',#165,1.475E1);
--#167=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
--#168=LINE('',#167,#166);
--#169=DIRECTION('',(-1.E0,0.E0,0.E0));
--#170=VECTOR('',#169,5.E-1);
--#171=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
--#172=LINE('',#171,#170);
--#173=DIRECTION('',(0.E0,0.E0,1.E0));
--#174=VECTOR('',#173,3.75E0);
--#175=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
--#176=LINE('',#175,#174);
--#177=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
--#178=DIRECTION('',(0.E0,-1.E0,0.E0));
--#179=DIRECTION('',(1.E0,0.E0,0.E0));
--#180=AXIS2_PLACEMENT_3D('',#177,#178,#179);
--#182=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
--#183=DIRECTION('',(0.E0,-1.E0,0.E0));
--#184=DIRECTION('',(-1.E0,0.E0,0.E0));
--#185=AXIS2_PLACEMENT_3D('',#182,#183,#184);
--#187=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
--#188=DIRECTION('',(0.E0,-1.E0,0.E0));
--#189=DIRECTION('',(1.E0,0.E0,0.E0));
--#190=AXIS2_PLACEMENT_3D('',#187,#188,#189);
--#192=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
--#193=DIRECTION('',(0.E0,-1.E0,0.E0));
--#194=DIRECTION('',(-1.E0,0.E0,0.E0));
--#195=AXIS2_PLACEMENT_3D('',#192,#193,#194);
--#197=DIRECTION('',(1.E0,0.E0,0.E0));
--#198=VECTOR('',#197,1.3E1);
--#199=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
--#200=LINE('',#199,#198);
--#201=DIRECTION('',(0.E0,0.E0,-1.E0));
--#202=VECTOR('',#201,2.5625E0);
--#203=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
--#204=LINE('',#203,#202);
--#205=DIRECTION('',(1.E0,0.E0,0.E0));
--#206=VECTOR('',#205,9.E0);
--#207=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
--#208=LINE('',#207,#206);
--#209=DIRECTION('',(0.E0,0.E0,1.E0));
--#210=VECTOR('',#209,2.5625E0);
--#211=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
--#212=LINE('',#211,#210);
--#213=DIRECTION('',(0.E0,0.E0,-1.E0));
--#214=VECTOR('',#213,8.125E-1);
--#215=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
--#216=LINE('',#215,#214);
--#217=DIRECTION('',(-1.E0,0.E0,0.E0));
--#218=VECTOR('',#217,1.3E1);
--#219=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
--#220=LINE('',#219,#218);
--#221=DIRECTION('',(0.E0,0.E0,1.E0));
--#222=VECTOR('',#221,8.125E-1);
--#223=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
--#224=LINE('',#223,#222);
--#225=DIRECTION('',(1.E0,0.E0,0.E0));
--#226=VECTOR('',#225,1.E0);
--#227=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
--#228=LINE('',#227,#226);
--#229=DIRECTION('',(0.E0,0.E0,-1.E0));
--#230=VECTOR('',#229,7.5E-1);
--#231=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
--#232=LINE('',#231,#230);
--#233=DIRECTION('',(1.E0,0.E0,0.E0));
--#234=VECTOR('',#233,1.2E1);
--#235=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
--#236=LINE('',#235,#234);
--#237=DIRECTION('',(0.E0,0.E0,-1.E0));
--#238=VECTOR('',#237,7.5E-1);
--#239=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
--#240=LINE('',#239,#238);
--#241=DIRECTION('',(-1.E0,0.E0,0.E0));
--#242=VECTOR('',#241,1.E0);
--#243=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
--#244=LINE('',#243,#242);
--#245=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
--#246=DIRECTION('',(0.E0,-1.E0,0.E0));
--#247=DIRECTION('',(1.E0,0.E0,0.E0));
--#248=AXIS2_PLACEMENT_3D('',#245,#246,#247);
--#250=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
--#251=DIRECTION('',(0.E0,-1.E0,0.E0));
--#252=DIRECTION('',(-1.E0,0.E0,0.E0));
--#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);
--#255=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
--#256=DIRECTION('',(0.E0,-1.E0,0.E0));
--#257=DIRECTION('',(1.E0,0.E0,0.E0));
--#258=AXIS2_PLACEMENT_3D('',#255,#256,#257);
--#260=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
--#261=DIRECTION('',(0.E0,-1.E0,0.E0));
--#262=DIRECTION('',(-1.E0,0.E0,0.E0));
--#263=AXIS2_PLACEMENT_3D('',#260,#261,#262);
--#265=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
--#266=DIRECTION('',(0.E0,-1.E0,0.E0));
--#267=DIRECTION('',(1.E0,0.E0,0.E0));
--#268=AXIS2_PLACEMENT_3D('',#265,#266,#267);
--#270=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
--#271=DIRECTION('',(0.E0,-1.E0,0.E0));
--#272=DIRECTION('',(-1.E0,0.E0,0.E0));
--#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);
--#275=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
--#276=DIRECTION('',(0.E0,-1.E0,0.E0));
--#277=DIRECTION('',(1.E0,0.E0,0.E0));
--#278=AXIS2_PLACEMENT_3D('',#275,#276,#277);
--#280=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
--#281=DIRECTION('',(0.E0,-1.E0,0.E0));
--#282=DIRECTION('',(-1.E0,0.E0,0.E0));
--#283=AXIS2_PLACEMENT_3D('',#280,#281,#282);
--#285=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
--#286=DIRECTION('',(0.E0,-1.E0,0.E0));
--#287=DIRECTION('',(1.E0,0.E0,0.E0));
--#288=AXIS2_PLACEMENT_3D('',#285,#286,#287);
--#290=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
--#291=DIRECTION('',(0.E0,-1.E0,0.E0));
--#292=DIRECTION('',(-1.E0,0.E0,0.E0));
--#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);
--#295=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
--#296=DIRECTION('',(0.E0,-1.E0,0.E0));
--#297=DIRECTION('',(1.E0,0.E0,0.E0));
--#298=AXIS2_PLACEMENT_3D('',#295,#296,#297);
--#300=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
--#301=DIRECTION('',(0.E0,-1.E0,0.E0));
--#302=DIRECTION('',(-1.E0,0.E0,0.E0));
--#303=AXIS2_PLACEMENT_3D('',#300,#301,#302);
--#305=DIRECTION('',(1.E0,0.E0,0.E0));
--#306=VECTOR('',#305,3.E0);
--#307=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
--#308=LINE('',#307,#306);
--#309=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
--#310=DIRECTION('',(0.E0,-1.E0,0.E0));
--#311=DIRECTION('',(0.E0,0.E0,-1.E0));
--#312=AXIS2_PLACEMENT_3D('',#309,#310,#311);
--#314=DIRECTION('',(-1.E0,0.E0,0.E0));
--#315=VECTOR('',#314,3.E0);
--#316=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
--#317=LINE('',#316,#315);
--#318=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
--#319=DIRECTION('',(0.E0,-1.E0,0.E0));
--#320=DIRECTION('',(0.E0,0.E0,1.E0));
--#321=AXIS2_PLACEMENT_3D('',#318,#319,#320);
--#323=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
--#324=DIRECTION('',(0.E0,-1.E0,0.E0));
--#325=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
--#326=AXIS2_PLACEMENT_3D('',#323,#324,#325);
--#328=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#329=VECTOR('',#328,4.263248410977E0);
--#330=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
--#331=LINE('',#330,#329);
--#332=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
--#333=DIRECTION('',(0.E0,-1.E0,0.E0));
--#334=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#335=AXIS2_PLACEMENT_3D('',#332,#333,#334);
--#337=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
--#338=DIRECTION('',(0.E0,-1.E0,0.E0));
--#339=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
--#340=AXIS2_PLACEMENT_3D('',#337,#338,#339);
--#342=DIRECTION('',(0.E0,0.E0,-1.E0));
--#343=VECTOR('',#342,3.15E-1);
--#344=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
--#345=LINE('',#344,#343);
--#346=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
--#347=DIRECTION('',(0.E0,-1.E0,0.E0));
--#348=DIRECTION('',(-1.E0,0.E0,0.E0));
--#349=AXIS2_PLACEMENT_3D('',#346,#347,#348);
--#351=DIRECTION('',(0.E0,0.E0,1.E0));
--#352=VECTOR('',#351,3.15E-1);
--#353=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
--#354=LINE('',#353,#352);
--#355=DIRECTION('',(1.E0,0.E0,0.E0));
--#356=VECTOR('',#355,7.5E-1);
--#357=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
--#358=LINE('',#357,#356);
--#359=DIRECTION('',(0.E0,0.E0,1.E0));
--#360=VECTOR('',#359,8.1E-1);
--#361=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
--#362=LINE('',#361,#360);
--#363=DIRECTION('',(-1.E0,0.E0,0.E0));
--#364=VECTOR('',#363,3.875E0);
--#365=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
--#366=LINE('',#365,#364);
--#367=DIRECTION('',(0.E0,0.E0,-1.E0));
--#368=VECTOR('',#367,8.1E-1);
--#369=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
--#370=LINE('',#369,#368);
--#371=DIRECTION('',(1.E0,0.E0,0.E0));
--#372=VECTOR('',#371,2.525E-1);
--#373=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
--#374=LINE('',#373,#372);
--#375=DIRECTION('',(0.E0,0.E0,-1.E0));
--#376=VECTOR('',#375,3.E0);
--#377=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
--#378=LINE('',#377,#376);
--#379=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
--#380=DIRECTION('',(0.E0,-1.E0,0.E0));
--#381=DIRECTION('',(-1.E0,0.E0,0.E0));
--#382=AXIS2_PLACEMENT_3D('',#379,#380,#381);
--#384=DIRECTION('',(0.E0,0.E0,1.E0));
--#385=VECTOR('',#384,3.E0);
--#386=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
--#387=LINE('',#386,#385);
--#388=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
--#389=DIRECTION('',(0.E0,-1.E0,0.E0));
--#390=DIRECTION('',(1.E0,0.E0,0.E0));
--#391=AXIS2_PLACEMENT_3D('',#388,#389,#390);
--#393=DIRECTION('',(0.E0,0.E0,-1.E0));
--#394=VECTOR('',#393,3.E0);
--#395=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
--#396=LINE('',#395,#394);
--#397=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
--#398=DIRECTION('',(0.E0,-1.E0,0.E0));
--#399=DIRECTION('',(-1.E0,0.E0,0.E0));
--#400=AXIS2_PLACEMENT_3D('',#397,#398,#399);
--#402=DIRECTION('',(0.E0,0.E0,1.E0));
--#403=VECTOR('',#402,3.E0);
--#404=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
--#405=LINE('',#404,#403);
--#406=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
--#407=DIRECTION('',(0.E0,-1.E0,0.E0));
--#408=DIRECTION('',(1.E0,0.E0,0.E0));
--#409=AXIS2_PLACEMENT_3D('',#406,#407,#408);
--#411=DIRECTION('',(1.E0,0.E0,0.E0));
--#412=VECTOR('',#411,3.E0);
--#413=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
--#414=LINE('',#413,#412);
--#415=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
--#416=DIRECTION('',(0.E0,-1.E0,0.E0));
--#417=DIRECTION('',(0.E0,0.E0,-1.E0));
--#418=AXIS2_PLACEMENT_3D('',#415,#416,#417);
--#420=DIRECTION('',(-1.E0,0.E0,0.E0));
--#421=VECTOR('',#420,3.E0);
--#422=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
--#423=LINE('',#422,#421);
--#424=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
--#425=DIRECTION('',(0.E0,-1.E0,0.E0));
--#426=DIRECTION('',(0.E0,0.E0,1.E0));
--#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);
--#429=DIRECTION('',(1.E0,0.E0,0.E0));
--#430=VECTOR('',#429,3.E0);
--#431=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
--#432=LINE('',#431,#430);
--#433=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
--#434=DIRECTION('',(0.E0,-1.E0,0.E0));
--#435=DIRECTION('',(0.E0,0.E0,-1.E0));
--#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);
--#438=DIRECTION('',(-1.E0,0.E0,0.E0));
--#439=VECTOR('',#438,3.E0);
--#440=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
--#441=LINE('',#440,#439);
--#442=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
--#443=DIRECTION('',(0.E0,-1.E0,0.E0));
--#444=DIRECTION('',(0.E0,0.E0,1.E0));
--#445=AXIS2_PLACEMENT_3D('',#442,#443,#444);
--#447=DIRECTION('',(1.E0,0.E0,0.E0));
--#448=VECTOR('',#447,3.E0);
--#449=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
--#450=LINE('',#449,#448);
--#451=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
--#452=DIRECTION('',(0.E0,1.E0,0.E0));
--#453=DIRECTION('',(0.E0,0.E0,-1.E0));
--#454=AXIS2_PLACEMENT_3D('',#451,#452,#453);
--#456=DIRECTION('',(-1.E0,0.E0,0.E0));
--#457=VECTOR('',#456,3.E0);
--#458=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
--#459=LINE('',#458,#457);
--#460=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
--#461=DIRECTION('',(0.E0,1.E0,0.E0));
--#462=DIRECTION('',(0.E0,0.E0,1.E0));
--#463=AXIS2_PLACEMENT_3D('',#460,#461,#462);
--#465=DIRECTION('',(-1.E0,0.E0,0.E0));
--#466=VECTOR('',#465,3.E0);
--#467=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
--#468=LINE('',#467,#466);
--#469=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
--#470=DIRECTION('',(0.E0,1.E0,0.E0));
--#471=DIRECTION('',(0.E0,0.E0,1.E0));
--#472=AXIS2_PLACEMENT_3D('',#469,#470,#471);
--#474=DIRECTION('',(1.E0,0.E0,0.E0));
--#475=VECTOR('',#474,3.E0);
--#476=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
--#477=LINE('',#476,#475);
--#478=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
--#479=DIRECTION('',(0.E0,1.E0,0.E0));
--#480=DIRECTION('',(0.E0,0.E0,-1.E0));
--#481=AXIS2_PLACEMENT_3D('',#478,#479,#480);
--#483=DIRECTION('',(0.E0,0.E0,-1.E0));
--#484=VECTOR('',#483,3.E0);
--#485=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
--#486=LINE('',#485,#484);
--#487=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
--#488=DIRECTION('',(0.E0,1.E0,0.E0));
--#489=DIRECTION('',(-1.E0,0.E0,0.E0));
--#490=AXIS2_PLACEMENT_3D('',#487,#488,#489);
--#492=DIRECTION('',(0.E0,0.E0,1.E0));
--#493=VECTOR('',#492,3.E0);
--#494=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
--#495=LINE('',#494,#493);
--#496=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
--#497=DIRECTION('',(0.E0,1.E0,0.E0));
--#498=DIRECTION('',(1.E0,0.E0,0.E0));
--#499=AXIS2_PLACEMENT_3D('',#496,#497,#498);
--#501=DIRECTION('',(0.E0,0.E0,-1.E0));
--#502=VECTOR('',#501,3.E0);
--#503=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
--#504=LINE('',#503,#502);
--#505=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
--#506=DIRECTION('',(0.E0,1.E0,0.E0));
--#507=DIRECTION('',(-1.E0,0.E0,0.E0));
--#508=AXIS2_PLACEMENT_3D('',#505,#506,#507);
--#510=DIRECTION('',(0.E0,0.E0,1.E0));
--#511=VECTOR('',#510,3.E0);
--#512=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
--#513=LINE('',#512,#511);
--#514=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
--#515=DIRECTION('',(0.E0,1.E0,0.E0));
--#516=DIRECTION('',(1.E0,0.E0,0.E0));
--#517=AXIS2_PLACEMENT_3D('',#514,#515,#516);
--#519=DIRECTION('',(-1.E0,0.E0,0.E0));
--#520=VECTOR('',#519,3.E0);
--#521=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
--#522=LINE('',#521,#520);
--#523=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
--#524=DIRECTION('',(0.E0,1.E0,0.E0));
--#525=DIRECTION('',(0.E0,0.E0,1.E0));
--#526=AXIS2_PLACEMENT_3D('',#523,#524,#525);
--#528=DIRECTION('',(1.E0,0.E0,0.E0));
--#529=VECTOR('',#528,3.E0);
--#530=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
--#531=LINE('',#530,#529);
--#532=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
--#533=DIRECTION('',(0.E0,1.E0,0.E0));
--#534=DIRECTION('',(0.E0,0.E0,-1.E0));
--#535=AXIS2_PLACEMENT_3D('',#532,#533,#534);
--#537=DIRECTION('',(-1.E0,0.E0,0.E0));
--#538=VECTOR('',#537,3.E0);
--#539=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
--#540=LINE('',#539,#538);
--#541=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
--#542=DIRECTION('',(0.E0,1.E0,0.E0));
--#543=DIRECTION('',(0.E0,0.E0,1.E0));
--#544=AXIS2_PLACEMENT_3D('',#541,#542,#543);
--#546=DIRECTION('',(1.E0,0.E0,0.E0));
--#547=VECTOR('',#546,3.E0);
--#548=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
--#549=LINE('',#548,#547);
--#550=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
--#551=DIRECTION('',(0.E0,1.E0,0.E0));
--#552=DIRECTION('',(0.E0,0.E0,-1.E0));
--#553=AXIS2_PLACEMENT_3D('',#550,#551,#552);
--#555=DIRECTION('',(-1.E0,0.E0,0.E0));
--#556=VECTOR('',#555,3.E0);
--#557=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
--#558=LINE('',#557,#556);
--#559=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
--#560=DIRECTION('',(0.E0,-1.E0,0.E0));
--#561=DIRECTION('',(0.E0,0.E0,1.E0));
--#562=AXIS2_PLACEMENT_3D('',#559,#560,#561);
--#564=DIRECTION('',(1.E0,0.E0,0.E0));
--#565=VECTOR('',#564,3.E0);
--#566=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
--#567=LINE('',#566,#565);
--#568=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
--#569=DIRECTION('',(0.E0,-1.E0,0.E0));
--#570=DIRECTION('',(0.E0,0.E0,-1.E0));
--#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);
--#573=DIRECTION('',(0.E0,0.E0,1.E0));
--#574=VECTOR('',#573,3.1E-1);
--#575=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
--#576=LINE('',#575,#574);
--#577=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
--#578=DIRECTION('',(0.E0,1.E0,0.E0));
--#579=DIRECTION('',(1.E0,0.E0,-3.956251312695E-14));
--#580=AXIS2_PLACEMENT_3D('',#577,#578,#579);
--#582=DIRECTION('',(2.292073341162E-14,0.E0,-1.E0));
--#583=VECTOR('',#582,3.1E-1);
--#584=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
--#585=LINE('',#584,#583);
--#586=DIRECTION('',(-1.E0,0.E0,0.E0));
--#587=VECTOR('',#586,2.425E-1);
--#588=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
--#589=LINE('',#588,#587);
--#590=DIRECTION('',(0.E0,0.E0,-1.E0));
--#591=VECTOR('',#590,8.E-1);
--#592=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
--#593=LINE('',#592,#591);
--#594=DIRECTION('',(1.E0,0.E0,0.E0));
--#595=VECTOR('',#594,3.865E0);
--#596=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
--#597=LINE('',#596,#595);
--#598=DIRECTION('',(0.E0,0.E0,1.E0));
--#599=VECTOR('',#598,8.E-1);
--#600=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
--#601=LINE('',#600,#599);
--#602=DIRECTION('',(-1.E0,0.E0,0.E0));
--#603=VECTOR('',#602,7.4E-1);
--#604=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
--#605=LINE('',#604,#603);
--#606=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#607=VECTOR('',#606,4.263248410977E0);
--#608=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
--#609=LINE('',#608,#607);
--#610=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
--#611=DIRECTION('',(0.E0,1.E0,0.E0));
--#612=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
--#613=AXIS2_PLACEMENT_3D('',#610,#611,#612);
--#615=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
--#616=DIRECTION('',(0.E0,1.E0,0.E0));
--#617=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
--#618=AXIS2_PLACEMENT_3D('',#615,#616,#617);
--#620=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
--#621=DIRECTION('',(0.E0,1.E0,0.E0));
--#622=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811866E-1));
--#623=AXIS2_PLACEMENT_3D('',#620,#621,#622);
--#625=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#626=VECTOR('',#625,4.263248410977E0);
--#627=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
--#628=LINE('',#627,#626);
--#629=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
--#630=DIRECTION('',(0.E0,1.E0,0.E0));
--#631=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
--#632=AXIS2_PLACEMENT_3D('',#629,#630,#631);
--#634=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
--#635=DIRECTION('',(0.E0,1.E0,0.E0));
--#636=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
--#637=AXIS2_PLACEMENT_3D('',#634,#635,#636);
--#639=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
--#640=DIRECTION('',(0.E0,1.E0,0.E0));
--#641=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#642=AXIS2_PLACEMENT_3D('',#639,#640,#641);
--#644=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
--#645=DIRECTION('',(0.E0,-1.E0,0.E0));
--#646=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
--#647=AXIS2_PLACEMENT_3D('',#644,#645,#646);
--#649=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#650=VECTOR('',#649,4.263248410977E0);
--#651=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
--#652=LINE('',#651,#650);
--#653=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
--#654=DIRECTION('',(0.E0,-1.E0,0.E0));
--#655=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811866E-1));
--#656=AXIS2_PLACEMENT_3D('',#653,#654,#655);
--#658=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
--#659=DIRECTION('',(0.E0,-1.E0,0.E0));
--#660=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
--#661=AXIS2_PLACEMENT_3D('',#658,#659,#660);
--#663=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
--#664=DIRECTION('',(0.E0,0.E0,-1.E0));
--#665=DIRECTION('',(-1.E0,0.E0,0.E0));
--#666=AXIS2_PLACEMENT_3D('',#663,#664,#665);
--#668=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
--#669=DIRECTION('',(0.E0,0.E0,-1.E0));
--#670=DIRECTION('',(1.E0,0.E0,0.E0));
--#671=AXIS2_PLACEMENT_3D('',#668,#669,#670);
--#673=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
--#674=DIRECTION('',(0.E0,0.E0,-1.E0));
--#675=DIRECTION('',(-1.E0,0.E0,0.E0));
--#676=AXIS2_PLACEMENT_3D('',#673,#674,#675);
--#678=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
--#679=DIRECTION('',(0.E0,0.E0,-1.E0));
--#680=DIRECTION('',(1.E0,0.E0,0.E0));
--#681=AXIS2_PLACEMENT_3D('',#678,#679,#680);
--#683=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
--#684=DIRECTION('',(0.E0,0.E0,-1.E0));
--#685=DIRECTION('',(-1.E0,0.E0,0.E0));
--#686=AXIS2_PLACEMENT_3D('',#683,#684,#685);
--#688=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
--#689=DIRECTION('',(0.E0,0.E0,-1.E0));
--#690=DIRECTION('',(1.E0,0.E0,0.E0));
--#691=AXIS2_PLACEMENT_3D('',#688,#689,#690);
--#693=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
--#694=DIRECTION('',(0.E0,0.E0,-1.E0));
--#695=DIRECTION('',(-1.E0,0.E0,0.E0));
--#696=AXIS2_PLACEMENT_3D('',#693,#694,#695);
--#698=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
--#699=DIRECTION('',(0.E0,0.E0,-1.E0));
--#700=DIRECTION('',(1.E0,0.E0,0.E0));
--#701=AXIS2_PLACEMENT_3D('',#698,#699,#700);
--#703=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
--#704=DIRECTION('',(0.E0,0.E0,1.E0));
--#705=DIRECTION('',(1.E0,0.E0,0.E0));
--#706=AXIS2_PLACEMENT_3D('',#703,#704,#705);
--#708=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
--#709=DIRECTION('',(0.E0,0.E0,1.E0));
--#710=DIRECTION('',(-1.E0,0.E0,0.E0));
--#711=AXIS2_PLACEMENT_3D('',#708,#709,#710);
--#713=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
--#714=DIRECTION('',(0.E0,0.E0,1.E0));
--#715=DIRECTION('',(1.E0,0.E0,0.E0));
--#716=AXIS2_PLACEMENT_3D('',#713,#714,#715);
--#718=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
--#719=DIRECTION('',(0.E0,0.E0,1.E0));
--#720=DIRECTION('',(-1.E0,0.E0,0.E0));
--#721=AXIS2_PLACEMENT_3D('',#718,#719,#720);
--#723=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
--#724=DIRECTION('',(0.E0,0.E0,1.E0));
--#725=DIRECTION('',(1.E0,0.E0,0.E0));
--#726=AXIS2_PLACEMENT_3D('',#723,#724,#725);
--#728=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
--#729=DIRECTION('',(0.E0,0.E0,1.E0));
--#730=DIRECTION('',(-1.E0,0.E0,0.E0));
--#731=AXIS2_PLACEMENT_3D('',#728,#729,#730);
--#733=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
--#734=DIRECTION('',(0.E0,0.E0,1.E0));
--#735=DIRECTION('',(1.E0,0.E0,0.E0));
--#736=AXIS2_PLACEMENT_3D('',#733,#734,#735);
--#738=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
--#739=DIRECTION('',(0.E0,0.E0,1.E0));
--#740=DIRECTION('',(-1.E0,0.E0,0.E0));
--#741=AXIS2_PLACEMENT_3D('',#738,#739,#740);
--#743=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
--#744=VECTOR('',#743,1.029563014099E1);
--#745=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
--#746=LINE('',#745,#744);
--#747=DIRECTION('',(-1.E0,0.E0,0.E0));
--#748=VECTOR('',#747,2.E0);
--#749=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
--#750=LINE('',#749,#748);
--#751=DIRECTION('',(-1.E0,0.E0,0.E0));
--#752=VECTOR('',#751,2.E0);
--#753=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
--#754=LINE('',#753,#752);
--#755=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
--#756=VECTOR('',#755,1.029563014099E1);
--#757=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
--#758=LINE('',#757,#756);
--#759=DIRECTION('',(-1.E0,0.E0,0.E0));
--#760=VECTOR('',#759,3.895172754280E0);
--#761=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
--#762=LINE('',#761,#760);
--#763=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
--#764=VECTOR('',#763,6.863753427325E0);
--#765=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
--#766=LINE('',#765,#764);
--#767=DIRECTION('',(1.E0,0.E0,0.E0));
--#768=VECTOR('',#767,5.618394209466E-1);
--#769=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
--#770=LINE('',#769,#768);
--#771=DIRECTION('',(0.E0,-1.E0,0.E0));
--#772=VECTOR('',#771,6.E0);
--#773=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
--#774=LINE('',#773,#772);
--#775=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
--#776=VECTOR('',#775,6.863753427325E0);
--#777=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
--#778=LINE('',#777,#776);
--#779=DIRECTION('',(1.E0,0.E0,0.E0));
--#780=VECTOR('',#779,3.895172754280E0);
--#781=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
--#782=LINE('',#781,#780);
--#783=DIRECTION('',(0.E0,-1.E0,0.E0));
--#784=VECTOR('',#783,6.E0);
--#785=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
--#786=LINE('',#785,#784);
--#787=DIRECTION('',(-1.E0,0.E0,0.E0));
--#788=VECTOR('',#787,5.618394209466E-1);
--#789=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
--#790=LINE('',#789,#788);
--#791=DIRECTION('',(0.E0,0.E0,1.E0));
--#792=VECTOR('',#791,2.5E-1);
--#793=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
--#794=LINE('',#793,#792);
--#795=DIRECTION('',(0.E0,0.E0,1.E0));
--#796=VECTOR('',#795,2.5E-1);
--#797=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
--#798=LINE('',#797,#796);
--#799=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
--#800=DIRECTION('',(0.E0,0.E0,-1.E0));
--#801=DIRECTION('',(-1.E0,0.E0,0.E0));
--#802=AXIS2_PLACEMENT_3D('',#799,#800,#801);
--#804=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
--#805=DIRECTION('',(0.E0,0.E0,-1.E0));
--#806=DIRECTION('',(1.E0,0.E0,0.E0));
--#807=AXIS2_PLACEMENT_3D('',#804,#805,#806);
--#809=DIRECTION('',(0.E0,0.E0,1.E0));
--#810=VECTOR('',#809,2.E0);
--#811=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
--#812=LINE('',#811,#810);
--#813=DIRECTION('',(0.E0,0.E0,1.E0));
--#814=VECTOR('',#813,2.E0);
--#815=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
--#816=LINE('',#815,#814);
--#817=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
--#818=DIRECTION('',(0.E0,0.E0,-1.E0));
--#819=DIRECTION('',(-1.E0,0.E0,0.E0));
--#820=AXIS2_PLACEMENT_3D('',#817,#818,#819);
--#822=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
--#823=DIRECTION('',(0.E0,0.E0,-1.E0));
--#824=DIRECTION('',(1.E0,0.E0,0.E0));
--#825=AXIS2_PLACEMENT_3D('',#822,#823,#824);
--#827=DIRECTION('',(0.E0,1.E0,0.E0));
--#828=VECTOR('',#827,5.E0);
--#829=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
--#830=LINE('',#829,#828);
--#831=DIRECTION('',(-1.E0,0.E0,0.E0));
--#832=VECTOR('',#831,1.75E0);
--#833=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
--#834=LINE('',#833,#832);
--#835=DIRECTION('',(0.E0,1.E0,0.E0));
--#836=VECTOR('',#835,5.E0);
--#837=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
--#838=LINE('',#837,#836);
--#839=DIRECTION('',(0.E0,1.E0,0.E0));
--#840=VECTOR('',#839,1.E1);
--#841=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
--#842=LINE('',#841,#840);
--#843=DIRECTION('',(1.E0,0.E0,0.E0));
--#844=VECTOR('',#843,2.E0);
--#845=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
--#846=LINE('',#845,#844);
--#847=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
--#848=VECTOR('',#847,1.029563014099E1);
--#849=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
--#850=LINE('',#849,#848);
--#851=DIRECTION('',(0.E0,-1.E0,0.E0));
--#852=VECTOR('',#851,1.E0);
--#853=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
--#854=LINE('',#853,#852);
--#855=DIRECTION('',(-1.E0,0.E0,0.E0));
--#856=VECTOR('',#855,1.972007605460E-1);
--#857=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
--#858=LINE('',#857,#856);
--#859=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
--#860=VECTOR('',#859,2.059126028197E0);
--#861=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
--#862=LINE('',#861,#860);
--#863=DIRECTION('',(1.E0,0.E0,0.E0));
--#864=VECTOR('',#863,1.197200760546E0);
--#865=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
--#866=LINE('',#865,#864);
--#867=DIRECTION('',(0.E0,1.E0,0.E0));
--#868=VECTOR('',#867,6.8E0);
--#869=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
--#870=LINE('',#869,#868);
--#871=DIRECTION('',(-1.E0,0.E0,0.E0));
--#872=VECTOR('',#871,1.3E0);
--#873=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
--#874=LINE('',#873,#872);
--#875=DIRECTION('',(0.E0,-1.E0,0.E0));
--#876=VECTOR('',#875,4.3E0);
--#877=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
--#878=LINE('',#877,#876);
--#879=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
--#880=VECTOR('',#879,5.773502691896E0);
--#881=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
--#882=LINE('',#881,#880);
--#883=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
--#884=DIRECTION('',(0.E0,-1.E0,0.E0));
--#885=DIRECTION('',(-1.E0,0.E0,0.E0));
--#886=AXIS2_PLACEMENT_3D('',#883,#884,#885);
--#888=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
--#889=DIRECTION('',(0.E0,-1.E0,0.E0));
--#890=DIRECTION('',(1.E0,0.E0,0.E0));
--#891=AXIS2_PLACEMENT_3D('',#888,#889,#890);
--#893=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
--#894=DIRECTION('',(0.E0,-1.E0,0.E0));
--#895=DIRECTION('',(-1.E0,0.E0,0.E0));
--#896=AXIS2_PLACEMENT_3D('',#893,#894,#895);
--#898=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
--#899=DIRECTION('',(0.E0,-1.E0,0.E0));
--#900=DIRECTION('',(1.E0,0.E0,0.E0));
--#901=AXIS2_PLACEMENT_3D('',#898,#899,#900);
--#903=DIRECTION('',(-1.E0,0.E0,0.E0));
--#904=VECTOR('',#903,4.531373033403E0);
--#905=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
--#906=LINE('',#905,#904);
--#907=DIRECTION('',(-1.E0,0.E0,0.E0));
--#908=VECTOR('',#907,9.E0);
--#909=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
--#910=LINE('',#909,#908);
--#911=DIRECTION('',(-1.E0,0.E0,0.E0));
--#912=VECTOR('',#911,4.531373033403E0);
--#913=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
--#914=LINE('',#913,#912);
--#915=DIRECTION('',(0.E0,0.E0,1.E0));
--#916=VECTOR('',#915,3.E0);
--#917=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
--#918=LINE('',#917,#916);
--#919=DIRECTION('',(-1.E0,0.E0,0.E0));
--#920=VECTOR('',#919,1.6E1);
--#921=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
--#922=LINE('',#921,#920);
--#923=DIRECTION('',(0.E0,0.E0,-1.E0));
--#924=VECTOR('',#923,3.E0);
--#925=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
--#926=LINE('',#925,#924);
--#927=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
--#928=DIRECTION('',(0.E0,1.E0,0.E0));
--#929=DIRECTION('',(1.E0,0.E0,0.E0));
--#930=AXIS2_PLACEMENT_3D('',#927,#928,#929);
--#932=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
--#933=DIRECTION('',(0.E0,1.E0,0.E0));
--#934=DIRECTION('',(-1.E0,0.E0,0.E0));
--#935=AXIS2_PLACEMENT_3D('',#932,#933,#934);
--#937=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
--#938=DIRECTION('',(0.E0,1.E0,0.E0));
--#939=DIRECTION('',(1.E0,0.E0,0.E0));
--#940=AXIS2_PLACEMENT_3D('',#937,#938,#939);
--#942=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
--#943=DIRECTION('',(0.E0,1.E0,0.E0));
--#944=DIRECTION('',(-1.E0,0.E0,0.E0));
--#945=AXIS2_PLACEMENT_3D('',#942,#943,#944);
--#947=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
--#948=DIRECTION('',(0.E0,-1.E0,0.E0));
--#949=DIRECTION('',(1.E0,0.E0,0.E0));
--#950=AXIS2_PLACEMENT_3D('',#947,#948,#949);
--#952=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
--#953=DIRECTION('',(0.E0,-1.E0,0.E0));
--#954=DIRECTION('',(-1.E0,0.E0,0.E0));
--#955=AXIS2_PLACEMENT_3D('',#952,#953,#954);
--#957=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
--#958=DIRECTION('',(0.E0,-1.E0,0.E0));
--#959=DIRECTION('',(1.E0,0.E0,0.E0));
--#960=AXIS2_PLACEMENT_3D('',#957,#958,#959);
--#962=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
--#963=DIRECTION('',(0.E0,-1.E0,0.E0));
--#964=DIRECTION('',(-1.E0,0.E0,0.E0));
--#965=AXIS2_PLACEMENT_3D('',#962,#963,#964);
--#967=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
--#968=DIRECTION('',(0.E0,-1.E0,0.E0));
--#969=DIRECTION('',(1.E0,0.E0,0.E0));
--#970=AXIS2_PLACEMENT_3D('',#967,#968,#969);
--#972=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
--#973=DIRECTION('',(0.E0,-1.E0,0.E0));
--#974=DIRECTION('',(-1.E0,0.E0,0.E0));
--#975=AXIS2_PLACEMENT_3D('',#972,#973,#974);
--#977=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
--#978=DIRECTION('',(0.E0,-1.E0,0.E0));
--#979=DIRECTION('',(1.E0,0.E0,0.E0));
--#980=AXIS2_PLACEMENT_3D('',#977,#978,#979);
--#982=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
--#983=DIRECTION('',(0.E0,-1.E0,0.E0));
--#984=DIRECTION('',(-1.E0,0.E0,0.E0));
--#985=AXIS2_PLACEMENT_3D('',#982,#983,#984);
--#987=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
--#988=DIRECTION('',(0.E0,-1.E0,0.E0));
--#989=DIRECTION('',(1.E0,0.E0,0.E0));
--#990=AXIS2_PLACEMENT_3D('',#987,#988,#989);
--#992=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
--#993=DIRECTION('',(0.E0,-1.E0,0.E0));
--#994=DIRECTION('',(-1.E0,0.E0,0.E0));
--#995=AXIS2_PLACEMENT_3D('',#992,#993,#994);
--#997=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
--#998=DIRECTION('',(0.E0,-1.E0,0.E0));
--#999=DIRECTION('',(1.E0,0.E0,0.E0));
--#1000=AXIS2_PLACEMENT_3D('',#997,#998,#999);
--#1002=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
--#1003=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1004=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1005=AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);
--#1007=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
--#1008=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1009=DIRECTION('',(1.E0,0.E0,0.E0));
--#1010=AXIS2_PLACEMENT_3D('',#1007,#1008,#1009);
--#1012=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
--#1013=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1014=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1015=AXIS2_PLACEMENT_3D('',#1012,#1013,#1014);
--#1017=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
--#1018=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1019=DIRECTION('',(1.E0,0.E0,0.E0));
--#1020=AXIS2_PLACEMENT_3D('',#1017,#1018,#1019);
--#1022=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
--#1023=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1024=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1025=AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);
--#1027=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
--#1028=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1029=DIRECTION('',(1.E0,0.E0,0.E0));
--#1030=AXIS2_PLACEMENT_3D('',#1027,#1028,#1029);
--#1032=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
--#1033=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1034=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1035=AXIS2_PLACEMENT_3D('',#1032,#1033,#1034);
--#1037=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
--#1038=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1039=DIRECTION('',(1.E0,0.E0,0.E0));
--#1040=AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);
--#1042=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
--#1043=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1044=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1045=AXIS2_PLACEMENT_3D('',#1042,#1043,#1044);
--#1047=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
--#1048=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1049=DIRECTION('',(1.E0,0.E0,0.E0));
--#1050=AXIS2_PLACEMENT_3D('',#1047,#1048,#1049);
--#1052=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
--#1053=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1054=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1055=AXIS2_PLACEMENT_3D('',#1052,#1053,#1054);
--#1057=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
--#1058=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1059=DIRECTION('',(1.E0,0.E0,0.E0));
--#1060=AXIS2_PLACEMENT_3D('',#1057,#1058,#1059);
--#1062=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
--#1063=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1064=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1065=AXIS2_PLACEMENT_3D('',#1062,#1063,#1064);
--#1067=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1068=VECTOR('',#1067,2.5625E0);
--#1069=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
--#1070=LINE('',#1069,#1068);
--#1071=DIRECTION('',(1.E0,0.E0,0.E0));
--#1072=VECTOR('',#1071,1.3E1);
--#1073=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
--#1074=LINE('',#1073,#1072);
--#1075=DIRECTION('',(0.E0,0.E0,1.E0));
--#1076=VECTOR('',#1075,2.5625E0);
--#1077=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
--#1078=LINE('',#1077,#1076);
--#1079=DIRECTION('',(1.E0,0.E0,0.E0));
--#1080=VECTOR('',#1079,9.E0);
--#1081=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
--#1082=LINE('',#1081,#1080);
--#1083=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1084=VECTOR('',#1083,1.3E1);
--#1085=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
--#1086=LINE('',#1085,#1084);
--#1087=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1088=VECTOR('',#1087,8.125E-1);
--#1089=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
--#1090=LINE('',#1089,#1088);
--#1091=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1092=VECTOR('',#1091,1.E0);
--#1093=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
--#1094=LINE('',#1093,#1092);
--#1095=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1096=VECTOR('',#1095,7.5E-1);
--#1097=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
--#1098=LINE('',#1097,#1096);
--#1099=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1100=VECTOR('',#1099,7.5E-1);
--#1101=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
--#1102=LINE('',#1101,#1100);
--#1103=DIRECTION('',(1.E0,0.E0,0.E0));
--#1104=VECTOR('',#1103,1.E0);
--#1105=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
--#1106=LINE('',#1105,#1104);
--#1107=DIRECTION('',(0.E0,0.E0,1.E0));
--#1108=VECTOR('',#1107,8.125E-1);
--#1109=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
--#1110=LINE('',#1109,#1108);
--#1111=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
--#1112=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1113=DIRECTION('',(1.E0,0.E0,0.E0));
--#1114=AXIS2_PLACEMENT_3D('',#1111,#1112,#1113);
--#1116=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
--#1117=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1118=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1119=AXIS2_PLACEMENT_3D('',#1116,#1117,#1118);
--#1121=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
--#1122=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1123=DIRECTION('',(1.E0,0.E0,0.E0));
--#1124=AXIS2_PLACEMENT_3D('',#1121,#1122,#1123);
--#1126=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
--#1127=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1128=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1129=AXIS2_PLACEMENT_3D('',#1126,#1127,#1128);
--#1131=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
--#1132=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1133=DIRECTION('',(1.E0,0.E0,0.E0));
--#1134=AXIS2_PLACEMENT_3D('',#1131,#1132,#1133);
--#1136=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
--#1137=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1138=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1139=AXIS2_PLACEMENT_3D('',#1136,#1137,#1138);
--#1141=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
--#1142=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1143=DIRECTION('',(1.E0,0.E0,0.E0));
--#1144=AXIS2_PLACEMENT_3D('',#1141,#1142,#1143);
--#1146=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
--#1147=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1148=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1149=AXIS2_PLACEMENT_3D('',#1146,#1147,#1148);
--#1151=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
--#1152=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1153=DIRECTION('',(1.E0,0.E0,0.E0));
--#1154=AXIS2_PLACEMENT_3D('',#1151,#1152,#1153);
--#1156=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
--#1157=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1158=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1159=AXIS2_PLACEMENT_3D('',#1156,#1157,#1158);
--#1161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
--#1162=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1163=DIRECTION('',(1.E0,0.E0,0.E0));
--#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163);
--#1166=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
--#1167=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1168=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168);
--#1171=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1172=VECTOR('',#1171,2.886751345948E0);
--#1173=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
--#1174=LINE('',#1173,#1172);
--#1175=DIRECTION('',(1.E0,0.E0,0.E0));
--#1176=VECTOR('',#1175,2.25E0);
--#1177=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
--#1178=LINE('',#1177,#1176);
--#1179=DIRECTION('',(0.E0,0.E0,1.E0));
--#1180=VECTOR('',#1179,1.75E0);
--#1181=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
--#1182=LINE('',#1181,#1180);
--#1183=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1184=VECTOR('',#1183,5.E-1);
--#1185=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
--#1186=LINE('',#1185,#1184);
--#1187=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1188=VECTOR('',#1187,1.475E1);
--#1189=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
--#1190=LINE('',#1189,#1188);
--#1191=DIRECTION('',(1.E0,0.E0,0.E0));
--#1192=VECTOR('',#1191,1.6E1);
--#1193=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
--#1194=LINE('',#1193,#1192);
--#1195=DIRECTION('',(0.E0,0.E0,1.E0));
--#1196=VECTOR('',#1195,1.475E1);
--#1197=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
--#1198=LINE('',#1197,#1196);
--#1199=DIRECTION('',(1.E0,0.E0,0.E0));
--#1200=VECTOR('',#1199,5.E-1);
--#1201=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
--#1202=LINE('',#1201,#1200);
--#1203=DIRECTION('',(0.E0,0.E0,1.E0));
--#1204=VECTOR('',#1203,1.75E0);
--#1205=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
--#1206=LINE('',#1205,#1204);
--#1207=DIRECTION('',(1.E0,0.E0,0.E0));
--#1208=VECTOR('',#1207,2.25E0);
--#1209=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
--#1210=LINE('',#1209,#1208);
--#1211=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1212=VECTOR('',#1211,2.886751345948E0);
--#1213=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
--#1214=LINE('',#1213,#1212);
--#1215=DIRECTION('',(1.E0,0.E0,0.E0));
--#1216=VECTOR('',#1215,1.75E0);
--#1217=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
--#1218=LINE('',#1217,#1216);
--#1219=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1220=VECTOR('',#1219,2.886751345948E0);
--#1221=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
--#1222=LINE('',#1221,#1220);
--#1223=DIRECTION('',(1.E0,0.E0,0.E0));
--#1224=VECTOR('',#1223,3.E0);
--#1225=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
--#1226=LINE('',#1225,#1224);
--#1227=DIRECTION('',(1.E0,0.E0,0.E0));
--#1228=VECTOR('',#1227,1.4E1);
--#1229=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
--#1230=LINE('',#1229,#1228);
--#1231=DIRECTION('',(1.E0,0.E0,0.E0));
--#1232=VECTOR('',#1231,3.E0);
--#1233=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
--#1234=LINE('',#1233,#1232);
--#1235=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1236=VECTOR('',#1235,2.886751345948E0);
--#1237=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
--#1238=LINE('',#1237,#1236);
--#1239=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1240=VECTOR('',#1239,1.75E0);
--#1241=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
--#1242=LINE('',#1241,#1240);
--#1243=DIRECTION('',(0.E0,1.E0,0.E0));
--#1244=VECTOR('',#1243,2.5E-1);
--#1245=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
--#1246=LINE('',#1245,#1244);
--#1247=DIRECTION('',(0.E0,1.E0,0.E0));
--#1248=VECTOR('',#1247,2.5E-1);
--#1249=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
--#1250=LINE('',#1249,#1248);
--#1251=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
--#1252=VECTOR('',#1251,1.154700538379E-1);
--#1253=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
--#1254=LINE('',#1253,#1252);
--#1255=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
--#1256=DIRECTION('',(0.E0,1.E0,0.E0));
--#1257=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1258=AXIS2_PLACEMENT_3D('',#1255,#1256,#1257);
--#1260=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
--#1261=VECTOR('',#1260,1.154700538379E-1);
--#1262=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
--#1263=LINE('',#1262,#1261);
--#1264=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
--#1265=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1266=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1267=AXIS2_PLACEMENT_3D('',#1264,#1265,#1266);
--#1269=DIRECTION('',(0.E0,1.E0,0.E0));
--#1270=VECTOR('',#1269,2.5E-1);
--#1271=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
--#1272=LINE('',#1271,#1270);
--#1273=DIRECTION('',(0.E0,1.E0,0.E0));
--#1274=VECTOR('',#1273,2.5E-1);
--#1275=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
--#1276=LINE('',#1275,#1274);
--#1277=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
--#1278=VECTOR('',#1277,1.154700538379E-1);
--#1279=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
--#1280=LINE('',#1279,#1278);
--#1281=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
--#1282=DIRECTION('',(0.E0,1.E0,0.E0));
--#1283=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);
--#1286=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
--#1287=VECTOR('',#1286,1.154700538379E-1);
--#1288=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
--#1289=LINE('',#1288,#1287);
--#1290=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
--#1291=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1292=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1293=AXIS2_PLACEMENT_3D('',#1290,#1291,#1292);
--#1295=DIRECTION('',(0.E0,1.E0,0.E0));
--#1296=VECTOR('',#1295,1.5E0);
--#1297=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
--#1298=LINE('',#1297,#1296);
--#1299=CARTESIAN_POINT('',(2.046862696660E1,0.E0,7.E0));
--#1300=DIRECTION('',(0.E0,1.E0,0.E0));
--#1301=DIRECTION('',(0.E0,0.E0,1.E0));
--#1302=AXIS2_PLACEMENT_3D('',#1299,#1300,#1301);
--#1304=DIRECTION('',(0.E0,1.E0,0.E0));
--#1305=VECTOR('',#1304,1.5E0);
--#1306=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
--#1307=LINE('',#1306,#1305);
--#1308=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,7.E0));
--#1309=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1310=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
--#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);
--#1313=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
--#1314=DIRECTION('',(0.E0,1.E0,0.E0));
--#1315=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
--#1316=AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);
--#1318=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1319=VECTOR('',#1318,1.5E0);
--#1320=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
--#1321=LINE('',#1320,#1319);
--#1322=CARTESIAN_POINT('',(1.65E1,1.5E0,7.5E0));
--#1323=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1324=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1325=AXIS2_PLACEMENT_3D('',#1322,#1323,#1324);
--#1327=CARTESIAN_POINT('',(7.5E0,1.5E0,7.5E0));
--#1328=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1329=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
--#1330=AXIS2_PLACEMENT_3D('',#1327,#1328,#1329);
--#1332=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1333=VECTOR('',#1332,1.5E0);
--#1334=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
--#1335=LINE('',#1334,#1333);
--#1336=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
--#1337=DIRECTION('',(0.E0,1.E0,0.E0));
--#1338=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1339=AXIS2_PLACEMENT_3D('',#1336,#1337,#1338);
--#1341=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1342=VECTOR('',#1341,1.5E0);
--#1343=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
--#1344=LINE('',#1343,#1342);
--#1345=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,7.E0));
--#1346=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1347=DIRECTION('',(0.E0,0.E0,1.E0));
--#1348=AXIS2_PLACEMENT_3D('',#1345,#1346,#1347);
--#1350=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1351=VECTOR('',#1350,1.5E0);
--#1352=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
--#1353=LINE('',#1352,#1351);
--#1354=CARTESIAN_POINT('',(3.531373033403E0,0.E0,7.E0));
--#1355=DIRECTION('',(0.E0,1.E0,0.E0));
--#1356=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
--#1357=AXIS2_PLACEMENT_3D('',#1354,#1355,#1356);
--#1359=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1360=VECTOR('',#1359,1.5E0);
--#1361=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
--#1362=LINE('',#1361,#1360);
--#1363=CARTESIAN_POINT('',(-1.E0,1.5E0,7.E0));
--#1364=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1365=DIRECTION('',(1.E0,0.E0,0.E0));
--#1366=AXIS2_PLACEMENT_3D('',#1363,#1364,#1365);
--#1368=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1369=VECTOR('',#1368,1.5E0);
--#1370=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
--#1371=LINE('',#1370,#1369);
--#1372=CARTESIAN_POINT('',(-1.E0,0.E0,7.E0));
--#1373=DIRECTION('',(0.E0,1.E0,0.E0));
--#1374=DIRECTION('',(0.E0,0.E0,1.E0));
--#1375=AXIS2_PLACEMENT_3D('',#1372,#1373,#1374);
--#1377=DIRECTION('',(0.E0,1.E0,0.E0));
--#1378=VECTOR('',#1377,1.5E0);
--#1379=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
--#1380=LINE('',#1379,#1378);
--#1381=CARTESIAN_POINT('',(-1.E0,0.E0,1.325E1));
--#1382=DIRECTION('',(0.E0,1.E0,0.E0));
--#1383=DIRECTION('',(1.E0,0.E0,0.E0));
--#1384=AXIS2_PLACEMENT_3D('',#1381,#1382,#1383);
--#1386=DIRECTION('',(0.E0,1.E0,0.E0));
--#1387=VECTOR('',#1386,1.5E0);
--#1388=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
--#1389=LINE('',#1388,#1387);
--#1390=CARTESIAN_POINT('',(-1.E0,1.5E0,1.325E1));
--#1391=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1392=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1393=AXIS2_PLACEMENT_3D('',#1390,#1391,#1392);
--#1395=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1396=VECTOR('',#1395,1.5E0);
--#1397=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
--#1398=LINE('',#1397,#1396);
--#1399=CARTESIAN_POINT('',(3.5E0,1.5E0,1.325E1));
--#1400=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1401=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1402=AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);
--#1404=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1405=VECTOR('',#1404,1.5E0);
--#1406=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
--#1407=LINE('',#1406,#1405);
--#1408=CARTESIAN_POINT('',(3.5E0,0.E0,1.325E1));
--#1409=DIRECTION('',(0.E0,1.E0,0.E0));
--#1410=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1411=AXIS2_PLACEMENT_3D('',#1408,#1409,#1410);
--#1413=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1414=VECTOR('',#1413,1.5E0);
--#1415=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
--#1416=LINE('',#1415,#1414);
--#1417=CARTESIAN_POINT('',(5.5E0,1.5E0,2.19375E1));
--#1418=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1419=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1420=AXIS2_PLACEMENT_3D('',#1417,#1418,#1419);
--#1422=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1423=VECTOR('',#1422,1.5E0);
--#1424=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
--#1425=LINE('',#1424,#1423);
--#1426=CARTESIAN_POINT('',(5.5E0,0.E0,2.19375E1));
--#1427=DIRECTION('',(0.E0,1.E0,0.E0));
--#1428=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1429=AXIS2_PLACEMENT_3D('',#1426,#1427,#1428);
--#1431=DIRECTION('',(0.E0,1.E0,0.E0));
--#1432=VECTOR('',#1431,1.5E0);
--#1433=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
--#1434=LINE('',#1433,#1432);
--#1435=CARTESIAN_POINT('',(1.85E1,0.E0,2.19375E1));
--#1436=DIRECTION('',(0.E0,1.E0,0.E0));
--#1437=DIRECTION('',(1.E0,0.E0,0.E0));
--#1438=AXIS2_PLACEMENT_3D('',#1435,#1436,#1437);
--#1440=DIRECTION('',(0.E0,1.E0,0.E0));
--#1441=VECTOR('',#1440,1.5E0);
--#1442=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
--#1443=LINE('',#1442,#1441);
--#1444=CARTESIAN_POINT('',(1.85E1,1.5E0,2.19375E1));
--#1445=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1446=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);
--#1449=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1450=VECTOR('',#1449,1.5E0);
--#1451=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
--#1452=LINE('',#1451,#1450);
--#1453=CARTESIAN_POINT('',(1.65E1,1.5E0,2.45E1));
--#1454=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1455=DIRECTION('',(1.E0,0.E0,0.E0));
--#1456=AXIS2_PLACEMENT_3D('',#1453,#1454,#1455);
--#1458=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1459=VECTOR('',#1458,1.5E0);
--#1460=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
--#1461=LINE('',#1460,#1459);
--#1462=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
--#1463=DIRECTION('',(0.E0,1.E0,0.E0));
--#1464=DIRECTION('',(0.E0,0.E0,1.E0));
--#1465=AXIS2_PLACEMENT_3D('',#1462,#1463,#1464);
--#1467=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1468=VECTOR('',#1467,1.5E0);
--#1469=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
--#1470=LINE('',#1469,#1468);
--#1471=CARTESIAN_POINT('',(7.5E0,1.5E0,2.45E1));
--#1472=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1473=DIRECTION('',(0.E0,0.E0,1.E0));
--#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473);
--#1476=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1477=VECTOR('',#1476,1.5E0);
--#1478=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
--#1479=LINE('',#1478,#1477);
--#1480=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
--#1481=DIRECTION('',(0.E0,1.E0,0.E0));
--#1482=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1483=AXIS2_PLACEMENT_3D('',#1480,#1481,#1482);
--#1485=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1486=VECTOR('',#1485,1.5E0);
--#1487=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
--#1488=LINE('',#1487,#1486);
--#1489=CARTESIAN_POINT('',(1.85E1,1.5E0,1.40625E1));
--#1490=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1491=DIRECTION('',(1.E0,0.E0,0.E0));
--#1492=AXIS2_PLACEMENT_3D('',#1489,#1490,#1491);
--#1494=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1495=VECTOR('',#1494,1.5E0);
--#1496=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
--#1497=LINE('',#1496,#1495);
--#1498=CARTESIAN_POINT('',(1.85E1,0.E0,1.40625E1));
--#1499=DIRECTION('',(0.E0,1.E0,0.E0));
--#1500=DIRECTION('',(0.E0,0.E0,1.E0));
--#1501=AXIS2_PLACEMENT_3D('',#1498,#1499,#1500);
--#1503=DIRECTION('',(0.E0,1.E0,0.E0));
--#1504=VECTOR('',#1503,1.5E0);
--#1505=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
--#1506=LINE('',#1505,#1504);
--#1507=CARTESIAN_POINT('',(5.5E0,0.E0,1.40625E1));
--#1508=DIRECTION('',(0.E0,1.E0,0.E0));
--#1509=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1510=AXIS2_PLACEMENT_3D('',#1507,#1508,#1509);
--#1512=DIRECTION('',(0.E0,1.E0,0.E0));
--#1513=VECTOR('',#1512,1.5E0);
--#1514=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
--#1515=LINE('',#1514,#1513);
--#1516=CARTESIAN_POINT('',(5.5E0,1.5E0,1.40625E1));
--#1517=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1518=DIRECTION('',(0.E0,0.E0,1.E0));
--#1519=AXIS2_PLACEMENT_3D('',#1516,#1517,#1518);
--#1521=DIRECTION('',(0.E0,1.E0,0.E0));
--#1522=VECTOR('',#1521,1.5E0);
--#1523=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
--#1524=LINE('',#1523,#1522);
--#1525=CARTESIAN_POINT('',(2.05E1,0.E0,1.325E1));
--#1526=DIRECTION('',(0.E0,1.E0,0.E0));
--#1527=DIRECTION('',(1.E0,0.E0,0.E0));
--#1528=AXIS2_PLACEMENT_3D('',#1525,#1526,#1527);
--#1530=DIRECTION('',(0.E0,1.E0,0.E0));
--#1531=VECTOR('',#1530,1.5E0);
--#1532=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
--#1533=LINE('',#1532,#1531);
--#1534=CARTESIAN_POINT('',(2.05E1,1.5E0,1.325E1));
--#1535=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1536=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1537=AXIS2_PLACEMENT_3D('',#1534,#1535,#1536);
--#1539=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1540=VECTOR('',#1539,1.5E0);
--#1541=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
--#1542=LINE('',#1541,#1540);
--#1543=CARTESIAN_POINT('',(2.5E1,1.5E0,1.325E1));
--#1544=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1545=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1546=AXIS2_PLACEMENT_3D('',#1543,#1544,#1545);
--#1548=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1549=VECTOR('',#1548,1.5E0);
--#1550=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
--#1551=LINE('',#1550,#1549);
--#1552=CARTESIAN_POINT('',(2.5E1,0.E0,1.325E1));
--#1553=DIRECTION('',(0.E0,1.E0,0.E0));
--#1554=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1555=AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);
--#1557=DIRECTION('',(0.E0,1.E0,0.E0));
--#1558=VECTOR('',#1557,1.5E0);
--#1559=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
--#1560=LINE('',#1559,#1558);
--#1561=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#1562=VECTOR('',#1561,5.656854249492E0);
--#1563=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
--#1564=LINE('',#1563,#1562);
--#1565=DIRECTION('',(0.E0,1.E0,0.E0));
--#1566=VECTOR('',#1565,1.5E0);
--#1567=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
--#1568=LINE('',#1567,#1566);
--#1569=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#1570=VECTOR('',#1569,5.656854249492E0);
--#1571=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
--#1572=LINE('',#1571,#1570);
--#1573=DIRECTION('',(0.E0,1.E0,0.E0));
--#1574=VECTOR('',#1573,1.5E0);
--#1575=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
--#1576=LINE('',#1575,#1574);
--#1577=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1578=VECTOR('',#1577,5.656854249492E0);
--#1579=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
--#1580=LINE('',#1579,#1578);
--#1581=DIRECTION('',(0.E0,1.E0,0.E0));
--#1582=VECTOR('',#1581,1.5E0);
--#1583=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
--#1584=LINE('',#1583,#1582);
--#1585=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1586=VECTOR('',#1585,5.656854249492E0);
--#1587=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
--#1588=LINE('',#1587,#1586);
--#1589=DIRECTION('',(0.E0,1.E0,0.E0));
--#1590=VECTOR('',#1589,1.5E0);
--#1591=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
--#1592=LINE('',#1591,#1590);
--#1593=CARTESIAN_POINT('',(2.5E1,0.E0,7.E0));
--#1594=DIRECTION('',(0.E0,1.E0,0.E0));
--#1595=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1596=AXIS2_PLACEMENT_3D('',#1593,#1594,#1595);
--#1598=DIRECTION('',(0.E0,1.E0,0.E0));
--#1599=VECTOR('',#1598,1.5E0);
--#1600=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
--#1601=LINE('',#1600,#1599);
--#1602=CARTESIAN_POINT('',(2.5E1,1.5E0,7.E0));
--#1603=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1604=DIRECTION('',(0.E0,0.E0,1.E0));
--#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);
--#1607=DIRECTION('',(0.E0,1.E0,0.E0));
--#1608=VECTOR('',#1607,1.5E0);
--#1609=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
--#1610=LINE('',#1609,#1608);
--#1611=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#1612=VECTOR('',#1611,5.656854249492E0);
--#1613=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
--#1614=LINE('',#1613,#1612);
--#1615=DIRECTION('',(0.E0,1.E0,0.E0));
--#1616=VECTOR('',#1615,1.5E0);
--#1617=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
--#1618=LINE('',#1617,#1616);
--#1619=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#1620=VECTOR('',#1619,5.656854249492E0);
--#1621=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
--#1622=LINE('',#1621,#1620);
--#1623=DIRECTION('',(0.E0,1.E0,0.E0));
--#1624=VECTOR('',#1623,1.5E0);
--#1625=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
--#1626=LINE('',#1625,#1624);
--#1627=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1628=VECTOR('',#1627,5.656854249492E0);
--#1629=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
--#1630=LINE('',#1629,#1628);
--#1631=DIRECTION('',(0.E0,1.E0,0.E0));
--#1632=VECTOR('',#1631,1.5E0);
--#1633=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
--#1634=LINE('',#1633,#1632);
--#1635=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1636=VECTOR('',#1635,5.656854249492E0);
--#1637=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
--#1638=LINE('',#1637,#1636);
--#1639=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1640=VECTOR('',#1639,1.5E0);
--#1641=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
--#1642=LINE('',#1641,#1640);
--#1643=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1644=VECTOR('',#1643,7.071067811865E-1);
--#1645=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
--#1646=LINE('',#1645,#1644);
--#1647=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1648=VECTOR('',#1647,1.5E0);
--#1649=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
--#1650=LINE('',#1649,#1648);
--#1651=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1652=VECTOR('',#1651,7.071067811865E-1);
--#1653=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
--#1654=LINE('',#1653,#1652);
--#1655=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1656=VECTOR('',#1655,2.5E0);
--#1657=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
--#1658=LINE('',#1657,#1656);
--#1659=DIRECTION('',(0.E0,0.E0,1.E0));
--#1660=VECTOR('',#1659,2.E0);
--#1661=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
--#1662=LINE('',#1661,#1660);
--#1663=DIRECTION('',(0.E0,0.E0,1.E0));
--#1664=VECTOR('',#1663,2.E0);
--#1665=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
--#1666=LINE('',#1665,#1664);
--#1667=DIRECTION('',(0.E0,0.E0,1.E0));
--#1668=VECTOR('',#1667,2.E0);
--#1669=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
--#1670=LINE('',#1669,#1668);
--#1671=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
--#1672=DIRECTION('',(0.E0,1.E0,0.E0));
--#1673=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1674=AXIS2_PLACEMENT_3D('',#1671,#1672,#1673);
--#1676=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
--#1677=DIRECTION('',(0.E0,1.E0,0.E0));
--#1678=DIRECTION('',(1.E0,0.E0,0.E0));
--#1679=AXIS2_PLACEMENT_3D('',#1676,#1677,#1678);
--#1681=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
--#1682=DIRECTION('',(0.E0,1.E0,0.E0));
--#1683=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1684=AXIS2_PLACEMENT_3D('',#1681,#1682,#1683);
--#1686=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
--#1687=DIRECTION('',(0.E0,1.E0,0.E0));
--#1688=DIRECTION('',(1.E0,0.E0,0.E0));
--#1689=AXIS2_PLACEMENT_3D('',#1686,#1687,#1688);
--#1691=DIRECTION('',(0.E0,0.E0,1.E0));
--#1692=VECTOR('',#1691,2.E0);
--#1693=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
--#1694=LINE('',#1693,#1692);
--#1695=DIRECTION('',(0.E0,1.E0,0.E0));
--#1696=VECTOR('',#1695,1.E1);
--#1697=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
--#1698=LINE('',#1697,#1696);
--#1699=DIRECTION('',(0.E0,1.E0,0.E0));
--#1700=VECTOR('',#1699,1.5E0);
--#1701=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
--#1702=LINE('',#1701,#1700);
--#1703=CARTESIAN_POINT('',(1.8E1,0.E0,1.1E1));
--#1704=DIRECTION('',(0.E0,1.E0,0.E0));
--#1705=DIRECTION('',(1.E0,0.E0,0.E0));
--#1706=AXIS2_PLACEMENT_3D('',#1703,#1704,#1705);
--#1708=DIRECTION('',(0.E0,1.E0,0.E0));
--#1709=VECTOR('',#1708,1.5E0);
--#1710=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
--#1711=LINE('',#1710,#1709);
--#1712=CARTESIAN_POINT('',(1.8E1,1.5E0,1.1E1));
--#1713=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1714=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1715=AXIS2_PLACEMENT_3D('',#1712,#1713,#1714);
--#1717=DIRECTION('',(1.E0,0.E0,0.E0));
--#1718=VECTOR('',#1717,1.2E1);
--#1719=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
--#1720=LINE('',#1719,#1718);
--#1721=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1722=VECTOR('',#1721,1.5E0);
--#1723=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
--#1724=LINE('',#1723,#1722);
--#1725=CARTESIAN_POINT('',(6.E0,1.5E0,1.1E1));
--#1726=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1727=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1728=AXIS2_PLACEMENT_3D('',#1725,#1726,#1727);
--#1730=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1731=VECTOR('',#1730,1.5E0);
--#1732=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
--#1733=LINE('',#1732,#1731);
--#1734=CARTESIAN_POINT('',(6.E0,0.E0,1.1E1));
--#1735=DIRECTION('',(0.E0,1.E0,0.E0));
--#1736=DIRECTION('',(0.E0,0.E0,-1.E0));
--#1737=AXIS2_PLACEMENT_3D('',#1734,#1735,#1736);
--#1739=DIRECTION('',(0.E0,0.E0,1.E0));
--#1740=VECTOR('',#1739,2.E0);
--#1741=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
--#1742=LINE('',#1741,#1740);
--#1743=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1744=VECTOR('',#1743,1.E1);
--#1745=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
--#1746=LINE('',#1745,#1744);
--#1747=DIRECTION('',(0.E0,1.E0,0.E0));
--#1748=VECTOR('',#1747,1.5E0);
--#1749=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
--#1750=LINE('',#1749,#1748);
--#1751=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#1752=VECTOR('',#1751,7.071067811865E-1);
--#1753=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
--#1754=LINE('',#1753,#1752);
--#1755=DIRECTION('',(0.E0,1.E0,0.E0));
--#1756=VECTOR('',#1755,1.5E0);
--#1757=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
--#1758=LINE('',#1757,#1756);
--#1759=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#1760=VECTOR('',#1759,7.071067811865E-1);
--#1761=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
--#1762=LINE('',#1761,#1760);
--#1763=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
--#1764=DIRECTION('',(0.E0,0.E0,1.E0));
--#1765=DIRECTION('',(1.E0,0.E0,0.E0));
--#1766=AXIS2_PLACEMENT_3D('',#1763,#1764,#1765);
--#1768=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
--#1769=DIRECTION('',(0.E0,0.E0,1.E0));
--#1770=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1771=AXIS2_PLACEMENT_3D('',#1768,#1769,#1770);
--#1773=DIRECTION('',(0.E0,1.E0,0.E0));
--#1774=VECTOR('',#1773,5.E0);
--#1775=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
--#1776=LINE('',#1775,#1774);
--#1777=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1778=VECTOR('',#1777,1.E0);
--#1779=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
--#1780=LINE('',#1779,#1778);
--#1781=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
--#1782=VECTOR('',#1781,1.029563014099E1);
--#1783=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
--#1784=LINE('',#1783,#1782);
--#1785=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1786=VECTOR('',#1785,2.E0);
--#1787=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
--#1788=LINE('',#1787,#1786);
--#1789=DIRECTION('',(0.E0,1.E0,0.E0));
--#1790=VECTOR('',#1789,1.E1);
--#1791=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
--#1792=LINE('',#1791,#1790);
--#1793=DIRECTION('',(0.E0,1.E0,0.E0));
--#1794=VECTOR('',#1793,5.E0);
--#1795=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
--#1796=LINE('',#1795,#1794);
--#1797=DIRECTION('',(1.E0,0.E0,0.E0));
--#1798=VECTOR('',#1797,1.75E0);
--#1799=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
--#1800=LINE('',#1799,#1798);
--#1801=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1802=VECTOR('',#1801,4.3E0);
--#1803=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
--#1804=LINE('',#1803,#1802);
--#1805=DIRECTION('',(1.E0,0.E0,0.E0));
--#1806=VECTOR('',#1805,1.3E0);
--#1807=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
--#1808=LINE('',#1807,#1806);
--#1809=DIRECTION('',(0.E0,1.E0,0.E0));
--#1810=VECTOR('',#1809,6.8E0);
--#1811=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
--#1812=LINE('',#1811,#1810);
--#1813=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1814=VECTOR('',#1813,1.197200760546E0);
--#1815=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
--#1816=LINE('',#1815,#1814);
--#1817=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
--#1818=VECTOR('',#1817,2.059126028197E0);
--#1819=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
--#1820=LINE('',#1819,#1818);
--#1821=DIRECTION('',(1.E0,0.E0,0.E0));
--#1822=VECTOR('',#1821,1.972007605460E-1);
--#1823=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
--#1824=LINE('',#1823,#1822);
--#1825=DIRECTION('',(0.E0,0.E0,1.E0));
--#1826=VECTOR('',#1825,2.E0);
--#1827=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
--#1828=LINE('',#1827,#1826);
--#1829=DIRECTION('',(0.E0,0.E0,1.E0));
--#1830=VECTOR('',#1829,2.E0);
--#1831=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
--#1832=LINE('',#1831,#1830);
--#1833=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
--#1834=VECTOR('',#1833,5.773502691896E0);
--#1835=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
--#1836=LINE('',#1835,#1834);
--#1837=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
--#1838=CARTESIAN_POINT('',(8.675E-1,2.930774450068E0,1.206069333205E1));
--#1839=CARTESIAN_POINT('',(9.058386382037E-1,2.745461691651E0,1.216768370301E1));
--#1840=CARTESIAN_POINT('',(1.029862281194E0,2.608885438662E0,1.224653603944E1));
--#1841=CARTESIAN_POINT('',(1.125E0,2.580400233539E0,1.226298198028E1));
--#1842=CARTESIAN_POINT('',(1.220137718806E0,2.608885438662E0,1.224653603944E1));
--#1843=CARTESIAN_POINT('',(1.344161361796E0,2.745461691651E0,1.216768370301E1));
--#1844=CARTESIAN_POINT('',(1.3825E0,2.930774450068E0,1.206069333205E1));
--#1845=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
--#1847=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
--#1848=CARTESIAN_POINT('',(1.3825E0,3.141022319657E0,1.193930666795E1));
--#1849=CARTESIAN_POINT('',(1.344161361796E0,3.326335078073E0,1.183231629699E1));
--#1850=CARTESIAN_POINT('',(1.220137718806E0,3.462911331062E0,1.175346396056E1));
--#1851=CARTESIAN_POINT('',(1.125E0,3.491396536186E0,1.173701801972E1));
--#1852=CARTESIAN_POINT('',(1.029862281194E0,3.462911331062E0,1.175346396056E1));
--#1853=CARTESIAN_POINT('',(9.058386382037E-1,3.326335078073E0,1.183231629699E1));
--#1854=CARTESIAN_POINT('',(8.675E-1,3.141022319657E0,1.193930666795E1));
--#1855=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
--#1857=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
--#1858=VECTOR('',#1857,5.773502691896E0);
--#1859=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
--#1860=LINE('',#1859,#1858);
--#1861=DIRECTION('',(0.E0,1.E0,0.E0));
--#1862=VECTOR('',#1861,2.035898384862E0);
--#1863=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
--#1864=LINE('',#1863,#1862);
--#1865=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1866=VECTOR('',#1865,2.035898384862E0);
--#1867=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
--#1868=LINE('',#1867,#1866);
--#1869=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
--#1870=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1871=DIRECTION('',(1.E0,0.E0,0.E0));
--#1872=AXIS2_PLACEMENT_3D('',#1869,#1870,#1871);
--#1874=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
--#1875=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1876=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1877=AXIS2_PLACEMENT_3D('',#1874,#1875,#1876);
--#1879=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
--#1880=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1881=DIRECTION('',(1.E0,0.E0,0.E0));
--#1882=AXIS2_PLACEMENT_3D('',#1879,#1880,#1881);
--#1884=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
--#1885=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1886=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1887=AXIS2_PLACEMENT_3D('',#1884,#1885,#1886);
--#1889=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1890=VECTOR('',#1889,1.E0);
--#1891=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
--#1892=LINE('',#1891,#1890);
--#1893=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1894=VECTOR('',#1893,1.E0);
--#1895=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
--#1896=LINE('',#1895,#1894);
--#1897=DIRECTION('',(0.E0,1.E0,0.E0));
--#1898=VECTOR('',#1897,2.5E0);
--#1899=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
--#1900=LINE('',#1899,#1898);
--#1901=DIRECTION('',(0.E0,0.E0,1.E0));
--#1902=VECTOR('',#1901,2.E0);
--#1903=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
--#1904=LINE('',#1903,#1902);
--#1905=DIRECTION('',(0.E0,1.E0,0.E0));
--#1906=VECTOR('',#1905,1.5E0);
--#1907=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
--#1908=LINE('',#1907,#1906);
--#1909=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1910=VECTOR('',#1909,7.071067811865E-1);
--#1911=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
--#1912=LINE('',#1911,#1910);
--#1913=DIRECTION('',(0.E0,1.E0,0.E0));
--#1914=VECTOR('',#1913,1.5E0);
--#1915=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
--#1916=LINE('',#1915,#1914);
--#1917=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#1918=VECTOR('',#1917,7.071067811865E-1);
--#1919=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
--#1920=LINE('',#1919,#1918);
--#1921=DIRECTION('',(0.E0,0.E0,1.E0));
--#1922=VECTOR('',#1921,2.E0);
--#1923=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
--#1924=LINE('',#1923,#1922);
--#1925=DIRECTION('',(0.E0,0.E0,1.E0));
--#1926=VECTOR('',#1925,2.E0);
--#1927=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
--#1928=LINE('',#1927,#1926);
--#1929=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
--#1930=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1931=DIRECTION('',(1.E0,0.E0,0.E0));
--#1932=AXIS2_PLACEMENT_3D('',#1929,#1930,#1931);
--#1934=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
--#1935=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1936=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1937=AXIS2_PLACEMENT_3D('',#1934,#1935,#1936);
--#1939=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
--#1940=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1941=DIRECTION('',(1.E0,0.E0,0.E0));
--#1942=AXIS2_PLACEMENT_3D('',#1939,#1940,#1941);
--#1944=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
--#1945=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1946=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1947=AXIS2_PLACEMENT_3D('',#1944,#1945,#1946);
--#1949=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1950=VECTOR('',#1949,3.75E-1);
--#1951=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
--#1952=LINE('',#1951,#1950);
--#1953=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1954=VECTOR('',#1953,3.75E-1);
--#1955=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
--#1956=LINE('',#1955,#1954);
--#1957=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
--#1958=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1959=DIRECTION('',(1.E0,0.E0,0.E0));
--#1960=AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);
--#1962=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
--#1963=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1964=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1965=AXIS2_PLACEMENT_3D('',#1962,#1963,#1964);
--#1967=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1968=VECTOR('',#1967,2.5E-1);
--#1969=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
--#1970=LINE('',#1969,#1968);
--#1971=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1972=VECTOR('',#1971,2.5E-1);
--#1973=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
--#1974=LINE('',#1973,#1972);
--#1975=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
--#1976=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1977=DIRECTION('',(1.E0,0.E0,0.E0));
--#1978=AXIS2_PLACEMENT_3D('',#1975,#1976,#1977);
--#1980=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
--#1981=DIRECTION('',(0.E0,-1.E0,0.E0));
--#1982=DIRECTION('',(-1.E0,0.E0,0.E0));
--#1983=AXIS2_PLACEMENT_3D('',#1980,#1981,#1982);
--#1985=DIRECTION('',(0.E0,0.E0,1.E0));
--#1986=VECTOR('',#1985,5.E-1);
--#1987=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
--#1988=LINE('',#1987,#1986);
--#1989=CARTESIAN_POINT('',(2.15E0,6.65E0,1.E1));
--#1990=DIRECTION('',(0.E0,0.E0,1.E0));
--#1991=DIRECTION('',(1.E0,0.E0,0.E0));
--#1992=AXIS2_PLACEMENT_3D('',#1989,#1990,#1991);
--#1994=DIRECTION('',(0.E0,0.E0,1.E0));
--#1995=VECTOR('',#1994,5.E-1);
--#1996=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
--#1997=LINE('',#1996,#1995);
--#1998=CARTESIAN_POINT('',(2.15E0,6.65E0,9.5E0));
--#1999=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2000=DIRECTION('',(0.E0,1.E0,0.E0));
--#2001=AXIS2_PLACEMENT_3D('',#1998,#1999,#2000);
--#2003=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2004=VECTOR('',#2003,4.3E0);
--#2005=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
--#2006=LINE('',#2005,#2004);
--#2007=DIRECTION('',(1.E0,0.E0,0.E0));
--#2008=VECTOR('',#2007,1.972007605460E-1);
--#2009=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
--#2010=LINE('',#2009,#2008);
--#2011=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
--#2012=VECTOR('',#2011,2.059126028197E0);
--#2013=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
--#2014=LINE('',#2013,#2012);
--#2015=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2016=VECTOR('',#2015,1.197200760546E0);
--#2017=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
--#2018=LINE('',#2017,#2016);
--#2019=DIRECTION('',(0.E0,1.E0,0.E0));
--#2020=VECTOR('',#2019,6.8E0);
--#2021=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
--#2022=LINE('',#2021,#2020);
--#2023=DIRECTION('',(1.E0,0.E0,0.E0));
--#2024=VECTOR('',#2023,1.3E0);
--#2025=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
--#2026=LINE('',#2025,#2024);
--#2027=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2028=VECTOR('',#2027,5.E-1);
--#2029=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
--#2030=LINE('',#2029,#2028);
--#2031=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.E1));
--#2032=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2033=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2034=AXIS2_PLACEMENT_3D('',#2031,#2032,#2033);
--#2036=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2037=VECTOR('',#2036,5.E-1);
--#2038=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
--#2039=LINE('',#2038,#2037);
--#2040=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,9.5E0));
--#2041=DIRECTION('',(0.E0,0.E0,1.E0));
--#2042=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#2043=AXIS2_PLACEMENT_3D('',#2040,#2041,#2042);
--#2045=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2046=VECTOR('',#2045,5.E-1);
--#2047=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
--#2048=LINE('',#2047,#2046);
--#2049=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.E1));
--#2050=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2051=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#2052=AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);
--#2054=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2055=VECTOR('',#2054,5.E-1);
--#2056=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
--#2057=LINE('',#2056,#2055);
--#2058=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,9.5E0));
--#2059=DIRECTION('',(0.E0,0.E0,1.E0));
--#2060=DIRECTION('',(0.E0,1.E0,0.E0));
--#2061=AXIS2_PLACEMENT_3D('',#2058,#2059,#2060);
--#2063=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2064=VECTOR('',#2063,5.E-1);
--#2065=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
--#2066=LINE('',#2065,#2064);
--#2067=CARTESIAN_POINT('',(4.15E0,9.15E0,1.E1));
--#2068=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2069=DIRECTION('',(0.E0,1.E0,0.E0));
--#2070=AXIS2_PLACEMENT_3D('',#2067,#2068,#2069);
--#2072=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2073=VECTOR('',#2072,5.E-1);
--#2074=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
--#2075=LINE('',#2074,#2073);
--#2076=CARTESIAN_POINT('',(4.15E0,9.15E0,9.5E0));
--#2077=DIRECTION('',(0.E0,0.E0,1.E0));
--#2078=DIRECTION('',(1.E0,0.E0,0.E0));
--#2079=AXIS2_PLACEMENT_3D('',#2076,#2077,#2078);
--#2081=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2082=VECTOR('',#2081,5.E-1);
--#2083=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
--#2084=LINE('',#2083,#2082);
--#2085=CARTESIAN_POINT('',(4.15E0,2.35E0,1.E1));
--#2086=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2087=DIRECTION('',(1.E0,0.E0,0.E0));
--#2088=AXIS2_PLACEMENT_3D('',#2085,#2086,#2087);
--#2090=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2091=VECTOR('',#2090,5.E-1);
--#2092=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
--#2093=LINE('',#2092,#2091);
--#2094=CARTESIAN_POINT('',(4.15E0,2.35E0,9.5E0));
--#2095=DIRECTION('',(0.E0,0.E0,1.E0));
--#2096=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2097=AXIS2_PLACEMENT_3D('',#2094,#2095,#2096);
--#2099=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2100=VECTOR('',#2099,5.E-1);
--#2101=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
--#2102=LINE('',#2101,#2100);
--#2103=CARTESIAN_POINT('',(2.85E0,2.35E0,1.E1));
--#2104=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2105=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2106=AXIS2_PLACEMENT_3D('',#2103,#2104,#2105);
--#2108=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2109=VECTOR('',#2108,5.E-1);
--#2110=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
--#2111=LINE('',#2110,#2109);
--#2112=CARTESIAN_POINT('',(2.85E0,2.35E0,9.5E0));
--#2113=DIRECTION('',(0.E0,0.E0,1.E0));
--#2114=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2115=AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);
--#2117=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2118=VECTOR('',#2117,1.5E0);
--#2119=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
--#2120=LINE('',#2119,#2118);
--#2121=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#2122=VECTOR('',#2121,7.071067811865E-1);
--#2123=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
--#2124=LINE('',#2123,#2122);
--#2125=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2126=VECTOR('',#2125,1.5E0);
--#2127=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
--#2128=LINE('',#2127,#2126);
--#2129=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#2130=VECTOR('',#2129,7.071067811865E-1);
--#2131=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
--#2132=LINE('',#2131,#2130);
--#2133=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2134=VECTOR('',#2133,3.75E-1);
--#2135=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
--#2136=LINE('',#2135,#2134);
--#2137=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2138=VECTOR('',#2137,3.75E-1);
--#2139=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
--#2140=LINE('',#2139,#2138);
--#2141=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
--#2142=DIRECTION('',(0.E0,1.E0,0.E0));
--#2143=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2144=AXIS2_PLACEMENT_3D('',#2141,#2142,#2143);
--#2146=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
--#2147=DIRECTION('',(0.E0,1.E0,0.E0));
--#2148=DIRECTION('',(1.E0,0.E0,0.E0));
--#2149=AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);
--#2151=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2152=VECTOR('',#2151,2.5E-1);
--#2153=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
--#2154=LINE('',#2153,#2152);
--#2155=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2156=VECTOR('',#2155,2.5E-1);
--#2157=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
--#2158=LINE('',#2157,#2156);
--#2159=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
--#2160=DIRECTION('',(0.E0,1.E0,0.E0));
--#2161=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2162=AXIS2_PLACEMENT_3D('',#2159,#2160,#2161);
--#2164=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
--#2165=DIRECTION('',(0.E0,1.E0,0.E0));
--#2166=DIRECTION('',(1.E0,0.E0,0.E0));
--#2167=AXIS2_PLACEMENT_3D('',#2164,#2165,#2166);
--#2169=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
--#2170=VECTOR('',#2169,2.5E-1);
--#2171=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
--#2172=LINE('',#2171,#2170);
--#2173=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
--#2174=VECTOR('',#2173,2.5E-1);
--#2175=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
--#2176=LINE('',#2175,#2174);
--#2177=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
--#2178=VECTOR('',#2177,1.154700538379E-1);
--#2179=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
--#2180=LINE('',#2179,#2178);
--#2181=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
--#2182=VECTOR('',#2181,1.154700538379E-1);
--#2183=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
--#2184=LINE('',#2183,#2182);
--#2185=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
--#2186=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2187=DIRECTION('',(1.E0,0.E0,0.E0));
--#2188=AXIS2_PLACEMENT_3D('',#2185,#2186,#2187);
--#2190=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
--#2191=DIRECTION('',(0.E0,1.E0,0.E0));
--#2192=DIRECTION('',(1.E0,0.E0,0.E0));
--#2193=AXIS2_PLACEMENT_3D('',#2190,#2191,#2192);
--#2195=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
--#2196=VECTOR('',#2195,2.5E-1);
--#2197=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
--#2198=LINE('',#2197,#2196);
--#2199=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
--#2200=VECTOR('',#2199,2.5E-1);
--#2201=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
--#2202=LINE('',#2201,#2200);
--#2203=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
--#2204=VECTOR('',#2203,1.154700538379E-1);
--#2205=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
--#2206=LINE('',#2205,#2204);
--#2207=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
--#2208=VECTOR('',#2207,1.154700538379E-1);
--#2209=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
--#2210=LINE('',#2209,#2208);
--#2211=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
--#2212=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2213=DIRECTION('',(1.E0,0.E0,0.E0));
--#2214=AXIS2_PLACEMENT_3D('',#2211,#2212,#2213);
--#2216=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
--#2217=DIRECTION('',(0.E0,1.E0,0.E0));
--#2218=DIRECTION('',(1.E0,0.E0,0.E0));
--#2219=AXIS2_PLACEMENT_3D('',#2216,#2217,#2218);
--#2221=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2222=VECTOR('',#2221,5.E-1);
--#2223=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
--#2224=LINE('',#2223,#2222);
--#2225=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2226=VECTOR('',#2225,5.E-1);
--#2227=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
--#2228=LINE('',#2227,#2226);
--#2229=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
--#2230=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2231=DIRECTION('',(1.E0,0.E0,0.E0));
--#2232=AXIS2_PLACEMENT_3D('',#2229,#2230,#2231);
--#2234=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
--#2235=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2236=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2237=AXIS2_PLACEMENT_3D('',#2234,#2235,#2236);
--#2239=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
--#2240=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2241=DIRECTION('',(1.E0,0.E0,0.E0));
--#2242=AXIS2_PLACEMENT_3D('',#2239,#2240,#2241);
--#2244=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
--#2245=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2246=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2247=AXIS2_PLACEMENT_3D('',#2244,#2245,#2246);
--#2249=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2250=VECTOR('',#2249,1.E0);
--#2251=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
--#2252=LINE('',#2251,#2250);
--#2253=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2254=VECTOR('',#2253,1.E0);
--#2255=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
--#2256=LINE('',#2255,#2254);
--#2257=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2258=VECTOR('',#2257,5.E-1);
--#2259=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
--#2260=LINE('',#2259,#2258);
--#2261=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2262=VECTOR('',#2261,5.E-1);
--#2263=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
--#2264=LINE('',#2263,#2262);
--#2265=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
--#2266=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2267=DIRECTION('',(1.E0,0.E0,0.E0));
--#2268=AXIS2_PLACEMENT_3D('',#2265,#2266,#2267);
--#2270=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
--#2271=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2272=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2273=AXIS2_PLACEMENT_3D('',#2270,#2271,#2272);
--#2275=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
--#2276=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2277=DIRECTION('',(1.E0,0.E0,0.E0));
--#2278=AXIS2_PLACEMENT_3D('',#2275,#2276,#2277);
--#2280=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
--#2281=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2282=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2283=AXIS2_PLACEMENT_3D('',#2280,#2281,#2282);
--#2285=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2286=VECTOR('',#2285,1.E0);
--#2287=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
--#2288=LINE('',#2287,#2286);
--#2289=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2290=VECTOR('',#2289,1.E0);
--#2291=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
--#2292=LINE('',#2291,#2290);
--#2293=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2294=VECTOR('',#2293,5.E-1);
--#2295=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
--#2296=LINE('',#2295,#2294);
--#2297=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2298=VECTOR('',#2297,5.E-1);
--#2299=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
--#2300=LINE('',#2299,#2298);
--#2301=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
--#2302=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2303=DIRECTION('',(1.E0,0.E0,0.E0));
--#2304=AXIS2_PLACEMENT_3D('',#2301,#2302,#2303);
--#2306=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
--#2307=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2308=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308);
--#2311=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
--#2312=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2313=DIRECTION('',(1.E0,0.E0,0.E0));
--#2314=AXIS2_PLACEMENT_3D('',#2311,#2312,#2313);
--#2316=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
--#2317=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2318=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2319=AXIS2_PLACEMENT_3D('',#2316,#2317,#2318);
--#2321=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2322=VECTOR('',#2321,1.E0);
--#2323=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
--#2324=LINE('',#2323,#2322);
--#2325=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2326=VECTOR('',#2325,1.E0);
--#2327=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
--#2328=LINE('',#2327,#2326);
--#2329=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2330=VECTOR('',#2329,5.E-1);
--#2331=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
--#2332=LINE('',#2331,#2330);
--#2333=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2334=VECTOR('',#2333,5.E-1);
--#2335=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
--#2336=LINE('',#2335,#2334);
--#2337=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
--#2338=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2339=DIRECTION('',(1.E0,0.E0,0.E0));
--#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339);
--#2342=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
--#2343=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2344=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2345=AXIS2_PLACEMENT_3D('',#2342,#2343,#2344);
--#2347=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
--#2348=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2349=DIRECTION('',(1.E0,0.E0,0.E0));
--#2350=AXIS2_PLACEMENT_3D('',#2347,#2348,#2349);
--#2352=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
--#2353=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2354=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2355=AXIS2_PLACEMENT_3D('',#2352,#2353,#2354);
--#2357=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2358=VECTOR('',#2357,1.E0);
--#2359=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
--#2360=LINE('',#2359,#2358);
--#2361=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2362=VECTOR('',#2361,1.E0);
--#2363=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
--#2364=LINE('',#2363,#2362);
--#2365=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2366=VECTOR('',#2365,5.E-1);
--#2367=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
--#2368=LINE('',#2367,#2366);
--#2369=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2370=VECTOR('',#2369,5.E-1);
--#2371=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
--#2372=LINE('',#2371,#2370);
--#2373=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
--#2374=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2375=DIRECTION('',(1.E0,0.E0,0.E0));
--#2376=AXIS2_PLACEMENT_3D('',#2373,#2374,#2375);
--#2378=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
--#2379=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2380=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2381=AXIS2_PLACEMENT_3D('',#2378,#2379,#2380);
--#2383=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
--#2384=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2385=DIRECTION('',(1.E0,0.E0,0.E0));
--#2386=AXIS2_PLACEMENT_3D('',#2383,#2384,#2385);
--#2388=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
--#2389=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2390=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2391=AXIS2_PLACEMENT_3D('',#2388,#2389,#2390);
--#2393=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2394=VECTOR('',#2393,1.E0);
--#2395=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
--#2396=LINE('',#2395,#2394);
--#2397=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2398=VECTOR('',#2397,1.E0);
--#2399=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
--#2400=LINE('',#2399,#2398);
--#2401=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2402=VECTOR('',#2401,5.E-1);
--#2403=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
--#2404=LINE('',#2403,#2402);
--#2405=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2406=VECTOR('',#2405,5.E-1);
--#2407=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
--#2408=LINE('',#2407,#2406);
--#2409=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
--#2410=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2411=DIRECTION('',(1.E0,0.E0,0.E0));
--#2412=AXIS2_PLACEMENT_3D('',#2409,#2410,#2411);
--#2414=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
--#2415=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2416=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2417=AXIS2_PLACEMENT_3D('',#2414,#2415,#2416);
--#2419=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
--#2420=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2421=DIRECTION('',(1.E0,0.E0,0.E0));
--#2422=AXIS2_PLACEMENT_3D('',#2419,#2420,#2421);
--#2424=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
--#2425=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2426=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2427=AXIS2_PLACEMENT_3D('',#2424,#2425,#2426);
--#2429=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2430=VECTOR('',#2429,1.E0);
--#2431=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
--#2432=LINE('',#2431,#2430);
--#2433=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2434=VECTOR('',#2433,1.E0);
--#2435=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
--#2436=LINE('',#2435,#2434);
--#2437=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2438=VECTOR('',#2437,5.E-1);
--#2439=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
--#2440=LINE('',#2439,#2438);
--#2441=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2442=VECTOR('',#2441,5.E-1);
--#2443=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
--#2444=LINE('',#2443,#2442);
--#2445=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
--#2446=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2447=DIRECTION('',(1.E0,0.E0,0.E0));
--#2448=AXIS2_PLACEMENT_3D('',#2445,#2446,#2447);
--#2450=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
--#2451=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2452=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2453=AXIS2_PLACEMENT_3D('',#2450,#2451,#2452);
--#2455=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
--#2456=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2457=DIRECTION('',(1.E0,0.E0,0.E0));
--#2458=AXIS2_PLACEMENT_3D('',#2455,#2456,#2457);
--#2460=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
--#2461=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2462=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2463=AXIS2_PLACEMENT_3D('',#2460,#2461,#2462);
--#2465=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2466=VECTOR('',#2465,1.E0);
--#2467=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
--#2468=LINE('',#2467,#2466);
--#2469=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2470=VECTOR('',#2469,1.E0);
--#2471=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
--#2472=LINE('',#2471,#2470);
--#2473=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2474=VECTOR('',#2473,5.E-1);
--#2475=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
--#2476=LINE('',#2475,#2474);
--#2477=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2478=VECTOR('',#2477,5.E-1);
--#2479=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
--#2480=LINE('',#2479,#2478);
--#2481=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
--#2482=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2483=DIRECTION('',(1.E0,0.E0,0.E0));
--#2484=AXIS2_PLACEMENT_3D('',#2481,#2482,#2483);
--#2486=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
--#2487=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2488=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2489=AXIS2_PLACEMENT_3D('',#2486,#2487,#2488);
--#2491=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
--#2492=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2493=DIRECTION('',(1.E0,0.E0,0.E0));
--#2494=AXIS2_PLACEMENT_3D('',#2491,#2492,#2493);
--#2496=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
--#2497=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2498=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2499=AXIS2_PLACEMENT_3D('',#2496,#2497,#2498);
--#2501=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2502=VECTOR('',#2501,1.E0);
--#2503=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
--#2504=LINE('',#2503,#2502);
--#2505=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2506=VECTOR('',#2505,1.E0);
--#2507=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
--#2508=LINE('',#2507,#2506);
--#2509=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2510=VECTOR('',#2509,5.E-1);
--#2511=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
--#2512=LINE('',#2511,#2510);
--#2513=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2514=VECTOR('',#2513,5.E-1);
--#2515=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
--#2516=LINE('',#2515,#2514);
--#2517=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
--#2518=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2519=DIRECTION('',(1.E0,0.E0,0.E0));
--#2520=AXIS2_PLACEMENT_3D('',#2517,#2518,#2519);
--#2522=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
--#2523=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2524=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2525=AXIS2_PLACEMENT_3D('',#2522,#2523,#2524);
--#2527=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
--#2528=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2529=DIRECTION('',(1.E0,0.E0,0.E0));
--#2530=AXIS2_PLACEMENT_3D('',#2527,#2528,#2529);
--#2532=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
--#2533=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2534=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2535=AXIS2_PLACEMENT_3D('',#2532,#2533,#2534);
--#2537=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2538=VECTOR('',#2537,1.E0);
--#2539=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
--#2540=LINE('',#2539,#2538);
--#2541=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2542=VECTOR('',#2541,1.E0);
--#2543=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
--#2544=LINE('',#2543,#2542);
--#2545=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2546=VECTOR('',#2545,5.E-1);
--#2547=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
--#2548=LINE('',#2547,#2546);
--#2549=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2550=VECTOR('',#2549,5.E-1);
--#2551=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
--#2552=LINE('',#2551,#2550);
--#2553=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
--#2554=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2555=DIRECTION('',(1.E0,0.E0,0.E0));
--#2556=AXIS2_PLACEMENT_3D('',#2553,#2554,#2555);
--#2558=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
--#2559=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2560=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2561=AXIS2_PLACEMENT_3D('',#2558,#2559,#2560);
--#2563=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
--#2564=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2565=DIRECTION('',(1.E0,0.E0,0.E0));
--#2566=AXIS2_PLACEMENT_3D('',#2563,#2564,#2565);
--#2568=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
--#2569=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2570=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2571=AXIS2_PLACEMENT_3D('',#2568,#2569,#2570);
--#2573=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2574=VECTOR('',#2573,1.E0);
--#2575=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
--#2576=LINE('',#2575,#2574);
--#2577=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2578=VECTOR('',#2577,1.E0);
--#2579=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
--#2580=LINE('',#2579,#2578);
--#2581=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2582=VECTOR('',#2581,5.E-1);
--#2583=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
--#2584=LINE('',#2583,#2582);
--#2585=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2586=VECTOR('',#2585,5.E-1);
--#2587=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
--#2588=LINE('',#2587,#2586);
--#2589=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
--#2590=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2591=DIRECTION('',(1.E0,0.E0,0.E0));
--#2592=AXIS2_PLACEMENT_3D('',#2589,#2590,#2591);
--#2594=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
--#2595=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2596=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2597=AXIS2_PLACEMENT_3D('',#2594,#2595,#2596);
--#2599=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
--#2600=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2601=DIRECTION('',(1.E0,0.E0,0.E0));
--#2602=AXIS2_PLACEMENT_3D('',#2599,#2600,#2601);
--#2604=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
--#2605=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2606=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2607=AXIS2_PLACEMENT_3D('',#2604,#2605,#2606);
--#2609=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2610=VECTOR('',#2609,1.E0);
--#2611=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
--#2612=LINE('',#2611,#2610);
--#2613=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2614=VECTOR('',#2613,1.E0);
--#2615=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
--#2616=LINE('',#2615,#2614);
--#2617=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2618=VECTOR('',#2617,5.E-1);
--#2619=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
--#2620=LINE('',#2619,#2618);
--#2621=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2622=VECTOR('',#2621,5.E-1);
--#2623=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
--#2624=LINE('',#2623,#2622);
--#2625=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
--#2626=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2627=DIRECTION('',(1.E0,0.E0,0.E0));
--#2628=AXIS2_PLACEMENT_3D('',#2625,#2626,#2627);
--#2630=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
--#2631=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2632=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2633=AXIS2_PLACEMENT_3D('',#2630,#2631,#2632);
--#2635=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
--#2636=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2637=DIRECTION('',(1.E0,0.E0,0.E0));
--#2638=AXIS2_PLACEMENT_3D('',#2635,#2636,#2637);
--#2640=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
--#2641=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2642=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2643=AXIS2_PLACEMENT_3D('',#2640,#2641,#2642);
--#2645=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2646=VECTOR('',#2645,1.E0);
--#2647=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
--#2648=LINE('',#2647,#2646);
--#2649=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2650=VECTOR('',#2649,1.E0);
--#2651=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
--#2652=LINE('',#2651,#2650);
--#2653=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2654=VECTOR('',#2653,5.E-1);
--#2655=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
--#2656=LINE('',#2655,#2654);
--#2657=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2658=VECTOR('',#2657,5.E-1);
--#2659=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
--#2660=LINE('',#2659,#2658);
--#2661=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
--#2662=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2663=DIRECTION('',(1.E0,0.E0,0.E0));
--#2664=AXIS2_PLACEMENT_3D('',#2661,#2662,#2663);
--#2666=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
--#2667=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2668=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2669=AXIS2_PLACEMENT_3D('',#2666,#2667,#2668);
--#2671=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
--#2672=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2673=DIRECTION('',(1.E0,0.E0,0.E0));
--#2674=AXIS2_PLACEMENT_3D('',#2671,#2672,#2673);
--#2676=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
--#2677=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2678=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2679=AXIS2_PLACEMENT_3D('',#2676,#2677,#2678);
--#2681=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2682=VECTOR('',#2681,1.E0);
--#2683=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
--#2684=LINE('',#2683,#2682);
--#2685=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2686=VECTOR('',#2685,1.E0);
--#2687=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
--#2688=LINE('',#2687,#2686);
--#2689=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2690=VECTOR('',#2689,5.E-1);
--#2691=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
--#2692=LINE('',#2691,#2690);
--#2693=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2694=VECTOR('',#2693,5.E-1);
--#2695=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
--#2696=LINE('',#2695,#2694);
--#2697=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
--#2698=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2699=DIRECTION('',(1.E0,0.E0,0.E0));
--#2700=AXIS2_PLACEMENT_3D('',#2697,#2698,#2699);
--#2702=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
--#2703=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2704=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2705=AXIS2_PLACEMENT_3D('',#2702,#2703,#2704);
--#2707=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
--#2708=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2709=DIRECTION('',(1.E0,0.E0,0.E0));
--#2710=AXIS2_PLACEMENT_3D('',#2707,#2708,#2709);
--#2712=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
--#2713=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2714=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2715=AXIS2_PLACEMENT_3D('',#2712,#2713,#2714);
--#2717=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2718=VECTOR('',#2717,1.E0);
--#2719=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
--#2720=LINE('',#2719,#2718);
--#2721=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2722=VECTOR('',#2721,1.E0);
--#2723=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
--#2724=LINE('',#2723,#2722);
--#2725=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2726=VECTOR('',#2725,5.E-1);
--#2727=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
--#2728=LINE('',#2727,#2726);
--#2729=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2730=VECTOR('',#2729,5.E-1);
--#2731=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
--#2732=LINE('',#2731,#2730);
--#2733=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
--#2734=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2735=DIRECTION('',(1.E0,0.E0,0.E0));
--#2736=AXIS2_PLACEMENT_3D('',#2733,#2734,#2735);
--#2738=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
--#2739=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2740=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2741=AXIS2_PLACEMENT_3D('',#2738,#2739,#2740);
--#2743=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
--#2744=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2745=DIRECTION('',(1.E0,0.E0,0.E0));
--#2746=AXIS2_PLACEMENT_3D('',#2743,#2744,#2745);
--#2748=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
--#2749=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2750=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2751=AXIS2_PLACEMENT_3D('',#2748,#2749,#2750);
--#2753=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2754=VECTOR('',#2753,1.E0);
--#2755=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
--#2756=LINE('',#2755,#2754);
--#2757=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2758=VECTOR('',#2757,1.E0);
--#2759=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
--#2760=LINE('',#2759,#2758);
--#2761=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2762=VECTOR('',#2761,5.E-1);
--#2763=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
--#2764=LINE('',#2763,#2762);
--#2765=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2766=VECTOR('',#2765,5.E-1);
--#2767=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
--#2768=LINE('',#2767,#2766);
--#2769=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
--#2770=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2771=DIRECTION('',(1.E0,0.E0,0.E0));
--#2772=AXIS2_PLACEMENT_3D('',#2769,#2770,#2771);
--#2774=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
--#2775=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2776=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2777=AXIS2_PLACEMENT_3D('',#2774,#2775,#2776);
--#2779=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
--#2780=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2781=DIRECTION('',(1.E0,0.E0,0.E0));
--#2782=AXIS2_PLACEMENT_3D('',#2779,#2780,#2781);
--#2784=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
--#2785=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2786=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2787=AXIS2_PLACEMENT_3D('',#2784,#2785,#2786);
--#2789=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2790=VECTOR('',#2789,1.E0);
--#2791=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
--#2792=LINE('',#2791,#2790);
--#2793=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2794=VECTOR('',#2793,1.E0);
--#2795=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
--#2796=LINE('',#2795,#2794);
--#2797=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2798=VECTOR('',#2797,5.E-1);
--#2799=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
--#2800=LINE('',#2799,#2798);
--#2801=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2802=VECTOR('',#2801,5.E-1);
--#2803=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
--#2804=LINE('',#2803,#2802);
--#2805=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
--#2806=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2807=DIRECTION('',(1.E0,0.E0,0.E0));
--#2808=AXIS2_PLACEMENT_3D('',#2805,#2806,#2807);
--#2810=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
--#2811=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2812=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2813=AXIS2_PLACEMENT_3D('',#2810,#2811,#2812);
--#2815=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
--#2816=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2817=DIRECTION('',(1.E0,0.E0,0.E0));
--#2818=AXIS2_PLACEMENT_3D('',#2815,#2816,#2817);
--#2820=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
--#2821=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2822=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2823=AXIS2_PLACEMENT_3D('',#2820,#2821,#2822);
--#2825=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2826=VECTOR('',#2825,1.E0);
--#2827=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
--#2828=LINE('',#2827,#2826);
--#2829=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2830=VECTOR('',#2829,1.E0);
--#2831=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
--#2832=LINE('',#2831,#2830);
--#2833=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2834=VECTOR('',#2833,5.E-1);
--#2835=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
--#2836=LINE('',#2835,#2834);
--#2837=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2838=VECTOR('',#2837,5.E-1);
--#2839=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
--#2840=LINE('',#2839,#2838);
--#2841=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
--#2842=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2843=DIRECTION('',(1.E0,0.E0,0.E0));
--#2844=AXIS2_PLACEMENT_3D('',#2841,#2842,#2843);
--#2846=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
--#2847=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2848=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2849=AXIS2_PLACEMENT_3D('',#2846,#2847,#2848);
--#2851=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
--#2852=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2853=DIRECTION('',(1.E0,0.E0,0.E0));
--#2854=AXIS2_PLACEMENT_3D('',#2851,#2852,#2853);
--#2856=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
--#2857=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2858=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2859=AXIS2_PLACEMENT_3D('',#2856,#2857,#2858);
--#2861=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2862=VECTOR('',#2861,1.E0);
--#2863=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
--#2864=LINE('',#2863,#2862);
--#2865=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2866=VECTOR('',#2865,1.E0);
--#2867=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
--#2868=LINE('',#2867,#2866);
--#2869=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
--#2870=VECTOR('',#2869,5.773502691896E0);
--#2871=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
--#2872=LINE('',#2871,#2870);
--#2873=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
--#2874=CARTESIAN_POINT('',(2.31325E1,2.930774450068E0,1.206069333205E1));
--#2875=CARTESIAN_POINT('',(2.309416136180E1,2.745461691651E0,1.216768370301E1));
--#2876=CARTESIAN_POINT('',(2.297013771881E1,2.608885438662E0,1.224653603944E1));
--#2877=CARTESIAN_POINT('',(2.2875E1,2.580400233539E0,1.226298198028E1));
--#2878=CARTESIAN_POINT('',(2.277986228119E1,2.608885438662E0,1.224653603944E1));
--#2879=CARTESIAN_POINT('',(2.265583863820E1,2.745461691651E0,1.216768370301E1));
--#2880=CARTESIAN_POINT('',(2.26175E1,2.930774450068E0,1.206069333205E1));
--#2881=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
--#2883=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
--#2884=CARTESIAN_POINT('',(2.26175E1,3.141022319657E0,1.193930666795E1));
--#2885=CARTESIAN_POINT('',(2.265583863820E1,3.326335078073E0,1.183231629699E1));
--#2886=CARTESIAN_POINT('',(2.277986228119E1,3.462911331062E0,1.175346396056E1));
--#2887=CARTESIAN_POINT('',(2.2875E1,3.491396536186E0,1.173701801972E1));
--#2888=CARTESIAN_POINT('',(2.297013771881E1,3.462911331062E0,1.175346396056E1));
--#2889=CARTESIAN_POINT('',(2.309416136180E1,3.326335078073E0,1.183231629699E1));
--#2890=CARTESIAN_POINT('',(2.31325E1,3.141022319657E0,1.193930666795E1));
--#2891=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
--#2893=DIRECTION('',(0.E0,1.E0,0.E0));
--#2894=VECTOR('',#2893,2.035898384862E0);
--#2895=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
--#2896=LINE('',#2895,#2894);
--#2897=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2898=VECTOR('',#2897,2.035898384862E0);
--#2899=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
--#2900=LINE('',#2899,#2898);
--#2901=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
--#2902=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2903=DIRECTION('',(1.E0,0.E0,0.E0));
--#2904=AXIS2_PLACEMENT_3D('',#2901,#2902,#2903);
--#2906=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
--#2907=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2908=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2909=AXIS2_PLACEMENT_3D('',#2906,#2907,#2908);
--#2911=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
--#2912=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2913=DIRECTION('',(1.E0,0.E0,0.E0));
--#2914=AXIS2_PLACEMENT_3D('',#2911,#2912,#2913);
--#2916=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
--#2917=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2918=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2919=AXIS2_PLACEMENT_3D('',#2916,#2917,#2918);
--#2921=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2922=VECTOR('',#2921,1.E0);
--#2923=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
--#2924=LINE('',#2923,#2922);
--#2925=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2926=VECTOR('',#2925,1.E0);
--#2927=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
--#2928=LINE('',#2927,#2926);
--#2929=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2930=VECTOR('',#2929,5.E-1);
--#2931=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
--#2932=LINE('',#2931,#2930);
--#2933=CARTESIAN_POINT('',(2.185E1,6.65E0,9.5E0));
--#2934=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2935=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2936=AXIS2_PLACEMENT_3D('',#2933,#2934,#2935);
--#2938=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2939=VECTOR('',#2938,5.E-1);
--#2940=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
--#2941=LINE('',#2940,#2939);
--#2942=CARTESIAN_POINT('',(2.185E1,6.65E0,1.E1));
--#2943=DIRECTION('',(0.E0,0.E0,1.E0));
--#2944=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
--#2945=AXIS2_PLACEMENT_3D('',#2942,#2943,#2944);
--#2947=DIRECTION('',(0.E0,0.E0,1.E0));
--#2948=VECTOR('',#2947,5.E-1);
--#2949=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
--#2950=LINE('',#2949,#2948);
--#2951=CARTESIAN_POINT('',(2.115E1,2.35E0,9.5E0));
--#2952=DIRECTION('',(0.E0,0.E0,1.E0));
--#2953=DIRECTION('',(0.E0,-1.E0,0.E0));
--#2954=AXIS2_PLACEMENT_3D('',#2951,#2952,#2953);
--#2956=DIRECTION('',(0.E0,0.E0,1.E0));
--#2957=VECTOR('',#2956,5.E-1);
--#2958=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
--#2959=LINE('',#2958,#2957);
--#2960=CARTESIAN_POINT('',(2.115E1,2.35E0,1.E1));
--#2961=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2962=DIRECTION('',(1.E0,0.E0,0.E0));
--#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962);
--#2965=DIRECTION('',(0.E0,0.E0,1.E0));
--#2966=VECTOR('',#2965,5.E-1);
--#2967=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
--#2968=LINE('',#2967,#2966);
--#2969=CARTESIAN_POINT('',(1.985E1,2.35E0,9.5E0));
--#2970=DIRECTION('',(0.E0,0.E0,1.E0));
--#2971=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2972=AXIS2_PLACEMENT_3D('',#2969,#2970,#2971);
--#2974=DIRECTION('',(0.E0,0.E0,1.E0));
--#2975=VECTOR('',#2974,5.E-1);
--#2976=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
--#2977=LINE('',#2976,#2975);
--#2978=CARTESIAN_POINT('',(1.985E1,2.35E0,1.E1));
--#2979=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2980=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
--#2981=AXIS2_PLACEMENT_3D('',#2978,#2979,#2980);
--#2983=DIRECTION('',(0.E0,0.E0,1.E0));
--#2984=VECTOR('',#2983,5.E-1);
--#2985=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
--#2986=LINE('',#2985,#2984);
--#2987=CARTESIAN_POINT('',(1.985E1,9.15E0,9.5E0));
--#2988=DIRECTION('',(0.E0,0.E0,1.E0));
--#2989=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
--#2990=AXIS2_PLACEMENT_3D('',#2987,#2988,#2989);
--#2992=DIRECTION('',(0.E0,0.E0,1.E0));
--#2993=VECTOR('',#2992,5.E-1);
--#2994=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
--#2995=LINE('',#2994,#2993);
--#2996=CARTESIAN_POINT('',(1.985E1,9.15E0,1.E1));
--#2997=DIRECTION('',(0.E0,0.E0,-1.E0));
--#2998=DIRECTION('',(-1.E0,0.E0,0.E0));
--#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998);
--#3001=DIRECTION('',(0.E0,0.E0,1.E0));
--#3002=VECTOR('',#3001,5.E-1);
--#3003=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
--#3004=LINE('',#3003,#3002);
--#3005=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.5E0));
--#3006=DIRECTION('',(0.E0,0.E0,1.E0));
--#3007=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
--#3008=AXIS2_PLACEMENT_3D('',#3005,#3006,#3007);
--#3010=DIRECTION('',(0.E0,0.E0,1.E0));
--#3011=VECTOR('',#3010,5.E-1);
--#3012=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
--#3013=LINE('',#3012,#3011);
--#3014=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,1.E1));
--#3015=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3016=DIRECTION('',(0.E0,1.E0,0.E0));
--#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016);
--#3019=DIRECTION('',(0.E0,0.E0,1.E0));
--#3020=VECTOR('',#3019,5.E-1);
--#3021=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
--#3022=LINE('',#3021,#3020);
--#3023=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.5E0));
--#3024=DIRECTION('',(0.E0,0.E0,1.E0));
--#3025=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3026=AXIS2_PLACEMENT_3D('',#3023,#3024,#3025);
--#3028=DIRECTION('',(0.E0,0.E0,1.E0));
--#3029=VECTOR('',#3028,5.E-1);
--#3030=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
--#3031=LINE('',#3030,#3029);
--#3032=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,1.E1));
--#3033=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3034=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
--#3035=AXIS2_PLACEMENT_3D('',#3032,#3033,#3034);
--#3037=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3038=VECTOR('',#3037,1.972007605460E-1);
--#3039=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
--#3040=LINE('',#3039,#3038);
--#3041=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3042=VECTOR('',#3041,4.3E0);
--#3043=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
--#3044=LINE('',#3043,#3042);
--#3045=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3046=VECTOR('',#3045,1.3E0);
--#3047=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
--#3048=LINE('',#3047,#3046);
--#3049=DIRECTION('',(0.E0,1.E0,0.E0));
--#3050=VECTOR('',#3049,6.8E0);
--#3051=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
--#3052=LINE('',#3051,#3050);
--#3053=DIRECTION('',(1.E0,0.E0,0.E0));
--#3054=VECTOR('',#3053,1.197200760546E0);
--#3055=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
--#3056=LINE('',#3055,#3054);
--#3057=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
--#3058=VECTOR('',#3057,2.059126028197E0);
--#3059=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
--#3060=LINE('',#3059,#3058);
--#3061=DIRECTION('',(0.E0,0.E0,1.E0));
--#3062=VECTOR('',#3061,2.5E-1);
--#3063=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
--#3064=LINE('',#3063,#3062);
--#3065=DIRECTION('',(0.E0,0.E0,1.E0));
--#3066=VECTOR('',#3065,2.5E-1);
--#3067=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
--#3068=LINE('',#3067,#3066);
--#3069=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
--#3070=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3071=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3072=AXIS2_PLACEMENT_3D('',#3069,#3070,#3071);
--#3074=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
--#3075=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3076=DIRECTION('',(1.E0,0.E0,0.E0));
--#3077=AXIS2_PLACEMENT_3D('',#3074,#3075,#3076);
--#3079=DIRECTION('',(0.E0,0.E0,1.E0));
--#3080=VECTOR('',#3079,2.5E-1);
--#3081=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
--#3082=LINE('',#3081,#3080);
--#3083=DIRECTION('',(0.E0,0.E0,1.E0));
--#3084=VECTOR('',#3083,2.5E-1);
--#3085=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
--#3086=LINE('',#3085,#3084);
--#3087=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
--#3088=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3089=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3090=AXIS2_PLACEMENT_3D('',#3087,#3088,#3089);
--#3092=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
--#3093=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3094=DIRECTION('',(1.E0,0.E0,0.E0));
--#3095=AXIS2_PLACEMENT_3D('',#3092,#3093,#3094);
--#3097=DIRECTION('',(0.E0,0.E0,1.E0));
--#3098=VECTOR('',#3097,2.5E-1);
--#3099=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
--#3100=LINE('',#3099,#3098);
--#3101=DIRECTION('',(0.E0,0.E0,1.E0));
--#3102=VECTOR('',#3101,2.5E-1);
--#3103=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
--#3104=LINE('',#3103,#3102);
--#3105=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
--#3106=DIRECTION('',(0.E0,0.E0,1.E0));
--#3107=DIRECTION('',(1.E0,0.E0,0.E0));
--#3108=AXIS2_PLACEMENT_3D('',#3105,#3106,#3107);
--#3110=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
--#3111=DIRECTION('',(0.E0,0.E0,1.E0));
--#3112=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3113=AXIS2_PLACEMENT_3D('',#3110,#3111,#3112);
--#3115=DIRECTION('',(0.E0,0.E0,1.E0));
--#3116=VECTOR('',#3115,2.5E-1);
--#3117=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
--#3118=LINE('',#3117,#3116);
--#3119=DIRECTION('',(0.E0,0.E0,1.E0));
--#3120=VECTOR('',#3119,2.5E-1);
--#3121=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
--#3122=LINE('',#3121,#3120);
--#3123=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
--#3124=DIRECTION('',(0.E0,0.E0,1.E0));
--#3125=DIRECTION('',(1.E0,0.E0,0.E0));
--#3126=AXIS2_PLACEMENT_3D('',#3123,#3124,#3125);
--#3128=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
--#3129=DIRECTION('',(0.E0,0.E0,1.E0));
--#3130=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3131=AXIS2_PLACEMENT_3D('',#3128,#3129,#3130);
--#3133=DIRECTION('',(0.E0,0.E0,1.E0));
--#3134=VECTOR('',#3133,2.5E-1);
--#3135=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
--#3136=LINE('',#3135,#3134);
--#3137=DIRECTION('',(0.E0,0.E0,1.E0));
--#3138=VECTOR('',#3137,2.5E-1);
--#3139=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
--#3140=LINE('',#3139,#3138);
--#3141=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
--#3142=DIRECTION('',(0.E0,0.E0,1.E0));
--#3143=DIRECTION('',(1.E0,0.E0,0.E0));
--#3144=AXIS2_PLACEMENT_3D('',#3141,#3142,#3143);
--#3146=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
--#3147=DIRECTION('',(0.E0,0.E0,1.E0));
--#3148=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3149=AXIS2_PLACEMENT_3D('',#3146,#3147,#3148);
--#3151=DIRECTION('',(0.E0,0.E0,1.E0));
--#3152=VECTOR('',#3151,5.E-1);
--#3153=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
--#3154=LINE('',#3153,#3152);
--#3155=CARTESIAN_POINT('',(3.75E0,2.75E0,8.E0));
--#3156=DIRECTION('',(0.E0,0.E0,1.E0));
--#3157=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3158=AXIS2_PLACEMENT_3D('',#3155,#3156,#3157);
--#3160=DIRECTION('',(0.E0,0.E0,1.E0));
--#3161=VECTOR('',#3160,5.E-1);
--#3162=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
--#3163=LINE('',#3162,#3161);
--#3164=CARTESIAN_POINT('',(3.75E0,2.75E0,8.5E0));
--#3165=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3166=DIRECTION('',(1.E0,0.E0,0.E0));
--#3167=AXIS2_PLACEMENT_3D('',#3164,#3165,#3166);
--#3169=DIRECTION('',(0.E0,0.E0,1.E0));
--#3170=VECTOR('',#3169,5.E-1);
--#3171=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
--#3172=LINE('',#3171,#3170);
--#3173=CARTESIAN_POINT('',(3.75E0,8.75E0,8.E0));
--#3174=DIRECTION('',(0.E0,0.E0,1.E0));
--#3175=DIRECTION('',(1.E0,0.E0,0.E0));
--#3176=AXIS2_PLACEMENT_3D('',#3173,#3174,#3175);
--#3178=DIRECTION('',(0.E0,0.E0,1.E0));
--#3179=VECTOR('',#3178,5.E-1);
--#3180=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
--#3181=LINE('',#3180,#3179);
--#3182=CARTESIAN_POINT('',(3.75E0,8.75E0,8.5E0));
--#3183=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3184=DIRECTION('',(0.E0,1.E0,0.E0));
--#3185=AXIS2_PLACEMENT_3D('',#3182,#3183,#3184);
--#3187=DIRECTION('',(0.E0,0.E0,1.E0));
--#3188=VECTOR('',#3187,5.E-1);
--#3189=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
--#3190=LINE('',#3189,#3188);
--#3191=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.E0));
--#3192=DIRECTION('',(0.E0,0.E0,1.E0));
--#3193=DIRECTION('',(0.E0,1.E0,0.E0));
--#3194=AXIS2_PLACEMENT_3D('',#3191,#3192,#3193);
--#3196=DIRECTION('',(0.E0,0.E0,1.E0));
--#3197=VECTOR('',#3196,5.E-1);
--#3198=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
--#3199=LINE('',#3198,#3197);
--#3200=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.5E0));
--#3201=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3202=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#3203=AXIS2_PLACEMENT_3D('',#3200,#3201,#3202);
--#3205=DIRECTION('',(0.E0,0.E0,1.E0));
--#3206=VECTOR('',#3205,5.E-1);
--#3207=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
--#3208=LINE('',#3207,#3206);
--#3209=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.E0));
--#3210=DIRECTION('',(0.E0,0.E0,1.E0));
--#3211=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#3212=AXIS2_PLACEMENT_3D('',#3209,#3210,#3211);
--#3214=DIRECTION('',(0.E0,0.E0,1.E0));
--#3215=VECTOR('',#3214,5.E-1);
--#3216=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
--#3217=LINE('',#3216,#3215);
--#3218=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.5E0));
--#3219=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3220=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3221=AXIS2_PLACEMENT_3D('',#3218,#3219,#3220);
--#3223=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3224=VECTOR('',#3223,6.E0);
--#3225=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
--#3226=LINE('',#3225,#3224);
--#3227=DIRECTION('',(1.E0,0.E0,0.E0));
--#3228=VECTOR('',#3227,5.618394209466E-1);
--#3229=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
--#3230=LINE('',#3229,#3228);
--#3231=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
--#3232=VECTOR('',#3231,6.863753427325E0);
--#3233=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
--#3234=LINE('',#3233,#3232);
--#3235=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3236=VECTOR('',#3235,3.895172754280E0);
--#3237=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
--#3238=LINE('',#3237,#3236);
--#3239=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3240=VECTOR('',#3239,5.E-1);
--#3241=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
--#3242=LINE('',#3241,#3240);
--#3243=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.5E0));
--#3244=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3245=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
--#3246=AXIS2_PLACEMENT_3D('',#3243,#3244,#3245);
--#3248=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3249=VECTOR('',#3248,5.E-1);
--#3250=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
--#3251=LINE('',#3250,#3249);
--#3252=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.E0));
--#3253=DIRECTION('',(0.E0,0.E0,1.E0));
--#3254=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3255=AXIS2_PLACEMENT_3D('',#3252,#3253,#3254);
--#3257=DIRECTION('',(1.E0,0.E0,0.E0));
--#3258=VECTOR('',#3257,3.895172754280E0);
--#3259=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
--#3260=LINE('',#3259,#3258);
--#3261=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
--#3262=VECTOR('',#3261,6.863753427325E0);
--#3263=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
--#3264=LINE('',#3263,#3262);
--#3265=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3266=VECTOR('',#3265,5.618394209466E-1);
--#3267=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
--#3268=LINE('',#3267,#3266);
--#3269=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3270=VECTOR('',#3269,6.E0);
--#3271=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
--#3272=LINE('',#3271,#3270);
--#3273=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3274=VECTOR('',#3273,5.E-1);
--#3275=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
--#3276=LINE('',#3275,#3274);
--#3277=CARTESIAN_POINT('',(2.025E1,2.75E0,8.5E0));
--#3278=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3279=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3280=AXIS2_PLACEMENT_3D('',#3277,#3278,#3279);
--#3282=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3283=VECTOR('',#3282,5.E-1);
--#3284=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
--#3285=LINE('',#3284,#3283);
--#3286=CARTESIAN_POINT('',(2.025E1,2.75E0,8.E0));
--#3287=DIRECTION('',(0.E0,0.E0,1.E0));
--#3288=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3289=AXIS2_PLACEMENT_3D('',#3286,#3287,#3288);
--#3291=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3292=VECTOR('',#3291,5.E-1);
--#3293=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
--#3294=LINE('',#3293,#3292);
--#3295=CARTESIAN_POINT('',(2.025E1,8.75E0,8.5E0));
--#3296=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3297=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3298=AXIS2_PLACEMENT_3D('',#3295,#3296,#3297);
--#3300=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3301=VECTOR('',#3300,5.E-1);
--#3302=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
--#3303=LINE('',#3302,#3301);
--#3304=CARTESIAN_POINT('',(2.025E1,8.75E0,8.E0));
--#3305=DIRECTION('',(0.E0,0.E0,1.E0));
--#3306=DIRECTION('',(0.E0,1.E0,0.E0));
--#3307=AXIS2_PLACEMENT_3D('',#3304,#3305,#3306);
--#3309=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3310=VECTOR('',#3309,5.E-1);
--#3311=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
--#3312=LINE('',#3311,#3310);
--#3313=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.5E0));
--#3314=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3315=DIRECTION('',(0.E0,1.E0,0.E0));
--#3316=AXIS2_PLACEMENT_3D('',#3313,#3314,#3315);
--#3318=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3319=VECTOR('',#3318,5.E-1);
--#3320=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
--#3321=LINE('',#3320,#3319);
--#3322=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.E0));
--#3323=DIRECTION('',(0.E0,0.E0,1.E0));
--#3324=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
--#3325=AXIS2_PLACEMENT_3D('',#3322,#3323,#3324);
--#3327=DIRECTION('',(0.E0,1.E0,0.E0));
--#3328=VECTOR('',#3327,6.875E-1);
--#3329=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
--#3330=LINE('',#3329,#3328);
--#3331=DIRECTION('',(0.E0,1.E0,0.E0));
--#3332=VECTOR('',#3331,6.875E-1);
--#3333=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
--#3334=LINE('',#3333,#3332);
--#3335=DIRECTION('',(0.E0,1.E0,0.E0));
--#3336=VECTOR('',#3335,6.875E-1);
--#3337=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
--#3338=LINE('',#3337,#3336);
--#3339=DIRECTION('',(0.E0,1.E0,0.E0));
--#3340=VECTOR('',#3339,6.875E-1);
--#3341=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
--#3342=LINE('',#3341,#3340);
--#3343=DIRECTION('',(1.E0,0.E0,0.E0));
--#3344=VECTOR('',#3343,3.E0);
--#3345=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
--#3346=LINE('',#3345,#3344);
--#3347=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.25E0));
--#3348=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3349=DIRECTION('',(0.E0,0.E0,1.E0));
--#3350=AXIS2_PLACEMENT_3D('',#3347,#3348,#3349);
--#3352=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3353=VECTOR('',#3352,3.E0);
--#3354=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
--#3355=LINE('',#3354,#3353);
--#3356=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.25E0));
--#3357=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3358=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3359=AXIS2_PLACEMENT_3D('',#3356,#3357,#3358);
--#3361=CARTESIAN_POINT('',(1.61E0,6.875E-1,4.5E0));
--#3362=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3363=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
--#3364=AXIS2_PLACEMENT_3D('',#3361,#3362,#3363);
--#3366=CARTESIAN_POINT('',(7.5E0,6.875E-1,7.5E0));
--#3367=DIRECTION('',(0.E0,1.E0,0.E0));
--#3368=DIRECTION('',(-4.496088413988E-1,0.E0,-8.932255536739E-1));
--#3369=AXIS2_PLACEMENT_3D('',#3366,#3367,#3368);
--#3371=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,1.645354088550E0));
--#3372=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3373=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#3374=AXIS2_PLACEMENT_3D('',#3371,#3372,#3373);
--#3376=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#3377=VECTOR('',#3376,4.263248410977E0);
--#3378=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
--#3379=LINE('',#3378,#3377);
--#3380=DIRECTION('',(0.E0,1.E0,0.E0));
--#3381=VECTOR('',#3380,6.875E-1);
--#3382=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
--#3383=LINE('',#3382,#3381);
--#3384=CARTESIAN_POINT('',(1.455736763592E0,0.E0,4.577195232320E0));
--#3385=DIRECTION('',(0.E0,1.E0,0.E0));
--#3386=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#3387=AXIS2_PLACEMENT_3D('',#3384,#3385,#3386);
--#3389=DIRECTION('',(0.E0,1.E0,0.E0));
--#3390=VECTOR('',#3389,6.875E-1);
--#3391=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
--#3392=LINE('',#3391,#3390);
--#3393=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,4.577195232320E0));
--#3394=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3395=DIRECTION('',(-8.942796313519E-1,0.E0,4.475085931567E-1));
--#3396=AXIS2_PLACEMENT_3D('',#3393,#3394,#3395);
--#3398=DIRECTION('',(0.E0,1.E0,0.E0));
--#3399=VECTOR('',#3398,6.875E-1);
--#3400=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
--#3401=LINE('',#3400,#3399);
--#3402=DIRECTION('',(0.E0,1.E0,0.E0));
--#3403=VECTOR('',#3402,6.875E-1);
--#3404=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
--#3405=LINE('',#3404,#3403);
--#3406=DIRECTION('',(0.E0,1.E0,0.E0));
--#3407=VECTOR('',#3406,6.875E-1);
--#3408=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
--#3409=LINE('',#3408,#3407);
--#3410=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3411=VECTOR('',#3410,6.875E-1);
--#3412=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
--#3413=LINE('',#3412,#3411);
--#3414=CARTESIAN_POINT('',(-1.85E-1,0.E0,7.815E0));
--#3415=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3416=DIRECTION('',(1.E0,0.E0,0.E0));
--#3417=AXIS2_PLACEMENT_3D('',#3414,#3415,#3416);
--#3419=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3420=VECTOR('',#3419,6.875E-1);
--#3421=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
--#3422=LINE('',#3421,#3420);
--#3423=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,7.815E0));
--#3424=DIRECTION('',(0.E0,1.E0,0.E0));
--#3425=DIRECTION('',(0.E0,0.E0,1.E0));
--#3426=AXIS2_PLACEMENT_3D('',#3423,#3424,#3425);
--#3428=DIRECTION('',(1.E0,0.E0,0.E0));
--#3429=VECTOR('',#3428,7.5E-1);
--#3430=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
--#3431=LINE('',#3430,#3429);
--#3432=DIRECTION('',(0.E0,0.E0,1.E0));
--#3433=VECTOR('',#3432,3.15E-1);
--#3434=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
--#3435=LINE('',#3434,#3433);
--#3436=CARTESIAN_POINT('',(1.25125E0,6.875E-1,7.5E0));
--#3437=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3438=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3439=AXIS2_PLACEMENT_3D('',#3436,#3437,#3438);
--#3441=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3442=VECTOR('',#3441,3.15E-1);
--#3443=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
--#3444=LINE('',#3443,#3442);
--#3445=DIRECTION('',(1.E0,0.E0,0.E0));
--#3446=VECTOR('',#3445,2.525E-1);
--#3447=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
--#3448=LINE('',#3447,#3446);
--#3449=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3450=VECTOR('',#3449,8.1E-1);
--#3451=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
--#3452=LINE('',#3451,#3450);
--#3453=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3454=VECTOR('',#3453,3.875E0);
--#3455=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
--#3456=LINE('',#3455,#3454);
--#3457=DIRECTION('',(0.E0,0.E0,1.E0));
--#3458=VECTOR('',#3457,8.1E-1);
--#3459=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
--#3460=LINE('',#3459,#3458);
--#3461=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3462=VECTOR('',#3461,6.875E-1);
--#3463=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
--#3464=LINE('',#3463,#3462);
--#3465=CARTESIAN_POINT('',(2.6875E0,0.E0,7.815E0));
--#3466=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3467=DIRECTION('',(0.E0,0.E0,1.E0));
--#3468=AXIS2_PLACEMENT_3D('',#3465,#3466,#3467);
--#3470=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3471=VECTOR('',#3470,6.875E-1);
--#3472=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
--#3473=LINE('',#3472,#3471);
--#3474=CARTESIAN_POINT('',(2.6875E0,6.875E-1,7.815E0));
--#3475=DIRECTION('',(0.E0,1.E0,0.E0));
--#3476=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3477=AXIS2_PLACEMENT_3D('',#3474,#3475,#3476);
--#3479=DIRECTION('',(0.E0,1.E0,0.E0));
--#3480=VECTOR('',#3479,6.875E-1);
--#3481=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
--#3482=LINE('',#3481,#3480);
--#3483=DIRECTION('',(0.E0,1.E0,0.E0));
--#3484=VECTOR('',#3483,6.875E-1);
--#3485=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
--#3486=LINE('',#3485,#3484);
--#3487=DIRECTION('',(0.E0,1.E0,0.E0));
--#3488=VECTOR('',#3487,6.875E-1);
--#3489=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
--#3490=LINE('',#3489,#3488);
--#3491=CARTESIAN_POINT('',(3.4375E0,0.E0,9.565E0));
--#3492=DIRECTION('',(0.E0,1.E0,0.E0));
--#3493=DIRECTION('',(1.E0,0.E0,0.E0));
--#3494=AXIS2_PLACEMENT_3D('',#3491,#3492,#3493);
--#3496=DIRECTION('',(0.E0,1.E0,0.E0));
--#3497=VECTOR('',#3496,6.875E-1);
--#3498=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
--#3499=LINE('',#3498,#3497);
--#3500=CARTESIAN_POINT('',(3.4375E0,6.875E-1,9.565E0));
--#3501=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3502=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3503=AXIS2_PLACEMENT_3D('',#3500,#3501,#3502);
--#3505=DIRECTION('',(0.E0,1.E0,0.E0));
--#3506=VECTOR('',#3505,6.875E-1);
--#3507=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
--#3508=LINE('',#3507,#3506);
--#3509=CARTESIAN_POINT('',(3.4375E0,0.E0,1.0375E1));
--#3510=DIRECTION('',(0.E0,1.E0,0.E0));
--#3511=DIRECTION('',(0.E0,0.E0,1.E0));
--#3512=AXIS2_PLACEMENT_3D('',#3509,#3510,#3511);
--#3514=DIRECTION('',(0.E0,1.E0,0.E0));
--#3515=VECTOR('',#3514,6.875E-1);
--#3516=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
--#3517=LINE('',#3516,#3515);
--#3518=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.0375E1));
--#3519=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3520=DIRECTION('',(1.E0,0.E0,0.E0));
--#3521=AXIS2_PLACEMENT_3D('',#3518,#3519,#3520);
--#3523=DIRECTION('',(0.E0,1.E0,0.E0));
--#3524=VECTOR('',#3523,6.875E-1);
--#3525=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
--#3526=LINE('',#3525,#3524);
--#3527=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.0375E1));
--#3528=DIRECTION('',(0.E0,1.E0,0.E0));
--#3529=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3530=AXIS2_PLACEMENT_3D('',#3527,#3528,#3529);
--#3532=DIRECTION('',(0.E0,1.E0,0.E0));
--#3533=VECTOR('',#3532,6.875E-1);
--#3534=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
--#3535=LINE('',#3534,#3533);
--#3536=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.0375E1));
--#3537=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3538=DIRECTION('',(0.E0,0.E0,1.E0));
--#3539=AXIS2_PLACEMENT_3D('',#3536,#3537,#3538);
--#3541=DIRECTION('',(0.E0,1.E0,0.E0));
--#3542=VECTOR('',#3541,6.875E-1);
--#3543=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
--#3544=LINE('',#3543,#3542);
--#3545=CARTESIAN_POINT('',(-4.375E-1,0.E0,9.565E0));
--#3546=DIRECTION('',(0.E0,1.E0,0.E0));
--#3547=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3548=AXIS2_PLACEMENT_3D('',#3545,#3546,#3547);
--#3550=DIRECTION('',(0.E0,1.E0,0.E0));
--#3551=VECTOR('',#3550,6.875E-1);
--#3552=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
--#3553=LINE('',#3552,#3551);
--#3554=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,9.565E0));
--#3555=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3556=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3557=AXIS2_PLACEMENT_3D('',#3554,#3555,#3556);
--#3559=DIRECTION('',(0.E0,1.E0,0.E0));
--#3560=VECTOR('',#3559,6.875E-1);
--#3561=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
--#3562=LINE('',#3561,#3560);
--#3563=DIRECTION('',(0.E0,1.E0,0.E0));
--#3564=VECTOR('',#3563,6.875E-1);
--#3565=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
--#3566=LINE('',#3565,#3564);
--#3567=DIRECTION('',(0.E0,1.E0,0.E0));
--#3568=VECTOR('',#3567,6.875E-1);
--#3569=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
--#3570=LINE('',#3569,#3568);
--#3571=DIRECTION('',(0.E0,1.E0,0.E0));
--#3572=VECTOR('',#3571,6.875E-1);
--#3573=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
--#3574=LINE('',#3573,#3572);
--#3575=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3576=VECTOR('',#3575,3.E0);
--#3577=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
--#3578=LINE('',#3577,#3576);
--#3579=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.65E1));
--#3580=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3581=DIRECTION('',(1.E0,0.E0,0.E0));
--#3582=AXIS2_PLACEMENT_3D('',#3579,#3580,#3581);
--#3584=DIRECTION('',(0.E0,0.E0,1.E0));
--#3585=VECTOR('',#3584,3.E0);
--#3586=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
--#3587=LINE('',#3586,#3585);
--#3588=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.35E1));
--#3589=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3590=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3591=AXIS2_PLACEMENT_3D('',#3588,#3589,#3590);
--#3593=DIRECTION('',(0.E0,1.E0,0.E0));
--#3594=VECTOR('',#3593,6.875E-1);
--#3595=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
--#3596=LINE('',#3595,#3594);
--#3597=DIRECTION('',(0.E0,1.E0,0.E0));
--#3598=VECTOR('',#3597,6.875E-1);
--#3599=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
--#3600=LINE('',#3599,#3598);
--#3601=DIRECTION('',(0.E0,1.E0,0.E0));
--#3602=VECTOR('',#3601,6.875E-1);
--#3603=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
--#3604=LINE('',#3603,#3602);
--#3605=DIRECTION('',(0.E0,1.E0,0.E0));
--#3606=VECTOR('',#3605,6.875E-1);
--#3607=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
--#3608=LINE('',#3607,#3606);
--#3609=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3610=VECTOR('',#3609,3.E0);
--#3611=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
--#3612=LINE('',#3611,#3610);
--#3613=CARTESIAN_POINT('',(1.25E0,6.875E-1,2.25E1));
--#3614=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3615=DIRECTION('',(1.E0,0.E0,0.E0));
--#3616=AXIS2_PLACEMENT_3D('',#3613,#3614,#3615);
--#3618=DIRECTION('',(0.E0,0.E0,1.E0));
--#3619=VECTOR('',#3618,3.E0);
--#3620=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
--#3621=LINE('',#3620,#3619);
--#3622=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.95E1));
--#3623=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3624=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3625=AXIS2_PLACEMENT_3D('',#3622,#3623,#3624);
--#3627=DIRECTION('',(0.E0,1.E0,0.E0));
--#3628=VECTOR('',#3627,6.875E-1);
--#3629=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
--#3630=LINE('',#3629,#3628);
--#3631=DIRECTION('',(0.E0,1.E0,0.E0));
--#3632=VECTOR('',#3631,6.875E-1);
--#3633=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
--#3634=LINE('',#3633,#3632);
--#3635=DIRECTION('',(0.E0,1.E0,0.E0));
--#3636=VECTOR('',#3635,6.875E-1);
--#3637=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
--#3638=LINE('',#3637,#3636);
--#3639=DIRECTION('',(0.E0,1.E0,0.E0));
--#3640=VECTOR('',#3639,6.875E-1);
--#3641=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
--#3642=LINE('',#3641,#3640);
--#3643=DIRECTION('',(1.E0,0.E0,0.E0));
--#3644=VECTOR('',#3643,3.E0);
--#3645=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
--#3646=LINE('',#3645,#3644);
--#3647=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.E0));
--#3648=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3649=DIRECTION('',(0.E0,0.E0,1.E0));
--#3650=AXIS2_PLACEMENT_3D('',#3647,#3648,#3649);
--#3652=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3653=VECTOR('',#3652,3.E0);
--#3654=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
--#3655=LINE('',#3654,#3653);
--#3656=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.E0));
--#3657=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3658=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3659=AXIS2_PLACEMENT_3D('',#3656,#3657,#3658);
--#3661=DIRECTION('',(0.E0,1.E0,0.E0));
--#3662=VECTOR('',#3661,6.875E-1);
--#3663=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
--#3664=LINE('',#3663,#3662);
--#3665=DIRECTION('',(0.E0,1.E0,0.E0));
--#3666=VECTOR('',#3665,6.875E-1);
--#3667=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
--#3668=LINE('',#3667,#3666);
--#3669=DIRECTION('',(0.E0,1.E0,0.E0));
--#3670=VECTOR('',#3669,6.875E-1);
--#3671=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
--#3672=LINE('',#3671,#3670);
--#3673=DIRECTION('',(0.E0,1.E0,0.E0));
--#3674=VECTOR('',#3673,6.875E-1);
--#3675=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
--#3676=LINE('',#3675,#3674);
--#3677=DIRECTION('',(1.E0,0.E0,0.E0));
--#3678=VECTOR('',#3677,3.E0);
--#3679=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
--#3680=LINE('',#3679,#3678);
--#3681=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8E1));
--#3682=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3683=DIRECTION('',(0.E0,0.E0,1.E0));
--#3684=AXIS2_PLACEMENT_3D('',#3681,#3682,#3683);
--#3686=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3687=VECTOR('',#3686,3.E0);
--#3688=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
--#3689=LINE('',#3688,#3687);
--#3690=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8E1));
--#3691=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3692=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3693=AXIS2_PLACEMENT_3D('',#3690,#3691,#3692);
--#3695=DIRECTION('',(0.E0,1.E0,0.E0));
--#3696=VECTOR('',#3695,6.875E-1);
--#3697=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
--#3698=LINE('',#3697,#3696);
--#3699=DIRECTION('',(0.E0,1.E0,0.E0));
--#3700=VECTOR('',#3699,6.875E-1);
--#3701=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
--#3702=LINE('',#3701,#3700);
--#3703=DIRECTION('',(0.E0,1.E0,0.E0));
--#3704=VECTOR('',#3703,6.875E-1);
--#3705=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
--#3706=LINE('',#3705,#3704);
--#3707=DIRECTION('',(0.E0,1.E0,0.E0));
--#3708=VECTOR('',#3707,6.875E-1);
--#3709=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
--#3710=LINE('',#3709,#3708);
--#3711=DIRECTION('',(1.E0,0.E0,0.E0));
--#3712=VECTOR('',#3711,3.E0);
--#3713=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
--#3714=LINE('',#3713,#3712);
--#3715=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.075E1));
--#3716=DIRECTION('',(0.E0,1.E0,0.E0));
--#3717=DIRECTION('',(0.E0,0.E0,1.E0));
--#3718=AXIS2_PLACEMENT_3D('',#3715,#3716,#3717);
--#3720=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3721=VECTOR('',#3720,3.E0);
--#3722=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
--#3723=LINE('',#3722,#3721);
--#3724=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.075E1));
--#3725=DIRECTION('',(0.E0,1.E0,0.E0));
--#3726=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3727=AXIS2_PLACEMENT_3D('',#3724,#3725,#3726);
--#3729=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#3730=VECTOR('',#3729,4.263248410977E0);
--#3731=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
--#3732=LINE('',#3731,#3730);
--#3733=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,3.035464591145E1));
--#3734=DIRECTION('',(0.E0,1.E0,0.E0));
--#3735=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#3736=AXIS2_PLACEMENT_3D('',#3733,#3734,#3735);
--#3738=CARTESIAN_POINT('',(7.5E0,6.875E-1,2.45E1));
--#3739=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3740=DIRECTION('',(-4.496088413988E-1,0.E0,8.932255536739E-1));
--#3741=AXIS2_PLACEMENT_3D('',#3738,#3739,#3740);
--#3743=CARTESIAN_POINT('',(1.61E0,6.875E-1,2.75E1));
--#3744=DIRECTION('',(0.E0,1.E0,0.E0));
--#3745=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
--#3746=AXIS2_PLACEMENT_3D('',#3743,#3744,#3745);
--#3748=DIRECTION('',(0.E0,1.E0,-1.033516706560E-14));
--#3749=VECTOR('',#3748,6.875E-1);
--#3750=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
--#3751=LINE('',#3750,#3749);
--#3752=CARTESIAN_POINT('',(1.455736763592E0,0.E0,2.742280476768E1));
--#3753=DIRECTION('',(0.E0,1.E0,0.E0));
--#3754=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
--#3755=AXIS2_PLACEMENT_3D('',#3752,#3753,#3754);
--#3757=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
--#3758=VECTOR('',#3757,6.875E-1);
--#3759=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
--#3760=LINE('',#3759,#3758);
--#3761=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,2.742280476768E1));
--#3762=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3763=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811866E-1));
--#3764=AXIS2_PLACEMENT_3D('',#3761,#3762,#3763);
--#3766=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
--#3767=VECTOR('',#3766,6.875E-1);
--#3768=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
--#3769=LINE('',#3768,#3767);
--#3770=DIRECTION('',(0.E0,1.E0,0.E0));
--#3771=VECTOR('',#3770,6.875E-1);
--#3772=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
--#3773=LINE('',#3772,#3771);
--#3774=DIRECTION('',(0.E0,1.E0,0.E0));
--#3775=VECTOR('',#3774,6.875E-1);
--#3776=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
--#3777=LINE('',#3776,#3775);
--#3778=DIRECTION('',(0.E0,1.E0,0.E0));
--#3779=VECTOR('',#3778,6.875E-1);
--#3780=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
--#3781=LINE('',#3780,#3779);
--#3782=DIRECTION('',(0.E0,1.E0,0.E0));
--#3783=VECTOR('',#3782,6.875E-1);
--#3784=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
--#3785=LINE('',#3784,#3783);
--#3786=DIRECTION('',(0.E0,1.E0,0.E0));
--#3787=VECTOR('',#3786,6.875E-1);
--#3788=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
--#3789=LINE('',#3788,#3787);
--#3790=DIRECTION('',(0.E0,1.E0,0.E0));
--#3791=VECTOR('',#3790,6.875E-1);
--#3792=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
--#3793=LINE('',#3792,#3791);
--#3794=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3795=VECTOR('',#3794,3.E0);
--#3796=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
--#3797=LINE('',#3796,#3795);
--#3798=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.25E0));
--#3799=DIRECTION('',(0.E0,1.E0,0.E0));
--#3800=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3801=AXIS2_PLACEMENT_3D('',#3798,#3799,#3800);
--#3803=DIRECTION('',(1.E0,0.E0,0.E0));
--#3804=VECTOR('',#3803,3.E0);
--#3805=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
--#3806=LINE('',#3805,#3804);
--#3807=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.25E0));
--#3808=DIRECTION('',(0.E0,1.E0,0.E0));
--#3809=DIRECTION('',(0.E0,0.E0,1.E0));
--#3810=AXIS2_PLACEMENT_3D('',#3807,#3808,#3809);
--#3812=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#3813=VECTOR('',#3812,4.263248410977E0);
--#3814=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
--#3815=LINE('',#3814,#3813);
--#3816=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,1.645354088550E0));
--#3817=DIRECTION('',(0.E0,1.E0,0.E0));
--#3818=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#3819=AXIS2_PLACEMENT_3D('',#3816,#3817,#3818);
--#3821=CARTESIAN_POINT('',(1.65E1,6.875E-1,7.5E0));
--#3822=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3823=DIRECTION('',(4.496088413988E-1,0.E0,-8.932255536739E-1));
--#3824=AXIS2_PLACEMENT_3D('',#3821,#3822,#3823);
--#3826=CARTESIAN_POINT('',(2.239E1,6.875E-1,4.5E0));
--#3827=DIRECTION('',(0.E0,1.E0,0.E0));
--#3828=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
--#3829=AXIS2_PLACEMENT_3D('',#3826,#3827,#3828);
--#3831=DIRECTION('',(-1.033516706560E-14,1.E0,2.583791766400E-14));
--#3832=VECTOR('',#3831,6.875E-1);
--#3833=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
--#3834=LINE('',#3833,#3832);
--#3835=CARTESIAN_POINT('',(2.254426323641E1,0.E0,4.577195232320E0));
--#3836=DIRECTION('',(0.E0,1.E0,0.E0));
--#3837=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
--#3838=AXIS2_PLACEMENT_3D('',#3835,#3836,#3837);
--#3840=DIRECTION('',(0.E0,1.E0,0.E0));
--#3841=VECTOR('',#3840,6.875E-1);
--#3842=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
--#3843=LINE('',#3842,#3841);
--#3844=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,4.577195232320E0));
--#3845=DIRECTION('',(0.E0,-1.E0,0.E0));
--#3846=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#3847=AXIS2_PLACEMENT_3D('',#3844,#3845,#3846);
--#3849=DIRECTION('',(-1.550275059840E-14,1.E0,-2.067033413120E-14));
--#3850=VECTOR('',#3849,6.875E-1);
--#3851=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
--#3852=LINE('',#3851,#3850);
--#3853=DIRECTION('',(1.550275059840E-14,1.E0,0.E0));
--#3854=VECTOR('',#3853,6.875E-1);
--#3855=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
--#3856=LINE('',#3855,#3854);
--#3857=DIRECTION('',(0.E0,1.E0,0.E0));
--#3858=VECTOR('',#3857,6.875E-1);
--#3859=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
--#3860=LINE('',#3859,#3858);
--#3861=DIRECTION('',(0.E0,1.E0,0.E0));
--#3862=VECTOR('',#3861,6.875E-1);
--#3863=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
--#3864=LINE('',#3863,#3862);
--#3865=DIRECTION('',(0.E0,1.E0,0.E0));
--#3866=VECTOR('',#3865,6.875E-1);
--#3867=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
--#3868=LINE('',#3867,#3866);
--#3869=DIRECTION('',(0.E0,1.E0,0.E0));
--#3870=VECTOR('',#3869,6.875E-1);
--#3871=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
--#3872=LINE('',#3871,#3870);
--#3873=DIRECTION('',(0.E0,1.E0,0.E0));
--#3874=VECTOR('',#3873,6.875E-1);
--#3875=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
--#3876=LINE('',#3875,#3874);
--#3877=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3878=VECTOR('',#3877,3.E0);
--#3879=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
--#3880=LINE('',#3879,#3878);
--#3881=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.35E1));
--#3882=DIRECTION('',(0.E0,1.E0,0.E0));
--#3883=DIRECTION('',(1.E0,0.E0,0.E0));
--#3884=AXIS2_PLACEMENT_3D('',#3881,#3882,#3883);
--#3886=DIRECTION('',(0.E0,0.E0,1.E0));
--#3887=VECTOR('',#3886,3.E0);
--#3888=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
--#3889=LINE('',#3888,#3887);
--#3890=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.65E1));
--#3891=DIRECTION('',(0.E0,1.E0,0.E0));
--#3892=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3893=AXIS2_PLACEMENT_3D('',#3890,#3891,#3892);
--#3895=DIRECTION('',(0.E0,1.E0,0.E0));
--#3896=VECTOR('',#3895,6.875E-1);
--#3897=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
--#3898=LINE('',#3897,#3896);
--#3899=DIRECTION('',(0.E0,1.E0,0.E0));
--#3900=VECTOR('',#3899,6.875E-1);
--#3901=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
--#3902=LINE('',#3901,#3900);
--#3903=DIRECTION('',(0.E0,1.E0,0.E0));
--#3904=VECTOR('',#3903,6.875E-1);
--#3905=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
--#3906=LINE('',#3905,#3904);
--#3907=DIRECTION('',(0.E0,1.E0,0.E0));
--#3908=VECTOR('',#3907,6.875E-1);
--#3909=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
--#3910=LINE('',#3909,#3908);
--#3911=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3912=VECTOR('',#3911,3.E0);
--#3913=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
--#3914=LINE('',#3913,#3912);
--#3915=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.95E1));
--#3916=DIRECTION('',(0.E0,1.E0,0.E0));
--#3917=DIRECTION('',(1.E0,0.E0,0.E0));
--#3918=AXIS2_PLACEMENT_3D('',#3915,#3916,#3917);
--#3920=DIRECTION('',(0.E0,0.E0,1.E0));
--#3921=VECTOR('',#3920,3.E0);
--#3922=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
--#3923=LINE('',#3922,#3921);
--#3924=CARTESIAN_POINT('',(2.275E1,6.875E-1,2.25E1));
--#3925=DIRECTION('',(0.E0,1.E0,0.E0));
--#3926=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3927=AXIS2_PLACEMENT_3D('',#3924,#3925,#3926);
--#3929=DIRECTION('',(0.E0,1.E0,0.E0));
--#3930=VECTOR('',#3929,6.875E-1);
--#3931=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
--#3932=LINE('',#3931,#3930);
--#3933=DIRECTION('',(0.E0,1.E0,0.E0));
--#3934=VECTOR('',#3933,6.875E-1);
--#3935=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
--#3936=LINE('',#3935,#3934);
--#3937=DIRECTION('',(0.E0,1.E0,0.E0));
--#3938=VECTOR('',#3937,6.875E-1);
--#3939=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
--#3940=LINE('',#3939,#3938);
--#3941=DIRECTION('',(0.E0,1.E0,0.E0));
--#3942=VECTOR('',#3941,6.875E-1);
--#3943=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
--#3944=LINE('',#3943,#3942);
--#3945=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3946=VECTOR('',#3945,3.E0);
--#3947=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
--#3948=LINE('',#3947,#3946);
--#3949=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.E0));
--#3950=DIRECTION('',(0.E0,1.E0,0.E0));
--#3951=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3952=AXIS2_PLACEMENT_3D('',#3949,#3950,#3951);
--#3954=DIRECTION('',(1.E0,0.E0,0.E0));
--#3955=VECTOR('',#3954,3.E0);
--#3956=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
--#3957=LINE('',#3956,#3955);
--#3958=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.E0));
--#3959=DIRECTION('',(0.E0,1.E0,0.E0));
--#3960=DIRECTION('',(0.E0,0.E0,1.E0));
--#3961=AXIS2_PLACEMENT_3D('',#3958,#3959,#3960);
--#3963=DIRECTION('',(0.E0,1.E0,0.E0));
--#3964=VECTOR('',#3963,6.875E-1);
--#3965=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
--#3966=LINE('',#3965,#3964);
--#3967=DIRECTION('',(0.E0,1.E0,0.E0));
--#3968=VECTOR('',#3967,6.875E-1);
--#3969=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
--#3970=LINE('',#3969,#3968);
--#3971=DIRECTION('',(0.E0,1.E0,0.E0));
--#3972=VECTOR('',#3971,6.875E-1);
--#3973=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
--#3974=LINE('',#3973,#3972);
--#3975=DIRECTION('',(0.E0,1.E0,0.E0));
--#3976=VECTOR('',#3975,6.875E-1);
--#3977=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
--#3978=LINE('',#3977,#3976);
--#3979=DIRECTION('',(-1.E0,0.E0,0.E0));
--#3980=VECTOR('',#3979,3.E0);
--#3981=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
--#3982=LINE('',#3981,#3980);
--#3983=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8E1));
--#3984=DIRECTION('',(0.E0,1.E0,0.E0));
--#3985=DIRECTION('',(0.E0,0.E0,-1.E0));
--#3986=AXIS2_PLACEMENT_3D('',#3983,#3984,#3985);
--#3988=DIRECTION('',(1.E0,0.E0,0.E0));
--#3989=VECTOR('',#3988,3.E0);
--#3990=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
--#3991=LINE('',#3990,#3989);
--#3992=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8E1));
--#3993=DIRECTION('',(0.E0,1.E0,0.E0));
--#3994=DIRECTION('',(0.E0,0.E0,1.E0));
--#3995=AXIS2_PLACEMENT_3D('',#3992,#3993,#3994);
--#3997=DIRECTION('',(0.E0,1.E0,0.E0));
--#3998=VECTOR('',#3997,6.875E-1);
--#3999=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
--#4000=LINE('',#3999,#3998);
--#4001=DIRECTION('',(0.E0,1.E0,0.E0));
--#4002=VECTOR('',#4001,6.875E-1);
--#4003=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
--#4004=LINE('',#4003,#4002);
--#4005=DIRECTION('',(0.E0,1.E0,0.E0));
--#4006=VECTOR('',#4005,6.875E-1);
--#4007=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
--#4008=LINE('',#4007,#4006);
--#4009=DIRECTION('',(0.E0,1.E0,0.E0));
--#4010=VECTOR('',#4009,6.875E-1);
--#4011=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
--#4012=LINE('',#4011,#4010);
--#4013=DIRECTION('',(-1.E0,0.E0,0.E0));
--#4014=VECTOR('',#4013,3.E0);
--#4015=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
--#4016=LINE('',#4015,#4014);
--#4017=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.075E1));
--#4018=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4019=DIRECTION('',(0.E0,0.E0,-1.E0));
--#4020=AXIS2_PLACEMENT_3D('',#4017,#4018,#4019);
--#4022=DIRECTION('',(1.E0,0.E0,0.E0));
--#4023=VECTOR('',#4022,3.E0);
--#4024=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
--#4025=LINE('',#4024,#4023);
--#4026=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.075E1));
--#4027=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4028=DIRECTION('',(0.E0,0.E0,1.E0));
--#4029=AXIS2_PLACEMENT_3D('',#4026,#4027,#4028);
--#4031=CARTESIAN_POINT('',(2.239E1,6.875E-1,2.75E1));
--#4032=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4033=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
--#4034=AXIS2_PLACEMENT_3D('',#4031,#4032,#4033);
--#4036=CARTESIAN_POINT('',(1.65E1,6.875E-1,2.45E1));
--#4037=DIRECTION('',(0.E0,1.E0,0.E0));
--#4038=DIRECTION('',(4.496088413988E-1,0.E0,8.932255536739E-1));
--#4039=AXIS2_PLACEMENT_3D('',#4036,#4037,#4038);
--#4041=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,3.035464591145E1));
--#4042=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4043=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#4044=AXIS2_PLACEMENT_3D('',#4041,#4042,#4043);
--#4046=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#4047=VECTOR('',#4046,4.263248410977E0);
--#4048=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
--#4049=LINE('',#4048,#4047);
--#4050=DIRECTION('',(0.E0,1.E0,0.E0));
--#4051=VECTOR('',#4050,6.875E-1);
--#4052=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
--#4053=LINE('',#4052,#4051);
--#4054=CARTESIAN_POINT('',(2.254426323641E1,0.E0,2.742280476768E1));
--#4055=DIRECTION('',(0.E0,1.E0,0.E0));
--#4056=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#4057=AXIS2_PLACEMENT_3D('',#4054,#4055,#4056);
--#4059=DIRECTION('',(0.E0,1.E0,2.067033413120E-14));
--#4060=VECTOR('',#4059,6.875E-1);
--#4061=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
--#4062=LINE('',#4061,#4060);
--#4063=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,2.742280476768E1));
--#4064=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4065=DIRECTION('',(8.942796313519E-1,0.E0,-4.475085931567E-1));
--#4066=AXIS2_PLACEMENT_3D('',#4063,#4064,#4065);
--#4068=DIRECTION('',(0.E0,1.E0,0.E0));
--#4069=VECTOR('',#4068,6.875E-1);
--#4070=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
--#4071=LINE('',#4070,#4069);
--#4072=DIRECTION('',(1.033516706560E-14,1.E0,0.E0));
--#4073=VECTOR('',#4072,6.875E-1);
--#4074=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
--#4075=LINE('',#4074,#4073);
--#4076=DIRECTION('',(-2.067033413120E-14,1.E0,3.100550119680E-14));
--#4077=VECTOR('',#4076,6.875E-1);
--#4078=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
--#4079=LINE('',#4078,#4077);
--#4080=DIRECTION('',(0.E0,1.E0,0.E0));
--#4081=VECTOR('',#4080,6.875E-1);
--#4082=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
--#4083=LINE('',#4082,#4081);
--#4084=CARTESIAN_POINT('',(2.13075E1,6.875E-1,7.81E0));
--#4085=DIRECTION('',(0.E0,1.E0,0.E0));
--#4086=DIRECTION('',(0.E0,0.E0,1.E0));
--#4087=AXIS2_PLACEMENT_3D('',#4084,#4085,#4086);
--#4089=DIRECTION('',(0.E0,1.E0,0.E0));
--#4090=VECTOR('',#4089,6.875E-1);
--#4091=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
--#4092=LINE('',#4091,#4090);
--#4093=CARTESIAN_POINT('',(2.13075E1,0.E0,7.81E0));
--#4094=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4095=DIRECTION('',(1.E0,0.E0,0.E0));
--#4096=AXIS2_PLACEMENT_3D('',#4093,#4094,#4095);
--#4098=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4099=VECTOR('',#4098,6.875E-1);
--#4100=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
--#4101=LINE('',#4100,#4099);
--#4102=CARTESIAN_POINT('',(2.05675E1,6.875E-1,9.57E0));
--#4103=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4104=DIRECTION('',(-1.E0,0.E0,0.E0));
--#4105=AXIS2_PLACEMENT_3D('',#4102,#4103,#4104);
--#4107=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4108=VECTOR('',#4107,6.875E-1);
--#4109=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
--#4110=LINE('',#4109,#4108);
--#4111=CARTESIAN_POINT('',(2.05675E1,0.E0,9.57E0));
--#4112=DIRECTION('',(0.E0,1.E0,0.E0));
--#4113=DIRECTION('',(0.E0,0.E0,-1.E0));
--#4114=AXIS2_PLACEMENT_3D('',#4111,#4112,#4113);
--#4116=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4117=VECTOR('',#4116,6.875E-1);
--#4118=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
--#4119=LINE('',#4118,#4117);
--#4120=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.037E1));
--#4121=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4122=DIRECTION('',(0.E0,0.E0,1.E0));
--#4123=AXIS2_PLACEMENT_3D('',#4120,#4121,#4122);
--#4125=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4126=VECTOR('',#4125,6.875E-1);
--#4127=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
--#4128=LINE('',#4127,#4126);
--#4129=CARTESIAN_POINT('',(2.05675E1,0.E0,1.037E1));
--#4130=DIRECTION('',(0.E0,1.E0,0.E0));
--#4131=DIRECTION('',(-1.E0,0.E0,0.E0));
--#4132=AXIS2_PLACEMENT_3D('',#4129,#4130,#4131);
--#4134=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4135=VECTOR('',#4134,6.875E-1);
--#4136=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
--#4137=LINE('',#4136,#4135);
--#4138=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.037E1));
--#4139=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4140=DIRECTION('',(1.E0,0.E0,0.E0));
--#4141=AXIS2_PLACEMENT_3D('',#4138,#4139,#4140);
--#4143=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4144=VECTOR('',#4143,6.875E-1);
--#4145=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
--#4146=LINE('',#4145,#4144);
--#4147=CARTESIAN_POINT('',(2.44325E1,0.E0,1.037E1));
--#4148=DIRECTION('',(0.E0,1.E0,0.E0));
--#4149=DIRECTION('',(0.E0,0.E0,1.E0));
--#4150=AXIS2_PLACEMENT_3D('',#4147,#4148,#4149);
--#4152=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4153=VECTOR('',#4152,6.875E-1);
--#4154=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
--#4155=LINE('',#4154,#4153);
--#4156=CARTESIAN_POINT('',(2.44325E1,6.875E-1,9.57E0));
--#4157=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4158=DIRECTION('',(0.E0,0.E0,-1.E0));
--#4159=AXIS2_PLACEMENT_3D('',#4156,#4157,#4158);
--#4161=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4162=VECTOR('',#4161,6.875E-1);
--#4163=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
--#4164=LINE('',#4163,#4162);
--#4165=CARTESIAN_POINT('',(2.44325E1,0.E0,9.57E0));
--#4166=DIRECTION('',(0.E0,1.E0,0.E0));
--#4167=DIRECTION('',(1.E0,0.E0,0.E0));
--#4168=AXIS2_PLACEMENT_3D('',#4165,#4166,#4167);
--#4170=DIRECTION('',(0.E0,1.E0,0.E0));
--#4171=VECTOR('',#4170,6.875E-1);
--#4172=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
--#4173=LINE('',#4172,#4171);
--#4174=CARTESIAN_POINT('',(2.419E1,6.875E-1,7.81E0));
--#4175=DIRECTION('',(0.E0,1.E0,0.E0));
--#4176=DIRECTION('',(-1.E0,0.E0,0.E0));
--#4177=AXIS2_PLACEMENT_3D('',#4174,#4175,#4176);
--#4179=DIRECTION('',(0.E0,1.E0,0.E0));
--#4180=VECTOR('',#4179,6.875E-1);
--#4181=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
--#4182=LINE('',#4181,#4180);
--#4183=CARTESIAN_POINT('',(2.419E1,0.E0,7.81E0));
--#4184=DIRECTION('',(0.E0,-1.E0,0.E0));
--#4185=DIRECTION('',(0.E0,0.E0,1.E0));
--#4186=AXIS2_PLACEMENT_3D('',#4183,#4184,#4185);
--#4188=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
--#4189=VECTOR('',#4188,6.875E-1);
--#4190=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
--#4191=LINE('',#4190,#4189);
--#4192=DIRECTION('',(0.E0,1.E0,0.E0));
--#4193=VECTOR('',#4192,6.875E-1);
--#4194=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
--#4195=LINE('',#4194,#4193);
--#4196=DIRECTION('',(-1.E0,0.E0,0.E0));
--#4197=VECTOR('',#4196,2.425E-1);
--#4198=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
--#4199=LINE('',#4198,#4197);
--#4200=DIRECTION('',(0.E0,0.E0,-1.E0));
--#4201=VECTOR('',#4200,3.1E-1);
--#4202=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
--#4203=LINE('',#4202,#4201);
--#4204=CARTESIAN_POINT('',(2.274875E1,6.875E-1,7.5E0));
--#4205=DIRECTION('',(0.E0,1.E0,0.E0));
--#4206=DIRECTION('',(1.E0,0.E0,0.E0));
--#4207=AXIS2_PLACEMENT_3D('',#4204,#4205,#4206);
--#4209=DIRECTION('',(0.E0,0.E0,1.E0));
--#4210=VECTOR('',#4209,3.1E-1);
--#4211=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
--#4212=LINE('',#4211,#4210);
--#4213=DIRECTION('',(-1.E0,0.E0,0.E0));
--#4214=VECTOR('',#4213,7.4E-1);
--#4215=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
--#4216=LINE('',#4215,#4214);
--#4217=DIRECTION('',(0.E0,0.E0,1.E0));
--#4218=VECTOR('',#4217,8.E-1);
--#4219=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
--#4220=LINE('',#4219,#4218);
--#4221=DIRECTION('',(1.E0,0.E0,0.E0));
--#4222=VECTOR('',#4221,3.865E0);
--#4223=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
--#4224=LINE('',#4223,#4222);
--#4225=DIRECTION('',(0.E0,0.E0,-1.E0));
--#4226=VECTOR('',#4225,8.E-1);
--#4227=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
--#4228=LINE('',#4227,#4226);
--#4229=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
--#4230=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
--#4231=VERTEX_POINT('',#4229);
--#4232=VERTEX_POINT('',#4230);
--#4233=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
--#4234=CARTESIAN_POINT('',(2.E1,1.5E0,3.2E1));
--#4235=VERTEX_POINT('',#4233);
--#4236=VERTEX_POINT('',#4234);
--#4237=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
--#4238=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
--#4239=VERTEX_POINT('',#4237);
--#4240=VERTEX_POINT('',#4238);
--#4241=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
--#4242=CARTESIAN_POINT('',(2.4E1,1.5E0,4.E0));
--#4243=VERTEX_POINT('',#4241);
--#4244=VERTEX_POINT('',#4242);
--#4245=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
--#4246=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
--#4247=VERTEX_POINT('',#4245);
--#4248=VERTEX_POINT('',#4246);
--#4249=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
--#4250=CARTESIAN_POINT('',(0.E0,1.5E0,2.8E1));
--#4251=VERTEX_POINT('',#4249);
--#4252=VERTEX_POINT('',#4250);
--#4253=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
--#4254=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
--#4255=VERTEX_POINT('',#4253);
--#4256=VERTEX_POINT('',#4254);
--#4257=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
--#4258=CARTESIAN_POINT('',(4.E0,1.5E0,0.E0));
--#4259=VERTEX_POINT('',#4257);
--#4260=VERTEX_POINT('',#4258);
--#4261=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
--#4262=CARTESIAN_POINT('',(7.5E0,0.E0,2.5E0));
--#4263=VERTEX_POINT('',#4261);
--#4264=VERTEX_POINT('',#4262);
--#4265=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
--#4266=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
--#4267=VERTEX_POINT('',#4265);
--#4268=VERTEX_POINT('',#4266);
--#4269=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
--#4270=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
--#4271=VERTEX_POINT('',#4269);
--#4272=VERTEX_POINT('',#4270);
--#4273=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
--#4274=CARTESIAN_POINT('',(2.5E0,0.E0,2.45E1));
--#4275=VERTEX_POINT('',#4273);
--#4276=VERTEX_POINT('',#4274);
--#4277=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
--#4278=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
--#4279=VERTEX_POINT('',#4277);
--#4280=VERTEX_POINT('',#4278);
--#4281=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
--#4282=CARTESIAN_POINT('',(1.65E1,0.E0,2.95E1));
--#4283=VERTEX_POINT('',#4281);
--#4284=VERTEX_POINT('',#4282);
--#4285=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
--#4286=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
--#4287=VERTEX_POINT('',#4285);
--#4288=VERTEX_POINT('',#4286);
--#4289=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
--#4290=VERTEX_POINT('',#4289);
--#4291=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
--#4292=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
--#4293=VERTEX_POINT('',#4291);
--#4294=VERTEX_POINT('',#4292);
--#4295=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
--#4296=VERTEX_POINT('',#4295);
--#4297=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
--#4298=VERTEX_POINT('',#4297);
--#4299=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
--#4300=VERTEX_POINT('',#4299);
--#4301=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
--#4302=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
--#4303=VERTEX_POINT('',#4301);
--#4304=VERTEX_POINT('',#4302);
--#4305=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
--#4306=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
--#4307=VERTEX_POINT('',#4305);
--#4308=VERTEX_POINT('',#4306);
--#4309=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
--#4310=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
--#4311=VERTEX_POINT('',#4309);
--#4312=VERTEX_POINT('',#4310);
--#4313=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
--#4314=CARTESIAN_POINT('',(-1.E0,1.5E0,1.225E1));
--#4315=VERTEX_POINT('',#4313);
--#4316=VERTEX_POINT('',#4314);
--#4317=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
--#4318=CARTESIAN_POINT('',(0.E0,0.E0,7.E0));
--#4319=VERTEX_POINT('',#4317);
--#4320=VERTEX_POINT('',#4318);
--#4321=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
--#4322=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
--#4323=VERTEX_POINT('',#4321);
--#4324=VERTEX_POINT('',#4322);
--#4325=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
--#4326=CARTESIAN_POINT('',(3.531373033403E0,0.E0,8.E0));
--#4327=VERTEX_POINT('',#4325);
--#4328=VERTEX_POINT('',#4326);
--#4329=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
--#4330=CARTESIAN_POINT('',(2.539216291754E0,0.E0,6.875E0));
--#4331=VERTEX_POINT('',#4329);
--#4332=VERTEX_POINT('',#4330);
--#4333=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
--#4334=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
--#4335=VERTEX_POINT('',#4333);
--#4336=VERTEX_POINT('',#4334);
--#4337=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
--#4338=CARTESIAN_POINT('',(4.5E0,1.5E0,1.225E1));
--#4339=VERTEX_POINT('',#4337);
--#4340=VERTEX_POINT('',#4338);
--#4341=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
--#4342=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
--#4343=VERTEX_POINT('',#4341);
--#4344=VERTEX_POINT('',#4342);
--#4345=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
--#4346=CARTESIAN_POINT('',(-2.E0,1.5E0,1.175E1));
--#4347=VERTEX_POINT('',#4345);
--#4348=VERTEX_POINT('',#4346);
--#4349=CARTESIAN_POINT('',(4.095E0,1.1125E1,9.E0));
--#4350=CARTESIAN_POINT('',(3.905E0,1.1125E1,9.E0));
--#4351=VERTEX_POINT('',#4349);
--#4352=VERTEX_POINT('',#4350);
--#4353=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
--#4354=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
--#4355=VERTEX_POINT('',#4353);
--#4356=VERTEX_POINT('',#4354);
--#4357=CARTESIAN_POINT('',(3.929917478528E0,1.125E1,9.132582521472E0));
--#4358=CARTESIAN_POINT('',(3.804917478528E0,1.125E1,9.132582521472E0));
--#4359=VERTEX_POINT('',#4357);
--#4360=VERTEX_POINT('',#4358);
--#4361=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
--#4362=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
--#4363=VERTEX_POINT('',#4361);
--#4364=VERTEX_POINT('',#4362);
--#4365=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
--#4366=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
--#4367=VERTEX_POINT('',#4365);
--#4368=VERTEX_POINT('',#4366);
--#4369=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
--#4370=VERTEX_POINT('',#4369);
--#4371=CARTESIAN_POINT('',(6.35E0,1.5E0,2.975E1));
--#4372=CARTESIAN_POINT('',(6.55E0,1.5E0,2.975E1));
--#4373=VERTEX_POINT('',#4371);
--#4374=VERTEX_POINT('',#4372);
--#4375=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
--#4376=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
--#4377=VERTEX_POINT('',#4375);
--#4378=VERTEX_POINT('',#4376);
--#4379=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
--#4380=VERTEX_POINT('',#4379);
--#4381=CARTESIAN_POINT('',(7.35E0,1.5E0,2.975E1));
--#4382=CARTESIAN_POINT('',(7.55E0,1.5E0,2.975E1));
--#4383=VERTEX_POINT('',#4381);
--#4384=VERTEX_POINT('',#4382);
--#4385=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
--#4386=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
--#4387=VERTEX_POINT('',#4385);
--#4388=VERTEX_POINT('',#4386);
--#4389=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
--#4390=VERTEX_POINT('',#4389);
--#4391=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
--#4392=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
--#4393=VERTEX_POINT('',#4391);
--#4394=VERTEX_POINT('',#4392);
--#4395=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
--#4396=VERTEX_POINT('',#4395);
--#4397=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
--#4398=VERTEX_POINT('',#4397);
--#4399=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
--#4400=VERTEX_POINT('',#4399);
--#4401=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
--#4402=CARTESIAN_POINT('',(2.4E1,0.E0,1.325E1));
--#4403=VERTEX_POINT('',#4401);
--#4404=VERTEX_POINT('',#4402);
--#4405=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
--#4406=CARTESIAN_POINT('',(2.5E1,0.E0,1.225E1));
--#4407=VERTEX_POINT('',#4405);
--#4408=VERTEX_POINT('',#4406);
--#4409=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
--#4410=CARTESIAN_POINT('',(2.15E1,1.5E0,1.325E1));
--#4411=VERTEX_POINT('',#4409);
--#4412=VERTEX_POINT('',#4410);
--#4413=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
--#4414=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
--#4415=VERTEX_POINT('',#4413);
--#4416=VERTEX_POINT('',#4414);
--#4417=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
--#4418=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
--#4419=VERTEX_POINT('',#4417);
--#4420=VERTEX_POINT('',#4418);
--#4421=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
--#4422=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
--#4423=VERTEX_POINT('',#4421);
--#4424=VERTEX_POINT('',#4422);
--#4425=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
--#4426=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,8.E0));
--#4427=VERTEX_POINT('',#4425);
--#4428=VERTEX_POINT('',#4426);
--#4429=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
--#4430=CARTESIAN_POINT('',(2.146078370825E1,1.5E0,6.875E0));
--#4431=VERTEX_POINT('',#4429);
--#4432=VERTEX_POINT('',#4430);
--#4433=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
--#4434=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
--#4435=VERTEX_POINT('',#4433);
--#4436=VERTEX_POINT('',#4434);
--#4437=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
--#4438=CARTESIAN_POINT('',(1.95E1,0.E0,1.225E1));
--#4439=VERTEX_POINT('',#4437);
--#4440=VERTEX_POINT('',#4438);
--#4441=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
--#4442=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
--#4443=VERTEX_POINT('',#4441);
--#4444=VERTEX_POINT('',#4442);
--#4445=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
--#4446=CARTESIAN_POINT('',(2.6E1,0.E0,1.175E1));
--#4447=VERTEX_POINT('',#4445);
--#4448=VERTEX_POINT('',#4446);
--#4449=CARTESIAN_POINT('',(1.9905E1,1.1125E1,9.E0));
--#4450=CARTESIAN_POINT('',(2.0095E1,1.1125E1,9.E0));
--#4451=VERTEX_POINT('',#4449);
--#4452=VERTEX_POINT('',#4450);
--#4453=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
--#4454=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
--#4455=VERTEX_POINT('',#4453);
--#4456=VERTEX_POINT('',#4454);
--#4457=CARTESIAN_POINT('',(2.007008252147E1,1.125E1,9.132582521472E0));
--#4458=CARTESIAN_POINT('',(2.019508252147E1,1.125E1,9.132582521472E0));
--#4459=VERTEX_POINT('',#4457);
--#4460=VERTEX_POINT('',#4458);
--#4461=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
--#4462=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
--#4463=VERTEX_POINT('',#4461);
--#4464=VERTEX_POINT('',#4462);
--#4465=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
--#4466=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
--#4467=VERTEX_POINT('',#4465);
--#4468=VERTEX_POINT('',#4466);
--#4469=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
--#4470=VERTEX_POINT('',#4469);
--#4471=CARTESIAN_POINT('',(1.765E1,1.5E0,2.975E1));
--#4472=CARTESIAN_POINT('',(1.745E1,1.5E0,2.975E1));
--#4473=VERTEX_POINT('',#4471);
--#4474=VERTEX_POINT('',#4472);
--#4475=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
--#4476=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
--#4477=VERTEX_POINT('',#4475);
--#4478=VERTEX_POINT('',#4476);
--#4479=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
--#4480=VERTEX_POINT('',#4479);
--#4481=CARTESIAN_POINT('',(1.665E1,1.5E0,2.975E1));
--#4482=CARTESIAN_POINT('',(1.645E1,1.5E0,2.975E1));
--#4483=VERTEX_POINT('',#4481);
--#4484=VERTEX_POINT('',#4482);
--#4485=CARTESIAN_POINT('',(1.3175E0,0.E0,6.E0));
--#4486=CARTESIAN_POINT('',(9.325E-1,0.E0,6.E0));
--#4487=VERTEX_POINT('',#4485);
--#4488=VERTEX_POINT('',#4486);
--#4489=CARTESIAN_POINT('',(1.3825E0,1.E0,6.E0));
--#4490=CARTESIAN_POINT('',(8.675E-1,1.E0,6.E0));
--#4491=VERTEX_POINT('',#4489);
--#4492=VERTEX_POINT('',#4490);
--#4493=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
--#4494=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
--#4495=VERTEX_POINT('',#4493);
--#4496=VERTEX_POINT('',#4494);
--#4497=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
--#4498=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
--#4499=VERTEX_POINT('',#4497);
--#4500=VERTEX_POINT('',#4498);
--#4501=CARTESIAN_POINT('',(1.3175E0,0.E0,1.2E1));
--#4502=CARTESIAN_POINT('',(9.325E-1,0.E0,1.2E1));
--#4503=VERTEX_POINT('',#4501);
--#4504=VERTEX_POINT('',#4502);
--#4505=CARTESIAN_POINT('',(1.3175E0,0.E0,1.8E1));
--#4506=CARTESIAN_POINT('',(9.325E-1,0.E0,1.8E1));
--#4507=VERTEX_POINT('',#4505);
--#4508=VERTEX_POINT('',#4506);
--#4509=CARTESIAN_POINT('',(1.3175E0,0.E0,2.4E1));
--#4510=CARTESIAN_POINT('',(9.325E-1,0.E0,2.4E1));
--#4511=VERTEX_POINT('',#4509);
--#4512=VERTEX_POINT('',#4510);
--#4513=CARTESIAN_POINT('',(2.30675E1,0.E0,6.E0));
--#4514=CARTESIAN_POINT('',(2.26825E1,0.E0,6.E0));
--#4515=VERTEX_POINT('',#4513);
--#4516=VERTEX_POINT('',#4514);
--#4517=CARTESIAN_POINT('',(2.30675E1,0.E0,1.2E1));
--#4518=CARTESIAN_POINT('',(2.26825E1,0.E0,1.2E1));
--#4519=VERTEX_POINT('',#4517);
--#4520=VERTEX_POINT('',#4518);
--#4521=CARTESIAN_POINT('',(2.30675E1,0.E0,1.8E1));
--#4522=CARTESIAN_POINT('',(2.26825E1,0.E0,1.8E1));
--#4523=VERTEX_POINT('',#4521);
--#4524=VERTEX_POINT('',#4522);
--#4525=CARTESIAN_POINT('',(2.30675E1,0.E0,2.4E1));
--#4526=CARTESIAN_POINT('',(2.26825E1,0.E0,2.4E1));
--#4527=VERTEX_POINT('',#4525);
--#4528=VERTEX_POINT('',#4526);
--#4529=CARTESIAN_POINT('',(1.3825E0,1.E0,1.2E1));
--#4530=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
--#4531=VERTEX_POINT('',#4529);
--#4532=VERTEX_POINT('',#4530);
--#4533=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
--#4534=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
--#4535=VERTEX_POINT('',#4533);
--#4536=VERTEX_POINT('',#4534);
--#4537=CARTESIAN_POINT('',(1.3825E0,1.E0,1.8E1));
--#4538=CARTESIAN_POINT('',(8.675E-1,1.E0,1.8E1));
--#4539=VERTEX_POINT('',#4537);
--#4540=VERTEX_POINT('',#4538);
--#4541=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
--#4542=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
--#4543=VERTEX_POINT('',#4541);
--#4544=VERTEX_POINT('',#4542);
--#4545=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
--#4546=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
--#4547=VERTEX_POINT('',#4545);
--#4548=VERTEX_POINT('',#4546);
--#4549=CARTESIAN_POINT('',(1.3825E0,1.E0,2.4E1));
--#4550=CARTESIAN_POINT('',(8.675E-1,1.E0,2.4E1));
--#4551=VERTEX_POINT('',#4549);
--#4552=VERTEX_POINT('',#4550);
--#4553=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
--#4554=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
--#4555=VERTEX_POINT('',#4553);
--#4556=VERTEX_POINT('',#4554);
--#4557=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
--#4558=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
--#4559=VERTEX_POINT('',#4557);
--#4560=VERTEX_POINT('',#4558);
--#4561=CARTESIAN_POINT('',(2.31325E1,1.E0,6.E0));
--#4562=CARTESIAN_POINT('',(2.26175E1,1.E0,6.E0));
--#4563=VERTEX_POINT('',#4561);
--#4564=VERTEX_POINT('',#4562);
--#4565=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
--#4566=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
--#4567=VERTEX_POINT('',#4565);
--#4568=VERTEX_POINT('',#4566);
--#4569=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
--#4570=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
--#4571=VERTEX_POINT('',#4569);
--#4572=VERTEX_POINT('',#4570);
--#4573=CARTESIAN_POINT('',(2.31325E1,1.E0,1.2E1));
--#4574=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
--#4575=VERTEX_POINT('',#4573);
--#4576=VERTEX_POINT('',#4574);
--#4577=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
--#4578=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
--#4579=VERTEX_POINT('',#4577);
--#4580=VERTEX_POINT('',#4578);
--#4581=CARTESIAN_POINT('',(2.31325E1,1.E0,1.8E1));
--#4582=CARTESIAN_POINT('',(2.26175E1,1.E0,1.8E1));
--#4583=VERTEX_POINT('',#4581);
--#4584=VERTEX_POINT('',#4582);
--#4585=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
--#4586=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
--#4587=VERTEX_POINT('',#4585);
--#4588=VERTEX_POINT('',#4586);
--#4589=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
--#4590=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
--#4591=VERTEX_POINT('',#4589);
--#4592=VERTEX_POINT('',#4590);
--#4593=CARTESIAN_POINT('',(2.31325E1,1.E0,2.4E1));
--#4594=CARTESIAN_POINT('',(2.26175E1,1.E0,2.4E1));
--#4595=VERTEX_POINT('',#4593);
--#4596=VERTEX_POINT('',#4594);
--#4597=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
--#4598=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
--#4599=VERTEX_POINT('',#4597);
--#4600=VERTEX_POINT('',#4598);
--#4601=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
--#4602=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
--#4603=VERTEX_POINT('',#4601);
--#4604=VERTEX_POINT('',#4602);
--#4605=CARTESIAN_POINT('',(6.1925E0,0.E0,1.25E0));
--#4606=CARTESIAN_POINT('',(5.8075E0,0.E0,1.25E0));
--#4607=VERTEX_POINT('',#4605);
--#4608=VERTEX_POINT('',#4606);
--#4609=CARTESIAN_POINT('',(6.256E0,1.E0,1.25E0));
--#4610=CARTESIAN_POINT('',(5.744E0,1.E0,1.25E0));
--#4611=VERTEX_POINT('',#4609);
--#4612=VERTEX_POINT('',#4610);
--#4613=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
--#4614=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
--#4615=VERTEX_POINT('',#4613);
--#4616=VERTEX_POINT('',#4614);
--#4617=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
--#4618=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
--#4619=VERTEX_POINT('',#4617);
--#4620=VERTEX_POINT('',#4618);
--#4621=CARTESIAN_POINT('',(1.21925E1,0.E0,1.25E0));
--#4622=CARTESIAN_POINT('',(1.18075E1,0.E0,1.25E0));
--#4623=VERTEX_POINT('',#4621);
--#4624=VERTEX_POINT('',#4622);
--#4625=CARTESIAN_POINT('',(6.1925E0,0.E0,3.075E1));
--#4626=CARTESIAN_POINT('',(5.8075E0,0.E0,3.075E1));
--#4627=VERTEX_POINT('',#4625);
--#4628=VERTEX_POINT('',#4626);
--#4629=CARTESIAN_POINT('',(1.21925E1,0.E0,3.075E1));
--#4630=CARTESIAN_POINT('',(1.18075E1,0.E0,3.075E1));
--#4631=VERTEX_POINT('',#4629);
--#4632=VERTEX_POINT('',#4630);
--#4633=CARTESIAN_POINT('',(1.81925E1,0.E0,1.25E0));
--#4634=CARTESIAN_POINT('',(1.78075E1,0.E0,1.25E0));
--#4635=VERTEX_POINT('',#4633);
--#4636=VERTEX_POINT('',#4634);
--#4637=CARTESIAN_POINT('',(1.81925E1,0.E0,3.075E1));
--#4638=CARTESIAN_POINT('',(1.78075E1,0.E0,3.075E1));
--#4639=VERTEX_POINT('',#4637);
--#4640=VERTEX_POINT('',#4638);
--#4641=CARTESIAN_POINT('',(1.2256E1,1.E0,1.25E0));
--#4642=CARTESIAN_POINT('',(1.1744E1,1.E0,1.25E0));
--#4643=VERTEX_POINT('',#4641);
--#4644=VERTEX_POINT('',#4642);
--#4645=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
--#4646=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
--#4647=VERTEX_POINT('',#4645);
--#4648=VERTEX_POINT('',#4646);
--#4649=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
--#4650=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
--#4651=VERTEX_POINT('',#4649);
--#4652=VERTEX_POINT('',#4650);
--#4653=CARTESIAN_POINT('',(1.8256E1,1.E0,1.25E0));
--#4654=CARTESIAN_POINT('',(1.7744E1,1.E0,1.25E0));
--#4655=VERTEX_POINT('',#4653);
--#4656=VERTEX_POINT('',#4654);
--#4657=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
--#4658=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
--#4659=VERTEX_POINT('',#4657);
--#4660=VERTEX_POINT('',#4658);
--#4661=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
--#4662=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
--#4663=VERTEX_POINT('',#4661);
--#4664=VERTEX_POINT('',#4662);
--#4665=CARTESIAN_POINT('',(6.256E0,1.E0,3.075E1));
--#4666=CARTESIAN_POINT('',(5.744E0,1.E0,3.075E1));
--#4667=VERTEX_POINT('',#4665);
--#4668=VERTEX_POINT('',#4666);
--#4669=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
--#4670=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
--#4671=VERTEX_POINT('',#4669);
--#4672=VERTEX_POINT('',#4670);
--#4673=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
--#4674=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
--#4675=VERTEX_POINT('',#4673);
--#4676=VERTEX_POINT('',#4674);
--#4677=CARTESIAN_POINT('',(1.2256E1,1.E0,3.075E1));
--#4678=CARTESIAN_POINT('',(1.1744E1,1.E0,3.075E1));
--#4679=VERTEX_POINT('',#4677);
--#4680=VERTEX_POINT('',#4678);
--#4681=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
--#4682=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
--#4683=VERTEX_POINT('',#4681);
--#4684=VERTEX_POINT('',#4682);
--#4685=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
--#4686=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
--#4687=VERTEX_POINT('',#4685);
--#4688=VERTEX_POINT('',#4686);
--#4689=CARTESIAN_POINT('',(1.8256E1,1.E0,3.075E1));
--#4690=CARTESIAN_POINT('',(1.7744E1,1.E0,3.075E1));
--#4691=VERTEX_POINT('',#4689);
--#4692=VERTEX_POINT('',#4690);
--#4693=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
--#4694=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
--#4695=VERTEX_POINT('',#4693);
--#4696=VERTEX_POINT('',#4694);
--#4697=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
--#4698=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
--#4699=VERTEX_POINT('',#4697);
--#4700=VERTEX_POINT('',#4698);
--#4701=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
--#4702=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
--#4703=VERTEX_POINT('',#4701);
--#4704=VERTEX_POINT('',#4702);
--#4705=CARTESIAN_POINT('',(4.4125E0,1.05E1,1.E1));
--#4706=CARTESIAN_POINT('',(4.0875E0,1.05E1,1.E1));
--#4707=VERTEX_POINT('',#4705);
--#4708=VERTEX_POINT('',#4706);
--#4709=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.25E0));
--#4710=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.25E0));
--#4711=VERTEX_POINT('',#4709);
--#4712=VERTEX_POINT('',#4710);
--#4713=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
--#4714=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
--#4715=VERTEX_POINT('',#4713);
--#4716=VERTEX_POINT('',#4714);
--#4717=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.25E0));
--#4718=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.25E0));
--#4719=VERTEX_POINT('',#4717);
--#4720=VERTEX_POINT('',#4718);
--#4721=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
--#4722=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
--#4723=VERTEX_POINT('',#4721);
--#4724=VERTEX_POINT('',#4722);
--#4725=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.25E0));
--#4726=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.25E0));
--#4727=VERTEX_POINT('',#4725);
--#4728=VERTEX_POINT('',#4726);
--#4729=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
--#4730=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
--#4731=VERTEX_POINT('',#4729);
--#4732=VERTEX_POINT('',#4730);
--#4733=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
--#4734=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
--#4735=VERTEX_POINT('',#4733);
--#4736=VERTEX_POINT('',#4734);
--#4737=CARTESIAN_POINT('',(1.95875E1,1.05E1,1.E1));
--#4738=CARTESIAN_POINT('',(1.99125E1,1.05E1,1.E1));
--#4739=VERTEX_POINT('',#4737);
--#4740=VERTEX_POINT('',#4738);
--#4741=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.25E0));
--#4742=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.25E0));
--#4743=VERTEX_POINT('',#4741);
--#4744=VERTEX_POINT('',#4742);
--#4745=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
--#4746=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
--#4747=VERTEX_POINT('',#4745);
--#4748=VERTEX_POINT('',#4746);
--#4749=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.25E0));
--#4750=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.25E0));
--#4751=VERTEX_POINT('',#4749);
--#4752=VERTEX_POINT('',#4750);
--#4753=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
--#4754=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
--#4755=VERTEX_POINT('',#4753);
--#4756=VERTEX_POINT('',#4754);
--#4757=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.25E0));
--#4758=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.25E0));
--#4759=VERTEX_POINT('',#4757);
--#4760=VERTEX_POINT('',#4758);
--#4761=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
--#4762=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
--#4763=VERTEX_POINT('',#4761);
--#4764=VERTEX_POINT('',#4762);
--#4765=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
--#4766=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
--#4767=VERTEX_POINT('',#4765);
--#4768=VERTEX_POINT('',#4766);
--#4769=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
--#4770=CARTESIAN_POINT('',(5.E0,0.E0,1.1E1));
--#4771=VERTEX_POINT('',#4769);
--#4772=VERTEX_POINT('',#4770);
--#4773=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
--#4774=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
--#4775=VERTEX_POINT('',#4773);
--#4776=VERTEX_POINT('',#4774);
--#4777=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
--#4778=CARTESIAN_POINT('',(1.9E1,1.5E0,1.1E1));
--#4779=VERTEX_POINT('',#4777);
--#4780=VERTEX_POINT('',#4778);
--#4781=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
--#4782=CARTESIAN_POINT('',(1.8E1,1.5E0,1.E1));
--#4783=VERTEX_POINT('',#4781);
--#4784=VERTEX_POINT('',#4782);
--#4785=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
--#4786=VERTEX_POINT('',#4785);
--#4787=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
--#4788=VERTEX_POINT('',#4787);
--#4789=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
--#4790=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
--#4791=VERTEX_POINT('',#4789);
--#4792=VERTEX_POINT('',#4790);
--#4793=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
--#4794=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
--#4795=VERTEX_POINT('',#4793);
--#4796=VERTEX_POINT('',#4794);
--#4797=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
--#4798=CARTESIAN_POINT('',(2.15E1,1.5E0,2.19375E1));
--#4799=VERTEX_POINT('',#4797);
--#4800=VERTEX_POINT('',#4798);
--#4801=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
--#4802=CARTESIAN_POINT('',(1.85E1,1.5E0,1.89375E1));
--#4803=VERTEX_POINT('',#4801);
--#4804=VERTEX_POINT('',#4802);
--#4805=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
--#4806=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
--#4807=VERTEX_POINT('',#4805);
--#4808=VERTEX_POINT('',#4806);
--#4809=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
--#4810=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
--#4811=VERTEX_POINT('',#4809);
--#4812=VERTEX_POINT('',#4810);
--#4813=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
--#4814=CARTESIAN_POINT('',(2.5E0,1.5E0,1.40625E1));
--#4815=VERTEX_POINT('',#4813);
--#4816=VERTEX_POINT('',#4814);
--#4817=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
--#4818=CARTESIAN_POINT('',(5.5E0,1.5E0,1.70625E1));
--#4819=VERTEX_POINT('',#4817);
--#4820=VERTEX_POINT('',#4818);
--#4821=CARTESIAN_POINT('',(6.1925E0,0.E0,9.E0));
--#4822=CARTESIAN_POINT('',(5.8075E0,0.E0,9.E0));
--#4823=VERTEX_POINT('',#4821);
--#4824=VERTEX_POINT('',#4822);
--#4825=CARTESIAN_POINT('',(6.2575E0,1.E0,9.E0));
--#4826=CARTESIAN_POINT('',(5.7425E0,1.E0,9.E0));
--#4827=VERTEX_POINT('',#4825);
--#4828=VERTEX_POINT('',#4826);
--#4829=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
--#4830=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
--#4831=VERTEX_POINT('',#4829);
--#4832=VERTEX_POINT('',#4830);
--#4833=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
--#4834=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
--#4835=VERTEX_POINT('',#4833);
--#4836=VERTEX_POINT('',#4834);
--#4837=CARTESIAN_POINT('',(1.21925E1,0.E0,9.E0));
--#4838=CARTESIAN_POINT('',(1.18075E1,0.E0,9.E0));
--#4839=VERTEX_POINT('',#4837);
--#4840=VERTEX_POINT('',#4838);
--#4841=CARTESIAN_POINT('',(1.81925E1,0.E0,9.E0));
--#4842=CARTESIAN_POINT('',(1.78075E1,0.E0,9.E0));
--#4843=VERTEX_POINT('',#4841);
--#4844=VERTEX_POINT('',#4842);
--#4845=CARTESIAN_POINT('',(6.1925E0,0.E0,1.8E1));
--#4846=CARTESIAN_POINT('',(5.8075E0,0.E0,1.8E1));
--#4847=VERTEX_POINT('',#4845);
--#4848=VERTEX_POINT('',#4846);
--#4849=CARTESIAN_POINT('',(1.21925E1,0.E0,1.8E1));
--#4850=CARTESIAN_POINT('',(1.18075E1,0.E0,1.8E1));
--#4851=VERTEX_POINT('',#4849);
--#4852=VERTEX_POINT('',#4850);
--#4853=CARTESIAN_POINT('',(1.81925E1,0.E0,1.8E1));
--#4854=CARTESIAN_POINT('',(1.78075E1,0.E0,1.8E1));
--#4855=VERTEX_POINT('',#4853);
--#4856=VERTEX_POINT('',#4854);
--#4857=CARTESIAN_POINT('',(1.22575E1,1.E0,9.E0));
--#4858=CARTESIAN_POINT('',(1.17425E1,1.E0,9.E0));
--#4859=VERTEX_POINT('',#4857);
--#4860=VERTEX_POINT('',#4858);
--#4861=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
--#4862=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
--#4863=VERTEX_POINT('',#4861);
--#4864=VERTEX_POINT('',#4862);
--#4865=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
--#4866=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
--#4867=VERTEX_POINT('',#4865);
--#4868=VERTEX_POINT('',#4866);
--#4869=CARTESIAN_POINT('',(1.82575E1,1.E0,9.E0));
--#4870=CARTESIAN_POINT('',(1.77425E1,1.E0,9.E0));
--#4871=VERTEX_POINT('',#4869);
--#4872=VERTEX_POINT('',#4870);
--#4873=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
--#4874=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
--#4875=VERTEX_POINT('',#4873);
--#4876=VERTEX_POINT('',#4874);
--#4877=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
--#4878=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
--#4879=VERTEX_POINT('',#4877);
--#4880=VERTEX_POINT('',#4878);
--#4881=CARTESIAN_POINT('',(6.2575E0,1.E0,1.8E1));
--#4882=CARTESIAN_POINT('',(5.7425E0,1.E0,1.8E1));
--#4883=VERTEX_POINT('',#4881);
--#4884=VERTEX_POINT('',#4882);
--#4885=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
--#4886=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
--#4887=VERTEX_POINT('',#4885);
--#4888=VERTEX_POINT('',#4886);
--#4889=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
--#4890=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
--#4891=VERTEX_POINT('',#4889);
--#4892=VERTEX_POINT('',#4890);
--#4893=CARTESIAN_POINT('',(1.22575E1,1.E0,1.8E1));
--#4894=CARTESIAN_POINT('',(1.17425E1,1.E0,1.8E1));
--#4895=VERTEX_POINT('',#4893);
--#4896=VERTEX_POINT('',#4894);
--#4897=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
--#4898=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
--#4899=VERTEX_POINT('',#4897);
--#4900=VERTEX_POINT('',#4898);
--#4901=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
--#4902=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
--#4903=VERTEX_POINT('',#4901);
--#4904=VERTEX_POINT('',#4902);
--#4905=CARTESIAN_POINT('',(1.82575E1,1.E0,1.8E1));
--#4906=CARTESIAN_POINT('',(1.77425E1,1.E0,1.8E1));
--#4907=VERTEX_POINT('',#4905);
--#4908=VERTEX_POINT('',#4906);
--#4909=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
--#4910=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
--#4911=VERTEX_POINT('',#4909);
--#4912=VERTEX_POINT('',#4910);
--#4913=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
--#4914=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
--#4915=VERTEX_POINT('',#4913);
--#4916=VERTEX_POINT('',#4914);
--#4917=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
--#4918=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
--#4919=VERTEX_POINT('',#4917);
--#4920=VERTEX_POINT('',#4918);
--#4921=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
--#4922=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
--#4923=VERTEX_POINT('',#4921);
--#4924=VERTEX_POINT('',#4922);
--#4925=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
--#4926=VERTEX_POINT('',#4925);
--#4927=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
--#4928=VERTEX_POINT('',#4927);
--#4929=VERTEX_POINT('',#1837);
--#4930=VERTEX_POINT('',#1845);
--#4931=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
--#4932=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
--#4933=VERTEX_POINT('',#4931);
--#4934=VERTEX_POINT('',#4932);
--#4935=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
--#4936=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
--#4937=VERTEX_POINT('',#4935);
--#4938=VERTEX_POINT('',#4936);
--#4939=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
--#4940=VERTEX_POINT('',#4939);
--#4941=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
--#4942=VERTEX_POINT('',#4941);
--#4943=VERTEX_POINT('',#2873);
--#4944=VERTEX_POINT('',#2881);
--#4945=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
--#4946=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
--#4947=VERTEX_POINT('',#4945);
--#4948=VERTEX_POINT('',#4946);
--#4949=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
--#4950=CARTESIAN_POINT('',(4.5E0,2.75E0,8.5E0));
--#4951=VERTEX_POINT('',#4949);
--#4952=VERTEX_POINT('',#4950);
--#4953=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
--#4954=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
--#4955=VERTEX_POINT('',#4953);
--#4956=VERTEX_POINT('',#4954);
--#4957=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
--#4958=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.5E0));
--#4959=VERTEX_POINT('',#4957);
--#4960=VERTEX_POINT('',#4958);
--#4961=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
--#4962=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
--#4963=VERTEX_POINT('',#4961);
--#4964=VERTEX_POINT('',#4962);
--#4965=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
--#4966=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.5E0));
--#4967=VERTEX_POINT('',#4965);
--#4968=VERTEX_POINT('',#4966);
--#4969=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
--#4970=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
--#4971=VERTEX_POINT('',#4969);
--#4972=VERTEX_POINT('',#4970);
--#4973=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
--#4974=CARTESIAN_POINT('',(3.75E0,9.5E0,8.5E0));
--#4975=VERTEX_POINT('',#4973);
--#4976=VERTEX_POINT('',#4974);
--#4977=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
--#4978=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
--#4979=VERTEX_POINT('',#4977);
--#4980=VERTEX_POINT('',#4978);
--#4981=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
--#4982=CARTESIAN_POINT('',(2.5E0,2.35E0,9.5E0));
--#4983=VERTEX_POINT('',#4981);
--#4984=VERTEX_POINT('',#4982);
--#4985=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
--#4986=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
--#4987=VERTEX_POINT('',#4985);
--#4988=VERTEX_POINT('',#4986);
--#4989=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
--#4990=CARTESIAN_POINT('',(4.15E0,2.E0,9.5E0));
--#4991=VERTEX_POINT('',#4989);
--#4992=VERTEX_POINT('',#4990);
--#4993=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
--#4994=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
--#4995=VERTEX_POINT('',#4993);
--#4996=VERTEX_POINT('',#4994);
--#4997=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
--#4998=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,9.5E0));
--#4999=VERTEX_POINT('',#4997);
--#5000=VERTEX_POINT('',#4998);
--#5001=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
--#5002=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
--#5003=VERTEX_POINT('',#5001);
--#5004=VERTEX_POINT('',#5002);
--#5005=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
--#5006=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,9.5E0));
--#5007=VERTEX_POINT('',#5005);
--#5008=VERTEX_POINT('',#5006);
--#5009=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
--#5010=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
--#5011=VERTEX_POINT('',#5009);
--#5012=VERTEX_POINT('',#5010);
--#5013=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
--#5014=CARTESIAN_POINT('',(4.5E0,9.15E0,9.5E0));
--#5015=VERTEX_POINT('',#5013);
--#5016=VERTEX_POINT('',#5014);
--#5017=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
--#5018=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
--#5019=VERTEX_POINT('',#5017);
--#5020=VERTEX_POINT('',#5018);
--#5021=CARTESIAN_POINT('',(2.15E0,7.E0,1.E1));
--#5022=VERTEX_POINT('',#5021);
--#5023=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
--#5024=VERTEX_POINT('',#5023);
--#5025=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
--#5026=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
--#5027=VERTEX_POINT('',#5025);
--#5028=VERTEX_POINT('',#5026);
--#5029=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
--#5030=VERTEX_POINT('',#5029);
--#5031=CARTESIAN_POINT('',(1.95E1,2.75E0,8.E0));
--#5032=VERTEX_POINT('',#5031);
--#5033=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
--#5034=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
--#5035=VERTEX_POINT('',#5033);
--#5036=VERTEX_POINT('',#5034);
--#5037=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
--#5038=VERTEX_POINT('',#5037);
--#5039=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.E0));
--#5040=VERTEX_POINT('',#5039);
--#5041=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
--#5042=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
--#5043=VERTEX_POINT('',#5041);
--#5044=VERTEX_POINT('',#5042);
--#5045=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
--#5046=VERTEX_POINT('',#5045);
--#5047=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.E0));
--#5048=VERTEX_POINT('',#5047);
--#5049=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
--#5050=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
--#5051=VERTEX_POINT('',#5049);
--#5052=VERTEX_POINT('',#5050);
--#5053=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
--#5054=VERTEX_POINT('',#5053);
--#5055=CARTESIAN_POINT('',(2.025E1,9.5E0,8.E0));
--#5056=VERTEX_POINT('',#5055);
--#5057=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
--#5058=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
--#5059=VERTEX_POINT('',#5057);
--#5060=VERTEX_POINT('',#5058);
--#5061=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
--#5062=VERTEX_POINT('',#5061);
--#5063=CARTESIAN_POINT('',(2.15E1,2.35E0,1.E1));
--#5064=VERTEX_POINT('',#5063);
--#5065=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
--#5066=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
--#5067=VERTEX_POINT('',#5065);
--#5068=VERTEX_POINT('',#5066);
--#5069=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
--#5070=VERTEX_POINT('',#5069);
--#5071=CARTESIAN_POINT('',(1.985E1,2.E0,1.E1));
--#5072=VERTEX_POINT('',#5071);
--#5073=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
--#5074=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
--#5075=VERTEX_POINT('',#5073);
--#5076=VERTEX_POINT('',#5074);
--#5077=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
--#5078=VERTEX_POINT('',#5077);
--#5079=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,1.E1));
--#5080=VERTEX_POINT('',#5079);
--#5081=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
--#5082=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
--#5083=VERTEX_POINT('',#5081);
--#5084=VERTEX_POINT('',#5082);
--#5085=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
--#5086=VERTEX_POINT('',#5085);
--#5087=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,1.E1));
--#5088=VERTEX_POINT('',#5087);
--#5089=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
--#5090=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
--#5091=VERTEX_POINT('',#5089);
--#5092=VERTEX_POINT('',#5090);
--#5093=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
--#5094=VERTEX_POINT('',#5093);
--#5095=CARTESIAN_POINT('',(1.95E1,9.15E0,1.E1));
--#5096=VERTEX_POINT('',#5095);
--#5097=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
--#5098=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
--#5099=VERTEX_POINT('',#5097);
--#5100=VERTEX_POINT('',#5098);
--#5101=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
--#5102=CARTESIAN_POINT('',(2.185E1,7.E0,9.5E0));
--#5103=VERTEX_POINT('',#5101);
--#5104=VERTEX_POINT('',#5102);
--#5105=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
--#5106=CARTESIAN_POINT('',(1.05E1,6.875E-1,6.875E-1));
--#5107=VERTEX_POINT('',#5105);
--#5108=VERTEX_POINT('',#5106);
--#5109=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
--#5110=VERTEX_POINT('',#5109);
--#5111=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8125E0));
--#5112=VERTEX_POINT('',#5111);
--#5113=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,1.032293285145E0));
--#5114=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.419779663480E0));
--#5115=VERTEX_POINT('',#5113);
--#5116=VERTEX_POINT('',#5114);
--#5117=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,4.918683812405E0));
--#5118=VERTEX_POINT('',#5117);
--#5119=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
--#5120=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
--#5121=VERTEX_POINT('',#5119);
--#5122=VERTEX_POINT('',#5120);
--#5123=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
--#5124=VERTEX_POINT('',#5123);
--#5125=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
--#5126=VERTEX_POINT('',#5125);
--#5127=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
--#5128=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
--#5129=VERTEX_POINT('',#5127);
--#5130=VERTEX_POINT('',#5128);
--#5131=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
--#5132=VERTEX_POINT('',#5131);
--#5133=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
--#5134=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
--#5135=VERTEX_POINT('',#5133);
--#5136=VERTEX_POINT('',#5134);
--#5137=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
--#5138=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,4.912826677187E0));
--#5139=VERTEX_POINT('',#5137);
--#5140=VERTEX_POINT('',#5138);
--#5141=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.5E0));
--#5142=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
--#5143=VERTEX_POINT('',#5141);
--#5144=VERTEX_POINT('',#5142);
--#5145=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
--#5146=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
--#5147=VERTEX_POINT('',#5145);
--#5148=VERTEX_POINT('',#5146);
--#5149=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
--#5150=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
--#5151=VERTEX_POINT('',#5149);
--#5152=VERTEX_POINT('',#5150);
--#5153=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
--#5154=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.125E1));
--#5155=VERTEX_POINT('',#5153);
--#5156=VERTEX_POINT('',#5154);
--#5157=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
--#5158=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
--#5159=VERTEX_POINT('',#5157);
--#5160=VERTEX_POINT('',#5158);
--#5161=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
--#5162=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,9.565E0));
--#5163=VERTEX_POINT('',#5161);
--#5164=VERTEX_POINT('',#5162);
--#5165=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
--#5166=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
--#5167=VERTEX_POINT('',#5165);
--#5168=VERTEX_POINT('',#5166);
--#5169=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
--#5170=CARTESIAN_POINT('',(3.4375E0,6.875E-1,8.69E0));
--#5171=VERTEX_POINT('',#5169);
--#5172=VERTEX_POINT('',#5170);
--#5173=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
--#5174=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
--#5175=VERTEX_POINT('',#5173);
--#5176=VERTEX_POINT('',#5174);
--#5177=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
--#5178=CARTESIAN_POINT('',(4.3125E0,6.875E-1,1.0375E1));
--#5179=VERTEX_POINT('',#5177);
--#5180=VERTEX_POINT('',#5178);
--#5181=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
--#5182=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
--#5183=VERTEX_POINT('',#5181);
--#5184=VERTEX_POINT('',#5182);
--#5185=CARTESIAN_POINT('',(-1.85E-1,0.E0,8.69E0));
--#5186=VERTEX_POINT('',#5185);
--#5187=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
--#5188=VERTEX_POINT('',#5187);
--#5189=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
--#5190=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
--#5191=VERTEX_POINT('',#5189);
--#5192=VERTEX_POINT('',#5190);
--#5193=CARTESIAN_POINT('',(1.8125E0,0.E0,7.815E0));
--#5194=VERTEX_POINT('',#5193);
--#5195=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
--#5196=VERTEX_POINT('',#5195);
--#5197=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
--#5198=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.35E1));
--#5199=VERTEX_POINT('',#5197);
--#5200=VERTEX_POINT('',#5198);
--#5201=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
--#5202=VERTEX_POINT('',#5201);
--#5203=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.65E1));
--#5204=VERTEX_POINT('',#5203);
--#5205=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
--#5206=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
--#5207=VERTEX_POINT('',#5205);
--#5208=VERTEX_POINT('',#5206);
--#5209=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
--#5210=VERTEX_POINT('',#5209);
--#5211=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
--#5212=VERTEX_POINT('',#5211);
--#5213=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
--#5214=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.95E1));
--#5215=VERTEX_POINT('',#5213);
--#5216=VERTEX_POINT('',#5214);
--#5217=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
--#5218=VERTEX_POINT('',#5217);
--#5219=CARTESIAN_POINT('',(1.8125E0,6.875E-1,2.25E1));
--#5220=VERTEX_POINT('',#5219);
--#5221=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
--#5222=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
--#5223=VERTEX_POINT('',#5221);
--#5224=VERTEX_POINT('',#5222);
--#5225=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
--#5226=VERTEX_POINT('',#5225);
--#5227=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
--#5228=VERTEX_POINT('',#5227);
--#5229=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
--#5230=CARTESIAN_POINT('',(1.05E1,6.875E-1,8.5E0));
--#5231=VERTEX_POINT('',#5229);
--#5232=VERTEX_POINT('',#5230);
--#5233=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
--#5234=VERTEX_POINT('',#5233);
--#5235=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.5E0));
--#5236=VERTEX_POINT('',#5235);
--#5237=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
--#5238=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
--#5239=VERTEX_POINT('',#5237);
--#5240=VERTEX_POINT('',#5238);
--#5241=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
--#5242=VERTEX_POINT('',#5241);
--#5243=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
--#5244=VERTEX_POINT('',#5243);
--#5245=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
--#5246=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.75625E1));
--#5247=VERTEX_POINT('',#5245);
--#5248=VERTEX_POINT('',#5246);
--#5249=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
--#5250=VERTEX_POINT('',#5249);
--#5251=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.84375E1));
--#5252=VERTEX_POINT('',#5251);
--#5253=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
--#5254=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
--#5255=VERTEX_POINT('',#5253);
--#5256=VERTEX_POINT('',#5254);
--#5257=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
--#5258=VERTEX_POINT('',#5257);
--#5259=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
--#5260=VERTEX_POINT('',#5259);
--#5261=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
--#5262=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.13125E1));
--#5263=VERTEX_POINT('',#5261);
--#5264=VERTEX_POINT('',#5262);
--#5265=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
--#5266=VERTEX_POINT('',#5265);
--#5267=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.01875E1));
--#5268=VERTEX_POINT('',#5267);
--#5269=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,3.096770671486E1));
--#5270=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.958022033652E1));
--#5271=VERTEX_POINT('',#5269);
--#5272=VERTEX_POINT('',#5270);
--#5273=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,2.708131618759E1));
--#5274=VERTEX_POINT('',#5273);
--#5275=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
--#5276=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
--#5277=VERTEX_POINT('',#5275);
--#5278=VERTEX_POINT('',#5276);
--#5279=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
--#5280=VERTEX_POINT('',#5279);
--#5281=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
--#5282=VERTEX_POINT('',#5281);
--#5283=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
--#5284=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
--#5285=VERTEX_POINT('',#5283);
--#5286=VERTEX_POINT('',#5284);
--#5287=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
--#5288=VERTEX_POINT('',#5287);
--#5289=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
--#5290=CARTESIAN_POINT('',(1.35E1,6.875E-1,6.875E-1));
--#5291=VERTEX_POINT('',#5289);
--#5292=VERTEX_POINT('',#5290);
--#5293=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
--#5294=VERTEX_POINT('',#5293);
--#5295=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8125E0));
--#5296=VERTEX_POINT('',#5295);
--#5297=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,1.032293285145E0));
--#5298=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.419779663480E0));
--#5299=VERTEX_POINT('',#5297);
--#5300=VERTEX_POINT('',#5298);
--#5301=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,4.918683812405E0));
--#5302=VERTEX_POINT('',#5301);
--#5303=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
--#5304=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
--#5305=VERTEX_POINT('',#5303);
--#5306=VERTEX_POINT('',#5304);
--#5307=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
--#5308=VERTEX_POINT('',#5307);
--#5309=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
--#5310=VERTEX_POINT('',#5309);
--#5311=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
--#5312=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
--#5313=VERTEX_POINT('',#5311);
--#5314=VERTEX_POINT('',#5312);
--#5315=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
--#5316=VERTEX_POINT('',#5315);
--#5317=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.5E0));
--#5318=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
--#5319=VERTEX_POINT('',#5317);
--#5320=VERTEX_POINT('',#5318);
--#5321=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
--#5322=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
--#5323=VERTEX_POINT('',#5321);
--#5324=VERTEX_POINT('',#5322);
--#5325=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
--#5326=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.35E1));
--#5327=VERTEX_POINT('',#5325);
--#5328=VERTEX_POINT('',#5326);
--#5329=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
--#5330=VERTEX_POINT('',#5329);
--#5331=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.65E1));
--#5332=VERTEX_POINT('',#5331);
--#5333=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
--#5334=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
--#5335=VERTEX_POINT('',#5333);
--#5336=VERTEX_POINT('',#5334);
--#5337=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
--#5338=VERTEX_POINT('',#5337);
--#5339=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
--#5340=VERTEX_POINT('',#5339);
--#5341=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
--#5342=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.95E1));
--#5343=VERTEX_POINT('',#5341);
--#5344=VERTEX_POINT('',#5342);
--#5345=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
--#5346=VERTEX_POINT('',#5345);
--#5347=CARTESIAN_POINT('',(2.21875E1,6.875E-1,2.25E1));
--#5348=VERTEX_POINT('',#5347);
--#5349=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
--#5350=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
--#5351=VERTEX_POINT('',#5349);
--#5352=VERTEX_POINT('',#5350);
--#5353=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
--#5354=VERTEX_POINT('',#5353);
--#5355=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
--#5356=VERTEX_POINT('',#5355);
--#5357=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
--#5358=CARTESIAN_POINT('',(1.35E1,6.875E-1,8.5E0));
--#5359=VERTEX_POINT('',#5357);
--#5360=VERTEX_POINT('',#5358);
--#5361=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
--#5362=VERTEX_POINT('',#5361);
--#5363=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.5E0));
--#5364=VERTEX_POINT('',#5363);
--#5365=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
--#5366=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
--#5367=VERTEX_POINT('',#5365);
--#5368=VERTEX_POINT('',#5366);
--#5369=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
--#5370=VERTEX_POINT('',#5369);
--#5371=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
--#5372=VERTEX_POINT('',#5371);
--#5373=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
--#5374=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.75625E1));
--#5375=VERTEX_POINT('',#5373);
--#5376=VERTEX_POINT('',#5374);
--#5377=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
--#5378=VERTEX_POINT('',#5377);
--#5379=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.84375E1));
--#5380=VERTEX_POINT('',#5379);
--#5381=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
--#5382=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
--#5383=VERTEX_POINT('',#5381);
--#5384=VERTEX_POINT('',#5382);
--#5385=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
--#5386=VERTEX_POINT('',#5385);
--#5387=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
--#5388=VERTEX_POINT('',#5387);
--#5389=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
--#5390=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.13125E1));
--#5391=VERTEX_POINT('',#5389);
--#5392=VERTEX_POINT('',#5390);
--#5393=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
--#5394=VERTEX_POINT('',#5393);
--#5395=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.01875E1));
--#5396=VERTEX_POINT('',#5395);
--#5397=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,3.096770671486E1));
--#5398=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.958022033652E1));
--#5399=VERTEX_POINT('',#5397);
--#5400=VERTEX_POINT('',#5398);
--#5401=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,2.708131618759E1));
--#5402=VERTEX_POINT('',#5401);
--#5403=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
--#5404=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
--#5405=VERTEX_POINT('',#5403);
--#5406=VERTEX_POINT('',#5404);
--#5407=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
--#5408=VERTEX_POINT('',#5407);
--#5409=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
--#5410=VERTEX_POINT('',#5409);
--#5411=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
--#5412=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
--#5413=VERTEX_POINT('',#5411);
--#5414=VERTEX_POINT('',#5412);
--#5415=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
--#5416=VERTEX_POINT('',#5415);
--#5417=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
--#5418=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
--#5419=VERTEX_POINT('',#5417);
--#5420=VERTEX_POINT('',#5418);
--#5421=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
--#5422=VERTEX_POINT('',#5421);
--#5423=CARTESIAN_POINT('',(2.05675E1,0.E0,8.69E0));
--#5424=VERTEX_POINT('',#5423);
--#5425=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
--#5426=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
--#5427=VERTEX_POINT('',#5425);
--#5428=VERTEX_POINT('',#5426);
--#5429=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
--#5430=VERTEX_POINT('',#5429);
--#5431=CARTESIAN_POINT('',(1.96875E1,0.E0,1.037E1));
--#5432=VERTEX_POINT('',#5431);
--#5433=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
--#5434=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
--#5435=VERTEX_POINT('',#5433);
--#5436=VERTEX_POINT('',#5434);
--#5437=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
--#5438=VERTEX_POINT('',#5437);
--#5439=CARTESIAN_POINT('',(2.53125E1,0.E0,9.57E0));
--#5440=VERTEX_POINT('',#5439);
--#5441=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
--#5442=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
--#5443=VERTEX_POINT('',#5441);
--#5444=VERTEX_POINT('',#5442);
--#5445=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
--#5446=VERTEX_POINT('',#5445);
--#5447=CARTESIAN_POINT('',(2.44325E1,0.E0,1.125E1));
--#5448=VERTEX_POINT('',#5447);
--#5449=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
--#5450=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
--#5451=VERTEX_POINT('',#5449);
--#5452=VERTEX_POINT('',#5450);
--#5453=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
--#5454=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.81E0));
--#5455=VERTEX_POINT('',#5453);
--#5456=VERTEX_POINT('',#5454);
--#5457=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
--#5458=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
--#5459=VERTEX_POINT('',#5457);
--#5460=VERTEX_POINT('',#5458);
--#5461=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
--#5462=CARTESIAN_POINT('',(2.419E1,6.875E-1,8.69E0));
--#5463=VERTEX_POINT('',#5461);
--#5464=VERTEX_POINT('',#5462);
--#5465=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
--#5466=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,4.912826677187E0));
--#5467=VERTEX_POINT('',#5465);
--#5468=VERTEX_POINT('',#5466);
--#5469=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
--#5470=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
--#5471=VERTEX_POINT('',#5469);
--#5472=VERTEX_POINT('',#5470);
--#5473=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
--#5474=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,2.708717332281E1));
--#5475=VERTEX_POINT('',#5473);
--#5476=VERTEX_POINT('',#5474);
--#5477=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
--#5478=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
--#5479=VERTEX_POINT('',#5477);
--#5480=VERTEX_POINT('',#5478);
--#5481=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
--#5482=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
--#5483=VERTEX_POINT('',#5481);
--#5484=VERTEX_POINT('',#5482);
--#5485=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
--#5486=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,2.708717332281E1));
--#5487=VERTEX_POINT('',#5485);
--#5488=VERTEX_POINT('',#5486);
--#5489=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
--#5490=DIRECTION('',(0.E0,1.E0,0.E0));
--#5491=DIRECTION('',(1.E0,0.E0,0.E0));
--#5492=AXIS2_PLACEMENT_3D('',#5489,#5490,#5491);
--#5493=PLANE('',#5492);
--#5495=ORIENTED_EDGE('',*,*,#5494,.F.);
--#5497=ORIENTED_EDGE('',*,*,#5496,.F.);
--#5499=ORIENTED_EDGE('',*,*,#5498,.T.);
--#5501=ORIENTED_EDGE('',*,*,#5500,.F.);
--#5503=ORIENTED_EDGE('',*,*,#5502,.T.);
--#5505=ORIENTED_EDGE('',*,*,#5504,.F.);
--#5507=ORIENTED_EDGE('',*,*,#5506,.T.);
--#5509=ORIENTED_EDGE('',*,*,#5508,.F.);
--#5511=ORIENTED_EDGE('',*,*,#5510,.T.);
--#5513=ORIENTED_EDGE('',*,*,#5512,.T.);
--#5515=ORIENTED_EDGE('',*,*,#5514,.F.);
--#5517=ORIENTED_EDGE('',*,*,#5516,.T.);
--#5519=ORIENTED_EDGE('',*,*,#5518,.F.);
--#5521=ORIENTED_EDGE('',*,*,#5520,.T.);
--#5523=ORIENTED_EDGE('',*,*,#5522,.F.);
--#5525=ORIENTED_EDGE('',*,*,#5524,.T.);
--#5527=ORIENTED_EDGE('',*,*,#5526,.F.);
--#5529=ORIENTED_EDGE('',*,*,#5528,.T.);
--#5531=ORIENTED_EDGE('',*,*,#5530,.F.);
--#5533=ORIENTED_EDGE('',*,*,#5532,.F.);
--#5535=ORIENTED_EDGE('',*,*,#5534,.T.);
--#5537=ORIENTED_EDGE('',*,*,#5536,.F.);
--#5538=EDGE_LOOP('',(#5495,#5497,#5499,#5501,#5503,#5505,#5507,#5509,#5511,#5513,
--#5515,#5517,#5519,#5521,#5523,#5525,#5527,#5529,#5531,#5533,#5535,#5537));
--#5539=FACE_OUTER_BOUND('',#5538,.F.);
--#5541=ORIENTED_EDGE('',*,*,#5540,.T.);
--#5543=ORIENTED_EDGE('',*,*,#5542,.F.);
--#5545=ORIENTED_EDGE('',*,*,#5544,.F.);
--#5547=ORIENTED_EDGE('',*,*,#5546,.F.);
--#5549=ORIENTED_EDGE('',*,*,#5548,.F.);
--#5551=ORIENTED_EDGE('',*,*,#5550,.F.);
--#5552=EDGE_LOOP('',(#5541,#5543,#5545,#5547,#5549,#5551));
--#5553=FACE_BOUND('',#5552,.F.);
--#5555=ORIENTED_EDGE('',*,*,#5554,.T.);
--#5557=ORIENTED_EDGE('',*,*,#5556,.T.);
--#5558=EDGE_LOOP('',(#5555,#5557));
--#5559=FACE_BOUND('',#5558,.F.);
--#5561=ORIENTED_EDGE('',*,*,#5560,.T.);
--#5563=ORIENTED_EDGE('',*,*,#5562,.T.);
--#5564=EDGE_LOOP('',(#5561,#5563));
--#5565=FACE_BOUND('',#5564,.F.);
--#5567=ORIENTED_EDGE('',*,*,#5566,.T.);
--#5569=ORIENTED_EDGE('',*,*,#5568,.T.);
--#5570=EDGE_LOOP('',(#5567,#5569));
--#5571=FACE_BOUND('',#5570,.F.);
--#5573=ORIENTED_EDGE('',*,*,#5572,.T.);
--#5575=ORIENTED_EDGE('',*,*,#5574,.T.);
--#5576=EDGE_LOOP('',(#5573,#5575));
--#5577=FACE_BOUND('',#5576,.F.);
--#5579=ORIENTED_EDGE('',*,*,#5578,.T.);
--#5581=ORIENTED_EDGE('',*,*,#5580,.T.);
--#5582=EDGE_LOOP('',(#5579,#5581));
--#5583=FACE_BOUND('',#5582,.F.);
--#5585=ORIENTED_EDGE('',*,*,#5584,.T.);
--#5587=ORIENTED_EDGE('',*,*,#5586,.T.);
--#5588=EDGE_LOOP('',(#5585,#5587));
--#5589=FACE_BOUND('',#5588,.F.);
--#5591=ORIENTED_EDGE('',*,*,#5590,.T.);
--#5593=ORIENTED_EDGE('',*,*,#5592,.T.);
--#5594=EDGE_LOOP('',(#5591,#5593));
--#5595=FACE_BOUND('',#5594,.F.);
--#5597=ORIENTED_EDGE('',*,*,#5596,.T.);
--#5599=ORIENTED_EDGE('',*,*,#5598,.T.);
--#5600=EDGE_LOOP('',(#5597,#5599));
--#5601=FACE_BOUND('',#5600,.F.);
--#5603=ORIENTED_EDGE('',*,*,#5602,.T.);
--#5605=ORIENTED_EDGE('',*,*,#5604,.T.);
--#5606=EDGE_LOOP('',(#5603,#5605));
--#5607=FACE_BOUND('',#5606,.F.);
--#5609=ORIENTED_EDGE('',*,*,#5608,.T.);
--#5611=ORIENTED_EDGE('',*,*,#5610,.T.);
--#5612=EDGE_LOOP('',(#5609,#5611));
--#5613=FACE_BOUND('',#5612,.F.);
--#5615=ORIENTED_EDGE('',*,*,#5614,.T.);
--#5617=ORIENTED_EDGE('',*,*,#5616,.T.);
--#5618=EDGE_LOOP('',(#5615,#5617));
--#5619=FACE_BOUND('',#5618,.F.);
--#5621=ORIENTED_EDGE('',*,*,#5620,.T.);
--#5623=ORIENTED_EDGE('',*,*,#5622,.T.);
--#5624=EDGE_LOOP('',(#5621,#5623));
--#5625=FACE_BOUND('',#5624,.F.);
--#5627=ORIENTED_EDGE('',*,*,#5626,.T.);
--#5629=ORIENTED_EDGE('',*,*,#5628,.T.);
--#5630=EDGE_LOOP('',(#5627,#5629));
--#5631=FACE_BOUND('',#5630,.F.);
--#5633=ORIENTED_EDGE('',*,*,#5632,.T.);
--#5635=ORIENTED_EDGE('',*,*,#5634,.T.);
--#5636=EDGE_LOOP('',(#5633,#5635));
--#5637=FACE_BOUND('',#5636,.F.);
--#5639=ORIENTED_EDGE('',*,*,#5638,.T.);
--#5641=ORIENTED_EDGE('',*,*,#5640,.F.);
--#5643=ORIENTED_EDGE('',*,*,#5642,.F.);
--#5645=ORIENTED_EDGE('',*,*,#5644,.F.);
--#5647=ORIENTED_EDGE('',*,*,#5646,.F.);
--#5649=ORIENTED_EDGE('',*,*,#5648,.F.);
--#5651=ORIENTED_EDGE('',*,*,#5650,.F.);
--#5653=ORIENTED_EDGE('',*,*,#5652,.F.);
--#5654=EDGE_LOOP('',(#5639,#5641,#5643,#5645,#5647,#5649,#5651,#5653));
--#5655=FACE_BOUND('',#5654,.F.);
--#5657=ORIENTED_EDGE('',*,*,#5656,.F.);
--#5659=ORIENTED_EDGE('',*,*,#5658,.F.);
--#5661=ORIENTED_EDGE('',*,*,#5660,.T.);
--#5663=ORIENTED_EDGE('',*,*,#5662,.F.);
--#5665=ORIENTED_EDGE('',*,*,#5664,.F.);
--#5667=ORIENTED_EDGE('',*,*,#5666,.F.);
--#5669=ORIENTED_EDGE('',*,*,#5668,.T.);
--#5671=ORIENTED_EDGE('',*,*,#5670,.F.);
--#5673=ORIENTED_EDGE('',*,*,#5672,.T.);
--#5675=ORIENTED_EDGE('',*,*,#5674,.F.);
--#5677=ORIENTED_EDGE('',*,*,#5676,.T.);
--#5679=ORIENTED_EDGE('',*,*,#5678,.F.);
--#5681=ORIENTED_EDGE('',*,*,#5680,.F.);
--#5683=ORIENTED_EDGE('',*,*,#5682,.T.);
--#5685=ORIENTED_EDGE('',*,*,#5684,.F.);
--#5687=ORIENTED_EDGE('',*,*,#5686,.F.);
--#5688=EDGE_LOOP('',(#5657,#5659,#5661,#5663,#5665,#5667,#5669,#5671,#5673,#5675,
--#5677,#5679,#5681,#5683,#5685,#5687));
--#5689=FACE_BOUND('',#5688,.F.);
--#5691=ORIENTED_EDGE('',*,*,#5690,.T.);
--#5693=ORIENTED_EDGE('',*,*,#5692,.T.);
--#5694=EDGE_LOOP('',(#5691,#5693));
--#5695=FACE_BOUND('',#5694,.F.);
--#5697=ORIENTED_EDGE('',*,*,#5696,.T.);
--#5699=ORIENTED_EDGE('',*,*,#5698,.T.);
--#5700=EDGE_LOOP('',(#5697,#5699));
--#5701=FACE_BOUND('',#5700,.F.);
--#5703=ORIENTED_EDGE('',*,*,#5702,.T.);
--#5705=ORIENTED_EDGE('',*,*,#5704,.T.);
--#5706=EDGE_LOOP('',(#5703,#5705));
--#5707=FACE_BOUND('',#5706,.F.);
--#5709=ORIENTED_EDGE('',*,*,#5708,.T.);
--#5711=ORIENTED_EDGE('',*,*,#5710,.T.);
--#5712=EDGE_LOOP('',(#5709,#5711));
--#5713=FACE_BOUND('',#5712,.F.);
--#5715=ORIENTED_EDGE('',*,*,#5714,.T.);
--#5717=ORIENTED_EDGE('',*,*,#5716,.T.);
--#5718=EDGE_LOOP('',(#5715,#5717));
--#5719=FACE_BOUND('',#5718,.F.);
--#5721=ORIENTED_EDGE('',*,*,#5720,.T.);
--#5723=ORIENTED_EDGE('',*,*,#5722,.T.);
--#5724=EDGE_LOOP('',(#5721,#5723));
--#5725=FACE_BOUND('',#5724,.F.);
--#5727=ORIENTED_EDGE('',*,*,#5726,.T.);
--#5729=ORIENTED_EDGE('',*,*,#5728,.T.);
--#5731=ORIENTED_EDGE('',*,*,#5730,.T.);
--#5733=ORIENTED_EDGE('',*,*,#5732,.T.);
--#5734=EDGE_LOOP('',(#5727,#5729,#5731,#5733));
--#5735=FACE_BOUND('',#5734,.F.);
--#5737=ORIENTED_EDGE('',*,*,#5736,.T.);
--#5739=ORIENTED_EDGE('',*,*,#5738,.F.);
--#5741=ORIENTED_EDGE('',*,*,#5740,.T.);
--#5743=ORIENTED_EDGE('',*,*,#5742,.T.);
--#5745=ORIENTED_EDGE('',*,*,#5744,.F.);
--#5746=EDGE_LOOP('',(#5737,#5739,#5741,#5743,#5745));
--#5747=FACE_BOUND('',#5746,.F.);
--#5749=ORIENTED_EDGE('',*,*,#5748,.F.);
--#5751=ORIENTED_EDGE('',*,*,#5750,.T.);
--#5753=ORIENTED_EDGE('',*,*,#5752,.T.);
--#5755=ORIENTED_EDGE('',*,*,#5754,.T.);
--#5757=ORIENTED_EDGE('',*,*,#5756,.F.);
--#5759=ORIENTED_EDGE('',*,*,#5758,.T.);
--#5761=ORIENTED_EDGE('',*,*,#5760,.F.);
--#5763=ORIENTED_EDGE('',*,*,#5762,.T.);
--#5765=ORIENTED_EDGE('',*,*,#5764,.F.);
--#5767=ORIENTED_EDGE('',*,*,#5766,.T.);
--#5769=ORIENTED_EDGE('',*,*,#5768,.F.);
--#5771=ORIENTED_EDGE('',*,*,#5770,.T.);
--#5773=ORIENTED_EDGE('',*,*,#5772,.F.);
--#5775=ORIENTED_EDGE('',*,*,#5774,.T.);
--#5776=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5759,#5761,#5763,#5765,#5767,
--#5769,#5771,#5773,#5775));
--#5777=FACE_BOUND('',#5776,.F.);
--#5779=ORIENTED_EDGE('',*,*,#5778,.T.);
--#5781=ORIENTED_EDGE('',*,*,#5780,.T.);
--#5783=ORIENTED_EDGE('',*,*,#5782,.T.);
--#5785=ORIENTED_EDGE('',*,*,#5784,.T.);
--#5786=EDGE_LOOP('',(#5779,#5781,#5783,#5785));
--#5787=FACE_BOUND('',#5786,.F.);
--#5789=ORIENTED_EDGE('',*,*,#5788,.T.);
--#5791=ORIENTED_EDGE('',*,*,#5790,.T.);
--#5793=ORIENTED_EDGE('',*,*,#5792,.T.);
--#5795=ORIENTED_EDGE('',*,*,#5794,.T.);
--#5796=EDGE_LOOP('',(#5789,#5791,#5793,#5795));
--#5797=FACE_BOUND('',#5796,.F.);
--#5799=ORIENTED_EDGE('',*,*,#5798,.T.);
--#5801=ORIENTED_EDGE('',*,*,#5800,.T.);
--#5803=ORIENTED_EDGE('',*,*,#5802,.T.);
--#5805=ORIENTED_EDGE('',*,*,#5804,.T.);
--#5806=EDGE_LOOP('',(#5799,#5801,#5803,#5805));
--#5807=FACE_BOUND('',#5806,.F.);
--#5809=ORIENTED_EDGE('',*,*,#5808,.T.);
--#5811=ORIENTED_EDGE('',*,*,#5810,.T.);
--#5813=ORIENTED_EDGE('',*,*,#5812,.T.);
--#5815=ORIENTED_EDGE('',*,*,#5814,.T.);
--#5816=EDGE_LOOP('',(#5809,#5811,#5813,#5815));
--#5817=FACE_BOUND('',#5816,.F.);
--#5819=ORIENTED_EDGE('',*,*,#5818,.F.);
--#5821=ORIENTED_EDGE('',*,*,#5820,.F.);
--#5823=ORIENTED_EDGE('',*,*,#5822,.F.);
--#5825=ORIENTED_EDGE('',*,*,#5824,.F.);
--#5826=EDGE_LOOP('',(#5819,#5821,#5823,#5825));
--#5827=FACE_BOUND('',#5826,.F.);
--#5829=ORIENTED_EDGE('',*,*,#5828,.F.);
--#5831=ORIENTED_EDGE('',*,*,#5830,.F.);
--#5833=ORIENTED_EDGE('',*,*,#5832,.F.);
--#5835=ORIENTED_EDGE('',*,*,#5834,.F.);
--#5836=EDGE_LOOP('',(#5829,#5831,#5833,#5835));
--#5837=FACE_BOUND('',#5836,.F.);
--#5839=ORIENTED_EDGE('',*,*,#5838,.F.);
--#5841=ORIENTED_EDGE('',*,*,#5840,.F.);
--#5843=ORIENTED_EDGE('',*,*,#5842,.F.);
--#5845=ORIENTED_EDGE('',*,*,#5844,.F.);
--#5846=EDGE_LOOP('',(#5839,#5841,#5843,#5845));
--#5847=FACE_BOUND('',#5846,.F.);
--#5849=ORIENTED_EDGE('',*,*,#5848,.F.);
--#5851=ORIENTED_EDGE('',*,*,#5850,.F.);
--#5853=ORIENTED_EDGE('',*,*,#5852,.F.);
--#5855=ORIENTED_EDGE('',*,*,#5854,.F.);
--#5856=EDGE_LOOP('',(#5849,#5851,#5853,#5855));
--#5857=FACE_BOUND('',#5856,.F.);
--#5859=ORIENTED_EDGE('',*,*,#5858,.F.);
--#5861=ORIENTED_EDGE('',*,*,#5860,.F.);
--#5863=ORIENTED_EDGE('',*,*,#5862,.F.);
--#5865=ORIENTED_EDGE('',*,*,#5864,.F.);
--#5866=EDGE_LOOP('',(#5859,#5861,#5863,#5865));
--#5867=FACE_BOUND('',#5866,.F.);
--#5869=ORIENTED_EDGE('',*,*,#5868,.F.);
--#5871=ORIENTED_EDGE('',*,*,#5870,.F.);
--#5873=ORIENTED_EDGE('',*,*,#5872,.F.);
--#5875=ORIENTED_EDGE('',*,*,#5874,.F.);
--#5876=EDGE_LOOP('',(#5869,#5871,#5873,#5875));
--#5877=FACE_BOUND('',#5876,.F.);
--#5879=ORIENTED_EDGE('',*,*,#5878,.T.);
--#5881=ORIENTED_EDGE('',*,*,#5880,.T.);
--#5883=ORIENTED_EDGE('',*,*,#5882,.T.);
--#5885=ORIENTED_EDGE('',*,*,#5884,.T.);
--#5886=EDGE_LOOP('',(#5879,#5881,#5883,#5885));
--#5887=FACE_BOUND('',#5886,.F.);
--#5889=ORIENTED_EDGE('',*,*,#5888,.F.);
--#5891=ORIENTED_EDGE('',*,*,#5890,.F.);
--#5893=ORIENTED_EDGE('',*,*,#5892,.F.);
--#5895=ORIENTED_EDGE('',*,*,#5894,.F.);
--#5897=ORIENTED_EDGE('',*,*,#5896,.F.);
--#5899=ORIENTED_EDGE('',*,*,#5898,.F.);
--#5901=ORIENTED_EDGE('',*,*,#5900,.F.);
--#5903=ORIENTED_EDGE('',*,*,#5902,.F.);
--#5905=ORIENTED_EDGE('',*,*,#5904,.F.);
--#5907=ORIENTED_EDGE('',*,*,#5906,.F.);
--#5909=ORIENTED_EDGE('',*,*,#5908,.F.);
--#5911=ORIENTED_EDGE('',*,*,#5910,.F.);
--#5913=ORIENTED_EDGE('',*,*,#5912,.F.);
--#5915=ORIENTED_EDGE('',*,*,#5914,.F.);
--#5916=EDGE_LOOP('',(#5889,#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,
--#5909,#5911,#5913,#5915));
--#5917=FACE_BOUND('',#5916,.F.);
--#5919=ORIENTED_EDGE('',*,*,#5918,.F.);
--#5921=ORIENTED_EDGE('',*,*,#5920,.F.);
--#5923=ORIENTED_EDGE('',*,*,#5922,.F.);
--#5925=ORIENTED_EDGE('',*,*,#5924,.T.);
--#5927=ORIENTED_EDGE('',*,*,#5926,.F.);
--#5928=EDGE_LOOP('',(#5919,#5921,#5923,#5925,#5927));
--#5929=FACE_BOUND('',#5928,.F.);
--#5931=ORIENTED_EDGE('',*,*,#5930,.F.);
--#5933=ORIENTED_EDGE('',*,*,#5932,.F.);
--#5935=ORIENTED_EDGE('',*,*,#5934,.F.);
--#5937=ORIENTED_EDGE('',*,*,#5936,.T.);
--#5939=ORIENTED_EDGE('',*,*,#5938,.F.);
--#5940=EDGE_LOOP('',(#5931,#5933,#5935,#5937,#5939));
--#5941=FACE_BOUND('',#5940,.F.);
--#5943=ORIENTED_EDGE('',*,*,#5942,.T.);
--#5945=ORIENTED_EDGE('',*,*,#5944,.F.);
--#5947=ORIENTED_EDGE('',*,*,#5946,.T.);
--#5949=ORIENTED_EDGE('',*,*,#5948,.T.);
--#5951=ORIENTED_EDGE('',*,*,#5950,.F.);
--#5952=EDGE_LOOP('',(#5943,#5945,#5947,#5949,#5951));
--#5953=FACE_BOUND('',#5952,.F.);
--#5954=ADVANCED_FACE('',(#5539,#5553,#5559,#5565,#5571,#5577,#5583,#5589,#5595,
--#5601,#5607,#5613,#5619,#5625,#5631,#5637,#5655,#5689,#5695,#5701,#5707,#5713,
--#5719,#5725,#5735,#5747,#5777,#5787,#5797,#5807,#5817,#5827,#5837,#5847,#5857,
--#5867,#5877,#5887,#5917,#5929,#5941,#5953),#5493,.F.);
--#5955=CARTESIAN_POINT('',(0.E0,0.E0,8.E0));
--#5956=DIRECTION('',(0.E0,0.E0,1.E0));
--#5957=DIRECTION('',(1.E0,0.E0,0.E0));
--#5958=AXIS2_PLACEMENT_3D('',#5955,#5956,#5957);
--#5959=PLANE('',#5958);
--#5960=ORIENTED_EDGE('',*,*,#5540,.F.);
--#5962=ORIENTED_EDGE('',*,*,#5961,.T.);
--#5964=ORIENTED_EDGE('',*,*,#5963,.F.);
--#5966=ORIENTED_EDGE('',*,*,#5965,.F.);
--#5967=ORIENTED_EDGE('',*,*,#5494,.T.);
--#5969=ORIENTED_EDGE('',*,*,#5968,.F.);
--#5971=ORIENTED_EDGE('',*,*,#5970,.F.);
--#5973=ORIENTED_EDGE('',*,*,#5972,.T.);
--#5975=ORIENTED_EDGE('',*,*,#5974,.F.);
--#5977=ORIENTED_EDGE('',*,*,#5976,.F.);
--#5979=ORIENTED_EDGE('',*,*,#5978,.F.);
--#5981=ORIENTED_EDGE('',*,*,#5980,.T.);
--#5983=ORIENTED_EDGE('',*,*,#5982,.T.);
--#5985=ORIENTED_EDGE('',*,*,#5984,.F.);
--#5986=ORIENTED_EDGE('',*,*,#5510,.F.);
--#5988=ORIENTED_EDGE('',*,*,#5987,.F.);
--#5990=ORIENTED_EDGE('',*,*,#5989,.F.);
--#5992=ORIENTED_EDGE('',*,*,#5991,.T.);
--#5993=EDGE_LOOP('',(#5960,#5962,#5964,#5966,#5967,#5969,#5971,#5973,#5975,#5977,
--#5979,#5981,#5983,#5985,#5986,#5988,#5990,#5992));
--#5994=FACE_OUTER_BOUND('',#5993,.F.);
--#5996=ORIENTED_EDGE('',*,*,#5995,.T.);
--#5998=ORIENTED_EDGE('',*,*,#5997,.T.);
--#5999=EDGE_LOOP('',(#5996,#5998));
--#6000=FACE_BOUND('',#5999,.F.);
--#6002=ORIENTED_EDGE('',*,*,#6001,.T.);
--#6004=ORIENTED_EDGE('',*,*,#6003,.T.);
--#6005=EDGE_LOOP('',(#6002,#6004));
--#6006=FACE_BOUND('',#6005,.F.);
--#6008=ORIENTED_EDGE('',*,*,#6007,.T.);
--#6010=ORIENTED_EDGE('',*,*,#6009,.T.);
--#6011=EDGE_LOOP('',(#6008,#6010));
--#6012=FACE_BOUND('',#6011,.F.);
--#6014=ORIENTED_EDGE('',*,*,#6013,.T.);
--#6016=ORIENTED_EDGE('',*,*,#6015,.T.);
--#6017=EDGE_LOOP('',(#6014,#6016));
--#6018=FACE_BOUND('',#6017,.F.);
--#6020=ORIENTED_EDGE('',*,*,#6019,.F.);
--#6022=ORIENTED_EDGE('',*,*,#6021,.F.);
--#6023=EDGE_LOOP('',(#6020,#6022));
--#6024=FACE_BOUND('',#6023,.F.);
--#6026=ORIENTED_EDGE('',*,*,#6025,.F.);
--#6028=ORIENTED_EDGE('',*,*,#6027,.F.);
--#6029=EDGE_LOOP('',(#6026,#6028));
--#6030=FACE_BOUND('',#6029,.F.);
--#6032=ORIENTED_EDGE('',*,*,#6031,.F.);
--#6034=ORIENTED_EDGE('',*,*,#6033,.F.);
--#6035=EDGE_LOOP('',(#6032,#6034));
--#6036=FACE_BOUND('',#6035,.F.);
--#6038=ORIENTED_EDGE('',*,*,#6037,.F.);
--#6040=ORIENTED_EDGE('',*,*,#6039,.F.);
--#6041=EDGE_LOOP('',(#6038,#6040));
--#6042=FACE_BOUND('',#6041,.F.);
--#6044=ORIENTED_EDGE('',*,*,#6043,.T.);
--#6046=ORIENTED_EDGE('',*,*,#6045,.F.);
--#6048=ORIENTED_EDGE('',*,*,#6047,.T.);
--#6050=ORIENTED_EDGE('',*,*,#6049,.F.);
--#6052=ORIENTED_EDGE('',*,*,#6051,.T.);
--#6054=ORIENTED_EDGE('',*,*,#6053,.F.);
--#6056=ORIENTED_EDGE('',*,*,#6055,.T.);
--#6058=ORIENTED_EDGE('',*,*,#6057,.F.);
--#6059=EDGE_LOOP('',(#6044,#6046,#6048,#6050,#6052,#6054,#6056,#6058));
--#6060=FACE_BOUND('',#6059,.F.);
--#6062=ORIENTED_EDGE('',*,*,#6061,.F.);
--#6064=ORIENTED_EDGE('',*,*,#6063,.F.);
--#6066=ORIENTED_EDGE('',*,*,#6065,.F.);
--#6068=ORIENTED_EDGE('',*,*,#6067,.F.);
--#6070=ORIENTED_EDGE('',*,*,#6069,.F.);
--#6072=ORIENTED_EDGE('',*,*,#6071,.F.);
--#6074=ORIENTED_EDGE('',*,*,#6073,.F.);
--#6076=ORIENTED_EDGE('',*,*,#6075,.F.);
--#6077=EDGE_LOOP('',(#6062,#6064,#6066,#6068,#6070,#6072,#6074,#6076));
--#6078=FACE_BOUND('',#6077,.F.);
--#6079=ADVANCED_FACE('',(#5994,#6000,#6006,#6012,#6018,#6024,#6030,#6036,#6042,
--#6060,#6078),#5959,.F.);
--#6080=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
--#6081=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6082=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6083=AXIS2_PLACEMENT_3D('',#6080,#6081,#6082);
--#6084=CYLINDRICAL_SURFACE('',#6083,9.5E-2);
--#6085=ORIENTED_EDGE('',*,*,#5995,.F.);
--#6087=ORIENTED_EDGE('',*,*,#6086,.T.);
--#6089=ORIENTED_EDGE('',*,*,#6088,.T.);
--#6091=ORIENTED_EDGE('',*,*,#6090,.F.);
--#6092=EDGE_LOOP('',(#6085,#6087,#6089,#6091));
--#6093=FACE_OUTER_BOUND('',#6092,.F.);
--#6094=ADVANCED_FACE('',(#6093),#6084,.F.);
--#6095=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
--#6096=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6097=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6098=AXIS2_PLACEMENT_3D('',#6095,#6096,#6097);
--#6099=CYLINDRICAL_SURFACE('',#6098,9.5E-2);
--#6100=ORIENTED_EDGE('',*,*,#5997,.F.);
--#6101=ORIENTED_EDGE('',*,*,#6090,.T.);
--#6103=ORIENTED_EDGE('',*,*,#6102,.T.);
--#6104=ORIENTED_EDGE('',*,*,#6086,.F.);
--#6105=EDGE_LOOP('',(#6100,#6101,#6103,#6104));
--#6106=FACE_OUTER_BOUND('',#6105,.F.);
--#6107=ADVANCED_FACE('',(#6106),#6099,.F.);
--#6108=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
--#6109=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6110=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6111=AXIS2_PLACEMENT_3D('',#6108,#6109,#6110);
--#6112=PLANE('',#6111);
--#6113=ORIENTED_EDGE('',*,*,#6088,.F.);
--#6114=ORIENTED_EDGE('',*,*,#6102,.F.);
--#6115=EDGE_LOOP('',(#6113,#6114));
--#6116=FACE_OUTER_BOUND('',#6115,.F.);
--#6117=ADVANCED_FACE('',(#6116),#6112,.T.);
--#6118=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
--#6119=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6120=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6121=AXIS2_PLACEMENT_3D('',#6118,#6119,#6120);
--#6122=CYLINDRICAL_SURFACE('',#6121,1.625E-1);
--#6123=ORIENTED_EDGE('',*,*,#6001,.F.);
--#6125=ORIENTED_EDGE('',*,*,#6124,.T.);
--#6127=ORIENTED_EDGE('',*,*,#6126,.T.);
--#6129=ORIENTED_EDGE('',*,*,#6128,.F.);
--#6130=EDGE_LOOP('',(#6123,#6125,#6127,#6129));
--#6131=FACE_OUTER_BOUND('',#6130,.F.);
--#6132=ADVANCED_FACE('',(#6131),#6122,.F.);
--#6133=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
--#6134=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6135=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6136=AXIS2_PLACEMENT_3D('',#6133,#6134,#6135);
--#6137=CYLINDRICAL_SURFACE('',#6136,1.625E-1);
--#6138=ORIENTED_EDGE('',*,*,#6003,.F.);
--#6139=ORIENTED_EDGE('',*,*,#6128,.T.);
--#6141=ORIENTED_EDGE('',*,*,#6140,.T.);
--#6142=ORIENTED_EDGE('',*,*,#6124,.F.);
--#6143=EDGE_LOOP('',(#6138,#6139,#6141,#6142));
--#6144=FACE_OUTER_BOUND('',#6143,.F.);
--#6145=ADVANCED_FACE('',(#6144),#6137,.F.);
--#6146=CARTESIAN_POINT('',(2.4E1,0.E0,1.E1));
--#6147=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6148=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6149=AXIS2_PLACEMENT_3D('',#6146,#6147,#6148);
--#6150=PLANE('',#6149);
--#6152=ORIENTED_EDGE('',*,*,#6151,.T.);
--#6154=ORIENTED_EDGE('',*,*,#6153,.T.);
--#6156=ORIENTED_EDGE('',*,*,#6155,.F.);
--#6158=ORIENTED_EDGE('',*,*,#6157,.F.);
--#6160=ORIENTED_EDGE('',*,*,#6159,.T.);
--#6162=ORIENTED_EDGE('',*,*,#6161,.T.);
--#6164=ORIENTED_EDGE('',*,*,#6163,.T.);
--#6166=ORIENTED_EDGE('',*,*,#6165,.T.);
--#6168=ORIENTED_EDGE('',*,*,#6167,.F.);
--#6169=EDGE_LOOP('',(#6152,#6154,#6156,#6158,#6160,#6162,#6164,#6166,#6168));
--#6170=FACE_OUTER_BOUND('',#6169,.F.);
--#6171=ORIENTED_EDGE('',*,*,#6126,.F.);
--#6172=ORIENTED_EDGE('',*,*,#6140,.F.);
--#6173=EDGE_LOOP('',(#6171,#6172));
--#6174=FACE_BOUND('',#6173,.F.);
--#6176=ORIENTED_EDGE('',*,*,#6175,.F.);
--#6178=ORIENTED_EDGE('',*,*,#6177,.F.);
--#6180=ORIENTED_EDGE('',*,*,#6179,.F.);
--#6182=ORIENTED_EDGE('',*,*,#6181,.F.);
--#6184=ORIENTED_EDGE('',*,*,#6183,.F.);
--#6186=ORIENTED_EDGE('',*,*,#6185,.F.);
--#6188=ORIENTED_EDGE('',*,*,#6187,.F.);
--#6190=ORIENTED_EDGE('',*,*,#6189,.F.);
--#6192=ORIENTED_EDGE('',*,*,#6191,.F.);
--#6194=ORIENTED_EDGE('',*,*,#6193,.F.);
--#6196=ORIENTED_EDGE('',*,*,#6195,.F.);
--#6198=ORIENTED_EDGE('',*,*,#6197,.F.);
--#6199=EDGE_LOOP('',(#6176,#6178,#6180,#6182,#6184,#6186,#6188,#6190,#6192,#6194,
--#6196,#6198));
--#6200=FACE_BOUND('',#6199,.F.);
--#6201=ADVANCED_FACE('',(#6170,#6174,#6200),#6150,.F.);
--#6202=CARTESIAN_POINT('',(2.375E1,1.5E0,1.2E1));
--#6203=DIRECTION('',(1.E0,0.E0,0.E0));
--#6204=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6205=AXIS2_PLACEMENT_3D('',#6202,#6203,#6204);
--#6206=PLANE('',#6205);
--#6208=ORIENTED_EDGE('',*,*,#6207,.F.);
--#6210=ORIENTED_EDGE('',*,*,#6209,.F.);
--#6211=ORIENTED_EDGE('',*,*,#6151,.F.);
--#6212=EDGE_LOOP('',(#6208,#6210,#6211));
--#6213=FACE_OUTER_BOUND('',#6212,.F.);
--#6214=ADVANCED_FACE('',(#6213),#6206,.T.);
--#6215=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
--#6216=DIRECTION('',(0.E0,1.E0,0.E0));
--#6217=DIRECTION('',(1.E0,0.E0,0.E0));
--#6218=AXIS2_PLACEMENT_3D('',#6215,#6216,#6217);
--#6219=PLANE('',#6218);
--#6220=ORIENTED_EDGE('',*,*,#5963,.T.);
--#6222=ORIENTED_EDGE('',*,*,#6221,.F.);
--#6224=ORIENTED_EDGE('',*,*,#6223,.F.);
--#6226=ORIENTED_EDGE('',*,*,#6225,.T.);
--#6228=ORIENTED_EDGE('',*,*,#6227,.F.);
--#6230=ORIENTED_EDGE('',*,*,#6229,.F.);
--#6231=ORIENTED_EDGE('',*,*,#5989,.T.);
--#6233=ORIENTED_EDGE('',*,*,#6232,.F.);
--#6235=ORIENTED_EDGE('',*,*,#6234,.F.);
--#6237=ORIENTED_EDGE('',*,*,#6236,.T.);
--#6239=ORIENTED_EDGE('',*,*,#6238,.F.);
--#6241=ORIENTED_EDGE('',*,*,#6240,.T.);
--#6243=ORIENTED_EDGE('',*,*,#6242,.F.);
--#6245=ORIENTED_EDGE('',*,*,#6244,.F.);
--#6246=EDGE_LOOP('',(#6220,#6222,#6224,#6226,#6228,#6230,#6231,#6233,#6235,#6237,
--#6239,#6241,#6243,#6245));
--#6247=FACE_OUTER_BOUND('',#6246,.F.);
--#6249=ORIENTED_EDGE('',*,*,#6248,.F.);
--#6251=ORIENTED_EDGE('',*,*,#6250,.F.);
--#6252=EDGE_LOOP('',(#6249,#6251));
--#6253=FACE_BOUND('',#6252,.F.);
--#6255=ORIENTED_EDGE('',*,*,#6254,.F.);
--#6257=ORIENTED_EDGE('',*,*,#6256,.F.);
--#6258=EDGE_LOOP('',(#6255,#6257));
--#6259=FACE_BOUND('',#6258,.F.);
--#6261=ORIENTED_EDGE('',*,*,#6260,.F.);
--#6263=ORIENTED_EDGE('',*,*,#6262,.F.);
--#6264=EDGE_LOOP('',(#6261,#6263));
--#6265=FACE_BOUND('',#6264,.F.);
--#6267=ORIENTED_EDGE('',*,*,#6266,.F.);
--#6269=ORIENTED_EDGE('',*,*,#6268,.F.);
--#6270=EDGE_LOOP('',(#6267,#6269));
--#6271=FACE_BOUND('',#6270,.F.);
--#6273=ORIENTED_EDGE('',*,*,#6272,.F.);
--#6275=ORIENTED_EDGE('',*,*,#6274,.F.);
--#6276=EDGE_LOOP('',(#6273,#6275));
--#6277=FACE_BOUND('',#6276,.F.);
--#6278=ADVANCED_FACE('',(#6247,#6253,#6259,#6265,#6271,#6277),#6219,.T.);
--#6279=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
--#6280=DIRECTION('',(0.E0,1.E0,0.E0));
--#6281=DIRECTION('',(1.E0,0.E0,0.E0));
--#6282=AXIS2_PLACEMENT_3D('',#6279,#6280,#6281);
--#6283=PLANE('',#6282);
--#6284=ORIENTED_EDGE('',*,*,#6207,.T.);
--#6285=ORIENTED_EDGE('',*,*,#6167,.T.);
--#6287=ORIENTED_EDGE('',*,*,#6286,.T.);
--#6289=ORIENTED_EDGE('',*,*,#6288,.F.);
--#6291=ORIENTED_EDGE('',*,*,#6290,.T.);
--#6293=ORIENTED_EDGE('',*,*,#6292,.F.);
--#6295=ORIENTED_EDGE('',*,*,#6294,.F.);
--#6297=ORIENTED_EDGE('',*,*,#6296,.T.);
--#6299=ORIENTED_EDGE('',*,*,#6298,.F.);
--#6301=ORIENTED_EDGE('',*,*,#6300,.T.);
--#6303=ORIENTED_EDGE('',*,*,#6302,.F.);
--#6305=ORIENTED_EDGE('',*,*,#6304,.F.);
--#6307=ORIENTED_EDGE('',*,*,#6306,.F.);
--#6309=ORIENTED_EDGE('',*,*,#6308,.T.);
--#6311=ORIENTED_EDGE('',*,*,#6310,.F.);
--#6313=ORIENTED_EDGE('',*,*,#6312,.T.);
--#6315=ORIENTED_EDGE('',*,*,#6314,.F.);
--#6317=ORIENTED_EDGE('',*,*,#6316,.T.);
--#6319=ORIENTED_EDGE('',*,*,#6318,.T.);
--#6321=ORIENTED_EDGE('',*,*,#6320,.T.);
--#6323=ORIENTED_EDGE('',*,*,#6322,.F.);
--#6324=ORIENTED_EDGE('',*,*,#5976,.T.);
--#6326=ORIENTED_EDGE('',*,*,#6325,.T.);
--#6327=ORIENTED_EDGE('',*,*,#6157,.T.);
--#6329=ORIENTED_EDGE('',*,*,#6328,.F.);
--#6331=ORIENTED_EDGE('',*,*,#6330,.F.);
--#6332=EDGE_LOOP('',(#6284,#6285,#6287,#6289,#6291,#6293,#6295,#6297,#6299,#6301,
--#6303,#6305,#6307,#6309,#6311,#6313,#6315,#6317,#6319,#6321,#6323,#6324,#6326,
--#6327,#6329,#6331));
--#6333=FACE_OUTER_BOUND('',#6332,.F.);
--#6335=ORIENTED_EDGE('',*,*,#6334,.F.);
--#6337=ORIENTED_EDGE('',*,*,#6336,.F.);
--#6338=EDGE_LOOP('',(#6335,#6337));
--#6339=FACE_BOUND('',#6338,.F.);
--#6341=ORIENTED_EDGE('',*,*,#6340,.F.);
--#6343=ORIENTED_EDGE('',*,*,#6342,.F.);
--#6344=EDGE_LOOP('',(#6341,#6343));
--#6345=FACE_BOUND('',#6344,.F.);
--#6347=ORIENTED_EDGE('',*,*,#6346,.T.);
--#6349=ORIENTED_EDGE('',*,*,#6348,.T.);
--#6350=EDGE_LOOP('',(#6347,#6349));
--#6351=FACE_BOUND('',#6350,.F.);
--#6353=ORIENTED_EDGE('',*,*,#6352,.T.);
--#6355=ORIENTED_EDGE('',*,*,#6354,.T.);
--#6356=EDGE_LOOP('',(#6353,#6355));
--#6357=FACE_BOUND('',#6356,.F.);
--#6359=ORIENTED_EDGE('',*,*,#6358,.F.);
--#6361=ORIENTED_EDGE('',*,*,#6360,.F.);
--#6362=EDGE_LOOP('',(#6359,#6361));
--#6363=FACE_BOUND('',#6362,.F.);
--#6365=ORIENTED_EDGE('',*,*,#6364,.F.);
--#6367=ORIENTED_EDGE('',*,*,#6366,.F.);
--#6368=EDGE_LOOP('',(#6365,#6367));
--#6369=FACE_BOUND('',#6368,.F.);
--#6371=ORIENTED_EDGE('',*,*,#6370,.F.);
--#6373=ORIENTED_EDGE('',*,*,#6372,.F.);
--#6374=EDGE_LOOP('',(#6371,#6373));
--#6375=FACE_BOUND('',#6374,.F.);
--#6377=ORIENTED_EDGE('',*,*,#6376,.F.);
--#6379=ORIENTED_EDGE('',*,*,#6378,.F.);
--#6380=EDGE_LOOP('',(#6377,#6379));
--#6381=FACE_BOUND('',#6380,.F.);
--#6383=ORIENTED_EDGE('',*,*,#6382,.F.);
--#6385=ORIENTED_EDGE('',*,*,#6384,.F.);
--#6386=EDGE_LOOP('',(#6383,#6385));
--#6387=FACE_BOUND('',#6386,.F.);
--#6389=ORIENTED_EDGE('',*,*,#6388,.F.);
--#6391=ORIENTED_EDGE('',*,*,#6390,.F.);
--#6392=EDGE_LOOP('',(#6389,#6391));
--#6393=FACE_BOUND('',#6392,.F.);
--#6395=ORIENTED_EDGE('',*,*,#6394,.F.);
--#6397=ORIENTED_EDGE('',*,*,#6396,.F.);
--#6398=EDGE_LOOP('',(#6395,#6397));
--#6399=FACE_BOUND('',#6398,.F.);
--#6401=ORIENTED_EDGE('',*,*,#6400,.T.);
--#6403=ORIENTED_EDGE('',*,*,#6402,.F.);
--#6405=ORIENTED_EDGE('',*,*,#6404,.F.);
--#6407=ORIENTED_EDGE('',*,*,#6406,.F.);
--#6409=ORIENTED_EDGE('',*,*,#6408,.T.);
--#6411=ORIENTED_EDGE('',*,*,#6410,.F.);
--#6413=ORIENTED_EDGE('',*,*,#6412,.T.);
--#6415=ORIENTED_EDGE('',*,*,#6414,.F.);
--#6416=EDGE_LOOP('',(#6401,#6403,#6405,#6407,#6409,#6411,#6413,#6415));
--#6417=FACE_BOUND('',#6416,.F.);
--#6419=ORIENTED_EDGE('',*,*,#6418,.F.);
--#6421=ORIENTED_EDGE('',*,*,#6420,.F.);
--#6423=ORIENTED_EDGE('',*,*,#6422,.T.);
--#6425=ORIENTED_EDGE('',*,*,#6424,.F.);
--#6427=ORIENTED_EDGE('',*,*,#6426,.T.);
--#6429=ORIENTED_EDGE('',*,*,#6428,.F.);
--#6431=ORIENTED_EDGE('',*,*,#6430,.T.);
--#6433=ORIENTED_EDGE('',*,*,#6432,.F.);
--#6435=ORIENTED_EDGE('',*,*,#6434,.F.);
--#6437=ORIENTED_EDGE('',*,*,#6436,.F.);
--#6439=ORIENTED_EDGE('',*,*,#6438,.F.);
--#6441=ORIENTED_EDGE('',*,*,#6440,.T.);
--#6443=ORIENTED_EDGE('',*,*,#6442,.F.);
--#6445=ORIENTED_EDGE('',*,*,#6444,.F.);
--#6447=ORIENTED_EDGE('',*,*,#6446,.T.);
--#6449=ORIENTED_EDGE('',*,*,#6448,.F.);
--#6450=EDGE_LOOP('',(#6419,#6421,#6423,#6425,#6427,#6429,#6431,#6433,#6435,#6437,
--#6439,#6441,#6443,#6445,#6447,#6449));
--#6451=FACE_BOUND('',#6450,.F.);
--#6453=ORIENTED_EDGE('',*,*,#6452,.F.);
--#6455=ORIENTED_EDGE('',*,*,#6454,.F.);
--#6456=EDGE_LOOP('',(#6453,#6455));
--#6457=FACE_BOUND('',#6456,.F.);
--#6459=ORIENTED_EDGE('',*,*,#6458,.F.);
--#6461=ORIENTED_EDGE('',*,*,#6460,.F.);
--#6462=EDGE_LOOP('',(#6459,#6461));
--#6463=FACE_BOUND('',#6462,.F.);
--#6465=ORIENTED_EDGE('',*,*,#6464,.F.);
--#6467=ORIENTED_EDGE('',*,*,#6466,.F.);
--#6468=EDGE_LOOP('',(#6465,#6467));
--#6469=FACE_BOUND('',#6468,.F.);
--#6471=ORIENTED_EDGE('',*,*,#6470,.F.);
--#6473=ORIENTED_EDGE('',*,*,#6472,.F.);
--#6474=EDGE_LOOP('',(#6471,#6473));
--#6475=FACE_BOUND('',#6474,.F.);
--#6477=ORIENTED_EDGE('',*,*,#6476,.F.);
--#6479=ORIENTED_EDGE('',*,*,#6478,.F.);
--#6480=EDGE_LOOP('',(#6477,#6479));
--#6481=FACE_BOUND('',#6480,.F.);
--#6483=ORIENTED_EDGE('',*,*,#6482,.F.);
--#6485=ORIENTED_EDGE('',*,*,#6484,.F.);
--#6486=EDGE_LOOP('',(#6483,#6485));
--#6487=FACE_BOUND('',#6486,.F.);
--#6488=ADVANCED_FACE('',(#6333,#6339,#6345,#6351,#6357,#6363,#6369,#6375,#6381,
--#6387,#6393,#6399,#6417,#6451,#6457,#6463,#6469,#6475,#6481,#6487),#6283,.T.);
--#6489=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
--#6490=DIRECTION('',(0.E0,1.E0,0.E0));
--#6491=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6492=AXIS2_PLACEMENT_3D('',#6489,#6490,#6491);
--#6493=CYLINDRICAL_SURFACE('',#6492,1.E-1);
--#6494=ORIENTED_EDGE('',*,*,#6334,.T.);
--#6496=ORIENTED_EDGE('',*,*,#6495,.F.);
--#6498=ORIENTED_EDGE('',*,*,#6497,.F.);
--#6500=ORIENTED_EDGE('',*,*,#6499,.T.);
--#6501=EDGE_LOOP('',(#6494,#6496,#6498,#6500));
--#6502=FACE_OUTER_BOUND('',#6501,.F.);
--#6503=ADVANCED_FACE('',(#6502),#6493,.F.);
--#6504=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
--#6505=DIRECTION('',(0.E0,1.E0,0.E0));
--#6506=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6507=AXIS2_PLACEMENT_3D('',#6504,#6505,#6506);
--#6508=CYLINDRICAL_SURFACE('',#6507,1.E-1);
--#6509=ORIENTED_EDGE('',*,*,#6336,.T.);
--#6510=ORIENTED_EDGE('',*,*,#6499,.F.);
--#6512=ORIENTED_EDGE('',*,*,#6511,.T.);
--#6513=ORIENTED_EDGE('',*,*,#6495,.T.);
--#6514=EDGE_LOOP('',(#6509,#6510,#6512,#6513));
--#6515=FACE_OUTER_BOUND('',#6514,.F.);
--#6516=ADVANCED_FACE('',(#6515),#6508,.F.);
--#6517=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
--#6518=DIRECTION('',(0.E0,1.E0,0.E0));
--#6519=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6520=AXIS2_PLACEMENT_3D('',#6517,#6518,#6519);
--#6521=CONICAL_SURFACE('',#6520,7.288815195685E-2,6.E1);
--#6523=ORIENTED_EDGE('',*,*,#6522,.T.);
--#6524=ORIENTED_EDGE('',*,*,#6511,.F.);
--#6526=ORIENTED_EDGE('',*,*,#6525,.F.);
--#6527=EDGE_LOOP('',(#6523,#6524,#6526));
--#6528=FACE_OUTER_BOUND('',#6527,.F.);
--#6529=ADVANCED_FACE('',(#6528),#6521,.F.);
--#6530=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
--#6531=DIRECTION('',(0.E0,1.E0,0.E0));
--#6532=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6533=AXIS2_PLACEMENT_3D('',#6530,#6531,#6532);
--#6534=CONICAL_SURFACE('',#6533,7.288815195685E-2,6.E1);
--#6535=ORIENTED_EDGE('',*,*,#6522,.F.);
--#6536=ORIENTED_EDGE('',*,*,#6525,.T.);
--#6537=ORIENTED_EDGE('',*,*,#6497,.T.);
--#6538=EDGE_LOOP('',(#6535,#6536,#6537));
--#6539=FACE_OUTER_BOUND('',#6538,.F.);
--#6540=ADVANCED_FACE('',(#6539),#6534,.F.);
--#6541=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
--#6542=DIRECTION('',(0.E0,1.E0,0.E0));
--#6543=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6544=AXIS2_PLACEMENT_3D('',#6541,#6542,#6543);
--#6545=CYLINDRICAL_SURFACE('',#6544,1.E-1);
--#6546=ORIENTED_EDGE('',*,*,#6340,.T.);
--#6548=ORIENTED_EDGE('',*,*,#6547,.F.);
--#6550=ORIENTED_EDGE('',*,*,#6549,.F.);
--#6552=ORIENTED_EDGE('',*,*,#6551,.T.);
--#6553=EDGE_LOOP('',(#6546,#6548,#6550,#6552));
--#6554=FACE_OUTER_BOUND('',#6553,.F.);
--#6555=ADVANCED_FACE('',(#6554),#6545,.F.);
--#6556=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
--#6557=DIRECTION('',(0.E0,1.E0,0.E0));
--#6558=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6559=AXIS2_PLACEMENT_3D('',#6556,#6557,#6558);
--#6560=CYLINDRICAL_SURFACE('',#6559,1.E-1);
--#6561=ORIENTED_EDGE('',*,*,#6342,.T.);
--#6562=ORIENTED_EDGE('',*,*,#6551,.F.);
--#6564=ORIENTED_EDGE('',*,*,#6563,.T.);
--#6565=ORIENTED_EDGE('',*,*,#6547,.T.);
--#6566=EDGE_LOOP('',(#6561,#6562,#6564,#6565));
--#6567=FACE_OUTER_BOUND('',#6566,.F.);
--#6568=ADVANCED_FACE('',(#6567),#6560,.F.);
--#6569=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
--#6570=DIRECTION('',(0.E0,1.E0,0.E0));
--#6571=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6572=AXIS2_PLACEMENT_3D('',#6569,#6570,#6571);
--#6573=CONICAL_SURFACE('',#6572,7.288815195685E-2,6.E1);
--#6575=ORIENTED_EDGE('',*,*,#6574,.T.);
--#6576=ORIENTED_EDGE('',*,*,#6563,.F.);
--#6578=ORIENTED_EDGE('',*,*,#6577,.F.);
--#6579=EDGE_LOOP('',(#6575,#6576,#6578));
--#6580=FACE_OUTER_BOUND('',#6579,.F.);
--#6581=ADVANCED_FACE('',(#6580),#6573,.F.);
--#6582=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
--#6583=DIRECTION('',(0.E0,1.E0,0.E0));
--#6584=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6585=AXIS2_PLACEMENT_3D('',#6582,#6583,#6584);
--#6586=CONICAL_SURFACE('',#6585,7.288815195685E-2,6.E1);
--#6587=ORIENTED_EDGE('',*,*,#6574,.F.);
--#6588=ORIENTED_EDGE('',*,*,#6577,.T.);
--#6589=ORIENTED_EDGE('',*,*,#6549,.T.);
--#6590=EDGE_LOOP('',(#6587,#6588,#6589));
--#6591=FACE_OUTER_BOUND('',#6590,.F.);
--#6592=ADVANCED_FACE('',(#6591),#6586,.F.);
--#6593=CARTESIAN_POINT('',(2.046862696660E1,-7.805924235695E-2,7.E0));
--#6594=DIRECTION('',(0.E0,1.E0,0.E0));
--#6595=DIRECTION('',(0.E0,0.E0,1.E0));
--#6596=AXIS2_PLACEMENT_3D('',#6593,#6594,#6595);
--#6597=CYLINDRICAL_SURFACE('',#6596,1.E0);
--#6598=ORIENTED_EDGE('',*,*,#5961,.F.);
--#6599=ORIENTED_EDGE('',*,*,#5550,.T.);
--#6601=ORIENTED_EDGE('',*,*,#6600,.T.);
--#6602=ORIENTED_EDGE('',*,*,#6221,.T.);
--#6603=EDGE_LOOP('',(#6598,#6599,#6601,#6602));
--#6604=FACE_OUTER_BOUND('',#6603,.F.);
--#6605=ADVANCED_FACE('',(#6604),#6597,.F.);
--#6606=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,7.5E0));
--#6607=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6608=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6609=AXIS2_PLACEMENT_3D('',#6606,#6607,#6608);
--#6610=CYLINDRICAL_SURFACE('',#6609,5.E0);
--#6611=ORIENTED_EDGE('',*,*,#6600,.F.);
--#6612=ORIENTED_EDGE('',*,*,#5548,.T.);
--#6614=ORIENTED_EDGE('',*,*,#6613,.F.);
--#6615=ORIENTED_EDGE('',*,*,#6223,.T.);
--#6616=EDGE_LOOP('',(#6611,#6612,#6614,#6615));
--#6617=FACE_OUTER_BOUND('',#6616,.F.);
--#6618=ADVANCED_FACE('',(#6617),#6610,.F.);
--#6619=CARTESIAN_POINT('',(2.15E1,1.5E0,2.5E0));
--#6620=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6621=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6622=AXIS2_PLACEMENT_3D('',#6619,#6620,#6621);
--#6623=PLANE('',#6622);
--#6625=ORIENTED_EDGE('',*,*,#6624,.F.);
--#6626=ORIENTED_EDGE('',*,*,#6225,.F.);
--#6627=ORIENTED_EDGE('',*,*,#6613,.T.);
--#6628=ORIENTED_EDGE('',*,*,#5546,.T.);
--#6629=EDGE_LOOP('',(#6625,#6626,#6627,#6628));
--#6630=FACE_OUTER_BOUND('',#6629,.F.);
--#6631=ADVANCED_FACE('',(#6630),#6623,.F.);
--#6632=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,7.5E0));
--#6633=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6634=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6635=AXIS2_PLACEMENT_3D('',#6632,#6633,#6634);
--#6636=CYLINDRICAL_SURFACE('',#6635,5.E0);
--#6638=ORIENTED_EDGE('',*,*,#6637,.F.);
--#6639=ORIENTED_EDGE('',*,*,#6227,.T.);
--#6640=ORIENTED_EDGE('',*,*,#6624,.T.);
--#6641=ORIENTED_EDGE('',*,*,#5544,.T.);
--#6642=EDGE_LOOP('',(#6638,#6639,#6640,#6641));
--#6643=FACE_OUTER_BOUND('',#6642,.F.);
--#6644=ADVANCED_FACE('',(#6643),#6636,.F.);
--#6645=CARTESIAN_POINT('',(3.531373033403E0,1.157860978230E1,7.E0));
--#6646=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6647=DIRECTION('',(0.E0,0.E0,1.E0));
--#6648=AXIS2_PLACEMENT_3D('',#6645,#6646,#6647);
--#6649=CYLINDRICAL_SURFACE('',#6648,1.E0);
--#6650=ORIENTED_EDGE('',*,*,#5991,.F.);
--#6651=ORIENTED_EDGE('',*,*,#6229,.T.);
--#6652=ORIENTED_EDGE('',*,*,#6637,.T.);
--#6653=ORIENTED_EDGE('',*,*,#5542,.T.);
--#6654=EDGE_LOOP('',(#6650,#6651,#6652,#6653));
--#6655=FACE_OUTER_BOUND('',#6654,.F.);
--#6656=ADVANCED_FACE('',(#6655),#6649,.F.);
--#6657=CARTESIAN_POINT('',(-1.E0,1.161044894892E1,7.E0));
--#6658=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6659=DIRECTION('',(1.E0,0.E0,0.E0));
--#6660=AXIS2_PLACEMENT_3D('',#6657,#6658,#6659);
--#6661=CYLINDRICAL_SURFACE('',#6660,1.E0);
--#6663=ORIENTED_EDGE('',*,*,#6662,.F.);
--#6664=ORIENTED_EDGE('',*,*,#6232,.T.);
--#6665=ORIENTED_EDGE('',*,*,#5987,.T.);
--#6666=ORIENTED_EDGE('',*,*,#5508,.T.);
--#6667=EDGE_LOOP('',(#6663,#6664,#6665,#6666));
--#6668=FACE_OUTER_BOUND('',#6667,.F.);
--#6669=ADVANCED_FACE('',(#6668),#6661,.F.);
--#6670=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
--#6671=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6672=DIRECTION('',(0.E0,0.E0,1.E0));
--#6673=AXIS2_PLACEMENT_3D('',#6670,#6671,#6672);
--#6674=PLANE('',#6673);
--#6676=ORIENTED_EDGE('',*,*,#6675,.T.);
--#6677=ORIENTED_EDGE('',*,*,#6302,.T.);
--#6679=ORIENTED_EDGE('',*,*,#6678,.F.);
--#6680=ORIENTED_EDGE('',*,*,#5520,.F.);
--#6681=EDGE_LOOP('',(#6676,#6677,#6679,#6680));
--#6682=FACE_OUTER_BOUND('',#6681,.F.);
--#6683=ADVANCED_FACE('',(#6682),#6674,.T.);
--#6684=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
--#6685=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6686=DIRECTION('',(0.E0,0.E0,1.E0));
--#6687=AXIS2_PLACEMENT_3D('',#6684,#6685,#6686);
--#6688=PLANE('',#6687);
--#6689=ORIENTED_EDGE('',*,*,#6662,.T.);
--#6690=ORIENTED_EDGE('',*,*,#5506,.F.);
--#6692=ORIENTED_EDGE('',*,*,#6691,.T.);
--#6693=ORIENTED_EDGE('',*,*,#6234,.T.);
--#6694=EDGE_LOOP('',(#6689,#6690,#6692,#6693));
--#6695=FACE_OUTER_BOUND('',#6694,.F.);
--#6696=ADVANCED_FACE('',(#6695),#6688,.T.);
--#6697=CARTESIAN_POINT('',(-1.E0,-5.722942641981E-2,1.325E1));
--#6698=DIRECTION('',(0.E0,1.E0,0.E0));
--#6699=DIRECTION('',(1.E0,0.E0,0.E0));
--#6700=AXIS2_PLACEMENT_3D('',#6697,#6698,#6699);
--#6701=CYLINDRICAL_SURFACE('',#6700,1.E0);
--#6702=ORIENTED_EDGE('',*,*,#6675,.F.);
--#6703=ORIENTED_EDGE('',*,*,#5518,.T.);
--#6705=ORIENTED_EDGE('',*,*,#6704,.T.);
--#6706=ORIENTED_EDGE('',*,*,#6304,.T.);
--#6707=EDGE_LOOP('',(#6702,#6703,#6705,#6706));
--#6708=FACE_OUTER_BOUND('',#6707,.F.);
--#6709=ADVANCED_FACE('',(#6708),#6701,.F.);
--#6710=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
--#6711=DIRECTION('',(0.E0,0.E0,1.E0));
--#6712=DIRECTION('',(1.E0,0.E0,0.E0));
--#6713=AXIS2_PLACEMENT_3D('',#6710,#6711,#6712);
--#6714=PLANE('',#6713);
--#6716=ORIENTED_EDGE('',*,*,#6715,.F.);
--#6717=ORIENTED_EDGE('',*,*,#6442,.T.);
--#6719=ORIENTED_EDGE('',*,*,#6718,.F.);
--#6720=ORIENTED_EDGE('',*,*,#5668,.F.);
--#6721=EDGE_LOOP('',(#6716,#6717,#6719,#6720));
--#6722=FACE_OUTER_BOUND('',#6721,.F.);
--#6723=ADVANCED_FACE('',(#6722),#6714,.T.);
--#6724=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
--#6725=DIRECTION('',(0.E0,0.E0,1.E0));
--#6726=DIRECTION('',(1.E0,0.E0,0.E0));
--#6727=AXIS2_PLACEMENT_3D('',#6724,#6725,#6726);
--#6728=PLANE('',#6727);
--#6729=ORIENTED_EDGE('',*,*,#6704,.F.);
--#6730=ORIENTED_EDGE('',*,*,#5516,.F.);
--#6732=ORIENTED_EDGE('',*,*,#6731,.T.);
--#6733=ORIENTED_EDGE('',*,*,#6306,.T.);
--#6734=EDGE_LOOP('',(#6729,#6730,#6732,#6733));
--#6735=FACE_OUTER_BOUND('',#6734,.F.);
--#6736=ADVANCED_FACE('',(#6735),#6728,.T.);
--#6737=CARTESIAN_POINT('',(3.5E0,1.566978255297E0,1.325E1));
--#6738=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6739=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6740=AXIS2_PLACEMENT_3D('',#6737,#6738,#6739);
--#6741=CYLINDRICAL_SURFACE('',#6740,1.E0);
--#6743=ORIENTED_EDGE('',*,*,#6742,.F.);
--#6744=ORIENTED_EDGE('',*,*,#6444,.T.);
--#6745=ORIENTED_EDGE('',*,*,#6715,.T.);
--#6746=ORIENTED_EDGE('',*,*,#5666,.T.);
--#6747=EDGE_LOOP('',(#6743,#6744,#6745,#6746));
--#6748=FACE_OUTER_BOUND('',#6747,.F.);
--#6749=ADVANCED_FACE('',(#6748),#6741,.F.);
--#6750=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
--#6751=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6752=DIRECTION('',(0.E0,0.E0,1.E0));
--#6753=AXIS2_PLACEMENT_3D('',#6750,#6751,#6752);
--#6754=PLANE('',#6753);
--#6756=ORIENTED_EDGE('',*,*,#6755,.T.);
--#6757=ORIENTED_EDGE('',*,*,#5650,.T.);
--#6759=ORIENTED_EDGE('',*,*,#6758,.F.);
--#6760=ORIENTED_EDGE('',*,*,#6408,.F.);
--#6761=EDGE_LOOP('',(#6756,#6757,#6759,#6760));
--#6762=FACE_OUTER_BOUND('',#6761,.F.);
--#6763=ADVANCED_FACE('',(#6762),#6754,.F.);
--#6764=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
--#6765=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6766=DIRECTION('',(0.E0,0.E0,1.E0));
--#6767=AXIS2_PLACEMENT_3D('',#6764,#6765,#6766);
--#6768=PLANE('',#6767);
--#6770=ORIENTED_EDGE('',*,*,#6769,.T.);
--#6771=ORIENTED_EDGE('',*,*,#6446,.F.);
--#6772=ORIENTED_EDGE('',*,*,#6742,.T.);
--#6773=ORIENTED_EDGE('',*,*,#5664,.T.);
--#6774=EDGE_LOOP('',(#6770,#6771,#6772,#6773));
--#6775=FACE_OUTER_BOUND('',#6774,.F.);
--#6776=ADVANCED_FACE('',(#6775),#6768,.F.);
--#6777=CARTESIAN_POINT('',(5.5E0,1.568923974228E0,2.19375E1));
--#6778=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6779=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6780=AXIS2_PLACEMENT_3D('',#6777,#6778,#6779);
--#6781=CYLINDRICAL_SURFACE('',#6780,3.E0);
--#6782=ORIENTED_EDGE('',*,*,#6755,.F.);
--#6783=ORIENTED_EDGE('',*,*,#6406,.T.);
--#6785=ORIENTED_EDGE('',*,*,#6784,.T.);
--#6786=ORIENTED_EDGE('',*,*,#5652,.T.);
--#6787=EDGE_LOOP('',(#6782,#6783,#6785,#6786));
--#6788=FACE_OUTER_BOUND('',#6787,.F.);
--#6789=ADVANCED_FACE('',(#6788),#6781,.F.);
--#6790=CARTESIAN_POINT('',(2.5E0,0.E0,1.89375E1));
--#6791=DIRECTION('',(0.E0,0.E0,1.E0));
--#6792=DIRECTION('',(1.E0,0.E0,0.E0));
--#6793=AXIS2_PLACEMENT_3D('',#6790,#6791,#6792);
--#6794=PLANE('',#6793);
--#6795=ORIENTED_EDGE('',*,*,#6784,.F.);
--#6796=ORIENTED_EDGE('',*,*,#6404,.T.);
--#6798=ORIENTED_EDGE('',*,*,#6797,.F.);
--#6799=ORIENTED_EDGE('',*,*,#5638,.F.);
--#6800=EDGE_LOOP('',(#6795,#6796,#6798,#6799));
--#6801=FACE_OUTER_BOUND('',#6800,.F.);
--#6802=ADVANCED_FACE('',(#6801),#6794,.T.);
--#6803=CARTESIAN_POINT('',(1.85E1,-5.889194178308E-2,2.19375E1));
--#6804=DIRECTION('',(0.E0,1.E0,0.E0));
--#6805=DIRECTION('',(1.E0,0.E0,0.E0));
--#6806=AXIS2_PLACEMENT_3D('',#6803,#6804,#6805);
--#6807=CYLINDRICAL_SURFACE('',#6806,3.E0);
--#6809=ORIENTED_EDGE('',*,*,#6808,.F.);
--#6810=ORIENTED_EDGE('',*,*,#5640,.T.);
--#6811=ORIENTED_EDGE('',*,*,#6797,.T.);
--#6812=ORIENTED_EDGE('',*,*,#6402,.T.);
--#6813=EDGE_LOOP('',(#6809,#6810,#6811,#6812));
--#6814=FACE_OUTER_BOUND('',#6813,.F.);
--#6815=ADVANCED_FACE('',(#6814),#6807,.F.);
--#6816=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
--#6817=DIRECTION('',(1.E0,0.E0,0.E0));
--#6818=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6819=AXIS2_PLACEMENT_3D('',#6816,#6817,#6818);
--#6820=PLANE('',#6819);
--#6821=ORIENTED_EDGE('',*,*,#6808,.T.);
--#6822=ORIENTED_EDGE('',*,*,#6400,.F.);
--#6824=ORIENTED_EDGE('',*,*,#6823,.T.);
--#6825=ORIENTED_EDGE('',*,*,#5642,.T.);
--#6826=EDGE_LOOP('',(#6821,#6822,#6824,#6825));
--#6827=FACE_OUTER_BOUND('',#6826,.F.);
--#6828=ADVANCED_FACE('',(#6827),#6820,.F.);
--#6829=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
--#6830=DIRECTION('',(1.E0,0.E0,0.E0));
--#6831=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6832=AXIS2_PLACEMENT_3D('',#6829,#6830,#6831);
--#6833=PLANE('',#6832);
--#6835=ORIENTED_EDGE('',*,*,#6834,.T.);
--#6836=ORIENTED_EDGE('',*,*,#5656,.T.);
--#6838=ORIENTED_EDGE('',*,*,#6837,.T.);
--#6839=ORIENTED_EDGE('',*,*,#6422,.F.);
--#6840=EDGE_LOOP('',(#6835,#6836,#6838,#6839));
--#6841=FACE_OUTER_BOUND('',#6840,.F.);
--#6842=ADVANCED_FACE('',(#6841),#6833,.F.);
--#6843=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,2.45E1));
--#6844=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6845=DIRECTION('',(1.E0,0.E0,0.E0));
--#6846=AXIS2_PLACEMENT_3D('',#6843,#6844,#6845);
--#6847=CYLINDRICAL_SURFACE('',#6846,5.E0);
--#6848=ORIENTED_EDGE('',*,*,#6823,.F.);
--#6849=ORIENTED_EDGE('',*,*,#6414,.T.);
--#6851=ORIENTED_EDGE('',*,*,#6850,.T.);
--#6852=ORIENTED_EDGE('',*,*,#5644,.T.);
--#6853=EDGE_LOOP('',(#6848,#6849,#6851,#6852));
--#6854=FACE_OUTER_BOUND('',#6853,.F.);
--#6855=ADVANCED_FACE('',(#6854),#6847,.F.);
--#6856=CARTESIAN_POINT('',(2.5E0,1.5E0,2.95E1));
--#6857=DIRECTION('',(0.E0,0.E0,1.E0));
--#6858=DIRECTION('',(1.E0,0.E0,0.E0));
--#6859=AXIS2_PLACEMENT_3D('',#6856,#6857,#6858);
--#6860=PLANE('',#6859);
--#6862=ORIENTED_EDGE('',*,*,#6861,.T.);
--#6863=ORIENTED_EDGE('',*,*,#5646,.T.);
--#6864=ORIENTED_EDGE('',*,*,#6850,.F.);
--#6865=ORIENTED_EDGE('',*,*,#6412,.F.);
--#6866=EDGE_LOOP('',(#6862,#6863,#6864,#6865));
--#6867=FACE_OUTER_BOUND('',#6866,.F.);
--#6868=ADVANCED_FACE('',(#6867),#6860,.F.);
--#6869=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,2.45E1));
--#6870=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6871=DIRECTION('',(0.E0,0.E0,1.E0));
--#6872=AXIS2_PLACEMENT_3D('',#6869,#6870,#6871);
--#6873=CYLINDRICAL_SURFACE('',#6872,5.E0);
--#6874=ORIENTED_EDGE('',*,*,#6861,.F.);
--#6875=ORIENTED_EDGE('',*,*,#6410,.T.);
--#6876=ORIENTED_EDGE('',*,*,#6758,.T.);
--#6877=ORIENTED_EDGE('',*,*,#5648,.T.);
--#6878=EDGE_LOOP('',(#6874,#6875,#6876,#6877));
--#6879=FACE_OUTER_BOUND('',#6878,.F.);
--#6880=ADVANCED_FACE('',(#6879),#6873,.F.);
--#6881=CARTESIAN_POINT('',(1.85E1,1.568923974228E0,1.40625E1));
--#6882=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6883=DIRECTION('',(1.E0,0.E0,0.E0));
--#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883);
--#6885=CYLINDRICAL_SURFACE('',#6884,3.E0);
--#6886=ORIENTED_EDGE('',*,*,#6834,.F.);
--#6887=ORIENTED_EDGE('',*,*,#6420,.T.);
--#6889=ORIENTED_EDGE('',*,*,#6888,.T.);
--#6890=ORIENTED_EDGE('',*,*,#5658,.T.);
--#6891=EDGE_LOOP('',(#6886,#6887,#6889,#6890));
--#6892=FACE_OUTER_BOUND('',#6891,.F.);
--#6893=ADVANCED_FACE('',(#6892),#6885,.F.);
--#6894=CARTESIAN_POINT('',(2.15E1,0.E0,1.70625E1));
--#6895=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6896=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6897=AXIS2_PLACEMENT_3D('',#6894,#6895,#6896);
--#6898=PLANE('',#6897);
--#6899=ORIENTED_EDGE('',*,*,#6888,.F.);
--#6900=ORIENTED_EDGE('',*,*,#6418,.T.);
--#6902=ORIENTED_EDGE('',*,*,#6901,.F.);
--#6903=ORIENTED_EDGE('',*,*,#5660,.F.);
--#6904=EDGE_LOOP('',(#6899,#6900,#6902,#6903));
--#6905=FACE_OUTER_BOUND('',#6904,.F.);
--#6906=ADVANCED_FACE('',(#6905),#6898,.T.);
--#6907=CARTESIAN_POINT('',(5.5E0,-5.889194178308E-2,1.40625E1));
--#6908=DIRECTION('',(0.E0,1.E0,0.E0));
--#6909=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6910=AXIS2_PLACEMENT_3D('',#6907,#6908,#6909);
--#6911=CYLINDRICAL_SURFACE('',#6910,3.E0);
--#6912=ORIENTED_EDGE('',*,*,#6769,.F.);
--#6913=ORIENTED_EDGE('',*,*,#5662,.T.);
--#6914=ORIENTED_EDGE('',*,*,#6901,.T.);
--#6915=ORIENTED_EDGE('',*,*,#6448,.T.);
--#6916=EDGE_LOOP('',(#6912,#6913,#6914,#6915));
--#6917=FACE_OUTER_BOUND('',#6916,.F.);
--#6918=ADVANCED_FACE('',(#6917),#6911,.F.);
--#6919=CARTESIAN_POINT('',(2.05E1,-5.889194178308E-2,1.325E1));
--#6920=DIRECTION('',(0.E0,1.E0,0.E0));
--#6921=DIRECTION('',(1.E0,0.E0,0.E0));
--#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921);
--#6923=CYLINDRICAL_SURFACE('',#6922,1.E0);
--#6924=ORIENTED_EDGE('',*,*,#6837,.F.);
--#6925=ORIENTED_EDGE('',*,*,#5686,.T.);
--#6927=ORIENTED_EDGE('',*,*,#6926,.T.);
--#6928=ORIENTED_EDGE('',*,*,#6424,.T.);
--#6929=EDGE_LOOP('',(#6924,#6925,#6927,#6928));
--#6930=FACE_OUTER_BOUND('',#6929,.F.);
--#6931=ADVANCED_FACE('',(#6930),#6923,.F.);
--#6932=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
--#6933=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6934=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6935=AXIS2_PLACEMENT_3D('',#6932,#6933,#6934);
--#6936=PLANE('',#6935);
--#6938=ORIENTED_EDGE('',*,*,#6937,.F.);
--#6939=ORIENTED_EDGE('',*,*,#6290,.F.);
--#6941=ORIENTED_EDGE('',*,*,#6940,.T.);
--#6942=ORIENTED_EDGE('',*,*,#5532,.T.);
--#6943=EDGE_LOOP('',(#6938,#6939,#6941,#6942));
--#6944=FACE_OUTER_BOUND('',#6943,.F.);
--#6945=ADVANCED_FACE('',(#6944),#6936,.F.);
--#6946=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
--#6947=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6948=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6949=AXIS2_PLACEMENT_3D('',#6946,#6947,#6948);
--#6950=PLANE('',#6949);
--#6951=ORIENTED_EDGE('',*,*,#6926,.F.);
--#6952=ORIENTED_EDGE('',*,*,#5684,.T.);
--#6954=ORIENTED_EDGE('',*,*,#6953,.F.);
--#6955=ORIENTED_EDGE('',*,*,#6426,.F.);
--#6956=EDGE_LOOP('',(#6951,#6952,#6954,#6955));
--#6957=FACE_OUTER_BOUND('',#6956,.F.);
--#6958=ADVANCED_FACE('',(#6957),#6950,.F.);
--#6959=CARTESIAN_POINT('',(2.5E1,1.568923974228E0,1.325E1));
--#6960=DIRECTION('',(0.E0,-1.E0,0.E0));
--#6961=DIRECTION('',(-1.E0,0.E0,0.E0));
--#6962=AXIS2_PLACEMENT_3D('',#6959,#6960,#6961);
--#6963=CYLINDRICAL_SURFACE('',#6962,1.E0);
--#6965=ORIENTED_EDGE('',*,*,#6964,.F.);
--#6966=ORIENTED_EDGE('',*,*,#6292,.T.);
--#6967=ORIENTED_EDGE('',*,*,#6937,.T.);
--#6968=ORIENTED_EDGE('',*,*,#5530,.T.);
--#6969=EDGE_LOOP('',(#6965,#6966,#6967,#6968));
--#6970=FACE_OUTER_BOUND('',#6969,.F.);
--#6971=ADVANCED_FACE('',(#6970),#6963,.F.);
--#6972=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
--#6973=DIRECTION('',(1.E0,0.E0,0.E0));
--#6974=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6975=AXIS2_PLACEMENT_3D('',#6972,#6973,#6974);
--#6976=PLANE('',#6975);
--#6977=ORIENTED_EDGE('',*,*,#6964,.T.);
--#6978=ORIENTED_EDGE('',*,*,#5528,.F.);
--#6980=ORIENTED_EDGE('',*,*,#6979,.T.);
--#6981=ORIENTED_EDGE('',*,*,#6294,.T.);
--#6982=EDGE_LOOP('',(#6977,#6978,#6980,#6981));
--#6983=FACE_OUTER_BOUND('',#6982,.F.);
--#6984=ADVANCED_FACE('',(#6983),#6976,.T.);
--#6985=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
--#6986=DIRECTION('',(1.E0,0.E0,0.E0));
--#6987=DIRECTION('',(0.E0,0.E0,-1.E0));
--#6988=AXIS2_PLACEMENT_3D('',#6985,#6986,#6987);
--#6989=PLANE('',#6988);
--#6991=ORIENTED_EDGE('',*,*,#6990,.T.);
--#6992=ORIENTED_EDGE('',*,*,#6242,.T.);
--#6994=ORIENTED_EDGE('',*,*,#6993,.F.);
--#6995=ORIENTED_EDGE('',*,*,#5498,.F.);
--#6996=EDGE_LOOP('',(#6991,#6992,#6994,#6995));
--#6997=FACE_OUTER_BOUND('',#6996,.F.);
--#6998=ADVANCED_FACE('',(#6997),#6989,.T.);
--#6999=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
--#7000=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#7001=DIRECTION('',(0.E0,1.E0,0.E0));
--#7002=AXIS2_PLACEMENT_3D('',#6999,#7000,#7001);
--#7003=PLANE('',#7002);
--#7004=ORIENTED_EDGE('',*,*,#6979,.F.);
--#7005=ORIENTED_EDGE('',*,*,#5526,.T.);
--#7007=ORIENTED_EDGE('',*,*,#7006,.T.);
--#7008=ORIENTED_EDGE('',*,*,#6296,.F.);
--#7009=EDGE_LOOP('',(#7004,#7005,#7007,#7008));
--#7010=FACE_OUTER_BOUND('',#7009,.F.);
--#7011=ADVANCED_FACE('',(#7010),#7003,.T.);
--#7012=CARTESIAN_POINT('',(0.E0,0.E0,3.2E1));
--#7013=DIRECTION('',(0.E0,0.E0,1.E0));
--#7014=DIRECTION('',(1.E0,0.E0,0.E0));
--#7015=AXIS2_PLACEMENT_3D('',#7012,#7013,#7014);
--#7016=PLANE('',#7015);
--#7017=ORIENTED_EDGE('',*,*,#5524,.F.);
--#7019=ORIENTED_EDGE('',*,*,#7018,.T.);
--#7020=ORIENTED_EDGE('',*,*,#6298,.T.);
--#7021=ORIENTED_EDGE('',*,*,#7006,.F.);
--#7022=EDGE_LOOP('',(#7017,#7019,#7020,#7021));
--#7023=FACE_OUTER_BOUND('',#7022,.F.);
--#7024=ADVANCED_FACE('',(#7023),#7016,.T.);
--#7025=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
--#7026=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#7027=DIRECTION('',(0.E0,1.E0,0.E0));
--#7028=AXIS2_PLACEMENT_3D('',#7025,#7026,#7027);
--#7029=PLANE('',#7028);
--#7030=ORIENTED_EDGE('',*,*,#7018,.F.);
--#7031=ORIENTED_EDGE('',*,*,#5522,.T.);
--#7032=ORIENTED_EDGE('',*,*,#6678,.T.);
--#7033=ORIENTED_EDGE('',*,*,#6300,.F.);
--#7034=EDGE_LOOP('',(#7030,#7031,#7032,#7033));
--#7035=FACE_OUTER_BOUND('',#7034,.F.);
--#7036=ADVANCED_FACE('',(#7035),#7029,.T.);
--#7037=CARTESIAN_POINT('',(2.5E1,-7.055249658685E-2,7.E0));
--#7038=DIRECTION('',(0.E0,1.E0,0.E0));
--#7039=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7040=AXIS2_PLACEMENT_3D('',#7037,#7038,#7039);
--#7041=CYLINDRICAL_SURFACE('',#7040,1.E0);
--#7042=ORIENTED_EDGE('',*,*,#6990,.F.);
--#7043=ORIENTED_EDGE('',*,*,#5496,.T.);
--#7044=ORIENTED_EDGE('',*,*,#5965,.T.);
--#7045=ORIENTED_EDGE('',*,*,#6244,.T.);
--#7046=EDGE_LOOP('',(#7042,#7043,#7044,#7045));
--#7047=FACE_OUTER_BOUND('',#7046,.F.);
--#7048=ADVANCED_FACE('',(#7047),#7041,.F.);
--#7049=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
--#7050=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#7051=DIRECTION('',(0.E0,1.E0,0.E0));
--#7052=AXIS2_PLACEMENT_3D('',#7049,#7050,#7051);
--#7053=PLANE('',#7052);
--#7055=ORIENTED_EDGE('',*,*,#7054,.F.);
--#7056=ORIENTED_EDGE('',*,*,#5500,.T.);
--#7057=ORIENTED_EDGE('',*,*,#6993,.T.);
--#7058=ORIENTED_EDGE('',*,*,#6240,.F.);
--#7059=EDGE_LOOP('',(#7055,#7056,#7057,#7058));
--#7060=FACE_OUTER_BOUND('',#7059,.F.);
--#7061=ADVANCED_FACE('',(#7060),#7053,.T.);
--#7062=CARTESIAN_POINT('',(2.4E1,0.E0,0.E0));
--#7063=DIRECTION('',(0.E0,0.E0,-1.E0));
--#7064=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7065=AXIS2_PLACEMENT_3D('',#7062,#7063,#7064);
--#7066=PLANE('',#7065);
--#7067=ORIENTED_EDGE('',*,*,#5502,.F.);
--#7068=ORIENTED_EDGE('',*,*,#7054,.T.);
--#7069=ORIENTED_EDGE('',*,*,#6238,.T.);
--#7071=ORIENTED_EDGE('',*,*,#7070,.F.);
--#7072=EDGE_LOOP('',(#7067,#7068,#7069,#7071));
--#7073=FACE_OUTER_BOUND('',#7072,.F.);
--#7074=ADVANCED_FACE('',(#7073),#7066,.T.);
--#7075=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
--#7076=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#7077=DIRECTION('',(0.E0,1.E0,0.E0));
--#7078=AXIS2_PLACEMENT_3D('',#7075,#7076,#7077);
--#7079=PLANE('',#7078);
--#7080=ORIENTED_EDGE('',*,*,#6691,.F.);
--#7081=ORIENTED_EDGE('',*,*,#5504,.T.);
--#7082=ORIENTED_EDGE('',*,*,#7070,.T.);
--#7083=ORIENTED_EDGE('',*,*,#6236,.F.);
--#7084=EDGE_LOOP('',(#7080,#7081,#7082,#7083));
--#7085=FACE_OUTER_BOUND('',#7084,.F.);
--#7086=ADVANCED_FACE('',(#7085),#7079,.T.);
--#7087=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
--#7088=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#7089=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7090=AXIS2_PLACEMENT_3D('',#7087,#7088,#7089);
--#7091=PLANE('',#7090);
--#7092=ORIENTED_EDGE('',*,*,#6940,.F.);
--#7093=ORIENTED_EDGE('',*,*,#6288,.T.);
--#7095=ORIENTED_EDGE('',*,*,#7094,.T.);
--#7096=ORIENTED_EDGE('',*,*,#5534,.F.);
--#7097=EDGE_LOOP('',(#7092,#7093,#7095,#7096));
--#7098=FACE_OUTER_BOUND('',#7097,.F.);
--#7099=ADVANCED_FACE('',(#7098),#7091,.T.);
--#7100=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
--#7101=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7102=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7103=AXIS2_PLACEMENT_3D('',#7100,#7101,#7102);
--#7104=PLANE('',#7103);
--#7105=ORIENTED_EDGE('',*,*,#5968,.T.);
--#7106=ORIENTED_EDGE('',*,*,#5536,.T.);
--#7107=ORIENTED_EDGE('',*,*,#7094,.F.);
--#7108=ORIENTED_EDGE('',*,*,#6286,.F.);
--#7109=ORIENTED_EDGE('',*,*,#6165,.F.);
--#7111=ORIENTED_EDGE('',*,*,#7110,.F.);
--#7112=EDGE_LOOP('',(#7105,#7106,#7107,#7108,#7109,#7111));
--#7113=FACE_OUTER_BOUND('',#7112,.F.);
--#7114=ADVANCED_FACE('',(#7113),#7104,.F.);
--#7115=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
--#7116=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
--#7117=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
--#7118=AXIS2_PLACEMENT_3D('',#7115,#7116,#7117);
--#7119=PLANE('',#7118);
--#7120=ORIENTED_EDGE('',*,*,#5970,.T.);
--#7121=ORIENTED_EDGE('',*,*,#7110,.T.);
--#7122=ORIENTED_EDGE('',*,*,#6163,.F.);
--#7124=ORIENTED_EDGE('',*,*,#7123,.F.);
--#7125=EDGE_LOOP('',(#7120,#7121,#7122,#7124));
--#7126=FACE_OUTER_BOUND('',#7125,.F.);
--#7127=ADVANCED_FACE('',(#7126),#7119,.F.);
--#7128=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
--#7129=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7130=DIRECTION('',(1.E0,0.E0,0.E0));
--#7131=AXIS2_PLACEMENT_3D('',#7128,#7129,#7130);
--#7132=PLANE('',#7131);
--#7133=ORIENTED_EDGE('',*,*,#5972,.F.);
--#7134=ORIENTED_EDGE('',*,*,#7123,.T.);
--#7135=ORIENTED_EDGE('',*,*,#6161,.F.);
--#7137=ORIENTED_EDGE('',*,*,#7136,.F.);
--#7138=EDGE_LOOP('',(#7133,#7134,#7135,#7137));
--#7139=FACE_OUTER_BOUND('',#7138,.F.);
--#7141=ORIENTED_EDGE('',*,*,#7140,.T.);
--#7143=ORIENTED_EDGE('',*,*,#7142,.T.);
--#7144=EDGE_LOOP('',(#7141,#7143));
--#7145=FACE_BOUND('',#7144,.F.);
--#7147=ORIENTED_EDGE('',*,*,#7146,.T.);
--#7149=ORIENTED_EDGE('',*,*,#7148,.T.);
--#7150=EDGE_LOOP('',(#7147,#7149));
--#7151=FACE_BOUND('',#7150,.F.);
--#7152=ADVANCED_FACE('',(#7139,#7145,#7151),#7132,.F.);
--#7153=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
--#7154=DIRECTION('',(1.E0,0.E0,0.E0));
--#7155=DIRECTION('',(0.E0,1.E0,0.E0));
--#7156=AXIS2_PLACEMENT_3D('',#7153,#7154,#7155);
--#7157=PLANE('',#7156);
--#7159=ORIENTED_EDGE('',*,*,#7158,.T.);
--#7160=ORIENTED_EDGE('',*,*,#6430,.F.);
--#7162=ORIENTED_EDGE('',*,*,#7161,.T.);
--#7163=ORIENTED_EDGE('',*,*,#5680,.T.);
--#7164=EDGE_LOOP('',(#7159,#7160,#7162,#7163));
--#7165=FACE_OUTER_BOUND('',#7164,.F.);
--#7166=ADVANCED_FACE('',(#7165),#7157,.F.);
--#7167=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
--#7168=DIRECTION('',(1.E0,0.E0,0.E0));
--#7169=DIRECTION('',(0.E0,1.E0,0.E0));
--#7170=AXIS2_PLACEMENT_3D('',#7167,#7168,#7169);
--#7171=PLANE('',#7170);
--#7172=ORIENTED_EDGE('',*,*,#6325,.F.);
--#7173=ORIENTED_EDGE('',*,*,#5974,.T.);
--#7174=ORIENTED_EDGE('',*,*,#7136,.T.);
--#7175=ORIENTED_EDGE('',*,*,#6159,.F.);
--#7176=EDGE_LOOP('',(#7172,#7173,#7174,#7175));
--#7177=FACE_OUTER_BOUND('',#7176,.F.);
--#7178=ADVANCED_FACE('',(#7177),#7171,.F.);
--#7179=CARTESIAN_POINT('',(1.8E1,-7.099592191979E-2,1.1E1));
--#7180=DIRECTION('',(0.E0,1.E0,0.E0));
--#7181=DIRECTION('',(1.E0,0.E0,0.E0));
--#7182=AXIS2_PLACEMENT_3D('',#7179,#7180,#7181);
--#7183=CYLINDRICAL_SURFACE('',#7182,1.E0);
--#7184=ORIENTED_EDGE('',*,*,#7158,.F.);
--#7185=ORIENTED_EDGE('',*,*,#5678,.T.);
--#7187=ORIENTED_EDGE('',*,*,#7186,.T.);
--#7188=ORIENTED_EDGE('',*,*,#6432,.T.);
--#7189=EDGE_LOOP('',(#7184,#7185,#7187,#7188));
--#7190=FACE_OUTER_BOUND('',#7189,.F.);
--#7191=ADVANCED_FACE('',(#7190),#7183,.F.);
--#7192=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
--#7193=DIRECTION('',(0.E0,0.E0,1.E0));
--#7194=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7195=AXIS2_PLACEMENT_3D('',#7192,#7193,#7194);
--#7196=PLANE('',#7195);
--#7198=ORIENTED_EDGE('',*,*,#7197,.F.);
--#7199=ORIENTED_EDGE('',*,*,#6434,.T.);
--#7200=ORIENTED_EDGE('',*,*,#7186,.F.);
--#7201=ORIENTED_EDGE('',*,*,#5676,.F.);
--#7202=EDGE_LOOP('',(#7198,#7199,#7200,#7201));
--#7203=FACE_OUTER_BOUND('',#7202,.F.);
--#7204=ADVANCED_FACE('',(#7203),#7196,.T.);
--#7205=CARTESIAN_POINT('',(6.E0,1.567729432957E0,1.1E1));
--#7206=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7207=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7208=AXIS2_PLACEMENT_3D('',#7205,#7206,#7207);
--#7209=CYLINDRICAL_SURFACE('',#7208,1.E0);
--#7211=ORIENTED_EDGE('',*,*,#7210,.F.);
--#7212=ORIENTED_EDGE('',*,*,#6436,.T.);
--#7213=ORIENTED_EDGE('',*,*,#7197,.T.);
--#7214=ORIENTED_EDGE('',*,*,#5674,.T.);
--#7215=EDGE_LOOP('',(#7211,#7212,#7213,#7214));
--#7216=FACE_OUTER_BOUND('',#7215,.F.);
--#7217=ADVANCED_FACE('',(#7216),#7209,.F.);
--#7218=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
--#7219=DIRECTION('',(1.E0,0.E0,0.E0));
--#7220=DIRECTION('',(0.E0,1.E0,0.E0));
--#7221=AXIS2_PLACEMENT_3D('',#7218,#7219,#7220);
--#7222=PLANE('',#7221);
--#7223=ORIENTED_EDGE('',*,*,#7210,.T.);
--#7224=ORIENTED_EDGE('',*,*,#5672,.F.);
--#7226=ORIENTED_EDGE('',*,*,#7225,.T.);
--#7227=ORIENTED_EDGE('',*,*,#6438,.T.);
--#7228=EDGE_LOOP('',(#7223,#7224,#7226,#7227));
--#7229=FACE_OUTER_BOUND('',#7228,.F.);
--#7230=ADVANCED_FACE('',(#7229),#7222,.T.);
--#7231=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
--#7232=DIRECTION('',(1.E0,0.E0,0.E0));
--#7233=DIRECTION('',(0.E0,1.E0,0.E0));
--#7234=AXIS2_PLACEMENT_3D('',#7231,#7232,#7233);
--#7235=PLANE('',#7234);
--#7236=ORIENTED_EDGE('',*,*,#6322,.T.);
--#7238=ORIENTED_EDGE('',*,*,#7237,.T.);
--#7240=ORIENTED_EDGE('',*,*,#7239,.F.);
--#7241=ORIENTED_EDGE('',*,*,#5978,.T.);
--#7242=EDGE_LOOP('',(#7236,#7238,#7240,#7241));
--#7243=FACE_OUTER_BOUND('',#7242,.F.);
--#7244=ADVANCED_FACE('',(#7243),#7235,.T.);
--#7245=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
--#7246=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#7247=DIRECTION('',(0.E0,1.E0,0.E0));
--#7248=AXIS2_PLACEMENT_3D('',#7245,#7246,#7247);
--#7249=PLANE('',#7248);
--#7250=ORIENTED_EDGE('',*,*,#7225,.F.);
--#7251=ORIENTED_EDGE('',*,*,#5670,.T.);
--#7252=ORIENTED_EDGE('',*,*,#6718,.T.);
--#7253=ORIENTED_EDGE('',*,*,#6440,.F.);
--#7254=EDGE_LOOP('',(#7250,#7251,#7252,#7253));
--#7255=FACE_OUTER_BOUND('',#7254,.F.);
--#7256=ADVANCED_FACE('',(#7255),#7249,.T.);
--#7257=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));
--#7258=DIRECTION('',(0.E0,0.E0,1.E0));
--#7259=DIRECTION('',(1.E0,0.E0,0.E0));
--#7260=AXIS2_PLACEMENT_3D('',#7257,#7258,#7259);
--#7261=PLANE('',#7260);
--#7263=ORIENTED_EDGE('',*,*,#7262,.F.);
--#7264=ORIENTED_EDGE('',*,*,#6312,.F.);
--#7266=ORIENTED_EDGE('',*,*,#7265,.F.);
--#7268=ORIENTED_EDGE('',*,*,#7267,.F.);
--#7270=ORIENTED_EDGE('',*,*,#7269,.F.);
--#7271=ORIENTED_EDGE('',*,*,#7237,.F.);
--#7272=ORIENTED_EDGE('',*,*,#6320,.F.);
--#7274=ORIENTED_EDGE('',*,*,#7273,.T.);
--#7276=ORIENTED_EDGE('',*,*,#7275,.F.);
--#7277=EDGE_LOOP('',(#7263,#7264,#7266,#7268,#7270,#7271,#7272,#7274,#7276));
--#7278=FACE_OUTER_BOUND('',#7277,.F.);
--#7280=ORIENTED_EDGE('',*,*,#7279,.T.);
--#7282=ORIENTED_EDGE('',*,*,#7281,.T.);
--#7283=EDGE_LOOP('',(#7280,#7282));
--#7284=FACE_BOUND('',#7283,.F.);
--#7286=ORIENTED_EDGE('',*,*,#7285,.F.);
--#7288=ORIENTED_EDGE('',*,*,#7287,.T.);
--#7290=ORIENTED_EDGE('',*,*,#7289,.F.);
--#7292=ORIENTED_EDGE('',*,*,#7291,.T.);
--#7294=ORIENTED_EDGE('',*,*,#7293,.F.);
--#7296=ORIENTED_EDGE('',*,*,#7295,.T.);
--#7298=ORIENTED_EDGE('',*,*,#7297,.F.);
--#7300=ORIENTED_EDGE('',*,*,#7299,.T.);
--#7302=ORIENTED_EDGE('',*,*,#7301,.F.);
--#7304=ORIENTED_EDGE('',*,*,#7303,.T.);
--#7306=ORIENTED_EDGE('',*,*,#7305,.F.);
--#7308=ORIENTED_EDGE('',*,*,#7307,.T.);
--#7309=EDGE_LOOP('',(#7286,#7288,#7290,#7292,#7294,#7296,#7298,#7300,#7302,#7304,
--#7306,#7308));
--#7310=FACE_BOUND('',#7309,.F.);
--#7311=ADVANCED_FACE('',(#7278,#7284,#7310),#7261,.T.);
--#7312=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
--#7313=DIRECTION('',(0.E0,0.E0,1.E0));
--#7314=DIRECTION('',(1.E0,0.E0,0.E0));
--#7315=AXIS2_PLACEMENT_3D('',#7312,#7313,#7314);
--#7316=CYLINDRICAL_SURFACE('',#7315,1.625E-1);
--#7317=ORIENTED_EDGE('',*,*,#6031,.T.);
--#7319=ORIENTED_EDGE('',*,*,#7318,.T.);
--#7320=ORIENTED_EDGE('',*,*,#7279,.F.);
--#7322=ORIENTED_EDGE('',*,*,#7321,.F.);
--#7323=EDGE_LOOP('',(#7317,#7319,#7320,#7322));
--#7324=FACE_OUTER_BOUND('',#7323,.F.);
--#7325=ADVANCED_FACE('',(#7324),#7316,.F.);
--#7326=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
--#7327=DIRECTION('',(0.E0,0.E0,1.E0));
--#7328=DIRECTION('',(1.E0,0.E0,0.E0));
--#7329=AXIS2_PLACEMENT_3D('',#7326,#7327,#7328);
--#7330=CYLINDRICAL_SURFACE('',#7329,1.625E-1);
--#7331=ORIENTED_EDGE('',*,*,#6033,.T.);
--#7332=ORIENTED_EDGE('',*,*,#7321,.T.);
--#7333=ORIENTED_EDGE('',*,*,#7281,.F.);
--#7334=ORIENTED_EDGE('',*,*,#7318,.F.);
--#7335=EDGE_LOOP('',(#7331,#7332,#7333,#7334));
--#7336=FACE_OUTER_BOUND('',#7335,.F.);
--#7337=ADVANCED_FACE('',(#7336),#7330,.F.);
--#7338=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.2E1));
--#7339=DIRECTION('',(1.E0,0.E0,0.E0));
--#7340=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7341=AXIS2_PLACEMENT_3D('',#7338,#7339,#7340);
--#7342=PLANE('',#7341);
--#7343=ORIENTED_EDGE('',*,*,#6314,.T.);
--#7344=ORIENTED_EDGE('',*,*,#7262,.T.);
--#7346=ORIENTED_EDGE('',*,*,#7345,.T.);
--#7347=EDGE_LOOP('',(#7343,#7344,#7346));
--#7348=FACE_OUTER_BOUND('',#7347,.F.);
--#7349=ADVANCED_FACE('',(#7348),#7342,.F.);
--#7350=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
--#7351=DIRECTION('',(0.E0,5.E-1,8.660254037844E-1));
--#7352=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
--#7353=AXIS2_PLACEMENT_3D('',#7350,#7351,#7352);
--#7354=PLANE('',#7353);
--#7355=ORIENTED_EDGE('',*,*,#6316,.F.);
--#7356=ORIENTED_EDGE('',*,*,#7345,.F.);
--#7357=ORIENTED_EDGE('',*,*,#7275,.T.);
--#7359=ORIENTED_EDGE('',*,*,#7358,.T.);
--#7360=EDGE_LOOP('',(#7355,#7356,#7357,#7359));
--#7361=FACE_OUTER_BOUND('',#7360,.F.);
--#7363=ORIENTED_EDGE('',*,*,#7362,.T.);
--#7365=ORIENTED_EDGE('',*,*,#7364,.T.);
--#7366=EDGE_LOOP('',(#7363,#7365));
--#7367=FACE_BOUND('',#7366,.F.);
--#7368=ADVANCED_FACE('',(#7361,#7367),#7354,.T.);
--#7369=CARTESIAN_POINT('',(2.E0,1.5E0,1.2E1));
--#7370=DIRECTION('',(1.E0,0.E0,0.E0));
--#7371=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7372=AXIS2_PLACEMENT_3D('',#7369,#7370,#7371);
--#7373=PLANE('',#7372);
--#7374=ORIENTED_EDGE('',*,*,#6318,.F.);
--#7375=ORIENTED_EDGE('',*,*,#7358,.F.);
--#7376=ORIENTED_EDGE('',*,*,#7273,.F.);
--#7377=EDGE_LOOP('',(#7374,#7375,#7376));
--#7378=FACE_OUTER_BOUND('',#7377,.F.);
--#7379=ADVANCED_FACE('',(#7378),#7373,.T.);
--#7380=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
--#7381=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7382=DIRECTION('',(1.E0,0.E0,0.E0));
--#7383=AXIS2_PLACEMENT_3D('',#7380,#7381,#7382);
--#7384=CYLINDRICAL_SURFACE('',#7383,2.575E-1);
--#7386=ORIENTED_EDGE('',*,*,#7385,.F.);
--#7387=ORIENTED_EDGE('',*,*,#7362,.F.);
--#7389=ORIENTED_EDGE('',*,*,#7388,.F.);
--#7391=ORIENTED_EDGE('',*,*,#7390,.F.);
--#7392=EDGE_LOOP('',(#7386,#7387,#7389,#7391));
--#7393=FACE_OUTER_BOUND('',#7392,.F.);
--#7394=ADVANCED_FACE('',(#7393),#7384,.F.);
--#7395=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
--#7396=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7397=DIRECTION('',(1.E0,0.E0,0.E0));
--#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397);
--#7399=CYLINDRICAL_SURFACE('',#7398,2.575E-1);
--#7400=ORIENTED_EDGE('',*,*,#7388,.T.);
--#7401=ORIENTED_EDGE('',*,*,#7364,.F.);
--#7402=ORIENTED_EDGE('',*,*,#7385,.T.);
--#7404=ORIENTED_EDGE('',*,*,#7403,.F.);
--#7405=EDGE_LOOP('',(#7400,#7401,#7402,#7404));
--#7406=FACE_OUTER_BOUND('',#7405,.F.);
--#7407=ADVANCED_FACE('',(#7406),#7399,.F.);
--#7408=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
--#7409=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7410=DIRECTION('',(1.E0,0.E0,0.E0));
--#7411=AXIS2_PLACEMENT_3D('',#7408,#7409,#7410);
--#7412=PLANE('',#7411);
--#7413=ORIENTED_EDGE('',*,*,#7390,.T.);
--#7414=ORIENTED_EDGE('',*,*,#7403,.T.);
--#7415=EDGE_LOOP('',(#7413,#7414));
--#7416=FACE_OUTER_BOUND('',#7415,.F.);
--#7418=ORIENTED_EDGE('',*,*,#7417,.F.);
--#7420=ORIENTED_EDGE('',*,*,#7419,.F.);
--#7421=EDGE_LOOP('',(#7418,#7420));
--#7422=FACE_BOUND('',#7421,.F.);
--#7423=ADVANCED_FACE('',(#7416,#7422),#7412,.F.);
--#7424=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
--#7425=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7426=DIRECTION('',(1.E0,0.E0,0.E0));
--#7427=AXIS2_PLACEMENT_3D('',#7424,#7425,#7426);
--#7428=CYLINDRICAL_SURFACE('',#7427,1.925E-1);
--#7429=ORIENTED_EDGE('',*,*,#7417,.T.);
--#7431=ORIENTED_EDGE('',*,*,#7430,.T.);
--#7432=ORIENTED_EDGE('',*,*,#5620,.F.);
--#7434=ORIENTED_EDGE('',*,*,#7433,.F.);
--#7435=EDGE_LOOP('',(#7429,#7431,#7432,#7434));
--#7436=FACE_OUTER_BOUND('',#7435,.F.);
--#7437=ADVANCED_FACE('',(#7436),#7428,.F.);
--#7438=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
--#7439=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7440=DIRECTION('',(1.E0,0.E0,0.E0));
--#7441=AXIS2_PLACEMENT_3D('',#7438,#7439,#7440);
--#7442=CYLINDRICAL_SURFACE('',#7441,1.925E-1);
--#7443=ORIENTED_EDGE('',*,*,#7419,.T.);
--#7444=ORIENTED_EDGE('',*,*,#7433,.T.);
--#7445=ORIENTED_EDGE('',*,*,#5622,.F.);
--#7446=ORIENTED_EDGE('',*,*,#7430,.F.);
--#7447=EDGE_LOOP('',(#7443,#7444,#7445,#7446));
--#7448=FACE_OUTER_BOUND('',#7447,.F.);
--#7449=ADVANCED_FACE('',(#7448),#7442,.F.);
--#7450=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
--#7451=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7452=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7453=AXIS2_PLACEMENT_3D('',#7450,#7451,#7452);
--#7454=PLANE('',#7453);
--#7455=ORIENTED_EDGE('',*,*,#7265,.T.);
--#7456=ORIENTED_EDGE('',*,*,#6310,.T.);
--#7458=ORIENTED_EDGE('',*,*,#7457,.F.);
--#7459=ORIENTED_EDGE('',*,*,#5512,.F.);
--#7460=ORIENTED_EDGE('',*,*,#5984,.T.);
--#7462=ORIENTED_EDGE('',*,*,#7461,.T.);
--#7463=EDGE_LOOP('',(#7455,#7456,#7458,#7459,#7460,#7462));
--#7464=FACE_OUTER_BOUND('',#7463,.F.);
--#7465=ADVANCED_FACE('',(#7464),#7454,.T.);
--#7466=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
--#7467=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#7468=DIRECTION('',(0.E0,1.E0,0.E0));
--#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468);
--#7470=PLANE('',#7469);
--#7471=ORIENTED_EDGE('',*,*,#6731,.F.);
--#7472=ORIENTED_EDGE('',*,*,#5514,.T.);
--#7473=ORIENTED_EDGE('',*,*,#7457,.T.);
--#7474=ORIENTED_EDGE('',*,*,#6308,.F.);
--#7475=EDGE_LOOP('',(#7471,#7472,#7473,#7474));
--#7476=FACE_OUTER_BOUND('',#7475,.F.);
--#7477=ADVANCED_FACE('',(#7476),#7470,.T.);
--#7478=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
--#7479=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#7480=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
--#7481=AXIS2_PLACEMENT_3D('',#7478,#7479,#7480);
--#7482=PLANE('',#7481);
--#7483=ORIENTED_EDGE('',*,*,#5982,.F.);
--#7485=ORIENTED_EDGE('',*,*,#7484,.T.);
--#7486=ORIENTED_EDGE('',*,*,#7267,.T.);
--#7487=ORIENTED_EDGE('',*,*,#7461,.F.);
--#7488=EDGE_LOOP('',(#7483,#7485,#7486,#7487));
--#7489=FACE_OUTER_BOUND('',#7488,.F.);
--#7490=ADVANCED_FACE('',(#7489),#7482,.T.);
--#7491=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
--#7492=DIRECTION('',(0.E0,1.E0,0.E0));
--#7493=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7494=AXIS2_PLACEMENT_3D('',#7491,#7492,#7493);
--#7495=PLANE('',#7494);
--#7496=ORIENTED_EDGE('',*,*,#5980,.F.);
--#7497=ORIENTED_EDGE('',*,*,#7239,.T.);
--#7498=ORIENTED_EDGE('',*,*,#7269,.T.);
--#7499=ORIENTED_EDGE('',*,*,#7484,.F.);
--#7500=EDGE_LOOP('',(#7496,#7497,#7498,#7499));
--#7501=FACE_OUTER_BOUND('',#7500,.F.);
--#7503=ORIENTED_EDGE('',*,*,#7502,.F.);
--#7505=ORIENTED_EDGE('',*,*,#7504,.F.);
--#7506=EDGE_LOOP('',(#7503,#7505));
--#7507=FACE_BOUND('',#7506,.F.);
--#7509=ORIENTED_EDGE('',*,*,#7508,.F.);
--#7511=ORIENTED_EDGE('',*,*,#7510,.F.);
--#7512=EDGE_LOOP('',(#7509,#7511));
--#7513=FACE_BOUND('',#7512,.F.);
--#7514=ADVANCED_FACE('',(#7501,#7507,#7513),#7495,.T.);
--#7515=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
--#7516=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7517=DIRECTION('',(1.E0,0.E0,0.E0));
--#7518=AXIS2_PLACEMENT_3D('',#7515,#7516,#7517);
--#7519=CYLINDRICAL_SURFACE('',#7518,9.5E-2);
--#7520=ORIENTED_EDGE('',*,*,#7502,.T.);
--#7522=ORIENTED_EDGE('',*,*,#7521,.T.);
--#7524=ORIENTED_EDGE('',*,*,#7523,.F.);
--#7526=ORIENTED_EDGE('',*,*,#7525,.F.);
--#7527=EDGE_LOOP('',(#7520,#7522,#7524,#7526));
--#7528=FACE_OUTER_BOUND('',#7527,.F.);
--#7529=ADVANCED_FACE('',(#7528),#7519,.F.);
--#7530=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
--#7531=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7532=DIRECTION('',(1.E0,0.E0,0.E0));
--#7533=AXIS2_PLACEMENT_3D('',#7530,#7531,#7532);
--#7534=CYLINDRICAL_SURFACE('',#7533,9.5E-2);
--#7535=ORIENTED_EDGE('',*,*,#7504,.T.);
--#7536=ORIENTED_EDGE('',*,*,#7525,.T.);
--#7538=ORIENTED_EDGE('',*,*,#7537,.F.);
--#7539=ORIENTED_EDGE('',*,*,#7521,.F.);
--#7540=EDGE_LOOP('',(#7535,#7536,#7538,#7539));
--#7541=FACE_OUTER_BOUND('',#7540,.F.);
--#7542=ADVANCED_FACE('',(#7541),#7534,.F.);
--#7543=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
--#7544=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7545=DIRECTION('',(1.E0,0.E0,0.E0));
--#7546=AXIS2_PLACEMENT_3D('',#7543,#7544,#7545);
--#7547=PLANE('',#7546);
--#7548=ORIENTED_EDGE('',*,*,#7523,.T.);
--#7549=ORIENTED_EDGE('',*,*,#7537,.T.);
--#7550=EDGE_LOOP('',(#7548,#7549));
--#7551=FACE_OUTER_BOUND('',#7550,.F.);
--#7552=ADVANCED_FACE('',(#7551),#7547,.F.);
--#7553=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
--#7554=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7555=DIRECTION('',(1.E0,0.E0,0.E0));
--#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555);
--#7557=CYLINDRICAL_SURFACE('',#7556,6.25E-2);
--#7558=ORIENTED_EDGE('',*,*,#7508,.T.);
--#7560=ORIENTED_EDGE('',*,*,#7559,.T.);
--#7562=ORIENTED_EDGE('',*,*,#7561,.F.);
--#7564=ORIENTED_EDGE('',*,*,#7563,.F.);
--#7565=EDGE_LOOP('',(#7558,#7560,#7562,#7564));
--#7566=FACE_OUTER_BOUND('',#7565,.F.);
--#7567=ADVANCED_FACE('',(#7566),#7557,.F.);
--#7568=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
--#7569=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7570=DIRECTION('',(1.E0,0.E0,0.E0));
--#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570);
--#7572=CYLINDRICAL_SURFACE('',#7571,6.25E-2);
--#7573=ORIENTED_EDGE('',*,*,#7510,.T.);
--#7574=ORIENTED_EDGE('',*,*,#7563,.T.);
--#7576=ORIENTED_EDGE('',*,*,#7575,.F.);
--#7577=ORIENTED_EDGE('',*,*,#7559,.F.);
--#7578=EDGE_LOOP('',(#7573,#7574,#7576,#7577));
--#7579=FACE_OUTER_BOUND('',#7578,.F.);
--#7580=ADVANCED_FACE('',(#7579),#7572,.F.);
--#7581=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
--#7582=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7583=DIRECTION('',(1.E0,0.E0,0.E0));
--#7584=AXIS2_PLACEMENT_3D('',#7581,#7582,#7583);
--#7585=PLANE('',#7584);
--#7586=ORIENTED_EDGE('',*,*,#7561,.T.);
--#7587=ORIENTED_EDGE('',*,*,#7575,.T.);
--#7588=EDGE_LOOP('',(#7586,#7587));
--#7589=FACE_OUTER_BOUND('',#7588,.F.);
--#7590=ADVANCED_FACE('',(#7589),#7585,.F.);
--#7591=CARTESIAN_POINT('',(2.15E0,6.65E0,9.441108058217E0));
--#7592=DIRECTION('',(0.E0,0.E0,1.E0));
--#7593=DIRECTION('',(1.E0,0.E0,0.E0));
--#7594=AXIS2_PLACEMENT_3D('',#7591,#7592,#7593);
--#7595=CYLINDRICAL_SURFACE('',#7594,3.5E-1);
--#7597=ORIENTED_EDGE('',*,*,#7596,.T.);
--#7598=ORIENTED_EDGE('',*,*,#7285,.T.);
--#7600=ORIENTED_EDGE('',*,*,#7599,.F.);
--#7602=ORIENTED_EDGE('',*,*,#7601,.T.);
--#7603=EDGE_LOOP('',(#7597,#7598,#7600,#7602));
--#7604=FACE_OUTER_BOUND('',#7603,.F.);
--#7605=ADVANCED_FACE('',(#7604),#7595,.T.);
--#7606=CARTESIAN_POINT('',(2.5E0,7.E0,1.E1));
--#7607=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7608=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7609=AXIS2_PLACEMENT_3D('',#7606,#7607,#7608);
--#7610=PLANE('',#7609);
--#7611=ORIENTED_EDGE('',*,*,#7596,.F.);
--#7613=ORIENTED_EDGE('',*,*,#7612,.T.);
--#7615=ORIENTED_EDGE('',*,*,#7614,.F.);
--#7616=ORIENTED_EDGE('',*,*,#7287,.F.);
--#7617=EDGE_LOOP('',(#7611,#7613,#7615,#7616));
--#7618=FACE_OUTER_BOUND('',#7617,.F.);
--#7619=ADVANCED_FACE('',(#7618),#7610,.F.);
--#7620=CARTESIAN_POINT('',(0.E0,0.E0,9.5E0));
--#7621=DIRECTION('',(0.E0,0.E0,1.E0));
--#7622=DIRECTION('',(1.E0,0.E0,0.E0));
--#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622);
--#7624=PLANE('',#7623);
--#7625=ORIENTED_EDGE('',*,*,#7612,.F.);
--#7626=ORIENTED_EDGE('',*,*,#7601,.F.);
--#7628=ORIENTED_EDGE('',*,*,#7627,.F.);
--#7630=ORIENTED_EDGE('',*,*,#7629,.F.);
--#7632=ORIENTED_EDGE('',*,*,#7631,.F.);
--#7634=ORIENTED_EDGE('',*,*,#7633,.F.);
--#7636=ORIENTED_EDGE('',*,*,#7635,.F.);
--#7638=ORIENTED_EDGE('',*,*,#7637,.F.);
--#7640=ORIENTED_EDGE('',*,*,#7639,.F.);
--#7642=ORIENTED_EDGE('',*,*,#7641,.F.);
--#7644=ORIENTED_EDGE('',*,*,#7643,.F.);
--#7646=ORIENTED_EDGE('',*,*,#7645,.F.);
--#7647=EDGE_LOOP('',(#7625,#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7640,#7642,
--#7644,#7646));
--#7648=FACE_OUTER_BOUND('',#7647,.F.);
--#7649=ADVANCED_FACE('',(#7648),#7624,.T.);
--#7650=CARTESIAN_POINT('',(1.357969178416E0,7.E0,1.E1));
--#7651=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7652=DIRECTION('',(1.E0,0.E0,0.E0));
--#7653=AXIS2_PLACEMENT_3D('',#7650,#7651,#7652);
--#7654=PLANE('',#7653);
--#7655=ORIENTED_EDGE('',*,*,#7599,.T.);
--#7656=ORIENTED_EDGE('',*,*,#7307,.F.);
--#7658=ORIENTED_EDGE('',*,*,#7657,.T.);
--#7659=ORIENTED_EDGE('',*,*,#7627,.T.);
--#7660=EDGE_LOOP('',(#7655,#7656,#7658,#7659));
--#7661=FACE_OUTER_BOUND('',#7660,.F.);
--#7662=ADVANCED_FACE('',(#7661),#7654,.F.);
--#7663=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.006892397423E1));
--#7664=DIRECTION('',(0.E0,0.E0,-1.E0));
--#7665=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7666=AXIS2_PLACEMENT_3D('',#7663,#7664,#7665);
--#7667=CYLINDRICAL_SURFACE('',#7666,3.5E-1);
--#7668=ORIENTED_EDGE('',*,*,#7657,.F.);
--#7669=ORIENTED_EDGE('',*,*,#7305,.T.);
--#7671=ORIENTED_EDGE('',*,*,#7670,.T.);
--#7672=ORIENTED_EDGE('',*,*,#7629,.T.);
--#7673=EDGE_LOOP('',(#7668,#7669,#7671,#7672));
--#7674=FACE_OUTER_BOUND('',#7673,.F.);
--#7675=ADVANCED_FACE('',(#7674),#7667,.F.);
--#7676=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,1.E1));
--#7677=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#7678=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
--#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678);
--#7680=PLANE('',#7679);
--#7681=ORIENTED_EDGE('',*,*,#7670,.F.);
--#7682=ORIENTED_EDGE('',*,*,#7303,.F.);
--#7684=ORIENTED_EDGE('',*,*,#7683,.T.);
--#7685=ORIENTED_EDGE('',*,*,#7631,.T.);
--#7686=EDGE_LOOP('',(#7681,#7682,#7684,#7685));
--#7687=FACE_OUTER_BOUND('',#7686,.F.);
--#7688=ADVANCED_FACE('',(#7687),#7680,.F.);
--#7689=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.006892397423E1));
--#7690=DIRECTION('',(0.E0,0.E0,-1.E0));
--#7691=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#7692=AXIS2_PLACEMENT_3D('',#7689,#7690,#7691);
--#7693=CYLINDRICAL_SURFACE('',#7692,3.5E-1);
--#7694=ORIENTED_EDGE('',*,*,#7683,.F.);
--#7695=ORIENTED_EDGE('',*,*,#7301,.T.);
--#7697=ORIENTED_EDGE('',*,*,#7696,.T.);
--#7698=ORIENTED_EDGE('',*,*,#7633,.T.);
--#7699=EDGE_LOOP('',(#7694,#7695,#7697,#7698));
--#7700=FACE_OUTER_BOUND('',#7699,.F.);
--#7701=ADVANCED_FACE('',(#7700),#7693,.F.);
--#7702=CARTESIAN_POINT('',(4.5E0,9.5E0,1.E1));
--#7703=DIRECTION('',(0.E0,1.E0,0.E0));
--#7704=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704);
--#7706=PLANE('',#7705);
--#7707=ORIENTED_EDGE('',*,*,#7696,.F.);
--#7708=ORIENTED_EDGE('',*,*,#7299,.F.);
--#7710=ORIENTED_EDGE('',*,*,#7709,.T.);
--#7711=ORIENTED_EDGE('',*,*,#7635,.T.);
--#7712=EDGE_LOOP('',(#7707,#7708,#7710,#7711));
--#7713=FACE_OUTER_BOUND('',#7712,.F.);
--#7714=ADVANCED_FACE('',(#7713),#7706,.F.);
--#7715=CARTESIAN_POINT('',(4.15E0,9.15E0,1.006892397423E1));
--#7716=DIRECTION('',(0.E0,0.E0,-1.E0));
--#7717=DIRECTION('',(0.E0,1.E0,0.E0));
--#7718=AXIS2_PLACEMENT_3D('',#7715,#7716,#7717);
--#7719=CYLINDRICAL_SURFACE('',#7718,3.5E-1);
--#7720=ORIENTED_EDGE('',*,*,#7709,.F.);
--#7721=ORIENTED_EDGE('',*,*,#7297,.T.);
--#7723=ORIENTED_EDGE('',*,*,#7722,.T.);
--#7724=ORIENTED_EDGE('',*,*,#7637,.T.);
--#7725=EDGE_LOOP('',(#7720,#7721,#7723,#7724));
--#7726=FACE_OUTER_BOUND('',#7725,.F.);
--#7727=ADVANCED_FACE('',(#7726),#7719,.F.);
--#7728=CARTESIAN_POINT('',(4.5E0,2.E0,1.E1));
--#7729=DIRECTION('',(1.E0,0.E0,0.E0));
--#7730=DIRECTION('',(0.E0,1.E0,0.E0));
--#7731=AXIS2_PLACEMENT_3D('',#7728,#7729,#7730);
--#7732=PLANE('',#7731);
--#7734=ORIENTED_EDGE('',*,*,#7733,.T.);
--#7735=ORIENTED_EDGE('',*,*,#7639,.T.);
--#7736=ORIENTED_EDGE('',*,*,#7722,.F.);
--#7737=ORIENTED_EDGE('',*,*,#7295,.F.);
--#7738=EDGE_LOOP('',(#7734,#7735,#7736,#7737));
--#7739=FACE_OUTER_BOUND('',#7738,.F.);
--#7740=ADVANCED_FACE('',(#7739),#7732,.F.);
--#7741=CARTESIAN_POINT('',(4.15E0,2.35E0,1.006892397423E1));
--#7742=DIRECTION('',(0.E0,0.E0,-1.E0));
--#7743=DIRECTION('',(1.E0,0.E0,0.E0));
--#7744=AXIS2_PLACEMENT_3D('',#7741,#7742,#7743);
--#7745=CYLINDRICAL_SURFACE('',#7744,3.5E-1);
--#7746=ORIENTED_EDGE('',*,*,#7733,.F.);
--#7747=ORIENTED_EDGE('',*,*,#7293,.T.);
--#7749=ORIENTED_EDGE('',*,*,#7748,.T.);
--#7750=ORIENTED_EDGE('',*,*,#7641,.T.);
--#7751=EDGE_LOOP('',(#7746,#7747,#7749,#7750));
--#7752=FACE_OUTER_BOUND('',#7751,.F.);
--#7753=ADVANCED_FACE('',(#7752),#7745,.F.);
--#7754=CARTESIAN_POINT('',(2.5E0,2.E0,1.E1));
--#7755=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7756=DIRECTION('',(1.E0,0.E0,0.E0));
--#7757=AXIS2_PLACEMENT_3D('',#7754,#7755,#7756);
--#7758=PLANE('',#7757);
--#7760=ORIENTED_EDGE('',*,*,#7759,.T.);
--#7761=ORIENTED_EDGE('',*,*,#7643,.T.);
--#7762=ORIENTED_EDGE('',*,*,#7748,.F.);
--#7763=ORIENTED_EDGE('',*,*,#7291,.F.);
--#7764=EDGE_LOOP('',(#7760,#7761,#7762,#7763));
--#7765=FACE_OUTER_BOUND('',#7764,.F.);
--#7766=ADVANCED_FACE('',(#7765),#7758,.F.);
--#7767=CARTESIAN_POINT('',(2.85E0,2.35E0,1.006892397423E1));
--#7768=DIRECTION('',(0.E0,0.E0,-1.E0));
--#7769=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7770=AXIS2_PLACEMENT_3D('',#7767,#7768,#7769);
--#7771=CYLINDRICAL_SURFACE('',#7770,3.5E-1);
--#7772=ORIENTED_EDGE('',*,*,#7759,.F.);
--#7773=ORIENTED_EDGE('',*,*,#7289,.T.);
--#7774=ORIENTED_EDGE('',*,*,#7614,.T.);
--#7775=ORIENTED_EDGE('',*,*,#7645,.T.);
--#7776=EDGE_LOOP('',(#7772,#7773,#7774,#7775));
--#7777=FACE_OUTER_BOUND('',#7776,.F.);
--#7778=ADVANCED_FACE('',(#7777),#7771,.F.);
--#7779=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
--#7780=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#7781=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7782=AXIS2_PLACEMENT_3D('',#7779,#7780,#7781);
--#7783=PLANE('',#7782);
--#7784=ORIENTED_EDGE('',*,*,#7161,.F.);
--#7785=ORIENTED_EDGE('',*,*,#6428,.T.);
--#7786=ORIENTED_EDGE('',*,*,#6953,.T.);
--#7787=ORIENTED_EDGE('',*,*,#5682,.F.);
--#7788=EDGE_LOOP('',(#7784,#7785,#7786,#7787));
--#7789=FACE_OUTER_BOUND('',#7788,.F.);
--#7790=ADVANCED_FACE('',(#7789),#7783,.T.);
--#7791=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
--#7792=DIRECTION('',(0.E0,1.E0,0.E0));
--#7793=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7794=AXIS2_PLACEMENT_3D('',#7791,#7792,#7793);
--#7795=CYLINDRICAL_SURFACE('',#7794,9.5E-2);
--#7796=ORIENTED_EDGE('',*,*,#7140,.F.);
--#7798=ORIENTED_EDGE('',*,*,#7797,.T.);
--#7800=ORIENTED_EDGE('',*,*,#7799,.T.);
--#7802=ORIENTED_EDGE('',*,*,#7801,.F.);
--#7803=EDGE_LOOP('',(#7796,#7798,#7800,#7802));
--#7804=FACE_OUTER_BOUND('',#7803,.F.);
--#7805=ADVANCED_FACE('',(#7804),#7795,.F.);
--#7806=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
--#7807=DIRECTION('',(0.E0,1.E0,0.E0));
--#7808=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7809=AXIS2_PLACEMENT_3D('',#7806,#7807,#7808);
--#7810=CYLINDRICAL_SURFACE('',#7809,9.5E-2);
--#7811=ORIENTED_EDGE('',*,*,#7142,.F.);
--#7812=ORIENTED_EDGE('',*,*,#7801,.T.);
--#7814=ORIENTED_EDGE('',*,*,#7813,.T.);
--#7815=ORIENTED_EDGE('',*,*,#7797,.F.);
--#7816=EDGE_LOOP('',(#7811,#7812,#7814,#7815));
--#7817=FACE_OUTER_BOUND('',#7816,.F.);
--#7818=ADVANCED_FACE('',(#7817),#7810,.F.);
--#7819=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
--#7820=DIRECTION('',(0.E0,1.E0,0.E0));
--#7821=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7822=AXIS2_PLACEMENT_3D('',#7819,#7820,#7821);
--#7823=PLANE('',#7822);
--#7824=ORIENTED_EDGE('',*,*,#7799,.F.);
--#7825=ORIENTED_EDGE('',*,*,#7813,.F.);
--#7826=EDGE_LOOP('',(#7824,#7825));
--#7827=FACE_OUTER_BOUND('',#7826,.F.);
--#7828=ADVANCED_FACE('',(#7827),#7823,.T.);
--#7829=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
--#7830=DIRECTION('',(0.E0,1.E0,0.E0));
--#7831=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7832=AXIS2_PLACEMENT_3D('',#7829,#7830,#7831);
--#7833=CYLINDRICAL_SURFACE('',#7832,6.25E-2);
--#7834=ORIENTED_EDGE('',*,*,#7146,.F.);
--#7836=ORIENTED_EDGE('',*,*,#7835,.T.);
--#7838=ORIENTED_EDGE('',*,*,#7837,.T.);
--#7840=ORIENTED_EDGE('',*,*,#7839,.F.);
--#7841=EDGE_LOOP('',(#7834,#7836,#7838,#7840));
--#7842=FACE_OUTER_BOUND('',#7841,.F.);
--#7843=ADVANCED_FACE('',(#7842),#7833,.F.);
--#7844=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
--#7845=DIRECTION('',(0.E0,1.E0,0.E0));
--#7846=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7847=AXIS2_PLACEMENT_3D('',#7844,#7845,#7846);
--#7848=CYLINDRICAL_SURFACE('',#7847,6.25E-2);
--#7849=ORIENTED_EDGE('',*,*,#7148,.F.);
--#7850=ORIENTED_EDGE('',*,*,#7839,.T.);
--#7852=ORIENTED_EDGE('',*,*,#7851,.T.);
--#7853=ORIENTED_EDGE('',*,*,#7835,.F.);
--#7854=EDGE_LOOP('',(#7849,#7850,#7852,#7853));
--#7855=FACE_OUTER_BOUND('',#7854,.F.);
--#7856=ADVANCED_FACE('',(#7855),#7848,.F.);
--#7857=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
--#7858=DIRECTION('',(0.E0,1.E0,0.E0));
--#7859=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7860=AXIS2_PLACEMENT_3D('',#7857,#7858,#7859);
--#7861=PLANE('',#7860);
--#7862=ORIENTED_EDGE('',*,*,#7837,.F.);
--#7863=ORIENTED_EDGE('',*,*,#7851,.F.);
--#7864=EDGE_LOOP('',(#7862,#7863));
--#7865=FACE_OUTER_BOUND('',#7864,.F.);
--#7866=ADVANCED_FACE('',(#7865),#7861,.T.);
--#7867=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
--#7868=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7869=DIRECTION('',(1.E0,0.E0,0.E0));
--#7870=AXIS2_PLACEMENT_3D('',#7867,#7868,#7869);
--#7871=CYLINDRICAL_SURFACE('',#7870,1.E-1);
--#7872=ORIENTED_EDGE('',*,*,#6346,.F.);
--#7874=ORIENTED_EDGE('',*,*,#7873,.F.);
--#7876=ORIENTED_EDGE('',*,*,#7875,.T.);
--#7878=ORIENTED_EDGE('',*,*,#7877,.T.);
--#7879=EDGE_LOOP('',(#7872,#7874,#7876,#7878));
--#7880=FACE_OUTER_BOUND('',#7879,.F.);
--#7881=ADVANCED_FACE('',(#7880),#7871,.F.);
--#7882=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
--#7883=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7884=DIRECTION('',(1.E0,0.E0,0.E0));
--#7885=AXIS2_PLACEMENT_3D('',#7882,#7883,#7884);
--#7886=CYLINDRICAL_SURFACE('',#7885,1.E-1);
--#7887=ORIENTED_EDGE('',*,*,#6348,.F.);
--#7888=ORIENTED_EDGE('',*,*,#7877,.F.);
--#7890=ORIENTED_EDGE('',*,*,#7889,.F.);
--#7891=ORIENTED_EDGE('',*,*,#7873,.T.);
--#7892=EDGE_LOOP('',(#7887,#7888,#7890,#7891));
--#7893=FACE_OUTER_BOUND('',#7892,.F.);
--#7894=ADVANCED_FACE('',(#7893),#7886,.F.);
--#7895=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
--#7896=DIRECTION('',(0.E0,1.E0,0.E0));
--#7897=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7898=AXIS2_PLACEMENT_3D('',#7895,#7896,#7897);
--#7899=CONICAL_SURFACE('',#7898,7.288815195685E-2,6.E1);
--#7901=ORIENTED_EDGE('',*,*,#7900,.F.);
--#7903=ORIENTED_EDGE('',*,*,#7902,.T.);
--#7904=ORIENTED_EDGE('',*,*,#7889,.T.);
--#7905=EDGE_LOOP('',(#7901,#7903,#7904));
--#7906=FACE_OUTER_BOUND('',#7905,.F.);
--#7907=ADVANCED_FACE('',(#7906),#7899,.F.);
--#7908=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
--#7909=DIRECTION('',(0.E0,1.E0,0.E0));
--#7910=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7911=AXIS2_PLACEMENT_3D('',#7908,#7909,#7910);
--#7912=CONICAL_SURFACE('',#7911,7.288815195685E-2,6.E1);
--#7913=ORIENTED_EDGE('',*,*,#7900,.T.);
--#7914=ORIENTED_EDGE('',*,*,#7875,.F.);
--#7915=ORIENTED_EDGE('',*,*,#7902,.F.);
--#7916=EDGE_LOOP('',(#7913,#7914,#7915));
--#7917=FACE_OUTER_BOUND('',#7916,.F.);
--#7918=ADVANCED_FACE('',(#7917),#7912,.F.);
--#7919=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
--#7920=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7921=DIRECTION('',(1.E0,0.E0,0.E0));
--#7922=AXIS2_PLACEMENT_3D('',#7919,#7920,#7921);
--#7923=CYLINDRICAL_SURFACE('',#7922,1.E-1);
--#7924=ORIENTED_EDGE('',*,*,#6352,.F.);
--#7926=ORIENTED_EDGE('',*,*,#7925,.F.);
--#7928=ORIENTED_EDGE('',*,*,#7927,.T.);
--#7930=ORIENTED_EDGE('',*,*,#7929,.T.);
--#7931=EDGE_LOOP('',(#7924,#7926,#7928,#7930));
--#7932=FACE_OUTER_BOUND('',#7931,.F.);
--#7933=ADVANCED_FACE('',(#7932),#7923,.F.);
--#7934=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
--#7935=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7936=DIRECTION('',(1.E0,0.E0,0.E0));
--#7937=AXIS2_PLACEMENT_3D('',#7934,#7935,#7936);
--#7938=CYLINDRICAL_SURFACE('',#7937,1.E-1);
--#7939=ORIENTED_EDGE('',*,*,#6354,.F.);
--#7940=ORIENTED_EDGE('',*,*,#7929,.F.);
--#7942=ORIENTED_EDGE('',*,*,#7941,.F.);
--#7943=ORIENTED_EDGE('',*,*,#7925,.T.);
--#7944=EDGE_LOOP('',(#7939,#7940,#7942,#7943));
--#7945=FACE_OUTER_BOUND('',#7944,.F.);
--#7946=ADVANCED_FACE('',(#7945),#7938,.F.);
--#7947=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
--#7948=DIRECTION('',(0.E0,1.E0,0.E0));
--#7949=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7950=AXIS2_PLACEMENT_3D('',#7947,#7948,#7949);
--#7951=CONICAL_SURFACE('',#7950,7.288815195685E-2,6.E1);
--#7953=ORIENTED_EDGE('',*,*,#7952,.F.);
--#7955=ORIENTED_EDGE('',*,*,#7954,.T.);
--#7956=ORIENTED_EDGE('',*,*,#7941,.T.);
--#7957=EDGE_LOOP('',(#7953,#7955,#7956));
--#7958=FACE_OUTER_BOUND('',#7957,.F.);
--#7959=ADVANCED_FACE('',(#7958),#7951,.F.);
--#7960=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
--#7961=DIRECTION('',(0.E0,1.E0,0.E0));
--#7962=DIRECTION('',(-1.E0,0.E0,0.E0));
--#7963=AXIS2_PLACEMENT_3D('',#7960,#7961,#7962);
--#7964=CONICAL_SURFACE('',#7963,7.288815195685E-2,6.E1);
--#7965=ORIENTED_EDGE('',*,*,#7952,.T.);
--#7966=ORIENTED_EDGE('',*,*,#7927,.F.);
--#7967=ORIENTED_EDGE('',*,*,#7954,.F.);
--#7968=EDGE_LOOP('',(#7965,#7966,#7967));
--#7969=FACE_OUTER_BOUND('',#7968,.F.);
--#7970=ADVANCED_FACE('',(#7969),#7964,.F.);
--#7971=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
--#7972=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7973=DIRECTION('',(1.E0,0.E0,0.E0));
--#7974=AXIS2_PLACEMENT_3D('',#7971,#7972,#7973);
--#7975=CYLINDRICAL_SURFACE('',#7974,2.575E-1);
--#7976=ORIENTED_EDGE('',*,*,#6248,.T.);
--#7978=ORIENTED_EDGE('',*,*,#7977,.T.);
--#7980=ORIENTED_EDGE('',*,*,#7979,.F.);
--#7982=ORIENTED_EDGE('',*,*,#7981,.F.);
--#7983=EDGE_LOOP('',(#7976,#7978,#7980,#7982));
--#7984=FACE_OUTER_BOUND('',#7983,.F.);
--#7985=ADVANCED_FACE('',(#7984),#7975,.F.);
--#7986=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
--#7987=DIRECTION('',(0.E0,-1.E0,0.E0));
--#7988=DIRECTION('',(1.E0,0.E0,0.E0));
--#7989=AXIS2_PLACEMENT_3D('',#7986,#7987,#7988);
--#7990=CYLINDRICAL_SURFACE('',#7989,2.575E-1);
--#7991=ORIENTED_EDGE('',*,*,#6250,.T.);
--#7992=ORIENTED_EDGE('',*,*,#7981,.T.);
--#7994=ORIENTED_EDGE('',*,*,#7993,.F.);
--#7995=ORIENTED_EDGE('',*,*,#7977,.F.);
--#7996=EDGE_LOOP('',(#7991,#7992,#7994,#7995));
--#7997=FACE_OUTER_BOUND('',#7996,.F.);
--#7998=ADVANCED_FACE('',(#7997),#7990,.F.);
--#7999=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
--#8000=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8001=DIRECTION('',(1.E0,0.E0,0.E0));
--#8002=AXIS2_PLACEMENT_3D('',#7999,#8000,#8001);
--#8003=PLANE('',#8002);
--#8004=ORIENTED_EDGE('',*,*,#7979,.T.);
--#8005=ORIENTED_EDGE('',*,*,#7993,.T.);
--#8006=EDGE_LOOP('',(#8004,#8005));
--#8007=FACE_OUTER_BOUND('',#8006,.F.);
--#8009=ORIENTED_EDGE('',*,*,#8008,.F.);
--#8011=ORIENTED_EDGE('',*,*,#8010,.F.);
--#8012=EDGE_LOOP('',(#8009,#8011));
--#8013=FACE_BOUND('',#8012,.F.);
--#8014=ADVANCED_FACE('',(#8007,#8013),#8003,.F.);
--#8015=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
--#8016=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8017=DIRECTION('',(1.E0,0.E0,0.E0));
--#8018=AXIS2_PLACEMENT_3D('',#8015,#8016,#8017);
--#8019=CYLINDRICAL_SURFACE('',#8018,1.925E-1);
--#8020=ORIENTED_EDGE('',*,*,#8008,.T.);
--#8022=ORIENTED_EDGE('',*,*,#8021,.T.);
--#8023=ORIENTED_EDGE('',*,*,#5626,.F.);
--#8025=ORIENTED_EDGE('',*,*,#8024,.F.);
--#8026=EDGE_LOOP('',(#8020,#8022,#8023,#8025));
--#8027=FACE_OUTER_BOUND('',#8026,.F.);
--#8028=ADVANCED_FACE('',(#8027),#8019,.F.);
--#8029=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
--#8030=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8031=DIRECTION('',(1.E0,0.E0,0.E0));
--#8032=AXIS2_PLACEMENT_3D('',#8029,#8030,#8031);
--#8033=CYLINDRICAL_SURFACE('',#8032,1.925E-1);
--#8034=ORIENTED_EDGE('',*,*,#8010,.T.);
--#8035=ORIENTED_EDGE('',*,*,#8024,.T.);
--#8036=ORIENTED_EDGE('',*,*,#5628,.F.);
--#8037=ORIENTED_EDGE('',*,*,#8021,.F.);
--#8038=EDGE_LOOP('',(#8034,#8035,#8036,#8037));
--#8039=FACE_OUTER_BOUND('',#8038,.F.);
--#8040=ADVANCED_FACE('',(#8039),#8033,.F.);
--#8041=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
--#8042=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8043=DIRECTION('',(1.E0,0.E0,0.E0));
--#8044=AXIS2_PLACEMENT_3D('',#8041,#8042,#8043);
--#8045=CYLINDRICAL_SURFACE('',#8044,2.575E-1);
--#8046=ORIENTED_EDGE('',*,*,#6358,.T.);
--#8048=ORIENTED_EDGE('',*,*,#8047,.T.);
--#8050=ORIENTED_EDGE('',*,*,#8049,.F.);
--#8052=ORIENTED_EDGE('',*,*,#8051,.F.);
--#8053=EDGE_LOOP('',(#8046,#8048,#8050,#8052));
--#8054=FACE_OUTER_BOUND('',#8053,.F.);
--#8055=ADVANCED_FACE('',(#8054),#8045,.F.);
--#8056=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
--#8057=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8058=DIRECTION('',(1.E0,0.E0,0.E0));
--#8059=AXIS2_PLACEMENT_3D('',#8056,#8057,#8058);
--#8060=CYLINDRICAL_SURFACE('',#8059,2.575E-1);
--#8061=ORIENTED_EDGE('',*,*,#6360,.T.);
--#8062=ORIENTED_EDGE('',*,*,#8051,.T.);
--#8064=ORIENTED_EDGE('',*,*,#8063,.F.);
--#8065=ORIENTED_EDGE('',*,*,#8047,.F.);
--#8066=EDGE_LOOP('',(#8061,#8062,#8064,#8065));
--#8067=FACE_OUTER_BOUND('',#8066,.F.);
--#8068=ADVANCED_FACE('',(#8067),#8060,.F.);
--#8069=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
--#8070=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8071=DIRECTION('',(1.E0,0.E0,0.E0));
--#8072=AXIS2_PLACEMENT_3D('',#8069,#8070,#8071);
--#8073=PLANE('',#8072);
--#8074=ORIENTED_EDGE('',*,*,#8049,.T.);
--#8075=ORIENTED_EDGE('',*,*,#8063,.T.);
--#8076=EDGE_LOOP('',(#8074,#8075));
--#8077=FACE_OUTER_BOUND('',#8076,.F.);
--#8079=ORIENTED_EDGE('',*,*,#8078,.F.);
--#8081=ORIENTED_EDGE('',*,*,#8080,.F.);
--#8082=EDGE_LOOP('',(#8079,#8081));
--#8083=FACE_BOUND('',#8082,.F.);
--#8084=ADVANCED_FACE('',(#8077,#8083),#8073,.F.);
--#8085=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
--#8086=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8087=DIRECTION('',(1.E0,0.E0,0.E0));
--#8088=AXIS2_PLACEMENT_3D('',#8085,#8086,#8087);
--#8089=CYLINDRICAL_SURFACE('',#8088,1.925E-1);
--#8090=ORIENTED_EDGE('',*,*,#8078,.T.);
--#8092=ORIENTED_EDGE('',*,*,#8091,.T.);
--#8093=ORIENTED_EDGE('',*,*,#5614,.F.);
--#8095=ORIENTED_EDGE('',*,*,#8094,.F.);
--#8096=EDGE_LOOP('',(#8090,#8092,#8093,#8095));
--#8097=FACE_OUTER_BOUND('',#8096,.F.);
--#8098=ADVANCED_FACE('',(#8097),#8089,.F.);
--#8099=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
--#8100=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8101=DIRECTION('',(1.E0,0.E0,0.E0));
--#8102=AXIS2_PLACEMENT_3D('',#8099,#8100,#8101);
--#8103=CYLINDRICAL_SURFACE('',#8102,1.925E-1);
--#8104=ORIENTED_EDGE('',*,*,#8080,.T.);
--#8105=ORIENTED_EDGE('',*,*,#8094,.T.);
--#8106=ORIENTED_EDGE('',*,*,#5616,.F.);
--#8107=ORIENTED_EDGE('',*,*,#8091,.F.);
--#8108=EDGE_LOOP('',(#8104,#8105,#8106,#8107));
--#8109=FACE_OUTER_BOUND('',#8108,.F.);
--#8110=ADVANCED_FACE('',(#8109),#8103,.F.);
--#8111=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
--#8112=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8113=DIRECTION('',(1.E0,0.E0,0.E0));
--#8114=AXIS2_PLACEMENT_3D('',#8111,#8112,#8113);
--#8115=CYLINDRICAL_SURFACE('',#8114,2.575E-1);
--#8116=ORIENTED_EDGE('',*,*,#6364,.T.);
--#8118=ORIENTED_EDGE('',*,*,#8117,.T.);
--#8120=ORIENTED_EDGE('',*,*,#8119,.F.);
--#8122=ORIENTED_EDGE('',*,*,#8121,.F.);
--#8123=EDGE_LOOP('',(#8116,#8118,#8120,#8122));
--#8124=FACE_OUTER_BOUND('',#8123,.F.);
--#8125=ADVANCED_FACE('',(#8124),#8115,.F.);
--#8126=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
--#8127=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8128=DIRECTION('',(1.E0,0.E0,0.E0));
--#8129=AXIS2_PLACEMENT_3D('',#8126,#8127,#8128);
--#8130=CYLINDRICAL_SURFACE('',#8129,2.575E-1);
--#8131=ORIENTED_EDGE('',*,*,#6366,.T.);
--#8132=ORIENTED_EDGE('',*,*,#8121,.T.);
--#8134=ORIENTED_EDGE('',*,*,#8133,.F.);
--#8135=ORIENTED_EDGE('',*,*,#8117,.F.);
--#8136=EDGE_LOOP('',(#8131,#8132,#8134,#8135));
--#8137=FACE_OUTER_BOUND('',#8136,.F.);
--#8138=ADVANCED_FACE('',(#8137),#8130,.F.);
--#8139=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
--#8140=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8141=DIRECTION('',(1.E0,0.E0,0.E0));
--#8142=AXIS2_PLACEMENT_3D('',#8139,#8140,#8141);
--#8143=PLANE('',#8142);
--#8144=ORIENTED_EDGE('',*,*,#8119,.T.);
--#8145=ORIENTED_EDGE('',*,*,#8133,.T.);
--#8146=EDGE_LOOP('',(#8144,#8145));
--#8147=FACE_OUTER_BOUND('',#8146,.F.);
--#8149=ORIENTED_EDGE('',*,*,#8148,.F.);
--#8151=ORIENTED_EDGE('',*,*,#8150,.F.);
--#8152=EDGE_LOOP('',(#8149,#8151));
--#8153=FACE_BOUND('',#8152,.F.);
--#8154=ADVANCED_FACE('',(#8147,#8153),#8143,.F.);
--#8155=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
--#8156=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8157=DIRECTION('',(1.E0,0.E0,0.E0));
--#8158=AXIS2_PLACEMENT_3D('',#8155,#8156,#8157);
--#8159=CYLINDRICAL_SURFACE('',#8158,1.925E-1);
--#8160=ORIENTED_EDGE('',*,*,#8148,.T.);
--#8162=ORIENTED_EDGE('',*,*,#8161,.T.);
--#8163=ORIENTED_EDGE('',*,*,#5608,.F.);
--#8165=ORIENTED_EDGE('',*,*,#8164,.F.);
--#8166=EDGE_LOOP('',(#8160,#8162,#8163,#8165));
--#8167=FACE_OUTER_BOUND('',#8166,.F.);
--#8168=ADVANCED_FACE('',(#8167),#8159,.F.);
--#8169=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
--#8170=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8171=DIRECTION('',(1.E0,0.E0,0.E0));
--#8172=AXIS2_PLACEMENT_3D('',#8169,#8170,#8171);
--#8173=CYLINDRICAL_SURFACE('',#8172,1.925E-1);
--#8174=ORIENTED_EDGE('',*,*,#8150,.T.);
--#8175=ORIENTED_EDGE('',*,*,#8164,.T.);
--#8176=ORIENTED_EDGE('',*,*,#5610,.F.);
--#8177=ORIENTED_EDGE('',*,*,#8161,.F.);
--#8178=EDGE_LOOP('',(#8174,#8175,#8176,#8177));
--#8179=FACE_OUTER_BOUND('',#8178,.F.);
--#8180=ADVANCED_FACE('',(#8179),#8173,.F.);
--#8181=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
--#8182=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8183=DIRECTION('',(1.E0,0.E0,0.E0));
--#8184=AXIS2_PLACEMENT_3D('',#8181,#8182,#8183);
--#8185=CYLINDRICAL_SURFACE('',#8184,2.575E-1);
--#8186=ORIENTED_EDGE('',*,*,#6254,.T.);
--#8188=ORIENTED_EDGE('',*,*,#8187,.T.);
--#8190=ORIENTED_EDGE('',*,*,#8189,.F.);
--#8192=ORIENTED_EDGE('',*,*,#8191,.F.);
--#8193=EDGE_LOOP('',(#8186,#8188,#8190,#8192));
--#8194=FACE_OUTER_BOUND('',#8193,.F.);
--#8195=ADVANCED_FACE('',(#8194),#8185,.F.);
--#8196=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
--#8197=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8198=DIRECTION('',(1.E0,0.E0,0.E0));
--#8199=AXIS2_PLACEMENT_3D('',#8196,#8197,#8198);
--#8200=CYLINDRICAL_SURFACE('',#8199,2.575E-1);
--#8201=ORIENTED_EDGE('',*,*,#6256,.T.);
--#8202=ORIENTED_EDGE('',*,*,#8191,.T.);
--#8204=ORIENTED_EDGE('',*,*,#8203,.F.);
--#8205=ORIENTED_EDGE('',*,*,#8187,.F.);
--#8206=EDGE_LOOP('',(#8201,#8202,#8204,#8205));
--#8207=FACE_OUTER_BOUND('',#8206,.F.);
--#8208=ADVANCED_FACE('',(#8207),#8200,.F.);
--#8209=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
--#8210=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8211=DIRECTION('',(1.E0,0.E0,0.E0));
--#8212=AXIS2_PLACEMENT_3D('',#8209,#8210,#8211);
--#8213=PLANE('',#8212);
--#8214=ORIENTED_EDGE('',*,*,#8189,.T.);
--#8215=ORIENTED_EDGE('',*,*,#8203,.T.);
--#8216=EDGE_LOOP('',(#8214,#8215));
--#8217=FACE_OUTER_BOUND('',#8216,.F.);
--#8219=ORIENTED_EDGE('',*,*,#8218,.F.);
--#8221=ORIENTED_EDGE('',*,*,#8220,.F.);
--#8222=EDGE_LOOP('',(#8219,#8221));
--#8223=FACE_BOUND('',#8222,.F.);
--#8224=ADVANCED_FACE('',(#8217,#8223),#8213,.F.);
--#8225=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
--#8226=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8227=DIRECTION('',(1.E0,0.E0,0.E0));
--#8228=AXIS2_PLACEMENT_3D('',#8225,#8226,#8227);
--#8229=CYLINDRICAL_SURFACE('',#8228,1.925E-1);
--#8230=ORIENTED_EDGE('',*,*,#8218,.T.);
--#8232=ORIENTED_EDGE('',*,*,#8231,.T.);
--#8233=ORIENTED_EDGE('',*,*,#5602,.F.);
--#8235=ORIENTED_EDGE('',*,*,#8234,.F.);
--#8236=EDGE_LOOP('',(#8230,#8232,#8233,#8235));
--#8237=FACE_OUTER_BOUND('',#8236,.F.);
--#8238=ADVANCED_FACE('',(#8237),#8229,.F.);
--#8239=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
--#8240=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8241=DIRECTION('',(1.E0,0.E0,0.E0));
--#8242=AXIS2_PLACEMENT_3D('',#8239,#8240,#8241);
--#8243=CYLINDRICAL_SURFACE('',#8242,1.925E-1);
--#8244=ORIENTED_EDGE('',*,*,#8220,.T.);
--#8245=ORIENTED_EDGE('',*,*,#8234,.T.);
--#8246=ORIENTED_EDGE('',*,*,#5604,.F.);
--#8247=ORIENTED_EDGE('',*,*,#8231,.F.);
--#8248=EDGE_LOOP('',(#8244,#8245,#8246,#8247));
--#8249=FACE_OUTER_BOUND('',#8248,.F.);
--#8250=ADVANCED_FACE('',(#8249),#8243,.F.);
--#8251=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
--#8252=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8253=DIRECTION('',(1.E0,0.E0,0.E0));
--#8254=AXIS2_PLACEMENT_3D('',#8251,#8252,#8253);
--#8255=CYLINDRICAL_SURFACE('',#8254,2.575E-1);
--#8256=ORIENTED_EDGE('',*,*,#6370,.T.);
--#8258=ORIENTED_EDGE('',*,*,#8257,.T.);
--#8260=ORIENTED_EDGE('',*,*,#8259,.F.);
--#8262=ORIENTED_EDGE('',*,*,#8261,.F.);
--#8263=EDGE_LOOP('',(#8256,#8258,#8260,#8262));
--#8264=FACE_OUTER_BOUND('',#8263,.F.);
--#8265=ADVANCED_FACE('',(#8264),#8255,.F.);
--#8266=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
--#8267=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8268=DIRECTION('',(1.E0,0.E0,0.E0));
--#8269=AXIS2_PLACEMENT_3D('',#8266,#8267,#8268);
--#8270=CYLINDRICAL_SURFACE('',#8269,2.575E-1);
--#8271=ORIENTED_EDGE('',*,*,#6372,.T.);
--#8272=ORIENTED_EDGE('',*,*,#8261,.T.);
--#8274=ORIENTED_EDGE('',*,*,#8273,.F.);
--#8275=ORIENTED_EDGE('',*,*,#8257,.F.);
--#8276=EDGE_LOOP('',(#8271,#8272,#8274,#8275));
--#8277=FACE_OUTER_BOUND('',#8276,.F.);
--#8278=ADVANCED_FACE('',(#8277),#8270,.F.);
--#8279=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
--#8280=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8281=DIRECTION('',(1.E0,0.E0,0.E0));
--#8282=AXIS2_PLACEMENT_3D('',#8279,#8280,#8281);
--#8283=PLANE('',#8282);
--#8284=ORIENTED_EDGE('',*,*,#8259,.T.);
--#8285=ORIENTED_EDGE('',*,*,#8273,.T.);
--#8286=EDGE_LOOP('',(#8284,#8285));
--#8287=FACE_OUTER_BOUND('',#8286,.F.);
--#8289=ORIENTED_EDGE('',*,*,#8288,.F.);
--#8291=ORIENTED_EDGE('',*,*,#8290,.F.);
--#8292=EDGE_LOOP('',(#8289,#8291));
--#8293=FACE_BOUND('',#8292,.F.);
--#8294=ADVANCED_FACE('',(#8287,#8293),#8283,.F.);
--#8295=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
--#8296=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8297=DIRECTION('',(1.E0,0.E0,0.E0));
--#8298=AXIS2_PLACEMENT_3D('',#8295,#8296,#8297);
--#8299=CYLINDRICAL_SURFACE('',#8298,1.925E-1);
--#8300=ORIENTED_EDGE('',*,*,#8288,.T.);
--#8302=ORIENTED_EDGE('',*,*,#8301,.T.);
--#8303=ORIENTED_EDGE('',*,*,#5590,.F.);
--#8305=ORIENTED_EDGE('',*,*,#8304,.F.);
--#8306=EDGE_LOOP('',(#8300,#8302,#8303,#8305));
--#8307=FACE_OUTER_BOUND('',#8306,.F.);
--#8308=ADVANCED_FACE('',(#8307),#8299,.F.);
--#8309=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
--#8310=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8311=DIRECTION('',(1.E0,0.E0,0.E0));
--#8312=AXIS2_PLACEMENT_3D('',#8309,#8310,#8311);
--#8313=CYLINDRICAL_SURFACE('',#8312,1.925E-1);
--#8314=ORIENTED_EDGE('',*,*,#8290,.T.);
--#8315=ORIENTED_EDGE('',*,*,#8304,.T.);
--#8316=ORIENTED_EDGE('',*,*,#5592,.F.);
--#8317=ORIENTED_EDGE('',*,*,#8301,.F.);
--#8318=EDGE_LOOP('',(#8314,#8315,#8316,#8317));
--#8319=FACE_OUTER_BOUND('',#8318,.F.);
--#8320=ADVANCED_FACE('',(#8319),#8313,.F.);
--#8321=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
--#8322=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8323=DIRECTION('',(1.E0,0.E0,0.E0));
--#8324=AXIS2_PLACEMENT_3D('',#8321,#8322,#8323);
--#8325=CYLINDRICAL_SURFACE('',#8324,2.575E-1);
--#8326=ORIENTED_EDGE('',*,*,#6376,.T.);
--#8328=ORIENTED_EDGE('',*,*,#8327,.T.);
--#8330=ORIENTED_EDGE('',*,*,#8329,.F.);
--#8332=ORIENTED_EDGE('',*,*,#8331,.F.);
--#8333=EDGE_LOOP('',(#8326,#8328,#8330,#8332));
--#8334=FACE_OUTER_BOUND('',#8333,.F.);
--#8335=ADVANCED_FACE('',(#8334),#8325,.F.);
--#8336=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
--#8337=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8338=DIRECTION('',(1.E0,0.E0,0.E0));
--#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338);
--#8340=CYLINDRICAL_SURFACE('',#8339,2.575E-1);
--#8341=ORIENTED_EDGE('',*,*,#6378,.T.);
--#8342=ORIENTED_EDGE('',*,*,#8331,.T.);
--#8344=ORIENTED_EDGE('',*,*,#8343,.F.);
--#8345=ORIENTED_EDGE('',*,*,#8327,.F.);
--#8346=EDGE_LOOP('',(#8341,#8342,#8344,#8345));
--#8347=FACE_OUTER_BOUND('',#8346,.F.);
--#8348=ADVANCED_FACE('',(#8347),#8340,.F.);
--#8349=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
--#8350=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8351=DIRECTION('',(1.E0,0.E0,0.E0));
--#8352=AXIS2_PLACEMENT_3D('',#8349,#8350,#8351);
--#8353=PLANE('',#8352);
--#8354=ORIENTED_EDGE('',*,*,#8329,.T.);
--#8355=ORIENTED_EDGE('',*,*,#8343,.T.);
--#8356=EDGE_LOOP('',(#8354,#8355));
--#8357=FACE_OUTER_BOUND('',#8356,.F.);
--#8359=ORIENTED_EDGE('',*,*,#8358,.F.);
--#8361=ORIENTED_EDGE('',*,*,#8360,.F.);
--#8362=EDGE_LOOP('',(#8359,#8361));
--#8363=FACE_BOUND('',#8362,.F.);
--#8364=ADVANCED_FACE('',(#8357,#8363),#8353,.F.);
--#8365=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
--#8366=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8367=DIRECTION('',(1.E0,0.E0,0.E0));
--#8368=AXIS2_PLACEMENT_3D('',#8365,#8366,#8367);
--#8369=CYLINDRICAL_SURFACE('',#8368,1.925E-1);
--#8370=ORIENTED_EDGE('',*,*,#8358,.T.);
--#8372=ORIENTED_EDGE('',*,*,#8371,.T.);
--#8373=ORIENTED_EDGE('',*,*,#5584,.F.);
--#8375=ORIENTED_EDGE('',*,*,#8374,.F.);
--#8376=EDGE_LOOP('',(#8370,#8372,#8373,#8375));
--#8377=FACE_OUTER_BOUND('',#8376,.F.);
--#8378=ADVANCED_FACE('',(#8377),#8369,.F.);
--#8379=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
--#8380=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8381=DIRECTION('',(1.E0,0.E0,0.E0));
--#8382=AXIS2_PLACEMENT_3D('',#8379,#8380,#8381);
--#8383=CYLINDRICAL_SURFACE('',#8382,1.925E-1);
--#8384=ORIENTED_EDGE('',*,*,#8360,.T.);
--#8385=ORIENTED_EDGE('',*,*,#8374,.T.);
--#8386=ORIENTED_EDGE('',*,*,#5586,.F.);
--#8387=ORIENTED_EDGE('',*,*,#8371,.F.);
--#8388=EDGE_LOOP('',(#8384,#8385,#8386,#8387));
--#8389=FACE_OUTER_BOUND('',#8388,.F.);
--#8390=ADVANCED_FACE('',(#8389),#8383,.F.);
--#8391=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
--#8392=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8393=DIRECTION('',(1.E0,0.E0,0.E0));
--#8394=AXIS2_PLACEMENT_3D('',#8391,#8392,#8393);
--#8395=CYLINDRICAL_SURFACE('',#8394,2.56E-1);
--#8396=ORIENTED_EDGE('',*,*,#6260,.T.);
--#8398=ORIENTED_EDGE('',*,*,#8397,.T.);
--#8400=ORIENTED_EDGE('',*,*,#8399,.F.);
--#8402=ORIENTED_EDGE('',*,*,#8401,.F.);
--#8403=EDGE_LOOP('',(#8396,#8398,#8400,#8402));
--#8404=FACE_OUTER_BOUND('',#8403,.F.);
--#8405=ADVANCED_FACE('',(#8404),#8395,.F.);
--#8406=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
--#8407=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8408=DIRECTION('',(1.E0,0.E0,0.E0));
--#8409=AXIS2_PLACEMENT_3D('',#8406,#8407,#8408);
--#8410=CYLINDRICAL_SURFACE('',#8409,2.56E-1);
--#8411=ORIENTED_EDGE('',*,*,#6262,.T.);
--#8412=ORIENTED_EDGE('',*,*,#8401,.T.);
--#8414=ORIENTED_EDGE('',*,*,#8413,.F.);
--#8415=ORIENTED_EDGE('',*,*,#8397,.F.);
--#8416=EDGE_LOOP('',(#8411,#8412,#8414,#8415));
--#8417=FACE_OUTER_BOUND('',#8416,.F.);
--#8418=ADVANCED_FACE('',(#8417),#8410,.F.);
--#8419=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
--#8420=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8421=DIRECTION('',(1.E0,0.E0,0.E0));
--#8422=AXIS2_PLACEMENT_3D('',#8419,#8420,#8421);
--#8423=PLANE('',#8422);
--#8424=ORIENTED_EDGE('',*,*,#8399,.T.);
--#8425=ORIENTED_EDGE('',*,*,#8413,.T.);
--#8426=EDGE_LOOP('',(#8424,#8425));
--#8427=FACE_OUTER_BOUND('',#8426,.F.);
--#8429=ORIENTED_EDGE('',*,*,#8428,.F.);
--#8431=ORIENTED_EDGE('',*,*,#8430,.F.);
--#8432=EDGE_LOOP('',(#8429,#8431));
--#8433=FACE_BOUND('',#8432,.F.);
--#8434=ADVANCED_FACE('',(#8427,#8433),#8423,.F.);
--#8435=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
--#8436=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8437=DIRECTION('',(1.E0,0.E0,0.E0));
--#8438=AXIS2_PLACEMENT_3D('',#8435,#8436,#8437);
--#8439=CYLINDRICAL_SURFACE('',#8438,1.925E-1);
--#8440=ORIENTED_EDGE('',*,*,#8428,.T.);
--#8442=ORIENTED_EDGE('',*,*,#8441,.T.);
--#8443=ORIENTED_EDGE('',*,*,#5632,.F.);
--#8445=ORIENTED_EDGE('',*,*,#8444,.F.);
--#8446=EDGE_LOOP('',(#8440,#8442,#8443,#8445));
--#8447=FACE_OUTER_BOUND('',#8446,.F.);
--#8448=ADVANCED_FACE('',(#8447),#8439,.F.);
--#8449=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
--#8450=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8451=DIRECTION('',(1.E0,0.E0,0.E0));
--#8452=AXIS2_PLACEMENT_3D('',#8449,#8450,#8451);
--#8453=CYLINDRICAL_SURFACE('',#8452,1.925E-1);
--#8454=ORIENTED_EDGE('',*,*,#8430,.T.);
--#8455=ORIENTED_EDGE('',*,*,#8444,.T.);
--#8456=ORIENTED_EDGE('',*,*,#5634,.F.);
--#8457=ORIENTED_EDGE('',*,*,#8441,.F.);
--#8458=EDGE_LOOP('',(#8454,#8455,#8456,#8457));
--#8459=FACE_OUTER_BOUND('',#8458,.F.);
--#8460=ADVANCED_FACE('',(#8459),#8453,.F.);
--#8461=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
--#8462=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8463=DIRECTION('',(1.E0,0.E0,0.E0));
--#8464=AXIS2_PLACEMENT_3D('',#8461,#8462,#8463);
--#8465=CYLINDRICAL_SURFACE('',#8464,2.56E-1);
--#8466=ORIENTED_EDGE('',*,*,#6266,.T.);
--#8468=ORIENTED_EDGE('',*,*,#8467,.T.);
--#8470=ORIENTED_EDGE('',*,*,#8469,.F.);
--#8472=ORIENTED_EDGE('',*,*,#8471,.F.);
--#8473=EDGE_LOOP('',(#8466,#8468,#8470,#8472));
--#8474=FACE_OUTER_BOUND('',#8473,.F.);
--#8475=ADVANCED_FACE('',(#8474),#8465,.F.);
--#8476=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
--#8477=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8478=DIRECTION('',(1.E0,0.E0,0.E0));
--#8479=AXIS2_PLACEMENT_3D('',#8476,#8477,#8478);
--#8480=CYLINDRICAL_SURFACE('',#8479,2.56E-1);
--#8481=ORIENTED_EDGE('',*,*,#6268,.T.);
--#8482=ORIENTED_EDGE('',*,*,#8471,.T.);
--#8484=ORIENTED_EDGE('',*,*,#8483,.F.);
--#8485=ORIENTED_EDGE('',*,*,#8467,.F.);
--#8486=EDGE_LOOP('',(#8481,#8482,#8484,#8485));
--#8487=FACE_OUTER_BOUND('',#8486,.F.);
--#8488=ADVANCED_FACE('',(#8487),#8480,.F.);
--#8489=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
--#8490=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8491=DIRECTION('',(1.E0,0.E0,0.E0));
--#8492=AXIS2_PLACEMENT_3D('',#8489,#8490,#8491);
--#8493=PLANE('',#8492);
--#8494=ORIENTED_EDGE('',*,*,#8469,.T.);
--#8495=ORIENTED_EDGE('',*,*,#8483,.T.);
--#8496=EDGE_LOOP('',(#8494,#8495));
--#8497=FACE_OUTER_BOUND('',#8496,.F.);
--#8499=ORIENTED_EDGE('',*,*,#8498,.F.);
--#8501=ORIENTED_EDGE('',*,*,#8500,.F.);
--#8502=EDGE_LOOP('',(#8499,#8501));
--#8503=FACE_BOUND('',#8502,.F.);
--#8504=ADVANCED_FACE('',(#8497,#8503),#8493,.F.);
--#8505=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
--#8506=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8507=DIRECTION('',(1.E0,0.E0,0.E0));
--#8508=AXIS2_PLACEMENT_3D('',#8505,#8506,#8507);
--#8509=CYLINDRICAL_SURFACE('',#8508,1.925E-1);
--#8510=ORIENTED_EDGE('',*,*,#8498,.T.);
--#8512=ORIENTED_EDGE('',*,*,#8511,.T.);
--#8513=ORIENTED_EDGE('',*,*,#5578,.F.);
--#8515=ORIENTED_EDGE('',*,*,#8514,.F.);
--#8516=EDGE_LOOP('',(#8510,#8512,#8513,#8515));
--#8517=FACE_OUTER_BOUND('',#8516,.F.);
--#8518=ADVANCED_FACE('',(#8517),#8509,.F.);
--#8519=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
--#8520=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8521=DIRECTION('',(1.E0,0.E0,0.E0));
--#8522=AXIS2_PLACEMENT_3D('',#8519,#8520,#8521);
--#8523=CYLINDRICAL_SURFACE('',#8522,1.925E-1);
--#8524=ORIENTED_EDGE('',*,*,#8500,.T.);
--#8525=ORIENTED_EDGE('',*,*,#8514,.T.);
--#8526=ORIENTED_EDGE('',*,*,#5580,.F.);
--#8527=ORIENTED_EDGE('',*,*,#8511,.F.);
--#8528=EDGE_LOOP('',(#8524,#8525,#8526,#8527));
--#8529=FACE_OUTER_BOUND('',#8528,.F.);
--#8530=ADVANCED_FACE('',(#8529),#8523,.F.);
--#8531=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
--#8532=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8533=DIRECTION('',(1.E0,0.E0,0.E0));
--#8534=AXIS2_PLACEMENT_3D('',#8531,#8532,#8533);
--#8535=CYLINDRICAL_SURFACE('',#8534,2.56E-1);
--#8536=ORIENTED_EDGE('',*,*,#6272,.T.);
--#8538=ORIENTED_EDGE('',*,*,#8537,.T.);
--#8540=ORIENTED_EDGE('',*,*,#8539,.F.);
--#8542=ORIENTED_EDGE('',*,*,#8541,.F.);
--#8543=EDGE_LOOP('',(#8536,#8538,#8540,#8542));
--#8544=FACE_OUTER_BOUND('',#8543,.F.);
--#8545=ADVANCED_FACE('',(#8544),#8535,.F.);
--#8546=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
--#8547=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8548=DIRECTION('',(1.E0,0.E0,0.E0));
--#8549=AXIS2_PLACEMENT_3D('',#8546,#8547,#8548);
--#8550=CYLINDRICAL_SURFACE('',#8549,2.56E-1);
--#8551=ORIENTED_EDGE('',*,*,#6274,.T.);
--#8552=ORIENTED_EDGE('',*,*,#8541,.T.);
--#8554=ORIENTED_EDGE('',*,*,#8553,.F.);
--#8555=ORIENTED_EDGE('',*,*,#8537,.F.);
--#8556=EDGE_LOOP('',(#8551,#8552,#8554,#8555));
--#8557=FACE_OUTER_BOUND('',#8556,.F.);
--#8558=ADVANCED_FACE('',(#8557),#8550,.F.);
--#8559=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
--#8560=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8561=DIRECTION('',(1.E0,0.E0,0.E0));
--#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561);
--#8563=PLANE('',#8562);
--#8564=ORIENTED_EDGE('',*,*,#8539,.T.);
--#8565=ORIENTED_EDGE('',*,*,#8553,.T.);
--#8566=EDGE_LOOP('',(#8564,#8565));
--#8567=FACE_OUTER_BOUND('',#8566,.F.);
--#8569=ORIENTED_EDGE('',*,*,#8568,.F.);
--#8571=ORIENTED_EDGE('',*,*,#8570,.F.);
--#8572=EDGE_LOOP('',(#8569,#8571));
--#8573=FACE_BOUND('',#8572,.F.);
--#8574=ADVANCED_FACE('',(#8567,#8573),#8563,.F.);
--#8575=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
--#8576=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8577=DIRECTION('',(1.E0,0.E0,0.E0));
--#8578=AXIS2_PLACEMENT_3D('',#8575,#8576,#8577);
--#8579=CYLINDRICAL_SURFACE('',#8578,1.925E-1);
--#8580=ORIENTED_EDGE('',*,*,#8568,.T.);
--#8582=ORIENTED_EDGE('',*,*,#8581,.T.);
--#8583=ORIENTED_EDGE('',*,*,#5560,.F.);
--#8585=ORIENTED_EDGE('',*,*,#8584,.F.);
--#8586=EDGE_LOOP('',(#8580,#8582,#8583,#8585));
--#8587=FACE_OUTER_BOUND('',#8586,.F.);
--#8588=ADVANCED_FACE('',(#8587),#8579,.F.);
--#8589=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
--#8590=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8591=DIRECTION('',(1.E0,0.E0,0.E0));
--#8592=AXIS2_PLACEMENT_3D('',#8589,#8590,#8591);
--#8593=CYLINDRICAL_SURFACE('',#8592,1.925E-1);
--#8594=ORIENTED_EDGE('',*,*,#8570,.T.);
--#8595=ORIENTED_EDGE('',*,*,#8584,.T.);
--#8596=ORIENTED_EDGE('',*,*,#5562,.F.);
--#8597=ORIENTED_EDGE('',*,*,#8581,.F.);
--#8598=EDGE_LOOP('',(#8594,#8595,#8596,#8597));
--#8599=FACE_OUTER_BOUND('',#8598,.F.);
--#8600=ADVANCED_FACE('',(#8599),#8593,.F.);
--#8601=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
--#8602=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8603=DIRECTION('',(1.E0,0.E0,0.E0));
--#8604=AXIS2_PLACEMENT_3D('',#8601,#8602,#8603);
--#8605=CYLINDRICAL_SURFACE('',#8604,2.56E-1);
--#8606=ORIENTED_EDGE('',*,*,#6382,.T.);
--#8608=ORIENTED_EDGE('',*,*,#8607,.T.);
--#8610=ORIENTED_EDGE('',*,*,#8609,.F.);
--#8612=ORIENTED_EDGE('',*,*,#8611,.F.);
--#8613=EDGE_LOOP('',(#8606,#8608,#8610,#8612));
--#8614=FACE_OUTER_BOUND('',#8613,.F.);
--#8615=ADVANCED_FACE('',(#8614),#8605,.F.);
--#8616=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
--#8617=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8618=DIRECTION('',(1.E0,0.E0,0.E0));
--#8619=AXIS2_PLACEMENT_3D('',#8616,#8617,#8618);
--#8620=CYLINDRICAL_SURFACE('',#8619,2.56E-1);
--#8621=ORIENTED_EDGE('',*,*,#6384,.T.);
--#8622=ORIENTED_EDGE('',*,*,#8611,.T.);
--#8624=ORIENTED_EDGE('',*,*,#8623,.F.);
--#8625=ORIENTED_EDGE('',*,*,#8607,.F.);
--#8626=EDGE_LOOP('',(#8621,#8622,#8624,#8625));
--#8627=FACE_OUTER_BOUND('',#8626,.F.);
--#8628=ADVANCED_FACE('',(#8627),#8620,.F.);
--#8629=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
--#8630=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8631=DIRECTION('',(1.E0,0.E0,0.E0));
--#8632=AXIS2_PLACEMENT_3D('',#8629,#8630,#8631);
--#8633=PLANE('',#8632);
--#8634=ORIENTED_EDGE('',*,*,#8609,.T.);
--#8635=ORIENTED_EDGE('',*,*,#8623,.T.);
--#8636=EDGE_LOOP('',(#8634,#8635));
--#8637=FACE_OUTER_BOUND('',#8636,.F.);
--#8639=ORIENTED_EDGE('',*,*,#8638,.F.);
--#8641=ORIENTED_EDGE('',*,*,#8640,.F.);
--#8642=EDGE_LOOP('',(#8639,#8641));
--#8643=FACE_BOUND('',#8642,.F.);
--#8644=ADVANCED_FACE('',(#8637,#8643),#8633,.F.);
--#8645=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
--#8646=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8647=DIRECTION('',(1.E0,0.E0,0.E0));
--#8648=AXIS2_PLACEMENT_3D('',#8645,#8646,#8647);
--#8649=CYLINDRICAL_SURFACE('',#8648,1.925E-1);
--#8650=ORIENTED_EDGE('',*,*,#8638,.T.);
--#8652=ORIENTED_EDGE('',*,*,#8651,.T.);
--#8653=ORIENTED_EDGE('',*,*,#5572,.F.);
--#8655=ORIENTED_EDGE('',*,*,#8654,.F.);
--#8656=EDGE_LOOP('',(#8650,#8652,#8653,#8655));
--#8657=FACE_OUTER_BOUND('',#8656,.F.);
--#8658=ADVANCED_FACE('',(#8657),#8649,.F.);
--#8659=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
--#8660=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8661=DIRECTION('',(1.E0,0.E0,0.E0));
--#8662=AXIS2_PLACEMENT_3D('',#8659,#8660,#8661);
--#8663=CYLINDRICAL_SURFACE('',#8662,1.925E-1);
--#8664=ORIENTED_EDGE('',*,*,#8640,.T.);
--#8665=ORIENTED_EDGE('',*,*,#8654,.T.);
--#8666=ORIENTED_EDGE('',*,*,#5574,.F.);
--#8667=ORIENTED_EDGE('',*,*,#8651,.F.);
--#8668=EDGE_LOOP('',(#8664,#8665,#8666,#8667));
--#8669=FACE_OUTER_BOUND('',#8668,.F.);
--#8670=ADVANCED_FACE('',(#8669),#8663,.F.);
--#8671=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
--#8672=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8673=DIRECTION('',(1.E0,0.E0,0.E0));
--#8674=AXIS2_PLACEMENT_3D('',#8671,#8672,#8673);
--#8675=CYLINDRICAL_SURFACE('',#8674,2.56E-1);
--#8676=ORIENTED_EDGE('',*,*,#6388,.T.);
--#8678=ORIENTED_EDGE('',*,*,#8677,.T.);
--#8680=ORIENTED_EDGE('',*,*,#8679,.F.);
--#8682=ORIENTED_EDGE('',*,*,#8681,.F.);
--#8683=EDGE_LOOP('',(#8676,#8678,#8680,#8682));
--#8684=FACE_OUTER_BOUND('',#8683,.F.);
--#8685=ADVANCED_FACE('',(#8684),#8675,.F.);
--#8686=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
--#8687=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8688=DIRECTION('',(1.E0,0.E0,0.E0));
--#8689=AXIS2_PLACEMENT_3D('',#8686,#8687,#8688);
--#8690=CYLINDRICAL_SURFACE('',#8689,2.56E-1);
--#8691=ORIENTED_EDGE('',*,*,#6390,.T.);
--#8692=ORIENTED_EDGE('',*,*,#8681,.T.);
--#8694=ORIENTED_EDGE('',*,*,#8693,.F.);
--#8695=ORIENTED_EDGE('',*,*,#8677,.F.);
--#8696=EDGE_LOOP('',(#8691,#8692,#8694,#8695));
--#8697=FACE_OUTER_BOUND('',#8696,.F.);
--#8698=ADVANCED_FACE('',(#8697),#8690,.F.);
--#8699=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
--#8700=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8701=DIRECTION('',(1.E0,0.E0,0.E0));
--#8702=AXIS2_PLACEMENT_3D('',#8699,#8700,#8701);
--#8703=PLANE('',#8702);
--#8704=ORIENTED_EDGE('',*,*,#8679,.T.);
--#8705=ORIENTED_EDGE('',*,*,#8693,.T.);
--#8706=EDGE_LOOP('',(#8704,#8705));
--#8707=FACE_OUTER_BOUND('',#8706,.F.);
--#8709=ORIENTED_EDGE('',*,*,#8708,.F.);
--#8711=ORIENTED_EDGE('',*,*,#8710,.F.);
--#8712=EDGE_LOOP('',(#8709,#8711));
--#8713=FACE_BOUND('',#8712,.F.);
--#8714=ADVANCED_FACE('',(#8707,#8713),#8703,.F.);
--#8715=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
--#8716=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8717=DIRECTION('',(1.E0,0.E0,0.E0));
--#8718=AXIS2_PLACEMENT_3D('',#8715,#8716,#8717);
--#8719=CYLINDRICAL_SURFACE('',#8718,1.925E-1);
--#8720=ORIENTED_EDGE('',*,*,#8708,.T.);
--#8722=ORIENTED_EDGE('',*,*,#8721,.T.);
--#8723=ORIENTED_EDGE('',*,*,#5566,.F.);
--#8725=ORIENTED_EDGE('',*,*,#8724,.F.);
--#8726=EDGE_LOOP('',(#8720,#8722,#8723,#8725));
--#8727=FACE_OUTER_BOUND('',#8726,.F.);
--#8728=ADVANCED_FACE('',(#8727),#8719,.F.);
--#8729=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
--#8730=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8731=DIRECTION('',(1.E0,0.E0,0.E0));
--#8732=AXIS2_PLACEMENT_3D('',#8729,#8730,#8731);
--#8733=CYLINDRICAL_SURFACE('',#8732,1.925E-1);
--#8734=ORIENTED_EDGE('',*,*,#8710,.T.);
--#8735=ORIENTED_EDGE('',*,*,#8724,.T.);
--#8736=ORIENTED_EDGE('',*,*,#5568,.F.);
--#8737=ORIENTED_EDGE('',*,*,#8721,.F.);
--#8738=EDGE_LOOP('',(#8734,#8735,#8736,#8737));
--#8739=FACE_OUTER_BOUND('',#8738,.F.);
--#8740=ADVANCED_FACE('',(#8739),#8733,.F.);
--#8741=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
--#8742=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8743=DIRECTION('',(1.E0,0.E0,0.E0));
--#8744=AXIS2_PLACEMENT_3D('',#8741,#8742,#8743);
--#8745=CYLINDRICAL_SURFACE('',#8744,2.56E-1);
--#8746=ORIENTED_EDGE('',*,*,#6394,.T.);
--#8748=ORIENTED_EDGE('',*,*,#8747,.T.);
--#8750=ORIENTED_EDGE('',*,*,#8749,.F.);
--#8752=ORIENTED_EDGE('',*,*,#8751,.F.);
--#8753=EDGE_LOOP('',(#8746,#8748,#8750,#8752));
--#8754=FACE_OUTER_BOUND('',#8753,.F.);
--#8755=ADVANCED_FACE('',(#8754),#8745,.F.);
--#8756=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
--#8757=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8758=DIRECTION('',(1.E0,0.E0,0.E0));
--#8759=AXIS2_PLACEMENT_3D('',#8756,#8757,#8758);
--#8760=CYLINDRICAL_SURFACE('',#8759,2.56E-1);
--#8761=ORIENTED_EDGE('',*,*,#6396,.T.);
--#8762=ORIENTED_EDGE('',*,*,#8751,.T.);
--#8764=ORIENTED_EDGE('',*,*,#8763,.F.);
--#8765=ORIENTED_EDGE('',*,*,#8747,.F.);
--#8766=EDGE_LOOP('',(#8761,#8762,#8764,#8765));
--#8767=FACE_OUTER_BOUND('',#8766,.F.);
--#8768=ADVANCED_FACE('',(#8767),#8760,.F.);
--#8769=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
--#8770=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8771=DIRECTION('',(1.E0,0.E0,0.E0));
--#8772=AXIS2_PLACEMENT_3D('',#8769,#8770,#8771);
--#8773=PLANE('',#8772);
--#8774=ORIENTED_EDGE('',*,*,#8749,.T.);
--#8775=ORIENTED_EDGE('',*,*,#8763,.T.);
--#8776=EDGE_LOOP('',(#8774,#8775));
--#8777=FACE_OUTER_BOUND('',#8776,.F.);
--#8779=ORIENTED_EDGE('',*,*,#8778,.F.);
--#8781=ORIENTED_EDGE('',*,*,#8780,.F.);
--#8782=EDGE_LOOP('',(#8779,#8781));
--#8783=FACE_BOUND('',#8782,.F.);
--#8784=ADVANCED_FACE('',(#8777,#8783),#8773,.F.);
--#8785=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
--#8786=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8787=DIRECTION('',(1.E0,0.E0,0.E0));
--#8788=AXIS2_PLACEMENT_3D('',#8785,#8786,#8787);
--#8789=CYLINDRICAL_SURFACE('',#8788,1.925E-1);
--#8790=ORIENTED_EDGE('',*,*,#8778,.T.);
--#8792=ORIENTED_EDGE('',*,*,#8791,.T.);
--#8793=ORIENTED_EDGE('',*,*,#5554,.F.);
--#8795=ORIENTED_EDGE('',*,*,#8794,.F.);
--#8796=EDGE_LOOP('',(#8790,#8792,#8793,#8795));
--#8797=FACE_OUTER_BOUND('',#8796,.F.);
--#8798=ADVANCED_FACE('',(#8797),#8789,.F.);
--#8799=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
--#8800=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8801=DIRECTION('',(1.E0,0.E0,0.E0));
--#8802=AXIS2_PLACEMENT_3D('',#8799,#8800,#8801);
--#8803=CYLINDRICAL_SURFACE('',#8802,1.925E-1);
--#8804=ORIENTED_EDGE('',*,*,#8780,.T.);
--#8805=ORIENTED_EDGE('',*,*,#8794,.T.);
--#8806=ORIENTED_EDGE('',*,*,#5556,.F.);
--#8807=ORIENTED_EDGE('',*,*,#8791,.F.);
--#8808=EDGE_LOOP('',(#8804,#8805,#8806,#8807));
--#8809=FACE_OUTER_BOUND('',#8808,.F.);
--#8810=ADVANCED_FACE('',(#8809),#8803,.F.);
--#8811=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
--#8812=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8813=DIRECTION('',(1.E0,0.E0,0.E0));
--#8814=AXIS2_PLACEMENT_3D('',#8811,#8812,#8813);
--#8815=CYLINDRICAL_SURFACE('',#8814,2.575E-1);
--#8816=ORIENTED_EDGE('',*,*,#6452,.T.);
--#8818=ORIENTED_EDGE('',*,*,#8817,.T.);
--#8820=ORIENTED_EDGE('',*,*,#8819,.F.);
--#8822=ORIENTED_EDGE('',*,*,#8821,.F.);
--#8823=EDGE_LOOP('',(#8816,#8818,#8820,#8822));
--#8824=FACE_OUTER_BOUND('',#8823,.F.);
--#8825=ADVANCED_FACE('',(#8824),#8815,.F.);
--#8826=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
--#8827=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8828=DIRECTION('',(1.E0,0.E0,0.E0));
--#8829=AXIS2_PLACEMENT_3D('',#8826,#8827,#8828);
--#8830=CYLINDRICAL_SURFACE('',#8829,2.575E-1);
--#8831=ORIENTED_EDGE('',*,*,#6454,.T.);
--#8832=ORIENTED_EDGE('',*,*,#8821,.T.);
--#8834=ORIENTED_EDGE('',*,*,#8833,.F.);
--#8835=ORIENTED_EDGE('',*,*,#8817,.F.);
--#8836=EDGE_LOOP('',(#8831,#8832,#8834,#8835));
--#8837=FACE_OUTER_BOUND('',#8836,.F.);
--#8838=ADVANCED_FACE('',(#8837),#8830,.F.);
--#8839=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
--#8840=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8841=DIRECTION('',(1.E0,0.E0,0.E0));
--#8842=AXIS2_PLACEMENT_3D('',#8839,#8840,#8841);
--#8843=PLANE('',#8842);
--#8844=ORIENTED_EDGE('',*,*,#8819,.T.);
--#8845=ORIENTED_EDGE('',*,*,#8833,.T.);
--#8846=EDGE_LOOP('',(#8844,#8845));
--#8847=FACE_OUTER_BOUND('',#8846,.F.);
--#8849=ORIENTED_EDGE('',*,*,#8848,.F.);
--#8851=ORIENTED_EDGE('',*,*,#8850,.F.);
--#8852=EDGE_LOOP('',(#8849,#8851));
--#8853=FACE_BOUND('',#8852,.F.);
--#8854=ADVANCED_FACE('',(#8847,#8853),#8843,.F.);
--#8855=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
--#8856=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8857=DIRECTION('',(1.E0,0.E0,0.E0));
--#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857);
--#8859=CYLINDRICAL_SURFACE('',#8858,1.925E-1);
--#8860=ORIENTED_EDGE('',*,*,#8848,.T.);
--#8862=ORIENTED_EDGE('',*,*,#8861,.T.);
--#8863=ORIENTED_EDGE('',*,*,#5690,.F.);
--#8865=ORIENTED_EDGE('',*,*,#8864,.F.);
--#8866=EDGE_LOOP('',(#8860,#8862,#8863,#8865));
--#8867=FACE_OUTER_BOUND('',#8866,.F.);
--#8868=ADVANCED_FACE('',(#8867),#8859,.F.);
--#8869=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
--#8870=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8871=DIRECTION('',(1.E0,0.E0,0.E0));
--#8872=AXIS2_PLACEMENT_3D('',#8869,#8870,#8871);
--#8873=CYLINDRICAL_SURFACE('',#8872,1.925E-1);
--#8874=ORIENTED_EDGE('',*,*,#8850,.T.);
--#8875=ORIENTED_EDGE('',*,*,#8864,.T.);
--#8876=ORIENTED_EDGE('',*,*,#5692,.F.);
--#8877=ORIENTED_EDGE('',*,*,#8861,.F.);
--#8878=EDGE_LOOP('',(#8874,#8875,#8876,#8877));
--#8879=FACE_OUTER_BOUND('',#8878,.F.);
--#8880=ADVANCED_FACE('',(#8879),#8873,.F.);
--#8881=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
--#8882=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8883=DIRECTION('',(1.E0,0.E0,0.E0));
--#8884=AXIS2_PLACEMENT_3D('',#8881,#8882,#8883);
--#8885=CYLINDRICAL_SURFACE('',#8884,2.575E-1);
--#8886=ORIENTED_EDGE('',*,*,#6458,.T.);
--#8888=ORIENTED_EDGE('',*,*,#8887,.T.);
--#8890=ORIENTED_EDGE('',*,*,#8889,.F.);
--#8892=ORIENTED_EDGE('',*,*,#8891,.F.);
--#8893=EDGE_LOOP('',(#8886,#8888,#8890,#8892));
--#8894=FACE_OUTER_BOUND('',#8893,.F.);
--#8895=ADVANCED_FACE('',(#8894),#8885,.F.);
--#8896=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
--#8897=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8898=DIRECTION('',(1.E0,0.E0,0.E0));
--#8899=AXIS2_PLACEMENT_3D('',#8896,#8897,#8898);
--#8900=CYLINDRICAL_SURFACE('',#8899,2.575E-1);
--#8901=ORIENTED_EDGE('',*,*,#6460,.T.);
--#8902=ORIENTED_EDGE('',*,*,#8891,.T.);
--#8904=ORIENTED_EDGE('',*,*,#8903,.F.);
--#8905=ORIENTED_EDGE('',*,*,#8887,.F.);
--#8906=EDGE_LOOP('',(#8901,#8902,#8904,#8905));
--#8907=FACE_OUTER_BOUND('',#8906,.F.);
--#8908=ADVANCED_FACE('',(#8907),#8900,.F.);
--#8909=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
--#8910=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8911=DIRECTION('',(1.E0,0.E0,0.E0));
--#8912=AXIS2_PLACEMENT_3D('',#8909,#8910,#8911);
--#8913=PLANE('',#8912);
--#8914=ORIENTED_EDGE('',*,*,#8889,.T.);
--#8915=ORIENTED_EDGE('',*,*,#8903,.T.);
--#8916=EDGE_LOOP('',(#8914,#8915));
--#8917=FACE_OUTER_BOUND('',#8916,.F.);
--#8919=ORIENTED_EDGE('',*,*,#8918,.F.);
--#8921=ORIENTED_EDGE('',*,*,#8920,.F.);
--#8922=EDGE_LOOP('',(#8919,#8921));
--#8923=FACE_BOUND('',#8922,.F.);
--#8924=ADVANCED_FACE('',(#8917,#8923),#8913,.F.);
--#8925=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
--#8926=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8927=DIRECTION('',(1.E0,0.E0,0.E0));
--#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927);
--#8929=CYLINDRICAL_SURFACE('',#8928,1.925E-1);
--#8930=ORIENTED_EDGE('',*,*,#8918,.T.);
--#8932=ORIENTED_EDGE('',*,*,#8931,.T.);
--#8933=ORIENTED_EDGE('',*,*,#5696,.F.);
--#8935=ORIENTED_EDGE('',*,*,#8934,.F.);
--#8936=EDGE_LOOP('',(#8930,#8932,#8933,#8935));
--#8937=FACE_OUTER_BOUND('',#8936,.F.);
--#8938=ADVANCED_FACE('',(#8937),#8929,.F.);
--#8939=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
--#8940=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8941=DIRECTION('',(1.E0,0.E0,0.E0));
--#8942=AXIS2_PLACEMENT_3D('',#8939,#8940,#8941);
--#8943=CYLINDRICAL_SURFACE('',#8942,1.925E-1);
--#8944=ORIENTED_EDGE('',*,*,#8920,.T.);
--#8945=ORIENTED_EDGE('',*,*,#8934,.T.);
--#8946=ORIENTED_EDGE('',*,*,#5698,.F.);
--#8947=ORIENTED_EDGE('',*,*,#8931,.F.);
--#8948=EDGE_LOOP('',(#8944,#8945,#8946,#8947));
--#8949=FACE_OUTER_BOUND('',#8948,.F.);
--#8950=ADVANCED_FACE('',(#8949),#8943,.F.);
--#8951=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
--#8952=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8953=DIRECTION('',(1.E0,0.E0,0.E0));
--#8954=AXIS2_PLACEMENT_3D('',#8951,#8952,#8953);
--#8955=CYLINDRICAL_SURFACE('',#8954,2.575E-1);
--#8956=ORIENTED_EDGE('',*,*,#6464,.T.);
--#8958=ORIENTED_EDGE('',*,*,#8957,.T.);
--#8960=ORIENTED_EDGE('',*,*,#8959,.F.);
--#8962=ORIENTED_EDGE('',*,*,#8961,.F.);
--#8963=EDGE_LOOP('',(#8956,#8958,#8960,#8962));
--#8964=FACE_OUTER_BOUND('',#8963,.F.);
--#8965=ADVANCED_FACE('',(#8964),#8955,.F.);
--#8966=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
--#8967=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8968=DIRECTION('',(1.E0,0.E0,0.E0));
--#8969=AXIS2_PLACEMENT_3D('',#8966,#8967,#8968);
--#8970=CYLINDRICAL_SURFACE('',#8969,2.575E-1);
--#8971=ORIENTED_EDGE('',*,*,#6466,.T.);
--#8972=ORIENTED_EDGE('',*,*,#8961,.T.);
--#8974=ORIENTED_EDGE('',*,*,#8973,.F.);
--#8975=ORIENTED_EDGE('',*,*,#8957,.F.);
--#8976=EDGE_LOOP('',(#8971,#8972,#8974,#8975));
--#8977=FACE_OUTER_BOUND('',#8976,.F.);
--#8978=ADVANCED_FACE('',(#8977),#8970,.F.);
--#8979=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
--#8980=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8981=DIRECTION('',(1.E0,0.E0,0.E0));
--#8982=AXIS2_PLACEMENT_3D('',#8979,#8980,#8981);
--#8983=PLANE('',#8982);
--#8984=ORIENTED_EDGE('',*,*,#8959,.T.);
--#8985=ORIENTED_EDGE('',*,*,#8973,.T.);
--#8986=EDGE_LOOP('',(#8984,#8985));
--#8987=FACE_OUTER_BOUND('',#8986,.F.);
--#8989=ORIENTED_EDGE('',*,*,#8988,.F.);
--#8991=ORIENTED_EDGE('',*,*,#8990,.F.);
--#8992=EDGE_LOOP('',(#8989,#8991));
--#8993=FACE_BOUND('',#8992,.F.);
--#8994=ADVANCED_FACE('',(#8987,#8993),#8983,.F.);
--#8995=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
--#8996=DIRECTION('',(0.E0,-1.E0,0.E0));
--#8997=DIRECTION('',(1.E0,0.E0,0.E0));
--#8998=AXIS2_PLACEMENT_3D('',#8995,#8996,#8997);
--#8999=CYLINDRICAL_SURFACE('',#8998,1.925E-1);
--#9000=ORIENTED_EDGE('',*,*,#8988,.T.);
--#9002=ORIENTED_EDGE('',*,*,#9001,.T.);
--#9003=ORIENTED_EDGE('',*,*,#5702,.F.);
--#9005=ORIENTED_EDGE('',*,*,#9004,.F.);
--#9006=EDGE_LOOP('',(#9000,#9002,#9003,#9005));
--#9007=FACE_OUTER_BOUND('',#9006,.F.);
--#9008=ADVANCED_FACE('',(#9007),#8999,.F.);
--#9009=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
--#9010=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9011=DIRECTION('',(1.E0,0.E0,0.E0));
--#9012=AXIS2_PLACEMENT_3D('',#9009,#9010,#9011);
--#9013=CYLINDRICAL_SURFACE('',#9012,1.925E-1);
--#9014=ORIENTED_EDGE('',*,*,#8990,.T.);
--#9015=ORIENTED_EDGE('',*,*,#9004,.T.);
--#9016=ORIENTED_EDGE('',*,*,#5704,.F.);
--#9017=ORIENTED_EDGE('',*,*,#9001,.F.);
--#9018=EDGE_LOOP('',(#9014,#9015,#9016,#9017));
--#9019=FACE_OUTER_BOUND('',#9018,.F.);
--#9020=ADVANCED_FACE('',(#9019),#9013,.F.);
--#9021=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
--#9022=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9023=DIRECTION('',(1.E0,0.E0,0.E0));
--#9024=AXIS2_PLACEMENT_3D('',#9021,#9022,#9023);
--#9025=CYLINDRICAL_SURFACE('',#9024,2.575E-1);
--#9026=ORIENTED_EDGE('',*,*,#6470,.T.);
--#9028=ORIENTED_EDGE('',*,*,#9027,.T.);
--#9030=ORIENTED_EDGE('',*,*,#9029,.F.);
--#9032=ORIENTED_EDGE('',*,*,#9031,.F.);
--#9033=EDGE_LOOP('',(#9026,#9028,#9030,#9032));
--#9034=FACE_OUTER_BOUND('',#9033,.F.);
--#9035=ADVANCED_FACE('',(#9034),#9025,.F.);
--#9036=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
--#9037=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9038=DIRECTION('',(1.E0,0.E0,0.E0));
--#9039=AXIS2_PLACEMENT_3D('',#9036,#9037,#9038);
--#9040=CYLINDRICAL_SURFACE('',#9039,2.575E-1);
--#9041=ORIENTED_EDGE('',*,*,#6472,.T.);
--#9042=ORIENTED_EDGE('',*,*,#9031,.T.);
--#9044=ORIENTED_EDGE('',*,*,#9043,.F.);
--#9045=ORIENTED_EDGE('',*,*,#9027,.F.);
--#9046=EDGE_LOOP('',(#9041,#9042,#9044,#9045));
--#9047=FACE_OUTER_BOUND('',#9046,.F.);
--#9048=ADVANCED_FACE('',(#9047),#9040,.F.);
--#9049=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
--#9050=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9051=DIRECTION('',(1.E0,0.E0,0.E0));
--#9052=AXIS2_PLACEMENT_3D('',#9049,#9050,#9051);
--#9053=PLANE('',#9052);
--#9054=ORIENTED_EDGE('',*,*,#9029,.T.);
--#9055=ORIENTED_EDGE('',*,*,#9043,.T.);
--#9056=EDGE_LOOP('',(#9054,#9055));
--#9057=FACE_OUTER_BOUND('',#9056,.F.);
--#9059=ORIENTED_EDGE('',*,*,#9058,.F.);
--#9061=ORIENTED_EDGE('',*,*,#9060,.F.);
--#9062=EDGE_LOOP('',(#9059,#9061));
--#9063=FACE_BOUND('',#9062,.F.);
--#9064=ADVANCED_FACE('',(#9057,#9063),#9053,.F.);
--#9065=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
--#9066=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9067=DIRECTION('',(1.E0,0.E0,0.E0));
--#9068=AXIS2_PLACEMENT_3D('',#9065,#9066,#9067);
--#9069=CYLINDRICAL_SURFACE('',#9068,1.925E-1);
--#9070=ORIENTED_EDGE('',*,*,#9058,.T.);
--#9072=ORIENTED_EDGE('',*,*,#9071,.T.);
--#9073=ORIENTED_EDGE('',*,*,#5708,.F.);
--#9075=ORIENTED_EDGE('',*,*,#9074,.F.);
--#9076=EDGE_LOOP('',(#9070,#9072,#9073,#9075));
--#9077=FACE_OUTER_BOUND('',#9076,.F.);
--#9078=ADVANCED_FACE('',(#9077),#9069,.F.);
--#9079=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
--#9080=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9081=DIRECTION('',(1.E0,0.E0,0.E0));
--#9082=AXIS2_PLACEMENT_3D('',#9079,#9080,#9081);
--#9083=CYLINDRICAL_SURFACE('',#9082,1.925E-1);
--#9084=ORIENTED_EDGE('',*,*,#9060,.T.);
--#9085=ORIENTED_EDGE('',*,*,#9074,.T.);
--#9086=ORIENTED_EDGE('',*,*,#5710,.F.);
--#9087=ORIENTED_EDGE('',*,*,#9071,.F.);
--#9088=EDGE_LOOP('',(#9084,#9085,#9086,#9087));
--#9089=FACE_OUTER_BOUND('',#9088,.F.);
--#9090=ADVANCED_FACE('',(#9089),#9083,.F.);
--#9091=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
--#9092=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9093=DIRECTION('',(1.E0,0.E0,0.E0));
--#9094=AXIS2_PLACEMENT_3D('',#9091,#9092,#9093);
--#9095=CYLINDRICAL_SURFACE('',#9094,2.575E-1);
--#9096=ORIENTED_EDGE('',*,*,#6476,.T.);
--#9098=ORIENTED_EDGE('',*,*,#9097,.T.);
--#9100=ORIENTED_EDGE('',*,*,#9099,.F.);
--#9102=ORIENTED_EDGE('',*,*,#9101,.F.);
--#9103=EDGE_LOOP('',(#9096,#9098,#9100,#9102));
--#9104=FACE_OUTER_BOUND('',#9103,.F.);
--#9105=ADVANCED_FACE('',(#9104),#9095,.F.);
--#9106=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
--#9107=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9108=DIRECTION('',(1.E0,0.E0,0.E0));
--#9109=AXIS2_PLACEMENT_3D('',#9106,#9107,#9108);
--#9110=CYLINDRICAL_SURFACE('',#9109,2.575E-1);
--#9111=ORIENTED_EDGE('',*,*,#6478,.T.);
--#9112=ORIENTED_EDGE('',*,*,#9101,.T.);
--#9114=ORIENTED_EDGE('',*,*,#9113,.F.);
--#9115=ORIENTED_EDGE('',*,*,#9097,.F.);
--#9116=EDGE_LOOP('',(#9111,#9112,#9114,#9115));
--#9117=FACE_OUTER_BOUND('',#9116,.F.);
--#9118=ADVANCED_FACE('',(#9117),#9110,.F.);
--#9119=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
--#9120=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9121=DIRECTION('',(1.E0,0.E0,0.E0));
--#9122=AXIS2_PLACEMENT_3D('',#9119,#9120,#9121);
--#9123=PLANE('',#9122);
--#9124=ORIENTED_EDGE('',*,*,#9099,.T.);
--#9125=ORIENTED_EDGE('',*,*,#9113,.T.);
--#9126=EDGE_LOOP('',(#9124,#9125));
--#9127=FACE_OUTER_BOUND('',#9126,.F.);
--#9129=ORIENTED_EDGE('',*,*,#9128,.F.);
--#9131=ORIENTED_EDGE('',*,*,#9130,.F.);
--#9132=EDGE_LOOP('',(#9129,#9131));
--#9133=FACE_BOUND('',#9132,.F.);
--#9134=ADVANCED_FACE('',(#9127,#9133),#9123,.F.);
--#9135=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
--#9136=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9137=DIRECTION('',(1.E0,0.E0,0.E0));
--#9138=AXIS2_PLACEMENT_3D('',#9135,#9136,#9137);
--#9139=CYLINDRICAL_SURFACE('',#9138,1.925E-1);
--#9140=ORIENTED_EDGE('',*,*,#9128,.T.);
--#9142=ORIENTED_EDGE('',*,*,#9141,.T.);
--#9143=ORIENTED_EDGE('',*,*,#5714,.F.);
--#9145=ORIENTED_EDGE('',*,*,#9144,.F.);
--#9146=EDGE_LOOP('',(#9140,#9142,#9143,#9145));
--#9147=FACE_OUTER_BOUND('',#9146,.F.);
--#9148=ADVANCED_FACE('',(#9147),#9139,.F.);
--#9149=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
--#9150=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9151=DIRECTION('',(1.E0,0.E0,0.E0));
--#9152=AXIS2_PLACEMENT_3D('',#9149,#9150,#9151);
--#9153=CYLINDRICAL_SURFACE('',#9152,1.925E-1);
--#9154=ORIENTED_EDGE('',*,*,#9130,.T.);
--#9155=ORIENTED_EDGE('',*,*,#9144,.T.);
--#9156=ORIENTED_EDGE('',*,*,#5716,.F.);
--#9157=ORIENTED_EDGE('',*,*,#9141,.F.);
--#9158=EDGE_LOOP('',(#9154,#9155,#9156,#9157));
--#9159=FACE_OUTER_BOUND('',#9158,.F.);
--#9160=ADVANCED_FACE('',(#9159),#9153,.F.);
--#9161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
--#9162=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9163=DIRECTION('',(1.E0,0.E0,0.E0));
--#9164=AXIS2_PLACEMENT_3D('',#9161,#9162,#9163);
--#9165=CYLINDRICAL_SURFACE('',#9164,2.575E-1);
--#9166=ORIENTED_EDGE('',*,*,#6482,.T.);
--#9168=ORIENTED_EDGE('',*,*,#9167,.T.);
--#9170=ORIENTED_EDGE('',*,*,#9169,.F.);
--#9172=ORIENTED_EDGE('',*,*,#9171,.F.);
--#9173=EDGE_LOOP('',(#9166,#9168,#9170,#9172));
--#9174=FACE_OUTER_BOUND('',#9173,.F.);
--#9175=ADVANCED_FACE('',(#9174),#9165,.F.);
--#9176=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
--#9177=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9178=DIRECTION('',(1.E0,0.E0,0.E0));
--#9179=AXIS2_PLACEMENT_3D('',#9176,#9177,#9178);
--#9180=CYLINDRICAL_SURFACE('',#9179,2.575E-1);
--#9181=ORIENTED_EDGE('',*,*,#6484,.T.);
--#9182=ORIENTED_EDGE('',*,*,#9171,.T.);
--#9184=ORIENTED_EDGE('',*,*,#9183,.F.);
--#9185=ORIENTED_EDGE('',*,*,#9167,.F.);
--#9186=EDGE_LOOP('',(#9181,#9182,#9184,#9185));
--#9187=FACE_OUTER_BOUND('',#9186,.F.);
--#9188=ADVANCED_FACE('',(#9187),#9180,.F.);
--#9189=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
--#9190=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9191=DIRECTION('',(1.E0,0.E0,0.E0));
--#9192=AXIS2_PLACEMENT_3D('',#9189,#9190,#9191);
--#9193=PLANE('',#9192);
--#9194=ORIENTED_EDGE('',*,*,#9169,.T.);
--#9195=ORIENTED_EDGE('',*,*,#9183,.T.);
--#9196=EDGE_LOOP('',(#9194,#9195));
--#9197=FACE_OUTER_BOUND('',#9196,.F.);
--#9199=ORIENTED_EDGE('',*,*,#9198,.F.);
--#9201=ORIENTED_EDGE('',*,*,#9200,.F.);
--#9202=EDGE_LOOP('',(#9199,#9201));
--#9203=FACE_BOUND('',#9202,.F.);
--#9204=ADVANCED_FACE('',(#9197,#9203),#9193,.F.);
--#9205=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
--#9206=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9207=DIRECTION('',(1.E0,0.E0,0.E0));
--#9208=AXIS2_PLACEMENT_3D('',#9205,#9206,#9207);
--#9209=CYLINDRICAL_SURFACE('',#9208,1.925E-1);
--#9210=ORIENTED_EDGE('',*,*,#9198,.T.);
--#9212=ORIENTED_EDGE('',*,*,#9211,.T.);
--#9213=ORIENTED_EDGE('',*,*,#5720,.F.);
--#9215=ORIENTED_EDGE('',*,*,#9214,.F.);
--#9216=EDGE_LOOP('',(#9210,#9212,#9213,#9215));
--#9217=FACE_OUTER_BOUND('',#9216,.F.);
--#9218=ADVANCED_FACE('',(#9217),#9209,.F.);
--#9219=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
--#9220=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9221=DIRECTION('',(1.E0,0.E0,0.E0));
--#9222=AXIS2_PLACEMENT_3D('',#9219,#9220,#9221);
--#9223=CYLINDRICAL_SURFACE('',#9222,1.925E-1);
--#9224=ORIENTED_EDGE('',*,*,#9200,.T.);
--#9225=ORIENTED_EDGE('',*,*,#9214,.T.);
--#9226=ORIENTED_EDGE('',*,*,#5722,.F.);
--#9227=ORIENTED_EDGE('',*,*,#9211,.F.);
--#9228=EDGE_LOOP('',(#9224,#9225,#9226,#9227));
--#9229=FACE_OUTER_BOUND('',#9228,.F.);
--#9230=ADVANCED_FACE('',(#9229),#9223,.F.);
--#9231=CARTESIAN_POINT('',(2.2E1,1.5E0,1.2E1));
--#9232=DIRECTION('',(1.E0,0.E0,0.E0));
--#9233=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9234=AXIS2_PLACEMENT_3D('',#9231,#9232,#9233);
--#9235=PLANE('',#9234);
--#9236=ORIENTED_EDGE('',*,*,#6328,.T.);
--#9237=ORIENTED_EDGE('',*,*,#6155,.T.);
--#9239=ORIENTED_EDGE('',*,*,#9238,.T.);
--#9240=EDGE_LOOP('',(#9236,#9237,#9239));
--#9241=FACE_OUTER_BOUND('',#9240,.F.);
--#9242=ADVANCED_FACE('',(#9241),#9235,.F.);
--#9243=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
--#9244=DIRECTION('',(0.E0,-5.E-1,-8.660254037844E-1));
--#9245=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
--#9246=AXIS2_PLACEMENT_3D('',#9243,#9244,#9245);
--#9247=PLANE('',#9246);
--#9248=ORIENTED_EDGE('',*,*,#6330,.T.);
--#9249=ORIENTED_EDGE('',*,*,#9238,.F.);
--#9250=ORIENTED_EDGE('',*,*,#6153,.F.);
--#9251=ORIENTED_EDGE('',*,*,#6209,.T.);
--#9252=EDGE_LOOP('',(#9248,#9249,#9250,#9251));
--#9253=FACE_OUTER_BOUND('',#9252,.F.);
--#9255=ORIENTED_EDGE('',*,*,#9254,.F.);
--#9257=ORIENTED_EDGE('',*,*,#9256,.F.);
--#9258=EDGE_LOOP('',(#9255,#9257));
--#9259=FACE_BOUND('',#9258,.F.);
--#9260=ADVANCED_FACE('',(#9253,#9259),#9247,.F.);
--#9261=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
--#9262=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9263=DIRECTION('',(1.E0,0.E0,0.E0));
--#9264=AXIS2_PLACEMENT_3D('',#9261,#9262,#9263);
--#9265=CYLINDRICAL_SURFACE('',#9264,2.575E-1);
--#9267=ORIENTED_EDGE('',*,*,#9266,.F.);
--#9268=ORIENTED_EDGE('',*,*,#9254,.T.);
--#9270=ORIENTED_EDGE('',*,*,#9269,.F.);
--#9272=ORIENTED_EDGE('',*,*,#9271,.F.);
--#9273=EDGE_LOOP('',(#9267,#9268,#9270,#9272));
--#9274=FACE_OUTER_BOUND('',#9273,.F.);
--#9275=ADVANCED_FACE('',(#9274),#9265,.F.);
--#9276=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
--#9277=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9278=DIRECTION('',(1.E0,0.E0,0.E0));
--#9279=AXIS2_PLACEMENT_3D('',#9276,#9277,#9278);
--#9280=CYLINDRICAL_SURFACE('',#9279,2.575E-1);
--#9281=ORIENTED_EDGE('',*,*,#9269,.T.);
--#9282=ORIENTED_EDGE('',*,*,#9256,.T.);
--#9283=ORIENTED_EDGE('',*,*,#9266,.T.);
--#9285=ORIENTED_EDGE('',*,*,#9284,.F.);
--#9286=EDGE_LOOP('',(#9281,#9282,#9283,#9285));
--#9287=FACE_OUTER_BOUND('',#9286,.F.);
--#9288=ADVANCED_FACE('',(#9287),#9280,.F.);
--#9289=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
--#9290=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9291=DIRECTION('',(1.E0,0.E0,0.E0));
--#9292=AXIS2_PLACEMENT_3D('',#9289,#9290,#9291);
--#9293=PLANE('',#9292);
--#9294=ORIENTED_EDGE('',*,*,#9271,.T.);
--#9295=ORIENTED_EDGE('',*,*,#9284,.T.);
--#9296=EDGE_LOOP('',(#9294,#9295));
--#9297=FACE_OUTER_BOUND('',#9296,.F.);
--#9299=ORIENTED_EDGE('',*,*,#9298,.F.);
--#9301=ORIENTED_EDGE('',*,*,#9300,.F.);
--#9302=EDGE_LOOP('',(#9299,#9301));
--#9303=FACE_BOUND('',#9302,.F.);
--#9304=ADVANCED_FACE('',(#9297,#9303),#9293,.F.);
--#9305=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
--#9306=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9307=DIRECTION('',(1.E0,0.E0,0.E0));
--#9308=AXIS2_PLACEMENT_3D('',#9305,#9306,#9307);
--#9309=CYLINDRICAL_SURFACE('',#9308,1.925E-1);
--#9310=ORIENTED_EDGE('',*,*,#9298,.T.);
--#9312=ORIENTED_EDGE('',*,*,#9311,.T.);
--#9313=ORIENTED_EDGE('',*,*,#5596,.F.);
--#9315=ORIENTED_EDGE('',*,*,#9314,.F.);
--#9316=EDGE_LOOP('',(#9310,#9312,#9313,#9315));
--#9317=FACE_OUTER_BOUND('',#9316,.F.);
--#9318=ADVANCED_FACE('',(#9317),#9309,.F.);
--#9319=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
--#9320=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9321=DIRECTION('',(1.E0,0.E0,0.E0));
--#9322=AXIS2_PLACEMENT_3D('',#9319,#9320,#9321);
--#9323=CYLINDRICAL_SURFACE('',#9322,1.925E-1);
--#9324=ORIENTED_EDGE('',*,*,#9300,.T.);
--#9325=ORIENTED_EDGE('',*,*,#9314,.T.);
--#9326=ORIENTED_EDGE('',*,*,#5598,.F.);
--#9327=ORIENTED_EDGE('',*,*,#9311,.F.);
--#9328=EDGE_LOOP('',(#9324,#9325,#9326,#9327));
--#9329=FACE_OUTER_BOUND('',#9328,.F.);
--#9330=ADVANCED_FACE('',(#9329),#9323,.F.);
--#9331=CARTESIAN_POINT('',(2.185E1,6.65E0,1.006892397423E1));
--#9332=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9333=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9334=AXIS2_PLACEMENT_3D('',#9331,#9332,#9333);
--#9335=CYLINDRICAL_SURFACE('',#9334,3.5E-1);
--#9337=ORIENTED_EDGE('',*,*,#9336,.T.);
--#9339=ORIENTED_EDGE('',*,*,#9338,.T.);
--#9341=ORIENTED_EDGE('',*,*,#9340,.F.);
--#9342=ORIENTED_EDGE('',*,*,#6175,.T.);
--#9343=EDGE_LOOP('',(#9337,#9339,#9341,#9342));
--#9344=FACE_OUTER_BOUND('',#9343,.F.);
--#9345=ADVANCED_FACE('',(#9344),#9335,.T.);
--#9346=CARTESIAN_POINT('',(2.15E1,7.E0,1.E1));
--#9347=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9348=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9349=AXIS2_PLACEMENT_3D('',#9346,#9347,#9348);
--#9350=PLANE('',#9349);
--#9351=ORIENTED_EDGE('',*,*,#9336,.F.);
--#9352=ORIENTED_EDGE('',*,*,#6197,.T.);
--#9354=ORIENTED_EDGE('',*,*,#9353,.F.);
--#9356=ORIENTED_EDGE('',*,*,#9355,.F.);
--#9357=EDGE_LOOP('',(#9351,#9352,#9354,#9356));
--#9358=FACE_OUTER_BOUND('',#9357,.F.);
--#9359=ADVANCED_FACE('',(#9358),#9350,.T.);
--#9360=CARTESIAN_POINT('',(2.115E1,2.35E0,9.441108058217E0));
--#9361=DIRECTION('',(0.E0,0.E0,1.E0));
--#9362=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
--#9363=AXIS2_PLACEMENT_3D('',#9360,#9361,#9362);
--#9364=CYLINDRICAL_SURFACE('',#9363,3.5E-1);
--#9366=ORIENTED_EDGE('',*,*,#9365,.F.);
--#9368=ORIENTED_EDGE('',*,*,#9367,.T.);
--#9369=ORIENTED_EDGE('',*,*,#9353,.T.);
--#9370=ORIENTED_EDGE('',*,*,#6195,.T.);
--#9371=EDGE_LOOP('',(#9366,#9368,#9369,#9370));
--#9372=FACE_OUTER_BOUND('',#9371,.F.);
--#9373=ADVANCED_FACE('',(#9372),#9364,.F.);
--#9374=CARTESIAN_POINT('',(2.15E1,2.E0,1.E1));
--#9375=DIRECTION('',(0.E0,1.E0,0.E0));
--#9376=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9377=AXIS2_PLACEMENT_3D('',#9374,#9375,#9376);
--#9378=PLANE('',#9377);
--#9379=ORIENTED_EDGE('',*,*,#9365,.T.);
--#9380=ORIENTED_EDGE('',*,*,#6193,.T.);
--#9382=ORIENTED_EDGE('',*,*,#9381,.F.);
--#9384=ORIENTED_EDGE('',*,*,#9383,.F.);
--#9385=EDGE_LOOP('',(#9379,#9380,#9382,#9384));
--#9386=FACE_OUTER_BOUND('',#9385,.F.);
--#9387=ADVANCED_FACE('',(#9386),#9378,.T.);
--#9388=CARTESIAN_POINT('',(1.985E1,2.35E0,9.441108058217E0));
--#9389=DIRECTION('',(0.E0,0.E0,1.E0));
--#9390=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9391=AXIS2_PLACEMENT_3D('',#9388,#9389,#9390);
--#9392=CYLINDRICAL_SURFACE('',#9391,3.5E-1);
--#9394=ORIENTED_EDGE('',*,*,#9393,.F.);
--#9396=ORIENTED_EDGE('',*,*,#9395,.T.);
--#9397=ORIENTED_EDGE('',*,*,#9381,.T.);
--#9398=ORIENTED_EDGE('',*,*,#6191,.T.);
--#9399=EDGE_LOOP('',(#9394,#9396,#9397,#9398));
--#9400=FACE_OUTER_BOUND('',#9399,.F.);
--#9401=ADVANCED_FACE('',(#9400),#9392,.F.);
--#9402=CARTESIAN_POINT('',(1.95E1,2.E0,1.E1));
--#9403=DIRECTION('',(1.E0,0.E0,0.E0));
--#9404=DIRECTION('',(0.E0,1.E0,0.E0));
--#9405=AXIS2_PLACEMENT_3D('',#9402,#9403,#9404);
--#9406=PLANE('',#9405);
--#9407=ORIENTED_EDGE('',*,*,#9393,.T.);
--#9408=ORIENTED_EDGE('',*,*,#6189,.T.);
--#9410=ORIENTED_EDGE('',*,*,#9409,.F.);
--#9412=ORIENTED_EDGE('',*,*,#9411,.F.);
--#9413=EDGE_LOOP('',(#9407,#9408,#9410,#9412));
--#9414=FACE_OUTER_BOUND('',#9413,.F.);
--#9415=ADVANCED_FACE('',(#9414),#9406,.T.);
--#9416=CARTESIAN_POINT('',(1.985E1,9.15E0,9.441108058217E0));
--#9417=DIRECTION('',(0.E0,0.E0,1.E0));
--#9418=DIRECTION('',(-1.015061051086E-14,1.E0,0.E0));
--#9419=AXIS2_PLACEMENT_3D('',#9416,#9417,#9418);
--#9420=CYLINDRICAL_SURFACE('',#9419,3.5E-1);
--#9422=ORIENTED_EDGE('',*,*,#9421,.F.);
--#9424=ORIENTED_EDGE('',*,*,#9423,.T.);
--#9425=ORIENTED_EDGE('',*,*,#9409,.T.);
--#9426=ORIENTED_EDGE('',*,*,#6187,.T.);
--#9427=EDGE_LOOP('',(#9422,#9424,#9425,#9426));
--#9428=FACE_OUTER_BOUND('',#9427,.F.);
--#9429=ADVANCED_FACE('',(#9428),#9420,.F.);
--#9430=CARTESIAN_POINT('',(1.95E1,9.5E0,1.E1));
--#9431=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9432=DIRECTION('',(1.E0,0.E0,0.E0));
--#9433=AXIS2_PLACEMENT_3D('',#9430,#9431,#9432);
--#9434=PLANE('',#9433);
--#9436=ORIENTED_EDGE('',*,*,#9435,.F.);
--#9438=ORIENTED_EDGE('',*,*,#9437,.F.);
--#9439=ORIENTED_EDGE('',*,*,#9421,.T.);
--#9440=ORIENTED_EDGE('',*,*,#6185,.T.);
--#9441=EDGE_LOOP('',(#9436,#9438,#9439,#9440));
--#9442=FACE_OUTER_BOUND('',#9441,.F.);
--#9443=ADVANCED_FACE('',(#9442),#9434,.T.);
--#9444=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.441108058217E0));
--#9445=DIRECTION('',(0.E0,0.E0,1.E0));
--#9446=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
--#9447=AXIS2_PLACEMENT_3D('',#9444,#9445,#9446);
--#9448=CYLINDRICAL_SURFACE('',#9447,3.5E-1);
--#9450=ORIENTED_EDGE('',*,*,#9449,.F.);
--#9452=ORIENTED_EDGE('',*,*,#9451,.T.);
--#9453=ORIENTED_EDGE('',*,*,#9435,.T.);
--#9454=ORIENTED_EDGE('',*,*,#6183,.T.);
--#9455=EDGE_LOOP('',(#9450,#9452,#9453,#9454));
--#9456=FACE_OUTER_BOUND('',#9455,.F.);
--#9457=ADVANCED_FACE('',(#9456),#9448,.F.);
--#9458=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,1.E1));
--#9459=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
--#9460=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
--#9461=AXIS2_PLACEMENT_3D('',#9458,#9459,#9460);
--#9462=PLANE('',#9461);
--#9464=ORIENTED_EDGE('',*,*,#9463,.F.);
--#9466=ORIENTED_EDGE('',*,*,#9465,.F.);
--#9467=ORIENTED_EDGE('',*,*,#9449,.T.);
--#9468=ORIENTED_EDGE('',*,*,#6181,.T.);
--#9469=EDGE_LOOP('',(#9464,#9466,#9467,#9468));
--#9470=FACE_OUTER_BOUND('',#9469,.F.);
--#9471=ADVANCED_FACE('',(#9470),#9462,.T.);
--#9472=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.441108058217E0));
--#9473=DIRECTION('',(0.E0,0.E0,1.E0));
--#9474=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474);
--#9476=CYLINDRICAL_SURFACE('',#9475,3.5E-1);
--#9478=ORIENTED_EDGE('',*,*,#9477,.F.);
--#9480=ORIENTED_EDGE('',*,*,#9479,.T.);
--#9481=ORIENTED_EDGE('',*,*,#9463,.T.);
--#9482=ORIENTED_EDGE('',*,*,#6179,.T.);
--#9483=EDGE_LOOP('',(#9478,#9480,#9481,#9482));
--#9484=FACE_OUTER_BOUND('',#9483,.F.);
--#9485=ADVANCED_FACE('',(#9484),#9476,.F.);
--#9486=CARTESIAN_POINT('',(2.264203082158E1,7.E0,1.E1));
--#9487=DIRECTION('',(0.E0,1.E0,0.E0));
--#9488=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488);
--#9490=PLANE('',#9489);
--#9491=ORIENTED_EDGE('',*,*,#9340,.T.);
--#9493=ORIENTED_EDGE('',*,*,#9492,.F.);
--#9494=ORIENTED_EDGE('',*,*,#9477,.T.);
--#9495=ORIENTED_EDGE('',*,*,#6177,.T.);
--#9496=EDGE_LOOP('',(#9491,#9493,#9494,#9495));
--#9497=FACE_OUTER_BOUND('',#9496,.F.);
--#9498=ADVANCED_FACE('',(#9497),#9490,.T.);
--#9499=CARTESIAN_POINT('',(2.4E1,0.E0,9.5E0));
--#9500=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9501=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9502=AXIS2_PLACEMENT_3D('',#9499,#9500,#9501);
--#9503=PLANE('',#9502);
--#9504=ORIENTED_EDGE('',*,*,#9492,.T.);
--#9505=ORIENTED_EDGE('',*,*,#9338,.F.);
--#9506=ORIENTED_EDGE('',*,*,#9355,.T.);
--#9507=ORIENTED_EDGE('',*,*,#9367,.F.);
--#9508=ORIENTED_EDGE('',*,*,#9383,.T.);
--#9509=ORIENTED_EDGE('',*,*,#9395,.F.);
--#9510=ORIENTED_EDGE('',*,*,#9411,.T.);
--#9511=ORIENTED_EDGE('',*,*,#9423,.F.);
--#9512=ORIENTED_EDGE('',*,*,#9437,.T.);
--#9513=ORIENTED_EDGE('',*,*,#9451,.F.);
--#9514=ORIENTED_EDGE('',*,*,#9465,.T.);
--#9515=ORIENTED_EDGE('',*,*,#9479,.F.);
--#9516=EDGE_LOOP('',(#9504,#9505,#9506,#9507,#9508,#9509,#9510,#9511,#9512,#9513,
--#9514,#9515));
--#9517=FACE_OUTER_BOUND('',#9516,.F.);
--#9518=ADVANCED_FACE('',(#9517),#9503,.F.);
--#9519=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
--#9520=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9521=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9522=AXIS2_PLACEMENT_3D('',#9519,#9520,#9521);
--#9523=CYLINDRICAL_SURFACE('',#9522,9.5E-2);
--#9524=ORIENTED_EDGE('',*,*,#6007,.F.);
--#9526=ORIENTED_EDGE('',*,*,#9525,.T.);
--#9528=ORIENTED_EDGE('',*,*,#9527,.T.);
--#9530=ORIENTED_EDGE('',*,*,#9529,.F.);
--#9531=EDGE_LOOP('',(#9524,#9526,#9528,#9530));
--#9532=FACE_OUTER_BOUND('',#9531,.F.);
--#9533=ADVANCED_FACE('',(#9532),#9523,.F.);
--#9534=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
--#9535=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9536=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9537=AXIS2_PLACEMENT_3D('',#9534,#9535,#9536);
--#9538=CYLINDRICAL_SURFACE('',#9537,9.5E-2);
--#9539=ORIENTED_EDGE('',*,*,#6009,.F.);
--#9540=ORIENTED_EDGE('',*,*,#9529,.T.);
--#9542=ORIENTED_EDGE('',*,*,#9541,.T.);
--#9543=ORIENTED_EDGE('',*,*,#9525,.F.);
--#9544=EDGE_LOOP('',(#9539,#9540,#9542,#9543));
--#9545=FACE_OUTER_BOUND('',#9544,.F.);
--#9546=ADVANCED_FACE('',(#9545),#9538,.F.);
--#9547=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
--#9548=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9549=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9550=AXIS2_PLACEMENT_3D('',#9547,#9548,#9549);
--#9551=PLANE('',#9550);
--#9552=ORIENTED_EDGE('',*,*,#9527,.F.);
--#9553=ORIENTED_EDGE('',*,*,#9541,.F.);
--#9554=EDGE_LOOP('',(#9552,#9553));
--#9555=FACE_OUTER_BOUND('',#9554,.F.);
--#9556=ADVANCED_FACE('',(#9555),#9551,.T.);
--#9557=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
--#9558=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9559=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9560=AXIS2_PLACEMENT_3D('',#9557,#9558,#9559);
--#9561=CYLINDRICAL_SURFACE('',#9560,9.5E-2);
--#9562=ORIENTED_EDGE('',*,*,#6013,.F.);
--#9564=ORIENTED_EDGE('',*,*,#9563,.T.);
--#9566=ORIENTED_EDGE('',*,*,#9565,.T.);
--#9568=ORIENTED_EDGE('',*,*,#9567,.F.);
--#9569=EDGE_LOOP('',(#9562,#9564,#9566,#9568));
--#9570=FACE_OUTER_BOUND('',#9569,.F.);
--#9571=ADVANCED_FACE('',(#9570),#9561,.F.);
--#9572=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
--#9573=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9574=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9575=AXIS2_PLACEMENT_3D('',#9572,#9573,#9574);
--#9576=CYLINDRICAL_SURFACE('',#9575,9.5E-2);
--#9577=ORIENTED_EDGE('',*,*,#6015,.F.);
--#9578=ORIENTED_EDGE('',*,*,#9567,.T.);
--#9580=ORIENTED_EDGE('',*,*,#9579,.T.);
--#9581=ORIENTED_EDGE('',*,*,#9563,.F.);
--#9582=EDGE_LOOP('',(#9577,#9578,#9580,#9581));
--#9583=FACE_OUTER_BOUND('',#9582,.F.);
--#9584=ADVANCED_FACE('',(#9583),#9576,.F.);
--#9585=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
--#9586=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9587=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9588=AXIS2_PLACEMENT_3D('',#9585,#9586,#9587);
--#9589=PLANE('',#9588);
--#9590=ORIENTED_EDGE('',*,*,#9565,.F.);
--#9591=ORIENTED_EDGE('',*,*,#9579,.F.);
--#9592=EDGE_LOOP('',(#9590,#9591));
--#9593=FACE_OUTER_BOUND('',#9592,.F.);
--#9594=ADVANCED_FACE('',(#9593),#9589,.T.);
--#9595=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
--#9596=DIRECTION('',(0.E0,0.E0,1.E0));
--#9597=DIRECTION('',(1.E0,0.E0,0.E0));
--#9598=AXIS2_PLACEMENT_3D('',#9595,#9596,#9597);
--#9599=CYLINDRICAL_SURFACE('',#9598,9.5E-2);
--#9600=ORIENTED_EDGE('',*,*,#6019,.T.);
--#9602=ORIENTED_EDGE('',*,*,#9601,.T.);
--#9604=ORIENTED_EDGE('',*,*,#9603,.F.);
--#9606=ORIENTED_EDGE('',*,*,#9605,.F.);
--#9607=EDGE_LOOP('',(#9600,#9602,#9604,#9606));
--#9608=FACE_OUTER_BOUND('',#9607,.F.);
--#9609=ADVANCED_FACE('',(#9608),#9599,.F.);
--#9610=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
--#9611=DIRECTION('',(0.E0,0.E0,1.E0));
--#9612=DIRECTION('',(1.E0,0.E0,0.E0));
--#9613=AXIS2_PLACEMENT_3D('',#9610,#9611,#9612);
--#9614=CYLINDRICAL_SURFACE('',#9613,9.5E-2);
--#9615=ORIENTED_EDGE('',*,*,#6021,.T.);
--#9616=ORIENTED_EDGE('',*,*,#9605,.T.);
--#9618=ORIENTED_EDGE('',*,*,#9617,.F.);
--#9619=ORIENTED_EDGE('',*,*,#9601,.F.);
--#9620=EDGE_LOOP('',(#9615,#9616,#9618,#9619));
--#9621=FACE_OUTER_BOUND('',#9620,.F.);
--#9622=ADVANCED_FACE('',(#9621),#9614,.F.);
--#9623=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
--#9624=DIRECTION('',(0.E0,0.E0,1.E0));
--#9625=DIRECTION('',(1.E0,0.E0,0.E0));
--#9626=AXIS2_PLACEMENT_3D('',#9623,#9624,#9625);
--#9627=PLANE('',#9626);
--#9628=ORIENTED_EDGE('',*,*,#9603,.T.);
--#9629=ORIENTED_EDGE('',*,*,#9617,.T.);
--#9630=EDGE_LOOP('',(#9628,#9629));
--#9631=FACE_OUTER_BOUND('',#9630,.F.);
--#9632=ADVANCED_FACE('',(#9631),#9627,.F.);
--#9633=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
--#9634=DIRECTION('',(0.E0,0.E0,1.E0));
--#9635=DIRECTION('',(1.E0,0.E0,0.E0));
--#9636=AXIS2_PLACEMENT_3D('',#9633,#9634,#9635);
--#9637=CYLINDRICAL_SURFACE('',#9636,9.5E-2);
--#9638=ORIENTED_EDGE('',*,*,#6025,.T.);
--#9640=ORIENTED_EDGE('',*,*,#9639,.T.);
--#9642=ORIENTED_EDGE('',*,*,#9641,.F.);
--#9644=ORIENTED_EDGE('',*,*,#9643,.F.);
--#9645=EDGE_LOOP('',(#9638,#9640,#9642,#9644));
--#9646=FACE_OUTER_BOUND('',#9645,.F.);
--#9647=ADVANCED_FACE('',(#9646),#9637,.F.);
--#9648=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
--#9649=DIRECTION('',(0.E0,0.E0,1.E0));
--#9650=DIRECTION('',(1.E0,0.E0,0.E0));
--#9651=AXIS2_PLACEMENT_3D('',#9648,#9649,#9650);
--#9652=CYLINDRICAL_SURFACE('',#9651,9.5E-2);
--#9653=ORIENTED_EDGE('',*,*,#6027,.T.);
--#9654=ORIENTED_EDGE('',*,*,#9643,.T.);
--#9656=ORIENTED_EDGE('',*,*,#9655,.F.);
--#9657=ORIENTED_EDGE('',*,*,#9639,.F.);
--#9658=EDGE_LOOP('',(#9653,#9654,#9656,#9657));
--#9659=FACE_OUTER_BOUND('',#9658,.F.);
--#9660=ADVANCED_FACE('',(#9659),#9652,.F.);
--#9661=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
--#9662=DIRECTION('',(0.E0,0.E0,1.E0));
--#9663=DIRECTION('',(1.E0,0.E0,0.E0));
--#9664=AXIS2_PLACEMENT_3D('',#9661,#9662,#9663);
--#9665=PLANE('',#9664);
--#9666=ORIENTED_EDGE('',*,*,#9641,.T.);
--#9667=ORIENTED_EDGE('',*,*,#9655,.T.);
--#9668=EDGE_LOOP('',(#9666,#9667));
--#9669=FACE_OUTER_BOUND('',#9668,.F.);
--#9670=ADVANCED_FACE('',(#9669),#9665,.F.);
--#9671=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
--#9672=DIRECTION('',(0.E0,0.E0,1.E0));
--#9673=DIRECTION('',(1.E0,0.E0,0.E0));
--#9674=AXIS2_PLACEMENT_3D('',#9671,#9672,#9673);
--#9675=CYLINDRICAL_SURFACE('',#9674,9.5E-2);
--#9676=ORIENTED_EDGE('',*,*,#6037,.T.);
--#9678=ORIENTED_EDGE('',*,*,#9677,.T.);
--#9680=ORIENTED_EDGE('',*,*,#9679,.F.);
--#9682=ORIENTED_EDGE('',*,*,#9681,.F.);
--#9683=EDGE_LOOP('',(#9676,#9678,#9680,#9682));
--#9684=FACE_OUTER_BOUND('',#9683,.F.);
--#9685=ADVANCED_FACE('',(#9684),#9675,.F.);
--#9686=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
--#9687=DIRECTION('',(0.E0,0.E0,1.E0));
--#9688=DIRECTION('',(1.E0,0.E0,0.E0));
--#9689=AXIS2_PLACEMENT_3D('',#9686,#9687,#9688);
--#9690=CYLINDRICAL_SURFACE('',#9689,9.5E-2);
--#9691=ORIENTED_EDGE('',*,*,#6039,.T.);
--#9692=ORIENTED_EDGE('',*,*,#9681,.T.);
--#9694=ORIENTED_EDGE('',*,*,#9693,.F.);
--#9695=ORIENTED_EDGE('',*,*,#9677,.F.);
--#9696=EDGE_LOOP('',(#9691,#9692,#9694,#9695));
--#9697=FACE_OUTER_BOUND('',#9696,.F.);
--#9698=ADVANCED_FACE('',(#9697),#9690,.F.);
--#9699=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
--#9700=DIRECTION('',(0.E0,0.E0,1.E0));
--#9701=DIRECTION('',(1.E0,0.E0,0.E0));
--#9702=AXIS2_PLACEMENT_3D('',#9699,#9700,#9701);
--#9703=PLANE('',#9702);
--#9704=ORIENTED_EDGE('',*,*,#9679,.T.);
--#9705=ORIENTED_EDGE('',*,*,#9693,.T.);
--#9706=EDGE_LOOP('',(#9704,#9705));
--#9707=FACE_OUTER_BOUND('',#9706,.F.);
--#9708=ADVANCED_FACE('',(#9707),#9703,.F.);
--#9709=CARTESIAN_POINT('',(4.5E0,2.E0,8.E0));
--#9710=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9711=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9712=AXIS2_PLACEMENT_3D('',#9709,#9710,#9711);
--#9713=PLANE('',#9712);
--#9715=ORIENTED_EDGE('',*,*,#9714,.T.);
--#9717=ORIENTED_EDGE('',*,*,#9716,.T.);
--#9719=ORIENTED_EDGE('',*,*,#9718,.F.);
--#9720=ORIENTED_EDGE('',*,*,#6043,.F.);
--#9721=EDGE_LOOP('',(#9715,#9717,#9719,#9720));
--#9722=FACE_OUTER_BOUND('',#9721,.F.);
--#9723=ADVANCED_FACE('',(#9722),#9713,.F.);
--#9724=CARTESIAN_POINT('',(3.75E0,2.75E0,7.931076025772E0));
--#9725=DIRECTION('',(0.E0,0.E0,1.E0));
--#9726=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9727=AXIS2_PLACEMENT_3D('',#9724,#9725,#9726);
--#9728=CYLINDRICAL_SURFACE('',#9727,7.5E-1);
--#9729=ORIENTED_EDGE('',*,*,#9714,.F.);
--#9730=ORIENTED_EDGE('',*,*,#6057,.T.);
--#9732=ORIENTED_EDGE('',*,*,#9731,.T.);
--#9734=ORIENTED_EDGE('',*,*,#9733,.T.);
--#9735=EDGE_LOOP('',(#9729,#9730,#9732,#9734));
--#9736=FACE_OUTER_BOUND('',#9735,.F.);
--#9737=ADVANCED_FACE('',(#9736),#9728,.F.);
--#9738=CARTESIAN_POINT('',(4.5E0,9.5E0,8.E0));
--#9739=DIRECTION('',(1.E0,0.E0,0.E0));
--#9740=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9741=AXIS2_PLACEMENT_3D('',#9738,#9739,#9740);
--#9742=PLANE('',#9741);
--#9743=ORIENTED_EDGE('',*,*,#9731,.F.);
--#9744=ORIENTED_EDGE('',*,*,#6055,.F.);
--#9746=ORIENTED_EDGE('',*,*,#9745,.T.);
--#9748=ORIENTED_EDGE('',*,*,#9747,.T.);
--#9749=EDGE_LOOP('',(#9743,#9744,#9746,#9748));
--#9750=FACE_OUTER_BOUND('',#9749,.F.);
--#9751=ADVANCED_FACE('',(#9750),#9742,.F.);
--#9752=CARTESIAN_POINT('',(3.75E0,8.75E0,7.931076025772E0));
--#9753=DIRECTION('',(0.E0,0.E0,1.E0));
--#9754=DIRECTION('',(1.E0,0.E0,0.E0));
--#9755=AXIS2_PLACEMENT_3D('',#9752,#9753,#9754);
--#9756=CYLINDRICAL_SURFACE('',#9755,7.5E-1);
--#9757=ORIENTED_EDGE('',*,*,#9745,.F.);
--#9758=ORIENTED_EDGE('',*,*,#6053,.T.);
--#9760=ORIENTED_EDGE('',*,*,#9759,.T.);
--#9762=ORIENTED_EDGE('',*,*,#9761,.T.);
--#9763=EDGE_LOOP('',(#9757,#9758,#9760,#9762));
--#9764=FACE_OUTER_BOUND('',#9763,.F.);
--#9765=ADVANCED_FACE('',(#9764),#9756,.F.);
--#9766=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,8.E0));
--#9767=DIRECTION('',(0.E0,1.E0,0.E0));
--#9768=DIRECTION('',(1.E0,0.E0,0.E0));
--#9769=AXIS2_PLACEMENT_3D('',#9766,#9767,#9768);
--#9770=PLANE('',#9769);
--#9772=ORIENTED_EDGE('',*,*,#9771,.T.);
--#9774=ORIENTED_EDGE('',*,*,#9773,.T.);
--#9775=ORIENTED_EDGE('',*,*,#9759,.F.);
--#9776=ORIENTED_EDGE('',*,*,#6051,.F.);
--#9777=EDGE_LOOP('',(#9772,#9774,#9775,#9776));
--#9778=FACE_OUTER_BOUND('',#9777,.F.);
--#9779=ADVANCED_FACE('',(#9778),#9770,.F.);
--#9780=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,7.931076025772E0));
--#9781=DIRECTION('',(0.E0,0.E0,1.E0));
--#9782=DIRECTION('',(0.E0,1.E0,0.E0));
--#9783=AXIS2_PLACEMENT_3D('',#9780,#9781,#9782);
--#9784=CYLINDRICAL_SURFACE('',#9783,7.5E-1);
--#9785=ORIENTED_EDGE('',*,*,#9771,.F.);
--#9786=ORIENTED_EDGE('',*,*,#6049,.T.);
--#9788=ORIENTED_EDGE('',*,*,#9787,.T.);
--#9790=ORIENTED_EDGE('',*,*,#9789,.T.);
--#9791=EDGE_LOOP('',(#9785,#9786,#9788,#9790));
--#9792=FACE_OUTER_BOUND('',#9791,.F.);
--#9793=ADVANCED_FACE('',(#9792),#9784,.F.);
--#9794=CARTESIAN_POINT('',(-1.419808599362E0,2.E0,8.E0));
--#9795=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#9796=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
--#9797=AXIS2_PLACEMENT_3D('',#9794,#9795,#9796);
--#9798=PLANE('',#9797);
--#9800=ORIENTED_EDGE('',*,*,#9799,.T.);
--#9802=ORIENTED_EDGE('',*,*,#9801,.T.);
--#9803=ORIENTED_EDGE('',*,*,#9787,.F.);
--#9804=ORIENTED_EDGE('',*,*,#6047,.F.);
--#9805=EDGE_LOOP('',(#9800,#9802,#9803,#9804));
--#9806=FACE_OUTER_BOUND('',#9805,.F.);
--#9807=ADVANCED_FACE('',(#9806),#9798,.F.);
--#9808=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,7.931076025772E0));
--#9809=DIRECTION('',(0.E0,0.E0,1.E0));
--#9810=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
--#9811=AXIS2_PLACEMENT_3D('',#9808,#9809,#9810);
--#9812=CYLINDRICAL_SURFACE('',#9811,7.5E-1);
--#9813=ORIENTED_EDGE('',*,*,#9799,.F.);
--#9814=ORIENTED_EDGE('',*,*,#6045,.T.);
--#9815=ORIENTED_EDGE('',*,*,#9718,.T.);
--#9817=ORIENTED_EDGE('',*,*,#9816,.T.);
--#9818=EDGE_LOOP('',(#9813,#9814,#9815,#9817));
--#9819=FACE_OUTER_BOUND('',#9818,.F.);
--#9820=ADVANCED_FACE('',(#9819),#9812,.F.);
--#9821=CARTESIAN_POINT('',(0.E0,0.E0,8.5E0));
--#9822=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9823=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9824=AXIS2_PLACEMENT_3D('',#9821,#9822,#9823);
--#9825=PLANE('',#9824);
--#9826=ORIENTED_EDGE('',*,*,#9733,.F.);
--#9827=ORIENTED_EDGE('',*,*,#9747,.F.);
--#9828=ORIENTED_EDGE('',*,*,#9761,.F.);
--#9829=ORIENTED_EDGE('',*,*,#9773,.F.);
--#9830=ORIENTED_EDGE('',*,*,#9789,.F.);
--#9831=ORIENTED_EDGE('',*,*,#9801,.F.);
--#9832=ORIENTED_EDGE('',*,*,#9816,.F.);
--#9833=ORIENTED_EDGE('',*,*,#9716,.F.);
--#9834=EDGE_LOOP('',(#9826,#9827,#9828,#9829,#9830,#9831,#9832,#9833));
--#9835=FACE_OUTER_BOUND('',#9834,.F.);
--#9836=ADVANCED_FACE('',(#9835),#9825,.T.);
--#9837=CARTESIAN_POINT('',(2.541980859936E1,2.E0,8.E0));
--#9838=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
--#9839=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
--#9840=AXIS2_PLACEMENT_3D('',#9837,#9838,#9839);
--#9841=PLANE('',#9840);
--#9843=ORIENTED_EDGE('',*,*,#9842,.T.);
--#9844=ORIENTED_EDGE('',*,*,#6061,.T.);
--#9846=ORIENTED_EDGE('',*,*,#9845,.F.);
--#9848=ORIENTED_EDGE('',*,*,#9847,.F.);
--#9849=EDGE_LOOP('',(#9843,#9844,#9846,#9848));
--#9850=FACE_OUTER_BOUND('',#9849,.F.);
--#9851=ADVANCED_FACE('',(#9850),#9841,.T.);
--#9852=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.558891941783E0));
--#9853=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9854=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
--#9855=AXIS2_PLACEMENT_3D('',#9852,#9853,#9854);
--#9856=CYLINDRICAL_SURFACE('',#9855,7.5E-1);
--#9857=ORIENTED_EDGE('',*,*,#9842,.F.);
--#9859=ORIENTED_EDGE('',*,*,#9858,.T.);
--#9861=ORIENTED_EDGE('',*,*,#9860,.T.);
--#9862=ORIENTED_EDGE('',*,*,#6063,.T.);
--#9863=EDGE_LOOP('',(#9857,#9859,#9861,#9862));
--#9864=FACE_OUTER_BOUND('',#9863,.F.);
--#9865=ADVANCED_FACE('',(#9864),#9856,.F.);
--#9866=CARTESIAN_POINT('',(2.4E1,0.E0,8.5E0));
--#9867=DIRECTION('',(0.E0,0.E0,1.E0));
--#9868=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9869=AXIS2_PLACEMENT_3D('',#9866,#9867,#9868);
--#9870=PLANE('',#9869);
--#9872=ORIENTED_EDGE('',*,*,#9871,.F.);
--#9874=ORIENTED_EDGE('',*,*,#9873,.T.);
--#9875=ORIENTED_EDGE('',*,*,#9858,.F.);
--#9876=ORIENTED_EDGE('',*,*,#9847,.T.);
--#9878=ORIENTED_EDGE('',*,*,#9877,.F.);
--#9880=ORIENTED_EDGE('',*,*,#9879,.T.);
--#9882=ORIENTED_EDGE('',*,*,#9881,.F.);
--#9884=ORIENTED_EDGE('',*,*,#9883,.T.);
--#9885=EDGE_LOOP('',(#9872,#9874,#9875,#9876,#9878,#9880,#9882,#9884));
--#9886=FACE_OUTER_BOUND('',#9885,.F.);
--#9887=ADVANCED_FACE('',(#9886),#9870,.F.);
--#9888=CARTESIAN_POINT('',(2.025E1,2.75E0,8.558891941783E0));
--#9889=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9890=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9891=AXIS2_PLACEMENT_3D('',#9888,#9889,#9890);
--#9892=CYLINDRICAL_SURFACE('',#9891,7.5E-1);
--#9894=ORIENTED_EDGE('',*,*,#9893,.F.);
--#9895=ORIENTED_EDGE('',*,*,#9871,.T.);
--#9897=ORIENTED_EDGE('',*,*,#9896,.T.);
--#9898=ORIENTED_EDGE('',*,*,#6067,.T.);
--#9899=EDGE_LOOP('',(#9894,#9895,#9897,#9898));
--#9900=FACE_OUTER_BOUND('',#9899,.F.);
--#9901=ADVANCED_FACE('',(#9900),#9892,.F.);
--#9902=CARTESIAN_POINT('',(1.95E1,2.E0,8.E0));
--#9903=DIRECTION('',(0.E0,1.E0,0.E0));
--#9904=DIRECTION('',(1.E0,0.E0,0.E0));
--#9905=AXIS2_PLACEMENT_3D('',#9902,#9903,#9904);
--#9906=PLANE('',#9905);
--#9907=ORIENTED_EDGE('',*,*,#9893,.T.);
--#9908=ORIENTED_EDGE('',*,*,#6065,.T.);
--#9909=ORIENTED_EDGE('',*,*,#9860,.F.);
--#9910=ORIENTED_EDGE('',*,*,#9873,.F.);
--#9911=EDGE_LOOP('',(#9907,#9908,#9909,#9910));
--#9912=FACE_OUTER_BOUND('',#9911,.F.);
--#9913=ADVANCED_FACE('',(#9912),#9906,.T.);
--#9914=CARTESIAN_POINT('',(1.95E1,9.5E0,8.E0));
--#9915=DIRECTION('',(1.E0,0.E0,0.E0));
--#9916=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9917=AXIS2_PLACEMENT_3D('',#9914,#9915,#9916);
--#9918=PLANE('',#9917);
--#9919=ORIENTED_EDGE('',*,*,#9896,.F.);
--#9920=ORIENTED_EDGE('',*,*,#9883,.F.);
--#9922=ORIENTED_EDGE('',*,*,#9921,.T.);
--#9923=ORIENTED_EDGE('',*,*,#6069,.T.);
--#9924=EDGE_LOOP('',(#9919,#9920,#9922,#9923));
--#9925=FACE_OUTER_BOUND('',#9924,.F.);
--#9926=ADVANCED_FACE('',(#9925),#9918,.T.);
--#9927=CARTESIAN_POINT('',(2.025E1,8.75E0,8.558891941783E0));
--#9928=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9929=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9930=AXIS2_PLACEMENT_3D('',#9927,#9928,#9929);
--#9931=CYLINDRICAL_SURFACE('',#9930,7.5E-1);
--#9932=ORIENTED_EDGE('',*,*,#9921,.F.);
--#9933=ORIENTED_EDGE('',*,*,#9881,.T.);
--#9935=ORIENTED_EDGE('',*,*,#9934,.T.);
--#9936=ORIENTED_EDGE('',*,*,#6071,.T.);
--#9937=EDGE_LOOP('',(#9932,#9933,#9935,#9936));
--#9938=FACE_OUTER_BOUND('',#9937,.F.);
--#9939=ADVANCED_FACE('',(#9938),#9931,.F.);
--#9940=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,8.E0));
--#9941=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9942=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9943=AXIS2_PLACEMENT_3D('',#9940,#9941,#9942);
--#9944=PLANE('',#9943);
--#9946=ORIENTED_EDGE('',*,*,#9945,.T.);
--#9947=ORIENTED_EDGE('',*,*,#6073,.T.);
--#9948=ORIENTED_EDGE('',*,*,#9934,.F.);
--#9949=ORIENTED_EDGE('',*,*,#9879,.F.);
--#9950=EDGE_LOOP('',(#9946,#9947,#9948,#9949));
--#9951=FACE_OUTER_BOUND('',#9950,.F.);
--#9952=ADVANCED_FACE('',(#9951),#9944,.T.);
--#9953=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.558891941783E0));
--#9954=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9955=DIRECTION('',(0.E0,1.E0,0.E0));
--#9956=AXIS2_PLACEMENT_3D('',#9953,#9954,#9955);
--#9957=CYLINDRICAL_SURFACE('',#9956,7.5E-1);
--#9958=ORIENTED_EDGE('',*,*,#9945,.F.);
--#9959=ORIENTED_EDGE('',*,*,#9877,.T.);
--#9960=ORIENTED_EDGE('',*,*,#9845,.T.);
--#9961=ORIENTED_EDGE('',*,*,#6075,.T.);
--#9962=EDGE_LOOP('',(#9958,#9959,#9960,#9961));
--#9963=FACE_OUTER_BOUND('',#9962,.F.);
--#9964=ADVANCED_FACE('',(#9963),#9957,.F.);
--#9965=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
--#9966=DIRECTION('',(0.E0,0.E0,-1.E0));
--#9967=DIRECTION('',(1.E0,0.E0,0.E0));
--#9968=AXIS2_PLACEMENT_3D('',#9965,#9966,#9967);
--#9969=PLANE('',#9968);
--#9970=ORIENTED_EDGE('',*,*,#5726,.F.);
--#9972=ORIENTED_EDGE('',*,*,#9971,.T.);
--#9974=ORIENTED_EDGE('',*,*,#9973,.T.);
--#9976=ORIENTED_EDGE('',*,*,#9975,.F.);
--#9977=EDGE_LOOP('',(#9970,#9972,#9974,#9976));
--#9978=FACE_OUTER_BOUND('',#9977,.F.);
--#9979=ADVANCED_FACE('',(#9978),#9969,.F.);
--#9980=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
--#9981=DIRECTION('',(0.E0,-1.E0,0.E0));
--#9982=DIRECTION('',(1.E0,0.E0,0.E0));
--#9983=AXIS2_PLACEMENT_3D('',#9980,#9981,#9982);
--#9984=CYLINDRICAL_SURFACE('',#9983,5.625E-1);
--#9985=ORIENTED_EDGE('',*,*,#5732,.F.);
--#9987=ORIENTED_EDGE('',*,*,#9986,.T.);
--#9989=ORIENTED_EDGE('',*,*,#9988,.T.);
--#9990=ORIENTED_EDGE('',*,*,#9971,.F.);
--#9991=EDGE_LOOP('',(#9985,#9987,#9989,#9990));
--#9992=FACE_OUTER_BOUND('',#9991,.F.);
--#9993=ADVANCED_FACE('',(#9992),#9984,.F.);
--#9994=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
--#9995=DIRECTION('',(0.E0,0.E0,1.E0));
--#9996=DIRECTION('',(-1.E0,0.E0,0.E0));
--#9997=AXIS2_PLACEMENT_3D('',#9994,#9995,#9996);
--#9998=PLANE('',#9997);
--#9999=ORIENTED_EDGE('',*,*,#5730,.F.);
--#10001=ORIENTED_EDGE('',*,*,#10000,.T.);
--#10003=ORIENTED_EDGE('',*,*,#10002,.T.);
--#10004=ORIENTED_EDGE('',*,*,#9986,.F.);
--#10005=EDGE_LOOP('',(#9999,#10001,#10003,#10004));
--#10006=FACE_OUTER_BOUND('',#10005,.F.);
--#10007=ADVANCED_FACE('',(#10006),#9998,.F.);
--#10008=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
--#10009=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10010=DIRECTION('',(1.E0,0.E0,0.E0));
--#10011=AXIS2_PLACEMENT_3D('',#10008,#10009,#10010);
--#10012=CYLINDRICAL_SURFACE('',#10011,5.625E-1);
--#10013=ORIENTED_EDGE('',*,*,#5728,.F.);
--#10014=ORIENTED_EDGE('',*,*,#9975,.T.);
--#10016=ORIENTED_EDGE('',*,*,#10015,.T.);
--#10017=ORIENTED_EDGE('',*,*,#10000,.F.);
--#10018=EDGE_LOOP('',(#10013,#10014,#10016,#10017));
--#10019=FACE_OUTER_BOUND('',#10018,.F.);
--#10020=ADVANCED_FACE('',(#10019),#10012,.F.);
--#10021=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10022=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10023=DIRECTION('',(1.E0,0.E0,0.E0));
--#10024=AXIS2_PLACEMENT_3D('',#10021,#10022,#10023);
--#10025=PLANE('',#10024);
--#10026=ORIENTED_EDGE('',*,*,#9973,.F.);
--#10027=ORIENTED_EDGE('',*,*,#9988,.F.);
--#10028=ORIENTED_EDGE('',*,*,#10002,.F.);
--#10029=ORIENTED_EDGE('',*,*,#10015,.F.);
--#10030=EDGE_LOOP('',(#10026,#10027,#10028,#10029));
--#10031=FACE_OUTER_BOUND('',#10030,.F.);
--#10032=ADVANCED_FACE('',(#10031),#10025,.T.);
--#10033=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10034=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10035=DIRECTION('',(1.E0,0.E0,0.E0));
--#10036=AXIS2_PLACEMENT_3D('',#10033,#10034,#10035);
--#10037=PLANE('',#10036);
--#10039=ORIENTED_EDGE('',*,*,#10038,.F.);
--#10041=ORIENTED_EDGE('',*,*,#10040,.F.);
--#10043=ORIENTED_EDGE('',*,*,#10042,.F.);
--#10045=ORIENTED_EDGE('',*,*,#10044,.F.);
--#10047=ORIENTED_EDGE('',*,*,#10046,.F.);
--#10048=EDGE_LOOP('',(#10039,#10041,#10043,#10045,#10047));
--#10049=FACE_OUTER_BOUND('',#10048,.F.);
--#10050=ADVANCED_FACE('',(#10049),#10037,.T.);
--#10051=CARTESIAN_POINT('',(1.455736763592E0,-6.892397422826E-2,
--4.577195232320E0));
--#10052=DIRECTION('',(0.E0,1.E0,0.E0));
--#10053=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#10054=AXIS2_PLACEMENT_3D('',#10051,#10052,#10053);
--#10055=CYLINDRICAL_SURFACE('',#10054,7.5E-1);
--#10057=ORIENTED_EDGE('',*,*,#10056,.F.);
--#10058=ORIENTED_EDGE('',*,*,#5738,.T.);
--#10060=ORIENTED_EDGE('',*,*,#10059,.T.);
--#10061=ORIENTED_EDGE('',*,*,#10038,.T.);
--#10062=EDGE_LOOP('',(#10057,#10058,#10060,#10061));
--#10063=FACE_OUTER_BOUND('',#10062,.F.);
--#10064=ADVANCED_FACE('',(#10063),#10055,.F.);
--#10065=CARTESIAN_POINT('',(6.875E-1,0.E0,4.284771824132E0));
--#10066=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#10067=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#10068=AXIS2_PLACEMENT_3D('',#10065,#10066,#10067);
--#10069=PLANE('',#10068);
--#10070=ORIENTED_EDGE('',*,*,#10056,.T.);
--#10071=ORIENTED_EDGE('',*,*,#10046,.T.);
--#10073=ORIENTED_EDGE('',*,*,#10072,.F.);
--#10074=ORIENTED_EDGE('',*,*,#5740,.F.);
--#10075=EDGE_LOOP('',(#10070,#10071,#10073,#10074));
--#10076=FACE_OUTER_BOUND('',#10075,.F.);
--#10077=ADVANCED_FACE('',(#10076),#10069,.F.);
--#10078=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
--#10079=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10080=DIRECTION('',(1.E0,0.E0,0.E0));
--#10081=AXIS2_PLACEMENT_3D('',#10078,#10079,#10080);
--#10082=CYLINDRICAL_SURFACE('',#10081,8.669989027347E-1);
--#10083=ORIENTED_EDGE('',*,*,#5742,.F.);
--#10084=ORIENTED_EDGE('',*,*,#10072,.T.);
--#10085=ORIENTED_EDGE('',*,*,#10044,.T.);
--#10087=ORIENTED_EDGE('',*,*,#10086,.F.);
--#10088=EDGE_LOOP('',(#10083,#10084,#10085,#10087));
--#10089=FACE_OUTER_BOUND('',#10088,.F.);
--#10090=ADVANCED_FACE('',(#10089),#10082,.F.);
--#10091=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
--#10092=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10093=DIRECTION('',(1.E0,0.E0,0.E0));
--#10094=AXIS2_PLACEMENT_3D('',#10091,#10092,#10093);
--#10095=CYLINDRICAL_SURFACE('',#10094,5.6875E0);
--#10096=ORIENTED_EDGE('',*,*,#5744,.T.);
--#10097=ORIENTED_EDGE('',*,*,#10086,.T.);
--#10098=ORIENTED_EDGE('',*,*,#10042,.T.);
--#10100=ORIENTED_EDGE('',*,*,#10099,.F.);
--#10101=EDGE_LOOP('',(#10096,#10097,#10098,#10100));
--#10102=FACE_OUTER_BOUND('',#10101,.F.);
--#10103=ADVANCED_FACE('',(#10102),#10095,.T.);
--#10104=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
--#10105=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10106=DIRECTION('',(1.E0,0.E0,0.E0));
--#10107=AXIS2_PLACEMENT_3D('',#10104,#10105,#10106);
--#10108=CYLINDRICAL_SURFACE('',#10107,9.225E-1);
--#10109=ORIENTED_EDGE('',*,*,#10059,.F.);
--#10110=ORIENTED_EDGE('',*,*,#5736,.F.);
--#10111=ORIENTED_EDGE('',*,*,#10099,.T.);
--#10112=ORIENTED_EDGE('',*,*,#10040,.T.);
--#10113=EDGE_LOOP('',(#10109,#10110,#10111,#10112));
--#10114=FACE_OUTER_BOUND('',#10113,.F.);
--#10115=ADVANCED_FACE('',(#10114),#10108,.F.);
--#10116=CARTESIAN_POINT('',(-1.85E-1,7.463919417831E-1,7.815E0));
--#10117=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10118=DIRECTION('',(1.E0,0.E0,0.E0));
--#10119=AXIS2_PLACEMENT_3D('',#10116,#10117,#10118);
--#10120=CYLINDRICAL_SURFACE('',#10119,8.75E-1);
--#10122=ORIENTED_EDGE('',*,*,#10121,.T.);
--#10123=ORIENTED_EDGE('',*,*,#5748,.T.);
--#10125=ORIENTED_EDGE('',*,*,#10124,.F.);
--#10127=ORIENTED_EDGE('',*,*,#10126,.T.);
--#10128=EDGE_LOOP('',(#10122,#10123,#10125,#10127));
--#10129=FACE_OUTER_BOUND('',#10128,.F.);
--#10130=ADVANCED_FACE('',(#10129),#10120,.T.);
--#10131=CARTESIAN_POINT('',(6.9E-1,0.E0,8.69E0));
--#10132=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10133=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10134=AXIS2_PLACEMENT_3D('',#10131,#10132,#10133);
--#10135=PLANE('',#10134);
--#10136=ORIENTED_EDGE('',*,*,#10121,.F.);
--#10138=ORIENTED_EDGE('',*,*,#10137,.T.);
--#10140=ORIENTED_EDGE('',*,*,#10139,.F.);
--#10141=ORIENTED_EDGE('',*,*,#5750,.F.);
--#10142=EDGE_LOOP('',(#10136,#10138,#10140,#10141));
--#10143=FACE_OUTER_BOUND('',#10142,.F.);
--#10144=ADVANCED_FACE('',(#10143),#10135,.F.);
--#10145=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10146=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10147=DIRECTION('',(1.E0,0.E0,0.E0));
--#10148=AXIS2_PLACEMENT_3D('',#10145,#10146,#10147);
--#10149=PLANE('',#10148);
--#10151=ORIENTED_EDGE('',*,*,#10150,.F.);
--#10153=ORIENTED_EDGE('',*,*,#10152,.F.);
--#10155=ORIENTED_EDGE('',*,*,#10154,.F.);
--#10157=ORIENTED_EDGE('',*,*,#10156,.F.);
--#10158=ORIENTED_EDGE('',*,*,#10137,.F.);
--#10159=ORIENTED_EDGE('',*,*,#10126,.F.);
--#10161=ORIENTED_EDGE('',*,*,#10160,.F.);
--#10163=ORIENTED_EDGE('',*,*,#10162,.F.);
--#10165=ORIENTED_EDGE('',*,*,#10164,.F.);
--#10167=ORIENTED_EDGE('',*,*,#10166,.F.);
--#10169=ORIENTED_EDGE('',*,*,#10168,.F.);
--#10171=ORIENTED_EDGE('',*,*,#10170,.F.);
--#10173=ORIENTED_EDGE('',*,*,#10172,.F.);
--#10175=ORIENTED_EDGE('',*,*,#10174,.F.);
--#10176=EDGE_LOOP('',(#10151,#10153,#10155,#10157,#10158,#10159,#10161,#10163,
--#10165,#10167,#10169,#10171,#10173,#10175));
--#10177=FACE_OUTER_BOUND('',#10176,.F.);
--#10178=ADVANCED_FACE('',(#10177),#10149,.T.);
--#10179=CARTESIAN_POINT('',(1.8125E0,0.E0,8.69E0));
--#10180=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10181=DIRECTION('',(1.E0,0.E0,0.E0));
--#10182=AXIS2_PLACEMENT_3D('',#10179,#10180,#10181);
--#10183=PLANE('',#10182);
--#10185=ORIENTED_EDGE('',*,*,#10184,.F.);
--#10186=ORIENTED_EDGE('',*,*,#10150,.T.);
--#10188=ORIENTED_EDGE('',*,*,#10187,.F.);
--#10189=ORIENTED_EDGE('',*,*,#5758,.F.);
--#10190=EDGE_LOOP('',(#10185,#10186,#10188,#10189));
--#10191=FACE_OUTER_BOUND('',#10190,.F.);
--#10192=ADVANCED_FACE('',(#10191),#10183,.F.);
--#10193=CARTESIAN_POINT('',(2.6875E0,7.463919417831E-1,7.815E0));
--#10194=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10195=DIRECTION('',(0.E0,0.E0,1.E0));
--#10196=AXIS2_PLACEMENT_3D('',#10193,#10194,#10195);
--#10197=CYLINDRICAL_SURFACE('',#10196,8.75E-1);
--#10198=ORIENTED_EDGE('',*,*,#10184,.T.);
--#10199=ORIENTED_EDGE('',*,*,#5756,.T.);
--#10201=ORIENTED_EDGE('',*,*,#10200,.F.);
--#10202=ORIENTED_EDGE('',*,*,#10152,.T.);
--#10203=EDGE_LOOP('',(#10198,#10199,#10201,#10202));
--#10204=FACE_OUTER_BOUND('',#10203,.F.);
--#10205=ADVANCED_FACE('',(#10204),#10197,.T.);
--#10206=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
--#10207=DIRECTION('',(1.E0,0.E0,0.E0));
--#10208=DIRECTION('',(0.E0,0.E0,1.E0));
--#10209=AXIS2_PLACEMENT_3D('',#10206,#10207,#10208);
--#10210=PLANE('',#10209);
--#10211=ORIENTED_EDGE('',*,*,#10200,.T.);
--#10212=ORIENTED_EDGE('',*,*,#5754,.F.);
--#10214=ORIENTED_EDGE('',*,*,#10213,.T.);
--#10215=ORIENTED_EDGE('',*,*,#10154,.T.);
--#10216=EDGE_LOOP('',(#10211,#10212,#10214,#10215));
--#10217=FACE_OUTER_BOUND('',#10216,.F.);
--#10218=ADVANCED_FACE('',(#10217),#10210,.F.);
--#10219=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
--#10220=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10221=DIRECTION('',(1.E0,0.E0,0.E0));
--#10222=AXIS2_PLACEMENT_3D('',#10219,#10220,#10221);
--#10223=CYLINDRICAL_SURFACE('',#10222,5.6125E-1);
--#10224=ORIENTED_EDGE('',*,*,#5752,.F.);
--#10225=ORIENTED_EDGE('',*,*,#10139,.T.);
--#10226=ORIENTED_EDGE('',*,*,#10156,.T.);
--#10227=ORIENTED_EDGE('',*,*,#10213,.F.);
--#10228=EDGE_LOOP('',(#10224,#10225,#10226,#10227));
--#10229=FACE_OUTER_BOUND('',#10228,.F.);
--#10230=ADVANCED_FACE('',(#10229),#10223,.F.);
--#10231=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,9.565E0));
--#10232=DIRECTION('',(0.E0,1.E0,0.E0));
--#10233=DIRECTION('',(1.E0,0.E0,0.E0));
--#10234=AXIS2_PLACEMENT_3D('',#10231,#10232,#10233);
--#10235=CYLINDRICAL_SURFACE('',#10234,8.75E-1);
--#10237=ORIENTED_EDGE('',*,*,#10236,.F.);
--#10238=ORIENTED_EDGE('',*,*,#5760,.T.);
--#10239=ORIENTED_EDGE('',*,*,#10187,.T.);
--#10240=ORIENTED_EDGE('',*,*,#10174,.T.);
--#10241=EDGE_LOOP('',(#10237,#10238,#10239,#10240));
--#10242=FACE_OUTER_BOUND('',#10241,.F.);
--#10243=ADVANCED_FACE('',(#10242),#10235,.F.);
--#10244=CARTESIAN_POINT('',(4.3125E0,0.E0,8.69E0));
--#10245=DIRECTION('',(1.E0,0.E0,0.E0));
--#10246=DIRECTION('',(0.E0,0.E0,1.E0));
--#10247=AXIS2_PLACEMENT_3D('',#10244,#10245,#10246);
--#10248=PLANE('',#10247);
--#10249=ORIENTED_EDGE('',*,*,#10236,.T.);
--#10250=ORIENTED_EDGE('',*,*,#10172,.T.);
--#10252=ORIENTED_EDGE('',*,*,#10251,.F.);
--#10253=ORIENTED_EDGE('',*,*,#5762,.F.);
--#10254=EDGE_LOOP('',(#10249,#10250,#10252,#10253));
--#10255=FACE_OUTER_BOUND('',#10254,.F.);
--#10256=ADVANCED_FACE('',(#10255),#10248,.F.);
--#10257=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,1.0375E1));
--#10258=DIRECTION('',(0.E0,1.E0,0.E0));
--#10259=DIRECTION('',(0.E0,0.E0,1.E0));
--#10260=AXIS2_PLACEMENT_3D('',#10257,#10258,#10259);
--#10261=CYLINDRICAL_SURFACE('',#10260,8.75E-1);
--#10263=ORIENTED_EDGE('',*,*,#10262,.F.);
--#10264=ORIENTED_EDGE('',*,*,#5764,.T.);
--#10265=ORIENTED_EDGE('',*,*,#10251,.T.);
--#10266=ORIENTED_EDGE('',*,*,#10170,.T.);
--#10267=EDGE_LOOP('',(#10263,#10264,#10265,#10266));
--#10268=FACE_OUTER_BOUND('',#10267,.F.);
--#10269=ADVANCED_FACE('',(#10268),#10261,.F.);
--#10270=CARTESIAN_POINT('',(4.3125E0,0.E0,1.125E1));
--#10271=DIRECTION('',(0.E0,0.E0,1.E0));
--#10272=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10273=AXIS2_PLACEMENT_3D('',#10270,#10271,#10272);
--#10274=PLANE('',#10273);
--#10276=ORIENTED_EDGE('',*,*,#10275,.F.);
--#10277=ORIENTED_EDGE('',*,*,#5766,.F.);
--#10278=ORIENTED_EDGE('',*,*,#10262,.T.);
--#10279=ORIENTED_EDGE('',*,*,#10168,.T.);
--#10280=EDGE_LOOP('',(#10276,#10277,#10278,#10279));
--#10281=FACE_OUTER_BOUND('',#10280,.F.);
--#10282=ADVANCED_FACE('',(#10281),#10274,.F.);
--#10283=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,1.0375E1));
--#10284=DIRECTION('',(0.E0,1.E0,0.E0));
--#10285=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10286=AXIS2_PLACEMENT_3D('',#10283,#10284,#10285);
--#10287=CYLINDRICAL_SURFACE('',#10286,8.75E-1);
--#10289=ORIENTED_EDGE('',*,*,#10288,.F.);
--#10290=ORIENTED_EDGE('',*,*,#5768,.T.);
--#10291=ORIENTED_EDGE('',*,*,#10275,.T.);
--#10292=ORIENTED_EDGE('',*,*,#10166,.T.);
--#10293=EDGE_LOOP('',(#10289,#10290,#10291,#10292));
--#10294=FACE_OUTER_BOUND('',#10293,.F.);
--#10295=ADVANCED_FACE('',(#10294),#10287,.F.);
--#10296=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.125E1));
--#10297=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10298=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10299=AXIS2_PLACEMENT_3D('',#10296,#10297,#10298);
--#10300=PLANE('',#10299);
--#10301=ORIENTED_EDGE('',*,*,#10288,.T.);
--#10302=ORIENTED_EDGE('',*,*,#10164,.T.);
--#10304=ORIENTED_EDGE('',*,*,#10303,.F.);
--#10305=ORIENTED_EDGE('',*,*,#5770,.F.);
--#10306=EDGE_LOOP('',(#10301,#10302,#10304,#10305));
--#10307=FACE_OUTER_BOUND('',#10306,.F.);
--#10308=ADVANCED_FACE('',(#10307),#10300,.F.);
--#10309=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,9.565E0));
--#10310=DIRECTION('',(0.E0,1.E0,0.E0));
--#10311=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10312=AXIS2_PLACEMENT_3D('',#10309,#10310,#10311);
--#10313=CYLINDRICAL_SURFACE('',#10312,8.75E-1);
--#10315=ORIENTED_EDGE('',*,*,#10314,.F.);
--#10316=ORIENTED_EDGE('',*,*,#5772,.T.);
--#10317=ORIENTED_EDGE('',*,*,#10303,.T.);
--#10318=ORIENTED_EDGE('',*,*,#10162,.T.);
--#10319=EDGE_LOOP('',(#10315,#10316,#10317,#10318));
--#10320=FACE_OUTER_BOUND('',#10319,.F.);
--#10321=ADVANCED_FACE('',(#10320),#10313,.F.);
--#10322=CARTESIAN_POINT('',(-1.3125E0,0.E0,8.69E0));
--#10323=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10324=DIRECTION('',(1.E0,0.E0,0.E0));
--#10325=AXIS2_PLACEMENT_3D('',#10322,#10323,#10324);
--#10326=PLANE('',#10325);
--#10327=ORIENTED_EDGE('',*,*,#10124,.T.);
--#10328=ORIENTED_EDGE('',*,*,#5774,.F.);
--#10329=ORIENTED_EDGE('',*,*,#10314,.T.);
--#10330=ORIENTED_EDGE('',*,*,#10160,.T.);
--#10331=EDGE_LOOP('',(#10327,#10328,#10329,#10330));
--#10332=FACE_OUTER_BOUND('',#10331,.F.);
--#10333=ADVANCED_FACE('',(#10332),#10326,.F.);
--#10334=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
--#10335=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10336=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10337=AXIS2_PLACEMENT_3D('',#10334,#10335,#10336);
--#10338=PLANE('',#10337);
--#10339=ORIENTED_EDGE('',*,*,#5778,.F.);
--#10341=ORIENTED_EDGE('',*,*,#10340,.T.);
--#10343=ORIENTED_EDGE('',*,*,#10342,.T.);
--#10345=ORIENTED_EDGE('',*,*,#10344,.F.);
--#10346=EDGE_LOOP('',(#10339,#10341,#10343,#10345));
--#10347=FACE_OUTER_BOUND('',#10346,.F.);
--#10348=ADVANCED_FACE('',(#10347),#10338,.F.);
--#10349=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
--#10350=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10351=DIRECTION('',(1.E0,0.E0,0.E0));
--#10352=AXIS2_PLACEMENT_3D('',#10349,#10350,#10351);
--#10353=CYLINDRICAL_SURFACE('',#10352,5.625E-1);
--#10354=ORIENTED_EDGE('',*,*,#5784,.F.);
--#10356=ORIENTED_EDGE('',*,*,#10355,.T.);
--#10358=ORIENTED_EDGE('',*,*,#10357,.T.);
--#10359=ORIENTED_EDGE('',*,*,#10340,.F.);
--#10360=EDGE_LOOP('',(#10354,#10356,#10358,#10359));
--#10361=FACE_OUTER_BOUND('',#10360,.F.);
--#10362=ADVANCED_FACE('',(#10361),#10353,.F.);
--#10363=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
--#10364=DIRECTION('',(1.E0,0.E0,0.E0));
--#10365=DIRECTION('',(0.E0,0.E0,1.E0));
--#10366=AXIS2_PLACEMENT_3D('',#10363,#10364,#10365);
--#10367=PLANE('',#10366);
--#10368=ORIENTED_EDGE('',*,*,#5782,.F.);
--#10370=ORIENTED_EDGE('',*,*,#10369,.T.);
--#10372=ORIENTED_EDGE('',*,*,#10371,.T.);
--#10373=ORIENTED_EDGE('',*,*,#10355,.F.);
--#10374=EDGE_LOOP('',(#10368,#10370,#10372,#10373));
--#10375=FACE_OUTER_BOUND('',#10374,.F.);
--#10376=ADVANCED_FACE('',(#10375),#10367,.F.);
--#10377=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
--#10378=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10379=DIRECTION('',(1.E0,0.E0,0.E0));
--#10380=AXIS2_PLACEMENT_3D('',#10377,#10378,#10379);
--#10381=CYLINDRICAL_SURFACE('',#10380,5.625E-1);
--#10382=ORIENTED_EDGE('',*,*,#5780,.F.);
--#10383=ORIENTED_EDGE('',*,*,#10344,.T.);
--#10385=ORIENTED_EDGE('',*,*,#10384,.T.);
--#10386=ORIENTED_EDGE('',*,*,#10369,.F.);
--#10387=EDGE_LOOP('',(#10382,#10383,#10385,#10386));
--#10388=FACE_OUTER_BOUND('',#10387,.F.);
--#10389=ADVANCED_FACE('',(#10388),#10381,.F.);
--#10390=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10391=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10392=DIRECTION('',(1.E0,0.E0,0.E0));
--#10393=AXIS2_PLACEMENT_3D('',#10390,#10391,#10392);
--#10394=PLANE('',#10393);
--#10395=ORIENTED_EDGE('',*,*,#10342,.F.);
--#10396=ORIENTED_EDGE('',*,*,#10357,.F.);
--#10397=ORIENTED_EDGE('',*,*,#10371,.F.);
--#10398=ORIENTED_EDGE('',*,*,#10384,.F.);
--#10399=EDGE_LOOP('',(#10395,#10396,#10397,#10398));
--#10400=FACE_OUTER_BOUND('',#10399,.F.);
--#10401=ADVANCED_FACE('',(#10400),#10394,.T.);
--#10402=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
--#10403=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10404=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10405=AXIS2_PLACEMENT_3D('',#10402,#10403,#10404);
--#10406=PLANE('',#10405);
--#10407=ORIENTED_EDGE('',*,*,#5788,.F.);
--#10409=ORIENTED_EDGE('',*,*,#10408,.T.);
--#10411=ORIENTED_EDGE('',*,*,#10410,.T.);
--#10413=ORIENTED_EDGE('',*,*,#10412,.F.);
--#10414=EDGE_LOOP('',(#10407,#10409,#10411,#10413));
--#10415=FACE_OUTER_BOUND('',#10414,.F.);
--#10416=ADVANCED_FACE('',(#10415),#10406,.F.);
--#10417=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
--#10418=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10419=DIRECTION('',(1.E0,0.E0,0.E0));
--#10420=AXIS2_PLACEMENT_3D('',#10417,#10418,#10419);
--#10421=CYLINDRICAL_SURFACE('',#10420,5.625E-1);
--#10422=ORIENTED_EDGE('',*,*,#5794,.F.);
--#10424=ORIENTED_EDGE('',*,*,#10423,.T.);
--#10426=ORIENTED_EDGE('',*,*,#10425,.T.);
--#10427=ORIENTED_EDGE('',*,*,#10408,.F.);
--#10428=EDGE_LOOP('',(#10422,#10424,#10426,#10427));
--#10429=FACE_OUTER_BOUND('',#10428,.F.);
--#10430=ADVANCED_FACE('',(#10429),#10421,.F.);
--#10431=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
--#10432=DIRECTION('',(1.E0,0.E0,0.E0));
--#10433=DIRECTION('',(0.E0,0.E0,1.E0));
--#10434=AXIS2_PLACEMENT_3D('',#10431,#10432,#10433);
--#10435=PLANE('',#10434);
--#10436=ORIENTED_EDGE('',*,*,#5792,.F.);
--#10438=ORIENTED_EDGE('',*,*,#10437,.T.);
--#10440=ORIENTED_EDGE('',*,*,#10439,.T.);
--#10441=ORIENTED_EDGE('',*,*,#10423,.F.);
--#10442=EDGE_LOOP('',(#10436,#10438,#10440,#10441));
--#10443=FACE_OUTER_BOUND('',#10442,.F.);
--#10444=ADVANCED_FACE('',(#10443),#10435,.F.);
--#10445=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
--#10446=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10447=DIRECTION('',(1.E0,0.E0,0.E0));
--#10448=AXIS2_PLACEMENT_3D('',#10445,#10446,#10447);
--#10449=CYLINDRICAL_SURFACE('',#10448,5.625E-1);
--#10450=ORIENTED_EDGE('',*,*,#5790,.F.);
--#10451=ORIENTED_EDGE('',*,*,#10412,.T.);
--#10453=ORIENTED_EDGE('',*,*,#10452,.T.);
--#10454=ORIENTED_EDGE('',*,*,#10437,.F.);
--#10455=EDGE_LOOP('',(#10450,#10451,#10453,#10454));
--#10456=FACE_OUTER_BOUND('',#10455,.F.);
--#10457=ADVANCED_FACE('',(#10456),#10449,.F.);
--#10458=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10459=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10460=DIRECTION('',(1.E0,0.E0,0.E0));
--#10461=AXIS2_PLACEMENT_3D('',#10458,#10459,#10460);
--#10462=PLANE('',#10461);
--#10463=ORIENTED_EDGE('',*,*,#10410,.F.);
--#10464=ORIENTED_EDGE('',*,*,#10425,.F.);
--#10465=ORIENTED_EDGE('',*,*,#10439,.F.);
--#10466=ORIENTED_EDGE('',*,*,#10452,.F.);
--#10467=EDGE_LOOP('',(#10463,#10464,#10465,#10466));
--#10468=FACE_OUTER_BOUND('',#10467,.F.);
--#10469=ADVANCED_FACE('',(#10468),#10462,.T.);
--#10470=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
--#10471=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10472=DIRECTION('',(1.E0,0.E0,0.E0));
--#10473=AXIS2_PLACEMENT_3D('',#10470,#10471,#10472);
--#10474=PLANE('',#10473);
--#10475=ORIENTED_EDGE('',*,*,#5798,.F.);
--#10477=ORIENTED_EDGE('',*,*,#10476,.T.);
--#10479=ORIENTED_EDGE('',*,*,#10478,.T.);
--#10481=ORIENTED_EDGE('',*,*,#10480,.F.);
--#10482=EDGE_LOOP('',(#10475,#10477,#10479,#10481));
--#10483=FACE_OUTER_BOUND('',#10482,.F.);
--#10484=ADVANCED_FACE('',(#10483),#10474,.F.);
--#10485=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
--#10486=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10487=DIRECTION('',(1.E0,0.E0,0.E0));
--#10488=AXIS2_PLACEMENT_3D('',#10485,#10486,#10487);
--#10489=CYLINDRICAL_SURFACE('',#10488,5.E-1);
--#10490=ORIENTED_EDGE('',*,*,#5804,.F.);
--#10492=ORIENTED_EDGE('',*,*,#10491,.T.);
--#10494=ORIENTED_EDGE('',*,*,#10493,.T.);
--#10495=ORIENTED_EDGE('',*,*,#10476,.F.);
--#10496=EDGE_LOOP('',(#10490,#10492,#10494,#10495));
--#10497=FACE_OUTER_BOUND('',#10496,.F.);
--#10498=ADVANCED_FACE('',(#10497),#10489,.F.);
--#10499=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
--#10500=DIRECTION('',(0.E0,0.E0,1.E0));
--#10501=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10502=AXIS2_PLACEMENT_3D('',#10499,#10500,#10501);
--#10503=PLANE('',#10502);
--#10504=ORIENTED_EDGE('',*,*,#5802,.F.);
--#10506=ORIENTED_EDGE('',*,*,#10505,.T.);
--#10508=ORIENTED_EDGE('',*,*,#10507,.T.);
--#10509=ORIENTED_EDGE('',*,*,#10491,.F.);
--#10510=EDGE_LOOP('',(#10504,#10506,#10508,#10509));
--#10511=FACE_OUTER_BOUND('',#10510,.F.);
--#10512=ADVANCED_FACE('',(#10511),#10503,.F.);
--#10513=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
--#10514=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10515=DIRECTION('',(1.E0,0.E0,0.E0));
--#10516=AXIS2_PLACEMENT_3D('',#10513,#10514,#10515);
--#10517=CYLINDRICAL_SURFACE('',#10516,5.E-1);
--#10518=ORIENTED_EDGE('',*,*,#5800,.F.);
--#10519=ORIENTED_EDGE('',*,*,#10480,.T.);
--#10521=ORIENTED_EDGE('',*,*,#10520,.T.);
--#10522=ORIENTED_EDGE('',*,*,#10505,.F.);
--#10523=EDGE_LOOP('',(#10518,#10519,#10521,#10522));
--#10524=FACE_OUTER_BOUND('',#10523,.F.);
--#10525=ADVANCED_FACE('',(#10524),#10517,.F.);
--#10526=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10527=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10528=DIRECTION('',(1.E0,0.E0,0.E0));
--#10529=AXIS2_PLACEMENT_3D('',#10526,#10527,#10528);
--#10530=PLANE('',#10529);
--#10531=ORIENTED_EDGE('',*,*,#10478,.F.);
--#10532=ORIENTED_EDGE('',*,*,#10493,.F.);
--#10533=ORIENTED_EDGE('',*,*,#10507,.F.);
--#10534=ORIENTED_EDGE('',*,*,#10520,.F.);
--#10535=EDGE_LOOP('',(#10531,#10532,#10533,#10534));
--#10536=FACE_OUTER_BOUND('',#10535,.F.);
--#10537=ADVANCED_FACE('',(#10536),#10530,.T.);
--#10538=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
--#10539=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10540=DIRECTION('',(1.E0,0.E0,0.E0));
--#10541=AXIS2_PLACEMENT_3D('',#10538,#10539,#10540);
--#10542=PLANE('',#10541);
--#10543=ORIENTED_EDGE('',*,*,#5808,.F.);
--#10545=ORIENTED_EDGE('',*,*,#10544,.T.);
--#10547=ORIENTED_EDGE('',*,*,#10546,.T.);
--#10549=ORIENTED_EDGE('',*,*,#10548,.F.);
--#10550=EDGE_LOOP('',(#10543,#10545,#10547,#10549));
--#10551=FACE_OUTER_BOUND('',#10550,.F.);
--#10552=ADVANCED_FACE('',(#10551),#10542,.F.);
--#10553=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
--#10554=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10555=DIRECTION('',(1.E0,0.E0,0.E0));
--#10556=AXIS2_PLACEMENT_3D('',#10553,#10554,#10555);
--#10557=CYLINDRICAL_SURFACE('',#10556,4.375E-1);
--#10558=ORIENTED_EDGE('',*,*,#5814,.F.);
--#10560=ORIENTED_EDGE('',*,*,#10559,.T.);
--#10562=ORIENTED_EDGE('',*,*,#10561,.T.);
--#10563=ORIENTED_EDGE('',*,*,#10544,.F.);
--#10564=EDGE_LOOP('',(#10558,#10560,#10562,#10563));
--#10565=FACE_OUTER_BOUND('',#10564,.F.);
--#10566=ADVANCED_FACE('',(#10565),#10557,.F.);
--#10567=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
--#10568=DIRECTION('',(0.E0,0.E0,1.E0));
--#10569=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10570=AXIS2_PLACEMENT_3D('',#10567,#10568,#10569);
--#10571=PLANE('',#10570);
--#10572=ORIENTED_EDGE('',*,*,#5812,.F.);
--#10574=ORIENTED_EDGE('',*,*,#10573,.T.);
--#10576=ORIENTED_EDGE('',*,*,#10575,.T.);
--#10577=ORIENTED_EDGE('',*,*,#10559,.F.);
--#10578=EDGE_LOOP('',(#10572,#10574,#10576,#10577));
--#10579=FACE_OUTER_BOUND('',#10578,.F.);
--#10580=ADVANCED_FACE('',(#10579),#10571,.F.);
--#10581=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
--#10582=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10583=DIRECTION('',(1.E0,0.E0,0.E0));
--#10584=AXIS2_PLACEMENT_3D('',#10581,#10582,#10583);
--#10585=CYLINDRICAL_SURFACE('',#10584,4.375E-1);
--#10586=ORIENTED_EDGE('',*,*,#5810,.F.);
--#10587=ORIENTED_EDGE('',*,*,#10548,.T.);
--#10589=ORIENTED_EDGE('',*,*,#10588,.T.);
--#10590=ORIENTED_EDGE('',*,*,#10573,.F.);
--#10591=EDGE_LOOP('',(#10586,#10587,#10589,#10590));
--#10592=FACE_OUTER_BOUND('',#10591,.F.);
--#10593=ADVANCED_FACE('',(#10592),#10585,.F.);
--#10594=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
--#10595=DIRECTION('',(0.E0,-1.E0,0.E0));
--#10596=DIRECTION('',(1.E0,0.E0,0.E0));
--#10597=AXIS2_PLACEMENT_3D('',#10594,#10595,#10596);
--#10598=PLANE('',#10597);
--#10599=ORIENTED_EDGE('',*,*,#10546,.F.);
--#10600=ORIENTED_EDGE('',*,*,#10561,.F.);
--#10601=ORIENTED_EDGE('',*,*,#10575,.F.);
--#10602=ORIENTED_EDGE('',*,*,#10588,.F.);
--#10603=EDGE_LOOP('',(#10599,#10600,#10601,#10602));
--#10604=FACE_OUTER_BOUND('',#10603,.F.);
--#10605=ADVANCED_FACE('',(#10604),#10598,.T.);
--#10606=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
--#10607=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10608=DIRECTION('',(1.E0,0.E0,0.E0));
--#10609=AXIS2_PLACEMENT_3D('',#10606,#10607,#10608);
--#10610=PLANE('',#10609);
--#10611=ORIENTED_EDGE('',*,*,#5818,.T.);
--#10613=ORIENTED_EDGE('',*,*,#10612,.T.);
--#10615=ORIENTED_EDGE('',*,*,#10614,.F.);
--#10617=ORIENTED_EDGE('',*,*,#10616,.F.);
--#10618=EDGE_LOOP('',(#10611,#10613,#10615,#10617));
--#10619=FACE_OUTER_BOUND('',#10618,.F.);
--#10620=ADVANCED_FACE('',(#10619),#10610,.T.);
--#10621=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
--#10622=DIRECTION('',(0.E0,1.E0,0.E0));
--#10623=DIRECTION('',(1.E0,0.E0,0.E0));
--#10624=AXIS2_PLACEMENT_3D('',#10621,#10622,#10623);
--#10625=CYLINDRICAL_SURFACE('',#10624,5.625E-1);
--#10626=ORIENTED_EDGE('',*,*,#5824,.T.);
--#10628=ORIENTED_EDGE('',*,*,#10627,.T.);
--#10630=ORIENTED_EDGE('',*,*,#10629,.F.);
--#10631=ORIENTED_EDGE('',*,*,#10612,.F.);
--#10632=EDGE_LOOP('',(#10626,#10628,#10630,#10631));
--#10633=FACE_OUTER_BOUND('',#10632,.F.);
--#10634=ADVANCED_FACE('',(#10633),#10625,.F.);
--#10635=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
--#10636=DIRECTION('',(0.E0,0.E0,1.E0));
--#10637=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10638=AXIS2_PLACEMENT_3D('',#10635,#10636,#10637);
--#10639=PLANE('',#10638);
--#10640=ORIENTED_EDGE('',*,*,#5822,.T.);
--#10642=ORIENTED_EDGE('',*,*,#10641,.T.);
--#10644=ORIENTED_EDGE('',*,*,#10643,.F.);
--#10645=ORIENTED_EDGE('',*,*,#10627,.F.);
--#10646=EDGE_LOOP('',(#10640,#10642,#10644,#10645));
--#10647=FACE_OUTER_BOUND('',#10646,.F.);
--#10648=ADVANCED_FACE('',(#10647),#10639,.T.);
--#10649=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
--#10650=DIRECTION('',(0.E0,1.E0,0.E0));
--#10651=DIRECTION('',(1.E0,0.E0,0.E0));
--#10652=AXIS2_PLACEMENT_3D('',#10649,#10650,#10651);
--#10653=CYLINDRICAL_SURFACE('',#10652,5.625E-1);
--#10654=ORIENTED_EDGE('',*,*,#5820,.T.);
--#10655=ORIENTED_EDGE('',*,*,#10616,.T.);
--#10657=ORIENTED_EDGE('',*,*,#10656,.F.);
--#10658=ORIENTED_EDGE('',*,*,#10641,.F.);
--#10659=EDGE_LOOP('',(#10654,#10655,#10657,#10658));
--#10660=FACE_OUTER_BOUND('',#10659,.F.);
--#10661=ADVANCED_FACE('',(#10660),#10653,.F.);
--#10662=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
--#10663=DIRECTION('',(0.E0,1.E0,0.E0));
--#10664=DIRECTION('',(1.E0,0.E0,0.E0));
--#10665=AXIS2_PLACEMENT_3D('',#10662,#10663,#10664);
--#10666=PLANE('',#10665);
--#10667=ORIENTED_EDGE('',*,*,#10614,.T.);
--#10668=ORIENTED_EDGE('',*,*,#10629,.T.);
--#10669=ORIENTED_EDGE('',*,*,#10643,.T.);
--#10670=ORIENTED_EDGE('',*,*,#10656,.T.);
--#10671=EDGE_LOOP('',(#10667,#10668,#10669,#10670));
--#10672=FACE_OUTER_BOUND('',#10671,.F.);
--#10673=ADVANCED_FACE('',(#10672),#10666,.F.);
--#10674=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
--#10675=DIRECTION('',(0.E0,1.E0,0.E0));
--#10676=DIRECTION('',(1.E0,0.E0,0.E0));
--#10677=AXIS2_PLACEMENT_3D('',#10674,#10675,#10676);
--#10678=PLANE('',#10677);
--#10680=ORIENTED_EDGE('',*,*,#10679,.F.);
--#10682=ORIENTED_EDGE('',*,*,#10681,.T.);
--#10684=ORIENTED_EDGE('',*,*,#10683,.T.);
--#10686=ORIENTED_EDGE('',*,*,#10685,.T.);
--#10688=ORIENTED_EDGE('',*,*,#10687,.T.);
--#10689=EDGE_LOOP('',(#10680,#10682,#10684,#10686,#10688));
--#10690=FACE_OUTER_BOUND('',#10689,.F.);
--#10691=ADVANCED_FACE('',(#10690),#10678,.F.);
--#10692=CARTESIAN_POINT('',(1.455736763592E0,-6.642389448824E-2,
--2.742280476768E1));
--#10693=DIRECTION('',(0.E0,1.E0,0.E0));
--#10694=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
--#10695=AXIS2_PLACEMENT_3D('',#10692,#10693,#10694);
--#10696=CYLINDRICAL_SURFACE('',#10695,7.5E-1);
--#10698=ORIENTED_EDGE('',*,*,#10697,.F.);
--#10699=ORIENTED_EDGE('',*,*,#5932,.T.);
--#10701=ORIENTED_EDGE('',*,*,#10700,.T.);
--#10702=ORIENTED_EDGE('',*,*,#10679,.T.);
--#10703=EDGE_LOOP('',(#10698,#10699,#10701,#10702));
--#10704=FACE_OUTER_BOUND('',#10703,.F.);
--#10705=ADVANCED_FACE('',(#10704),#10696,.F.);
--#10706=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
--#10707=DIRECTION('',(0.E0,1.E0,0.E0));
--#10708=DIRECTION('',(1.E0,0.E0,0.E0));
--#10709=AXIS2_PLACEMENT_3D('',#10706,#10707,#10708);
--#10710=CYLINDRICAL_SURFACE('',#10709,9.225E-1);
--#10711=ORIENTED_EDGE('',*,*,#10697,.T.);
--#10712=ORIENTED_EDGE('',*,*,#10687,.F.);
--#10714=ORIENTED_EDGE('',*,*,#10713,.F.);
--#10715=ORIENTED_EDGE('',*,*,#5934,.T.);
--#10716=EDGE_LOOP('',(#10711,#10712,#10714,#10715));
--#10717=FACE_OUTER_BOUND('',#10716,.F.);
--#10718=ADVANCED_FACE('',(#10717),#10710,.F.);
--#10719=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
--#10720=DIRECTION('',(0.E0,1.E0,0.E0));
--#10721=DIRECTION('',(1.E0,0.E0,0.E0));
--#10722=AXIS2_PLACEMENT_3D('',#10719,#10720,#10721);
--#10723=CYLINDRICAL_SURFACE('',#10722,5.6875E0);
--#10724=ORIENTED_EDGE('',*,*,#5936,.F.);
--#10725=ORIENTED_EDGE('',*,*,#10713,.T.);
--#10726=ORIENTED_EDGE('',*,*,#10685,.F.);
--#10728=ORIENTED_EDGE('',*,*,#10727,.F.);
--#10729=EDGE_LOOP('',(#10724,#10725,#10726,#10728));
--#10730=FACE_OUTER_BOUND('',#10729,.F.);
--#10731=ADVANCED_FACE('',(#10730),#10723,.T.);
--#10732=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
--#10733=DIRECTION('',(0.E0,1.E0,0.E0));
--#10734=DIRECTION('',(1.E0,0.E0,0.E0));
--#10735=AXIS2_PLACEMENT_3D('',#10732,#10733,#10734);
--#10736=CYLINDRICAL_SURFACE('',#10735,8.669989027347E-1);
--#10737=ORIENTED_EDGE('',*,*,#5938,.T.);
--#10738=ORIENTED_EDGE('',*,*,#10727,.T.);
--#10739=ORIENTED_EDGE('',*,*,#10683,.F.);
--#10741=ORIENTED_EDGE('',*,*,#10740,.F.);
--#10742=EDGE_LOOP('',(#10737,#10738,#10739,#10741));
--#10743=FACE_OUTER_BOUND('',#10742,.F.);
--#10744=ADVANCED_FACE('',(#10743),#10736,.F.);
--#10745=CARTESIAN_POINT('',(6.875E-1,0.E0,2.771522817587E1));
--#10746=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
--#10747=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#10748=AXIS2_PLACEMENT_3D('',#10745,#10746,#10747);
--#10749=PLANE('',#10748);
--#10750=ORIENTED_EDGE('',*,*,#10700,.F.);
--#10751=ORIENTED_EDGE('',*,*,#5930,.T.);
--#10752=ORIENTED_EDGE('',*,*,#10740,.T.);
--#10753=ORIENTED_EDGE('',*,*,#10681,.F.);
--#10754=EDGE_LOOP('',(#10750,#10751,#10752,#10753));
--#10755=FACE_OUTER_BOUND('',#10754,.F.);
--#10756=ADVANCED_FACE('',(#10755),#10749,.T.);
--#10757=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
--#10758=DIRECTION('',(0.E0,0.E0,1.E0));
--#10759=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10760=AXIS2_PLACEMENT_3D('',#10757,#10758,#10759);
--#10761=PLANE('',#10760);
--#10762=ORIENTED_EDGE('',*,*,#5828,.T.);
--#10764=ORIENTED_EDGE('',*,*,#10763,.T.);
--#10766=ORIENTED_EDGE('',*,*,#10765,.F.);
--#10768=ORIENTED_EDGE('',*,*,#10767,.F.);
--#10769=EDGE_LOOP('',(#10762,#10764,#10766,#10768));
--#10770=FACE_OUTER_BOUND('',#10769,.F.);
--#10771=ADVANCED_FACE('',(#10770),#10761,.T.);
--#10772=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
--#10773=DIRECTION('',(0.E0,1.E0,0.E0));
--#10774=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10775=AXIS2_PLACEMENT_3D('',#10772,#10773,#10774);
--#10776=CYLINDRICAL_SURFACE('',#10775,5.625E-1);
--#10777=ORIENTED_EDGE('',*,*,#5834,.T.);
--#10779=ORIENTED_EDGE('',*,*,#10778,.T.);
--#10781=ORIENTED_EDGE('',*,*,#10780,.F.);
--#10782=ORIENTED_EDGE('',*,*,#10763,.F.);
--#10783=EDGE_LOOP('',(#10777,#10779,#10781,#10782));
--#10784=FACE_OUTER_BOUND('',#10783,.F.);
--#10785=ADVANCED_FACE('',(#10784),#10776,.F.);
--#10786=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
--#10787=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10788=DIRECTION('',(1.E0,0.E0,0.E0));
--#10789=AXIS2_PLACEMENT_3D('',#10786,#10787,#10788);
--#10790=PLANE('',#10789);
--#10791=ORIENTED_EDGE('',*,*,#5832,.T.);
--#10793=ORIENTED_EDGE('',*,*,#10792,.T.);
--#10795=ORIENTED_EDGE('',*,*,#10794,.F.);
--#10796=ORIENTED_EDGE('',*,*,#10778,.F.);
--#10797=EDGE_LOOP('',(#10791,#10793,#10795,#10796));
--#10798=FACE_OUTER_BOUND('',#10797,.F.);
--#10799=ADVANCED_FACE('',(#10798),#10790,.T.);
--#10800=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
--#10801=DIRECTION('',(0.E0,1.E0,0.E0));
--#10802=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10803=AXIS2_PLACEMENT_3D('',#10800,#10801,#10802);
--#10804=CYLINDRICAL_SURFACE('',#10803,5.625E-1);
--#10805=ORIENTED_EDGE('',*,*,#5830,.T.);
--#10806=ORIENTED_EDGE('',*,*,#10767,.T.);
--#10808=ORIENTED_EDGE('',*,*,#10807,.F.);
--#10809=ORIENTED_EDGE('',*,*,#10792,.F.);
--#10810=EDGE_LOOP('',(#10805,#10806,#10808,#10809));
--#10811=FACE_OUTER_BOUND('',#10810,.F.);
--#10812=ADVANCED_FACE('',(#10811),#10804,.F.);
--#10813=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#10814=DIRECTION('',(0.E0,1.E0,0.E0));
--#10815=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10816=AXIS2_PLACEMENT_3D('',#10813,#10814,#10815);
--#10817=PLANE('',#10816);
--#10818=ORIENTED_EDGE('',*,*,#10765,.T.);
--#10819=ORIENTED_EDGE('',*,*,#10780,.T.);
--#10820=ORIENTED_EDGE('',*,*,#10794,.T.);
--#10821=ORIENTED_EDGE('',*,*,#10807,.T.);
--#10822=EDGE_LOOP('',(#10818,#10819,#10820,#10821));
--#10823=FACE_OUTER_BOUND('',#10822,.F.);
--#10824=ADVANCED_FACE('',(#10823),#10817,.F.);
--#10825=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#10826=DIRECTION('',(0.E0,1.E0,0.E0));
--#10827=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10828=AXIS2_PLACEMENT_3D('',#10825,#10826,#10827);
--#10829=PLANE('',#10828);
--#10831=ORIENTED_EDGE('',*,*,#10830,.F.);
--#10833=ORIENTED_EDGE('',*,*,#10832,.T.);
--#10835=ORIENTED_EDGE('',*,*,#10834,.T.);
--#10837=ORIENTED_EDGE('',*,*,#10836,.T.);
--#10839=ORIENTED_EDGE('',*,*,#10838,.T.);
--#10840=EDGE_LOOP('',(#10831,#10833,#10835,#10837,#10839));
--#10841=FACE_OUTER_BOUND('',#10840,.F.);
--#10842=ADVANCED_FACE('',(#10841),#10829,.F.);
--#10843=CARTESIAN_POINT('',(2.254426323641E1,-6.642389448824E-2,
--4.577195232320E0));
--#10844=DIRECTION('',(0.E0,1.E0,0.E0));
--#10845=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
--#10846=AXIS2_PLACEMENT_3D('',#10843,#10844,#10845);
--#10847=CYLINDRICAL_SURFACE('',#10846,7.5E-1);
--#10849=ORIENTED_EDGE('',*,*,#10848,.F.);
--#10850=ORIENTED_EDGE('',*,*,#5920,.T.);
--#10852=ORIENTED_EDGE('',*,*,#10851,.T.);
--#10853=ORIENTED_EDGE('',*,*,#10830,.T.);
--#10854=EDGE_LOOP('',(#10849,#10850,#10852,#10853));
--#10855=FACE_OUTER_BOUND('',#10854,.F.);
--#10856=ADVANCED_FACE('',(#10855),#10847,.F.);
--#10857=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
--#10858=DIRECTION('',(0.E0,1.E0,0.E0));
--#10859=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10860=AXIS2_PLACEMENT_3D('',#10857,#10858,#10859);
--#10861=CYLINDRICAL_SURFACE('',#10860,9.225E-1);
--#10862=ORIENTED_EDGE('',*,*,#10848,.T.);
--#10863=ORIENTED_EDGE('',*,*,#10838,.F.);
--#10865=ORIENTED_EDGE('',*,*,#10864,.F.);
--#10866=ORIENTED_EDGE('',*,*,#5922,.T.);
--#10867=EDGE_LOOP('',(#10862,#10863,#10865,#10866));
--#10868=FACE_OUTER_BOUND('',#10867,.F.);
--#10869=ADVANCED_FACE('',(#10868),#10861,.F.);
--#10870=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
--#10871=DIRECTION('',(0.E0,1.E0,0.E0));
--#10872=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10873=AXIS2_PLACEMENT_3D('',#10870,#10871,#10872);
--#10874=CYLINDRICAL_SURFACE('',#10873,5.6875E0);
--#10875=ORIENTED_EDGE('',*,*,#5924,.F.);
--#10876=ORIENTED_EDGE('',*,*,#10864,.T.);
--#10877=ORIENTED_EDGE('',*,*,#10836,.F.);
--#10879=ORIENTED_EDGE('',*,*,#10878,.F.);
--#10880=EDGE_LOOP('',(#10875,#10876,#10877,#10879));
--#10881=FACE_OUTER_BOUND('',#10880,.F.);
--#10882=ADVANCED_FACE('',(#10881),#10874,.T.);
--#10883=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
--#10884=DIRECTION('',(0.E0,1.E0,0.E0));
--#10885=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10886=AXIS2_PLACEMENT_3D('',#10883,#10884,#10885);
--#10887=CYLINDRICAL_SURFACE('',#10886,8.669989027347E-1);
--#10888=ORIENTED_EDGE('',*,*,#5926,.T.);
--#10889=ORIENTED_EDGE('',*,*,#10878,.T.);
--#10890=ORIENTED_EDGE('',*,*,#10834,.F.);
--#10892=ORIENTED_EDGE('',*,*,#10891,.F.);
--#10893=EDGE_LOOP('',(#10888,#10889,#10890,#10892));
--#10894=FACE_OUTER_BOUND('',#10893,.F.);
--#10895=ADVANCED_FACE('',(#10894),#10887,.F.);
--#10896=CARTESIAN_POINT('',(2.33125E1,0.E0,4.284771824132E0));
--#10897=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#10898=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
--#10899=AXIS2_PLACEMENT_3D('',#10896,#10897,#10898);
--#10900=PLANE('',#10899);
--#10901=ORIENTED_EDGE('',*,*,#10851,.F.);
--#10902=ORIENTED_EDGE('',*,*,#5918,.T.);
--#10903=ORIENTED_EDGE('',*,*,#10891,.T.);
--#10904=ORIENTED_EDGE('',*,*,#10832,.F.);
--#10905=EDGE_LOOP('',(#10901,#10902,#10903,#10904));
--#10906=FACE_OUTER_BOUND('',#10905,.F.);
--#10907=ADVANCED_FACE('',(#10906),#10900,.T.);
--#10908=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
--#10909=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10910=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10911=AXIS2_PLACEMENT_3D('',#10908,#10909,#10910);
--#10912=PLANE('',#10911);
--#10913=ORIENTED_EDGE('',*,*,#5838,.T.);
--#10915=ORIENTED_EDGE('',*,*,#10914,.T.);
--#10917=ORIENTED_EDGE('',*,*,#10916,.F.);
--#10919=ORIENTED_EDGE('',*,*,#10918,.F.);
--#10920=EDGE_LOOP('',(#10913,#10915,#10917,#10919));
--#10921=FACE_OUTER_BOUND('',#10920,.F.);
--#10922=ADVANCED_FACE('',(#10921),#10912,.T.);
--#10923=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
--#10924=DIRECTION('',(0.E0,1.E0,0.E0));
--#10925=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10926=AXIS2_PLACEMENT_3D('',#10923,#10924,#10925);
--#10927=CYLINDRICAL_SURFACE('',#10926,5.625E-1);
--#10928=ORIENTED_EDGE('',*,*,#5844,.T.);
--#10930=ORIENTED_EDGE('',*,*,#10929,.T.);
--#10932=ORIENTED_EDGE('',*,*,#10931,.F.);
--#10933=ORIENTED_EDGE('',*,*,#10914,.F.);
--#10934=EDGE_LOOP('',(#10928,#10930,#10932,#10933));
--#10935=FACE_OUTER_BOUND('',#10934,.F.);
--#10936=ADVANCED_FACE('',(#10935),#10927,.F.);
--#10937=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
--#10938=DIRECTION('',(1.E0,0.E0,0.E0));
--#10939=DIRECTION('',(0.E0,0.E0,1.E0));
--#10940=AXIS2_PLACEMENT_3D('',#10937,#10938,#10939);
--#10941=PLANE('',#10940);
--#10942=ORIENTED_EDGE('',*,*,#5842,.T.);
--#10944=ORIENTED_EDGE('',*,*,#10943,.T.);
--#10946=ORIENTED_EDGE('',*,*,#10945,.F.);
--#10947=ORIENTED_EDGE('',*,*,#10929,.F.);
--#10948=EDGE_LOOP('',(#10942,#10944,#10946,#10947));
--#10949=FACE_OUTER_BOUND('',#10948,.F.);
--#10950=ADVANCED_FACE('',(#10949),#10941,.T.);
--#10951=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
--#10952=DIRECTION('',(0.E0,1.E0,0.E0));
--#10953=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10954=AXIS2_PLACEMENT_3D('',#10951,#10952,#10953);
--#10955=CYLINDRICAL_SURFACE('',#10954,5.625E-1);
--#10956=ORIENTED_EDGE('',*,*,#5840,.T.);
--#10957=ORIENTED_EDGE('',*,*,#10918,.T.);
--#10959=ORIENTED_EDGE('',*,*,#10958,.F.);
--#10960=ORIENTED_EDGE('',*,*,#10943,.F.);
--#10961=EDGE_LOOP('',(#10956,#10957,#10959,#10960));
--#10962=FACE_OUTER_BOUND('',#10961,.F.);
--#10963=ADVANCED_FACE('',(#10962),#10955,.F.);
--#10964=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#10965=DIRECTION('',(0.E0,1.E0,0.E0));
--#10966=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10967=AXIS2_PLACEMENT_3D('',#10964,#10965,#10966);
--#10968=PLANE('',#10967);
--#10969=ORIENTED_EDGE('',*,*,#10916,.T.);
--#10970=ORIENTED_EDGE('',*,*,#10931,.T.);
--#10971=ORIENTED_EDGE('',*,*,#10945,.T.);
--#10972=ORIENTED_EDGE('',*,*,#10958,.T.);
--#10973=EDGE_LOOP('',(#10969,#10970,#10971,#10972));
--#10974=FACE_OUTER_BOUND('',#10973,.F.);
--#10975=ADVANCED_FACE('',(#10974),#10968,.F.);
--#10976=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
--#10977=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10978=DIRECTION('',(0.E0,0.E0,-1.E0));
--#10979=AXIS2_PLACEMENT_3D('',#10976,#10977,#10978);
--#10980=PLANE('',#10979);
--#10981=ORIENTED_EDGE('',*,*,#5848,.T.);
--#10983=ORIENTED_EDGE('',*,*,#10982,.T.);
--#10985=ORIENTED_EDGE('',*,*,#10984,.F.);
--#10987=ORIENTED_EDGE('',*,*,#10986,.F.);
--#10988=EDGE_LOOP('',(#10981,#10983,#10985,#10987));
--#10989=FACE_OUTER_BOUND('',#10988,.F.);
--#10990=ADVANCED_FACE('',(#10989),#10980,.T.);
--#10991=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
--#10992=DIRECTION('',(0.E0,1.E0,0.E0));
--#10993=DIRECTION('',(-1.E0,0.E0,0.E0));
--#10994=AXIS2_PLACEMENT_3D('',#10991,#10992,#10993);
--#10995=CYLINDRICAL_SURFACE('',#10994,5.625E-1);
--#10996=ORIENTED_EDGE('',*,*,#5854,.T.);
--#10998=ORIENTED_EDGE('',*,*,#10997,.T.);
--#11000=ORIENTED_EDGE('',*,*,#10999,.F.);
--#11001=ORIENTED_EDGE('',*,*,#10982,.F.);
--#11002=EDGE_LOOP('',(#10996,#10998,#11000,#11001));
--#11003=FACE_OUTER_BOUND('',#11002,.F.);
--#11004=ADVANCED_FACE('',(#11003),#10995,.F.);
--#11005=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
--#11006=DIRECTION('',(1.E0,0.E0,0.E0));
--#11007=DIRECTION('',(0.E0,0.E0,1.E0));
--#11008=AXIS2_PLACEMENT_3D('',#11005,#11006,#11007);
--#11009=PLANE('',#11008);
--#11010=ORIENTED_EDGE('',*,*,#5852,.T.);
--#11012=ORIENTED_EDGE('',*,*,#11011,.T.);
--#11014=ORIENTED_EDGE('',*,*,#11013,.F.);
--#11015=ORIENTED_EDGE('',*,*,#10997,.F.);
--#11016=EDGE_LOOP('',(#11010,#11012,#11014,#11015));
--#11017=FACE_OUTER_BOUND('',#11016,.F.);
--#11018=ADVANCED_FACE('',(#11017),#11009,.T.);
--#11019=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
--#11020=DIRECTION('',(0.E0,1.E0,0.E0));
--#11021=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11022=AXIS2_PLACEMENT_3D('',#11019,#11020,#11021);
--#11023=CYLINDRICAL_SURFACE('',#11022,5.625E-1);
--#11024=ORIENTED_EDGE('',*,*,#5850,.T.);
--#11025=ORIENTED_EDGE('',*,*,#10986,.T.);
--#11027=ORIENTED_EDGE('',*,*,#11026,.F.);
--#11028=ORIENTED_EDGE('',*,*,#11011,.F.);
--#11029=EDGE_LOOP('',(#11024,#11025,#11027,#11028));
--#11030=FACE_OUTER_BOUND('',#11029,.F.);
--#11031=ADVANCED_FACE('',(#11030),#11023,.F.);
--#11032=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#11033=DIRECTION('',(0.E0,1.E0,0.E0));
--#11034=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11035=AXIS2_PLACEMENT_3D('',#11032,#11033,#11034);
--#11036=PLANE('',#11035);
--#11037=ORIENTED_EDGE('',*,*,#10984,.T.);
--#11038=ORIENTED_EDGE('',*,*,#10999,.T.);
--#11039=ORIENTED_EDGE('',*,*,#11013,.T.);
--#11040=ORIENTED_EDGE('',*,*,#11026,.T.);
--#11041=EDGE_LOOP('',(#11037,#11038,#11039,#11040));
--#11042=FACE_OUTER_BOUND('',#11041,.F.);
--#11043=ADVANCED_FACE('',(#11042),#11036,.F.);
--#11044=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
--#11045=DIRECTION('',(0.E0,0.E0,1.E0));
--#11046=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11047=AXIS2_PLACEMENT_3D('',#11044,#11045,#11046);
--#11048=PLANE('',#11047);
--#11049=ORIENTED_EDGE('',*,*,#5858,.T.);
--#11051=ORIENTED_EDGE('',*,*,#11050,.T.);
--#11053=ORIENTED_EDGE('',*,*,#11052,.F.);
--#11055=ORIENTED_EDGE('',*,*,#11054,.F.);
--#11056=EDGE_LOOP('',(#11049,#11051,#11053,#11055));
--#11057=FACE_OUTER_BOUND('',#11056,.F.);
--#11058=ADVANCED_FACE('',(#11057),#11048,.T.);
--#11059=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
--#11060=DIRECTION('',(0.E0,1.E0,0.E0));
--#11061=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11062=AXIS2_PLACEMENT_3D('',#11059,#11060,#11061);
--#11063=CYLINDRICAL_SURFACE('',#11062,5.E-1);
--#11064=ORIENTED_EDGE('',*,*,#5864,.T.);
--#11066=ORIENTED_EDGE('',*,*,#11065,.T.);
--#11068=ORIENTED_EDGE('',*,*,#11067,.F.);
--#11069=ORIENTED_EDGE('',*,*,#11050,.F.);
--#11070=EDGE_LOOP('',(#11064,#11066,#11068,#11069));
--#11071=FACE_OUTER_BOUND('',#11070,.F.);
--#11072=ADVANCED_FACE('',(#11071),#11063,.F.);
--#11073=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
--#11074=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11075=DIRECTION('',(1.E0,0.E0,0.E0));
--#11076=AXIS2_PLACEMENT_3D('',#11073,#11074,#11075);
--#11077=PLANE('',#11076);
--#11078=ORIENTED_EDGE('',*,*,#5862,.T.);
--#11080=ORIENTED_EDGE('',*,*,#11079,.T.);
--#11082=ORIENTED_EDGE('',*,*,#11081,.F.);
--#11083=ORIENTED_EDGE('',*,*,#11065,.F.);
--#11084=EDGE_LOOP('',(#11078,#11080,#11082,#11083));
--#11085=FACE_OUTER_BOUND('',#11084,.F.);
--#11086=ADVANCED_FACE('',(#11085),#11077,.T.);
--#11087=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
--#11088=DIRECTION('',(0.E0,1.E0,0.E0));
--#11089=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11090=AXIS2_PLACEMENT_3D('',#11087,#11088,#11089);
--#11091=CYLINDRICAL_SURFACE('',#11090,5.E-1);
--#11092=ORIENTED_EDGE('',*,*,#5860,.T.);
--#11093=ORIENTED_EDGE('',*,*,#11054,.T.);
--#11095=ORIENTED_EDGE('',*,*,#11094,.F.);
--#11096=ORIENTED_EDGE('',*,*,#11079,.F.);
--#11097=EDGE_LOOP('',(#11092,#11093,#11095,#11096));
--#11098=FACE_OUTER_BOUND('',#11097,.F.);
--#11099=ADVANCED_FACE('',(#11098),#11091,.F.);
--#11100=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#11101=DIRECTION('',(0.E0,1.E0,0.E0));
--#11102=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11103=AXIS2_PLACEMENT_3D('',#11100,#11101,#11102);
--#11104=PLANE('',#11103);
--#11105=ORIENTED_EDGE('',*,*,#11052,.T.);
--#11106=ORIENTED_EDGE('',*,*,#11067,.T.);
--#11107=ORIENTED_EDGE('',*,*,#11081,.T.);
--#11108=ORIENTED_EDGE('',*,*,#11094,.T.);
--#11109=EDGE_LOOP('',(#11105,#11106,#11107,#11108));
--#11110=FACE_OUTER_BOUND('',#11109,.F.);
--#11111=ADVANCED_FACE('',(#11110),#11104,.F.);
--#11112=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
--#11113=DIRECTION('',(0.E0,0.E0,1.E0));
--#11114=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11115=AXIS2_PLACEMENT_3D('',#11112,#11113,#11114);
--#11116=PLANE('',#11115);
--#11117=ORIENTED_EDGE('',*,*,#5868,.T.);
--#11119=ORIENTED_EDGE('',*,*,#11118,.T.);
--#11121=ORIENTED_EDGE('',*,*,#11120,.F.);
--#11123=ORIENTED_EDGE('',*,*,#11122,.F.);
--#11124=EDGE_LOOP('',(#11117,#11119,#11121,#11123));
--#11125=FACE_OUTER_BOUND('',#11124,.F.);
--#11126=ADVANCED_FACE('',(#11125),#11116,.T.);
--#11127=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
--#11128=DIRECTION('',(0.E0,1.E0,0.E0));
--#11129=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11130=AXIS2_PLACEMENT_3D('',#11127,#11128,#11129);
--#11131=CYLINDRICAL_SURFACE('',#11130,4.375E-1);
--#11132=ORIENTED_EDGE('',*,*,#5874,.T.);
--#11134=ORIENTED_EDGE('',*,*,#11133,.T.);
--#11136=ORIENTED_EDGE('',*,*,#11135,.F.);
--#11137=ORIENTED_EDGE('',*,*,#11118,.F.);
--#11138=EDGE_LOOP('',(#11132,#11134,#11136,#11137));
--#11139=FACE_OUTER_BOUND('',#11138,.F.);
--#11140=ADVANCED_FACE('',(#11139),#11131,.F.);
--#11141=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
--#11142=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11143=DIRECTION('',(1.E0,0.E0,0.E0));
--#11144=AXIS2_PLACEMENT_3D('',#11141,#11142,#11143);
--#11145=PLANE('',#11144);
--#11146=ORIENTED_EDGE('',*,*,#5872,.T.);
--#11148=ORIENTED_EDGE('',*,*,#11147,.T.);
--#11150=ORIENTED_EDGE('',*,*,#11149,.F.);
--#11151=ORIENTED_EDGE('',*,*,#11133,.F.);
--#11152=EDGE_LOOP('',(#11146,#11148,#11150,#11151));
--#11153=FACE_OUTER_BOUND('',#11152,.F.);
--#11154=ADVANCED_FACE('',(#11153),#11145,.T.);
--#11155=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
--#11156=DIRECTION('',(0.E0,1.E0,0.E0));
--#11157=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11158=AXIS2_PLACEMENT_3D('',#11155,#11156,#11157);
--#11159=CYLINDRICAL_SURFACE('',#11158,4.375E-1);
--#11160=ORIENTED_EDGE('',*,*,#5870,.T.);
--#11161=ORIENTED_EDGE('',*,*,#11122,.T.);
--#11163=ORIENTED_EDGE('',*,*,#11162,.F.);
--#11164=ORIENTED_EDGE('',*,*,#11147,.F.);
--#11165=EDGE_LOOP('',(#11160,#11161,#11163,#11164));
--#11166=FACE_OUTER_BOUND('',#11165,.F.);
--#11167=ADVANCED_FACE('',(#11166),#11159,.F.);
--#11168=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#11169=DIRECTION('',(0.E0,1.E0,0.E0));
--#11170=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11171=AXIS2_PLACEMENT_3D('',#11168,#11169,#11170);
--#11172=PLANE('',#11171);
--#11173=ORIENTED_EDGE('',*,*,#11120,.T.);
--#11174=ORIENTED_EDGE('',*,*,#11135,.T.);
--#11175=ORIENTED_EDGE('',*,*,#11149,.T.);
--#11176=ORIENTED_EDGE('',*,*,#11162,.T.);
--#11177=EDGE_LOOP('',(#11173,#11174,#11175,#11176));
--#11178=FACE_OUTER_BOUND('',#11177,.F.);
--#11179=ADVANCED_FACE('',(#11178),#11172,.F.);
--#11180=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
--#11181=DIRECTION('',(0.E0,0.E0,1.E0));
--#11182=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11183=AXIS2_PLACEMENT_3D('',#11180,#11181,#11182);
--#11184=PLANE('',#11183);
--#11185=ORIENTED_EDGE('',*,*,#5878,.F.);
--#11187=ORIENTED_EDGE('',*,*,#11186,.T.);
--#11189=ORIENTED_EDGE('',*,*,#11188,.T.);
--#11191=ORIENTED_EDGE('',*,*,#11190,.F.);
--#11192=EDGE_LOOP('',(#11185,#11187,#11189,#11191));
--#11193=FACE_OUTER_BOUND('',#11192,.F.);
--#11194=ADVANCED_FACE('',(#11193),#11184,.F.);
--#11195=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
--#11196=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11197=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11198=AXIS2_PLACEMENT_3D('',#11195,#11196,#11197);
--#11199=CYLINDRICAL_SURFACE('',#11198,5.625E-1);
--#11200=ORIENTED_EDGE('',*,*,#5884,.F.);
--#11202=ORIENTED_EDGE('',*,*,#11201,.T.);
--#11204=ORIENTED_EDGE('',*,*,#11203,.T.);
--#11205=ORIENTED_EDGE('',*,*,#11186,.F.);
--#11206=EDGE_LOOP('',(#11200,#11202,#11204,#11205));
--#11207=FACE_OUTER_BOUND('',#11206,.F.);
--#11208=ADVANCED_FACE('',(#11207),#11199,.F.);
--#11209=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
--#11210=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11211=DIRECTION('',(1.E0,0.E0,0.E0));
--#11212=AXIS2_PLACEMENT_3D('',#11209,#11210,#11211);
--#11213=PLANE('',#11212);
--#11214=ORIENTED_EDGE('',*,*,#5882,.F.);
--#11216=ORIENTED_EDGE('',*,*,#11215,.T.);
--#11218=ORIENTED_EDGE('',*,*,#11217,.T.);
--#11219=ORIENTED_EDGE('',*,*,#11201,.F.);
--#11220=EDGE_LOOP('',(#11214,#11216,#11218,#11219));
--#11221=FACE_OUTER_BOUND('',#11220,.F.);
--#11222=ADVANCED_FACE('',(#11221),#11213,.F.);
--#11223=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
--#11224=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11225=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11226=AXIS2_PLACEMENT_3D('',#11223,#11224,#11225);
--#11227=CYLINDRICAL_SURFACE('',#11226,5.625E-1);
--#11228=ORIENTED_EDGE('',*,*,#5880,.F.);
--#11229=ORIENTED_EDGE('',*,*,#11190,.T.);
--#11231=ORIENTED_EDGE('',*,*,#11230,.T.);
--#11232=ORIENTED_EDGE('',*,*,#11215,.F.);
--#11233=EDGE_LOOP('',(#11228,#11229,#11231,#11232));
--#11234=FACE_OUTER_BOUND('',#11233,.F.);
--#11235=ADVANCED_FACE('',(#11234),#11227,.F.);
--#11236=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
--#11237=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11238=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11239=AXIS2_PLACEMENT_3D('',#11236,#11237,#11238);
--#11240=PLANE('',#11239);
--#11241=ORIENTED_EDGE('',*,*,#11188,.F.);
--#11242=ORIENTED_EDGE('',*,*,#11203,.F.);
--#11243=ORIENTED_EDGE('',*,*,#11217,.F.);
--#11244=ORIENTED_EDGE('',*,*,#11230,.F.);
--#11245=EDGE_LOOP('',(#11241,#11242,#11243,#11244));
--#11246=FACE_OUTER_BOUND('',#11245,.F.);
--#11247=ADVANCED_FACE('',(#11246),#11240,.T.);
--#11248=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
--#11249=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11250=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11251=AXIS2_PLACEMENT_3D('',#11248,#11249,#11250);
--#11252=PLANE('',#11251);
--#11254=ORIENTED_EDGE('',*,*,#11253,.F.);
--#11256=ORIENTED_EDGE('',*,*,#11255,.F.);
--#11258=ORIENTED_EDGE('',*,*,#11257,.F.);
--#11260=ORIENTED_EDGE('',*,*,#11259,.F.);
--#11262=ORIENTED_EDGE('',*,*,#11261,.F.);
--#11263=EDGE_LOOP('',(#11254,#11256,#11258,#11260,#11262));
--#11264=FACE_OUTER_BOUND('',#11263,.F.);
--#11265=ADVANCED_FACE('',(#11264),#11252,.T.);
--#11266=CARTESIAN_POINT('',(2.254426323641E1,-6.892397422826E-2,
--2.742280476768E1));
--#11267=DIRECTION('',(0.E0,1.E0,0.E0));
--#11268=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#11269=AXIS2_PLACEMENT_3D('',#11266,#11267,#11268);
--#11270=CYLINDRICAL_SURFACE('',#11269,7.5E-1);
--#11272=ORIENTED_EDGE('',*,*,#11271,.F.);
--#11273=ORIENTED_EDGE('',*,*,#5944,.T.);
--#11275=ORIENTED_EDGE('',*,*,#11274,.T.);
--#11276=ORIENTED_EDGE('',*,*,#11253,.T.);
--#11277=EDGE_LOOP('',(#11272,#11273,#11275,#11276));
--#11278=FACE_OUTER_BOUND('',#11277,.F.);
--#11279=ADVANCED_FACE('',(#11278),#11270,.F.);
--#11280=CARTESIAN_POINT('',(2.33125E1,0.E0,2.771522817587E1));
--#11281=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
--#11282=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
--#11283=AXIS2_PLACEMENT_3D('',#11280,#11281,#11282);
--#11284=PLANE('',#11283);
--#11285=ORIENTED_EDGE('',*,*,#11271,.T.);
--#11286=ORIENTED_EDGE('',*,*,#11261,.T.);
--#11288=ORIENTED_EDGE('',*,*,#11287,.F.);
--#11289=ORIENTED_EDGE('',*,*,#5946,.F.);
--#11290=EDGE_LOOP('',(#11285,#11286,#11288,#11289));
--#11291=FACE_OUTER_BOUND('',#11290,.F.);
--#11292=ADVANCED_FACE('',(#11291),#11284,.F.);
--#11293=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
--#11294=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11295=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11296=AXIS2_PLACEMENT_3D('',#11293,#11294,#11295);
--#11297=CYLINDRICAL_SURFACE('',#11296,8.669989027347E-1);
--#11298=ORIENTED_EDGE('',*,*,#5948,.F.);
--#11299=ORIENTED_EDGE('',*,*,#11287,.T.);
--#11300=ORIENTED_EDGE('',*,*,#11259,.T.);
--#11302=ORIENTED_EDGE('',*,*,#11301,.F.);
--#11303=EDGE_LOOP('',(#11298,#11299,#11300,#11302));
--#11304=FACE_OUTER_BOUND('',#11303,.F.);
--#11305=ADVANCED_FACE('',(#11304),#11297,.F.);
--#11306=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
--#11307=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11308=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11309=AXIS2_PLACEMENT_3D('',#11306,#11307,#11308);
--#11310=CYLINDRICAL_SURFACE('',#11309,5.6875E0);
--#11311=ORIENTED_EDGE('',*,*,#5950,.T.);
--#11312=ORIENTED_EDGE('',*,*,#11301,.T.);
--#11313=ORIENTED_EDGE('',*,*,#11257,.T.);
--#11315=ORIENTED_EDGE('',*,*,#11314,.F.);
--#11316=EDGE_LOOP('',(#11311,#11312,#11313,#11315));
--#11317=FACE_OUTER_BOUND('',#11316,.F.);
--#11318=ADVANCED_FACE('',(#11317),#11310,.T.);
--#11319=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
--#11320=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11321=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11322=AXIS2_PLACEMENT_3D('',#11319,#11320,#11321);
--#11323=CYLINDRICAL_SURFACE('',#11322,9.225E-1);
--#11324=ORIENTED_EDGE('',*,*,#11274,.F.);
--#11325=ORIENTED_EDGE('',*,*,#5942,.F.);
--#11326=ORIENTED_EDGE('',*,*,#11314,.T.);
--#11327=ORIENTED_EDGE('',*,*,#11255,.T.);
--#11328=EDGE_LOOP('',(#11324,#11325,#11326,#11327));
--#11329=FACE_OUTER_BOUND('',#11328,.F.);
--#11330=ADVANCED_FACE('',(#11329),#11323,.F.);
--#11331=CARTESIAN_POINT('',(2.13075E1,-6.892397422826E-2,7.81E0));
--#11332=DIRECTION('',(0.E0,1.E0,0.E0));
--#11333=DIRECTION('',(0.E0,0.E0,1.E0));
--#11334=AXIS2_PLACEMENT_3D('',#11331,#11332,#11333);
--#11335=CYLINDRICAL_SURFACE('',#11334,8.8E-1);
--#11337=ORIENTED_EDGE('',*,*,#11336,.T.);
--#11339=ORIENTED_EDGE('',*,*,#11338,.T.);
--#11341=ORIENTED_EDGE('',*,*,#11340,.F.);
--#11342=ORIENTED_EDGE('',*,*,#5888,.T.);
--#11343=EDGE_LOOP('',(#11337,#11339,#11341,#11342));
--#11344=FACE_OUTER_BOUND('',#11343,.F.);
--#11345=ADVANCED_FACE('',(#11344),#11335,.T.);
--#11346=CARTESIAN_POINT('',(2.21875E1,0.E0,8.69E0));
--#11347=DIRECTION('',(0.E0,0.E0,1.E0));
--#11348=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11349=AXIS2_PLACEMENT_3D('',#11346,#11347,#11348);
--#11350=PLANE('',#11349);
--#11351=ORIENTED_EDGE('',*,*,#11336,.F.);
--#11352=ORIENTED_EDGE('',*,*,#5914,.T.);
--#11354=ORIENTED_EDGE('',*,*,#11353,.F.);
--#11356=ORIENTED_EDGE('',*,*,#11355,.F.);
--#11357=EDGE_LOOP('',(#11351,#11352,#11354,#11356));
--#11358=FACE_OUTER_BOUND('',#11357,.F.);
--#11359=ADVANCED_FACE('',(#11358),#11350,.T.);
--#11360=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,9.57E0));
--#11361=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11362=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11363=AXIS2_PLACEMENT_3D('',#11360,#11361,#11362);
--#11364=CYLINDRICAL_SURFACE('',#11363,8.8E-1);
--#11366=ORIENTED_EDGE('',*,*,#11365,.F.);
--#11368=ORIENTED_EDGE('',*,*,#11367,.T.);
--#11369=ORIENTED_EDGE('',*,*,#11353,.T.);
--#11370=ORIENTED_EDGE('',*,*,#5912,.T.);
--#11371=EDGE_LOOP('',(#11366,#11368,#11369,#11370));
--#11372=FACE_OUTER_BOUND('',#11371,.F.);
--#11373=ADVANCED_FACE('',(#11372),#11364,.F.);
--#11374=CARTESIAN_POINT('',(1.96875E1,0.E0,8.69E0));
--#11375=DIRECTION('',(1.E0,0.E0,0.E0));
--#11376=DIRECTION('',(0.E0,0.E0,1.E0));
--#11377=AXIS2_PLACEMENT_3D('',#11374,#11375,#11376);
--#11378=PLANE('',#11377);
--#11379=ORIENTED_EDGE('',*,*,#11365,.T.);
--#11380=ORIENTED_EDGE('',*,*,#5910,.T.);
--#11382=ORIENTED_EDGE('',*,*,#11381,.F.);
--#11384=ORIENTED_EDGE('',*,*,#11383,.F.);
--#11385=EDGE_LOOP('',(#11379,#11380,#11382,#11384));
--#11386=FACE_OUTER_BOUND('',#11385,.F.);
--#11387=ADVANCED_FACE('',(#11386),#11378,.T.);
--#11388=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,1.037E1));
--#11389=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11390=DIRECTION('',(0.E0,0.E0,1.E0));
--#11391=AXIS2_PLACEMENT_3D('',#11388,#11389,#11390);
--#11392=CYLINDRICAL_SURFACE('',#11391,8.8E-1);
--#11394=ORIENTED_EDGE('',*,*,#11393,.F.);
--#11396=ORIENTED_EDGE('',*,*,#11395,.T.);
--#11397=ORIENTED_EDGE('',*,*,#11381,.T.);
--#11398=ORIENTED_EDGE('',*,*,#5908,.T.);
--#11399=EDGE_LOOP('',(#11394,#11396,#11397,#11398));
--#11400=FACE_OUTER_BOUND('',#11399,.F.);
--#11401=ADVANCED_FACE('',(#11400),#11392,.F.);
--#11402=CARTESIAN_POINT('',(1.96875E1,0.E0,1.125E1));
--#11403=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11404=DIRECTION('',(1.E0,0.E0,0.E0));
--#11405=AXIS2_PLACEMENT_3D('',#11402,#11403,#11404);
--#11406=PLANE('',#11405);
--#11407=ORIENTED_EDGE('',*,*,#11393,.T.);
--#11408=ORIENTED_EDGE('',*,*,#5906,.T.);
--#11410=ORIENTED_EDGE('',*,*,#11409,.F.);
--#11412=ORIENTED_EDGE('',*,*,#11411,.F.);
--#11413=EDGE_LOOP('',(#11407,#11408,#11410,#11412));
--#11414=FACE_OUTER_BOUND('',#11413,.F.);
--#11415=ADVANCED_FACE('',(#11414),#11406,.T.);
--#11416=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,1.037E1));
--#11417=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11418=DIRECTION('',(1.E0,0.E0,0.E0));
--#11419=AXIS2_PLACEMENT_3D('',#11416,#11417,#11418);
--#11420=CYLINDRICAL_SURFACE('',#11419,8.8E-1);
--#11422=ORIENTED_EDGE('',*,*,#11421,.F.);
--#11424=ORIENTED_EDGE('',*,*,#11423,.T.);
--#11425=ORIENTED_EDGE('',*,*,#11409,.T.);
--#11426=ORIENTED_EDGE('',*,*,#5904,.T.);
--#11427=EDGE_LOOP('',(#11422,#11424,#11425,#11426));
--#11428=FACE_OUTER_BOUND('',#11427,.F.);
--#11429=ADVANCED_FACE('',(#11428),#11420,.F.);
--#11430=CARTESIAN_POINT('',(2.53125E1,0.E0,1.125E1));
--#11431=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11432=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11433=AXIS2_PLACEMENT_3D('',#11430,#11431,#11432);
--#11434=PLANE('',#11433);
--#11436=ORIENTED_EDGE('',*,*,#11435,.F.);
--#11438=ORIENTED_EDGE('',*,*,#11437,.F.);
--#11439=ORIENTED_EDGE('',*,*,#11421,.T.);
--#11440=ORIENTED_EDGE('',*,*,#5902,.T.);
--#11441=EDGE_LOOP('',(#11436,#11438,#11439,#11440));
--#11442=FACE_OUTER_BOUND('',#11441,.F.);
--#11443=ADVANCED_FACE('',(#11442),#11434,.T.);
--#11444=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,9.57E0));
--#11445=DIRECTION('',(0.E0,-1.E0,0.E0));
--#11446=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11447=AXIS2_PLACEMENT_3D('',#11444,#11445,#11446);
--#11448=CYLINDRICAL_SURFACE('',#11447,8.8E-1);
--#11450=ORIENTED_EDGE('',*,*,#11449,.F.);
--#11452=ORIENTED_EDGE('',*,*,#11451,.T.);
--#11453=ORIENTED_EDGE('',*,*,#11435,.T.);
--#11454=ORIENTED_EDGE('',*,*,#5900,.T.);
--#11455=EDGE_LOOP('',(#11450,#11452,#11453,#11454));
--#11456=FACE_OUTER_BOUND('',#11455,.F.);
--#11457=ADVANCED_FACE('',(#11456),#11448,.F.);
--#11458=CARTESIAN_POINT('',(2.53125E1,0.E0,8.69E0));
--#11459=DIRECTION('',(0.E0,0.E0,1.E0));
--#11460=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11461=AXIS2_PLACEMENT_3D('',#11458,#11459,#11460);
--#11462=PLANE('',#11461);
--#11464=ORIENTED_EDGE('',*,*,#11463,.T.);
--#11466=ORIENTED_EDGE('',*,*,#11465,.F.);
--#11467=ORIENTED_EDGE('',*,*,#11449,.T.);
--#11468=ORIENTED_EDGE('',*,*,#5898,.T.);
--#11469=EDGE_LOOP('',(#11464,#11466,#11467,#11468));
--#11470=FACE_OUTER_BOUND('',#11469,.F.);
--#11471=ADVANCED_FACE('',(#11470),#11462,.T.);
--#11472=CARTESIAN_POINT('',(2.419E1,-6.892397422826E-2,7.81E0));
--#11473=DIRECTION('',(0.E0,1.E0,0.E0));
--#11474=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11475=AXIS2_PLACEMENT_3D('',#11472,#11473,#11474);
--#11476=CYLINDRICAL_SURFACE('',#11475,8.8E-1);
--#11478=ORIENTED_EDGE('',*,*,#11477,.T.);
--#11480=ORIENTED_EDGE('',*,*,#11479,.T.);
--#11481=ORIENTED_EDGE('',*,*,#11463,.F.);
--#11482=ORIENTED_EDGE('',*,*,#5896,.T.);
--#11483=EDGE_LOOP('',(#11478,#11480,#11481,#11482));
--#11484=FACE_OUTER_BOUND('',#11483,.F.);
--#11485=ADVANCED_FACE('',(#11484),#11476,.T.);
--#11486=CARTESIAN_POINT('',(2.331E1,0.E0,8.69E0));
--#11487=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11488=DIRECTION('',(0.E0,0.E0,-1.E0));
--#11489=AXIS2_PLACEMENT_3D('',#11486,#11487,#11488);
--#11490=PLANE('',#11489);
--#11491=ORIENTED_EDGE('',*,*,#11477,.F.);
--#11492=ORIENTED_EDGE('',*,*,#5894,.T.);
--#11494=ORIENTED_EDGE('',*,*,#11493,.T.);
--#11496=ORIENTED_EDGE('',*,*,#11495,.F.);
--#11497=EDGE_LOOP('',(#11491,#11492,#11494,#11496));
--#11498=FACE_OUTER_BOUND('',#11497,.F.);
--#11499=ADVANCED_FACE('',(#11498),#11490,.T.);
--#11500=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
--#11501=DIRECTION('',(0.E0,1.E0,0.E0));
--#11502=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11503=AXIS2_PLACEMENT_3D('',#11500,#11501,#11502);
--#11504=CYLINDRICAL_SURFACE('',#11503,5.6125E-1);
--#11505=ORIENTED_EDGE('',*,*,#5892,.T.);
--#11507=ORIENTED_EDGE('',*,*,#11506,.T.);
--#11509=ORIENTED_EDGE('',*,*,#11508,.F.);
--#11510=ORIENTED_EDGE('',*,*,#11493,.F.);
--#11511=EDGE_LOOP('',(#11505,#11507,#11509,#11510));
--#11512=FACE_OUTER_BOUND('',#11511,.F.);
--#11513=ADVANCED_FACE('',(#11512),#11504,.F.);
--#11514=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
--#11515=DIRECTION('',(1.E0,0.E0,0.E0));
--#11516=DIRECTION('',(0.E0,0.E0,1.E0));
--#11517=AXIS2_PLACEMENT_3D('',#11514,#11515,#11516);
--#11518=PLANE('',#11517);
--#11519=ORIENTED_EDGE('',*,*,#11340,.T.);
--#11521=ORIENTED_EDGE('',*,*,#11520,.F.);
--#11522=ORIENTED_EDGE('',*,*,#11506,.F.);
--#11523=ORIENTED_EDGE('',*,*,#5890,.T.);
--#11524=EDGE_LOOP('',(#11519,#11521,#11522,#11523));
--#11525=FACE_OUTER_BOUND('',#11524,.F.);
--#11526=ADVANCED_FACE('',(#11525),#11518,.T.);
--#11527=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
--#11528=DIRECTION('',(0.E0,1.E0,0.E0));
--#11529=DIRECTION('',(-1.E0,0.E0,0.E0));
--#11530=AXIS2_PLACEMENT_3D('',#11527,#11528,#11529);
--#11531=PLANE('',#11530);
--#11532=ORIENTED_EDGE('',*,*,#11465,.T.);
--#11533=ORIENTED_EDGE('',*,*,#11479,.F.);
--#11534=ORIENTED_EDGE('',*,*,#11495,.T.);
--#11535=ORIENTED_EDGE('',*,*,#11508,.T.);
--#11536=ORIENTED_EDGE('',*,*,#11520,.T.);
--#11537=ORIENTED_EDGE('',*,*,#11338,.F.);
--#11538=ORIENTED_EDGE('',*,*,#11355,.T.);
--#11539=ORIENTED_EDGE('',*,*,#11367,.F.);
--#11540=ORIENTED_EDGE('',*,*,#11383,.T.);
--#11541=ORIENTED_EDGE('',*,*,#11395,.F.);
--#11542=ORIENTED_EDGE('',*,*,#11411,.T.);
--#11543=ORIENTED_EDGE('',*,*,#11423,.F.);
--#11544=ORIENTED_EDGE('',*,*,#11437,.T.);
--#11545=ORIENTED_EDGE('',*,*,#11451,.F.);
--#11546=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536,#11537,#11538,#11539,
--#11540,#11541,#11542,#11543,#11544,#11545));
--#11547=FACE_OUTER_BOUND('',#11546,.F.);
--#11548=ADVANCED_FACE('',(#11547),#11531,.F.);
--#11549=CLOSED_SHELL('',(#5954,#6079,#6094,#6107,#6117,#6132,#6145,#6201,#6214,
--#6278,#6488,#6503,#6516,#6529,#6540,#6555,#6568,#6581,#6592,#6605,#6618,#6631,
--#6644,#6656,#6669,#6683,#6696,#6709,#6723,#6736,#6749,#6763,#6776,#6789,#6802,
--#6815,#6828,#6842,#6855,#6868,#6880,#6893,#6906,#6918,#6931,#6945,#6958,#6971,
--#6984,#6998,#7011,#7024,#7036,#7048,#7061,#7074,#7086,#7099,#7114,#7127,#7152,
--#7166,#7178,#7191,#7204,#7217,#7230,#7244,#7256,#7311,#7325,#7337,#7349,#7368,
--#7379,#7394,#7407,#7423,#7437,#7449,#7465,#7477,#7490,#7514,#7529,#7542,#7552,
--#7567,#7580,#7590,#7605,#7619,#7649,#7662,#7675,#7688,#7701,#7714,#7727,#7740,
--#7753,#7766,#7778,#7790,#7805,#7818,#7828,#7843,#7856,#7866,#7881,#7894,#7907,
--#7918,#7933,#7946,#7959,#7970,#7985,#7998,#8014,#8028,#8040,#8055,#8068,#8084,
--#8098,#8110,#8125,#8138,#8154,#8168,#8180,#8195,#8208,#8224,#8238,#8250,#8265,
--#8278,#8294,#8308,#8320,#8335,#8348,#8364,#8378,#8390,#8405,#8418,#8434,#8448,
--#8460,#8475,#8488,#8504,#8518,#8530,#8545,#8558,#8574,#8588,#8600,#8615,#8628,
--#8644,#8658,#8670,#8685,#8698,#8714,#8728,#8740,#8755,#8768,#8784,#8798,#8810,
--#8825,#8838,#8854,#8868,#8880,#8895,#8908,#8924,#8938,#8950,#8965,#8978,#8994,
--#9008,#9020,#9035,#9048,#9064,#9078,#9090,#9105,#9118,#9134,#9148,#9160,#9175,
--#9188,#9204,#9218,#9230,#9242,#9260,#9275,#9288,#9304,#9318,#9330,#9345,#9359,
--#9373,#9387,#9401,#9415,#9429,#9443,#9457,#9471,#9485,#9498,#9518,#9533,#9546,
--#9556,#9571,#9584,#9594,#9609,#9622,#9632,#9647,#9660,#9670,#9685,#9698,#9708,
--#9723,#9737,#9751,#9765,#9779,#9793,#9807,#9820,#9836,#9851,#9865,#9887,#9901,
--#9913,#9926,#9939,#9952,#9964,#9979,#9993,#10007,#10020,#10032,#10050,#10064,
--#10077,#10090,#10103,#10115,#10130,#10144,#10178,#10192,#10205,#10218,#10230,
--#10243,#10256,#10269,#10282,#10295,#10308,#10321,#10333,#10348,#10362,#10376,
--#10389,#10401,#10416,#10430,#10444,#10457,#10469,#10484,#10498,#10512,#10525,
--#10537,#10552,#10566,#10580,#10593,#10605,#10620,#10634,#10648,#10661,#10673,
--#10691,#10705,#10718,#10731,#10744,#10756,#10771,#10785,#10799,#10812,#10824,
--#10842,#10856,#10869,#10882,#10895,#10907,#10922,#10936,#10950,#10963,#10975,
--#10990,#11004,#11018,#11031,#11043,#11058,#11072,#11086,#11099,#11111,#11126,
--#11140,#11154,#11167,#11179,#11194,#11208,#11222,#11235,#11247,#11265,#11279,
--#11292,#11305,#11318,#11330,#11345,#11359,#11373,#11387,#11401,#11415,#11429,
--#11443,#11457,#11471,#11485,#11499,#11513,#11526,#11548));
--#11550=MANIFOLD_SOLID_BREP('',#11549);
--#11551=DIMENSIONAL_EXPONENTS(1.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
--#11552=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
--#11553=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.54E1),#11552);
--#11554=(CONVERSION_BASED_UNIT('INCH',#11553)LENGTH_UNIT()NAMED_UNIT(#11551));
--#11555=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
--#11556=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
--#11557=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),
--#11556);
--#11558=(CONVERSION_BASED_UNIT('DEGREE',#11557)NAMED_UNIT(#11555)PLANE_ANGLE_UNIT());
--#11559=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
--#11560=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(4.404650704771E-3),#11554,
--'closure',
--'Maximum model space distance between geometric entities at asserted connectivities');
--#11561=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((
--#11560))GLOBAL_UNIT_ASSIGNED_CONTEXT((#11554,#11558,#11559))REPRESENTATION_CONTEXT('ID1','3'));
--#11563=APPLICATION_CONTEXT(
--'CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES');
--#11564=APPLICATION_PROTOCOL_DEFINITION('international standard',
--'config_control_design',1994,#11563);
--#11565=DESIGN_CONTEXT('',#11563,'design');
--#11566=MECHANICAL_CONTEXT('',#11563,'mechanical');
--#11567=PRODUCT('PROESOURCE','PROESOURCE','NOT SPECIFIED',(#11566));
--#11568=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',
--#11567,.MADE.);
--#11572=PRODUCT_CATEGORY('part','');
--#11573=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#11567));
--#11574=PRODUCT_CATEGORY_RELATIONSHIP('','',#11572,#11573);
--#11575=SECURITY_CLASSIFICATION_LEVEL('unclassified');
--#11576=SECURITY_CLASSIFICATION('','',#11575);
--#11577=CC_DESIGN_SECURITY_CLASSIFICATION(#11576,(#11568));
--#11578=APPROVAL_STATUS('approved');
--#11579=APPROVAL(#11578,'');
--#11580=CC_DESIGN_APPROVAL(#11579,(#11576,#11568,#11569));
--#11581=CALENDAR_DATE(102,4,11);
--#11582=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);
--#11583=LOCAL_TIME(14,0,4.8E1,#11582);
--#11584=DATE_AND_TIME(#11581,#11583);
--#11585=APPROVAL_DATE_TIME(#11584,#11579);
--#11586=DATE_TIME_ROLE('creation_date');
--#11587=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11586,(#11569));
--#11588=DATE_TIME_ROLE('classification_date');
--#11589=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11588,(#11576));
--#11590=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$);
--#11591=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED');
--#11592=PERSON_AND_ORGANIZATION(#11590,#11591);
--#11593=APPROVAL_ROLE('approver');
--#11594=APPROVAL_PERSON_ORGANIZATION(#11592,#11579,#11593);
--#11595=PERSON_AND_ORGANIZATION_ROLE('creator');
--#11596=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11595,(#11568,
--#11569));
--#11597=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
--#11598=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11597,(#11568));
--#11599=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
--#11600=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11599,(#11576));
--#11601=PERSON_AND_ORGANIZATION_ROLE('design_owner');
--#11602=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11601,(#11567));
--#13=CIRCLE('',#12,1.925E-1);
--#18=CIRCLE('',#17,1.925E-1);
--#23=CIRCLE('',#22,1.925E-1);
--#28=CIRCLE('',#27,1.925E-1);
--#33=CIRCLE('',#32,1.925E-1);
--#38=CIRCLE('',#37,1.925E-1);
--#43=CIRCLE('',#42,1.925E-1);
--#48=CIRCLE('',#47,1.925E-1);
--#53=CIRCLE('',#52,1.925E-1);
--#58=CIRCLE('',#57,1.925E-1);
--#63=CIRCLE('',#62,1.925E-1);
--#68=CIRCLE('',#67,1.925E-1);
--#73=CIRCLE('',#72,1.925E-1);
--#78=CIRCLE('',#77,1.925E-1);
--#83=CIRCLE('',#82,1.925E-1);
--#88=CIRCLE('',#87,1.925E-1);
--#93=CIRCLE('',#92,1.925E-1);
--#98=CIRCLE('',#97,1.925E-1);
--#103=CIRCLE('',#102,1.925E-1);
--#108=CIRCLE('',#107,1.925E-1);
--#113=CIRCLE('',#112,1.925E-1);
--#118=CIRCLE('',#117,1.925E-1);
--#123=CIRCLE('',#122,1.925E-1);
--#128=CIRCLE('',#127,1.925E-1);
--#181=CIRCLE('',#180,1.925E-1);
--#186=CIRCLE('',#185,1.925E-1);
--#191=CIRCLE('',#190,1.925E-1);
--#196=CIRCLE('',#195,1.925E-1);
--#249=CIRCLE('',#248,1.925E-1);
--#254=CIRCLE('',#253,1.925E-1);
--#259=CIRCLE('',#258,1.925E-1);
--#264=CIRCLE('',#263,1.925E-1);
--#269=CIRCLE('',#268,1.925E-1);
--#274=CIRCLE('',#273,1.925E-1);
--#279=CIRCLE('',#278,1.925E-1);
--#284=CIRCLE('',#283,1.925E-1);
--#289=CIRCLE('',#288,1.925E-1);
--#294=CIRCLE('',#293,1.925E-1);
--#299=CIRCLE('',#298,1.925E-1);
--#304=CIRCLE('',#303,1.925E-1);
--#313=CIRCLE('',#312,5.625E-1);
--#322=CIRCLE('',#321,5.625E-1);
--#327=CIRCLE('',#326,9.225E-1);
--#336=CIRCLE('',#335,8.669989027347E-1);
--#341=CIRCLE('',#340,5.6875E0);
--#350=CIRCLE('',#349,5.6125E-1);
--#383=CIRCLE('',#382,5.625E-1);
--#392=CIRCLE('',#391,5.625E-1);
--#401=CIRCLE('',#400,5.625E-1);
--#410=CIRCLE('',#409,5.625E-1);
--#419=CIRCLE('',#418,5.E-1);
--#428=CIRCLE('',#427,5.E-1);
--#437=CIRCLE('',#436,4.375E-1);
--#446=CIRCLE('',#445,4.375E-1);
--#455=CIRCLE('',#454,5.625E-1);
--#464=CIRCLE('',#463,5.625E-1);
--#473=CIRCLE('',#472,5.625E-1);
--#482=CIRCLE('',#481,5.625E-1);
--#491=CIRCLE('',#490,5.625E-1);
--#500=CIRCLE('',#499,5.625E-1);
--#509=CIRCLE('',#508,5.625E-1);
--#518=CIRCLE('',#517,5.625E-1);
--#527=CIRCLE('',#526,5.E-1);
--#536=CIRCLE('',#535,5.E-1);
--#545=CIRCLE('',#544,4.375E-1);
--#554=CIRCLE('',#553,4.375E-1);
--#563=CIRCLE('',#562,5.625E-1);
--#572=CIRCLE('',#571,5.625E-1);
--#581=CIRCLE('',#580,5.6125E-1);
--#614=CIRCLE('',#613,9.225E-1);
--#619=CIRCLE('',#618,5.6875E0);
--#624=CIRCLE('',#623,8.669989027347E-1);
--#633=CIRCLE('',#632,9.225E-1);
--#638=CIRCLE('',#637,5.6875E0);
--#643=CIRCLE('',#642,8.669989027347E-1);
--#648=CIRCLE('',#647,9.225E-1);
--#657=CIRCLE('',#656,8.669989027347E-1);
--#662=CIRCLE('',#661,5.6875E0);
--#667=CIRCLE('',#666,9.5E-2);
--#672=CIRCLE('',#671,9.5E-2);
--#677=CIRCLE('',#676,1.625E-1);
--#682=CIRCLE('',#681,1.625E-1);
--#687=CIRCLE('',#686,9.5E-2);
--#692=CIRCLE('',#691,9.5E-2);
--#697=CIRCLE('',#696,9.5E-2);
--#702=CIRCLE('',#701,9.5E-2);
--#707=CIRCLE('',#706,9.5E-2);
--#712=CIRCLE('',#711,9.5E-2);
--#717=CIRCLE('',#716,9.5E-2);
--#722=CIRCLE('',#721,9.5E-2);
--#727=CIRCLE('',#726,1.625E-1);
--#732=CIRCLE('',#731,1.625E-1);
--#737=CIRCLE('',#736,9.5E-2);
--#742=CIRCLE('',#741,9.5E-2);
--#803=CIRCLE('',#802,9.5E-2);
--#808=CIRCLE('',#807,9.5E-2);
--#821=CIRCLE('',#820,1.625E-1);
--#826=CIRCLE('',#825,1.625E-1);
--#887=CIRCLE('',#886,1.E-1);
--#892=CIRCLE('',#891,1.E-1);
--#897=CIRCLE('',#896,1.E-1);
--#902=CIRCLE('',#901,1.E-1);
--#931=CIRCLE('',#930,1.E-1);
--#936=CIRCLE('',#935,1.E-1);
--#941=CIRCLE('',#940,1.E-1);
--#946=CIRCLE('',#945,1.E-1);
--#951=CIRCLE('',#950,2.575E-1);
--#956=CIRCLE('',#955,2.575E-1);
--#961=CIRCLE('',#960,2.575E-1);
--#966=CIRCLE('',#965,2.575E-1);
--#971=CIRCLE('',#970,2.575E-1);
--#976=CIRCLE('',#975,2.575E-1);
--#981=CIRCLE('',#980,2.575E-1);
--#986=CIRCLE('',#985,2.575E-1);
--#991=CIRCLE('',#990,2.575E-1);
--#996=CIRCLE('',#995,2.575E-1);
--#1001=CIRCLE('',#1000,2.575E-1);
--#1006=CIRCLE('',#1005,2.575E-1);
--#1011=CIRCLE('',#1010,2.56E-1);
--#1016=CIRCLE('',#1015,2.56E-1);
--#1021=CIRCLE('',#1020,2.56E-1);
--#1026=CIRCLE('',#1025,2.56E-1);
--#1031=CIRCLE('',#1030,2.56E-1);
--#1036=CIRCLE('',#1035,2.56E-1);
--#1041=CIRCLE('',#1040,2.56E-1);
--#1046=CIRCLE('',#1045,2.56E-1);
--#1051=CIRCLE('',#1050,2.56E-1);
--#1056=CIRCLE('',#1055,2.56E-1);
--#1061=CIRCLE('',#1060,2.56E-1);
--#1066=CIRCLE('',#1065,2.56E-1);
--#1115=CIRCLE('',#1114,2.575E-1);
--#1120=CIRCLE('',#1119,2.575E-1);
--#1125=CIRCLE('',#1124,2.575E-1);
--#1130=CIRCLE('',#1129,2.575E-1);
--#1135=CIRCLE('',#1134,2.575E-1);
--#1140=CIRCLE('',#1139,2.575E-1);
--#1145=CIRCLE('',#1144,2.575E-1);
--#1150=CIRCLE('',#1149,2.575E-1);
--#1155=CIRCLE('',#1154,2.575E-1);
--#1160=CIRCLE('',#1159,2.575E-1);
--#1165=CIRCLE('',#1164,2.575E-1);
--#1170=CIRCLE('',#1169,2.575E-1);
--#1259=CIRCLE('',#1258,1.E-1);
--#1268=CIRCLE('',#1267,1.E-1);
--#1285=CIRCLE('',#1284,1.E-1);
--#1294=CIRCLE('',#1293,1.E-1);
--#1303=CIRCLE('',#1302,1.E0);
--#1312=CIRCLE('',#1311,1.E0);
--#1317=CIRCLE('',#1316,5.E0);
--#1326=CIRCLE('',#1325,5.E0);
--#1331=CIRCLE('',#1330,5.E0);
--#1340=CIRCLE('',#1339,5.E0);
--#1349=CIRCLE('',#1348,1.E0);
--#1358=CIRCLE('',#1357,1.E0);
--#1367=CIRCLE('',#1366,1.E0);
--#1376=CIRCLE('',#1375,1.E0);
--#1385=CIRCLE('',#1384,1.E0);
--#1394=CIRCLE('',#1393,1.E0);
--#1403=CIRCLE('',#1402,1.E0);
--#1412=CIRCLE('',#1411,1.E0);
--#1421=CIRCLE('',#1420,3.E0);
--#1430=CIRCLE('',#1429,3.E0);
--#1439=CIRCLE('',#1438,3.E0);
--#1448=CIRCLE('',#1447,3.E0);
--#1457=CIRCLE('',#1456,5.E0);
--#1466=CIRCLE('',#1465,5.E0);
--#1475=CIRCLE('',#1474,5.E0);
--#1484=CIRCLE('',#1483,5.E0);
--#1493=CIRCLE('',#1492,3.E0);
--#1502=CIRCLE('',#1501,3.E0);
--#1511=CIRCLE('',#1510,3.E0);
--#1520=CIRCLE('',#1519,3.E0);
--#1529=CIRCLE('',#1528,1.E0);
--#1538=CIRCLE('',#1537,1.E0);
--#1547=CIRCLE('',#1546,1.E0);
--#1556=CIRCLE('',#1555,1.E0);
--#1597=CIRCLE('',#1596,1.E0);
--#1606=CIRCLE('',#1605,1.E0);
--#1675=CIRCLE('',#1674,9.5E-2);
--#1680=CIRCLE('',#1679,9.5E-2);
--#1685=CIRCLE('',#1684,6.25E-2);
--#1690=CIRCLE('',#1689,6.25E-2);
--#1707=CIRCLE('',#1706,1.E0);
--#1716=CIRCLE('',#1715,1.E0);
--#1729=CIRCLE('',#1728,1.E0);
--#1738=CIRCLE('',#1737,1.E0);
--#1767=CIRCLE('',#1766,1.625E-1);
--#1772=CIRCLE('',#1771,1.625E-1);
--#1846=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1837,#1838,#1839,#1840,#1841,#1842,#1843,
--#1844,#1845),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
--#1856=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1847,#1848,#1849,#1850,#1851,#1852,#1853,
--#1854,#1855),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
--#1873=CIRCLE('',#1872,2.575E-1);
--#1878=CIRCLE('',#1877,2.575E-1);
--#1883=CIRCLE('',#1882,1.925E-1);
--#1888=CIRCLE('',#1887,1.925E-1);
--#1933=CIRCLE('',#1932,9.5E-2);
--#1938=CIRCLE('',#1937,9.5E-2);
--#1943=CIRCLE('',#1942,6.25E-2);
--#1948=CIRCLE('',#1947,6.25E-2);
--#1961=CIRCLE('',#1960,9.5E-2);
--#1966=CIRCLE('',#1965,9.5E-2);
--#1979=CIRCLE('',#1978,6.25E-2);
--#1984=CIRCLE('',#1983,6.25E-2);
--#1993=CIRCLE('',#1992,3.5E-1);
--#2002=CIRCLE('',#2001,3.5E-1);
--#2035=CIRCLE('',#2034,3.5E-1);
--#2044=CIRCLE('',#2043,3.5E-1);
--#2053=CIRCLE('',#2052,3.5E-1);
--#2062=CIRCLE('',#2061,3.5E-1);
--#2071=CIRCLE('',#2070,3.5E-1);
--#2080=CIRCLE('',#2079,3.5E-1);
--#2089=CIRCLE('',#2088,3.5E-1);
--#2098=CIRCLE('',#2097,3.5E-1);
--#2107=CIRCLE('',#2106,3.5E-1);
--#2116=CIRCLE('',#2115,3.5E-1);
--#2145=CIRCLE('',#2144,9.5E-2);
--#2150=CIRCLE('',#2149,9.5E-2);
--#2163=CIRCLE('',#2162,6.25E-2);
--#2168=CIRCLE('',#2167,6.25E-2);
--#2189=CIRCLE('',#2188,1.E-1);
--#2194=CIRCLE('',#2193,1.E-1);
--#2215=CIRCLE('',#2214,1.E-1);
--#2220=CIRCLE('',#2219,1.E-1);
--#2233=CIRCLE('',#2232,2.575E-1);
--#2238=CIRCLE('',#2237,2.575E-1);
--#2243=CIRCLE('',#2242,1.925E-1);
--#2248=CIRCLE('',#2247,1.925E-1);
--#2269=CIRCLE('',#2268,2.575E-1);
--#2274=CIRCLE('',#2273,2.575E-1);
--#2279=CIRCLE('',#2278,1.925E-1);
--#2284=CIRCLE('',#2283,1.925E-1);
--#2305=CIRCLE('',#2304,2.575E-1);
--#2310=CIRCLE('',#2309,2.575E-1);
--#2315=CIRCLE('',#2314,1.925E-1);
--#2320=CIRCLE('',#2319,1.925E-1);
--#2341=CIRCLE('',#2340,2.575E-1);
--#2346=CIRCLE('',#2345,2.575E-1);
--#2351=CIRCLE('',#2350,1.925E-1);
--#2356=CIRCLE('',#2355,1.925E-1);
--#2377=CIRCLE('',#2376,2.575E-1);
--#2382=CIRCLE('',#2381,2.575E-1);
--#2387=CIRCLE('',#2386,1.925E-1);
--#2392=CIRCLE('',#2391,1.925E-1);
--#2413=CIRCLE('',#2412,2.575E-1);
--#2418=CIRCLE('',#2417,2.575E-1);
--#2423=CIRCLE('',#2422,1.925E-1);
--#2428=CIRCLE('',#2427,1.925E-1);
--#2449=CIRCLE('',#2448,2.56E-1);
--#2454=CIRCLE('',#2453,2.56E-1);
--#2459=CIRCLE('',#2458,1.925E-1);
--#2464=CIRCLE('',#2463,1.925E-1);
--#2485=CIRCLE('',#2484,2.56E-1);
--#2490=CIRCLE('',#2489,2.56E-1);
--#2495=CIRCLE('',#2494,1.925E-1);
--#2500=CIRCLE('',#2499,1.925E-1);
--#2521=CIRCLE('',#2520,2.56E-1);
--#2526=CIRCLE('',#2525,2.56E-1);
--#2531=CIRCLE('',#2530,1.925E-1);
--#2536=CIRCLE('',#2535,1.925E-1);
--#2557=CIRCLE('',#2556,2.56E-1);
--#2562=CIRCLE('',#2561,2.56E-1);
--#2567=CIRCLE('',#2566,1.925E-1);
--#2572=CIRCLE('',#2571,1.925E-1);
--#2593=CIRCLE('',#2592,2.56E-1);
--#2598=CIRCLE('',#2597,2.56E-1);
--#2603=CIRCLE('',#2602,1.925E-1);
--#2608=CIRCLE('',#2607,1.925E-1);
--#2629=CIRCLE('',#2628,2.56E-1);
--#2634=CIRCLE('',#2633,2.56E-1);
--#2639=CIRCLE('',#2638,1.925E-1);
--#2644=CIRCLE('',#2643,1.925E-1);
--#2665=CIRCLE('',#2664,2.575E-1);
--#2670=CIRCLE('',#2669,2.575E-1);
--#2675=CIRCLE('',#2674,1.925E-1);
--#2680=CIRCLE('',#2679,1.925E-1);
--#2701=CIRCLE('',#2700,2.575E-1);
--#2706=CIRCLE('',#2705,2.575E-1);
--#2711=CIRCLE('',#2710,1.925E-1);
--#2716=CIRCLE('',#2715,1.925E-1);
--#2737=CIRCLE('',#2736,2.575E-1);
--#2742=CIRCLE('',#2741,2.575E-1);
--#2747=CIRCLE('',#2746,1.925E-1);
--#2752=CIRCLE('',#2751,1.925E-1);
--#2773=CIRCLE('',#2772,2.575E-1);
--#2778=CIRCLE('',#2777,2.575E-1);
--#2783=CIRCLE('',#2782,1.925E-1);
--#2788=CIRCLE('',#2787,1.925E-1);
--#2809=CIRCLE('',#2808,2.575E-1);
--#2814=CIRCLE('',#2813,2.575E-1);
--#2819=CIRCLE('',#2818,1.925E-1);
--#2824=CIRCLE('',#2823,1.925E-1);
--#2845=CIRCLE('',#2844,2.575E-1);
--#2850=CIRCLE('',#2849,2.575E-1);
--#2855=CIRCLE('',#2854,1.925E-1);
--#2860=CIRCLE('',#2859,1.925E-1);
--#2882=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2873,#2874,#2875,#2876,#2877,#2878,#2879,
--#2880,#2881),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
--#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2883,#2884,#2885,#2886,#2887,#2888,#2889,
--#2890,#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
--#2905=CIRCLE('',#2904,2.575E-1);
--#2910=CIRCLE('',#2909,2.575E-1);
--#2915=CIRCLE('',#2914,1.925E-1);
--#2920=CIRCLE('',#2919,1.925E-1);
--#2937=CIRCLE('',#2936,3.5E-1);
--#2946=CIRCLE('',#2945,3.5E-1);
--#2955=CIRCLE('',#2954,3.5E-1);
--#2964=CIRCLE('',#2963,3.5E-1);
--#2973=CIRCLE('',#2972,3.5E-1);
--#2982=CIRCLE('',#2981,3.5E-1);
--#2991=CIRCLE('',#2990,3.5E-1);
--#3000=CIRCLE('',#2999,3.5E-1);
--#3009=CIRCLE('',#3008,3.5E-1);
--#3018=CIRCLE('',#3017,3.5E-1);
--#3027=CIRCLE('',#3026,3.5E-1);
--#3036=CIRCLE('',#3035,3.5E-1);
--#3073=CIRCLE('',#3072,9.5E-2);
--#3078=CIRCLE('',#3077,9.5E-2);
--#3091=CIRCLE('',#3090,9.5E-2);
--#3096=CIRCLE('',#3095,9.5E-2);
--#3109=CIRCLE('',#3108,9.5E-2);
--#3114=CIRCLE('',#3113,9.5E-2);
--#3127=CIRCLE('',#3126,9.5E-2);
--#3132=CIRCLE('',#3131,9.5E-2);
--#3145=CIRCLE('',#3144,9.5E-2);
--#3150=CIRCLE('',#3149,9.5E-2);
--#3159=CIRCLE('',#3158,7.5E-1);
--#3168=CIRCLE('',#3167,7.5E-1);
--#3177=CIRCLE('',#3176,7.5E-1);
--#3186=CIRCLE('',#3185,7.5E-1);
--#3195=CIRCLE('',#3194,7.5E-1);
--#3204=CIRCLE('',#3203,7.5E-1);
--#3213=CIRCLE('',#3212,7.5E-1);
--#3222=CIRCLE('',#3221,7.5E-1);
--#3247=CIRCLE('',#3246,7.5E-1);
--#3256=CIRCLE('',#3255,7.5E-1);
--#3281=CIRCLE('',#3280,7.5E-1);
--#3290=CIRCLE('',#3289,7.5E-1);
--#3299=CIRCLE('',#3298,7.5E-1);
--#3308=CIRCLE('',#3307,7.5E-1);
--#3317=CIRCLE('',#3316,7.5E-1);
--#3326=CIRCLE('',#3325,7.5E-1);
--#3351=CIRCLE('',#3350,5.625E-1);
--#3360=CIRCLE('',#3359,5.625E-1);
--#3365=CIRCLE('',#3364,9.225E-1);
--#3370=CIRCLE('',#3369,5.6875E0);
--#3375=CIRCLE('',#3374,8.669989027347E-1);
--#3388=CIRCLE('',#3387,7.5E-1);
--#3397=CIRCLE('',#3396,7.5E-1);
--#3418=CIRCLE('',#3417,8.75E-1);
--#3427=CIRCLE('',#3426,8.75E-1);
--#3440=CIRCLE('',#3439,5.6125E-1);
--#3469=CIRCLE('',#3468,8.75E-1);
--#3478=CIRCLE('',#3477,8.75E-1);
--#3495=CIRCLE('',#3494,8.75E-1);
--#3504=CIRCLE('',#3503,8.75E-1);
--#3513=CIRCLE('',#3512,8.75E-1);
--#3522=CIRCLE('',#3521,8.75E-1);
--#3531=CIRCLE('',#3530,8.75E-1);
--#3540=CIRCLE('',#3539,8.75E-1);
--#3549=CIRCLE('',#3548,8.75E-1);
--#3558=CIRCLE('',#3557,8.75E-1);
--#3583=CIRCLE('',#3582,5.625E-1);
--#3592=CIRCLE('',#3591,5.625E-1);
--#3617=CIRCLE('',#3616,5.625E-1);
--#3626=CIRCLE('',#3625,5.625E-1);
--#3651=CIRCLE('',#3650,5.E-1);
--#3660=CIRCLE('',#3659,5.E-1);
--#3685=CIRCLE('',#3684,4.375E-1);
--#3694=CIRCLE('',#3693,4.375E-1);
--#3719=CIRCLE('',#3718,5.625E-1);
--#3728=CIRCLE('',#3727,5.625E-1);
--#3737=CIRCLE('',#3736,8.669989027347E-1);
--#3742=CIRCLE('',#3741,5.6875E0);
--#3747=CIRCLE('',#3746,9.225E-1);
--#3756=CIRCLE('',#3755,7.5E-1);
--#3765=CIRCLE('',#3764,7.5E-1);
--#3802=CIRCLE('',#3801,5.625E-1);
--#3811=CIRCLE('',#3810,5.625E-1);
--#3820=CIRCLE('',#3819,8.669989027347E-1);
--#3825=CIRCLE('',#3824,5.6875E0);
--#3830=CIRCLE('',#3829,9.225E-1);
--#3839=CIRCLE('',#3838,7.5E-1);
--#3848=CIRCLE('',#3847,7.5E-1);
--#3885=CIRCLE('',#3884,5.625E-1);
--#3894=CIRCLE('',#3893,5.625E-1);
--#3919=CIRCLE('',#3918,5.625E-1);
--#3928=CIRCLE('',#3927,5.625E-1);
--#3953=CIRCLE('',#3952,5.E-1);
--#3962=CIRCLE('',#3961,5.E-1);
--#3987=CIRCLE('',#3986,4.375E-1);
--#3996=CIRCLE('',#3995,4.375E-1);
--#4021=CIRCLE('',#4020,5.625E-1);
--#4030=CIRCLE('',#4029,5.625E-1);
--#4035=CIRCLE('',#4034,9.225E-1);
--#4040=CIRCLE('',#4039,5.6875E0);
--#4045=CIRCLE('',#4044,8.669989027347E-1);
--#4058=CIRCLE('',#4057,7.5E-1);
--#4067=CIRCLE('',#4066,7.5E-1);
--#4088=CIRCLE('',#4087,8.8E-1);
--#4097=CIRCLE('',#4096,8.8E-1);
--#4106=CIRCLE('',#4105,8.8E-1);
--#4115=CIRCLE('',#4114,8.8E-1);
--#4124=CIRCLE('',#4123,8.8E-1);
--#4133=CIRCLE('',#4132,8.8E-1);
--#4142=CIRCLE('',#4141,8.8E-1);
--#4151=CIRCLE('',#4150,8.8E-1);
--#4160=CIRCLE('',#4159,8.8E-1);
--#4169=CIRCLE('',#4168,8.8E-1);
--#4178=CIRCLE('',#4177,8.8E-1);
--#4187=CIRCLE('',#4186,8.8E-1);
--#4208=CIRCLE('',#4207,5.6125E-1);
--#5494=EDGE_CURVE('',#4423,#4400,#132,.T.);
--#5496=EDGE_CURVE('',#4419,#4423,#1597,.T.);
--#5498=EDGE_CURVE('',#4419,#4243,#136,.T.);
--#5500=EDGE_CURVE('',#4239,#4243,#1614,.T.);
--#5502=EDGE_CURVE('',#4239,#4259,#140,.T.);
--#5504=EDGE_CURVE('',#4255,#4259,#1630,.T.);
--#5506=EDGE_CURVE('',#4255,#4320,#144,.T.);
--#5508=EDGE_CURVE('',#4324,#4320,#1376,.T.);
--#5510=EDGE_CURVE('',#4324,#4300,#148,.T.);
--#5512=EDGE_CURVE('',#4300,#4347,#152,.T.);
--#5514=EDGE_CURVE('',#4343,#4347,#1912,.T.);
--#5516=EDGE_CURVE('',#4343,#4315,#156,.T.);
--#5518=EDGE_CURVE('',#4311,#4315,#1385,.T.);
--#5520=EDGE_CURVE('',#4311,#4251,#160,.T.);
--#5522=EDGE_CURVE('',#4247,#4251,#1580,.T.);
--#5524=EDGE_CURVE('',#4247,#4235,#164,.T.);
--#5526=EDGE_CURVE('',#4231,#4235,#1564,.T.);
--#5528=EDGE_CURVE('',#4231,#4404,#168,.T.);
--#5530=EDGE_CURVE('',#4408,#4404,#1556,.T.);
--#5532=EDGE_CURVE('',#4444,#4408,#172,.T.);
--#5534=EDGE_CURVE('',#4444,#4448,#1654,.T.);
--#5536=EDGE_CURVE('',#4400,#4448,#176,.T.);
--#5540=EDGE_CURVE('',#4427,#4328,#4,.T.);
--#5542=EDGE_CURVE('',#4332,#4328,#1358,.T.);
--#5544=EDGE_CURVE('',#4264,#4332,#1340,.T.);
--#5546=EDGE_CURVE('',#4268,#4264,#8,.T.);
--#5548=EDGE_CURVE('',#4431,#4268,#1317,.T.);
--#5550=EDGE_CURVE('',#4427,#4431,#1303,.T.);
--#5554=EDGE_CURVE('',#4639,#4640,#13,.T.);
--#5556=EDGE_CURVE('',#4640,#4639,#18,.T.);
--#5560=EDGE_CURVE('',#4635,#4636,#23,.T.);
--#5562=EDGE_CURVE('',#4636,#4635,#28,.T.);
--#5566=EDGE_CURVE('',#4631,#4632,#33,.T.);
--#5568=EDGE_CURVE('',#4632,#4631,#38,.T.);
--#5572=EDGE_CURVE('',#4627,#4628,#43,.T.);
--#5574=EDGE_CURVE('',#4628,#4627,#48,.T.);
--#5578=EDGE_CURVE('',#4623,#4624,#53,.T.);
--#5580=EDGE_CURVE('',#4624,#4623,#58,.T.);
--#5584=EDGE_CURVE('',#4527,#4528,#63,.T.);
--#5586=EDGE_CURVE('',#4528,#4527,#68,.T.);
--#5590=EDGE_CURVE('',#4523,#4524,#73,.T.);
--#5592=EDGE_CURVE('',#4524,#4523,#78,.T.);
--#5596=EDGE_CURVE('',#4519,#4520,#83,.T.);
--#5598=EDGE_CURVE('',#4520,#4519,#88,.T.);
--#5602=EDGE_CURVE('',#4515,#4516,#93,.T.);
--#5604=EDGE_CURVE('',#4516,#4515,#98,.T.);
--#5608=EDGE_CURVE('',#4511,#4512,#103,.T.);
--#5610=EDGE_CURVE('',#4512,#4511,#108,.T.);
--#5614=EDGE_CURVE('',#4507,#4508,#113,.T.);
--#5616=EDGE_CURVE('',#4508,#4507,#118,.T.);
--#5620=EDGE_CURVE('',#4503,#4504,#123,.T.);
--#5622=EDGE_CURVE('',#4504,#4503,#128,.T.);
--#5626=EDGE_CURVE('',#4487,#4488,#181,.T.);
--#5628=EDGE_CURVE('',#4488,#4487,#186,.T.);
--#5632=EDGE_CURVE('',#4607,#4608,#191,.T.);
--#5634=EDGE_CURVE('',#4608,#4607,#196,.T.);
--#5638=EDGE_CURVE('',#4796,#4803,#200,.T.);
--#5640=EDGE_CURVE('',#4799,#4803,#1439,.T.);
--#5642=EDGE_CURVE('',#4280,#4799,#204,.T.);
--#5644=EDGE_CURVE('',#4284,#4280,#1466,.T.);
--#5646=EDGE_CURVE('',#4272,#4284,#208,.T.);
--#5648=EDGE_CURVE('',#4276,#4272,#1484,.T.);
--#5650=EDGE_CURVE('',#4792,#4276,#212,.T.);
--#5652=EDGE_CURVE('',#4796,#4792,#1430,.T.);
--#5656=EDGE_CURVE('',#4808,#4411,#216,.T.);
--#5658=EDGE_CURVE('',#4812,#4808,#1502,.T.);
--#5660=EDGE_CURVE('',#4812,#4819,#220,.T.);
--#5662=EDGE_CURVE('',#4815,#4819,#1511,.T.);
--#5664=EDGE_CURVE('',#4304,#4815,#224,.T.);
--#5666=EDGE_CURVE('',#4308,#4304,#1412,.T.);
--#5668=EDGE_CURVE('',#4308,#4339,#228,.T.);
--#5670=EDGE_CURVE('',#4335,#4339,#1754,.T.);
--#5672=EDGE_CURVE('',#4335,#4772,#232,.T.);
--#5674=EDGE_CURVE('',#4776,#4772,#1738,.T.);
--#5676=EDGE_CURVE('',#4776,#4783,#236,.T.);
--#5678=EDGE_CURVE('',#4779,#4783,#1707,.T.);
--#5680=EDGE_CURVE('',#4436,#4779,#240,.T.);
--#5682=EDGE_CURVE('',#4436,#4440,#2132,.T.);
--#5684=EDGE_CURVE('',#4415,#4440,#244,.T.);
--#5686=EDGE_CURVE('',#4411,#4415,#1529,.T.);
--#5690=EDGE_CURVE('',#4823,#4824,#249,.T.);
--#5692=EDGE_CURVE('',#4824,#4823,#254,.T.);
--#5696=EDGE_CURVE('',#4839,#4840,#259,.T.);
--#5698=EDGE_CURVE('',#4840,#4839,#264,.T.);
--#5702=EDGE_CURVE('',#4843,#4844,#269,.T.);
--#5704=EDGE_CURVE('',#4844,#4843,#274,.T.);
--#5708=EDGE_CURVE('',#4847,#4848,#279,.T.);
--#5710=EDGE_CURVE('',#4848,#4847,#284,.T.);
--#5714=EDGE_CURVE('',#4851,#4852,#289,.T.);
--#5716=EDGE_CURVE('',#4852,#4851,#294,.T.);
--#5720=EDGE_CURVE('',#4855,#4856,#299,.T.);
--#5722=EDGE_CURVE('',#4856,#4855,#304,.T.);
--#5726=EDGE_CURVE('',#5121,#5122,#308,.T.);
--#5728=EDGE_CURVE('',#5122,#5124,#313,.T.);
--#5730=EDGE_CURVE('',#5124,#5126,#317,.T.);
--#5732=EDGE_CURVE('',#5126,#5121,#322,.T.);
--#5736=EDGE_CURVE('',#5132,#5139,#327,.T.);
--#5738=EDGE_CURVE('',#5135,#5139,#3388,.T.);
--#5740=EDGE_CURVE('',#5135,#5129,#331,.T.);
--#5742=EDGE_CURVE('',#5129,#5130,#336,.T.);
--#5744=EDGE_CURVE('',#5132,#5130,#341,.T.);
--#5748=EDGE_CURVE('',#5184,#5186,#3418,.T.);
--#5750=EDGE_CURVE('',#5184,#5147,#345,.T.);
--#5752=EDGE_CURVE('',#5147,#5148,#350,.T.);
--#5754=EDGE_CURVE('',#5148,#5194,#354,.T.);
--#5756=EDGE_CURVE('',#5192,#5194,#3469,.T.);
--#5758=EDGE_CURVE('',#5192,#5171,#358,.T.);
--#5760=EDGE_CURVE('',#5167,#5171,#3495,.T.);
--#5762=EDGE_CURVE('',#5167,#5179,#362,.T.);
--#5764=EDGE_CURVE('',#5175,#5179,#3513,.T.);
--#5766=EDGE_CURVE('',#5175,#5155,#366,.T.);
--#5768=EDGE_CURVE('',#5151,#5155,#3531,.T.);
--#5770=EDGE_CURVE('',#5151,#5163,#370,.T.);
--#5772=EDGE_CURVE('',#5159,#5163,#3549,.T.);
--#5774=EDGE_CURVE('',#5159,#5186,#374,.T.);
--#5778=EDGE_CURVE('',#5207,#5208,#378,.T.);
--#5780=EDGE_CURVE('',#5208,#5210,#383,.T.);
--#5782=EDGE_CURVE('',#5210,#5212,#387,.T.);
--#5784=EDGE_CURVE('',#5212,#5207,#392,.T.);
--#5788=EDGE_CURVE('',#5223,#5224,#396,.T.);
--#5790=EDGE_CURVE('',#5224,#5226,#401,.T.);
--#5792=EDGE_CURVE('',#5226,#5228,#405,.T.);
--#5794=EDGE_CURVE('',#5228,#5223,#410,.T.);
--#5798=EDGE_CURVE('',#5239,#5240,#414,.T.);
--#5800=EDGE_CURVE('',#5240,#5242,#419,.T.);
--#5802=EDGE_CURVE('',#5242,#5244,#423,.T.);
--#5804=EDGE_CURVE('',#5244,#5239,#428,.T.);
--#5808=EDGE_CURVE('',#5255,#5256,#432,.T.);
--#5810=EDGE_CURVE('',#5256,#5258,#437,.T.);
--#5812=EDGE_CURVE('',#5258,#5260,#441,.T.);
--#5814=EDGE_CURVE('',#5260,#5255,#446,.T.);
--#5818=EDGE_CURVE('',#5277,#5278,#450,.T.);
--#5820=EDGE_CURVE('',#5282,#5277,#455,.T.);
--#5822=EDGE_CURVE('',#5280,#5282,#459,.T.);
--#5824=EDGE_CURVE('',#5278,#5280,#464,.T.);
--#5828=EDGE_CURVE('',#5305,#5306,#468,.T.);
--#5830=EDGE_CURVE('',#5310,#5305,#473,.T.);
--#5832=EDGE_CURVE('',#5308,#5310,#477,.T.);
--#5834=EDGE_CURVE('',#5306,#5308,#482,.T.);
--#5838=EDGE_CURVE('',#5335,#5336,#486,.T.);
--#5840=EDGE_CURVE('',#5340,#5335,#491,.T.);
--#5842=EDGE_CURVE('',#5338,#5340,#495,.T.);
--#5844=EDGE_CURVE('',#5336,#5338,#500,.T.);
--#5848=EDGE_CURVE('',#5351,#5352,#504,.T.);
--#5850=EDGE_CURVE('',#5356,#5351,#509,.T.);
--#5852=EDGE_CURVE('',#5354,#5356,#513,.T.);
--#5854=EDGE_CURVE('',#5352,#5354,#518,.T.);
--#5858=EDGE_CURVE('',#5367,#5368,#522,.T.);
--#5860=EDGE_CURVE('',#5372,#5367,#527,.T.);
--#5862=EDGE_CURVE('',#5370,#5372,#531,.T.);
--#5864=EDGE_CURVE('',#5368,#5370,#536,.T.);
--#5868=EDGE_CURVE('',#5383,#5384,#540,.T.);
--#5870=EDGE_CURVE('',#5388,#5383,#545,.T.);
--#5872=EDGE_CURVE('',#5386,#5388,#549,.T.);
--#5874=EDGE_CURVE('',#5384,#5386,#554,.T.);
--#5878=EDGE_CURVE('',#5405,#5406,#558,.T.);
--#5880=EDGE_CURVE('',#5406,#5408,#563,.T.);
--#5882=EDGE_CURVE('',#5408,#5410,#567,.T.);
--#5884=EDGE_CURVE('',#5410,#5405,#572,.T.);
--#5888=EDGE_CURVE('',#5455,#5451,#4097,.T.);
--#5890=EDGE_CURVE('',#5324,#5455,#576,.T.);
--#5892=EDGE_CURVE('',#5323,#5324,#581,.T.);
--#5894=EDGE_CURVE('',#5459,#5323,#585,.T.);
--#5896=EDGE_CURVE('',#5463,#5459,#4187,.T.);
--#5898=EDGE_CURVE('',#5436,#5463,#589,.T.);
--#5900=EDGE_CURVE('',#5440,#5436,#4169,.T.);
--#5902=EDGE_CURVE('',#5444,#5440,#593,.T.);
--#5904=EDGE_CURVE('',#5448,#5444,#4151,.T.);
--#5906=EDGE_CURVE('',#5428,#5448,#597,.T.);
--#5908=EDGE_CURVE('',#5432,#5428,#4133,.T.);
--#5910=EDGE_CURVE('',#5420,#5432,#601,.T.);
--#5912=EDGE_CURVE('',#5424,#5420,#4115,.T.);
--#5914=EDGE_CURVE('',#5451,#5424,#605,.T.);
--#5918=EDGE_CURVE('',#5471,#5313,#609,.T.);
--#5920=EDGE_CURVE('',#5467,#5471,#3839,.T.);
--#5922=EDGE_CURVE('',#5316,#5467,#614,.T.);
--#5924=EDGE_CURVE('',#5316,#5314,#619,.T.);
--#5926=EDGE_CURVE('',#5313,#5314,#624,.T.);
--#5930=EDGE_CURVE('',#5479,#5285,#628,.T.);
--#5932=EDGE_CURVE('',#5475,#5479,#3756,.T.);
--#5934=EDGE_CURVE('',#5288,#5475,#633,.T.);
--#5936=EDGE_CURVE('',#5288,#5286,#638,.T.);
--#5938=EDGE_CURVE('',#5285,#5286,#643,.T.);
--#5942=EDGE_CURVE('',#5416,#5487,#648,.T.);
--#5944=EDGE_CURVE('',#5483,#5487,#4058,.T.);
--#5946=EDGE_CURVE('',#5483,#5413,#652,.T.);
--#5948=EDGE_CURVE('',#5413,#5414,#657,.T.);
--#5950=EDGE_CURVE('',#5416,#5414,#662,.T.);
--#5961=EDGE_CURVE('',#4427,#4428,#1298,.T.);
--#5963=EDGE_CURVE('',#4424,#4428,#906,.T.);
--#5965=EDGE_CURVE('',#4423,#4424,#1601,.T.);
--#5968=EDGE_CURVE('',#4390,#4400,#1658,.T.);
--#5970=EDGE_CURVE('',#4387,#4390,#746,.T.);
--#5972=EDGE_CURVE('',#4387,#4388,#750,.T.);
--#5974=EDGE_CURVE('',#4768,#4388,#1698,.T.);
--#5976=EDGE_CURVE('',#4767,#4768,#1230,.T.);
--#5978=EDGE_CURVE('',#4287,#4767,#1746,.T.);
--#5980=EDGE_CURVE('',#4287,#4288,#754,.T.);
--#5982=EDGE_CURVE('',#4288,#4290,#758,.T.);
--#5984=EDGE_CURVE('',#4300,#4290,#1900,.T.);
--#5987=EDGE_CURVE('',#4323,#4324,#1371,.T.);
--#5989=EDGE_CURVE('',#4327,#4323,#914,.T.);
--#5991=EDGE_CURVE('',#4327,#4328,#1344,.T.);
--#5995=EDGE_CURVE('',#4747,#4748,#667,.T.);
--#5997=EDGE_CURVE('',#4748,#4747,#672,.T.);
--#6001=EDGE_CURVE('',#4735,#4736,#677,.T.);
--#6003=EDGE_CURVE('',#4736,#4735,#682,.T.);
--#6007=EDGE_CURVE('',#4755,#4756,#687,.T.);
--#6009=EDGE_CURVE('',#4756,#4755,#692,.T.);
--#6013=EDGE_CURVE('',#4763,#4764,#697,.T.);
--#6015=EDGE_CURVE('',#4764,#4763,#702,.T.);
--#6019=EDGE_CURVE('',#4731,#4732,#707,.T.);
--#6021=EDGE_CURVE('',#4732,#4731,#712,.T.);
--#6025=EDGE_CURVE('',#4723,#4724,#717,.T.);
--#6027=EDGE_CURVE('',#4724,#4723,#722,.T.);
--#6031=EDGE_CURVE('',#4703,#4704,#727,.T.);
--#6033=EDGE_CURVE('',#4704,#4703,#732,.T.);
--#6037=EDGE_CURVE('',#4715,#4716,#737,.T.);
--#6039=EDGE_CURVE('',#4716,#4715,#742,.T.);
--#6043=EDGE_CURVE('',#4947,#4959,#762,.T.);
--#6045=EDGE_CURVE('',#4955,#4959,#3213,.T.);
--#6047=EDGE_CURVE('',#4955,#4967,#766,.T.);
--#6049=EDGE_CURVE('',#4963,#4967,#3195,.T.);
--#6051=EDGE_CURVE('',#4963,#4975,#770,.T.);
--#6053=EDGE_CURVE('',#4971,#4975,#3177,.T.);
--#6055=EDGE_CURVE('',#4971,#4951,#774,.T.);
--#6057=EDGE_CURVE('',#4947,#4951,#3159,.T.);
--#6061=EDGE_CURVE('',#5036,#5048,#778,.T.);
--#6063=EDGE_CURVE('',#5040,#5036,#3256,.T.);
--#6065=EDGE_CURVE('',#5028,#5040,#782,.T.);
--#6067=EDGE_CURVE('',#5032,#5028,#3290,.T.);
--#6069=EDGE_CURVE('',#5052,#5032,#786,.T.);
--#6071=EDGE_CURVE('',#5056,#5052,#3308,.T.);
--#6073=EDGE_CURVE('',#5044,#5056,#790,.T.);
--#6075=EDGE_CURVE('',#5048,#5044,#3326,.T.);
--#6086=EDGE_CURVE('',#4747,#4743,#794,.T.);
--#6088=EDGE_CURVE('',#4743,#4744,#803,.T.);
--#6090=EDGE_CURVE('',#4748,#4744,#798,.T.);
--#6102=EDGE_CURVE('',#4744,#4743,#808,.T.);
--#6124=EDGE_CURVE('',#4735,#4739,#812,.T.);
--#6126=EDGE_CURVE('',#4739,#4740,#821,.T.);
--#6128=EDGE_CURVE('',#4736,#4740,#816,.T.);
--#6140=EDGE_CURVE('',#4740,#4739,#826,.T.);
--#6151=EDGE_CURVE('',#4934,#4940,#830,.T.);
--#6153=EDGE_CURVE('',#4940,#4942,#834,.T.);
--#6155=EDGE_CURVE('',#4938,#4942,#838,.T.);
--#6157=EDGE_CURVE('',#4788,#4938,#1234,.T.);
--#6159=EDGE_CURVE('',#4788,#4393,#842,.T.);
--#6161=EDGE_CURVE('',#4393,#4394,#846,.T.);
--#6163=EDGE_CURVE('',#4394,#4396,#850,.T.);
--#6165=EDGE_CURVE('',#4396,#4398,#854,.T.);
--#6167=EDGE_CURVE('',#4934,#4398,#1178,.T.);
--#6175=EDGE_CURVE('',#5103,#5099,#2946,.T.);
--#6177=EDGE_CURVE('',#5076,#5103,#858,.T.);
--#6179=EDGE_CURVE('',#5080,#5076,#3036,.T.);
--#6181=EDGE_CURVE('',#5084,#5080,#862,.T.);
--#6183=EDGE_CURVE('',#5088,#5084,#3018,.T.);
--#6185=EDGE_CURVE('',#5092,#5088,#866,.T.);
--#6187=EDGE_CURVE('',#5096,#5092,#3000,.T.);
--#6189=EDGE_CURVE('',#5068,#5096,#870,.T.);
--#6191=EDGE_CURVE('',#5072,#5068,#2982,.T.);
--#6193=EDGE_CURVE('',#5060,#5072,#874,.T.);
--#6195=EDGE_CURVE('',#5064,#5060,#2964,.T.);
--#6197=EDGE_CURVE('',#5099,#5064,#878,.T.);
--#6207=EDGE_CURVE('',#4933,#4934,#1174,.T.);
--#6209=EDGE_CURVE('',#4940,#4933,#882,.T.);
--#6221=EDGE_CURVE('',#4432,#4428,#1312,.T.);
--#6223=EDGE_CURVE('',#4267,#4432,#1326,.T.);
--#6225=EDGE_CURVE('',#4267,#4263,#910,.T.);
--#6227=EDGE_CURVE('',#4331,#4263,#1331,.T.);
--#6229=EDGE_CURVE('',#4327,#4331,#1349,.T.);
--#6232=EDGE_CURVE('',#4319,#4323,#1367,.T.);
--#6234=EDGE_CURVE('',#4256,#4319,#918,.T.);
--#6236=EDGE_CURVE('',#4256,#4260,#1638,.T.);
--#6238=EDGE_CURVE('',#4240,#4260,#922,.T.);
--#6240=EDGE_CURVE('',#4240,#4244,#1622,.T.);
--#6242=EDGE_CURVE('',#4420,#4244,#926,.T.);
--#6244=EDGE_CURVE('',#4424,#4420,#1606,.T.);
--#6248=EDGE_CURVE('',#4495,#4496,#951,.T.);
--#6250=EDGE_CURVE('',#4496,#4495,#956,.T.);
--#6254=EDGE_CURVE('',#4567,#4568,#981,.T.);
--#6256=EDGE_CURVE('',#4568,#4567,#986,.T.);
--#6260=EDGE_CURVE('',#4615,#4616,#1011,.T.);
--#6262=EDGE_CURVE('',#4616,#4615,#1016,.T.);
--#6266=EDGE_CURVE('',#4647,#4648,#1021,.T.);
--#6268=EDGE_CURVE('',#4648,#4647,#1026,.T.);
--#6272=EDGE_CURVE('',#4659,#4660,#1031,.T.);
--#6274=EDGE_CURVE('',#4660,#4659,#1036,.T.);
--#6286=EDGE_CURVE('',#4398,#4447,#1182,.T.);
--#6288=EDGE_CURVE('',#4443,#4447,#1646,.T.);
--#6290=EDGE_CURVE('',#4443,#4407,#1186,.T.);
--#6292=EDGE_CURVE('',#4403,#4407,#1547,.T.);
--#6294=EDGE_CURVE('',#4232,#4403,#1190,.T.);
--#6296=EDGE_CURVE('',#4232,#4236,#1572,.T.);
--#6298=EDGE_CURVE('',#4248,#4236,#1194,.T.);
--#6300=EDGE_CURVE('',#4248,#4252,#1588,.T.);
--#6302=EDGE_CURVE('',#4312,#4252,#1198,.T.);
--#6304=EDGE_CURVE('',#4316,#4312,#1394,.T.);
--#6306=EDGE_CURVE('',#4344,#4316,#1202,.T.);
--#6308=EDGE_CURVE('',#4344,#4348,#1920,.T.);
--#6310=EDGE_CURVE('',#4298,#4348,#1206,.T.);
--#6312=EDGE_CURVE('',#4298,#4920,#1210,.T.);
--#6314=EDGE_CURVE('',#4919,#4920,#1214,.T.);
--#6316=EDGE_CURVE('',#4919,#4923,#1218,.T.);
--#6318=EDGE_CURVE('',#4923,#4924,#1222,.T.);
--#6320=EDGE_CURVE('',#4924,#4786,#1226,.T.);
--#6322=EDGE_CURVE('',#4767,#4786,#1742,.T.);
--#6325=EDGE_CURVE('',#4768,#4788,#1694,.T.);
--#6328=EDGE_CURVE('',#4937,#4938,#1238,.T.);
--#6330=EDGE_CURVE('',#4933,#4937,#1242,.T.);
--#6334=EDGE_CURVE('',#4373,#4374,#887,.T.);
--#6336=EDGE_CURVE('',#4374,#4373,#892,.T.);
--#6340=EDGE_CURVE('',#4383,#4384,#897,.T.);
--#6342=EDGE_CURVE('',#4384,#4383,#902,.T.);
--#6346=EDGE_CURVE('',#4473,#4474,#931,.T.);
--#6348=EDGE_CURVE('',#4474,#4473,#936,.T.);
--#6352=EDGE_CURVE('',#4483,#4484,#941,.T.);
--#6354=EDGE_CURVE('',#4484,#4483,#946,.T.);
--#6358=EDGE_CURVE('',#4543,#4544,#961,.T.);
--#6360=EDGE_CURVE('',#4544,#4543,#966,.T.);
--#6364=EDGE_CURVE('',#4555,#4556,#971,.T.);
--#6366=EDGE_CURVE('',#4556,#4555,#976,.T.);
--#6370=EDGE_CURVE('',#4587,#4588,#991,.T.);
--#6372=EDGE_CURVE('',#4588,#4587,#996,.T.);
--#6376=EDGE_CURVE('',#4599,#4600,#1001,.T.);
--#6378=EDGE_CURVE('',#4600,#4599,#1006,.T.);
--#6382=EDGE_CURVE('',#4671,#4672,#1041,.T.);
--#6384=EDGE_CURVE('',#4672,#4671,#1046,.T.);
--#6388=EDGE_CURVE('',#4683,#4684,#1051,.T.);
--#6390=EDGE_CURVE('',#4684,#4683,#1056,.T.);
--#6394=EDGE_CURVE('',#4695,#4696,#1061,.T.);
--#6396=EDGE_CURVE('',#4696,#4695,#1066,.T.);
--#6400=EDGE_CURVE('',#4279,#4800,#1070,.T.);
--#6402=EDGE_CURVE('',#4804,#4800,#1448,.T.);
--#6404=EDGE_CURVE('',#4795,#4804,#1074,.T.);
--#6406=EDGE_CURVE('',#4791,#4795,#1421,.T.);
--#6408=EDGE_CURVE('',#4791,#4275,#1078,.T.);
--#6410=EDGE_CURVE('',#4271,#4275,#1475,.T.);
--#6412=EDGE_CURVE('',#4271,#4283,#1082,.T.);
--#6414=EDGE_CURVE('',#4279,#4283,#1457,.T.);
--#6418=EDGE_CURVE('',#4811,#4820,#1086,.T.);
--#6420=EDGE_CURVE('',#4807,#4811,#1493,.T.);
--#6422=EDGE_CURVE('',#4807,#4412,#1090,.T.);
--#6424=EDGE_CURVE('',#4416,#4412,#1538,.T.);
--#6426=EDGE_CURVE('',#4416,#4439,#1094,.T.);
--#6428=EDGE_CURVE('',#4435,#4439,#2124,.T.);
--#6430=EDGE_CURVE('',#4435,#4780,#1098,.T.);
--#6432=EDGE_CURVE('',#4784,#4780,#1716,.T.);
--#6434=EDGE_CURVE('',#4775,#4784,#1720,.T.);
--#6436=EDGE_CURVE('',#4771,#4775,#1729,.T.);
--#6438=EDGE_CURVE('',#4336,#4771,#1102,.T.);
--#6440=EDGE_CURVE('',#4336,#4340,#1762,.T.);
--#6442=EDGE_CURVE('',#4307,#4340,#1106,.T.);
--#6444=EDGE_CURVE('',#4303,#4307,#1403,.T.);
--#6446=EDGE_CURVE('',#4303,#4816,#1110,.T.);
--#6448=EDGE_CURVE('',#4820,#4816,#1520,.T.);
--#6452=EDGE_CURVE('',#4831,#4832,#1115,.T.);
--#6454=EDGE_CURVE('',#4832,#4831,#1120,.T.);
--#6458=EDGE_CURVE('',#4863,#4864,#1125,.T.);
--#6460=EDGE_CURVE('',#4864,#4863,#1130,.T.);
--#6464=EDGE_CURVE('',#4875,#4876,#1135,.T.);
--#6466=EDGE_CURVE('',#4876,#4875,#1140,.T.);
--#6470=EDGE_CURVE('',#4887,#4888,#1145,.T.);
--#6472=EDGE_CURVE('',#4888,#4887,#1150,.T.);
--#6476=EDGE_CURVE('',#4899,#4900,#1155,.T.);
--#6478=EDGE_CURVE('',#4900,#4899,#1160,.T.);
--#6482=EDGE_CURVE('',#4911,#4912,#1165,.T.);
--#6484=EDGE_CURVE('',#4912,#4911,#1170,.T.);
--#6495=EDGE_CURVE('',#4368,#4374,#1250,.T.);
--#6497=EDGE_CURVE('',#4370,#4368,#1268,.T.);
--#6499=EDGE_CURVE('',#4370,#4373,#1246,.T.);
--#6511=EDGE_CURVE('',#4370,#4368,#1259,.T.);
--#6522=EDGE_CURVE('',#4367,#4368,#1254,.T.);
--#6525=EDGE_CURVE('',#4367,#4370,#1263,.T.);
--#6547=EDGE_CURVE('',#4378,#4384,#1276,.T.);
--#6549=EDGE_CURVE('',#4380,#4378,#1294,.T.);
--#6551=EDGE_CURVE('',#4380,#4383,#1272,.T.);
--#6563=EDGE_CURVE('',#4380,#4378,#1285,.T.);
--#6574=EDGE_CURVE('',#4377,#4378,#1280,.T.);
--#6577=EDGE_CURVE('',#4377,#4380,#1289,.T.);
--#6600=EDGE_CURVE('',#4431,#4432,#1307,.T.);
--#6613=EDGE_CURVE('',#4267,#4268,#1321,.T.);
--#6624=EDGE_CURVE('',#4263,#4264,#1335,.T.);
--#6637=EDGE_CURVE('',#4331,#4332,#1353,.T.);
--#6662=EDGE_CURVE('',#4319,#4320,#1362,.T.);
--#6675=EDGE_CURVE('',#4311,#4312,#1380,.T.);
--#6678=EDGE_CURVE('',#4251,#4252,#1584,.T.);
--#6691=EDGE_CURVE('',#4255,#4256,#1626,.T.);
--#6704=EDGE_CURVE('',#4315,#4316,#1389,.T.);
--#6715=EDGE_CURVE('',#4307,#4308,#1407,.T.);
--#6718=EDGE_CURVE('',#4339,#4340,#1758,.T.);
--#6731=EDGE_CURVE('',#4343,#4344,#1908,.T.);
--#6742=EDGE_CURVE('',#4303,#4304,#1398,.T.);
--#6755=EDGE_CURVE('',#4791,#4792,#1416,.T.);
--#6758=EDGE_CURVE('',#4275,#4276,#1479,.T.);
--#6769=EDGE_CURVE('',#4815,#4816,#1506,.T.);
--#6784=EDGE_CURVE('',#4795,#4796,#1425,.T.);
--#6797=EDGE_CURVE('',#4803,#4804,#1443,.T.);
--#6808=EDGE_CURVE('',#4799,#4800,#1434,.T.);
--#6823=EDGE_CURVE('',#4279,#4280,#1452,.T.);
--#6834=EDGE_CURVE('',#4807,#4808,#1488,.T.);
--#6837=EDGE_CURVE('',#4411,#4412,#1524,.T.);
--#6850=EDGE_CURVE('',#4283,#4284,#1461,.T.);
--#6861=EDGE_CURVE('',#4271,#4272,#1470,.T.);
--#6888=EDGE_CURVE('',#4811,#4812,#1497,.T.);
--#6901=EDGE_CURVE('',#4819,#4820,#1515,.T.);
--#6926=EDGE_CURVE('',#4415,#4416,#1533,.T.);
--#6937=EDGE_CURVE('',#4407,#4408,#1551,.T.);
--#6940=EDGE_CURVE('',#4443,#4444,#1642,.T.);
--#6953=EDGE_CURVE('',#4439,#4440,#2128,.T.);
--#6964=EDGE_CURVE('',#4403,#4404,#1542,.T.);
--#6979=EDGE_CURVE('',#4231,#4232,#1560,.T.);
--#6990=EDGE_CURVE('',#4419,#4420,#1592,.T.);
--#6993=EDGE_CURVE('',#4243,#4244,#1618,.T.);
--#7006=EDGE_CURVE('',#4235,#4236,#1568,.T.);
--#7018=EDGE_CURVE('',#4247,#4248,#1576,.T.);
--#7054=EDGE_CURVE('',#4239,#4240,#1610,.T.);
--#7070=EDGE_CURVE('',#4259,#4260,#1634,.T.);
--#7094=EDGE_CURVE('',#4447,#4448,#1650,.T.);
--#7110=EDGE_CURVE('',#4390,#4396,#1662,.T.);
--#7123=EDGE_CURVE('',#4387,#4394,#1666,.T.);
--#7136=EDGE_CURVE('',#4388,#4393,#1670,.T.);
--#7140=EDGE_CURVE('',#4455,#4456,#1675,.T.);
--#7142=EDGE_CURVE('',#4456,#4455,#1680,.T.);
--#7146=EDGE_CURVE('',#4463,#4464,#1685,.T.);
--#7148=EDGE_CURVE('',#4464,#4463,#1690,.T.);
--#7158=EDGE_CURVE('',#4779,#4780,#1702,.T.);
--#7161=EDGE_CURVE('',#4435,#4436,#2120,.T.);
--#7186=EDGE_CURVE('',#4783,#4784,#1711,.T.);
--#7197=EDGE_CURVE('',#4775,#4776,#1733,.T.);
--#7210=EDGE_CURVE('',#4771,#4772,#1724,.T.);
--#7225=EDGE_CURVE('',#4335,#4336,#1750,.T.);
--#7237=EDGE_CURVE('',#4786,#4293,#1792,.T.);
--#7239=EDGE_CURVE('',#4287,#4293,#1928,.T.);
--#7262=EDGE_CURVE('',#4920,#4926,#1776,.T.);
--#7265=EDGE_CURVE('',#4296,#4298,#1780,.T.);
--#7267=EDGE_CURVE('',#4294,#4296,#1784,.T.);
--#7269=EDGE_CURVE('',#4293,#4294,#1788,.T.);
--#7273=EDGE_CURVE('',#4924,#4928,#1796,.T.);
--#7275=EDGE_CURVE('',#4926,#4928,#1800,.T.);
--#7279=EDGE_CURVE('',#4707,#4708,#1767,.T.);
--#7281=EDGE_CURVE('',#4708,#4707,#1772,.T.);
--#7285=EDGE_CURVE('',#5020,#5022,#1993,.T.);
--#7287=EDGE_CURVE('',#5020,#4983,#1804,.T.);
--#7289=EDGE_CURVE('',#4979,#4983,#2107,.T.);
--#7291=EDGE_CURVE('',#4979,#4991,#1808,.T.);
--#7293=EDGE_CURVE('',#4987,#4991,#2089,.T.);
--#7295=EDGE_CURVE('',#4987,#5015,#1812,.T.);
--#7297=EDGE_CURVE('',#5011,#5015,#2071,.T.);
--#7299=EDGE_CURVE('',#5011,#5007,#1816,.T.);
--#7301=EDGE_CURVE('',#5003,#5007,#2053,.T.);
--#7303=EDGE_CURVE('',#5003,#4999,#1820,.T.);
--#7305=EDGE_CURVE('',#4995,#4999,#2035,.T.);
--#7307=EDGE_CURVE('',#4995,#5022,#1824,.T.);
--#7318=EDGE_CURVE('',#4704,#4708,#1832,.T.);
--#7321=EDGE_CURVE('',#4703,#4707,#1828,.T.);
--#7345=EDGE_CURVE('',#4926,#4919,#1836,.T.);
--#7358=EDGE_CURVE('',#4928,#4923,#1860,.T.);
--#7362=EDGE_CURVE('',#4929,#4930,#1846,.T.);
--#7364=EDGE_CURVE('',#4930,#4929,#1856,.T.);
--#7385=EDGE_CURVE('',#4930,#4531,#1868,.T.);
--#7388=EDGE_CURVE('',#4532,#4929,#1864,.T.);
--#7390=EDGE_CURVE('',#4531,#4532,#1873,.T.);
--#7403=EDGE_CURVE('',#4532,#4531,#1878,.T.);
--#7417=EDGE_CURVE('',#4535,#4536,#1883,.T.);
--#7419=EDGE_CURVE('',#4536,#4535,#1888,.T.);
--#7430=EDGE_CURVE('',#4536,#4504,#1896,.T.);
--#7433=EDGE_CURVE('',#4535,#4503,#1892,.T.);
--#7457=EDGE_CURVE('',#4347,#4348,#1916,.T.);
--#7461=EDGE_CURVE('',#4290,#4296,#1904,.T.);
--#7484=EDGE_CURVE('',#4288,#4294,#1924,.T.);
--#7502=EDGE_CURVE('',#4355,#4356,#1933,.T.);
--#7504=EDGE_CURVE('',#4356,#4355,#1938,.T.);
--#7508=EDGE_CURVE('',#4363,#4364,#1943,.T.);
--#7510=EDGE_CURVE('',#4364,#4363,#1948,.T.);
--#7521=EDGE_CURVE('',#4356,#4352,#1956,.T.);
--#7523=EDGE_CURVE('',#4351,#4352,#1961,.T.);
--#7525=EDGE_CURVE('',#4355,#4351,#1952,.T.);
--#7537=EDGE_CURVE('',#4352,#4351,#1966,.T.);
--#7559=EDGE_CURVE('',#4364,#4360,#1974,.T.);
--#7561=EDGE_CURVE('',#4359,#4360,#1979,.T.);
--#7563=EDGE_CURVE('',#4363,#4359,#1970,.T.);
--#7575=EDGE_CURVE('',#4360,#4359,#1984,.T.);
--#7596=EDGE_CURVE('',#5019,#5020,#1988,.T.);
--#7599=EDGE_CURVE('',#5024,#5022,#1997,.T.);
--#7601=EDGE_CURVE('',#5024,#5019,#2002,.T.);
--#7612=EDGE_CURVE('',#5019,#4984,#2006,.T.);
--#7614=EDGE_CURVE('',#4983,#4984,#2111,.T.);
--#7627=EDGE_CURVE('',#4996,#5024,#2010,.T.);
--#7629=EDGE_CURVE('',#5000,#4996,#2044,.T.);
--#7631=EDGE_CURVE('',#5004,#5000,#2014,.T.);
--#7633=EDGE_CURVE('',#5008,#5004,#2062,.T.);
--#7635=EDGE_CURVE('',#5012,#5008,#2018,.T.);
--#7637=EDGE_CURVE('',#5016,#5012,#2080,.T.);
--#7639=EDGE_CURVE('',#4988,#5016,#2022,.T.);
--#7641=EDGE_CURVE('',#4992,#4988,#2098,.T.);
--#7643=EDGE_CURVE('',#4980,#4992,#2026,.T.);
--#7645=EDGE_CURVE('',#4984,#4980,#2116,.T.);
--#7657=EDGE_CURVE('',#4995,#4996,#2030,.T.);
--#7670=EDGE_CURVE('',#4999,#5000,#2039,.T.);
--#7683=EDGE_CURVE('',#5003,#5004,#2048,.T.);
--#7696=EDGE_CURVE('',#5007,#5008,#2057,.T.);
--#7709=EDGE_CURVE('',#5011,#5012,#2066,.T.);
--#7722=EDGE_CURVE('',#5015,#5016,#2075,.T.);
--#7733=EDGE_CURVE('',#4987,#4988,#2084,.T.);
--#7748=EDGE_CURVE('',#4991,#4992,#2093,.T.);
--#7759=EDGE_CURVE('',#4979,#4980,#2102,.T.);
--#7797=EDGE_CURVE('',#4455,#4451,#2136,.T.);
--#7799=EDGE_CURVE('',#4451,#4452,#2145,.T.);
--#7801=EDGE_CURVE('',#4456,#4452,#2140,.T.);
--#7813=EDGE_CURVE('',#4452,#4451,#2150,.T.);
--#7835=EDGE_CURVE('',#4463,#4459,#2154,.T.);
--#7837=EDGE_CURVE('',#4459,#4460,#2163,.T.);
--#7839=EDGE_CURVE('',#4464,#4460,#2158,.T.);
--#7851=EDGE_CURVE('',#4460,#4459,#2168,.T.);
--#7873=EDGE_CURVE('',#4470,#4473,#2176,.T.);
--#7875=EDGE_CURVE('',#4470,#4468,#2194,.T.);
--#7877=EDGE_CURVE('',#4468,#4474,#2172,.T.);
--#7889=EDGE_CURVE('',#4470,#4468,#2189,.T.);
--#7900=EDGE_CURVE('',#4467,#4468,#2180,.T.);
--#7902=EDGE_CURVE('',#4467,#4470,#2184,.T.);
--#7925=EDGE_CURVE('',#4480,#4483,#2202,.T.);
--#7927=EDGE_CURVE('',#4480,#4478,#2220,.T.);
--#7929=EDGE_CURVE('',#4478,#4484,#2198,.T.);
--#7941=EDGE_CURVE('',#4480,#4478,#2215,.T.);
--#7952=EDGE_CURVE('',#4477,#4478,#2206,.T.);
--#7954=EDGE_CURVE('',#4477,#4480,#2210,.T.);
--#7977=EDGE_CURVE('',#4496,#4492,#2228,.T.);
--#7979=EDGE_CURVE('',#4491,#4492,#2233,.T.);
--#7981=EDGE_CURVE('',#4495,#4491,#2224,.T.);
--#7993=EDGE_CURVE('',#4492,#4491,#2238,.T.);
--#8008=EDGE_CURVE('',#4499,#4500,#2243,.T.);
--#8010=EDGE_CURVE('',#4500,#4499,#2248,.T.);
--#8021=EDGE_CURVE('',#4500,#4488,#2256,.T.);
--#8024=EDGE_CURVE('',#4499,#4487,#2252,.T.);
--#8047=EDGE_CURVE('',#4544,#4540,#2264,.T.);
--#8049=EDGE_CURVE('',#4539,#4540,#2269,.T.);
--#8051=EDGE_CURVE('',#4543,#4539,#2260,.T.);
--#8063=EDGE_CURVE('',#4540,#4539,#2274,.T.);
--#8078=EDGE_CURVE('',#4547,#4548,#2279,.T.);
--#8080=EDGE_CURVE('',#4548,#4547,#2284,.T.);
--#8091=EDGE_CURVE('',#4548,#4508,#2292,.T.);
--#8094=EDGE_CURVE('',#4547,#4507,#2288,.T.);
--#8117=EDGE_CURVE('',#4556,#4552,#2300,.T.);
--#8119=EDGE_CURVE('',#4551,#4552,#2305,.T.);
--#8121=EDGE_CURVE('',#4555,#4551,#2296,.T.);
--#8133=EDGE_CURVE('',#4552,#4551,#2310,.T.);
--#8148=EDGE_CURVE('',#4559,#4560,#2315,.T.);
--#8150=EDGE_CURVE('',#4560,#4559,#2320,.T.);
--#8161=EDGE_CURVE('',#4560,#4512,#2328,.T.);
--#8164=EDGE_CURVE('',#4559,#4511,#2324,.T.);
--#8187=EDGE_CURVE('',#4568,#4564,#2336,.T.);
--#8189=EDGE_CURVE('',#4563,#4564,#2341,.T.);
--#8191=EDGE_CURVE('',#4567,#4563,#2332,.T.);
--#8203=EDGE_CURVE('',#4564,#4563,#2346,.T.);
--#8218=EDGE_CURVE('',#4571,#4572,#2351,.T.);
--#8220=EDGE_CURVE('',#4572,#4571,#2356,.T.);
--#8231=EDGE_CURVE('',#4572,#4516,#2364,.T.);
--#8234=EDGE_CURVE('',#4571,#4515,#2360,.T.);
--#8257=EDGE_CURVE('',#4588,#4584,#2372,.T.);
--#8259=EDGE_CURVE('',#4583,#4584,#2377,.T.);
--#8261=EDGE_CURVE('',#4587,#4583,#2368,.T.);
--#8273=EDGE_CURVE('',#4584,#4583,#2382,.T.);
--#8288=EDGE_CURVE('',#4591,#4592,#2387,.T.);
--#8290=EDGE_CURVE('',#4592,#4591,#2392,.T.);
--#8301=EDGE_CURVE('',#4592,#4524,#2400,.T.);
--#8304=EDGE_CURVE('',#4591,#4523,#2396,.T.);
--#8327=EDGE_CURVE('',#4600,#4596,#2408,.T.);
--#8329=EDGE_CURVE('',#4595,#4596,#2413,.T.);
--#8331=EDGE_CURVE('',#4599,#4595,#2404,.T.);
--#8343=EDGE_CURVE('',#4596,#4595,#2418,.T.);
--#8358=EDGE_CURVE('',#4603,#4604,#2423,.T.);
--#8360=EDGE_CURVE('',#4604,#4603,#2428,.T.);
--#8371=EDGE_CURVE('',#4604,#4528,#2436,.T.);
--#8374=EDGE_CURVE('',#4603,#4527,#2432,.T.);
--#8397=EDGE_CURVE('',#4616,#4612,#2444,.T.);
--#8399=EDGE_CURVE('',#4611,#4612,#2449,.T.);
--#8401=EDGE_CURVE('',#4615,#4611,#2440,.T.);
--#8413=EDGE_CURVE('',#4612,#4611,#2454,.T.);
--#8428=EDGE_CURVE('',#4619,#4620,#2459,.T.);
--#8430=EDGE_CURVE('',#4620,#4619,#2464,.T.);
--#8441=EDGE_CURVE('',#4620,#4608,#2472,.T.);
--#8444=EDGE_CURVE('',#4619,#4607,#2468,.T.);
--#8467=EDGE_CURVE('',#4648,#4644,#2480,.T.);
--#8469=EDGE_CURVE('',#4643,#4644,#2485,.T.);
--#8471=EDGE_CURVE('',#4647,#4643,#2476,.T.);
--#8483=EDGE_CURVE('',#4644,#4643,#2490,.T.);
--#8498=EDGE_CURVE('',#4651,#4652,#2495,.T.);
--#8500=EDGE_CURVE('',#4652,#4651,#2500,.T.);
--#8511=EDGE_CURVE('',#4652,#4624,#2508,.T.);
--#8514=EDGE_CURVE('',#4651,#4623,#2504,.T.);
--#8537=EDGE_CURVE('',#4660,#4656,#2516,.T.);
--#8539=EDGE_CURVE('',#4655,#4656,#2521,.T.);
--#8541=EDGE_CURVE('',#4659,#4655,#2512,.T.);
--#8553=EDGE_CURVE('',#4656,#4655,#2526,.T.);
--#8568=EDGE_CURVE('',#4663,#4664,#2531,.T.);
--#8570=EDGE_CURVE('',#4664,#4663,#2536,.T.);
--#8581=EDGE_CURVE('',#4664,#4636,#2544,.T.);
--#8584=EDGE_CURVE('',#4663,#4635,#2540,.T.);
--#8607=EDGE_CURVE('',#4672,#4668,#2552,.T.);
--#8609=EDGE_CURVE('',#4667,#4668,#2557,.T.);
--#8611=EDGE_CURVE('',#4671,#4667,#2548,.T.);
--#8623=EDGE_CURVE('',#4668,#4667,#2562,.T.);
--#8638=EDGE_CURVE('',#4675,#4676,#2567,.T.);
--#8640=EDGE_CURVE('',#4676,#4675,#2572,.T.);
--#8651=EDGE_CURVE('',#4676,#4628,#2580,.T.);
--#8654=EDGE_CURVE('',#4675,#4627,#2576,.T.);
--#8677=EDGE_CURVE('',#4684,#4680,#2588,.T.);
--#8679=EDGE_CURVE('',#4679,#4680,#2593,.T.);
--#8681=EDGE_CURVE('',#4683,#4679,#2584,.T.);
--#8693=EDGE_CURVE('',#4680,#4679,#2598,.T.);
--#8708=EDGE_CURVE('',#4687,#4688,#2603,.T.);
--#8710=EDGE_CURVE('',#4688,#4687,#2608,.T.);
--#8721=EDGE_CURVE('',#4688,#4632,#2616,.T.);
--#8724=EDGE_CURVE('',#4687,#4631,#2612,.T.);
--#8747=EDGE_CURVE('',#4696,#4692,#2624,.T.);
--#8749=EDGE_CURVE('',#4691,#4692,#2629,.T.);
--#8751=EDGE_CURVE('',#4695,#4691,#2620,.T.);
--#8763=EDGE_CURVE('',#4692,#4691,#2634,.T.);
--#8778=EDGE_CURVE('',#4699,#4700,#2639,.T.);
--#8780=EDGE_CURVE('',#4700,#4699,#2644,.T.);
--#8791=EDGE_CURVE('',#4700,#4640,#2652,.T.);
--#8794=EDGE_CURVE('',#4699,#4639,#2648,.T.);
--#8817=EDGE_CURVE('',#4832,#4828,#2660,.T.);
--#8819=EDGE_CURVE('',#4827,#4828,#2665,.T.);
--#8821=EDGE_CURVE('',#4831,#4827,#2656,.T.);
--#8833=EDGE_CURVE('',#4828,#4827,#2670,.T.);
--#8848=EDGE_CURVE('',#4835,#4836,#2675,.T.);
--#8850=EDGE_CURVE('',#4836,#4835,#2680,.T.);
--#8861=EDGE_CURVE('',#4836,#4824,#2688,.T.);
--#8864=EDGE_CURVE('',#4835,#4823,#2684,.T.);
--#8887=EDGE_CURVE('',#4864,#4860,#2696,.T.);
--#8889=EDGE_CURVE('',#4859,#4860,#2701,.T.);
--#8891=EDGE_CURVE('',#4863,#4859,#2692,.T.);
--#8903=EDGE_CURVE('',#4860,#4859,#2706,.T.);
--#8918=EDGE_CURVE('',#4867,#4868,#2711,.T.);
--#8920=EDGE_CURVE('',#4868,#4867,#2716,.T.);
--#8931=EDGE_CURVE('',#4868,#4840,#2724,.T.);
--#8934=EDGE_CURVE('',#4867,#4839,#2720,.T.);
--#8957=EDGE_CURVE('',#4876,#4872,#2732,.T.);
--#8959=EDGE_CURVE('',#4871,#4872,#2737,.T.);
--#8961=EDGE_CURVE('',#4875,#4871,#2728,.T.);
--#8973=EDGE_CURVE('',#4872,#4871,#2742,.T.);
--#8988=EDGE_CURVE('',#4879,#4880,#2747,.T.);
--#8990=EDGE_CURVE('',#4880,#4879,#2752,.T.);
--#9001=EDGE_CURVE('',#4880,#4844,#2760,.T.);
--#9004=EDGE_CURVE('',#4879,#4843,#2756,.T.);
--#9027=EDGE_CURVE('',#4888,#4884,#2768,.T.);
--#9029=EDGE_CURVE('',#4883,#4884,#2773,.T.);
--#9031=EDGE_CURVE('',#4887,#4883,#2764,.T.);
--#9043=EDGE_CURVE('',#4884,#4883,#2778,.T.);
--#9058=EDGE_CURVE('',#4891,#4892,#2783,.T.);
--#9060=EDGE_CURVE('',#4892,#4891,#2788,.T.);
--#9071=EDGE_CURVE('',#4892,#4848,#2796,.T.);
--#9074=EDGE_CURVE('',#4891,#4847,#2792,.T.);
--#9097=EDGE_CURVE('',#4900,#4896,#2804,.T.);
--#9099=EDGE_CURVE('',#4895,#4896,#2809,.T.);
--#9101=EDGE_CURVE('',#4899,#4895,#2800,.T.);
--#9113=EDGE_CURVE('',#4896,#4895,#2814,.T.);
--#9128=EDGE_CURVE('',#4903,#4904,#2819,.T.);
--#9130=EDGE_CURVE('',#4904,#4903,#2824,.T.);
--#9141=EDGE_CURVE('',#4904,#4852,#2832,.T.);
--#9144=EDGE_CURVE('',#4903,#4851,#2828,.T.);
--#9167=EDGE_CURVE('',#4912,#4908,#2840,.T.);
--#9169=EDGE_CURVE('',#4907,#4908,#2845,.T.);
--#9171=EDGE_CURVE('',#4911,#4907,#2836,.T.);
--#9183=EDGE_CURVE('',#4908,#4907,#2850,.T.);
--#9198=EDGE_CURVE('',#4915,#4916,#2855,.T.);
--#9200=EDGE_CURVE('',#4916,#4915,#2860,.T.);
--#9211=EDGE_CURVE('',#4916,#4856,#2868,.T.);
--#9214=EDGE_CURVE('',#4915,#4855,#2864,.T.);
--#9238=EDGE_CURVE('',#4942,#4937,#2872,.T.);
--#9254=EDGE_CURVE('',#4943,#4944,#2882,.T.);
--#9256=EDGE_CURVE('',#4944,#4943,#2892,.T.);
--#9266=EDGE_CURVE('',#4943,#4575,#2900,.T.);
--#9269=EDGE_CURVE('',#4576,#4944,#2896,.T.);
--#9271=EDGE_CURVE('',#4575,#4576,#2905,.T.);
--#9284=EDGE_CURVE('',#4576,#4575,#2910,.T.);
--#9298=EDGE_CURVE('',#4579,#4580,#2915,.T.);
--#9300=EDGE_CURVE('',#4580,#4579,#2920,.T.);
--#9311=EDGE_CURVE('',#4580,#4520,#2928,.T.);
--#9314=EDGE_CURVE('',#4579,#4519,#2924,.T.);
--#9336=EDGE_CURVE('',#5099,#5100,#2932,.T.);
--#9338=EDGE_CURVE('',#5100,#5104,#2937,.T.);
--#9340=EDGE_CURVE('',#5103,#5104,#2941,.T.);
--#9353=EDGE_CURVE('',#5062,#5064,#2959,.T.);
--#9355=EDGE_CURVE('',#5100,#5062,#3044,.T.);
--#9365=EDGE_CURVE('',#5059,#5060,#2950,.T.);
--#9367=EDGE_CURVE('',#5059,#5062,#2955,.T.);
--#9381=EDGE_CURVE('',#5070,#5072,#2977,.T.);
--#9383=EDGE_CURVE('',#5059,#5070,#3048,.T.);
--#9393=EDGE_CURVE('',#5067,#5068,#2968,.T.);
--#9395=EDGE_CURVE('',#5067,#5070,#2973,.T.);
--#9409=EDGE_CURVE('',#5094,#5096,#2995,.T.);
--#9411=EDGE_CURVE('',#5067,#5094,#3052,.T.);
--#9421=EDGE_CURVE('',#5091,#5092,#2986,.T.);
--#9423=EDGE_CURVE('',#5091,#5094,#2991,.T.);
--#9435=EDGE_CURVE('',#5086,#5088,#3013,.T.);
--#9437=EDGE_CURVE('',#5091,#5086,#3056,.T.);
--#9449=EDGE_CURVE('',#5083,#5084,#3004,.T.);
--#9451=EDGE_CURVE('',#5083,#5086,#3009,.T.);
--#9463=EDGE_CURVE('',#5078,#5080,#3031,.T.);
--#9465=EDGE_CURVE('',#5083,#5078,#3060,.T.);
--#9477=EDGE_CURVE('',#5075,#5076,#3022,.T.);
--#9479=EDGE_CURVE('',#5075,#5078,#3027,.T.);
--#9492=EDGE_CURVE('',#5075,#5104,#3040,.T.);
--#9525=EDGE_CURVE('',#4755,#4751,#3064,.T.);
--#9527=EDGE_CURVE('',#4751,#4752,#3073,.T.);
--#9529=EDGE_CURVE('',#4756,#4752,#3068,.T.);
--#9541=EDGE_CURVE('',#4752,#4751,#3078,.T.);
--#9563=EDGE_CURVE('',#4763,#4759,#3082,.T.);
--#9565=EDGE_CURVE('',#4759,#4760,#3091,.T.);
--#9567=EDGE_CURVE('',#4764,#4760,#3086,.T.);
--#9579=EDGE_CURVE('',#4760,#4759,#3096,.T.);
--#9601=EDGE_CURVE('',#4732,#4728,#3104,.T.);
--#9603=EDGE_CURVE('',#4727,#4728,#3109,.T.);
--#9605=EDGE_CURVE('',#4731,#4727,#3100,.T.);
--#9617=EDGE_CURVE('',#4728,#4727,#3114,.T.);
--#9639=EDGE_CURVE('',#4724,#4720,#3122,.T.);
--#9641=EDGE_CURVE('',#4719,#4720,#3127,.T.);
--#9643=EDGE_CURVE('',#4723,#4719,#3118,.T.);
--#9655=EDGE_CURVE('',#4720,#4719,#3132,.T.);
--#9677=EDGE_CURVE('',#4716,#4712,#3140,.T.);
--#9679=EDGE_CURVE('',#4711,#4712,#3145,.T.);
--#9681=EDGE_CURVE('',#4715,#4711,#3136,.T.);
--#9693=EDGE_CURVE('',#4712,#4711,#3150,.T.);
--#9714=EDGE_CURVE('',#4947,#4948,#3154,.T.);
--#9716=EDGE_CURVE('',#4948,#4960,#3238,.T.);
--#9718=EDGE_CURVE('',#4959,#4960,#3217,.T.);
--#9731=EDGE_CURVE('',#4951,#4952,#3163,.T.);
--#9733=EDGE_CURVE('',#4952,#4948,#3168,.T.);
--#9745=EDGE_CURVE('',#4971,#4972,#3172,.T.);
--#9747=EDGE_CURVE('',#4972,#4952,#3226,.T.);
--#9759=EDGE_CURVE('',#4975,#4976,#3181,.T.);
--#9761=EDGE_CURVE('',#4976,#4972,#3186,.T.);
--#9771=EDGE_CURVE('',#4963,#4964,#3190,.T.);
--#9773=EDGE_CURVE('',#4964,#4976,#3230,.T.);
--#9787=EDGE_CURVE('',#4967,#4968,#3199,.T.);
--#9789=EDGE_CURVE('',#4968,#4964,#3204,.T.);
--#9799=EDGE_CURVE('',#4955,#4956,#3208,.T.);
--#9801=EDGE_CURVE('',#4956,#4968,#3234,.T.);
--#9816=EDGE_CURVE('',#4960,#4956,#3222,.T.);
--#9842=EDGE_CURVE('',#5035,#5036,#3242,.T.);
--#9845=EDGE_CURVE('',#5046,#5048,#3321,.T.);
--#9847=EDGE_CURVE('',#5035,#5046,#3264,.T.);
--#9858=EDGE_CURVE('',#5035,#5038,#3247,.T.);
--#9860=EDGE_CURVE('',#5038,#5040,#3251,.T.);
--#9871=EDGE_CURVE('',#5027,#5030,#3281,.T.);
--#9873=EDGE_CURVE('',#5027,#5038,#3260,.T.);
--#9877=EDGE_CURVE('',#5043,#5046,#3317,.T.);
--#9879=EDGE_CURVE('',#5043,#5054,#3268,.T.);
--#9881=EDGE_CURVE('',#5051,#5054,#3299,.T.);
--#9883=EDGE_CURVE('',#5051,#5030,#3272,.T.);
--#9893=EDGE_CURVE('',#5027,#5028,#3276,.T.);
--#9896=EDGE_CURVE('',#5030,#5032,#3285,.T.);
--#9921=EDGE_CURVE('',#5051,#5052,#3294,.T.);
--#9934=EDGE_CURVE('',#5054,#5056,#3303,.T.);
--#9945=EDGE_CURVE('',#5043,#5044,#3312,.T.);
--#9971=EDGE_CURVE('',#5121,#5107,#3330,.T.);
--#9973=EDGE_CURVE('',#5107,#5108,#3346,.T.);
--#9975=EDGE_CURVE('',#5122,#5108,#3342,.T.);
--#9986=EDGE_CURVE('',#5126,#5112,#3334,.T.);
--#9988=EDGE_CURVE('',#5112,#5107,#3351,.T.);
--#10000=EDGE_CURVE('',#5124,#5110,#3338,.T.);
--#10002=EDGE_CURVE('',#5110,#5112,#3355,.T.);
--#10015=EDGE_CURVE('',#5108,#5110,#3360,.T.);
--#10038=EDGE_CURVE('',#5140,#5136,#3397,.T.);
--#10040=EDGE_CURVE('',#5118,#5140,#3365,.T.);
--#10042=EDGE_CURVE('',#5116,#5118,#3370,.T.);
--#10044=EDGE_CURVE('',#5115,#5116,#3375,.T.);
--#10046=EDGE_CURVE('',#5136,#5115,#3379,.T.);
--#10056=EDGE_CURVE('',#5135,#5136,#3383,.T.);
--#10059=EDGE_CURVE('',#5139,#5140,#3392,.T.);
--#10072=EDGE_CURVE('',#5129,#5115,#3401,.T.);
--#10086=EDGE_CURVE('',#5130,#5116,#3405,.T.);
--#10099=EDGE_CURVE('',#5132,#5118,#3409,.T.);
--#10121=EDGE_CURVE('',#5183,#5184,#3413,.T.);
--#10124=EDGE_CURVE('',#5188,#5186,#3422,.T.);
--#10126=EDGE_CURVE('',#5188,#5183,#3427,.T.);
--#10137=EDGE_CURVE('',#5183,#5143,#3444,.T.);
--#10139=EDGE_CURVE('',#5147,#5143,#3486,.T.);
--#10150=EDGE_CURVE('',#5191,#5172,#3431,.T.);
--#10152=EDGE_CURVE('',#5196,#5191,#3478,.T.);
--#10154=EDGE_CURVE('',#5144,#5196,#3435,.T.);
--#10156=EDGE_CURVE('',#5143,#5144,#3440,.T.);
--#10160=EDGE_CURVE('',#5160,#5188,#3448,.T.);
--#10162=EDGE_CURVE('',#5164,#5160,#3558,.T.);
--#10164=EDGE_CURVE('',#5152,#5164,#3452,.T.);
--#10166=EDGE_CURVE('',#5156,#5152,#3540,.T.);
--#10168=EDGE_CURVE('',#5176,#5156,#3456,.T.);
--#10170=EDGE_CURVE('',#5180,#5176,#3522,.T.);
--#10172=EDGE_CURVE('',#5168,#5180,#3460,.T.);
--#10174=EDGE_CURVE('',#5172,#5168,#3504,.T.);
--#10184=EDGE_CURVE('',#5191,#5192,#3464,.T.);
--#10187=EDGE_CURVE('',#5171,#5172,#3499,.T.);
--#10200=EDGE_CURVE('',#5196,#5194,#3473,.T.);
--#10213=EDGE_CURVE('',#5148,#5144,#3482,.T.);
--#10236=EDGE_CURVE('',#5167,#5168,#3490,.T.);
--#10251=EDGE_CURVE('',#5179,#5180,#3517,.T.);
--#10262=EDGE_CURVE('',#5175,#5176,#3508,.T.);
--#10275=EDGE_CURVE('',#5155,#5156,#3535,.T.);
--#10288=EDGE_CURVE('',#5151,#5152,#3526,.T.);
--#10303=EDGE_CURVE('',#5163,#5164,#3553,.T.);
--#10314=EDGE_CURVE('',#5159,#5160,#3544,.T.);
--#10340=EDGE_CURVE('',#5207,#5199,#3562,.T.);
--#10342=EDGE_CURVE('',#5199,#5200,#3578,.T.);
--#10344=EDGE_CURVE('',#5208,#5200,#3574,.T.);
--#10355=EDGE_CURVE('',#5212,#5204,#3566,.T.);
--#10357=EDGE_CURVE('',#5204,#5199,#3583,.T.);
--#10369=EDGE_CURVE('',#5210,#5202,#3570,.T.);
--#10371=EDGE_CURVE('',#5202,#5204,#3587,.T.);
--#10384=EDGE_CURVE('',#5200,#5202,#3592,.T.);
--#10408=EDGE_CURVE('',#5223,#5215,#3596,.T.);
--#10410=EDGE_CURVE('',#5215,#5216,#3612,.T.);
--#10412=EDGE_CURVE('',#5224,#5216,#3608,.T.);
--#10423=EDGE_CURVE('',#5228,#5220,#3600,.T.);
--#10425=EDGE_CURVE('',#5220,#5215,#3617,.T.);
--#10437=EDGE_CURVE('',#5226,#5218,#3604,.T.);
--#10439=EDGE_CURVE('',#5218,#5220,#3621,.T.);
--#10452=EDGE_CURVE('',#5216,#5218,#3626,.T.);
--#10476=EDGE_CURVE('',#5239,#5231,#3630,.T.);
--#10478=EDGE_CURVE('',#5231,#5232,#3646,.T.);
--#10480=EDGE_CURVE('',#5240,#5232,#3642,.T.);
--#10491=EDGE_CURVE('',#5244,#5236,#3634,.T.);
--#10493=EDGE_CURVE('',#5236,#5231,#3651,.T.);
--#10505=EDGE_CURVE('',#5242,#5234,#3638,.T.);
--#10507=EDGE_CURVE('',#5234,#5236,#3655,.T.);
--#10520=EDGE_CURVE('',#5232,#5234,#3660,.T.);
--#10544=EDGE_CURVE('',#5255,#5247,#3664,.T.);
--#10546=EDGE_CURVE('',#5247,#5248,#3680,.T.);
--#10548=EDGE_CURVE('',#5256,#5248,#3676,.T.);
--#10559=EDGE_CURVE('',#5260,#5252,#3668,.T.);
--#10561=EDGE_CURVE('',#5252,#5247,#3685,.T.);
--#10573=EDGE_CURVE('',#5258,#5250,#3672,.T.);
--#10575=EDGE_CURVE('',#5250,#5252,#3689,.T.);
--#10588=EDGE_CURVE('',#5248,#5250,#3694,.T.);
--#10612=EDGE_CURVE('',#5278,#5264,#3702,.T.);
--#10614=EDGE_CURVE('',#5263,#5264,#3714,.T.);
--#10616=EDGE_CURVE('',#5277,#5263,#3698,.T.);
--#10627=EDGE_CURVE('',#5280,#5266,#3706,.T.);
--#10629=EDGE_CURVE('',#5264,#5266,#3719,.T.);
--#10641=EDGE_CURVE('',#5282,#5268,#3710,.T.);
--#10643=EDGE_CURVE('',#5266,#5268,#3723,.T.);
--#10656=EDGE_CURVE('',#5268,#5263,#3728,.T.);
--#10679=EDGE_CURVE('',#5480,#5476,#3765,.T.);
--#10681=EDGE_CURVE('',#5480,#5271,#3732,.T.);
--#10683=EDGE_CURVE('',#5271,#5272,#3737,.T.);
--#10685=EDGE_CURVE('',#5272,#5274,#3742,.T.);
--#10687=EDGE_CURVE('',#5274,#5476,#3747,.T.);
--#10697=EDGE_CURVE('',#5475,#5476,#3751,.T.);
--#10700=EDGE_CURVE('',#5479,#5480,#3760,.T.);
--#10713=EDGE_CURVE('',#5288,#5274,#3769,.T.);
--#10727=EDGE_CURVE('',#5286,#5272,#3773,.T.);
--#10740=EDGE_CURVE('',#5285,#5271,#3777,.T.);
--#10763=EDGE_CURVE('',#5306,#5292,#3785,.T.);
--#10765=EDGE_CURVE('',#5291,#5292,#3797,.T.);
--#10767=EDGE_CURVE('',#5305,#5291,#3781,.T.);
--#10778=EDGE_CURVE('',#5308,#5294,#3789,.T.);
--#10780=EDGE_CURVE('',#5292,#5294,#3802,.T.);
--#10792=EDGE_CURVE('',#5310,#5296,#3793,.T.);
--#10794=EDGE_CURVE('',#5294,#5296,#3806,.T.);
--#10807=EDGE_CURVE('',#5296,#5291,#3811,.T.);
--#10830=EDGE_CURVE('',#5472,#5468,#3848,.T.);
--#10832=EDGE_CURVE('',#5472,#5299,#3815,.T.);
--#10834=EDGE_CURVE('',#5299,#5300,#3820,.T.);
--#10836=EDGE_CURVE('',#5300,#5302,#3825,.T.);
--#10838=EDGE_CURVE('',#5302,#5468,#3830,.T.);
--#10848=EDGE_CURVE('',#5467,#5468,#3834,.T.);
--#10851=EDGE_CURVE('',#5471,#5472,#3843,.T.);
--#10864=EDGE_CURVE('',#5316,#5302,#3852,.T.);
--#10878=EDGE_CURVE('',#5314,#5300,#3856,.T.);
--#10891=EDGE_CURVE('',#5313,#5299,#3860,.T.);
--#10914=EDGE_CURVE('',#5336,#5328,#3868,.T.);
--#10916=EDGE_CURVE('',#5327,#5328,#3880,.T.);
--#10918=EDGE_CURVE('',#5335,#5327,#3864,.T.);
--#10929=EDGE_CURVE('',#5338,#5330,#3872,.T.);
--#10931=EDGE_CURVE('',#5328,#5330,#3885,.T.);
--#10943=EDGE_CURVE('',#5340,#5332,#3876,.T.);
--#10945=EDGE_CURVE('',#5330,#5332,#3889,.T.);
--#10958=EDGE_CURVE('',#5332,#5327,#3894,.T.);
--#10982=EDGE_CURVE('',#5352,#5344,#3902,.T.);
--#10984=EDGE_CURVE('',#5343,#5344,#3914,.T.);
--#10986=EDGE_CURVE('',#5351,#5343,#3898,.T.);
--#10997=EDGE_CURVE('',#5354,#5346,#3906,.T.);
--#10999=EDGE_CURVE('',#5344,#5346,#3919,.T.);
--#11011=EDGE_CURVE('',#5356,#5348,#3910,.T.);
--#11013=EDGE_CURVE('',#5346,#5348,#3923,.T.);
--#11026=EDGE_CURVE('',#5348,#5343,#3928,.T.);
--#11050=EDGE_CURVE('',#5368,#5360,#3936,.T.);
--#11052=EDGE_CURVE('',#5359,#5360,#3948,.T.);
--#11054=EDGE_CURVE('',#5367,#5359,#3932,.T.);
--#11065=EDGE_CURVE('',#5370,#5362,#3940,.T.);
--#11067=EDGE_CURVE('',#5360,#5362,#3953,.T.);
--#11079=EDGE_CURVE('',#5372,#5364,#3944,.T.);
--#11081=EDGE_CURVE('',#5362,#5364,#3957,.T.);
--#11094=EDGE_CURVE('',#5364,#5359,#3962,.T.);
--#11118=EDGE_CURVE('',#5384,#5376,#3970,.T.);
--#11120=EDGE_CURVE('',#5375,#5376,#3982,.T.);
--#11122=EDGE_CURVE('',#5383,#5375,#3966,.T.);
--#11133=EDGE_CURVE('',#5386,#5378,#3974,.T.);
--#11135=EDGE_CURVE('',#5376,#5378,#3987,.T.);
--#11147=EDGE_CURVE('',#5388,#5380,#3978,.T.);
--#11149=EDGE_CURVE('',#5378,#5380,#3991,.T.);
--#11162=EDGE_CURVE('',#5380,#5375,#3996,.T.);
--#11186=EDGE_CURVE('',#5405,#5391,#4000,.T.);
--#11188=EDGE_CURVE('',#5391,#5392,#4016,.T.);
--#11190=EDGE_CURVE('',#5406,#5392,#4012,.T.);
--#11201=EDGE_CURVE('',#5410,#5396,#4004,.T.);
--#11203=EDGE_CURVE('',#5396,#5391,#4021,.T.);
--#11215=EDGE_CURVE('',#5408,#5394,#4008,.T.);
--#11217=EDGE_CURVE('',#5394,#5396,#4025,.T.);
--#11230=EDGE_CURVE('',#5392,#5394,#4030,.T.);
--#11253=EDGE_CURVE('',#5488,#5484,#4067,.T.);
--#11255=EDGE_CURVE('',#5402,#5488,#4035,.T.);
--#11257=EDGE_CURVE('',#5400,#5402,#4040,.T.);
--#11259=EDGE_CURVE('',#5399,#5400,#4045,.T.);
--#11261=EDGE_CURVE('',#5484,#5399,#4049,.T.);
--#11271=EDGE_CURVE('',#5483,#5484,#4053,.T.);
--#11274=EDGE_CURVE('',#5487,#5488,#4062,.T.);
--#11287=EDGE_CURVE('',#5413,#5399,#4071,.T.);
--#11301=EDGE_CURVE('',#5414,#5400,#4075,.T.);
--#11314=EDGE_CURVE('',#5416,#5402,#4079,.T.);
--#11336=EDGE_CURVE('',#5451,#5452,#4083,.T.);
--#11338=EDGE_CURVE('',#5452,#5456,#4088,.T.);
--#11340=EDGE_CURVE('',#5455,#5456,#4092,.T.);
--#11353=EDGE_CURVE('',#5422,#5424,#4110,.T.);
--#11355=EDGE_CURVE('',#5452,#5422,#4216,.T.);
--#11365=EDGE_CURVE('',#5419,#5420,#4101,.T.);
--#11367=EDGE_CURVE('',#5419,#5422,#4106,.T.);
--#11381=EDGE_CURVE('',#5430,#5432,#4128,.T.);
--#11383=EDGE_CURVE('',#5419,#5430,#4220,.T.);
--#11393=EDGE_CURVE('',#5427,#5428,#4119,.T.);
--#11395=EDGE_CURVE('',#5427,#5430,#4124,.T.);
--#11409=EDGE_CURVE('',#5446,#5448,#4146,.T.);
--#11411=EDGE_CURVE('',#5427,#5446,#4224,.T.);
--#11421=EDGE_CURVE('',#5443,#5444,#4137,.T.);
--#11423=EDGE_CURVE('',#5443,#5446,#4142,.T.);
--#11435=EDGE_CURVE('',#5438,#5440,#4164,.T.);
--#11437=EDGE_CURVE('',#5443,#5438,#4228,.T.);
--#11449=EDGE_CURVE('',#5435,#5436,#4155,.T.);
--#11451=EDGE_CURVE('',#5435,#5438,#4160,.T.);
--#11463=EDGE_CURVE('',#5463,#5464,#4182,.T.);
--#11465=EDGE_CURVE('',#5435,#5464,#4199,.T.);
--#11477=EDGE_CURVE('',#5459,#5460,#4173,.T.);
--#11479=EDGE_CURVE('',#5460,#5464,#4178,.T.);
--#11493=EDGE_CURVE('',#5323,#5319,#4191,.T.);
--#11495=EDGE_CURVE('',#5460,#5319,#4203,.T.);
--#11506=EDGE_CURVE('',#5324,#5320,#4195,.T.);
--#11508=EDGE_CURVE('',#5319,#5320,#4208,.T.);
--#11520=EDGE_CURVE('',#5320,#5456,#4212,.T.);
--#11562=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11550),#11561);
--#11569=PRODUCT_DEFINITION('design','',#11568,#11565);
--#11570=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR PROESOURCE.',#11569);
--#11571=SHAPE_DEFINITION_REPRESENTATION(#11570,#11562);
--ENDSEC;
--END-ISO-10303-21;
-+ISO-10303-21;
-+HEADER;
-+FILE_DESCRIPTION((''),'2;1');
-+FILE_NAME('PROESOURCE','2002-11-04T',('user-01'),(''),
-+'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060',
-+'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060','');
-+FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
-+ENDSEC;
-+DATA;
-+#1=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2=VECTOR('',#1,1.693725393319E1);
-+#3=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
-+#4=LINE('',#3,#2);
-+#5=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6=VECTOR('',#5,9.E0);
-+#7=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
-+#8=LINE('',#7,#6);
-+#9=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
-+#10=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11=DIRECTION('',(1.E0,0.E0,0.E0));
-+#12=AXIS2_PLACEMENT_3D('',#9,#10,#11);
-+#14=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
-+#15=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#16=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#17=AXIS2_PLACEMENT_3D('',#14,#15,#16);
-+#19=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
-+#20=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#21=DIRECTION('',(1.E0,0.E0,0.E0));
-+#22=AXIS2_PLACEMENT_3D('',#19,#20,#21);
-+#24=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
-+#25=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#26=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#27=AXIS2_PLACEMENT_3D('',#24,#25,#26);
-+#29=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
-+#30=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#31=DIRECTION('',(1.E0,0.E0,0.E0));
-+#32=AXIS2_PLACEMENT_3D('',#29,#30,#31);
-+#34=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
-+#35=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#36=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#37=AXIS2_PLACEMENT_3D('',#34,#35,#36);
-+#39=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
-+#40=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#41=DIRECTION('',(1.E0,0.E0,0.E0));
-+#42=AXIS2_PLACEMENT_3D('',#39,#40,#41);
-+#44=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
-+#45=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#46=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#47=AXIS2_PLACEMENT_3D('',#44,#45,#46);
-+#49=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
-+#50=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#51=DIRECTION('',(1.E0,0.E0,0.E0));
-+#52=AXIS2_PLACEMENT_3D('',#49,#50,#51);
-+#54=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
-+#55=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#56=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#57=AXIS2_PLACEMENT_3D('',#54,#55,#56);
-+#59=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
-+#60=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#61=DIRECTION('',(1.E0,0.E0,0.E0));
-+#62=AXIS2_PLACEMENT_3D('',#59,#60,#61);
-+#64=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
-+#65=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#66=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#67=AXIS2_PLACEMENT_3D('',#64,#65,#66);
-+#69=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
-+#70=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#71=DIRECTION('',(1.E0,0.E0,0.E0));
-+#72=AXIS2_PLACEMENT_3D('',#69,#70,#71);
-+#74=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
-+#75=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#76=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#77=AXIS2_PLACEMENT_3D('',#74,#75,#76);
-+#79=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
-+#80=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#81=DIRECTION('',(1.E0,0.E0,0.E0));
-+#82=AXIS2_PLACEMENT_3D('',#79,#80,#81);
-+#84=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
-+#85=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#86=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#87=AXIS2_PLACEMENT_3D('',#84,#85,#86);
-+#89=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
-+#90=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#91=DIRECTION('',(1.E0,0.E0,0.E0));
-+#92=AXIS2_PLACEMENT_3D('',#89,#90,#91);
-+#94=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
-+#95=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#96=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#97=AXIS2_PLACEMENT_3D('',#94,#95,#96);
-+#99=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
-+#100=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#101=DIRECTION('',(1.E0,0.E0,0.E0));
-+#102=AXIS2_PLACEMENT_3D('',#99,#100,#101);
-+#104=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
-+#105=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#106=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#107=AXIS2_PLACEMENT_3D('',#104,#105,#106);
-+#109=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
-+#110=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#111=DIRECTION('',(1.E0,0.E0,0.E0));
-+#112=AXIS2_PLACEMENT_3D('',#109,#110,#111);
-+#114=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
-+#115=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#116=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#117=AXIS2_PLACEMENT_3D('',#114,#115,#116);
-+#119=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
-+#120=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#121=DIRECTION('',(1.E0,0.E0,0.E0));
-+#122=AXIS2_PLACEMENT_3D('',#119,#120,#121);
-+#124=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
-+#125=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#126=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#127=AXIS2_PLACEMENT_3D('',#124,#125,#126);
-+#129=DIRECTION('',(1.E0,0.E0,0.E0));
-+#130=VECTOR('',#129,1.E0);
-+#131=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
-+#132=LINE('',#131,#130);
-+#133=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#134=VECTOR('',#133,3.E0);
-+#135=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
-+#136=LINE('',#135,#134);
-+#137=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#138=VECTOR('',#137,1.6E1);
-+#139=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#140=LINE('',#139,#138);
-+#141=DIRECTION('',(0.E0,0.E0,1.E0));
-+#142=VECTOR('',#141,3.E0);
-+#143=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#144=LINE('',#143,#142);
-+#145=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#146=VECTOR('',#145,1.E0);
-+#147=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
-+#148=LINE('',#147,#146);
-+#149=DIRECTION('',(0.E0,0.E0,1.E0));
-+#150=VECTOR('',#149,3.75E0);
-+#151=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
-+#152=LINE('',#151,#150);
-+#153=DIRECTION('',(1.E0,0.E0,0.E0));
-+#154=VECTOR('',#153,5.E-1);
-+#155=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#156=LINE('',#155,#154);
-+#157=DIRECTION('',(0.E0,0.E0,1.E0));
-+#158=VECTOR('',#157,1.475E1);
-+#159=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
-+#160=LINE('',#159,#158);
-+#161=DIRECTION('',(1.E0,0.E0,0.E0));
-+#162=VECTOR('',#161,1.6E1);
-+#163=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#164=LINE('',#163,#162);
-+#165=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#166=VECTOR('',#165,1.475E1);
-+#167=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#168=LINE('',#167,#166);
-+#169=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#170=VECTOR('',#169,5.E-1);
-+#171=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
-+#172=LINE('',#171,#170);
-+#173=DIRECTION('',(0.E0,0.E0,1.E0));
-+#174=VECTOR('',#173,3.75E0);
-+#175=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
-+#176=LINE('',#175,#174);
-+#177=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
-+#178=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#179=DIRECTION('',(1.E0,0.E0,0.E0));
-+#180=AXIS2_PLACEMENT_3D('',#177,#178,#179);
-+#182=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
-+#183=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#184=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#185=AXIS2_PLACEMENT_3D('',#182,#183,#184);
-+#187=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
-+#188=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#189=DIRECTION('',(1.E0,0.E0,0.E0));
-+#190=AXIS2_PLACEMENT_3D('',#187,#188,#189);
-+#192=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
-+#193=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#194=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#195=AXIS2_PLACEMENT_3D('',#192,#193,#194);
-+#197=DIRECTION('',(1.E0,0.E0,0.E0));
-+#198=VECTOR('',#197,1.3E1);
-+#199=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
-+#200=LINE('',#199,#198);
-+#201=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#202=VECTOR('',#201,2.5625E0);
-+#203=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
-+#204=LINE('',#203,#202);
-+#205=DIRECTION('',(1.E0,0.E0,0.E0));
-+#206=VECTOR('',#205,9.E0);
-+#207=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
-+#208=LINE('',#207,#206);
-+#209=DIRECTION('',(0.E0,0.E0,1.E0));
-+#210=VECTOR('',#209,2.5625E0);
-+#211=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
-+#212=LINE('',#211,#210);
-+#213=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#214=VECTOR('',#213,8.125E-1);
-+#215=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
-+#216=LINE('',#215,#214);
-+#217=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#218=VECTOR('',#217,1.3E1);
-+#219=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
-+#220=LINE('',#219,#218);
-+#221=DIRECTION('',(0.E0,0.E0,1.E0));
-+#222=VECTOR('',#221,8.125E-1);
-+#223=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
-+#224=LINE('',#223,#222);
-+#225=DIRECTION('',(1.E0,0.E0,0.E0));
-+#226=VECTOR('',#225,1.E0);
-+#227=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
-+#228=LINE('',#227,#226);
-+#229=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#230=VECTOR('',#229,7.5E-1);
-+#231=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#232=LINE('',#231,#230);
-+#233=DIRECTION('',(1.E0,0.E0,0.E0));
-+#234=VECTOR('',#233,1.2E1);
-+#235=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
-+#236=LINE('',#235,#234);
-+#237=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#238=VECTOR('',#237,7.5E-1);
-+#239=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
-+#240=LINE('',#239,#238);
-+#241=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#242=VECTOR('',#241,1.E0);
-+#243=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
-+#244=LINE('',#243,#242);
-+#245=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
-+#246=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#247=DIRECTION('',(1.E0,0.E0,0.E0));
-+#248=AXIS2_PLACEMENT_3D('',#245,#246,#247);
-+#250=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
-+#251=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#252=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);
-+#255=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
-+#256=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#257=DIRECTION('',(1.E0,0.E0,0.E0));
-+#258=AXIS2_PLACEMENT_3D('',#255,#256,#257);
-+#260=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
-+#261=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#262=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#263=AXIS2_PLACEMENT_3D('',#260,#261,#262);
-+#265=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
-+#266=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#267=DIRECTION('',(1.E0,0.E0,0.E0));
-+#268=AXIS2_PLACEMENT_3D('',#265,#266,#267);
-+#270=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
-+#271=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#272=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);
-+#275=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
-+#276=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#277=DIRECTION('',(1.E0,0.E0,0.E0));
-+#278=AXIS2_PLACEMENT_3D('',#275,#276,#277);
-+#280=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
-+#281=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#282=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#283=AXIS2_PLACEMENT_3D('',#280,#281,#282);
-+#285=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
-+#286=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#287=DIRECTION('',(1.E0,0.E0,0.E0));
-+#288=AXIS2_PLACEMENT_3D('',#285,#286,#287);
-+#290=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
-+#291=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#292=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);
-+#295=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
-+#296=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#297=DIRECTION('',(1.E0,0.E0,0.E0));
-+#298=AXIS2_PLACEMENT_3D('',#295,#296,#297);
-+#300=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
-+#301=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#302=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#303=AXIS2_PLACEMENT_3D('',#300,#301,#302);
-+#305=DIRECTION('',(1.E0,0.E0,0.E0));
-+#306=VECTOR('',#305,3.E0);
-+#307=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#308=LINE('',#307,#306);
-+#309=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
-+#310=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#311=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#312=AXIS2_PLACEMENT_3D('',#309,#310,#311);
-+#314=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#315=VECTOR('',#314,3.E0);
-+#316=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#317=LINE('',#316,#315);
-+#318=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
-+#319=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#320=DIRECTION('',(0.E0,0.E0,1.E0));
-+#321=AXIS2_PLACEMENT_3D('',#318,#319,#320);
-+#323=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
-+#324=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#325=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
-+#326=AXIS2_PLACEMENT_3D('',#323,#324,#325);
-+#328=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#329=VECTOR('',#328,4.263248410977E0);
-+#330=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
-+#331=LINE('',#330,#329);
-+#332=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
-+#333=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#334=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#335=AXIS2_PLACEMENT_3D('',#332,#333,#334);
-+#337=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
-+#338=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#339=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#340=AXIS2_PLACEMENT_3D('',#337,#338,#339);
-+#342=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#343=VECTOR('',#342,3.15E-1);
-+#344=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
-+#345=LINE('',#344,#343);
-+#346=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
-+#347=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#348=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#349=AXIS2_PLACEMENT_3D('',#346,#347,#348);
-+#351=DIRECTION('',(0.E0,0.E0,1.E0));
-+#352=VECTOR('',#351,3.15E-1);
-+#353=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#354=LINE('',#353,#352);
-+#355=DIRECTION('',(1.E0,0.E0,0.E0));
-+#356=VECTOR('',#355,7.5E-1);
-+#357=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
-+#358=LINE('',#357,#356);
-+#359=DIRECTION('',(0.E0,0.E0,1.E0));
-+#360=VECTOR('',#359,8.1E-1);
-+#361=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
-+#362=LINE('',#361,#360);
-+#363=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#364=VECTOR('',#363,3.875E0);
-+#365=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
-+#366=LINE('',#365,#364);
-+#367=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#368=VECTOR('',#367,8.1E-1);
-+#369=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
-+#370=LINE('',#369,#368);
-+#371=DIRECTION('',(1.E0,0.E0,0.E0));
-+#372=VECTOR('',#371,2.525E-1);
-+#373=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
-+#374=LINE('',#373,#372);
-+#375=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#376=VECTOR('',#375,3.E0);
-+#377=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#378=LINE('',#377,#376);
-+#379=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
-+#380=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#381=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#382=AXIS2_PLACEMENT_3D('',#379,#380,#381);
-+#384=DIRECTION('',(0.E0,0.E0,1.E0));
-+#385=VECTOR('',#384,3.E0);
-+#386=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#387=LINE('',#386,#385);
-+#388=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
-+#389=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#390=DIRECTION('',(1.E0,0.E0,0.E0));
-+#391=AXIS2_PLACEMENT_3D('',#388,#389,#390);
-+#393=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#394=VECTOR('',#393,3.E0);
-+#395=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#396=LINE('',#395,#394);
-+#397=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
-+#398=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#399=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#400=AXIS2_PLACEMENT_3D('',#397,#398,#399);
-+#402=DIRECTION('',(0.E0,0.E0,1.E0));
-+#403=VECTOR('',#402,3.E0);
-+#404=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#405=LINE('',#404,#403);
-+#406=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
-+#407=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#408=DIRECTION('',(1.E0,0.E0,0.E0));
-+#409=AXIS2_PLACEMENT_3D('',#406,#407,#408);
-+#411=DIRECTION('',(1.E0,0.E0,0.E0));
-+#412=VECTOR('',#411,3.E0);
-+#413=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#414=LINE('',#413,#412);
-+#415=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
-+#416=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#417=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#418=AXIS2_PLACEMENT_3D('',#415,#416,#417);
-+#420=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#421=VECTOR('',#420,3.E0);
-+#422=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#423=LINE('',#422,#421);
-+#424=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
-+#425=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#426=DIRECTION('',(0.E0,0.E0,1.E0));
-+#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);
-+#429=DIRECTION('',(1.E0,0.E0,0.E0));
-+#430=VECTOR('',#429,3.E0);
-+#431=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#432=LINE('',#431,#430);
-+#433=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
-+#434=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#435=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);
-+#438=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#439=VECTOR('',#438,3.E0);
-+#440=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#441=LINE('',#440,#439);
-+#442=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
-+#443=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#444=DIRECTION('',(0.E0,0.E0,1.E0));
-+#445=AXIS2_PLACEMENT_3D('',#442,#443,#444);
-+#447=DIRECTION('',(1.E0,0.E0,0.E0));
-+#448=VECTOR('',#447,3.E0);
-+#449=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#450=LINE('',#449,#448);
-+#451=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
-+#452=DIRECTION('',(0.E0,1.E0,0.E0));
-+#453=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#454=AXIS2_PLACEMENT_3D('',#451,#452,#453);
-+#456=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#457=VECTOR('',#456,3.E0);
-+#458=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#459=LINE('',#458,#457);
-+#460=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
-+#461=DIRECTION('',(0.E0,1.E0,0.E0));
-+#462=DIRECTION('',(0.E0,0.E0,1.E0));
-+#463=AXIS2_PLACEMENT_3D('',#460,#461,#462);
-+#465=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#466=VECTOR('',#465,3.E0);
-+#467=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#468=LINE('',#467,#466);
-+#469=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
-+#470=DIRECTION('',(0.E0,1.E0,0.E0));
-+#471=DIRECTION('',(0.E0,0.E0,1.E0));
-+#472=AXIS2_PLACEMENT_3D('',#469,#470,#471);
-+#474=DIRECTION('',(1.E0,0.E0,0.E0));
-+#475=VECTOR('',#474,3.E0);
-+#476=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#477=LINE('',#476,#475);
-+#478=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
-+#479=DIRECTION('',(0.E0,1.E0,0.E0));
-+#480=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#481=AXIS2_PLACEMENT_3D('',#478,#479,#480);
-+#483=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#484=VECTOR('',#483,3.E0);
-+#485=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#486=LINE('',#485,#484);
-+#487=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
-+#488=DIRECTION('',(0.E0,1.E0,0.E0));
-+#489=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#490=AXIS2_PLACEMENT_3D('',#487,#488,#489);
-+#492=DIRECTION('',(0.E0,0.E0,1.E0));
-+#493=VECTOR('',#492,3.E0);
-+#494=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#495=LINE('',#494,#493);
-+#496=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
-+#497=DIRECTION('',(0.E0,1.E0,0.E0));
-+#498=DIRECTION('',(1.E0,0.E0,0.E0));
-+#499=AXIS2_PLACEMENT_3D('',#496,#497,#498);
-+#501=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#502=VECTOR('',#501,3.E0);
-+#503=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#504=LINE('',#503,#502);
-+#505=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
-+#506=DIRECTION('',(0.E0,1.E0,0.E0));
-+#507=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#508=AXIS2_PLACEMENT_3D('',#505,#506,#507);
-+#510=DIRECTION('',(0.E0,0.E0,1.E0));
-+#511=VECTOR('',#510,3.E0);
-+#512=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#513=LINE('',#512,#511);
-+#514=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
-+#515=DIRECTION('',(0.E0,1.E0,0.E0));
-+#516=DIRECTION('',(1.E0,0.E0,0.E0));
-+#517=AXIS2_PLACEMENT_3D('',#514,#515,#516);
-+#519=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#520=VECTOR('',#519,3.E0);
-+#521=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#522=LINE('',#521,#520);
-+#523=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
-+#524=DIRECTION('',(0.E0,1.E0,0.E0));
-+#525=DIRECTION('',(0.E0,0.E0,1.E0));
-+#526=AXIS2_PLACEMENT_3D('',#523,#524,#525);
-+#528=DIRECTION('',(1.E0,0.E0,0.E0));
-+#529=VECTOR('',#528,3.E0);
-+#530=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#531=LINE('',#530,#529);
-+#532=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
-+#533=DIRECTION('',(0.E0,1.E0,0.E0));
-+#534=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#535=AXIS2_PLACEMENT_3D('',#532,#533,#534);
-+#537=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#538=VECTOR('',#537,3.E0);
-+#539=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#540=LINE('',#539,#538);
-+#541=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
-+#542=DIRECTION('',(0.E0,1.E0,0.E0));
-+#543=DIRECTION('',(0.E0,0.E0,1.E0));
-+#544=AXIS2_PLACEMENT_3D('',#541,#542,#543);
-+#546=DIRECTION('',(1.E0,0.E0,0.E0));
-+#547=VECTOR('',#546,3.E0);
-+#548=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#549=LINE('',#548,#547);
-+#550=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
-+#551=DIRECTION('',(0.E0,1.E0,0.E0));
-+#552=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#553=AXIS2_PLACEMENT_3D('',#550,#551,#552);
-+#555=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#556=VECTOR('',#555,3.E0);
-+#557=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#558=LINE('',#557,#556);
-+#559=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
-+#560=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#561=DIRECTION('',(0.E0,0.E0,1.E0));
-+#562=AXIS2_PLACEMENT_3D('',#559,#560,#561);
-+#564=DIRECTION('',(1.E0,0.E0,0.E0));
-+#565=VECTOR('',#564,3.E0);
-+#566=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#567=LINE('',#566,#565);
-+#568=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
-+#569=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#570=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);
-+#573=DIRECTION('',(0.E0,0.E0,1.E0));
-+#574=VECTOR('',#573,3.1E-1);
-+#575=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#576=LINE('',#575,#574);
-+#577=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
-+#578=DIRECTION('',(0.E0,1.E0,0.E0));
-+#579=DIRECTION('',(1.E0,0.E0,-3.956251312695E-14));
-+#580=AXIS2_PLACEMENT_3D('',#577,#578,#579);
-+#582=DIRECTION('',(2.292073341162E-14,0.E0,-1.E0));
-+#583=VECTOR('',#582,3.1E-1);
-+#584=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
-+#585=LINE('',#584,#583);
-+#586=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#587=VECTOR('',#586,2.425E-1);
-+#588=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
-+#589=LINE('',#588,#587);
-+#590=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#591=VECTOR('',#590,8.E-1);
-+#592=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
-+#593=LINE('',#592,#591);
-+#594=DIRECTION('',(1.E0,0.E0,0.E0));
-+#595=VECTOR('',#594,3.865E0);
-+#596=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
-+#597=LINE('',#596,#595);
-+#598=DIRECTION('',(0.E0,0.E0,1.E0));
-+#599=VECTOR('',#598,8.E-1);
-+#600=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
-+#601=LINE('',#600,#599);
-+#602=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#603=VECTOR('',#602,7.4E-1);
-+#604=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
-+#605=LINE('',#604,#603);
-+#606=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#607=VECTOR('',#606,4.263248410977E0);
-+#608=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
-+#609=LINE('',#608,#607);
-+#610=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
-+#611=DIRECTION('',(0.E0,1.E0,0.E0));
-+#612=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
-+#613=AXIS2_PLACEMENT_3D('',#610,#611,#612);
-+#615=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
-+#616=DIRECTION('',(0.E0,1.E0,0.E0));
-+#617=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#618=AXIS2_PLACEMENT_3D('',#615,#616,#617);
-+#620=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
-+#621=DIRECTION('',(0.E0,1.E0,0.E0));
-+#622=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811866E-1));
-+#623=AXIS2_PLACEMENT_3D('',#620,#621,#622);
-+#625=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#626=VECTOR('',#625,4.263248410977E0);
-+#627=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
-+#628=LINE('',#627,#626);
-+#629=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
-+#630=DIRECTION('',(0.E0,1.E0,0.E0));
-+#631=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#632=AXIS2_PLACEMENT_3D('',#629,#630,#631);
-+#634=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
-+#635=DIRECTION('',(0.E0,1.E0,0.E0));
-+#636=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
-+#637=AXIS2_PLACEMENT_3D('',#634,#635,#636);
-+#639=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
-+#640=DIRECTION('',(0.E0,1.E0,0.E0));
-+#641=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#642=AXIS2_PLACEMENT_3D('',#639,#640,#641);
-+#644=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
-+#645=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#646=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#647=AXIS2_PLACEMENT_3D('',#644,#645,#646);
-+#649=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#650=VECTOR('',#649,4.263248410977E0);
-+#651=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
-+#652=LINE('',#651,#650);
-+#653=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
-+#654=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#655=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811866E-1));
-+#656=AXIS2_PLACEMENT_3D('',#653,#654,#655);
-+#658=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
-+#659=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#660=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
-+#661=AXIS2_PLACEMENT_3D('',#658,#659,#660);
-+#663=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#664=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#665=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#666=AXIS2_PLACEMENT_3D('',#663,#664,#665);
-+#668=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#669=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#670=DIRECTION('',(1.E0,0.E0,0.E0));
-+#671=AXIS2_PLACEMENT_3D('',#668,#669,#670);
-+#673=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#674=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#675=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#676=AXIS2_PLACEMENT_3D('',#673,#674,#675);
-+#678=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#679=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#680=DIRECTION('',(1.E0,0.E0,0.E0));
-+#681=AXIS2_PLACEMENT_3D('',#678,#679,#680);
-+#683=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#684=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#685=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#686=AXIS2_PLACEMENT_3D('',#683,#684,#685);
-+#688=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#689=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#690=DIRECTION('',(1.E0,0.E0,0.E0));
-+#691=AXIS2_PLACEMENT_3D('',#688,#689,#690);
-+#693=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#694=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#695=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#696=AXIS2_PLACEMENT_3D('',#693,#694,#695);
-+#698=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#699=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#700=DIRECTION('',(1.E0,0.E0,0.E0));
-+#701=AXIS2_PLACEMENT_3D('',#698,#699,#700);
-+#703=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#704=DIRECTION('',(0.E0,0.E0,1.E0));
-+#705=DIRECTION('',(1.E0,0.E0,0.E0));
-+#706=AXIS2_PLACEMENT_3D('',#703,#704,#705);
-+#708=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#709=DIRECTION('',(0.E0,0.E0,1.E0));
-+#710=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#711=AXIS2_PLACEMENT_3D('',#708,#709,#710);
-+#713=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#714=DIRECTION('',(0.E0,0.E0,1.E0));
-+#715=DIRECTION('',(1.E0,0.E0,0.E0));
-+#716=AXIS2_PLACEMENT_3D('',#713,#714,#715);
-+#718=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#719=DIRECTION('',(0.E0,0.E0,1.E0));
-+#720=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#721=AXIS2_PLACEMENT_3D('',#718,#719,#720);
-+#723=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#724=DIRECTION('',(0.E0,0.E0,1.E0));
-+#725=DIRECTION('',(1.E0,0.E0,0.E0));
-+#726=AXIS2_PLACEMENT_3D('',#723,#724,#725);
-+#728=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#729=DIRECTION('',(0.E0,0.E0,1.E0));
-+#730=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#731=AXIS2_PLACEMENT_3D('',#728,#729,#730);
-+#733=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#734=DIRECTION('',(0.E0,0.E0,1.E0));
-+#735=DIRECTION('',(1.E0,0.E0,0.E0));
-+#736=AXIS2_PLACEMENT_3D('',#733,#734,#735);
-+#738=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#739=DIRECTION('',(0.E0,0.E0,1.E0));
-+#740=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#741=AXIS2_PLACEMENT_3D('',#738,#739,#740);
-+#743=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#744=VECTOR('',#743,1.029563014099E1);
-+#745=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#746=LINE('',#745,#744);
-+#747=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#748=VECTOR('',#747,2.E0);
-+#749=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#750=LINE('',#749,#748);
-+#751=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#752=VECTOR('',#751,2.E0);
-+#753=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#754=LINE('',#753,#752);
-+#755=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#756=VECTOR('',#755,1.029563014099E1);
-+#757=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#758=LINE('',#757,#756);
-+#759=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#760=VECTOR('',#759,3.895172754280E0);
-+#761=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
-+#762=LINE('',#761,#760);
-+#763=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
-+#764=VECTOR('',#763,6.863753427325E0);
-+#765=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
-+#766=LINE('',#765,#764);
-+#767=DIRECTION('',(1.E0,0.E0,0.E0));
-+#768=VECTOR('',#767,5.618394209466E-1);
-+#769=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
-+#770=LINE('',#769,#768);
-+#771=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#772=VECTOR('',#771,6.E0);
-+#773=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
-+#774=LINE('',#773,#772);
-+#775=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
-+#776=VECTOR('',#775,6.863753427325E0);
-+#777=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
-+#778=LINE('',#777,#776);
-+#779=DIRECTION('',(1.E0,0.E0,0.E0));
-+#780=VECTOR('',#779,3.895172754280E0);
-+#781=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
-+#782=LINE('',#781,#780);
-+#783=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#784=VECTOR('',#783,6.E0);
-+#785=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
-+#786=LINE('',#785,#784);
-+#787=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#788=VECTOR('',#787,5.618394209466E-1);
-+#789=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
-+#790=LINE('',#789,#788);
-+#791=DIRECTION('',(0.E0,0.E0,1.E0));
-+#792=VECTOR('',#791,2.5E-1);
-+#793=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
-+#794=LINE('',#793,#792);
-+#795=DIRECTION('',(0.E0,0.E0,1.E0));
-+#796=VECTOR('',#795,2.5E-1);
-+#797=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
-+#798=LINE('',#797,#796);
-+#799=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
-+#800=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#801=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#802=AXIS2_PLACEMENT_3D('',#799,#800,#801);
-+#804=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
-+#805=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#806=DIRECTION('',(1.E0,0.E0,0.E0));
-+#807=AXIS2_PLACEMENT_3D('',#804,#805,#806);
-+#809=DIRECTION('',(0.E0,0.E0,1.E0));
-+#810=VECTOR('',#809,2.E0);
-+#811=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
-+#812=LINE('',#811,#810);
-+#813=DIRECTION('',(0.E0,0.E0,1.E0));
-+#814=VECTOR('',#813,2.E0);
-+#815=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
-+#816=LINE('',#815,#814);
-+#817=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
-+#818=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#819=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#820=AXIS2_PLACEMENT_3D('',#817,#818,#819);
-+#822=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
-+#823=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#824=DIRECTION('',(1.E0,0.E0,0.E0));
-+#825=AXIS2_PLACEMENT_3D('',#822,#823,#824);
-+#827=DIRECTION('',(0.E0,1.E0,0.E0));
-+#828=VECTOR('',#827,5.E0);
-+#829=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
-+#830=LINE('',#829,#828);
-+#831=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#832=VECTOR('',#831,1.75E0);
-+#833=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#834=LINE('',#833,#832);
-+#835=DIRECTION('',(0.E0,1.E0,0.E0));
-+#836=VECTOR('',#835,5.E0);
-+#837=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
-+#838=LINE('',#837,#836);
-+#839=DIRECTION('',(0.E0,1.E0,0.E0));
-+#840=VECTOR('',#839,1.E1);
-+#841=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
-+#842=LINE('',#841,#840);
-+#843=DIRECTION('',(1.E0,0.E0,0.E0));
-+#844=VECTOR('',#843,2.E0);
-+#845=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
-+#846=LINE('',#845,#844);
-+#847=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#848=VECTOR('',#847,1.029563014099E1);
-+#849=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
-+#850=LINE('',#849,#848);
-+#851=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#852=VECTOR('',#851,1.E0);
-+#853=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
-+#854=LINE('',#853,#852);
-+#855=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#856=VECTOR('',#855,1.972007605460E-1);
-+#857=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
-+#858=LINE('',#857,#856);
-+#859=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#860=VECTOR('',#859,2.059126028197E0);
-+#861=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
-+#862=LINE('',#861,#860);
-+#863=DIRECTION('',(1.E0,0.E0,0.E0));
-+#864=VECTOR('',#863,1.197200760546E0);
-+#865=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
-+#866=LINE('',#865,#864);
-+#867=DIRECTION('',(0.E0,1.E0,0.E0));
-+#868=VECTOR('',#867,6.8E0);
-+#869=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
-+#870=LINE('',#869,#868);
-+#871=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#872=VECTOR('',#871,1.3E0);
-+#873=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
-+#874=LINE('',#873,#872);
-+#875=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#876=VECTOR('',#875,4.3E0);
-+#877=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
-+#878=LINE('',#877,#876);
-+#879=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#880=VECTOR('',#879,5.773502691896E0);
-+#881=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#882=LINE('',#881,#880);
-+#883=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
-+#884=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#885=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#886=AXIS2_PLACEMENT_3D('',#883,#884,#885);
-+#888=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
-+#889=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#890=DIRECTION('',(1.E0,0.E0,0.E0));
-+#891=AXIS2_PLACEMENT_3D('',#888,#889,#890);
-+#893=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
-+#894=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#895=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#896=AXIS2_PLACEMENT_3D('',#893,#894,#895);
-+#898=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
-+#899=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#900=DIRECTION('',(1.E0,0.E0,0.E0));
-+#901=AXIS2_PLACEMENT_3D('',#898,#899,#900);
-+#903=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#904=VECTOR('',#903,4.531373033403E0);
-+#905=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
-+#906=LINE('',#905,#904);
-+#907=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#908=VECTOR('',#907,9.E0);
-+#909=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
-+#910=LINE('',#909,#908);
-+#911=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#912=VECTOR('',#911,4.531373033403E0);
-+#913=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
-+#914=LINE('',#913,#912);
-+#915=DIRECTION('',(0.E0,0.E0,1.E0));
-+#916=VECTOR('',#915,3.E0);
-+#917=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
-+#918=LINE('',#917,#916);
-+#919=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#920=VECTOR('',#919,1.6E1);
-+#921=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
-+#922=LINE('',#921,#920);
-+#923=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#924=VECTOR('',#923,3.E0);
-+#925=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
-+#926=LINE('',#925,#924);
-+#927=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
-+#928=DIRECTION('',(0.E0,1.E0,0.E0));
-+#929=DIRECTION('',(1.E0,0.E0,0.E0));
-+#930=AXIS2_PLACEMENT_3D('',#927,#928,#929);
-+#932=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
-+#933=DIRECTION('',(0.E0,1.E0,0.E0));
-+#934=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#935=AXIS2_PLACEMENT_3D('',#932,#933,#934);
-+#937=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
-+#938=DIRECTION('',(0.E0,1.E0,0.E0));
-+#939=DIRECTION('',(1.E0,0.E0,0.E0));
-+#940=AXIS2_PLACEMENT_3D('',#937,#938,#939);
-+#942=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
-+#943=DIRECTION('',(0.E0,1.E0,0.E0));
-+#944=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#945=AXIS2_PLACEMENT_3D('',#942,#943,#944);
-+#947=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#948=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#949=DIRECTION('',(1.E0,0.E0,0.E0));
-+#950=AXIS2_PLACEMENT_3D('',#947,#948,#949);
-+#952=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#953=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#954=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#955=AXIS2_PLACEMENT_3D('',#952,#953,#954);
-+#957=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#958=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#959=DIRECTION('',(1.E0,0.E0,0.E0));
-+#960=AXIS2_PLACEMENT_3D('',#957,#958,#959);
-+#962=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#963=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#964=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#965=AXIS2_PLACEMENT_3D('',#962,#963,#964);
-+#967=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#968=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#969=DIRECTION('',(1.E0,0.E0,0.E0));
-+#970=AXIS2_PLACEMENT_3D('',#967,#968,#969);
-+#972=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#973=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#974=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#975=AXIS2_PLACEMENT_3D('',#972,#973,#974);
-+#977=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#978=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#979=DIRECTION('',(1.E0,0.E0,0.E0));
-+#980=AXIS2_PLACEMENT_3D('',#977,#978,#979);
-+#982=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#983=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#984=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#985=AXIS2_PLACEMENT_3D('',#982,#983,#984);
-+#987=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#988=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#989=DIRECTION('',(1.E0,0.E0,0.E0));
-+#990=AXIS2_PLACEMENT_3D('',#987,#988,#989);
-+#992=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#993=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#994=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#995=AXIS2_PLACEMENT_3D('',#992,#993,#994);
-+#997=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#998=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#999=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1000=AXIS2_PLACEMENT_3D('',#997,#998,#999);
-+#1002=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#1003=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1004=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1005=AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);
-+#1007=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#1008=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1009=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1010=AXIS2_PLACEMENT_3D('',#1007,#1008,#1009);
-+#1012=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#1013=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1014=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1015=AXIS2_PLACEMENT_3D('',#1012,#1013,#1014);
-+#1017=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#1018=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1019=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1020=AXIS2_PLACEMENT_3D('',#1017,#1018,#1019);
-+#1022=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#1023=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1024=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1025=AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);
-+#1027=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#1028=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1029=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1030=AXIS2_PLACEMENT_3D('',#1027,#1028,#1029);
-+#1032=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#1033=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1034=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1035=AXIS2_PLACEMENT_3D('',#1032,#1033,#1034);
-+#1037=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#1038=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1039=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1040=AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);
-+#1042=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#1043=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1044=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1045=AXIS2_PLACEMENT_3D('',#1042,#1043,#1044);
-+#1047=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#1048=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1049=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1050=AXIS2_PLACEMENT_3D('',#1047,#1048,#1049);
-+#1052=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#1053=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1054=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1055=AXIS2_PLACEMENT_3D('',#1052,#1053,#1054);
-+#1057=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#1058=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1059=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1060=AXIS2_PLACEMENT_3D('',#1057,#1058,#1059);
-+#1062=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#1063=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1064=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1065=AXIS2_PLACEMENT_3D('',#1062,#1063,#1064);
-+#1067=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1068=VECTOR('',#1067,2.5625E0);
-+#1069=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
-+#1070=LINE('',#1069,#1068);
-+#1071=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1072=VECTOR('',#1071,1.3E1);
-+#1073=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
-+#1074=LINE('',#1073,#1072);
-+#1075=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1076=VECTOR('',#1075,2.5625E0);
-+#1077=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
-+#1078=LINE('',#1077,#1076);
-+#1079=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1080=VECTOR('',#1079,9.E0);
-+#1081=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
-+#1082=LINE('',#1081,#1080);
-+#1083=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1084=VECTOR('',#1083,1.3E1);
-+#1085=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
-+#1086=LINE('',#1085,#1084);
-+#1087=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1088=VECTOR('',#1087,8.125E-1);
-+#1089=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
-+#1090=LINE('',#1089,#1088);
-+#1091=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1092=VECTOR('',#1091,1.E0);
-+#1093=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
-+#1094=LINE('',#1093,#1092);
-+#1095=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1096=VECTOR('',#1095,7.5E-1);
-+#1097=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#1098=LINE('',#1097,#1096);
-+#1099=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1100=VECTOR('',#1099,7.5E-1);
-+#1101=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
-+#1102=LINE('',#1101,#1100);
-+#1103=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1104=VECTOR('',#1103,1.E0);
-+#1105=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
-+#1106=LINE('',#1105,#1104);
-+#1107=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1108=VECTOR('',#1107,8.125E-1);
-+#1109=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
-+#1110=LINE('',#1109,#1108);
-+#1111=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#1112=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1113=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1114=AXIS2_PLACEMENT_3D('',#1111,#1112,#1113);
-+#1116=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#1117=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1118=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1119=AXIS2_PLACEMENT_3D('',#1116,#1117,#1118);
-+#1121=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#1122=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1123=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1124=AXIS2_PLACEMENT_3D('',#1121,#1122,#1123);
-+#1126=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#1127=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1128=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1129=AXIS2_PLACEMENT_3D('',#1126,#1127,#1128);
-+#1131=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#1132=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1133=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1134=AXIS2_PLACEMENT_3D('',#1131,#1132,#1133);
-+#1136=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#1137=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1138=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1139=AXIS2_PLACEMENT_3D('',#1136,#1137,#1138);
-+#1141=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#1142=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1143=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1144=AXIS2_PLACEMENT_3D('',#1141,#1142,#1143);
-+#1146=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#1147=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1148=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1149=AXIS2_PLACEMENT_3D('',#1146,#1147,#1148);
-+#1151=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#1152=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1153=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1154=AXIS2_PLACEMENT_3D('',#1151,#1152,#1153);
-+#1156=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#1157=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1158=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1159=AXIS2_PLACEMENT_3D('',#1156,#1157,#1158);
-+#1161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#1162=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1163=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163);
-+#1166=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#1167=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1168=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168);
-+#1171=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1172=VECTOR('',#1171,2.886751345948E0);
-+#1173=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
-+#1174=LINE('',#1173,#1172);
-+#1175=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1176=VECTOR('',#1175,2.25E0);
-+#1177=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
-+#1178=LINE('',#1177,#1176);
-+#1179=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1180=VECTOR('',#1179,1.75E0);
-+#1181=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
-+#1182=LINE('',#1181,#1180);
-+#1183=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1184=VECTOR('',#1183,5.E-1);
-+#1185=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#1186=LINE('',#1185,#1184);
-+#1187=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1188=VECTOR('',#1187,1.475E1);
-+#1189=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
-+#1190=LINE('',#1189,#1188);
-+#1191=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1192=VECTOR('',#1191,1.6E1);
-+#1193=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
-+#1194=LINE('',#1193,#1192);
-+#1195=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1196=VECTOR('',#1195,1.475E1);
-+#1197=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
-+#1198=LINE('',#1197,#1196);
-+#1199=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1200=VECTOR('',#1199,5.E-1);
-+#1201=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
-+#1202=LINE('',#1201,#1200);
-+#1203=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1204=VECTOR('',#1203,1.75E0);
-+#1205=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
-+#1206=LINE('',#1205,#1204);
-+#1207=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1208=VECTOR('',#1207,2.25E0);
-+#1209=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
-+#1210=LINE('',#1209,#1208);
-+#1211=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1212=VECTOR('',#1211,2.886751345948E0);
-+#1213=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
-+#1214=LINE('',#1213,#1212);
-+#1215=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1216=VECTOR('',#1215,1.75E0);
-+#1217=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
-+#1218=LINE('',#1217,#1216);
-+#1219=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1220=VECTOR('',#1219,2.886751345948E0);
-+#1221=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
-+#1222=LINE('',#1221,#1220);
-+#1223=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1224=VECTOR('',#1223,3.E0);
-+#1225=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
-+#1226=LINE('',#1225,#1224);
-+#1227=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1228=VECTOR('',#1227,1.4E1);
-+#1229=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#1230=LINE('',#1229,#1228);
-+#1231=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1232=VECTOR('',#1231,3.E0);
-+#1233=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
-+#1234=LINE('',#1233,#1232);
-+#1235=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1236=VECTOR('',#1235,2.886751345948E0);
-+#1237=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
-+#1238=LINE('',#1237,#1236);
-+#1239=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1240=VECTOR('',#1239,1.75E0);
-+#1241=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
-+#1242=LINE('',#1241,#1240);
-+#1243=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1244=VECTOR('',#1243,2.5E-1);
-+#1245=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
-+#1246=LINE('',#1245,#1244);
-+#1247=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1248=VECTOR('',#1247,2.5E-1);
-+#1249=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
-+#1250=LINE('',#1249,#1248);
-+#1251=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#1252=VECTOR('',#1251,1.154700538379E-1);
-+#1253=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
-+#1254=LINE('',#1253,#1252);
-+#1255=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
-+#1256=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1257=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1258=AXIS2_PLACEMENT_3D('',#1255,#1256,#1257);
-+#1260=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#1261=VECTOR('',#1260,1.154700538379E-1);
-+#1262=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
-+#1263=LINE('',#1262,#1261);
-+#1264=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
-+#1265=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1266=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1267=AXIS2_PLACEMENT_3D('',#1264,#1265,#1266);
-+#1269=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1270=VECTOR('',#1269,2.5E-1);
-+#1271=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
-+#1272=LINE('',#1271,#1270);
-+#1273=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1274=VECTOR('',#1273,2.5E-1);
-+#1275=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
-+#1276=LINE('',#1275,#1274);
-+#1277=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#1278=VECTOR('',#1277,1.154700538379E-1);
-+#1279=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
-+#1280=LINE('',#1279,#1278);
-+#1281=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
-+#1282=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1283=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);
-+#1286=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#1287=VECTOR('',#1286,1.154700538379E-1);
-+#1288=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
-+#1289=LINE('',#1288,#1287);
-+#1290=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
-+#1291=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1292=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1293=AXIS2_PLACEMENT_3D('',#1290,#1291,#1292);
-+#1295=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1296=VECTOR('',#1295,1.5E0);
-+#1297=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
-+#1298=LINE('',#1297,#1296);
-+#1299=CARTESIAN_POINT('',(2.046862696660E1,0.E0,7.E0));
-+#1300=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1301=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1302=AXIS2_PLACEMENT_3D('',#1299,#1300,#1301);
-+#1304=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1305=VECTOR('',#1304,1.5E0);
-+#1306=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
-+#1307=LINE('',#1306,#1305);
-+#1308=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,7.E0));
-+#1309=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1310=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
-+#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);
-+#1313=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
-+#1314=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1315=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
-+#1316=AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);
-+#1318=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1319=VECTOR('',#1318,1.5E0);
-+#1320=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
-+#1321=LINE('',#1320,#1319);
-+#1322=CARTESIAN_POINT('',(1.65E1,1.5E0,7.5E0));
-+#1323=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1324=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1325=AXIS2_PLACEMENT_3D('',#1322,#1323,#1324);
-+#1327=CARTESIAN_POINT('',(7.5E0,1.5E0,7.5E0));
-+#1328=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1329=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
-+#1330=AXIS2_PLACEMENT_3D('',#1327,#1328,#1329);
-+#1332=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1333=VECTOR('',#1332,1.5E0);
-+#1334=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
-+#1335=LINE('',#1334,#1333);
-+#1336=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
-+#1337=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1338=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1339=AXIS2_PLACEMENT_3D('',#1336,#1337,#1338);
-+#1341=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1342=VECTOR('',#1341,1.5E0);
-+#1343=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
-+#1344=LINE('',#1343,#1342);
-+#1345=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,7.E0));
-+#1346=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1347=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1348=AXIS2_PLACEMENT_3D('',#1345,#1346,#1347);
-+#1350=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1351=VECTOR('',#1350,1.5E0);
-+#1352=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
-+#1353=LINE('',#1352,#1351);
-+#1354=CARTESIAN_POINT('',(3.531373033403E0,0.E0,7.E0));
-+#1355=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1356=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
-+#1357=AXIS2_PLACEMENT_3D('',#1354,#1355,#1356);
-+#1359=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1360=VECTOR('',#1359,1.5E0);
-+#1361=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
-+#1362=LINE('',#1361,#1360);
-+#1363=CARTESIAN_POINT('',(-1.E0,1.5E0,7.E0));
-+#1364=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1365=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1366=AXIS2_PLACEMENT_3D('',#1363,#1364,#1365);
-+#1368=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1369=VECTOR('',#1368,1.5E0);
-+#1370=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
-+#1371=LINE('',#1370,#1369);
-+#1372=CARTESIAN_POINT('',(-1.E0,0.E0,7.E0));
-+#1373=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1374=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1375=AXIS2_PLACEMENT_3D('',#1372,#1373,#1374);
-+#1377=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1378=VECTOR('',#1377,1.5E0);
-+#1379=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
-+#1380=LINE('',#1379,#1378);
-+#1381=CARTESIAN_POINT('',(-1.E0,0.E0,1.325E1));
-+#1382=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1383=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1384=AXIS2_PLACEMENT_3D('',#1381,#1382,#1383);
-+#1386=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1387=VECTOR('',#1386,1.5E0);
-+#1388=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
-+#1389=LINE('',#1388,#1387);
-+#1390=CARTESIAN_POINT('',(-1.E0,1.5E0,1.325E1));
-+#1391=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1392=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1393=AXIS2_PLACEMENT_3D('',#1390,#1391,#1392);
-+#1395=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1396=VECTOR('',#1395,1.5E0);
-+#1397=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
-+#1398=LINE('',#1397,#1396);
-+#1399=CARTESIAN_POINT('',(3.5E0,1.5E0,1.325E1));
-+#1400=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1401=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1402=AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);
-+#1404=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1405=VECTOR('',#1404,1.5E0);
-+#1406=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
-+#1407=LINE('',#1406,#1405);
-+#1408=CARTESIAN_POINT('',(3.5E0,0.E0,1.325E1));
-+#1409=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1410=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1411=AXIS2_PLACEMENT_3D('',#1408,#1409,#1410);
-+#1413=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1414=VECTOR('',#1413,1.5E0);
-+#1415=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
-+#1416=LINE('',#1415,#1414);
-+#1417=CARTESIAN_POINT('',(5.5E0,1.5E0,2.19375E1));
-+#1418=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1419=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1420=AXIS2_PLACEMENT_3D('',#1417,#1418,#1419);
-+#1422=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1423=VECTOR('',#1422,1.5E0);
-+#1424=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
-+#1425=LINE('',#1424,#1423);
-+#1426=CARTESIAN_POINT('',(5.5E0,0.E0,2.19375E1));
-+#1427=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1428=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1429=AXIS2_PLACEMENT_3D('',#1426,#1427,#1428);
-+#1431=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1432=VECTOR('',#1431,1.5E0);
-+#1433=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
-+#1434=LINE('',#1433,#1432);
-+#1435=CARTESIAN_POINT('',(1.85E1,0.E0,2.19375E1));
-+#1436=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1437=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1438=AXIS2_PLACEMENT_3D('',#1435,#1436,#1437);
-+#1440=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1441=VECTOR('',#1440,1.5E0);
-+#1442=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
-+#1443=LINE('',#1442,#1441);
-+#1444=CARTESIAN_POINT('',(1.85E1,1.5E0,2.19375E1));
-+#1445=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1446=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);
-+#1449=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1450=VECTOR('',#1449,1.5E0);
-+#1451=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
-+#1452=LINE('',#1451,#1450);
-+#1453=CARTESIAN_POINT('',(1.65E1,1.5E0,2.45E1));
-+#1454=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1455=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1456=AXIS2_PLACEMENT_3D('',#1453,#1454,#1455);
-+#1458=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1459=VECTOR('',#1458,1.5E0);
-+#1460=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
-+#1461=LINE('',#1460,#1459);
-+#1462=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
-+#1463=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1464=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1465=AXIS2_PLACEMENT_3D('',#1462,#1463,#1464);
-+#1467=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1468=VECTOR('',#1467,1.5E0);
-+#1469=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
-+#1470=LINE('',#1469,#1468);
-+#1471=CARTESIAN_POINT('',(7.5E0,1.5E0,2.45E1));
-+#1472=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1473=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473);
-+#1476=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1477=VECTOR('',#1476,1.5E0);
-+#1478=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
-+#1479=LINE('',#1478,#1477);
-+#1480=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
-+#1481=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1482=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1483=AXIS2_PLACEMENT_3D('',#1480,#1481,#1482);
-+#1485=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1486=VECTOR('',#1485,1.5E0);
-+#1487=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
-+#1488=LINE('',#1487,#1486);
-+#1489=CARTESIAN_POINT('',(1.85E1,1.5E0,1.40625E1));
-+#1490=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1491=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1492=AXIS2_PLACEMENT_3D('',#1489,#1490,#1491);
-+#1494=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1495=VECTOR('',#1494,1.5E0);
-+#1496=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
-+#1497=LINE('',#1496,#1495);
-+#1498=CARTESIAN_POINT('',(1.85E1,0.E0,1.40625E1));
-+#1499=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1500=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1501=AXIS2_PLACEMENT_3D('',#1498,#1499,#1500);
-+#1503=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1504=VECTOR('',#1503,1.5E0);
-+#1505=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
-+#1506=LINE('',#1505,#1504);
-+#1507=CARTESIAN_POINT('',(5.5E0,0.E0,1.40625E1));
-+#1508=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1509=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1510=AXIS2_PLACEMENT_3D('',#1507,#1508,#1509);
-+#1512=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1513=VECTOR('',#1512,1.5E0);
-+#1514=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
-+#1515=LINE('',#1514,#1513);
-+#1516=CARTESIAN_POINT('',(5.5E0,1.5E0,1.40625E1));
-+#1517=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1518=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1519=AXIS2_PLACEMENT_3D('',#1516,#1517,#1518);
-+#1521=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1522=VECTOR('',#1521,1.5E0);
-+#1523=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
-+#1524=LINE('',#1523,#1522);
-+#1525=CARTESIAN_POINT('',(2.05E1,0.E0,1.325E1));
-+#1526=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1527=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1528=AXIS2_PLACEMENT_3D('',#1525,#1526,#1527);
-+#1530=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1531=VECTOR('',#1530,1.5E0);
-+#1532=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
-+#1533=LINE('',#1532,#1531);
-+#1534=CARTESIAN_POINT('',(2.05E1,1.5E0,1.325E1));
-+#1535=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1536=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1537=AXIS2_PLACEMENT_3D('',#1534,#1535,#1536);
-+#1539=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1540=VECTOR('',#1539,1.5E0);
-+#1541=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
-+#1542=LINE('',#1541,#1540);
-+#1543=CARTESIAN_POINT('',(2.5E1,1.5E0,1.325E1));
-+#1544=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1545=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1546=AXIS2_PLACEMENT_3D('',#1543,#1544,#1545);
-+#1548=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1549=VECTOR('',#1548,1.5E0);
-+#1550=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
-+#1551=LINE('',#1550,#1549);
-+#1552=CARTESIAN_POINT('',(2.5E1,0.E0,1.325E1));
-+#1553=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1554=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1555=AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);
-+#1557=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1558=VECTOR('',#1557,1.5E0);
-+#1559=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#1560=LINE('',#1559,#1558);
-+#1561=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1562=VECTOR('',#1561,5.656854249492E0);
-+#1563=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#1564=LINE('',#1563,#1562);
-+#1565=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1566=VECTOR('',#1565,1.5E0);
-+#1567=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
-+#1568=LINE('',#1567,#1566);
-+#1569=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1570=VECTOR('',#1569,5.656854249492E0);
-+#1571=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
-+#1572=LINE('',#1571,#1570);
-+#1573=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1574=VECTOR('',#1573,1.5E0);
-+#1575=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#1576=LINE('',#1575,#1574);
-+#1577=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1578=VECTOR('',#1577,5.656854249492E0);
-+#1579=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#1580=LINE('',#1579,#1578);
-+#1581=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1582=VECTOR('',#1581,1.5E0);
-+#1583=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
-+#1584=LINE('',#1583,#1582);
-+#1585=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1586=VECTOR('',#1585,5.656854249492E0);
-+#1587=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
-+#1588=LINE('',#1587,#1586);
-+#1589=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1590=VECTOR('',#1589,1.5E0);
-+#1591=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
-+#1592=LINE('',#1591,#1590);
-+#1593=CARTESIAN_POINT('',(2.5E1,0.E0,7.E0));
-+#1594=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1595=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1596=AXIS2_PLACEMENT_3D('',#1593,#1594,#1595);
-+#1598=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1599=VECTOR('',#1598,1.5E0);
-+#1600=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
-+#1601=LINE('',#1600,#1599);
-+#1602=CARTESIAN_POINT('',(2.5E1,1.5E0,7.E0));
-+#1603=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1604=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);
-+#1607=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1608=VECTOR('',#1607,1.5E0);
-+#1609=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#1610=LINE('',#1609,#1608);
-+#1611=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1612=VECTOR('',#1611,5.656854249492E0);
-+#1613=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#1614=LINE('',#1613,#1612);
-+#1615=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1616=VECTOR('',#1615,1.5E0);
-+#1617=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
-+#1618=LINE('',#1617,#1616);
-+#1619=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1620=VECTOR('',#1619,5.656854249492E0);
-+#1621=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
-+#1622=LINE('',#1621,#1620);
-+#1623=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1624=VECTOR('',#1623,1.5E0);
-+#1625=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#1626=LINE('',#1625,#1624);
-+#1627=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1628=VECTOR('',#1627,5.656854249492E0);
-+#1629=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#1630=LINE('',#1629,#1628);
-+#1631=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1632=VECTOR('',#1631,1.5E0);
-+#1633=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
-+#1634=LINE('',#1633,#1632);
-+#1635=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1636=VECTOR('',#1635,5.656854249492E0);
-+#1637=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
-+#1638=LINE('',#1637,#1636);
-+#1639=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1640=VECTOR('',#1639,1.5E0);
-+#1641=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#1642=LINE('',#1641,#1640);
-+#1643=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1644=VECTOR('',#1643,7.071067811865E-1);
-+#1645=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#1646=LINE('',#1645,#1644);
-+#1647=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1648=VECTOR('',#1647,1.5E0);
-+#1649=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
-+#1650=LINE('',#1649,#1648);
-+#1651=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1652=VECTOR('',#1651,7.071067811865E-1);
-+#1653=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
-+#1654=LINE('',#1653,#1652);
-+#1655=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1656=VECTOR('',#1655,2.5E0);
-+#1657=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#1658=LINE('',#1657,#1656);
-+#1659=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1660=VECTOR('',#1659,2.E0);
-+#1661=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#1662=LINE('',#1661,#1660);
-+#1663=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1664=VECTOR('',#1663,2.E0);
-+#1665=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#1666=LINE('',#1665,#1664);
-+#1667=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1668=VECTOR('',#1667,2.E0);
-+#1669=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
-+#1670=LINE('',#1669,#1668);
-+#1671=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#1672=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1673=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1674=AXIS2_PLACEMENT_3D('',#1671,#1672,#1673);
-+#1676=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#1677=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1678=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1679=AXIS2_PLACEMENT_3D('',#1676,#1677,#1678);
-+#1681=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#1682=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1683=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1684=AXIS2_PLACEMENT_3D('',#1681,#1682,#1683);
-+#1686=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#1687=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1688=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1689=AXIS2_PLACEMENT_3D('',#1686,#1687,#1688);
-+#1691=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1692=VECTOR('',#1691,2.E0);
-+#1693=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#1694=LINE('',#1693,#1692);
-+#1695=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1696=VECTOR('',#1695,1.E1);
-+#1697=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#1698=LINE('',#1697,#1696);
-+#1699=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1700=VECTOR('',#1699,1.5E0);
-+#1701=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
-+#1702=LINE('',#1701,#1700);
-+#1703=CARTESIAN_POINT('',(1.8E1,0.E0,1.1E1));
-+#1704=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1705=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1706=AXIS2_PLACEMENT_3D('',#1703,#1704,#1705);
-+#1708=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1709=VECTOR('',#1708,1.5E0);
-+#1710=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
-+#1711=LINE('',#1710,#1709);
-+#1712=CARTESIAN_POINT('',(1.8E1,1.5E0,1.1E1));
-+#1713=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1714=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1715=AXIS2_PLACEMENT_3D('',#1712,#1713,#1714);
-+#1717=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1718=VECTOR('',#1717,1.2E1);
-+#1719=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
-+#1720=LINE('',#1719,#1718);
-+#1721=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1722=VECTOR('',#1721,1.5E0);
-+#1723=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
-+#1724=LINE('',#1723,#1722);
-+#1725=CARTESIAN_POINT('',(6.E0,1.5E0,1.1E1));
-+#1726=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1727=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1728=AXIS2_PLACEMENT_3D('',#1725,#1726,#1727);
-+#1730=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1731=VECTOR('',#1730,1.5E0);
-+#1732=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
-+#1733=LINE('',#1732,#1731);
-+#1734=CARTESIAN_POINT('',(6.E0,0.E0,1.1E1));
-+#1735=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1736=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1737=AXIS2_PLACEMENT_3D('',#1734,#1735,#1736);
-+#1739=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1740=VECTOR('',#1739,2.E0);
-+#1741=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#1742=LINE('',#1741,#1740);
-+#1743=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1744=VECTOR('',#1743,1.E1);
-+#1745=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#1746=LINE('',#1745,#1744);
-+#1747=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1748=VECTOR('',#1747,1.5E0);
-+#1749=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#1750=LINE('',#1749,#1748);
-+#1751=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1752=VECTOR('',#1751,7.071067811865E-1);
-+#1753=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#1754=LINE('',#1753,#1752);
-+#1755=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1756=VECTOR('',#1755,1.5E0);
-+#1757=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
-+#1758=LINE('',#1757,#1756);
-+#1759=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1760=VECTOR('',#1759,7.071067811865E-1);
-+#1761=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
-+#1762=LINE('',#1761,#1760);
-+#1763=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
-+#1764=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1765=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1766=AXIS2_PLACEMENT_3D('',#1763,#1764,#1765);
-+#1768=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
-+#1769=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1770=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1771=AXIS2_PLACEMENT_3D('',#1768,#1769,#1770);
-+#1773=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1774=VECTOR('',#1773,5.E0);
-+#1775=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
-+#1776=LINE('',#1775,#1774);
-+#1777=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1778=VECTOR('',#1777,1.E0);
-+#1779=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
-+#1780=LINE('',#1779,#1778);
-+#1781=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#1782=VECTOR('',#1781,1.029563014099E1);
-+#1783=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
-+#1784=LINE('',#1783,#1782);
-+#1785=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1786=VECTOR('',#1785,2.E0);
-+#1787=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
-+#1788=LINE('',#1787,#1786);
-+#1789=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1790=VECTOR('',#1789,1.E1);
-+#1791=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
-+#1792=LINE('',#1791,#1790);
-+#1793=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1794=VECTOR('',#1793,5.E0);
-+#1795=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
-+#1796=LINE('',#1795,#1794);
-+#1797=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1798=VECTOR('',#1797,1.75E0);
-+#1799=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#1800=LINE('',#1799,#1798);
-+#1801=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1802=VECTOR('',#1801,4.3E0);
-+#1803=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
-+#1804=LINE('',#1803,#1802);
-+#1805=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1806=VECTOR('',#1805,1.3E0);
-+#1807=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
-+#1808=LINE('',#1807,#1806);
-+#1809=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1810=VECTOR('',#1809,6.8E0);
-+#1811=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
-+#1812=LINE('',#1811,#1810);
-+#1813=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1814=VECTOR('',#1813,1.197200760546E0);
-+#1815=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
-+#1816=LINE('',#1815,#1814);
-+#1817=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#1818=VECTOR('',#1817,2.059126028197E0);
-+#1819=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
-+#1820=LINE('',#1819,#1818);
-+#1821=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1822=VECTOR('',#1821,1.972007605460E-1);
-+#1823=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
-+#1824=LINE('',#1823,#1822);
-+#1825=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1826=VECTOR('',#1825,2.E0);
-+#1827=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
-+#1828=LINE('',#1827,#1826);
-+#1829=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1830=VECTOR('',#1829,2.E0);
-+#1831=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
-+#1832=LINE('',#1831,#1830);
-+#1833=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#1834=VECTOR('',#1833,5.773502691896E0);
-+#1835=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#1836=LINE('',#1835,#1834);
-+#1837=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
-+#1838=CARTESIAN_POINT('',(8.675E-1,2.930774450068E0,1.206069333205E1));
-+#1839=CARTESIAN_POINT('',(9.058386382037E-1,2.745461691651E0,1.216768370301E1));
-+#1840=CARTESIAN_POINT('',(1.029862281194E0,2.608885438662E0,1.224653603944E1));
-+#1841=CARTESIAN_POINT('',(1.125E0,2.580400233539E0,1.226298198028E1));
-+#1842=CARTESIAN_POINT('',(1.220137718806E0,2.608885438662E0,1.224653603944E1));
-+#1843=CARTESIAN_POINT('',(1.344161361796E0,2.745461691651E0,1.216768370301E1));
-+#1844=CARTESIAN_POINT('',(1.3825E0,2.930774450068E0,1.206069333205E1));
-+#1845=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
-+#1847=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
-+#1848=CARTESIAN_POINT('',(1.3825E0,3.141022319657E0,1.193930666795E1));
-+#1849=CARTESIAN_POINT('',(1.344161361796E0,3.326335078073E0,1.183231629699E1));
-+#1850=CARTESIAN_POINT('',(1.220137718806E0,3.462911331062E0,1.175346396056E1));
-+#1851=CARTESIAN_POINT('',(1.125E0,3.491396536186E0,1.173701801972E1));
-+#1852=CARTESIAN_POINT('',(1.029862281194E0,3.462911331062E0,1.175346396056E1));
-+#1853=CARTESIAN_POINT('',(9.058386382037E-1,3.326335078073E0,1.183231629699E1));
-+#1854=CARTESIAN_POINT('',(8.675E-1,3.141022319657E0,1.193930666795E1));
-+#1855=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
-+#1857=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#1858=VECTOR('',#1857,5.773502691896E0);
-+#1859=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
-+#1860=LINE('',#1859,#1858);
-+#1861=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1862=VECTOR('',#1861,2.035898384862E0);
-+#1863=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
-+#1864=LINE('',#1863,#1862);
-+#1865=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1866=VECTOR('',#1865,2.035898384862E0);
-+#1867=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
-+#1868=LINE('',#1867,#1866);
-+#1869=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1870=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1871=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1872=AXIS2_PLACEMENT_3D('',#1869,#1870,#1871);
-+#1874=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1875=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1876=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1877=AXIS2_PLACEMENT_3D('',#1874,#1875,#1876);
-+#1879=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1880=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1881=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1882=AXIS2_PLACEMENT_3D('',#1879,#1880,#1881);
-+#1884=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1885=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1886=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1887=AXIS2_PLACEMENT_3D('',#1884,#1885,#1886);
-+#1889=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1890=VECTOR('',#1889,1.E0);
-+#1891=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
-+#1892=LINE('',#1891,#1890);
-+#1893=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1894=VECTOR('',#1893,1.E0);
-+#1895=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
-+#1896=LINE('',#1895,#1894);
-+#1897=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1898=VECTOR('',#1897,2.5E0);
-+#1899=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
-+#1900=LINE('',#1899,#1898);
-+#1901=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1902=VECTOR('',#1901,2.E0);
-+#1903=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
-+#1904=LINE('',#1903,#1902);
-+#1905=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1906=VECTOR('',#1905,1.5E0);
-+#1907=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#1908=LINE('',#1907,#1906);
-+#1909=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1910=VECTOR('',#1909,7.071067811865E-1);
-+#1911=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#1912=LINE('',#1911,#1910);
-+#1913=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1914=VECTOR('',#1913,1.5E0);
-+#1915=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
-+#1916=LINE('',#1915,#1914);
-+#1917=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1918=VECTOR('',#1917,7.071067811865E-1);
-+#1919=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
-+#1920=LINE('',#1919,#1918);
-+#1921=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1922=VECTOR('',#1921,2.E0);
-+#1923=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#1924=LINE('',#1923,#1922);
-+#1925=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1926=VECTOR('',#1925,2.E0);
-+#1927=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#1928=LINE('',#1927,#1926);
-+#1929=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#1930=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1931=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1932=AXIS2_PLACEMENT_3D('',#1929,#1930,#1931);
-+#1934=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#1935=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1936=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1937=AXIS2_PLACEMENT_3D('',#1934,#1935,#1936);
-+#1939=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#1940=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1941=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1942=AXIS2_PLACEMENT_3D('',#1939,#1940,#1941);
-+#1944=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#1945=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1946=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1947=AXIS2_PLACEMENT_3D('',#1944,#1945,#1946);
-+#1949=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1950=VECTOR('',#1949,3.75E-1);
-+#1951=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
-+#1952=LINE('',#1951,#1950);
-+#1953=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1954=VECTOR('',#1953,3.75E-1);
-+#1955=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
-+#1956=LINE('',#1955,#1954);
-+#1957=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
-+#1958=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1959=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1960=AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);
-+#1962=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
-+#1963=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1964=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1965=AXIS2_PLACEMENT_3D('',#1962,#1963,#1964);
-+#1967=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1968=VECTOR('',#1967,2.5E-1);
-+#1969=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
-+#1970=LINE('',#1969,#1968);
-+#1971=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1972=VECTOR('',#1971,2.5E-1);
-+#1973=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
-+#1974=LINE('',#1973,#1972);
-+#1975=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
-+#1976=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1977=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1978=AXIS2_PLACEMENT_3D('',#1975,#1976,#1977);
-+#1980=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
-+#1981=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1982=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1983=AXIS2_PLACEMENT_3D('',#1980,#1981,#1982);
-+#1985=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1986=VECTOR('',#1985,5.E-1);
-+#1987=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
-+#1988=LINE('',#1987,#1986);
-+#1989=CARTESIAN_POINT('',(2.15E0,6.65E0,1.E1));
-+#1990=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1991=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1992=AXIS2_PLACEMENT_3D('',#1989,#1990,#1991);
-+#1994=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1995=VECTOR('',#1994,5.E-1);
-+#1996=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
-+#1997=LINE('',#1996,#1995);
-+#1998=CARTESIAN_POINT('',(2.15E0,6.65E0,9.5E0));
-+#1999=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2000=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2001=AXIS2_PLACEMENT_3D('',#1998,#1999,#2000);
-+#2003=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2004=VECTOR('',#2003,4.3E0);
-+#2005=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
-+#2006=LINE('',#2005,#2004);
-+#2007=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2008=VECTOR('',#2007,1.972007605460E-1);
-+#2009=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
-+#2010=LINE('',#2009,#2008);
-+#2011=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#2012=VECTOR('',#2011,2.059126028197E0);
-+#2013=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
-+#2014=LINE('',#2013,#2012);
-+#2015=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2016=VECTOR('',#2015,1.197200760546E0);
-+#2017=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
-+#2018=LINE('',#2017,#2016);
-+#2019=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2020=VECTOR('',#2019,6.8E0);
-+#2021=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
-+#2022=LINE('',#2021,#2020);
-+#2023=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2024=VECTOR('',#2023,1.3E0);
-+#2025=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
-+#2026=LINE('',#2025,#2024);
-+#2027=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2028=VECTOR('',#2027,5.E-1);
-+#2029=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
-+#2030=LINE('',#2029,#2028);
-+#2031=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.E1));
-+#2032=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2033=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2034=AXIS2_PLACEMENT_3D('',#2031,#2032,#2033);
-+#2036=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2037=VECTOR('',#2036,5.E-1);
-+#2038=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
-+#2039=LINE('',#2038,#2037);
-+#2040=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,9.5E0));
-+#2041=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2042=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#2043=AXIS2_PLACEMENT_3D('',#2040,#2041,#2042);
-+#2045=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2046=VECTOR('',#2045,5.E-1);
-+#2047=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
-+#2048=LINE('',#2047,#2046);
-+#2049=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.E1));
-+#2050=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2051=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#2052=AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);
-+#2054=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2055=VECTOR('',#2054,5.E-1);
-+#2056=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
-+#2057=LINE('',#2056,#2055);
-+#2058=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,9.5E0));
-+#2059=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2060=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2061=AXIS2_PLACEMENT_3D('',#2058,#2059,#2060);
-+#2063=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2064=VECTOR('',#2063,5.E-1);
-+#2065=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
-+#2066=LINE('',#2065,#2064);
-+#2067=CARTESIAN_POINT('',(4.15E0,9.15E0,1.E1));
-+#2068=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2069=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2070=AXIS2_PLACEMENT_3D('',#2067,#2068,#2069);
-+#2072=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2073=VECTOR('',#2072,5.E-1);
-+#2074=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
-+#2075=LINE('',#2074,#2073);
-+#2076=CARTESIAN_POINT('',(4.15E0,9.15E0,9.5E0));
-+#2077=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2078=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2079=AXIS2_PLACEMENT_3D('',#2076,#2077,#2078);
-+#2081=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2082=VECTOR('',#2081,5.E-1);
-+#2083=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
-+#2084=LINE('',#2083,#2082);
-+#2085=CARTESIAN_POINT('',(4.15E0,2.35E0,1.E1));
-+#2086=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2087=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2088=AXIS2_PLACEMENT_3D('',#2085,#2086,#2087);
-+#2090=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2091=VECTOR('',#2090,5.E-1);
-+#2092=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
-+#2093=LINE('',#2092,#2091);
-+#2094=CARTESIAN_POINT('',(4.15E0,2.35E0,9.5E0));
-+#2095=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2096=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2097=AXIS2_PLACEMENT_3D('',#2094,#2095,#2096);
-+#2099=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2100=VECTOR('',#2099,5.E-1);
-+#2101=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
-+#2102=LINE('',#2101,#2100);
-+#2103=CARTESIAN_POINT('',(2.85E0,2.35E0,1.E1));
-+#2104=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2105=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2106=AXIS2_PLACEMENT_3D('',#2103,#2104,#2105);
-+#2108=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2109=VECTOR('',#2108,5.E-1);
-+#2110=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
-+#2111=LINE('',#2110,#2109);
-+#2112=CARTESIAN_POINT('',(2.85E0,2.35E0,9.5E0));
-+#2113=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2114=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2115=AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);
-+#2117=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2118=VECTOR('',#2117,1.5E0);
-+#2119=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#2120=LINE('',#2119,#2118);
-+#2121=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#2122=VECTOR('',#2121,7.071067811865E-1);
-+#2123=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#2124=LINE('',#2123,#2122);
-+#2125=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2126=VECTOR('',#2125,1.5E0);
-+#2127=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
-+#2128=LINE('',#2127,#2126);
-+#2129=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#2130=VECTOR('',#2129,7.071067811865E-1);
-+#2131=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
-+#2132=LINE('',#2131,#2130);
-+#2133=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2134=VECTOR('',#2133,3.75E-1);
-+#2135=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
-+#2136=LINE('',#2135,#2134);
-+#2137=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2138=VECTOR('',#2137,3.75E-1);
-+#2139=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
-+#2140=LINE('',#2139,#2138);
-+#2141=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
-+#2142=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2143=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2144=AXIS2_PLACEMENT_3D('',#2141,#2142,#2143);
-+#2146=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
-+#2147=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2148=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2149=AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);
-+#2151=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2152=VECTOR('',#2151,2.5E-1);
-+#2153=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
-+#2154=LINE('',#2153,#2152);
-+#2155=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2156=VECTOR('',#2155,2.5E-1);
-+#2157=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
-+#2158=LINE('',#2157,#2156);
-+#2159=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
-+#2160=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2161=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2162=AXIS2_PLACEMENT_3D('',#2159,#2160,#2161);
-+#2164=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
-+#2165=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2166=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2167=AXIS2_PLACEMENT_3D('',#2164,#2165,#2166);
-+#2169=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
-+#2170=VECTOR('',#2169,2.5E-1);
-+#2171=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
-+#2172=LINE('',#2171,#2170);
-+#2173=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
-+#2174=VECTOR('',#2173,2.5E-1);
-+#2175=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
-+#2176=LINE('',#2175,#2174);
-+#2177=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#2178=VECTOR('',#2177,1.154700538379E-1);
-+#2179=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
-+#2180=LINE('',#2179,#2178);
-+#2181=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#2182=VECTOR('',#2181,1.154700538379E-1);
-+#2183=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
-+#2184=LINE('',#2183,#2182);
-+#2185=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
-+#2186=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2187=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2188=AXIS2_PLACEMENT_3D('',#2185,#2186,#2187);
-+#2190=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
-+#2191=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2192=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2193=AXIS2_PLACEMENT_3D('',#2190,#2191,#2192);
-+#2195=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
-+#2196=VECTOR('',#2195,2.5E-1);
-+#2197=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
-+#2198=LINE('',#2197,#2196);
-+#2199=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
-+#2200=VECTOR('',#2199,2.5E-1);
-+#2201=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
-+#2202=LINE('',#2201,#2200);
-+#2203=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#2204=VECTOR('',#2203,1.154700538379E-1);
-+#2205=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
-+#2206=LINE('',#2205,#2204);
-+#2207=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#2208=VECTOR('',#2207,1.154700538379E-1);
-+#2209=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
-+#2210=LINE('',#2209,#2208);
-+#2211=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
-+#2212=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2213=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2214=AXIS2_PLACEMENT_3D('',#2211,#2212,#2213);
-+#2216=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
-+#2217=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2218=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2219=AXIS2_PLACEMENT_3D('',#2216,#2217,#2218);
-+#2221=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2222=VECTOR('',#2221,5.E-1);
-+#2223=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
-+#2224=LINE('',#2223,#2222);
-+#2225=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2226=VECTOR('',#2225,5.E-1);
-+#2227=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
-+#2228=LINE('',#2227,#2226);
-+#2229=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2230=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2231=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2232=AXIS2_PLACEMENT_3D('',#2229,#2230,#2231);
-+#2234=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2235=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2236=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2237=AXIS2_PLACEMENT_3D('',#2234,#2235,#2236);
-+#2239=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2240=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2241=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2242=AXIS2_PLACEMENT_3D('',#2239,#2240,#2241);
-+#2244=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2245=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2246=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2247=AXIS2_PLACEMENT_3D('',#2244,#2245,#2246);
-+#2249=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2250=VECTOR('',#2249,1.E0);
-+#2251=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
-+#2252=LINE('',#2251,#2250);
-+#2253=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2254=VECTOR('',#2253,1.E0);
-+#2255=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
-+#2256=LINE('',#2255,#2254);
-+#2257=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2258=VECTOR('',#2257,5.E-1);
-+#2259=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
-+#2260=LINE('',#2259,#2258);
-+#2261=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2262=VECTOR('',#2261,5.E-1);
-+#2263=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
-+#2264=LINE('',#2263,#2262);
-+#2265=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2266=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2267=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2268=AXIS2_PLACEMENT_3D('',#2265,#2266,#2267);
-+#2270=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2271=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2272=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2273=AXIS2_PLACEMENT_3D('',#2270,#2271,#2272);
-+#2275=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2276=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2277=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2278=AXIS2_PLACEMENT_3D('',#2275,#2276,#2277);
-+#2280=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2281=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2282=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2283=AXIS2_PLACEMENT_3D('',#2280,#2281,#2282);
-+#2285=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2286=VECTOR('',#2285,1.E0);
-+#2287=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
-+#2288=LINE('',#2287,#2286);
-+#2289=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2290=VECTOR('',#2289,1.E0);
-+#2291=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
-+#2292=LINE('',#2291,#2290);
-+#2293=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2294=VECTOR('',#2293,5.E-1);
-+#2295=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
-+#2296=LINE('',#2295,#2294);
-+#2297=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2298=VECTOR('',#2297,5.E-1);
-+#2299=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
-+#2300=LINE('',#2299,#2298);
-+#2301=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2302=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2303=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2304=AXIS2_PLACEMENT_3D('',#2301,#2302,#2303);
-+#2306=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2307=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2308=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308);
-+#2311=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2312=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2313=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2314=AXIS2_PLACEMENT_3D('',#2311,#2312,#2313);
-+#2316=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2317=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2318=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2319=AXIS2_PLACEMENT_3D('',#2316,#2317,#2318);
-+#2321=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2322=VECTOR('',#2321,1.E0);
-+#2323=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
-+#2324=LINE('',#2323,#2322);
-+#2325=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2326=VECTOR('',#2325,1.E0);
-+#2327=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
-+#2328=LINE('',#2327,#2326);
-+#2329=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2330=VECTOR('',#2329,5.E-1);
-+#2331=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
-+#2332=LINE('',#2331,#2330);
-+#2333=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2334=VECTOR('',#2333,5.E-1);
-+#2335=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
-+#2336=LINE('',#2335,#2334);
-+#2337=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2338=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2339=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339);
-+#2342=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2343=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2344=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2345=AXIS2_PLACEMENT_3D('',#2342,#2343,#2344);
-+#2347=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2348=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2349=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2350=AXIS2_PLACEMENT_3D('',#2347,#2348,#2349);
-+#2352=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2353=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2354=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2355=AXIS2_PLACEMENT_3D('',#2352,#2353,#2354);
-+#2357=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2358=VECTOR('',#2357,1.E0);
-+#2359=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
-+#2360=LINE('',#2359,#2358);
-+#2361=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2362=VECTOR('',#2361,1.E0);
-+#2363=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
-+#2364=LINE('',#2363,#2362);
-+#2365=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2366=VECTOR('',#2365,5.E-1);
-+#2367=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
-+#2368=LINE('',#2367,#2366);
-+#2369=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2370=VECTOR('',#2369,5.E-1);
-+#2371=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
-+#2372=LINE('',#2371,#2370);
-+#2373=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2374=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2375=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2376=AXIS2_PLACEMENT_3D('',#2373,#2374,#2375);
-+#2378=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2379=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2380=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2381=AXIS2_PLACEMENT_3D('',#2378,#2379,#2380);
-+#2383=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2384=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2385=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2386=AXIS2_PLACEMENT_3D('',#2383,#2384,#2385);
-+#2388=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2389=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2390=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2391=AXIS2_PLACEMENT_3D('',#2388,#2389,#2390);
-+#2393=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2394=VECTOR('',#2393,1.E0);
-+#2395=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
-+#2396=LINE('',#2395,#2394);
-+#2397=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2398=VECTOR('',#2397,1.E0);
-+#2399=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
-+#2400=LINE('',#2399,#2398);
-+#2401=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2402=VECTOR('',#2401,5.E-1);
-+#2403=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
-+#2404=LINE('',#2403,#2402);
-+#2405=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2406=VECTOR('',#2405,5.E-1);
-+#2407=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
-+#2408=LINE('',#2407,#2406);
-+#2409=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2410=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2411=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2412=AXIS2_PLACEMENT_3D('',#2409,#2410,#2411);
-+#2414=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2415=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2416=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2417=AXIS2_PLACEMENT_3D('',#2414,#2415,#2416);
-+#2419=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2420=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2421=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2422=AXIS2_PLACEMENT_3D('',#2419,#2420,#2421);
-+#2424=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2425=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2426=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2427=AXIS2_PLACEMENT_3D('',#2424,#2425,#2426);
-+#2429=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2430=VECTOR('',#2429,1.E0);
-+#2431=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
-+#2432=LINE('',#2431,#2430);
-+#2433=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2434=VECTOR('',#2433,1.E0);
-+#2435=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
-+#2436=LINE('',#2435,#2434);
-+#2437=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2438=VECTOR('',#2437,5.E-1);
-+#2439=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
-+#2440=LINE('',#2439,#2438);
-+#2441=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2442=VECTOR('',#2441,5.E-1);
-+#2443=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
-+#2444=LINE('',#2443,#2442);
-+#2445=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2446=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2447=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2448=AXIS2_PLACEMENT_3D('',#2445,#2446,#2447);
-+#2450=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2451=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2452=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2453=AXIS2_PLACEMENT_3D('',#2450,#2451,#2452);
-+#2455=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2456=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2457=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2458=AXIS2_PLACEMENT_3D('',#2455,#2456,#2457);
-+#2460=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2461=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2462=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2463=AXIS2_PLACEMENT_3D('',#2460,#2461,#2462);
-+#2465=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2466=VECTOR('',#2465,1.E0);
-+#2467=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
-+#2468=LINE('',#2467,#2466);
-+#2469=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2470=VECTOR('',#2469,1.E0);
-+#2471=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
-+#2472=LINE('',#2471,#2470);
-+#2473=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2474=VECTOR('',#2473,5.E-1);
-+#2475=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
-+#2476=LINE('',#2475,#2474);
-+#2477=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2478=VECTOR('',#2477,5.E-1);
-+#2479=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
-+#2480=LINE('',#2479,#2478);
-+#2481=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2482=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2483=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2484=AXIS2_PLACEMENT_3D('',#2481,#2482,#2483);
-+#2486=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2487=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2488=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2489=AXIS2_PLACEMENT_3D('',#2486,#2487,#2488);
-+#2491=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2492=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2493=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2494=AXIS2_PLACEMENT_3D('',#2491,#2492,#2493);
-+#2496=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2497=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2498=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2499=AXIS2_PLACEMENT_3D('',#2496,#2497,#2498);
-+#2501=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2502=VECTOR('',#2501,1.E0);
-+#2503=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
-+#2504=LINE('',#2503,#2502);
-+#2505=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2506=VECTOR('',#2505,1.E0);
-+#2507=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
-+#2508=LINE('',#2507,#2506);
-+#2509=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2510=VECTOR('',#2509,5.E-1);
-+#2511=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
-+#2512=LINE('',#2511,#2510);
-+#2513=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2514=VECTOR('',#2513,5.E-1);
-+#2515=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
-+#2516=LINE('',#2515,#2514);
-+#2517=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2518=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2519=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2520=AXIS2_PLACEMENT_3D('',#2517,#2518,#2519);
-+#2522=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2523=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2524=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2525=AXIS2_PLACEMENT_3D('',#2522,#2523,#2524);
-+#2527=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2528=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2529=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2530=AXIS2_PLACEMENT_3D('',#2527,#2528,#2529);
-+#2532=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2533=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2534=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2535=AXIS2_PLACEMENT_3D('',#2532,#2533,#2534);
-+#2537=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2538=VECTOR('',#2537,1.E0);
-+#2539=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
-+#2540=LINE('',#2539,#2538);
-+#2541=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2542=VECTOR('',#2541,1.E0);
-+#2543=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
-+#2544=LINE('',#2543,#2542);
-+#2545=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2546=VECTOR('',#2545,5.E-1);
-+#2547=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
-+#2548=LINE('',#2547,#2546);
-+#2549=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2550=VECTOR('',#2549,5.E-1);
-+#2551=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
-+#2552=LINE('',#2551,#2550);
-+#2553=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2554=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2555=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2556=AXIS2_PLACEMENT_3D('',#2553,#2554,#2555);
-+#2558=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2559=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2560=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2561=AXIS2_PLACEMENT_3D('',#2558,#2559,#2560);
-+#2563=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2564=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2565=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2566=AXIS2_PLACEMENT_3D('',#2563,#2564,#2565);
-+#2568=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2569=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2570=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2571=AXIS2_PLACEMENT_3D('',#2568,#2569,#2570);
-+#2573=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2574=VECTOR('',#2573,1.E0);
-+#2575=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
-+#2576=LINE('',#2575,#2574);
-+#2577=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2578=VECTOR('',#2577,1.E0);
-+#2579=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
-+#2580=LINE('',#2579,#2578);
-+#2581=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2582=VECTOR('',#2581,5.E-1);
-+#2583=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
-+#2584=LINE('',#2583,#2582);
-+#2585=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2586=VECTOR('',#2585,5.E-1);
-+#2587=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
-+#2588=LINE('',#2587,#2586);
-+#2589=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2590=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2591=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2592=AXIS2_PLACEMENT_3D('',#2589,#2590,#2591);
-+#2594=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2595=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2596=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2597=AXIS2_PLACEMENT_3D('',#2594,#2595,#2596);
-+#2599=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2600=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2601=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2602=AXIS2_PLACEMENT_3D('',#2599,#2600,#2601);
-+#2604=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2605=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2606=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2607=AXIS2_PLACEMENT_3D('',#2604,#2605,#2606);
-+#2609=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2610=VECTOR('',#2609,1.E0);
-+#2611=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
-+#2612=LINE('',#2611,#2610);
-+#2613=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2614=VECTOR('',#2613,1.E0);
-+#2615=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
-+#2616=LINE('',#2615,#2614);
-+#2617=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2618=VECTOR('',#2617,5.E-1);
-+#2619=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
-+#2620=LINE('',#2619,#2618);
-+#2621=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2622=VECTOR('',#2621,5.E-1);
-+#2623=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
-+#2624=LINE('',#2623,#2622);
-+#2625=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2626=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2627=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2628=AXIS2_PLACEMENT_3D('',#2625,#2626,#2627);
-+#2630=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2631=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2632=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2633=AXIS2_PLACEMENT_3D('',#2630,#2631,#2632);
-+#2635=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2636=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2637=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2638=AXIS2_PLACEMENT_3D('',#2635,#2636,#2637);
-+#2640=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2641=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2642=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2643=AXIS2_PLACEMENT_3D('',#2640,#2641,#2642);
-+#2645=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2646=VECTOR('',#2645,1.E0);
-+#2647=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
-+#2648=LINE('',#2647,#2646);
-+#2649=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2650=VECTOR('',#2649,1.E0);
-+#2651=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
-+#2652=LINE('',#2651,#2650);
-+#2653=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2654=VECTOR('',#2653,5.E-1);
-+#2655=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
-+#2656=LINE('',#2655,#2654);
-+#2657=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2658=VECTOR('',#2657,5.E-1);
-+#2659=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
-+#2660=LINE('',#2659,#2658);
-+#2661=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2662=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2663=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2664=AXIS2_PLACEMENT_3D('',#2661,#2662,#2663);
-+#2666=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2667=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2668=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2669=AXIS2_PLACEMENT_3D('',#2666,#2667,#2668);
-+#2671=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2672=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2673=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2674=AXIS2_PLACEMENT_3D('',#2671,#2672,#2673);
-+#2676=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2677=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2678=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2679=AXIS2_PLACEMENT_3D('',#2676,#2677,#2678);
-+#2681=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2682=VECTOR('',#2681,1.E0);
-+#2683=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
-+#2684=LINE('',#2683,#2682);
-+#2685=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2686=VECTOR('',#2685,1.E0);
-+#2687=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
-+#2688=LINE('',#2687,#2686);
-+#2689=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2690=VECTOR('',#2689,5.E-1);
-+#2691=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
-+#2692=LINE('',#2691,#2690);
-+#2693=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2694=VECTOR('',#2693,5.E-1);
-+#2695=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
-+#2696=LINE('',#2695,#2694);
-+#2697=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2698=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2699=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2700=AXIS2_PLACEMENT_3D('',#2697,#2698,#2699);
-+#2702=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2703=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2704=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2705=AXIS2_PLACEMENT_3D('',#2702,#2703,#2704);
-+#2707=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2708=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2709=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2710=AXIS2_PLACEMENT_3D('',#2707,#2708,#2709);
-+#2712=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2713=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2714=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2715=AXIS2_PLACEMENT_3D('',#2712,#2713,#2714);
-+#2717=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2718=VECTOR('',#2717,1.E0);
-+#2719=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
-+#2720=LINE('',#2719,#2718);
-+#2721=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2722=VECTOR('',#2721,1.E0);
-+#2723=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
-+#2724=LINE('',#2723,#2722);
-+#2725=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2726=VECTOR('',#2725,5.E-1);
-+#2727=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
-+#2728=LINE('',#2727,#2726);
-+#2729=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2730=VECTOR('',#2729,5.E-1);
-+#2731=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
-+#2732=LINE('',#2731,#2730);
-+#2733=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2734=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2735=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2736=AXIS2_PLACEMENT_3D('',#2733,#2734,#2735);
-+#2738=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2739=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2740=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2741=AXIS2_PLACEMENT_3D('',#2738,#2739,#2740);
-+#2743=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2744=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2745=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2746=AXIS2_PLACEMENT_3D('',#2743,#2744,#2745);
-+#2748=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2749=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2750=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2751=AXIS2_PLACEMENT_3D('',#2748,#2749,#2750);
-+#2753=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2754=VECTOR('',#2753,1.E0);
-+#2755=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
-+#2756=LINE('',#2755,#2754);
-+#2757=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2758=VECTOR('',#2757,1.E0);
-+#2759=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
-+#2760=LINE('',#2759,#2758);
-+#2761=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2762=VECTOR('',#2761,5.E-1);
-+#2763=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
-+#2764=LINE('',#2763,#2762);
-+#2765=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2766=VECTOR('',#2765,5.E-1);
-+#2767=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
-+#2768=LINE('',#2767,#2766);
-+#2769=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2770=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2771=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2772=AXIS2_PLACEMENT_3D('',#2769,#2770,#2771);
-+#2774=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2775=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2776=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2777=AXIS2_PLACEMENT_3D('',#2774,#2775,#2776);
-+#2779=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2780=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2781=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2782=AXIS2_PLACEMENT_3D('',#2779,#2780,#2781);
-+#2784=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2785=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2786=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2787=AXIS2_PLACEMENT_3D('',#2784,#2785,#2786);
-+#2789=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2790=VECTOR('',#2789,1.E0);
-+#2791=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
-+#2792=LINE('',#2791,#2790);
-+#2793=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2794=VECTOR('',#2793,1.E0);
-+#2795=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
-+#2796=LINE('',#2795,#2794);
-+#2797=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2798=VECTOR('',#2797,5.E-1);
-+#2799=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
-+#2800=LINE('',#2799,#2798);
-+#2801=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2802=VECTOR('',#2801,5.E-1);
-+#2803=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
-+#2804=LINE('',#2803,#2802);
-+#2805=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2806=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2807=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2808=AXIS2_PLACEMENT_3D('',#2805,#2806,#2807);
-+#2810=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2811=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2812=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2813=AXIS2_PLACEMENT_3D('',#2810,#2811,#2812);
-+#2815=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2816=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2817=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2818=AXIS2_PLACEMENT_3D('',#2815,#2816,#2817);
-+#2820=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2821=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2822=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2823=AXIS2_PLACEMENT_3D('',#2820,#2821,#2822);
-+#2825=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2826=VECTOR('',#2825,1.E0);
-+#2827=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
-+#2828=LINE('',#2827,#2826);
-+#2829=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2830=VECTOR('',#2829,1.E0);
-+#2831=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
-+#2832=LINE('',#2831,#2830);
-+#2833=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2834=VECTOR('',#2833,5.E-1);
-+#2835=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
-+#2836=LINE('',#2835,#2834);
-+#2837=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2838=VECTOR('',#2837,5.E-1);
-+#2839=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
-+#2840=LINE('',#2839,#2838);
-+#2841=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2842=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2843=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2844=AXIS2_PLACEMENT_3D('',#2841,#2842,#2843);
-+#2846=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2847=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2848=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2849=AXIS2_PLACEMENT_3D('',#2846,#2847,#2848);
-+#2851=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2852=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2853=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2854=AXIS2_PLACEMENT_3D('',#2851,#2852,#2853);
-+#2856=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2857=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2858=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2859=AXIS2_PLACEMENT_3D('',#2856,#2857,#2858);
-+#2861=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2862=VECTOR('',#2861,1.E0);
-+#2863=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
-+#2864=LINE('',#2863,#2862);
-+#2865=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2866=VECTOR('',#2865,1.E0);
-+#2867=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
-+#2868=LINE('',#2867,#2866);
-+#2869=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#2870=VECTOR('',#2869,5.773502691896E0);
-+#2871=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
-+#2872=LINE('',#2871,#2870);
-+#2873=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
-+#2874=CARTESIAN_POINT('',(2.31325E1,2.930774450068E0,1.206069333205E1));
-+#2875=CARTESIAN_POINT('',(2.309416136180E1,2.745461691651E0,1.216768370301E1));
-+#2876=CARTESIAN_POINT('',(2.297013771881E1,2.608885438662E0,1.224653603944E1));
-+#2877=CARTESIAN_POINT('',(2.2875E1,2.580400233539E0,1.226298198028E1));
-+#2878=CARTESIAN_POINT('',(2.277986228119E1,2.608885438662E0,1.224653603944E1));
-+#2879=CARTESIAN_POINT('',(2.265583863820E1,2.745461691651E0,1.216768370301E1));
-+#2880=CARTESIAN_POINT('',(2.26175E1,2.930774450068E0,1.206069333205E1));
-+#2881=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
-+#2883=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
-+#2884=CARTESIAN_POINT('',(2.26175E1,3.141022319657E0,1.193930666795E1));
-+#2885=CARTESIAN_POINT('',(2.265583863820E1,3.326335078073E0,1.183231629699E1));
-+#2886=CARTESIAN_POINT('',(2.277986228119E1,3.462911331062E0,1.175346396056E1));
-+#2887=CARTESIAN_POINT('',(2.2875E1,3.491396536186E0,1.173701801972E1));
-+#2888=CARTESIAN_POINT('',(2.297013771881E1,3.462911331062E0,1.175346396056E1));
-+#2889=CARTESIAN_POINT('',(2.309416136180E1,3.326335078073E0,1.183231629699E1));
-+#2890=CARTESIAN_POINT('',(2.31325E1,3.141022319657E0,1.193930666795E1));
-+#2891=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
-+#2893=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2894=VECTOR('',#2893,2.035898384862E0);
-+#2895=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
-+#2896=LINE('',#2895,#2894);
-+#2897=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2898=VECTOR('',#2897,2.035898384862E0);
-+#2899=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
-+#2900=LINE('',#2899,#2898);
-+#2901=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2902=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2903=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2904=AXIS2_PLACEMENT_3D('',#2901,#2902,#2903);
-+#2906=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2907=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2908=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2909=AXIS2_PLACEMENT_3D('',#2906,#2907,#2908);
-+#2911=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2912=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2913=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2914=AXIS2_PLACEMENT_3D('',#2911,#2912,#2913);
-+#2916=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2917=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2918=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2919=AXIS2_PLACEMENT_3D('',#2916,#2917,#2918);
-+#2921=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2922=VECTOR('',#2921,1.E0);
-+#2923=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
-+#2924=LINE('',#2923,#2922);
-+#2925=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2926=VECTOR('',#2925,1.E0);
-+#2927=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
-+#2928=LINE('',#2927,#2926);
-+#2929=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2930=VECTOR('',#2929,5.E-1);
-+#2931=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
-+#2932=LINE('',#2931,#2930);
-+#2933=CARTESIAN_POINT('',(2.185E1,6.65E0,9.5E0));
-+#2934=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2935=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2936=AXIS2_PLACEMENT_3D('',#2933,#2934,#2935);
-+#2938=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2939=VECTOR('',#2938,5.E-1);
-+#2940=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
-+#2941=LINE('',#2940,#2939);
-+#2942=CARTESIAN_POINT('',(2.185E1,6.65E0,1.E1));
-+#2943=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2944=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
-+#2945=AXIS2_PLACEMENT_3D('',#2942,#2943,#2944);
-+#2947=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2948=VECTOR('',#2947,5.E-1);
-+#2949=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
-+#2950=LINE('',#2949,#2948);
-+#2951=CARTESIAN_POINT('',(2.115E1,2.35E0,9.5E0));
-+#2952=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2953=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2954=AXIS2_PLACEMENT_3D('',#2951,#2952,#2953);
-+#2956=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2957=VECTOR('',#2956,5.E-1);
-+#2958=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
-+#2959=LINE('',#2958,#2957);
-+#2960=CARTESIAN_POINT('',(2.115E1,2.35E0,1.E1));
-+#2961=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2962=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962);
-+#2965=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2966=VECTOR('',#2965,5.E-1);
-+#2967=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
-+#2968=LINE('',#2967,#2966);
-+#2969=CARTESIAN_POINT('',(1.985E1,2.35E0,9.5E0));
-+#2970=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2971=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2972=AXIS2_PLACEMENT_3D('',#2969,#2970,#2971);
-+#2974=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2975=VECTOR('',#2974,5.E-1);
-+#2976=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
-+#2977=LINE('',#2976,#2975);
-+#2978=CARTESIAN_POINT('',(1.985E1,2.35E0,1.E1));
-+#2979=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2980=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
-+#2981=AXIS2_PLACEMENT_3D('',#2978,#2979,#2980);
-+#2983=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2984=VECTOR('',#2983,5.E-1);
-+#2985=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
-+#2986=LINE('',#2985,#2984);
-+#2987=CARTESIAN_POINT('',(1.985E1,9.15E0,9.5E0));
-+#2988=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2989=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
-+#2990=AXIS2_PLACEMENT_3D('',#2987,#2988,#2989);
-+#2992=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2993=VECTOR('',#2992,5.E-1);
-+#2994=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
-+#2995=LINE('',#2994,#2993);
-+#2996=CARTESIAN_POINT('',(1.985E1,9.15E0,1.E1));
-+#2997=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2998=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998);
-+#3001=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3002=VECTOR('',#3001,5.E-1);
-+#3003=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
-+#3004=LINE('',#3003,#3002);
-+#3005=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.5E0));
-+#3006=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3007=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3008=AXIS2_PLACEMENT_3D('',#3005,#3006,#3007);
-+#3010=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3011=VECTOR('',#3010,5.E-1);
-+#3012=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
-+#3013=LINE('',#3012,#3011);
-+#3014=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,1.E1));
-+#3015=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3016=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016);
-+#3019=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3020=VECTOR('',#3019,5.E-1);
-+#3021=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
-+#3022=LINE('',#3021,#3020);
-+#3023=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.5E0));
-+#3024=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3025=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3026=AXIS2_PLACEMENT_3D('',#3023,#3024,#3025);
-+#3028=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3029=VECTOR('',#3028,5.E-1);
-+#3030=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
-+#3031=LINE('',#3030,#3029);
-+#3032=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,1.E1));
-+#3033=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3034=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3035=AXIS2_PLACEMENT_3D('',#3032,#3033,#3034);
-+#3037=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3038=VECTOR('',#3037,1.972007605460E-1);
-+#3039=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
-+#3040=LINE('',#3039,#3038);
-+#3041=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3042=VECTOR('',#3041,4.3E0);
-+#3043=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
-+#3044=LINE('',#3043,#3042);
-+#3045=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3046=VECTOR('',#3045,1.3E0);
-+#3047=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
-+#3048=LINE('',#3047,#3046);
-+#3049=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3050=VECTOR('',#3049,6.8E0);
-+#3051=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
-+#3052=LINE('',#3051,#3050);
-+#3053=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3054=VECTOR('',#3053,1.197200760546E0);
-+#3055=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
-+#3056=LINE('',#3055,#3054);
-+#3057=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#3058=VECTOR('',#3057,2.059126028197E0);
-+#3059=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
-+#3060=LINE('',#3059,#3058);
-+#3061=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3062=VECTOR('',#3061,2.5E-1);
-+#3063=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
-+#3064=LINE('',#3063,#3062);
-+#3065=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3066=VECTOR('',#3065,2.5E-1);
-+#3067=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
-+#3068=LINE('',#3067,#3066);
-+#3069=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
-+#3070=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3071=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3072=AXIS2_PLACEMENT_3D('',#3069,#3070,#3071);
-+#3074=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
-+#3075=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3076=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3077=AXIS2_PLACEMENT_3D('',#3074,#3075,#3076);
-+#3079=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3080=VECTOR('',#3079,2.5E-1);
-+#3081=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
-+#3082=LINE('',#3081,#3080);
-+#3083=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3084=VECTOR('',#3083,2.5E-1);
-+#3085=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
-+#3086=LINE('',#3085,#3084);
-+#3087=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
-+#3088=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3089=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3090=AXIS2_PLACEMENT_3D('',#3087,#3088,#3089);
-+#3092=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
-+#3093=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3094=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3095=AXIS2_PLACEMENT_3D('',#3092,#3093,#3094);
-+#3097=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3098=VECTOR('',#3097,2.5E-1);
-+#3099=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
-+#3100=LINE('',#3099,#3098);
-+#3101=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3102=VECTOR('',#3101,2.5E-1);
-+#3103=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
-+#3104=LINE('',#3103,#3102);
-+#3105=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
-+#3106=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3107=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3108=AXIS2_PLACEMENT_3D('',#3105,#3106,#3107);
-+#3110=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
-+#3111=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3112=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3113=AXIS2_PLACEMENT_3D('',#3110,#3111,#3112);
-+#3115=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3116=VECTOR('',#3115,2.5E-1);
-+#3117=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
-+#3118=LINE('',#3117,#3116);
-+#3119=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3120=VECTOR('',#3119,2.5E-1);
-+#3121=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
-+#3122=LINE('',#3121,#3120);
-+#3123=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
-+#3124=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3125=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3126=AXIS2_PLACEMENT_3D('',#3123,#3124,#3125);
-+#3128=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
-+#3129=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3130=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3131=AXIS2_PLACEMENT_3D('',#3128,#3129,#3130);
-+#3133=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3134=VECTOR('',#3133,2.5E-1);
-+#3135=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
-+#3136=LINE('',#3135,#3134);
-+#3137=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3138=VECTOR('',#3137,2.5E-1);
-+#3139=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
-+#3140=LINE('',#3139,#3138);
-+#3141=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
-+#3142=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3143=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3144=AXIS2_PLACEMENT_3D('',#3141,#3142,#3143);
-+#3146=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
-+#3147=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3148=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3149=AXIS2_PLACEMENT_3D('',#3146,#3147,#3148);
-+#3151=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3152=VECTOR('',#3151,5.E-1);
-+#3153=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
-+#3154=LINE('',#3153,#3152);
-+#3155=CARTESIAN_POINT('',(3.75E0,2.75E0,8.E0));
-+#3156=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3157=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3158=AXIS2_PLACEMENT_3D('',#3155,#3156,#3157);
-+#3160=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3161=VECTOR('',#3160,5.E-1);
-+#3162=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
-+#3163=LINE('',#3162,#3161);
-+#3164=CARTESIAN_POINT('',(3.75E0,2.75E0,8.5E0));
-+#3165=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3166=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3167=AXIS2_PLACEMENT_3D('',#3164,#3165,#3166);
-+#3169=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3170=VECTOR('',#3169,5.E-1);
-+#3171=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
-+#3172=LINE('',#3171,#3170);
-+#3173=CARTESIAN_POINT('',(3.75E0,8.75E0,8.E0));
-+#3174=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3175=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3176=AXIS2_PLACEMENT_3D('',#3173,#3174,#3175);
-+#3178=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3179=VECTOR('',#3178,5.E-1);
-+#3180=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
-+#3181=LINE('',#3180,#3179);
-+#3182=CARTESIAN_POINT('',(3.75E0,8.75E0,8.5E0));
-+#3183=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3184=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3185=AXIS2_PLACEMENT_3D('',#3182,#3183,#3184);
-+#3187=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3188=VECTOR('',#3187,5.E-1);
-+#3189=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
-+#3190=LINE('',#3189,#3188);
-+#3191=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.E0));
-+#3192=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3193=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3194=AXIS2_PLACEMENT_3D('',#3191,#3192,#3193);
-+#3196=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3197=VECTOR('',#3196,5.E-1);
-+#3198=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
-+#3199=LINE('',#3198,#3197);
-+#3200=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.5E0));
-+#3201=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3202=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3203=AXIS2_PLACEMENT_3D('',#3200,#3201,#3202);
-+#3205=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3206=VECTOR('',#3205,5.E-1);
-+#3207=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
-+#3208=LINE('',#3207,#3206);
-+#3209=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.E0));
-+#3210=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3211=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3212=AXIS2_PLACEMENT_3D('',#3209,#3210,#3211);
-+#3214=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3215=VECTOR('',#3214,5.E-1);
-+#3216=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
-+#3217=LINE('',#3216,#3215);
-+#3218=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.5E0));
-+#3219=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3220=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3221=AXIS2_PLACEMENT_3D('',#3218,#3219,#3220);
-+#3223=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3224=VECTOR('',#3223,6.E0);
-+#3225=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
-+#3226=LINE('',#3225,#3224);
-+#3227=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3228=VECTOR('',#3227,5.618394209466E-1);
-+#3229=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
-+#3230=LINE('',#3229,#3228);
-+#3231=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
-+#3232=VECTOR('',#3231,6.863753427325E0);
-+#3233=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
-+#3234=LINE('',#3233,#3232);
-+#3235=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3236=VECTOR('',#3235,3.895172754280E0);
-+#3237=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
-+#3238=LINE('',#3237,#3236);
-+#3239=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3240=VECTOR('',#3239,5.E-1);
-+#3241=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
-+#3242=LINE('',#3241,#3240);
-+#3243=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.5E0));
-+#3244=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3245=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3246=AXIS2_PLACEMENT_3D('',#3243,#3244,#3245);
-+#3248=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3249=VECTOR('',#3248,5.E-1);
-+#3250=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
-+#3251=LINE('',#3250,#3249);
-+#3252=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.E0));
-+#3253=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3254=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3255=AXIS2_PLACEMENT_3D('',#3252,#3253,#3254);
-+#3257=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3258=VECTOR('',#3257,3.895172754280E0);
-+#3259=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
-+#3260=LINE('',#3259,#3258);
-+#3261=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
-+#3262=VECTOR('',#3261,6.863753427325E0);
-+#3263=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
-+#3264=LINE('',#3263,#3262);
-+#3265=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3266=VECTOR('',#3265,5.618394209466E-1);
-+#3267=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
-+#3268=LINE('',#3267,#3266);
-+#3269=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3270=VECTOR('',#3269,6.E0);
-+#3271=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
-+#3272=LINE('',#3271,#3270);
-+#3273=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3274=VECTOR('',#3273,5.E-1);
-+#3275=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
-+#3276=LINE('',#3275,#3274);
-+#3277=CARTESIAN_POINT('',(2.025E1,2.75E0,8.5E0));
-+#3278=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3279=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3280=AXIS2_PLACEMENT_3D('',#3277,#3278,#3279);
-+#3282=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3283=VECTOR('',#3282,5.E-1);
-+#3284=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
-+#3285=LINE('',#3284,#3283);
-+#3286=CARTESIAN_POINT('',(2.025E1,2.75E0,8.E0));
-+#3287=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3288=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3289=AXIS2_PLACEMENT_3D('',#3286,#3287,#3288);
-+#3291=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3292=VECTOR('',#3291,5.E-1);
-+#3293=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
-+#3294=LINE('',#3293,#3292);
-+#3295=CARTESIAN_POINT('',(2.025E1,8.75E0,8.5E0));
-+#3296=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3297=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3298=AXIS2_PLACEMENT_3D('',#3295,#3296,#3297);
-+#3300=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3301=VECTOR('',#3300,5.E-1);
-+#3302=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
-+#3303=LINE('',#3302,#3301);
-+#3304=CARTESIAN_POINT('',(2.025E1,8.75E0,8.E0));
-+#3305=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3306=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3307=AXIS2_PLACEMENT_3D('',#3304,#3305,#3306);
-+#3309=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3310=VECTOR('',#3309,5.E-1);
-+#3311=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
-+#3312=LINE('',#3311,#3310);
-+#3313=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.5E0));
-+#3314=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3315=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3316=AXIS2_PLACEMENT_3D('',#3313,#3314,#3315);
-+#3318=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3319=VECTOR('',#3318,5.E-1);
-+#3320=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
-+#3321=LINE('',#3320,#3319);
-+#3322=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.E0));
-+#3323=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3324=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3325=AXIS2_PLACEMENT_3D('',#3322,#3323,#3324);
-+#3327=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3328=VECTOR('',#3327,6.875E-1);
-+#3329=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#3330=LINE('',#3329,#3328);
-+#3331=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3332=VECTOR('',#3331,6.875E-1);
-+#3333=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
-+#3334=LINE('',#3333,#3332);
-+#3335=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3336=VECTOR('',#3335,6.875E-1);
-+#3337=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#3338=LINE('',#3337,#3336);
-+#3339=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3340=VECTOR('',#3339,6.875E-1);
-+#3341=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
-+#3342=LINE('',#3341,#3340);
-+#3343=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3344=VECTOR('',#3343,3.E0);
-+#3345=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
-+#3346=LINE('',#3345,#3344);
-+#3347=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.25E0));
-+#3348=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3349=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3350=AXIS2_PLACEMENT_3D('',#3347,#3348,#3349);
-+#3352=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3353=VECTOR('',#3352,3.E0);
-+#3354=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
-+#3355=LINE('',#3354,#3353);
-+#3356=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.25E0));
-+#3357=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3358=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3359=AXIS2_PLACEMENT_3D('',#3356,#3357,#3358);
-+#3361=CARTESIAN_POINT('',(1.61E0,6.875E-1,4.5E0));
-+#3362=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3363=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
-+#3364=AXIS2_PLACEMENT_3D('',#3361,#3362,#3363);
-+#3366=CARTESIAN_POINT('',(7.5E0,6.875E-1,7.5E0));
-+#3367=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3368=DIRECTION('',(-4.496088413988E-1,0.E0,-8.932255536739E-1));
-+#3369=AXIS2_PLACEMENT_3D('',#3366,#3367,#3368);
-+#3371=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,1.645354088550E0));
-+#3372=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3373=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3374=AXIS2_PLACEMENT_3D('',#3371,#3372,#3373);
-+#3376=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3377=VECTOR('',#3376,4.263248410977E0);
-+#3378=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
-+#3379=LINE('',#3378,#3377);
-+#3380=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3381=VECTOR('',#3380,6.875E-1);
-+#3382=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
-+#3383=LINE('',#3382,#3381);
-+#3384=CARTESIAN_POINT('',(1.455736763592E0,0.E0,4.577195232320E0));
-+#3385=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3386=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3387=AXIS2_PLACEMENT_3D('',#3384,#3385,#3386);
-+#3389=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3390=VECTOR('',#3389,6.875E-1);
-+#3391=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
-+#3392=LINE('',#3391,#3390);
-+#3393=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,4.577195232320E0));
-+#3394=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3395=DIRECTION('',(-8.942796313519E-1,0.E0,4.475085931567E-1));
-+#3396=AXIS2_PLACEMENT_3D('',#3393,#3394,#3395);
-+#3398=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3399=VECTOR('',#3398,6.875E-1);
-+#3400=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
-+#3401=LINE('',#3400,#3399);
-+#3402=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3403=VECTOR('',#3402,6.875E-1);
-+#3404=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
-+#3405=LINE('',#3404,#3403);
-+#3406=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3407=VECTOR('',#3406,6.875E-1);
-+#3408=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
-+#3409=LINE('',#3408,#3407);
-+#3410=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3411=VECTOR('',#3410,6.875E-1);
-+#3412=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
-+#3413=LINE('',#3412,#3411);
-+#3414=CARTESIAN_POINT('',(-1.85E-1,0.E0,7.815E0));
-+#3415=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3416=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3417=AXIS2_PLACEMENT_3D('',#3414,#3415,#3416);
-+#3419=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3420=VECTOR('',#3419,6.875E-1);
-+#3421=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
-+#3422=LINE('',#3421,#3420);
-+#3423=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,7.815E0));
-+#3424=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3425=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3426=AXIS2_PLACEMENT_3D('',#3423,#3424,#3425);
-+#3428=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3429=VECTOR('',#3428,7.5E-1);
-+#3430=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
-+#3431=LINE('',#3430,#3429);
-+#3432=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3433=VECTOR('',#3432,3.15E-1);
-+#3434=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
-+#3435=LINE('',#3434,#3433);
-+#3436=CARTESIAN_POINT('',(1.25125E0,6.875E-1,7.5E0));
-+#3437=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3438=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3439=AXIS2_PLACEMENT_3D('',#3436,#3437,#3438);
-+#3441=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3442=VECTOR('',#3441,3.15E-1);
-+#3443=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
-+#3444=LINE('',#3443,#3442);
-+#3445=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3446=VECTOR('',#3445,2.525E-1);
-+#3447=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
-+#3448=LINE('',#3447,#3446);
-+#3449=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3450=VECTOR('',#3449,8.1E-1);
-+#3451=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
-+#3452=LINE('',#3451,#3450);
-+#3453=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3454=VECTOR('',#3453,3.875E0);
-+#3455=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
-+#3456=LINE('',#3455,#3454);
-+#3457=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3458=VECTOR('',#3457,8.1E-1);
-+#3459=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
-+#3460=LINE('',#3459,#3458);
-+#3461=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3462=VECTOR('',#3461,6.875E-1);
-+#3463=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
-+#3464=LINE('',#3463,#3462);
-+#3465=CARTESIAN_POINT('',(2.6875E0,0.E0,7.815E0));
-+#3466=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3467=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3468=AXIS2_PLACEMENT_3D('',#3465,#3466,#3467);
-+#3470=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3471=VECTOR('',#3470,6.875E-1);
-+#3472=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
-+#3473=LINE('',#3472,#3471);
-+#3474=CARTESIAN_POINT('',(2.6875E0,6.875E-1,7.815E0));
-+#3475=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3476=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3477=AXIS2_PLACEMENT_3D('',#3474,#3475,#3476);
-+#3479=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3480=VECTOR('',#3479,6.875E-1);
-+#3481=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#3482=LINE('',#3481,#3480);
-+#3483=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3484=VECTOR('',#3483,6.875E-1);
-+#3485=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
-+#3486=LINE('',#3485,#3484);
-+#3487=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3488=VECTOR('',#3487,6.875E-1);
-+#3489=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
-+#3490=LINE('',#3489,#3488);
-+#3491=CARTESIAN_POINT('',(3.4375E0,0.E0,9.565E0));
-+#3492=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3493=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3494=AXIS2_PLACEMENT_3D('',#3491,#3492,#3493);
-+#3496=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3497=VECTOR('',#3496,6.875E-1);
-+#3498=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
-+#3499=LINE('',#3498,#3497);
-+#3500=CARTESIAN_POINT('',(3.4375E0,6.875E-1,9.565E0));
-+#3501=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3502=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3503=AXIS2_PLACEMENT_3D('',#3500,#3501,#3502);
-+#3505=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3506=VECTOR('',#3505,6.875E-1);
-+#3507=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
-+#3508=LINE('',#3507,#3506);
-+#3509=CARTESIAN_POINT('',(3.4375E0,0.E0,1.0375E1));
-+#3510=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3511=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3512=AXIS2_PLACEMENT_3D('',#3509,#3510,#3511);
-+#3514=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3515=VECTOR('',#3514,6.875E-1);
-+#3516=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
-+#3517=LINE('',#3516,#3515);
-+#3518=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.0375E1));
-+#3519=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3520=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3521=AXIS2_PLACEMENT_3D('',#3518,#3519,#3520);
-+#3523=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3524=VECTOR('',#3523,6.875E-1);
-+#3525=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
-+#3526=LINE('',#3525,#3524);
-+#3527=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.0375E1));
-+#3528=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3529=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3530=AXIS2_PLACEMENT_3D('',#3527,#3528,#3529);
-+#3532=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3533=VECTOR('',#3532,6.875E-1);
-+#3534=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
-+#3535=LINE('',#3534,#3533);
-+#3536=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.0375E1));
-+#3537=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3538=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3539=AXIS2_PLACEMENT_3D('',#3536,#3537,#3538);
-+#3541=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3542=VECTOR('',#3541,6.875E-1);
-+#3543=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
-+#3544=LINE('',#3543,#3542);
-+#3545=CARTESIAN_POINT('',(-4.375E-1,0.E0,9.565E0));
-+#3546=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3547=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3548=AXIS2_PLACEMENT_3D('',#3545,#3546,#3547);
-+#3550=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3551=VECTOR('',#3550,6.875E-1);
-+#3552=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
-+#3553=LINE('',#3552,#3551);
-+#3554=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,9.565E0));
-+#3555=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3556=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3557=AXIS2_PLACEMENT_3D('',#3554,#3555,#3556);
-+#3559=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3560=VECTOR('',#3559,6.875E-1);
-+#3561=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#3562=LINE('',#3561,#3560);
-+#3563=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3564=VECTOR('',#3563,6.875E-1);
-+#3565=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
-+#3566=LINE('',#3565,#3564);
-+#3567=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3568=VECTOR('',#3567,6.875E-1);
-+#3569=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#3570=LINE('',#3569,#3568);
-+#3571=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3572=VECTOR('',#3571,6.875E-1);
-+#3573=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
-+#3574=LINE('',#3573,#3572);
-+#3575=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3576=VECTOR('',#3575,3.E0);
-+#3577=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
-+#3578=LINE('',#3577,#3576);
-+#3579=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.65E1));
-+#3580=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3581=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3582=AXIS2_PLACEMENT_3D('',#3579,#3580,#3581);
-+#3584=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3585=VECTOR('',#3584,3.E0);
-+#3586=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
-+#3587=LINE('',#3586,#3585);
-+#3588=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.35E1));
-+#3589=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3590=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3591=AXIS2_PLACEMENT_3D('',#3588,#3589,#3590);
-+#3593=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3594=VECTOR('',#3593,6.875E-1);
-+#3595=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#3596=LINE('',#3595,#3594);
-+#3597=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3598=VECTOR('',#3597,6.875E-1);
-+#3599=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
-+#3600=LINE('',#3599,#3598);
-+#3601=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3602=VECTOR('',#3601,6.875E-1);
-+#3603=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#3604=LINE('',#3603,#3602);
-+#3605=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3606=VECTOR('',#3605,6.875E-1);
-+#3607=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
-+#3608=LINE('',#3607,#3606);
-+#3609=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3610=VECTOR('',#3609,3.E0);
-+#3611=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
-+#3612=LINE('',#3611,#3610);
-+#3613=CARTESIAN_POINT('',(1.25E0,6.875E-1,2.25E1));
-+#3614=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3615=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3616=AXIS2_PLACEMENT_3D('',#3613,#3614,#3615);
-+#3618=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3619=VECTOR('',#3618,3.E0);
-+#3620=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
-+#3621=LINE('',#3620,#3619);
-+#3622=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.95E1));
-+#3623=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3624=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3625=AXIS2_PLACEMENT_3D('',#3622,#3623,#3624);
-+#3627=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3628=VECTOR('',#3627,6.875E-1);
-+#3629=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#3630=LINE('',#3629,#3628);
-+#3631=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3632=VECTOR('',#3631,6.875E-1);
-+#3633=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
-+#3634=LINE('',#3633,#3632);
-+#3635=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3636=VECTOR('',#3635,6.875E-1);
-+#3637=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#3638=LINE('',#3637,#3636);
-+#3639=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3640=VECTOR('',#3639,6.875E-1);
-+#3641=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
-+#3642=LINE('',#3641,#3640);
-+#3643=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3644=VECTOR('',#3643,3.E0);
-+#3645=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
-+#3646=LINE('',#3645,#3644);
-+#3647=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.E0));
-+#3648=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3649=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3650=AXIS2_PLACEMENT_3D('',#3647,#3648,#3649);
-+#3652=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3653=VECTOR('',#3652,3.E0);
-+#3654=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
-+#3655=LINE('',#3654,#3653);
-+#3656=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.E0));
-+#3657=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3658=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3659=AXIS2_PLACEMENT_3D('',#3656,#3657,#3658);
-+#3661=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3662=VECTOR('',#3661,6.875E-1);
-+#3663=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#3664=LINE('',#3663,#3662);
-+#3665=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3666=VECTOR('',#3665,6.875E-1);
-+#3667=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
-+#3668=LINE('',#3667,#3666);
-+#3669=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3670=VECTOR('',#3669,6.875E-1);
-+#3671=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#3672=LINE('',#3671,#3670);
-+#3673=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3674=VECTOR('',#3673,6.875E-1);
-+#3675=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
-+#3676=LINE('',#3675,#3674);
-+#3677=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3678=VECTOR('',#3677,3.E0);
-+#3679=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
-+#3680=LINE('',#3679,#3678);
-+#3681=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8E1));
-+#3682=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3683=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3684=AXIS2_PLACEMENT_3D('',#3681,#3682,#3683);
-+#3686=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3687=VECTOR('',#3686,3.E0);
-+#3688=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
-+#3689=LINE('',#3688,#3687);
-+#3690=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8E1));
-+#3691=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3692=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3693=AXIS2_PLACEMENT_3D('',#3690,#3691,#3692);
-+#3695=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3696=VECTOR('',#3695,6.875E-1);
-+#3697=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#3698=LINE('',#3697,#3696);
-+#3699=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3700=VECTOR('',#3699,6.875E-1);
-+#3701=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
-+#3702=LINE('',#3701,#3700);
-+#3703=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3704=VECTOR('',#3703,6.875E-1);
-+#3705=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#3706=LINE('',#3705,#3704);
-+#3707=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3708=VECTOR('',#3707,6.875E-1);
-+#3709=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
-+#3710=LINE('',#3709,#3708);
-+#3711=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3712=VECTOR('',#3711,3.E0);
-+#3713=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
-+#3714=LINE('',#3713,#3712);
-+#3715=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.075E1));
-+#3716=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3717=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3718=AXIS2_PLACEMENT_3D('',#3715,#3716,#3717);
-+#3720=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3721=VECTOR('',#3720,3.E0);
-+#3722=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
-+#3723=LINE('',#3722,#3721);
-+#3724=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.075E1));
-+#3725=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3726=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3727=AXIS2_PLACEMENT_3D('',#3724,#3725,#3726);
-+#3729=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#3730=VECTOR('',#3729,4.263248410977E0);
-+#3731=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
-+#3732=LINE('',#3731,#3730);
-+#3733=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,3.035464591145E1));
-+#3734=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3735=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#3736=AXIS2_PLACEMENT_3D('',#3733,#3734,#3735);
-+#3738=CARTESIAN_POINT('',(7.5E0,6.875E-1,2.45E1));
-+#3739=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3740=DIRECTION('',(-4.496088413988E-1,0.E0,8.932255536739E-1));
-+#3741=AXIS2_PLACEMENT_3D('',#3738,#3739,#3740);
-+#3743=CARTESIAN_POINT('',(1.61E0,6.875E-1,2.75E1));
-+#3744=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3745=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#3746=AXIS2_PLACEMENT_3D('',#3743,#3744,#3745);
-+#3748=DIRECTION('',(0.E0,1.E0,-1.033516706560E-14));
-+#3749=VECTOR('',#3748,6.875E-1);
-+#3750=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
-+#3751=LINE('',#3750,#3749);
-+#3752=CARTESIAN_POINT('',(1.455736763592E0,0.E0,2.742280476768E1));
-+#3753=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3754=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
-+#3755=AXIS2_PLACEMENT_3D('',#3752,#3753,#3754);
-+#3757=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
-+#3758=VECTOR('',#3757,6.875E-1);
-+#3759=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
-+#3760=LINE('',#3759,#3758);
-+#3761=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,2.742280476768E1));
-+#3762=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3763=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811866E-1));
-+#3764=AXIS2_PLACEMENT_3D('',#3761,#3762,#3763);
-+#3766=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
-+#3767=VECTOR('',#3766,6.875E-1);
-+#3768=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
-+#3769=LINE('',#3768,#3767);
-+#3770=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3771=VECTOR('',#3770,6.875E-1);
-+#3772=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
-+#3773=LINE('',#3772,#3771);
-+#3774=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3775=VECTOR('',#3774,6.875E-1);
-+#3776=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
-+#3777=LINE('',#3776,#3775);
-+#3778=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3779=VECTOR('',#3778,6.875E-1);
-+#3780=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#3781=LINE('',#3780,#3779);
-+#3782=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3783=VECTOR('',#3782,6.875E-1);
-+#3784=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
-+#3785=LINE('',#3784,#3783);
-+#3786=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3787=VECTOR('',#3786,6.875E-1);
-+#3788=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#3789=LINE('',#3788,#3787);
-+#3790=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3791=VECTOR('',#3790,6.875E-1);
-+#3792=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
-+#3793=LINE('',#3792,#3791);
-+#3794=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3795=VECTOR('',#3794,3.E0);
-+#3796=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
-+#3797=LINE('',#3796,#3795);
-+#3798=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.25E0));
-+#3799=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3800=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3801=AXIS2_PLACEMENT_3D('',#3798,#3799,#3800);
-+#3803=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3804=VECTOR('',#3803,3.E0);
-+#3805=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
-+#3806=LINE('',#3805,#3804);
-+#3807=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.25E0));
-+#3808=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3809=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3810=AXIS2_PLACEMENT_3D('',#3807,#3808,#3809);
-+#3812=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3813=VECTOR('',#3812,4.263248410977E0);
-+#3814=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
-+#3815=LINE('',#3814,#3813);
-+#3816=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,1.645354088550E0));
-+#3817=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3818=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3819=AXIS2_PLACEMENT_3D('',#3816,#3817,#3818);
-+#3821=CARTESIAN_POINT('',(1.65E1,6.875E-1,7.5E0));
-+#3822=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3823=DIRECTION('',(4.496088413988E-1,0.E0,-8.932255536739E-1));
-+#3824=AXIS2_PLACEMENT_3D('',#3821,#3822,#3823);
-+#3826=CARTESIAN_POINT('',(2.239E1,6.875E-1,4.5E0));
-+#3827=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3828=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
-+#3829=AXIS2_PLACEMENT_3D('',#3826,#3827,#3828);
-+#3831=DIRECTION('',(-1.033516706560E-14,1.E0,2.583791766400E-14));
-+#3832=VECTOR('',#3831,6.875E-1);
-+#3833=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
-+#3834=LINE('',#3833,#3832);
-+#3835=CARTESIAN_POINT('',(2.254426323641E1,0.E0,4.577195232320E0));
-+#3836=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3837=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
-+#3838=AXIS2_PLACEMENT_3D('',#3835,#3836,#3837);
-+#3840=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3841=VECTOR('',#3840,6.875E-1);
-+#3842=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
-+#3843=LINE('',#3842,#3841);
-+#3844=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,4.577195232320E0));
-+#3845=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3846=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3847=AXIS2_PLACEMENT_3D('',#3844,#3845,#3846);
-+#3849=DIRECTION('',(-1.550275059840E-14,1.E0,-2.067033413120E-14));
-+#3850=VECTOR('',#3849,6.875E-1);
-+#3851=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
-+#3852=LINE('',#3851,#3850);
-+#3853=DIRECTION('',(1.550275059840E-14,1.E0,0.E0));
-+#3854=VECTOR('',#3853,6.875E-1);
-+#3855=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
-+#3856=LINE('',#3855,#3854);
-+#3857=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3858=VECTOR('',#3857,6.875E-1);
-+#3859=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
-+#3860=LINE('',#3859,#3858);
-+#3861=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3862=VECTOR('',#3861,6.875E-1);
-+#3863=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#3864=LINE('',#3863,#3862);
-+#3865=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3866=VECTOR('',#3865,6.875E-1);
-+#3867=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
-+#3868=LINE('',#3867,#3866);
-+#3869=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3870=VECTOR('',#3869,6.875E-1);
-+#3871=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#3872=LINE('',#3871,#3870);
-+#3873=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3874=VECTOR('',#3873,6.875E-1);
-+#3875=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
-+#3876=LINE('',#3875,#3874);
-+#3877=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3878=VECTOR('',#3877,3.E0);
-+#3879=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
-+#3880=LINE('',#3879,#3878);
-+#3881=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.35E1));
-+#3882=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3883=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3884=AXIS2_PLACEMENT_3D('',#3881,#3882,#3883);
-+#3886=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3887=VECTOR('',#3886,3.E0);
-+#3888=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
-+#3889=LINE('',#3888,#3887);
-+#3890=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.65E1));
-+#3891=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3892=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3893=AXIS2_PLACEMENT_3D('',#3890,#3891,#3892);
-+#3895=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3896=VECTOR('',#3895,6.875E-1);
-+#3897=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#3898=LINE('',#3897,#3896);
-+#3899=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3900=VECTOR('',#3899,6.875E-1);
-+#3901=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
-+#3902=LINE('',#3901,#3900);
-+#3903=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3904=VECTOR('',#3903,6.875E-1);
-+#3905=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#3906=LINE('',#3905,#3904);
-+#3907=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3908=VECTOR('',#3907,6.875E-1);
-+#3909=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
-+#3910=LINE('',#3909,#3908);
-+#3911=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3912=VECTOR('',#3911,3.E0);
-+#3913=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
-+#3914=LINE('',#3913,#3912);
-+#3915=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.95E1));
-+#3916=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3917=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3918=AXIS2_PLACEMENT_3D('',#3915,#3916,#3917);
-+#3920=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3921=VECTOR('',#3920,3.E0);
-+#3922=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
-+#3923=LINE('',#3922,#3921);
-+#3924=CARTESIAN_POINT('',(2.275E1,6.875E-1,2.25E1));
-+#3925=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3926=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3927=AXIS2_PLACEMENT_3D('',#3924,#3925,#3926);
-+#3929=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3930=VECTOR('',#3929,6.875E-1);
-+#3931=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#3932=LINE('',#3931,#3930);
-+#3933=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3934=VECTOR('',#3933,6.875E-1);
-+#3935=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
-+#3936=LINE('',#3935,#3934);
-+#3937=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3938=VECTOR('',#3937,6.875E-1);
-+#3939=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#3940=LINE('',#3939,#3938);
-+#3941=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3942=VECTOR('',#3941,6.875E-1);
-+#3943=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
-+#3944=LINE('',#3943,#3942);
-+#3945=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3946=VECTOR('',#3945,3.E0);
-+#3947=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
-+#3948=LINE('',#3947,#3946);
-+#3949=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.E0));
-+#3950=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3951=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3952=AXIS2_PLACEMENT_3D('',#3949,#3950,#3951);
-+#3954=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3955=VECTOR('',#3954,3.E0);
-+#3956=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
-+#3957=LINE('',#3956,#3955);
-+#3958=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.E0));
-+#3959=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3960=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3961=AXIS2_PLACEMENT_3D('',#3958,#3959,#3960);
-+#3963=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3964=VECTOR('',#3963,6.875E-1);
-+#3965=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#3966=LINE('',#3965,#3964);
-+#3967=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3968=VECTOR('',#3967,6.875E-1);
-+#3969=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
-+#3970=LINE('',#3969,#3968);
-+#3971=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3972=VECTOR('',#3971,6.875E-1);
-+#3973=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#3974=LINE('',#3973,#3972);
-+#3975=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3976=VECTOR('',#3975,6.875E-1);
-+#3977=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
-+#3978=LINE('',#3977,#3976);
-+#3979=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3980=VECTOR('',#3979,3.E0);
-+#3981=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
-+#3982=LINE('',#3981,#3980);
-+#3983=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8E1));
-+#3984=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3985=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3986=AXIS2_PLACEMENT_3D('',#3983,#3984,#3985);
-+#3988=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3989=VECTOR('',#3988,3.E0);
-+#3990=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
-+#3991=LINE('',#3990,#3989);
-+#3992=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8E1));
-+#3993=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3994=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3995=AXIS2_PLACEMENT_3D('',#3992,#3993,#3994);
-+#3997=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3998=VECTOR('',#3997,6.875E-1);
-+#3999=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#4000=LINE('',#3999,#3998);
-+#4001=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4002=VECTOR('',#4001,6.875E-1);
-+#4003=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
-+#4004=LINE('',#4003,#4002);
-+#4005=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4006=VECTOR('',#4005,6.875E-1);
-+#4007=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#4008=LINE('',#4007,#4006);
-+#4009=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4010=VECTOR('',#4009,6.875E-1);
-+#4011=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
-+#4012=LINE('',#4011,#4010);
-+#4013=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4014=VECTOR('',#4013,3.E0);
-+#4015=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
-+#4016=LINE('',#4015,#4014);
-+#4017=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.075E1));
-+#4018=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4019=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4020=AXIS2_PLACEMENT_3D('',#4017,#4018,#4019);
-+#4022=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4023=VECTOR('',#4022,3.E0);
-+#4024=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
-+#4025=LINE('',#4024,#4023);
-+#4026=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.075E1));
-+#4027=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4028=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4029=AXIS2_PLACEMENT_3D('',#4026,#4027,#4028);
-+#4031=CARTESIAN_POINT('',(2.239E1,6.875E-1,2.75E1));
-+#4032=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4033=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#4034=AXIS2_PLACEMENT_3D('',#4031,#4032,#4033);
-+#4036=CARTESIAN_POINT('',(1.65E1,6.875E-1,2.45E1));
-+#4037=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4038=DIRECTION('',(4.496088413988E-1,0.E0,8.932255536739E-1));
-+#4039=AXIS2_PLACEMENT_3D('',#4036,#4037,#4038);
-+#4041=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,3.035464591145E1));
-+#4042=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4043=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#4044=AXIS2_PLACEMENT_3D('',#4041,#4042,#4043);
-+#4046=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#4047=VECTOR('',#4046,4.263248410977E0);
-+#4048=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
-+#4049=LINE('',#4048,#4047);
-+#4050=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4051=VECTOR('',#4050,6.875E-1);
-+#4052=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
-+#4053=LINE('',#4052,#4051);
-+#4054=CARTESIAN_POINT('',(2.254426323641E1,0.E0,2.742280476768E1));
-+#4055=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4056=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#4057=AXIS2_PLACEMENT_3D('',#4054,#4055,#4056);
-+#4059=DIRECTION('',(0.E0,1.E0,2.067033413120E-14));
-+#4060=VECTOR('',#4059,6.875E-1);
-+#4061=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
-+#4062=LINE('',#4061,#4060);
-+#4063=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,2.742280476768E1));
-+#4064=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4065=DIRECTION('',(8.942796313519E-1,0.E0,-4.475085931567E-1));
-+#4066=AXIS2_PLACEMENT_3D('',#4063,#4064,#4065);
-+#4068=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4069=VECTOR('',#4068,6.875E-1);
-+#4070=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
-+#4071=LINE('',#4070,#4069);
-+#4072=DIRECTION('',(1.033516706560E-14,1.E0,0.E0));
-+#4073=VECTOR('',#4072,6.875E-1);
-+#4074=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
-+#4075=LINE('',#4074,#4073);
-+#4076=DIRECTION('',(-2.067033413120E-14,1.E0,3.100550119680E-14));
-+#4077=VECTOR('',#4076,6.875E-1);
-+#4078=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
-+#4079=LINE('',#4078,#4077);
-+#4080=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4081=VECTOR('',#4080,6.875E-1);
-+#4082=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
-+#4083=LINE('',#4082,#4081);
-+#4084=CARTESIAN_POINT('',(2.13075E1,6.875E-1,7.81E0));
-+#4085=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4086=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4087=AXIS2_PLACEMENT_3D('',#4084,#4085,#4086);
-+#4089=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4090=VECTOR('',#4089,6.875E-1);
-+#4091=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
-+#4092=LINE('',#4091,#4090);
-+#4093=CARTESIAN_POINT('',(2.13075E1,0.E0,7.81E0));
-+#4094=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4095=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4096=AXIS2_PLACEMENT_3D('',#4093,#4094,#4095);
-+#4098=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4099=VECTOR('',#4098,6.875E-1);
-+#4100=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
-+#4101=LINE('',#4100,#4099);
-+#4102=CARTESIAN_POINT('',(2.05675E1,6.875E-1,9.57E0));
-+#4103=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4104=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4105=AXIS2_PLACEMENT_3D('',#4102,#4103,#4104);
-+#4107=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4108=VECTOR('',#4107,6.875E-1);
-+#4109=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
-+#4110=LINE('',#4109,#4108);
-+#4111=CARTESIAN_POINT('',(2.05675E1,0.E0,9.57E0));
-+#4112=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4113=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4114=AXIS2_PLACEMENT_3D('',#4111,#4112,#4113);
-+#4116=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4117=VECTOR('',#4116,6.875E-1);
-+#4118=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
-+#4119=LINE('',#4118,#4117);
-+#4120=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.037E1));
-+#4121=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4122=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4123=AXIS2_PLACEMENT_3D('',#4120,#4121,#4122);
-+#4125=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4126=VECTOR('',#4125,6.875E-1);
-+#4127=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
-+#4128=LINE('',#4127,#4126);
-+#4129=CARTESIAN_POINT('',(2.05675E1,0.E0,1.037E1));
-+#4130=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4131=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4132=AXIS2_PLACEMENT_3D('',#4129,#4130,#4131);
-+#4134=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4135=VECTOR('',#4134,6.875E-1);
-+#4136=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
-+#4137=LINE('',#4136,#4135);
-+#4138=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.037E1));
-+#4139=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4140=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4141=AXIS2_PLACEMENT_3D('',#4138,#4139,#4140);
-+#4143=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4144=VECTOR('',#4143,6.875E-1);
-+#4145=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
-+#4146=LINE('',#4145,#4144);
-+#4147=CARTESIAN_POINT('',(2.44325E1,0.E0,1.037E1));
-+#4148=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4149=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4150=AXIS2_PLACEMENT_3D('',#4147,#4148,#4149);
-+#4152=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4153=VECTOR('',#4152,6.875E-1);
-+#4154=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
-+#4155=LINE('',#4154,#4153);
-+#4156=CARTESIAN_POINT('',(2.44325E1,6.875E-1,9.57E0));
-+#4157=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4158=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4159=AXIS2_PLACEMENT_3D('',#4156,#4157,#4158);
-+#4161=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4162=VECTOR('',#4161,6.875E-1);
-+#4163=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
-+#4164=LINE('',#4163,#4162);
-+#4165=CARTESIAN_POINT('',(2.44325E1,0.E0,9.57E0));
-+#4166=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4167=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4168=AXIS2_PLACEMENT_3D('',#4165,#4166,#4167);
-+#4170=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4171=VECTOR('',#4170,6.875E-1);
-+#4172=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
-+#4173=LINE('',#4172,#4171);
-+#4174=CARTESIAN_POINT('',(2.419E1,6.875E-1,7.81E0));
-+#4175=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4176=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4177=AXIS2_PLACEMENT_3D('',#4174,#4175,#4176);
-+#4179=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4180=VECTOR('',#4179,6.875E-1);
-+#4181=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
-+#4182=LINE('',#4181,#4180);
-+#4183=CARTESIAN_POINT('',(2.419E1,0.E0,7.81E0));
-+#4184=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4185=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4186=AXIS2_PLACEMENT_3D('',#4183,#4184,#4185);
-+#4188=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
-+#4189=VECTOR('',#4188,6.875E-1);
-+#4190=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
-+#4191=LINE('',#4190,#4189);
-+#4192=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4193=VECTOR('',#4192,6.875E-1);
-+#4194=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#4195=LINE('',#4194,#4193);
-+#4196=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4197=VECTOR('',#4196,2.425E-1);
-+#4198=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
-+#4199=LINE('',#4198,#4197);
-+#4200=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4201=VECTOR('',#4200,3.1E-1);
-+#4202=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
-+#4203=LINE('',#4202,#4201);
-+#4204=CARTESIAN_POINT('',(2.274875E1,6.875E-1,7.5E0));
-+#4205=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4206=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4207=AXIS2_PLACEMENT_3D('',#4204,#4205,#4206);
-+#4209=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4210=VECTOR('',#4209,3.1E-1);
-+#4211=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
-+#4212=LINE('',#4211,#4210);
-+#4213=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4214=VECTOR('',#4213,7.4E-1);
-+#4215=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
-+#4216=LINE('',#4215,#4214);
-+#4217=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4218=VECTOR('',#4217,8.E-1);
-+#4219=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
-+#4220=LINE('',#4219,#4218);
-+#4221=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4222=VECTOR('',#4221,3.865E0);
-+#4223=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
-+#4224=LINE('',#4223,#4222);
-+#4225=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4226=VECTOR('',#4225,8.E-1);
-+#4227=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
-+#4228=LINE('',#4227,#4226);
-+#4229=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#4230=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
-+#4231=VERTEX_POINT('',#4229);
-+#4232=VERTEX_POINT('',#4230);
-+#4233=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
-+#4234=CARTESIAN_POINT('',(2.E1,1.5E0,3.2E1));
-+#4235=VERTEX_POINT('',#4233);
-+#4236=VERTEX_POINT('',#4234);
-+#4237=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#4238=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
-+#4239=VERTEX_POINT('',#4237);
-+#4240=VERTEX_POINT('',#4238);
-+#4241=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
-+#4242=CARTESIAN_POINT('',(2.4E1,1.5E0,4.E0));
-+#4243=VERTEX_POINT('',#4241);
-+#4244=VERTEX_POINT('',#4242);
-+#4245=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#4246=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
-+#4247=VERTEX_POINT('',#4245);
-+#4248=VERTEX_POINT('',#4246);
-+#4249=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
-+#4250=CARTESIAN_POINT('',(0.E0,1.5E0,2.8E1));
-+#4251=VERTEX_POINT('',#4249);
-+#4252=VERTEX_POINT('',#4250);
-+#4253=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#4254=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
-+#4255=VERTEX_POINT('',#4253);
-+#4256=VERTEX_POINT('',#4254);
-+#4257=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
-+#4258=CARTESIAN_POINT('',(4.E0,1.5E0,0.E0));
-+#4259=VERTEX_POINT('',#4257);
-+#4260=VERTEX_POINT('',#4258);
-+#4261=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
-+#4262=CARTESIAN_POINT('',(7.5E0,0.E0,2.5E0));
-+#4263=VERTEX_POINT('',#4261);
-+#4264=VERTEX_POINT('',#4262);
-+#4265=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
-+#4266=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
-+#4267=VERTEX_POINT('',#4265);
-+#4268=VERTEX_POINT('',#4266);
-+#4269=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
-+#4270=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
-+#4271=VERTEX_POINT('',#4269);
-+#4272=VERTEX_POINT('',#4270);
-+#4273=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
-+#4274=CARTESIAN_POINT('',(2.5E0,0.E0,2.45E1));
-+#4275=VERTEX_POINT('',#4273);
-+#4276=VERTEX_POINT('',#4274);
-+#4277=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
-+#4278=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
-+#4279=VERTEX_POINT('',#4277);
-+#4280=VERTEX_POINT('',#4278);
-+#4281=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
-+#4282=CARTESIAN_POINT('',(1.65E1,0.E0,2.95E1));
-+#4283=VERTEX_POINT('',#4281);
-+#4284=VERTEX_POINT('',#4282);
-+#4285=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#4286=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#4287=VERTEX_POINT('',#4285);
-+#4288=VERTEX_POINT('',#4286);
-+#4289=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
-+#4290=VERTEX_POINT('',#4289);
-+#4291=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
-+#4292=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
-+#4293=VERTEX_POINT('',#4291);
-+#4294=VERTEX_POINT('',#4292);
-+#4295=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
-+#4296=VERTEX_POINT('',#4295);
-+#4297=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
-+#4298=VERTEX_POINT('',#4297);
-+#4299=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
-+#4300=VERTEX_POINT('',#4299);
-+#4301=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
-+#4302=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
-+#4303=VERTEX_POINT('',#4301);
-+#4304=VERTEX_POINT('',#4302);
-+#4305=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
-+#4306=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
-+#4307=VERTEX_POINT('',#4305);
-+#4308=VERTEX_POINT('',#4306);
-+#4309=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
-+#4310=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
-+#4311=VERTEX_POINT('',#4309);
-+#4312=VERTEX_POINT('',#4310);
-+#4313=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
-+#4314=CARTESIAN_POINT('',(-1.E0,1.5E0,1.225E1));
-+#4315=VERTEX_POINT('',#4313);
-+#4316=VERTEX_POINT('',#4314);
-+#4317=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
-+#4318=CARTESIAN_POINT('',(0.E0,0.E0,7.E0));
-+#4319=VERTEX_POINT('',#4317);
-+#4320=VERTEX_POINT('',#4318);
-+#4321=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
-+#4322=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
-+#4323=VERTEX_POINT('',#4321);
-+#4324=VERTEX_POINT('',#4322);
-+#4325=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
-+#4326=CARTESIAN_POINT('',(3.531373033403E0,0.E0,8.E0));
-+#4327=VERTEX_POINT('',#4325);
-+#4328=VERTEX_POINT('',#4326);
-+#4329=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
-+#4330=CARTESIAN_POINT('',(2.539216291754E0,0.E0,6.875E0));
-+#4331=VERTEX_POINT('',#4329);
-+#4332=VERTEX_POINT('',#4330);
-+#4333=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#4334=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
-+#4335=VERTEX_POINT('',#4333);
-+#4336=VERTEX_POINT('',#4334);
-+#4337=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
-+#4338=CARTESIAN_POINT('',(4.5E0,1.5E0,1.225E1));
-+#4339=VERTEX_POINT('',#4337);
-+#4340=VERTEX_POINT('',#4338);
-+#4341=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#4342=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
-+#4343=VERTEX_POINT('',#4341);
-+#4344=VERTEX_POINT('',#4342);
-+#4345=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
-+#4346=CARTESIAN_POINT('',(-2.E0,1.5E0,1.175E1));
-+#4347=VERTEX_POINT('',#4345);
-+#4348=VERTEX_POINT('',#4346);
-+#4349=CARTESIAN_POINT('',(4.095E0,1.1125E1,9.E0));
-+#4350=CARTESIAN_POINT('',(3.905E0,1.1125E1,9.E0));
-+#4351=VERTEX_POINT('',#4349);
-+#4352=VERTEX_POINT('',#4350);
-+#4353=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
-+#4354=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
-+#4355=VERTEX_POINT('',#4353);
-+#4356=VERTEX_POINT('',#4354);
-+#4357=CARTESIAN_POINT('',(3.929917478528E0,1.125E1,9.132582521472E0));
-+#4358=CARTESIAN_POINT('',(3.804917478528E0,1.125E1,9.132582521472E0));
-+#4359=VERTEX_POINT('',#4357);
-+#4360=VERTEX_POINT('',#4358);
-+#4361=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
-+#4362=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
-+#4363=VERTEX_POINT('',#4361);
-+#4364=VERTEX_POINT('',#4362);
-+#4365=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
-+#4366=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
-+#4367=VERTEX_POINT('',#4365);
-+#4368=VERTEX_POINT('',#4366);
-+#4369=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
-+#4370=VERTEX_POINT('',#4369);
-+#4371=CARTESIAN_POINT('',(6.35E0,1.5E0,2.975E1));
-+#4372=CARTESIAN_POINT('',(6.55E0,1.5E0,2.975E1));
-+#4373=VERTEX_POINT('',#4371);
-+#4374=VERTEX_POINT('',#4372);
-+#4375=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
-+#4376=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
-+#4377=VERTEX_POINT('',#4375);
-+#4378=VERTEX_POINT('',#4376);
-+#4379=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
-+#4380=VERTEX_POINT('',#4379);
-+#4381=CARTESIAN_POINT('',(7.35E0,1.5E0,2.975E1));
-+#4382=CARTESIAN_POINT('',(7.55E0,1.5E0,2.975E1));
-+#4383=VERTEX_POINT('',#4381);
-+#4384=VERTEX_POINT('',#4382);
-+#4385=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#4386=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
-+#4387=VERTEX_POINT('',#4385);
-+#4388=VERTEX_POINT('',#4386);
-+#4389=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#4390=VERTEX_POINT('',#4389);
-+#4391=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
-+#4392=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
-+#4393=VERTEX_POINT('',#4391);
-+#4394=VERTEX_POINT('',#4392);
-+#4395=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
-+#4396=VERTEX_POINT('',#4395);
-+#4397=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
-+#4398=VERTEX_POINT('',#4397);
-+#4399=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
-+#4400=VERTEX_POINT('',#4399);
-+#4401=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
-+#4402=CARTESIAN_POINT('',(2.4E1,0.E0,1.325E1));
-+#4403=VERTEX_POINT('',#4401);
-+#4404=VERTEX_POINT('',#4402);
-+#4405=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
-+#4406=CARTESIAN_POINT('',(2.5E1,0.E0,1.225E1));
-+#4407=VERTEX_POINT('',#4405);
-+#4408=VERTEX_POINT('',#4406);
-+#4409=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
-+#4410=CARTESIAN_POINT('',(2.15E1,1.5E0,1.325E1));
-+#4411=VERTEX_POINT('',#4409);
-+#4412=VERTEX_POINT('',#4410);
-+#4413=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
-+#4414=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
-+#4415=VERTEX_POINT('',#4413);
-+#4416=VERTEX_POINT('',#4414);
-+#4417=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
-+#4418=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
-+#4419=VERTEX_POINT('',#4417);
-+#4420=VERTEX_POINT('',#4418);
-+#4421=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
-+#4422=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
-+#4423=VERTEX_POINT('',#4421);
-+#4424=VERTEX_POINT('',#4422);
-+#4425=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
-+#4426=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,8.E0));
-+#4427=VERTEX_POINT('',#4425);
-+#4428=VERTEX_POINT('',#4426);
-+#4429=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
-+#4430=CARTESIAN_POINT('',(2.146078370825E1,1.5E0,6.875E0));
-+#4431=VERTEX_POINT('',#4429);
-+#4432=VERTEX_POINT('',#4430);
-+#4433=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#4434=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
-+#4435=VERTEX_POINT('',#4433);
-+#4436=VERTEX_POINT('',#4434);
-+#4437=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
-+#4438=CARTESIAN_POINT('',(1.95E1,0.E0,1.225E1));
-+#4439=VERTEX_POINT('',#4437);
-+#4440=VERTEX_POINT('',#4438);
-+#4441=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#4442=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
-+#4443=VERTEX_POINT('',#4441);
-+#4444=VERTEX_POINT('',#4442);
-+#4445=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
-+#4446=CARTESIAN_POINT('',(2.6E1,0.E0,1.175E1));
-+#4447=VERTEX_POINT('',#4445);
-+#4448=VERTEX_POINT('',#4446);
-+#4449=CARTESIAN_POINT('',(1.9905E1,1.1125E1,9.E0));
-+#4450=CARTESIAN_POINT('',(2.0095E1,1.1125E1,9.E0));
-+#4451=VERTEX_POINT('',#4449);
-+#4452=VERTEX_POINT('',#4450);
-+#4453=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
-+#4454=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
-+#4455=VERTEX_POINT('',#4453);
-+#4456=VERTEX_POINT('',#4454);
-+#4457=CARTESIAN_POINT('',(2.007008252147E1,1.125E1,9.132582521472E0));
-+#4458=CARTESIAN_POINT('',(2.019508252147E1,1.125E1,9.132582521472E0));
-+#4459=VERTEX_POINT('',#4457);
-+#4460=VERTEX_POINT('',#4458);
-+#4461=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
-+#4462=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
-+#4463=VERTEX_POINT('',#4461);
-+#4464=VERTEX_POINT('',#4462);
-+#4465=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
-+#4466=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
-+#4467=VERTEX_POINT('',#4465);
-+#4468=VERTEX_POINT('',#4466);
-+#4469=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
-+#4470=VERTEX_POINT('',#4469);
-+#4471=CARTESIAN_POINT('',(1.765E1,1.5E0,2.975E1));
-+#4472=CARTESIAN_POINT('',(1.745E1,1.5E0,2.975E1));
-+#4473=VERTEX_POINT('',#4471);
-+#4474=VERTEX_POINT('',#4472);
-+#4475=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
-+#4476=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
-+#4477=VERTEX_POINT('',#4475);
-+#4478=VERTEX_POINT('',#4476);
-+#4479=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
-+#4480=VERTEX_POINT('',#4479);
-+#4481=CARTESIAN_POINT('',(1.665E1,1.5E0,2.975E1));
-+#4482=CARTESIAN_POINT('',(1.645E1,1.5E0,2.975E1));
-+#4483=VERTEX_POINT('',#4481);
-+#4484=VERTEX_POINT('',#4482);
-+#4485=CARTESIAN_POINT('',(1.3175E0,0.E0,6.E0));
-+#4486=CARTESIAN_POINT('',(9.325E-1,0.E0,6.E0));
-+#4487=VERTEX_POINT('',#4485);
-+#4488=VERTEX_POINT('',#4486);
-+#4489=CARTESIAN_POINT('',(1.3825E0,1.E0,6.E0));
-+#4490=CARTESIAN_POINT('',(8.675E-1,1.E0,6.E0));
-+#4491=VERTEX_POINT('',#4489);
-+#4492=VERTEX_POINT('',#4490);
-+#4493=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
-+#4494=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
-+#4495=VERTEX_POINT('',#4493);
-+#4496=VERTEX_POINT('',#4494);
-+#4497=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
-+#4498=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
-+#4499=VERTEX_POINT('',#4497);
-+#4500=VERTEX_POINT('',#4498);
-+#4501=CARTESIAN_POINT('',(1.3175E0,0.E0,1.2E1));
-+#4502=CARTESIAN_POINT('',(9.325E-1,0.E0,1.2E1));
-+#4503=VERTEX_POINT('',#4501);
-+#4504=VERTEX_POINT('',#4502);
-+#4505=CARTESIAN_POINT('',(1.3175E0,0.E0,1.8E1));
-+#4506=CARTESIAN_POINT('',(9.325E-1,0.E0,1.8E1));
-+#4507=VERTEX_POINT('',#4505);
-+#4508=VERTEX_POINT('',#4506);
-+#4509=CARTESIAN_POINT('',(1.3175E0,0.E0,2.4E1));
-+#4510=CARTESIAN_POINT('',(9.325E-1,0.E0,2.4E1));
-+#4511=VERTEX_POINT('',#4509);
-+#4512=VERTEX_POINT('',#4510);
-+#4513=CARTESIAN_POINT('',(2.30675E1,0.E0,6.E0));
-+#4514=CARTESIAN_POINT('',(2.26825E1,0.E0,6.E0));
-+#4515=VERTEX_POINT('',#4513);
-+#4516=VERTEX_POINT('',#4514);
-+#4517=CARTESIAN_POINT('',(2.30675E1,0.E0,1.2E1));
-+#4518=CARTESIAN_POINT('',(2.26825E1,0.E0,1.2E1));
-+#4519=VERTEX_POINT('',#4517);
-+#4520=VERTEX_POINT('',#4518);
-+#4521=CARTESIAN_POINT('',(2.30675E1,0.E0,1.8E1));
-+#4522=CARTESIAN_POINT('',(2.26825E1,0.E0,1.8E1));
-+#4523=VERTEX_POINT('',#4521);
-+#4524=VERTEX_POINT('',#4522);
-+#4525=CARTESIAN_POINT('',(2.30675E1,0.E0,2.4E1));
-+#4526=CARTESIAN_POINT('',(2.26825E1,0.E0,2.4E1));
-+#4527=VERTEX_POINT('',#4525);
-+#4528=VERTEX_POINT('',#4526);
-+#4529=CARTESIAN_POINT('',(1.3825E0,1.E0,1.2E1));
-+#4530=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
-+#4531=VERTEX_POINT('',#4529);
-+#4532=VERTEX_POINT('',#4530);
-+#4533=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
-+#4534=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
-+#4535=VERTEX_POINT('',#4533);
-+#4536=VERTEX_POINT('',#4534);
-+#4537=CARTESIAN_POINT('',(1.3825E0,1.E0,1.8E1));
-+#4538=CARTESIAN_POINT('',(8.675E-1,1.E0,1.8E1));
-+#4539=VERTEX_POINT('',#4537);
-+#4540=VERTEX_POINT('',#4538);
-+#4541=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
-+#4542=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
-+#4543=VERTEX_POINT('',#4541);
-+#4544=VERTEX_POINT('',#4542);
-+#4545=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
-+#4546=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
-+#4547=VERTEX_POINT('',#4545);
-+#4548=VERTEX_POINT('',#4546);
-+#4549=CARTESIAN_POINT('',(1.3825E0,1.E0,2.4E1));
-+#4550=CARTESIAN_POINT('',(8.675E-1,1.E0,2.4E1));
-+#4551=VERTEX_POINT('',#4549);
-+#4552=VERTEX_POINT('',#4550);
-+#4553=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
-+#4554=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
-+#4555=VERTEX_POINT('',#4553);
-+#4556=VERTEX_POINT('',#4554);
-+#4557=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
-+#4558=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
-+#4559=VERTEX_POINT('',#4557);
-+#4560=VERTEX_POINT('',#4558);
-+#4561=CARTESIAN_POINT('',(2.31325E1,1.E0,6.E0));
-+#4562=CARTESIAN_POINT('',(2.26175E1,1.E0,6.E0));
-+#4563=VERTEX_POINT('',#4561);
-+#4564=VERTEX_POINT('',#4562);
-+#4565=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
-+#4566=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
-+#4567=VERTEX_POINT('',#4565);
-+#4568=VERTEX_POINT('',#4566);
-+#4569=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
-+#4570=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
-+#4571=VERTEX_POINT('',#4569);
-+#4572=VERTEX_POINT('',#4570);
-+#4573=CARTESIAN_POINT('',(2.31325E1,1.E0,1.2E1));
-+#4574=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
-+#4575=VERTEX_POINT('',#4573);
-+#4576=VERTEX_POINT('',#4574);
-+#4577=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
-+#4578=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
-+#4579=VERTEX_POINT('',#4577);
-+#4580=VERTEX_POINT('',#4578);
-+#4581=CARTESIAN_POINT('',(2.31325E1,1.E0,1.8E1));
-+#4582=CARTESIAN_POINT('',(2.26175E1,1.E0,1.8E1));
-+#4583=VERTEX_POINT('',#4581);
-+#4584=VERTEX_POINT('',#4582);
-+#4585=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
-+#4586=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
-+#4587=VERTEX_POINT('',#4585);
-+#4588=VERTEX_POINT('',#4586);
-+#4589=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
-+#4590=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
-+#4591=VERTEX_POINT('',#4589);
-+#4592=VERTEX_POINT('',#4590);
-+#4593=CARTESIAN_POINT('',(2.31325E1,1.E0,2.4E1));
-+#4594=CARTESIAN_POINT('',(2.26175E1,1.E0,2.4E1));
-+#4595=VERTEX_POINT('',#4593);
-+#4596=VERTEX_POINT('',#4594);
-+#4597=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
-+#4598=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
-+#4599=VERTEX_POINT('',#4597);
-+#4600=VERTEX_POINT('',#4598);
-+#4601=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
-+#4602=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
-+#4603=VERTEX_POINT('',#4601);
-+#4604=VERTEX_POINT('',#4602);
-+#4605=CARTESIAN_POINT('',(6.1925E0,0.E0,1.25E0));
-+#4606=CARTESIAN_POINT('',(5.8075E0,0.E0,1.25E0));
-+#4607=VERTEX_POINT('',#4605);
-+#4608=VERTEX_POINT('',#4606);
-+#4609=CARTESIAN_POINT('',(6.256E0,1.E0,1.25E0));
-+#4610=CARTESIAN_POINT('',(5.744E0,1.E0,1.25E0));
-+#4611=VERTEX_POINT('',#4609);
-+#4612=VERTEX_POINT('',#4610);
-+#4613=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
-+#4614=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
-+#4615=VERTEX_POINT('',#4613);
-+#4616=VERTEX_POINT('',#4614);
-+#4617=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
-+#4618=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
-+#4619=VERTEX_POINT('',#4617);
-+#4620=VERTEX_POINT('',#4618);
-+#4621=CARTESIAN_POINT('',(1.21925E1,0.E0,1.25E0));
-+#4622=CARTESIAN_POINT('',(1.18075E1,0.E0,1.25E0));
-+#4623=VERTEX_POINT('',#4621);
-+#4624=VERTEX_POINT('',#4622);
-+#4625=CARTESIAN_POINT('',(6.1925E0,0.E0,3.075E1));
-+#4626=CARTESIAN_POINT('',(5.8075E0,0.E0,3.075E1));
-+#4627=VERTEX_POINT('',#4625);
-+#4628=VERTEX_POINT('',#4626);
-+#4629=CARTESIAN_POINT('',(1.21925E1,0.E0,3.075E1));
-+#4630=CARTESIAN_POINT('',(1.18075E1,0.E0,3.075E1));
-+#4631=VERTEX_POINT('',#4629);
-+#4632=VERTEX_POINT('',#4630);
-+#4633=CARTESIAN_POINT('',(1.81925E1,0.E0,1.25E0));
-+#4634=CARTESIAN_POINT('',(1.78075E1,0.E0,1.25E0));
-+#4635=VERTEX_POINT('',#4633);
-+#4636=VERTEX_POINT('',#4634);
-+#4637=CARTESIAN_POINT('',(1.81925E1,0.E0,3.075E1));
-+#4638=CARTESIAN_POINT('',(1.78075E1,0.E0,3.075E1));
-+#4639=VERTEX_POINT('',#4637);
-+#4640=VERTEX_POINT('',#4638);
-+#4641=CARTESIAN_POINT('',(1.2256E1,1.E0,1.25E0));
-+#4642=CARTESIAN_POINT('',(1.1744E1,1.E0,1.25E0));
-+#4643=VERTEX_POINT('',#4641);
-+#4644=VERTEX_POINT('',#4642);
-+#4645=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
-+#4646=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
-+#4647=VERTEX_POINT('',#4645);
-+#4648=VERTEX_POINT('',#4646);
-+#4649=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
-+#4650=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
-+#4651=VERTEX_POINT('',#4649);
-+#4652=VERTEX_POINT('',#4650);
-+#4653=CARTESIAN_POINT('',(1.8256E1,1.E0,1.25E0));
-+#4654=CARTESIAN_POINT('',(1.7744E1,1.E0,1.25E0));
-+#4655=VERTEX_POINT('',#4653);
-+#4656=VERTEX_POINT('',#4654);
-+#4657=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
-+#4658=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
-+#4659=VERTEX_POINT('',#4657);
-+#4660=VERTEX_POINT('',#4658);
-+#4661=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
-+#4662=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
-+#4663=VERTEX_POINT('',#4661);
-+#4664=VERTEX_POINT('',#4662);
-+#4665=CARTESIAN_POINT('',(6.256E0,1.E0,3.075E1));
-+#4666=CARTESIAN_POINT('',(5.744E0,1.E0,3.075E1));
-+#4667=VERTEX_POINT('',#4665);
-+#4668=VERTEX_POINT('',#4666);
-+#4669=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
-+#4670=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
-+#4671=VERTEX_POINT('',#4669);
-+#4672=VERTEX_POINT('',#4670);
-+#4673=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
-+#4674=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
-+#4675=VERTEX_POINT('',#4673);
-+#4676=VERTEX_POINT('',#4674);
-+#4677=CARTESIAN_POINT('',(1.2256E1,1.E0,3.075E1));
-+#4678=CARTESIAN_POINT('',(1.1744E1,1.E0,3.075E1));
-+#4679=VERTEX_POINT('',#4677);
-+#4680=VERTEX_POINT('',#4678);
-+#4681=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
-+#4682=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
-+#4683=VERTEX_POINT('',#4681);
-+#4684=VERTEX_POINT('',#4682);
-+#4685=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
-+#4686=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
-+#4687=VERTEX_POINT('',#4685);
-+#4688=VERTEX_POINT('',#4686);
-+#4689=CARTESIAN_POINT('',(1.8256E1,1.E0,3.075E1));
-+#4690=CARTESIAN_POINT('',(1.7744E1,1.E0,3.075E1));
-+#4691=VERTEX_POINT('',#4689);
-+#4692=VERTEX_POINT('',#4690);
-+#4693=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
-+#4694=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
-+#4695=VERTEX_POINT('',#4693);
-+#4696=VERTEX_POINT('',#4694);
-+#4697=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
-+#4698=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
-+#4699=VERTEX_POINT('',#4697);
-+#4700=VERTEX_POINT('',#4698);
-+#4701=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
-+#4702=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
-+#4703=VERTEX_POINT('',#4701);
-+#4704=VERTEX_POINT('',#4702);
-+#4705=CARTESIAN_POINT('',(4.4125E0,1.05E1,1.E1));
-+#4706=CARTESIAN_POINT('',(4.0875E0,1.05E1,1.E1));
-+#4707=VERTEX_POINT('',#4705);
-+#4708=VERTEX_POINT('',#4706);
-+#4709=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.25E0));
-+#4710=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.25E0));
-+#4711=VERTEX_POINT('',#4709);
-+#4712=VERTEX_POINT('',#4710);
-+#4713=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
-+#4714=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
-+#4715=VERTEX_POINT('',#4713);
-+#4716=VERTEX_POINT('',#4714);
-+#4717=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.25E0));
-+#4718=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.25E0));
-+#4719=VERTEX_POINT('',#4717);
-+#4720=VERTEX_POINT('',#4718);
-+#4721=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
-+#4722=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
-+#4723=VERTEX_POINT('',#4721);
-+#4724=VERTEX_POINT('',#4722);
-+#4725=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.25E0));
-+#4726=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.25E0));
-+#4727=VERTEX_POINT('',#4725);
-+#4728=VERTEX_POINT('',#4726);
-+#4729=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
-+#4730=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
-+#4731=VERTEX_POINT('',#4729);
-+#4732=VERTEX_POINT('',#4730);
-+#4733=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
-+#4734=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
-+#4735=VERTEX_POINT('',#4733);
-+#4736=VERTEX_POINT('',#4734);
-+#4737=CARTESIAN_POINT('',(1.95875E1,1.05E1,1.E1));
-+#4738=CARTESIAN_POINT('',(1.99125E1,1.05E1,1.E1));
-+#4739=VERTEX_POINT('',#4737);
-+#4740=VERTEX_POINT('',#4738);
-+#4741=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.25E0));
-+#4742=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.25E0));
-+#4743=VERTEX_POINT('',#4741);
-+#4744=VERTEX_POINT('',#4742);
-+#4745=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
-+#4746=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
-+#4747=VERTEX_POINT('',#4745);
-+#4748=VERTEX_POINT('',#4746);
-+#4749=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.25E0));
-+#4750=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.25E0));
-+#4751=VERTEX_POINT('',#4749);
-+#4752=VERTEX_POINT('',#4750);
-+#4753=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
-+#4754=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
-+#4755=VERTEX_POINT('',#4753);
-+#4756=VERTEX_POINT('',#4754);
-+#4757=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.25E0));
-+#4758=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.25E0));
-+#4759=VERTEX_POINT('',#4757);
-+#4760=VERTEX_POINT('',#4758);
-+#4761=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
-+#4762=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
-+#4763=VERTEX_POINT('',#4761);
-+#4764=VERTEX_POINT('',#4762);
-+#4765=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#4766=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#4767=VERTEX_POINT('',#4765);
-+#4768=VERTEX_POINT('',#4766);
-+#4769=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
-+#4770=CARTESIAN_POINT('',(5.E0,0.E0,1.1E1));
-+#4771=VERTEX_POINT('',#4769);
-+#4772=VERTEX_POINT('',#4770);
-+#4773=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
-+#4774=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
-+#4775=VERTEX_POINT('',#4773);
-+#4776=VERTEX_POINT('',#4774);
-+#4777=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
-+#4778=CARTESIAN_POINT('',(1.9E1,1.5E0,1.1E1));
-+#4779=VERTEX_POINT('',#4777);
-+#4780=VERTEX_POINT('',#4778);
-+#4781=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
-+#4782=CARTESIAN_POINT('',(1.8E1,1.5E0,1.E1));
-+#4783=VERTEX_POINT('',#4781);
-+#4784=VERTEX_POINT('',#4782);
-+#4785=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
-+#4786=VERTEX_POINT('',#4785);
-+#4787=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
-+#4788=VERTEX_POINT('',#4787);
-+#4789=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
-+#4790=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
-+#4791=VERTEX_POINT('',#4789);
-+#4792=VERTEX_POINT('',#4790);
-+#4793=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
-+#4794=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
-+#4795=VERTEX_POINT('',#4793);
-+#4796=VERTEX_POINT('',#4794);
-+#4797=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
-+#4798=CARTESIAN_POINT('',(2.15E1,1.5E0,2.19375E1));
-+#4799=VERTEX_POINT('',#4797);
-+#4800=VERTEX_POINT('',#4798);
-+#4801=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
-+#4802=CARTESIAN_POINT('',(1.85E1,1.5E0,1.89375E1));
-+#4803=VERTEX_POINT('',#4801);
-+#4804=VERTEX_POINT('',#4802);
-+#4805=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
-+#4806=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
-+#4807=VERTEX_POINT('',#4805);
-+#4808=VERTEX_POINT('',#4806);
-+#4809=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
-+#4810=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
-+#4811=VERTEX_POINT('',#4809);
-+#4812=VERTEX_POINT('',#4810);
-+#4813=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
-+#4814=CARTESIAN_POINT('',(2.5E0,1.5E0,1.40625E1));
-+#4815=VERTEX_POINT('',#4813);
-+#4816=VERTEX_POINT('',#4814);
-+#4817=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
-+#4818=CARTESIAN_POINT('',(5.5E0,1.5E0,1.70625E1));
-+#4819=VERTEX_POINT('',#4817);
-+#4820=VERTEX_POINT('',#4818);
-+#4821=CARTESIAN_POINT('',(6.1925E0,0.E0,9.E0));
-+#4822=CARTESIAN_POINT('',(5.8075E0,0.E0,9.E0));
-+#4823=VERTEX_POINT('',#4821);
-+#4824=VERTEX_POINT('',#4822);
-+#4825=CARTESIAN_POINT('',(6.2575E0,1.E0,9.E0));
-+#4826=CARTESIAN_POINT('',(5.7425E0,1.E0,9.E0));
-+#4827=VERTEX_POINT('',#4825);
-+#4828=VERTEX_POINT('',#4826);
-+#4829=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
-+#4830=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
-+#4831=VERTEX_POINT('',#4829);
-+#4832=VERTEX_POINT('',#4830);
-+#4833=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
-+#4834=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
-+#4835=VERTEX_POINT('',#4833);
-+#4836=VERTEX_POINT('',#4834);
-+#4837=CARTESIAN_POINT('',(1.21925E1,0.E0,9.E0));
-+#4838=CARTESIAN_POINT('',(1.18075E1,0.E0,9.E0));
-+#4839=VERTEX_POINT('',#4837);
-+#4840=VERTEX_POINT('',#4838);
-+#4841=CARTESIAN_POINT('',(1.81925E1,0.E0,9.E0));
-+#4842=CARTESIAN_POINT('',(1.78075E1,0.E0,9.E0));
-+#4843=VERTEX_POINT('',#4841);
-+#4844=VERTEX_POINT('',#4842);
-+#4845=CARTESIAN_POINT('',(6.1925E0,0.E0,1.8E1));
-+#4846=CARTESIAN_POINT('',(5.8075E0,0.E0,1.8E1));
-+#4847=VERTEX_POINT('',#4845);
-+#4848=VERTEX_POINT('',#4846);
-+#4849=CARTESIAN_POINT('',(1.21925E1,0.E0,1.8E1));
-+#4850=CARTESIAN_POINT('',(1.18075E1,0.E0,1.8E1));
-+#4851=VERTEX_POINT('',#4849);
-+#4852=VERTEX_POINT('',#4850);
-+#4853=CARTESIAN_POINT('',(1.81925E1,0.E0,1.8E1));
-+#4854=CARTESIAN_POINT('',(1.78075E1,0.E0,1.8E1));
-+#4855=VERTEX_POINT('',#4853);
-+#4856=VERTEX_POINT('',#4854);
-+#4857=CARTESIAN_POINT('',(1.22575E1,1.E0,9.E0));
-+#4858=CARTESIAN_POINT('',(1.17425E1,1.E0,9.E0));
-+#4859=VERTEX_POINT('',#4857);
-+#4860=VERTEX_POINT('',#4858);
-+#4861=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
-+#4862=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
-+#4863=VERTEX_POINT('',#4861);
-+#4864=VERTEX_POINT('',#4862);
-+#4865=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
-+#4866=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
-+#4867=VERTEX_POINT('',#4865);
-+#4868=VERTEX_POINT('',#4866);
-+#4869=CARTESIAN_POINT('',(1.82575E1,1.E0,9.E0));
-+#4870=CARTESIAN_POINT('',(1.77425E1,1.E0,9.E0));
-+#4871=VERTEX_POINT('',#4869);
-+#4872=VERTEX_POINT('',#4870);
-+#4873=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
-+#4874=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
-+#4875=VERTEX_POINT('',#4873);
-+#4876=VERTEX_POINT('',#4874);
-+#4877=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
-+#4878=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
-+#4879=VERTEX_POINT('',#4877);
-+#4880=VERTEX_POINT('',#4878);
-+#4881=CARTESIAN_POINT('',(6.2575E0,1.E0,1.8E1));
-+#4882=CARTESIAN_POINT('',(5.7425E0,1.E0,1.8E1));
-+#4883=VERTEX_POINT('',#4881);
-+#4884=VERTEX_POINT('',#4882);
-+#4885=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
-+#4886=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
-+#4887=VERTEX_POINT('',#4885);
-+#4888=VERTEX_POINT('',#4886);
-+#4889=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
-+#4890=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
-+#4891=VERTEX_POINT('',#4889);
-+#4892=VERTEX_POINT('',#4890);
-+#4893=CARTESIAN_POINT('',(1.22575E1,1.E0,1.8E1));
-+#4894=CARTESIAN_POINT('',(1.17425E1,1.E0,1.8E1));
-+#4895=VERTEX_POINT('',#4893);
-+#4896=VERTEX_POINT('',#4894);
-+#4897=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
-+#4898=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
-+#4899=VERTEX_POINT('',#4897);
-+#4900=VERTEX_POINT('',#4898);
-+#4901=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
-+#4902=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
-+#4903=VERTEX_POINT('',#4901);
-+#4904=VERTEX_POINT('',#4902);
-+#4905=CARTESIAN_POINT('',(1.82575E1,1.E0,1.8E1));
-+#4906=CARTESIAN_POINT('',(1.77425E1,1.E0,1.8E1));
-+#4907=VERTEX_POINT('',#4905);
-+#4908=VERTEX_POINT('',#4906);
-+#4909=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
-+#4910=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
-+#4911=VERTEX_POINT('',#4909);
-+#4912=VERTEX_POINT('',#4910);
-+#4913=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
-+#4914=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
-+#4915=VERTEX_POINT('',#4913);
-+#4916=VERTEX_POINT('',#4914);
-+#4917=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
-+#4918=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
-+#4919=VERTEX_POINT('',#4917);
-+#4920=VERTEX_POINT('',#4918);
-+#4921=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
-+#4922=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
-+#4923=VERTEX_POINT('',#4921);
-+#4924=VERTEX_POINT('',#4922);
-+#4925=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#4926=VERTEX_POINT('',#4925);
-+#4927=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
-+#4928=VERTEX_POINT('',#4927);
-+#4929=VERTEX_POINT('',#1837);
-+#4930=VERTEX_POINT('',#1845);
-+#4931=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
-+#4932=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
-+#4933=VERTEX_POINT('',#4931);
-+#4934=VERTEX_POINT('',#4932);
-+#4935=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
-+#4936=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
-+#4937=VERTEX_POINT('',#4935);
-+#4938=VERTEX_POINT('',#4936);
-+#4939=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#4940=VERTEX_POINT('',#4939);
-+#4941=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
-+#4942=VERTEX_POINT('',#4941);
-+#4943=VERTEX_POINT('',#2873);
-+#4944=VERTEX_POINT('',#2881);
-+#4945=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
-+#4946=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
-+#4947=VERTEX_POINT('',#4945);
-+#4948=VERTEX_POINT('',#4946);
-+#4949=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
-+#4950=CARTESIAN_POINT('',(4.5E0,2.75E0,8.5E0));
-+#4951=VERTEX_POINT('',#4949);
-+#4952=VERTEX_POINT('',#4950);
-+#4953=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
-+#4954=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
-+#4955=VERTEX_POINT('',#4953);
-+#4956=VERTEX_POINT('',#4954);
-+#4957=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
-+#4958=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.5E0));
-+#4959=VERTEX_POINT('',#4957);
-+#4960=VERTEX_POINT('',#4958);
-+#4961=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
-+#4962=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
-+#4963=VERTEX_POINT('',#4961);
-+#4964=VERTEX_POINT('',#4962);
-+#4965=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
-+#4966=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.5E0));
-+#4967=VERTEX_POINT('',#4965);
-+#4968=VERTEX_POINT('',#4966);
-+#4969=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
-+#4970=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
-+#4971=VERTEX_POINT('',#4969);
-+#4972=VERTEX_POINT('',#4970);
-+#4973=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
-+#4974=CARTESIAN_POINT('',(3.75E0,9.5E0,8.5E0));
-+#4975=VERTEX_POINT('',#4973);
-+#4976=VERTEX_POINT('',#4974);
-+#4977=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
-+#4978=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
-+#4979=VERTEX_POINT('',#4977);
-+#4980=VERTEX_POINT('',#4978);
-+#4981=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
-+#4982=CARTESIAN_POINT('',(2.5E0,2.35E0,9.5E0));
-+#4983=VERTEX_POINT('',#4981);
-+#4984=VERTEX_POINT('',#4982);
-+#4985=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
-+#4986=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
-+#4987=VERTEX_POINT('',#4985);
-+#4988=VERTEX_POINT('',#4986);
-+#4989=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
-+#4990=CARTESIAN_POINT('',(4.15E0,2.E0,9.5E0));
-+#4991=VERTEX_POINT('',#4989);
-+#4992=VERTEX_POINT('',#4990);
-+#4993=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
-+#4994=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
-+#4995=VERTEX_POINT('',#4993);
-+#4996=VERTEX_POINT('',#4994);
-+#4997=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
-+#4998=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,9.5E0));
-+#4999=VERTEX_POINT('',#4997);
-+#5000=VERTEX_POINT('',#4998);
-+#5001=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
-+#5002=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
-+#5003=VERTEX_POINT('',#5001);
-+#5004=VERTEX_POINT('',#5002);
-+#5005=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
-+#5006=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,9.5E0));
-+#5007=VERTEX_POINT('',#5005);
-+#5008=VERTEX_POINT('',#5006);
-+#5009=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
-+#5010=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
-+#5011=VERTEX_POINT('',#5009);
-+#5012=VERTEX_POINT('',#5010);
-+#5013=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
-+#5014=CARTESIAN_POINT('',(4.5E0,9.15E0,9.5E0));
-+#5015=VERTEX_POINT('',#5013);
-+#5016=VERTEX_POINT('',#5014);
-+#5017=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
-+#5018=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
-+#5019=VERTEX_POINT('',#5017);
-+#5020=VERTEX_POINT('',#5018);
-+#5021=CARTESIAN_POINT('',(2.15E0,7.E0,1.E1));
-+#5022=VERTEX_POINT('',#5021);
-+#5023=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
-+#5024=VERTEX_POINT('',#5023);
-+#5025=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
-+#5026=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
-+#5027=VERTEX_POINT('',#5025);
-+#5028=VERTEX_POINT('',#5026);
-+#5029=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
-+#5030=VERTEX_POINT('',#5029);
-+#5031=CARTESIAN_POINT('',(1.95E1,2.75E0,8.E0));
-+#5032=VERTEX_POINT('',#5031);
-+#5033=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
-+#5034=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
-+#5035=VERTEX_POINT('',#5033);
-+#5036=VERTEX_POINT('',#5034);
-+#5037=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
-+#5038=VERTEX_POINT('',#5037);
-+#5039=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.E0));
-+#5040=VERTEX_POINT('',#5039);
-+#5041=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
-+#5042=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
-+#5043=VERTEX_POINT('',#5041);
-+#5044=VERTEX_POINT('',#5042);
-+#5045=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
-+#5046=VERTEX_POINT('',#5045);
-+#5047=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.E0));
-+#5048=VERTEX_POINT('',#5047);
-+#5049=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
-+#5050=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
-+#5051=VERTEX_POINT('',#5049);
-+#5052=VERTEX_POINT('',#5050);
-+#5053=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
-+#5054=VERTEX_POINT('',#5053);
-+#5055=CARTESIAN_POINT('',(2.025E1,9.5E0,8.E0));
-+#5056=VERTEX_POINT('',#5055);
-+#5057=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
-+#5058=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
-+#5059=VERTEX_POINT('',#5057);
-+#5060=VERTEX_POINT('',#5058);
-+#5061=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
-+#5062=VERTEX_POINT('',#5061);
-+#5063=CARTESIAN_POINT('',(2.15E1,2.35E0,1.E1));
-+#5064=VERTEX_POINT('',#5063);
-+#5065=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
-+#5066=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
-+#5067=VERTEX_POINT('',#5065);
-+#5068=VERTEX_POINT('',#5066);
-+#5069=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
-+#5070=VERTEX_POINT('',#5069);
-+#5071=CARTESIAN_POINT('',(1.985E1,2.E0,1.E1));
-+#5072=VERTEX_POINT('',#5071);
-+#5073=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
-+#5074=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
-+#5075=VERTEX_POINT('',#5073);
-+#5076=VERTEX_POINT('',#5074);
-+#5077=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
-+#5078=VERTEX_POINT('',#5077);
-+#5079=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,1.E1));
-+#5080=VERTEX_POINT('',#5079);
-+#5081=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
-+#5082=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
-+#5083=VERTEX_POINT('',#5081);
-+#5084=VERTEX_POINT('',#5082);
-+#5085=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
-+#5086=VERTEX_POINT('',#5085);
-+#5087=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,1.E1));
-+#5088=VERTEX_POINT('',#5087);
-+#5089=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
-+#5090=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
-+#5091=VERTEX_POINT('',#5089);
-+#5092=VERTEX_POINT('',#5090);
-+#5093=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
-+#5094=VERTEX_POINT('',#5093);
-+#5095=CARTESIAN_POINT('',(1.95E1,9.15E0,1.E1));
-+#5096=VERTEX_POINT('',#5095);
-+#5097=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
-+#5098=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
-+#5099=VERTEX_POINT('',#5097);
-+#5100=VERTEX_POINT('',#5098);
-+#5101=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
-+#5102=CARTESIAN_POINT('',(2.185E1,7.E0,9.5E0));
-+#5103=VERTEX_POINT('',#5101);
-+#5104=VERTEX_POINT('',#5102);
-+#5105=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
-+#5106=CARTESIAN_POINT('',(1.05E1,6.875E-1,6.875E-1));
-+#5107=VERTEX_POINT('',#5105);
-+#5108=VERTEX_POINT('',#5106);
-+#5109=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
-+#5110=VERTEX_POINT('',#5109);
-+#5111=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8125E0));
-+#5112=VERTEX_POINT('',#5111);
-+#5113=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,1.032293285145E0));
-+#5114=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.419779663480E0));
-+#5115=VERTEX_POINT('',#5113);
-+#5116=VERTEX_POINT('',#5114);
-+#5117=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,4.918683812405E0));
-+#5118=VERTEX_POINT('',#5117);
-+#5119=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#5120=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
-+#5121=VERTEX_POINT('',#5119);
-+#5122=VERTEX_POINT('',#5120);
-+#5123=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#5124=VERTEX_POINT('',#5123);
-+#5125=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
-+#5126=VERTEX_POINT('',#5125);
-+#5127=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
-+#5128=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
-+#5129=VERTEX_POINT('',#5127);
-+#5130=VERTEX_POINT('',#5128);
-+#5131=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
-+#5132=VERTEX_POINT('',#5131);
-+#5133=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
-+#5134=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
-+#5135=VERTEX_POINT('',#5133);
-+#5136=VERTEX_POINT('',#5134);
-+#5137=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
-+#5138=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,4.912826677187E0));
-+#5139=VERTEX_POINT('',#5137);
-+#5140=VERTEX_POINT('',#5138);
-+#5141=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.5E0));
-+#5142=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
-+#5143=VERTEX_POINT('',#5141);
-+#5144=VERTEX_POINT('',#5142);
-+#5145=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
-+#5146=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#5147=VERTEX_POINT('',#5145);
-+#5148=VERTEX_POINT('',#5146);
-+#5149=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
-+#5150=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
-+#5151=VERTEX_POINT('',#5149);
-+#5152=VERTEX_POINT('',#5150);
-+#5153=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
-+#5154=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.125E1));
-+#5155=VERTEX_POINT('',#5153);
-+#5156=VERTEX_POINT('',#5154);
-+#5157=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
-+#5158=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
-+#5159=VERTEX_POINT('',#5157);
-+#5160=VERTEX_POINT('',#5158);
-+#5161=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
-+#5162=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,9.565E0));
-+#5163=VERTEX_POINT('',#5161);
-+#5164=VERTEX_POINT('',#5162);
-+#5165=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
-+#5166=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
-+#5167=VERTEX_POINT('',#5165);
-+#5168=VERTEX_POINT('',#5166);
-+#5169=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
-+#5170=CARTESIAN_POINT('',(3.4375E0,6.875E-1,8.69E0));
-+#5171=VERTEX_POINT('',#5169);
-+#5172=VERTEX_POINT('',#5170);
-+#5173=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
-+#5174=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
-+#5175=VERTEX_POINT('',#5173);
-+#5176=VERTEX_POINT('',#5174);
-+#5177=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
-+#5178=CARTESIAN_POINT('',(4.3125E0,6.875E-1,1.0375E1));
-+#5179=VERTEX_POINT('',#5177);
-+#5180=VERTEX_POINT('',#5178);
-+#5181=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
-+#5182=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
-+#5183=VERTEX_POINT('',#5181);
-+#5184=VERTEX_POINT('',#5182);
-+#5185=CARTESIAN_POINT('',(-1.85E-1,0.E0,8.69E0));
-+#5186=VERTEX_POINT('',#5185);
-+#5187=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
-+#5188=VERTEX_POINT('',#5187);
-+#5189=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
-+#5190=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
-+#5191=VERTEX_POINT('',#5189);
-+#5192=VERTEX_POINT('',#5190);
-+#5193=CARTESIAN_POINT('',(1.8125E0,0.E0,7.815E0));
-+#5194=VERTEX_POINT('',#5193);
-+#5195=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
-+#5196=VERTEX_POINT('',#5195);
-+#5197=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
-+#5198=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.35E1));
-+#5199=VERTEX_POINT('',#5197);
-+#5200=VERTEX_POINT('',#5198);
-+#5201=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
-+#5202=VERTEX_POINT('',#5201);
-+#5203=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.65E1));
-+#5204=VERTEX_POINT('',#5203);
-+#5205=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#5206=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
-+#5207=VERTEX_POINT('',#5205);
-+#5208=VERTEX_POINT('',#5206);
-+#5209=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#5210=VERTEX_POINT('',#5209);
-+#5211=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
-+#5212=VERTEX_POINT('',#5211);
-+#5213=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
-+#5214=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.95E1));
-+#5215=VERTEX_POINT('',#5213);
-+#5216=VERTEX_POINT('',#5214);
-+#5217=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
-+#5218=VERTEX_POINT('',#5217);
-+#5219=CARTESIAN_POINT('',(1.8125E0,6.875E-1,2.25E1));
-+#5220=VERTEX_POINT('',#5219);
-+#5221=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#5222=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
-+#5223=VERTEX_POINT('',#5221);
-+#5224=VERTEX_POINT('',#5222);
-+#5225=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#5226=VERTEX_POINT('',#5225);
-+#5227=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
-+#5228=VERTEX_POINT('',#5227);
-+#5229=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
-+#5230=CARTESIAN_POINT('',(1.05E1,6.875E-1,8.5E0));
-+#5231=VERTEX_POINT('',#5229);
-+#5232=VERTEX_POINT('',#5230);
-+#5233=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
-+#5234=VERTEX_POINT('',#5233);
-+#5235=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.5E0));
-+#5236=VERTEX_POINT('',#5235);
-+#5237=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#5238=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
-+#5239=VERTEX_POINT('',#5237);
-+#5240=VERTEX_POINT('',#5238);
-+#5241=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#5242=VERTEX_POINT('',#5241);
-+#5243=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
-+#5244=VERTEX_POINT('',#5243);
-+#5245=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
-+#5246=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.75625E1));
-+#5247=VERTEX_POINT('',#5245);
-+#5248=VERTEX_POINT('',#5246);
-+#5249=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
-+#5250=VERTEX_POINT('',#5249);
-+#5251=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.84375E1));
-+#5252=VERTEX_POINT('',#5251);
-+#5253=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#5254=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
-+#5255=VERTEX_POINT('',#5253);
-+#5256=VERTEX_POINT('',#5254);
-+#5257=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#5258=VERTEX_POINT('',#5257);
-+#5259=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
-+#5260=VERTEX_POINT('',#5259);
-+#5261=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
-+#5262=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.13125E1));
-+#5263=VERTEX_POINT('',#5261);
-+#5264=VERTEX_POINT('',#5262);
-+#5265=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
-+#5266=VERTEX_POINT('',#5265);
-+#5267=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.01875E1));
-+#5268=VERTEX_POINT('',#5267);
-+#5269=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,3.096770671486E1));
-+#5270=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.958022033652E1));
-+#5271=VERTEX_POINT('',#5269);
-+#5272=VERTEX_POINT('',#5270);
-+#5273=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,2.708131618759E1));
-+#5274=VERTEX_POINT('',#5273);
-+#5275=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#5276=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
-+#5277=VERTEX_POINT('',#5275);
-+#5278=VERTEX_POINT('',#5276);
-+#5279=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#5280=VERTEX_POINT('',#5279);
-+#5281=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
-+#5282=VERTEX_POINT('',#5281);
-+#5283=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
-+#5284=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
-+#5285=VERTEX_POINT('',#5283);
-+#5286=VERTEX_POINT('',#5284);
-+#5287=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
-+#5288=VERTEX_POINT('',#5287);
-+#5289=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
-+#5290=CARTESIAN_POINT('',(1.35E1,6.875E-1,6.875E-1));
-+#5291=VERTEX_POINT('',#5289);
-+#5292=VERTEX_POINT('',#5290);
-+#5293=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
-+#5294=VERTEX_POINT('',#5293);
-+#5295=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8125E0));
-+#5296=VERTEX_POINT('',#5295);
-+#5297=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,1.032293285145E0));
-+#5298=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.419779663480E0));
-+#5299=VERTEX_POINT('',#5297);
-+#5300=VERTEX_POINT('',#5298);
-+#5301=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,4.918683812405E0));
-+#5302=VERTEX_POINT('',#5301);
-+#5303=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#5304=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
-+#5305=VERTEX_POINT('',#5303);
-+#5306=VERTEX_POINT('',#5304);
-+#5307=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#5308=VERTEX_POINT('',#5307);
-+#5309=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
-+#5310=VERTEX_POINT('',#5309);
-+#5311=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
-+#5312=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
-+#5313=VERTEX_POINT('',#5311);
-+#5314=VERTEX_POINT('',#5312);
-+#5315=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
-+#5316=VERTEX_POINT('',#5315);
-+#5317=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.5E0));
-+#5318=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
-+#5319=VERTEX_POINT('',#5317);
-+#5320=VERTEX_POINT('',#5318);
-+#5321=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
-+#5322=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#5323=VERTEX_POINT('',#5321);
-+#5324=VERTEX_POINT('',#5322);
-+#5325=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
-+#5326=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.35E1));
-+#5327=VERTEX_POINT('',#5325);
-+#5328=VERTEX_POINT('',#5326);
-+#5329=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
-+#5330=VERTEX_POINT('',#5329);
-+#5331=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.65E1));
-+#5332=VERTEX_POINT('',#5331);
-+#5333=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#5334=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
-+#5335=VERTEX_POINT('',#5333);
-+#5336=VERTEX_POINT('',#5334);
-+#5337=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#5338=VERTEX_POINT('',#5337);
-+#5339=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
-+#5340=VERTEX_POINT('',#5339);
-+#5341=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
-+#5342=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.95E1));
-+#5343=VERTEX_POINT('',#5341);
-+#5344=VERTEX_POINT('',#5342);
-+#5345=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
-+#5346=VERTEX_POINT('',#5345);
-+#5347=CARTESIAN_POINT('',(2.21875E1,6.875E-1,2.25E1));
-+#5348=VERTEX_POINT('',#5347);
-+#5349=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#5350=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
-+#5351=VERTEX_POINT('',#5349);
-+#5352=VERTEX_POINT('',#5350);
-+#5353=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#5354=VERTEX_POINT('',#5353);
-+#5355=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
-+#5356=VERTEX_POINT('',#5355);
-+#5357=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
-+#5358=CARTESIAN_POINT('',(1.35E1,6.875E-1,8.5E0));
-+#5359=VERTEX_POINT('',#5357);
-+#5360=VERTEX_POINT('',#5358);
-+#5361=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
-+#5362=VERTEX_POINT('',#5361);
-+#5363=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.5E0));
-+#5364=VERTEX_POINT('',#5363);
-+#5365=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#5366=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
-+#5367=VERTEX_POINT('',#5365);
-+#5368=VERTEX_POINT('',#5366);
-+#5369=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#5370=VERTEX_POINT('',#5369);
-+#5371=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
-+#5372=VERTEX_POINT('',#5371);
-+#5373=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
-+#5374=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.75625E1));
-+#5375=VERTEX_POINT('',#5373);
-+#5376=VERTEX_POINT('',#5374);
-+#5377=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
-+#5378=VERTEX_POINT('',#5377);
-+#5379=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.84375E1));
-+#5380=VERTEX_POINT('',#5379);
-+#5381=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#5382=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
-+#5383=VERTEX_POINT('',#5381);
-+#5384=VERTEX_POINT('',#5382);
-+#5385=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#5386=VERTEX_POINT('',#5385);
-+#5387=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
-+#5388=VERTEX_POINT('',#5387);
-+#5389=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
-+#5390=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.13125E1));
-+#5391=VERTEX_POINT('',#5389);
-+#5392=VERTEX_POINT('',#5390);
-+#5393=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
-+#5394=VERTEX_POINT('',#5393);
-+#5395=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.01875E1));
-+#5396=VERTEX_POINT('',#5395);
-+#5397=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,3.096770671486E1));
-+#5398=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.958022033652E1));
-+#5399=VERTEX_POINT('',#5397);
-+#5400=VERTEX_POINT('',#5398);
-+#5401=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,2.708131618759E1));
-+#5402=VERTEX_POINT('',#5401);
-+#5403=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#5404=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
-+#5405=VERTEX_POINT('',#5403);
-+#5406=VERTEX_POINT('',#5404);
-+#5407=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#5408=VERTEX_POINT('',#5407);
-+#5409=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
-+#5410=VERTEX_POINT('',#5409);
-+#5411=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
-+#5412=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
-+#5413=VERTEX_POINT('',#5411);
-+#5414=VERTEX_POINT('',#5412);
-+#5415=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
-+#5416=VERTEX_POINT('',#5415);
-+#5417=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
-+#5418=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
-+#5419=VERTEX_POINT('',#5417);
-+#5420=VERTEX_POINT('',#5418);
-+#5421=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
-+#5422=VERTEX_POINT('',#5421);
-+#5423=CARTESIAN_POINT('',(2.05675E1,0.E0,8.69E0));
-+#5424=VERTEX_POINT('',#5423);
-+#5425=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
-+#5426=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
-+#5427=VERTEX_POINT('',#5425);
-+#5428=VERTEX_POINT('',#5426);
-+#5429=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
-+#5430=VERTEX_POINT('',#5429);
-+#5431=CARTESIAN_POINT('',(1.96875E1,0.E0,1.037E1));
-+#5432=VERTEX_POINT('',#5431);
-+#5433=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
-+#5434=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
-+#5435=VERTEX_POINT('',#5433);
-+#5436=VERTEX_POINT('',#5434);
-+#5437=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
-+#5438=VERTEX_POINT('',#5437);
-+#5439=CARTESIAN_POINT('',(2.53125E1,0.E0,9.57E0));
-+#5440=VERTEX_POINT('',#5439);
-+#5441=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
-+#5442=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
-+#5443=VERTEX_POINT('',#5441);
-+#5444=VERTEX_POINT('',#5442);
-+#5445=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
-+#5446=VERTEX_POINT('',#5445);
-+#5447=CARTESIAN_POINT('',(2.44325E1,0.E0,1.125E1));
-+#5448=VERTEX_POINT('',#5447);
-+#5449=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
-+#5450=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
-+#5451=VERTEX_POINT('',#5449);
-+#5452=VERTEX_POINT('',#5450);
-+#5453=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
-+#5454=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.81E0));
-+#5455=VERTEX_POINT('',#5453);
-+#5456=VERTEX_POINT('',#5454);
-+#5457=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
-+#5458=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
-+#5459=VERTEX_POINT('',#5457);
-+#5460=VERTEX_POINT('',#5458);
-+#5461=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
-+#5462=CARTESIAN_POINT('',(2.419E1,6.875E-1,8.69E0));
-+#5463=VERTEX_POINT('',#5461);
-+#5464=VERTEX_POINT('',#5462);
-+#5465=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
-+#5466=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,4.912826677187E0));
-+#5467=VERTEX_POINT('',#5465);
-+#5468=VERTEX_POINT('',#5466);
-+#5469=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
-+#5470=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
-+#5471=VERTEX_POINT('',#5469);
-+#5472=VERTEX_POINT('',#5470);
-+#5473=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
-+#5474=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,2.708717332281E1));
-+#5475=VERTEX_POINT('',#5473);
-+#5476=VERTEX_POINT('',#5474);
-+#5477=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
-+#5478=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
-+#5479=VERTEX_POINT('',#5477);
-+#5480=VERTEX_POINT('',#5478);
-+#5481=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
-+#5482=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
-+#5483=VERTEX_POINT('',#5481);
-+#5484=VERTEX_POINT('',#5482);
-+#5485=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
-+#5486=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,2.708717332281E1));
-+#5487=VERTEX_POINT('',#5485);
-+#5488=VERTEX_POINT('',#5486);
-+#5489=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
-+#5490=DIRECTION('',(0.E0,1.E0,0.E0));
-+#5491=DIRECTION('',(1.E0,0.E0,0.E0));
-+#5492=AXIS2_PLACEMENT_3D('',#5489,#5490,#5491);
-+#5493=PLANE('',#5492);
-+#5495=ORIENTED_EDGE('',*,*,#5494,.F.);
-+#5497=ORIENTED_EDGE('',*,*,#5496,.F.);
-+#5499=ORIENTED_EDGE('',*,*,#5498,.T.);
-+#5501=ORIENTED_EDGE('',*,*,#5500,.F.);
-+#5503=ORIENTED_EDGE('',*,*,#5502,.T.);
-+#5505=ORIENTED_EDGE('',*,*,#5504,.F.);
-+#5507=ORIENTED_EDGE('',*,*,#5506,.T.);
-+#5509=ORIENTED_EDGE('',*,*,#5508,.F.);
-+#5511=ORIENTED_EDGE('',*,*,#5510,.T.);
-+#5513=ORIENTED_EDGE('',*,*,#5512,.T.);
-+#5515=ORIENTED_EDGE('',*,*,#5514,.F.);
-+#5517=ORIENTED_EDGE('',*,*,#5516,.T.);
-+#5519=ORIENTED_EDGE('',*,*,#5518,.F.);
-+#5521=ORIENTED_EDGE('',*,*,#5520,.T.);
-+#5523=ORIENTED_EDGE('',*,*,#5522,.F.);
-+#5525=ORIENTED_EDGE('',*,*,#5524,.T.);
-+#5527=ORIENTED_EDGE('',*,*,#5526,.F.);
-+#5529=ORIENTED_EDGE('',*,*,#5528,.T.);
-+#5531=ORIENTED_EDGE('',*,*,#5530,.F.);
-+#5533=ORIENTED_EDGE('',*,*,#5532,.F.);
-+#5535=ORIENTED_EDGE('',*,*,#5534,.T.);
-+#5537=ORIENTED_EDGE('',*,*,#5536,.F.);
-+#5538=EDGE_LOOP('',(#5495,#5497,#5499,#5501,#5503,#5505,#5507,#5509,#5511,#5513,
-+#5515,#5517,#5519,#5521,#5523,#5525,#5527,#5529,#5531,#5533,#5535,#5537));
-+#5539=FACE_OUTER_BOUND('',#5538,.F.);
-+#5541=ORIENTED_EDGE('',*,*,#5540,.T.);
-+#5543=ORIENTED_EDGE('',*,*,#5542,.F.);
-+#5545=ORIENTED_EDGE('',*,*,#5544,.F.);
-+#5547=ORIENTED_EDGE('',*,*,#5546,.F.);
-+#5549=ORIENTED_EDGE('',*,*,#5548,.F.);
-+#5551=ORIENTED_EDGE('',*,*,#5550,.F.);
-+#5552=EDGE_LOOP('',(#5541,#5543,#5545,#5547,#5549,#5551));
-+#5553=FACE_BOUND('',#5552,.F.);
-+#5555=ORIENTED_EDGE('',*,*,#5554,.T.);
-+#5557=ORIENTED_EDGE('',*,*,#5556,.T.);
-+#5558=EDGE_LOOP('',(#5555,#5557));
-+#5559=FACE_BOUND('',#5558,.F.);
-+#5561=ORIENTED_EDGE('',*,*,#5560,.T.);
-+#5563=ORIENTED_EDGE('',*,*,#5562,.T.);
-+#5564=EDGE_LOOP('',(#5561,#5563));
-+#5565=FACE_BOUND('',#5564,.F.);
-+#5567=ORIENTED_EDGE('',*,*,#5566,.T.);
-+#5569=ORIENTED_EDGE('',*,*,#5568,.T.);
-+#5570=EDGE_LOOP('',(#5567,#5569));
-+#5571=FACE_BOUND('',#5570,.F.);
-+#5573=ORIENTED_EDGE('',*,*,#5572,.T.);
-+#5575=ORIENTED_EDGE('',*,*,#5574,.T.);
-+#5576=EDGE_LOOP('',(#5573,#5575));
-+#5577=FACE_BOUND('',#5576,.F.);
-+#5579=ORIENTED_EDGE('',*,*,#5578,.T.);
-+#5581=ORIENTED_EDGE('',*,*,#5580,.T.);
-+#5582=EDGE_LOOP('',(#5579,#5581));
-+#5583=FACE_BOUND('',#5582,.F.);
-+#5585=ORIENTED_EDGE('',*,*,#5584,.T.);
-+#5587=ORIENTED_EDGE('',*,*,#5586,.T.);
-+#5588=EDGE_LOOP('',(#5585,#5587));
-+#5589=FACE_BOUND('',#5588,.F.);
-+#5591=ORIENTED_EDGE('',*,*,#5590,.T.);
-+#5593=ORIENTED_EDGE('',*,*,#5592,.T.);
-+#5594=EDGE_LOOP('',(#5591,#5593));
-+#5595=FACE_BOUND('',#5594,.F.);
-+#5597=ORIENTED_EDGE('',*,*,#5596,.T.);
-+#5599=ORIENTED_EDGE('',*,*,#5598,.T.);
-+#5600=EDGE_LOOP('',(#5597,#5599));
-+#5601=FACE_BOUND('',#5600,.F.);
-+#5603=ORIENTED_EDGE('',*,*,#5602,.T.);
-+#5605=ORIENTED_EDGE('',*,*,#5604,.T.);
-+#5606=EDGE_LOOP('',(#5603,#5605));
-+#5607=FACE_BOUND('',#5606,.F.);
-+#5609=ORIENTED_EDGE('',*,*,#5608,.T.);
-+#5611=ORIENTED_EDGE('',*,*,#5610,.T.);
-+#5612=EDGE_LOOP('',(#5609,#5611));
-+#5613=FACE_BOUND('',#5612,.F.);
-+#5615=ORIENTED_EDGE('',*,*,#5614,.T.);
-+#5617=ORIENTED_EDGE('',*,*,#5616,.T.);
-+#5618=EDGE_LOOP('',(#5615,#5617));
-+#5619=FACE_BOUND('',#5618,.F.);
-+#5621=ORIENTED_EDGE('',*,*,#5620,.T.);
-+#5623=ORIENTED_EDGE('',*,*,#5622,.T.);
-+#5624=EDGE_LOOP('',(#5621,#5623));
-+#5625=FACE_BOUND('',#5624,.F.);
-+#5627=ORIENTED_EDGE('',*,*,#5626,.T.);
-+#5629=ORIENTED_EDGE('',*,*,#5628,.T.);
-+#5630=EDGE_LOOP('',(#5627,#5629));
-+#5631=FACE_BOUND('',#5630,.F.);
-+#5633=ORIENTED_EDGE('',*,*,#5632,.T.);
-+#5635=ORIENTED_EDGE('',*,*,#5634,.T.);
-+#5636=EDGE_LOOP('',(#5633,#5635));
-+#5637=FACE_BOUND('',#5636,.F.);
-+#5639=ORIENTED_EDGE('',*,*,#5638,.T.);
-+#5641=ORIENTED_EDGE('',*,*,#5640,.F.);
-+#5643=ORIENTED_EDGE('',*,*,#5642,.F.);
-+#5645=ORIENTED_EDGE('',*,*,#5644,.F.);
-+#5647=ORIENTED_EDGE('',*,*,#5646,.F.);
-+#5649=ORIENTED_EDGE('',*,*,#5648,.F.);
-+#5651=ORIENTED_EDGE('',*,*,#5650,.F.);
-+#5653=ORIENTED_EDGE('',*,*,#5652,.F.);
-+#5654=EDGE_LOOP('',(#5639,#5641,#5643,#5645,#5647,#5649,#5651,#5653));
-+#5655=FACE_BOUND('',#5654,.F.);
-+#5657=ORIENTED_EDGE('',*,*,#5656,.F.);
-+#5659=ORIENTED_EDGE('',*,*,#5658,.F.);
-+#5661=ORIENTED_EDGE('',*,*,#5660,.T.);
-+#5663=ORIENTED_EDGE('',*,*,#5662,.F.);
-+#5665=ORIENTED_EDGE('',*,*,#5664,.F.);
-+#5667=ORIENTED_EDGE('',*,*,#5666,.F.);
-+#5669=ORIENTED_EDGE('',*,*,#5668,.T.);
-+#5671=ORIENTED_EDGE('',*,*,#5670,.F.);
-+#5673=ORIENTED_EDGE('',*,*,#5672,.T.);
-+#5675=ORIENTED_EDGE('',*,*,#5674,.F.);
-+#5677=ORIENTED_EDGE('',*,*,#5676,.T.);
-+#5679=ORIENTED_EDGE('',*,*,#5678,.F.);
-+#5681=ORIENTED_EDGE('',*,*,#5680,.F.);
-+#5683=ORIENTED_EDGE('',*,*,#5682,.T.);
-+#5685=ORIENTED_EDGE('',*,*,#5684,.F.);
-+#5687=ORIENTED_EDGE('',*,*,#5686,.F.);
-+#5688=EDGE_LOOP('',(#5657,#5659,#5661,#5663,#5665,#5667,#5669,#5671,#5673,#5675,
-+#5677,#5679,#5681,#5683,#5685,#5687));
-+#5689=FACE_BOUND('',#5688,.F.);
-+#5691=ORIENTED_EDGE('',*,*,#5690,.T.);
-+#5693=ORIENTED_EDGE('',*,*,#5692,.T.);
-+#5694=EDGE_LOOP('',(#5691,#5693));
-+#5695=FACE_BOUND('',#5694,.F.);
-+#5697=ORIENTED_EDGE('',*,*,#5696,.T.);
-+#5699=ORIENTED_EDGE('',*,*,#5698,.T.);
-+#5700=EDGE_LOOP('',(#5697,#5699));
-+#5701=FACE_BOUND('',#5700,.F.);
-+#5703=ORIENTED_EDGE('',*,*,#5702,.T.);
-+#5705=ORIENTED_EDGE('',*,*,#5704,.T.);
-+#5706=EDGE_LOOP('',(#5703,#5705));
-+#5707=FACE_BOUND('',#5706,.F.);
-+#5709=ORIENTED_EDGE('',*,*,#5708,.T.);
-+#5711=ORIENTED_EDGE('',*,*,#5710,.T.);
-+#5712=EDGE_LOOP('',(#5709,#5711));
-+#5713=FACE_BOUND('',#5712,.F.);
-+#5715=ORIENTED_EDGE('',*,*,#5714,.T.);
-+#5717=ORIENTED_EDGE('',*,*,#5716,.T.);
-+#5718=EDGE_LOOP('',(#5715,#5717));
-+#5719=FACE_BOUND('',#5718,.F.);
-+#5721=ORIENTED_EDGE('',*,*,#5720,.T.);
-+#5723=ORIENTED_EDGE('',*,*,#5722,.T.);
-+#5724=EDGE_LOOP('',(#5721,#5723));
-+#5725=FACE_BOUND('',#5724,.F.);
-+#5727=ORIENTED_EDGE('',*,*,#5726,.T.);
-+#5729=ORIENTED_EDGE('',*,*,#5728,.T.);
-+#5731=ORIENTED_EDGE('',*,*,#5730,.T.);
-+#5733=ORIENTED_EDGE('',*,*,#5732,.T.);
-+#5734=EDGE_LOOP('',(#5727,#5729,#5731,#5733));
-+#5735=FACE_BOUND('',#5734,.F.);
-+#5737=ORIENTED_EDGE('',*,*,#5736,.T.);
-+#5739=ORIENTED_EDGE('',*,*,#5738,.F.);
-+#5741=ORIENTED_EDGE('',*,*,#5740,.T.);
-+#5743=ORIENTED_EDGE('',*,*,#5742,.T.);
-+#5745=ORIENTED_EDGE('',*,*,#5744,.F.);
-+#5746=EDGE_LOOP('',(#5737,#5739,#5741,#5743,#5745));
-+#5747=FACE_BOUND('',#5746,.F.);
-+#5749=ORIENTED_EDGE('',*,*,#5748,.F.);
-+#5751=ORIENTED_EDGE('',*,*,#5750,.T.);
-+#5753=ORIENTED_EDGE('',*,*,#5752,.T.);
-+#5755=ORIENTED_EDGE('',*,*,#5754,.T.);
-+#5757=ORIENTED_EDGE('',*,*,#5756,.F.);
-+#5759=ORIENTED_EDGE('',*,*,#5758,.T.);
-+#5761=ORIENTED_EDGE('',*,*,#5760,.F.);
-+#5763=ORIENTED_EDGE('',*,*,#5762,.T.);
-+#5765=ORIENTED_EDGE('',*,*,#5764,.F.);
-+#5767=ORIENTED_EDGE('',*,*,#5766,.T.);
-+#5769=ORIENTED_EDGE('',*,*,#5768,.F.);
-+#5771=ORIENTED_EDGE('',*,*,#5770,.T.);
-+#5773=ORIENTED_EDGE('',*,*,#5772,.F.);
-+#5775=ORIENTED_EDGE('',*,*,#5774,.T.);
-+#5776=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5759,#5761,#5763,#5765,#5767,
-+#5769,#5771,#5773,#5775));
-+#5777=FACE_BOUND('',#5776,.F.);
-+#5779=ORIENTED_EDGE('',*,*,#5778,.T.);
-+#5781=ORIENTED_EDGE('',*,*,#5780,.T.);
-+#5783=ORIENTED_EDGE('',*,*,#5782,.T.);
-+#5785=ORIENTED_EDGE('',*,*,#5784,.T.);
-+#5786=EDGE_LOOP('',(#5779,#5781,#5783,#5785));
-+#5787=FACE_BOUND('',#5786,.F.);
-+#5789=ORIENTED_EDGE('',*,*,#5788,.T.);
-+#5791=ORIENTED_EDGE('',*,*,#5790,.T.);
-+#5793=ORIENTED_EDGE('',*,*,#5792,.T.);
-+#5795=ORIENTED_EDGE('',*,*,#5794,.T.);
-+#5796=EDGE_LOOP('',(#5789,#5791,#5793,#5795));
-+#5797=FACE_BOUND('',#5796,.F.);
-+#5799=ORIENTED_EDGE('',*,*,#5798,.T.);
-+#5801=ORIENTED_EDGE('',*,*,#5800,.T.);
-+#5803=ORIENTED_EDGE('',*,*,#5802,.T.);
-+#5805=ORIENTED_EDGE('',*,*,#5804,.T.);
-+#5806=EDGE_LOOP('',(#5799,#5801,#5803,#5805));
-+#5807=FACE_BOUND('',#5806,.F.);
-+#5809=ORIENTED_EDGE('',*,*,#5808,.T.);
-+#5811=ORIENTED_EDGE('',*,*,#5810,.T.);
-+#5813=ORIENTED_EDGE('',*,*,#5812,.T.);
-+#5815=ORIENTED_EDGE('',*,*,#5814,.T.);
-+#5816=EDGE_LOOP('',(#5809,#5811,#5813,#5815));
-+#5817=FACE_BOUND('',#5816,.F.);
-+#5819=ORIENTED_EDGE('',*,*,#5818,.F.);
-+#5821=ORIENTED_EDGE('',*,*,#5820,.F.);
-+#5823=ORIENTED_EDGE('',*,*,#5822,.F.);
-+#5825=ORIENTED_EDGE('',*,*,#5824,.F.);
-+#5826=EDGE_LOOP('',(#5819,#5821,#5823,#5825));
-+#5827=FACE_BOUND('',#5826,.F.);
-+#5829=ORIENTED_EDGE('',*,*,#5828,.F.);
-+#5831=ORIENTED_EDGE('',*,*,#5830,.F.);
-+#5833=ORIENTED_EDGE('',*,*,#5832,.F.);
-+#5835=ORIENTED_EDGE('',*,*,#5834,.F.);
-+#5836=EDGE_LOOP('',(#5829,#5831,#5833,#5835));
-+#5837=FACE_BOUND('',#5836,.F.);
-+#5839=ORIENTED_EDGE('',*,*,#5838,.F.);
-+#5841=ORIENTED_EDGE('',*,*,#5840,.F.);
-+#5843=ORIENTED_EDGE('',*,*,#5842,.F.);
-+#5845=ORIENTED_EDGE('',*,*,#5844,.F.);
-+#5846=EDGE_LOOP('',(#5839,#5841,#5843,#5845));
-+#5847=FACE_BOUND('',#5846,.F.);
-+#5849=ORIENTED_EDGE('',*,*,#5848,.F.);
-+#5851=ORIENTED_EDGE('',*,*,#5850,.F.);
-+#5853=ORIENTED_EDGE('',*,*,#5852,.F.);
-+#5855=ORIENTED_EDGE('',*,*,#5854,.F.);
-+#5856=EDGE_LOOP('',(#5849,#5851,#5853,#5855));
-+#5857=FACE_BOUND('',#5856,.F.);
-+#5859=ORIENTED_EDGE('',*,*,#5858,.F.);
-+#5861=ORIENTED_EDGE('',*,*,#5860,.F.);
-+#5863=ORIENTED_EDGE('',*,*,#5862,.F.);
-+#5865=ORIENTED_EDGE('',*,*,#5864,.F.);
-+#5866=EDGE_LOOP('',(#5859,#5861,#5863,#5865));
-+#5867=FACE_BOUND('',#5866,.F.);
-+#5869=ORIENTED_EDGE('',*,*,#5868,.F.);
-+#5871=ORIENTED_EDGE('',*,*,#5870,.F.);
-+#5873=ORIENTED_EDGE('',*,*,#5872,.F.);
-+#5875=ORIENTED_EDGE('',*,*,#5874,.F.);
-+#5876=EDGE_LOOP('',(#5869,#5871,#5873,#5875));
-+#5877=FACE_BOUND('',#5876,.F.);
-+#5879=ORIENTED_EDGE('',*,*,#5878,.T.);
-+#5881=ORIENTED_EDGE('',*,*,#5880,.T.);
-+#5883=ORIENTED_EDGE('',*,*,#5882,.T.);
-+#5885=ORIENTED_EDGE('',*,*,#5884,.T.);
-+#5886=EDGE_LOOP('',(#5879,#5881,#5883,#5885));
-+#5887=FACE_BOUND('',#5886,.F.);
-+#5889=ORIENTED_EDGE('',*,*,#5888,.F.);
-+#5891=ORIENTED_EDGE('',*,*,#5890,.F.);
-+#5893=ORIENTED_EDGE('',*,*,#5892,.F.);
-+#5895=ORIENTED_EDGE('',*,*,#5894,.F.);
-+#5897=ORIENTED_EDGE('',*,*,#5896,.F.);
-+#5899=ORIENTED_EDGE('',*,*,#5898,.F.);
-+#5901=ORIENTED_EDGE('',*,*,#5900,.F.);
-+#5903=ORIENTED_EDGE('',*,*,#5902,.F.);
-+#5905=ORIENTED_EDGE('',*,*,#5904,.F.);
-+#5907=ORIENTED_EDGE('',*,*,#5906,.F.);
-+#5909=ORIENTED_EDGE('',*,*,#5908,.F.);
-+#5911=ORIENTED_EDGE('',*,*,#5910,.F.);
-+#5913=ORIENTED_EDGE('',*,*,#5912,.F.);
-+#5915=ORIENTED_EDGE('',*,*,#5914,.F.);
-+#5916=EDGE_LOOP('',(#5889,#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,
-+#5909,#5911,#5913,#5915));
-+#5917=FACE_BOUND('',#5916,.F.);
-+#5919=ORIENTED_EDGE('',*,*,#5918,.F.);
-+#5921=ORIENTED_EDGE('',*,*,#5920,.F.);
-+#5923=ORIENTED_EDGE('',*,*,#5922,.F.);
-+#5925=ORIENTED_EDGE('',*,*,#5924,.T.);
-+#5927=ORIENTED_EDGE('',*,*,#5926,.F.);
-+#5928=EDGE_LOOP('',(#5919,#5921,#5923,#5925,#5927));
-+#5929=FACE_BOUND('',#5928,.F.);
-+#5931=ORIENTED_EDGE('',*,*,#5930,.F.);
-+#5933=ORIENTED_EDGE('',*,*,#5932,.F.);
-+#5935=ORIENTED_EDGE('',*,*,#5934,.F.);
-+#5937=ORIENTED_EDGE('',*,*,#5936,.T.);
-+#5939=ORIENTED_EDGE('',*,*,#5938,.F.);
-+#5940=EDGE_LOOP('',(#5931,#5933,#5935,#5937,#5939));
-+#5941=FACE_BOUND('',#5940,.F.);
-+#5943=ORIENTED_EDGE('',*,*,#5942,.T.);
-+#5945=ORIENTED_EDGE('',*,*,#5944,.F.);
-+#5947=ORIENTED_EDGE('',*,*,#5946,.T.);
-+#5949=ORIENTED_EDGE('',*,*,#5948,.T.);
-+#5951=ORIENTED_EDGE('',*,*,#5950,.F.);
-+#5952=EDGE_LOOP('',(#5943,#5945,#5947,#5949,#5951));
-+#5953=FACE_BOUND('',#5952,.F.);
-+#5954=ADVANCED_FACE('',(#5539,#5553,#5559,#5565,#5571,#5577,#5583,#5589,#5595,
-+#5601,#5607,#5613,#5619,#5625,#5631,#5637,#5655,#5689,#5695,#5701,#5707,#5713,
-+#5719,#5725,#5735,#5747,#5777,#5787,#5797,#5807,#5817,#5827,#5837,#5847,#5857,
-+#5867,#5877,#5887,#5917,#5929,#5941,#5953),#5493,.F.);
-+#5955=CARTESIAN_POINT('',(0.E0,0.E0,8.E0));
-+#5956=DIRECTION('',(0.E0,0.E0,1.E0));
-+#5957=DIRECTION('',(1.E0,0.E0,0.E0));
-+#5958=AXIS2_PLACEMENT_3D('',#5955,#5956,#5957);
-+#5959=PLANE('',#5958);
-+#5960=ORIENTED_EDGE('',*,*,#5540,.F.);
-+#5962=ORIENTED_EDGE('',*,*,#5961,.T.);
-+#5964=ORIENTED_EDGE('',*,*,#5963,.F.);
-+#5966=ORIENTED_EDGE('',*,*,#5965,.F.);
-+#5967=ORIENTED_EDGE('',*,*,#5494,.T.);
-+#5969=ORIENTED_EDGE('',*,*,#5968,.F.);
-+#5971=ORIENTED_EDGE('',*,*,#5970,.F.);
-+#5973=ORIENTED_EDGE('',*,*,#5972,.T.);
-+#5975=ORIENTED_EDGE('',*,*,#5974,.F.);
-+#5977=ORIENTED_EDGE('',*,*,#5976,.F.);
-+#5979=ORIENTED_EDGE('',*,*,#5978,.F.);
-+#5981=ORIENTED_EDGE('',*,*,#5980,.T.);
-+#5983=ORIENTED_EDGE('',*,*,#5982,.T.);
-+#5985=ORIENTED_EDGE('',*,*,#5984,.F.);
-+#5986=ORIENTED_EDGE('',*,*,#5510,.F.);
-+#5988=ORIENTED_EDGE('',*,*,#5987,.F.);
-+#5990=ORIENTED_EDGE('',*,*,#5989,.F.);
-+#5992=ORIENTED_EDGE('',*,*,#5991,.T.);
-+#5993=EDGE_LOOP('',(#5960,#5962,#5964,#5966,#5967,#5969,#5971,#5973,#5975,#5977,
-+#5979,#5981,#5983,#5985,#5986,#5988,#5990,#5992));
-+#5994=FACE_OUTER_BOUND('',#5993,.F.);
-+#5996=ORIENTED_EDGE('',*,*,#5995,.T.);
-+#5998=ORIENTED_EDGE('',*,*,#5997,.T.);
-+#5999=EDGE_LOOP('',(#5996,#5998));
-+#6000=FACE_BOUND('',#5999,.F.);
-+#6002=ORIENTED_EDGE('',*,*,#6001,.T.);
-+#6004=ORIENTED_EDGE('',*,*,#6003,.T.);
-+#6005=EDGE_LOOP('',(#6002,#6004));
-+#6006=FACE_BOUND('',#6005,.F.);
-+#6008=ORIENTED_EDGE('',*,*,#6007,.T.);
-+#6010=ORIENTED_EDGE('',*,*,#6009,.T.);
-+#6011=EDGE_LOOP('',(#6008,#6010));
-+#6012=FACE_BOUND('',#6011,.F.);
-+#6014=ORIENTED_EDGE('',*,*,#6013,.T.);
-+#6016=ORIENTED_EDGE('',*,*,#6015,.T.);
-+#6017=EDGE_LOOP('',(#6014,#6016));
-+#6018=FACE_BOUND('',#6017,.F.);
-+#6020=ORIENTED_EDGE('',*,*,#6019,.F.);
-+#6022=ORIENTED_EDGE('',*,*,#6021,.F.);
-+#6023=EDGE_LOOP('',(#6020,#6022));
-+#6024=FACE_BOUND('',#6023,.F.);
-+#6026=ORIENTED_EDGE('',*,*,#6025,.F.);
-+#6028=ORIENTED_EDGE('',*,*,#6027,.F.);
-+#6029=EDGE_LOOP('',(#6026,#6028));
-+#6030=FACE_BOUND('',#6029,.F.);
-+#6032=ORIENTED_EDGE('',*,*,#6031,.F.);
-+#6034=ORIENTED_EDGE('',*,*,#6033,.F.);
-+#6035=EDGE_LOOP('',(#6032,#6034));
-+#6036=FACE_BOUND('',#6035,.F.);
-+#6038=ORIENTED_EDGE('',*,*,#6037,.F.);
-+#6040=ORIENTED_EDGE('',*,*,#6039,.F.);
-+#6041=EDGE_LOOP('',(#6038,#6040));
-+#6042=FACE_BOUND('',#6041,.F.);
-+#6044=ORIENTED_EDGE('',*,*,#6043,.T.);
-+#6046=ORIENTED_EDGE('',*,*,#6045,.F.);
-+#6048=ORIENTED_EDGE('',*,*,#6047,.T.);
-+#6050=ORIENTED_EDGE('',*,*,#6049,.F.);
-+#6052=ORIENTED_EDGE('',*,*,#6051,.T.);
-+#6054=ORIENTED_EDGE('',*,*,#6053,.F.);
-+#6056=ORIENTED_EDGE('',*,*,#6055,.T.);
-+#6058=ORIENTED_EDGE('',*,*,#6057,.F.);
-+#6059=EDGE_LOOP('',(#6044,#6046,#6048,#6050,#6052,#6054,#6056,#6058));
-+#6060=FACE_BOUND('',#6059,.F.);
-+#6062=ORIENTED_EDGE('',*,*,#6061,.F.);
-+#6064=ORIENTED_EDGE('',*,*,#6063,.F.);
-+#6066=ORIENTED_EDGE('',*,*,#6065,.F.);
-+#6068=ORIENTED_EDGE('',*,*,#6067,.F.);
-+#6070=ORIENTED_EDGE('',*,*,#6069,.F.);
-+#6072=ORIENTED_EDGE('',*,*,#6071,.F.);
-+#6074=ORIENTED_EDGE('',*,*,#6073,.F.);
-+#6076=ORIENTED_EDGE('',*,*,#6075,.F.);
-+#6077=EDGE_LOOP('',(#6062,#6064,#6066,#6068,#6070,#6072,#6074,#6076));
-+#6078=FACE_BOUND('',#6077,.F.);
-+#6079=ADVANCED_FACE('',(#5994,#6000,#6006,#6012,#6018,#6024,#6030,#6036,#6042,
-+#6060,#6078),#5959,.F.);
-+#6080=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#6081=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6082=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6083=AXIS2_PLACEMENT_3D('',#6080,#6081,#6082);
-+#6084=CYLINDRICAL_SURFACE('',#6083,9.5E-2);
-+#6085=ORIENTED_EDGE('',*,*,#5995,.F.);
-+#6087=ORIENTED_EDGE('',*,*,#6086,.T.);
-+#6089=ORIENTED_EDGE('',*,*,#6088,.T.);
-+#6091=ORIENTED_EDGE('',*,*,#6090,.F.);
-+#6092=EDGE_LOOP('',(#6085,#6087,#6089,#6091));
-+#6093=FACE_OUTER_BOUND('',#6092,.F.);
-+#6094=ADVANCED_FACE('',(#6093),#6084,.F.);
-+#6095=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#6096=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6097=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6098=AXIS2_PLACEMENT_3D('',#6095,#6096,#6097);
-+#6099=CYLINDRICAL_SURFACE('',#6098,9.5E-2);
-+#6100=ORIENTED_EDGE('',*,*,#5997,.F.);
-+#6101=ORIENTED_EDGE('',*,*,#6090,.T.);
-+#6103=ORIENTED_EDGE('',*,*,#6102,.T.);
-+#6104=ORIENTED_EDGE('',*,*,#6086,.F.);
-+#6105=EDGE_LOOP('',(#6100,#6101,#6103,#6104));
-+#6106=FACE_OUTER_BOUND('',#6105,.F.);
-+#6107=ADVANCED_FACE('',(#6106),#6099,.F.);
-+#6108=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
-+#6109=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6110=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6111=AXIS2_PLACEMENT_3D('',#6108,#6109,#6110);
-+#6112=PLANE('',#6111);
-+#6113=ORIENTED_EDGE('',*,*,#6088,.F.);
-+#6114=ORIENTED_EDGE('',*,*,#6102,.F.);
-+#6115=EDGE_LOOP('',(#6113,#6114));
-+#6116=FACE_OUTER_BOUND('',#6115,.F.);
-+#6117=ADVANCED_FACE('',(#6116),#6112,.T.);
-+#6118=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#6119=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6120=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6121=AXIS2_PLACEMENT_3D('',#6118,#6119,#6120);
-+#6122=CYLINDRICAL_SURFACE('',#6121,1.625E-1);
-+#6123=ORIENTED_EDGE('',*,*,#6001,.F.);
-+#6125=ORIENTED_EDGE('',*,*,#6124,.T.);
-+#6127=ORIENTED_EDGE('',*,*,#6126,.T.);
-+#6129=ORIENTED_EDGE('',*,*,#6128,.F.);
-+#6130=EDGE_LOOP('',(#6123,#6125,#6127,#6129));
-+#6131=FACE_OUTER_BOUND('',#6130,.F.);
-+#6132=ADVANCED_FACE('',(#6131),#6122,.F.);
-+#6133=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#6134=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6135=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6136=AXIS2_PLACEMENT_3D('',#6133,#6134,#6135);
-+#6137=CYLINDRICAL_SURFACE('',#6136,1.625E-1);
-+#6138=ORIENTED_EDGE('',*,*,#6003,.F.);
-+#6139=ORIENTED_EDGE('',*,*,#6128,.T.);
-+#6141=ORIENTED_EDGE('',*,*,#6140,.T.);
-+#6142=ORIENTED_EDGE('',*,*,#6124,.F.);
-+#6143=EDGE_LOOP('',(#6138,#6139,#6141,#6142));
-+#6144=FACE_OUTER_BOUND('',#6143,.F.);
-+#6145=ADVANCED_FACE('',(#6144),#6137,.F.);
-+#6146=CARTESIAN_POINT('',(2.4E1,0.E0,1.E1));
-+#6147=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6148=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6149=AXIS2_PLACEMENT_3D('',#6146,#6147,#6148);
-+#6150=PLANE('',#6149);
-+#6152=ORIENTED_EDGE('',*,*,#6151,.T.);
-+#6154=ORIENTED_EDGE('',*,*,#6153,.T.);
-+#6156=ORIENTED_EDGE('',*,*,#6155,.F.);
-+#6158=ORIENTED_EDGE('',*,*,#6157,.F.);
-+#6160=ORIENTED_EDGE('',*,*,#6159,.T.);
-+#6162=ORIENTED_EDGE('',*,*,#6161,.T.);
-+#6164=ORIENTED_EDGE('',*,*,#6163,.T.);
-+#6166=ORIENTED_EDGE('',*,*,#6165,.T.);
-+#6168=ORIENTED_EDGE('',*,*,#6167,.F.);
-+#6169=EDGE_LOOP('',(#6152,#6154,#6156,#6158,#6160,#6162,#6164,#6166,#6168));
-+#6170=FACE_OUTER_BOUND('',#6169,.F.);
-+#6171=ORIENTED_EDGE('',*,*,#6126,.F.);
-+#6172=ORIENTED_EDGE('',*,*,#6140,.F.);
-+#6173=EDGE_LOOP('',(#6171,#6172));
-+#6174=FACE_BOUND('',#6173,.F.);
-+#6176=ORIENTED_EDGE('',*,*,#6175,.F.);
-+#6178=ORIENTED_EDGE('',*,*,#6177,.F.);
-+#6180=ORIENTED_EDGE('',*,*,#6179,.F.);
-+#6182=ORIENTED_EDGE('',*,*,#6181,.F.);
-+#6184=ORIENTED_EDGE('',*,*,#6183,.F.);
-+#6186=ORIENTED_EDGE('',*,*,#6185,.F.);
-+#6188=ORIENTED_EDGE('',*,*,#6187,.F.);
-+#6190=ORIENTED_EDGE('',*,*,#6189,.F.);
-+#6192=ORIENTED_EDGE('',*,*,#6191,.F.);
-+#6194=ORIENTED_EDGE('',*,*,#6193,.F.);
-+#6196=ORIENTED_EDGE('',*,*,#6195,.F.);
-+#6198=ORIENTED_EDGE('',*,*,#6197,.F.);
-+#6199=EDGE_LOOP('',(#6176,#6178,#6180,#6182,#6184,#6186,#6188,#6190,#6192,#6194,
-+#6196,#6198));
-+#6200=FACE_BOUND('',#6199,.F.);
-+#6201=ADVANCED_FACE('',(#6170,#6174,#6200),#6150,.F.);
-+#6202=CARTESIAN_POINT('',(2.375E1,1.5E0,1.2E1));
-+#6203=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6204=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6205=AXIS2_PLACEMENT_3D('',#6202,#6203,#6204);
-+#6206=PLANE('',#6205);
-+#6208=ORIENTED_EDGE('',*,*,#6207,.F.);
-+#6210=ORIENTED_EDGE('',*,*,#6209,.F.);
-+#6211=ORIENTED_EDGE('',*,*,#6151,.F.);
-+#6212=EDGE_LOOP('',(#6208,#6210,#6211));
-+#6213=FACE_OUTER_BOUND('',#6212,.F.);
-+#6214=ADVANCED_FACE('',(#6213),#6206,.T.);
-+#6215=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
-+#6216=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6217=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6218=AXIS2_PLACEMENT_3D('',#6215,#6216,#6217);
-+#6219=PLANE('',#6218);
-+#6220=ORIENTED_EDGE('',*,*,#5963,.T.);
-+#6222=ORIENTED_EDGE('',*,*,#6221,.F.);
-+#6224=ORIENTED_EDGE('',*,*,#6223,.F.);
-+#6226=ORIENTED_EDGE('',*,*,#6225,.T.);
-+#6228=ORIENTED_EDGE('',*,*,#6227,.F.);
-+#6230=ORIENTED_EDGE('',*,*,#6229,.F.);
-+#6231=ORIENTED_EDGE('',*,*,#5989,.T.);
-+#6233=ORIENTED_EDGE('',*,*,#6232,.F.);
-+#6235=ORIENTED_EDGE('',*,*,#6234,.F.);
-+#6237=ORIENTED_EDGE('',*,*,#6236,.T.);
-+#6239=ORIENTED_EDGE('',*,*,#6238,.F.);
-+#6241=ORIENTED_EDGE('',*,*,#6240,.T.);
-+#6243=ORIENTED_EDGE('',*,*,#6242,.F.);
-+#6245=ORIENTED_EDGE('',*,*,#6244,.F.);
-+#6246=EDGE_LOOP('',(#6220,#6222,#6224,#6226,#6228,#6230,#6231,#6233,#6235,#6237,
-+#6239,#6241,#6243,#6245));
-+#6247=FACE_OUTER_BOUND('',#6246,.F.);
-+#6249=ORIENTED_EDGE('',*,*,#6248,.F.);
-+#6251=ORIENTED_EDGE('',*,*,#6250,.F.);
-+#6252=EDGE_LOOP('',(#6249,#6251));
-+#6253=FACE_BOUND('',#6252,.F.);
-+#6255=ORIENTED_EDGE('',*,*,#6254,.F.);
-+#6257=ORIENTED_EDGE('',*,*,#6256,.F.);
-+#6258=EDGE_LOOP('',(#6255,#6257));
-+#6259=FACE_BOUND('',#6258,.F.);
-+#6261=ORIENTED_EDGE('',*,*,#6260,.F.);
-+#6263=ORIENTED_EDGE('',*,*,#6262,.F.);
-+#6264=EDGE_LOOP('',(#6261,#6263));
-+#6265=FACE_BOUND('',#6264,.F.);
-+#6267=ORIENTED_EDGE('',*,*,#6266,.F.);
-+#6269=ORIENTED_EDGE('',*,*,#6268,.F.);
-+#6270=EDGE_LOOP('',(#6267,#6269));
-+#6271=FACE_BOUND('',#6270,.F.);
-+#6273=ORIENTED_EDGE('',*,*,#6272,.F.);
-+#6275=ORIENTED_EDGE('',*,*,#6274,.F.);
-+#6276=EDGE_LOOP('',(#6273,#6275));
-+#6277=FACE_BOUND('',#6276,.F.);
-+#6278=ADVANCED_FACE('',(#6247,#6253,#6259,#6265,#6271,#6277),#6219,.T.);
-+#6279=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
-+#6280=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6281=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6282=AXIS2_PLACEMENT_3D('',#6279,#6280,#6281);
-+#6283=PLANE('',#6282);
-+#6284=ORIENTED_EDGE('',*,*,#6207,.T.);
-+#6285=ORIENTED_EDGE('',*,*,#6167,.T.);
-+#6287=ORIENTED_EDGE('',*,*,#6286,.T.);
-+#6289=ORIENTED_EDGE('',*,*,#6288,.F.);
-+#6291=ORIENTED_EDGE('',*,*,#6290,.T.);
-+#6293=ORIENTED_EDGE('',*,*,#6292,.F.);
-+#6295=ORIENTED_EDGE('',*,*,#6294,.F.);
-+#6297=ORIENTED_EDGE('',*,*,#6296,.T.);
-+#6299=ORIENTED_EDGE('',*,*,#6298,.F.);
-+#6301=ORIENTED_EDGE('',*,*,#6300,.T.);
-+#6303=ORIENTED_EDGE('',*,*,#6302,.F.);
-+#6305=ORIENTED_EDGE('',*,*,#6304,.F.);
-+#6307=ORIENTED_EDGE('',*,*,#6306,.F.);
-+#6309=ORIENTED_EDGE('',*,*,#6308,.T.);
-+#6311=ORIENTED_EDGE('',*,*,#6310,.F.);
-+#6313=ORIENTED_EDGE('',*,*,#6312,.T.);
-+#6315=ORIENTED_EDGE('',*,*,#6314,.F.);
-+#6317=ORIENTED_EDGE('',*,*,#6316,.T.);
-+#6319=ORIENTED_EDGE('',*,*,#6318,.T.);
-+#6321=ORIENTED_EDGE('',*,*,#6320,.T.);
-+#6323=ORIENTED_EDGE('',*,*,#6322,.F.);
-+#6324=ORIENTED_EDGE('',*,*,#5976,.T.);
-+#6326=ORIENTED_EDGE('',*,*,#6325,.T.);
-+#6327=ORIENTED_EDGE('',*,*,#6157,.T.);
-+#6329=ORIENTED_EDGE('',*,*,#6328,.F.);
-+#6331=ORIENTED_EDGE('',*,*,#6330,.F.);
-+#6332=EDGE_LOOP('',(#6284,#6285,#6287,#6289,#6291,#6293,#6295,#6297,#6299,#6301,
-+#6303,#6305,#6307,#6309,#6311,#6313,#6315,#6317,#6319,#6321,#6323,#6324,#6326,
-+#6327,#6329,#6331));
-+#6333=FACE_OUTER_BOUND('',#6332,.F.);
-+#6335=ORIENTED_EDGE('',*,*,#6334,.F.);
-+#6337=ORIENTED_EDGE('',*,*,#6336,.F.);
-+#6338=EDGE_LOOP('',(#6335,#6337));
-+#6339=FACE_BOUND('',#6338,.F.);
-+#6341=ORIENTED_EDGE('',*,*,#6340,.F.);
-+#6343=ORIENTED_EDGE('',*,*,#6342,.F.);
-+#6344=EDGE_LOOP('',(#6341,#6343));
-+#6345=FACE_BOUND('',#6344,.F.);
-+#6347=ORIENTED_EDGE('',*,*,#6346,.T.);
-+#6349=ORIENTED_EDGE('',*,*,#6348,.T.);
-+#6350=EDGE_LOOP('',(#6347,#6349));
-+#6351=FACE_BOUND('',#6350,.F.);
-+#6353=ORIENTED_EDGE('',*,*,#6352,.T.);
-+#6355=ORIENTED_EDGE('',*,*,#6354,.T.);
-+#6356=EDGE_LOOP('',(#6353,#6355));
-+#6357=FACE_BOUND('',#6356,.F.);
-+#6359=ORIENTED_EDGE('',*,*,#6358,.F.);
-+#6361=ORIENTED_EDGE('',*,*,#6360,.F.);
-+#6362=EDGE_LOOP('',(#6359,#6361));
-+#6363=FACE_BOUND('',#6362,.F.);
-+#6365=ORIENTED_EDGE('',*,*,#6364,.F.);
-+#6367=ORIENTED_EDGE('',*,*,#6366,.F.);
-+#6368=EDGE_LOOP('',(#6365,#6367));
-+#6369=FACE_BOUND('',#6368,.F.);
-+#6371=ORIENTED_EDGE('',*,*,#6370,.F.);
-+#6373=ORIENTED_EDGE('',*,*,#6372,.F.);
-+#6374=EDGE_LOOP('',(#6371,#6373));
-+#6375=FACE_BOUND('',#6374,.F.);
-+#6377=ORIENTED_EDGE('',*,*,#6376,.F.);
-+#6379=ORIENTED_EDGE('',*,*,#6378,.F.);
-+#6380=EDGE_LOOP('',(#6377,#6379));
-+#6381=FACE_BOUND('',#6380,.F.);
-+#6383=ORIENTED_EDGE('',*,*,#6382,.F.);
-+#6385=ORIENTED_EDGE('',*,*,#6384,.F.);
-+#6386=EDGE_LOOP('',(#6383,#6385));
-+#6387=FACE_BOUND('',#6386,.F.);
-+#6389=ORIENTED_EDGE('',*,*,#6388,.F.);
-+#6391=ORIENTED_EDGE('',*,*,#6390,.F.);
-+#6392=EDGE_LOOP('',(#6389,#6391));
-+#6393=FACE_BOUND('',#6392,.F.);
-+#6395=ORIENTED_EDGE('',*,*,#6394,.F.);
-+#6397=ORIENTED_EDGE('',*,*,#6396,.F.);
-+#6398=EDGE_LOOP('',(#6395,#6397));
-+#6399=FACE_BOUND('',#6398,.F.);
-+#6401=ORIENTED_EDGE('',*,*,#6400,.T.);
-+#6403=ORIENTED_EDGE('',*,*,#6402,.F.);
-+#6405=ORIENTED_EDGE('',*,*,#6404,.F.);
-+#6407=ORIENTED_EDGE('',*,*,#6406,.F.);
-+#6409=ORIENTED_EDGE('',*,*,#6408,.T.);
-+#6411=ORIENTED_EDGE('',*,*,#6410,.F.);
-+#6413=ORIENTED_EDGE('',*,*,#6412,.T.);
-+#6415=ORIENTED_EDGE('',*,*,#6414,.F.);
-+#6416=EDGE_LOOP('',(#6401,#6403,#6405,#6407,#6409,#6411,#6413,#6415));
-+#6417=FACE_BOUND('',#6416,.F.);
-+#6419=ORIENTED_EDGE('',*,*,#6418,.F.);
-+#6421=ORIENTED_EDGE('',*,*,#6420,.F.);
-+#6423=ORIENTED_EDGE('',*,*,#6422,.T.);
-+#6425=ORIENTED_EDGE('',*,*,#6424,.F.);
-+#6427=ORIENTED_EDGE('',*,*,#6426,.T.);
-+#6429=ORIENTED_EDGE('',*,*,#6428,.F.);
-+#6431=ORIENTED_EDGE('',*,*,#6430,.T.);
-+#6433=ORIENTED_EDGE('',*,*,#6432,.F.);
-+#6435=ORIENTED_EDGE('',*,*,#6434,.F.);
-+#6437=ORIENTED_EDGE('',*,*,#6436,.F.);
-+#6439=ORIENTED_EDGE('',*,*,#6438,.F.);
-+#6441=ORIENTED_EDGE('',*,*,#6440,.T.);
-+#6443=ORIENTED_EDGE('',*,*,#6442,.F.);
-+#6445=ORIENTED_EDGE('',*,*,#6444,.F.);
-+#6447=ORIENTED_EDGE('',*,*,#6446,.T.);
-+#6449=ORIENTED_EDGE('',*,*,#6448,.F.);
-+#6450=EDGE_LOOP('',(#6419,#6421,#6423,#6425,#6427,#6429,#6431,#6433,#6435,#6437,
-+#6439,#6441,#6443,#6445,#6447,#6449));
-+#6451=FACE_BOUND('',#6450,.F.);
-+#6453=ORIENTED_EDGE('',*,*,#6452,.F.);
-+#6455=ORIENTED_EDGE('',*,*,#6454,.F.);
-+#6456=EDGE_LOOP('',(#6453,#6455));
-+#6457=FACE_BOUND('',#6456,.F.);
-+#6459=ORIENTED_EDGE('',*,*,#6458,.F.);
-+#6461=ORIENTED_EDGE('',*,*,#6460,.F.);
-+#6462=EDGE_LOOP('',(#6459,#6461));
-+#6463=FACE_BOUND('',#6462,.F.);
-+#6465=ORIENTED_EDGE('',*,*,#6464,.F.);
-+#6467=ORIENTED_EDGE('',*,*,#6466,.F.);
-+#6468=EDGE_LOOP('',(#6465,#6467));
-+#6469=FACE_BOUND('',#6468,.F.);
-+#6471=ORIENTED_EDGE('',*,*,#6470,.F.);
-+#6473=ORIENTED_EDGE('',*,*,#6472,.F.);
-+#6474=EDGE_LOOP('',(#6471,#6473));
-+#6475=FACE_BOUND('',#6474,.F.);
-+#6477=ORIENTED_EDGE('',*,*,#6476,.F.);
-+#6479=ORIENTED_EDGE('',*,*,#6478,.F.);
-+#6480=EDGE_LOOP('',(#6477,#6479));
-+#6481=FACE_BOUND('',#6480,.F.);
-+#6483=ORIENTED_EDGE('',*,*,#6482,.F.);
-+#6485=ORIENTED_EDGE('',*,*,#6484,.F.);
-+#6486=EDGE_LOOP('',(#6483,#6485));
-+#6487=FACE_BOUND('',#6486,.F.);
-+#6488=ADVANCED_FACE('',(#6333,#6339,#6345,#6351,#6357,#6363,#6369,#6375,#6381,
-+#6387,#6393,#6399,#6417,#6451,#6457,#6463,#6469,#6475,#6481,#6487),#6283,.T.);
-+#6489=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
-+#6490=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6491=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6492=AXIS2_PLACEMENT_3D('',#6489,#6490,#6491);
-+#6493=CYLINDRICAL_SURFACE('',#6492,1.E-1);
-+#6494=ORIENTED_EDGE('',*,*,#6334,.T.);
-+#6496=ORIENTED_EDGE('',*,*,#6495,.F.);
-+#6498=ORIENTED_EDGE('',*,*,#6497,.F.);
-+#6500=ORIENTED_EDGE('',*,*,#6499,.T.);
-+#6501=EDGE_LOOP('',(#6494,#6496,#6498,#6500));
-+#6502=FACE_OUTER_BOUND('',#6501,.F.);
-+#6503=ADVANCED_FACE('',(#6502),#6493,.F.);
-+#6504=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
-+#6505=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6506=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6507=AXIS2_PLACEMENT_3D('',#6504,#6505,#6506);
-+#6508=CYLINDRICAL_SURFACE('',#6507,1.E-1);
-+#6509=ORIENTED_EDGE('',*,*,#6336,.T.);
-+#6510=ORIENTED_EDGE('',*,*,#6499,.F.);
-+#6512=ORIENTED_EDGE('',*,*,#6511,.T.);
-+#6513=ORIENTED_EDGE('',*,*,#6495,.T.);
-+#6514=EDGE_LOOP('',(#6509,#6510,#6512,#6513));
-+#6515=FACE_OUTER_BOUND('',#6514,.F.);
-+#6516=ADVANCED_FACE('',(#6515),#6508,.F.);
-+#6517=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
-+#6518=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6519=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6520=AXIS2_PLACEMENT_3D('',#6517,#6518,#6519);
-+#6521=CONICAL_SURFACE('',#6520,7.288815195685E-2,6.E1);
-+#6523=ORIENTED_EDGE('',*,*,#6522,.T.);
-+#6524=ORIENTED_EDGE('',*,*,#6511,.F.);
-+#6526=ORIENTED_EDGE('',*,*,#6525,.F.);
-+#6527=EDGE_LOOP('',(#6523,#6524,#6526));
-+#6528=FACE_OUTER_BOUND('',#6527,.F.);
-+#6529=ADVANCED_FACE('',(#6528),#6521,.F.);
-+#6530=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
-+#6531=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6532=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6533=AXIS2_PLACEMENT_3D('',#6530,#6531,#6532);
-+#6534=CONICAL_SURFACE('',#6533,7.288815195685E-2,6.E1);
-+#6535=ORIENTED_EDGE('',*,*,#6522,.F.);
-+#6536=ORIENTED_EDGE('',*,*,#6525,.T.);
-+#6537=ORIENTED_EDGE('',*,*,#6497,.T.);
-+#6538=EDGE_LOOP('',(#6535,#6536,#6537));
-+#6539=FACE_OUTER_BOUND('',#6538,.F.);
-+#6540=ADVANCED_FACE('',(#6539),#6534,.F.);
-+#6541=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
-+#6542=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6543=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6544=AXIS2_PLACEMENT_3D('',#6541,#6542,#6543);
-+#6545=CYLINDRICAL_SURFACE('',#6544,1.E-1);
-+#6546=ORIENTED_EDGE('',*,*,#6340,.T.);
-+#6548=ORIENTED_EDGE('',*,*,#6547,.F.);
-+#6550=ORIENTED_EDGE('',*,*,#6549,.F.);
-+#6552=ORIENTED_EDGE('',*,*,#6551,.T.);
-+#6553=EDGE_LOOP('',(#6546,#6548,#6550,#6552));
-+#6554=FACE_OUTER_BOUND('',#6553,.F.);
-+#6555=ADVANCED_FACE('',(#6554),#6545,.F.);
-+#6556=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
-+#6557=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6558=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6559=AXIS2_PLACEMENT_3D('',#6556,#6557,#6558);
-+#6560=CYLINDRICAL_SURFACE('',#6559,1.E-1);
-+#6561=ORIENTED_EDGE('',*,*,#6342,.T.);
-+#6562=ORIENTED_EDGE('',*,*,#6551,.F.);
-+#6564=ORIENTED_EDGE('',*,*,#6563,.T.);
-+#6565=ORIENTED_EDGE('',*,*,#6547,.T.);
-+#6566=EDGE_LOOP('',(#6561,#6562,#6564,#6565));
-+#6567=FACE_OUTER_BOUND('',#6566,.F.);
-+#6568=ADVANCED_FACE('',(#6567),#6560,.F.);
-+#6569=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
-+#6570=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6571=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6572=AXIS2_PLACEMENT_3D('',#6569,#6570,#6571);
-+#6573=CONICAL_SURFACE('',#6572,7.288815195685E-2,6.E1);
-+#6575=ORIENTED_EDGE('',*,*,#6574,.T.);
-+#6576=ORIENTED_EDGE('',*,*,#6563,.F.);
-+#6578=ORIENTED_EDGE('',*,*,#6577,.F.);
-+#6579=EDGE_LOOP('',(#6575,#6576,#6578));
-+#6580=FACE_OUTER_BOUND('',#6579,.F.);
-+#6581=ADVANCED_FACE('',(#6580),#6573,.F.);
-+#6582=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
-+#6583=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6584=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6585=AXIS2_PLACEMENT_3D('',#6582,#6583,#6584);
-+#6586=CONICAL_SURFACE('',#6585,7.288815195685E-2,6.E1);
-+#6587=ORIENTED_EDGE('',*,*,#6574,.F.);
-+#6588=ORIENTED_EDGE('',*,*,#6577,.T.);
-+#6589=ORIENTED_EDGE('',*,*,#6549,.T.);
-+#6590=EDGE_LOOP('',(#6587,#6588,#6589));
-+#6591=FACE_OUTER_BOUND('',#6590,.F.);
-+#6592=ADVANCED_FACE('',(#6591),#6586,.F.);
-+#6593=CARTESIAN_POINT('',(2.046862696660E1,-7.805924235695E-2,7.E0));
-+#6594=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6595=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6596=AXIS2_PLACEMENT_3D('',#6593,#6594,#6595);
-+#6597=CYLINDRICAL_SURFACE('',#6596,1.E0);
-+#6598=ORIENTED_EDGE('',*,*,#5961,.F.);
-+#6599=ORIENTED_EDGE('',*,*,#5550,.T.);
-+#6601=ORIENTED_EDGE('',*,*,#6600,.T.);
-+#6602=ORIENTED_EDGE('',*,*,#6221,.T.);
-+#6603=EDGE_LOOP('',(#6598,#6599,#6601,#6602));
-+#6604=FACE_OUTER_BOUND('',#6603,.F.);
-+#6605=ADVANCED_FACE('',(#6604),#6597,.F.);
-+#6606=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,7.5E0));
-+#6607=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6608=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6609=AXIS2_PLACEMENT_3D('',#6606,#6607,#6608);
-+#6610=CYLINDRICAL_SURFACE('',#6609,5.E0);
-+#6611=ORIENTED_EDGE('',*,*,#6600,.F.);
-+#6612=ORIENTED_EDGE('',*,*,#5548,.T.);
-+#6614=ORIENTED_EDGE('',*,*,#6613,.F.);
-+#6615=ORIENTED_EDGE('',*,*,#6223,.T.);
-+#6616=EDGE_LOOP('',(#6611,#6612,#6614,#6615));
-+#6617=FACE_OUTER_BOUND('',#6616,.F.);
-+#6618=ADVANCED_FACE('',(#6617),#6610,.F.);
-+#6619=CARTESIAN_POINT('',(2.15E1,1.5E0,2.5E0));
-+#6620=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6621=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6622=AXIS2_PLACEMENT_3D('',#6619,#6620,#6621);
-+#6623=PLANE('',#6622);
-+#6625=ORIENTED_EDGE('',*,*,#6624,.F.);
-+#6626=ORIENTED_EDGE('',*,*,#6225,.F.);
-+#6627=ORIENTED_EDGE('',*,*,#6613,.T.);
-+#6628=ORIENTED_EDGE('',*,*,#5546,.T.);
-+#6629=EDGE_LOOP('',(#6625,#6626,#6627,#6628));
-+#6630=FACE_OUTER_BOUND('',#6629,.F.);
-+#6631=ADVANCED_FACE('',(#6630),#6623,.F.);
-+#6632=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,7.5E0));
-+#6633=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6634=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6635=AXIS2_PLACEMENT_3D('',#6632,#6633,#6634);
-+#6636=CYLINDRICAL_SURFACE('',#6635,5.E0);
-+#6638=ORIENTED_EDGE('',*,*,#6637,.F.);
-+#6639=ORIENTED_EDGE('',*,*,#6227,.T.);
-+#6640=ORIENTED_EDGE('',*,*,#6624,.T.);
-+#6641=ORIENTED_EDGE('',*,*,#5544,.T.);
-+#6642=EDGE_LOOP('',(#6638,#6639,#6640,#6641));
-+#6643=FACE_OUTER_BOUND('',#6642,.F.);
-+#6644=ADVANCED_FACE('',(#6643),#6636,.F.);
-+#6645=CARTESIAN_POINT('',(3.531373033403E0,1.157860978230E1,7.E0));
-+#6646=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6647=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6648=AXIS2_PLACEMENT_3D('',#6645,#6646,#6647);
-+#6649=CYLINDRICAL_SURFACE('',#6648,1.E0);
-+#6650=ORIENTED_EDGE('',*,*,#5991,.F.);
-+#6651=ORIENTED_EDGE('',*,*,#6229,.T.);
-+#6652=ORIENTED_EDGE('',*,*,#6637,.T.);
-+#6653=ORIENTED_EDGE('',*,*,#5542,.T.);
-+#6654=EDGE_LOOP('',(#6650,#6651,#6652,#6653));
-+#6655=FACE_OUTER_BOUND('',#6654,.F.);
-+#6656=ADVANCED_FACE('',(#6655),#6649,.F.);
-+#6657=CARTESIAN_POINT('',(-1.E0,1.161044894892E1,7.E0));
-+#6658=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6659=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6660=AXIS2_PLACEMENT_3D('',#6657,#6658,#6659);
-+#6661=CYLINDRICAL_SURFACE('',#6660,1.E0);
-+#6663=ORIENTED_EDGE('',*,*,#6662,.F.);
-+#6664=ORIENTED_EDGE('',*,*,#6232,.T.);
-+#6665=ORIENTED_EDGE('',*,*,#5987,.T.);
-+#6666=ORIENTED_EDGE('',*,*,#5508,.T.);
-+#6667=EDGE_LOOP('',(#6663,#6664,#6665,#6666));
-+#6668=FACE_OUTER_BOUND('',#6667,.F.);
-+#6669=ADVANCED_FACE('',(#6668),#6661,.F.);
-+#6670=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
-+#6671=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6672=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6673=AXIS2_PLACEMENT_3D('',#6670,#6671,#6672);
-+#6674=PLANE('',#6673);
-+#6676=ORIENTED_EDGE('',*,*,#6675,.T.);
-+#6677=ORIENTED_EDGE('',*,*,#6302,.T.);
-+#6679=ORIENTED_EDGE('',*,*,#6678,.F.);
-+#6680=ORIENTED_EDGE('',*,*,#5520,.F.);
-+#6681=EDGE_LOOP('',(#6676,#6677,#6679,#6680));
-+#6682=FACE_OUTER_BOUND('',#6681,.F.);
-+#6683=ADVANCED_FACE('',(#6682),#6674,.T.);
-+#6684=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
-+#6685=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6686=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6687=AXIS2_PLACEMENT_3D('',#6684,#6685,#6686);
-+#6688=PLANE('',#6687);
-+#6689=ORIENTED_EDGE('',*,*,#6662,.T.);
-+#6690=ORIENTED_EDGE('',*,*,#5506,.F.);
-+#6692=ORIENTED_EDGE('',*,*,#6691,.T.);
-+#6693=ORIENTED_EDGE('',*,*,#6234,.T.);
-+#6694=EDGE_LOOP('',(#6689,#6690,#6692,#6693));
-+#6695=FACE_OUTER_BOUND('',#6694,.F.);
-+#6696=ADVANCED_FACE('',(#6695),#6688,.T.);
-+#6697=CARTESIAN_POINT('',(-1.E0,-5.722942641981E-2,1.325E1));
-+#6698=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6699=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6700=AXIS2_PLACEMENT_3D('',#6697,#6698,#6699);
-+#6701=CYLINDRICAL_SURFACE('',#6700,1.E0);
-+#6702=ORIENTED_EDGE('',*,*,#6675,.F.);
-+#6703=ORIENTED_EDGE('',*,*,#5518,.T.);
-+#6705=ORIENTED_EDGE('',*,*,#6704,.T.);
-+#6706=ORIENTED_EDGE('',*,*,#6304,.T.);
-+#6707=EDGE_LOOP('',(#6702,#6703,#6705,#6706));
-+#6708=FACE_OUTER_BOUND('',#6707,.F.);
-+#6709=ADVANCED_FACE('',(#6708),#6701,.F.);
-+#6710=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
-+#6711=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6712=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6713=AXIS2_PLACEMENT_3D('',#6710,#6711,#6712);
-+#6714=PLANE('',#6713);
-+#6716=ORIENTED_EDGE('',*,*,#6715,.F.);
-+#6717=ORIENTED_EDGE('',*,*,#6442,.T.);
-+#6719=ORIENTED_EDGE('',*,*,#6718,.F.);
-+#6720=ORIENTED_EDGE('',*,*,#5668,.F.);
-+#6721=EDGE_LOOP('',(#6716,#6717,#6719,#6720));
-+#6722=FACE_OUTER_BOUND('',#6721,.F.);
-+#6723=ADVANCED_FACE('',(#6722),#6714,.T.);
-+#6724=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
-+#6725=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6726=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6727=AXIS2_PLACEMENT_3D('',#6724,#6725,#6726);
-+#6728=PLANE('',#6727);
-+#6729=ORIENTED_EDGE('',*,*,#6704,.F.);
-+#6730=ORIENTED_EDGE('',*,*,#5516,.F.);
-+#6732=ORIENTED_EDGE('',*,*,#6731,.T.);
-+#6733=ORIENTED_EDGE('',*,*,#6306,.T.);
-+#6734=EDGE_LOOP('',(#6729,#6730,#6732,#6733));
-+#6735=FACE_OUTER_BOUND('',#6734,.F.);
-+#6736=ADVANCED_FACE('',(#6735),#6728,.T.);
-+#6737=CARTESIAN_POINT('',(3.5E0,1.566978255297E0,1.325E1));
-+#6738=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6739=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6740=AXIS2_PLACEMENT_3D('',#6737,#6738,#6739);
-+#6741=CYLINDRICAL_SURFACE('',#6740,1.E0);
-+#6743=ORIENTED_EDGE('',*,*,#6742,.F.);
-+#6744=ORIENTED_EDGE('',*,*,#6444,.T.);
-+#6745=ORIENTED_EDGE('',*,*,#6715,.T.);
-+#6746=ORIENTED_EDGE('',*,*,#5666,.T.);
-+#6747=EDGE_LOOP('',(#6743,#6744,#6745,#6746));
-+#6748=FACE_OUTER_BOUND('',#6747,.F.);
-+#6749=ADVANCED_FACE('',(#6748),#6741,.F.);
-+#6750=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
-+#6751=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6752=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6753=AXIS2_PLACEMENT_3D('',#6750,#6751,#6752);
-+#6754=PLANE('',#6753);
-+#6756=ORIENTED_EDGE('',*,*,#6755,.T.);
-+#6757=ORIENTED_EDGE('',*,*,#5650,.T.);
-+#6759=ORIENTED_EDGE('',*,*,#6758,.F.);
-+#6760=ORIENTED_EDGE('',*,*,#6408,.F.);
-+#6761=EDGE_LOOP('',(#6756,#6757,#6759,#6760));
-+#6762=FACE_OUTER_BOUND('',#6761,.F.);
-+#6763=ADVANCED_FACE('',(#6762),#6754,.F.);
-+#6764=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
-+#6765=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6766=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6767=AXIS2_PLACEMENT_3D('',#6764,#6765,#6766);
-+#6768=PLANE('',#6767);
-+#6770=ORIENTED_EDGE('',*,*,#6769,.T.);
-+#6771=ORIENTED_EDGE('',*,*,#6446,.F.);
-+#6772=ORIENTED_EDGE('',*,*,#6742,.T.);
-+#6773=ORIENTED_EDGE('',*,*,#5664,.T.);
-+#6774=EDGE_LOOP('',(#6770,#6771,#6772,#6773));
-+#6775=FACE_OUTER_BOUND('',#6774,.F.);
-+#6776=ADVANCED_FACE('',(#6775),#6768,.F.);
-+#6777=CARTESIAN_POINT('',(5.5E0,1.568923974228E0,2.19375E1));
-+#6778=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6779=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6780=AXIS2_PLACEMENT_3D('',#6777,#6778,#6779);
-+#6781=CYLINDRICAL_SURFACE('',#6780,3.E0);
-+#6782=ORIENTED_EDGE('',*,*,#6755,.F.);
-+#6783=ORIENTED_EDGE('',*,*,#6406,.T.);
-+#6785=ORIENTED_EDGE('',*,*,#6784,.T.);
-+#6786=ORIENTED_EDGE('',*,*,#5652,.T.);
-+#6787=EDGE_LOOP('',(#6782,#6783,#6785,#6786));
-+#6788=FACE_OUTER_BOUND('',#6787,.F.);
-+#6789=ADVANCED_FACE('',(#6788),#6781,.F.);
-+#6790=CARTESIAN_POINT('',(2.5E0,0.E0,1.89375E1));
-+#6791=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6792=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6793=AXIS2_PLACEMENT_3D('',#6790,#6791,#6792);
-+#6794=PLANE('',#6793);
-+#6795=ORIENTED_EDGE('',*,*,#6784,.F.);
-+#6796=ORIENTED_EDGE('',*,*,#6404,.T.);
-+#6798=ORIENTED_EDGE('',*,*,#6797,.F.);
-+#6799=ORIENTED_EDGE('',*,*,#5638,.F.);
-+#6800=EDGE_LOOP('',(#6795,#6796,#6798,#6799));
-+#6801=FACE_OUTER_BOUND('',#6800,.F.);
-+#6802=ADVANCED_FACE('',(#6801),#6794,.T.);
-+#6803=CARTESIAN_POINT('',(1.85E1,-5.889194178308E-2,2.19375E1));
-+#6804=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6805=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6806=AXIS2_PLACEMENT_3D('',#6803,#6804,#6805);
-+#6807=CYLINDRICAL_SURFACE('',#6806,3.E0);
-+#6809=ORIENTED_EDGE('',*,*,#6808,.F.);
-+#6810=ORIENTED_EDGE('',*,*,#5640,.T.);
-+#6811=ORIENTED_EDGE('',*,*,#6797,.T.);
-+#6812=ORIENTED_EDGE('',*,*,#6402,.T.);
-+#6813=EDGE_LOOP('',(#6809,#6810,#6811,#6812));
-+#6814=FACE_OUTER_BOUND('',#6813,.F.);
-+#6815=ADVANCED_FACE('',(#6814),#6807,.F.);
-+#6816=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
-+#6817=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6818=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6819=AXIS2_PLACEMENT_3D('',#6816,#6817,#6818);
-+#6820=PLANE('',#6819);
-+#6821=ORIENTED_EDGE('',*,*,#6808,.T.);
-+#6822=ORIENTED_EDGE('',*,*,#6400,.F.);
-+#6824=ORIENTED_EDGE('',*,*,#6823,.T.);
-+#6825=ORIENTED_EDGE('',*,*,#5642,.T.);
-+#6826=EDGE_LOOP('',(#6821,#6822,#6824,#6825));
-+#6827=FACE_OUTER_BOUND('',#6826,.F.);
-+#6828=ADVANCED_FACE('',(#6827),#6820,.F.);
-+#6829=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
-+#6830=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6831=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6832=AXIS2_PLACEMENT_3D('',#6829,#6830,#6831);
-+#6833=PLANE('',#6832);
-+#6835=ORIENTED_EDGE('',*,*,#6834,.T.);
-+#6836=ORIENTED_EDGE('',*,*,#5656,.T.);
-+#6838=ORIENTED_EDGE('',*,*,#6837,.T.);
-+#6839=ORIENTED_EDGE('',*,*,#6422,.F.);
-+#6840=EDGE_LOOP('',(#6835,#6836,#6838,#6839));
-+#6841=FACE_OUTER_BOUND('',#6840,.F.);
-+#6842=ADVANCED_FACE('',(#6841),#6833,.F.);
-+#6843=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,2.45E1));
-+#6844=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6845=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6846=AXIS2_PLACEMENT_3D('',#6843,#6844,#6845);
-+#6847=CYLINDRICAL_SURFACE('',#6846,5.E0);
-+#6848=ORIENTED_EDGE('',*,*,#6823,.F.);
-+#6849=ORIENTED_EDGE('',*,*,#6414,.T.);
-+#6851=ORIENTED_EDGE('',*,*,#6850,.T.);
-+#6852=ORIENTED_EDGE('',*,*,#5644,.T.);
-+#6853=EDGE_LOOP('',(#6848,#6849,#6851,#6852));
-+#6854=FACE_OUTER_BOUND('',#6853,.F.);
-+#6855=ADVANCED_FACE('',(#6854),#6847,.F.);
-+#6856=CARTESIAN_POINT('',(2.5E0,1.5E0,2.95E1));
-+#6857=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6858=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6859=AXIS2_PLACEMENT_3D('',#6856,#6857,#6858);
-+#6860=PLANE('',#6859);
-+#6862=ORIENTED_EDGE('',*,*,#6861,.T.);
-+#6863=ORIENTED_EDGE('',*,*,#5646,.T.);
-+#6864=ORIENTED_EDGE('',*,*,#6850,.F.);
-+#6865=ORIENTED_EDGE('',*,*,#6412,.F.);
-+#6866=EDGE_LOOP('',(#6862,#6863,#6864,#6865));
-+#6867=FACE_OUTER_BOUND('',#6866,.F.);
-+#6868=ADVANCED_FACE('',(#6867),#6860,.F.);
-+#6869=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,2.45E1));
-+#6870=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6871=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6872=AXIS2_PLACEMENT_3D('',#6869,#6870,#6871);
-+#6873=CYLINDRICAL_SURFACE('',#6872,5.E0);
-+#6874=ORIENTED_EDGE('',*,*,#6861,.F.);
-+#6875=ORIENTED_EDGE('',*,*,#6410,.T.);
-+#6876=ORIENTED_EDGE('',*,*,#6758,.T.);
-+#6877=ORIENTED_EDGE('',*,*,#5648,.T.);
-+#6878=EDGE_LOOP('',(#6874,#6875,#6876,#6877));
-+#6879=FACE_OUTER_BOUND('',#6878,.F.);
-+#6880=ADVANCED_FACE('',(#6879),#6873,.F.);
-+#6881=CARTESIAN_POINT('',(1.85E1,1.568923974228E0,1.40625E1));
-+#6882=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6883=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883);
-+#6885=CYLINDRICAL_SURFACE('',#6884,3.E0);
-+#6886=ORIENTED_EDGE('',*,*,#6834,.F.);
-+#6887=ORIENTED_EDGE('',*,*,#6420,.T.);
-+#6889=ORIENTED_EDGE('',*,*,#6888,.T.);
-+#6890=ORIENTED_EDGE('',*,*,#5658,.T.);
-+#6891=EDGE_LOOP('',(#6886,#6887,#6889,#6890));
-+#6892=FACE_OUTER_BOUND('',#6891,.F.);
-+#6893=ADVANCED_FACE('',(#6892),#6885,.F.);
-+#6894=CARTESIAN_POINT('',(2.15E1,0.E0,1.70625E1));
-+#6895=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6896=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6897=AXIS2_PLACEMENT_3D('',#6894,#6895,#6896);
-+#6898=PLANE('',#6897);
-+#6899=ORIENTED_EDGE('',*,*,#6888,.F.);
-+#6900=ORIENTED_EDGE('',*,*,#6418,.T.);
-+#6902=ORIENTED_EDGE('',*,*,#6901,.F.);
-+#6903=ORIENTED_EDGE('',*,*,#5660,.F.);
-+#6904=EDGE_LOOP('',(#6899,#6900,#6902,#6903));
-+#6905=FACE_OUTER_BOUND('',#6904,.F.);
-+#6906=ADVANCED_FACE('',(#6905),#6898,.T.);
-+#6907=CARTESIAN_POINT('',(5.5E0,-5.889194178308E-2,1.40625E1));
-+#6908=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6909=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6910=AXIS2_PLACEMENT_3D('',#6907,#6908,#6909);
-+#6911=CYLINDRICAL_SURFACE('',#6910,3.E0);
-+#6912=ORIENTED_EDGE('',*,*,#6769,.F.);
-+#6913=ORIENTED_EDGE('',*,*,#5662,.T.);
-+#6914=ORIENTED_EDGE('',*,*,#6901,.T.);
-+#6915=ORIENTED_EDGE('',*,*,#6448,.T.);
-+#6916=EDGE_LOOP('',(#6912,#6913,#6914,#6915));
-+#6917=FACE_OUTER_BOUND('',#6916,.F.);
-+#6918=ADVANCED_FACE('',(#6917),#6911,.F.);
-+#6919=CARTESIAN_POINT('',(2.05E1,-5.889194178308E-2,1.325E1));
-+#6920=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6921=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921);
-+#6923=CYLINDRICAL_SURFACE('',#6922,1.E0);
-+#6924=ORIENTED_EDGE('',*,*,#6837,.F.);
-+#6925=ORIENTED_EDGE('',*,*,#5686,.T.);
-+#6927=ORIENTED_EDGE('',*,*,#6926,.T.);
-+#6928=ORIENTED_EDGE('',*,*,#6424,.T.);
-+#6929=EDGE_LOOP('',(#6924,#6925,#6927,#6928));
-+#6930=FACE_OUTER_BOUND('',#6929,.F.);
-+#6931=ADVANCED_FACE('',(#6930),#6923,.F.);
-+#6932=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
-+#6933=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6934=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6935=AXIS2_PLACEMENT_3D('',#6932,#6933,#6934);
-+#6936=PLANE('',#6935);
-+#6938=ORIENTED_EDGE('',*,*,#6937,.F.);
-+#6939=ORIENTED_EDGE('',*,*,#6290,.F.);
-+#6941=ORIENTED_EDGE('',*,*,#6940,.T.);
-+#6942=ORIENTED_EDGE('',*,*,#5532,.T.);
-+#6943=EDGE_LOOP('',(#6938,#6939,#6941,#6942));
-+#6944=FACE_OUTER_BOUND('',#6943,.F.);
-+#6945=ADVANCED_FACE('',(#6944),#6936,.F.);
-+#6946=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
-+#6947=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6948=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6949=AXIS2_PLACEMENT_3D('',#6946,#6947,#6948);
-+#6950=PLANE('',#6949);
-+#6951=ORIENTED_EDGE('',*,*,#6926,.F.);
-+#6952=ORIENTED_EDGE('',*,*,#5684,.T.);
-+#6954=ORIENTED_EDGE('',*,*,#6953,.F.);
-+#6955=ORIENTED_EDGE('',*,*,#6426,.F.);
-+#6956=EDGE_LOOP('',(#6951,#6952,#6954,#6955));
-+#6957=FACE_OUTER_BOUND('',#6956,.F.);
-+#6958=ADVANCED_FACE('',(#6957),#6950,.F.);
-+#6959=CARTESIAN_POINT('',(2.5E1,1.568923974228E0,1.325E1));
-+#6960=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6961=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6962=AXIS2_PLACEMENT_3D('',#6959,#6960,#6961);
-+#6963=CYLINDRICAL_SURFACE('',#6962,1.E0);
-+#6965=ORIENTED_EDGE('',*,*,#6964,.F.);
-+#6966=ORIENTED_EDGE('',*,*,#6292,.T.);
-+#6967=ORIENTED_EDGE('',*,*,#6937,.T.);
-+#6968=ORIENTED_EDGE('',*,*,#5530,.T.);
-+#6969=EDGE_LOOP('',(#6965,#6966,#6967,#6968));
-+#6970=FACE_OUTER_BOUND('',#6969,.F.);
-+#6971=ADVANCED_FACE('',(#6970),#6963,.F.);
-+#6972=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
-+#6973=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6974=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6975=AXIS2_PLACEMENT_3D('',#6972,#6973,#6974);
-+#6976=PLANE('',#6975);
-+#6977=ORIENTED_EDGE('',*,*,#6964,.T.);
-+#6978=ORIENTED_EDGE('',*,*,#5528,.F.);
-+#6980=ORIENTED_EDGE('',*,*,#6979,.T.);
-+#6981=ORIENTED_EDGE('',*,*,#6294,.T.);
-+#6982=EDGE_LOOP('',(#6977,#6978,#6980,#6981));
-+#6983=FACE_OUTER_BOUND('',#6982,.F.);
-+#6984=ADVANCED_FACE('',(#6983),#6976,.T.);
-+#6985=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
-+#6986=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6987=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6988=AXIS2_PLACEMENT_3D('',#6985,#6986,#6987);
-+#6989=PLANE('',#6988);
-+#6991=ORIENTED_EDGE('',*,*,#6990,.T.);
-+#6992=ORIENTED_EDGE('',*,*,#6242,.T.);
-+#6994=ORIENTED_EDGE('',*,*,#6993,.F.);
-+#6995=ORIENTED_EDGE('',*,*,#5498,.F.);
-+#6996=EDGE_LOOP('',(#6991,#6992,#6994,#6995));
-+#6997=FACE_OUTER_BOUND('',#6996,.F.);
-+#6998=ADVANCED_FACE('',(#6997),#6989,.T.);
-+#6999=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#7000=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7001=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7002=AXIS2_PLACEMENT_3D('',#6999,#7000,#7001);
-+#7003=PLANE('',#7002);
-+#7004=ORIENTED_EDGE('',*,*,#6979,.F.);
-+#7005=ORIENTED_EDGE('',*,*,#5526,.T.);
-+#7007=ORIENTED_EDGE('',*,*,#7006,.T.);
-+#7008=ORIENTED_EDGE('',*,*,#6296,.F.);
-+#7009=EDGE_LOOP('',(#7004,#7005,#7007,#7008));
-+#7010=FACE_OUTER_BOUND('',#7009,.F.);
-+#7011=ADVANCED_FACE('',(#7010),#7003,.T.);
-+#7012=CARTESIAN_POINT('',(0.E0,0.E0,3.2E1));
-+#7013=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7014=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7015=AXIS2_PLACEMENT_3D('',#7012,#7013,#7014);
-+#7016=PLANE('',#7015);
-+#7017=ORIENTED_EDGE('',*,*,#5524,.F.);
-+#7019=ORIENTED_EDGE('',*,*,#7018,.T.);
-+#7020=ORIENTED_EDGE('',*,*,#6298,.T.);
-+#7021=ORIENTED_EDGE('',*,*,#7006,.F.);
-+#7022=EDGE_LOOP('',(#7017,#7019,#7020,#7021));
-+#7023=FACE_OUTER_BOUND('',#7022,.F.);
-+#7024=ADVANCED_FACE('',(#7023),#7016,.T.);
-+#7025=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#7026=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7027=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7028=AXIS2_PLACEMENT_3D('',#7025,#7026,#7027);
-+#7029=PLANE('',#7028);
-+#7030=ORIENTED_EDGE('',*,*,#7018,.F.);
-+#7031=ORIENTED_EDGE('',*,*,#5522,.T.);
-+#7032=ORIENTED_EDGE('',*,*,#6678,.T.);
-+#7033=ORIENTED_EDGE('',*,*,#6300,.F.);
-+#7034=EDGE_LOOP('',(#7030,#7031,#7032,#7033));
-+#7035=FACE_OUTER_BOUND('',#7034,.F.);
-+#7036=ADVANCED_FACE('',(#7035),#7029,.T.);
-+#7037=CARTESIAN_POINT('',(2.5E1,-7.055249658685E-2,7.E0));
-+#7038=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7039=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7040=AXIS2_PLACEMENT_3D('',#7037,#7038,#7039);
-+#7041=CYLINDRICAL_SURFACE('',#7040,1.E0);
-+#7042=ORIENTED_EDGE('',*,*,#6990,.F.);
-+#7043=ORIENTED_EDGE('',*,*,#5496,.T.);
-+#7044=ORIENTED_EDGE('',*,*,#5965,.T.);
-+#7045=ORIENTED_EDGE('',*,*,#6244,.T.);
-+#7046=EDGE_LOOP('',(#7042,#7043,#7044,#7045));
-+#7047=FACE_OUTER_BOUND('',#7046,.F.);
-+#7048=ADVANCED_FACE('',(#7047),#7041,.F.);
-+#7049=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#7050=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#7051=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7052=AXIS2_PLACEMENT_3D('',#7049,#7050,#7051);
-+#7053=PLANE('',#7052);
-+#7055=ORIENTED_EDGE('',*,*,#7054,.F.);
-+#7056=ORIENTED_EDGE('',*,*,#5500,.T.);
-+#7057=ORIENTED_EDGE('',*,*,#6993,.T.);
-+#7058=ORIENTED_EDGE('',*,*,#6240,.F.);
-+#7059=EDGE_LOOP('',(#7055,#7056,#7057,#7058));
-+#7060=FACE_OUTER_BOUND('',#7059,.F.);
-+#7061=ADVANCED_FACE('',(#7060),#7053,.T.);
-+#7062=CARTESIAN_POINT('',(2.4E1,0.E0,0.E0));
-+#7063=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7064=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7065=AXIS2_PLACEMENT_3D('',#7062,#7063,#7064);
-+#7066=PLANE('',#7065);
-+#7067=ORIENTED_EDGE('',*,*,#5502,.F.);
-+#7068=ORIENTED_EDGE('',*,*,#7054,.T.);
-+#7069=ORIENTED_EDGE('',*,*,#6238,.T.);
-+#7071=ORIENTED_EDGE('',*,*,#7070,.F.);
-+#7072=EDGE_LOOP('',(#7067,#7068,#7069,#7071));
-+#7073=FACE_OUTER_BOUND('',#7072,.F.);
-+#7074=ADVANCED_FACE('',(#7073),#7066,.T.);
-+#7075=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#7076=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#7077=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7078=AXIS2_PLACEMENT_3D('',#7075,#7076,#7077);
-+#7079=PLANE('',#7078);
-+#7080=ORIENTED_EDGE('',*,*,#6691,.F.);
-+#7081=ORIENTED_EDGE('',*,*,#5504,.T.);
-+#7082=ORIENTED_EDGE('',*,*,#7070,.T.);
-+#7083=ORIENTED_EDGE('',*,*,#6236,.F.);
-+#7084=EDGE_LOOP('',(#7080,#7081,#7082,#7083));
-+#7085=FACE_OUTER_BOUND('',#7084,.F.);
-+#7086=ADVANCED_FACE('',(#7085),#7079,.T.);
-+#7087=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#7088=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7089=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7090=AXIS2_PLACEMENT_3D('',#7087,#7088,#7089);
-+#7091=PLANE('',#7090);
-+#7092=ORIENTED_EDGE('',*,*,#6940,.F.);
-+#7093=ORIENTED_EDGE('',*,*,#6288,.T.);
-+#7095=ORIENTED_EDGE('',*,*,#7094,.T.);
-+#7096=ORIENTED_EDGE('',*,*,#5534,.F.);
-+#7097=EDGE_LOOP('',(#7092,#7093,#7095,#7096));
-+#7098=FACE_OUTER_BOUND('',#7097,.F.);
-+#7099=ADVANCED_FACE('',(#7098),#7091,.T.);
-+#7100=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#7101=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7102=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7103=AXIS2_PLACEMENT_3D('',#7100,#7101,#7102);
-+#7104=PLANE('',#7103);
-+#7105=ORIENTED_EDGE('',*,*,#5968,.T.);
-+#7106=ORIENTED_EDGE('',*,*,#5536,.T.);
-+#7107=ORIENTED_EDGE('',*,*,#7094,.F.);
-+#7108=ORIENTED_EDGE('',*,*,#6286,.F.);
-+#7109=ORIENTED_EDGE('',*,*,#6165,.F.);
-+#7111=ORIENTED_EDGE('',*,*,#7110,.F.);
-+#7112=EDGE_LOOP('',(#7105,#7106,#7107,#7108,#7109,#7111));
-+#7113=FACE_OUTER_BOUND('',#7112,.F.);
-+#7114=ADVANCED_FACE('',(#7113),#7104,.F.);
-+#7115=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#7116=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
-+#7117=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#7118=AXIS2_PLACEMENT_3D('',#7115,#7116,#7117);
-+#7119=PLANE('',#7118);
-+#7120=ORIENTED_EDGE('',*,*,#5970,.T.);
-+#7121=ORIENTED_EDGE('',*,*,#7110,.T.);
-+#7122=ORIENTED_EDGE('',*,*,#6163,.F.);
-+#7124=ORIENTED_EDGE('',*,*,#7123,.F.);
-+#7125=EDGE_LOOP('',(#7120,#7121,#7122,#7124));
-+#7126=FACE_OUTER_BOUND('',#7125,.F.);
-+#7127=ADVANCED_FACE('',(#7126),#7119,.F.);
-+#7128=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
-+#7129=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7130=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7131=AXIS2_PLACEMENT_3D('',#7128,#7129,#7130);
-+#7132=PLANE('',#7131);
-+#7133=ORIENTED_EDGE('',*,*,#5972,.F.);
-+#7134=ORIENTED_EDGE('',*,*,#7123,.T.);
-+#7135=ORIENTED_EDGE('',*,*,#6161,.F.);
-+#7137=ORIENTED_EDGE('',*,*,#7136,.F.);
-+#7138=EDGE_LOOP('',(#7133,#7134,#7135,#7137));
-+#7139=FACE_OUTER_BOUND('',#7138,.F.);
-+#7141=ORIENTED_EDGE('',*,*,#7140,.T.);
-+#7143=ORIENTED_EDGE('',*,*,#7142,.T.);
-+#7144=EDGE_LOOP('',(#7141,#7143));
-+#7145=FACE_BOUND('',#7144,.F.);
-+#7147=ORIENTED_EDGE('',*,*,#7146,.T.);
-+#7149=ORIENTED_EDGE('',*,*,#7148,.T.);
-+#7150=EDGE_LOOP('',(#7147,#7149));
-+#7151=FACE_BOUND('',#7150,.F.);
-+#7152=ADVANCED_FACE('',(#7139,#7145,#7151),#7132,.F.);
-+#7153=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#7154=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7155=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7156=AXIS2_PLACEMENT_3D('',#7153,#7154,#7155);
-+#7157=PLANE('',#7156);
-+#7159=ORIENTED_EDGE('',*,*,#7158,.T.);
-+#7160=ORIENTED_EDGE('',*,*,#6430,.F.);
-+#7162=ORIENTED_EDGE('',*,*,#7161,.T.);
-+#7163=ORIENTED_EDGE('',*,*,#5680,.T.);
-+#7164=EDGE_LOOP('',(#7159,#7160,#7162,#7163));
-+#7165=FACE_OUTER_BOUND('',#7164,.F.);
-+#7166=ADVANCED_FACE('',(#7165),#7157,.F.);
-+#7167=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#7168=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7169=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7170=AXIS2_PLACEMENT_3D('',#7167,#7168,#7169);
-+#7171=PLANE('',#7170);
-+#7172=ORIENTED_EDGE('',*,*,#6325,.F.);
-+#7173=ORIENTED_EDGE('',*,*,#5974,.T.);
-+#7174=ORIENTED_EDGE('',*,*,#7136,.T.);
-+#7175=ORIENTED_EDGE('',*,*,#6159,.F.);
-+#7176=EDGE_LOOP('',(#7172,#7173,#7174,#7175));
-+#7177=FACE_OUTER_BOUND('',#7176,.F.);
-+#7178=ADVANCED_FACE('',(#7177),#7171,.F.);
-+#7179=CARTESIAN_POINT('',(1.8E1,-7.099592191979E-2,1.1E1));
-+#7180=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7181=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7182=AXIS2_PLACEMENT_3D('',#7179,#7180,#7181);
-+#7183=CYLINDRICAL_SURFACE('',#7182,1.E0);
-+#7184=ORIENTED_EDGE('',*,*,#7158,.F.);
-+#7185=ORIENTED_EDGE('',*,*,#5678,.T.);
-+#7187=ORIENTED_EDGE('',*,*,#7186,.T.);
-+#7188=ORIENTED_EDGE('',*,*,#6432,.T.);
-+#7189=EDGE_LOOP('',(#7184,#7185,#7187,#7188));
-+#7190=FACE_OUTER_BOUND('',#7189,.F.);
-+#7191=ADVANCED_FACE('',(#7190),#7183,.F.);
-+#7192=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
-+#7193=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7194=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7195=AXIS2_PLACEMENT_3D('',#7192,#7193,#7194);
-+#7196=PLANE('',#7195);
-+#7198=ORIENTED_EDGE('',*,*,#7197,.F.);
-+#7199=ORIENTED_EDGE('',*,*,#6434,.T.);
-+#7200=ORIENTED_EDGE('',*,*,#7186,.F.);
-+#7201=ORIENTED_EDGE('',*,*,#5676,.F.);
-+#7202=EDGE_LOOP('',(#7198,#7199,#7200,#7201));
-+#7203=FACE_OUTER_BOUND('',#7202,.F.);
-+#7204=ADVANCED_FACE('',(#7203),#7196,.T.);
-+#7205=CARTESIAN_POINT('',(6.E0,1.567729432957E0,1.1E1));
-+#7206=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7207=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7208=AXIS2_PLACEMENT_3D('',#7205,#7206,#7207);
-+#7209=CYLINDRICAL_SURFACE('',#7208,1.E0);
-+#7211=ORIENTED_EDGE('',*,*,#7210,.F.);
-+#7212=ORIENTED_EDGE('',*,*,#6436,.T.);
-+#7213=ORIENTED_EDGE('',*,*,#7197,.T.);
-+#7214=ORIENTED_EDGE('',*,*,#5674,.T.);
-+#7215=EDGE_LOOP('',(#7211,#7212,#7213,#7214));
-+#7216=FACE_OUTER_BOUND('',#7215,.F.);
-+#7217=ADVANCED_FACE('',(#7216),#7209,.F.);
-+#7218=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#7219=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7220=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7221=AXIS2_PLACEMENT_3D('',#7218,#7219,#7220);
-+#7222=PLANE('',#7221);
-+#7223=ORIENTED_EDGE('',*,*,#7210,.T.);
-+#7224=ORIENTED_EDGE('',*,*,#5672,.F.);
-+#7226=ORIENTED_EDGE('',*,*,#7225,.T.);
-+#7227=ORIENTED_EDGE('',*,*,#6438,.T.);
-+#7228=EDGE_LOOP('',(#7223,#7224,#7226,#7227));
-+#7229=FACE_OUTER_BOUND('',#7228,.F.);
-+#7230=ADVANCED_FACE('',(#7229),#7222,.T.);
-+#7231=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#7232=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7233=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7234=AXIS2_PLACEMENT_3D('',#7231,#7232,#7233);
-+#7235=PLANE('',#7234);
-+#7236=ORIENTED_EDGE('',*,*,#6322,.T.);
-+#7238=ORIENTED_EDGE('',*,*,#7237,.T.);
-+#7240=ORIENTED_EDGE('',*,*,#7239,.F.);
-+#7241=ORIENTED_EDGE('',*,*,#5978,.T.);
-+#7242=EDGE_LOOP('',(#7236,#7238,#7240,#7241));
-+#7243=FACE_OUTER_BOUND('',#7242,.F.);
-+#7244=ADVANCED_FACE('',(#7243),#7235,.T.);
-+#7245=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#7246=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7247=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7248=AXIS2_PLACEMENT_3D('',#7245,#7246,#7247);
-+#7249=PLANE('',#7248);
-+#7250=ORIENTED_EDGE('',*,*,#7225,.F.);
-+#7251=ORIENTED_EDGE('',*,*,#5670,.T.);
-+#7252=ORIENTED_EDGE('',*,*,#6718,.T.);
-+#7253=ORIENTED_EDGE('',*,*,#6440,.F.);
-+#7254=EDGE_LOOP('',(#7250,#7251,#7252,#7253));
-+#7255=FACE_OUTER_BOUND('',#7254,.F.);
-+#7256=ADVANCED_FACE('',(#7255),#7249,.T.);
-+#7257=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));
-+#7258=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7259=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7260=AXIS2_PLACEMENT_3D('',#7257,#7258,#7259);
-+#7261=PLANE('',#7260);
-+#7263=ORIENTED_EDGE('',*,*,#7262,.F.);
-+#7264=ORIENTED_EDGE('',*,*,#6312,.F.);
-+#7266=ORIENTED_EDGE('',*,*,#7265,.F.);
-+#7268=ORIENTED_EDGE('',*,*,#7267,.F.);
-+#7270=ORIENTED_EDGE('',*,*,#7269,.F.);
-+#7271=ORIENTED_EDGE('',*,*,#7237,.F.);
-+#7272=ORIENTED_EDGE('',*,*,#6320,.F.);
-+#7274=ORIENTED_EDGE('',*,*,#7273,.T.);
-+#7276=ORIENTED_EDGE('',*,*,#7275,.F.);
-+#7277=EDGE_LOOP('',(#7263,#7264,#7266,#7268,#7270,#7271,#7272,#7274,#7276));
-+#7278=FACE_OUTER_BOUND('',#7277,.F.);
-+#7280=ORIENTED_EDGE('',*,*,#7279,.T.);
-+#7282=ORIENTED_EDGE('',*,*,#7281,.T.);
-+#7283=EDGE_LOOP('',(#7280,#7282));
-+#7284=FACE_BOUND('',#7283,.F.);
-+#7286=ORIENTED_EDGE('',*,*,#7285,.F.);
-+#7288=ORIENTED_EDGE('',*,*,#7287,.T.);
-+#7290=ORIENTED_EDGE('',*,*,#7289,.F.);
-+#7292=ORIENTED_EDGE('',*,*,#7291,.T.);
-+#7294=ORIENTED_EDGE('',*,*,#7293,.F.);
-+#7296=ORIENTED_EDGE('',*,*,#7295,.T.);
-+#7298=ORIENTED_EDGE('',*,*,#7297,.F.);
-+#7300=ORIENTED_EDGE('',*,*,#7299,.T.);
-+#7302=ORIENTED_EDGE('',*,*,#7301,.F.);
-+#7304=ORIENTED_EDGE('',*,*,#7303,.T.);
-+#7306=ORIENTED_EDGE('',*,*,#7305,.F.);
-+#7308=ORIENTED_EDGE('',*,*,#7307,.T.);
-+#7309=EDGE_LOOP('',(#7286,#7288,#7290,#7292,#7294,#7296,#7298,#7300,#7302,#7304,
-+#7306,#7308));
-+#7310=FACE_BOUND('',#7309,.F.);
-+#7311=ADVANCED_FACE('',(#7278,#7284,#7310),#7261,.T.);
-+#7312=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#7313=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7314=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7315=AXIS2_PLACEMENT_3D('',#7312,#7313,#7314);
-+#7316=CYLINDRICAL_SURFACE('',#7315,1.625E-1);
-+#7317=ORIENTED_EDGE('',*,*,#6031,.T.);
-+#7319=ORIENTED_EDGE('',*,*,#7318,.T.);
-+#7320=ORIENTED_EDGE('',*,*,#7279,.F.);
-+#7322=ORIENTED_EDGE('',*,*,#7321,.F.);
-+#7323=EDGE_LOOP('',(#7317,#7319,#7320,#7322));
-+#7324=FACE_OUTER_BOUND('',#7323,.F.);
-+#7325=ADVANCED_FACE('',(#7324),#7316,.F.);
-+#7326=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#7327=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7328=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7329=AXIS2_PLACEMENT_3D('',#7326,#7327,#7328);
-+#7330=CYLINDRICAL_SURFACE('',#7329,1.625E-1);
-+#7331=ORIENTED_EDGE('',*,*,#6033,.T.);
-+#7332=ORIENTED_EDGE('',*,*,#7321,.T.);
-+#7333=ORIENTED_EDGE('',*,*,#7281,.F.);
-+#7334=ORIENTED_EDGE('',*,*,#7318,.F.);
-+#7335=EDGE_LOOP('',(#7331,#7332,#7333,#7334));
-+#7336=FACE_OUTER_BOUND('',#7335,.F.);
-+#7337=ADVANCED_FACE('',(#7336),#7330,.F.);
-+#7338=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.2E1));
-+#7339=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7340=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7341=AXIS2_PLACEMENT_3D('',#7338,#7339,#7340);
-+#7342=PLANE('',#7341);
-+#7343=ORIENTED_EDGE('',*,*,#6314,.T.);
-+#7344=ORIENTED_EDGE('',*,*,#7262,.T.);
-+#7346=ORIENTED_EDGE('',*,*,#7345,.T.);
-+#7347=EDGE_LOOP('',(#7343,#7344,#7346));
-+#7348=FACE_OUTER_BOUND('',#7347,.F.);
-+#7349=ADVANCED_FACE('',(#7348),#7342,.F.);
-+#7350=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#7351=DIRECTION('',(0.E0,5.E-1,8.660254037844E-1));
-+#7352=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#7353=AXIS2_PLACEMENT_3D('',#7350,#7351,#7352);
-+#7354=PLANE('',#7353);
-+#7355=ORIENTED_EDGE('',*,*,#6316,.F.);
-+#7356=ORIENTED_EDGE('',*,*,#7345,.F.);
-+#7357=ORIENTED_EDGE('',*,*,#7275,.T.);
-+#7359=ORIENTED_EDGE('',*,*,#7358,.T.);
-+#7360=EDGE_LOOP('',(#7355,#7356,#7357,#7359));
-+#7361=FACE_OUTER_BOUND('',#7360,.F.);
-+#7363=ORIENTED_EDGE('',*,*,#7362,.T.);
-+#7365=ORIENTED_EDGE('',*,*,#7364,.T.);
-+#7366=EDGE_LOOP('',(#7363,#7365));
-+#7367=FACE_BOUND('',#7366,.F.);
-+#7368=ADVANCED_FACE('',(#7361,#7367),#7354,.T.);
-+#7369=CARTESIAN_POINT('',(2.E0,1.5E0,1.2E1));
-+#7370=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7371=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7372=AXIS2_PLACEMENT_3D('',#7369,#7370,#7371);
-+#7373=PLANE('',#7372);
-+#7374=ORIENTED_EDGE('',*,*,#6318,.F.);
-+#7375=ORIENTED_EDGE('',*,*,#7358,.F.);
-+#7376=ORIENTED_EDGE('',*,*,#7273,.F.);
-+#7377=EDGE_LOOP('',(#7374,#7375,#7376));
-+#7378=FACE_OUTER_BOUND('',#7377,.F.);
-+#7379=ADVANCED_FACE('',(#7378),#7373,.T.);
-+#7380=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7381=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7382=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7383=AXIS2_PLACEMENT_3D('',#7380,#7381,#7382);
-+#7384=CYLINDRICAL_SURFACE('',#7383,2.575E-1);
-+#7386=ORIENTED_EDGE('',*,*,#7385,.F.);
-+#7387=ORIENTED_EDGE('',*,*,#7362,.F.);
-+#7389=ORIENTED_EDGE('',*,*,#7388,.F.);
-+#7391=ORIENTED_EDGE('',*,*,#7390,.F.);
-+#7392=EDGE_LOOP('',(#7386,#7387,#7389,#7391));
-+#7393=FACE_OUTER_BOUND('',#7392,.F.);
-+#7394=ADVANCED_FACE('',(#7393),#7384,.F.);
-+#7395=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7396=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7397=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397);
-+#7399=CYLINDRICAL_SURFACE('',#7398,2.575E-1);
-+#7400=ORIENTED_EDGE('',*,*,#7388,.T.);
-+#7401=ORIENTED_EDGE('',*,*,#7364,.F.);
-+#7402=ORIENTED_EDGE('',*,*,#7385,.T.);
-+#7404=ORIENTED_EDGE('',*,*,#7403,.F.);
-+#7405=EDGE_LOOP('',(#7400,#7401,#7402,#7404));
-+#7406=FACE_OUTER_BOUND('',#7405,.F.);
-+#7407=ADVANCED_FACE('',(#7406),#7399,.F.);
-+#7408=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#7409=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7410=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7411=AXIS2_PLACEMENT_3D('',#7408,#7409,#7410);
-+#7412=PLANE('',#7411);
-+#7413=ORIENTED_EDGE('',*,*,#7390,.T.);
-+#7414=ORIENTED_EDGE('',*,*,#7403,.T.);
-+#7415=EDGE_LOOP('',(#7413,#7414));
-+#7416=FACE_OUTER_BOUND('',#7415,.F.);
-+#7418=ORIENTED_EDGE('',*,*,#7417,.F.);
-+#7420=ORIENTED_EDGE('',*,*,#7419,.F.);
-+#7421=EDGE_LOOP('',(#7418,#7420));
-+#7422=FACE_BOUND('',#7421,.F.);
-+#7423=ADVANCED_FACE('',(#7416,#7422),#7412,.F.);
-+#7424=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7425=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7426=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7427=AXIS2_PLACEMENT_3D('',#7424,#7425,#7426);
-+#7428=CYLINDRICAL_SURFACE('',#7427,1.925E-1);
-+#7429=ORIENTED_EDGE('',*,*,#7417,.T.);
-+#7431=ORIENTED_EDGE('',*,*,#7430,.T.);
-+#7432=ORIENTED_EDGE('',*,*,#5620,.F.);
-+#7434=ORIENTED_EDGE('',*,*,#7433,.F.);
-+#7435=EDGE_LOOP('',(#7429,#7431,#7432,#7434));
-+#7436=FACE_OUTER_BOUND('',#7435,.F.);
-+#7437=ADVANCED_FACE('',(#7436),#7428,.F.);
-+#7438=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7439=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7440=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7441=AXIS2_PLACEMENT_3D('',#7438,#7439,#7440);
-+#7442=CYLINDRICAL_SURFACE('',#7441,1.925E-1);
-+#7443=ORIENTED_EDGE('',*,*,#7419,.T.);
-+#7444=ORIENTED_EDGE('',*,*,#7433,.T.);
-+#7445=ORIENTED_EDGE('',*,*,#5622,.F.);
-+#7446=ORIENTED_EDGE('',*,*,#7430,.F.);
-+#7447=EDGE_LOOP('',(#7443,#7444,#7445,#7446));
-+#7448=FACE_OUTER_BOUND('',#7447,.F.);
-+#7449=ADVANCED_FACE('',(#7448),#7442,.F.);
-+#7450=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
-+#7451=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7452=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7453=AXIS2_PLACEMENT_3D('',#7450,#7451,#7452);
-+#7454=PLANE('',#7453);
-+#7455=ORIENTED_EDGE('',*,*,#7265,.T.);
-+#7456=ORIENTED_EDGE('',*,*,#6310,.T.);
-+#7458=ORIENTED_EDGE('',*,*,#7457,.F.);
-+#7459=ORIENTED_EDGE('',*,*,#5512,.F.);
-+#7460=ORIENTED_EDGE('',*,*,#5984,.T.);
-+#7462=ORIENTED_EDGE('',*,*,#7461,.T.);
-+#7463=EDGE_LOOP('',(#7455,#7456,#7458,#7459,#7460,#7462));
-+#7464=FACE_OUTER_BOUND('',#7463,.F.);
-+#7465=ADVANCED_FACE('',(#7464),#7454,.T.);
-+#7466=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#7467=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7468=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468);
-+#7470=PLANE('',#7469);
-+#7471=ORIENTED_EDGE('',*,*,#6731,.F.);
-+#7472=ORIENTED_EDGE('',*,*,#5514,.T.);
-+#7473=ORIENTED_EDGE('',*,*,#7457,.T.);
-+#7474=ORIENTED_EDGE('',*,*,#6308,.F.);
-+#7475=EDGE_LOOP('',(#7471,#7472,#7473,#7474));
-+#7476=FACE_OUTER_BOUND('',#7475,.F.);
-+#7477=ADVANCED_FACE('',(#7476),#7470,.T.);
-+#7478=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#7479=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#7480=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#7481=AXIS2_PLACEMENT_3D('',#7478,#7479,#7480);
-+#7482=PLANE('',#7481);
-+#7483=ORIENTED_EDGE('',*,*,#5982,.F.);
-+#7485=ORIENTED_EDGE('',*,*,#7484,.T.);
-+#7486=ORIENTED_EDGE('',*,*,#7267,.T.);
-+#7487=ORIENTED_EDGE('',*,*,#7461,.F.);
-+#7488=EDGE_LOOP('',(#7483,#7485,#7486,#7487));
-+#7489=FACE_OUTER_BOUND('',#7488,.F.);
-+#7490=ADVANCED_FACE('',(#7489),#7482,.T.);
-+#7491=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#7492=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7493=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7494=AXIS2_PLACEMENT_3D('',#7491,#7492,#7493);
-+#7495=PLANE('',#7494);
-+#7496=ORIENTED_EDGE('',*,*,#5980,.F.);
-+#7497=ORIENTED_EDGE('',*,*,#7239,.T.);
-+#7498=ORIENTED_EDGE('',*,*,#7269,.T.);
-+#7499=ORIENTED_EDGE('',*,*,#7484,.F.);
-+#7500=EDGE_LOOP('',(#7496,#7497,#7498,#7499));
-+#7501=FACE_OUTER_BOUND('',#7500,.F.);
-+#7503=ORIENTED_EDGE('',*,*,#7502,.F.);
-+#7505=ORIENTED_EDGE('',*,*,#7504,.F.);
-+#7506=EDGE_LOOP('',(#7503,#7505));
-+#7507=FACE_BOUND('',#7506,.F.);
-+#7509=ORIENTED_EDGE('',*,*,#7508,.F.);
-+#7511=ORIENTED_EDGE('',*,*,#7510,.F.);
-+#7512=EDGE_LOOP('',(#7509,#7511));
-+#7513=FACE_BOUND('',#7512,.F.);
-+#7514=ADVANCED_FACE('',(#7501,#7507,#7513),#7495,.T.);
-+#7515=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#7516=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7517=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7518=AXIS2_PLACEMENT_3D('',#7515,#7516,#7517);
-+#7519=CYLINDRICAL_SURFACE('',#7518,9.5E-2);
-+#7520=ORIENTED_EDGE('',*,*,#7502,.T.);
-+#7522=ORIENTED_EDGE('',*,*,#7521,.T.);
-+#7524=ORIENTED_EDGE('',*,*,#7523,.F.);
-+#7526=ORIENTED_EDGE('',*,*,#7525,.F.);
-+#7527=EDGE_LOOP('',(#7520,#7522,#7524,#7526));
-+#7528=FACE_OUTER_BOUND('',#7527,.F.);
-+#7529=ADVANCED_FACE('',(#7528),#7519,.F.);
-+#7530=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#7531=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7532=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7533=AXIS2_PLACEMENT_3D('',#7530,#7531,#7532);
-+#7534=CYLINDRICAL_SURFACE('',#7533,9.5E-2);
-+#7535=ORIENTED_EDGE('',*,*,#7504,.T.);
-+#7536=ORIENTED_EDGE('',*,*,#7525,.T.);
-+#7538=ORIENTED_EDGE('',*,*,#7537,.F.);
-+#7539=ORIENTED_EDGE('',*,*,#7521,.F.);
-+#7540=EDGE_LOOP('',(#7535,#7536,#7538,#7539));
-+#7541=FACE_OUTER_BOUND('',#7540,.F.);
-+#7542=ADVANCED_FACE('',(#7541),#7534,.F.);
-+#7543=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
-+#7544=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7545=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7546=AXIS2_PLACEMENT_3D('',#7543,#7544,#7545);
-+#7547=PLANE('',#7546);
-+#7548=ORIENTED_EDGE('',*,*,#7523,.T.);
-+#7549=ORIENTED_EDGE('',*,*,#7537,.T.);
-+#7550=EDGE_LOOP('',(#7548,#7549));
-+#7551=FACE_OUTER_BOUND('',#7550,.F.);
-+#7552=ADVANCED_FACE('',(#7551),#7547,.F.);
-+#7553=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#7554=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7555=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555);
-+#7557=CYLINDRICAL_SURFACE('',#7556,6.25E-2);
-+#7558=ORIENTED_EDGE('',*,*,#7508,.T.);
-+#7560=ORIENTED_EDGE('',*,*,#7559,.T.);
-+#7562=ORIENTED_EDGE('',*,*,#7561,.F.);
-+#7564=ORIENTED_EDGE('',*,*,#7563,.F.);
-+#7565=EDGE_LOOP('',(#7558,#7560,#7562,#7564));
-+#7566=FACE_OUTER_BOUND('',#7565,.F.);
-+#7567=ADVANCED_FACE('',(#7566),#7557,.F.);
-+#7568=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#7569=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7570=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570);
-+#7572=CYLINDRICAL_SURFACE('',#7571,6.25E-2);
-+#7573=ORIENTED_EDGE('',*,*,#7510,.T.);
-+#7574=ORIENTED_EDGE('',*,*,#7563,.T.);
-+#7576=ORIENTED_EDGE('',*,*,#7575,.F.);
-+#7577=ORIENTED_EDGE('',*,*,#7559,.F.);
-+#7578=EDGE_LOOP('',(#7573,#7574,#7576,#7577));
-+#7579=FACE_OUTER_BOUND('',#7578,.F.);
-+#7580=ADVANCED_FACE('',(#7579),#7572,.F.);
-+#7581=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
-+#7582=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7583=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7584=AXIS2_PLACEMENT_3D('',#7581,#7582,#7583);
-+#7585=PLANE('',#7584);
-+#7586=ORIENTED_EDGE('',*,*,#7561,.T.);
-+#7587=ORIENTED_EDGE('',*,*,#7575,.T.);
-+#7588=EDGE_LOOP('',(#7586,#7587));
-+#7589=FACE_OUTER_BOUND('',#7588,.F.);
-+#7590=ADVANCED_FACE('',(#7589),#7585,.F.);
-+#7591=CARTESIAN_POINT('',(2.15E0,6.65E0,9.441108058217E0));
-+#7592=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7593=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7594=AXIS2_PLACEMENT_3D('',#7591,#7592,#7593);
-+#7595=CYLINDRICAL_SURFACE('',#7594,3.5E-1);
-+#7597=ORIENTED_EDGE('',*,*,#7596,.T.);
-+#7598=ORIENTED_EDGE('',*,*,#7285,.T.);
-+#7600=ORIENTED_EDGE('',*,*,#7599,.F.);
-+#7602=ORIENTED_EDGE('',*,*,#7601,.T.);
-+#7603=EDGE_LOOP('',(#7597,#7598,#7600,#7602));
-+#7604=FACE_OUTER_BOUND('',#7603,.F.);
-+#7605=ADVANCED_FACE('',(#7604),#7595,.T.);
-+#7606=CARTESIAN_POINT('',(2.5E0,7.E0,1.E1));
-+#7607=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7608=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7609=AXIS2_PLACEMENT_3D('',#7606,#7607,#7608);
-+#7610=PLANE('',#7609);
-+#7611=ORIENTED_EDGE('',*,*,#7596,.F.);
-+#7613=ORIENTED_EDGE('',*,*,#7612,.T.);
-+#7615=ORIENTED_EDGE('',*,*,#7614,.F.);
-+#7616=ORIENTED_EDGE('',*,*,#7287,.F.);
-+#7617=EDGE_LOOP('',(#7611,#7613,#7615,#7616));
-+#7618=FACE_OUTER_BOUND('',#7617,.F.);
-+#7619=ADVANCED_FACE('',(#7618),#7610,.F.);
-+#7620=CARTESIAN_POINT('',(0.E0,0.E0,9.5E0));
-+#7621=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7622=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622);
-+#7624=PLANE('',#7623);
-+#7625=ORIENTED_EDGE('',*,*,#7612,.F.);
-+#7626=ORIENTED_EDGE('',*,*,#7601,.F.);
-+#7628=ORIENTED_EDGE('',*,*,#7627,.F.);
-+#7630=ORIENTED_EDGE('',*,*,#7629,.F.);
-+#7632=ORIENTED_EDGE('',*,*,#7631,.F.);
-+#7634=ORIENTED_EDGE('',*,*,#7633,.F.);
-+#7636=ORIENTED_EDGE('',*,*,#7635,.F.);
-+#7638=ORIENTED_EDGE('',*,*,#7637,.F.);
-+#7640=ORIENTED_EDGE('',*,*,#7639,.F.);
-+#7642=ORIENTED_EDGE('',*,*,#7641,.F.);
-+#7644=ORIENTED_EDGE('',*,*,#7643,.F.);
-+#7646=ORIENTED_EDGE('',*,*,#7645,.F.);
-+#7647=EDGE_LOOP('',(#7625,#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7640,#7642,
-+#7644,#7646));
-+#7648=FACE_OUTER_BOUND('',#7647,.F.);
-+#7649=ADVANCED_FACE('',(#7648),#7624,.T.);
-+#7650=CARTESIAN_POINT('',(1.357969178416E0,7.E0,1.E1));
-+#7651=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7652=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7653=AXIS2_PLACEMENT_3D('',#7650,#7651,#7652);
-+#7654=PLANE('',#7653);
-+#7655=ORIENTED_EDGE('',*,*,#7599,.T.);
-+#7656=ORIENTED_EDGE('',*,*,#7307,.F.);
-+#7658=ORIENTED_EDGE('',*,*,#7657,.T.);
-+#7659=ORIENTED_EDGE('',*,*,#7627,.T.);
-+#7660=EDGE_LOOP('',(#7655,#7656,#7658,#7659));
-+#7661=FACE_OUTER_BOUND('',#7660,.F.);
-+#7662=ADVANCED_FACE('',(#7661),#7654,.F.);
-+#7663=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.006892397423E1));
-+#7664=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7665=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7666=AXIS2_PLACEMENT_3D('',#7663,#7664,#7665);
-+#7667=CYLINDRICAL_SURFACE('',#7666,3.5E-1);
-+#7668=ORIENTED_EDGE('',*,*,#7657,.F.);
-+#7669=ORIENTED_EDGE('',*,*,#7305,.T.);
-+#7671=ORIENTED_EDGE('',*,*,#7670,.T.);
-+#7672=ORIENTED_EDGE('',*,*,#7629,.T.);
-+#7673=EDGE_LOOP('',(#7668,#7669,#7671,#7672));
-+#7674=FACE_OUTER_BOUND('',#7673,.F.);
-+#7675=ADVANCED_FACE('',(#7674),#7667,.F.);
-+#7676=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,1.E1));
-+#7677=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#7678=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678);
-+#7680=PLANE('',#7679);
-+#7681=ORIENTED_EDGE('',*,*,#7670,.F.);
-+#7682=ORIENTED_EDGE('',*,*,#7303,.F.);
-+#7684=ORIENTED_EDGE('',*,*,#7683,.T.);
-+#7685=ORIENTED_EDGE('',*,*,#7631,.T.);
-+#7686=EDGE_LOOP('',(#7681,#7682,#7684,#7685));
-+#7687=FACE_OUTER_BOUND('',#7686,.F.);
-+#7688=ADVANCED_FACE('',(#7687),#7680,.F.);
-+#7689=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.006892397423E1));
-+#7690=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7691=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#7692=AXIS2_PLACEMENT_3D('',#7689,#7690,#7691);
-+#7693=CYLINDRICAL_SURFACE('',#7692,3.5E-1);
-+#7694=ORIENTED_EDGE('',*,*,#7683,.F.);
-+#7695=ORIENTED_EDGE('',*,*,#7301,.T.);
-+#7697=ORIENTED_EDGE('',*,*,#7696,.T.);
-+#7698=ORIENTED_EDGE('',*,*,#7633,.T.);
-+#7699=EDGE_LOOP('',(#7694,#7695,#7697,#7698));
-+#7700=FACE_OUTER_BOUND('',#7699,.F.);
-+#7701=ADVANCED_FACE('',(#7700),#7693,.F.);
-+#7702=CARTESIAN_POINT('',(4.5E0,9.5E0,1.E1));
-+#7703=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7704=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704);
-+#7706=PLANE('',#7705);
-+#7707=ORIENTED_EDGE('',*,*,#7696,.F.);
-+#7708=ORIENTED_EDGE('',*,*,#7299,.F.);
-+#7710=ORIENTED_EDGE('',*,*,#7709,.T.);
-+#7711=ORIENTED_EDGE('',*,*,#7635,.T.);
-+#7712=EDGE_LOOP('',(#7707,#7708,#7710,#7711));
-+#7713=FACE_OUTER_BOUND('',#7712,.F.);
-+#7714=ADVANCED_FACE('',(#7713),#7706,.F.);
-+#7715=CARTESIAN_POINT('',(4.15E0,9.15E0,1.006892397423E1));
-+#7716=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7717=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7718=AXIS2_PLACEMENT_3D('',#7715,#7716,#7717);
-+#7719=CYLINDRICAL_SURFACE('',#7718,3.5E-1);
-+#7720=ORIENTED_EDGE('',*,*,#7709,.F.);
-+#7721=ORIENTED_EDGE('',*,*,#7297,.T.);
-+#7723=ORIENTED_EDGE('',*,*,#7722,.T.);
-+#7724=ORIENTED_EDGE('',*,*,#7637,.T.);
-+#7725=EDGE_LOOP('',(#7720,#7721,#7723,#7724));
-+#7726=FACE_OUTER_BOUND('',#7725,.F.);
-+#7727=ADVANCED_FACE('',(#7726),#7719,.F.);
-+#7728=CARTESIAN_POINT('',(4.5E0,2.E0,1.E1));
-+#7729=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7730=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7731=AXIS2_PLACEMENT_3D('',#7728,#7729,#7730);
-+#7732=PLANE('',#7731);
-+#7734=ORIENTED_EDGE('',*,*,#7733,.T.);
-+#7735=ORIENTED_EDGE('',*,*,#7639,.T.);
-+#7736=ORIENTED_EDGE('',*,*,#7722,.F.);
-+#7737=ORIENTED_EDGE('',*,*,#7295,.F.);
-+#7738=EDGE_LOOP('',(#7734,#7735,#7736,#7737));
-+#7739=FACE_OUTER_BOUND('',#7738,.F.);
-+#7740=ADVANCED_FACE('',(#7739),#7732,.F.);
-+#7741=CARTESIAN_POINT('',(4.15E0,2.35E0,1.006892397423E1));
-+#7742=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7743=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7744=AXIS2_PLACEMENT_3D('',#7741,#7742,#7743);
-+#7745=CYLINDRICAL_SURFACE('',#7744,3.5E-1);
-+#7746=ORIENTED_EDGE('',*,*,#7733,.F.);
-+#7747=ORIENTED_EDGE('',*,*,#7293,.T.);
-+#7749=ORIENTED_EDGE('',*,*,#7748,.T.);
-+#7750=ORIENTED_EDGE('',*,*,#7641,.T.);
-+#7751=EDGE_LOOP('',(#7746,#7747,#7749,#7750));
-+#7752=FACE_OUTER_BOUND('',#7751,.F.);
-+#7753=ADVANCED_FACE('',(#7752),#7745,.F.);
-+#7754=CARTESIAN_POINT('',(2.5E0,2.E0,1.E1));
-+#7755=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7756=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7757=AXIS2_PLACEMENT_3D('',#7754,#7755,#7756);
-+#7758=PLANE('',#7757);
-+#7760=ORIENTED_EDGE('',*,*,#7759,.T.);
-+#7761=ORIENTED_EDGE('',*,*,#7643,.T.);
-+#7762=ORIENTED_EDGE('',*,*,#7748,.F.);
-+#7763=ORIENTED_EDGE('',*,*,#7291,.F.);
-+#7764=EDGE_LOOP('',(#7760,#7761,#7762,#7763));
-+#7765=FACE_OUTER_BOUND('',#7764,.F.);
-+#7766=ADVANCED_FACE('',(#7765),#7758,.F.);
-+#7767=CARTESIAN_POINT('',(2.85E0,2.35E0,1.006892397423E1));
-+#7768=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7769=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7770=AXIS2_PLACEMENT_3D('',#7767,#7768,#7769);
-+#7771=CYLINDRICAL_SURFACE('',#7770,3.5E-1);
-+#7772=ORIENTED_EDGE('',*,*,#7759,.F.);
-+#7773=ORIENTED_EDGE('',*,*,#7289,.T.);
-+#7774=ORIENTED_EDGE('',*,*,#7614,.T.);
-+#7775=ORIENTED_EDGE('',*,*,#7645,.T.);
-+#7776=EDGE_LOOP('',(#7772,#7773,#7774,#7775));
-+#7777=FACE_OUTER_BOUND('',#7776,.F.);
-+#7778=ADVANCED_FACE('',(#7777),#7771,.F.);
-+#7779=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#7780=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7781=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7782=AXIS2_PLACEMENT_3D('',#7779,#7780,#7781);
-+#7783=PLANE('',#7782);
-+#7784=ORIENTED_EDGE('',*,*,#7161,.F.);
-+#7785=ORIENTED_EDGE('',*,*,#6428,.T.);
-+#7786=ORIENTED_EDGE('',*,*,#6953,.T.);
-+#7787=ORIENTED_EDGE('',*,*,#5682,.F.);
-+#7788=EDGE_LOOP('',(#7784,#7785,#7786,#7787));
-+#7789=FACE_OUTER_BOUND('',#7788,.F.);
-+#7790=ADVANCED_FACE('',(#7789),#7783,.T.);
-+#7791=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#7792=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7793=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7794=AXIS2_PLACEMENT_3D('',#7791,#7792,#7793);
-+#7795=CYLINDRICAL_SURFACE('',#7794,9.5E-2);
-+#7796=ORIENTED_EDGE('',*,*,#7140,.F.);
-+#7798=ORIENTED_EDGE('',*,*,#7797,.T.);
-+#7800=ORIENTED_EDGE('',*,*,#7799,.T.);
-+#7802=ORIENTED_EDGE('',*,*,#7801,.F.);
-+#7803=EDGE_LOOP('',(#7796,#7798,#7800,#7802));
-+#7804=FACE_OUTER_BOUND('',#7803,.F.);
-+#7805=ADVANCED_FACE('',(#7804),#7795,.F.);
-+#7806=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#7807=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7808=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7809=AXIS2_PLACEMENT_3D('',#7806,#7807,#7808);
-+#7810=CYLINDRICAL_SURFACE('',#7809,9.5E-2);
-+#7811=ORIENTED_EDGE('',*,*,#7142,.F.);
-+#7812=ORIENTED_EDGE('',*,*,#7801,.T.);
-+#7814=ORIENTED_EDGE('',*,*,#7813,.T.);
-+#7815=ORIENTED_EDGE('',*,*,#7797,.F.);
-+#7816=EDGE_LOOP('',(#7811,#7812,#7814,#7815));
-+#7817=FACE_OUTER_BOUND('',#7816,.F.);
-+#7818=ADVANCED_FACE('',(#7817),#7810,.F.);
-+#7819=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
-+#7820=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7821=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7822=AXIS2_PLACEMENT_3D('',#7819,#7820,#7821);
-+#7823=PLANE('',#7822);
-+#7824=ORIENTED_EDGE('',*,*,#7799,.F.);
-+#7825=ORIENTED_EDGE('',*,*,#7813,.F.);
-+#7826=EDGE_LOOP('',(#7824,#7825));
-+#7827=FACE_OUTER_BOUND('',#7826,.F.);
-+#7828=ADVANCED_FACE('',(#7827),#7823,.T.);
-+#7829=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#7830=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7831=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7832=AXIS2_PLACEMENT_3D('',#7829,#7830,#7831);
-+#7833=CYLINDRICAL_SURFACE('',#7832,6.25E-2);
-+#7834=ORIENTED_EDGE('',*,*,#7146,.F.);
-+#7836=ORIENTED_EDGE('',*,*,#7835,.T.);
-+#7838=ORIENTED_EDGE('',*,*,#7837,.T.);
-+#7840=ORIENTED_EDGE('',*,*,#7839,.F.);
-+#7841=EDGE_LOOP('',(#7834,#7836,#7838,#7840));
-+#7842=FACE_OUTER_BOUND('',#7841,.F.);
-+#7843=ADVANCED_FACE('',(#7842),#7833,.F.);
-+#7844=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#7845=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7846=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7847=AXIS2_PLACEMENT_3D('',#7844,#7845,#7846);
-+#7848=CYLINDRICAL_SURFACE('',#7847,6.25E-2);
-+#7849=ORIENTED_EDGE('',*,*,#7148,.F.);
-+#7850=ORIENTED_EDGE('',*,*,#7839,.T.);
-+#7852=ORIENTED_EDGE('',*,*,#7851,.T.);
-+#7853=ORIENTED_EDGE('',*,*,#7835,.F.);
-+#7854=EDGE_LOOP('',(#7849,#7850,#7852,#7853));
-+#7855=FACE_OUTER_BOUND('',#7854,.F.);
-+#7856=ADVANCED_FACE('',(#7855),#7848,.F.);
-+#7857=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
-+#7858=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7859=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7860=AXIS2_PLACEMENT_3D('',#7857,#7858,#7859);
-+#7861=PLANE('',#7860);
-+#7862=ORIENTED_EDGE('',*,*,#7837,.F.);
-+#7863=ORIENTED_EDGE('',*,*,#7851,.F.);
-+#7864=EDGE_LOOP('',(#7862,#7863));
-+#7865=FACE_OUTER_BOUND('',#7864,.F.);
-+#7866=ADVANCED_FACE('',(#7865),#7861,.T.);
-+#7867=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
-+#7868=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7869=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7870=AXIS2_PLACEMENT_3D('',#7867,#7868,#7869);
-+#7871=CYLINDRICAL_SURFACE('',#7870,1.E-1);
-+#7872=ORIENTED_EDGE('',*,*,#6346,.F.);
-+#7874=ORIENTED_EDGE('',*,*,#7873,.F.);
-+#7876=ORIENTED_EDGE('',*,*,#7875,.T.);
-+#7878=ORIENTED_EDGE('',*,*,#7877,.T.);
-+#7879=EDGE_LOOP('',(#7872,#7874,#7876,#7878));
-+#7880=FACE_OUTER_BOUND('',#7879,.F.);
-+#7881=ADVANCED_FACE('',(#7880),#7871,.F.);
-+#7882=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
-+#7883=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7884=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7885=AXIS2_PLACEMENT_3D('',#7882,#7883,#7884);
-+#7886=CYLINDRICAL_SURFACE('',#7885,1.E-1);
-+#7887=ORIENTED_EDGE('',*,*,#6348,.F.);
-+#7888=ORIENTED_EDGE('',*,*,#7877,.F.);
-+#7890=ORIENTED_EDGE('',*,*,#7889,.F.);
-+#7891=ORIENTED_EDGE('',*,*,#7873,.T.);
-+#7892=EDGE_LOOP('',(#7887,#7888,#7890,#7891));
-+#7893=FACE_OUTER_BOUND('',#7892,.F.);
-+#7894=ADVANCED_FACE('',(#7893),#7886,.F.);
-+#7895=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
-+#7896=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7897=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7898=AXIS2_PLACEMENT_3D('',#7895,#7896,#7897);
-+#7899=CONICAL_SURFACE('',#7898,7.288815195685E-2,6.E1);
-+#7901=ORIENTED_EDGE('',*,*,#7900,.F.);
-+#7903=ORIENTED_EDGE('',*,*,#7902,.T.);
-+#7904=ORIENTED_EDGE('',*,*,#7889,.T.);
-+#7905=EDGE_LOOP('',(#7901,#7903,#7904));
-+#7906=FACE_OUTER_BOUND('',#7905,.F.);
-+#7907=ADVANCED_FACE('',(#7906),#7899,.F.);
-+#7908=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
-+#7909=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7910=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7911=AXIS2_PLACEMENT_3D('',#7908,#7909,#7910);
-+#7912=CONICAL_SURFACE('',#7911,7.288815195685E-2,6.E1);
-+#7913=ORIENTED_EDGE('',*,*,#7900,.T.);
-+#7914=ORIENTED_EDGE('',*,*,#7875,.F.);
-+#7915=ORIENTED_EDGE('',*,*,#7902,.F.);
-+#7916=EDGE_LOOP('',(#7913,#7914,#7915));
-+#7917=FACE_OUTER_BOUND('',#7916,.F.);
-+#7918=ADVANCED_FACE('',(#7917),#7912,.F.);
-+#7919=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
-+#7920=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7921=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7922=AXIS2_PLACEMENT_3D('',#7919,#7920,#7921);
-+#7923=CYLINDRICAL_SURFACE('',#7922,1.E-1);
-+#7924=ORIENTED_EDGE('',*,*,#6352,.F.);
-+#7926=ORIENTED_EDGE('',*,*,#7925,.F.);
-+#7928=ORIENTED_EDGE('',*,*,#7927,.T.);
-+#7930=ORIENTED_EDGE('',*,*,#7929,.T.);
-+#7931=EDGE_LOOP('',(#7924,#7926,#7928,#7930));
-+#7932=FACE_OUTER_BOUND('',#7931,.F.);
-+#7933=ADVANCED_FACE('',(#7932),#7923,.F.);
-+#7934=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
-+#7935=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7936=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7937=AXIS2_PLACEMENT_3D('',#7934,#7935,#7936);
-+#7938=CYLINDRICAL_SURFACE('',#7937,1.E-1);
-+#7939=ORIENTED_EDGE('',*,*,#6354,.F.);
-+#7940=ORIENTED_EDGE('',*,*,#7929,.F.);
-+#7942=ORIENTED_EDGE('',*,*,#7941,.F.);
-+#7943=ORIENTED_EDGE('',*,*,#7925,.T.);
-+#7944=EDGE_LOOP('',(#7939,#7940,#7942,#7943));
-+#7945=FACE_OUTER_BOUND('',#7944,.F.);
-+#7946=ADVANCED_FACE('',(#7945),#7938,.F.);
-+#7947=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
-+#7948=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7949=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7950=AXIS2_PLACEMENT_3D('',#7947,#7948,#7949);
-+#7951=CONICAL_SURFACE('',#7950,7.288815195685E-2,6.E1);
-+#7953=ORIENTED_EDGE('',*,*,#7952,.F.);
-+#7955=ORIENTED_EDGE('',*,*,#7954,.T.);
-+#7956=ORIENTED_EDGE('',*,*,#7941,.T.);
-+#7957=EDGE_LOOP('',(#7953,#7955,#7956));
-+#7958=FACE_OUTER_BOUND('',#7957,.F.);
-+#7959=ADVANCED_FACE('',(#7958),#7951,.F.);
-+#7960=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
-+#7961=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7962=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7963=AXIS2_PLACEMENT_3D('',#7960,#7961,#7962);
-+#7964=CONICAL_SURFACE('',#7963,7.288815195685E-2,6.E1);
-+#7965=ORIENTED_EDGE('',*,*,#7952,.T.);
-+#7966=ORIENTED_EDGE('',*,*,#7927,.F.);
-+#7967=ORIENTED_EDGE('',*,*,#7954,.F.);
-+#7968=EDGE_LOOP('',(#7965,#7966,#7967));
-+#7969=FACE_OUTER_BOUND('',#7968,.F.);
-+#7970=ADVANCED_FACE('',(#7969),#7964,.F.);
-+#7971=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#7972=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7973=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7974=AXIS2_PLACEMENT_3D('',#7971,#7972,#7973);
-+#7975=CYLINDRICAL_SURFACE('',#7974,2.575E-1);
-+#7976=ORIENTED_EDGE('',*,*,#6248,.T.);
-+#7978=ORIENTED_EDGE('',*,*,#7977,.T.);
-+#7980=ORIENTED_EDGE('',*,*,#7979,.F.);
-+#7982=ORIENTED_EDGE('',*,*,#7981,.F.);
-+#7983=EDGE_LOOP('',(#7976,#7978,#7980,#7982));
-+#7984=FACE_OUTER_BOUND('',#7983,.F.);
-+#7985=ADVANCED_FACE('',(#7984),#7975,.F.);
-+#7986=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#7987=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7988=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7989=AXIS2_PLACEMENT_3D('',#7986,#7987,#7988);
-+#7990=CYLINDRICAL_SURFACE('',#7989,2.575E-1);
-+#7991=ORIENTED_EDGE('',*,*,#6250,.T.);
-+#7992=ORIENTED_EDGE('',*,*,#7981,.T.);
-+#7994=ORIENTED_EDGE('',*,*,#7993,.F.);
-+#7995=ORIENTED_EDGE('',*,*,#7977,.F.);
-+#7996=EDGE_LOOP('',(#7991,#7992,#7994,#7995));
-+#7997=FACE_OUTER_BOUND('',#7996,.F.);
-+#7998=ADVANCED_FACE('',(#7997),#7990,.F.);
-+#7999=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#8000=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8001=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8002=AXIS2_PLACEMENT_3D('',#7999,#8000,#8001);
-+#8003=PLANE('',#8002);
-+#8004=ORIENTED_EDGE('',*,*,#7979,.T.);
-+#8005=ORIENTED_EDGE('',*,*,#7993,.T.);
-+#8006=EDGE_LOOP('',(#8004,#8005));
-+#8007=FACE_OUTER_BOUND('',#8006,.F.);
-+#8009=ORIENTED_EDGE('',*,*,#8008,.F.);
-+#8011=ORIENTED_EDGE('',*,*,#8010,.F.);
-+#8012=EDGE_LOOP('',(#8009,#8011));
-+#8013=FACE_BOUND('',#8012,.F.);
-+#8014=ADVANCED_FACE('',(#8007,#8013),#8003,.F.);
-+#8015=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#8016=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8017=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8018=AXIS2_PLACEMENT_3D('',#8015,#8016,#8017);
-+#8019=CYLINDRICAL_SURFACE('',#8018,1.925E-1);
-+#8020=ORIENTED_EDGE('',*,*,#8008,.T.);
-+#8022=ORIENTED_EDGE('',*,*,#8021,.T.);
-+#8023=ORIENTED_EDGE('',*,*,#5626,.F.);
-+#8025=ORIENTED_EDGE('',*,*,#8024,.F.);
-+#8026=EDGE_LOOP('',(#8020,#8022,#8023,#8025));
-+#8027=FACE_OUTER_BOUND('',#8026,.F.);
-+#8028=ADVANCED_FACE('',(#8027),#8019,.F.);
-+#8029=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#8030=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8031=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8032=AXIS2_PLACEMENT_3D('',#8029,#8030,#8031);
-+#8033=CYLINDRICAL_SURFACE('',#8032,1.925E-1);
-+#8034=ORIENTED_EDGE('',*,*,#8010,.T.);
-+#8035=ORIENTED_EDGE('',*,*,#8024,.T.);
-+#8036=ORIENTED_EDGE('',*,*,#5628,.F.);
-+#8037=ORIENTED_EDGE('',*,*,#8021,.F.);
-+#8038=EDGE_LOOP('',(#8034,#8035,#8036,#8037));
-+#8039=FACE_OUTER_BOUND('',#8038,.F.);
-+#8040=ADVANCED_FACE('',(#8039),#8033,.F.);
-+#8041=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8042=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8043=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8044=AXIS2_PLACEMENT_3D('',#8041,#8042,#8043);
-+#8045=CYLINDRICAL_SURFACE('',#8044,2.575E-1);
-+#8046=ORIENTED_EDGE('',*,*,#6358,.T.);
-+#8048=ORIENTED_EDGE('',*,*,#8047,.T.);
-+#8050=ORIENTED_EDGE('',*,*,#8049,.F.);
-+#8052=ORIENTED_EDGE('',*,*,#8051,.F.);
-+#8053=EDGE_LOOP('',(#8046,#8048,#8050,#8052));
-+#8054=FACE_OUTER_BOUND('',#8053,.F.);
-+#8055=ADVANCED_FACE('',(#8054),#8045,.F.);
-+#8056=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8057=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8058=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8059=AXIS2_PLACEMENT_3D('',#8056,#8057,#8058);
-+#8060=CYLINDRICAL_SURFACE('',#8059,2.575E-1);
-+#8061=ORIENTED_EDGE('',*,*,#6360,.T.);
-+#8062=ORIENTED_EDGE('',*,*,#8051,.T.);
-+#8064=ORIENTED_EDGE('',*,*,#8063,.F.);
-+#8065=ORIENTED_EDGE('',*,*,#8047,.F.);
-+#8066=EDGE_LOOP('',(#8061,#8062,#8064,#8065));
-+#8067=FACE_OUTER_BOUND('',#8066,.F.);
-+#8068=ADVANCED_FACE('',(#8067),#8060,.F.);
-+#8069=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#8070=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8071=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8072=AXIS2_PLACEMENT_3D('',#8069,#8070,#8071);
-+#8073=PLANE('',#8072);
-+#8074=ORIENTED_EDGE('',*,*,#8049,.T.);
-+#8075=ORIENTED_EDGE('',*,*,#8063,.T.);
-+#8076=EDGE_LOOP('',(#8074,#8075));
-+#8077=FACE_OUTER_BOUND('',#8076,.F.);
-+#8079=ORIENTED_EDGE('',*,*,#8078,.F.);
-+#8081=ORIENTED_EDGE('',*,*,#8080,.F.);
-+#8082=EDGE_LOOP('',(#8079,#8081));
-+#8083=FACE_BOUND('',#8082,.F.);
-+#8084=ADVANCED_FACE('',(#8077,#8083),#8073,.F.);
-+#8085=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8086=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8087=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8088=AXIS2_PLACEMENT_3D('',#8085,#8086,#8087);
-+#8089=CYLINDRICAL_SURFACE('',#8088,1.925E-1);
-+#8090=ORIENTED_EDGE('',*,*,#8078,.T.);
-+#8092=ORIENTED_EDGE('',*,*,#8091,.T.);
-+#8093=ORIENTED_EDGE('',*,*,#5614,.F.);
-+#8095=ORIENTED_EDGE('',*,*,#8094,.F.);
-+#8096=EDGE_LOOP('',(#8090,#8092,#8093,#8095));
-+#8097=FACE_OUTER_BOUND('',#8096,.F.);
-+#8098=ADVANCED_FACE('',(#8097),#8089,.F.);
-+#8099=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8100=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8101=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8102=AXIS2_PLACEMENT_3D('',#8099,#8100,#8101);
-+#8103=CYLINDRICAL_SURFACE('',#8102,1.925E-1);
-+#8104=ORIENTED_EDGE('',*,*,#8080,.T.);
-+#8105=ORIENTED_EDGE('',*,*,#8094,.T.);
-+#8106=ORIENTED_EDGE('',*,*,#5616,.F.);
-+#8107=ORIENTED_EDGE('',*,*,#8091,.F.);
-+#8108=EDGE_LOOP('',(#8104,#8105,#8106,#8107));
-+#8109=FACE_OUTER_BOUND('',#8108,.F.);
-+#8110=ADVANCED_FACE('',(#8109),#8103,.F.);
-+#8111=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8112=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8113=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8114=AXIS2_PLACEMENT_3D('',#8111,#8112,#8113);
-+#8115=CYLINDRICAL_SURFACE('',#8114,2.575E-1);
-+#8116=ORIENTED_EDGE('',*,*,#6364,.T.);
-+#8118=ORIENTED_EDGE('',*,*,#8117,.T.);
-+#8120=ORIENTED_EDGE('',*,*,#8119,.F.);
-+#8122=ORIENTED_EDGE('',*,*,#8121,.F.);
-+#8123=EDGE_LOOP('',(#8116,#8118,#8120,#8122));
-+#8124=FACE_OUTER_BOUND('',#8123,.F.);
-+#8125=ADVANCED_FACE('',(#8124),#8115,.F.);
-+#8126=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8127=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8128=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8129=AXIS2_PLACEMENT_3D('',#8126,#8127,#8128);
-+#8130=CYLINDRICAL_SURFACE('',#8129,2.575E-1);
-+#8131=ORIENTED_EDGE('',*,*,#6366,.T.);
-+#8132=ORIENTED_EDGE('',*,*,#8121,.T.);
-+#8134=ORIENTED_EDGE('',*,*,#8133,.F.);
-+#8135=ORIENTED_EDGE('',*,*,#8117,.F.);
-+#8136=EDGE_LOOP('',(#8131,#8132,#8134,#8135));
-+#8137=FACE_OUTER_BOUND('',#8136,.F.);
-+#8138=ADVANCED_FACE('',(#8137),#8130,.F.);
-+#8139=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#8140=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8141=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8142=AXIS2_PLACEMENT_3D('',#8139,#8140,#8141);
-+#8143=PLANE('',#8142);
-+#8144=ORIENTED_EDGE('',*,*,#8119,.T.);
-+#8145=ORIENTED_EDGE('',*,*,#8133,.T.);
-+#8146=EDGE_LOOP('',(#8144,#8145));
-+#8147=FACE_OUTER_BOUND('',#8146,.F.);
-+#8149=ORIENTED_EDGE('',*,*,#8148,.F.);
-+#8151=ORIENTED_EDGE('',*,*,#8150,.F.);
-+#8152=EDGE_LOOP('',(#8149,#8151));
-+#8153=FACE_BOUND('',#8152,.F.);
-+#8154=ADVANCED_FACE('',(#8147,#8153),#8143,.F.);
-+#8155=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8156=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8157=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8158=AXIS2_PLACEMENT_3D('',#8155,#8156,#8157);
-+#8159=CYLINDRICAL_SURFACE('',#8158,1.925E-1);
-+#8160=ORIENTED_EDGE('',*,*,#8148,.T.);
-+#8162=ORIENTED_EDGE('',*,*,#8161,.T.);
-+#8163=ORIENTED_EDGE('',*,*,#5608,.F.);
-+#8165=ORIENTED_EDGE('',*,*,#8164,.F.);
-+#8166=EDGE_LOOP('',(#8160,#8162,#8163,#8165));
-+#8167=FACE_OUTER_BOUND('',#8166,.F.);
-+#8168=ADVANCED_FACE('',(#8167),#8159,.F.);
-+#8169=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8170=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8171=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8172=AXIS2_PLACEMENT_3D('',#8169,#8170,#8171);
-+#8173=CYLINDRICAL_SURFACE('',#8172,1.925E-1);
-+#8174=ORIENTED_EDGE('',*,*,#8150,.T.);
-+#8175=ORIENTED_EDGE('',*,*,#8164,.T.);
-+#8176=ORIENTED_EDGE('',*,*,#5610,.F.);
-+#8177=ORIENTED_EDGE('',*,*,#8161,.F.);
-+#8178=EDGE_LOOP('',(#8174,#8175,#8176,#8177));
-+#8179=FACE_OUTER_BOUND('',#8178,.F.);
-+#8180=ADVANCED_FACE('',(#8179),#8173,.F.);
-+#8181=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8182=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8183=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8184=AXIS2_PLACEMENT_3D('',#8181,#8182,#8183);
-+#8185=CYLINDRICAL_SURFACE('',#8184,2.575E-1);
-+#8186=ORIENTED_EDGE('',*,*,#6254,.T.);
-+#8188=ORIENTED_EDGE('',*,*,#8187,.T.);
-+#8190=ORIENTED_EDGE('',*,*,#8189,.F.);
-+#8192=ORIENTED_EDGE('',*,*,#8191,.F.);
-+#8193=EDGE_LOOP('',(#8186,#8188,#8190,#8192));
-+#8194=FACE_OUTER_BOUND('',#8193,.F.);
-+#8195=ADVANCED_FACE('',(#8194),#8185,.F.);
-+#8196=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8197=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8198=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8199=AXIS2_PLACEMENT_3D('',#8196,#8197,#8198);
-+#8200=CYLINDRICAL_SURFACE('',#8199,2.575E-1);
-+#8201=ORIENTED_EDGE('',*,*,#6256,.T.);
-+#8202=ORIENTED_EDGE('',*,*,#8191,.T.);
-+#8204=ORIENTED_EDGE('',*,*,#8203,.F.);
-+#8205=ORIENTED_EDGE('',*,*,#8187,.F.);
-+#8206=EDGE_LOOP('',(#8201,#8202,#8204,#8205));
-+#8207=FACE_OUTER_BOUND('',#8206,.F.);
-+#8208=ADVANCED_FACE('',(#8207),#8200,.F.);
-+#8209=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#8210=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8211=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8212=AXIS2_PLACEMENT_3D('',#8209,#8210,#8211);
-+#8213=PLANE('',#8212);
-+#8214=ORIENTED_EDGE('',*,*,#8189,.T.);
-+#8215=ORIENTED_EDGE('',*,*,#8203,.T.);
-+#8216=EDGE_LOOP('',(#8214,#8215));
-+#8217=FACE_OUTER_BOUND('',#8216,.F.);
-+#8219=ORIENTED_EDGE('',*,*,#8218,.F.);
-+#8221=ORIENTED_EDGE('',*,*,#8220,.F.);
-+#8222=EDGE_LOOP('',(#8219,#8221));
-+#8223=FACE_BOUND('',#8222,.F.);
-+#8224=ADVANCED_FACE('',(#8217,#8223),#8213,.F.);
-+#8225=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8226=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8227=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8228=AXIS2_PLACEMENT_3D('',#8225,#8226,#8227);
-+#8229=CYLINDRICAL_SURFACE('',#8228,1.925E-1);
-+#8230=ORIENTED_EDGE('',*,*,#8218,.T.);
-+#8232=ORIENTED_EDGE('',*,*,#8231,.T.);
-+#8233=ORIENTED_EDGE('',*,*,#5602,.F.);
-+#8235=ORIENTED_EDGE('',*,*,#8234,.F.);
-+#8236=EDGE_LOOP('',(#8230,#8232,#8233,#8235));
-+#8237=FACE_OUTER_BOUND('',#8236,.F.);
-+#8238=ADVANCED_FACE('',(#8237),#8229,.F.);
-+#8239=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8240=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8241=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8242=AXIS2_PLACEMENT_3D('',#8239,#8240,#8241);
-+#8243=CYLINDRICAL_SURFACE('',#8242,1.925E-1);
-+#8244=ORIENTED_EDGE('',*,*,#8220,.T.);
-+#8245=ORIENTED_EDGE('',*,*,#8234,.T.);
-+#8246=ORIENTED_EDGE('',*,*,#5604,.F.);
-+#8247=ORIENTED_EDGE('',*,*,#8231,.F.);
-+#8248=EDGE_LOOP('',(#8244,#8245,#8246,#8247));
-+#8249=FACE_OUTER_BOUND('',#8248,.F.);
-+#8250=ADVANCED_FACE('',(#8249),#8243,.F.);
-+#8251=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8252=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8253=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8254=AXIS2_PLACEMENT_3D('',#8251,#8252,#8253);
-+#8255=CYLINDRICAL_SURFACE('',#8254,2.575E-1);
-+#8256=ORIENTED_EDGE('',*,*,#6370,.T.);
-+#8258=ORIENTED_EDGE('',*,*,#8257,.T.);
-+#8260=ORIENTED_EDGE('',*,*,#8259,.F.);
-+#8262=ORIENTED_EDGE('',*,*,#8261,.F.);
-+#8263=EDGE_LOOP('',(#8256,#8258,#8260,#8262));
-+#8264=FACE_OUTER_BOUND('',#8263,.F.);
-+#8265=ADVANCED_FACE('',(#8264),#8255,.F.);
-+#8266=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8267=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8268=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8269=AXIS2_PLACEMENT_3D('',#8266,#8267,#8268);
-+#8270=CYLINDRICAL_SURFACE('',#8269,2.575E-1);
-+#8271=ORIENTED_EDGE('',*,*,#6372,.T.);
-+#8272=ORIENTED_EDGE('',*,*,#8261,.T.);
-+#8274=ORIENTED_EDGE('',*,*,#8273,.F.);
-+#8275=ORIENTED_EDGE('',*,*,#8257,.F.);
-+#8276=EDGE_LOOP('',(#8271,#8272,#8274,#8275));
-+#8277=FACE_OUTER_BOUND('',#8276,.F.);
-+#8278=ADVANCED_FACE('',(#8277),#8270,.F.);
-+#8279=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#8280=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8281=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8282=AXIS2_PLACEMENT_3D('',#8279,#8280,#8281);
-+#8283=PLANE('',#8282);
-+#8284=ORIENTED_EDGE('',*,*,#8259,.T.);
-+#8285=ORIENTED_EDGE('',*,*,#8273,.T.);
-+#8286=EDGE_LOOP('',(#8284,#8285));
-+#8287=FACE_OUTER_BOUND('',#8286,.F.);
-+#8289=ORIENTED_EDGE('',*,*,#8288,.F.);
-+#8291=ORIENTED_EDGE('',*,*,#8290,.F.);
-+#8292=EDGE_LOOP('',(#8289,#8291));
-+#8293=FACE_BOUND('',#8292,.F.);
-+#8294=ADVANCED_FACE('',(#8287,#8293),#8283,.F.);
-+#8295=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8296=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8297=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8298=AXIS2_PLACEMENT_3D('',#8295,#8296,#8297);
-+#8299=CYLINDRICAL_SURFACE('',#8298,1.925E-1);
-+#8300=ORIENTED_EDGE('',*,*,#8288,.T.);
-+#8302=ORIENTED_EDGE('',*,*,#8301,.T.);
-+#8303=ORIENTED_EDGE('',*,*,#5590,.F.);
-+#8305=ORIENTED_EDGE('',*,*,#8304,.F.);
-+#8306=EDGE_LOOP('',(#8300,#8302,#8303,#8305));
-+#8307=FACE_OUTER_BOUND('',#8306,.F.);
-+#8308=ADVANCED_FACE('',(#8307),#8299,.F.);
-+#8309=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8310=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8311=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8312=AXIS2_PLACEMENT_3D('',#8309,#8310,#8311);
-+#8313=CYLINDRICAL_SURFACE('',#8312,1.925E-1);
-+#8314=ORIENTED_EDGE('',*,*,#8290,.T.);
-+#8315=ORIENTED_EDGE('',*,*,#8304,.T.);
-+#8316=ORIENTED_EDGE('',*,*,#5592,.F.);
-+#8317=ORIENTED_EDGE('',*,*,#8301,.F.);
-+#8318=EDGE_LOOP('',(#8314,#8315,#8316,#8317));
-+#8319=FACE_OUTER_BOUND('',#8318,.F.);
-+#8320=ADVANCED_FACE('',(#8319),#8313,.F.);
-+#8321=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8322=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8323=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8324=AXIS2_PLACEMENT_3D('',#8321,#8322,#8323);
-+#8325=CYLINDRICAL_SURFACE('',#8324,2.575E-1);
-+#8326=ORIENTED_EDGE('',*,*,#6376,.T.);
-+#8328=ORIENTED_EDGE('',*,*,#8327,.T.);
-+#8330=ORIENTED_EDGE('',*,*,#8329,.F.);
-+#8332=ORIENTED_EDGE('',*,*,#8331,.F.);
-+#8333=EDGE_LOOP('',(#8326,#8328,#8330,#8332));
-+#8334=FACE_OUTER_BOUND('',#8333,.F.);
-+#8335=ADVANCED_FACE('',(#8334),#8325,.F.);
-+#8336=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8337=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8338=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338);
-+#8340=CYLINDRICAL_SURFACE('',#8339,2.575E-1);
-+#8341=ORIENTED_EDGE('',*,*,#6378,.T.);
-+#8342=ORIENTED_EDGE('',*,*,#8331,.T.);
-+#8344=ORIENTED_EDGE('',*,*,#8343,.F.);
-+#8345=ORIENTED_EDGE('',*,*,#8327,.F.);
-+#8346=EDGE_LOOP('',(#8341,#8342,#8344,#8345));
-+#8347=FACE_OUTER_BOUND('',#8346,.F.);
-+#8348=ADVANCED_FACE('',(#8347),#8340,.F.);
-+#8349=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#8350=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8351=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8352=AXIS2_PLACEMENT_3D('',#8349,#8350,#8351);
-+#8353=PLANE('',#8352);
-+#8354=ORIENTED_EDGE('',*,*,#8329,.T.);
-+#8355=ORIENTED_EDGE('',*,*,#8343,.T.);
-+#8356=EDGE_LOOP('',(#8354,#8355));
-+#8357=FACE_OUTER_BOUND('',#8356,.F.);
-+#8359=ORIENTED_EDGE('',*,*,#8358,.F.);
-+#8361=ORIENTED_EDGE('',*,*,#8360,.F.);
-+#8362=EDGE_LOOP('',(#8359,#8361));
-+#8363=FACE_BOUND('',#8362,.F.);
-+#8364=ADVANCED_FACE('',(#8357,#8363),#8353,.F.);
-+#8365=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8366=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8367=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8368=AXIS2_PLACEMENT_3D('',#8365,#8366,#8367);
-+#8369=CYLINDRICAL_SURFACE('',#8368,1.925E-1);
-+#8370=ORIENTED_EDGE('',*,*,#8358,.T.);
-+#8372=ORIENTED_EDGE('',*,*,#8371,.T.);
-+#8373=ORIENTED_EDGE('',*,*,#5584,.F.);
-+#8375=ORIENTED_EDGE('',*,*,#8374,.F.);
-+#8376=EDGE_LOOP('',(#8370,#8372,#8373,#8375));
-+#8377=FACE_OUTER_BOUND('',#8376,.F.);
-+#8378=ADVANCED_FACE('',(#8377),#8369,.F.);
-+#8379=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8380=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8381=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8382=AXIS2_PLACEMENT_3D('',#8379,#8380,#8381);
-+#8383=CYLINDRICAL_SURFACE('',#8382,1.925E-1);
-+#8384=ORIENTED_EDGE('',*,*,#8360,.T.);
-+#8385=ORIENTED_EDGE('',*,*,#8374,.T.);
-+#8386=ORIENTED_EDGE('',*,*,#5586,.F.);
-+#8387=ORIENTED_EDGE('',*,*,#8371,.F.);
-+#8388=EDGE_LOOP('',(#8384,#8385,#8386,#8387));
-+#8389=FACE_OUTER_BOUND('',#8388,.F.);
-+#8390=ADVANCED_FACE('',(#8389),#8383,.F.);
-+#8391=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8392=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8393=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8394=AXIS2_PLACEMENT_3D('',#8391,#8392,#8393);
-+#8395=CYLINDRICAL_SURFACE('',#8394,2.56E-1);
-+#8396=ORIENTED_EDGE('',*,*,#6260,.T.);
-+#8398=ORIENTED_EDGE('',*,*,#8397,.T.);
-+#8400=ORIENTED_EDGE('',*,*,#8399,.F.);
-+#8402=ORIENTED_EDGE('',*,*,#8401,.F.);
-+#8403=EDGE_LOOP('',(#8396,#8398,#8400,#8402));
-+#8404=FACE_OUTER_BOUND('',#8403,.F.);
-+#8405=ADVANCED_FACE('',(#8404),#8395,.F.);
-+#8406=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8407=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8408=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8409=AXIS2_PLACEMENT_3D('',#8406,#8407,#8408);
-+#8410=CYLINDRICAL_SURFACE('',#8409,2.56E-1);
-+#8411=ORIENTED_EDGE('',*,*,#6262,.T.);
-+#8412=ORIENTED_EDGE('',*,*,#8401,.T.);
-+#8414=ORIENTED_EDGE('',*,*,#8413,.F.);
-+#8415=ORIENTED_EDGE('',*,*,#8397,.F.);
-+#8416=EDGE_LOOP('',(#8411,#8412,#8414,#8415));
-+#8417=FACE_OUTER_BOUND('',#8416,.F.);
-+#8418=ADVANCED_FACE('',(#8417),#8410,.F.);
-+#8419=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#8420=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8421=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8422=AXIS2_PLACEMENT_3D('',#8419,#8420,#8421);
-+#8423=PLANE('',#8422);
-+#8424=ORIENTED_EDGE('',*,*,#8399,.T.);
-+#8425=ORIENTED_EDGE('',*,*,#8413,.T.);
-+#8426=EDGE_LOOP('',(#8424,#8425));
-+#8427=FACE_OUTER_BOUND('',#8426,.F.);
-+#8429=ORIENTED_EDGE('',*,*,#8428,.F.);
-+#8431=ORIENTED_EDGE('',*,*,#8430,.F.);
-+#8432=EDGE_LOOP('',(#8429,#8431));
-+#8433=FACE_BOUND('',#8432,.F.);
-+#8434=ADVANCED_FACE('',(#8427,#8433),#8423,.F.);
-+#8435=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8436=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8437=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8438=AXIS2_PLACEMENT_3D('',#8435,#8436,#8437);
-+#8439=CYLINDRICAL_SURFACE('',#8438,1.925E-1);
-+#8440=ORIENTED_EDGE('',*,*,#8428,.T.);
-+#8442=ORIENTED_EDGE('',*,*,#8441,.T.);
-+#8443=ORIENTED_EDGE('',*,*,#5632,.F.);
-+#8445=ORIENTED_EDGE('',*,*,#8444,.F.);
-+#8446=EDGE_LOOP('',(#8440,#8442,#8443,#8445));
-+#8447=FACE_OUTER_BOUND('',#8446,.F.);
-+#8448=ADVANCED_FACE('',(#8447),#8439,.F.);
-+#8449=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8450=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8451=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8452=AXIS2_PLACEMENT_3D('',#8449,#8450,#8451);
-+#8453=CYLINDRICAL_SURFACE('',#8452,1.925E-1);
-+#8454=ORIENTED_EDGE('',*,*,#8430,.T.);
-+#8455=ORIENTED_EDGE('',*,*,#8444,.T.);
-+#8456=ORIENTED_EDGE('',*,*,#5634,.F.);
-+#8457=ORIENTED_EDGE('',*,*,#8441,.F.);
-+#8458=EDGE_LOOP('',(#8454,#8455,#8456,#8457));
-+#8459=FACE_OUTER_BOUND('',#8458,.F.);
-+#8460=ADVANCED_FACE('',(#8459),#8453,.F.);
-+#8461=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8462=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8463=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8464=AXIS2_PLACEMENT_3D('',#8461,#8462,#8463);
-+#8465=CYLINDRICAL_SURFACE('',#8464,2.56E-1);
-+#8466=ORIENTED_EDGE('',*,*,#6266,.T.);
-+#8468=ORIENTED_EDGE('',*,*,#8467,.T.);
-+#8470=ORIENTED_EDGE('',*,*,#8469,.F.);
-+#8472=ORIENTED_EDGE('',*,*,#8471,.F.);
-+#8473=EDGE_LOOP('',(#8466,#8468,#8470,#8472));
-+#8474=FACE_OUTER_BOUND('',#8473,.F.);
-+#8475=ADVANCED_FACE('',(#8474),#8465,.F.);
-+#8476=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8477=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8478=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8479=AXIS2_PLACEMENT_3D('',#8476,#8477,#8478);
-+#8480=CYLINDRICAL_SURFACE('',#8479,2.56E-1);
-+#8481=ORIENTED_EDGE('',*,*,#6268,.T.);
-+#8482=ORIENTED_EDGE('',*,*,#8471,.T.);
-+#8484=ORIENTED_EDGE('',*,*,#8483,.F.);
-+#8485=ORIENTED_EDGE('',*,*,#8467,.F.);
-+#8486=EDGE_LOOP('',(#8481,#8482,#8484,#8485));
-+#8487=FACE_OUTER_BOUND('',#8486,.F.);
-+#8488=ADVANCED_FACE('',(#8487),#8480,.F.);
-+#8489=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#8490=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8491=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8492=AXIS2_PLACEMENT_3D('',#8489,#8490,#8491);
-+#8493=PLANE('',#8492);
-+#8494=ORIENTED_EDGE('',*,*,#8469,.T.);
-+#8495=ORIENTED_EDGE('',*,*,#8483,.T.);
-+#8496=EDGE_LOOP('',(#8494,#8495));
-+#8497=FACE_OUTER_BOUND('',#8496,.F.);
-+#8499=ORIENTED_EDGE('',*,*,#8498,.F.);
-+#8501=ORIENTED_EDGE('',*,*,#8500,.F.);
-+#8502=EDGE_LOOP('',(#8499,#8501));
-+#8503=FACE_BOUND('',#8502,.F.);
-+#8504=ADVANCED_FACE('',(#8497,#8503),#8493,.F.);
-+#8505=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8506=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8507=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8508=AXIS2_PLACEMENT_3D('',#8505,#8506,#8507);
-+#8509=CYLINDRICAL_SURFACE('',#8508,1.925E-1);
-+#8510=ORIENTED_EDGE('',*,*,#8498,.T.);
-+#8512=ORIENTED_EDGE('',*,*,#8511,.T.);
-+#8513=ORIENTED_EDGE('',*,*,#5578,.F.);
-+#8515=ORIENTED_EDGE('',*,*,#8514,.F.);
-+#8516=EDGE_LOOP('',(#8510,#8512,#8513,#8515));
-+#8517=FACE_OUTER_BOUND('',#8516,.F.);
-+#8518=ADVANCED_FACE('',(#8517),#8509,.F.);
-+#8519=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8520=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8521=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8522=AXIS2_PLACEMENT_3D('',#8519,#8520,#8521);
-+#8523=CYLINDRICAL_SURFACE('',#8522,1.925E-1);
-+#8524=ORIENTED_EDGE('',*,*,#8500,.T.);
-+#8525=ORIENTED_EDGE('',*,*,#8514,.T.);
-+#8526=ORIENTED_EDGE('',*,*,#5580,.F.);
-+#8527=ORIENTED_EDGE('',*,*,#8511,.F.);
-+#8528=EDGE_LOOP('',(#8524,#8525,#8526,#8527));
-+#8529=FACE_OUTER_BOUND('',#8528,.F.);
-+#8530=ADVANCED_FACE('',(#8529),#8523,.F.);
-+#8531=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8532=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8533=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8534=AXIS2_PLACEMENT_3D('',#8531,#8532,#8533);
-+#8535=CYLINDRICAL_SURFACE('',#8534,2.56E-1);
-+#8536=ORIENTED_EDGE('',*,*,#6272,.T.);
-+#8538=ORIENTED_EDGE('',*,*,#8537,.T.);
-+#8540=ORIENTED_EDGE('',*,*,#8539,.F.);
-+#8542=ORIENTED_EDGE('',*,*,#8541,.F.);
-+#8543=EDGE_LOOP('',(#8536,#8538,#8540,#8542));
-+#8544=FACE_OUTER_BOUND('',#8543,.F.);
-+#8545=ADVANCED_FACE('',(#8544),#8535,.F.);
-+#8546=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8547=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8548=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8549=AXIS2_PLACEMENT_3D('',#8546,#8547,#8548);
-+#8550=CYLINDRICAL_SURFACE('',#8549,2.56E-1);
-+#8551=ORIENTED_EDGE('',*,*,#6274,.T.);
-+#8552=ORIENTED_EDGE('',*,*,#8541,.T.);
-+#8554=ORIENTED_EDGE('',*,*,#8553,.F.);
-+#8555=ORIENTED_EDGE('',*,*,#8537,.F.);
-+#8556=EDGE_LOOP('',(#8551,#8552,#8554,#8555));
-+#8557=FACE_OUTER_BOUND('',#8556,.F.);
-+#8558=ADVANCED_FACE('',(#8557),#8550,.F.);
-+#8559=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#8560=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8561=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561);
-+#8563=PLANE('',#8562);
-+#8564=ORIENTED_EDGE('',*,*,#8539,.T.);
-+#8565=ORIENTED_EDGE('',*,*,#8553,.T.);
-+#8566=EDGE_LOOP('',(#8564,#8565));
-+#8567=FACE_OUTER_BOUND('',#8566,.F.);
-+#8569=ORIENTED_EDGE('',*,*,#8568,.F.);
-+#8571=ORIENTED_EDGE('',*,*,#8570,.F.);
-+#8572=EDGE_LOOP('',(#8569,#8571));
-+#8573=FACE_BOUND('',#8572,.F.);
-+#8574=ADVANCED_FACE('',(#8567,#8573),#8563,.F.);
-+#8575=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8576=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8577=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8578=AXIS2_PLACEMENT_3D('',#8575,#8576,#8577);
-+#8579=CYLINDRICAL_SURFACE('',#8578,1.925E-1);
-+#8580=ORIENTED_EDGE('',*,*,#8568,.T.);
-+#8582=ORIENTED_EDGE('',*,*,#8581,.T.);
-+#8583=ORIENTED_EDGE('',*,*,#5560,.F.);
-+#8585=ORIENTED_EDGE('',*,*,#8584,.F.);
-+#8586=EDGE_LOOP('',(#8580,#8582,#8583,#8585));
-+#8587=FACE_OUTER_BOUND('',#8586,.F.);
-+#8588=ADVANCED_FACE('',(#8587),#8579,.F.);
-+#8589=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8590=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8591=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8592=AXIS2_PLACEMENT_3D('',#8589,#8590,#8591);
-+#8593=CYLINDRICAL_SURFACE('',#8592,1.925E-1);
-+#8594=ORIENTED_EDGE('',*,*,#8570,.T.);
-+#8595=ORIENTED_EDGE('',*,*,#8584,.T.);
-+#8596=ORIENTED_EDGE('',*,*,#5562,.F.);
-+#8597=ORIENTED_EDGE('',*,*,#8581,.F.);
-+#8598=EDGE_LOOP('',(#8594,#8595,#8596,#8597));
-+#8599=FACE_OUTER_BOUND('',#8598,.F.);
-+#8600=ADVANCED_FACE('',(#8599),#8593,.F.);
-+#8601=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8602=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8603=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8604=AXIS2_PLACEMENT_3D('',#8601,#8602,#8603);
-+#8605=CYLINDRICAL_SURFACE('',#8604,2.56E-1);
-+#8606=ORIENTED_EDGE('',*,*,#6382,.T.);
-+#8608=ORIENTED_EDGE('',*,*,#8607,.T.);
-+#8610=ORIENTED_EDGE('',*,*,#8609,.F.);
-+#8612=ORIENTED_EDGE('',*,*,#8611,.F.);
-+#8613=EDGE_LOOP('',(#8606,#8608,#8610,#8612));
-+#8614=FACE_OUTER_BOUND('',#8613,.F.);
-+#8615=ADVANCED_FACE('',(#8614),#8605,.F.);
-+#8616=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8617=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8618=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8619=AXIS2_PLACEMENT_3D('',#8616,#8617,#8618);
-+#8620=CYLINDRICAL_SURFACE('',#8619,2.56E-1);
-+#8621=ORIENTED_EDGE('',*,*,#6384,.T.);
-+#8622=ORIENTED_EDGE('',*,*,#8611,.T.);
-+#8624=ORIENTED_EDGE('',*,*,#8623,.F.);
-+#8625=ORIENTED_EDGE('',*,*,#8607,.F.);
-+#8626=EDGE_LOOP('',(#8621,#8622,#8624,#8625));
-+#8627=FACE_OUTER_BOUND('',#8626,.F.);
-+#8628=ADVANCED_FACE('',(#8627),#8620,.F.);
-+#8629=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#8630=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8631=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8632=AXIS2_PLACEMENT_3D('',#8629,#8630,#8631);
-+#8633=PLANE('',#8632);
-+#8634=ORIENTED_EDGE('',*,*,#8609,.T.);
-+#8635=ORIENTED_EDGE('',*,*,#8623,.T.);
-+#8636=EDGE_LOOP('',(#8634,#8635));
-+#8637=FACE_OUTER_BOUND('',#8636,.F.);
-+#8639=ORIENTED_EDGE('',*,*,#8638,.F.);
-+#8641=ORIENTED_EDGE('',*,*,#8640,.F.);
-+#8642=EDGE_LOOP('',(#8639,#8641));
-+#8643=FACE_BOUND('',#8642,.F.);
-+#8644=ADVANCED_FACE('',(#8637,#8643),#8633,.F.);
-+#8645=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8646=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8647=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8648=AXIS2_PLACEMENT_3D('',#8645,#8646,#8647);
-+#8649=CYLINDRICAL_SURFACE('',#8648,1.925E-1);
-+#8650=ORIENTED_EDGE('',*,*,#8638,.T.);
-+#8652=ORIENTED_EDGE('',*,*,#8651,.T.);
-+#8653=ORIENTED_EDGE('',*,*,#5572,.F.);
-+#8655=ORIENTED_EDGE('',*,*,#8654,.F.);
-+#8656=EDGE_LOOP('',(#8650,#8652,#8653,#8655));
-+#8657=FACE_OUTER_BOUND('',#8656,.F.);
-+#8658=ADVANCED_FACE('',(#8657),#8649,.F.);
-+#8659=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8660=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8661=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8662=AXIS2_PLACEMENT_3D('',#8659,#8660,#8661);
-+#8663=CYLINDRICAL_SURFACE('',#8662,1.925E-1);
-+#8664=ORIENTED_EDGE('',*,*,#8640,.T.);
-+#8665=ORIENTED_EDGE('',*,*,#8654,.T.);
-+#8666=ORIENTED_EDGE('',*,*,#5574,.F.);
-+#8667=ORIENTED_EDGE('',*,*,#8651,.F.);
-+#8668=EDGE_LOOP('',(#8664,#8665,#8666,#8667));
-+#8669=FACE_OUTER_BOUND('',#8668,.F.);
-+#8670=ADVANCED_FACE('',(#8669),#8663,.F.);
-+#8671=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8672=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8673=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8674=AXIS2_PLACEMENT_3D('',#8671,#8672,#8673);
-+#8675=CYLINDRICAL_SURFACE('',#8674,2.56E-1);
-+#8676=ORIENTED_EDGE('',*,*,#6388,.T.);
-+#8678=ORIENTED_EDGE('',*,*,#8677,.T.);
-+#8680=ORIENTED_EDGE('',*,*,#8679,.F.);
-+#8682=ORIENTED_EDGE('',*,*,#8681,.F.);
-+#8683=EDGE_LOOP('',(#8676,#8678,#8680,#8682));
-+#8684=FACE_OUTER_BOUND('',#8683,.F.);
-+#8685=ADVANCED_FACE('',(#8684),#8675,.F.);
-+#8686=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8687=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8688=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8689=AXIS2_PLACEMENT_3D('',#8686,#8687,#8688);
-+#8690=CYLINDRICAL_SURFACE('',#8689,2.56E-1);
-+#8691=ORIENTED_EDGE('',*,*,#6390,.T.);
-+#8692=ORIENTED_EDGE('',*,*,#8681,.T.);
-+#8694=ORIENTED_EDGE('',*,*,#8693,.F.);
-+#8695=ORIENTED_EDGE('',*,*,#8677,.F.);
-+#8696=EDGE_LOOP('',(#8691,#8692,#8694,#8695));
-+#8697=FACE_OUTER_BOUND('',#8696,.F.);
-+#8698=ADVANCED_FACE('',(#8697),#8690,.F.);
-+#8699=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#8700=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8701=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8702=AXIS2_PLACEMENT_3D('',#8699,#8700,#8701);
-+#8703=PLANE('',#8702);
-+#8704=ORIENTED_EDGE('',*,*,#8679,.T.);
-+#8705=ORIENTED_EDGE('',*,*,#8693,.T.);
-+#8706=EDGE_LOOP('',(#8704,#8705));
-+#8707=FACE_OUTER_BOUND('',#8706,.F.);
-+#8709=ORIENTED_EDGE('',*,*,#8708,.F.);
-+#8711=ORIENTED_EDGE('',*,*,#8710,.F.);
-+#8712=EDGE_LOOP('',(#8709,#8711));
-+#8713=FACE_BOUND('',#8712,.F.);
-+#8714=ADVANCED_FACE('',(#8707,#8713),#8703,.F.);
-+#8715=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8716=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8717=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8718=AXIS2_PLACEMENT_3D('',#8715,#8716,#8717);
-+#8719=CYLINDRICAL_SURFACE('',#8718,1.925E-1);
-+#8720=ORIENTED_EDGE('',*,*,#8708,.T.);
-+#8722=ORIENTED_EDGE('',*,*,#8721,.T.);
-+#8723=ORIENTED_EDGE('',*,*,#5566,.F.);
-+#8725=ORIENTED_EDGE('',*,*,#8724,.F.);
-+#8726=EDGE_LOOP('',(#8720,#8722,#8723,#8725));
-+#8727=FACE_OUTER_BOUND('',#8726,.F.);
-+#8728=ADVANCED_FACE('',(#8727),#8719,.F.);
-+#8729=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8730=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8731=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8732=AXIS2_PLACEMENT_3D('',#8729,#8730,#8731);
-+#8733=CYLINDRICAL_SURFACE('',#8732,1.925E-1);
-+#8734=ORIENTED_EDGE('',*,*,#8710,.T.);
-+#8735=ORIENTED_EDGE('',*,*,#8724,.T.);
-+#8736=ORIENTED_EDGE('',*,*,#5568,.F.);
-+#8737=ORIENTED_EDGE('',*,*,#8721,.F.);
-+#8738=EDGE_LOOP('',(#8734,#8735,#8736,#8737));
-+#8739=FACE_OUTER_BOUND('',#8738,.F.);
-+#8740=ADVANCED_FACE('',(#8739),#8733,.F.);
-+#8741=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8742=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8743=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8744=AXIS2_PLACEMENT_3D('',#8741,#8742,#8743);
-+#8745=CYLINDRICAL_SURFACE('',#8744,2.56E-1);
-+#8746=ORIENTED_EDGE('',*,*,#6394,.T.);
-+#8748=ORIENTED_EDGE('',*,*,#8747,.T.);
-+#8750=ORIENTED_EDGE('',*,*,#8749,.F.);
-+#8752=ORIENTED_EDGE('',*,*,#8751,.F.);
-+#8753=EDGE_LOOP('',(#8746,#8748,#8750,#8752));
-+#8754=FACE_OUTER_BOUND('',#8753,.F.);
-+#8755=ADVANCED_FACE('',(#8754),#8745,.F.);
-+#8756=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8757=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8758=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8759=AXIS2_PLACEMENT_3D('',#8756,#8757,#8758);
-+#8760=CYLINDRICAL_SURFACE('',#8759,2.56E-1);
-+#8761=ORIENTED_EDGE('',*,*,#6396,.T.);
-+#8762=ORIENTED_EDGE('',*,*,#8751,.T.);
-+#8764=ORIENTED_EDGE('',*,*,#8763,.F.);
-+#8765=ORIENTED_EDGE('',*,*,#8747,.F.);
-+#8766=EDGE_LOOP('',(#8761,#8762,#8764,#8765));
-+#8767=FACE_OUTER_BOUND('',#8766,.F.);
-+#8768=ADVANCED_FACE('',(#8767),#8760,.F.);
-+#8769=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#8770=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8771=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8772=AXIS2_PLACEMENT_3D('',#8769,#8770,#8771);
-+#8773=PLANE('',#8772);
-+#8774=ORIENTED_EDGE('',*,*,#8749,.T.);
-+#8775=ORIENTED_EDGE('',*,*,#8763,.T.);
-+#8776=EDGE_LOOP('',(#8774,#8775));
-+#8777=FACE_OUTER_BOUND('',#8776,.F.);
-+#8779=ORIENTED_EDGE('',*,*,#8778,.F.);
-+#8781=ORIENTED_EDGE('',*,*,#8780,.F.);
-+#8782=EDGE_LOOP('',(#8779,#8781));
-+#8783=FACE_BOUND('',#8782,.F.);
-+#8784=ADVANCED_FACE('',(#8777,#8783),#8773,.F.);
-+#8785=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8786=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8787=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8788=AXIS2_PLACEMENT_3D('',#8785,#8786,#8787);
-+#8789=CYLINDRICAL_SURFACE('',#8788,1.925E-1);
-+#8790=ORIENTED_EDGE('',*,*,#8778,.T.);
-+#8792=ORIENTED_EDGE('',*,*,#8791,.T.);
-+#8793=ORIENTED_EDGE('',*,*,#5554,.F.);
-+#8795=ORIENTED_EDGE('',*,*,#8794,.F.);
-+#8796=EDGE_LOOP('',(#8790,#8792,#8793,#8795));
-+#8797=FACE_OUTER_BOUND('',#8796,.F.);
-+#8798=ADVANCED_FACE('',(#8797),#8789,.F.);
-+#8799=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8800=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8801=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8802=AXIS2_PLACEMENT_3D('',#8799,#8800,#8801);
-+#8803=CYLINDRICAL_SURFACE('',#8802,1.925E-1);
-+#8804=ORIENTED_EDGE('',*,*,#8780,.T.);
-+#8805=ORIENTED_EDGE('',*,*,#8794,.T.);
-+#8806=ORIENTED_EDGE('',*,*,#5556,.F.);
-+#8807=ORIENTED_EDGE('',*,*,#8791,.F.);
-+#8808=EDGE_LOOP('',(#8804,#8805,#8806,#8807));
-+#8809=FACE_OUTER_BOUND('',#8808,.F.);
-+#8810=ADVANCED_FACE('',(#8809),#8803,.F.);
-+#8811=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8812=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8813=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8814=AXIS2_PLACEMENT_3D('',#8811,#8812,#8813);
-+#8815=CYLINDRICAL_SURFACE('',#8814,2.575E-1);
-+#8816=ORIENTED_EDGE('',*,*,#6452,.T.);
-+#8818=ORIENTED_EDGE('',*,*,#8817,.T.);
-+#8820=ORIENTED_EDGE('',*,*,#8819,.F.);
-+#8822=ORIENTED_EDGE('',*,*,#8821,.F.);
-+#8823=EDGE_LOOP('',(#8816,#8818,#8820,#8822));
-+#8824=FACE_OUTER_BOUND('',#8823,.F.);
-+#8825=ADVANCED_FACE('',(#8824),#8815,.F.);
-+#8826=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8827=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8828=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8829=AXIS2_PLACEMENT_3D('',#8826,#8827,#8828);
-+#8830=CYLINDRICAL_SURFACE('',#8829,2.575E-1);
-+#8831=ORIENTED_EDGE('',*,*,#6454,.T.);
-+#8832=ORIENTED_EDGE('',*,*,#8821,.T.);
-+#8834=ORIENTED_EDGE('',*,*,#8833,.F.);
-+#8835=ORIENTED_EDGE('',*,*,#8817,.F.);
-+#8836=EDGE_LOOP('',(#8831,#8832,#8834,#8835));
-+#8837=FACE_OUTER_BOUND('',#8836,.F.);
-+#8838=ADVANCED_FACE('',(#8837),#8830,.F.);
-+#8839=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#8840=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8841=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8842=AXIS2_PLACEMENT_3D('',#8839,#8840,#8841);
-+#8843=PLANE('',#8842);
-+#8844=ORIENTED_EDGE('',*,*,#8819,.T.);
-+#8845=ORIENTED_EDGE('',*,*,#8833,.T.);
-+#8846=EDGE_LOOP('',(#8844,#8845));
-+#8847=FACE_OUTER_BOUND('',#8846,.F.);
-+#8849=ORIENTED_EDGE('',*,*,#8848,.F.);
-+#8851=ORIENTED_EDGE('',*,*,#8850,.F.);
-+#8852=EDGE_LOOP('',(#8849,#8851));
-+#8853=FACE_BOUND('',#8852,.F.);
-+#8854=ADVANCED_FACE('',(#8847,#8853),#8843,.F.);
-+#8855=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8856=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8857=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857);
-+#8859=CYLINDRICAL_SURFACE('',#8858,1.925E-1);
-+#8860=ORIENTED_EDGE('',*,*,#8848,.T.);
-+#8862=ORIENTED_EDGE('',*,*,#8861,.T.);
-+#8863=ORIENTED_EDGE('',*,*,#5690,.F.);
-+#8865=ORIENTED_EDGE('',*,*,#8864,.F.);
-+#8866=EDGE_LOOP('',(#8860,#8862,#8863,#8865));
-+#8867=FACE_OUTER_BOUND('',#8866,.F.);
-+#8868=ADVANCED_FACE('',(#8867),#8859,.F.);
-+#8869=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8870=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8871=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8872=AXIS2_PLACEMENT_3D('',#8869,#8870,#8871);
-+#8873=CYLINDRICAL_SURFACE('',#8872,1.925E-1);
-+#8874=ORIENTED_EDGE('',*,*,#8850,.T.);
-+#8875=ORIENTED_EDGE('',*,*,#8864,.T.);
-+#8876=ORIENTED_EDGE('',*,*,#5692,.F.);
-+#8877=ORIENTED_EDGE('',*,*,#8861,.F.);
-+#8878=EDGE_LOOP('',(#8874,#8875,#8876,#8877));
-+#8879=FACE_OUTER_BOUND('',#8878,.F.);
-+#8880=ADVANCED_FACE('',(#8879),#8873,.F.);
-+#8881=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8882=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8883=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8884=AXIS2_PLACEMENT_3D('',#8881,#8882,#8883);
-+#8885=CYLINDRICAL_SURFACE('',#8884,2.575E-1);
-+#8886=ORIENTED_EDGE('',*,*,#6458,.T.);
-+#8888=ORIENTED_EDGE('',*,*,#8887,.T.);
-+#8890=ORIENTED_EDGE('',*,*,#8889,.F.);
-+#8892=ORIENTED_EDGE('',*,*,#8891,.F.);
-+#8893=EDGE_LOOP('',(#8886,#8888,#8890,#8892));
-+#8894=FACE_OUTER_BOUND('',#8893,.F.);
-+#8895=ADVANCED_FACE('',(#8894),#8885,.F.);
-+#8896=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8897=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8898=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8899=AXIS2_PLACEMENT_3D('',#8896,#8897,#8898);
-+#8900=CYLINDRICAL_SURFACE('',#8899,2.575E-1);
-+#8901=ORIENTED_EDGE('',*,*,#6460,.T.);
-+#8902=ORIENTED_EDGE('',*,*,#8891,.T.);
-+#8904=ORIENTED_EDGE('',*,*,#8903,.F.);
-+#8905=ORIENTED_EDGE('',*,*,#8887,.F.);
-+#8906=EDGE_LOOP('',(#8901,#8902,#8904,#8905));
-+#8907=FACE_OUTER_BOUND('',#8906,.F.);
-+#8908=ADVANCED_FACE('',(#8907),#8900,.F.);
-+#8909=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#8910=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8911=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8912=AXIS2_PLACEMENT_3D('',#8909,#8910,#8911);
-+#8913=PLANE('',#8912);
-+#8914=ORIENTED_EDGE('',*,*,#8889,.T.);
-+#8915=ORIENTED_EDGE('',*,*,#8903,.T.);
-+#8916=EDGE_LOOP('',(#8914,#8915));
-+#8917=FACE_OUTER_BOUND('',#8916,.F.);
-+#8919=ORIENTED_EDGE('',*,*,#8918,.F.);
-+#8921=ORIENTED_EDGE('',*,*,#8920,.F.);
-+#8922=EDGE_LOOP('',(#8919,#8921));
-+#8923=FACE_BOUND('',#8922,.F.);
-+#8924=ADVANCED_FACE('',(#8917,#8923),#8913,.F.);
-+#8925=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8926=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8927=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927);
-+#8929=CYLINDRICAL_SURFACE('',#8928,1.925E-1);
-+#8930=ORIENTED_EDGE('',*,*,#8918,.T.);
-+#8932=ORIENTED_EDGE('',*,*,#8931,.T.);
-+#8933=ORIENTED_EDGE('',*,*,#5696,.F.);
-+#8935=ORIENTED_EDGE('',*,*,#8934,.F.);
-+#8936=EDGE_LOOP('',(#8930,#8932,#8933,#8935));
-+#8937=FACE_OUTER_BOUND('',#8936,.F.);
-+#8938=ADVANCED_FACE('',(#8937),#8929,.F.);
-+#8939=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8940=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8941=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8942=AXIS2_PLACEMENT_3D('',#8939,#8940,#8941);
-+#8943=CYLINDRICAL_SURFACE('',#8942,1.925E-1);
-+#8944=ORIENTED_EDGE('',*,*,#8920,.T.);
-+#8945=ORIENTED_EDGE('',*,*,#8934,.T.);
-+#8946=ORIENTED_EDGE('',*,*,#5698,.F.);
-+#8947=ORIENTED_EDGE('',*,*,#8931,.F.);
-+#8948=EDGE_LOOP('',(#8944,#8945,#8946,#8947));
-+#8949=FACE_OUTER_BOUND('',#8948,.F.);
-+#8950=ADVANCED_FACE('',(#8949),#8943,.F.);
-+#8951=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#8952=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8953=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8954=AXIS2_PLACEMENT_3D('',#8951,#8952,#8953);
-+#8955=CYLINDRICAL_SURFACE('',#8954,2.575E-1);
-+#8956=ORIENTED_EDGE('',*,*,#6464,.T.);
-+#8958=ORIENTED_EDGE('',*,*,#8957,.T.);
-+#8960=ORIENTED_EDGE('',*,*,#8959,.F.);
-+#8962=ORIENTED_EDGE('',*,*,#8961,.F.);
-+#8963=EDGE_LOOP('',(#8956,#8958,#8960,#8962));
-+#8964=FACE_OUTER_BOUND('',#8963,.F.);
-+#8965=ADVANCED_FACE('',(#8964),#8955,.F.);
-+#8966=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#8967=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8968=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8969=AXIS2_PLACEMENT_3D('',#8966,#8967,#8968);
-+#8970=CYLINDRICAL_SURFACE('',#8969,2.575E-1);
-+#8971=ORIENTED_EDGE('',*,*,#6466,.T.);
-+#8972=ORIENTED_EDGE('',*,*,#8961,.T.);
-+#8974=ORIENTED_EDGE('',*,*,#8973,.F.);
-+#8975=ORIENTED_EDGE('',*,*,#8957,.F.);
-+#8976=EDGE_LOOP('',(#8971,#8972,#8974,#8975));
-+#8977=FACE_OUTER_BOUND('',#8976,.F.);
-+#8978=ADVANCED_FACE('',(#8977),#8970,.F.);
-+#8979=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#8980=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8981=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8982=AXIS2_PLACEMENT_3D('',#8979,#8980,#8981);
-+#8983=PLANE('',#8982);
-+#8984=ORIENTED_EDGE('',*,*,#8959,.T.);
-+#8985=ORIENTED_EDGE('',*,*,#8973,.T.);
-+#8986=EDGE_LOOP('',(#8984,#8985));
-+#8987=FACE_OUTER_BOUND('',#8986,.F.);
-+#8989=ORIENTED_EDGE('',*,*,#8988,.F.);
-+#8991=ORIENTED_EDGE('',*,*,#8990,.F.);
-+#8992=EDGE_LOOP('',(#8989,#8991));
-+#8993=FACE_BOUND('',#8992,.F.);
-+#8994=ADVANCED_FACE('',(#8987,#8993),#8983,.F.);
-+#8995=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#8996=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8997=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8998=AXIS2_PLACEMENT_3D('',#8995,#8996,#8997);
-+#8999=CYLINDRICAL_SURFACE('',#8998,1.925E-1);
-+#9000=ORIENTED_EDGE('',*,*,#8988,.T.);
-+#9002=ORIENTED_EDGE('',*,*,#9001,.T.);
-+#9003=ORIENTED_EDGE('',*,*,#5702,.F.);
-+#9005=ORIENTED_EDGE('',*,*,#9004,.F.);
-+#9006=EDGE_LOOP('',(#9000,#9002,#9003,#9005));
-+#9007=FACE_OUTER_BOUND('',#9006,.F.);
-+#9008=ADVANCED_FACE('',(#9007),#8999,.F.);
-+#9009=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#9010=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9011=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9012=AXIS2_PLACEMENT_3D('',#9009,#9010,#9011);
-+#9013=CYLINDRICAL_SURFACE('',#9012,1.925E-1);
-+#9014=ORIENTED_EDGE('',*,*,#8990,.T.);
-+#9015=ORIENTED_EDGE('',*,*,#9004,.T.);
-+#9016=ORIENTED_EDGE('',*,*,#5704,.F.);
-+#9017=ORIENTED_EDGE('',*,*,#9001,.F.);
-+#9018=EDGE_LOOP('',(#9014,#9015,#9016,#9017));
-+#9019=FACE_OUTER_BOUND('',#9018,.F.);
-+#9020=ADVANCED_FACE('',(#9019),#9013,.F.);
-+#9021=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9022=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9023=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9024=AXIS2_PLACEMENT_3D('',#9021,#9022,#9023);
-+#9025=CYLINDRICAL_SURFACE('',#9024,2.575E-1);
-+#9026=ORIENTED_EDGE('',*,*,#6470,.T.);
-+#9028=ORIENTED_EDGE('',*,*,#9027,.T.);
-+#9030=ORIENTED_EDGE('',*,*,#9029,.F.);
-+#9032=ORIENTED_EDGE('',*,*,#9031,.F.);
-+#9033=EDGE_LOOP('',(#9026,#9028,#9030,#9032));
-+#9034=FACE_OUTER_BOUND('',#9033,.F.);
-+#9035=ADVANCED_FACE('',(#9034),#9025,.F.);
-+#9036=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9037=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9038=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9039=AXIS2_PLACEMENT_3D('',#9036,#9037,#9038);
-+#9040=CYLINDRICAL_SURFACE('',#9039,2.575E-1);
-+#9041=ORIENTED_EDGE('',*,*,#6472,.T.);
-+#9042=ORIENTED_EDGE('',*,*,#9031,.T.);
-+#9044=ORIENTED_EDGE('',*,*,#9043,.F.);
-+#9045=ORIENTED_EDGE('',*,*,#9027,.F.);
-+#9046=EDGE_LOOP('',(#9041,#9042,#9044,#9045));
-+#9047=FACE_OUTER_BOUND('',#9046,.F.);
-+#9048=ADVANCED_FACE('',(#9047),#9040,.F.);
-+#9049=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#9050=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9051=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9052=AXIS2_PLACEMENT_3D('',#9049,#9050,#9051);
-+#9053=PLANE('',#9052);
-+#9054=ORIENTED_EDGE('',*,*,#9029,.T.);
-+#9055=ORIENTED_EDGE('',*,*,#9043,.T.);
-+#9056=EDGE_LOOP('',(#9054,#9055));
-+#9057=FACE_OUTER_BOUND('',#9056,.F.);
-+#9059=ORIENTED_EDGE('',*,*,#9058,.F.);
-+#9061=ORIENTED_EDGE('',*,*,#9060,.F.);
-+#9062=EDGE_LOOP('',(#9059,#9061));
-+#9063=FACE_BOUND('',#9062,.F.);
-+#9064=ADVANCED_FACE('',(#9057,#9063),#9053,.F.);
-+#9065=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9066=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9067=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9068=AXIS2_PLACEMENT_3D('',#9065,#9066,#9067);
-+#9069=CYLINDRICAL_SURFACE('',#9068,1.925E-1);
-+#9070=ORIENTED_EDGE('',*,*,#9058,.T.);
-+#9072=ORIENTED_EDGE('',*,*,#9071,.T.);
-+#9073=ORIENTED_EDGE('',*,*,#5708,.F.);
-+#9075=ORIENTED_EDGE('',*,*,#9074,.F.);
-+#9076=EDGE_LOOP('',(#9070,#9072,#9073,#9075));
-+#9077=FACE_OUTER_BOUND('',#9076,.F.);
-+#9078=ADVANCED_FACE('',(#9077),#9069,.F.);
-+#9079=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9080=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9081=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9082=AXIS2_PLACEMENT_3D('',#9079,#9080,#9081);
-+#9083=CYLINDRICAL_SURFACE('',#9082,1.925E-1);
-+#9084=ORIENTED_EDGE('',*,*,#9060,.T.);
-+#9085=ORIENTED_EDGE('',*,*,#9074,.T.);
-+#9086=ORIENTED_EDGE('',*,*,#5710,.F.);
-+#9087=ORIENTED_EDGE('',*,*,#9071,.F.);
-+#9088=EDGE_LOOP('',(#9084,#9085,#9086,#9087));
-+#9089=FACE_OUTER_BOUND('',#9088,.F.);
-+#9090=ADVANCED_FACE('',(#9089),#9083,.F.);
-+#9091=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9092=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9093=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9094=AXIS2_PLACEMENT_3D('',#9091,#9092,#9093);
-+#9095=CYLINDRICAL_SURFACE('',#9094,2.575E-1);
-+#9096=ORIENTED_EDGE('',*,*,#6476,.T.);
-+#9098=ORIENTED_EDGE('',*,*,#9097,.T.);
-+#9100=ORIENTED_EDGE('',*,*,#9099,.F.);
-+#9102=ORIENTED_EDGE('',*,*,#9101,.F.);
-+#9103=EDGE_LOOP('',(#9096,#9098,#9100,#9102));
-+#9104=FACE_OUTER_BOUND('',#9103,.F.);
-+#9105=ADVANCED_FACE('',(#9104),#9095,.F.);
-+#9106=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9107=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9108=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9109=AXIS2_PLACEMENT_3D('',#9106,#9107,#9108);
-+#9110=CYLINDRICAL_SURFACE('',#9109,2.575E-1);
-+#9111=ORIENTED_EDGE('',*,*,#6478,.T.);
-+#9112=ORIENTED_EDGE('',*,*,#9101,.T.);
-+#9114=ORIENTED_EDGE('',*,*,#9113,.F.);
-+#9115=ORIENTED_EDGE('',*,*,#9097,.F.);
-+#9116=EDGE_LOOP('',(#9111,#9112,#9114,#9115));
-+#9117=FACE_OUTER_BOUND('',#9116,.F.);
-+#9118=ADVANCED_FACE('',(#9117),#9110,.F.);
-+#9119=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#9120=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9121=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9122=AXIS2_PLACEMENT_3D('',#9119,#9120,#9121);
-+#9123=PLANE('',#9122);
-+#9124=ORIENTED_EDGE('',*,*,#9099,.T.);
-+#9125=ORIENTED_EDGE('',*,*,#9113,.T.);
-+#9126=EDGE_LOOP('',(#9124,#9125));
-+#9127=FACE_OUTER_BOUND('',#9126,.F.);
-+#9129=ORIENTED_EDGE('',*,*,#9128,.F.);
-+#9131=ORIENTED_EDGE('',*,*,#9130,.F.);
-+#9132=EDGE_LOOP('',(#9129,#9131));
-+#9133=FACE_BOUND('',#9132,.F.);
-+#9134=ADVANCED_FACE('',(#9127,#9133),#9123,.F.);
-+#9135=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9136=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9137=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9138=AXIS2_PLACEMENT_3D('',#9135,#9136,#9137);
-+#9139=CYLINDRICAL_SURFACE('',#9138,1.925E-1);
-+#9140=ORIENTED_EDGE('',*,*,#9128,.T.);
-+#9142=ORIENTED_EDGE('',*,*,#9141,.T.);
-+#9143=ORIENTED_EDGE('',*,*,#5714,.F.);
-+#9145=ORIENTED_EDGE('',*,*,#9144,.F.);
-+#9146=EDGE_LOOP('',(#9140,#9142,#9143,#9145));
-+#9147=FACE_OUTER_BOUND('',#9146,.F.);
-+#9148=ADVANCED_FACE('',(#9147),#9139,.F.);
-+#9149=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9150=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9151=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9152=AXIS2_PLACEMENT_3D('',#9149,#9150,#9151);
-+#9153=CYLINDRICAL_SURFACE('',#9152,1.925E-1);
-+#9154=ORIENTED_EDGE('',*,*,#9130,.T.);
-+#9155=ORIENTED_EDGE('',*,*,#9144,.T.);
-+#9156=ORIENTED_EDGE('',*,*,#5716,.F.);
-+#9157=ORIENTED_EDGE('',*,*,#9141,.F.);
-+#9158=EDGE_LOOP('',(#9154,#9155,#9156,#9157));
-+#9159=FACE_OUTER_BOUND('',#9158,.F.);
-+#9160=ADVANCED_FACE('',(#9159),#9153,.F.);
-+#9161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9162=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9163=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9164=AXIS2_PLACEMENT_3D('',#9161,#9162,#9163);
-+#9165=CYLINDRICAL_SURFACE('',#9164,2.575E-1);
-+#9166=ORIENTED_EDGE('',*,*,#6482,.T.);
-+#9168=ORIENTED_EDGE('',*,*,#9167,.T.);
-+#9170=ORIENTED_EDGE('',*,*,#9169,.F.);
-+#9172=ORIENTED_EDGE('',*,*,#9171,.F.);
-+#9173=EDGE_LOOP('',(#9166,#9168,#9170,#9172));
-+#9174=FACE_OUTER_BOUND('',#9173,.F.);
-+#9175=ADVANCED_FACE('',(#9174),#9165,.F.);
-+#9176=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9177=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9178=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9179=AXIS2_PLACEMENT_3D('',#9176,#9177,#9178);
-+#9180=CYLINDRICAL_SURFACE('',#9179,2.575E-1);
-+#9181=ORIENTED_EDGE('',*,*,#6484,.T.);
-+#9182=ORIENTED_EDGE('',*,*,#9171,.T.);
-+#9184=ORIENTED_EDGE('',*,*,#9183,.F.);
-+#9185=ORIENTED_EDGE('',*,*,#9167,.F.);
-+#9186=EDGE_LOOP('',(#9181,#9182,#9184,#9185));
-+#9187=FACE_OUTER_BOUND('',#9186,.F.);
-+#9188=ADVANCED_FACE('',(#9187),#9180,.F.);
-+#9189=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#9190=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9191=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9192=AXIS2_PLACEMENT_3D('',#9189,#9190,#9191);
-+#9193=PLANE('',#9192);
-+#9194=ORIENTED_EDGE('',*,*,#9169,.T.);
-+#9195=ORIENTED_EDGE('',*,*,#9183,.T.);
-+#9196=EDGE_LOOP('',(#9194,#9195));
-+#9197=FACE_OUTER_BOUND('',#9196,.F.);
-+#9199=ORIENTED_EDGE('',*,*,#9198,.F.);
-+#9201=ORIENTED_EDGE('',*,*,#9200,.F.);
-+#9202=EDGE_LOOP('',(#9199,#9201));
-+#9203=FACE_BOUND('',#9202,.F.);
-+#9204=ADVANCED_FACE('',(#9197,#9203),#9193,.F.);
-+#9205=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9206=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9207=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9208=AXIS2_PLACEMENT_3D('',#9205,#9206,#9207);
-+#9209=CYLINDRICAL_SURFACE('',#9208,1.925E-1);
-+#9210=ORIENTED_EDGE('',*,*,#9198,.T.);
-+#9212=ORIENTED_EDGE('',*,*,#9211,.T.);
-+#9213=ORIENTED_EDGE('',*,*,#5720,.F.);
-+#9215=ORIENTED_EDGE('',*,*,#9214,.F.);
-+#9216=EDGE_LOOP('',(#9210,#9212,#9213,#9215));
-+#9217=FACE_OUTER_BOUND('',#9216,.F.);
-+#9218=ADVANCED_FACE('',(#9217),#9209,.F.);
-+#9219=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9220=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9221=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9222=AXIS2_PLACEMENT_3D('',#9219,#9220,#9221);
-+#9223=CYLINDRICAL_SURFACE('',#9222,1.925E-1);
-+#9224=ORIENTED_EDGE('',*,*,#9200,.T.);
-+#9225=ORIENTED_EDGE('',*,*,#9214,.T.);
-+#9226=ORIENTED_EDGE('',*,*,#5722,.F.);
-+#9227=ORIENTED_EDGE('',*,*,#9211,.F.);
-+#9228=EDGE_LOOP('',(#9224,#9225,#9226,#9227));
-+#9229=FACE_OUTER_BOUND('',#9228,.F.);
-+#9230=ADVANCED_FACE('',(#9229),#9223,.F.);
-+#9231=CARTESIAN_POINT('',(2.2E1,1.5E0,1.2E1));
-+#9232=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9233=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9234=AXIS2_PLACEMENT_3D('',#9231,#9232,#9233);
-+#9235=PLANE('',#9234);
-+#9236=ORIENTED_EDGE('',*,*,#6328,.T.);
-+#9237=ORIENTED_EDGE('',*,*,#6155,.T.);
-+#9239=ORIENTED_EDGE('',*,*,#9238,.T.);
-+#9240=EDGE_LOOP('',(#9236,#9237,#9239));
-+#9241=FACE_OUTER_BOUND('',#9240,.F.);
-+#9242=ADVANCED_FACE('',(#9241),#9235,.F.);
-+#9243=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#9244=DIRECTION('',(0.E0,-5.E-1,-8.660254037844E-1));
-+#9245=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#9246=AXIS2_PLACEMENT_3D('',#9243,#9244,#9245);
-+#9247=PLANE('',#9246);
-+#9248=ORIENTED_EDGE('',*,*,#6330,.T.);
-+#9249=ORIENTED_EDGE('',*,*,#9238,.F.);
-+#9250=ORIENTED_EDGE('',*,*,#6153,.F.);
-+#9251=ORIENTED_EDGE('',*,*,#6209,.T.);
-+#9252=EDGE_LOOP('',(#9248,#9249,#9250,#9251));
-+#9253=FACE_OUTER_BOUND('',#9252,.F.);
-+#9255=ORIENTED_EDGE('',*,*,#9254,.F.);
-+#9257=ORIENTED_EDGE('',*,*,#9256,.F.);
-+#9258=EDGE_LOOP('',(#9255,#9257));
-+#9259=FACE_BOUND('',#9258,.F.);
-+#9260=ADVANCED_FACE('',(#9253,#9259),#9247,.F.);
-+#9261=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9262=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9263=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9264=AXIS2_PLACEMENT_3D('',#9261,#9262,#9263);
-+#9265=CYLINDRICAL_SURFACE('',#9264,2.575E-1);
-+#9267=ORIENTED_EDGE('',*,*,#9266,.F.);
-+#9268=ORIENTED_EDGE('',*,*,#9254,.T.);
-+#9270=ORIENTED_EDGE('',*,*,#9269,.F.);
-+#9272=ORIENTED_EDGE('',*,*,#9271,.F.);
-+#9273=EDGE_LOOP('',(#9267,#9268,#9270,#9272));
-+#9274=FACE_OUTER_BOUND('',#9273,.F.);
-+#9275=ADVANCED_FACE('',(#9274),#9265,.F.);
-+#9276=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9277=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9278=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9279=AXIS2_PLACEMENT_3D('',#9276,#9277,#9278);
-+#9280=CYLINDRICAL_SURFACE('',#9279,2.575E-1);
-+#9281=ORIENTED_EDGE('',*,*,#9269,.T.);
-+#9282=ORIENTED_EDGE('',*,*,#9256,.T.);
-+#9283=ORIENTED_EDGE('',*,*,#9266,.T.);
-+#9285=ORIENTED_EDGE('',*,*,#9284,.F.);
-+#9286=EDGE_LOOP('',(#9281,#9282,#9283,#9285));
-+#9287=FACE_OUTER_BOUND('',#9286,.F.);
-+#9288=ADVANCED_FACE('',(#9287),#9280,.F.);
-+#9289=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#9290=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9291=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9292=AXIS2_PLACEMENT_3D('',#9289,#9290,#9291);
-+#9293=PLANE('',#9292);
-+#9294=ORIENTED_EDGE('',*,*,#9271,.T.);
-+#9295=ORIENTED_EDGE('',*,*,#9284,.T.);
-+#9296=EDGE_LOOP('',(#9294,#9295));
-+#9297=FACE_OUTER_BOUND('',#9296,.F.);
-+#9299=ORIENTED_EDGE('',*,*,#9298,.F.);
-+#9301=ORIENTED_EDGE('',*,*,#9300,.F.);
-+#9302=EDGE_LOOP('',(#9299,#9301));
-+#9303=FACE_BOUND('',#9302,.F.);
-+#9304=ADVANCED_FACE('',(#9297,#9303),#9293,.F.);
-+#9305=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9306=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9307=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9308=AXIS2_PLACEMENT_3D('',#9305,#9306,#9307);
-+#9309=CYLINDRICAL_SURFACE('',#9308,1.925E-1);
-+#9310=ORIENTED_EDGE('',*,*,#9298,.T.);
-+#9312=ORIENTED_EDGE('',*,*,#9311,.T.);
-+#9313=ORIENTED_EDGE('',*,*,#5596,.F.);
-+#9315=ORIENTED_EDGE('',*,*,#9314,.F.);
-+#9316=EDGE_LOOP('',(#9310,#9312,#9313,#9315));
-+#9317=FACE_OUTER_BOUND('',#9316,.F.);
-+#9318=ADVANCED_FACE('',(#9317),#9309,.F.);
-+#9319=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9320=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9321=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9322=AXIS2_PLACEMENT_3D('',#9319,#9320,#9321);
-+#9323=CYLINDRICAL_SURFACE('',#9322,1.925E-1);
-+#9324=ORIENTED_EDGE('',*,*,#9300,.T.);
-+#9325=ORIENTED_EDGE('',*,*,#9314,.T.);
-+#9326=ORIENTED_EDGE('',*,*,#5598,.F.);
-+#9327=ORIENTED_EDGE('',*,*,#9311,.F.);
-+#9328=EDGE_LOOP('',(#9324,#9325,#9326,#9327));
-+#9329=FACE_OUTER_BOUND('',#9328,.F.);
-+#9330=ADVANCED_FACE('',(#9329),#9323,.F.);
-+#9331=CARTESIAN_POINT('',(2.185E1,6.65E0,1.006892397423E1));
-+#9332=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9333=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9334=AXIS2_PLACEMENT_3D('',#9331,#9332,#9333);
-+#9335=CYLINDRICAL_SURFACE('',#9334,3.5E-1);
-+#9337=ORIENTED_EDGE('',*,*,#9336,.T.);
-+#9339=ORIENTED_EDGE('',*,*,#9338,.T.);
-+#9341=ORIENTED_EDGE('',*,*,#9340,.F.);
-+#9342=ORIENTED_EDGE('',*,*,#6175,.T.);
-+#9343=EDGE_LOOP('',(#9337,#9339,#9341,#9342));
-+#9344=FACE_OUTER_BOUND('',#9343,.F.);
-+#9345=ADVANCED_FACE('',(#9344),#9335,.T.);
-+#9346=CARTESIAN_POINT('',(2.15E1,7.E0,1.E1));
-+#9347=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9348=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9349=AXIS2_PLACEMENT_3D('',#9346,#9347,#9348);
-+#9350=PLANE('',#9349);
-+#9351=ORIENTED_EDGE('',*,*,#9336,.F.);
-+#9352=ORIENTED_EDGE('',*,*,#6197,.T.);
-+#9354=ORIENTED_EDGE('',*,*,#9353,.F.);
-+#9356=ORIENTED_EDGE('',*,*,#9355,.F.);
-+#9357=EDGE_LOOP('',(#9351,#9352,#9354,#9356));
-+#9358=FACE_OUTER_BOUND('',#9357,.F.);
-+#9359=ADVANCED_FACE('',(#9358),#9350,.T.);
-+#9360=CARTESIAN_POINT('',(2.115E1,2.35E0,9.441108058217E0));
-+#9361=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9362=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
-+#9363=AXIS2_PLACEMENT_3D('',#9360,#9361,#9362);
-+#9364=CYLINDRICAL_SURFACE('',#9363,3.5E-1);
-+#9366=ORIENTED_EDGE('',*,*,#9365,.F.);
-+#9368=ORIENTED_EDGE('',*,*,#9367,.T.);
-+#9369=ORIENTED_EDGE('',*,*,#9353,.T.);
-+#9370=ORIENTED_EDGE('',*,*,#6195,.T.);
-+#9371=EDGE_LOOP('',(#9366,#9368,#9369,#9370));
-+#9372=FACE_OUTER_BOUND('',#9371,.F.);
-+#9373=ADVANCED_FACE('',(#9372),#9364,.F.);
-+#9374=CARTESIAN_POINT('',(2.15E1,2.E0,1.E1));
-+#9375=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9376=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9377=AXIS2_PLACEMENT_3D('',#9374,#9375,#9376);
-+#9378=PLANE('',#9377);
-+#9379=ORIENTED_EDGE('',*,*,#9365,.T.);
-+#9380=ORIENTED_EDGE('',*,*,#6193,.T.);
-+#9382=ORIENTED_EDGE('',*,*,#9381,.F.);
-+#9384=ORIENTED_EDGE('',*,*,#9383,.F.);
-+#9385=EDGE_LOOP('',(#9379,#9380,#9382,#9384));
-+#9386=FACE_OUTER_BOUND('',#9385,.F.);
-+#9387=ADVANCED_FACE('',(#9386),#9378,.T.);
-+#9388=CARTESIAN_POINT('',(1.985E1,2.35E0,9.441108058217E0));
-+#9389=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9390=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9391=AXIS2_PLACEMENT_3D('',#9388,#9389,#9390);
-+#9392=CYLINDRICAL_SURFACE('',#9391,3.5E-1);
-+#9394=ORIENTED_EDGE('',*,*,#9393,.F.);
-+#9396=ORIENTED_EDGE('',*,*,#9395,.T.);
-+#9397=ORIENTED_EDGE('',*,*,#9381,.T.);
-+#9398=ORIENTED_EDGE('',*,*,#6191,.T.);
-+#9399=EDGE_LOOP('',(#9394,#9396,#9397,#9398));
-+#9400=FACE_OUTER_BOUND('',#9399,.F.);
-+#9401=ADVANCED_FACE('',(#9400),#9392,.F.);
-+#9402=CARTESIAN_POINT('',(1.95E1,2.E0,1.E1));
-+#9403=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9404=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9405=AXIS2_PLACEMENT_3D('',#9402,#9403,#9404);
-+#9406=PLANE('',#9405);
-+#9407=ORIENTED_EDGE('',*,*,#9393,.T.);
-+#9408=ORIENTED_EDGE('',*,*,#6189,.T.);
-+#9410=ORIENTED_EDGE('',*,*,#9409,.F.);
-+#9412=ORIENTED_EDGE('',*,*,#9411,.F.);
-+#9413=EDGE_LOOP('',(#9407,#9408,#9410,#9412));
-+#9414=FACE_OUTER_BOUND('',#9413,.F.);
-+#9415=ADVANCED_FACE('',(#9414),#9406,.T.);
-+#9416=CARTESIAN_POINT('',(1.985E1,9.15E0,9.441108058217E0));
-+#9417=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9418=DIRECTION('',(-1.015061051086E-14,1.E0,0.E0));
-+#9419=AXIS2_PLACEMENT_3D('',#9416,#9417,#9418);
-+#9420=CYLINDRICAL_SURFACE('',#9419,3.5E-1);
-+#9422=ORIENTED_EDGE('',*,*,#9421,.F.);
-+#9424=ORIENTED_EDGE('',*,*,#9423,.T.);
-+#9425=ORIENTED_EDGE('',*,*,#9409,.T.);
-+#9426=ORIENTED_EDGE('',*,*,#6187,.T.);
-+#9427=EDGE_LOOP('',(#9422,#9424,#9425,#9426));
-+#9428=FACE_OUTER_BOUND('',#9427,.F.);
-+#9429=ADVANCED_FACE('',(#9428),#9420,.F.);
-+#9430=CARTESIAN_POINT('',(1.95E1,9.5E0,1.E1));
-+#9431=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9432=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9433=AXIS2_PLACEMENT_3D('',#9430,#9431,#9432);
-+#9434=PLANE('',#9433);
-+#9436=ORIENTED_EDGE('',*,*,#9435,.F.);
-+#9438=ORIENTED_EDGE('',*,*,#9437,.F.);
-+#9439=ORIENTED_EDGE('',*,*,#9421,.T.);
-+#9440=ORIENTED_EDGE('',*,*,#6185,.T.);
-+#9441=EDGE_LOOP('',(#9436,#9438,#9439,#9440));
-+#9442=FACE_OUTER_BOUND('',#9441,.F.);
-+#9443=ADVANCED_FACE('',(#9442),#9434,.T.);
-+#9444=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.441108058217E0));
-+#9445=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9446=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9447=AXIS2_PLACEMENT_3D('',#9444,#9445,#9446);
-+#9448=CYLINDRICAL_SURFACE('',#9447,3.5E-1);
-+#9450=ORIENTED_EDGE('',*,*,#9449,.F.);
-+#9452=ORIENTED_EDGE('',*,*,#9451,.T.);
-+#9453=ORIENTED_EDGE('',*,*,#9435,.T.);
-+#9454=ORIENTED_EDGE('',*,*,#6183,.T.);
-+#9455=EDGE_LOOP('',(#9450,#9452,#9453,#9454));
-+#9456=FACE_OUTER_BOUND('',#9455,.F.);
-+#9457=ADVANCED_FACE('',(#9456),#9448,.F.);
-+#9458=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,1.E1));
-+#9459=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
-+#9460=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#9461=AXIS2_PLACEMENT_3D('',#9458,#9459,#9460);
-+#9462=PLANE('',#9461);
-+#9464=ORIENTED_EDGE('',*,*,#9463,.F.);
-+#9466=ORIENTED_EDGE('',*,*,#9465,.F.);
-+#9467=ORIENTED_EDGE('',*,*,#9449,.T.);
-+#9468=ORIENTED_EDGE('',*,*,#6181,.T.);
-+#9469=EDGE_LOOP('',(#9464,#9466,#9467,#9468));
-+#9470=FACE_OUTER_BOUND('',#9469,.F.);
-+#9471=ADVANCED_FACE('',(#9470),#9462,.T.);
-+#9472=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.441108058217E0));
-+#9473=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9474=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474);
-+#9476=CYLINDRICAL_SURFACE('',#9475,3.5E-1);
-+#9478=ORIENTED_EDGE('',*,*,#9477,.F.);
-+#9480=ORIENTED_EDGE('',*,*,#9479,.T.);
-+#9481=ORIENTED_EDGE('',*,*,#9463,.T.);
-+#9482=ORIENTED_EDGE('',*,*,#6179,.T.);
-+#9483=EDGE_LOOP('',(#9478,#9480,#9481,#9482));
-+#9484=FACE_OUTER_BOUND('',#9483,.F.);
-+#9485=ADVANCED_FACE('',(#9484),#9476,.F.);
-+#9486=CARTESIAN_POINT('',(2.264203082158E1,7.E0,1.E1));
-+#9487=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9488=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488);
-+#9490=PLANE('',#9489);
-+#9491=ORIENTED_EDGE('',*,*,#9340,.T.);
-+#9493=ORIENTED_EDGE('',*,*,#9492,.F.);
-+#9494=ORIENTED_EDGE('',*,*,#9477,.T.);
-+#9495=ORIENTED_EDGE('',*,*,#6177,.T.);
-+#9496=EDGE_LOOP('',(#9491,#9493,#9494,#9495));
-+#9497=FACE_OUTER_BOUND('',#9496,.F.);
-+#9498=ADVANCED_FACE('',(#9497),#9490,.T.);
-+#9499=CARTESIAN_POINT('',(2.4E1,0.E0,9.5E0));
-+#9500=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9501=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9502=AXIS2_PLACEMENT_3D('',#9499,#9500,#9501);
-+#9503=PLANE('',#9502);
-+#9504=ORIENTED_EDGE('',*,*,#9492,.T.);
-+#9505=ORIENTED_EDGE('',*,*,#9338,.F.);
-+#9506=ORIENTED_EDGE('',*,*,#9355,.T.);
-+#9507=ORIENTED_EDGE('',*,*,#9367,.F.);
-+#9508=ORIENTED_EDGE('',*,*,#9383,.T.);
-+#9509=ORIENTED_EDGE('',*,*,#9395,.F.);
-+#9510=ORIENTED_EDGE('',*,*,#9411,.T.);
-+#9511=ORIENTED_EDGE('',*,*,#9423,.F.);
-+#9512=ORIENTED_EDGE('',*,*,#9437,.T.);
-+#9513=ORIENTED_EDGE('',*,*,#9451,.F.);
-+#9514=ORIENTED_EDGE('',*,*,#9465,.T.);
-+#9515=ORIENTED_EDGE('',*,*,#9479,.F.);
-+#9516=EDGE_LOOP('',(#9504,#9505,#9506,#9507,#9508,#9509,#9510,#9511,#9512,#9513,
-+#9514,#9515));
-+#9517=FACE_OUTER_BOUND('',#9516,.F.);
-+#9518=ADVANCED_FACE('',(#9517),#9503,.F.);
-+#9519=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#9520=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9521=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9522=AXIS2_PLACEMENT_3D('',#9519,#9520,#9521);
-+#9523=CYLINDRICAL_SURFACE('',#9522,9.5E-2);
-+#9524=ORIENTED_EDGE('',*,*,#6007,.F.);
-+#9526=ORIENTED_EDGE('',*,*,#9525,.T.);
-+#9528=ORIENTED_EDGE('',*,*,#9527,.T.);
-+#9530=ORIENTED_EDGE('',*,*,#9529,.F.);
-+#9531=EDGE_LOOP('',(#9524,#9526,#9528,#9530));
-+#9532=FACE_OUTER_BOUND('',#9531,.F.);
-+#9533=ADVANCED_FACE('',(#9532),#9523,.F.);
-+#9534=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#9535=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9536=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9537=AXIS2_PLACEMENT_3D('',#9534,#9535,#9536);
-+#9538=CYLINDRICAL_SURFACE('',#9537,9.5E-2);
-+#9539=ORIENTED_EDGE('',*,*,#6009,.F.);
-+#9540=ORIENTED_EDGE('',*,*,#9529,.T.);
-+#9542=ORIENTED_EDGE('',*,*,#9541,.T.);
-+#9543=ORIENTED_EDGE('',*,*,#9525,.F.);
-+#9544=EDGE_LOOP('',(#9539,#9540,#9542,#9543));
-+#9545=FACE_OUTER_BOUND('',#9544,.F.);
-+#9546=ADVANCED_FACE('',(#9545),#9538,.F.);
-+#9547=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
-+#9548=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9549=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9550=AXIS2_PLACEMENT_3D('',#9547,#9548,#9549);
-+#9551=PLANE('',#9550);
-+#9552=ORIENTED_EDGE('',*,*,#9527,.F.);
-+#9553=ORIENTED_EDGE('',*,*,#9541,.F.);
-+#9554=EDGE_LOOP('',(#9552,#9553));
-+#9555=FACE_OUTER_BOUND('',#9554,.F.);
-+#9556=ADVANCED_FACE('',(#9555),#9551,.T.);
-+#9557=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#9558=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9559=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9560=AXIS2_PLACEMENT_3D('',#9557,#9558,#9559);
-+#9561=CYLINDRICAL_SURFACE('',#9560,9.5E-2);
-+#9562=ORIENTED_EDGE('',*,*,#6013,.F.);
-+#9564=ORIENTED_EDGE('',*,*,#9563,.T.);
-+#9566=ORIENTED_EDGE('',*,*,#9565,.T.);
-+#9568=ORIENTED_EDGE('',*,*,#9567,.F.);
-+#9569=EDGE_LOOP('',(#9562,#9564,#9566,#9568));
-+#9570=FACE_OUTER_BOUND('',#9569,.F.);
-+#9571=ADVANCED_FACE('',(#9570),#9561,.F.);
-+#9572=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#9573=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9574=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9575=AXIS2_PLACEMENT_3D('',#9572,#9573,#9574);
-+#9576=CYLINDRICAL_SURFACE('',#9575,9.5E-2);
-+#9577=ORIENTED_EDGE('',*,*,#6015,.F.);
-+#9578=ORIENTED_EDGE('',*,*,#9567,.T.);
-+#9580=ORIENTED_EDGE('',*,*,#9579,.T.);
-+#9581=ORIENTED_EDGE('',*,*,#9563,.F.);
-+#9582=EDGE_LOOP('',(#9577,#9578,#9580,#9581));
-+#9583=FACE_OUTER_BOUND('',#9582,.F.);
-+#9584=ADVANCED_FACE('',(#9583),#9576,.F.);
-+#9585=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
-+#9586=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9587=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9588=AXIS2_PLACEMENT_3D('',#9585,#9586,#9587);
-+#9589=PLANE('',#9588);
-+#9590=ORIENTED_EDGE('',*,*,#9565,.F.);
-+#9591=ORIENTED_EDGE('',*,*,#9579,.F.);
-+#9592=EDGE_LOOP('',(#9590,#9591));
-+#9593=FACE_OUTER_BOUND('',#9592,.F.);
-+#9594=ADVANCED_FACE('',(#9593),#9589,.T.);
-+#9595=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#9596=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9597=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9598=AXIS2_PLACEMENT_3D('',#9595,#9596,#9597);
-+#9599=CYLINDRICAL_SURFACE('',#9598,9.5E-2);
-+#9600=ORIENTED_EDGE('',*,*,#6019,.T.);
-+#9602=ORIENTED_EDGE('',*,*,#9601,.T.);
-+#9604=ORIENTED_EDGE('',*,*,#9603,.F.);
-+#9606=ORIENTED_EDGE('',*,*,#9605,.F.);
-+#9607=EDGE_LOOP('',(#9600,#9602,#9604,#9606));
-+#9608=FACE_OUTER_BOUND('',#9607,.F.);
-+#9609=ADVANCED_FACE('',(#9608),#9599,.F.);
-+#9610=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#9611=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9612=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9613=AXIS2_PLACEMENT_3D('',#9610,#9611,#9612);
-+#9614=CYLINDRICAL_SURFACE('',#9613,9.5E-2);
-+#9615=ORIENTED_EDGE('',*,*,#6021,.T.);
-+#9616=ORIENTED_EDGE('',*,*,#9605,.T.);
-+#9618=ORIENTED_EDGE('',*,*,#9617,.F.);
-+#9619=ORIENTED_EDGE('',*,*,#9601,.F.);
-+#9620=EDGE_LOOP('',(#9615,#9616,#9618,#9619));
-+#9621=FACE_OUTER_BOUND('',#9620,.F.);
-+#9622=ADVANCED_FACE('',(#9621),#9614,.F.);
-+#9623=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
-+#9624=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9625=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9626=AXIS2_PLACEMENT_3D('',#9623,#9624,#9625);
-+#9627=PLANE('',#9626);
-+#9628=ORIENTED_EDGE('',*,*,#9603,.T.);
-+#9629=ORIENTED_EDGE('',*,*,#9617,.T.);
-+#9630=EDGE_LOOP('',(#9628,#9629));
-+#9631=FACE_OUTER_BOUND('',#9630,.F.);
-+#9632=ADVANCED_FACE('',(#9631),#9627,.F.);
-+#9633=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#9634=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9635=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9636=AXIS2_PLACEMENT_3D('',#9633,#9634,#9635);
-+#9637=CYLINDRICAL_SURFACE('',#9636,9.5E-2);
-+#9638=ORIENTED_EDGE('',*,*,#6025,.T.);
-+#9640=ORIENTED_EDGE('',*,*,#9639,.T.);
-+#9642=ORIENTED_EDGE('',*,*,#9641,.F.);
-+#9644=ORIENTED_EDGE('',*,*,#9643,.F.);
-+#9645=EDGE_LOOP('',(#9638,#9640,#9642,#9644));
-+#9646=FACE_OUTER_BOUND('',#9645,.F.);
-+#9647=ADVANCED_FACE('',(#9646),#9637,.F.);
-+#9648=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#9649=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9650=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9651=AXIS2_PLACEMENT_3D('',#9648,#9649,#9650);
-+#9652=CYLINDRICAL_SURFACE('',#9651,9.5E-2);
-+#9653=ORIENTED_EDGE('',*,*,#6027,.T.);
-+#9654=ORIENTED_EDGE('',*,*,#9643,.T.);
-+#9656=ORIENTED_EDGE('',*,*,#9655,.F.);
-+#9657=ORIENTED_EDGE('',*,*,#9639,.F.);
-+#9658=EDGE_LOOP('',(#9653,#9654,#9656,#9657));
-+#9659=FACE_OUTER_BOUND('',#9658,.F.);
-+#9660=ADVANCED_FACE('',(#9659),#9652,.F.);
-+#9661=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
-+#9662=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9663=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9664=AXIS2_PLACEMENT_3D('',#9661,#9662,#9663);
-+#9665=PLANE('',#9664);
-+#9666=ORIENTED_EDGE('',*,*,#9641,.T.);
-+#9667=ORIENTED_EDGE('',*,*,#9655,.T.);
-+#9668=EDGE_LOOP('',(#9666,#9667));
-+#9669=FACE_OUTER_BOUND('',#9668,.F.);
-+#9670=ADVANCED_FACE('',(#9669),#9665,.F.);
-+#9671=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#9672=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9673=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9674=AXIS2_PLACEMENT_3D('',#9671,#9672,#9673);
-+#9675=CYLINDRICAL_SURFACE('',#9674,9.5E-2);
-+#9676=ORIENTED_EDGE('',*,*,#6037,.T.);
-+#9678=ORIENTED_EDGE('',*,*,#9677,.T.);
-+#9680=ORIENTED_EDGE('',*,*,#9679,.F.);
-+#9682=ORIENTED_EDGE('',*,*,#9681,.F.);
-+#9683=EDGE_LOOP('',(#9676,#9678,#9680,#9682));
-+#9684=FACE_OUTER_BOUND('',#9683,.F.);
-+#9685=ADVANCED_FACE('',(#9684),#9675,.F.);
-+#9686=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#9687=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9688=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9689=AXIS2_PLACEMENT_3D('',#9686,#9687,#9688);
-+#9690=CYLINDRICAL_SURFACE('',#9689,9.5E-2);
-+#9691=ORIENTED_EDGE('',*,*,#6039,.T.);
-+#9692=ORIENTED_EDGE('',*,*,#9681,.T.);
-+#9694=ORIENTED_EDGE('',*,*,#9693,.F.);
-+#9695=ORIENTED_EDGE('',*,*,#9677,.F.);
-+#9696=EDGE_LOOP('',(#9691,#9692,#9694,#9695));
-+#9697=FACE_OUTER_BOUND('',#9696,.F.);
-+#9698=ADVANCED_FACE('',(#9697),#9690,.F.);
-+#9699=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
-+#9700=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9701=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9702=AXIS2_PLACEMENT_3D('',#9699,#9700,#9701);
-+#9703=PLANE('',#9702);
-+#9704=ORIENTED_EDGE('',*,*,#9679,.T.);
-+#9705=ORIENTED_EDGE('',*,*,#9693,.T.);
-+#9706=EDGE_LOOP('',(#9704,#9705));
-+#9707=FACE_OUTER_BOUND('',#9706,.F.);
-+#9708=ADVANCED_FACE('',(#9707),#9703,.F.);
-+#9709=CARTESIAN_POINT('',(4.5E0,2.E0,8.E0));
-+#9710=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9711=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9712=AXIS2_PLACEMENT_3D('',#9709,#9710,#9711);
-+#9713=PLANE('',#9712);
-+#9715=ORIENTED_EDGE('',*,*,#9714,.T.);
-+#9717=ORIENTED_EDGE('',*,*,#9716,.T.);
-+#9719=ORIENTED_EDGE('',*,*,#9718,.F.);
-+#9720=ORIENTED_EDGE('',*,*,#6043,.F.);
-+#9721=EDGE_LOOP('',(#9715,#9717,#9719,#9720));
-+#9722=FACE_OUTER_BOUND('',#9721,.F.);
-+#9723=ADVANCED_FACE('',(#9722),#9713,.F.);
-+#9724=CARTESIAN_POINT('',(3.75E0,2.75E0,7.931076025772E0));
-+#9725=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9726=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9727=AXIS2_PLACEMENT_3D('',#9724,#9725,#9726);
-+#9728=CYLINDRICAL_SURFACE('',#9727,7.5E-1);
-+#9729=ORIENTED_EDGE('',*,*,#9714,.F.);
-+#9730=ORIENTED_EDGE('',*,*,#6057,.T.);
-+#9732=ORIENTED_EDGE('',*,*,#9731,.T.);
-+#9734=ORIENTED_EDGE('',*,*,#9733,.T.);
-+#9735=EDGE_LOOP('',(#9729,#9730,#9732,#9734));
-+#9736=FACE_OUTER_BOUND('',#9735,.F.);
-+#9737=ADVANCED_FACE('',(#9736),#9728,.F.);
-+#9738=CARTESIAN_POINT('',(4.5E0,9.5E0,8.E0));
-+#9739=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9740=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9741=AXIS2_PLACEMENT_3D('',#9738,#9739,#9740);
-+#9742=PLANE('',#9741);
-+#9743=ORIENTED_EDGE('',*,*,#9731,.F.);
-+#9744=ORIENTED_EDGE('',*,*,#6055,.F.);
-+#9746=ORIENTED_EDGE('',*,*,#9745,.T.);
-+#9748=ORIENTED_EDGE('',*,*,#9747,.T.);
-+#9749=EDGE_LOOP('',(#9743,#9744,#9746,#9748));
-+#9750=FACE_OUTER_BOUND('',#9749,.F.);
-+#9751=ADVANCED_FACE('',(#9750),#9742,.F.);
-+#9752=CARTESIAN_POINT('',(3.75E0,8.75E0,7.931076025772E0));
-+#9753=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9754=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9755=AXIS2_PLACEMENT_3D('',#9752,#9753,#9754);
-+#9756=CYLINDRICAL_SURFACE('',#9755,7.5E-1);
-+#9757=ORIENTED_EDGE('',*,*,#9745,.F.);
-+#9758=ORIENTED_EDGE('',*,*,#6053,.T.);
-+#9760=ORIENTED_EDGE('',*,*,#9759,.T.);
-+#9762=ORIENTED_EDGE('',*,*,#9761,.T.);
-+#9763=EDGE_LOOP('',(#9757,#9758,#9760,#9762));
-+#9764=FACE_OUTER_BOUND('',#9763,.F.);
-+#9765=ADVANCED_FACE('',(#9764),#9756,.F.);
-+#9766=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,8.E0));
-+#9767=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9768=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9769=AXIS2_PLACEMENT_3D('',#9766,#9767,#9768);
-+#9770=PLANE('',#9769);
-+#9772=ORIENTED_EDGE('',*,*,#9771,.T.);
-+#9774=ORIENTED_EDGE('',*,*,#9773,.T.);
-+#9775=ORIENTED_EDGE('',*,*,#9759,.F.);
-+#9776=ORIENTED_EDGE('',*,*,#6051,.F.);
-+#9777=EDGE_LOOP('',(#9772,#9774,#9775,#9776));
-+#9778=FACE_OUTER_BOUND('',#9777,.F.);
-+#9779=ADVANCED_FACE('',(#9778),#9770,.F.);
-+#9780=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,7.931076025772E0));
-+#9781=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9782=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9783=AXIS2_PLACEMENT_3D('',#9780,#9781,#9782);
-+#9784=CYLINDRICAL_SURFACE('',#9783,7.5E-1);
-+#9785=ORIENTED_EDGE('',*,*,#9771,.F.);
-+#9786=ORIENTED_EDGE('',*,*,#6049,.T.);
-+#9788=ORIENTED_EDGE('',*,*,#9787,.T.);
-+#9790=ORIENTED_EDGE('',*,*,#9789,.T.);
-+#9791=EDGE_LOOP('',(#9785,#9786,#9788,#9790));
-+#9792=FACE_OUTER_BOUND('',#9791,.F.);
-+#9793=ADVANCED_FACE('',(#9792),#9784,.F.);
-+#9794=CARTESIAN_POINT('',(-1.419808599362E0,2.E0,8.E0));
-+#9795=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9796=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
-+#9797=AXIS2_PLACEMENT_3D('',#9794,#9795,#9796);
-+#9798=PLANE('',#9797);
-+#9800=ORIENTED_EDGE('',*,*,#9799,.T.);
-+#9802=ORIENTED_EDGE('',*,*,#9801,.T.);
-+#9803=ORIENTED_EDGE('',*,*,#9787,.F.);
-+#9804=ORIENTED_EDGE('',*,*,#6047,.F.);
-+#9805=EDGE_LOOP('',(#9800,#9802,#9803,#9804));
-+#9806=FACE_OUTER_BOUND('',#9805,.F.);
-+#9807=ADVANCED_FACE('',(#9806),#9798,.F.);
-+#9808=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,7.931076025772E0));
-+#9809=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9810=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9811=AXIS2_PLACEMENT_3D('',#9808,#9809,#9810);
-+#9812=CYLINDRICAL_SURFACE('',#9811,7.5E-1);
-+#9813=ORIENTED_EDGE('',*,*,#9799,.F.);
-+#9814=ORIENTED_EDGE('',*,*,#6045,.T.);
-+#9815=ORIENTED_EDGE('',*,*,#9718,.T.);
-+#9817=ORIENTED_EDGE('',*,*,#9816,.T.);
-+#9818=EDGE_LOOP('',(#9813,#9814,#9815,#9817));
-+#9819=FACE_OUTER_BOUND('',#9818,.F.);
-+#9820=ADVANCED_FACE('',(#9819),#9812,.F.);
-+#9821=CARTESIAN_POINT('',(0.E0,0.E0,8.5E0));
-+#9822=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9823=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9824=AXIS2_PLACEMENT_3D('',#9821,#9822,#9823);
-+#9825=PLANE('',#9824);
-+#9826=ORIENTED_EDGE('',*,*,#9733,.F.);
-+#9827=ORIENTED_EDGE('',*,*,#9747,.F.);
-+#9828=ORIENTED_EDGE('',*,*,#9761,.F.);
-+#9829=ORIENTED_EDGE('',*,*,#9773,.F.);
-+#9830=ORIENTED_EDGE('',*,*,#9789,.F.);
-+#9831=ORIENTED_EDGE('',*,*,#9801,.F.);
-+#9832=ORIENTED_EDGE('',*,*,#9816,.F.);
-+#9833=ORIENTED_EDGE('',*,*,#9716,.F.);
-+#9834=EDGE_LOOP('',(#9826,#9827,#9828,#9829,#9830,#9831,#9832,#9833));
-+#9835=FACE_OUTER_BOUND('',#9834,.F.);
-+#9836=ADVANCED_FACE('',(#9835),#9825,.T.);
-+#9837=CARTESIAN_POINT('',(2.541980859936E1,2.E0,8.E0));
-+#9838=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
-+#9839=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
-+#9840=AXIS2_PLACEMENT_3D('',#9837,#9838,#9839);
-+#9841=PLANE('',#9840);
-+#9843=ORIENTED_EDGE('',*,*,#9842,.T.);
-+#9844=ORIENTED_EDGE('',*,*,#6061,.T.);
-+#9846=ORIENTED_EDGE('',*,*,#9845,.F.);
-+#9848=ORIENTED_EDGE('',*,*,#9847,.F.);
-+#9849=EDGE_LOOP('',(#9843,#9844,#9846,#9848));
-+#9850=FACE_OUTER_BOUND('',#9849,.F.);
-+#9851=ADVANCED_FACE('',(#9850),#9841,.T.);
-+#9852=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.558891941783E0));
-+#9853=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9854=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9855=AXIS2_PLACEMENT_3D('',#9852,#9853,#9854);
-+#9856=CYLINDRICAL_SURFACE('',#9855,7.5E-1);
-+#9857=ORIENTED_EDGE('',*,*,#9842,.F.);
-+#9859=ORIENTED_EDGE('',*,*,#9858,.T.);
-+#9861=ORIENTED_EDGE('',*,*,#9860,.T.);
-+#9862=ORIENTED_EDGE('',*,*,#6063,.T.);
-+#9863=EDGE_LOOP('',(#9857,#9859,#9861,#9862));
-+#9864=FACE_OUTER_BOUND('',#9863,.F.);
-+#9865=ADVANCED_FACE('',(#9864),#9856,.F.);
-+#9866=CARTESIAN_POINT('',(2.4E1,0.E0,8.5E0));
-+#9867=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9868=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9869=AXIS2_PLACEMENT_3D('',#9866,#9867,#9868);
-+#9870=PLANE('',#9869);
-+#9872=ORIENTED_EDGE('',*,*,#9871,.F.);
-+#9874=ORIENTED_EDGE('',*,*,#9873,.T.);
-+#9875=ORIENTED_EDGE('',*,*,#9858,.F.);
-+#9876=ORIENTED_EDGE('',*,*,#9847,.T.);
-+#9878=ORIENTED_EDGE('',*,*,#9877,.F.);
-+#9880=ORIENTED_EDGE('',*,*,#9879,.T.);
-+#9882=ORIENTED_EDGE('',*,*,#9881,.F.);
-+#9884=ORIENTED_EDGE('',*,*,#9883,.T.);
-+#9885=EDGE_LOOP('',(#9872,#9874,#9875,#9876,#9878,#9880,#9882,#9884));
-+#9886=FACE_OUTER_BOUND('',#9885,.F.);
-+#9887=ADVANCED_FACE('',(#9886),#9870,.F.);
-+#9888=CARTESIAN_POINT('',(2.025E1,2.75E0,8.558891941783E0));
-+#9889=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9890=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9891=AXIS2_PLACEMENT_3D('',#9888,#9889,#9890);
-+#9892=CYLINDRICAL_SURFACE('',#9891,7.5E-1);
-+#9894=ORIENTED_EDGE('',*,*,#9893,.F.);
-+#9895=ORIENTED_EDGE('',*,*,#9871,.T.);
-+#9897=ORIENTED_EDGE('',*,*,#9896,.T.);
-+#9898=ORIENTED_EDGE('',*,*,#6067,.T.);
-+#9899=EDGE_LOOP('',(#9894,#9895,#9897,#9898));
-+#9900=FACE_OUTER_BOUND('',#9899,.F.);
-+#9901=ADVANCED_FACE('',(#9900),#9892,.F.);
-+#9902=CARTESIAN_POINT('',(1.95E1,2.E0,8.E0));
-+#9903=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9904=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9905=AXIS2_PLACEMENT_3D('',#9902,#9903,#9904);
-+#9906=PLANE('',#9905);
-+#9907=ORIENTED_EDGE('',*,*,#9893,.T.);
-+#9908=ORIENTED_EDGE('',*,*,#6065,.T.);
-+#9909=ORIENTED_EDGE('',*,*,#9860,.F.);
-+#9910=ORIENTED_EDGE('',*,*,#9873,.F.);
-+#9911=EDGE_LOOP('',(#9907,#9908,#9909,#9910));
-+#9912=FACE_OUTER_BOUND('',#9911,.F.);
-+#9913=ADVANCED_FACE('',(#9912),#9906,.T.);
-+#9914=CARTESIAN_POINT('',(1.95E1,9.5E0,8.E0));
-+#9915=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9916=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9917=AXIS2_PLACEMENT_3D('',#9914,#9915,#9916);
-+#9918=PLANE('',#9917);
-+#9919=ORIENTED_EDGE('',*,*,#9896,.F.);
-+#9920=ORIENTED_EDGE('',*,*,#9883,.F.);
-+#9922=ORIENTED_EDGE('',*,*,#9921,.T.);
-+#9923=ORIENTED_EDGE('',*,*,#6069,.T.);
-+#9924=EDGE_LOOP('',(#9919,#9920,#9922,#9923));
-+#9925=FACE_OUTER_BOUND('',#9924,.F.);
-+#9926=ADVANCED_FACE('',(#9925),#9918,.T.);
-+#9927=CARTESIAN_POINT('',(2.025E1,8.75E0,8.558891941783E0));
-+#9928=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9929=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9930=AXIS2_PLACEMENT_3D('',#9927,#9928,#9929);
-+#9931=CYLINDRICAL_SURFACE('',#9930,7.5E-1);
-+#9932=ORIENTED_EDGE('',*,*,#9921,.F.);
-+#9933=ORIENTED_EDGE('',*,*,#9881,.T.);
-+#9935=ORIENTED_EDGE('',*,*,#9934,.T.);
-+#9936=ORIENTED_EDGE('',*,*,#6071,.T.);
-+#9937=EDGE_LOOP('',(#9932,#9933,#9935,#9936));
-+#9938=FACE_OUTER_BOUND('',#9937,.F.);
-+#9939=ADVANCED_FACE('',(#9938),#9931,.F.);
-+#9940=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,8.E0));
-+#9941=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9942=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9943=AXIS2_PLACEMENT_3D('',#9940,#9941,#9942);
-+#9944=PLANE('',#9943);
-+#9946=ORIENTED_EDGE('',*,*,#9945,.T.);
-+#9947=ORIENTED_EDGE('',*,*,#6073,.T.);
-+#9948=ORIENTED_EDGE('',*,*,#9934,.F.);
-+#9949=ORIENTED_EDGE('',*,*,#9879,.F.);
-+#9950=EDGE_LOOP('',(#9946,#9947,#9948,#9949));
-+#9951=FACE_OUTER_BOUND('',#9950,.F.);
-+#9952=ADVANCED_FACE('',(#9951),#9944,.T.);
-+#9953=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.558891941783E0));
-+#9954=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9955=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9956=AXIS2_PLACEMENT_3D('',#9953,#9954,#9955);
-+#9957=CYLINDRICAL_SURFACE('',#9956,7.5E-1);
-+#9958=ORIENTED_EDGE('',*,*,#9945,.F.);
-+#9959=ORIENTED_EDGE('',*,*,#9877,.T.);
-+#9960=ORIENTED_EDGE('',*,*,#9845,.T.);
-+#9961=ORIENTED_EDGE('',*,*,#6075,.T.);
-+#9962=EDGE_LOOP('',(#9958,#9959,#9960,#9961));
-+#9963=FACE_OUTER_BOUND('',#9962,.F.);
-+#9964=ADVANCED_FACE('',(#9963),#9957,.F.);
-+#9965=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#9966=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9967=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9968=AXIS2_PLACEMENT_3D('',#9965,#9966,#9967);
-+#9969=PLANE('',#9968);
-+#9970=ORIENTED_EDGE('',*,*,#5726,.F.);
-+#9972=ORIENTED_EDGE('',*,*,#9971,.T.);
-+#9974=ORIENTED_EDGE('',*,*,#9973,.T.);
-+#9976=ORIENTED_EDGE('',*,*,#9975,.F.);
-+#9977=EDGE_LOOP('',(#9970,#9972,#9974,#9976));
-+#9978=FACE_OUTER_BOUND('',#9977,.F.);
-+#9979=ADVANCED_FACE('',(#9978),#9969,.F.);
-+#9980=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
-+#9981=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9982=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9983=AXIS2_PLACEMENT_3D('',#9980,#9981,#9982);
-+#9984=CYLINDRICAL_SURFACE('',#9983,5.625E-1);
-+#9985=ORIENTED_EDGE('',*,*,#5732,.F.);
-+#9987=ORIENTED_EDGE('',*,*,#9986,.T.);
-+#9989=ORIENTED_EDGE('',*,*,#9988,.T.);
-+#9990=ORIENTED_EDGE('',*,*,#9971,.F.);
-+#9991=EDGE_LOOP('',(#9985,#9987,#9989,#9990));
-+#9992=FACE_OUTER_BOUND('',#9991,.F.);
-+#9993=ADVANCED_FACE('',(#9992),#9984,.F.);
-+#9994=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#9995=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9996=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9997=AXIS2_PLACEMENT_3D('',#9994,#9995,#9996);
-+#9998=PLANE('',#9997);
-+#9999=ORIENTED_EDGE('',*,*,#5730,.F.);
-+#10001=ORIENTED_EDGE('',*,*,#10000,.T.);
-+#10003=ORIENTED_EDGE('',*,*,#10002,.T.);
-+#10004=ORIENTED_EDGE('',*,*,#9986,.F.);
-+#10005=EDGE_LOOP('',(#9999,#10001,#10003,#10004));
-+#10006=FACE_OUTER_BOUND('',#10005,.F.);
-+#10007=ADVANCED_FACE('',(#10006),#9998,.F.);
-+#10008=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
-+#10009=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10010=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10011=AXIS2_PLACEMENT_3D('',#10008,#10009,#10010);
-+#10012=CYLINDRICAL_SURFACE('',#10011,5.625E-1);
-+#10013=ORIENTED_EDGE('',*,*,#5728,.F.);
-+#10014=ORIENTED_EDGE('',*,*,#9975,.T.);
-+#10016=ORIENTED_EDGE('',*,*,#10015,.T.);
-+#10017=ORIENTED_EDGE('',*,*,#10000,.F.);
-+#10018=EDGE_LOOP('',(#10013,#10014,#10016,#10017));
-+#10019=FACE_OUTER_BOUND('',#10018,.F.);
-+#10020=ADVANCED_FACE('',(#10019),#10012,.F.);
-+#10021=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10022=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10023=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10024=AXIS2_PLACEMENT_3D('',#10021,#10022,#10023);
-+#10025=PLANE('',#10024);
-+#10026=ORIENTED_EDGE('',*,*,#9973,.F.);
-+#10027=ORIENTED_EDGE('',*,*,#9988,.F.);
-+#10028=ORIENTED_EDGE('',*,*,#10002,.F.);
-+#10029=ORIENTED_EDGE('',*,*,#10015,.F.);
-+#10030=EDGE_LOOP('',(#10026,#10027,#10028,#10029));
-+#10031=FACE_OUTER_BOUND('',#10030,.F.);
-+#10032=ADVANCED_FACE('',(#10031),#10025,.T.);
-+#10033=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10034=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10035=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10036=AXIS2_PLACEMENT_3D('',#10033,#10034,#10035);
-+#10037=PLANE('',#10036);
-+#10039=ORIENTED_EDGE('',*,*,#10038,.F.);
-+#10041=ORIENTED_EDGE('',*,*,#10040,.F.);
-+#10043=ORIENTED_EDGE('',*,*,#10042,.F.);
-+#10045=ORIENTED_EDGE('',*,*,#10044,.F.);
-+#10047=ORIENTED_EDGE('',*,*,#10046,.F.);
-+#10048=EDGE_LOOP('',(#10039,#10041,#10043,#10045,#10047));
-+#10049=FACE_OUTER_BOUND('',#10048,.F.);
-+#10050=ADVANCED_FACE('',(#10049),#10037,.T.);
-+#10051=CARTESIAN_POINT('',(1.455736763592E0,-6.892397422826E-2,
-+4.577195232320E0));
-+#10052=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10053=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10054=AXIS2_PLACEMENT_3D('',#10051,#10052,#10053);
-+#10055=CYLINDRICAL_SURFACE('',#10054,7.5E-1);
-+#10057=ORIENTED_EDGE('',*,*,#10056,.F.);
-+#10058=ORIENTED_EDGE('',*,*,#5738,.T.);
-+#10060=ORIENTED_EDGE('',*,*,#10059,.T.);
-+#10061=ORIENTED_EDGE('',*,*,#10038,.T.);
-+#10062=EDGE_LOOP('',(#10057,#10058,#10060,#10061));
-+#10063=FACE_OUTER_BOUND('',#10062,.F.);
-+#10064=ADVANCED_FACE('',(#10063),#10055,.F.);
-+#10065=CARTESIAN_POINT('',(6.875E-1,0.E0,4.284771824132E0));
-+#10066=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10067=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10068=AXIS2_PLACEMENT_3D('',#10065,#10066,#10067);
-+#10069=PLANE('',#10068);
-+#10070=ORIENTED_EDGE('',*,*,#10056,.T.);
-+#10071=ORIENTED_EDGE('',*,*,#10046,.T.);
-+#10073=ORIENTED_EDGE('',*,*,#10072,.F.);
-+#10074=ORIENTED_EDGE('',*,*,#5740,.F.);
-+#10075=EDGE_LOOP('',(#10070,#10071,#10073,#10074));
-+#10076=FACE_OUTER_BOUND('',#10075,.F.);
-+#10077=ADVANCED_FACE('',(#10076),#10069,.F.);
-+#10078=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
-+#10079=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10080=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10081=AXIS2_PLACEMENT_3D('',#10078,#10079,#10080);
-+#10082=CYLINDRICAL_SURFACE('',#10081,8.669989027347E-1);
-+#10083=ORIENTED_EDGE('',*,*,#5742,.F.);
-+#10084=ORIENTED_EDGE('',*,*,#10072,.T.);
-+#10085=ORIENTED_EDGE('',*,*,#10044,.T.);
-+#10087=ORIENTED_EDGE('',*,*,#10086,.F.);
-+#10088=EDGE_LOOP('',(#10083,#10084,#10085,#10087));
-+#10089=FACE_OUTER_BOUND('',#10088,.F.);
-+#10090=ADVANCED_FACE('',(#10089),#10082,.F.);
-+#10091=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
-+#10092=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10093=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10094=AXIS2_PLACEMENT_3D('',#10091,#10092,#10093);
-+#10095=CYLINDRICAL_SURFACE('',#10094,5.6875E0);
-+#10096=ORIENTED_EDGE('',*,*,#5744,.T.);
-+#10097=ORIENTED_EDGE('',*,*,#10086,.T.);
-+#10098=ORIENTED_EDGE('',*,*,#10042,.T.);
-+#10100=ORIENTED_EDGE('',*,*,#10099,.F.);
-+#10101=EDGE_LOOP('',(#10096,#10097,#10098,#10100));
-+#10102=FACE_OUTER_BOUND('',#10101,.F.);
-+#10103=ADVANCED_FACE('',(#10102),#10095,.T.);
-+#10104=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
-+#10105=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10106=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10107=AXIS2_PLACEMENT_3D('',#10104,#10105,#10106);
-+#10108=CYLINDRICAL_SURFACE('',#10107,9.225E-1);
-+#10109=ORIENTED_EDGE('',*,*,#10059,.F.);
-+#10110=ORIENTED_EDGE('',*,*,#5736,.F.);
-+#10111=ORIENTED_EDGE('',*,*,#10099,.T.);
-+#10112=ORIENTED_EDGE('',*,*,#10040,.T.);
-+#10113=EDGE_LOOP('',(#10109,#10110,#10111,#10112));
-+#10114=FACE_OUTER_BOUND('',#10113,.F.);
-+#10115=ADVANCED_FACE('',(#10114),#10108,.F.);
-+#10116=CARTESIAN_POINT('',(-1.85E-1,7.463919417831E-1,7.815E0));
-+#10117=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10118=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10119=AXIS2_PLACEMENT_3D('',#10116,#10117,#10118);
-+#10120=CYLINDRICAL_SURFACE('',#10119,8.75E-1);
-+#10122=ORIENTED_EDGE('',*,*,#10121,.T.);
-+#10123=ORIENTED_EDGE('',*,*,#5748,.T.);
-+#10125=ORIENTED_EDGE('',*,*,#10124,.F.);
-+#10127=ORIENTED_EDGE('',*,*,#10126,.T.);
-+#10128=EDGE_LOOP('',(#10122,#10123,#10125,#10127));
-+#10129=FACE_OUTER_BOUND('',#10128,.F.);
-+#10130=ADVANCED_FACE('',(#10129),#10120,.T.);
-+#10131=CARTESIAN_POINT('',(6.9E-1,0.E0,8.69E0));
-+#10132=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10133=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10134=AXIS2_PLACEMENT_3D('',#10131,#10132,#10133);
-+#10135=PLANE('',#10134);
-+#10136=ORIENTED_EDGE('',*,*,#10121,.F.);
-+#10138=ORIENTED_EDGE('',*,*,#10137,.T.);
-+#10140=ORIENTED_EDGE('',*,*,#10139,.F.);
-+#10141=ORIENTED_EDGE('',*,*,#5750,.F.);
-+#10142=EDGE_LOOP('',(#10136,#10138,#10140,#10141));
-+#10143=FACE_OUTER_BOUND('',#10142,.F.);
-+#10144=ADVANCED_FACE('',(#10143),#10135,.F.);
-+#10145=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10146=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10147=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10148=AXIS2_PLACEMENT_3D('',#10145,#10146,#10147);
-+#10149=PLANE('',#10148);
-+#10151=ORIENTED_EDGE('',*,*,#10150,.F.);
-+#10153=ORIENTED_EDGE('',*,*,#10152,.F.);
-+#10155=ORIENTED_EDGE('',*,*,#10154,.F.);
-+#10157=ORIENTED_EDGE('',*,*,#10156,.F.);
-+#10158=ORIENTED_EDGE('',*,*,#10137,.F.);
-+#10159=ORIENTED_EDGE('',*,*,#10126,.F.);
-+#10161=ORIENTED_EDGE('',*,*,#10160,.F.);
-+#10163=ORIENTED_EDGE('',*,*,#10162,.F.);
-+#10165=ORIENTED_EDGE('',*,*,#10164,.F.);
-+#10167=ORIENTED_EDGE('',*,*,#10166,.F.);
-+#10169=ORIENTED_EDGE('',*,*,#10168,.F.);
-+#10171=ORIENTED_EDGE('',*,*,#10170,.F.);
-+#10173=ORIENTED_EDGE('',*,*,#10172,.F.);
-+#10175=ORIENTED_EDGE('',*,*,#10174,.F.);
-+#10176=EDGE_LOOP('',(#10151,#10153,#10155,#10157,#10158,#10159,#10161,#10163,
-+#10165,#10167,#10169,#10171,#10173,#10175));
-+#10177=FACE_OUTER_BOUND('',#10176,.F.);
-+#10178=ADVANCED_FACE('',(#10177),#10149,.T.);
-+#10179=CARTESIAN_POINT('',(1.8125E0,0.E0,8.69E0));
-+#10180=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10181=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10182=AXIS2_PLACEMENT_3D('',#10179,#10180,#10181);
-+#10183=PLANE('',#10182);
-+#10185=ORIENTED_EDGE('',*,*,#10184,.F.);
-+#10186=ORIENTED_EDGE('',*,*,#10150,.T.);
-+#10188=ORIENTED_EDGE('',*,*,#10187,.F.);
-+#10189=ORIENTED_EDGE('',*,*,#5758,.F.);
-+#10190=EDGE_LOOP('',(#10185,#10186,#10188,#10189));
-+#10191=FACE_OUTER_BOUND('',#10190,.F.);
-+#10192=ADVANCED_FACE('',(#10191),#10183,.F.);
-+#10193=CARTESIAN_POINT('',(2.6875E0,7.463919417831E-1,7.815E0));
-+#10194=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10195=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10196=AXIS2_PLACEMENT_3D('',#10193,#10194,#10195);
-+#10197=CYLINDRICAL_SURFACE('',#10196,8.75E-1);
-+#10198=ORIENTED_EDGE('',*,*,#10184,.T.);
-+#10199=ORIENTED_EDGE('',*,*,#5756,.T.);
-+#10201=ORIENTED_EDGE('',*,*,#10200,.F.);
-+#10202=ORIENTED_EDGE('',*,*,#10152,.T.);
-+#10203=EDGE_LOOP('',(#10198,#10199,#10201,#10202));
-+#10204=FACE_OUTER_BOUND('',#10203,.F.);
-+#10205=ADVANCED_FACE('',(#10204),#10197,.T.);
-+#10206=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#10207=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10208=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10209=AXIS2_PLACEMENT_3D('',#10206,#10207,#10208);
-+#10210=PLANE('',#10209);
-+#10211=ORIENTED_EDGE('',*,*,#10200,.T.);
-+#10212=ORIENTED_EDGE('',*,*,#5754,.F.);
-+#10214=ORIENTED_EDGE('',*,*,#10213,.T.);
-+#10215=ORIENTED_EDGE('',*,*,#10154,.T.);
-+#10216=EDGE_LOOP('',(#10211,#10212,#10214,#10215));
-+#10217=FACE_OUTER_BOUND('',#10216,.F.);
-+#10218=ADVANCED_FACE('',(#10217),#10210,.F.);
-+#10219=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
-+#10220=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10221=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10222=AXIS2_PLACEMENT_3D('',#10219,#10220,#10221);
-+#10223=CYLINDRICAL_SURFACE('',#10222,5.6125E-1);
-+#10224=ORIENTED_EDGE('',*,*,#5752,.F.);
-+#10225=ORIENTED_EDGE('',*,*,#10139,.T.);
-+#10226=ORIENTED_EDGE('',*,*,#10156,.T.);
-+#10227=ORIENTED_EDGE('',*,*,#10213,.F.);
-+#10228=EDGE_LOOP('',(#10224,#10225,#10226,#10227));
-+#10229=FACE_OUTER_BOUND('',#10228,.F.);
-+#10230=ADVANCED_FACE('',(#10229),#10223,.F.);
-+#10231=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,9.565E0));
-+#10232=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10233=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10234=AXIS2_PLACEMENT_3D('',#10231,#10232,#10233);
-+#10235=CYLINDRICAL_SURFACE('',#10234,8.75E-1);
-+#10237=ORIENTED_EDGE('',*,*,#10236,.F.);
-+#10238=ORIENTED_EDGE('',*,*,#5760,.T.);
-+#10239=ORIENTED_EDGE('',*,*,#10187,.T.);
-+#10240=ORIENTED_EDGE('',*,*,#10174,.T.);
-+#10241=EDGE_LOOP('',(#10237,#10238,#10239,#10240));
-+#10242=FACE_OUTER_BOUND('',#10241,.F.);
-+#10243=ADVANCED_FACE('',(#10242),#10235,.F.);
-+#10244=CARTESIAN_POINT('',(4.3125E0,0.E0,8.69E0));
-+#10245=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10246=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10247=AXIS2_PLACEMENT_3D('',#10244,#10245,#10246);
-+#10248=PLANE('',#10247);
-+#10249=ORIENTED_EDGE('',*,*,#10236,.T.);
-+#10250=ORIENTED_EDGE('',*,*,#10172,.T.);
-+#10252=ORIENTED_EDGE('',*,*,#10251,.F.);
-+#10253=ORIENTED_EDGE('',*,*,#5762,.F.);
-+#10254=EDGE_LOOP('',(#10249,#10250,#10252,#10253));
-+#10255=FACE_OUTER_BOUND('',#10254,.F.);
-+#10256=ADVANCED_FACE('',(#10255),#10248,.F.);
-+#10257=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,1.0375E1));
-+#10258=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10259=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10260=AXIS2_PLACEMENT_3D('',#10257,#10258,#10259);
-+#10261=CYLINDRICAL_SURFACE('',#10260,8.75E-1);
-+#10263=ORIENTED_EDGE('',*,*,#10262,.F.);
-+#10264=ORIENTED_EDGE('',*,*,#5764,.T.);
-+#10265=ORIENTED_EDGE('',*,*,#10251,.T.);
-+#10266=ORIENTED_EDGE('',*,*,#10170,.T.);
-+#10267=EDGE_LOOP('',(#10263,#10264,#10265,#10266));
-+#10268=FACE_OUTER_BOUND('',#10267,.F.);
-+#10269=ADVANCED_FACE('',(#10268),#10261,.F.);
-+#10270=CARTESIAN_POINT('',(4.3125E0,0.E0,1.125E1));
-+#10271=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10272=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10273=AXIS2_PLACEMENT_3D('',#10270,#10271,#10272);
-+#10274=PLANE('',#10273);
-+#10276=ORIENTED_EDGE('',*,*,#10275,.F.);
-+#10277=ORIENTED_EDGE('',*,*,#5766,.F.);
-+#10278=ORIENTED_EDGE('',*,*,#10262,.T.);
-+#10279=ORIENTED_EDGE('',*,*,#10168,.T.);
-+#10280=EDGE_LOOP('',(#10276,#10277,#10278,#10279));
-+#10281=FACE_OUTER_BOUND('',#10280,.F.);
-+#10282=ADVANCED_FACE('',(#10281),#10274,.F.);
-+#10283=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,1.0375E1));
-+#10284=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10285=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10286=AXIS2_PLACEMENT_3D('',#10283,#10284,#10285);
-+#10287=CYLINDRICAL_SURFACE('',#10286,8.75E-1);
-+#10289=ORIENTED_EDGE('',*,*,#10288,.F.);
-+#10290=ORIENTED_EDGE('',*,*,#5768,.T.);
-+#10291=ORIENTED_EDGE('',*,*,#10275,.T.);
-+#10292=ORIENTED_EDGE('',*,*,#10166,.T.);
-+#10293=EDGE_LOOP('',(#10289,#10290,#10291,#10292));
-+#10294=FACE_OUTER_BOUND('',#10293,.F.);
-+#10295=ADVANCED_FACE('',(#10294),#10287,.F.);
-+#10296=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.125E1));
-+#10297=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10298=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10299=AXIS2_PLACEMENT_3D('',#10296,#10297,#10298);
-+#10300=PLANE('',#10299);
-+#10301=ORIENTED_EDGE('',*,*,#10288,.T.);
-+#10302=ORIENTED_EDGE('',*,*,#10164,.T.);
-+#10304=ORIENTED_EDGE('',*,*,#10303,.F.);
-+#10305=ORIENTED_EDGE('',*,*,#5770,.F.);
-+#10306=EDGE_LOOP('',(#10301,#10302,#10304,#10305));
-+#10307=FACE_OUTER_BOUND('',#10306,.F.);
-+#10308=ADVANCED_FACE('',(#10307),#10300,.F.);
-+#10309=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,9.565E0));
-+#10310=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10311=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10312=AXIS2_PLACEMENT_3D('',#10309,#10310,#10311);
-+#10313=CYLINDRICAL_SURFACE('',#10312,8.75E-1);
-+#10315=ORIENTED_EDGE('',*,*,#10314,.F.);
-+#10316=ORIENTED_EDGE('',*,*,#5772,.T.);
-+#10317=ORIENTED_EDGE('',*,*,#10303,.T.);
-+#10318=ORIENTED_EDGE('',*,*,#10162,.T.);
-+#10319=EDGE_LOOP('',(#10315,#10316,#10317,#10318));
-+#10320=FACE_OUTER_BOUND('',#10319,.F.);
-+#10321=ADVANCED_FACE('',(#10320),#10313,.F.);
-+#10322=CARTESIAN_POINT('',(-1.3125E0,0.E0,8.69E0));
-+#10323=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10324=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10325=AXIS2_PLACEMENT_3D('',#10322,#10323,#10324);
-+#10326=PLANE('',#10325);
-+#10327=ORIENTED_EDGE('',*,*,#10124,.T.);
-+#10328=ORIENTED_EDGE('',*,*,#5774,.F.);
-+#10329=ORIENTED_EDGE('',*,*,#10314,.T.);
-+#10330=ORIENTED_EDGE('',*,*,#10160,.T.);
-+#10331=EDGE_LOOP('',(#10327,#10328,#10329,#10330));
-+#10332=FACE_OUTER_BOUND('',#10331,.F.);
-+#10333=ADVANCED_FACE('',(#10332),#10326,.F.);
-+#10334=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#10335=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10336=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10337=AXIS2_PLACEMENT_3D('',#10334,#10335,#10336);
-+#10338=PLANE('',#10337);
-+#10339=ORIENTED_EDGE('',*,*,#5778,.F.);
-+#10341=ORIENTED_EDGE('',*,*,#10340,.T.);
-+#10343=ORIENTED_EDGE('',*,*,#10342,.T.);
-+#10345=ORIENTED_EDGE('',*,*,#10344,.F.);
-+#10346=EDGE_LOOP('',(#10339,#10341,#10343,#10345));
-+#10347=FACE_OUTER_BOUND('',#10346,.F.);
-+#10348=ADVANCED_FACE('',(#10347),#10338,.F.);
-+#10349=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
-+#10350=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10351=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10352=AXIS2_PLACEMENT_3D('',#10349,#10350,#10351);
-+#10353=CYLINDRICAL_SURFACE('',#10352,5.625E-1);
-+#10354=ORIENTED_EDGE('',*,*,#5784,.F.);
-+#10356=ORIENTED_EDGE('',*,*,#10355,.T.);
-+#10358=ORIENTED_EDGE('',*,*,#10357,.T.);
-+#10359=ORIENTED_EDGE('',*,*,#10340,.F.);
-+#10360=EDGE_LOOP('',(#10354,#10356,#10358,#10359));
-+#10361=FACE_OUTER_BOUND('',#10360,.F.);
-+#10362=ADVANCED_FACE('',(#10361),#10353,.F.);
-+#10363=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#10364=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10365=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10366=AXIS2_PLACEMENT_3D('',#10363,#10364,#10365);
-+#10367=PLANE('',#10366);
-+#10368=ORIENTED_EDGE('',*,*,#5782,.F.);
-+#10370=ORIENTED_EDGE('',*,*,#10369,.T.);
-+#10372=ORIENTED_EDGE('',*,*,#10371,.T.);
-+#10373=ORIENTED_EDGE('',*,*,#10355,.F.);
-+#10374=EDGE_LOOP('',(#10368,#10370,#10372,#10373));
-+#10375=FACE_OUTER_BOUND('',#10374,.F.);
-+#10376=ADVANCED_FACE('',(#10375),#10367,.F.);
-+#10377=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
-+#10378=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10379=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10380=AXIS2_PLACEMENT_3D('',#10377,#10378,#10379);
-+#10381=CYLINDRICAL_SURFACE('',#10380,5.625E-1);
-+#10382=ORIENTED_EDGE('',*,*,#5780,.F.);
-+#10383=ORIENTED_EDGE('',*,*,#10344,.T.);
-+#10385=ORIENTED_EDGE('',*,*,#10384,.T.);
-+#10386=ORIENTED_EDGE('',*,*,#10369,.F.);
-+#10387=EDGE_LOOP('',(#10382,#10383,#10385,#10386));
-+#10388=FACE_OUTER_BOUND('',#10387,.F.);
-+#10389=ADVANCED_FACE('',(#10388),#10381,.F.);
-+#10390=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10391=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10392=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10393=AXIS2_PLACEMENT_3D('',#10390,#10391,#10392);
-+#10394=PLANE('',#10393);
-+#10395=ORIENTED_EDGE('',*,*,#10342,.F.);
-+#10396=ORIENTED_EDGE('',*,*,#10357,.F.);
-+#10397=ORIENTED_EDGE('',*,*,#10371,.F.);
-+#10398=ORIENTED_EDGE('',*,*,#10384,.F.);
-+#10399=EDGE_LOOP('',(#10395,#10396,#10397,#10398));
-+#10400=FACE_OUTER_BOUND('',#10399,.F.);
-+#10401=ADVANCED_FACE('',(#10400),#10394,.T.);
-+#10402=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#10403=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10404=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10405=AXIS2_PLACEMENT_3D('',#10402,#10403,#10404);
-+#10406=PLANE('',#10405);
-+#10407=ORIENTED_EDGE('',*,*,#5788,.F.);
-+#10409=ORIENTED_EDGE('',*,*,#10408,.T.);
-+#10411=ORIENTED_EDGE('',*,*,#10410,.T.);
-+#10413=ORIENTED_EDGE('',*,*,#10412,.F.);
-+#10414=EDGE_LOOP('',(#10407,#10409,#10411,#10413));
-+#10415=FACE_OUTER_BOUND('',#10414,.F.);
-+#10416=ADVANCED_FACE('',(#10415),#10406,.F.);
-+#10417=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
-+#10418=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10419=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10420=AXIS2_PLACEMENT_3D('',#10417,#10418,#10419);
-+#10421=CYLINDRICAL_SURFACE('',#10420,5.625E-1);
-+#10422=ORIENTED_EDGE('',*,*,#5794,.F.);
-+#10424=ORIENTED_EDGE('',*,*,#10423,.T.);
-+#10426=ORIENTED_EDGE('',*,*,#10425,.T.);
-+#10427=ORIENTED_EDGE('',*,*,#10408,.F.);
-+#10428=EDGE_LOOP('',(#10422,#10424,#10426,#10427));
-+#10429=FACE_OUTER_BOUND('',#10428,.F.);
-+#10430=ADVANCED_FACE('',(#10429),#10421,.F.);
-+#10431=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#10432=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10433=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10434=AXIS2_PLACEMENT_3D('',#10431,#10432,#10433);
-+#10435=PLANE('',#10434);
-+#10436=ORIENTED_EDGE('',*,*,#5792,.F.);
-+#10438=ORIENTED_EDGE('',*,*,#10437,.T.);
-+#10440=ORIENTED_EDGE('',*,*,#10439,.T.);
-+#10441=ORIENTED_EDGE('',*,*,#10423,.F.);
-+#10442=EDGE_LOOP('',(#10436,#10438,#10440,#10441));
-+#10443=FACE_OUTER_BOUND('',#10442,.F.);
-+#10444=ADVANCED_FACE('',(#10443),#10435,.F.);
-+#10445=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
-+#10446=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10447=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10448=AXIS2_PLACEMENT_3D('',#10445,#10446,#10447);
-+#10449=CYLINDRICAL_SURFACE('',#10448,5.625E-1);
-+#10450=ORIENTED_EDGE('',*,*,#5790,.F.);
-+#10451=ORIENTED_EDGE('',*,*,#10412,.T.);
-+#10453=ORIENTED_EDGE('',*,*,#10452,.T.);
-+#10454=ORIENTED_EDGE('',*,*,#10437,.F.);
-+#10455=EDGE_LOOP('',(#10450,#10451,#10453,#10454));
-+#10456=FACE_OUTER_BOUND('',#10455,.F.);
-+#10457=ADVANCED_FACE('',(#10456),#10449,.F.);
-+#10458=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10459=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10460=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10461=AXIS2_PLACEMENT_3D('',#10458,#10459,#10460);
-+#10462=PLANE('',#10461);
-+#10463=ORIENTED_EDGE('',*,*,#10410,.F.);
-+#10464=ORIENTED_EDGE('',*,*,#10425,.F.);
-+#10465=ORIENTED_EDGE('',*,*,#10439,.F.);
-+#10466=ORIENTED_EDGE('',*,*,#10452,.F.);
-+#10467=EDGE_LOOP('',(#10463,#10464,#10465,#10466));
-+#10468=FACE_OUTER_BOUND('',#10467,.F.);
-+#10469=ADVANCED_FACE('',(#10468),#10462,.T.);
-+#10470=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#10471=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10472=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10473=AXIS2_PLACEMENT_3D('',#10470,#10471,#10472);
-+#10474=PLANE('',#10473);
-+#10475=ORIENTED_EDGE('',*,*,#5798,.F.);
-+#10477=ORIENTED_EDGE('',*,*,#10476,.T.);
-+#10479=ORIENTED_EDGE('',*,*,#10478,.T.);
-+#10481=ORIENTED_EDGE('',*,*,#10480,.F.);
-+#10482=EDGE_LOOP('',(#10475,#10477,#10479,#10481));
-+#10483=FACE_OUTER_BOUND('',#10482,.F.);
-+#10484=ADVANCED_FACE('',(#10483),#10474,.F.);
-+#10485=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
-+#10486=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10487=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10488=AXIS2_PLACEMENT_3D('',#10485,#10486,#10487);
-+#10489=CYLINDRICAL_SURFACE('',#10488,5.E-1);
-+#10490=ORIENTED_EDGE('',*,*,#5804,.F.);
-+#10492=ORIENTED_EDGE('',*,*,#10491,.T.);
-+#10494=ORIENTED_EDGE('',*,*,#10493,.T.);
-+#10495=ORIENTED_EDGE('',*,*,#10476,.F.);
-+#10496=EDGE_LOOP('',(#10490,#10492,#10494,#10495));
-+#10497=FACE_OUTER_BOUND('',#10496,.F.);
-+#10498=ADVANCED_FACE('',(#10497),#10489,.F.);
-+#10499=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#10500=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10501=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10502=AXIS2_PLACEMENT_3D('',#10499,#10500,#10501);
-+#10503=PLANE('',#10502);
-+#10504=ORIENTED_EDGE('',*,*,#5802,.F.);
-+#10506=ORIENTED_EDGE('',*,*,#10505,.T.);
-+#10508=ORIENTED_EDGE('',*,*,#10507,.T.);
-+#10509=ORIENTED_EDGE('',*,*,#10491,.F.);
-+#10510=EDGE_LOOP('',(#10504,#10506,#10508,#10509));
-+#10511=FACE_OUTER_BOUND('',#10510,.F.);
-+#10512=ADVANCED_FACE('',(#10511),#10503,.F.);
-+#10513=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
-+#10514=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10515=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10516=AXIS2_PLACEMENT_3D('',#10513,#10514,#10515);
-+#10517=CYLINDRICAL_SURFACE('',#10516,5.E-1);
-+#10518=ORIENTED_EDGE('',*,*,#5800,.F.);
-+#10519=ORIENTED_EDGE('',*,*,#10480,.T.);
-+#10521=ORIENTED_EDGE('',*,*,#10520,.T.);
-+#10522=ORIENTED_EDGE('',*,*,#10505,.F.);
-+#10523=EDGE_LOOP('',(#10518,#10519,#10521,#10522));
-+#10524=FACE_OUTER_BOUND('',#10523,.F.);
-+#10525=ADVANCED_FACE('',(#10524),#10517,.F.);
-+#10526=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10527=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10528=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10529=AXIS2_PLACEMENT_3D('',#10526,#10527,#10528);
-+#10530=PLANE('',#10529);
-+#10531=ORIENTED_EDGE('',*,*,#10478,.F.);
-+#10532=ORIENTED_EDGE('',*,*,#10493,.F.);
-+#10533=ORIENTED_EDGE('',*,*,#10507,.F.);
-+#10534=ORIENTED_EDGE('',*,*,#10520,.F.);
-+#10535=EDGE_LOOP('',(#10531,#10532,#10533,#10534));
-+#10536=FACE_OUTER_BOUND('',#10535,.F.);
-+#10537=ADVANCED_FACE('',(#10536),#10530,.T.);
-+#10538=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#10539=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10540=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10541=AXIS2_PLACEMENT_3D('',#10538,#10539,#10540);
-+#10542=PLANE('',#10541);
-+#10543=ORIENTED_EDGE('',*,*,#5808,.F.);
-+#10545=ORIENTED_EDGE('',*,*,#10544,.T.);
-+#10547=ORIENTED_EDGE('',*,*,#10546,.T.);
-+#10549=ORIENTED_EDGE('',*,*,#10548,.F.);
-+#10550=EDGE_LOOP('',(#10543,#10545,#10547,#10549));
-+#10551=FACE_OUTER_BOUND('',#10550,.F.);
-+#10552=ADVANCED_FACE('',(#10551),#10542,.F.);
-+#10553=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
-+#10554=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10555=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10556=AXIS2_PLACEMENT_3D('',#10553,#10554,#10555);
-+#10557=CYLINDRICAL_SURFACE('',#10556,4.375E-1);
-+#10558=ORIENTED_EDGE('',*,*,#5814,.F.);
-+#10560=ORIENTED_EDGE('',*,*,#10559,.T.);
-+#10562=ORIENTED_EDGE('',*,*,#10561,.T.);
-+#10563=ORIENTED_EDGE('',*,*,#10544,.F.);
-+#10564=EDGE_LOOP('',(#10558,#10560,#10562,#10563));
-+#10565=FACE_OUTER_BOUND('',#10564,.F.);
-+#10566=ADVANCED_FACE('',(#10565),#10557,.F.);
-+#10567=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#10568=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10569=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10570=AXIS2_PLACEMENT_3D('',#10567,#10568,#10569);
-+#10571=PLANE('',#10570);
-+#10572=ORIENTED_EDGE('',*,*,#5812,.F.);
-+#10574=ORIENTED_EDGE('',*,*,#10573,.T.);
-+#10576=ORIENTED_EDGE('',*,*,#10575,.T.);
-+#10577=ORIENTED_EDGE('',*,*,#10559,.F.);
-+#10578=EDGE_LOOP('',(#10572,#10574,#10576,#10577));
-+#10579=FACE_OUTER_BOUND('',#10578,.F.);
-+#10580=ADVANCED_FACE('',(#10579),#10571,.F.);
-+#10581=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
-+#10582=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10583=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10584=AXIS2_PLACEMENT_3D('',#10581,#10582,#10583);
-+#10585=CYLINDRICAL_SURFACE('',#10584,4.375E-1);
-+#10586=ORIENTED_EDGE('',*,*,#5810,.F.);
-+#10587=ORIENTED_EDGE('',*,*,#10548,.T.);
-+#10589=ORIENTED_EDGE('',*,*,#10588,.T.);
-+#10590=ORIENTED_EDGE('',*,*,#10573,.F.);
-+#10591=EDGE_LOOP('',(#10586,#10587,#10589,#10590));
-+#10592=FACE_OUTER_BOUND('',#10591,.F.);
-+#10593=ADVANCED_FACE('',(#10592),#10585,.F.);
-+#10594=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10595=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10596=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10597=AXIS2_PLACEMENT_3D('',#10594,#10595,#10596);
-+#10598=PLANE('',#10597);
-+#10599=ORIENTED_EDGE('',*,*,#10546,.F.);
-+#10600=ORIENTED_EDGE('',*,*,#10561,.F.);
-+#10601=ORIENTED_EDGE('',*,*,#10575,.F.);
-+#10602=ORIENTED_EDGE('',*,*,#10588,.F.);
-+#10603=EDGE_LOOP('',(#10599,#10600,#10601,#10602));
-+#10604=FACE_OUTER_BOUND('',#10603,.F.);
-+#10605=ADVANCED_FACE('',(#10604),#10598,.T.);
-+#10606=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#10607=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10608=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10609=AXIS2_PLACEMENT_3D('',#10606,#10607,#10608);
-+#10610=PLANE('',#10609);
-+#10611=ORIENTED_EDGE('',*,*,#5818,.T.);
-+#10613=ORIENTED_EDGE('',*,*,#10612,.T.);
-+#10615=ORIENTED_EDGE('',*,*,#10614,.F.);
-+#10617=ORIENTED_EDGE('',*,*,#10616,.F.);
-+#10618=EDGE_LOOP('',(#10611,#10613,#10615,#10617));
-+#10619=FACE_OUTER_BOUND('',#10618,.F.);
-+#10620=ADVANCED_FACE('',(#10619),#10610,.T.);
-+#10621=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
-+#10622=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10623=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10624=AXIS2_PLACEMENT_3D('',#10621,#10622,#10623);
-+#10625=CYLINDRICAL_SURFACE('',#10624,5.625E-1);
-+#10626=ORIENTED_EDGE('',*,*,#5824,.T.);
-+#10628=ORIENTED_EDGE('',*,*,#10627,.T.);
-+#10630=ORIENTED_EDGE('',*,*,#10629,.F.);
-+#10631=ORIENTED_EDGE('',*,*,#10612,.F.);
-+#10632=EDGE_LOOP('',(#10626,#10628,#10630,#10631));
-+#10633=FACE_OUTER_BOUND('',#10632,.F.);
-+#10634=ADVANCED_FACE('',(#10633),#10625,.F.);
-+#10635=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#10636=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10637=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10638=AXIS2_PLACEMENT_3D('',#10635,#10636,#10637);
-+#10639=PLANE('',#10638);
-+#10640=ORIENTED_EDGE('',*,*,#5822,.T.);
-+#10642=ORIENTED_EDGE('',*,*,#10641,.T.);
-+#10644=ORIENTED_EDGE('',*,*,#10643,.F.);
-+#10645=ORIENTED_EDGE('',*,*,#10627,.F.);
-+#10646=EDGE_LOOP('',(#10640,#10642,#10644,#10645));
-+#10647=FACE_OUTER_BOUND('',#10646,.F.);
-+#10648=ADVANCED_FACE('',(#10647),#10639,.T.);
-+#10649=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
-+#10650=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10651=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10652=AXIS2_PLACEMENT_3D('',#10649,#10650,#10651);
-+#10653=CYLINDRICAL_SURFACE('',#10652,5.625E-1);
-+#10654=ORIENTED_EDGE('',*,*,#5820,.T.);
-+#10655=ORIENTED_EDGE('',*,*,#10616,.T.);
-+#10657=ORIENTED_EDGE('',*,*,#10656,.F.);
-+#10658=ORIENTED_EDGE('',*,*,#10641,.F.);
-+#10659=EDGE_LOOP('',(#10654,#10655,#10657,#10658));
-+#10660=FACE_OUTER_BOUND('',#10659,.F.);
-+#10661=ADVANCED_FACE('',(#10660),#10653,.F.);
-+#10662=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
-+#10663=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10664=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10665=AXIS2_PLACEMENT_3D('',#10662,#10663,#10664);
-+#10666=PLANE('',#10665);
-+#10667=ORIENTED_EDGE('',*,*,#10614,.T.);
-+#10668=ORIENTED_EDGE('',*,*,#10629,.T.);
-+#10669=ORIENTED_EDGE('',*,*,#10643,.T.);
-+#10670=ORIENTED_EDGE('',*,*,#10656,.T.);
-+#10671=EDGE_LOOP('',(#10667,#10668,#10669,#10670));
-+#10672=FACE_OUTER_BOUND('',#10671,.F.);
-+#10673=ADVANCED_FACE('',(#10672),#10666,.F.);
-+#10674=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
-+#10675=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10676=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10677=AXIS2_PLACEMENT_3D('',#10674,#10675,#10676);
-+#10678=PLANE('',#10677);
-+#10680=ORIENTED_EDGE('',*,*,#10679,.F.);
-+#10682=ORIENTED_EDGE('',*,*,#10681,.T.);
-+#10684=ORIENTED_EDGE('',*,*,#10683,.T.);
-+#10686=ORIENTED_EDGE('',*,*,#10685,.T.);
-+#10688=ORIENTED_EDGE('',*,*,#10687,.T.);
-+#10689=EDGE_LOOP('',(#10680,#10682,#10684,#10686,#10688));
-+#10690=FACE_OUTER_BOUND('',#10689,.F.);
-+#10691=ADVANCED_FACE('',(#10690),#10678,.F.);
-+#10692=CARTESIAN_POINT('',(1.455736763592E0,-6.642389448824E-2,
-+2.742280476768E1));
-+#10693=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10694=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
-+#10695=AXIS2_PLACEMENT_3D('',#10692,#10693,#10694);
-+#10696=CYLINDRICAL_SURFACE('',#10695,7.5E-1);
-+#10698=ORIENTED_EDGE('',*,*,#10697,.F.);
-+#10699=ORIENTED_EDGE('',*,*,#5932,.T.);
-+#10701=ORIENTED_EDGE('',*,*,#10700,.T.);
-+#10702=ORIENTED_EDGE('',*,*,#10679,.T.);
-+#10703=EDGE_LOOP('',(#10698,#10699,#10701,#10702));
-+#10704=FACE_OUTER_BOUND('',#10703,.F.);
-+#10705=ADVANCED_FACE('',(#10704),#10696,.F.);
-+#10706=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
-+#10707=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10708=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10709=AXIS2_PLACEMENT_3D('',#10706,#10707,#10708);
-+#10710=CYLINDRICAL_SURFACE('',#10709,9.225E-1);
-+#10711=ORIENTED_EDGE('',*,*,#10697,.T.);
-+#10712=ORIENTED_EDGE('',*,*,#10687,.F.);
-+#10714=ORIENTED_EDGE('',*,*,#10713,.F.);
-+#10715=ORIENTED_EDGE('',*,*,#5934,.T.);
-+#10716=EDGE_LOOP('',(#10711,#10712,#10714,#10715));
-+#10717=FACE_OUTER_BOUND('',#10716,.F.);
-+#10718=ADVANCED_FACE('',(#10717),#10710,.F.);
-+#10719=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
-+#10720=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10721=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10722=AXIS2_PLACEMENT_3D('',#10719,#10720,#10721);
-+#10723=CYLINDRICAL_SURFACE('',#10722,5.6875E0);
-+#10724=ORIENTED_EDGE('',*,*,#5936,.F.);
-+#10725=ORIENTED_EDGE('',*,*,#10713,.T.);
-+#10726=ORIENTED_EDGE('',*,*,#10685,.F.);
-+#10728=ORIENTED_EDGE('',*,*,#10727,.F.);
-+#10729=EDGE_LOOP('',(#10724,#10725,#10726,#10728));
-+#10730=FACE_OUTER_BOUND('',#10729,.F.);
-+#10731=ADVANCED_FACE('',(#10730),#10723,.T.);
-+#10732=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
-+#10733=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10734=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10735=AXIS2_PLACEMENT_3D('',#10732,#10733,#10734);
-+#10736=CYLINDRICAL_SURFACE('',#10735,8.669989027347E-1);
-+#10737=ORIENTED_EDGE('',*,*,#5938,.T.);
-+#10738=ORIENTED_EDGE('',*,*,#10727,.T.);
-+#10739=ORIENTED_EDGE('',*,*,#10683,.F.);
-+#10741=ORIENTED_EDGE('',*,*,#10740,.F.);
-+#10742=EDGE_LOOP('',(#10737,#10738,#10739,#10741));
-+#10743=FACE_OUTER_BOUND('',#10742,.F.);
-+#10744=ADVANCED_FACE('',(#10743),#10736,.F.);
-+#10745=CARTESIAN_POINT('',(6.875E-1,0.E0,2.771522817587E1));
-+#10746=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10747=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#10748=AXIS2_PLACEMENT_3D('',#10745,#10746,#10747);
-+#10749=PLANE('',#10748);
-+#10750=ORIENTED_EDGE('',*,*,#10700,.F.);
-+#10751=ORIENTED_EDGE('',*,*,#5930,.T.);
-+#10752=ORIENTED_EDGE('',*,*,#10740,.T.);
-+#10753=ORIENTED_EDGE('',*,*,#10681,.F.);
-+#10754=EDGE_LOOP('',(#10750,#10751,#10752,#10753));
-+#10755=FACE_OUTER_BOUND('',#10754,.F.);
-+#10756=ADVANCED_FACE('',(#10755),#10749,.T.);
-+#10757=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#10758=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10759=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10760=AXIS2_PLACEMENT_3D('',#10757,#10758,#10759);
-+#10761=PLANE('',#10760);
-+#10762=ORIENTED_EDGE('',*,*,#5828,.T.);
-+#10764=ORIENTED_EDGE('',*,*,#10763,.T.);
-+#10766=ORIENTED_EDGE('',*,*,#10765,.F.);
-+#10768=ORIENTED_EDGE('',*,*,#10767,.F.);
-+#10769=EDGE_LOOP('',(#10762,#10764,#10766,#10768));
-+#10770=FACE_OUTER_BOUND('',#10769,.F.);
-+#10771=ADVANCED_FACE('',(#10770),#10761,.T.);
-+#10772=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
-+#10773=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10774=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10775=AXIS2_PLACEMENT_3D('',#10772,#10773,#10774);
-+#10776=CYLINDRICAL_SURFACE('',#10775,5.625E-1);
-+#10777=ORIENTED_EDGE('',*,*,#5834,.T.);
-+#10779=ORIENTED_EDGE('',*,*,#10778,.T.);
-+#10781=ORIENTED_EDGE('',*,*,#10780,.F.);
-+#10782=ORIENTED_EDGE('',*,*,#10763,.F.);
-+#10783=EDGE_LOOP('',(#10777,#10779,#10781,#10782));
-+#10784=FACE_OUTER_BOUND('',#10783,.F.);
-+#10785=ADVANCED_FACE('',(#10784),#10776,.F.);
-+#10786=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#10787=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10788=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10789=AXIS2_PLACEMENT_3D('',#10786,#10787,#10788);
-+#10790=PLANE('',#10789);
-+#10791=ORIENTED_EDGE('',*,*,#5832,.T.);
-+#10793=ORIENTED_EDGE('',*,*,#10792,.T.);
-+#10795=ORIENTED_EDGE('',*,*,#10794,.F.);
-+#10796=ORIENTED_EDGE('',*,*,#10778,.F.);
-+#10797=EDGE_LOOP('',(#10791,#10793,#10795,#10796));
-+#10798=FACE_OUTER_BOUND('',#10797,.F.);
-+#10799=ADVANCED_FACE('',(#10798),#10790,.T.);
-+#10800=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
-+#10801=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10802=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10803=AXIS2_PLACEMENT_3D('',#10800,#10801,#10802);
-+#10804=CYLINDRICAL_SURFACE('',#10803,5.625E-1);
-+#10805=ORIENTED_EDGE('',*,*,#5830,.T.);
-+#10806=ORIENTED_EDGE('',*,*,#10767,.T.);
-+#10808=ORIENTED_EDGE('',*,*,#10807,.F.);
-+#10809=ORIENTED_EDGE('',*,*,#10792,.F.);
-+#10810=EDGE_LOOP('',(#10805,#10806,#10808,#10809));
-+#10811=FACE_OUTER_BOUND('',#10810,.F.);
-+#10812=ADVANCED_FACE('',(#10811),#10804,.F.);
-+#10813=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#10814=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10815=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10816=AXIS2_PLACEMENT_3D('',#10813,#10814,#10815);
-+#10817=PLANE('',#10816);
-+#10818=ORIENTED_EDGE('',*,*,#10765,.T.);
-+#10819=ORIENTED_EDGE('',*,*,#10780,.T.);
-+#10820=ORIENTED_EDGE('',*,*,#10794,.T.);
-+#10821=ORIENTED_EDGE('',*,*,#10807,.T.);
-+#10822=EDGE_LOOP('',(#10818,#10819,#10820,#10821));
-+#10823=FACE_OUTER_BOUND('',#10822,.F.);
-+#10824=ADVANCED_FACE('',(#10823),#10817,.F.);
-+#10825=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#10826=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10827=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10828=AXIS2_PLACEMENT_3D('',#10825,#10826,#10827);
-+#10829=PLANE('',#10828);
-+#10831=ORIENTED_EDGE('',*,*,#10830,.F.);
-+#10833=ORIENTED_EDGE('',*,*,#10832,.T.);
-+#10835=ORIENTED_EDGE('',*,*,#10834,.T.);
-+#10837=ORIENTED_EDGE('',*,*,#10836,.T.);
-+#10839=ORIENTED_EDGE('',*,*,#10838,.T.);
-+#10840=EDGE_LOOP('',(#10831,#10833,#10835,#10837,#10839));
-+#10841=FACE_OUTER_BOUND('',#10840,.F.);
-+#10842=ADVANCED_FACE('',(#10841),#10829,.F.);
-+#10843=CARTESIAN_POINT('',(2.254426323641E1,-6.642389448824E-2,
-+4.577195232320E0));
-+#10844=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10845=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
-+#10846=AXIS2_PLACEMENT_3D('',#10843,#10844,#10845);
-+#10847=CYLINDRICAL_SURFACE('',#10846,7.5E-1);
-+#10849=ORIENTED_EDGE('',*,*,#10848,.F.);
-+#10850=ORIENTED_EDGE('',*,*,#5920,.T.);
-+#10852=ORIENTED_EDGE('',*,*,#10851,.T.);
-+#10853=ORIENTED_EDGE('',*,*,#10830,.T.);
-+#10854=EDGE_LOOP('',(#10849,#10850,#10852,#10853));
-+#10855=FACE_OUTER_BOUND('',#10854,.F.);
-+#10856=ADVANCED_FACE('',(#10855),#10847,.F.);
-+#10857=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
-+#10858=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10859=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10860=AXIS2_PLACEMENT_3D('',#10857,#10858,#10859);
-+#10861=CYLINDRICAL_SURFACE('',#10860,9.225E-1);
-+#10862=ORIENTED_EDGE('',*,*,#10848,.T.);
-+#10863=ORIENTED_EDGE('',*,*,#10838,.F.);
-+#10865=ORIENTED_EDGE('',*,*,#10864,.F.);
-+#10866=ORIENTED_EDGE('',*,*,#5922,.T.);
-+#10867=EDGE_LOOP('',(#10862,#10863,#10865,#10866));
-+#10868=FACE_OUTER_BOUND('',#10867,.F.);
-+#10869=ADVANCED_FACE('',(#10868),#10861,.F.);
-+#10870=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
-+#10871=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10872=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10873=AXIS2_PLACEMENT_3D('',#10870,#10871,#10872);
-+#10874=CYLINDRICAL_SURFACE('',#10873,5.6875E0);
-+#10875=ORIENTED_EDGE('',*,*,#5924,.F.);
-+#10876=ORIENTED_EDGE('',*,*,#10864,.T.);
-+#10877=ORIENTED_EDGE('',*,*,#10836,.F.);
-+#10879=ORIENTED_EDGE('',*,*,#10878,.F.);
-+#10880=EDGE_LOOP('',(#10875,#10876,#10877,#10879));
-+#10881=FACE_OUTER_BOUND('',#10880,.F.);
-+#10882=ADVANCED_FACE('',(#10881),#10874,.T.);
-+#10883=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
-+#10884=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10885=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10886=AXIS2_PLACEMENT_3D('',#10883,#10884,#10885);
-+#10887=CYLINDRICAL_SURFACE('',#10886,8.669989027347E-1);
-+#10888=ORIENTED_EDGE('',*,*,#5926,.T.);
-+#10889=ORIENTED_EDGE('',*,*,#10878,.T.);
-+#10890=ORIENTED_EDGE('',*,*,#10834,.F.);
-+#10892=ORIENTED_EDGE('',*,*,#10891,.F.);
-+#10893=EDGE_LOOP('',(#10888,#10889,#10890,#10892));
-+#10894=FACE_OUTER_BOUND('',#10893,.F.);
-+#10895=ADVANCED_FACE('',(#10894),#10887,.F.);
-+#10896=CARTESIAN_POINT('',(2.33125E1,0.E0,4.284771824132E0));
-+#10897=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#10898=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10899=AXIS2_PLACEMENT_3D('',#10896,#10897,#10898);
-+#10900=PLANE('',#10899);
-+#10901=ORIENTED_EDGE('',*,*,#10851,.F.);
-+#10902=ORIENTED_EDGE('',*,*,#5918,.T.);
-+#10903=ORIENTED_EDGE('',*,*,#10891,.T.);
-+#10904=ORIENTED_EDGE('',*,*,#10832,.F.);
-+#10905=EDGE_LOOP('',(#10901,#10902,#10903,#10904));
-+#10906=FACE_OUTER_BOUND('',#10905,.F.);
-+#10907=ADVANCED_FACE('',(#10906),#10900,.T.);
-+#10908=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#10909=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10910=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10911=AXIS2_PLACEMENT_3D('',#10908,#10909,#10910);
-+#10912=PLANE('',#10911);
-+#10913=ORIENTED_EDGE('',*,*,#5838,.T.);
-+#10915=ORIENTED_EDGE('',*,*,#10914,.T.);
-+#10917=ORIENTED_EDGE('',*,*,#10916,.F.);
-+#10919=ORIENTED_EDGE('',*,*,#10918,.F.);
-+#10920=EDGE_LOOP('',(#10913,#10915,#10917,#10919));
-+#10921=FACE_OUTER_BOUND('',#10920,.F.);
-+#10922=ADVANCED_FACE('',(#10921),#10912,.T.);
-+#10923=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
-+#10924=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10925=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10926=AXIS2_PLACEMENT_3D('',#10923,#10924,#10925);
-+#10927=CYLINDRICAL_SURFACE('',#10926,5.625E-1);
-+#10928=ORIENTED_EDGE('',*,*,#5844,.T.);
-+#10930=ORIENTED_EDGE('',*,*,#10929,.T.);
-+#10932=ORIENTED_EDGE('',*,*,#10931,.F.);
-+#10933=ORIENTED_EDGE('',*,*,#10914,.F.);
-+#10934=EDGE_LOOP('',(#10928,#10930,#10932,#10933));
-+#10935=FACE_OUTER_BOUND('',#10934,.F.);
-+#10936=ADVANCED_FACE('',(#10935),#10927,.F.);
-+#10937=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#10938=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10939=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10940=AXIS2_PLACEMENT_3D('',#10937,#10938,#10939);
-+#10941=PLANE('',#10940);
-+#10942=ORIENTED_EDGE('',*,*,#5842,.T.);
-+#10944=ORIENTED_EDGE('',*,*,#10943,.T.);
-+#10946=ORIENTED_EDGE('',*,*,#10945,.F.);
-+#10947=ORIENTED_EDGE('',*,*,#10929,.F.);
-+#10948=EDGE_LOOP('',(#10942,#10944,#10946,#10947));
-+#10949=FACE_OUTER_BOUND('',#10948,.F.);
-+#10950=ADVANCED_FACE('',(#10949),#10941,.T.);
-+#10951=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
-+#10952=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10953=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10954=AXIS2_PLACEMENT_3D('',#10951,#10952,#10953);
-+#10955=CYLINDRICAL_SURFACE('',#10954,5.625E-1);
-+#10956=ORIENTED_EDGE('',*,*,#5840,.T.);
-+#10957=ORIENTED_EDGE('',*,*,#10918,.T.);
-+#10959=ORIENTED_EDGE('',*,*,#10958,.F.);
-+#10960=ORIENTED_EDGE('',*,*,#10943,.F.);
-+#10961=EDGE_LOOP('',(#10956,#10957,#10959,#10960));
-+#10962=FACE_OUTER_BOUND('',#10961,.F.);
-+#10963=ADVANCED_FACE('',(#10962),#10955,.F.);
-+#10964=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#10965=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10966=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10967=AXIS2_PLACEMENT_3D('',#10964,#10965,#10966);
-+#10968=PLANE('',#10967);
-+#10969=ORIENTED_EDGE('',*,*,#10916,.T.);
-+#10970=ORIENTED_EDGE('',*,*,#10931,.T.);
-+#10971=ORIENTED_EDGE('',*,*,#10945,.T.);
-+#10972=ORIENTED_EDGE('',*,*,#10958,.T.);
-+#10973=EDGE_LOOP('',(#10969,#10970,#10971,#10972));
-+#10974=FACE_OUTER_BOUND('',#10973,.F.);
-+#10975=ADVANCED_FACE('',(#10974),#10968,.F.);
-+#10976=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#10977=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10978=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10979=AXIS2_PLACEMENT_3D('',#10976,#10977,#10978);
-+#10980=PLANE('',#10979);
-+#10981=ORIENTED_EDGE('',*,*,#5848,.T.);
-+#10983=ORIENTED_EDGE('',*,*,#10982,.T.);
-+#10985=ORIENTED_EDGE('',*,*,#10984,.F.);
-+#10987=ORIENTED_EDGE('',*,*,#10986,.F.);
-+#10988=EDGE_LOOP('',(#10981,#10983,#10985,#10987));
-+#10989=FACE_OUTER_BOUND('',#10988,.F.);
-+#10990=ADVANCED_FACE('',(#10989),#10980,.T.);
-+#10991=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
-+#10992=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10993=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10994=AXIS2_PLACEMENT_3D('',#10991,#10992,#10993);
-+#10995=CYLINDRICAL_SURFACE('',#10994,5.625E-1);
-+#10996=ORIENTED_EDGE('',*,*,#5854,.T.);
-+#10998=ORIENTED_EDGE('',*,*,#10997,.T.);
-+#11000=ORIENTED_EDGE('',*,*,#10999,.F.);
-+#11001=ORIENTED_EDGE('',*,*,#10982,.F.);
-+#11002=EDGE_LOOP('',(#10996,#10998,#11000,#11001));
-+#11003=FACE_OUTER_BOUND('',#11002,.F.);
-+#11004=ADVANCED_FACE('',(#11003),#10995,.F.);
-+#11005=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#11006=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11007=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11008=AXIS2_PLACEMENT_3D('',#11005,#11006,#11007);
-+#11009=PLANE('',#11008);
-+#11010=ORIENTED_EDGE('',*,*,#5852,.T.);
-+#11012=ORIENTED_EDGE('',*,*,#11011,.T.);
-+#11014=ORIENTED_EDGE('',*,*,#11013,.F.);
-+#11015=ORIENTED_EDGE('',*,*,#10997,.F.);
-+#11016=EDGE_LOOP('',(#11010,#11012,#11014,#11015));
-+#11017=FACE_OUTER_BOUND('',#11016,.F.);
-+#11018=ADVANCED_FACE('',(#11017),#11009,.T.);
-+#11019=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
-+#11020=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11021=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11022=AXIS2_PLACEMENT_3D('',#11019,#11020,#11021);
-+#11023=CYLINDRICAL_SURFACE('',#11022,5.625E-1);
-+#11024=ORIENTED_EDGE('',*,*,#5850,.T.);
-+#11025=ORIENTED_EDGE('',*,*,#10986,.T.);
-+#11027=ORIENTED_EDGE('',*,*,#11026,.F.);
-+#11028=ORIENTED_EDGE('',*,*,#11011,.F.);
-+#11029=EDGE_LOOP('',(#11024,#11025,#11027,#11028));
-+#11030=FACE_OUTER_BOUND('',#11029,.F.);
-+#11031=ADVANCED_FACE('',(#11030),#11023,.F.);
-+#11032=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11033=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11034=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11035=AXIS2_PLACEMENT_3D('',#11032,#11033,#11034);
-+#11036=PLANE('',#11035);
-+#11037=ORIENTED_EDGE('',*,*,#10984,.T.);
-+#11038=ORIENTED_EDGE('',*,*,#10999,.T.);
-+#11039=ORIENTED_EDGE('',*,*,#11013,.T.);
-+#11040=ORIENTED_EDGE('',*,*,#11026,.T.);
-+#11041=EDGE_LOOP('',(#11037,#11038,#11039,#11040));
-+#11042=FACE_OUTER_BOUND('',#11041,.F.);
-+#11043=ADVANCED_FACE('',(#11042),#11036,.F.);
-+#11044=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#11045=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11046=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11047=AXIS2_PLACEMENT_3D('',#11044,#11045,#11046);
-+#11048=PLANE('',#11047);
-+#11049=ORIENTED_EDGE('',*,*,#5858,.T.);
-+#11051=ORIENTED_EDGE('',*,*,#11050,.T.);
-+#11053=ORIENTED_EDGE('',*,*,#11052,.F.);
-+#11055=ORIENTED_EDGE('',*,*,#11054,.F.);
-+#11056=EDGE_LOOP('',(#11049,#11051,#11053,#11055));
-+#11057=FACE_OUTER_BOUND('',#11056,.F.);
-+#11058=ADVANCED_FACE('',(#11057),#11048,.T.);
-+#11059=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
-+#11060=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11061=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11062=AXIS2_PLACEMENT_3D('',#11059,#11060,#11061);
-+#11063=CYLINDRICAL_SURFACE('',#11062,5.E-1);
-+#11064=ORIENTED_EDGE('',*,*,#5864,.T.);
-+#11066=ORIENTED_EDGE('',*,*,#11065,.T.);
-+#11068=ORIENTED_EDGE('',*,*,#11067,.F.);
-+#11069=ORIENTED_EDGE('',*,*,#11050,.F.);
-+#11070=EDGE_LOOP('',(#11064,#11066,#11068,#11069));
-+#11071=FACE_OUTER_BOUND('',#11070,.F.);
-+#11072=ADVANCED_FACE('',(#11071),#11063,.F.);
-+#11073=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#11074=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11075=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11076=AXIS2_PLACEMENT_3D('',#11073,#11074,#11075);
-+#11077=PLANE('',#11076);
-+#11078=ORIENTED_EDGE('',*,*,#5862,.T.);
-+#11080=ORIENTED_EDGE('',*,*,#11079,.T.);
-+#11082=ORIENTED_EDGE('',*,*,#11081,.F.);
-+#11083=ORIENTED_EDGE('',*,*,#11065,.F.);
-+#11084=EDGE_LOOP('',(#11078,#11080,#11082,#11083));
-+#11085=FACE_OUTER_BOUND('',#11084,.F.);
-+#11086=ADVANCED_FACE('',(#11085),#11077,.T.);
-+#11087=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
-+#11088=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11089=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11090=AXIS2_PLACEMENT_3D('',#11087,#11088,#11089);
-+#11091=CYLINDRICAL_SURFACE('',#11090,5.E-1);
-+#11092=ORIENTED_EDGE('',*,*,#5860,.T.);
-+#11093=ORIENTED_EDGE('',*,*,#11054,.T.);
-+#11095=ORIENTED_EDGE('',*,*,#11094,.F.);
-+#11096=ORIENTED_EDGE('',*,*,#11079,.F.);
-+#11097=EDGE_LOOP('',(#11092,#11093,#11095,#11096));
-+#11098=FACE_OUTER_BOUND('',#11097,.F.);
-+#11099=ADVANCED_FACE('',(#11098),#11091,.F.);
-+#11100=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11101=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11102=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11103=AXIS2_PLACEMENT_3D('',#11100,#11101,#11102);
-+#11104=PLANE('',#11103);
-+#11105=ORIENTED_EDGE('',*,*,#11052,.T.);
-+#11106=ORIENTED_EDGE('',*,*,#11067,.T.);
-+#11107=ORIENTED_EDGE('',*,*,#11081,.T.);
-+#11108=ORIENTED_EDGE('',*,*,#11094,.T.);
-+#11109=EDGE_LOOP('',(#11105,#11106,#11107,#11108));
-+#11110=FACE_OUTER_BOUND('',#11109,.F.);
-+#11111=ADVANCED_FACE('',(#11110),#11104,.F.);
-+#11112=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#11113=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11114=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11115=AXIS2_PLACEMENT_3D('',#11112,#11113,#11114);
-+#11116=PLANE('',#11115);
-+#11117=ORIENTED_EDGE('',*,*,#5868,.T.);
-+#11119=ORIENTED_EDGE('',*,*,#11118,.T.);
-+#11121=ORIENTED_EDGE('',*,*,#11120,.F.);
-+#11123=ORIENTED_EDGE('',*,*,#11122,.F.);
-+#11124=EDGE_LOOP('',(#11117,#11119,#11121,#11123));
-+#11125=FACE_OUTER_BOUND('',#11124,.F.);
-+#11126=ADVANCED_FACE('',(#11125),#11116,.T.);
-+#11127=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
-+#11128=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11129=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11130=AXIS2_PLACEMENT_3D('',#11127,#11128,#11129);
-+#11131=CYLINDRICAL_SURFACE('',#11130,4.375E-1);
-+#11132=ORIENTED_EDGE('',*,*,#5874,.T.);
-+#11134=ORIENTED_EDGE('',*,*,#11133,.T.);
-+#11136=ORIENTED_EDGE('',*,*,#11135,.F.);
-+#11137=ORIENTED_EDGE('',*,*,#11118,.F.);
-+#11138=EDGE_LOOP('',(#11132,#11134,#11136,#11137));
-+#11139=FACE_OUTER_BOUND('',#11138,.F.);
-+#11140=ADVANCED_FACE('',(#11139),#11131,.F.);
-+#11141=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#11142=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11143=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11144=AXIS2_PLACEMENT_3D('',#11141,#11142,#11143);
-+#11145=PLANE('',#11144);
-+#11146=ORIENTED_EDGE('',*,*,#5872,.T.);
-+#11148=ORIENTED_EDGE('',*,*,#11147,.T.);
-+#11150=ORIENTED_EDGE('',*,*,#11149,.F.);
-+#11151=ORIENTED_EDGE('',*,*,#11133,.F.);
-+#11152=EDGE_LOOP('',(#11146,#11148,#11150,#11151));
-+#11153=FACE_OUTER_BOUND('',#11152,.F.);
-+#11154=ADVANCED_FACE('',(#11153),#11145,.T.);
-+#11155=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
-+#11156=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11157=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11158=AXIS2_PLACEMENT_3D('',#11155,#11156,#11157);
-+#11159=CYLINDRICAL_SURFACE('',#11158,4.375E-1);
-+#11160=ORIENTED_EDGE('',*,*,#5870,.T.);
-+#11161=ORIENTED_EDGE('',*,*,#11122,.T.);
-+#11163=ORIENTED_EDGE('',*,*,#11162,.F.);
-+#11164=ORIENTED_EDGE('',*,*,#11147,.F.);
-+#11165=EDGE_LOOP('',(#11160,#11161,#11163,#11164));
-+#11166=FACE_OUTER_BOUND('',#11165,.F.);
-+#11167=ADVANCED_FACE('',(#11166),#11159,.F.);
-+#11168=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11169=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11170=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11171=AXIS2_PLACEMENT_3D('',#11168,#11169,#11170);
-+#11172=PLANE('',#11171);
-+#11173=ORIENTED_EDGE('',*,*,#11120,.T.);
-+#11174=ORIENTED_EDGE('',*,*,#11135,.T.);
-+#11175=ORIENTED_EDGE('',*,*,#11149,.T.);
-+#11176=ORIENTED_EDGE('',*,*,#11162,.T.);
-+#11177=EDGE_LOOP('',(#11173,#11174,#11175,#11176));
-+#11178=FACE_OUTER_BOUND('',#11177,.F.);
-+#11179=ADVANCED_FACE('',(#11178),#11172,.F.);
-+#11180=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#11181=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11182=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11183=AXIS2_PLACEMENT_3D('',#11180,#11181,#11182);
-+#11184=PLANE('',#11183);
-+#11185=ORIENTED_EDGE('',*,*,#5878,.F.);
-+#11187=ORIENTED_EDGE('',*,*,#11186,.T.);
-+#11189=ORIENTED_EDGE('',*,*,#11188,.T.);
-+#11191=ORIENTED_EDGE('',*,*,#11190,.F.);
-+#11192=EDGE_LOOP('',(#11185,#11187,#11189,#11191));
-+#11193=FACE_OUTER_BOUND('',#11192,.F.);
-+#11194=ADVANCED_FACE('',(#11193),#11184,.F.);
-+#11195=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
-+#11196=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11197=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11198=AXIS2_PLACEMENT_3D('',#11195,#11196,#11197);
-+#11199=CYLINDRICAL_SURFACE('',#11198,5.625E-1);
-+#11200=ORIENTED_EDGE('',*,*,#5884,.F.);
-+#11202=ORIENTED_EDGE('',*,*,#11201,.T.);
-+#11204=ORIENTED_EDGE('',*,*,#11203,.T.);
-+#11205=ORIENTED_EDGE('',*,*,#11186,.F.);
-+#11206=EDGE_LOOP('',(#11200,#11202,#11204,#11205));
-+#11207=FACE_OUTER_BOUND('',#11206,.F.);
-+#11208=ADVANCED_FACE('',(#11207),#11199,.F.);
-+#11209=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#11210=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11211=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11212=AXIS2_PLACEMENT_3D('',#11209,#11210,#11211);
-+#11213=PLANE('',#11212);
-+#11214=ORIENTED_EDGE('',*,*,#5882,.F.);
-+#11216=ORIENTED_EDGE('',*,*,#11215,.T.);
-+#11218=ORIENTED_EDGE('',*,*,#11217,.T.);
-+#11219=ORIENTED_EDGE('',*,*,#11201,.F.);
-+#11220=EDGE_LOOP('',(#11214,#11216,#11218,#11219));
-+#11221=FACE_OUTER_BOUND('',#11220,.F.);
-+#11222=ADVANCED_FACE('',(#11221),#11213,.F.);
-+#11223=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
-+#11224=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11225=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11226=AXIS2_PLACEMENT_3D('',#11223,#11224,#11225);
-+#11227=CYLINDRICAL_SURFACE('',#11226,5.625E-1);
-+#11228=ORIENTED_EDGE('',*,*,#5880,.F.);
-+#11229=ORIENTED_EDGE('',*,*,#11190,.T.);
-+#11231=ORIENTED_EDGE('',*,*,#11230,.T.);
-+#11232=ORIENTED_EDGE('',*,*,#11215,.F.);
-+#11233=EDGE_LOOP('',(#11228,#11229,#11231,#11232));
-+#11234=FACE_OUTER_BOUND('',#11233,.F.);
-+#11235=ADVANCED_FACE('',(#11234),#11227,.F.);
-+#11236=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
-+#11237=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11238=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11239=AXIS2_PLACEMENT_3D('',#11236,#11237,#11238);
-+#11240=PLANE('',#11239);
-+#11241=ORIENTED_EDGE('',*,*,#11188,.F.);
-+#11242=ORIENTED_EDGE('',*,*,#11203,.F.);
-+#11243=ORIENTED_EDGE('',*,*,#11217,.F.);
-+#11244=ORIENTED_EDGE('',*,*,#11230,.F.);
-+#11245=EDGE_LOOP('',(#11241,#11242,#11243,#11244));
-+#11246=FACE_OUTER_BOUND('',#11245,.F.);
-+#11247=ADVANCED_FACE('',(#11246),#11240,.T.);
-+#11248=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
-+#11249=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11250=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11251=AXIS2_PLACEMENT_3D('',#11248,#11249,#11250);
-+#11252=PLANE('',#11251);
-+#11254=ORIENTED_EDGE('',*,*,#11253,.F.);
-+#11256=ORIENTED_EDGE('',*,*,#11255,.F.);
-+#11258=ORIENTED_EDGE('',*,*,#11257,.F.);
-+#11260=ORIENTED_EDGE('',*,*,#11259,.F.);
-+#11262=ORIENTED_EDGE('',*,*,#11261,.F.);
-+#11263=EDGE_LOOP('',(#11254,#11256,#11258,#11260,#11262));
-+#11264=FACE_OUTER_BOUND('',#11263,.F.);
-+#11265=ADVANCED_FACE('',(#11264),#11252,.T.);
-+#11266=CARTESIAN_POINT('',(2.254426323641E1,-6.892397422826E-2,
-+2.742280476768E1));
-+#11267=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11268=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#11269=AXIS2_PLACEMENT_3D('',#11266,#11267,#11268);
-+#11270=CYLINDRICAL_SURFACE('',#11269,7.5E-1);
-+#11272=ORIENTED_EDGE('',*,*,#11271,.F.);
-+#11273=ORIENTED_EDGE('',*,*,#5944,.T.);
-+#11275=ORIENTED_EDGE('',*,*,#11274,.T.);
-+#11276=ORIENTED_EDGE('',*,*,#11253,.T.);
-+#11277=EDGE_LOOP('',(#11272,#11273,#11275,#11276));
-+#11278=FACE_OUTER_BOUND('',#11277,.F.);
-+#11279=ADVANCED_FACE('',(#11278),#11270,.F.);
-+#11280=CARTESIAN_POINT('',(2.33125E1,0.E0,2.771522817587E1));
-+#11281=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#11282=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#11283=AXIS2_PLACEMENT_3D('',#11280,#11281,#11282);
-+#11284=PLANE('',#11283);
-+#11285=ORIENTED_EDGE('',*,*,#11271,.T.);
-+#11286=ORIENTED_EDGE('',*,*,#11261,.T.);
-+#11288=ORIENTED_EDGE('',*,*,#11287,.F.);
-+#11289=ORIENTED_EDGE('',*,*,#5946,.F.);
-+#11290=EDGE_LOOP('',(#11285,#11286,#11288,#11289));
-+#11291=FACE_OUTER_BOUND('',#11290,.F.);
-+#11292=ADVANCED_FACE('',(#11291),#11284,.F.);
-+#11293=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
-+#11294=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11295=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11296=AXIS2_PLACEMENT_3D('',#11293,#11294,#11295);
-+#11297=CYLINDRICAL_SURFACE('',#11296,8.669989027347E-1);
-+#11298=ORIENTED_EDGE('',*,*,#5948,.F.);
-+#11299=ORIENTED_EDGE('',*,*,#11287,.T.);
-+#11300=ORIENTED_EDGE('',*,*,#11259,.T.);
-+#11302=ORIENTED_EDGE('',*,*,#11301,.F.);
-+#11303=EDGE_LOOP('',(#11298,#11299,#11300,#11302));
-+#11304=FACE_OUTER_BOUND('',#11303,.F.);
-+#11305=ADVANCED_FACE('',(#11304),#11297,.F.);
-+#11306=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
-+#11307=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11308=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11309=AXIS2_PLACEMENT_3D('',#11306,#11307,#11308);
-+#11310=CYLINDRICAL_SURFACE('',#11309,5.6875E0);
-+#11311=ORIENTED_EDGE('',*,*,#5950,.T.);
-+#11312=ORIENTED_EDGE('',*,*,#11301,.T.);
-+#11313=ORIENTED_EDGE('',*,*,#11257,.T.);
-+#11315=ORIENTED_EDGE('',*,*,#11314,.F.);
-+#11316=EDGE_LOOP('',(#11311,#11312,#11313,#11315));
-+#11317=FACE_OUTER_BOUND('',#11316,.F.);
-+#11318=ADVANCED_FACE('',(#11317),#11310,.T.);
-+#11319=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
-+#11320=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11321=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11322=AXIS2_PLACEMENT_3D('',#11319,#11320,#11321);
-+#11323=CYLINDRICAL_SURFACE('',#11322,9.225E-1);
-+#11324=ORIENTED_EDGE('',*,*,#11274,.F.);
-+#11325=ORIENTED_EDGE('',*,*,#5942,.F.);
-+#11326=ORIENTED_EDGE('',*,*,#11314,.T.);
-+#11327=ORIENTED_EDGE('',*,*,#11255,.T.);
-+#11328=EDGE_LOOP('',(#11324,#11325,#11326,#11327));
-+#11329=FACE_OUTER_BOUND('',#11328,.F.);
-+#11330=ADVANCED_FACE('',(#11329),#11323,.F.);
-+#11331=CARTESIAN_POINT('',(2.13075E1,-6.892397422826E-2,7.81E0));
-+#11332=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11333=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11334=AXIS2_PLACEMENT_3D('',#11331,#11332,#11333);
-+#11335=CYLINDRICAL_SURFACE('',#11334,8.8E-1);
-+#11337=ORIENTED_EDGE('',*,*,#11336,.T.);
-+#11339=ORIENTED_EDGE('',*,*,#11338,.T.);
-+#11341=ORIENTED_EDGE('',*,*,#11340,.F.);
-+#11342=ORIENTED_EDGE('',*,*,#5888,.T.);
-+#11343=EDGE_LOOP('',(#11337,#11339,#11341,#11342));
-+#11344=FACE_OUTER_BOUND('',#11343,.F.);
-+#11345=ADVANCED_FACE('',(#11344),#11335,.T.);
-+#11346=CARTESIAN_POINT('',(2.21875E1,0.E0,8.69E0));
-+#11347=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11348=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11349=AXIS2_PLACEMENT_3D('',#11346,#11347,#11348);
-+#11350=PLANE('',#11349);
-+#11351=ORIENTED_EDGE('',*,*,#11336,.F.);
-+#11352=ORIENTED_EDGE('',*,*,#5914,.T.);
-+#11354=ORIENTED_EDGE('',*,*,#11353,.F.);
-+#11356=ORIENTED_EDGE('',*,*,#11355,.F.);
-+#11357=EDGE_LOOP('',(#11351,#11352,#11354,#11356));
-+#11358=FACE_OUTER_BOUND('',#11357,.F.);
-+#11359=ADVANCED_FACE('',(#11358),#11350,.T.);
-+#11360=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,9.57E0));
-+#11361=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11362=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11363=AXIS2_PLACEMENT_3D('',#11360,#11361,#11362);
-+#11364=CYLINDRICAL_SURFACE('',#11363,8.8E-1);
-+#11366=ORIENTED_EDGE('',*,*,#11365,.F.);
-+#11368=ORIENTED_EDGE('',*,*,#11367,.T.);
-+#11369=ORIENTED_EDGE('',*,*,#11353,.T.);
-+#11370=ORIENTED_EDGE('',*,*,#5912,.T.);
-+#11371=EDGE_LOOP('',(#11366,#11368,#11369,#11370));
-+#11372=FACE_OUTER_BOUND('',#11371,.F.);
-+#11373=ADVANCED_FACE('',(#11372),#11364,.F.);
-+#11374=CARTESIAN_POINT('',(1.96875E1,0.E0,8.69E0));
-+#11375=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11376=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11377=AXIS2_PLACEMENT_3D('',#11374,#11375,#11376);
-+#11378=PLANE('',#11377);
-+#11379=ORIENTED_EDGE('',*,*,#11365,.T.);
-+#11380=ORIENTED_EDGE('',*,*,#5910,.T.);
-+#11382=ORIENTED_EDGE('',*,*,#11381,.F.);
-+#11384=ORIENTED_EDGE('',*,*,#11383,.F.);
-+#11385=EDGE_LOOP('',(#11379,#11380,#11382,#11384));
-+#11386=FACE_OUTER_BOUND('',#11385,.F.);
-+#11387=ADVANCED_FACE('',(#11386),#11378,.T.);
-+#11388=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,1.037E1));
-+#11389=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11390=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11391=AXIS2_PLACEMENT_3D('',#11388,#11389,#11390);
-+#11392=CYLINDRICAL_SURFACE('',#11391,8.8E-1);
-+#11394=ORIENTED_EDGE('',*,*,#11393,.F.);
-+#11396=ORIENTED_EDGE('',*,*,#11395,.T.);
-+#11397=ORIENTED_EDGE('',*,*,#11381,.T.);
-+#11398=ORIENTED_EDGE('',*,*,#5908,.T.);
-+#11399=EDGE_LOOP('',(#11394,#11396,#11397,#11398));
-+#11400=FACE_OUTER_BOUND('',#11399,.F.);
-+#11401=ADVANCED_FACE('',(#11400),#11392,.F.);
-+#11402=CARTESIAN_POINT('',(1.96875E1,0.E0,1.125E1));
-+#11403=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11404=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11405=AXIS2_PLACEMENT_3D('',#11402,#11403,#11404);
-+#11406=PLANE('',#11405);
-+#11407=ORIENTED_EDGE('',*,*,#11393,.T.);
-+#11408=ORIENTED_EDGE('',*,*,#5906,.T.);
-+#11410=ORIENTED_EDGE('',*,*,#11409,.F.);
-+#11412=ORIENTED_EDGE('',*,*,#11411,.F.);
-+#11413=EDGE_LOOP('',(#11407,#11408,#11410,#11412));
-+#11414=FACE_OUTER_BOUND('',#11413,.F.);
-+#11415=ADVANCED_FACE('',(#11414),#11406,.T.);
-+#11416=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,1.037E1));
-+#11417=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11418=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11419=AXIS2_PLACEMENT_3D('',#11416,#11417,#11418);
-+#11420=CYLINDRICAL_SURFACE('',#11419,8.8E-1);
-+#11422=ORIENTED_EDGE('',*,*,#11421,.F.);
-+#11424=ORIENTED_EDGE('',*,*,#11423,.T.);
-+#11425=ORIENTED_EDGE('',*,*,#11409,.T.);
-+#11426=ORIENTED_EDGE('',*,*,#5904,.T.);
-+#11427=EDGE_LOOP('',(#11422,#11424,#11425,#11426));
-+#11428=FACE_OUTER_BOUND('',#11427,.F.);
-+#11429=ADVANCED_FACE('',(#11428),#11420,.F.);
-+#11430=CARTESIAN_POINT('',(2.53125E1,0.E0,1.125E1));
-+#11431=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11432=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11433=AXIS2_PLACEMENT_3D('',#11430,#11431,#11432);
-+#11434=PLANE('',#11433);
-+#11436=ORIENTED_EDGE('',*,*,#11435,.F.);
-+#11438=ORIENTED_EDGE('',*,*,#11437,.F.);
-+#11439=ORIENTED_EDGE('',*,*,#11421,.T.);
-+#11440=ORIENTED_EDGE('',*,*,#5902,.T.);
-+#11441=EDGE_LOOP('',(#11436,#11438,#11439,#11440));
-+#11442=FACE_OUTER_BOUND('',#11441,.F.);
-+#11443=ADVANCED_FACE('',(#11442),#11434,.T.);
-+#11444=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,9.57E0));
-+#11445=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11446=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11447=AXIS2_PLACEMENT_3D('',#11444,#11445,#11446);
-+#11448=CYLINDRICAL_SURFACE('',#11447,8.8E-1);
-+#11450=ORIENTED_EDGE('',*,*,#11449,.F.);
-+#11452=ORIENTED_EDGE('',*,*,#11451,.T.);
-+#11453=ORIENTED_EDGE('',*,*,#11435,.T.);
-+#11454=ORIENTED_EDGE('',*,*,#5900,.T.);
-+#11455=EDGE_LOOP('',(#11450,#11452,#11453,#11454));
-+#11456=FACE_OUTER_BOUND('',#11455,.F.);
-+#11457=ADVANCED_FACE('',(#11456),#11448,.F.);
-+#11458=CARTESIAN_POINT('',(2.53125E1,0.E0,8.69E0));
-+#11459=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11460=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11461=AXIS2_PLACEMENT_3D('',#11458,#11459,#11460);
-+#11462=PLANE('',#11461);
-+#11464=ORIENTED_EDGE('',*,*,#11463,.T.);
-+#11466=ORIENTED_EDGE('',*,*,#11465,.F.);
-+#11467=ORIENTED_EDGE('',*,*,#11449,.T.);
-+#11468=ORIENTED_EDGE('',*,*,#5898,.T.);
-+#11469=EDGE_LOOP('',(#11464,#11466,#11467,#11468));
-+#11470=FACE_OUTER_BOUND('',#11469,.F.);
-+#11471=ADVANCED_FACE('',(#11470),#11462,.T.);
-+#11472=CARTESIAN_POINT('',(2.419E1,-6.892397422826E-2,7.81E0));
-+#11473=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11474=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11475=AXIS2_PLACEMENT_3D('',#11472,#11473,#11474);
-+#11476=CYLINDRICAL_SURFACE('',#11475,8.8E-1);
-+#11478=ORIENTED_EDGE('',*,*,#11477,.T.);
-+#11480=ORIENTED_EDGE('',*,*,#11479,.T.);
-+#11481=ORIENTED_EDGE('',*,*,#11463,.F.);
-+#11482=ORIENTED_EDGE('',*,*,#5896,.T.);
-+#11483=EDGE_LOOP('',(#11478,#11480,#11481,#11482));
-+#11484=FACE_OUTER_BOUND('',#11483,.F.);
-+#11485=ADVANCED_FACE('',(#11484),#11476,.T.);
-+#11486=CARTESIAN_POINT('',(2.331E1,0.E0,8.69E0));
-+#11487=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11488=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11489=AXIS2_PLACEMENT_3D('',#11486,#11487,#11488);
-+#11490=PLANE('',#11489);
-+#11491=ORIENTED_EDGE('',*,*,#11477,.F.);
-+#11492=ORIENTED_EDGE('',*,*,#5894,.T.);
-+#11494=ORIENTED_EDGE('',*,*,#11493,.T.);
-+#11496=ORIENTED_EDGE('',*,*,#11495,.F.);
-+#11497=EDGE_LOOP('',(#11491,#11492,#11494,#11496));
-+#11498=FACE_OUTER_BOUND('',#11497,.F.);
-+#11499=ADVANCED_FACE('',(#11498),#11490,.T.);
-+#11500=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
-+#11501=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11502=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11503=AXIS2_PLACEMENT_3D('',#11500,#11501,#11502);
-+#11504=CYLINDRICAL_SURFACE('',#11503,5.6125E-1);
-+#11505=ORIENTED_EDGE('',*,*,#5892,.T.);
-+#11507=ORIENTED_EDGE('',*,*,#11506,.T.);
-+#11509=ORIENTED_EDGE('',*,*,#11508,.F.);
-+#11510=ORIENTED_EDGE('',*,*,#11493,.F.);
-+#11511=EDGE_LOOP('',(#11505,#11507,#11509,#11510));
-+#11512=FACE_OUTER_BOUND('',#11511,.F.);
-+#11513=ADVANCED_FACE('',(#11512),#11504,.F.);
-+#11514=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#11515=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11516=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11517=AXIS2_PLACEMENT_3D('',#11514,#11515,#11516);
-+#11518=PLANE('',#11517);
-+#11519=ORIENTED_EDGE('',*,*,#11340,.T.);
-+#11521=ORIENTED_EDGE('',*,*,#11520,.F.);
-+#11522=ORIENTED_EDGE('',*,*,#11506,.F.);
-+#11523=ORIENTED_EDGE('',*,*,#5890,.T.);
-+#11524=EDGE_LOOP('',(#11519,#11521,#11522,#11523));
-+#11525=FACE_OUTER_BOUND('',#11524,.F.);
-+#11526=ADVANCED_FACE('',(#11525),#11518,.T.);
-+#11527=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11528=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11529=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11530=AXIS2_PLACEMENT_3D('',#11527,#11528,#11529);
-+#11531=PLANE('',#11530);
-+#11532=ORIENTED_EDGE('',*,*,#11465,.T.);
-+#11533=ORIENTED_EDGE('',*,*,#11479,.F.);
-+#11534=ORIENTED_EDGE('',*,*,#11495,.T.);
-+#11535=ORIENTED_EDGE('',*,*,#11508,.T.);
-+#11536=ORIENTED_EDGE('',*,*,#11520,.T.);
-+#11537=ORIENTED_EDGE('',*,*,#11338,.F.);
-+#11538=ORIENTED_EDGE('',*,*,#11355,.T.);
-+#11539=ORIENTED_EDGE('',*,*,#11367,.F.);
-+#11540=ORIENTED_EDGE('',*,*,#11383,.T.);
-+#11541=ORIENTED_EDGE('',*,*,#11395,.F.);
-+#11542=ORIENTED_EDGE('',*,*,#11411,.T.);
-+#11543=ORIENTED_EDGE('',*,*,#11423,.F.);
-+#11544=ORIENTED_EDGE('',*,*,#11437,.T.);
-+#11545=ORIENTED_EDGE('',*,*,#11451,.F.);
-+#11546=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536,#11537,#11538,#11539,
-+#11540,#11541,#11542,#11543,#11544,#11545));
-+#11547=FACE_OUTER_BOUND('',#11546,.F.);
-+#11548=ADVANCED_FACE('',(#11547),#11531,.F.);
-+#11549=CLOSED_SHELL('',(#5954,#6079,#6094,#6107,#6117,#6132,#6145,#6201,#6214,
-+#6278,#6488,#6503,#6516,#6529,#6540,#6555,#6568,#6581,#6592,#6605,#6618,#6631,
-+#6644,#6656,#6669,#6683,#6696,#6709,#6723,#6736,#6749,#6763,#6776,#6789,#6802,
-+#6815,#6828,#6842,#6855,#6868,#6880,#6893,#6906,#6918,#6931,#6945,#6958,#6971,
-+#6984,#6998,#7011,#7024,#7036,#7048,#7061,#7074,#7086,#7099,#7114,#7127,#7152,
-+#7166,#7178,#7191,#7204,#7217,#7230,#7244,#7256,#7311,#7325,#7337,#7349,#7368,
-+#7379,#7394,#7407,#7423,#7437,#7449,#7465,#7477,#7490,#7514,#7529,#7542,#7552,
-+#7567,#7580,#7590,#7605,#7619,#7649,#7662,#7675,#7688,#7701,#7714,#7727,#7740,
-+#7753,#7766,#7778,#7790,#7805,#7818,#7828,#7843,#7856,#7866,#7881,#7894,#7907,
-+#7918,#7933,#7946,#7959,#7970,#7985,#7998,#8014,#8028,#8040,#8055,#8068,#8084,
-+#8098,#8110,#8125,#8138,#8154,#8168,#8180,#8195,#8208,#8224,#8238,#8250,#8265,
-+#8278,#8294,#8308,#8320,#8335,#8348,#8364,#8378,#8390,#8405,#8418,#8434,#8448,
-+#8460,#8475,#8488,#8504,#8518,#8530,#8545,#8558,#8574,#8588,#8600,#8615,#8628,
-+#8644,#8658,#8670,#8685,#8698,#8714,#8728,#8740,#8755,#8768,#8784,#8798,#8810,
-+#8825,#8838,#8854,#8868,#8880,#8895,#8908,#8924,#8938,#8950,#8965,#8978,#8994,
-+#9008,#9020,#9035,#9048,#9064,#9078,#9090,#9105,#9118,#9134,#9148,#9160,#9175,
-+#9188,#9204,#9218,#9230,#9242,#9260,#9275,#9288,#9304,#9318,#9330,#9345,#9359,
-+#9373,#9387,#9401,#9415,#9429,#9443,#9457,#9471,#9485,#9498,#9518,#9533,#9546,
-+#9556,#9571,#9584,#9594,#9609,#9622,#9632,#9647,#9660,#9670,#9685,#9698,#9708,
-+#9723,#9737,#9751,#9765,#9779,#9793,#9807,#9820,#9836,#9851,#9865,#9887,#9901,
-+#9913,#9926,#9939,#9952,#9964,#9979,#9993,#10007,#10020,#10032,#10050,#10064,
-+#10077,#10090,#10103,#10115,#10130,#10144,#10178,#10192,#10205,#10218,#10230,
-+#10243,#10256,#10269,#10282,#10295,#10308,#10321,#10333,#10348,#10362,#10376,
-+#10389,#10401,#10416,#10430,#10444,#10457,#10469,#10484,#10498,#10512,#10525,
-+#10537,#10552,#10566,#10580,#10593,#10605,#10620,#10634,#10648,#10661,#10673,
-+#10691,#10705,#10718,#10731,#10744,#10756,#10771,#10785,#10799,#10812,#10824,
-+#10842,#10856,#10869,#10882,#10895,#10907,#10922,#10936,#10950,#10963,#10975,
-+#10990,#11004,#11018,#11031,#11043,#11058,#11072,#11086,#11099,#11111,#11126,
-+#11140,#11154,#11167,#11179,#11194,#11208,#11222,#11235,#11247,#11265,#11279,
-+#11292,#11305,#11318,#11330,#11345,#11359,#11373,#11387,#11401,#11415,#11429,
-+#11443,#11457,#11471,#11485,#11499,#11513,#11526,#11548));
-+#11550=MANIFOLD_SOLID_BREP('',#11549);
-+#11551=DIMENSIONAL_EXPONENTS(1.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
-+#11552=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
-+#11553=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.54E1),#11552);
-+#11554=(CONVERSION_BASED_UNIT('INCH',#11553)LENGTH_UNIT()NAMED_UNIT(#11551));
-+#11555=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
-+#11556=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
-+#11557=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),
-+#11556);
-+#11558=(CONVERSION_BASED_UNIT('DEGREE',#11557)NAMED_UNIT(#11555)PLANE_ANGLE_UNIT());
-+#11559=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
-+#11560=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(4.404650704771E-3),#11554,
-+'closure',
-+'Maximum model space distance between geometric entities at asserted connectivities');
-+#11561=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((
-+#11560))GLOBAL_UNIT_ASSIGNED_CONTEXT((#11554,#11558,#11559))REPRESENTATION_CONTEXT('ID1','3'));
-+#11563=APPLICATION_CONTEXT(
-+'CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES');
-+#11564=APPLICATION_PROTOCOL_DEFINITION('international standard',
-+'config_control_design',1994,#11563);
-+#11565=DESIGN_CONTEXT('',#11563,'design');
-+#11566=MECHANICAL_CONTEXT('',#11563,'mechanical');
-+#11567=PRODUCT('PROESOURCE','PROESOURCE','NOT SPECIFIED',(#11566));
-+#11568=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',
-+#11567,.MADE.);
-+#11572=PRODUCT_CATEGORY('part','');
-+#11573=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#11567));
-+#11574=PRODUCT_CATEGORY_RELATIONSHIP('','',#11572,#11573);
-+#11575=SECURITY_CLASSIFICATION_LEVEL('unclassified');
-+#11576=SECURITY_CLASSIFICATION('','',#11575);
-+#11577=CC_DESIGN_SECURITY_CLASSIFICATION(#11576,(#11568));
-+#11578=APPROVAL_STATUS('approved');
-+#11579=APPROVAL(#11578,'');
-+#11580=CC_DESIGN_APPROVAL(#11579,(#11576,#11568,#11569));
-+#11581=CALENDAR_DATE(102,4,11);
-+#11582=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);
-+#11583=LOCAL_TIME(14,0,4.8E1,#11582);
-+#11584=DATE_AND_TIME(#11581,#11583);
-+#11585=APPROVAL_DATE_TIME(#11584,#11579);
-+#11586=DATE_TIME_ROLE('creation_date');
-+#11587=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11586,(#11569));
-+#11588=DATE_TIME_ROLE('classification_date');
-+#11589=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11588,(#11576));
-+#11590=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$);
-+#11591=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED');
-+#11592=PERSON_AND_ORGANIZATION(#11590,#11591);
-+#11593=APPROVAL_ROLE('approver');
-+#11594=APPROVAL_PERSON_ORGANIZATION(#11592,#11579,#11593);
-+#11595=PERSON_AND_ORGANIZATION_ROLE('creator');
-+#11596=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11595,(#11568,
-+#11569));
-+#11597=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
-+#11598=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11597,(#11568));
-+#11599=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
-+#11600=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11599,(#11576));
-+#11601=PERSON_AND_ORGANIZATION_ROLE('design_owner');
-+#11602=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11601,(#11567));
-+#13=CIRCLE('',#12,1.925E-1);
-+#18=CIRCLE('',#17,1.925E-1);
-+#23=CIRCLE('',#22,1.925E-1);
-+#28=CIRCLE('',#27,1.925E-1);
-+#33=CIRCLE('',#32,1.925E-1);
-+#38=CIRCLE('',#37,1.925E-1);
-+#43=CIRCLE('',#42,1.925E-1);
-+#48=CIRCLE('',#47,1.925E-1);
-+#53=CIRCLE('',#52,1.925E-1);
-+#58=CIRCLE('',#57,1.925E-1);
-+#63=CIRCLE('',#62,1.925E-1);
-+#68=CIRCLE('',#67,1.925E-1);
-+#73=CIRCLE('',#72,1.925E-1);
-+#78=CIRCLE('',#77,1.925E-1);
-+#83=CIRCLE('',#82,1.925E-1);
-+#88=CIRCLE('',#87,1.925E-1);
-+#93=CIRCLE('',#92,1.925E-1);
-+#98=CIRCLE('',#97,1.925E-1);
-+#103=CIRCLE('',#102,1.925E-1);
-+#108=CIRCLE('',#107,1.925E-1);
-+#113=CIRCLE('',#112,1.925E-1);
-+#118=CIRCLE('',#117,1.925E-1);
-+#123=CIRCLE('',#122,1.925E-1);
-+#128=CIRCLE('',#127,1.925E-1);
-+#181=CIRCLE('',#180,1.925E-1);
-+#186=CIRCLE('',#185,1.925E-1);
-+#191=CIRCLE('',#190,1.925E-1);
-+#196=CIRCLE('',#195,1.925E-1);
-+#249=CIRCLE('',#248,1.925E-1);
-+#254=CIRCLE('',#253,1.925E-1);
-+#259=CIRCLE('',#258,1.925E-1);
-+#264=CIRCLE('',#263,1.925E-1);
-+#269=CIRCLE('',#268,1.925E-1);
-+#274=CIRCLE('',#273,1.925E-1);
-+#279=CIRCLE('',#278,1.925E-1);
-+#284=CIRCLE('',#283,1.925E-1);
-+#289=CIRCLE('',#288,1.925E-1);
-+#294=CIRCLE('',#293,1.925E-1);
-+#299=CIRCLE('',#298,1.925E-1);
-+#304=CIRCLE('',#303,1.925E-1);
-+#313=CIRCLE('',#312,5.625E-1);
-+#322=CIRCLE('',#321,5.625E-1);
-+#327=CIRCLE('',#326,9.225E-1);
-+#336=CIRCLE('',#335,8.669989027347E-1);
-+#341=CIRCLE('',#340,5.6875E0);
-+#350=CIRCLE('',#349,5.6125E-1);
-+#383=CIRCLE('',#382,5.625E-1);
-+#392=CIRCLE('',#391,5.625E-1);
-+#401=CIRCLE('',#400,5.625E-1);
-+#410=CIRCLE('',#409,5.625E-1);
-+#419=CIRCLE('',#418,5.E-1);
-+#428=CIRCLE('',#427,5.E-1);
-+#437=CIRCLE('',#436,4.375E-1);
-+#446=CIRCLE('',#445,4.375E-1);
-+#455=CIRCLE('',#454,5.625E-1);
-+#464=CIRCLE('',#463,5.625E-1);
-+#473=CIRCLE('',#472,5.625E-1);
-+#482=CIRCLE('',#481,5.625E-1);
-+#491=CIRCLE('',#490,5.625E-1);
-+#500=CIRCLE('',#499,5.625E-1);
-+#509=CIRCLE('',#508,5.625E-1);
-+#518=CIRCLE('',#517,5.625E-1);
-+#527=CIRCLE('',#526,5.E-1);
-+#536=CIRCLE('',#535,5.E-1);
-+#545=CIRCLE('',#544,4.375E-1);
-+#554=CIRCLE('',#553,4.375E-1);
-+#563=CIRCLE('',#562,5.625E-1);
-+#572=CIRCLE('',#571,5.625E-1);
-+#581=CIRCLE('',#580,5.6125E-1);
-+#614=CIRCLE('',#613,9.225E-1);
-+#619=CIRCLE('',#618,5.6875E0);
-+#624=CIRCLE('',#623,8.669989027347E-1);
-+#633=CIRCLE('',#632,9.225E-1);
-+#638=CIRCLE('',#637,5.6875E0);
-+#643=CIRCLE('',#642,8.669989027347E-1);
-+#648=CIRCLE('',#647,9.225E-1);
-+#657=CIRCLE('',#656,8.669989027347E-1);
-+#662=CIRCLE('',#661,5.6875E0);
-+#667=CIRCLE('',#666,9.5E-2);
-+#672=CIRCLE('',#671,9.5E-2);
-+#677=CIRCLE('',#676,1.625E-1);
-+#682=CIRCLE('',#681,1.625E-1);
-+#687=CIRCLE('',#686,9.5E-2);
-+#692=CIRCLE('',#691,9.5E-2);
-+#697=CIRCLE('',#696,9.5E-2);
-+#702=CIRCLE('',#701,9.5E-2);
-+#707=CIRCLE('',#706,9.5E-2);
-+#712=CIRCLE('',#711,9.5E-2);
-+#717=CIRCLE('',#716,9.5E-2);
-+#722=CIRCLE('',#721,9.5E-2);
-+#727=CIRCLE('',#726,1.625E-1);
-+#732=CIRCLE('',#731,1.625E-1);
-+#737=CIRCLE('',#736,9.5E-2);
-+#742=CIRCLE('',#741,9.5E-2);
-+#803=CIRCLE('',#802,9.5E-2);
-+#808=CIRCLE('',#807,9.5E-2);
-+#821=CIRCLE('',#820,1.625E-1);
-+#826=CIRCLE('',#825,1.625E-1);
-+#887=CIRCLE('',#886,1.E-1);
-+#892=CIRCLE('',#891,1.E-1);
-+#897=CIRCLE('',#896,1.E-1);
-+#902=CIRCLE('',#901,1.E-1);
-+#931=CIRCLE('',#930,1.E-1);
-+#936=CIRCLE('',#935,1.E-1);
-+#941=CIRCLE('',#940,1.E-1);
-+#946=CIRCLE('',#945,1.E-1);
-+#951=CIRCLE('',#950,2.575E-1);
-+#956=CIRCLE('',#955,2.575E-1);
-+#961=CIRCLE('',#960,2.575E-1);
-+#966=CIRCLE('',#965,2.575E-1);
-+#971=CIRCLE('',#970,2.575E-1);
-+#976=CIRCLE('',#975,2.575E-1);
-+#981=CIRCLE('',#980,2.575E-1);
-+#986=CIRCLE('',#985,2.575E-1);
-+#991=CIRCLE('',#990,2.575E-1);
-+#996=CIRCLE('',#995,2.575E-1);
-+#1001=CIRCLE('',#1000,2.575E-1);
-+#1006=CIRCLE('',#1005,2.575E-1);
-+#1011=CIRCLE('',#1010,2.56E-1);
-+#1016=CIRCLE('',#1015,2.56E-1);
-+#1021=CIRCLE('',#1020,2.56E-1);
-+#1026=CIRCLE('',#1025,2.56E-1);
-+#1031=CIRCLE('',#1030,2.56E-1);
-+#1036=CIRCLE('',#1035,2.56E-1);
-+#1041=CIRCLE('',#1040,2.56E-1);
-+#1046=CIRCLE('',#1045,2.56E-1);
-+#1051=CIRCLE('',#1050,2.56E-1);
-+#1056=CIRCLE('',#1055,2.56E-1);
-+#1061=CIRCLE('',#1060,2.56E-1);
-+#1066=CIRCLE('',#1065,2.56E-1);
-+#1115=CIRCLE('',#1114,2.575E-1);
-+#1120=CIRCLE('',#1119,2.575E-1);
-+#1125=CIRCLE('',#1124,2.575E-1);
-+#1130=CIRCLE('',#1129,2.575E-1);
-+#1135=CIRCLE('',#1134,2.575E-1);
-+#1140=CIRCLE('',#1139,2.575E-1);
-+#1145=CIRCLE('',#1144,2.575E-1);
-+#1150=CIRCLE('',#1149,2.575E-1);
-+#1155=CIRCLE('',#1154,2.575E-1);
-+#1160=CIRCLE('',#1159,2.575E-1);
-+#1165=CIRCLE('',#1164,2.575E-1);
-+#1170=CIRCLE('',#1169,2.575E-1);
-+#1259=CIRCLE('',#1258,1.E-1);
-+#1268=CIRCLE('',#1267,1.E-1);
-+#1285=CIRCLE('',#1284,1.E-1);
-+#1294=CIRCLE('',#1293,1.E-1);
-+#1303=CIRCLE('',#1302,1.E0);
-+#1312=CIRCLE('',#1311,1.E0);
-+#1317=CIRCLE('',#1316,5.E0);
-+#1326=CIRCLE('',#1325,5.E0);
-+#1331=CIRCLE('',#1330,5.E0);
-+#1340=CIRCLE('',#1339,5.E0);
-+#1349=CIRCLE('',#1348,1.E0);
-+#1358=CIRCLE('',#1357,1.E0);
-+#1367=CIRCLE('',#1366,1.E0);
-+#1376=CIRCLE('',#1375,1.E0);
-+#1385=CIRCLE('',#1384,1.E0);
-+#1394=CIRCLE('',#1393,1.E0);
-+#1403=CIRCLE('',#1402,1.E0);
-+#1412=CIRCLE('',#1411,1.E0);
-+#1421=CIRCLE('',#1420,3.E0);
-+#1430=CIRCLE('',#1429,3.E0);
-+#1439=CIRCLE('',#1438,3.E0);
-+#1448=CIRCLE('',#1447,3.E0);
-+#1457=CIRCLE('',#1456,5.E0);
-+#1466=CIRCLE('',#1465,5.E0);
-+#1475=CIRCLE('',#1474,5.E0);
-+#1484=CIRCLE('',#1483,5.E0);
-+#1493=CIRCLE('',#1492,3.E0);
-+#1502=CIRCLE('',#1501,3.E0);
-+#1511=CIRCLE('',#1510,3.E0);
-+#1520=CIRCLE('',#1519,3.E0);
-+#1529=CIRCLE('',#1528,1.E0);
-+#1538=CIRCLE('',#1537,1.E0);
-+#1547=CIRCLE('',#1546,1.E0);
-+#1556=CIRCLE('',#1555,1.E0);
-+#1597=CIRCLE('',#1596,1.E0);
-+#1606=CIRCLE('',#1605,1.E0);
-+#1675=CIRCLE('',#1674,9.5E-2);
-+#1680=CIRCLE('',#1679,9.5E-2);
-+#1685=CIRCLE('',#1684,6.25E-2);
-+#1690=CIRCLE('',#1689,6.25E-2);
-+#1707=CIRCLE('',#1706,1.E0);
-+#1716=CIRCLE('',#1715,1.E0);
-+#1729=CIRCLE('',#1728,1.E0);
-+#1738=CIRCLE('',#1737,1.E0);
-+#1767=CIRCLE('',#1766,1.625E-1);
-+#1772=CIRCLE('',#1771,1.625E-1);
-+#1846=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1837,#1838,#1839,#1840,#1841,#1842,#1843,
-+#1844,#1845),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#1856=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1847,#1848,#1849,#1850,#1851,#1852,#1853,
-+#1854,#1855),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#1873=CIRCLE('',#1872,2.575E-1);
-+#1878=CIRCLE('',#1877,2.575E-1);
-+#1883=CIRCLE('',#1882,1.925E-1);
-+#1888=CIRCLE('',#1887,1.925E-1);
-+#1933=CIRCLE('',#1932,9.5E-2);
-+#1938=CIRCLE('',#1937,9.5E-2);
-+#1943=CIRCLE('',#1942,6.25E-2);
-+#1948=CIRCLE('',#1947,6.25E-2);
-+#1961=CIRCLE('',#1960,9.5E-2);
-+#1966=CIRCLE('',#1965,9.5E-2);
-+#1979=CIRCLE('',#1978,6.25E-2);
-+#1984=CIRCLE('',#1983,6.25E-2);
-+#1993=CIRCLE('',#1992,3.5E-1);
-+#2002=CIRCLE('',#2001,3.5E-1);
-+#2035=CIRCLE('',#2034,3.5E-1);
-+#2044=CIRCLE('',#2043,3.5E-1);
-+#2053=CIRCLE('',#2052,3.5E-1);
-+#2062=CIRCLE('',#2061,3.5E-1);
-+#2071=CIRCLE('',#2070,3.5E-1);
-+#2080=CIRCLE('',#2079,3.5E-1);
-+#2089=CIRCLE('',#2088,3.5E-1);
-+#2098=CIRCLE('',#2097,3.5E-1);
-+#2107=CIRCLE('',#2106,3.5E-1);
-+#2116=CIRCLE('',#2115,3.5E-1);
-+#2145=CIRCLE('',#2144,9.5E-2);
-+#2150=CIRCLE('',#2149,9.5E-2);
-+#2163=CIRCLE('',#2162,6.25E-2);
-+#2168=CIRCLE('',#2167,6.25E-2);
-+#2189=CIRCLE('',#2188,1.E-1);
-+#2194=CIRCLE('',#2193,1.E-1);
-+#2215=CIRCLE('',#2214,1.E-1);
-+#2220=CIRCLE('',#2219,1.E-1);
-+#2233=CIRCLE('',#2232,2.575E-1);
-+#2238=CIRCLE('',#2237,2.575E-1);
-+#2243=CIRCLE('',#2242,1.925E-1);
-+#2248=CIRCLE('',#2247,1.925E-1);
-+#2269=CIRCLE('',#2268,2.575E-1);
-+#2274=CIRCLE('',#2273,2.575E-1);
-+#2279=CIRCLE('',#2278,1.925E-1);
-+#2284=CIRCLE('',#2283,1.925E-1);
-+#2305=CIRCLE('',#2304,2.575E-1);
-+#2310=CIRCLE('',#2309,2.575E-1);
-+#2315=CIRCLE('',#2314,1.925E-1);
-+#2320=CIRCLE('',#2319,1.925E-1);
-+#2341=CIRCLE('',#2340,2.575E-1);
-+#2346=CIRCLE('',#2345,2.575E-1);
-+#2351=CIRCLE('',#2350,1.925E-1);
-+#2356=CIRCLE('',#2355,1.925E-1);
-+#2377=CIRCLE('',#2376,2.575E-1);
-+#2382=CIRCLE('',#2381,2.575E-1);
-+#2387=CIRCLE('',#2386,1.925E-1);
-+#2392=CIRCLE('',#2391,1.925E-1);
-+#2413=CIRCLE('',#2412,2.575E-1);
-+#2418=CIRCLE('',#2417,2.575E-1);
-+#2423=CIRCLE('',#2422,1.925E-1);
-+#2428=CIRCLE('',#2427,1.925E-1);
-+#2449=CIRCLE('',#2448,2.56E-1);
-+#2454=CIRCLE('',#2453,2.56E-1);
-+#2459=CIRCLE('',#2458,1.925E-1);
-+#2464=CIRCLE('',#2463,1.925E-1);
-+#2485=CIRCLE('',#2484,2.56E-1);
-+#2490=CIRCLE('',#2489,2.56E-1);
-+#2495=CIRCLE('',#2494,1.925E-1);
-+#2500=CIRCLE('',#2499,1.925E-1);
-+#2521=CIRCLE('',#2520,2.56E-1);
-+#2526=CIRCLE('',#2525,2.56E-1);
-+#2531=CIRCLE('',#2530,1.925E-1);
-+#2536=CIRCLE('',#2535,1.925E-1);
-+#2557=CIRCLE('',#2556,2.56E-1);
-+#2562=CIRCLE('',#2561,2.56E-1);
-+#2567=CIRCLE('',#2566,1.925E-1);
-+#2572=CIRCLE('',#2571,1.925E-1);
-+#2593=CIRCLE('',#2592,2.56E-1);
-+#2598=CIRCLE('',#2597,2.56E-1);
-+#2603=CIRCLE('',#2602,1.925E-1);
-+#2608=CIRCLE('',#2607,1.925E-1);
-+#2629=CIRCLE('',#2628,2.56E-1);
-+#2634=CIRCLE('',#2633,2.56E-1);
-+#2639=CIRCLE('',#2638,1.925E-1);
-+#2644=CIRCLE('',#2643,1.925E-1);
-+#2665=CIRCLE('',#2664,2.575E-1);
-+#2670=CIRCLE('',#2669,2.575E-1);
-+#2675=CIRCLE('',#2674,1.925E-1);
-+#2680=CIRCLE('',#2679,1.925E-1);
-+#2701=CIRCLE('',#2700,2.575E-1);
-+#2706=CIRCLE('',#2705,2.575E-1);
-+#2711=CIRCLE('',#2710,1.925E-1);
-+#2716=CIRCLE('',#2715,1.925E-1);
-+#2737=CIRCLE('',#2736,2.575E-1);
-+#2742=CIRCLE('',#2741,2.575E-1);
-+#2747=CIRCLE('',#2746,1.925E-1);
-+#2752=CIRCLE('',#2751,1.925E-1);
-+#2773=CIRCLE('',#2772,2.575E-1);
-+#2778=CIRCLE('',#2777,2.575E-1);
-+#2783=CIRCLE('',#2782,1.925E-1);
-+#2788=CIRCLE('',#2787,1.925E-1);
-+#2809=CIRCLE('',#2808,2.575E-1);
-+#2814=CIRCLE('',#2813,2.575E-1);
-+#2819=CIRCLE('',#2818,1.925E-1);
-+#2824=CIRCLE('',#2823,1.925E-1);
-+#2845=CIRCLE('',#2844,2.575E-1);
-+#2850=CIRCLE('',#2849,2.575E-1);
-+#2855=CIRCLE('',#2854,1.925E-1);
-+#2860=CIRCLE('',#2859,1.925E-1);
-+#2882=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2873,#2874,#2875,#2876,#2877,#2878,#2879,
-+#2880,#2881),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2883,#2884,#2885,#2886,#2887,#2888,#2889,
-+#2890,#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#2905=CIRCLE('',#2904,2.575E-1);
-+#2910=CIRCLE('',#2909,2.575E-1);
-+#2915=CIRCLE('',#2914,1.925E-1);
-+#2920=CIRCLE('',#2919,1.925E-1);
-+#2937=CIRCLE('',#2936,3.5E-1);
-+#2946=CIRCLE('',#2945,3.5E-1);
-+#2955=CIRCLE('',#2954,3.5E-1);
-+#2964=CIRCLE('',#2963,3.5E-1);
-+#2973=CIRCLE('',#2972,3.5E-1);
-+#2982=CIRCLE('',#2981,3.5E-1);
-+#2991=CIRCLE('',#2990,3.5E-1);
-+#3000=CIRCLE('',#2999,3.5E-1);
-+#3009=CIRCLE('',#3008,3.5E-1);
-+#3018=CIRCLE('',#3017,3.5E-1);
-+#3027=CIRCLE('',#3026,3.5E-1);
-+#3036=CIRCLE('',#3035,3.5E-1);
-+#3073=CIRCLE('',#3072,9.5E-2);
-+#3078=CIRCLE('',#3077,9.5E-2);
-+#3091=CIRCLE('',#3090,9.5E-2);
-+#3096=CIRCLE('',#3095,9.5E-2);
-+#3109=CIRCLE('',#3108,9.5E-2);
-+#3114=CIRCLE('',#3113,9.5E-2);
-+#3127=CIRCLE('',#3126,9.5E-2);
-+#3132=CIRCLE('',#3131,9.5E-2);
-+#3145=CIRCLE('',#3144,9.5E-2);
-+#3150=CIRCLE('',#3149,9.5E-2);
-+#3159=CIRCLE('',#3158,7.5E-1);
-+#3168=CIRCLE('',#3167,7.5E-1);
-+#3177=CIRCLE('',#3176,7.5E-1);
-+#3186=CIRCLE('',#3185,7.5E-1);
-+#3195=CIRCLE('',#3194,7.5E-1);
-+#3204=CIRCLE('',#3203,7.5E-1);
-+#3213=CIRCLE('',#3212,7.5E-1);
-+#3222=CIRCLE('',#3221,7.5E-1);
-+#3247=CIRCLE('',#3246,7.5E-1);
-+#3256=CIRCLE('',#3255,7.5E-1);
-+#3281=CIRCLE('',#3280,7.5E-1);
-+#3290=CIRCLE('',#3289,7.5E-1);
-+#3299=CIRCLE('',#3298,7.5E-1);
-+#3308=CIRCLE('',#3307,7.5E-1);
-+#3317=CIRCLE('',#3316,7.5E-1);
-+#3326=CIRCLE('',#3325,7.5E-1);
-+#3351=CIRCLE('',#3350,5.625E-1);
-+#3360=CIRCLE('',#3359,5.625E-1);
-+#3365=CIRCLE('',#3364,9.225E-1);
-+#3370=CIRCLE('',#3369,5.6875E0);
-+#3375=CIRCLE('',#3374,8.669989027347E-1);
-+#3388=CIRCLE('',#3387,7.5E-1);
-+#3397=CIRCLE('',#3396,7.5E-1);
-+#3418=CIRCLE('',#3417,8.75E-1);
-+#3427=CIRCLE('',#3426,8.75E-1);
-+#3440=CIRCLE('',#3439,5.6125E-1);
-+#3469=CIRCLE('',#3468,8.75E-1);
-+#3478=CIRCLE('',#3477,8.75E-1);
-+#3495=CIRCLE('',#3494,8.75E-1);
-+#3504=CIRCLE('',#3503,8.75E-1);
-+#3513=CIRCLE('',#3512,8.75E-1);
-+#3522=CIRCLE('',#3521,8.75E-1);
-+#3531=CIRCLE('',#3530,8.75E-1);
-+#3540=CIRCLE('',#3539,8.75E-1);
-+#3549=CIRCLE('',#3548,8.75E-1);
-+#3558=CIRCLE('',#3557,8.75E-1);
-+#3583=CIRCLE('',#3582,5.625E-1);
-+#3592=CIRCLE('',#3591,5.625E-1);
-+#3617=CIRCLE('',#3616,5.625E-1);
-+#3626=CIRCLE('',#3625,5.625E-1);
-+#3651=CIRCLE('',#3650,5.E-1);
-+#3660=CIRCLE('',#3659,5.E-1);
-+#3685=CIRCLE('',#3684,4.375E-1);
-+#3694=CIRCLE('',#3693,4.375E-1);
-+#3719=CIRCLE('',#3718,5.625E-1);
-+#3728=CIRCLE('',#3727,5.625E-1);
-+#3737=CIRCLE('',#3736,8.669989027347E-1);
-+#3742=CIRCLE('',#3741,5.6875E0);
-+#3747=CIRCLE('',#3746,9.225E-1);
-+#3756=CIRCLE('',#3755,7.5E-1);
-+#3765=CIRCLE('',#3764,7.5E-1);
-+#3802=CIRCLE('',#3801,5.625E-1);
-+#3811=CIRCLE('',#3810,5.625E-1);
-+#3820=CIRCLE('',#3819,8.669989027347E-1);
-+#3825=CIRCLE('',#3824,5.6875E0);
-+#3830=CIRCLE('',#3829,9.225E-1);
-+#3839=CIRCLE('',#3838,7.5E-1);
-+#3848=CIRCLE('',#3847,7.5E-1);
-+#3885=CIRCLE('',#3884,5.625E-1);
-+#3894=CIRCLE('',#3893,5.625E-1);
-+#3919=CIRCLE('',#3918,5.625E-1);
-+#3928=CIRCLE('',#3927,5.625E-1);
-+#3953=CIRCLE('',#3952,5.E-1);
-+#3962=CIRCLE('',#3961,5.E-1);
-+#3987=CIRCLE('',#3986,4.375E-1);
-+#3996=CIRCLE('',#3995,4.375E-1);
-+#4021=CIRCLE('',#4020,5.625E-1);
-+#4030=CIRCLE('',#4029,5.625E-1);
-+#4035=CIRCLE('',#4034,9.225E-1);
-+#4040=CIRCLE('',#4039,5.6875E0);
-+#4045=CIRCLE('',#4044,8.669989027347E-1);
-+#4058=CIRCLE('',#4057,7.5E-1);
-+#4067=CIRCLE('',#4066,7.5E-1);
-+#4088=CIRCLE('',#4087,8.8E-1);
-+#4097=CIRCLE('',#4096,8.8E-1);
-+#4106=CIRCLE('',#4105,8.8E-1);
-+#4115=CIRCLE('',#4114,8.8E-1);
-+#4124=CIRCLE('',#4123,8.8E-1);
-+#4133=CIRCLE('',#4132,8.8E-1);
-+#4142=CIRCLE('',#4141,8.8E-1);
-+#4151=CIRCLE('',#4150,8.8E-1);
-+#4160=CIRCLE('',#4159,8.8E-1);
-+#4169=CIRCLE('',#4168,8.8E-1);
-+#4178=CIRCLE('',#4177,8.8E-1);
-+#4187=CIRCLE('',#4186,8.8E-1);
-+#4208=CIRCLE('',#4207,5.6125E-1);
-+#5494=EDGE_CURVE('',#4423,#4400,#132,.T.);
-+#5496=EDGE_CURVE('',#4419,#4423,#1597,.T.);
-+#5498=EDGE_CURVE('',#4419,#4243,#136,.T.);
-+#5500=EDGE_CURVE('',#4239,#4243,#1614,.T.);
-+#5502=EDGE_CURVE('',#4239,#4259,#140,.T.);
-+#5504=EDGE_CURVE('',#4255,#4259,#1630,.T.);
-+#5506=EDGE_CURVE('',#4255,#4320,#144,.T.);
-+#5508=EDGE_CURVE('',#4324,#4320,#1376,.T.);
-+#5510=EDGE_CURVE('',#4324,#4300,#148,.T.);
-+#5512=EDGE_CURVE('',#4300,#4347,#152,.T.);
-+#5514=EDGE_CURVE('',#4343,#4347,#1912,.T.);
-+#5516=EDGE_CURVE('',#4343,#4315,#156,.T.);
-+#5518=EDGE_CURVE('',#4311,#4315,#1385,.T.);
-+#5520=EDGE_CURVE('',#4311,#4251,#160,.T.);
-+#5522=EDGE_CURVE('',#4247,#4251,#1580,.T.);
-+#5524=EDGE_CURVE('',#4247,#4235,#164,.T.);
-+#5526=EDGE_CURVE('',#4231,#4235,#1564,.T.);
-+#5528=EDGE_CURVE('',#4231,#4404,#168,.T.);
-+#5530=EDGE_CURVE('',#4408,#4404,#1556,.T.);
-+#5532=EDGE_CURVE('',#4444,#4408,#172,.T.);
-+#5534=EDGE_CURVE('',#4444,#4448,#1654,.T.);
-+#5536=EDGE_CURVE('',#4400,#4448,#176,.T.);
-+#5540=EDGE_CURVE('',#4427,#4328,#4,.T.);
-+#5542=EDGE_CURVE('',#4332,#4328,#1358,.T.);
-+#5544=EDGE_CURVE('',#4264,#4332,#1340,.T.);
-+#5546=EDGE_CURVE('',#4268,#4264,#8,.T.);
-+#5548=EDGE_CURVE('',#4431,#4268,#1317,.T.);
-+#5550=EDGE_CURVE('',#4427,#4431,#1303,.T.);
-+#5554=EDGE_CURVE('',#4639,#4640,#13,.T.);
-+#5556=EDGE_CURVE('',#4640,#4639,#18,.T.);
-+#5560=EDGE_CURVE('',#4635,#4636,#23,.T.);
-+#5562=EDGE_CURVE('',#4636,#4635,#28,.T.);
-+#5566=EDGE_CURVE('',#4631,#4632,#33,.T.);
-+#5568=EDGE_CURVE('',#4632,#4631,#38,.T.);
-+#5572=EDGE_CURVE('',#4627,#4628,#43,.T.);
-+#5574=EDGE_CURVE('',#4628,#4627,#48,.T.);
-+#5578=EDGE_CURVE('',#4623,#4624,#53,.T.);
-+#5580=EDGE_CURVE('',#4624,#4623,#58,.T.);
-+#5584=EDGE_CURVE('',#4527,#4528,#63,.T.);
-+#5586=EDGE_CURVE('',#4528,#4527,#68,.T.);
-+#5590=EDGE_CURVE('',#4523,#4524,#73,.T.);
-+#5592=EDGE_CURVE('',#4524,#4523,#78,.T.);
-+#5596=EDGE_CURVE('',#4519,#4520,#83,.T.);
-+#5598=EDGE_CURVE('',#4520,#4519,#88,.T.);
-+#5602=EDGE_CURVE('',#4515,#4516,#93,.T.);
-+#5604=EDGE_CURVE('',#4516,#4515,#98,.T.);
-+#5608=EDGE_CURVE('',#4511,#4512,#103,.T.);
-+#5610=EDGE_CURVE('',#4512,#4511,#108,.T.);
-+#5614=EDGE_CURVE('',#4507,#4508,#113,.T.);
-+#5616=EDGE_CURVE('',#4508,#4507,#118,.T.);
-+#5620=EDGE_CURVE('',#4503,#4504,#123,.T.);
-+#5622=EDGE_CURVE('',#4504,#4503,#128,.T.);
-+#5626=EDGE_CURVE('',#4487,#4488,#181,.T.);
-+#5628=EDGE_CURVE('',#4488,#4487,#186,.T.);
-+#5632=EDGE_CURVE('',#4607,#4608,#191,.T.);
-+#5634=EDGE_CURVE('',#4608,#4607,#196,.T.);
-+#5638=EDGE_CURVE('',#4796,#4803,#200,.T.);
-+#5640=EDGE_CURVE('',#4799,#4803,#1439,.T.);
-+#5642=EDGE_CURVE('',#4280,#4799,#204,.T.);
-+#5644=EDGE_CURVE('',#4284,#4280,#1466,.T.);
-+#5646=EDGE_CURVE('',#4272,#4284,#208,.T.);
-+#5648=EDGE_CURVE('',#4276,#4272,#1484,.T.);
-+#5650=EDGE_CURVE('',#4792,#4276,#212,.T.);
-+#5652=EDGE_CURVE('',#4796,#4792,#1430,.T.);
-+#5656=EDGE_CURVE('',#4808,#4411,#216,.T.);
-+#5658=EDGE_CURVE('',#4812,#4808,#1502,.T.);
-+#5660=EDGE_CURVE('',#4812,#4819,#220,.T.);
-+#5662=EDGE_CURVE('',#4815,#4819,#1511,.T.);
-+#5664=EDGE_CURVE('',#4304,#4815,#224,.T.);
-+#5666=EDGE_CURVE('',#4308,#4304,#1412,.T.);
-+#5668=EDGE_CURVE('',#4308,#4339,#228,.T.);
-+#5670=EDGE_CURVE('',#4335,#4339,#1754,.T.);
-+#5672=EDGE_CURVE('',#4335,#4772,#232,.T.);
-+#5674=EDGE_CURVE('',#4776,#4772,#1738,.T.);
-+#5676=EDGE_CURVE('',#4776,#4783,#236,.T.);
-+#5678=EDGE_CURVE('',#4779,#4783,#1707,.T.);
-+#5680=EDGE_CURVE('',#4436,#4779,#240,.T.);
-+#5682=EDGE_CURVE('',#4436,#4440,#2132,.T.);
-+#5684=EDGE_CURVE('',#4415,#4440,#244,.T.);
-+#5686=EDGE_CURVE('',#4411,#4415,#1529,.T.);
-+#5690=EDGE_CURVE('',#4823,#4824,#249,.T.);
-+#5692=EDGE_CURVE('',#4824,#4823,#254,.T.);
-+#5696=EDGE_CURVE('',#4839,#4840,#259,.T.);
-+#5698=EDGE_CURVE('',#4840,#4839,#264,.T.);
-+#5702=EDGE_CURVE('',#4843,#4844,#269,.T.);
-+#5704=EDGE_CURVE('',#4844,#4843,#274,.T.);
-+#5708=EDGE_CURVE('',#4847,#4848,#279,.T.);
-+#5710=EDGE_CURVE('',#4848,#4847,#284,.T.);
-+#5714=EDGE_CURVE('',#4851,#4852,#289,.T.);
-+#5716=EDGE_CURVE('',#4852,#4851,#294,.T.);
-+#5720=EDGE_CURVE('',#4855,#4856,#299,.T.);
-+#5722=EDGE_CURVE('',#4856,#4855,#304,.T.);
-+#5726=EDGE_CURVE('',#5121,#5122,#308,.T.);
-+#5728=EDGE_CURVE('',#5122,#5124,#313,.T.);
-+#5730=EDGE_CURVE('',#5124,#5126,#317,.T.);
-+#5732=EDGE_CURVE('',#5126,#5121,#322,.T.);
-+#5736=EDGE_CURVE('',#5132,#5139,#327,.T.);
-+#5738=EDGE_CURVE('',#5135,#5139,#3388,.T.);
-+#5740=EDGE_CURVE('',#5135,#5129,#331,.T.);
-+#5742=EDGE_CURVE('',#5129,#5130,#336,.T.);
-+#5744=EDGE_CURVE('',#5132,#5130,#341,.T.);
-+#5748=EDGE_CURVE('',#5184,#5186,#3418,.T.);
-+#5750=EDGE_CURVE('',#5184,#5147,#345,.T.);
-+#5752=EDGE_CURVE('',#5147,#5148,#350,.T.);
-+#5754=EDGE_CURVE('',#5148,#5194,#354,.T.);
-+#5756=EDGE_CURVE('',#5192,#5194,#3469,.T.);
-+#5758=EDGE_CURVE('',#5192,#5171,#358,.T.);
-+#5760=EDGE_CURVE('',#5167,#5171,#3495,.T.);
-+#5762=EDGE_CURVE('',#5167,#5179,#362,.T.);
-+#5764=EDGE_CURVE('',#5175,#5179,#3513,.T.);
-+#5766=EDGE_CURVE('',#5175,#5155,#366,.T.);
-+#5768=EDGE_CURVE('',#5151,#5155,#3531,.T.);
-+#5770=EDGE_CURVE('',#5151,#5163,#370,.T.);
-+#5772=EDGE_CURVE('',#5159,#5163,#3549,.T.);
-+#5774=EDGE_CURVE('',#5159,#5186,#374,.T.);
-+#5778=EDGE_CURVE('',#5207,#5208,#378,.T.);
-+#5780=EDGE_CURVE('',#5208,#5210,#383,.T.);
-+#5782=EDGE_CURVE('',#5210,#5212,#387,.T.);
-+#5784=EDGE_CURVE('',#5212,#5207,#392,.T.);
-+#5788=EDGE_CURVE('',#5223,#5224,#396,.T.);
-+#5790=EDGE_CURVE('',#5224,#5226,#401,.T.);
-+#5792=EDGE_CURVE('',#5226,#5228,#405,.T.);
-+#5794=EDGE_CURVE('',#5228,#5223,#410,.T.);
-+#5798=EDGE_CURVE('',#5239,#5240,#414,.T.);
-+#5800=EDGE_CURVE('',#5240,#5242,#419,.T.);
-+#5802=EDGE_CURVE('',#5242,#5244,#423,.T.);
-+#5804=EDGE_CURVE('',#5244,#5239,#428,.T.);
-+#5808=EDGE_CURVE('',#5255,#5256,#432,.T.);
-+#5810=EDGE_CURVE('',#5256,#5258,#437,.T.);
-+#5812=EDGE_CURVE('',#5258,#5260,#441,.T.);
-+#5814=EDGE_CURVE('',#5260,#5255,#446,.T.);
-+#5818=EDGE_CURVE('',#5277,#5278,#450,.T.);
-+#5820=EDGE_CURVE('',#5282,#5277,#455,.T.);
-+#5822=EDGE_CURVE('',#5280,#5282,#459,.T.);
-+#5824=EDGE_CURVE('',#5278,#5280,#464,.T.);
-+#5828=EDGE_CURVE('',#5305,#5306,#468,.T.);
-+#5830=EDGE_CURVE('',#5310,#5305,#473,.T.);
-+#5832=EDGE_CURVE('',#5308,#5310,#477,.T.);
-+#5834=EDGE_CURVE('',#5306,#5308,#482,.T.);
-+#5838=EDGE_CURVE('',#5335,#5336,#486,.T.);
-+#5840=EDGE_CURVE('',#5340,#5335,#491,.T.);
-+#5842=EDGE_CURVE('',#5338,#5340,#495,.T.);
-+#5844=EDGE_CURVE('',#5336,#5338,#500,.T.);
-+#5848=EDGE_CURVE('',#5351,#5352,#504,.T.);
-+#5850=EDGE_CURVE('',#5356,#5351,#509,.T.);
-+#5852=EDGE_CURVE('',#5354,#5356,#513,.T.);
-+#5854=EDGE_CURVE('',#5352,#5354,#518,.T.);
-+#5858=EDGE_CURVE('',#5367,#5368,#522,.T.);
-+#5860=EDGE_CURVE('',#5372,#5367,#527,.T.);
-+#5862=EDGE_CURVE('',#5370,#5372,#531,.T.);
-+#5864=EDGE_CURVE('',#5368,#5370,#536,.T.);
-+#5868=EDGE_CURVE('',#5383,#5384,#540,.T.);
-+#5870=EDGE_CURVE('',#5388,#5383,#545,.T.);
-+#5872=EDGE_CURVE('',#5386,#5388,#549,.T.);
-+#5874=EDGE_CURVE('',#5384,#5386,#554,.T.);
-+#5878=EDGE_CURVE('',#5405,#5406,#558,.T.);
-+#5880=EDGE_CURVE('',#5406,#5408,#563,.T.);
-+#5882=EDGE_CURVE('',#5408,#5410,#567,.T.);
-+#5884=EDGE_CURVE('',#5410,#5405,#572,.T.);
-+#5888=EDGE_CURVE('',#5455,#5451,#4097,.T.);
-+#5890=EDGE_CURVE('',#5324,#5455,#576,.T.);
-+#5892=EDGE_CURVE('',#5323,#5324,#581,.T.);
-+#5894=EDGE_CURVE('',#5459,#5323,#585,.T.);
-+#5896=EDGE_CURVE('',#5463,#5459,#4187,.T.);
-+#5898=EDGE_CURVE('',#5436,#5463,#589,.T.);
-+#5900=EDGE_CURVE('',#5440,#5436,#4169,.T.);
-+#5902=EDGE_CURVE('',#5444,#5440,#593,.T.);
-+#5904=EDGE_CURVE('',#5448,#5444,#4151,.T.);
-+#5906=EDGE_CURVE('',#5428,#5448,#597,.T.);
-+#5908=EDGE_CURVE('',#5432,#5428,#4133,.T.);
-+#5910=EDGE_CURVE('',#5420,#5432,#601,.T.);
-+#5912=EDGE_CURVE('',#5424,#5420,#4115,.T.);
-+#5914=EDGE_CURVE('',#5451,#5424,#605,.T.);
-+#5918=EDGE_CURVE('',#5471,#5313,#609,.T.);
-+#5920=EDGE_CURVE('',#5467,#5471,#3839,.T.);
-+#5922=EDGE_CURVE('',#5316,#5467,#614,.T.);
-+#5924=EDGE_CURVE('',#5316,#5314,#619,.T.);
-+#5926=EDGE_CURVE('',#5313,#5314,#624,.T.);
-+#5930=EDGE_CURVE('',#5479,#5285,#628,.T.);
-+#5932=EDGE_CURVE('',#5475,#5479,#3756,.T.);
-+#5934=EDGE_CURVE('',#5288,#5475,#633,.T.);
-+#5936=EDGE_CURVE('',#5288,#5286,#638,.T.);
-+#5938=EDGE_CURVE('',#5285,#5286,#643,.T.);
-+#5942=EDGE_CURVE('',#5416,#5487,#648,.T.);
-+#5944=EDGE_CURVE('',#5483,#5487,#4058,.T.);
-+#5946=EDGE_CURVE('',#5483,#5413,#652,.T.);
-+#5948=EDGE_CURVE('',#5413,#5414,#657,.T.);
-+#5950=EDGE_CURVE('',#5416,#5414,#662,.T.);
-+#5961=EDGE_CURVE('',#4427,#4428,#1298,.T.);
-+#5963=EDGE_CURVE('',#4424,#4428,#906,.T.);
-+#5965=EDGE_CURVE('',#4423,#4424,#1601,.T.);
-+#5968=EDGE_CURVE('',#4390,#4400,#1658,.T.);
-+#5970=EDGE_CURVE('',#4387,#4390,#746,.T.);
-+#5972=EDGE_CURVE('',#4387,#4388,#750,.T.);
-+#5974=EDGE_CURVE('',#4768,#4388,#1698,.T.);
-+#5976=EDGE_CURVE('',#4767,#4768,#1230,.T.);
-+#5978=EDGE_CURVE('',#4287,#4767,#1746,.T.);
-+#5980=EDGE_CURVE('',#4287,#4288,#754,.T.);
-+#5982=EDGE_CURVE('',#4288,#4290,#758,.T.);
-+#5984=EDGE_CURVE('',#4300,#4290,#1900,.T.);
-+#5987=EDGE_CURVE('',#4323,#4324,#1371,.T.);
-+#5989=EDGE_CURVE('',#4327,#4323,#914,.T.);
-+#5991=EDGE_CURVE('',#4327,#4328,#1344,.T.);
-+#5995=EDGE_CURVE('',#4747,#4748,#667,.T.);
-+#5997=EDGE_CURVE('',#4748,#4747,#672,.T.);
-+#6001=EDGE_CURVE('',#4735,#4736,#677,.T.);
-+#6003=EDGE_CURVE('',#4736,#4735,#682,.T.);
-+#6007=EDGE_CURVE('',#4755,#4756,#687,.T.);
-+#6009=EDGE_CURVE('',#4756,#4755,#692,.T.);
-+#6013=EDGE_CURVE('',#4763,#4764,#697,.T.);
-+#6015=EDGE_CURVE('',#4764,#4763,#702,.T.);
-+#6019=EDGE_CURVE('',#4731,#4732,#707,.T.);
-+#6021=EDGE_CURVE('',#4732,#4731,#712,.T.);
-+#6025=EDGE_CURVE('',#4723,#4724,#717,.T.);
-+#6027=EDGE_CURVE('',#4724,#4723,#722,.T.);
-+#6031=EDGE_CURVE('',#4703,#4704,#727,.T.);
-+#6033=EDGE_CURVE('',#4704,#4703,#732,.T.);
-+#6037=EDGE_CURVE('',#4715,#4716,#737,.T.);
-+#6039=EDGE_CURVE('',#4716,#4715,#742,.T.);
-+#6043=EDGE_CURVE('',#4947,#4959,#762,.T.);
-+#6045=EDGE_CURVE('',#4955,#4959,#3213,.T.);
-+#6047=EDGE_CURVE('',#4955,#4967,#766,.T.);
-+#6049=EDGE_CURVE('',#4963,#4967,#3195,.T.);
-+#6051=EDGE_CURVE('',#4963,#4975,#770,.T.);
-+#6053=EDGE_CURVE('',#4971,#4975,#3177,.T.);
-+#6055=EDGE_CURVE('',#4971,#4951,#774,.T.);
-+#6057=EDGE_CURVE('',#4947,#4951,#3159,.T.);
-+#6061=EDGE_CURVE('',#5036,#5048,#778,.T.);
-+#6063=EDGE_CURVE('',#5040,#5036,#3256,.T.);
-+#6065=EDGE_CURVE('',#5028,#5040,#782,.T.);
-+#6067=EDGE_CURVE('',#5032,#5028,#3290,.T.);
-+#6069=EDGE_CURVE('',#5052,#5032,#786,.T.);
-+#6071=EDGE_CURVE('',#5056,#5052,#3308,.T.);
-+#6073=EDGE_CURVE('',#5044,#5056,#790,.T.);
-+#6075=EDGE_CURVE('',#5048,#5044,#3326,.T.);
-+#6086=EDGE_CURVE('',#4747,#4743,#794,.T.);
-+#6088=EDGE_CURVE('',#4743,#4744,#803,.T.);
-+#6090=EDGE_CURVE('',#4748,#4744,#798,.T.);
-+#6102=EDGE_CURVE('',#4744,#4743,#808,.T.);
-+#6124=EDGE_CURVE('',#4735,#4739,#812,.T.);
-+#6126=EDGE_CURVE('',#4739,#4740,#821,.T.);
-+#6128=EDGE_CURVE('',#4736,#4740,#816,.T.);
-+#6140=EDGE_CURVE('',#4740,#4739,#826,.T.);
-+#6151=EDGE_CURVE('',#4934,#4940,#830,.T.);
-+#6153=EDGE_CURVE('',#4940,#4942,#834,.T.);
-+#6155=EDGE_CURVE('',#4938,#4942,#838,.T.);
-+#6157=EDGE_CURVE('',#4788,#4938,#1234,.T.);
-+#6159=EDGE_CURVE('',#4788,#4393,#842,.T.);
-+#6161=EDGE_CURVE('',#4393,#4394,#846,.T.);
-+#6163=EDGE_CURVE('',#4394,#4396,#850,.T.);
-+#6165=EDGE_CURVE('',#4396,#4398,#854,.T.);
-+#6167=EDGE_CURVE('',#4934,#4398,#1178,.T.);
-+#6175=EDGE_CURVE('',#5103,#5099,#2946,.T.);
-+#6177=EDGE_CURVE('',#5076,#5103,#858,.T.);
-+#6179=EDGE_CURVE('',#5080,#5076,#3036,.T.);
-+#6181=EDGE_CURVE('',#5084,#5080,#862,.T.);
-+#6183=EDGE_CURVE('',#5088,#5084,#3018,.T.);
-+#6185=EDGE_CURVE('',#5092,#5088,#866,.T.);
-+#6187=EDGE_CURVE('',#5096,#5092,#3000,.T.);
-+#6189=EDGE_CURVE('',#5068,#5096,#870,.T.);
-+#6191=EDGE_CURVE('',#5072,#5068,#2982,.T.);
-+#6193=EDGE_CURVE('',#5060,#5072,#874,.T.);
-+#6195=EDGE_CURVE('',#5064,#5060,#2964,.T.);
-+#6197=EDGE_CURVE('',#5099,#5064,#878,.T.);
-+#6207=EDGE_CURVE('',#4933,#4934,#1174,.T.);
-+#6209=EDGE_CURVE('',#4940,#4933,#882,.T.);
-+#6221=EDGE_CURVE('',#4432,#4428,#1312,.T.);
-+#6223=EDGE_CURVE('',#4267,#4432,#1326,.T.);
-+#6225=EDGE_CURVE('',#4267,#4263,#910,.T.);
-+#6227=EDGE_CURVE('',#4331,#4263,#1331,.T.);
-+#6229=EDGE_CURVE('',#4327,#4331,#1349,.T.);
-+#6232=EDGE_CURVE('',#4319,#4323,#1367,.T.);
-+#6234=EDGE_CURVE('',#4256,#4319,#918,.T.);
-+#6236=EDGE_CURVE('',#4256,#4260,#1638,.T.);
-+#6238=EDGE_CURVE('',#4240,#4260,#922,.T.);
-+#6240=EDGE_CURVE('',#4240,#4244,#1622,.T.);
-+#6242=EDGE_CURVE('',#4420,#4244,#926,.T.);
-+#6244=EDGE_CURVE('',#4424,#4420,#1606,.T.);
-+#6248=EDGE_CURVE('',#4495,#4496,#951,.T.);
-+#6250=EDGE_CURVE('',#4496,#4495,#956,.T.);
-+#6254=EDGE_CURVE('',#4567,#4568,#981,.T.);
-+#6256=EDGE_CURVE('',#4568,#4567,#986,.T.);
-+#6260=EDGE_CURVE('',#4615,#4616,#1011,.T.);
-+#6262=EDGE_CURVE('',#4616,#4615,#1016,.T.);
-+#6266=EDGE_CURVE('',#4647,#4648,#1021,.T.);
-+#6268=EDGE_CURVE('',#4648,#4647,#1026,.T.);
-+#6272=EDGE_CURVE('',#4659,#4660,#1031,.T.);
-+#6274=EDGE_CURVE('',#4660,#4659,#1036,.T.);
-+#6286=EDGE_CURVE('',#4398,#4447,#1182,.T.);
-+#6288=EDGE_CURVE('',#4443,#4447,#1646,.T.);
-+#6290=EDGE_CURVE('',#4443,#4407,#1186,.T.);
-+#6292=EDGE_CURVE('',#4403,#4407,#1547,.T.);
-+#6294=EDGE_CURVE('',#4232,#4403,#1190,.T.);
-+#6296=EDGE_CURVE('',#4232,#4236,#1572,.T.);
-+#6298=EDGE_CURVE('',#4248,#4236,#1194,.T.);
-+#6300=EDGE_CURVE('',#4248,#4252,#1588,.T.);
-+#6302=EDGE_CURVE('',#4312,#4252,#1198,.T.);
-+#6304=EDGE_CURVE('',#4316,#4312,#1394,.T.);
-+#6306=EDGE_CURVE('',#4344,#4316,#1202,.T.);
-+#6308=EDGE_CURVE('',#4344,#4348,#1920,.T.);
-+#6310=EDGE_CURVE('',#4298,#4348,#1206,.T.);
-+#6312=EDGE_CURVE('',#4298,#4920,#1210,.T.);
-+#6314=EDGE_CURVE('',#4919,#4920,#1214,.T.);
-+#6316=EDGE_CURVE('',#4919,#4923,#1218,.T.);
-+#6318=EDGE_CURVE('',#4923,#4924,#1222,.T.);
-+#6320=EDGE_CURVE('',#4924,#4786,#1226,.T.);
-+#6322=EDGE_CURVE('',#4767,#4786,#1742,.T.);
-+#6325=EDGE_CURVE('',#4768,#4788,#1694,.T.);
-+#6328=EDGE_CURVE('',#4937,#4938,#1238,.T.);
-+#6330=EDGE_CURVE('',#4933,#4937,#1242,.T.);
-+#6334=EDGE_CURVE('',#4373,#4374,#887,.T.);
-+#6336=EDGE_CURVE('',#4374,#4373,#892,.T.);
-+#6340=EDGE_CURVE('',#4383,#4384,#897,.T.);
-+#6342=EDGE_CURVE('',#4384,#4383,#902,.T.);
-+#6346=EDGE_CURVE('',#4473,#4474,#931,.T.);
-+#6348=EDGE_CURVE('',#4474,#4473,#936,.T.);
-+#6352=EDGE_CURVE('',#4483,#4484,#941,.T.);
-+#6354=EDGE_CURVE('',#4484,#4483,#946,.T.);
-+#6358=EDGE_CURVE('',#4543,#4544,#961,.T.);
-+#6360=EDGE_CURVE('',#4544,#4543,#966,.T.);
-+#6364=EDGE_CURVE('',#4555,#4556,#971,.T.);
-+#6366=EDGE_CURVE('',#4556,#4555,#976,.T.);
-+#6370=EDGE_CURVE('',#4587,#4588,#991,.T.);
-+#6372=EDGE_CURVE('',#4588,#4587,#996,.T.);
-+#6376=EDGE_CURVE('',#4599,#4600,#1001,.T.);
-+#6378=EDGE_CURVE('',#4600,#4599,#1006,.T.);
-+#6382=EDGE_CURVE('',#4671,#4672,#1041,.T.);
-+#6384=EDGE_CURVE('',#4672,#4671,#1046,.T.);
-+#6388=EDGE_CURVE('',#4683,#4684,#1051,.T.);
-+#6390=EDGE_CURVE('',#4684,#4683,#1056,.T.);
-+#6394=EDGE_CURVE('',#4695,#4696,#1061,.T.);
-+#6396=EDGE_CURVE('',#4696,#4695,#1066,.T.);
-+#6400=EDGE_CURVE('',#4279,#4800,#1070,.T.);
-+#6402=EDGE_CURVE('',#4804,#4800,#1448,.T.);
-+#6404=EDGE_CURVE('',#4795,#4804,#1074,.T.);
-+#6406=EDGE_CURVE('',#4791,#4795,#1421,.T.);
-+#6408=EDGE_CURVE('',#4791,#4275,#1078,.T.);
-+#6410=EDGE_CURVE('',#4271,#4275,#1475,.T.);
-+#6412=EDGE_CURVE('',#4271,#4283,#1082,.T.);
-+#6414=EDGE_CURVE('',#4279,#4283,#1457,.T.);
-+#6418=EDGE_CURVE('',#4811,#4820,#1086,.T.);
-+#6420=EDGE_CURVE('',#4807,#4811,#1493,.T.);
-+#6422=EDGE_CURVE('',#4807,#4412,#1090,.T.);
-+#6424=EDGE_CURVE('',#4416,#4412,#1538,.T.);
-+#6426=EDGE_CURVE('',#4416,#4439,#1094,.T.);
-+#6428=EDGE_CURVE('',#4435,#4439,#2124,.T.);
-+#6430=EDGE_CURVE('',#4435,#4780,#1098,.T.);
-+#6432=EDGE_CURVE('',#4784,#4780,#1716,.T.);
-+#6434=EDGE_CURVE('',#4775,#4784,#1720,.T.);
-+#6436=EDGE_CURVE('',#4771,#4775,#1729,.T.);
-+#6438=EDGE_CURVE('',#4336,#4771,#1102,.T.);
-+#6440=EDGE_CURVE('',#4336,#4340,#1762,.T.);
-+#6442=EDGE_CURVE('',#4307,#4340,#1106,.T.);
-+#6444=EDGE_CURVE('',#4303,#4307,#1403,.T.);
-+#6446=EDGE_CURVE('',#4303,#4816,#1110,.T.);
-+#6448=EDGE_CURVE('',#4820,#4816,#1520,.T.);
-+#6452=EDGE_CURVE('',#4831,#4832,#1115,.T.);
-+#6454=EDGE_CURVE('',#4832,#4831,#1120,.T.);
-+#6458=EDGE_CURVE('',#4863,#4864,#1125,.T.);
-+#6460=EDGE_CURVE('',#4864,#4863,#1130,.T.);
-+#6464=EDGE_CURVE('',#4875,#4876,#1135,.T.);
-+#6466=EDGE_CURVE('',#4876,#4875,#1140,.T.);
-+#6470=EDGE_CURVE('',#4887,#4888,#1145,.T.);
-+#6472=EDGE_CURVE('',#4888,#4887,#1150,.T.);
-+#6476=EDGE_CURVE('',#4899,#4900,#1155,.T.);
-+#6478=EDGE_CURVE('',#4900,#4899,#1160,.T.);
-+#6482=EDGE_CURVE('',#4911,#4912,#1165,.T.);
-+#6484=EDGE_CURVE('',#4912,#4911,#1170,.T.);
-+#6495=EDGE_CURVE('',#4368,#4374,#1250,.T.);
-+#6497=EDGE_CURVE('',#4370,#4368,#1268,.T.);
-+#6499=EDGE_CURVE('',#4370,#4373,#1246,.T.);
-+#6511=EDGE_CURVE('',#4370,#4368,#1259,.T.);
-+#6522=EDGE_CURVE('',#4367,#4368,#1254,.T.);
-+#6525=EDGE_CURVE('',#4367,#4370,#1263,.T.);
-+#6547=EDGE_CURVE('',#4378,#4384,#1276,.T.);
-+#6549=EDGE_CURVE('',#4380,#4378,#1294,.T.);
-+#6551=EDGE_CURVE('',#4380,#4383,#1272,.T.);
-+#6563=EDGE_CURVE('',#4380,#4378,#1285,.T.);
-+#6574=EDGE_CURVE('',#4377,#4378,#1280,.T.);
-+#6577=EDGE_CURVE('',#4377,#4380,#1289,.T.);
-+#6600=EDGE_CURVE('',#4431,#4432,#1307,.T.);
-+#6613=EDGE_CURVE('',#4267,#4268,#1321,.T.);
-+#6624=EDGE_CURVE('',#4263,#4264,#1335,.T.);
-+#6637=EDGE_CURVE('',#4331,#4332,#1353,.T.);
-+#6662=EDGE_CURVE('',#4319,#4320,#1362,.T.);
-+#6675=EDGE_CURVE('',#4311,#4312,#1380,.T.);
-+#6678=EDGE_CURVE('',#4251,#4252,#1584,.T.);
-+#6691=EDGE_CURVE('',#4255,#4256,#1626,.T.);
-+#6704=EDGE_CURVE('',#4315,#4316,#1389,.T.);
-+#6715=EDGE_CURVE('',#4307,#4308,#1407,.T.);
-+#6718=EDGE_CURVE('',#4339,#4340,#1758,.T.);
-+#6731=EDGE_CURVE('',#4343,#4344,#1908,.T.);
-+#6742=EDGE_CURVE('',#4303,#4304,#1398,.T.);
-+#6755=EDGE_CURVE('',#4791,#4792,#1416,.T.);
-+#6758=EDGE_CURVE('',#4275,#4276,#1479,.T.);
-+#6769=EDGE_CURVE('',#4815,#4816,#1506,.T.);
-+#6784=EDGE_CURVE('',#4795,#4796,#1425,.T.);
-+#6797=EDGE_CURVE('',#4803,#4804,#1443,.T.);
-+#6808=EDGE_CURVE('',#4799,#4800,#1434,.T.);
-+#6823=EDGE_CURVE('',#4279,#4280,#1452,.T.);
-+#6834=EDGE_CURVE('',#4807,#4808,#1488,.T.);
-+#6837=EDGE_CURVE('',#4411,#4412,#1524,.T.);
-+#6850=EDGE_CURVE('',#4283,#4284,#1461,.T.);
-+#6861=EDGE_CURVE('',#4271,#4272,#1470,.T.);
-+#6888=EDGE_CURVE('',#4811,#4812,#1497,.T.);
-+#6901=EDGE_CURVE('',#4819,#4820,#1515,.T.);
-+#6926=EDGE_CURVE('',#4415,#4416,#1533,.T.);
-+#6937=EDGE_CURVE('',#4407,#4408,#1551,.T.);
-+#6940=EDGE_CURVE('',#4443,#4444,#1642,.T.);
-+#6953=EDGE_CURVE('',#4439,#4440,#2128,.T.);
-+#6964=EDGE_CURVE('',#4403,#4404,#1542,.T.);
-+#6979=EDGE_CURVE('',#4231,#4232,#1560,.T.);
-+#6990=EDGE_CURVE('',#4419,#4420,#1592,.T.);
-+#6993=EDGE_CURVE('',#4243,#4244,#1618,.T.);
-+#7006=EDGE_CURVE('',#4235,#4236,#1568,.T.);
-+#7018=EDGE_CURVE('',#4247,#4248,#1576,.T.);
-+#7054=EDGE_CURVE('',#4239,#4240,#1610,.T.);
-+#7070=EDGE_CURVE('',#4259,#4260,#1634,.T.);
-+#7094=EDGE_CURVE('',#4447,#4448,#1650,.T.);
-+#7110=EDGE_CURVE('',#4390,#4396,#1662,.T.);
-+#7123=EDGE_CURVE('',#4387,#4394,#1666,.T.);
-+#7136=EDGE_CURVE('',#4388,#4393,#1670,.T.);
-+#7140=EDGE_CURVE('',#4455,#4456,#1675,.T.);
-+#7142=EDGE_CURVE('',#4456,#4455,#1680,.T.);
-+#7146=EDGE_CURVE('',#4463,#4464,#1685,.T.);
-+#7148=EDGE_CURVE('',#4464,#4463,#1690,.T.);
-+#7158=EDGE_CURVE('',#4779,#4780,#1702,.T.);
-+#7161=EDGE_CURVE('',#4435,#4436,#2120,.T.);
-+#7186=EDGE_CURVE('',#4783,#4784,#1711,.T.);
-+#7197=EDGE_CURVE('',#4775,#4776,#1733,.T.);
-+#7210=EDGE_CURVE('',#4771,#4772,#1724,.T.);
-+#7225=EDGE_CURVE('',#4335,#4336,#1750,.T.);
-+#7237=EDGE_CURVE('',#4786,#4293,#1792,.T.);
-+#7239=EDGE_CURVE('',#4287,#4293,#1928,.T.);
-+#7262=EDGE_CURVE('',#4920,#4926,#1776,.T.);
-+#7265=EDGE_CURVE('',#4296,#4298,#1780,.T.);
-+#7267=EDGE_CURVE('',#4294,#4296,#1784,.T.);
-+#7269=EDGE_CURVE('',#4293,#4294,#1788,.T.);
-+#7273=EDGE_CURVE('',#4924,#4928,#1796,.T.);
-+#7275=EDGE_CURVE('',#4926,#4928,#1800,.T.);
-+#7279=EDGE_CURVE('',#4707,#4708,#1767,.T.);
-+#7281=EDGE_CURVE('',#4708,#4707,#1772,.T.);
-+#7285=EDGE_CURVE('',#5020,#5022,#1993,.T.);
-+#7287=EDGE_CURVE('',#5020,#4983,#1804,.T.);
-+#7289=EDGE_CURVE('',#4979,#4983,#2107,.T.);
-+#7291=EDGE_CURVE('',#4979,#4991,#1808,.T.);
-+#7293=EDGE_CURVE('',#4987,#4991,#2089,.T.);
-+#7295=EDGE_CURVE('',#4987,#5015,#1812,.T.);
-+#7297=EDGE_CURVE('',#5011,#5015,#2071,.T.);
-+#7299=EDGE_CURVE('',#5011,#5007,#1816,.T.);
-+#7301=EDGE_CURVE('',#5003,#5007,#2053,.T.);
-+#7303=EDGE_CURVE('',#5003,#4999,#1820,.T.);
-+#7305=EDGE_CURVE('',#4995,#4999,#2035,.T.);
-+#7307=EDGE_CURVE('',#4995,#5022,#1824,.T.);
-+#7318=EDGE_CURVE('',#4704,#4708,#1832,.T.);
-+#7321=EDGE_CURVE('',#4703,#4707,#1828,.T.);
-+#7345=EDGE_CURVE('',#4926,#4919,#1836,.T.);
-+#7358=EDGE_CURVE('',#4928,#4923,#1860,.T.);
-+#7362=EDGE_CURVE('',#4929,#4930,#1846,.T.);
-+#7364=EDGE_CURVE('',#4930,#4929,#1856,.T.);
-+#7385=EDGE_CURVE('',#4930,#4531,#1868,.T.);
-+#7388=EDGE_CURVE('',#4532,#4929,#1864,.T.);
-+#7390=EDGE_CURVE('',#4531,#4532,#1873,.T.);
-+#7403=EDGE_CURVE('',#4532,#4531,#1878,.T.);
-+#7417=EDGE_CURVE('',#4535,#4536,#1883,.T.);
-+#7419=EDGE_CURVE('',#4536,#4535,#1888,.T.);
-+#7430=EDGE_CURVE('',#4536,#4504,#1896,.T.);
-+#7433=EDGE_CURVE('',#4535,#4503,#1892,.T.);
-+#7457=EDGE_CURVE('',#4347,#4348,#1916,.T.);
-+#7461=EDGE_CURVE('',#4290,#4296,#1904,.T.);
-+#7484=EDGE_CURVE('',#4288,#4294,#1924,.T.);
-+#7502=EDGE_CURVE('',#4355,#4356,#1933,.T.);
-+#7504=EDGE_CURVE('',#4356,#4355,#1938,.T.);
-+#7508=EDGE_CURVE('',#4363,#4364,#1943,.T.);
-+#7510=EDGE_CURVE('',#4364,#4363,#1948,.T.);
-+#7521=EDGE_CURVE('',#4356,#4352,#1956,.T.);
-+#7523=EDGE_CURVE('',#4351,#4352,#1961,.T.);
-+#7525=EDGE_CURVE('',#4355,#4351,#1952,.T.);
-+#7537=EDGE_CURVE('',#4352,#4351,#1966,.T.);
-+#7559=EDGE_CURVE('',#4364,#4360,#1974,.T.);
-+#7561=EDGE_CURVE('',#4359,#4360,#1979,.T.);
-+#7563=EDGE_CURVE('',#4363,#4359,#1970,.T.);
-+#7575=EDGE_CURVE('',#4360,#4359,#1984,.T.);
-+#7596=EDGE_CURVE('',#5019,#5020,#1988,.T.);
-+#7599=EDGE_CURVE('',#5024,#5022,#1997,.T.);
-+#7601=EDGE_CURVE('',#5024,#5019,#2002,.T.);
-+#7612=EDGE_CURVE('',#5019,#4984,#2006,.T.);
-+#7614=EDGE_CURVE('',#4983,#4984,#2111,.T.);
-+#7627=EDGE_CURVE('',#4996,#5024,#2010,.T.);
-+#7629=EDGE_CURVE('',#5000,#4996,#2044,.T.);
-+#7631=EDGE_CURVE('',#5004,#5000,#2014,.T.);
-+#7633=EDGE_CURVE('',#5008,#5004,#2062,.T.);
-+#7635=EDGE_CURVE('',#5012,#5008,#2018,.T.);
-+#7637=EDGE_CURVE('',#5016,#5012,#2080,.T.);
-+#7639=EDGE_CURVE('',#4988,#5016,#2022,.T.);
-+#7641=EDGE_CURVE('',#4992,#4988,#2098,.T.);
-+#7643=EDGE_CURVE('',#4980,#4992,#2026,.T.);
-+#7645=EDGE_CURVE('',#4984,#4980,#2116,.T.);
-+#7657=EDGE_CURVE('',#4995,#4996,#2030,.T.);
-+#7670=EDGE_CURVE('',#4999,#5000,#2039,.T.);
-+#7683=EDGE_CURVE('',#5003,#5004,#2048,.T.);
-+#7696=EDGE_CURVE('',#5007,#5008,#2057,.T.);
-+#7709=EDGE_CURVE('',#5011,#5012,#2066,.T.);
-+#7722=EDGE_CURVE('',#5015,#5016,#2075,.T.);
-+#7733=EDGE_CURVE('',#4987,#4988,#2084,.T.);
-+#7748=EDGE_CURVE('',#4991,#4992,#2093,.T.);
-+#7759=EDGE_CURVE('',#4979,#4980,#2102,.T.);
-+#7797=EDGE_CURVE('',#4455,#4451,#2136,.T.);
-+#7799=EDGE_CURVE('',#4451,#4452,#2145,.T.);
-+#7801=EDGE_CURVE('',#4456,#4452,#2140,.T.);
-+#7813=EDGE_CURVE('',#4452,#4451,#2150,.T.);
-+#7835=EDGE_CURVE('',#4463,#4459,#2154,.T.);
-+#7837=EDGE_CURVE('',#4459,#4460,#2163,.T.);
-+#7839=EDGE_CURVE('',#4464,#4460,#2158,.T.);
-+#7851=EDGE_CURVE('',#4460,#4459,#2168,.T.);
-+#7873=EDGE_CURVE('',#4470,#4473,#2176,.T.);
-+#7875=EDGE_CURVE('',#4470,#4468,#2194,.T.);
-+#7877=EDGE_CURVE('',#4468,#4474,#2172,.T.);
-+#7889=EDGE_CURVE('',#4470,#4468,#2189,.T.);
-+#7900=EDGE_CURVE('',#4467,#4468,#2180,.T.);
-+#7902=EDGE_CURVE('',#4467,#4470,#2184,.T.);
-+#7925=EDGE_CURVE('',#4480,#4483,#2202,.T.);
-+#7927=EDGE_CURVE('',#4480,#4478,#2220,.T.);
-+#7929=EDGE_CURVE('',#4478,#4484,#2198,.T.);
-+#7941=EDGE_CURVE('',#4480,#4478,#2215,.T.);
-+#7952=EDGE_CURVE('',#4477,#4478,#2206,.T.);
-+#7954=EDGE_CURVE('',#4477,#4480,#2210,.T.);
-+#7977=EDGE_CURVE('',#4496,#4492,#2228,.T.);
-+#7979=EDGE_CURVE('',#4491,#4492,#2233,.T.);
-+#7981=EDGE_CURVE('',#4495,#4491,#2224,.T.);
-+#7993=EDGE_CURVE('',#4492,#4491,#2238,.T.);
-+#8008=EDGE_CURVE('',#4499,#4500,#2243,.T.);
-+#8010=EDGE_CURVE('',#4500,#4499,#2248,.T.);
-+#8021=EDGE_CURVE('',#4500,#4488,#2256,.T.);
-+#8024=EDGE_CURVE('',#4499,#4487,#2252,.T.);
-+#8047=EDGE_CURVE('',#4544,#4540,#2264,.T.);
-+#8049=EDGE_CURVE('',#4539,#4540,#2269,.T.);
-+#8051=EDGE_CURVE('',#4543,#4539,#2260,.T.);
-+#8063=EDGE_CURVE('',#4540,#4539,#2274,.T.);
-+#8078=EDGE_CURVE('',#4547,#4548,#2279,.T.);
-+#8080=EDGE_CURVE('',#4548,#4547,#2284,.T.);
-+#8091=EDGE_CURVE('',#4548,#4508,#2292,.T.);
-+#8094=EDGE_CURVE('',#4547,#4507,#2288,.T.);
-+#8117=EDGE_CURVE('',#4556,#4552,#2300,.T.);
-+#8119=EDGE_CURVE('',#4551,#4552,#2305,.T.);
-+#8121=EDGE_CURVE('',#4555,#4551,#2296,.T.);
-+#8133=EDGE_CURVE('',#4552,#4551,#2310,.T.);
-+#8148=EDGE_CURVE('',#4559,#4560,#2315,.T.);
-+#8150=EDGE_CURVE('',#4560,#4559,#2320,.T.);
-+#8161=EDGE_CURVE('',#4560,#4512,#2328,.T.);
-+#8164=EDGE_CURVE('',#4559,#4511,#2324,.T.);
-+#8187=EDGE_CURVE('',#4568,#4564,#2336,.T.);
-+#8189=EDGE_CURVE('',#4563,#4564,#2341,.T.);
-+#8191=EDGE_CURVE('',#4567,#4563,#2332,.T.);
-+#8203=EDGE_CURVE('',#4564,#4563,#2346,.T.);
-+#8218=EDGE_CURVE('',#4571,#4572,#2351,.T.);
-+#8220=EDGE_CURVE('',#4572,#4571,#2356,.T.);
-+#8231=EDGE_CURVE('',#4572,#4516,#2364,.T.);
-+#8234=EDGE_CURVE('',#4571,#4515,#2360,.T.);
-+#8257=EDGE_CURVE('',#4588,#4584,#2372,.T.);
-+#8259=EDGE_CURVE('',#4583,#4584,#2377,.T.);
-+#8261=EDGE_CURVE('',#4587,#4583,#2368,.T.);
-+#8273=EDGE_CURVE('',#4584,#4583,#2382,.T.);
-+#8288=EDGE_CURVE('',#4591,#4592,#2387,.T.);
-+#8290=EDGE_CURVE('',#4592,#4591,#2392,.T.);
-+#8301=EDGE_CURVE('',#4592,#4524,#2400,.T.);
-+#8304=EDGE_CURVE('',#4591,#4523,#2396,.T.);
-+#8327=EDGE_CURVE('',#4600,#4596,#2408,.T.);
-+#8329=EDGE_CURVE('',#4595,#4596,#2413,.T.);
-+#8331=EDGE_CURVE('',#4599,#4595,#2404,.T.);
-+#8343=EDGE_CURVE('',#4596,#4595,#2418,.T.);
-+#8358=EDGE_CURVE('',#4603,#4604,#2423,.T.);
-+#8360=EDGE_CURVE('',#4604,#4603,#2428,.T.);
-+#8371=EDGE_CURVE('',#4604,#4528,#2436,.T.);
-+#8374=EDGE_CURVE('',#4603,#4527,#2432,.T.);
-+#8397=EDGE_CURVE('',#4616,#4612,#2444,.T.);
-+#8399=EDGE_CURVE('',#4611,#4612,#2449,.T.);
-+#8401=EDGE_CURVE('',#4615,#4611,#2440,.T.);
-+#8413=EDGE_CURVE('',#4612,#4611,#2454,.T.);
-+#8428=EDGE_CURVE('',#4619,#4620,#2459,.T.);
-+#8430=EDGE_CURVE('',#4620,#4619,#2464,.T.);
-+#8441=EDGE_CURVE('',#4620,#4608,#2472,.T.);
-+#8444=EDGE_CURVE('',#4619,#4607,#2468,.T.);
-+#8467=EDGE_CURVE('',#4648,#4644,#2480,.T.);
-+#8469=EDGE_CURVE('',#4643,#4644,#2485,.T.);
-+#8471=EDGE_CURVE('',#4647,#4643,#2476,.T.);
-+#8483=EDGE_CURVE('',#4644,#4643,#2490,.T.);
-+#8498=EDGE_CURVE('',#4651,#4652,#2495,.T.);
-+#8500=EDGE_CURVE('',#4652,#4651,#2500,.T.);
-+#8511=EDGE_CURVE('',#4652,#4624,#2508,.T.);
-+#8514=EDGE_CURVE('',#4651,#4623,#2504,.T.);
-+#8537=EDGE_CURVE('',#4660,#4656,#2516,.T.);
-+#8539=EDGE_CURVE('',#4655,#4656,#2521,.T.);
-+#8541=EDGE_CURVE('',#4659,#4655,#2512,.T.);
-+#8553=EDGE_CURVE('',#4656,#4655,#2526,.T.);
-+#8568=EDGE_CURVE('',#4663,#4664,#2531,.T.);
-+#8570=EDGE_CURVE('',#4664,#4663,#2536,.T.);
-+#8581=EDGE_CURVE('',#4664,#4636,#2544,.T.);
-+#8584=EDGE_CURVE('',#4663,#4635,#2540,.T.);
-+#8607=EDGE_CURVE('',#4672,#4668,#2552,.T.);
-+#8609=EDGE_CURVE('',#4667,#4668,#2557,.T.);
-+#8611=EDGE_CURVE('',#4671,#4667,#2548,.T.);
-+#8623=EDGE_CURVE('',#4668,#4667,#2562,.T.);
-+#8638=EDGE_CURVE('',#4675,#4676,#2567,.T.);
-+#8640=EDGE_CURVE('',#4676,#4675,#2572,.T.);
-+#8651=EDGE_CURVE('',#4676,#4628,#2580,.T.);
-+#8654=EDGE_CURVE('',#4675,#4627,#2576,.T.);
-+#8677=EDGE_CURVE('',#4684,#4680,#2588,.T.);
-+#8679=EDGE_CURVE('',#4679,#4680,#2593,.T.);
-+#8681=EDGE_CURVE('',#4683,#4679,#2584,.T.);
-+#8693=EDGE_CURVE('',#4680,#4679,#2598,.T.);
-+#8708=EDGE_CURVE('',#4687,#4688,#2603,.T.);
-+#8710=EDGE_CURVE('',#4688,#4687,#2608,.T.);
-+#8721=EDGE_CURVE('',#4688,#4632,#2616,.T.);
-+#8724=EDGE_CURVE('',#4687,#4631,#2612,.T.);
-+#8747=EDGE_CURVE('',#4696,#4692,#2624,.T.);
-+#8749=EDGE_CURVE('',#4691,#4692,#2629,.T.);
-+#8751=EDGE_CURVE('',#4695,#4691,#2620,.T.);
-+#8763=EDGE_CURVE('',#4692,#4691,#2634,.T.);
-+#8778=EDGE_CURVE('',#4699,#4700,#2639,.T.);
-+#8780=EDGE_CURVE('',#4700,#4699,#2644,.T.);
-+#8791=EDGE_CURVE('',#4700,#4640,#2652,.T.);
-+#8794=EDGE_CURVE('',#4699,#4639,#2648,.T.);
-+#8817=EDGE_CURVE('',#4832,#4828,#2660,.T.);
-+#8819=EDGE_CURVE('',#4827,#4828,#2665,.T.);
-+#8821=EDGE_CURVE('',#4831,#4827,#2656,.T.);
-+#8833=EDGE_CURVE('',#4828,#4827,#2670,.T.);
-+#8848=EDGE_CURVE('',#4835,#4836,#2675,.T.);
-+#8850=EDGE_CURVE('',#4836,#4835,#2680,.T.);
-+#8861=EDGE_CURVE('',#4836,#4824,#2688,.T.);
-+#8864=EDGE_CURVE('',#4835,#4823,#2684,.T.);
-+#8887=EDGE_CURVE('',#4864,#4860,#2696,.T.);
-+#8889=EDGE_CURVE('',#4859,#4860,#2701,.T.);
-+#8891=EDGE_CURVE('',#4863,#4859,#2692,.T.);
-+#8903=EDGE_CURVE('',#4860,#4859,#2706,.T.);
-+#8918=EDGE_CURVE('',#4867,#4868,#2711,.T.);
-+#8920=EDGE_CURVE('',#4868,#4867,#2716,.T.);
-+#8931=EDGE_CURVE('',#4868,#4840,#2724,.T.);
-+#8934=EDGE_CURVE('',#4867,#4839,#2720,.T.);
-+#8957=EDGE_CURVE('',#4876,#4872,#2732,.T.);
-+#8959=EDGE_CURVE('',#4871,#4872,#2737,.T.);
-+#8961=EDGE_CURVE('',#4875,#4871,#2728,.T.);
-+#8973=EDGE_CURVE('',#4872,#4871,#2742,.T.);
-+#8988=EDGE_CURVE('',#4879,#4880,#2747,.T.);
-+#8990=EDGE_CURVE('',#4880,#4879,#2752,.T.);
-+#9001=EDGE_CURVE('',#4880,#4844,#2760,.T.);
-+#9004=EDGE_CURVE('',#4879,#4843,#2756,.T.);
-+#9027=EDGE_CURVE('',#4888,#4884,#2768,.T.);
-+#9029=EDGE_CURVE('',#4883,#4884,#2773,.T.);
-+#9031=EDGE_CURVE('',#4887,#4883,#2764,.T.);
-+#9043=EDGE_CURVE('',#4884,#4883,#2778,.T.);
-+#9058=EDGE_CURVE('',#4891,#4892,#2783,.T.);
-+#9060=EDGE_CURVE('',#4892,#4891,#2788,.T.);
-+#9071=EDGE_CURVE('',#4892,#4848,#2796,.T.);
-+#9074=EDGE_CURVE('',#4891,#4847,#2792,.T.);
-+#9097=EDGE_CURVE('',#4900,#4896,#2804,.T.);
-+#9099=EDGE_CURVE('',#4895,#4896,#2809,.T.);
-+#9101=EDGE_CURVE('',#4899,#4895,#2800,.T.);
-+#9113=EDGE_CURVE('',#4896,#4895,#2814,.T.);
-+#9128=EDGE_CURVE('',#4903,#4904,#2819,.T.);
-+#9130=EDGE_CURVE('',#4904,#4903,#2824,.T.);
-+#9141=EDGE_CURVE('',#4904,#4852,#2832,.T.);
-+#9144=EDGE_CURVE('',#4903,#4851,#2828,.T.);
-+#9167=EDGE_CURVE('',#4912,#4908,#2840,.T.);
-+#9169=EDGE_CURVE('',#4907,#4908,#2845,.T.);
-+#9171=EDGE_CURVE('',#4911,#4907,#2836,.T.);
-+#9183=EDGE_CURVE('',#4908,#4907,#2850,.T.);
-+#9198=EDGE_CURVE('',#4915,#4916,#2855,.T.);
-+#9200=EDGE_CURVE('',#4916,#4915,#2860,.T.);
-+#9211=EDGE_CURVE('',#4916,#4856,#2868,.T.);
-+#9214=EDGE_CURVE('',#4915,#4855,#2864,.T.);
-+#9238=EDGE_CURVE('',#4942,#4937,#2872,.T.);
-+#9254=EDGE_CURVE('',#4943,#4944,#2882,.T.);
-+#9256=EDGE_CURVE('',#4944,#4943,#2892,.T.);
-+#9266=EDGE_CURVE('',#4943,#4575,#2900,.T.);
-+#9269=EDGE_CURVE('',#4576,#4944,#2896,.T.);
-+#9271=EDGE_CURVE('',#4575,#4576,#2905,.T.);
-+#9284=EDGE_CURVE('',#4576,#4575,#2910,.T.);
-+#9298=EDGE_CURVE('',#4579,#4580,#2915,.T.);
-+#9300=EDGE_CURVE('',#4580,#4579,#2920,.T.);
-+#9311=EDGE_CURVE('',#4580,#4520,#2928,.T.);
-+#9314=EDGE_CURVE('',#4579,#4519,#2924,.T.);
-+#9336=EDGE_CURVE('',#5099,#5100,#2932,.T.);
-+#9338=EDGE_CURVE('',#5100,#5104,#2937,.T.);
-+#9340=EDGE_CURVE('',#5103,#5104,#2941,.T.);
-+#9353=EDGE_CURVE('',#5062,#5064,#2959,.T.);
-+#9355=EDGE_CURVE('',#5100,#5062,#3044,.T.);
-+#9365=EDGE_CURVE('',#5059,#5060,#2950,.T.);
-+#9367=EDGE_CURVE('',#5059,#5062,#2955,.T.);
-+#9381=EDGE_CURVE('',#5070,#5072,#2977,.T.);
-+#9383=EDGE_CURVE('',#5059,#5070,#3048,.T.);
-+#9393=EDGE_CURVE('',#5067,#5068,#2968,.T.);
-+#9395=EDGE_CURVE('',#5067,#5070,#2973,.T.);
-+#9409=EDGE_CURVE('',#5094,#5096,#2995,.T.);
-+#9411=EDGE_CURVE('',#5067,#5094,#3052,.T.);
-+#9421=EDGE_CURVE('',#5091,#5092,#2986,.T.);
-+#9423=EDGE_CURVE('',#5091,#5094,#2991,.T.);
-+#9435=EDGE_CURVE('',#5086,#5088,#3013,.T.);
-+#9437=EDGE_CURVE('',#5091,#5086,#3056,.T.);
-+#9449=EDGE_CURVE('',#5083,#5084,#3004,.T.);
-+#9451=EDGE_CURVE('',#5083,#5086,#3009,.T.);
-+#9463=EDGE_CURVE('',#5078,#5080,#3031,.T.);
-+#9465=EDGE_CURVE('',#5083,#5078,#3060,.T.);
-+#9477=EDGE_CURVE('',#5075,#5076,#3022,.T.);
-+#9479=EDGE_CURVE('',#5075,#5078,#3027,.T.);
-+#9492=EDGE_CURVE('',#5075,#5104,#3040,.T.);
-+#9525=EDGE_CURVE('',#4755,#4751,#3064,.T.);
-+#9527=EDGE_CURVE('',#4751,#4752,#3073,.T.);
-+#9529=EDGE_CURVE('',#4756,#4752,#3068,.T.);
-+#9541=EDGE_CURVE('',#4752,#4751,#3078,.T.);
-+#9563=EDGE_CURVE('',#4763,#4759,#3082,.T.);
-+#9565=EDGE_CURVE('',#4759,#4760,#3091,.T.);
-+#9567=EDGE_CURVE('',#4764,#4760,#3086,.T.);
-+#9579=EDGE_CURVE('',#4760,#4759,#3096,.T.);
-+#9601=EDGE_CURVE('',#4732,#4728,#3104,.T.);
-+#9603=EDGE_CURVE('',#4727,#4728,#3109,.T.);
-+#9605=EDGE_CURVE('',#4731,#4727,#3100,.T.);
-+#9617=EDGE_CURVE('',#4728,#4727,#3114,.T.);
-+#9639=EDGE_CURVE('',#4724,#4720,#3122,.T.);
-+#9641=EDGE_CURVE('',#4719,#4720,#3127,.T.);
-+#9643=EDGE_CURVE('',#4723,#4719,#3118,.T.);
-+#9655=EDGE_CURVE('',#4720,#4719,#3132,.T.);
-+#9677=EDGE_CURVE('',#4716,#4712,#3140,.T.);
-+#9679=EDGE_CURVE('',#4711,#4712,#3145,.T.);
-+#9681=EDGE_CURVE('',#4715,#4711,#3136,.T.);
-+#9693=EDGE_CURVE('',#4712,#4711,#3150,.T.);
-+#9714=EDGE_CURVE('',#4947,#4948,#3154,.T.);
-+#9716=EDGE_CURVE('',#4948,#4960,#3238,.T.);
-+#9718=EDGE_CURVE('',#4959,#4960,#3217,.T.);
-+#9731=EDGE_CURVE('',#4951,#4952,#3163,.T.);
-+#9733=EDGE_CURVE('',#4952,#4948,#3168,.T.);
-+#9745=EDGE_CURVE('',#4971,#4972,#3172,.T.);
-+#9747=EDGE_CURVE('',#4972,#4952,#3226,.T.);
-+#9759=EDGE_CURVE('',#4975,#4976,#3181,.T.);
-+#9761=EDGE_CURVE('',#4976,#4972,#3186,.T.);
-+#9771=EDGE_CURVE('',#4963,#4964,#3190,.T.);
-+#9773=EDGE_CURVE('',#4964,#4976,#3230,.T.);
-+#9787=EDGE_CURVE('',#4967,#4968,#3199,.T.);
-+#9789=EDGE_CURVE('',#4968,#4964,#3204,.T.);
-+#9799=EDGE_CURVE('',#4955,#4956,#3208,.T.);
-+#9801=EDGE_CURVE('',#4956,#4968,#3234,.T.);
-+#9816=EDGE_CURVE('',#4960,#4956,#3222,.T.);
-+#9842=EDGE_CURVE('',#5035,#5036,#3242,.T.);
-+#9845=EDGE_CURVE('',#5046,#5048,#3321,.T.);
-+#9847=EDGE_CURVE('',#5035,#5046,#3264,.T.);
-+#9858=EDGE_CURVE('',#5035,#5038,#3247,.T.);
-+#9860=EDGE_CURVE('',#5038,#5040,#3251,.T.);
-+#9871=EDGE_CURVE('',#5027,#5030,#3281,.T.);
-+#9873=EDGE_CURVE('',#5027,#5038,#3260,.T.);
-+#9877=EDGE_CURVE('',#5043,#5046,#3317,.T.);
-+#9879=EDGE_CURVE('',#5043,#5054,#3268,.T.);
-+#9881=EDGE_CURVE('',#5051,#5054,#3299,.T.);
-+#9883=EDGE_CURVE('',#5051,#5030,#3272,.T.);
-+#9893=EDGE_CURVE('',#5027,#5028,#3276,.T.);
-+#9896=EDGE_CURVE('',#5030,#5032,#3285,.T.);
-+#9921=EDGE_CURVE('',#5051,#5052,#3294,.T.);
-+#9934=EDGE_CURVE('',#5054,#5056,#3303,.T.);
-+#9945=EDGE_CURVE('',#5043,#5044,#3312,.T.);
-+#9971=EDGE_CURVE('',#5121,#5107,#3330,.T.);
-+#9973=EDGE_CURVE('',#5107,#5108,#3346,.T.);
-+#9975=EDGE_CURVE('',#5122,#5108,#3342,.T.);
-+#9986=EDGE_CURVE('',#5126,#5112,#3334,.T.);
-+#9988=EDGE_CURVE('',#5112,#5107,#3351,.T.);
-+#10000=EDGE_CURVE('',#5124,#5110,#3338,.T.);
-+#10002=EDGE_CURVE('',#5110,#5112,#3355,.T.);
-+#10015=EDGE_CURVE('',#5108,#5110,#3360,.T.);
-+#10038=EDGE_CURVE('',#5140,#5136,#3397,.T.);
-+#10040=EDGE_CURVE('',#5118,#5140,#3365,.T.);
-+#10042=EDGE_CURVE('',#5116,#5118,#3370,.T.);
-+#10044=EDGE_CURVE('',#5115,#5116,#3375,.T.);
-+#10046=EDGE_CURVE('',#5136,#5115,#3379,.T.);
-+#10056=EDGE_CURVE('',#5135,#5136,#3383,.T.);
-+#10059=EDGE_CURVE('',#5139,#5140,#3392,.T.);
-+#10072=EDGE_CURVE('',#5129,#5115,#3401,.T.);
-+#10086=EDGE_CURVE('',#5130,#5116,#3405,.T.);
-+#10099=EDGE_CURVE('',#5132,#5118,#3409,.T.);
-+#10121=EDGE_CURVE('',#5183,#5184,#3413,.T.);
-+#10124=EDGE_CURVE('',#5188,#5186,#3422,.T.);
-+#10126=EDGE_CURVE('',#5188,#5183,#3427,.T.);
-+#10137=EDGE_CURVE('',#5183,#5143,#3444,.T.);
-+#10139=EDGE_CURVE('',#5147,#5143,#3486,.T.);
-+#10150=EDGE_CURVE('',#5191,#5172,#3431,.T.);
-+#10152=EDGE_CURVE('',#5196,#5191,#3478,.T.);
-+#10154=EDGE_CURVE('',#5144,#5196,#3435,.T.);
-+#10156=EDGE_CURVE('',#5143,#5144,#3440,.T.);
-+#10160=EDGE_CURVE('',#5160,#5188,#3448,.T.);
-+#10162=EDGE_CURVE('',#5164,#5160,#3558,.T.);
-+#10164=EDGE_CURVE('',#5152,#5164,#3452,.T.);
-+#10166=EDGE_CURVE('',#5156,#5152,#3540,.T.);
-+#10168=EDGE_CURVE('',#5176,#5156,#3456,.T.);
-+#10170=EDGE_CURVE('',#5180,#5176,#3522,.T.);
-+#10172=EDGE_CURVE('',#5168,#5180,#3460,.T.);
-+#10174=EDGE_CURVE('',#5172,#5168,#3504,.T.);
-+#10184=EDGE_CURVE('',#5191,#5192,#3464,.T.);
-+#10187=EDGE_CURVE('',#5171,#5172,#3499,.T.);
-+#10200=EDGE_CURVE('',#5196,#5194,#3473,.T.);
-+#10213=EDGE_CURVE('',#5148,#5144,#3482,.T.);
-+#10236=EDGE_CURVE('',#5167,#5168,#3490,.T.);
-+#10251=EDGE_CURVE('',#5179,#5180,#3517,.T.);
-+#10262=EDGE_CURVE('',#5175,#5176,#3508,.T.);
-+#10275=EDGE_CURVE('',#5155,#5156,#3535,.T.);
-+#10288=EDGE_CURVE('',#5151,#5152,#3526,.T.);
-+#10303=EDGE_CURVE('',#5163,#5164,#3553,.T.);
-+#10314=EDGE_CURVE('',#5159,#5160,#3544,.T.);
-+#10340=EDGE_CURVE('',#5207,#5199,#3562,.T.);
-+#10342=EDGE_CURVE('',#5199,#5200,#3578,.T.);
-+#10344=EDGE_CURVE('',#5208,#5200,#3574,.T.);
-+#10355=EDGE_CURVE('',#5212,#5204,#3566,.T.);
-+#10357=EDGE_CURVE('',#5204,#5199,#3583,.T.);
-+#10369=EDGE_CURVE('',#5210,#5202,#3570,.T.);
-+#10371=EDGE_CURVE('',#5202,#5204,#3587,.T.);
-+#10384=EDGE_CURVE('',#5200,#5202,#3592,.T.);
-+#10408=EDGE_CURVE('',#5223,#5215,#3596,.T.);
-+#10410=EDGE_CURVE('',#5215,#5216,#3612,.T.);
-+#10412=EDGE_CURVE('',#5224,#5216,#3608,.T.);
-+#10423=EDGE_CURVE('',#5228,#5220,#3600,.T.);
-+#10425=EDGE_CURVE('',#5220,#5215,#3617,.T.);
-+#10437=EDGE_CURVE('',#5226,#5218,#3604,.T.);
-+#10439=EDGE_CURVE('',#5218,#5220,#3621,.T.);
-+#10452=EDGE_CURVE('',#5216,#5218,#3626,.T.);
-+#10476=EDGE_CURVE('',#5239,#5231,#3630,.T.);
-+#10478=EDGE_CURVE('',#5231,#5232,#3646,.T.);
-+#10480=EDGE_CURVE('',#5240,#5232,#3642,.T.);
-+#10491=EDGE_CURVE('',#5244,#5236,#3634,.T.);
-+#10493=EDGE_CURVE('',#5236,#5231,#3651,.T.);
-+#10505=EDGE_CURVE('',#5242,#5234,#3638,.T.);
-+#10507=EDGE_CURVE('',#5234,#5236,#3655,.T.);
-+#10520=EDGE_CURVE('',#5232,#5234,#3660,.T.);
-+#10544=EDGE_CURVE('',#5255,#5247,#3664,.T.);
-+#10546=EDGE_CURVE('',#5247,#5248,#3680,.T.);
-+#10548=EDGE_CURVE('',#5256,#5248,#3676,.T.);
-+#10559=EDGE_CURVE('',#5260,#5252,#3668,.T.);
-+#10561=EDGE_CURVE('',#5252,#5247,#3685,.T.);
-+#10573=EDGE_CURVE('',#5258,#5250,#3672,.T.);
-+#10575=EDGE_CURVE('',#5250,#5252,#3689,.T.);
-+#10588=EDGE_CURVE('',#5248,#5250,#3694,.T.);
-+#10612=EDGE_CURVE('',#5278,#5264,#3702,.T.);
-+#10614=EDGE_CURVE('',#5263,#5264,#3714,.T.);
-+#10616=EDGE_CURVE('',#5277,#5263,#3698,.T.);
-+#10627=EDGE_CURVE('',#5280,#5266,#3706,.T.);
-+#10629=EDGE_CURVE('',#5264,#5266,#3719,.T.);
-+#10641=EDGE_CURVE('',#5282,#5268,#3710,.T.);
-+#10643=EDGE_CURVE('',#5266,#5268,#3723,.T.);
-+#10656=EDGE_CURVE('',#5268,#5263,#3728,.T.);
-+#10679=EDGE_CURVE('',#5480,#5476,#3765,.T.);
-+#10681=EDGE_CURVE('',#5480,#5271,#3732,.T.);
-+#10683=EDGE_CURVE('',#5271,#5272,#3737,.T.);
-+#10685=EDGE_CURVE('',#5272,#5274,#3742,.T.);
-+#10687=EDGE_CURVE('',#5274,#5476,#3747,.T.);
-+#10697=EDGE_CURVE('',#5475,#5476,#3751,.T.);
-+#10700=EDGE_CURVE('',#5479,#5480,#3760,.T.);
-+#10713=EDGE_CURVE('',#5288,#5274,#3769,.T.);
-+#10727=EDGE_CURVE('',#5286,#5272,#3773,.T.);
-+#10740=EDGE_CURVE('',#5285,#5271,#3777,.T.);
-+#10763=EDGE_CURVE('',#5306,#5292,#3785,.T.);
-+#10765=EDGE_CURVE('',#5291,#5292,#3797,.T.);
-+#10767=EDGE_CURVE('',#5305,#5291,#3781,.T.);
-+#10778=EDGE_CURVE('',#5308,#5294,#3789,.T.);
-+#10780=EDGE_CURVE('',#5292,#5294,#3802,.T.);
-+#10792=EDGE_CURVE('',#5310,#5296,#3793,.T.);
-+#10794=EDGE_CURVE('',#5294,#5296,#3806,.T.);
-+#10807=EDGE_CURVE('',#5296,#5291,#3811,.T.);
-+#10830=EDGE_CURVE('',#5472,#5468,#3848,.T.);
-+#10832=EDGE_CURVE('',#5472,#5299,#3815,.T.);
-+#10834=EDGE_CURVE('',#5299,#5300,#3820,.T.);
-+#10836=EDGE_CURVE('',#5300,#5302,#3825,.T.);
-+#10838=EDGE_CURVE('',#5302,#5468,#3830,.T.);
-+#10848=EDGE_CURVE('',#5467,#5468,#3834,.T.);
-+#10851=EDGE_CURVE('',#5471,#5472,#3843,.T.);
-+#10864=EDGE_CURVE('',#5316,#5302,#3852,.T.);
-+#10878=EDGE_CURVE('',#5314,#5300,#3856,.T.);
-+#10891=EDGE_CURVE('',#5313,#5299,#3860,.T.);
-+#10914=EDGE_CURVE('',#5336,#5328,#3868,.T.);
-+#10916=EDGE_CURVE('',#5327,#5328,#3880,.T.);
-+#10918=EDGE_CURVE('',#5335,#5327,#3864,.T.);
-+#10929=EDGE_CURVE('',#5338,#5330,#3872,.T.);
-+#10931=EDGE_CURVE('',#5328,#5330,#3885,.T.);
-+#10943=EDGE_CURVE('',#5340,#5332,#3876,.T.);
-+#10945=EDGE_CURVE('',#5330,#5332,#3889,.T.);
-+#10958=EDGE_CURVE('',#5332,#5327,#3894,.T.);
-+#10982=EDGE_CURVE('',#5352,#5344,#3902,.T.);
-+#10984=EDGE_CURVE('',#5343,#5344,#3914,.T.);
-+#10986=EDGE_CURVE('',#5351,#5343,#3898,.T.);
-+#10997=EDGE_CURVE('',#5354,#5346,#3906,.T.);
-+#10999=EDGE_CURVE('',#5344,#5346,#3919,.T.);
-+#11011=EDGE_CURVE('',#5356,#5348,#3910,.T.);
-+#11013=EDGE_CURVE('',#5346,#5348,#3923,.T.);
-+#11026=EDGE_CURVE('',#5348,#5343,#3928,.T.);
-+#11050=EDGE_CURVE('',#5368,#5360,#3936,.T.);
-+#11052=EDGE_CURVE('',#5359,#5360,#3948,.T.);
-+#11054=EDGE_CURVE('',#5367,#5359,#3932,.T.);
-+#11065=EDGE_CURVE('',#5370,#5362,#3940,.T.);
-+#11067=EDGE_CURVE('',#5360,#5362,#3953,.T.);
-+#11079=EDGE_CURVE('',#5372,#5364,#3944,.T.);
-+#11081=EDGE_CURVE('',#5362,#5364,#3957,.T.);
-+#11094=EDGE_CURVE('',#5364,#5359,#3962,.T.);
-+#11118=EDGE_CURVE('',#5384,#5376,#3970,.T.);
-+#11120=EDGE_CURVE('',#5375,#5376,#3982,.T.);
-+#11122=EDGE_CURVE('',#5383,#5375,#3966,.T.);
-+#11133=EDGE_CURVE('',#5386,#5378,#3974,.T.);
-+#11135=EDGE_CURVE('',#5376,#5378,#3987,.T.);
-+#11147=EDGE_CURVE('',#5388,#5380,#3978,.T.);
-+#11149=EDGE_CURVE('',#5378,#5380,#3991,.T.);
-+#11162=EDGE_CURVE('',#5380,#5375,#3996,.T.);
-+#11186=EDGE_CURVE('',#5405,#5391,#4000,.T.);
-+#11188=EDGE_CURVE('',#5391,#5392,#4016,.T.);
-+#11190=EDGE_CURVE('',#5406,#5392,#4012,.T.);
-+#11201=EDGE_CURVE('',#5410,#5396,#4004,.T.);
-+#11203=EDGE_CURVE('',#5396,#5391,#4021,.T.);
-+#11215=EDGE_CURVE('',#5408,#5394,#4008,.T.);
-+#11217=EDGE_CURVE('',#5394,#5396,#4025,.T.);
-+#11230=EDGE_CURVE('',#5392,#5394,#4030,.T.);
-+#11253=EDGE_CURVE('',#5488,#5484,#4067,.T.);
-+#11255=EDGE_CURVE('',#5402,#5488,#4035,.T.);
-+#11257=EDGE_CURVE('',#5400,#5402,#4040,.T.);
-+#11259=EDGE_CURVE('',#5399,#5400,#4045,.T.);
-+#11261=EDGE_CURVE('',#5484,#5399,#4049,.T.);
-+#11271=EDGE_CURVE('',#5483,#5484,#4053,.T.);
-+#11274=EDGE_CURVE('',#5487,#5488,#4062,.T.);
-+#11287=EDGE_CURVE('',#5413,#5399,#4071,.T.);
-+#11301=EDGE_CURVE('',#5414,#5400,#4075,.T.);
-+#11314=EDGE_CURVE('',#5416,#5402,#4079,.T.);
-+#11336=EDGE_CURVE('',#5451,#5452,#4083,.T.);
-+#11338=EDGE_CURVE('',#5452,#5456,#4088,.T.);
-+#11340=EDGE_CURVE('',#5455,#5456,#4092,.T.);
-+#11353=EDGE_CURVE('',#5422,#5424,#4110,.T.);
-+#11355=EDGE_CURVE('',#5452,#5422,#4216,.T.);
-+#11365=EDGE_CURVE('',#5419,#5420,#4101,.T.);
-+#11367=EDGE_CURVE('',#5419,#5422,#4106,.T.);
-+#11381=EDGE_CURVE('',#5430,#5432,#4128,.T.);
-+#11383=EDGE_CURVE('',#5419,#5430,#4220,.T.);
-+#11393=EDGE_CURVE('',#5427,#5428,#4119,.T.);
-+#11395=EDGE_CURVE('',#5427,#5430,#4124,.T.);
-+#11409=EDGE_CURVE('',#5446,#5448,#4146,.T.);
-+#11411=EDGE_CURVE('',#5427,#5446,#4224,.T.);
-+#11421=EDGE_CURVE('',#5443,#5444,#4137,.T.);
-+#11423=EDGE_CURVE('',#5443,#5446,#4142,.T.);
-+#11435=EDGE_CURVE('',#5438,#5440,#4164,.T.);
-+#11437=EDGE_CURVE('',#5443,#5438,#4228,.T.);
-+#11449=EDGE_CURVE('',#5435,#5436,#4155,.T.);
-+#11451=EDGE_CURVE('',#5435,#5438,#4160,.T.);
-+#11463=EDGE_CURVE('',#5463,#5464,#4182,.T.);
-+#11465=EDGE_CURVE('',#5435,#5464,#4199,.T.);
-+#11477=EDGE_CURVE('',#5459,#5460,#4173,.T.);
-+#11479=EDGE_CURVE('',#5460,#5464,#4178,.T.);
-+#11493=EDGE_CURVE('',#5323,#5319,#4191,.T.);
-+#11495=EDGE_CURVE('',#5460,#5319,#4203,.T.);
-+#11506=EDGE_CURVE('',#5324,#5320,#4195,.T.);
-+#11508=EDGE_CURVE('',#5319,#5320,#4208,.T.);
-+#11520=EDGE_CURVE('',#5320,#5456,#4212,.T.);
-+#11562=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11550),#11561);
-+#11569=PRODUCT_DEFINITION('design','',#11568,#11565);
-+#11570=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR PROESOURCE.',#11569);
-+#11571=SHAPE_DEFINITION_REPRESENTATION(#11570,#11562);
-+ENDSEC;
-+END-ISO-10303-21;
diff --git a/config/patches/occ/opencv.001_compile.patch b/config/patches/occ/opencv.001_compile.patch
deleted file mode 100644 (file)
index 9550f24..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -NaurwB opencv-2.4.6.1__0/cmake/OpenCVCompilerOptions.cmake opencv-2.4.6.1__1/cmake/OpenCVCompilerOptions.cmake
---- opencv-2.4.6.1__0/cmake/OpenCVCompilerOptions.cmake        2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1__1/cmake/OpenCVCompilerOptions.cmake        2017-03-15 17:06:11.464387144 +0300
-@@ -1,14 +1,14 @@
--if(MINGW OR (X86 AND UNIX AND NOT APPLE))
--  # mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O2 instead
-+if(1 OR MINGW OR (X86 AND UNIX AND NOT APPLE))
-+  # mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O0 instead
-   if(CMAKE_COMPILER_IS_GNUCXX)
-     foreach(flags CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
--      string(REPLACE "-O3" "-O2" ${flags} "${${flags}}")
-+      string(REPLACE "-O3" "-O0" ${flags} "${${flags}}")
-     endforeach()
-   endif()
-   if(CMAKE_COMPILER_IS_GNUCC)
-     foreach(flags CMAKE_C_FLAGS CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_DEBUG)
--      string(REPLACE "-O3" "-O2" ${flags} "${${flags}}")
-+      string(REPLACE "-O3" "-O0" ${flags} "${${flags}}")
-     endforeach()
-   endif()
- endif()
diff --git a/config/patches/occ/opencv.002_gcc6.patch b/config/patches/occ/opencv.002_gcc6.patch
deleted file mode 100644 (file)
index 79c8045..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-diff -Naur opencv-2.4.6.1_SRC_orig/cmake/OpenCVPCHSupport.cmake opencv-2.4.6.1_SRC_modif/cmake/OpenCVPCHSupport.cmake
---- opencv-2.4.6.1_SRC_orig/cmake/OpenCVPCHSupport.cmake       2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/cmake/OpenCVPCHSupport.cmake      2016-10-17 17:34:32.000000000 +0300
-@@ -19,7 +19,7 @@
-         ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
-         OUTPUT_VARIABLE gcc_compiler_version)
-     #MESSAGE("GCC Version: ${gcc_compiler_version}")
--    IF(gcc_compiler_version VERSION_GREATER "4.2.-1")
-+    IF(gcc_compiler_version VERSION_GREATER "4.2.-1" AND gcc_compiler_version VERSION_LESS "6.0.0")
-         SET(PCHSupport_FOUND TRUE)
-     ENDIF()
-diff -Naur opencv-2.4.6.1_SRC_orig/modules/contrib/src/chamfermatching.cpp opencv-2.4.6.1_SRC_modif/modules/contrib/src/chamfermatching.cpp
---- opencv-2.4.6.1_SRC_orig/modules/contrib/src/chamfermatching.cpp    2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/modules/contrib/src/chamfermatching.cpp   2016-10-17 18:11:47.000000000 +0300
-@@ -959,10 +959,8 @@
-     for (int y=0;y<h;++y) {
-         for (int x=0;x<w;++x) {
-             // initialize
--            if (&annotate_img!=NULL) {
--                annotate_img.at<Vec2i>(y,x)[0]=x;
--                annotate_img.at<Vec2i>(y,x)[1]=y;
--            }
-+          annotate_img.at<Vec2i>(y,x)[0]=x;
-+            annotate_img.at<Vec2i>(y,x)[1]=y;
-             uchar edge_val = edges_img.at<uchar>(y,x);
-             if( (edge_val!=0) ) {
-@@ -1005,11 +1003,9 @@
-             if (dt==-1 || dt>dist) {
-                 dist_img.at<float>(ny,nx) = dist;
-                 q.push(std::make_pair(nx,ny));
--
--                if (&annotate_img!=NULL) {
--                    annotate_img.at<Vec2i>(ny,nx)[0]=annotate_img.at<Vec2i>(y,x)[0];
--                    annotate_img.at<Vec2i>(ny,nx)[1]=annotate_img.at<Vec2i>(y,x)[1];
--                }
-+              
-+              annotate_img.at<Vec2i>(ny,nx)[0]=annotate_img.at<Vec2i>(y,x)[0];
-+              annotate_img.at<Vec2i>(ny,nx)[1]=annotate_img.at<Vec2i>(y,x)[1];
-             }
-         }
-     }
-@@ -1101,26 +1097,24 @@
-     float cost = (sum_distance/truncate_)/addr.size();
--    if (&orientation_img!=NULL) {
--        float* optr = orientation_img.ptr<float>(y)+x;
--        float sum_orientation = 0;
--        int cnt_orientation = 0;
--
--        for (size_t i=0;i<addr.size();++i) {
--
--            if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){
--                                if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) {
--                    sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i])));
--                    cnt_orientation++;
--                }
--            }
--        }
--        if (cnt_orientation>0) {
--                        cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation);
--        }
--
--    }
-+    float* optr = orientation_img.ptr<float>(y)+x;
-+    float sum_orientation = 0;
-+    int cnt_orientation = 0;
-+    
-+    for (size_t i=0;i<addr.size();++i) {
-+      
-+      if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){
-+      if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) {
-+        sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i])));
-+        cnt_orientation++;
-+      }
-+      }
-+    }
-+    
-+    if (cnt_orientation>0) {
-+      cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation);
-+    }    
-     if(cost > 0){
-         ChamferMatcher::Match* istance = new ChamferMatcher::Match();
-diff -Naur opencv-2.4.6.1_SRC_orig/modules/legacy/src/dpstereo.cpp opencv-2.4.6.1_SRC_modif/modules/legacy/src/dpstereo.cpp
---- opencv-2.4.6.1_SRC_orig/modules/legacy/src/dpstereo.cpp    2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/modules/legacy/src/dpstereo.cpp   2016-10-18 10:22:03.257968598 +0300
-@@ -76,8 +76,8 @@
-     uchar min_val, max_val;
- } _CvRightImData;
--#define CV_IMAX3(a,b,c) ((temp3 = (a) >= (b) ? (a) : (b)),(temp3 >= (c) ? temp3 : (c)))
--#define CV_IMIN3(a,b,c) ((temp3 = (a) <= (b) ? (a) : (b)),(temp3 <= (c) ? temp3 : (c)))
-+#define CV_IMAX3(a,b,c) (std::max(std::max((a), (b)), (c)))
-+#define CV_IMIN3(a,b,c) (std::min(std::min((a), (b)), (c)))
- static void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2,
-                                                 uchar* disparities,
-@@ -87,7 +87,7 @@
-                                                 float  _param3, float _param4,
-                                                 float  _param5 )
- {
--    int     x, y, i, j, temp3;
-+    int     x, y, i, j;
-     int     d, s;
-     int     dispH =  maxDisparity + 3;
-     uchar  *dispdata;
-diff -Naur opencv-2.4.6.1_SRC_orig/modules/ts/include/opencv2/ts/ts_perf.hpp opencv-2.4.6.1_SRC_modif/modules/ts/include/opencv2/ts/ts_perf.hpp
---- opencv-2.4.6.1_SRC_orig/modules/ts/include/opencv2/ts/ts_perf.hpp  2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/modules/ts/include/opencv2/ts/ts_perf.hpp 2016-10-17 17:52:29.000000000 +0300
-@@ -475,9 +475,16 @@
-     INSTANTIATE_TEST_CASE_P(/*none*/, fixture##_##name, params);\
-     void fixture##_##name::PerfTestBody()
-+   #if defined(_MSC_VER) && (_MSC_VER <= 1400)
-+    #define CV_PERF_TEST_MAIN_INTERNALS_ARGS(...)     \
-+      while (++argc >= (--argc,-1)) {__VA_ARGS__; break;} /*this ugly construction is needed for VS 2005*/
-+    #else
-+    #define CV_PERF_TEST_MAIN_INTERNALS_ARGS(...) \
-+      __VA_ARGS__;
-+    #endif
- #define CV_PERF_TEST_MAIN_INTERNALS(modulename, impls, ...) \
--    while (++argc >= (--argc,-1)) {__VA_ARGS__; break;} /*this ugly construction is needed for VS 2005*/\
-+    CV_PERF_TEST_MAIN_INTERNALS_ARGS(__VA_ARGS__) \
-     ::perf::Regression::Init(#modulename);\
-     ::perf::TestBase::Init(std::vector<std::string>(impls, impls + sizeof impls / sizeof *impls),\
-                            argc, argv);\
diff --git a/config/patches/occ/planegcs.001_for_shaper.patch b/config/patches/occ/planegcs.001_for_shaper.patch
deleted file mode 100644 (file)
index 28c2a5e..0000000
+++ /dev/null
@@ -1,647 +0,0 @@
-From 853a0a438422d61cf1b9756d6949e04e5270d495 Mon Sep 17 00:00:00 2001
-From: azv <azv@opencascade.com>
-Date: Thu, 2 Aug 2018 11:32:16 +0300
-Subject: [PATCH] Update PlaneGCS solver for SHAPER needs
-
-* Add possibility to compile PlaneGCS as a shared library
-* Possibility to avoid memory clearance inside the solver (make possible external memory management)
----
- src/Mod/Sketcher/App/planegcs/Constraints.h | 48 ++++++++---------
- src/Mod/Sketcher/App/planegcs/GCS.cpp       | 81 +++++++++++++++++++++++------
- src/Mod/Sketcher/App/planegcs/GCS.h         |  8 +--
- src/Mod/Sketcher/App/planegcs/Geo.h         | 34 ++++++------
- src/Mod/Sketcher/App/planegcs/Util.h        | 10 ++++
- 5 files changed, 123 insertions(+), 58 deletions(-)
-
-diff --git a/src/Mod/Sketcher/App/planegcs/Constraints.h b/src/Mod/Sketcher/App/planegcs/Constraints.h
-index 559f3a2..76e4763 100644
---- a/src/Mod/Sketcher/App/planegcs/Constraints.h
-+++ b/src/Mod/Sketcher/App/planegcs/Constraints.h
-@@ -91,7 +91,7 @@ namespace GCS
-         HyperbolaNegativeMinorY = 17
-     };
--    class Constraint
-+    class PLANEGCS_EXPORT Constraint
-     {
-     _PROTECTED_UNLESS_EXTRACT_MODE_:
-         VEC_pD origpvec; // is used only as a reference for redirecting and reverting pvec
-@@ -128,7 +128,7 @@ namespace GCS
-     };
-     // Equal
--    class ConstraintEqual : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEqual : public Constraint
-     {
-     private:
-         inline double* param1() { return pvec[0]; }
-@@ -142,7 +142,7 @@ namespace GCS
-     };
-     // Difference
--    class ConstraintDifference : public Constraint
-+    class PLANEGCS_EXPORT ConstraintDifference : public Constraint
-     {
-     private:
-         inline double* param1() { return pvec[0]; }
-@@ -157,7 +157,7 @@ namespace GCS
-     };
-     // P2PDistance
--    class ConstraintP2PDistance : public Constraint
-+    class PLANEGCS_EXPORT ConstraintP2PDistance : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -178,7 +178,7 @@ namespace GCS
-     };
-     // P2PAngle
--    class ConstraintP2PAngle : public Constraint
-+    class PLANEGCS_EXPORT ConstraintP2PAngle : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -200,7 +200,7 @@ namespace GCS
-     };
-     // P2LDistance
--    class ConstraintP2LDistance : public Constraint
-+    class PLANEGCS_EXPORT ConstraintP2LDistance : public Constraint
-     {
-     private:
-         inline double* p0x() { return pvec[0]; }
-@@ -224,7 +224,7 @@ namespace GCS
-     };
-     // PointOnLine
--    class ConstraintPointOnLine : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnLine : public Constraint
-     {
-     private:
-         inline double* p0x() { return pvec[0]; }
-@@ -246,7 +246,7 @@ namespace GCS
-     };
-     // PointOnPerpBisector
--    class ConstraintPointOnPerpBisector : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnPerpBisector : public Constraint
-     {
-     private:
-         inline double* p0x() { return pvec[0]; }
-@@ -268,7 +268,7 @@ namespace GCS
-     };
-     // Parallel
--    class ConstraintParallel : public Constraint
-+    class PLANEGCS_EXPORT ConstraintParallel : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -291,7 +291,7 @@ namespace GCS
-     };
-     // Perpendicular
--    class ConstraintPerpendicular : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPerpendicular : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -315,7 +315,7 @@ namespace GCS
-     };
-     // L2LAngle
--    class ConstraintL2LAngle : public Constraint
-+    class PLANEGCS_EXPORT ConstraintL2LAngle : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -342,7 +342,7 @@ namespace GCS
-     };
-     // MidpointOnLine
--    class ConstraintMidpointOnLine : public Constraint
-+    class PLANEGCS_EXPORT ConstraintMidpointOnLine : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -366,7 +366,7 @@ namespace GCS
-     };
-     // TangentCircumf
--    class ConstraintTangentCircumf : public Constraint
-+    class PLANEGCS_EXPORT ConstraintTangentCircumf : public Constraint
-     {
-     private:
-         inline double* c1x() { return pvec[0]; }
-@@ -389,7 +389,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-     // PointOnEllipse
--    class ConstraintPointOnEllipse : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnEllipse : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -411,7 +411,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-     
--    class ConstraintEllipseTangentLine : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEllipseTangentLine : public Constraint
-     {
-     private:
-         Line l;
-@@ -426,7 +426,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-         
--    class ConstraintInternalAlignmentPoint2Ellipse : public Constraint
-+    class PLANEGCS_EXPORT ConstraintInternalAlignmentPoint2Ellipse : public Constraint
-     {
-     public:
-         ConstraintInternalAlignmentPoint2Ellipse(Ellipse &e, Point &p1, InternalAlignmentType alignmentType);
-@@ -442,7 +442,7 @@ namespace GCS
-         InternalAlignmentType AlignmentType;
-     };
--    class ConstraintInternalAlignmentPoint2Hyperbola : public Constraint
-+    class PLANEGCS_EXPORT ConstraintInternalAlignmentPoint2Hyperbola : public Constraint
-     {
-     public:
-         ConstraintInternalAlignmentPoint2Hyperbola(Hyperbola &e, Point &p1, InternalAlignmentType alignmentType);
-@@ -458,7 +458,7 @@ namespace GCS
-         InternalAlignmentType AlignmentType;
-     };
--    class ConstraintEqualMajorAxesConic : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEqualMajorAxesConic : public Constraint
-     {
-     private:
-         MajorRadiusConic * e1;
-@@ -473,7 +473,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
--    class ConstraintEqualFocalDistance : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEqualFocalDistance : public Constraint
-     {
-     private:
-         ArcOfParabola * e1;
-@@ -488,7 +488,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
--    class ConstraintCurveValue : public Constraint
-+    class PLANEGCS_EXPORT ConstraintCurveValue : public Constraint
-     {
-     private:
-         inline double* pcoord() { return pvec[2]; } //defines, which coordinate of point is being constrained by this constraint
-@@ -515,7 +515,7 @@ namespace GCS
-     };
-     
-     // PointOnHyperbola
--    class ConstraintPointOnHyperbola : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnHyperbola : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -538,7 +538,7 @@ namespace GCS
-     };
-     // PointOnParabola
--    class ConstraintPointOnParabola : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnParabola : public Constraint
-     {
-     private:
-         void errorgrad(double* err, double* grad, double *param); //error and gradient combined. Values are returned through pointers.
-@@ -558,7 +558,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-     
--    class ConstraintAngleViaPoint : public Constraint
-+    class PLANEGCS_EXPORT ConstraintAngleViaPoint : public Constraint
-     {
-     private:
-         inline double* angle() { return pvec[0]; };
-@@ -583,7 +583,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
--    class ConstraintSnell : public Constraint //snell's law angles constrainer. Point needs to lie on all three curves to be constraied.
-+    class PLANEGCS_EXPORT ConstraintSnell : public Constraint //snell's law angles constrainer. Point needs to lie on all three curves to be constraied.
-     {
-     private:
-         inline double* n1() { return pvec[0]; };
-diff --git a/src/Mod/Sketcher/App/planegcs/GCS.cpp b/src/Mod/Sketcher/App/planegcs/GCS.cpp
-index 474024a..9103653 100644
---- a/src/Mod/Sketcher/App/planegcs/GCS.cpp
-+++ b/src/Mod/Sketcher/App/planegcs/GCS.cpp
-@@ -101,11 +101,56 @@
- #endif
- #include <FCConfig.h>
-+#ifndef _GCS_USE_STL_OUTPUT
- #include <Base/Console.h>
-+#endif
- #include <boost/graph/adjacency_list.hpp>
- #include <boost/graph/connected_components.hpp>
-+namespace GCS
-+{
-+  void Log(const char* message)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    std::cout << message << std::endl;
-+#else
-+    Base::Console().Log(message);
-+#endif
-+  }
-+
-+  void Log(const char* format, const char* param)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    static char message[4096];
-+    sprintf(message, format, param);
-+    std::cout << message << std::endl;
-+#else
-+    Base::Console().Log(format, param);
-+#endif
-+  }
-+
-+  void Log(const char* format, const size_t param)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    static char message[4096];
-+    sprintf(message, format, param);
-+    std::cout << message << std::endl;
-+#else
-+    Base::Console().Log(format, param);
-+#endif
-+}
-+
-+  void Warning(const char* message)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    std::cout << "Warning: " << message << std::endl;
-+#else
-+    Base::Console().Warning(message);
-+#endif
-+  }
-+}
-+
- typedef Eigen::FullPivHouseholderQR<Eigen::MatrixXd>::IntDiagSizeVectorType MatrixIndexType;
- #ifdef _GCS_DEBUG
-@@ -130,7 +175,7 @@ void LogMatrix(std::string str, Eigen::MatrixXd matrix )
- #else
-     const std::string tmp = stream.str();
--    Base::Console().Log(tmp.c_str());
-+    GCS::Log(tmp.c_str());
- #endif
- }
-@@ -155,7 +200,7 @@ void LogMatrix(std::string str, MatrixIndexType matrix )
-     #else
-     const std::string tmp = stream.str();
--    Base::Console().Log(tmp.c_str());
-+    GCS::Log(tmp.c_str());
-     #endif
- }
- #endif
-@@ -178,7 +223,7 @@ void LogString(std::string str)
-     #else
-     const std::string tmp = stream.str();
--    Base::Console().Log(tmp.c_str());
-+    GCS::Log(tmp.c_str());
-     #endif
- }
-@@ -429,7 +474,11 @@ void System::clear()
-     reference.clear();
-     clearSubSystems();
-+#ifdef _GCS_DO_NOT_FREE_CONSTRAINTS_MEMORY
-+    clist.clear();
-+#else
-     free(clist);
-+#endif
-     c2p.clear();
-     p2c.clear();
- }
-@@ -486,9 +535,11 @@ void System::removeConstraint(Constraint *constr)
-     }
-     c2p.erase(constr);
-+#ifndef _GCS_DO_NOT_FREE_CONSTRAINTS_MEMORY
-     std::vector<Constraint *> constrvec;
-     constrvec.push_back(constr);
-     free(constrvec);
-+#endif
- }
- // basic constraints
-@@ -1477,7 +1528,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                 << ", maxIter: "            << maxIterNumber  << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     double divergingLim = 1e6*err + 1e12;
-@@ -1493,7 +1544,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                         << ", h_norm: "           << h_norm  << "\n";
-                 const std::string tmp = stream.str();
--                Base::Console().Log(tmp.c_str());
-+                GCS::Log(tmp.c_str());
-             }
-             break;
-         }
-@@ -1505,7 +1556,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                         << ", divergingLim: "            << divergingLim  << "\n";
-                 const std::string tmp = stream.str();
--                Base::Console().Log(tmp.c_str());
-+                GCS::Log(tmp.c_str());
-             }
-             break;
-         }
-@@ -1542,7 +1593,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                     << ", h_norm: "                 << h_norm << "\n";
-             const std::string tmp = stream.str();
--            Base::Console().Log(tmp.c_str());
-+            GCS::Log(tmp.c_str());
-         }
-     }
-@@ -1598,7 +1649,7 @@ int System::solve_LM(SubSystem* subsys, bool isRedundantsolving)
-                 << ", maxIter: "        << maxIterNumber  << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     double nu=2, mu=0;
-@@ -1712,7 +1763,7 @@ int System::solve_LM(SubSystem* subsys, bool isRedundantsolving)
-                     << ", h_norm: "                 << h_norm << "\n";
-             const std::string tmp = stream.str();
--            Base::Console().Log(tmp.c_str());
-+            GCS::Log(tmp.c_str());
-         }
-     }
-@@ -1757,7 +1808,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
-                 << ", maxIter: "        << maxIterNumber  << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     Eigen::VectorXd x(xsize), x_new(xsize);
-@@ -1912,7 +1963,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
-                     << ", err(divergingLim): "  << err  << "\n";
-             const std::string tmp = stream.str();
--            Base::Console().Log(tmp.c_str());
-+            GCS::Log(tmp.c_str());
-         }
-         // count this iteration and start again
-@@ -1926,7 +1977,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
-         stream  << "DL: stopcode: "     << stop << ((stop == 1) ? ", Success" : ", Failed") << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     return (stop == 1) ? Success : Failed;
-@@ -3721,7 +3772,7 @@ int System::diagnose(Algorithm alg)
-     Eigen::SparseQR<Eigen::SparseMatrix<double>, Eigen::COLAMDOrdering<int> > SqrJT;
- #else
-     if(qrAlgorithm==EigenSparseQR){
--        Base::Console().Warning("SparseQR not supported by you current version of Eigen. It requires Eigen 3.2.2 or higher. Falling back to Dense QR\n");
-+        GCS::Warning("SparseQR not supported by you current version of Eigen. It requires Eigen 3.2.2 or higher. Falling back to Dense QR\n");
-         qrAlgorithm=EigenDenseQR;
-     }
- #endif
-@@ -4074,7 +4125,7 @@ int System::diagnose(Algorithm alg)
-                         break;
-                 }
--                Base::Console().Log("Sketcher::RedundantSolving-%s-\n",solvername.c_str());
-+                GCS::Log("Sketcher::RedundantSolving-%s-\n",solvername.c_str());
-             }
-             if (res == Success) {
-@@ -4088,7 +4139,7 @@ int System::diagnose(Algorithm alg)
-                 resetToReference();
-                 if(debugMode==Minimal || debugMode==IterationLevel) {
--                    Base::Console().Log("Sketcher Redundant solving: %d redundants\n",redundant.size());
-+                    GCS::Log("Sketcher Redundant solving: %d redundants\n",redundant.size());
-                 }
-                 std::vector< std::vector<Constraint *> > conflictGroupsOrig=conflictGroups;
-diff --git a/src/Mod/Sketcher/App/planegcs/GCS.h b/src/Mod/Sketcher/App/planegcs/GCS.h
-index 17d57c8..ecc5b04 100644
---- a/src/Mod/Sketcher/App/planegcs/GCS.h
-+++ b/src/Mod/Sketcher/App/planegcs/GCS.h
-@@ -69,7 +69,7 @@ namespace GCS
-         IterationLevel = 2
-     };
--    class System
-+    class PLANEGCS_EXPORT System
-     {
-     // This is the main class. It holds all constraints and information
-     // about partitioning into subsystems and solution strategies
-@@ -283,9 +283,9 @@ namespace GCS
-     // Helper elements
-     ///////////////////////////////////////
--    void free(VEC_pD &doublevec);
--    void free(std::vector<Constraint *> &constrvec);
--    void free(std::vector<SubSystem *> &subsysvec);
-+    PLANEGCS_EXPORT void free(VEC_pD &doublevec);
-+    PLANEGCS_EXPORT void free(std::vector<Constraint *> &constrvec);
-+    PLANEGCS_EXPORT void free(std::vector<SubSystem *> &subsysvec);
- } //namespace GCS
-diff --git a/src/Mod/Sketcher/App/planegcs/Geo.h b/src/Mod/Sketcher/App/planegcs/Geo.h
-index 1cdb983..6246f3b 100644
---- a/src/Mod/Sketcher/App/planegcs/Geo.h
-+++ b/src/Mod/Sketcher/App/planegcs/Geo.h
-@@ -26,16 +26,20 @@
- #include <cmath>
- #include "Util.h"
-+#ifdef _MSC_VER
-+#pragma warning(disable : 4251)
-+#endif
-+
- namespace GCS
- {
--    class DependentParameters 
-+    class PLANEGCS_EXPORT DependentParameters
-     {
-     public:
-         DependentParameters():hasDependentParameters(false) {}
-         bool hasDependentParameters;
-     };
-     
--    class Point : public DependentParameters
-+    class PLANEGCS_EXPORT Point : public DependentParameters
-     {
-     public:
-         Point(){x = 0; y = 0;}
-@@ -55,7 +59,7 @@ namespace GCS
-     ///manually as well. The class also provides a bunch of methods to do math
-     ///on it (and derivatives are calculated implicitly).
-     ///
--    class DeriVector2
-+    class PLANEGCS_EXPORT DeriVector2
-     {
-     public:
-         DeriVector2(){x=0; y=0; dx=0; dy=0;}
-@@ -95,7 +99,7 @@ namespace GCS
-     // Geometries
-     ///////////////////////////////////////
--    class Curve: public DependentParameters //a base class for all curve-based objects (line, circle/arc, ellipse/arc)
-+    class PLANEGCS_EXPORT Curve: public DependentParameters //a base class for all curve-based objects (line, circle/arc, ellipse/arc)
-     {
-     public:
-         virtual ~Curve(){}
-@@ -125,7 +129,7 @@ namespace GCS
-         virtual Curve* Copy() = 0; //DeepSOIC: I haven't found a way to simply copy a curve object provided pointer to a curve object.
-     };
--    class Line: public Curve
-+    class PLANEGCS_EXPORT Line: public Curve
-     {
-     public:
-         Line(){}
-@@ -139,7 +143,7 @@ namespace GCS
-         virtual Line* Copy();
-     };
--    class Circle: public Curve
-+    class PLANEGCS_EXPORT Circle: public Curve
-     {
-     public:
-         Circle(){rad = 0;}
-@@ -153,7 +157,7 @@ namespace GCS
-         virtual Circle* Copy();
-     };
--    class Arc: public Circle
-+    class PLANEGCS_EXPORT Arc: public Circle
-     {
-     public:
-         Arc(){startAngle=0;endAngle=0;rad=0;}
-@@ -169,7 +173,7 @@ namespace GCS
-         virtual Arc* Copy();
-     };
-     
--    class MajorRadiusConic: public Curve
-+    class PLANEGCS_EXPORT MajorRadiusConic: public Curve
-     {
-     public:
-         virtual ~MajorRadiusConic(){}
-@@ -179,7 +183,7 @@ namespace GCS
-         DeriVector2 CalculateNormal(Point &p, double* derivparam = 0) = 0;
-     };
-     
--    class Ellipse: public MajorRadiusConic
-+    class PLANEGCS_EXPORT Ellipse: public MajorRadiusConic
-     {
-     public:
-         Ellipse(){ radmin = 0;}
-@@ -197,7 +201,7 @@ namespace GCS
-         virtual Ellipse* Copy();
-     };
-     
--    class ArcOfEllipse: public Ellipse
-+    class PLANEGCS_EXPORT ArcOfEllipse: public Ellipse
-     {
-     public:
-         ArcOfEllipse(){startAngle=0;endAngle=0;radmin = 0;}
-@@ -215,7 +219,7 @@ namespace GCS
-         virtual ArcOfEllipse* Copy();
-     };
-     
--    class Hyperbola: public MajorRadiusConic
-+    class PLANEGCS_EXPORT Hyperbola: public MajorRadiusConic
-     {
-     public:
-         Hyperbola(){ radmin = 0;}
-@@ -233,7 +237,7 @@ namespace GCS
-         virtual Hyperbola* Copy();
-     };    
--    class ArcOfHyperbola: public Hyperbola
-+    class PLANEGCS_EXPORT ArcOfHyperbola: public Hyperbola
-     {
-     public:
-         ArcOfHyperbola(){startAngle=0;endAngle=0;radmin = 0;}
-@@ -249,7 +253,7 @@ namespace GCS
-         virtual ArcOfHyperbola* Copy();
-     };
-     
--    class Parabola: public Curve
-+    class PLANEGCS_EXPORT Parabola: public Curve
-     {
-     public:
-         Parabola(){ }
-@@ -263,7 +267,7 @@ namespace GCS
-         virtual Parabola* Copy();
-     };    
--    class ArcOfParabola: public Parabola
-+    class PLANEGCS_EXPORT ArcOfParabola: public Parabola
-     {
-     public:
-         ArcOfParabola(){startAngle=0;endAngle=0;}
-@@ -279,7 +283,7 @@ namespace GCS
-         virtual ArcOfParabola* Copy();
-     };
--    class BSpline: public Curve
-+    class PLANEGCS_EXPORT BSpline: public Curve
-     {
-     public:
-         BSpline(){periodic=false;degree=2;}
-diff --git a/src/Mod/Sketcher/App/planegcs/Util.h b/src/Mod/Sketcher/App/planegcs/Util.h
-index 8a759ba..7baafaa 100644
---- a/src/Mod/Sketcher/App/planegcs/Util.h
-+++ b/src/Mod/Sketcher/App/planegcs/Util.h
-@@ -44,4 +44,14 @@ namespace GCS
- } //namespace GCS
-+#if defined WIN32
-+#  if defined PLANEGCS_EXPORTS
-+#    define PLANEGCS_EXPORT __declspec(dllexport)
-+#  else
-+#    define PLANEGCS_EXPORT __declspec(dllimport)
-+#  endif
-+#else
-+#  define PLANEGCS_EXPORT
-+#endif
-+
- #endif // PLANEGCS_UTIL_H
--- 
-2.9.0.windows.1
-
diff --git a/config/patches/occ/qt.001_proxy_factory.patch b/config/patches/occ/qt.001_proxy_factory.patch
deleted file mode 100644 (file)
index b39fa98..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -NaurwB /tmp/qt/qt-5.6.1__0/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp /tmp/qt/qt-5.6.1__1/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp
---- qt-5.6.1__0/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp   2016-05-25 18:46:17.000000000 +0300
-+++ qt-5.6.1__1/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp   2017-03-15 17:51:11.051090499 +0300
-@@ -74,7 +74,7 @@
-     QList<QUrl> ret;
-     if (factory) {
--        char **proxies = px_proxy_factory_get_proxies(factory, url.toEncoded());
-+        char **proxies = px_proxy_factory_get_proxies(factory, url.toEncoded().data());
-         if (proxies) {
-             for (int i = 0; proxies[i]; i++) {
-                 ret.append(QUrl::fromEncoded(proxies[i]));
diff --git a/config/patches/occ/qt.002_disable_qtgamepad.patch b/config/patches/occ/qt.002_disable_qtgamepad.patch
deleted file mode 100644 (file)
index a36711f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-diff -Naur qt-5.9.1_SRC_orig/qtgamepad/src/plugins/plugins.pro qt-5.9.1_SRC_modif/qtgamepad/src/plugins/plugins.pro
---- qt-5.9.1_SRC_orig/qtgamepad/src/plugins/plugins.pro        2017-06-23 09:35:28.000000000 +0300
-+++ qt-5.9.1_SRC_modif/qtgamepad/src/plugins/plugins.pro       2018-10-31 15:53:41.396430110 +0300
-@@ -1,2 +1,2 @@
- TEMPLATE = subdirs
--SUBDIRS += gamepads
-+#SUBDIRS += gamepads
diff --git a/config/patches/occ/scotch.001.create_makefile.patch b/config/patches/occ/scotch.001.create_makefile.patch
deleted file mode 100644 (file)
index f9383cc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur scotch-6.0.4_SRC_orig/src/Makefile.inc scotch-6.0.4_SRC_modif/src/Makefile.inc
---- scotch-6.0.4_SRC_orig/src/Makefile.inc     1970-01-01 03:00:00.000000000 +0300
-+++ scotch-6.0.4_SRC_modif/src/Makefile.inc    2018-10-31 16:29:41.986238044 +0300
-@@ -0,0 +1,21 @@
-+EXE           =
-+LIB           = .a
-+OBJ           = .o
-+
-+MAKE          = make
-+AR            = ar
-+ARFLAGS               = -ruv
-+CAT           = cat
-+CCS           = gcc
-+CCP           = mpicc
-+CCD           = gcc
-+CFLAGS                = -fPIC -pg -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
-+CLIBFLAGS     =
-+LDFLAGS               = -lz -lm -pthread
-+CP            = cp
-+LEX           = flex -Pscotchyy -olex.yy.c
-+LN            = ln
-+MKDIR         = mkdir
-+MV            = mv
-+RANLIB                = ranlib
-+YACC          = bison -pscotchyy -y -b y
diff --git a/config/patches/occ/solvespace.001_nogui.patch b/config/patches/occ/solvespace.001_nogui.patch
deleted file mode 100644 (file)
index b273ca6..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -Naur '--exclude=CVS' '--exclude=.git' solvespace-2.1.orig/CMakeLists.txt solvespace-2.1.p1/CMakeLists.txt
---- solvespace-2.1.orig/CMakeLists.txt 2015-09-28 17:55:15.000000000 +0300
-+++ solvespace-2.1.p1/CMakeLists.txt   2015-09-28 18:05:50.000000000 +0300
-@@ -28,6 +28,10 @@
-     set(GUI gtk2 CACHE STRING "GUI toolkit to use (one of: gtk2 gtk3)")
- endif()
-+# options
-+
-+option(BUILD_GUI "Build only the library part" ON)
-+
- # compiler
- if(WIN32)
-@@ -54,6 +58,8 @@
- CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H)
-+if(BUILD_GUI)
-+
- find_package(OpenGL REQUIRED)
- find_package(Perl)
-@@ -125,6 +131,8 @@
-     endif()
- endif()
-+endif(BUILD_GUI)
-+
- # components
- if(WIN32)
-diff -Naur '--exclude=CVS' '--exclude=.git' solvespace-2.1.orig/src/CMakeLists.txt solvespace-2.1.p1/src/CMakeLists.txt
---- solvespace-2.1.orig/src/CMakeLists.txt     2015-09-28 17:55:15.000000000 +0300
-+++ solvespace-2.1.p1/src/CMakeLists.txt       2015-09-28 18:07:31.000000000 +0300
-@@ -79,6 +79,8 @@
- # generated files
-+if(BUILD_GUI)
-+
- file(GLOB icons "${CMAKE_CURRENT_SOURCE_DIR}/icons/*.png")
- if(PERL_FOUND AND PERLMODULES_FOUND)
-@@ -384,3 +386,5 @@
-         --malloc-fill=0xac
-         --free-fill=0xde
-         $<TARGET_FILE:solvespace>)
-+
-+endif(BUILD_GUI)
diff --git a/config/patches/omninotify.001_compilation.patch b/config/patches/omninotify.001_compilation.patch
deleted file mode 100644 (file)
index 6ee139f..0000000
+++ /dev/null
@@ -1,4584 +0,0 @@
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/all_cosnotify_clients.cc omniNotify-2.1.new/examples/all_cosnotify_clients.cc
---- omniNotify-2.1.orig/examples/all_cosnotify_clients.cc      2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/all_cosnotify_clients.cc       2009-06-28 17:19:34.000000000 +0400
-@@ -41,7 +41,7 @@
-     num_con_events = 6 * num_events;
-     // (2) Obtain reference to notification channel
--    if (verbose) cout << "Obtaining reference to notification channel" << endl;
-+    if (verbose) std::cout << "Obtaining reference to notification channel" << std::endl;
-     CosNA::EventChannel_ptr channel = getchan_from_ns(orb, channel_name, verbose);
-     if (CORBA::is_nil(channel)) { // name service lookup failed
-       channel = getchan_from_iorfile(orb, ior_file, verbose);
-@@ -51,7 +51,7 @@
-     }
-     // (3) Create all 12 CosNotify-style clients
--    if (verbose) cout << "Creating 12 clients" << endl;
-+    if (verbose) std::cout << "Creating 12 clients" << std::endl;
-     // (3.1) any_push_consumer
-     PushConsumer_i* a_push_c =
-@@ -59,7 +59,7 @@
-                            "", "", sample_consume_any_fn, sample_offer_change_fn,
-                            &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! a_push_c) {
--      cerr << "Constructing any_push_consumer failed" << endl;
-+      std::cerr << "Constructing any_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::PushConsumer_var my_a_push_c = a_push_c->_this();
-@@ -71,7 +71,7 @@
-                                      "", "", sample_consume_structured_fn, sample_offer_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! s_push_c) {
--      cerr << "Constructing struct_push_consumer failed" << endl;
-+      std::cerr << "Constructing struct_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::StructuredPushConsumer_var my_s_push_c = s_push_c->_this();
-@@ -83,7 +83,7 @@
-                                    "", "", sample_consume_batch_fn, sample_offer_change_fn,
-                                    &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! b_push_c) {
--      cerr << "Constructing batch_push_consumer failed" << endl;
-+      std::cerr << "Constructing batch_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::SequencePushConsumer_var my_b_push_c = b_push_c->_this();
-@@ -95,7 +95,7 @@
-                            "", "", sample_consume_any_fn, sample_offer_change_fn,
-                            &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! a_pull_c) {
--      cerr << "Constructing any_pull_consumer failed" << endl;
-+      std::cerr << "Constructing any_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::PullConsumer_var my_a_pull_c = a_pull_c->_this();
-@@ -107,7 +107,7 @@
-                                      "", "", sample_consume_structured_fn, sample_offer_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! s_pull_c) {
--      cerr << "Constructing struct_pull_consumer failed" << endl;
-+      std::cerr << "Constructing struct_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::StructuredPullConsumer_var my_s_pull_c = s_pull_c->_this();
-@@ -119,7 +119,7 @@
-                                    "", "", sample_consume_batch_fn, sample_offer_change_fn,
-                                    &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! b_pull_c) {
--      cerr << "Constructing batch_pull_consumer failed" << endl;
-+      std::cerr << "Constructing batch_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::SequencePullConsumer_var my_b_pull_c = b_pull_c->_this();
-@@ -131,7 +131,7 @@
-                            "", "", sample_supply_any_fn, sample_subscription_change_fn,
-                            &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! a_push_s) {
--      cerr << "Constructing any_push_supplier failed" << endl;
-+      std::cerr << "Constructing any_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::PushSupplier_var my_a_push_s = a_push_s->_this();
-@@ -143,7 +143,7 @@
-                                      "", "", sample_supply_structured_fn, sample_subscription_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! s_push_s) {
--      cerr << "Constructing struct_push_supplier failed" << endl;
-+      std::cerr << "Constructing struct_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::StructuredPushSupplier_var my_s_push_s = s_push_s->_this();
-@@ -155,7 +155,7 @@
-                                    "", "", sample_supply_batch_fn, sample_subscription_change_fn,
-                                    &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! b_push_s) {
--      cerr << "Constructing batch_push_supplier failed" << endl;
-+      std::cerr << "Constructing batch_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::SequencePushSupplier_var my_b_push_s = b_push_s->_this();
-@@ -167,7 +167,7 @@
-                            "", "", sample_supply_any_fn, sample_subscription_change_fn,
-                            &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! a_pull_s) {
--      cerr << "Constructing any_pull_supplier failed" << endl;
-+      std::cerr << "Constructing any_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::PullSupplier_var my_a_pull_s = a_pull_s->_this();
-@@ -179,7 +179,7 @@
-                                      "", "", sample_supply_structured_fn, sample_subscription_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! s_pull_s) {
--      cerr << "Constructing struct_pull_supplier failed" << endl;
-+      std::cerr << "Constructing struct_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::StructuredPullSupplier_var my_s_pull_s = s_pull_s->_this();
-@@ -191,75 +191,75 @@
-                                    "", "", sample_supply_batch_fn, sample_subscription_change_fn,
-                                    &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-     if (! b_pull_s) {
--      cerr << "Constructing batch_pull_supplier failed" << endl;
-+      std::cerr << "Constructing batch_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-     }
-     CosNotifyComm::SequencePullSupplier_var my_b_pull_s = b_pull_s->_this();
-     b_pull_s->_remove_ref(); // enables POA cleanup of servant
-     // (4) Tell POA we are ready to go
--    if (verbose) cout << "Activating POA manager" << endl;
-+    if (verbose) std::cout << "Activating POA manager" << std::endl;
-     PortableServer::POAManager_var pman = poa->the_POAManager();
-     pman->activate();
-     // (5) Connect clients to their proxies -- consumers first
--    if (verbose) cout << "Connecting consumer clients to proxies" << endl;
-+    if (verbose) std::cout << "Connecting consumer clients to proxies" << std::endl;
-     if (a_push_c->connect()) {
--      cerr << "Connecting any_push_consumer failed" << endl;
-+      std::cerr << "Connecting any_push_consumer failed" << std::endl;
-       goto error_return;
-     }
-     if (s_push_c->connect()) {
--      cerr << "Connecting struct_push_consumer failed" << endl;
-+      std::cerr << "Connecting struct_push_consumer failed" << std::endl;
-       goto error_return;
-     }
-     if (b_push_c->connect()) {
--      cerr << "Connecting batch_push_consumer failed" << endl;
-+      std::cerr << "Connecting batch_push_consumer failed" << std::endl;
-       goto error_return;
-     }
-     if (a_pull_c->connect()) {
--      cerr << "Connecting any_pull_consumer failed" << endl;
-+      std::cerr << "Connecting any_pull_consumer failed" << std::endl;
-       goto error_return;
-     }
-     if (s_pull_c->connect()) {
--      cerr << "Connecting struct_pull_consumer failed" << endl;
-+      std::cerr << "Connecting struct_pull_consumer failed" << std::endl;
-       goto error_return;
-     }
-     if (b_pull_c->connect()) {
--      cerr << "Connecting batch_pull_consumer failed" << endl;
-+      std::cerr << "Connecting batch_pull_consumer failed" << std::endl;
-       goto error_return;
-     }
--    if (verbose) cout << "Connecting supplier clients to proxies" << endl;
-+    if (verbose) std::cout << "Connecting supplier clients to proxies" << std::endl;
-     if (a_push_s->connect()) {
--      cerr << "Connecting any_push_supplier failed" << endl;
-+      std::cerr << "Connecting any_push_supplier failed" << std::endl;
-       goto error_return;
-     }
-     if (s_push_s->connect()) {
--      cerr << "Connecting struct_push_supplier failed" << endl;
-+      std::cerr << "Connecting struct_push_supplier failed" << std::endl;
-       goto error_return;
-     }
-     if (b_push_s->connect()) {
--      cerr << "Connecting batch_push_supplier failed" << endl;
-+      std::cerr << "Connecting batch_push_supplier failed" << std::endl;
-       goto error_return;
-     }
-     if (a_pull_s->connect()) {
--      cerr << "Connecting any_pull_supplier failed" << endl;
-+      std::cerr << "Connecting any_pull_supplier failed" << std::endl;
-       goto error_return;
-     }
-     if (s_pull_s->connect()) {
--      cerr << "Connecting struct_pull_supplier failed" << endl;
-+      std::cerr << "Connecting struct_pull_supplier failed" << std::endl;
-       goto error_return;
-     }
-     if (b_pull_s->connect()) {
--      cerr << "Connecting batch_pull_supplier failed" << endl;
-+      std::cerr << "Connecting batch_pull_supplier failed" << std::endl;
-       goto error_return;
-     }
--    if (verbose) cout << "Waiting for all 12 clients to finish" << endl;
-+    if (verbose) std::cout << "Waiting for all 12 clients to finish" << std::endl;
-     CORBA::Boolean a_push_c_err = a_push_c->wait_done();
-     CORBA::Boolean s_push_c_err = s_push_c->wait_done();
-     CORBA::Boolean b_push_c_err = b_push_c->wait_done();
-@@ -291,10 +291,10 @@
-       b_pull_s_err;
-     if (com_err && (num_events > 0)) {
--      if (verbose) cout << "Communication error -- probably did not process desired # of events" << endl;
-+      if (verbose) std::cout << "Communication error -- probably did not process desired # of events" << std::endl;
-     }
--    if (verbose) cout << "Cleaning up" << endl;
-+    if (verbose) std::cout << "Cleaning up" << std::endl;
-     if (!a_push_c_err) { a_push_c->cleanup(); }
-     if (!s_push_c_err) { s_push_c->cleanup(); }
-@@ -315,25 +315,25 @@
-     goto normal_return;
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << "main caught CORBA::SystemException." << endl;  
-+    std::cerr << "main caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << "main caught CORBA::Exception." << endl;        
-+    std::cerr << "main caught CORBA::Exception." << std::endl;        
-   }                                                    
- #if defined(__OMNIORB3__) || defined(__OMNIORB4__)
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "main caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "main caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
- #endif
-   catch(...) {                                         
-     // nameclt comment says it is a bad idea to report an error here 
-   }
--  cerr << "main caught an exception." << endl;       
-+  std::cerr << "main caught an exception." << std::endl;       
-  error_return:
--  cerr << "QUITTING due to error" << endl;
-+  std::cerr << "QUITTING due to error" << std::endl;
-   // orb->destroy();
-   return -1;
-  normal_return:
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/demo_add_filter.cc omniNotify-2.1.new/examples/demo_add_filter.cc
---- omniNotify-2.1.orig/examples/demo_add_filter.cc    2003-10-12 22:51:18.000000000 +0400
-+++ omniNotify-2.1.new/examples/demo_add_filter.cc     2009-06-28 17:20:35.000000000 +0400
-@@ -1,5 +1,5 @@
- #include <stdlib.h>
--#include <iostream.h>
-+#include <iostream>
- #include <stdio.h>
- #include "CosNotifyShorthands.h"
-@@ -25,14 +25,14 @@
-                                CORBA::Boolean verbose);
- void usage(char* pname) {
--  cerr << "Usage: " << pname << " [-n name] [-f file] -p file" << endl << endl;
--  cout << "  -n name  : channel name" << endl;
--  cout << "               => use event service to lookup this name" << endl;
--  cout << "  -f file  : file containing channel IOR" << endl;
--  cout << "               => use string_to_object on the IOR" << endl;
--  cout << "  -p file  : file with stringified IOR of proxy to be" << endl;
--  cout << "               sent add_filter messages (REQUIRED)" << endl;
--  cout << "(The channel is needed to obtain its default filter factory)" << endl;
-+  std::cerr << "Usage: " << pname << " [-n name] [-f file] -p file" << std::endl << std::endl;
-+  std::cout << "  -n name  : channel name" << std::endl;
-+  std::cout << "               => use event service to lookup this name" << std::endl;
-+  std::cout << "  -f file  : file containing channel IOR" << std::endl;
-+  std::cout << "               => use string_to_object on the IOR" << std::endl;
-+  std::cout << "  -p file  : file with stringified IOR of proxy to be" << std::endl;
-+  std::cout << "               sent add_filter messages (REQUIRED)" << std::endl;
-+  std::cout << "(The channel is needed to obtain its default filter factory)" << std::endl;
- }
-@@ -84,11 +84,11 @@
-     char buf[8096];
-     FILE* ifile;
-     if (! (ifile = fopen(proxy_ior_file, "r")) ) {
--      cerr << "Failed to open file " << proxy_ior_file << " for reading" << endl;
-+      std::cerr << "Failed to open file " << proxy_ior_file << " for reading" << std::endl;
-       goto cleanup;
-     }
-     if (fscanf(ifile, "%s", buf) != 1) {
--      cerr << "Failed to get an IOR from file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to get an IOR from file " << proxy_ior_file << std::endl;
-       fclose(ifile);
-       goto cleanup;
-     }
-@@ -97,32 +97,32 @@
-     try {
-       CORBA::Object_var proxy_ref = orb->string_to_object(buf);
-       if ( CORBA::is_nil(proxy_ref) ) {
--      cerr << "Failed to turn IOR in file " << proxy_ior_file << " into object" << endl;
-+      std::cerr << "Failed to turn IOR in file " << proxy_ior_file << " into object" << std::endl;
-       goto cleanup;
-       }
-       proxy = CosNF::FilterAdmin::_narrow(proxy_ref);
-       if ( CORBA::is_nil(proxy) ) {
--      cerr << "Failed to narrow object from IOR in file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to narrow object from IOR in file " << proxy_ior_file << std::endl;
-       goto cleanup;
-       }
-     } catch (...) {
--      cerr << "Failed to convert to object from IOR in file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to convert to object from IOR in file " << proxy_ior_file << std::endl;
-       goto cleanup;
-     }
-     CosNF::Filter_ptr filter = CosNF::Filter::_nil();
-     while (1) {
--      cout << endl << "Enter a constraint ('exit' to quit, 'remove' to remove all filters): " << endl <<  flush;
-+      std::cout << std::endl << "Enter a constraint ('exit' to quit, 'remove' to remove all filters): " << std::endl <<  std::flush;
-       if (!(fgets(buf, 8090, stdin))) break;
-       if (strlen(buf) < 2) continue; // skip empty lines
-       buf[strlen(buf)-1] = '\0'; // strip newline from end
-       if (strcmp(buf, "exit") == 0) {
-       break;
-       }
--      cout << "Calling remove_all_filters on the proxy" << endl;
-+      std::cout << "Calling remove_all_filters on the proxy" << std::endl;
-       proxy->remove_all_filters();
-       if (!CORBA::is_nil(filter)) {
--      cout << "Destroying the previous filter, which is no longer in use" << endl;
-+      std::cout << "Destroying the previous filter, which is no longer in use" << std::endl;
-       filter->destroy();
-       filter = CosNF::Filter::_nil();
-       }
-@@ -134,27 +134,27 @@
-       evs.length(0);
-       sample_add_filter(channel, proxy, evs, buf, "demo_add_filter", filter, 1);
-       }
--      cout << endl << "---------------------------------------------------------" << endl;
-+      std::cout << std::endl << "---------------------------------------------------------" << std::endl;
-     }
-     orb->destroy();
-     return 0; // success
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << "Caught CORBA::SystemException." << endl;  
-+    std::cerr << "Caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << "Caught CORBA::Exception." << endl;        
-+    std::cerr << "Caught CORBA::Exception." << std::endl;        
-   }                                                    
- #if defined(__OMNIORB3__) || defined(__OMNIORB4__)
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "Caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "Caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
- #endif
-   catch(...) {                                         
--    cerr << "Caught unknown exception." << endl;       
-+    std::cerr << "Caught unknown exception." << std::endl;       
-   }
-  cleanup:
-   orb->destroy();
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/demo_offer_change.cc omniNotify-2.1.new/examples/demo_offer_change.cc
---- omniNotify-2.1.orig/examples/demo_offer_change.cc  2003-10-12 22:51:18.000000000 +0400
-+++ omniNotify-2.1.new/examples/demo_offer_change.cc   2009-06-28 17:21:48.000000000 +0400
-@@ -1,5 +1,5 @@
- #include <stdlib.h>
--#include <iostream.h>
-+#include <iostream>
- #include <stdio.h>
- #include "CosNotifyShorthands.h"
-@@ -58,9 +58,9 @@
- }
- void usage(char* pname) {
--  cerr << "Usage: " << pname << " -p file" << endl << endl;
--  cout << "  -p file  : file with stringified IOR of proxy to be" << endl;
--  cout << "               sent offer_change messages (REQUIRED)" << endl;
-+  std::cerr << "Usage: " << pname << " -p file" << std::endl << std::endl;
-+  std::cout << "  -p file  : file with stringified IOR of proxy to be" << std::endl;
-+  std::cout << "               sent offer_change messages (REQUIRED)" << std::endl;
- }
- int main(int argc, char** argv)
-@@ -96,11 +96,11 @@
-     char buf2[8096];
-     FILE* ifile;
-     if (! (ifile = fopen(proxy_ior_file, "r")) ) {
--      cerr << "Failed to open file " << proxy_ior_file << " for reading" << endl;
-+      std::cerr << "Failed to open file " << proxy_ior_file << " for reading" << std::endl;
-       goto cleanup;
-     }
-     if (fscanf(ifile, "%s", buf) != 1) {
--      cerr << "Failed to get an IOR from file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to get an IOR from file " << proxy_ior_file << std::endl;
-       fclose(ifile);
-       goto cleanup;
-     }
-@@ -109,69 +109,69 @@
-     try {
-       CORBA::Object_var proxy_ref = orb->string_to_object(buf);
-       if ( CORBA::is_nil(proxy_ref) ) {
--      cerr << "Failed to turn IOR in file " << proxy_ior_file << " into object" << endl;
-+      std::cerr << "Failed to turn IOR in file " << proxy_ior_file << " into object" << std::endl;
-       goto cleanup;
-       }
-       proxy = CosNC::NotifyPublish::_narrow(proxy_ref);
-       if ( CORBA::is_nil(proxy) ) {
--      cerr << "Failed to narrow object from IOR in file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to narrow object from IOR in file " << proxy_ior_file << std::endl;
-       goto cleanup;
-       }
-     } catch (...) {
--      cerr << "Failed to convert to object from IOR in file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to convert to object from IOR in file " << proxy_ior_file << std::endl;
-       goto cleanup;
-     }
-     while (1) {
-       added.length(0);
-       deled.length(0);
--      cout << endl << "Enter list of removals (or empty for none): " << endl <<  flush;
-+      std::cout << std::endl << "Enter list of removals (or empty for none): " << std::endl <<  std::flush;
-       if (!(fgets(buf, 8090, stdin))) break;
-       if (strlen(buf) < 1) break;
-       buf[strlen(buf)-1] = '\0'; // strip newline from end
-       if (strcmp(buf, "exit") == 0) break;
-       if (strlen(buf)) {
-       if (parse_etype_list(buf, deled)) {
--        cerr << "Failed to parse the input as an event type list" << endl;
-+        std::cerr << "Failed to parse the input as an event type list" << std::endl;
-         continue;
-       }
-       }
--      cout << endl << "Enter list of additions (or empty for none): " << endl <<  flush;
-+      std::cout << std::endl << "Enter list of additions (or empty for none): " << std::endl <<  std::flush;
-       if (!(fgets(buf2, 8090, stdin))) break;
-       if (strlen(buf2) < 1) break;
-       buf2[strlen(buf2)-1] = '\0'; // strip newline from end
-       if (strcmp(buf2, "exit") == 0) break;
-       if (strlen(buf2)) {
-       if (parse_etype_list(buf2, added)) {
--        cerr << "Failed to parse the input as an event type list" << endl;
-+        std::cerr << "Failed to parse the input as an event type list" << std::endl;
-         continue;
-       }
-       }
--      cout << "Calling offer_change on the proxy" << endl;
-+      std::cout << "Calling offer_change on the proxy" << std::endl;
-       proxy->offer_change(added, deled);
--      cout << endl << "---------------------------------------------------------" << endl;
-+      std::cout << std::endl << "---------------------------------------------------------" << std::endl;
-     }
-     orb->destroy();
-     return 0; // success
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << "Caught CORBA::SystemException." << endl;  
-+    std::cerr << "Caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << "Caught CORBA::Exception." << endl;        
-+    std::cerr << "Caught CORBA::Exception." << std::endl;        
-   }                                                    
- #if defined(__OMNIORB3__) || defined(__OMNIORB4__)
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "Caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "Caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
- #endif
-   catch(...) {                                         
--    cerr << "Caught unknown exception." << endl;       
-+    std::cerr << "Caught unknown exception." << std::endl;       
-   }
-  cleanup:
-   orb->destroy();
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/demo_subscription_change.cc omniNotify-2.1.new/examples/demo_subscription_change.cc
---- omniNotify-2.1.orig/examples/demo_subscription_change.cc   2003-10-12 22:51:18.000000000 +0400
-+++ omniNotify-2.1.new/examples/demo_subscription_change.cc    2009-06-28 17:23:49.000000000 +0400
-@@ -1,5 +1,5 @@
- #include <stdlib.h>
--#include <iostream.h>
-+#include <iostream>
- #include <stdio.h>
- #include "CosNotifyShorthands.h"
-@@ -58,9 +58,9 @@
- }
- void usage(char* pname) {
--  cerr << "Usage: " << pname << " -p file" << endl << endl;
--  cout << "  -p file  : file with stringified IOR of proxy to be" << endl;
--  cout << "               sent subscription_change messages (REQUIRED)" << endl;
-+  std::cerr << "Usage: " << pname << " -p file" << std::endl << std::endl;
-+  std::cout << "  -p file  : file with stringified IOR of proxy to be" << std::endl;
-+  std::cout << "               sent subscription_change messages (REQUIRED)" << std::endl;
- }
- int main(int argc, char** argv)
-@@ -96,11 +96,11 @@
-     char buf2[8096];
-     FILE* ifile;
-     if (! (ifile = fopen(proxy_ior_file, "r")) ) {
--      cerr << "Failed to open file " << proxy_ior_file << " for reading" << endl;
-+      std::cerr << "Failed to open file " << proxy_ior_file << " for reading" << std::endl;
-       goto cleanup;
-     }
-     if (fscanf(ifile, "%s", buf) != 1) {
--      cerr << "Failed to get an IOR from file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to get an IOR from file " << proxy_ior_file << std::endl;
-       fclose(ifile);
-       goto cleanup;
-     }
-@@ -109,69 +109,69 @@
-     try {
-       CORBA::Object_var proxy_ref = orb->string_to_object(buf);
-       if ( CORBA::is_nil(proxy_ref) ) {
--      cerr << "Failed to turn IOR in file " << proxy_ior_file << " into object" << endl;
-+      std::cerr << "Failed to turn IOR in file " << proxy_ior_file << " into object" << std::endl;
-       goto cleanup;
-       }
-       proxy = CosNC::NotifySubscribe::_narrow(proxy_ref);
-       if ( CORBA::is_nil(proxy) ) {
--      cerr << "Failed to narrow object from IOR in file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to narrow object from IOR in file " << proxy_ior_file << std::endl;
-       goto cleanup;
-       }
-     } catch (...) {
--      cerr << "Failed to convert to object from IOR in file " << proxy_ior_file << endl;
-+      std::cerr << "Failed to convert to object from IOR in file " << proxy_ior_file << std::endl;
-       goto cleanup;
-     }
-     while (1) {
-       added.length(0);
-       deled.length(0);
--      cout << endl << "Enter list of removals (or empty for none): " << endl <<  flush;
-+      std::cout << std::endl << "Enter list of removals (or empty for none): " << std::endl <<  std::flush;
-       if (!(fgets(buf, 8090, stdin))) break;
-       if (strlen(buf) < 1) break;
-       buf[strlen(buf)-1] = '\0'; // strip newline from end
-       if (strcmp(buf, "exit") == 0) break;
-       if (strlen(buf)) {
-       if (parse_etype_list(buf, deled)) {
--        cerr << "Failed to parse the input as an event type list" << endl;
-+        std::cerr << "Failed to parse the input as an event type list" << std::endl;
-         continue;
-       }
-       }
--      cout << endl << "Enter list of additions (or empty for none): " << endl <<  flush;
-+      std::cout << std::endl << "Enter list of additions (or empty for none): " << std::endl <<  std::flush;
-       if (!(fgets(buf2, 8090, stdin))) break;
-       if (strlen(buf2) < 1) break;
-       buf2[strlen(buf2)-1] = '\0'; // strip newline from end
-       if (strcmp(buf2, "exit") == 0) break;
-       if (strlen(buf2)) {
-       if (parse_etype_list(buf2, added)) {
--        cerr << "Failed to parse the input as an event type list" << endl;
-+        std::cerr << "Failed to parse the input as an event type list" << std::endl;
-         continue;
-       }
-       }
--      cout << "Calling subscription_change on the proxy" << endl;
-+      std::cout << "Calling subscription_change on the proxy" << std::endl;
-       proxy->subscription_change(added, deled);
--      cout << endl << "---------------------------------------------------------" << endl;
-+      std::cout << std::endl << "---------------------------------------------------------" << std::endl;
-     }
-     orb->destroy();
-     return 0; // success
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << "Caught CORBA::SystemException." << endl;  
-+    std::cerr << "Caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << "Caught CORBA::Exception." << endl;        
-+    std::cerr << "Caught CORBA::Exception." << std::endl;        
-   }                                                    
- #if defined(__OMNIORB3__) || defined(__OMNIORB4__)
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "Caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "Caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
- #endif
-   catch(...) {                                         
--    cerr << "Caught unknown exception." << endl;       
-+    std::cerr << "Caught unknown exception." << std::endl;       
-   }
-  cleanup:
-   orb->destroy();
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/get_channel.h omniNotify-2.1.new/examples/get_channel.h
---- omniNotify-2.1.orig/examples/get_channel.h 2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/get_channel.h  2009-06-28 17:10:29.000000000 +0400
-@@ -19,11 +19,11 @@
-   CosNA::EventChannel_ptr channel = CosNA::EventChannel::_nil();
-   if (!ior_file || strlen(ior_file) == 0) return channel; // empty string -- ignore
-   if (! (ifile = fopen(ior_file, "r")) ) {
--    cerr << "Failed to open file " << ior_file << " for reading" << endl;
-+    std::cerr << "Failed to open file " << ior_file << " for reading" << std::endl;
-     return channel; // failure
-   }
-   if (fscanf(ifile, "%s", buf) != 1) {
--    cerr << "Failed to get an IOR from file " << ior_file << endl;
-+    std::cerr << "Failed to get an IOR from file " << ior_file << std::endl;
-     fclose(ifile);
-     return channel; // failure
-   }
-@@ -31,21 +31,21 @@
-   try {
-     CORBA::Object_var channel_ref = orb->string_to_object(buf);
-     if ( CORBA::is_nil(channel_ref) ) {
--      cerr << "Failed to turn IOR in file " << ior_file << " into object" << endl;
-+      std::cerr << "Failed to turn IOR in file " << ior_file << " into object" << std::endl;
-       return channel; // failure
-     }
-     channel = CosNA::EventChannel::_narrow(channel_ref);
-     if ( CORBA::is_nil(channel) ) {
--      cerr << "Failed to narrow object from IOR in file " << ior_file <<
--      " to type CosNotifyChannelAdmin::EventChannel" << endl;
-+      std::cerr << "Failed to narrow object from IOR in file " << ior_file <<
-+      " to type CosNotifyChannelAdmin::EventChannel" << std::endl;
-       return channel; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to convert IOR in file " << ior_file << " to object" << endl;
-+    std::cerr << "Failed to convert IOR in file " << ior_file << " to object" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Found valid channel reference" << endl;
-+    std::cout << "Found valid channel reference" << std::endl;
-   return channel; // success
- }
-@@ -59,29 +59,29 @@
-   if (!channel_name || strlen(channel_name) == 0) return channel; // empty string -- ignore
-   if (verbose)
--    cout << "Obtaining naming service reference" << endl;
-+    std::cout << "Obtaining naming service reference" << std::endl;
-   try {
-     CORBA::Object_var name_service;
-     name_service = orb->resolve_initial_references("NameService"); 
-     name_context = CosNaming::NamingContext::_narrow(name_service);
-     if ( CORBA::is_nil(name_context) ) {
--      cerr << "Failed to obtain context for NameService" << endl;
-+      std::cerr << "Failed to obtain context for NameService" << std::endl;
-       return channel; // failure
-     } 
-   }
-   catch(CORBA::ORB::InvalidName& ex) {
--    cerr << "Service required is invalid [does not exist]" << endl;
-+    std::cerr << "Service required is invalid [does not exist]" << std::endl;
-     return channel; // failure
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while resolving the naming service" << endl;
-+    std::cerr << "Caught exception while resolving the naming service" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Looking up channel name " << channel_name << " . " << channel_name << endl;
-+    std::cout << "Looking up channel name " << channel_name << " . " << channel_name << std::endl;
-   name.length(1);
-   name[0].id   = CORBA::string_dup((const char*)channel_name);
-@@ -91,23 +91,23 @@
-     CORBA::Object_var channel_ref = name_context->resolve(name);
-     channel = CosNA::EventChannel::_narrow(channel_ref);
-     if ( CORBA::is_nil(channel) ) {
--      cerr << "Failed to narrow object found in naming service " <<
--      " to type CosNotifyChannelAdmin::EventChannel" << endl;
-+      std::cerr << "Failed to narrow object found in naming service " <<
-+      " to type CosNotifyChannelAdmin::EventChannel" << std::endl;
-       return channel; // failure
-     }
-   }
-   catch(CORBA::ORB::InvalidName& ex) {
--    cerr << "Invalid name" << endl;
-+    std::cerr << "Invalid name" << std::endl;
-     return channel; // failure
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE while resolving event channel name" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE while resolving event channel name" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while resolving event channel name" << endl;
-+    std::cerr << "Caught exception while resolving event channel name" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Found valid channel reference" << endl;
-+    std::cout << "Found valid channel reference" << std::endl;
-   return channel; // success
- }
-@@ -121,30 +121,30 @@
-   CosNaming::Name name;
-   if (verbose)
--    cout << "Obtaining naming service reference" << endl;
-+    std::cout << "Obtaining naming service reference" << std::endl;
-   if (!factory_name || strlen(factory_name) == 0) return channel; // empty string -- ignore
-   try {
-     CORBA::Object_var name_service;
-     name_service = orb->resolve_initial_references("NameService"); 
-     name_context = CosNaming::NamingContext::_narrow(name_service);
-     if ( CORBA::is_nil(name_context) ) {
--      cerr << "Failed to obtain context for NameService" << endl;
-+      std::cerr << "Failed to obtain context for NameService" << std::endl;
-       return channel; // failure
-     } 
-   }
-   catch(CORBA::ORB::InvalidName& ex) {
--    cerr << "Service required is invalid [does not exist]" << endl;
-+    std::cerr << "Service required is invalid [does not exist]" << std::endl;
-     return channel; // failure
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while resolving the naming service" << endl;
-+    std::cerr << "Caught exception while resolving the naming service" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Looking up channel factory name " << factory_name << " . " << factory_name << endl;
-+    std::cout << "Looking up channel factory name " << factory_name << " . " << factory_name << std::endl;
-   name.length(1);
-   name[0].id   = CORBA::string_dup((const char*)factory_name);
-@@ -154,41 +154,41 @@
-     CORBA::Object_var factory_ref = name_context->resolve(name);
-     factory = CosNA::EventChannelFactory::_narrow(factory_ref);
-     if ( CORBA::is_nil(factory) ) {
--      cerr << "Failed to narrow object found in naming service " <<
--      " to type CosNotifyChannelAdmin::EventChannelFactory" << endl;
-+      std::cerr << "Failed to narrow object found in naming service " <<
-+      " to type CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
-       return channel; // failure
-     }
-   }
-   catch(CORBA::ORB::InvalidName& ex) {
--    cerr << "Invalid name" << endl;
-+    std::cerr << "Invalid name" << std::endl;
-     return channel; // failure
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE while resolving event channel factory name" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE while resolving event channel factory name" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while resolving event channel factory name" << endl;
-+    std::cerr << "Caught exception while resolving event channel factory name" << std::endl;
-     return channel; // failure
-   }
-   if (verbose) {
--    cout << "Found valid channel factory reference" << endl;
--    cout << "Looking up channel id " << chan_id << endl;
-+    std::cout << "Found valid channel factory reference" << std::endl;
-+    std::cout << "Looking up channel id " << chan_id << std::endl;
-   }
-   try {
-     channel = factory->get_event_channel( chan_id );
-     if ( CORBA::is_nil(channel) ) {
--      cerr << "Failed to find channel id " << chan_id << endl;
-+      std::cerr << "Failed to find channel id " << chan_id << std::endl;
-       return channel; // failure
-     }
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE while invoking get_event_channel" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE while invoking get_event_channel" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while invoking get_event_channel" << endl;
-+    std::cerr << "Caught exception while invoking get_event_channel" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Found valid channel reference" << endl;
-+    std::cout << "Found valid channel reference" << std::endl;
-   return channel; // success
- }
-@@ -201,30 +201,30 @@
-   CosNaming::Name name;
-   if (verbose)
--    cout << "Obtaining naming service reference" << endl;
-+    std::cout << "Obtaining naming service reference" << std::endl;
-   if (!factory_name || strlen(factory_name) == 0) return channel; // empty string -- ignore
-   try {
-     CORBA::Object_var name_service;
-     name_service = orb->resolve_initial_references("NameService"); 
-     name_context = CosNaming::NamingContext::_narrow(name_service);
-     if ( CORBA::is_nil(name_context) ) {
--      cerr << "Failed to obtain context for NameService" << endl;
-+      std::cerr << "Failed to obtain context for NameService" << std::endl;
-       return channel; // failure
-     } 
-   }
-   catch(CORBA::ORB::InvalidName& ex) {
--    cerr << "Service required is invalid [does not exist]" << endl;
-+    std::cerr << "Service required is invalid [does not exist]" << std::endl;
-     return channel; // failure
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while resolving the naming service" << endl;
-+    std::cerr << "Caught exception while resolving the naming service" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Looking up channel factory name " << factory_name << " . " << factory_name << endl;
-+    std::cout << "Looking up channel factory name " << factory_name << " . " << factory_name << std::endl;
-   name.length(1);
-   name[0].id   = CORBA::string_dup((const char*)factory_name);
-@@ -234,24 +234,24 @@
-     CORBA::Object_var factory_ref = name_context->resolve(name);
-     factory = CosNA::EventChannelFactory::_narrow(factory_ref);
-     if ( CORBA::is_nil(factory) ) {
--      cerr << "Failed to narrow object found in naming service " <<
--      " to type CosNotifyChannelAdmin::EventChannelFactory" << endl;
-+      std::cerr << "Failed to narrow object found in naming service " <<
-+      " to type CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
-       return channel; // failure
-     }
-   }
-   catch(CORBA::ORB::InvalidName& ex) {
--    cerr << "Invalid name" << endl;
-+    std::cerr << "Invalid name" << std::endl;
-     return channel; // failure
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE while resolving event channel factory name" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE while resolving event channel factory name" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while resolving event channel factory name" << endl;
-+    std::cerr << "Caught exception while resolving event channel factory name" << std::endl;
-     return channel; // failure
-   }
-   if (verbose) {
--    cout << "Found valid channel factory reference" << endl;
--    cout << "Creating new channel" << endl;
-+    std::cout << "Found valid channel factory reference" << std::endl;
-+    std::cout << "Creating new channel" << std::endl;
-   }
-   CosNA::ChannelID         chan_id;
-@@ -264,18 +264,18 @@
-     channel = factory->create_channel(qosP, admP, chan_id);
-     if ( CORBA::is_nil(channel) ) {
--      cerr << "Failed to create new channel" << endl;
-+      std::cerr << "Failed to create new channel" << std::endl;
-       return channel; // failure
-     }
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE while invoking create_channel" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE while invoking create_channel" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while invoking create_channel" << endl;
-+    std::cerr << "Caught exception while invoking create_channel" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Created a new channel with channel ID " << chan_id << endl;
-+    std::cout << "Created a new channel with channel ID " << chan_id << std::endl;
-   return channel; // success
- }
-@@ -289,11 +289,11 @@
-   if (!ior_file || strlen(ior_file) == 0) return channel; // empty string -- ignore
-   if (! (ifile = fopen(ior_file, "r")) ) {
--    cerr << "Failed to open file " << ior_file << " for reading" << endl;
-+    std::cerr << "Failed to open file " << ior_file << " for reading" << std::endl;
-     return channel; // failure
-   }
-   if (fscanf(ifile, "%s", buf) != 1) {
--    cerr << "Failed to get an IOR from file " << ior_file << endl;
-+    std::cerr << "Failed to get an IOR from file " << ior_file << std::endl;
-     fclose(ifile);
-     return channel; // failure
-   }
-@@ -301,22 +301,22 @@
-   try {
-     CORBA::Object_var fact_ref = orb->string_to_object(buf);
-     if ( CORBA::is_nil(fact_ref) ) {
--      cerr << "Failed to turn IOR in file " << ior_file << " into object" << endl;
-+      std::cerr << "Failed to turn IOR in file " << ior_file << " into object" << std::endl;
-       return channel; // failure
-     }
-     factory = CosNA::EventChannelFactory::_narrow(fact_ref);
-     if ( CORBA::is_nil(factory) ) {
--      cerr << "Failed to narrow object from IOR in file " << ior_file <<
--      " to type CosNotifyChannelAdmin::EventChannelFactory" << endl;
-+      std::cerr << "Failed to narrow object from IOR in file " << ior_file <<
-+      " to type CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
-       return channel; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to convert IOR in file " << ior_file << " to object" << endl;
-+    std::cerr << "Failed to convert IOR in file " << ior_file << " to object" << std::endl;
-     return channel; // failure
-   }
-   if (verbose) {
--    cout << "Found valid channel factory reference" << endl;
--    cout << "Creating new channel" << endl;
-+    std::cout << "Found valid channel factory reference" << std::endl;
-+    std::cout << "Creating new channel" << std::endl;
-   }
-   CosNA::ChannelID         chan_id;
-@@ -329,18 +329,18 @@
-     channel = factory->create_channel(qosP, admP, chan_id);
-     if ( CORBA::is_nil(channel) ) {
--      cerr << "Failed to create new channel" << endl;
-+      std::cerr << "Failed to create new channel" << std::endl;
-       return channel; // failure
-     }
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << "Caught system exception COMM_FAILURE while invoking create_channel" << endl;
-+    std::cerr << "Caught system exception COMM_FAILURE while invoking create_channel" << std::endl;
-     return channel; // failure
-   } catch (...) {
--    cerr << "Caught exception while invoking create_channel" << endl;
-+    std::cerr << "Caught exception while invoking create_channel" << std::endl;
-     return channel; // failure
-   }
-   if (verbose)
--    cout << "Created a new channel with channel ID " << chan_id << endl;
-+    std::cout << "Created a new channel with channel ID " << chan_id << std::endl;
-   return channel; // success
- }
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/legacy_clients.cc omniNotify-2.1.new/examples/legacy_clients.cc
---- omniNotify-2.1.orig/examples/legacy_clients.cc     2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/legacy_clients.cc      2009-06-28 17:19:01.000000000 +0400
-@@ -4,8 +4,8 @@
- // See legacy_clients.h
- // -------------------------------------------------------------- //
--#include <iostream.h>
--#include <iomanip.h>
-+#include <iostream>
-+#include <iomanip>
- #include "thread_wrappers.h"
- #include "CosNotifyShorthands.h"
-@@ -40,22 +40,22 @@
-   try {
-     admin = channel->for_consumers();
-     if ( CORBA::is_nil(admin) ) {
--      cerr << "Failed to obtain admin" << endl;
-+      std::cerr << "Failed to obtain admin" << std::endl;
-       return 0; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to obtain admin" << endl;
-+    std::cerr << "Failed to obtain admin" << std::endl;
-     return 0;  // failure
-   }
--  if (verbose) cout << "Obtained admin from the channel" << endl;
-+  if (verbose) std::cout << "Obtained admin from the channel" << std::endl;
-   try {
-     proxy = admin->obtain_push_supplier();
-   } catch (...) {  }
-   if ( CORBA::is_nil(proxy) ) {
--    cerr << "Failed to obtain proxy" << endl;
-+    std::cerr << "Failed to obtain proxy" << std::endl;
-     return 0;
-   }
--  if (verbose) cout << "Obtained proxy from admin" << endl;
-+  if (verbose) std::cout << "Obtained proxy from admin" << std::endl;
-     // Construct a client
-   LegacyPushConsumer_i* client =
-@@ -70,16 +70,16 @@
-   try {
-     _my_proxy->connect_push_consumer(_this());
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   // if _millisecs is set, spawn a thread to ping the proxy
-   if (_millisecs) 
-     _worker = new GenericBoundWorkerThread(this);
-@@ -91,7 +91,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPushConsumer", "LegacyPushConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -113,7 +113,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPushConsumer", "LegacyPushConsumer_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     // invariant: _oplock held at top of loop
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-@@ -138,7 +138,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using connect_push_consumer" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using connect_push_consumer" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -158,16 +158,16 @@
-   _num_events++;
-   if (_consume_fn)
-     (*_consume_fn)(data, _obj_name, _num_events, _verbose);
--  else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+  else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying push response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying push response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -180,7 +180,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "LegacyPushConsumer", "LegacyPushConsumer_i::diconnect_push_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -231,22 +231,22 @@
-   try {
-     admin = channel->for_consumers();
-     if ( CORBA::is_nil(admin) ) {
--      cerr << "Failed to obtain admin" << endl;
-+      std::cerr << "Failed to obtain admin" << std::endl;
-       return 0; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to obtain admin" << endl;
-+    std::cerr << "Failed to obtain admin" << std::endl;
-     return 0;  // failure
-   }
--  if (verbose) cout << "Obtained admin from the channel" << endl;
-+  if (verbose) std::cout << "Obtained admin from the channel" << std::endl;
-   try {
-     proxy = admin->obtain_pull_supplier();
-   } catch (...) {  }
-   if ( CORBA::is_nil(proxy) ) {
--    cerr << "Failed to obtain proxy" << endl;
-+    std::cerr << "Failed to obtain proxy" << std::endl;
-     return 0;
-   }
--  if (verbose) cout << "Obtained proxy from admin" << endl;
-+  if (verbose) std::cout << "Obtained proxy from admin" << std::endl;
-     // Construct a client
-   LegacyPullConsumer_i* client =
-@@ -261,17 +261,17 @@
-   try {
-     _my_proxy->connect_pull_consumer(_this());
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // spawn a thread to do pulling
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -281,7 +281,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPullConsumer", "LegacyPullConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -309,7 +309,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPullConsumer", "LegacyPullConsumer_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main pull loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main pull loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       { // introduce temporary lock release scope; do not hold oplock across pull
-@@ -322,7 +322,7 @@
-       } // end temporary lock release scope
-       if (_done) break; // must have disconnected during pull
-       if (!data) {
--      if (_verbose) cout << _obj_name << ": strange failure: pull() returned nil" << endl;
-+      if (_verbose) std::cout << _obj_name << ": strange failure: pull() returned nil" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-       }
-@@ -330,11 +330,11 @@
-       _num_events++;
-       if (_consume_fn)
-       (*_consume_fn)(*data, _obj_name, _num_events, _verbose);
--      else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+      else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-       delete data;
-       data = 0;
-       if (_max_events && (_num_events >= _max_events)) {
--      if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+      if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-       break; // done 
-       }
-       if (_millisecs) { // sleep for specified interval
-@@ -349,7 +349,7 @@
-       continue; // continue pulling
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while calling pull()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling pull()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -370,7 +370,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "LegacyPullConsumer", "LegacyPullConsumer_i::disconnect_pull_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -422,22 +422,22 @@
-   try {
-     admin = channel->for_suppliers();
-     if ( CORBA::is_nil(admin) ) {
--      cerr << "Failed to obtain admin" << endl;
-+      std::cerr << "Failed to obtain admin" << std::endl;
-       return 0; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to obtain admin" << endl;
-+    std::cerr << "Failed to obtain admin" << std::endl;
-     return 0;  // failure
-   }
--  if (verbose) cout << "Obtained admin from the channel" << endl;
-+  if (verbose) std::cout << "Obtained admin from the channel" << std::endl;
-   try {
-     proxy = admin->obtain_push_consumer();
-   } catch (...) {  }
-   if ( CORBA::is_nil(proxy) ) {
--    cerr << "Failed to obtain proxy" << endl;
-+    std::cerr << "Failed to obtain proxy" << std::endl;
-     return 0; // failure
-   }
--  if (verbose) cout << "Obtained proxy from admin" << endl;
-+  if (verbose) std::cout << "Obtained proxy from admin" << std::endl;
-     // Construct a client
-   LegacyPushSupplier_i* client =
-@@ -452,17 +452,17 @@
-   try {
-     _my_proxy->connect_push_supplier(_this());
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // spawn a thread to do pushing
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -472,7 +472,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPushSupplier", "LegacyPushSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -500,7 +500,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPushSupplier", "LegacyPushSupplier_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main push loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main push loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-@@ -515,9 +515,9 @@
-       if (_done) break; // must have disconnected during push
-       _num_events++;
-       // [rather than doing the following we let supply_fn report if it wants to]
--      // if (_verbose) cout << _obj_name << ": Pushed an event, event count = " << _num_events << endl;
-+      // if (_verbose) std::cout << _obj_name << ": Pushed an event, event count = " << _num_events << std::endl;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         break; // done
-       }
-       }
-@@ -534,7 +534,7 @@
-       continue; // continue pushing
-     com_fail:
-       if (_done) break; // must have disconnected during push
--      if (_verbose) cout << _obj_name << ": communication error while calling push()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling push()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -554,7 +554,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "LegacyPushSupplier", "LegacyPushSupplier_i::disconnect_push_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -606,22 +606,22 @@
-   try {
-     admin = channel->for_suppliers();
-     if ( CORBA::is_nil(admin) ) {
--      cerr << "Failed to obtain admin" << endl;
-+      std::cerr << "Failed to obtain admin" << std::endl;
-       return 0; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to obtain admin" << endl;
-+    std::cerr << "Failed to obtain admin" << std::endl;
-     return 0;  // failure
-   }
--  if (verbose) cout << "Obtained admin from the channel" << endl;
-+  if (verbose) std::cout << "Obtained admin from the channel" << std::endl;
-   try {
-     proxy = admin->obtain_pull_consumer();
-   } catch (...) {  }
-   if ( CORBA::is_nil(proxy) ) {
--    cerr << "Failed to obtain proxy" << endl;
-+    std::cerr << "Failed to obtain proxy" << std::endl;
-     return 0; // failure
-   }
--  if (verbose) cout << "Obtained proxy from admin" << endl;
-+  if (verbose) std::cout << "Obtained proxy from admin" << std::endl;
-     // Construct a client
-   LegacyPullSupplier_i* client =
-@@ -636,16 +636,16 @@
-   try {
-     _my_proxy->connect_pull_supplier(_this());
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   // if _millisecs is set, spawn a thread to ping the proxy
-   if (_millisecs)
-     _worker = new GenericBoundWorkerThread(this);
-@@ -657,7 +657,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPullSupplier", "LegacyPullSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -678,7 +678,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPullSupplier", "LegacyPullSupplier_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     // invariant: _oplock held at top of loop
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-@@ -703,7 +703,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using connect_pull_supplier" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using connect_pull_supplier" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -722,7 +722,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "LegacyPullSupplier", "LegacyPullSupplier_i::try_pull");
-   if (_done) return data;
--  if (_verbose) cout << _obj_name << ": Channel called try_pull" << endl;
-+  if (_verbose) std::cout << _obj_name << ": Channel called try_pull" << std::endl;
-   // If we reached done point during last try_pull, it is broadcast now
-   // and we return from this try_pull call without an event.
-@@ -730,10 +730,10 @@
-   // processed the previous try_pull (the final supplied event) before
-   // we disconnect this supplier.
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
--    if (_verbose) cout << _obj_name << ": NOT returning an event" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning an event" << std::endl;
-     return data;
-   }
-@@ -741,14 +741,14 @@
-     has_event = 1;
-     _num_events++;
-     // [rather than doing the following we let supply_fn report if it wants to]
--    // if (_verbose) cout << _obj_name << ": Returning an event, event count = " << _num_events << endl;
-+    // if (_verbose) std::cout << _obj_name << ": Returning an event, event count = " << _num_events << std::endl;
-   } else {
--    if (_verbose) cout << _obj_name << ": NOT returning an event" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning an event" << std::endl;
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying try_pull response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying try_pull response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -771,7 +771,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "LegacyPullSupplier", "LegacyPullSupplier_i::pull");
--    if (_verbose && (!_done)) cout << _obj_name << ": Channel called pull" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Channel called pull" << std::endl;
-     // invariants: _oplock is held entering top of loop and 
-     // also whenever we break out of loop
-     while ( 1 ) {
-@@ -779,9 +779,9 @@
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-       _num_events++;
-       // [rather than doing the following we let supply_fn report if it wants to]
--      // if (_verbose) cout << _obj_name << ": Returning an event, event count = " << _num_events << endl;
-+      // if (_verbose) std::cout << _obj_name << ": Returning an event, event count = " << _num_events << std::endl;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         _done = 1;
-         _finish.broadcast();
-       }
-@@ -801,7 +801,7 @@
-     if (!_done && _delay_millisecs) {
-       unsigned long d_secs     =  _delay_millisecs / 1000;
-       unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--      if (_verbose) cout << _obj_name << ": delaying pull response for " << _delay_millisecs << " millisecs" << endl;
-+      if (_verbose) std::cout << _obj_name << ": delaying pull response for " << _delay_millisecs << " millisecs" << std::endl;
-       unsigned long t_secs, t_nanosecs;
-       TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-       _finish.timedwait(t_secs, t_nanosecs);
-@@ -816,7 +816,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "LegacyPullSupplier", "LegacyPullSupplier_i::discconnect_pull_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/main_program.h omniNotify-2.1.new/examples/main_program.h
---- omniNotify-2.1.orig/examples/main_program.h        2004-03-19 00:39:20.000000000 +0300
-+++ omniNotify-2.1.new/examples/main_program.h 2009-06-28 17:24:41.000000000 +0400
-@@ -58,7 +58,7 @@
- #ifndef CREATE_CHANNEL
-     // (2) Obtain reference to notification channel
--    if (verbose) cout << "Obtaining reference to notification channel" << endl;
-+    if (verbose) std::cout << "Obtaining reference to notification channel" << std::endl;
-     CosNA::EventChannel_ptr channel = getchan_from_ns(orb, channel_name, verbose);
-     if (CORBA::is_nil(channel)) { // name service lookup failed
-       channel = getchan_from_iorfile(orb, ior_file, verbose);
-@@ -68,7 +68,7 @@
-     }
- #else
-     // (2) Create a new notification channel
--    if (verbose) cout << "Creating a new notification channel" << endl;
-+    if (verbose) std::cout << "Creating a new notification channel" << std::endl;
-     CosNA::EventChannel_ptr channel = getnewchan_use_ns(orb, cfact_name, verbose);
-     if (CORBA::is_nil(channel)) { // name service lookup failed
-       channel = getnewchan_use_iorfile(orb, cfact_ior_file, verbose);
-@@ -79,7 +79,7 @@
- #endif
-     // (3) Create a client
--    if (verbose) cout << "Creating client" << endl;
-+    if (verbose) std::cout << "Creating client" << std::endl;
- #ifndef LEGACY_CLIENT
-     CLIENT_IMPL_CLASS* client =
-       CLIENT_IMPL_CLASS::create(orb, channel, num_events, batch_size, CLIENT_NAME, proxy_ior_file, admin_ior_file,
-@@ -94,55 +94,55 @@
-       goto error_return; // failed to create client
-     }
-     // Obtain reference to the external client object
--    if (verbose) cout << "Obtaining CORBA object ref to client" << endl;
-+    if (verbose) std::cout << "Obtaining CORBA object ref to client" << std::endl;
-     CLIENT_CLASS_VAR myref = client->_this(); // implicit activation
-     client->_remove_ref(); // enables POA cleanup of servant
-     // (4) Tell POA we are ready to go
--    if (verbose) cout << "Activating POA manager" << endl;
-+    if (verbose) std::cout << "Activating POA manager" << std::endl;
-     PortableServer::POAManager_var pman = poa->the_POAManager();
-     pman->activate();
-     // (5) Connect client to its proxy, wait for desired # of events
--    if (verbose) cout << "Connecting client to its proxy" << endl;
-+    if (verbose) std::cout << "Connecting client to its proxy" << std::endl;
-     if (client->connect()) {
-       // an immediate error occurred
-     } else {
--      if (verbose) cout << "Waiting for desired # of events" << endl;
-+      if (verbose) std::cout << "Waiting for desired # of events" << std::endl;
-       // Wait until num_events has been reached
-       CORBA::Boolean communication_error = client->wait_done();
-       if (communication_error && (num_events > 0)) {
--      if (verbose) cout << "Communication error -- probably did not process desired # of events" << endl;
-+      if (verbose) std::cout << "Communication error -- probably did not process desired # of events" << std::endl;
-       }
--      if (verbose) cout << "Cleaning up" << endl;
-+      if (verbose) std::cout << "Cleaning up" << std::endl;
-       client->cleanup();
-     }
-     goto normal_return;
-   }
-   catch(CORBA::SystemException&) {
--    cerr << "main caught CORBA::SystemException." << endl;
-+    std::cerr << "main caught CORBA::SystemException." << std::endl;
-   }
-   catch(CORBA::Exception&) {
--    cerr << "main caught CORBA::Exception." << endl;
-+    std::cerr << "main caught CORBA::Exception." << std::endl;
-   }
- #if defined(__OMNIORB3__) || defined(__OMNIORB4__)
-   catch(omniORB::fatalException& fe) {
--    cerr << "main caught omniORB::fatalException:" << endl;
--    cerr << "  file: " << fe.file() << endl;
--    cerr << "  line: " << fe.line() << endl;
--    cerr << "  mesg: " << fe.errmsg() << endl;
-+    std::cerr << "main caught omniORB::fatalException:" << std::endl;
-+    std::cerr << "  file: " << fe.file() << std::endl;
-+    std::cerr << "  line: " << fe.line() << std::endl;
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;
-   }
- #endif
-   catch(...) {
-     // nameclt comment says it is a bad idea to report an error here 
-   }
--  cerr << "main caught an exception." << endl;
-+  std::cerr << "main caught an exception." << std::endl;
-  error_return:
- #ifdef CREATE_CHANNEL
- #ifdef DESTROY_CHANNEL
-   try {
-     if (!CORBA::is_nil(channel)) {
--      if (verbose) cout << "Destroying the channel we created" << endl;
-+      if (verbose) std::cout << "Destroying the channel we created" << std::endl;
-       channel->destroy();
-     }
-   } catch(...) { }
-@@ -155,7 +155,7 @@
- #ifdef DESTROY_CHANNEL
-   try {
-     if (!CORBA::is_nil(channel)) {
--      if (verbose) cout << "Destroying the channel we created" << endl;
-+      if (verbose) std::cout << "Destroying the channel we created" << std::endl;
-       channel->destroy();
-     }
-   } catch(...) { }
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/ndadmin.cc omniNotify-2.1.new/examples/ndadmin.cc
---- omniNotify-2.1.orig/examples/ndadmin.cc    2003-10-12 22:51:18.000000000 +0400
-+++ omniNotify-2.1.new/examples/ndadmin.cc     2009-06-28 17:09:16.000000000 +0400
-@@ -6,7 +6,7 @@
- #error COS_USES_BOA should not be set for this example
- #endif
--#include <iostream.h>
-+#include <iostream>
- #include "orb_init_name.h"
- #include "get_channel.h"
-@@ -23,15 +23,15 @@
- static void usage(const char* pname)
- {
--  cout << "Usage: " << pname << " [-n name] [-f file] [-v]" << endl;
--  cout << "  -n name  : channel name" << endl;
--  cout << "               => use event service to lookup this name" << endl;
--  cout << "  -f file  : file containing channel IOR" << endl;
--  cout << "               => use string_to_object on the IOR" << endl;
--  cout << "  -v       : verbose output" << endl;
--  cout << "NOTE: The server has a default channel; " << pname << " finds this channel" << endl;
--  cout << "      and then goes 'UP' to find the notifd server" << endl;
--  cout << endl;
-+  std::cout << "Usage: " << pname << " [-n name] [-f file] [-v]" << std::endl;
-+  std::cout << "  -n name  : channel name" << std::endl;
-+  std::cout << "               => use event service to lookup this name" << std::endl;
-+  std::cout << "  -f file  : file containing channel IOR" << std::endl;
-+  std::cout << "               => use string_to_object on the IOR" << std::endl;
-+  std::cout << "  -v       : verbose output" << std::endl;
-+  std::cout << "NOTE: The server has a default channel; " << pname << " finds this channel" << std::endl;
-+  std::cout << "      and then goes 'UP' to find the notifd server" << std::endl;
-+  std::cout << std::endl;
- }
- int main(int argc, char** argv) {
-@@ -78,12 +78,12 @@
-     }
-     // (2) Obtain reference to notification channel
--    if (verbose) cout << "Obtaining reference to notification channel" << endl;
-+    if (verbose) std::cout << "Obtaining reference to notification channel" << std::endl;
-     channel = getchan_from_ns(orb, channel_name, verbose);
-     if (CORBA::is_nil(channel)) { // name service lookup failed
-       channel = getchan_from_iorfile(orb, ior_file, verbose);
-       if (CORBA::is_nil(channel)) {
--      if (verbose) cout << "Could not find server's default channel" << endl;
-+      if (verbose) std::cout << "Could not find server's default channel" << std::endl;
-       goto err_return; // both methods failed
-       }
-     }
-@@ -97,7 +97,7 @@
-     catch ( CORBA::OBJECT_NOT_EXIST& e ) { docmd_problem = 1; } \
-     catch ( CORBA::COMM_FAILURE& e ) { docmd_problem = 1; }
-     if (!success || !target_changed || docmd_problem) {
--      if (verbose) cout << "Could not find server's default channel" << endl;
-+      if (verbose) std::cout << "Could not find server's default channel" << std::endl;
-       goto err_return;
-     }
-     target = next_target;
-@@ -108,7 +108,7 @@
-     catch ( CORBA::OBJECT_NOT_EXIST& e ) { docmd_problem = 1; } \
-     catch ( CORBA::COMM_FAILURE& e ) { docmd_problem = 1; }
-     if (!success || !target_changed || docmd_problem) {
--      if (verbose) cout << "Could not find server's default channel" << endl;
-+      if (verbose) std::cout << "Could not find server's default channel" << std::endl;
-       goto err_return;
-     }
-     target = AttN::Interactive::_duplicate(next_target);
-@@ -119,23 +119,23 @@
-     goto norm_return;
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << pname << " main caught CORBA::SystemException." << endl;  
-+    std::cerr << pname << " main caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << pname << " main caught CORBA::Exception." << endl;        
-+    std::cerr << pname << " main caught CORBA::Exception." << std::endl;        
-   }                                                    
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "main caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "main caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
-   catch(...) {                                         
-     // nameclt comment says it is a bad idea to report an error here 
-   }
--  cerr << "main caught an exception." << endl;
-+  std::cerr << "main caught an exception." << std::endl;
-  err_return:
--  cerr << "QUITTING due to error" << endl;
-+  std::cerr << "QUITTING due to error" << std::endl;
-   return -1;
-  norm_return:
-   return 0;
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/parse_cmd_line.h omniNotify-2.1.new/examples/parse_cmd_line.h
---- omniNotify-2.1.orig/examples/parse_cmd_line.h      2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/parse_cmd_line.h       2009-06-28 17:13:49.000000000 +0400
-@@ -4,7 +4,7 @@
- #define _PARSE_CMD_LINE_H
- #include <stdlib.h>
--#include <iostream.h>
-+#include <iostream>
- #include "CosNotifyShorthands.h"
-@@ -18,47 +18,47 @@
- static void usage(const char* pname, CORBA::Boolean supports_filters)
- {
--  cout << "Usage: " << pname << " [-d #] [-b #] [-m #] [-M #] [-n name] [-f file] [-N name] [-F file] [-p file] [-a file] [-v]";
-+  std::cout << "Usage: " << pname << " [-d #] [-b #] [-m #] [-M #] [-n name] [-f file] [-N name] [-F file] [-p file] [-a file] [-v]";
-   if (supports_filters) {
--    cout << " [-t types] [-e expr]" << endl;
-+    std::cout << " [-t types] [-e expr]" << std::endl;
-   } else {
--    cout << endl;
-+    std::cout << std::endl;
-   }
--  cout << "  -d #     : disconnect after # events [default 0 means never disconnect]" << endl;
--  cout << "  -b #     : batch size (only relevant for batch supplier programs) [default 5]" << endl;
--  cout << "               => must be >= 1" << endl;
--  cout << "  -m #     : # of milliseconds to pause between each push/pull [default 0]" << endl;
--  cout << "  -M #     : # of milliseconds to pause during incoming push, pull, try_pull [default 0]" << endl;
--  cout << "             (-M only applies to push consumers and pull suppliers)" << endl;
--  cout << "  -n name  : channel name" << endl;
--  cout << "               => use event service to lookup this name" << endl;
--  cout << "  -f file  : file containing channel IOR" << endl;
--  cout << "               => use string_to_object on the IOR" << endl;
--  cout << "  -N name  : factory name" << endl;
--  cout << "               => use event service to lookup this name" << endl;
--  cout << "  -F file  : file containing channel factory IOR" << endl;
--  cout << "               => use string_to_object on the IOR" << endl;
--  cout << "  -p file  : file to store IOR of the proxy used by this client" << endl;
--  cout << "                (used by demo_add_filter, demo_offer_change, or demo_subscription_chang)" << endl;
--  cout << "  -a file  : file to store IOR of the admin used by this client" << endl;
--  cout << "                (used by demo_add_filter, demo_offer_change, or demo_subscription_chang)" << endl;
--  cout << "  -v       : verbose output" << endl;
--  cout << endl;
-+  std::cout << "  -d #     : disconnect after # events [default 0 means never disconnect]" << std::endl;
-+  std::cout << "  -b #     : batch size (only relevant for batch supplier programs) [default 5]" << std::endl;
-+  std::cout << "               => must be >= 1" << std::endl;
-+  std::cout << "  -m #     : # of milliseconds to pause between each push/pull [default 0]" << std::endl;
-+  std::cout << "  -M #     : # of milliseconds to pause during incoming push, pull, try_pull [default 0]" << std::endl;
-+  std::cout << "             (-M only applies to push consumers and pull suppliers)" << std::endl;
-+  std::cout << "  -n name  : channel name" << std::endl;
-+  std::cout << "               => use event service to lookup this name" << std::endl;
-+  std::cout << "  -f file  : file containing channel IOR" << std::endl;
-+  std::cout << "               => use string_to_object on the IOR" << std::endl;
-+  std::cout << "  -N name  : factory name" << std::endl;
-+  std::cout << "               => use event service to lookup this name" << std::endl;
-+  std::cout << "  -F file  : file containing channel factory IOR" << std::endl;
-+  std::cout << "               => use string_to_object on the IOR" << std::endl;
-+  std::cout << "  -p file  : file to store IOR of the proxy used by this client" << std::endl;
-+  std::cout << "                (used by demo_add_filter, demo_offer_change, or demo_subscription_chang)" << std::endl;
-+  std::cout << "  -a file  : file to store IOR of the admin used by this client" << std::endl;
-+  std::cout << "                (used by demo_add_filter, demo_offer_change, or demo_subscription_chang)" << std::endl;
-+  std::cout << "  -v       : verbose output" << std::endl;
-+  std::cout << std::endl;
-   if (supports_filters) {
--    cout << "Options for adding a filter:" << endl;
--    cout << "  -t types : add a filter for the specified types, which should be a" << endl;
--    cout << "               comma-separated list of types of the form D::T" << endl;
--    cout << "  -e expr  : add a filter with the specified boolean expression" << endl;
--    cout << endl;
--    cout << "If only -t specified, the expression \"true\" is used for the filter" << endl;
--    cout << "If only -e specified, the event type \"*::*\" is used for the filter" << endl;
--    cout << endl;
--  }
--  cout << "If both -n and -f are specified, the -n option is tried first" << endl;
--  cout << endl;
--  cout << "If neither -n or -f is specified, program first tries name service" << endl;
--  cout << "using name \"EventChannel\", then default IOR file /tmp/rdichan.ior" << endl;
--  cout << endl;
-+    std::cout << "Options for adding a filter:" << std::endl;
-+    std::cout << "  -t types : add a filter for the specified types, which should be a" << std::endl;
-+    std::cout << "               comma-separated list of types of the form D::T" << std::endl;
-+    std::cout << "  -e expr  : add a filter with the specified boolean expression" << std::endl;
-+    std::cout << std::endl;
-+    std::cout << "If only -t specified, the expression \"true\" is used for the filter" << std::endl;
-+    std::cout << "If only -e specified, the event type \"*::*\" is used for the filter" << std::endl;
-+    std::cout << std::endl;
-+  }
-+  std::cout << "If both -n and -f are specified, the -n option is tried first" << std::endl;
-+  std::cout << std::endl;
-+  std::cout << "If neither -n or -f is specified, program first tries name service" << std::endl;
-+  std::cout << "using name \"EventChannel\", then default IOR file /tmp/rdichan.ior" << std::endl;
-+  std::cout << std::endl;
- }
- // return 0 if etype_list is a valid comma-separated event type list
-@@ -201,12 +201,12 @@
-     cfact_ior_file = (char*)"/tmp/rdifact.ior";
-   }
-   if ( (!supports_filters) && ( strlen(etype_list) || strlen(constraint_expr) ) ) {
--    cout << "Filter options not supported for this client" << endl;
-+    std::cout << "Filter options not supported for this client" << std::endl;
-     usage(pname, supports_filters);
-     return 1; // error
-   }
-   if (strlen(etype_list) && parse_etype_list(etype_list, evs)) {
--    cout << "Event type list for -t option must be comma-separated list of D::T" << endl << endl; 
-+    std::cout << "Event type list for -t option must be comma-separated list of D::T" << std::endl << std::endl; 
-     usage(pname, supports_filters);
-     return 1;
-   }
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/sample_clients.cc omniNotify-2.1.new/examples/sample_clients.cc
---- omniNotify-2.1.orig/examples/sample_clients.cc     2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/sample_clients.cc      2009-06-28 17:17:16.000000000 +0400
-@@ -7,9 +7,9 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <fstream.h>
--#include <iostream.h>
--#include <iomanip.h>
-+#include <fstream>
-+#include <iostream>
-+#include <iomanip>
- #ifdef HAVE_UNISTD_H
- #  include <unistd.h>
-@@ -70,7 +70,7 @@
- // This helper routine informs channel that type ANY will be supplied
- void offer_any(CosNC::NotifyPublish_ptr proxy, const char* objnm, CORBA::Boolean verbose) {
--  if (verbose) cout << objnm << ": offering type %ANY" << endl;
-+  if (verbose) std::cout << objnm << ": offering type %ANY" << std::endl;
-   CosN::EventTypeSeq added, deled;
-   added.length(1);
-   added[0].domain_name = CORBA::string_dup("");
-@@ -79,13 +79,13 @@
-   try {
-     proxy->offer_change(added, deled);
-   } catch (...) {
--    if (verbose) cout << "** registration failed **" << endl;
-+    if (verbose) std::cout << "** registration failed **" << std::endl;
-   }
- }
- // This helper routine informs channel that types Stock::Ticker and Bond::Ticker will be supplied
- void offer_ticker(CosNC::NotifyPublish_ptr proxy, const char* objnm, CORBA::Boolean verbose) {
--  if (verbose) cout << objnm << ": offering types Stock::Ticker and Bond::Ticker" << endl;
-+  if (verbose) std::cout << objnm << ": offering types Stock::Ticker and Bond::Ticker" << std::endl;
-   CosN::EventTypeSeq added, deled;
-   added.length(2);
-   added[0].domain_name = CORBA::string_dup("Stock");
-@@ -96,7 +96,7 @@
-   try {
-     proxy->offer_change(added, deled);
-   } catch (...) {
--    if (verbose) cout << "** registration failed **" << endl;
-+    if (verbose) std::cout << "** registration failed **" << std::endl;
-   }
- }
-@@ -104,19 +104,19 @@
- void write_ior_to_file(CORBA::ORB_ptr orb, CORBA::Object_ptr o,
-                      const char* filenm, CORBA::Boolean verbose) {
-   if (strlen(filenm) == 0) {
--    if (verbose) cout << "ior filename empty -- skipping" << endl;
-+    if (verbose) std::cout << "ior filename empty -- skipping" << std::endl;
-     return;
-   }
--  ofstream file(filenm, ios::out);
-+  std::ofstream file(filenm, std::ios::out);
-   if ( ! file ) {
--    if (verbose) cerr << "Failed to open IOR file: " << filenm << endl;
-+    if (verbose) std::cerr << "Failed to open IOR file: " << filenm << std::endl;
-     return;
-   }
-   char* ior_name = orb->object_to_string(o);
-   file << ior_name;
-   file.close();
-   delete [] ior_name;
--  if (verbose) cout << "wrote IOR to file: " << filenm << endl;
-+  if (verbose) std::cout << "wrote IOR to file: " << filenm << std::endl;
- }
- // These 2 helper routines are used to obtain one of the
-@@ -138,14 +138,14 @@
-   try {
-     admin = channel->new_for_suppliers(ifoper, admID);
-     if ( CORBA::is_nil(admin) ) {
--      cerr << "Failed to obtain admin" << endl;
-+      std::cerr << "Failed to obtain admin" << std::endl;
-       return generic_proxy; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to obtain admin" << endl;
-+    std::cerr << "Failed to obtain admin" << std::endl;
-     return generic_proxy;  // failure
-   }
--  if (verbose) cout << "Obtained admin from the channel" << endl;
-+  if (verbose) std::cout << "Obtained admin from the channel" << std::endl;
-   CosNA::ProxyID prxID;
-   try {
-@@ -156,14 +156,14 @@
-     }
-   } catch (...) {  }
-   if (CORBA::is_nil(generic_proxy)) {
--    cerr << "Failed to obtain proxy" << endl;
-+    std::cerr << "Failed to obtain proxy" << std::endl;
-     try {
-       admin->destroy();
-     } catch (...) { }
-     admin = CosNA::SupplierAdmin::_nil();
-     return generic_proxy;
-   }
--  if (verbose) cout << "Obtained proxy from admin" << endl;
-+  if (verbose) std::cout << "Obtained proxy from admin" << std::endl;
-   write_ior_to_file(orb, admin, admin_ior_file, verbose);
-   return generic_proxy; // success if generic_proxy is non-nil, otherwise failure
- }
-@@ -183,14 +183,14 @@
-   try {
-     admin = channel->new_for_consumers(ifoper, admID);
-     if ( CORBA::is_nil(admin) ) {
--      cerr << "Failed to obtain admin" << endl;
-+      std::cerr << "Failed to obtain admin" << std::endl;
-       return generic_proxy; // failure
-     }
-   } catch (...) {
--    cerr << "Failed to obtain admin" << endl;
-+    std::cerr << "Failed to obtain admin" << std::endl;
-     return generic_proxy;  // failure
-   }
--  if (verbose) cout << "Obtained admin from the channel" << endl;
-+  if (verbose) std::cout << "Obtained admin from the channel" << std::endl;
-   CosNA::ProxyID prxID;
-   try {
-@@ -201,14 +201,14 @@
-     }
-   } catch (...) {  }
-   if (CORBA::is_nil(generic_proxy)) {
--    cerr << "Failed to obtain proxy" << endl;
-+    std::cerr << "Failed to obtain proxy" << std::endl;
-     try {
-       admin->destroy();
-     } catch (...) { }
-     admin = CosNA::ConsumerAdmin::_nil();
-     return generic_proxy;
-   }
--  if (verbose) cout << "Obtained proxy from admin" << endl;
-+  if (verbose) std::cout << "Obtained proxy from admin" << std::endl;
-   write_ior_to_file(orb, admin, admin_ior_file, verbose);
-   return generic_proxy; // success if generic_proxy is non-nil, otherwise failure
- }
-@@ -226,24 +226,24 @@
-                 CORBA::Boolean verbose) {
-   // if evs and constraint expr are empty, we ignore them + do not add a filter
-   if ( (evs.length() == 0) && (strlen(constraint_expr) == 0) ) {
--    if (verbose) cout << obj_name << ": (no filter used)" << endl;
-+    if (verbose) std::cout << obj_name << ": (no filter used)" << std::endl;
-     return 0; // OK
-   }
-   // Obtain a reference to the default filter factory; create a filter object 
-   CosNF::FilterFactory_ptr ffp;
-   filter = CosNF::Filter::_nil();
-   try {
--    if (verbose) cout << obj_name << ": Obtaining default filter factory" << endl;
-+    if (verbose) std::cout << obj_name << ": Obtaining default filter factory" << std::endl;
-     ffp    = channel->default_filter_factory();  
-     filter = ffp->create_filter("EXTENDED_TCL");
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << obj_name << ": Caught COMM_FAILURE obtaining filter object" << endl;
-+    std::cerr << obj_name << ": Caught COMM_FAILURE obtaining filter object" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << obj_name << ": Caught exception obtaining filter object" << endl;
-+    std::cerr << obj_name << ": Caught exception obtaining filter object" << std::endl;
-     return 1; // error
-   }
--  if (verbose) cout << obj_name << ": Obtained filter from default filter factory" << endl;
-+  if (verbose) std::cout << obj_name << ": Obtained filter from default filter factory" << std::endl;
-   // Construct a simple constraint expression; add it to fadmin
-   CosNF::ConstraintExpSeq   exp;
-@@ -252,32 +252,32 @@
-   exp[0].constraint_expr = CORBA::string_dup(constraint_expr);
-   CORBA::Boolean res = 0; // OK
-   try {
--    if (verbose) cout << obj_name << ": Adding constraints to filter" << endl;
-+    if (verbose) std::cout << obj_name << ": Adding constraints to filter" << std::endl;
-     filter->add_constraints(exp);
--    if (verbose) cout << obj_name << ": Adding filter to target" << endl;
-+    if (verbose) std::cout << obj_name << ": Adding filter to target" << std::endl;
-     fadmin->add_filter(filter);
-     if (verbose) {
-       if (evs.length()) {
--      cout << obj_name << ": Added filter for types ";
-+      std::cout << obj_name << ": Added filter for types ";
-       for (unsigned int j = 0; j < evs.length(); j++) { 
--        cout << (const char*)evs[j].domain_name << "::" << (const char*)evs[j].type_name;
-+        std::cout << (const char*)evs[j].domain_name << "::" << (const char*)evs[j].type_name;
-         if ((j+1) < evs.length())
--          cout << ", ";
-+          std::cout << ", ";
-       }
-       } else {
--      cout << obj_name << ": Added filter for type *::* ";
-+      std::cout << obj_name << ": Added filter for type *::* ";
-       }
--      cout << " and constraint expression \"" << constraint_expr << "\" " << endl;
-+      std::cout << " and constraint expression \"" << constraint_expr << "\" " << std::endl;
-     }
-   }
-   catch(CosNF::InvalidConstraint& _exobj1) {
--    cerr << obj_name << ": Exception thrown : Invalid constraint given "
--       << (const char *)constraint_expr << endl;
-+    std::cerr << obj_name << ": Exception thrown : Invalid constraint given "
-+       << (const char *)constraint_expr << std::endl;
-     res = 1; // error
-   }
-   catch (...) {
--    cerr << obj_name << ": Exception thrown while adding constraint " 
--       << (const char *)constraint_expr << endl; 
-+    std::cerr << obj_name << ": Exception thrown while adding constraint " 
-+       << (const char *)constraint_expr << std::endl; 
-     res = 1; // error
-   }
-   if (res == 1) { // error so destroy filter
-@@ -306,17 +306,17 @@
-   CosNF::FilterFactory_ptr ffp;
-   filter = CosNF::Filter::_nil();
-   try {
--    if (verbose) cout << obj_name << ": Obtaining default filter factory" << endl;
-+    if (verbose) std::cout << obj_name << ": Obtaining default filter factory" << std::endl;
-     ffp    = channel->default_filter_factory();  
-     filter = ffp->create_filter("EXTENDED_TCL");
-   } catch (CORBA::COMM_FAILURE& ex) {
--    cerr << obj_name << ": Caught COMM_FAILURE obtaining filter object" << endl;
-+    std::cerr << obj_name << ": Caught COMM_FAILURE obtaining filter object" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << obj_name << ": Caught exception obtaining filter object" << endl;
-+    std::cerr << obj_name << ": Caught exception obtaining filter object" << std::endl;
-     return 1; // error
-   }
--  if (verbose) cout << obj_name << ": Obtained filter from default filter factory" << endl;
-+  if (verbose) std::cout << obj_name << ": Obtained filter from default filter factory" << std::endl;
-   // Construct a simple constraint expression; add it to fadmin
-   CosNF::ConstraintExpSeq   exp;
-@@ -327,29 +327,29 @@
-   exp[0].constraint_expr = CORBA::string_dup("true");
-   CORBA::Boolean res = 0; // OK
-   try {
--    if (verbose) cout << obj_name << ": Adding initial dummy constraint to filter" << endl;
-+    if (verbose) std::cout << obj_name << ": Adding initial dummy constraint to filter" << std::endl;
-     if (verbose) {
--      cout << obj_name << ": Adding constraint with dummy type Type_XXX and constraint \"true\" to filter" << endl;
-+      std::cout << obj_name << ": Adding constraint with dummy type Type_XXX and constraint \"true\" to filter" << std::endl;
-     }
-     filter->add_constraints(exp);
--    if (verbose) cout << obj_name << ": Adding filter to target" << endl;
-+    if (verbose) std::cout << obj_name << ": Adding filter to target" << std::endl;
-     fadmin->add_filter(filter);
-     for (int i = 0; i < 512; i++) {
-       char buf[1024];
-       sprintf(buf, "Type_%03d", i);
-       exp[0].event_types[0].type_name = CORBA::string_dup(buf);
-       if (verbose) {
--      cout << obj_name << ": Adding constraint with type " << buf << " and constraint \"true\" to filter" << endl;
-+      std::cout << obj_name << ": Adding constraint with type " << buf << " and constraint \"true\" to filter" << std::endl;
-       }
-       filter->add_constraints(exp);
-     }
-   }
-   catch(CosNF::InvalidConstraint& _exobj1) {
--    cerr << obj_name << ": Exception thrown : Invalid constraint given" << endl;
-+    std::cerr << obj_name << ": Exception thrown : Invalid constraint given" << std::endl;
-     res = 1; // error
-   }
-   catch (...) {
--    cerr << obj_name << ": Exception thrown while adding constraint/filter" << endl; 
-+    std::cerr << obj_name << ": Exception thrown while adding constraint/filter" << std::endl; 
-     res = 1; // error
-   }
-@@ -445,16 +445,16 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl;
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl;
-   // if _millisecs is set, spawn a thread to ping the proxy
-   if (_millisecs)
-     _worker = new GenericBoundWorkerThread(this);
-@@ -466,11 +466,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PushConsumer", "PushConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy
-@@ -496,7 +496,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PushConsumer", "PushConsumer_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-       unsigned long t_secs = 0, t_nanosecs = 0;
-@@ -518,7 +518,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -538,16 +538,16 @@
-   _num_events++;
-   if (_consume_fn)
-     (*_consume_fn)(data, _obj_name, _num_events, _verbose);
--  else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+  else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying push response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying push response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -560,7 +560,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "PushConsumer", "PushConsumer_i::disconnect_push_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -590,11 +590,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -678,16 +678,16 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   // if _millisecs is set, spawn a thread to ping the proxy
-   if (_millisecs) 
-     _worker = new GenericBoundWorkerThread(this);
-@@ -699,11 +699,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPushConsumer", "StructuredPushConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -730,7 +730,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPushConsumer", "StructuredPushConsumer_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-       unsigned long t_secs = 0, t_nanosecs = 0;
-@@ -752,7 +752,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -771,16 +771,16 @@
-   _num_events++;
-   if (_consume_fn)
-     (*_consume_fn)(data, _obj_name, _num_events, _verbose);
--  else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+  else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying push_structured_event response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying push_structured_event response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -793,7 +793,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "StructuredPushConsumer", "StructuredPushConsumer_i::disconnect_structured_push_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -823,11 +823,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -922,16 +922,16 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   // if _millisecs is set, spawn a thread to ping the proxy
-   if (_millisecs) 
-     _worker = new GenericBoundWorkerThread(this);
-@@ -943,11 +943,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "Structured512PushConsumer", "Structured512PushConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -974,7 +974,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "Structured512PushConsumer", "Structured512PushConsumer_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     // invariant: _oplock held at top of loop
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-@@ -997,7 +997,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -1016,16 +1016,16 @@
-   _num_events++;
-   if (_consume_fn)
-     (*_consume_fn)(data, _obj_name, _num_events, _verbose);
--  else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+  else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying push_structured_event response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying push_structured_event response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -1038,7 +1038,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "Structured512PushConsumer", "Structured512PushConsumer_i::disconnect_structured_push_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -1068,11 +1068,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -1155,16 +1155,16 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   // if _millisecs is set, spawn a thread to ping the proxy
-   if (_millisecs)
-     _worker = new GenericBoundWorkerThread(this);
-@@ -1176,11 +1176,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePushConsumer", "SequencePushConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -1207,7 +1207,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePushConsumer", "SequencePushConsumer_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     // invariant: _oplock held at top of loop
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-@@ -1230,7 +1230,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -1250,16 +1250,16 @@
-   _num_events += data.length();
-   if (_consume_fn)
-     (*_consume_fn)(data, _obj_name, _num_events, _num_batches, _verbose);
--  else if (_verbose) cout << _obj_name << ": event count = " << _num_events << " batch count = " << _num_batches << endl;
-+  else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << " batch count = " << _num_batches << std::endl;
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying push_structured_events response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying push_structured_events response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -1272,7 +1272,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "SequencePushConsumer", "SequencePushConsumer_i::disconnect_sequence_push_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -1302,11 +1302,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -1393,17 +1393,17 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // spawn a thread to do pulling
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -1413,11 +1413,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PullConsumer", "PullConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -1450,7 +1450,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PullConsumer", "PullConsumer_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main pull loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main pull loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       { // introduce temporary lock release scope; do not hold oplock across pull
-@@ -1463,7 +1463,7 @@
-       } // end temporary lock release scope
-       if (_done) break; // must have disconnected during pull
-       if (!data) {
--      if (_verbose) cout << _obj_name << ": strange failure: pull() returned nil" << endl;
-+      if (_verbose) std::cout << _obj_name << ": strange failure: pull() returned nil" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-       }
-@@ -1471,11 +1471,11 @@
-       _num_events++;
-       if (_consume_fn)
-       (*_consume_fn)(*data, _obj_name, _num_events, _verbose);
--      else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+      else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-       delete data;
-       data = 0;
-       if (_max_events && (_num_events >= _max_events)) {
--      if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+      if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-       break; // done 
-       }
-       if (_millisecs) { // sleep for specified interval
-@@ -1490,7 +1490,7 @@
-       continue; // continue pulling
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while calling pull()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling pull()" << std::endl;
-       _com_err = 1;
-       break;
-     } // end while loop
-@@ -1510,7 +1510,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "PullConsumer", "PullConsumer_i::disconnect_pull_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -1540,11 +1540,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -1629,17 +1629,17 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // spawn a thread to do pulling
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -1649,11 +1649,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPullConsumer", "StructuredPullConsumer_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -1686,7 +1686,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPullConsumer", "StructuredPullConsumer_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main pull loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main pull loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       { // introduce temporary lock release scope; do not hold oplock across pull
-@@ -1699,7 +1699,7 @@
-       } // end temporary lock release scope
-       if (_done) break; // must have disconnected during pull
-       if (!data) {
--      if (_verbose) cout << _obj_name << ": strange failure: pull_structured_event() returned nil" << endl;
-+      if (_verbose) std::cout << _obj_name << ": strange failure: pull_structured_event() returned nil" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-       }
-@@ -1707,11 +1707,11 @@
-       _num_events++;
-       if (_consume_fn)
-       (*_consume_fn)(*data, _obj_name, _num_events, _verbose);
--      else if (_verbose) cout << _obj_name << ": event count = " << _num_events << endl;
-+      else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << std::endl;
-       delete data;
-       data = 0;
-       if (_max_events && (_num_events >= _max_events)) {
--      if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+      if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-       break; // done
-       }
-       if (_millisecs) { // sleep for specified interval
-@@ -1726,7 +1726,7 @@
-       continue; // continue pulling
-     com_fail:
-       if (_done) break; // must have disconnected during pull
--      if (_verbose) cout << _obj_name << ": communication error while calling pull_structured_event()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling pull_structured_event()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -1747,7 +1747,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "StructuredPullConsumer", "StructuredPullConsumer_i::disconnect_structured_pull_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -1777,11 +1777,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -1865,17 +1865,17 @@
-       _my_proxy->obtain_offered_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // spawn a thread to do pulling
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to consume events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to consume events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -1885,11 +1885,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePullConsumer", "SequencePullConsumer_i::connect");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -1922,7 +1922,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePullConsumer", "SequencePullConsumer_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main pull loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main pull loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       { // introduce temporary lock release scope; do not hold oplock across pull
-@@ -1935,7 +1935,7 @@
-       } // end temporary lock release scope
-       if (_done) break; // must have disconnected during pull
-       if (!data) {
--      if (_verbose) cout << _obj_name << ": strange failure: pull_structured_events() returned nil" << endl;
-+      if (_verbose) std::cout << _obj_name << ": strange failure: pull_structured_events() returned nil" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-       }
-@@ -1944,11 +1944,11 @@
-       _num_events += data->length();
-       if (_consume_fn)
-       (*_consume_fn)(*data, _obj_name, _num_events, _num_batches, _verbose);
--      else if (_verbose) cout << _obj_name << ": event count = " << _num_events << " batch count = " << _num_batches << endl;
-+      else if (_verbose) std::cout << _obj_name << ": event count = " << _num_events << " batch count = " << _num_batches << std::endl;
-       delete data;
-       data = 0;
-       if (_max_events && (_num_events >= _max_events)) {
--      if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+      if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-       break; // done
-       }
-       if (_millisecs) { // sleep for specified interval
-@@ -1963,7 +1963,7 @@
-       continue; // continue pulling
-     com_fail:
-       if (_done) break; // must have disconnected during pull
--      if (_verbose) cout << _obj_name << ": communication error while calling pull_structured_events()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling pull_structured_events()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -1983,7 +1983,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "SequencePullConsumer", "SequencePullConsumer_i::disconnect_sequence_pull_consumer");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -2013,11 +2013,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": offer_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying offer_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -2115,19 +2115,19 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // register the types to be supplied
-   offer_any(_my_proxy, _obj_name, _verbose);
-   // spawn a thread to do pushing
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -2137,11 +2137,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PushSupplier", "PushSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -2174,7 +2174,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PushSupplier", "PushSupplier_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main push loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main push loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-@@ -2189,7 +2189,7 @@
-       if (_done) break; // must have disconnected during push
-       _num_events++;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         break; // done
-       }
-       }
-@@ -2206,7 +2206,7 @@
-       continue; // continue pushing
-     com_fail:
-       if (_done) break; // must have disconnected during push
--      if (_verbose) cout << _obj_name << ": communication error while calling push()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling push()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -2226,7 +2226,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "PushSupplier", "PushSupplier_i::disconnect_push_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -2256,11 +2256,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -2345,19 +2345,19 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // register the types to be supplied
-   offer_ticker(_my_proxy, _obj_name, _verbose);
-   // spawn a thread to do pushing
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -2367,11 +2367,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPushSupplier", "StructuredPushSupplier_i::connect");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -2404,7 +2404,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPushSupplier", "StructuredPushSupplier_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main push loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main push loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-@@ -2419,7 +2419,7 @@
-       if (_done) break; // must have disconnected during push
-       _num_events++;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         break; // done
-       }
-       }
-@@ -2436,7 +2436,7 @@
-       continue; // continue pushing
-     com_fail:
-       if (_done) break; // must have disconnected during push
--      if (_verbose) cout << _obj_name << ": communication error while calling push_structured_event()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling push_structured_event()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -2456,7 +2456,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "StructuredPushSupplier", "StructuredPushSupplier_i::disconnect_structured_push_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -2486,11 +2486,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -2575,17 +2575,17 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // spawn a thread to do pushing
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -2595,11 +2595,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "Structured512PushSupplier", "Structured512PushSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -2631,7 +2631,7 @@
-   CosN::StructuredEvent* data = new CosN::StructuredEvent;
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "Structured512PushSupplier", "Structured512PushSupplier_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main push loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main push loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-@@ -2646,7 +2646,7 @@
-       if (_done) break; // must have disconnected during push
-       _num_events++;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         break; // done
-       }
-       }
-@@ -2663,7 +2663,7 @@
-       continue; // continue pushing
-     com_fail:
-       if (_done) break; // must have disconnected during push
--      if (_verbose) cout << _obj_name << ": communication error while calling push_structured_event()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling push_structured_event()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } //end while loop
-@@ -2683,7 +2683,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "Structured512PushSupplier", "Structured512PushSupplier_i::disconnect_structured_push_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -2713,11 +2713,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -2807,19 +2807,19 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
-   // register the types to be supplied
-   offer_ticker(_my_proxy, _obj_name, _verbose);
-   // spawn a thread to do pushing
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   _worker = new GenericBoundWorkerThread(this);
-   return 0; // OK
- }
-@@ -2829,11 +2829,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePushSupplier", "SequencePushSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -2867,7 +2867,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePushSupplier", "SequencePushSupplier_i::start_working");
--    if (_verbose && (!_done)) cout << _obj_name << ": Spawned thread entering main push loop" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Spawned thread entering main push loop" << std::endl;
-     while ( 1 ) {
-       if (_done) break; // must have disconnected
-       data->length(0);
-@@ -2884,7 +2884,7 @@
-       _num_batches++;
-       _num_events += data->length();
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         break; // done
-       }
-       }
-@@ -2901,7 +2901,7 @@
-       continue; // continue pushing
-     com_fail:
-       if (_done) break; // must have disconnected during push
--      if (_verbose) cout << _obj_name << ": communication error while calling push_structured_events()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while calling push_structured_events()" << std::endl;
-       _com_err = 1;
-       break; // break from while loop -- done
-     } // end while loop
-@@ -2921,7 +2921,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "SequencePushSupplier", "SequencePushSupplier_i::disconnect_sequence_push_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -2951,11 +2951,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -3053,16 +3053,16 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   // register the types to be supplied
-   offer_any(_my_proxy, _obj_name, _verbose);
-   // if _millisecs is set, spawn a thread to ping the proxy
-@@ -3076,11 +3076,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PullSupplier", "PullSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -3107,7 +3107,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PullSupplier", "PullSupplier_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-       unsigned long t_secs = 0, t_nanosecs = 0;
-@@ -3129,7 +3129,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -3148,7 +3148,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "PullSupplier", "PullSupplier_i::try_pull");
-   if (_done) return data;
--  if (_verbose) cout << _obj_name << ": Channel called try_pull" << endl;
-+  if (_verbose) std::cout << _obj_name << ": Channel called try_pull" << std::endl;
-   // If we reached done point during last try_pull, it is broadcast now
-   // and we return from this try_pull call without an event.
-@@ -3156,10 +3156,10 @@
-   // processed the previous try_pull (the final supplied event) before
-   // we disconnect this supplier.
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
--    if (_verbose) cout << _obj_name << ": NOT returning an event" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning an event" << std::endl;
-     return data;
-   }
-@@ -3167,12 +3167,12 @@
-     has_event = 1;
-     _num_events++;
-   } else {
--    if (_verbose) cout << _obj_name << ": NOT returning an event" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning an event" << std::endl;
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying try_pull response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying try_pull response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -3194,7 +3194,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "PullSupplier", "PullSupplier_i::pull");
--    if (_verbose && (!_done)) cout << _obj_name << ": Channel called pull" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Channel called pull" << std::endl;
-     // invariants: _oplock is held entering top of loop and 
-     // also whenever we break out of loop
-     // (it is *not* held during yield() and timedwait() calls)
-@@ -3206,7 +3206,7 @@
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-       _num_events++;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         _done = 1;
-         _finish.broadcast();
-       }
-@@ -3227,7 +3227,7 @@
-     if (!_done && _delay_millisecs) {
-       unsigned long d_secs     =  _delay_millisecs / 1000;
-       unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--      if (_verbose) cout << _obj_name << ": delaying pull response for " << _delay_millisecs << " millisecs" << endl;
-+      if (_verbose) std::cout << _obj_name << ": delaying pull response for " << _delay_millisecs << " millisecs" << std::endl;
-       unsigned long t_secs, t_nanosecs;
-       TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-       _finish.timedwait(t_secs, t_nanosecs);
-@@ -3242,7 +3242,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "PullSupplier", "PullSupplier_i::disconnect_pull_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -3272,11 +3272,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -3361,16 +3361,16 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   // register the types to be supplied
-   offer_ticker(_my_proxy, _obj_name, _verbose);
-   // if _millisecs is set, spawn a thread to ping the proxy
-@@ -3384,11 +3384,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPullSupplier", "StructuredPullSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -3416,7 +3416,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPullSupplier", "StructuredPullSupplier_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-       unsigned long t_secs = 0, t_nanosecs = 0;
-@@ -3438,7 +3438,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -3457,7 +3457,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "StructuredPullSupplier", "StructuredPullSupplier_i::try_pull_structured_event");
-   if (_done) return data;
--  if (_verbose) cout << _obj_name << ": Channel called try_pull_structured_event" << endl;
-+  if (_verbose) std::cout << _obj_name << ": Channel called try_pull_structured_event" << std::endl;
-   // If we reached done point during last try_pull, it is broadcast now
-   // and we return from this try_pull call without an event.
-@@ -3465,10 +3465,10 @@
-   // processed the previous try_pull (the final supplied event) before
-   // we disconnect this supplier.
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
--    if (_verbose) cout << _obj_name << ": NOT returning an event" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning an event" << std::endl;
-     return data;
-   }
-@@ -3476,12 +3476,12 @@
-     has_event = 1;
-     _num_events++;
-   } else {
--    if (_verbose) cout << _obj_name << ": NOT returning an event" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning an event" << std::endl;
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying try_pull_structured_event response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying try_pull_structured_event response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -3503,7 +3503,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "StructuredPullSupplier", "StructuredPullSupplier_i::pull_structured_event");
--    if (_verbose && (!_done)) cout << _obj_name << ": Channel called pull_structured_event" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Channel called pull_structured_event" << std::endl;
-     // invariants: _oplock is held entering top of loop and 
-     // also whenever we break out of loop
-     // (it is *not* held during yield() and timedwait() calls)
-@@ -3515,7 +3515,7 @@
-       if ((*_supply_fn)(*data, _obj_name, _num_events+1, _verbose)) {
-       _num_events++;
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         _done = 1;
-         _finish.broadcast();
-       }
-@@ -3536,7 +3536,7 @@
-     if (!_done && _delay_millisecs) {
-       unsigned long d_secs     =  _delay_millisecs / 1000;
-       unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--      if (_verbose) cout << _obj_name << ": delaying pull_structured_event response for " << _delay_millisecs << " millisecs" << endl;
-+      if (_verbose) std::cout << _obj_name << ": delaying pull_structured_event response for " << _delay_millisecs << " millisecs" << std::endl;
-       unsigned long t_secs, t_nanosecs;
-       TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-       _finish.timedwait(t_secs, t_nanosecs);
-@@ -3551,7 +3551,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "StructuredPullSupplier", "StructuredPullSupplier_i::disconnect_structured_pull_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -3581,11 +3581,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -3675,16 +3675,16 @@
-       _my_proxy->obtain_subscription_types(CosNA::NONE_NOW_UPDATES_OFF);
-     }
-   } catch (CORBA::BAD_PARAM& ex) {
--    cerr << _obj_name << ": BAD_PARAM Exception while connecting" << endl;
-+    std::cerr << _obj_name << ": BAD_PARAM Exception while connecting" << std::endl;
-     return 1; // error
-   } catch (CosEvCA::AlreadyConnected& ex) {
--    cerr << _obj_name << ": Already connected" << endl;
-+    std::cerr << _obj_name << ": Already connected" << std::endl;
-     return 1; // error
-   } catch (...) {
--    cerr << _obj_name << ": Failed to connect" << endl;
-+    std::cerr << _obj_name << ": Failed to connect" << std::endl;
-     return 1; // error
-   }
--  if (_verbose) cout << _obj_name << ": Connected to proxy, ready to supply events" << endl; 
-+  if (_verbose) std::cout << _obj_name << ": Connected to proxy, ready to supply events" << std::endl; 
-   // register the types to be supplied
-   offer_ticker(_my_proxy, _obj_name, _verbose);
-   // if _millisecs is set, spawn a thread to ping the proxy
-@@ -3698,11 +3698,11 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePullSupplier", "SequencePullSupplier_i::cleanup");
-     if (_worker || (!_done)) {
--      cerr << "Coding error: only call c->cleanup() after c->wait_done()" << endl;
-+      std::cerr << "Coding error: only call c->cleanup() after c->wait_done()" << std::endl;
-       return;
-     }
-     if (CORBA::is_nil(_my_proxy)) {
--      cerr << "Coding error: cleanup already called?" << endl;
-+      std::cerr << "Coding error: cleanup already called?" << std::endl;
-       return;
-     }
-     // this method takes sole ownership of _my_proxy ref
-@@ -3729,7 +3729,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePullSupplier", "SequencePullSupplier_i::start_working");
--    if (_verbose && (!_done) && _millisecs) cout << _obj_name << ": Spawned thread entering ping loop" << endl;
-+    if (_verbose && (!_done) && _millisecs) std::cout << _obj_name << ": Spawned thread entering ping loop" << std::endl;
-     while ( 1 ) {
-       if (_done || (_millisecs == 0)) break;
-       unsigned long t_secs = 0, t_nanosecs = 0;
-@@ -3751,7 +3751,7 @@
-       continue; // continue ping loop
-     com_fail:
-       if (_done) break;
--      if (_verbose) cout << _obj_name << ": communication error while pinging proxy using MyType()" << endl;
-+      if (_verbose) std::cout << _obj_name << ": communication error while pinging proxy using MyType()" << std::endl;
-       _done = 1;
-       _finish.broadcast();
-       _com_err = 1;
-@@ -3772,7 +3772,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "SequencePullSupplier", "SequencePullSupplier_i::try_pull_structured_events");
-   if (_done) return data;
--  if (_verbose) cout << _obj_name << ": Channel called try_pull_structured_events" << endl;
-+  if (_verbose) std::cout << _obj_name << ": Channel called try_pull_structured_events" << std::endl;
-   // If we reached done point during last try_pull, it is broadcast now
-   // and we return from this try_pull call without an event batch.
-@@ -3780,10 +3780,10 @@
-   // processed the previous try_pull (the final supplied event batch) before
-   // we disconnect this supplier.
-   if (_max_events && (_num_events >= _max_events)) {
--    if (_verbose) cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << endl;
-+    if (_verbose) std::cout << _obj_name << ": DONE [max_events reached; we waited for 1 extra try_pull]" << std::endl;
-     _done = 1;
-     _finish.broadcast();
--    if (_verbose) cout << _obj_name << ": NOT returning a batch" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning a batch" << std::endl;
-     return data;
-   }
-@@ -3792,12 +3792,12 @@
-     _num_batches++;
-     _num_events += data->length();
-   } else {
--    if (_verbose) cout << _obj_name << ": NOT returning a batch" << endl;
-+    if (_verbose) std::cout << _obj_name << ": NOT returning a batch" << std::endl;
-   }
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying try_pull_structured_events response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying try_pull_structured_events response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-@@ -3820,7 +3820,7 @@
-   { // introduce lock scope
-     TW_SCOPE_LOCK(lock, _oplock, "SequencePullSupplier", "SequencePullSupplier_i::pull_structured_events");
--    if (_verbose && (!_done)) cout << _obj_name << ": Channel called pull_structured_events" << endl;
-+    if (_verbose && (!_done)) std::cout << _obj_name << ": Channel called pull_structured_events" << std::endl;
-     // invariants: _oplock is held entering top of loop and 
-     // also whenever we break out of loop
-     // (it is *not* held during yield() and timedwait() calls)
-@@ -3834,7 +3834,7 @@
-       _num_batches++;
-       _num_events += data->length();
-       if (_max_events && (_num_events >= _max_events)) {
--        if (_verbose) cout << _obj_name << ": DONE [max_events reached]" << endl;
-+        if (_verbose) std::cout << _obj_name << ": DONE [max_events reached]" << std::endl;
-         _done = 1;
-         _finish.broadcast();
-       }
-@@ -3855,7 +3855,7 @@
-     if (!_done && _delay_millisecs) {
-       unsigned long d_secs     =  _delay_millisecs / 1000;
-       unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--      if (_verbose) cout << _obj_name << ": delaying pull_structured_events response for " << _delay_millisecs << " millisecs" << endl;
-+      if (_verbose) std::cout << _obj_name << ": delaying pull_structured_events response for " << _delay_millisecs << " millisecs" << std::endl;
-       unsigned long t_secs, t_nanosecs;
-       TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-       _finish.timedwait(t_secs, t_nanosecs);
-@@ -3870,7 +3870,7 @@
-   TW_SCOPE_LOCK(lock, _oplock, "SequencePullSupplier", "SequencePullSupplier_i::disconnect_sequence_pull_supplier");
-   if (_done) return;
--  if (_verbose) cout << _obj_name << ": disconnected" << endl;
-+  if (_verbose) std::cout << _obj_name << ": disconnected" << std::endl;
-   _done = 1;
-   _finish.broadcast();
- }
-@@ -3900,11 +3900,11 @@
-   if (_done) return;
-   _num_changes++;
-   if (_change_fn) (*_change_fn)(added, deled, _obj_name, _num_changes, _verbose);
--  else if (_verbose) cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << endl;
-+  else if (_verbose) std::cout << _obj_name << ": subscription_change received [# " << _num_changes << "]" << std::endl;
-   if (!_done && _delay_millisecs) {
-     unsigned long d_secs     =  _delay_millisecs / 1000;
-     unsigned long d_nanosecs = (_delay_millisecs % 1000) * 1000000;
--    if (_verbose) cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << endl;
-+    if (_verbose) std::cout << _obj_name << ": delaying subscription_change response for " << _delay_millisecs << " millisecs" << std::endl;
-     unsigned long t_secs, t_nanosecs;
-     TW_GET_TIME(&t_secs, &t_nanosecs, d_secs, d_nanosecs);
-     _finish.timedwait(t_secs, t_nanosecs);
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/sample_functions.cc omniNotify-2.1.new/examples/sample_functions.cc
---- omniNotify-2.1.orig/examples/sample_functions.cc   2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/sample_functions.cc    2009-06-28 17:12:44.000000000 +0400
-@@ -2,8 +2,8 @@
- #include <stdio.h>
- #include <stdlib.h>
--#include <iostream.h>
--#include <iomanip.h>
-+#include <iostream>
-+#include <iomanip>
- #include "sample_functions.h"
- ///////////////////////////////////////////////////////////////////
-@@ -20,7 +20,7 @@
-                     )
- {
-   event <<= event_num;
--  if (verbose) cout << "Supplied event # " << event_num << endl;
-+  if (verbose) std::cout << "Supplied event # " << event_num << std::endl;
-   return 1; // OK
- }
-@@ -33,9 +33,9 @@
- {
-   CORBA::ULong ul;
-   if (event >>= ul) {
--    if (verbose) cout << obj_name << ": event data = " << ul << ", event count = " << event_num << endl;
-+    if (verbose) std::cout << obj_name << ": event data = " << ul << ", event count = " << event_num << std::endl;
-   } else {
--    if (verbose) cout << obj_name << ": event data not known (not a ULong), event count = " << event_num << endl;
-+    if (verbose) std::cout << obj_name << ": event data not known (not a ULong), event count = " << event_num << std::endl;
-   }
- }
-@@ -59,9 +59,9 @@
-                             )
- {
-   if (verbose) {
--    cout << setw(10) << obj_name << " : " <<
--      setw(4) << event_num << " : " <<
--      setw(5) << event.header.fixed_header.event_type.domain_name << "::" <<
-+    std::cout << std::setw(10) << obj_name << " : " <<
-+      std::setw(4) << event_num << " : " <<
-+      std::setw(5) << event.header.fixed_header.event_type.domain_name << "::" <<
-       event.header.fixed_header.event_type.type_name << " -- ";
-     const char* stock_or_bond_name = "";
-     CORBA::ULong value = 0;
-@@ -71,15 +71,15 @@
-       (event.filterable_data.length() > 1) &&
-       (event.filterable_data[0].value >>= stock_or_bond_name) &&
-       (event.filterable_data[1].value >>= value)) {
--      cout << "Name: " << stock_or_bond_name << " Value: " << setw(4) << value << " Quote# "; 
-+      std::cout << "Name: " << stock_or_bond_name << " Value: " << std::setw(4) << value << " Quote# "; 
-       CORBA::ULong l = 0;
-       if (event.remainder_of_body >>= l) {
--      cout << setw(4) << l << endl;
-+      std::cout << std::setw(4) << l << std::endl;
-       } else {
--      cout << "????" << endl;
-+      std::cout << "????" << std::endl;
-       }
-     } else {
--      cout << "(not a Stock or Bond quote -- ignoring)" << endl;
-+      std::cout << "(not a Stock or Bond quote -- ignoring)" << std::endl;
-     }
-   }
- }
-@@ -121,7 +121,7 @@
-   event.filterable_data[1].name = (const char*) "Value";
-   event.filterable_data[1].value <<= (CORBA::ULong) sample_stockbond_val[i];
-   event.remainder_of_body <<= (CORBA::ULong) event_num;
--  if (verbose) cout << "Supplied event # " << event_num << endl;
-+  if (verbose) std::cout << "Supplied event # " << event_num << std::endl;
-   return 1;
- }
-@@ -141,8 +141,8 @@
- {
-   CORBA::ULong evnum = event_num;
-   // We re-use the singleton example function
--  if (verbose) cout << "--------- " << obj_name << " Supplying Event Batch " <<
--               batch_num << " -------------" << endl;
-+  if (verbose) std::cout << "--------- " << obj_name << " Supplying Event Batch " <<
-+               batch_num << " -------------" << std::endl;
-   events.length(batch_size);
-   for (unsigned int i = 0; i < batch_size; i++) {
-     sample_supply_structured_fn(events[i], obj_name, evnum++, verbose);
-@@ -160,8 +160,8 @@
- {
-   // We re-use the singleton example function
-   CORBA::ULong evnum = (event_num - events.length()) + 1;
--  if (verbose) cout << "--------- " << obj_name << " Got Event Batch " <<
--               batch_num << " -------------" << endl;
-+  if (verbose) std::cout << "--------- " << obj_name << " Got Event Batch " <<
-+               batch_num << " -------------" << std::endl;
-   for (unsigned int i = 0; i < events.length(); i++) {
-     sample_consume_structured_fn(events[i], "", evnum++, verbose);
-   }
-@@ -177,15 +177,15 @@
-                         )
- {
-   if (verbose) {
--    cout << setw(10) << obj_name << " : " <<
--      setw(4) << event_num << " : " <<
--      setw(5) << event.header.fixed_header.event_type.domain_name << "::" <<
-+    std::cout << std::setw(10) << obj_name << " : " <<
-+      std::setw(4) << event_num << " : " <<
-+      std::setw(5) << event.header.fixed_header.event_type.domain_name << "::" <<
-       event.header.fixed_header.event_type.type_name << " -- ";
-     CORBA::ULong l = 0;
-     if (event.remainder_of_body >>= l) {
--      cout << setw(4) << l << endl;
-+      std::cout << std::setw(4) << l << std::endl;
-     } else {
--      cout << "????" << endl;
-+      std::cout << "????" << std::endl;
-     }
-   }
- }
-@@ -209,13 +209,13 @@
-   event.filterable_data[0].name = (const char*) "TypeNum";
-   event.filterable_data[0].value <<= (CORBA::ULong) i;
-   event.remainder_of_body <<= (CORBA::ULong) event_num;
--  if (verbose) cout << "Supplied event # " << event_num << endl;
-+  if (verbose) std::cout << "Supplied event # " << event_num << std::endl;
-   return 1;
- }
- // Helper functions
--ostream& operator<< (ostream& out, const CosN::EventType & t) {
-+std::ostream& operator<< (std::ostream& out, const CosN::EventType & t) {
-   const char* dname = (t.domain_name ? (const char*)t.domain_name : "*");
-   const char* tname = (t.type_name ? (const char*)t.type_name : "*");
-   return out << dname << "::" << tname;
-@@ -228,10 +228,10 @@
-   CORBA::ULong indx;
-   CosN::EventType type;
-   for (indx = 0; indx < added.length(); indx++) {
--    cout << "\t+ " << added[indx] << endl;
-+    std::cout << "\t+ " << added[indx] << std::endl;
-   }
-   for (indx = 0; indx < deled.length(); indx++) {
--    cout << "\t- " << deled[indx] << endl;
-+    std::cout << "\t- " << deled[indx] << std::endl;
-   }
- }
-@@ -247,8 +247,8 @@
-                      )
- {
-   if (verbose) {
--    cout << "Object " << obj_name <<
--      " received offer_change msg [# " << num_changes << "]:" << endl;
-+    std::cout << "Object " << obj_name <<
-+      " received offer_change msg [# " << num_changes << "]:" << std::endl;
-     sample_describe_change_fn(added, deled);
-   }
- }
-@@ -262,8 +262,8 @@
-                      )
- {
-   if (verbose) {
--    cout << "Object " << obj_name << 
--      " received subscription_change msg [# " << num_changes << "]:" << endl;
-+    std::cout << "Object " << obj_name << 
-+      " received subscription_change msg [# " << num_changes << "]:" << std::endl;
-     sample_describe_change_fn(added, deled);
-   }
- }
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/some_notify_clients.cc omniNotify-2.1.new/examples/some_notify_clients.cc
---- omniNotify-2.1.orig/examples/some_notify_clients.cc        2003-10-12 22:51:18.000000000 +0400
-+++ omniNotify-2.1.new/examples/some_notify_clients.cc 2009-06-28 17:18:19.000000000 +0400
-@@ -4,7 +4,7 @@
- #endif
- #include <stdlib.h>
--#include <iostream.h>
-+#include <iostream>
- #include "orb_init_name.h"
- #include "get_channel.h"
-@@ -23,58 +23,58 @@
- static void usage(const char* pname)
- {
--  cout << "Usage: " << pname << " -u client_type [-u client_type ...] [-c #] [-s #] [-b #] [-m #] [-M #] [-n name] [-f file] [-v] [-t types] [-e expr]" << endl;
--  cout << "  -u type  : use the specified client type (one client of that type is used)." << endl;
--  cout << "             Specify as many as you like, one -u option for each.  Types:" << endl;
--  cout << "                lpushc : legacy push consumer" << endl;   
--  cout << "                apushc : any push consumer" << endl; 
--  cout << "                spushc : structured push consumer" << endl; 
--  cout << "                bpushc : batch push consumer" << endl; 
--  cout << endl;
--  cout << "                lpullc : legacy pull consumer" << endl;   
--  cout << "                apullc : any pull consumer" << endl; 
--  cout << "                spullc : structured pull consumer" << endl; 
--  cout << "                bpullc : batch pull consumer" << endl; 
--  cout << endl;
--  cout << "                lpushs : legacy push supplier" << endl;   
--  cout << "                apushs : any push supplier" << endl; 
--  cout << "                spushs : structured push supplier" << endl; 
--  cout << "                bpushs : batch push supplier" << endl; 
--  cout << endl;
--  cout << "                lpulls : legacy pull supplier" << endl;   
--  cout << "                apulls : any pull supplier" << endl; 
--  cout << "                spulls : structured pull supplier" << endl; 
--  cout << "                bpulls : batch pull supplier" << endl; 
--  cout << endl;
--  cout << "  -s #     : for suppliers: disconnect after # events supplied [default 0 means never disconnect]" << endl;
--  cout << "  -c #     : for consumers: disconnect after # events consumed [default 0 means never disconnect]" << endl;
--  cout << "             **  N.B. You should take # of suppliers into account:" << endl;
--  cout << "                 if 3 suppliers supply 30 events, each consumer should consume 90 events" << endl; 
--  cout << "  -b #     : batch size (only relevant for batch supplier programs) [default 5]" << endl;
--  cout << "               => must be >= 1" << endl;
--  cout << "  -m #     : # of milliseconds to pause between each push/pull [default 0]" << endl;
--  cout << "  -M #     : # of milliseconds to pause during incoming push, pull, try_pull [default 0]" << endl;
--  cout << "             (-M only applies to push consumers and pull suppliers)" << endl;
--  cout << "  -n name  : channel name" << endl;
--  cout << "               => use event service to lookup this name" << endl;
--  cout << "  -f file  : file containing channel IOR" << endl;
--  cout << "               => use string_to_object on the IOR" << endl;
--  cout << "  -v       : verbose output" << endl;
--  cout << endl;
--  cout << "Options for adding a filter **:" << endl;
--  cout << "  -t types : add a filter for the specified types, which should be a" << endl;
--  cout << "               comma-separated list of types of the form D::T" << endl;
--  cout << "  -e expr  : add a filter with the specified boolean expression" << endl;
--  cout << "** N.B. Only add filters that always evaluate to TRUE to get proper program termination" << endl;
--  cout << endl;
--  cout << "If only -t specified, the expression \"true\" is used for the filter" << endl;
--  cout << "If only -e specified, the event type \"*::*\" is used for the filter" << endl;
--  cout << endl;
--  cout << "If both -n and -f are specified, the -n option is tried first" << endl;
--  cout << endl;
--  cout << "If neither -n or -f is specified, program first tries name service" << endl;
--  cout << "using name \"EventChannel\", then default IOR file /tmp/rdichan.ior" << endl;
--  cout << endl;
-+  std::cout << "Usage: " << pname << " -u client_type [-u client_type ...] [-c #] [-s #] [-b #] [-m #] [-M #] [-n name] [-f file] [-v] [-t types] [-e expr]" << std::endl;
-+  std::cout << "  -u type  : use the specified client type (one client of that type is used)." << std::endl;
-+  std::cout << "             Specify as many as you like, one -u option for each.  Types:" << std::endl;
-+  std::cout << "                lpushc : legacy push consumer" << std::endl;   
-+  std::cout << "                apushc : any push consumer" << std::endl; 
-+  std::cout << "                spushc : structured push consumer" << std::endl; 
-+  std::cout << "                bpushc : batch push consumer" << std::endl; 
-+  std::cout << std::endl;
-+  std::cout << "                lpullc : legacy pull consumer" << std::endl;   
-+  std::cout << "                apullc : any pull consumer" << std::endl; 
-+  std::cout << "                spullc : structured pull consumer" << std::endl; 
-+  std::cout << "                bpullc : batch pull consumer" << std::endl; 
-+  std::cout << std::endl;
-+  std::cout << "                lpushs : legacy push supplier" << std::endl;   
-+  std::cout << "                apushs : any push supplier" << std::endl; 
-+  std::cout << "                spushs : structured push supplier" << std::endl; 
-+  std::cout << "                bpushs : batch push supplier" << std::endl; 
-+  std::cout << std::endl;
-+  std::cout << "                lpulls : legacy pull supplier" << std::endl;   
-+  std::cout << "                apulls : any pull supplier" << std::endl; 
-+  std::cout << "                spulls : structured pull supplier" << std::endl; 
-+  std::cout << "                bpulls : batch pull supplier" << std::endl; 
-+  std::cout << std::endl;
-+  std::cout << "  -s #     : for suppliers: disconnect after # events supplied [default 0 means never disconnect]" << std::endl;
-+  std::cout << "  -c #     : for consumers: disconnect after # events consumed [default 0 means never disconnect]" << std::endl;
-+  std::cout << "             **  N.B. You should take # of suppliers into account:" << std::endl;
-+  std::cout << "                 if 3 suppliers supply 30 events, each consumer should consume 90 events" << std::endl; 
-+  std::cout << "  -b #     : batch size (only relevant for batch supplier programs) [default 5]" << std::endl;
-+  std::cout << "               => must be >= 1" << std::endl;
-+  std::cout << "  -m #     : # of milliseconds to pause between each push/pull [default 0]" << std::endl;
-+  std::cout << "  -M #     : # of milliseconds to pause during incoming push, pull, try_pull [default 0]" << std::endl;
-+  std::cout << "             (-M only applies to push consumers and pull suppliers)" << std::endl;
-+  std::cout << "  -n name  : channel name" << std::endl;
-+  std::cout << "               => use event service to lookup this name" << std::endl;
-+  std::cout << "  -f file  : file containing channel IOR" << std::endl;
-+  std::cout << "               => use string_to_object on the IOR" << std::endl;
-+  std::cout << "  -v       : verbose output" << std::endl;
-+  std::cout << std::endl;
-+  std::cout << "Options for adding a filter **:" << std::endl;
-+  std::cout << "  -t types : add a filter for the specified types, which should be a" << std::endl;
-+  std::cout << "               comma-separated list of types of the form D::T" << std::endl;
-+  std::cout << "  -e expr  : add a filter with the specified boolean expression" << std::endl;
-+  std::cout << "** N.B. Only add filters that always evaluate to TRUE to get proper program termination" << std::endl;
-+  std::cout << std::endl;
-+  std::cout << "If only -t specified, the expression \"true\" is used for the filter" << std::endl;
-+  std::cout << "If only -e specified, the event type \"*::*\" is used for the filter" << std::endl;
-+  std::cout << std::endl;
-+  std::cout << "If both -n and -f are specified, the -n option is tried first" << std::endl;
-+  std::cout << std::endl;
-+  std::cout << "If neither -n or -f is specified, program first tries name service" << std::endl;
-+  std::cout << "using name \"EventChannel\", then default IOR file /tmp/rdichan.ior" << std::endl;
-+  std::cout << std::endl;
- }
- // return 0 if etype_list is a valid comma-separated event type list
-@@ -195,7 +195,7 @@
-       } else if (strcmp(optarg, "bpulls") == 0) {
-         USE_B_PULL_S = 1; num_sup++;
-       } else {
--        cout << endl << "Bad client type (" << optarg << ") for -u option" << endl;
-+        std::cout << std::endl << "Bad client type (" << optarg << ") for -u option" << std::endl;
-         usage(pname);
-         goto error_return;
-       }
-@@ -250,7 +250,7 @@
-       ior_file = (char*)"/tmp/rdichan.ior";
-     }
-     if (strlen(etype_list) && parse_etype_list(etype_list, evs)) {
--      cout << "Event type list for -t option must be comma-separated list of D::T" << endl << endl; 
-+      std::cout << "Event type list for -t option must be comma-separated list of D::T" << std::endl << std::endl; 
-       usage(pname);
-       goto error_return;
-     }
-@@ -258,19 +258,19 @@
-       constraint_expr = (char*)"true";
-     }
-     if (num_con + num_sup == 0) {
--      cout << endl << "** You must use at least one -u option to specify a client **" << endl;
-+      std::cout << std::endl << "** You must use at least one -u option to specify a client **" << std::endl;
-       usage(pname);
-       goto error_return;
-     }
-     if (num_con && num_sup && num_con_events && num_sup_events && (num_con_events != (num_sup * num_sup_events))) {
--      cout << endl << "** WARNING: Unless filtering or external clients change the count, your math is wrong" << endl;
--      cout << "    num_con_events != num_sup * num_sup_events" << endl;
--      cout << "    ( " << num_con_events << " != " << num_sup << " * " << num_sup_events << " )" << endl;
--      cout << "Proceeding anyway" << endl;
-+      std::cout << std::endl << "** WARNING: Unless filtering or external clients change the count, your math is wrong" << std::endl;
-+      std::cout << "    num_con_events != num_sup * num_sup_events" << std::endl;
-+      std::cout << "    ( " << num_con_events << " != " << num_sup << " * " << num_sup_events << " )" << std::endl;
-+      std::cout << "Proceeding anyway" << std::endl;
-     }
-     // (2) Obtain reference to notification channel
--    if (verbose) cout << "Obtaining reference to notification channel" << endl;
-+    if (verbose) std::cout << "Obtaining reference to notification channel" << std::endl;
-     CosNA::EventChannel_ptr channel = getchan_from_ns(orb, channel_name, verbose);
-     if (CORBA::is_nil(channel)) { // name service lookup failed
-       channel = getchan_from_iorfile(orb, ior_file, verbose);
-@@ -323,12 +323,12 @@
-     // (3.1) legacy_push_consumer
-     if (USE_L_PUSH_C) {
--      cout << "Constructing legacy_push_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing legacy_push_consumer, num_con_events = " << num_con_events << std::endl;
-       l_push_c =
-       LegacyPushConsumer_i::create(channel, num_con_events, "legacy_push_consumer",
-                                    sample_consume_any_fn, millisecs, delay_millisecs, verbose);
-       if (! l_push_c) {
--      cerr << "Constructing legacy_push_consumer failed" << endl;
-+      std::cerr << "Constructing legacy_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_l_push_c = l_push_c->_this();
-@@ -337,12 +337,12 @@
-       // (3.2) legacy_pull_consumer
-     if (USE_L_PULL_C) {
--      cout << "Constructing legacy_pull_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing legacy_pull_consumer, num_con_events = " << num_con_events << std::endl;
-       l_pull_c =
-       LegacyPullConsumer_i::create(channel, num_con_events, "legacy_pull_consumer",
-                                    sample_consume_any_fn, millisecs, delay_millisecs, verbose);
-       if (! l_pull_c) {
--      cerr << "Constructing legacy_pull_consumer failed" << endl;
-+      std::cerr << "Constructing legacy_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_l_pull_c = l_pull_c->_this();
-@@ -351,13 +351,13 @@
-     // (3.3) any_push_consumer
-     if (USE_A_PUSH_C) {
--      cout << "Constructing any_push_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing any_push_consumer, num_con_events = " << num_con_events << std::endl;
-       a_push_c =
-       PushConsumer_i::create(orb, channel, num_con_events, batch_size, "any_push_consumer",
-                              "", "", sample_consume_any_fn, sample_offer_change_fn,
-                              &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! a_push_c) {
--      cerr << "Constructing any_push_consumer failed" << endl;
-+      std::cerr << "Constructing any_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_a_push_c = a_push_c->_this();
-@@ -366,13 +366,13 @@
-     // (3.4) struct_push_consumer
-     if (USE_S_PUSH_C) {
--      cout << "Constructing struct_push_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing struct_push_consumer, num_con_events = " << num_con_events << std::endl;
-       s_push_c =
-       StructuredPushConsumer_i::create(orb, channel, num_con_events, batch_size, "struct_push_consumer",
-                                        "", "", sample_consume_structured_fn, sample_offer_change_fn,
-                                        &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! s_push_c) {
--      cerr << "Constructing struct_push_consumer failed" << endl;
-+      std::cerr << "Constructing struct_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_s_push_c = s_push_c->_this();
-@@ -381,13 +381,13 @@
-     // (3.5) batch_push_consumer
-     if (USE_B_PUSH_C) {
--      cout << "Constructing batch_push_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing batch_push_consumer, num_con_events = " << num_con_events << std::endl;
-       b_push_c =
-       SequencePushConsumer_i::create(orb, channel, num_con_events, batch_size, "batch_push_consumer",
-                                      "", "", sample_consume_batch_fn, sample_offer_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! b_push_c) {
--      cerr << "Constructing batch_push_consumer failed" << endl;
-+      std::cerr << "Constructing batch_push_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_b_push_c = b_push_c->_this();
-@@ -396,13 +396,13 @@
-     // (3.6) any_pull_consumer
-     if (USE_A_PULL_C) {
--      cout << "Constructing any_pull_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing any_pull_consumer, num_con_events = " << num_con_events << std::endl;
-       a_pull_c =
-       PullConsumer_i::create(orb, channel, num_con_events, batch_size, "any_pull_consumer",
-                              "", "", sample_consume_any_fn, sample_offer_change_fn,
-                              &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! a_pull_c) {
--      cerr << "Constructing any_pull_consumer failed" << endl;
-+      std::cerr << "Constructing any_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_a_pull_c = a_pull_c->_this();
-@@ -411,13 +411,13 @@
-     // (3.7) struct_pull_consumer
-     if (USE_S_PULL_C) {
--      cout << "Constructing struct_pull_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing struct_pull_consumer, num_con_events = " << num_con_events << std::endl;
-       s_pull_c =
-       StructuredPullConsumer_i::create(orb, channel, num_con_events, batch_size, "struct_pull_consumer",
-                                        "", "", sample_consume_structured_fn, sample_offer_change_fn,
-                                        &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! s_pull_c) {
--      cerr << "Constructing struct_pull_consumer failed" << endl;
-+      std::cerr << "Constructing struct_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_s_pull_c = s_pull_c->_this();
-@@ -426,13 +426,13 @@
-     // (3.8) batch_pull_consumer
-     if (USE_B_PULL_C) {
--      cout << "Constructing batch_pull_consumer, num_con_events = " << num_con_events << endl;
-+      std::cout << "Constructing batch_pull_consumer, num_con_events = " << num_con_events << std::endl;
-       b_pull_c =
-       SequencePullConsumer_i::create(orb, channel, num_con_events, batch_size, "batch_pull_consumer",
-                                      "", "", sample_consume_batch_fn, sample_offer_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! b_pull_c) {
--      cerr << "Constructing batch_pull_consumer failed" << endl;
-+      std::cerr << "Constructing batch_pull_consumer failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_b_pull_c = b_pull_c->_this();
-@@ -441,12 +441,12 @@
-     // (3.9) legacy_push_supplier
-     if (USE_L_PUSH_S) {
--      cout << "Constructing legacy_push_supplier, num_sup_events = " << num_sup_events << endl;
-+      std::cout << "Constructing legacy_push_supplier, num_sup_events = " << num_sup_events << std::endl;
-       l_push_s =
-       LegacyPushSupplier_i::create(channel, num_sup_events, "legacy_push_supplier",
-                                    sample_supply_any_fn, millisecs, delay_millisecs, verbose);
-       if (! l_push_s) {
--      cerr << "Constructing legacy_push_supplier failed" << endl;
-+      std::cerr << "Constructing legacy_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_l_push_s = l_push_s->_this();
-@@ -455,12 +455,12 @@
-     // (3.10) legacy_pull_supplier
-     if (USE_L_PULL_S) {
--      cout << "Constructing legacy_pull_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing legacy_pull_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       l_pull_s =
-       LegacyPullSupplier_i::create(channel, num_sup_events, "legacy_pull_supplier",
-                                    sample_supply_any_fn, millisecs, delay_millisecs, verbose);
-       if (! l_pull_s) {
--      cerr << "Constructing legacy_pull_supplier failed" << endl;
-+      std::cerr << "Constructing legacy_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_l_pull_s = l_pull_s->_this();
-@@ -469,13 +469,13 @@
-     // (3.11) any_push_supplier
-     if (USE_A_PUSH_S) {
--      cout << "Constructing any_push_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing any_push_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       a_push_s =
-       PushSupplier_i::create(orb, channel, num_sup_events, batch_size, "any_push_supplier",
-                              "", "", sample_supply_any_fn, sample_subscription_change_fn,
-                              &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! a_push_s) {
--      cerr << "Constructing any_push_supplier failed" << endl;
-+      std::cerr << "Constructing any_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_a_push_s = a_push_s->_this();
-@@ -484,13 +484,13 @@
-     // (3.12) struct_push_supplier
-     if (USE_S_PUSH_S) {
--      cout << "Constructing struct_push_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing struct_push_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       s_push_s =
-       StructuredPushSupplier_i::create(orb, channel, num_sup_events, batch_size, "struct_push_supplier",
-                                        "", "", sample_supply_structured_fn, sample_subscription_change_fn,
-                                        &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! s_push_s) {
--      cerr << "Constructing struct_push_supplier failed" << endl;
-+      std::cerr << "Constructing struct_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_s_push_s = s_push_s->_this();
-@@ -499,13 +499,13 @@
-     // (3.13) batch_push_supplier
-     if (USE_B_PUSH_S) {
--      cout << "Constructing batch_push_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing batch_push_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       b_push_s =
-       SequencePushSupplier_i::create(orb, channel, num_sup_events, batch_size, "batch_push_supplier",
-                                      "", "", sample_supply_batch_fn, sample_subscription_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! b_push_s) {
--      cerr << "Constructing batch_push_supplier failed" << endl;
-+      std::cerr << "Constructing batch_push_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_b_push_s = b_push_s->_this();
-@@ -514,13 +514,13 @@
-     // (3.14) any_pull_supplier
-     if (USE_A_PULL_S) {
--      cout << "Constructing any_pull_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing any_pull_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       a_pull_s =
-       PullSupplier_i::create(orb, channel, num_sup_events, batch_size, "any_pull_supplier",
-                              "", "", sample_supply_any_fn, sample_subscription_change_fn,
-                              &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! a_pull_s) {
--      cerr << "Constructing any_pull_supplier failed" << endl;
-+      std::cerr << "Constructing any_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_a_pull_s = a_pull_s->_this();
-@@ -529,13 +529,13 @@
-     // (3.15) struct_pull_supplier
-     if (USE_S_PULL_S) {
--      cout << "Constructing struct_pull_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing struct_pull_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       s_pull_s =
-       StructuredPullSupplier_i::create(orb, channel, num_sup_events, batch_size, "struct_pull_supplier",
-                                        "", "", sample_supply_structured_fn, sample_subscription_change_fn,
-                                        &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! s_pull_s) {
--      cerr << "Constructing struct_pull_supplier failed" << endl;
-+      std::cerr << "Constructing struct_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_s_pull_s = s_pull_s->_this();
-@@ -544,13 +544,13 @@
-     // (3.16) batch_pull_supplier
-     if (USE_B_PULL_S) {
--      cout << "Constructing batch_pull_supplier, num_sup_events = " << num_sup_events <<  endl;
-+      std::cout << "Constructing batch_pull_supplier, num_sup_events = " << num_sup_events <<  std::endl;
-       b_pull_s =
-       SequencePullSupplier_i::create(orb, channel, num_sup_events, batch_size, "batch_pull_supplier",
-                                      "", "", sample_supply_batch_fn, sample_subscription_change_fn,
-                                      &evs, constraint_expr, millisecs, delay_millisecs, verbose);
-       if (! b_pull_s) {
--      cerr << "Constructing batch_pull_supplier failed" << endl;
-+      std::cerr << "Constructing batch_pull_supplier failed" << std::endl;
-       goto error_return; // failed to create a client
-       }
-       my_b_pull_s = b_pull_s->_this();
-@@ -558,116 +558,116 @@
-     }
-     // (4) Tell POA we are ready to go
--    if (verbose) cout << "Activating POA manager" << endl;
-+    if (verbose) std::cout << "Activating POA manager" << std::endl;
-     PortableServer::POAManager_var pman = poa->the_POAManager();
-     pman->activate();
-     // (5) Connect clients to their proxies -- consumers first
--    if (verbose) cout << "Connecting consumer clients to proxies" << endl;
-+    if (verbose) std::cout << "Connecting consumer clients to proxies" << std::endl;
-     if (USE_L_PUSH_C) {
-       if (l_push_c->connect()) {
--      cerr << "Connecting legacy_push_consumer failed" << endl;
-+      std::cerr << "Connecting legacy_push_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_A_PUSH_C) {
-       if (a_push_c->connect()) {
--      cerr << "Connecting any_push_consumer failed" << endl;
-+      std::cerr << "Connecting any_push_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_S_PUSH_C) {
-       if (s_push_c->connect()) {
--      cerr << "Connecting struct_push_consumer failed" << endl;
-+      std::cerr << "Connecting struct_push_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_B_PUSH_C) {
-       if (b_push_c->connect()) {
--      cerr << "Connecting batch_push_consumer failed" << endl;
-+      std::cerr << "Connecting batch_push_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_L_PULL_C) {
-       if (l_pull_c->connect()) {
--      cerr << "Connecting legacy_pull_consumer failed" << endl;
-+      std::cerr << "Connecting legacy_pull_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_A_PULL_C) {
-       if (a_pull_c->connect()) {
--      cerr << "Connecting any_pull_consumer failed" << endl;
-+      std::cerr << "Connecting any_pull_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_S_PULL_C) {
-       if (s_pull_c->connect()) {
--      cerr << "Connecting struct_pull_consumer failed" << endl;
-+      std::cerr << "Connecting struct_pull_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_B_PULL_C) {
-       if (b_pull_c->connect()) {
--      cerr << "Connecting batch_pull_consumer failed" << endl;
-+      std::cerr << "Connecting batch_pull_consumer failed" << std::endl;
-       goto error_return;
-       }
-     }
--    if (verbose) cout << "Connecting supplier clients to proxies" << endl;
-+    if (verbose) std::cout << "Connecting supplier clients to proxies" << std::endl;
-     if (USE_L_PUSH_S) {
-       if (l_push_s->connect()) {
--      cerr << "Connecting legacy_push_supplier failed" << endl;
-+      std::cerr << "Connecting legacy_push_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_A_PUSH_S) {
-       if (a_push_s->connect()) {
--      cerr << "Connecting any_push_supplier failed" << endl;
-+      std::cerr << "Connecting any_push_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_S_PUSH_S) {
-       if (s_push_s->connect()) {
--      cerr << "Connecting struct_push_supplier failed" << endl;
-+      std::cerr << "Connecting struct_push_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_B_PUSH_S) {
-       if (b_push_s->connect()) {
--      cerr << "Connecting batch_push_supplier failed" << endl;
-+      std::cerr << "Connecting batch_push_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_L_PULL_S) {
-       if (l_pull_s->connect()) {
--      cerr << "Connecting legacy_pull_supplier failed" << endl;
-+      std::cerr << "Connecting legacy_pull_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_A_PULL_S) {
-       if (a_pull_s->connect()) {
--      cerr << "Connecting any_pull_supplier failed" << endl;
-+      std::cerr << "Connecting any_pull_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_S_PULL_S) {
-       if (s_pull_s->connect()) {
--      cerr << "Connecting struct_pull_supplier failed" << endl;
-+      std::cerr << "Connecting struct_pull_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
-     if (USE_B_PULL_S) {
-       if (b_pull_s->connect()) {
--      cerr << "Connecting batch_pull_supplier failed" << endl;
-+      std::cerr << "Connecting batch_pull_supplier failed" << std::endl;
-       goto error_return;
-       }
-     }
--    if (verbose) cout << "Waiting for all 16 clients to finish" << endl;
-+    if (verbose) std::cout << "Waiting for all 16 clients to finish" << std::endl;
-     CORBA::Boolean l_push_c_err = 0, l_pull_c_err = 0, l_push_s_err = 0, l_pull_s_err = 0;
-     CORBA::Boolean a_push_c_err = 0, a_pull_c_err = 0, a_push_s_err = 0, a_pull_s_err = 0;
-@@ -745,13 +745,13 @@
-       s_pull_s_err ||
-       b_pull_s_err;
-     if (sup_com_err && (num_sup_events > 0)) {
--      if (verbose) cout << "Supplier communication error -- probably did not supply desired # of events" << endl;
-+      if (verbose) std::cout << "Supplier communication error -- probably did not supply desired # of events" << std::endl;
-     }
-     if (con_com_err && (num_con_events > 0)) {
--      if (verbose) cout << "Consumer communication error -- probably did not consume desired # of events" << endl;
-+      if (verbose) std::cout << "Consumer communication error -- probably did not consume desired # of events" << std::endl;
-     }
--    if (verbose) cout << "Cleaning up" << endl;
-+    if (verbose) std::cout << "Cleaning up" << std::endl;
-     if (USE_L_PUSH_C) {
-       if (!l_push_c_err) { l_push_c->cleanup(); }
-@@ -808,23 +808,23 @@
-     goto normal_return;
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << "main caught CORBA::SystemException." << endl;  
-+    std::cerr << "main caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << "main caught CORBA::Exception." << endl;        
-+    std::cerr << "main caught CORBA::Exception." << std::endl;        
-   }                                                    
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "main caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "main caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
-   catch(...) {                                         
-     // nameclt comment says it is a bad idea to report an error here 
-   }
--  cerr << "main caught an exception." << endl;       
-+  std::cerr << "main caught an exception." << std::endl;       
-  error_return:
--  cerr << "QUITTING due to error" << endl;
-+  std::cerr << "QUITTING due to error" << std::endl;
-   // orb->destroy();
-   return -1;
-  normal_return:
-diff -Naur --exclude=CVS omniNotify-2.1.orig/examples/ten_any_pull_consumers.cc omniNotify-2.1.new/examples/ten_any_pull_consumers.cc
---- omniNotify-2.1.orig/examples/ten_any_pull_consumers.cc     2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/examples/ten_any_pull_consumers.cc      2009-06-28 17:14:26.000000000 +0400
-@@ -32,7 +32,7 @@
-     PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);
-     // (1) Tell POA we are ready to go
--    if (verbose) cout << "Activating POA manager" << endl;
-+    if (verbose) std::cout << "Activating POA manager" << std::endl;
-     PortableServer::POAManager_var pman = poa->the_POAManager();
-     pman->activate();
-@@ -46,7 +46,7 @@
-     num_con_events = num_events;
-     // (3) Obtain reference to notification channel
--    if (verbose) cout << "Obtaining reference to notification channel" << endl;
-+    if (verbose) std::cout << "Obtaining reference to notification channel" << std::endl;
-     CosNA::EventChannel_ptr channel = getchan_from_ns(orb, channel_name, verbose);
-     if (CORBA::is_nil(channel)) { // name service lookup failed
-       channel = getchan_from_iorfile(orb, ior_file, verbose);
-@@ -56,14 +56,14 @@
-     }
-     // (4) Create all 12 CosNotify-style clients
--    if (verbose) cout << "Creating 10 any_pull_consumer clients" << endl;
-+    if (verbose) std::cout << "Creating 10 any_pull_consumer clients" << std::endl;
-     PullConsumer_i* a_pull_c[10];
-     CosNotifyComm::PullConsumer_var my_a_pull_c[10];
-     char buf[100];
-     for (i = 0; i < 10; i++) {
-       sprintf(buf, "any_pull_consumer%d", i);
--      if (verbose) cout << "Creating " << buf << endl;
-+      if (verbose) std::cout << "Creating " << buf << std::endl;
-       a_pull_c[i] =
-       PullConsumer_i::create(orb, channel, num_con_events, batch_size, CORBA::string_dup(buf),
-                              "", "", sample_consume_any_fn, sample_offer_change_fn,
-@@ -76,14 +76,14 @@
-     }
-     // (5) Connect clients to their proxies -- consumers first
--    if (verbose) cout << "Connecting consumer clients to proxies" << endl;
-+    if (verbose) std::cout << "Connecting consumer clients to proxies" << std::endl;
-     for (i = 0; i < 10; i++) {
--      if (verbose) cout << "Connecting Client # " << i+1 << endl;
-+      if (verbose) std::cout << "Connecting Client # " << i+1 << std::endl;
-       if (a_pull_c[i]->connect()) { goto error_return; }
-     }
--    if (verbose) cout << "Waiting for all 10 clients to finish" << endl;
-+    if (verbose) std::cout << "Waiting for all 10 clients to finish" << std::endl;
-     CORBA::Boolean a_com_err[10];
-     CORBA::Boolean com_err = 0;
-@@ -95,10 +95,10 @@
-     }
-     if (com_err && (num_events > 0)) {
--      if (verbose) cout << "Communication error -- probably did not process desired # of events" << endl;
-+      if (verbose) std::cout << "Communication error -- probably did not process desired # of events" << std::endl;
-     }
--    if (verbose) cout << "Cleaning up" << endl;
-+    if (verbose) std::cout << "Cleaning up" << std::endl;
-     for (i = 0; i < 10; i++) {
-       if (!a_com_err[i]) { a_pull_c[i]->cleanup(); }
-@@ -107,23 +107,23 @@
-     goto normal_return;
-   }
-   catch(CORBA::SystemException&) {                     
--    cerr << "main caught CORBA::SystemException." << endl;  
-+    std::cerr << "main caught CORBA::SystemException." << std::endl;  
-   }                                                    
-   catch(CORBA::Exception&) {                           
--    cerr << "main caught CORBA::Exception." << endl;        
-+    std::cerr << "main caught CORBA::Exception." << std::endl;        
-   }                                                    
- #if defined(__OMNIORB3__) || defined(__OMNIORB4__)
-   catch(omniORB::fatalException& fe) {                 
--    cerr << "main caught omniORB::fatalException:" << endl; 
--    cerr << "  file: " << fe.file() << endl;           
--    cerr << "  line: " << fe.line() << endl;           
--    cerr << "  mesg: " << fe.errmsg() << endl;         
-+    std::cerr << "main caught omniORB::fatalException:" << std::endl; 
-+    std::cerr << "  file: " << fe.file() << std::endl;           
-+    std::cerr << "  line: " << fe.line() << std::endl;           
-+    std::cerr << "  mesg: " << fe.errmsg() << std::endl;         
-   }                                                    
- #endif
-   catch(...) {                                         
-     // nameclt comment says it is a bad idea to report an error here 
-   }
--  cerr << "main caught an exception." << endl;       
-+  std::cerr << "main caught an exception." << std::endl;       
-  error_return:
-   // orb->destroy();
-   return -1;
-diff -Naur --exclude=CVS omniNotify-2.1.orig/include/ModFlexLexer.h omniNotify-2.1.new/include/ModFlexLexer.h
---- omniNotify-2.1.orig/include/ModFlexLexer.h 2003-10-23 08:39:11.000000000 +0400
-+++ omniNotify-2.1.new/include/ModFlexLexer.h  2009-06-28 17:03:57.000000000 +0400
-@@ -31,10 +31,10 @@
-  
- // XXX ModFlexLexer overrides the 2 yylex decls, from
- // XXX        int yylex()
--// XXX        int yylex( istream* new_in, ostream* new_out = 0 )
-+// XXX        int yylex( std::istream* new_in, std::ostream* new_out = 0 )
- // XXX to
- // XXX        int yylex(YYSTYPE* lvalp, RDI_PCState* ps)
--// XXX        int yylex(YYSTYPE* lvalp, RDI_PCState* ps, istream* new_in, ostream* new_out = 0 )
-+// XXX        int yylex(YYSTYPE* lvalp, RDI_PCState* ps, std::istream* new_in, std::ostream* new_out = 0 )
- // XXX 
- // XXX It therefore requires these 2 lines:
- #include "RDIConstraint.h"
-@@ -88,7 +88,8 @@
- // Never included before - need to define base class.
- #define __FLEX_LEXER_H
--#include <iostream.h>
-+#include <iostream>
-+
- extern "C++" {
-@@ -105,16 +106,16 @@
-       virtual void
-               yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
-       virtual struct yy_buffer_state*
--              yy_create_buffer( istream* s, int size ) = 0;
-+              yy_create_buffer( std::istream* s, int size ) = 0;
-       virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
--      virtual void yyrestart( istream* s ) = 0;
-+      virtual void yyrestart( std::istream* s ) = 0;
-       virtual int yylex(YYSTYPE* lvalp, RDI_PCState* ps) = 0;
-       //      virtual int yylex() = 0;
-       // Call yylex with new input/output sources.
--      int yylex(YYSTYPE* lvalp, RDI_PCState* ps, istream* new_in, ostream* new_out = 0 )
--      // int yylex( istream* new_in, ostream* new_out = 0 )
-+      int yylex(YYSTYPE* lvalp, RDI_PCState* ps, std::istream* new_in, std::ostream* new_out = 0 )
-+      // int yylex( std::istream* new_in, std::ostream* new_out = 0 )
-               {
-               switch_streams( new_in, new_out );
-               return yylex(lvalp, ps);
-@@ -122,8 +123,8 @@
-       // Switch to new input/output streams.  A nil stream pointer
-       // indicates "keep the current one".
--      virtual void switch_streams( istream* new_in = 0,
--                                      ostream* new_out = 0 ) = 0;
-+      virtual void switch_streams( std::istream* new_in = 0,
-+                                      std::ostream* new_out = 0 ) = 0;
-       int lineno() const              { return yylineno; }
-@@ -150,17 +151,17 @@
- public:
-       // arg_yyin and arg_yyout default to the cin and cout, but we
-       // only make that assignment when initializing in yylex().
--      yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 );
-+      yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 );
-       virtual ~yyFlexLexer();
-       void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
--      struct yy_buffer_state* yy_create_buffer( istream* s, int size );
-+      struct yy_buffer_state* yy_create_buffer( std::istream* s, int size );
-       void yy_delete_buffer( struct yy_buffer_state* b );
--      void yyrestart( istream* s );
-+      void yyrestart( std::istream* s );
-       virtual int yylex(YYSTYPE* lvalp, RDI_PCState* ps);
--      virtual void switch_streams( istream* new_in, ostream* new_out );
-+      virtual void switch_streams( std::istream* new_in, std::ostream* new_out );
- protected:
-       virtual int LexerInput( char* buf, int max_size );
-@@ -171,7 +172,7 @@
-       int yyinput();
-       void yy_load_buffer_state();
--      void yy_init_buffer( struct yy_buffer_state* b, istream* s );
-+      void yy_init_buffer( struct yy_buffer_state* b, std::istream* s );
-       void yy_flush_buffer( struct yy_buffer_state* b );
-       int yy_start_stack_ptr;
-@@ -186,8 +187,8 @@
-       yy_state_type yy_try_NUL_trans( yy_state_type current_state );
-       int yy_get_next_buffer();
--      istream* yyin;  // input source for default LexerInput
--      ostream* yyout; // output sink for default LexerOutput
-+      std::istream* yyin;     // input source for default LexerInput
-+      std::ostream* yyout;    // output sink for default LexerOutput
-       struct yy_buffer_state* yy_current_buffer;
-diff -Naur --exclude=CVS omniNotify-2.1.orig/lib/RDIParser_l.cc omniNotify-2.1.new/lib/RDIParser_l.cc
---- omniNotify-2.1.orig/lib/RDIParser_l.cc     2003-10-23 08:39:12.000000000 +0400
-+++ omniNotify-2.1.new/lib/RDIParser_l.cc      2009-06-28 17:06:28.000000000 +0400
-@@ -53,7 +53,7 @@
- #ifdef __cplusplus
- #include <stdlib.h>
--#include <iostream.h>
-+#include <iostream>
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -172,7 +172,7 @@
- struct yy_buffer_state
-       {
--      istream* yy_input_file;
-+      std::istream* yy_input_file;
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-@@ -1764,10 +1764,10 @@
-                       yy_start = 1;   /* first start state */
-               if ( ! yyin )
--                      yyin = &cin;
-+                      yyin = &std::cin;
-               if ( ! yyout )
--                      yyout = &cout;
-+                      yyout = &std::cout;
-               if ( ! yy_current_buffer )
-                       yy_current_buffer =
-@@ -2123,7 +2123,7 @@
-               } /* end of scanning one token */
-       } /* end of yylex */
--yyFlexLexer::yyFlexLexer( istream* arg_yyin, ostream* arg_yyout )
-+yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
-       {
-       yyin = arg_yyin;
-       yyout = arg_yyout;
-@@ -2157,7 +2157,7 @@
-       yy_delete_buffer( yy_current_buffer );
-       }
--void yyFlexLexer::switch_streams( istream* new_in, ostream* new_out )
-+void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
-       {
-       if ( new_in )
-               {
-@@ -2497,7 +2497,7 @@
-       }
--void yyFlexLexer::yyrestart( istream* input_file )
-+void yyFlexLexer::yyrestart( std::istream* input_file )
-       {
-       if ( ! yy_current_buffer )
-               yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
-@@ -2541,7 +2541,7 @@
-       }
--YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( istream* file, int size )
-+YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
-       {
-       YY_BUFFER_STATE b;
-@@ -2582,7 +2582,7 @@
- extern "C" int isatty YY_PROTO(( int ));
--void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, istream* file )
-+void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
-       {
-       yy_flush_buffer( b );
-@@ -2681,7 +2681,7 @@
- void yyFlexLexer::LexerError( yyconst char msg[] )
-       {
--      cerr << msg << '\n';
-+      std::cerr << msg << '\n';
-       exit( YY_EXIT_FAILURE );
-       }
diff --git a/config/patches/omninotify.002_64bits.patch b/config/patches/omninotify.002_64bits.patch
deleted file mode 100644 (file)
index ed9997a..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-diff -Naur omniNotify-orig/include/RDIstrstream.h omniNotify/include/RDIstrstream.h
---- omniNotify/include/RDIstrstream.h  2003-10-12 22:51:15.000000000 +0400
-+++ omniNotify/include/RDIstrstream.h  2006-09-28 17:44:20.000000000 +0400
-@@ -57,8 +57,10 @@
-   RDIstrstream& operator<<(const void *p);
-   RDIstrstream& operator<<(int n);
-   RDIstrstream& operator<<(unsigned int n);
-+#ifndef HAS_LongLong
-   RDIstrstream& operator<<(long n);
-   RDIstrstream& operator<<(unsigned long n);
-+#endif
-   RDIstrstream& operator<<(short n) {return operator<<((int)n);}
-   RDIstrstream& operator<<(unsigned short n) {return operator<<((unsigned int)n);}
- #ifdef HAS_LongLong
-diff -Naur omniNotify-orig/include/RDITimeWrappers.h omniNotify/include/RDITimeWrappers.h
---- omniNotify/include/RDITimeWrappers.h       2003-10-23 17:28:18.000000000 +0400
-+++ omniNotify/include/RDITimeWrappers.h       2006-09-28 18:10:41.000000000 +0400
-@@ -236,8 +236,11 @@
-   // pretty-printing of absolute local time -- no newline
-   void out_local(RDIstrstream& str) {
-     CORBA::ULong ts, tn;
--    get_posixbase_secs_nanosecs(ts, tn);
--    RDI_posixbase_out_time(str, ts, tn);
-+    unsigned long ts3, tn3;   
-+    get_posixbase_secs_nanosecs(ts3, tn3);
-+    RDI_posixbase_out_time(str, ts3, tn3);
-+    ts = (CORBA::ULong)ts3;
-+    tn = (CORBA::ULong)tn3;
-     str << " (local time)";
-   }
-@@ -396,8 +399,11 @@
-   // pretty-printing of absolute univ time -- no newline
-   void out_gmt(RDIstrstream& str) {
-     CORBA::ULong ts, tn;
--    get_gmt_posixbase_secs_nanosecs(ts, tn);
--    RDI_posixbase_out_time(str, ts, tn);
-+    unsigned long ts4, tn4;
-+    get_gmt_posixbase_secs_nanosecs(ts4, tn4);
-+    RDI_posixbase_out_time(str, ts4, tn4);
-+    ts = (CORBA::ULong)ts4;
-+    tn = (CORBA::ULong)tn4;
-     str << " (greenwich mean time)";
-   }
-   // static helpers for producing TimeBase::UtcT min and max
-diff -Naur omniNotify-orig/lib/RDIstrstream.cc omniNotify/lib/RDIstrstream.cc
---- omniNotify/lib/RDIstrstream.cc     2003-10-23 08:39:12.000000000 +0400
-+++ omniNotify/lib/RDIstrstream.cc     2006-09-28 16:56:03.000000000 +0400
-@@ -175,6 +175,7 @@
-   return *this;
- }
-+#ifndef HAS_LongLong
- RDIstrstream&
- RDIstrstream::operator<<(long n)
- {
-@@ -194,6 +195,7 @@
-   width_fill();
-   return *this;
- }
-+#endif
- #ifdef HAS_LongLong
- RDIstrstream&
-diff -Naur omniNotify-orig/lib/RDITimeWrappers.cc omniNotify/lib/RDITimeWrappers.cc
---- omniNotify/lib/RDITimeWrappers.cc  2003-10-23 08:39:12.000000000 +0400
-+++ omniNotify/lib/RDITimeWrappers.cc  2006-09-28 16:56:09.000000000 +0400
-@@ -147,7 +147,10 @@
- #define WHATFN "RDI_TimeT::fmt_local"
- const char *RDI_TimeT::fmt_local() {
-   CORBA::ULong ts, tm;
--  get_posixbase_secs_msecs(ts, tm);
-+  unsigned long ts2, tm2;
-+  get_posixbase_secs_msecs(ts2, tm2);
-+  ts = (CORBA::ULong)ts2;
-+  tm = (CORBA::ULong)tm2;
-   time_t secs_as_time_t = ts;
-   TW_SCOPE_LOCK(otime_lock, RDI_out_time_lock, "RDI_out_time", WHATFN);
-   RDI_TimeT_fmt_local_buf_idx = (RDI_TimeT_fmt_local_buf_idx + 1) % 10;
-diff -Naur omniNotify/mk/beforeauto.mk.in omniNotify/mk/beforeauto.mk.in
---- omniNotify/mk/beforeauto.mk.in     2003-10-29 22:18:36.000000000 +0300
-+++ omniNotify/mk/beforeauto.mk.in     2006-10-13 16:58:26.000000000 +0400
-@@ -95,9 +95,9 @@
- CPPFLAGS = $(DIR_CPPFLAGS) $(IMPORT_CPPFLAGS)
--CFLAGS = $(CDEBUGFLAGS) $(COPTIONS) $(CPPFLAGS)
-+CFLAGS = -m64 $(CDEBUGFLAGS) $(COPTIONS) $(CPPFLAGS)
--CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(CPPFLAGS)
-+CXXFLAGS = -m64 $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(CPPFLAGS)
- #############################################################################
index 9550f249e3db0579adad01bcea091ec062af057c..f035ade0c5dc00b43a51973c6d7053db56d4b747 100644 (file)
@@ -1,7 +1,10 @@
-diff -NaurwB opencv-2.4.6.1__0/cmake/OpenCVCompilerOptions.cmake opencv-2.4.6.1__1/cmake/OpenCVCompilerOptions.cmake
---- opencv-2.4.6.1__0/cmake/OpenCVCompilerOptions.cmake        2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1__1/cmake/OpenCVCompilerOptions.cmake        2017-03-15 17:06:11.464387144 +0300
-@@ -1,14 +1,14 @@
+diff -Naur opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake
+--- opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake    2016-12-23 15:54:44.000000000 +0300
++++ opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake   2019-11-14 17:51:34.265254970 +0300
+@@ -28,17 +28,17 @@
+   set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
+ endif()
 -if(MINGW OR (X86 AND UNIX AND NOT APPLE))
 -  # mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O2 instead
 +if(1 OR MINGW OR (X86 AND UNIX AND NOT APPLE))
diff --git a/config/patches/opencv.002_cmake.patch b/config/patches/opencv.002_cmake.patch
new file mode 100644 (file)
index 0000000..28d186e
--- /dev/null
@@ -0,0 +1,15 @@
+diff -Naur opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake
+--- opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake    2019-09-02 17:10:46.940341420 +0300
++++ opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake   2019-09-02 17:12:49.592741875 +0300
+@@ -18,9 +18,9 @@
+         message(STATUS "Unable to compile program with enabled ccache, reverting...")
+         set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${__OLD_RULE_LAUNCH_COMPILE}")
+       endif()
+-    else()
+-      message(STATUS "Looking for ccache - not found")
+     endif()
++  else()
++    message(STATUS "Looking for ccache - not found")
+   endif()
+ endif()
diff --git a/config/patches/opencv.002_gcc6.patch b/config/patches/opencv.002_gcc6.patch
deleted file mode 100644 (file)
index 79c8045..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-diff -Naur opencv-2.4.6.1_SRC_orig/cmake/OpenCVPCHSupport.cmake opencv-2.4.6.1_SRC_modif/cmake/OpenCVPCHSupport.cmake
---- opencv-2.4.6.1_SRC_orig/cmake/OpenCVPCHSupport.cmake       2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/cmake/OpenCVPCHSupport.cmake      2016-10-17 17:34:32.000000000 +0300
-@@ -19,7 +19,7 @@
-         ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
-         OUTPUT_VARIABLE gcc_compiler_version)
-     #MESSAGE("GCC Version: ${gcc_compiler_version}")
--    IF(gcc_compiler_version VERSION_GREATER "4.2.-1")
-+    IF(gcc_compiler_version VERSION_GREATER "4.2.-1" AND gcc_compiler_version VERSION_LESS "6.0.0")
-         SET(PCHSupport_FOUND TRUE)
-     ENDIF()
-diff -Naur opencv-2.4.6.1_SRC_orig/modules/contrib/src/chamfermatching.cpp opencv-2.4.6.1_SRC_modif/modules/contrib/src/chamfermatching.cpp
---- opencv-2.4.6.1_SRC_orig/modules/contrib/src/chamfermatching.cpp    2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/modules/contrib/src/chamfermatching.cpp   2016-10-17 18:11:47.000000000 +0300
-@@ -959,10 +959,8 @@
-     for (int y=0;y<h;++y) {
-         for (int x=0;x<w;++x) {
-             // initialize
--            if (&annotate_img!=NULL) {
--                annotate_img.at<Vec2i>(y,x)[0]=x;
--                annotate_img.at<Vec2i>(y,x)[1]=y;
--            }
-+          annotate_img.at<Vec2i>(y,x)[0]=x;
-+            annotate_img.at<Vec2i>(y,x)[1]=y;
-             uchar edge_val = edges_img.at<uchar>(y,x);
-             if( (edge_val!=0) ) {
-@@ -1005,11 +1003,9 @@
-             if (dt==-1 || dt>dist) {
-                 dist_img.at<float>(ny,nx) = dist;
-                 q.push(std::make_pair(nx,ny));
--
--                if (&annotate_img!=NULL) {
--                    annotate_img.at<Vec2i>(ny,nx)[0]=annotate_img.at<Vec2i>(y,x)[0];
--                    annotate_img.at<Vec2i>(ny,nx)[1]=annotate_img.at<Vec2i>(y,x)[1];
--                }
-+              
-+              annotate_img.at<Vec2i>(ny,nx)[0]=annotate_img.at<Vec2i>(y,x)[0];
-+              annotate_img.at<Vec2i>(ny,nx)[1]=annotate_img.at<Vec2i>(y,x)[1];
-             }
-         }
-     }
-@@ -1101,26 +1097,24 @@
-     float cost = (sum_distance/truncate_)/addr.size();
--    if (&orientation_img!=NULL) {
--        float* optr = orientation_img.ptr<float>(y)+x;
--        float sum_orientation = 0;
--        int cnt_orientation = 0;
--
--        for (size_t i=0;i<addr.size();++i) {
--
--            if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){
--                                if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) {
--                    sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i])));
--                    cnt_orientation++;
--                }
--            }
--        }
--        if (cnt_orientation>0) {
--                        cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation);
--        }
--
--    }
-+    float* optr = orientation_img.ptr<float>(y)+x;
-+    float sum_orientation = 0;
-+    int cnt_orientation = 0;
-+    
-+    for (size_t i=0;i<addr.size();++i) {
-+      
-+      if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){
-+      if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) {
-+        sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i])));
-+        cnt_orientation++;
-+      }
-+      }
-+    }
-+    
-+    if (cnt_orientation>0) {
-+      cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation);
-+    }    
-     if(cost > 0){
-         ChamferMatcher::Match* istance = new ChamferMatcher::Match();
-diff -Naur opencv-2.4.6.1_SRC_orig/modules/legacy/src/dpstereo.cpp opencv-2.4.6.1_SRC_modif/modules/legacy/src/dpstereo.cpp
---- opencv-2.4.6.1_SRC_orig/modules/legacy/src/dpstereo.cpp    2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/modules/legacy/src/dpstereo.cpp   2016-10-18 10:22:03.257968598 +0300
-@@ -76,8 +76,8 @@
-     uchar min_val, max_val;
- } _CvRightImData;
--#define CV_IMAX3(a,b,c) ((temp3 = (a) >= (b) ? (a) : (b)),(temp3 >= (c) ? temp3 : (c)))
--#define CV_IMIN3(a,b,c) ((temp3 = (a) <= (b) ? (a) : (b)),(temp3 <= (c) ? temp3 : (c)))
-+#define CV_IMAX3(a,b,c) (std::max(std::max((a), (b)), (c)))
-+#define CV_IMIN3(a,b,c) (std::min(std::min((a), (b)), (c)))
- static void icvFindStereoCorrespondenceByBirchfieldDP( uchar* src1, uchar* src2,
-                                                 uchar* disparities,
-@@ -87,7 +87,7 @@
-                                                 float  _param3, float _param4,
-                                                 float  _param5 )
- {
--    int     x, y, i, j, temp3;
-+    int     x, y, i, j;
-     int     d, s;
-     int     dispH =  maxDisparity + 3;
-     uchar  *dispdata;
-diff -Naur opencv-2.4.6.1_SRC_orig/modules/ts/include/opencv2/ts/ts_perf.hpp opencv-2.4.6.1_SRC_modif/modules/ts/include/opencv2/ts/ts_perf.hpp
---- opencv-2.4.6.1_SRC_orig/modules/ts/include/opencv2/ts/ts_perf.hpp  2013-07-10 15:49:00.000000000 +0400
-+++ opencv-2.4.6.1_SRC_modif/modules/ts/include/opencv2/ts/ts_perf.hpp 2016-10-17 17:52:29.000000000 +0300
-@@ -475,9 +475,16 @@
-     INSTANTIATE_TEST_CASE_P(/*none*/, fixture##_##name, params);\
-     void fixture##_##name::PerfTestBody()
-+   #if defined(_MSC_VER) && (_MSC_VER <= 1400)
-+    #define CV_PERF_TEST_MAIN_INTERNALS_ARGS(...)     \
-+      while (++argc >= (--argc,-1)) {__VA_ARGS__; break;} /*this ugly construction is needed for VS 2005*/
-+    #else
-+    #define CV_PERF_TEST_MAIN_INTERNALS_ARGS(...) \
-+      __VA_ARGS__;
-+    #endif
- #define CV_PERF_TEST_MAIN_INTERNALS(modulename, impls, ...) \
--    while (++argc >= (--argc,-1)) {__VA_ARGS__; break;} /*this ugly construction is needed for VS 2005*/\
-+    CV_PERF_TEST_MAIN_INTERNALS_ARGS(__VA_ARGS__) \
-     ::perf::Regression::Init(#modulename);\
-     ::perf::TestBase::Init(std::vector<std::string>(impls, impls + sizeof impls / sizeof *impls),\
-                            argc, argv);\
diff --git a/config/patches/paco++.001_gcc44_compat.patch b/config/patches/paco++.001_gcc44_compat.patch
deleted file mode 100644 (file)
index 79433d0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -NaurwB paco++-0.5.5__0/src/kernel/PaCO++_InterfaceParallel_impl.cc paco++-0.5.5__1/src/kernel/PaCO++_InterfaceParallel_impl.cc
---- paco++-0.5.5__0/src/kernel/PaCO++_InterfaceParallel_impl.cc        2009-03-27 11:35:04.000000000 +0300
-+++ paco++-0.5.5__1/src/kernel/PaCO++_InterfaceParallel_impl.cc        2017-03-15 17:13:17.906662733 +0300
-@@ -16,6 +16,7 @@
- //  
- //  Author : André RIBES (EDF R&D)
-+#include <unistd.h>
- #include "PaCO++_InterfaceParallel_impl.h"
- InterfaceParallel_impl::InterfaceParallel_impl(CORBA::ORB_ptr orb, 
diff --git a/config/patches/paraview.001_against_multiple_py_sv_thr.patch b/config/patches/paraview.001_against_multiple_py_sv_thr.patch
new file mode 100644 (file)
index 0000000..33059a2
--- /dev/null
@@ -0,0 +1,17 @@
+diff -ruN ParaView/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx ParaView_new/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
+--- ParaView/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx  2019-05-28 08:19:55.673481437 +0200
++++ ParaView_new/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx      2019-05-28 08:08:21.000000000 +0200
+@@ -260,8 +260,11 @@
+     vtkPythonInterpreter::InitializedOnce = true;
+ #ifdef VTK_PYTHON_FULL_THREADSAFE
+-    PyEval_InitThreads(); // safe to call this multiple time
+-    PyEval_SaveThread(); // release GIL
++    if(PyEval_ThreadsInitialized() == 0)
++    {
++      PyEval_InitThreads(); // safe to call this multiple time
++      PyEval_SaveThread(); // release GIL
++    }
+ #endif
+     // HACK: Calling PyRun_SimpleString for the first time for some reason results in
diff --git a/config/patches/paraview.001_vtk_targets.patch b/config/patches/paraview.001_vtk_targets.patch
deleted file mode 100644 (file)
index 2830ed5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/VTK/CMake/vtkModuleTop.cmake     2015-12-16 20:17:55.000000000 +0300
-+++ b/VTK/CMake/vtkModuleTop.cmake     2016-02-08 16:12:02.000000000 +0300
-@@ -503,6 +503,7 @@
-   get_property(VTK_TARGETS GLOBAL PROPERTY VTK_TARGETS)
-   if(VTK_TARGETS)
-     install(EXPORT ${VTK_INSTALL_EXPORT_NAME}  DESTINATION ${VTK_INSTALL_PACKAGE_DIR} FILE ${VTK_INSTALL_EXPORT_NAME}.cmake)
-+    install(EXPORT ${VTK_INSTALL_EXPORT_NAME}  DESTINATION ${VTK_INSTALL_PACKAGE_DIR} FILE VTKTargets.cmake)
-   else()
-     set(CMAKE_CONFIGURABLE_FILE_CONTENT "# No targets!")
-     configure_file(${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in
-
diff --git a/config/patches/paraview.002_statestorage_bug.patch b/config/patches/paraview.002_statestorage_bug.patch
new file mode 100644 (file)
index 0000000..0115740
--- /dev/null
@@ -0,0 +1,34 @@
+diff -Naur ParaView-5.6.0-bfaf7b82_SRC_orig/VTK/Rendering/OpenGL2/vtkStateStorage.h ParaView-5.6.0-bfaf7b82_SRC_modif/VTK/Rendering/OpenGL2/vtkStateStorage.h
+--- ParaView-5.6.0-bfaf7b82_SRC_orig/VTK/Rendering/OpenGL2/vtkStateStorage.h   2019-06-25 16:00:38.000000000 +0300
++++ ParaView-5.6.0-bfaf7b82_SRC_modif/VTK/Rendering/OpenGL2/vtkStateStorage.h  2019-07-12 11:32:00.000000000 +0300
+@@ -51,8 +51,11 @@
+ #include <algorithm>
+ #include <string>
++#include <vector>
+-#ifndef NDEBUG // a debug implementation
++// uncomment the folowing line to add in state debugging information
++//#define USE_STATE_DEBUGGING 1
++#ifdef USE_STATE_DEBUGGING
+ class VTKRENDERINGOPENGL2_EXPORT vtkStateStorage
+ {
+@@ -120,7 +123,7 @@
+   this->Storage.insert(this->Storage.end(), start, start + sizeof(T));
+ }
+-#else // release implementation
++#else // normal implementation
+ class VTKRENDERINGOPENGL2_EXPORT vtkStateStorage
+ {
+@@ -157,7 +160,7 @@
+   this->Storage.insert(this->Storage.end(), start, start + sizeof(T));
+ }
+-#endif // Release implementation
++#endif // normal implementation
+ #endif // vtkStateStorage_h
diff --git a/config/patches/paraview.002_visitbridge.patch b/config/patches/paraview.002_visitbridge.patch
deleted file mode 100644 (file)
index dd460f1..0000000
+++ /dev/null
@@ -1,1822 +0,0 @@
---- ParaView-5.0.1_SRC.orig/Utilities/VisItBridge/databases/paraDIS/paraDIS_lib/paradis.C      2016-05-11 15:00:58.000000000 +0300
-+++ ParaView-5.0.1_SRC.patch/Utilities/VisItBridge/databases/paraDIS/paraDIS_lib/paradis.C     2016-05-11 15:04:14.000000000 +0300
-@@ -203,28 +203,28 @@
-   rclib::Point<float> FullNode::mBoundsMin, FullNode::mBoundsMax, FullNode::mBoundsSize; 
-   string FullNode::mTraceFileBasename; 
--  vector<uint32_t> FullNode::mTraceNodes; 
--  std::map<uint32_t, FullNode *>  FullNode::mFullNodes;  
-+  vector<boost::uint32_t> FullNode::mTraceNodes; 
-+  std::map<boost::uint32_t, FullNode *>  FullNode::mFullNodes;  
-   vector<FullNode*> FullNode::mFullNodeVector; 
--  uint32_t FullNode::mNextNodeID = 0; 
-+  boost::uint32_t FullNode::mNextNodeID = 0; 
--  std::map<uint32_t, ArmSegment *> ArmSegment::mArmSegments; 
-+  std::map<boost::uint32_t, ArmSegment *> ArmSegment::mArmSegments; 
-   vector<ArmSegment*> ArmSegment::mArmSegmentVector; 
--  uint32_t ArmSegment::mNextSegmentID = 0; 
-+  boost::uint32_t ArmSegment::mNextSegmentID = 0; 
-   double ArmSegment::mSegLen = 0 ;
--  uint32_t ArmSegment::mNumClassified = 0; 
--  uint32_t ArmSegment::mNumWrapped = 0;
--  uint32_t ArmSegment::mNumArmSegmentsMeasured=0; 
-+  boost::uint32_t ArmSegment::mNumClassified = 0; 
-+  boost::uint32_t ArmSegment::mNumWrapped = 0;
-+  boost::uint32_t ArmSegment::mNumArmSegmentsMeasured=0; 
-   
-   vector<Arm *> Arm::mArms;
--  vector<int32_t> Arm::mTraceArms; 
--  uint8_t Arm::mTraceDepth; 
-+  vector<boost::int32_t> Arm::mTraceArms; 
-+  boost::uint8_t Arm::mTraceDepth; 
-   string Arm::mTraceFileBasename; 
-   double Arm::mLongestLength = 0.0; 
-   double Arm::mDecomposedLength = 0.0; 
--  vector<int32_t> Arm::mNumDecomposed(7, 0); // statistics
--  int32_t Arm::mNumDestroyedInDetachment = 0; 
-+  vector<boost::int32_t> Arm::mNumDecomposed(7, 0); // statistics
-+  boost::int32_t Arm::mNumDestroyedInDetachment = 0; 
-   double Arm::mTotalArmLengthBeforeDecomposition = 0.0;
-   double Arm::mTotalArmLengthAfterDecomposition = 0.0;  
-   double Arm::mThreshold = -1; 
-@@ -236,7 +236,7 @@
-   //===========================================================================
--  void WriteTraceFiles(string filebase, string description, vector<Arm*>&arms, vector<uint32_t> &armdepths, vector<int> &action) {
-+  void WriteTraceFiles(string filebase, string description, vector<Arm*>&arms, vector<boost::uint32_t> &armdepths, vector<int> &action) {
-     // ===================================
-     // FIRST, PRINT THE TEXT FILE
-     string filename = filebase + ".txt"; 
-@@ -249,8 +249,8 @@
-     }
-     textfile << "Tracefile for " << description << ", written by paraDIS_lib" << endl; 
-     textfile.flush(); 
--    uint32_t level = 0; 
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    boost::uint32_t level = 0; 
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       if (armdepths[arm] == level) { // this is weird, don't worry
-         textfile << str(boost::format("\n****************\nARM LEVEL %1%\n****************\n\n")%level); 
-         textfile.flush(); 
-@@ -285,23 +285,23 @@
-   
-     // next, the points
-     vector<FullNode *>nodes; 
--    vector<uint32_t>numArmNodes; 
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    vector<boost::uint32_t>numArmNodes; 
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       vector<FullNode *> armnodes = arms[arm]->GetNodes(); 
-       numArmNodes.push_back(armnodes.size()); 
-       nodes.insert(nodes.end(), armnodes.begin(), armnodes.end()); 
-     }
--    uint32_t armnum = 0, armnode = 0; 
-+    boost::uint32_t armnum = 0, armnode = 0; 
-     vector<float> previous; 
-     vtkfile << str(boost::format("POINTS %d float") % nodes.size()) << endl;
--    for (uint32_t point = 0; point < nodes.size(); point++) {
-+    for (boost::uint32_t point = 0; point < nodes.size(); point++) {
-       if (armnode == numArmNodes[armnum]) {
-         armnode = 0;         
-         armnum++; 
-       } 
-       vector<float> xyz = nodes[point]->GetLocation(); 
-       if (point > 0) {
--        for (uint32_t i=0; i<3; i++) {
-+        for (boost::uint32_t i=0; i<3; i++) {
-           if (xyz[i] - previous[i] > FullNode::mBoundsSize[i]/2){
-             xyz[i] -= FullNode::mBoundsSize[i]; 
-           } 
-@@ -323,10 +323,10 @@
-     // next the lines
-     int numlines = nodes.size() - arms.size(); 
-     vtkfile << str(boost::format("LINES %d %d") % numlines % (3*numlines)) << endl;
--    uint32_t currentIndex = 0; 
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    boost::uint32_t currentIndex = 0; 
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       if (numArmNodes[arm]) {
--        for (uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-+        for (boost::uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-           vtkfile << str(boost::format("2 %d %d")% currentIndex % (currentIndex+1)) << endl;
-           currentIndex++; 
-         }
-@@ -340,12 +340,12 @@
-     vtkfile << "SCALARS armnum int" << endl;
-     vtkfile << "LOOKUP_TABLE default" << endl;
-     vtkfile.flush(); 
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       if (!numArmNodes[arm]) {
-         continue;
-       }
--      uint32_t armnum = arms[arm]->mArmID;
--      for (uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-+      boost::uint32_t armnum = arms[arm]->mArmID;
-+      for (boost::uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-         vtkfile << armnum << " " ; 
-         vtkfile.flush(); 
-       }        
-@@ -355,12 +355,12 @@
-     // next the burgers type for each line
-     vtkfile << "SCALARS burgers_type int" << endl;
-     vtkfile << "LOOKUP_TABLE default" << endl;
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       if (!numArmNodes[arm]) {
-         continue;
-       }
--      uint32_t armtype = arms[arm]->GetBurgersType(); 
--      for (uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-+      boost::uint32_t armtype = arms[arm]->GetBurgersType(); 
-+      for (boost::uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-         vtkfile << armtype << " " ; 
-         vtkfile.flush(); 
-       }
-@@ -371,11 +371,11 @@
-     // next the arm depths for each line
-     vtkfile << "SCALARS BFS_depth int" << endl;
-     vtkfile << "LOOKUP_TABLE default" << endl;
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       if (!numArmNodes[arm]) {
-         continue;
-       }
--      for (uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-+      for (boost::uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-         vtkfile << armdepths[arm] << " " ; 
-       }
-     }
-@@ -384,11 +384,11 @@
-     // next the "action" for each line
-     vtkfile << "SCALARS action int" << endl;
-     vtkfile << "LOOKUP_TABLE default" << endl;
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       if (!numArmNodes[arm]) {
-         continue;
-       }
--      for (uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-+      for (boost::uint32_t nodenum = 0; nodenum < numArmNodes[arm]-1; nodenum++) {
-         vtkfile << action[arm] << " " ; 
-       }
-     }
-@@ -421,14 +421,14 @@
-     // next, the points
-     armnum = 0; armnode = 0; 
-     vtkfile << str(boost::format("POINTS %d float") % nodes.size()) << endl;
--    for (uint32_t point = 0; point < nodes.size(); point++) {
-+    for (boost::uint32_t point = 0; point < nodes.size(); point++) {
-       if (armnode == numArmNodes[armnum]) {
-         armnode = 0;         
-         armnum++; 
-       } 
-       vector<float> xyz = nodes[point]->GetLocation(); 
-       if (point > 0) {
--        for (uint32_t i=0; i<3; i++) {
-+        for (boost::uint32_t i=0; i<3; i++) {
-           if (xyz[i] - previous[i] > FullNode::mBoundsSize[i]/2){
-             xyz[i] -= FullNode::mBoundsSize[i]; 
-           } 
-@@ -449,7 +449,7 @@
-   
-     // now node vertices to allow node plotting
-     vtkfile << str(boost::format("VERTICES %d %d") % nodes.size() % (2*nodes.size())) << endl;
--    for (uint32_t point = 0; point < nodes.size(); point++) {
-+    for (boost::uint32_t point = 0; point < nodes.size(); point++) {
-       vtkfile << "1 " << point << endl; 
-       vtkfile.flush(); 
-     } 
-@@ -459,8 +459,8 @@
-     vtkfile << str(boost::format("CELL_DATA %d") % nodes.size()) << endl;
-     vtkfile << "SCALARS node_index int" << endl;
-     vtkfile << "LOOKUP_TABLE default" << endl;
--    for (uint32_t point = 0; point < nodes.size(); point++) {
--      uint32_t nodeID = nodes[point]->GetIndex(); 
-+    for (boost::uint32_t point = 0; point < nodes.size(); point++) {
-+      boost::uint32_t nodeID = nodes[point]->GetIndex(); 
-       vtkfile <<  nodeID << " "; 
-       vtkfile.flush(); 
-     } 
-@@ -558,7 +558,7 @@
-   
-   //===========================================================================
-   void FullNode::PrintAllNodeTraces(string stepname) {
--    for (vector<uint32_t>::iterator nodeid = FullNode::mTraceNodes.begin(); 
-+    for (vector<boost::uint32_t>::iterator nodeid = FullNode::mTraceNodes.begin(); 
-          nodeid != mTraceNodes.end(); nodeid++) {
-       if (FullNode::mFullNodes.find(*nodeid) == FullNode::mFullNodes.end()) {
-          if (*nodeid < FullNode::mFullNodes.size()) {
-@@ -582,7 +582,7 @@
-     dbprintf(5, "Node::WriteTraceFiles(node %d)\n", mNodeIndex); 
-     string filebase = str(boost::format("%s-%s-Node_%d") % mTraceFileBasename % stepname % mNodeIndex); 
-     vector<Arm *> arms; 
--    vector<uint32_t> armdepths; 
-+    vector<boost::uint32_t> armdepths; 
-     vector<int> action; 
-     
-     if (mNeighborArms.size() ) {
-@@ -672,7 +672,7 @@
-         s += "<NONE>"; 
-       } else {
-        s += "<"; 
--       uint32_t i=0; while (i < mNeighborSegments.size()) {
-+       boost::uint32_t i=0; while (i < mNeighborSegments.size()) {
-          if (mNeighborSegments[i]) {
-            s += intToString(mNeighborSegments[i]->GetID()); 
-          } else {
-@@ -688,7 +688,7 @@
-       }
-     } else {
-        s += "\n"; 
--     uint32_t i=0; while (i < mNeighborSegments.size()) {
-+     boost::uint32_t i=0; while (i < mNeighborSegments.size()) {
-         s += INDENT(indent) + "neighbor " + intToString(i) + ": "; 
-         if (mNeighborSegments[i]) {
-           s+= mNeighborSegments[i]->Stringify(indent+1);
-@@ -719,7 +719,7 @@
-       while (neighbor--) {
-         const ArmSegment *theSegment = 
-           dynamic_cast<const ArmSegment *>(mNeighborSegments[neighbor]);
--        int8_t btype =  theSegment->GetBurgersType(); 
-+        boost::int8_t btype =  theSegment->GetBurgersType(); 
-         if (btypes[btype] || btype < 0) {
-           continue; //not a monster, we're done
-         }
-@@ -765,12 +765,12 @@
-    vector<Arm*> armpair(2,NULL); 
-     vector<bool> matched(mNeighborSegments.size(), false); 
-     // first, identify looped cross arms
--    for (uint32_t segnum = 0; segnum < mNeighborSegments.size()-1; segnum++) {
-+    for (boost::uint32_t segnum = 0; segnum < mNeighborSegments.size()-1; segnum++) {
-       if (!matched[segnum] &&
-           mNeighborSegments[segnum]->mParentArm->mTerminalNodes.size() == 1) {
-         dbprintf(4, str(boost::format("FullNode::IdentifyCrossArms(): node(%1%): found crossing loop arm %2%.\n") % GetNodeIDString() % mNeighborSegments[segnum]->mParentArm->mArmID).c_str()); 
-         armpair[0] = NULL;
--        for (uint32_t match = segnum+1; match < mNeighborSegments.size(); ++match) {
-+        for (boost::uint32_t match = segnum+1; match < mNeighborSegments.size(); ++match) {
-           if (!matched[match] && 
-               mNeighborSegments[match]->mParentArm == mNeighborSegments[segnum]->mParentArm ) {
-             matched[segnum] = true; 
-@@ -792,10 +792,10 @@
-     
-     
-     // next, identify non-looped cross arms
--    for (uint32_t segnum = 0; segnum < mNeighborSegments.size()-1; ++segnum) {
--      int8_t btype = mNeighborSegments[segnum]->GetBurgersType(); 
-+    for (boost::uint32_t segnum = 0; segnum < mNeighborSegments.size()-1; ++segnum) {
-+      boost::int8_t btype = mNeighborSegments[segnum]->GetBurgersType(); 
-       if (!matched[segnum]) {
--        for (uint32_t match = segnum+1; match < mNeighborSegments.size(); ++match) {
-+        for (boost::uint32_t match = segnum+1; match < mNeighborSegments.size(); ++match) {
-           if (!matched[match] && 
-               mNeighborSegments[match]->GetBurgersType() == btype) {
-             matched[match] = matched[segnum] = true; 
-@@ -821,7 +821,7 @@
-   void FullNode::DetachCrossArms(void) {
-     
-     vector <vector<Arm *> >crossarms = IdentifyCrossArms(); 
--    for (uint32_t armpair = 0; armpair < crossarms.size(); ++armpair) {
-+    for (boost::uint32_t armpair = 0; armpair < crossarms.size(); ++armpair) {
-       crossarms[armpair][0]->mExtendOrDetach = false; 
-       if (crossarms[armpair][1] == NULL) {
-         crossarms[armpair][0]->DetachLoopFromNode(this); 
-@@ -844,7 +844,7 @@
-     } else {
-       s += "(NONE)\n"; 
-     }
--    uint32_t epnum = 0; 
-+    boost::uint32_t epnum = 0; 
-     while (epnum < 2) {
-       s+= INDENT(indent+1) + "ep "+intToString(epnum)+": "; 
-       if (mEndpoints[epnum]) s+= mEndpoints[epnum]->Stringify(0); 
-@@ -985,17 +985,17 @@
-  //===========================================================================
--  int8_t ArmSegment::GetMNType(void) const { 
-+  boost::int8_t ArmSegment::GetMNType(void) const { 
-     return mParentArm->mArmType; 
-   } 
-  //===========================================================================
--  uint32_t ArmSegment::GetArmID(void) {    
-+  boost::uint32_t ArmSegment::GetArmID(void) {    
-     return mParentArm->mArmID;
-   }
-   //===========================================================================
--  uint32_t ArmSegment::GetMetaArmID(void) {
-+  boost::uint32_t ArmSegment::GetMetaArmID(void) {
-     if (!mParentArm) {
-       dbprintf(0, "ERROR: GetMetaArmID() called on parentless segment.\n"); 
-       return METAARM_UNKNOWN; 
-@@ -1004,7 +1004,7 @@
-   }
-   //===========================================================================
--  uint8_t ArmSegment::GetMetaArmType(void) {
-+  boost::uint8_t ArmSegment::GetMetaArmType(void) {
-     if (!mParentArm) {
-       dbprintf(0, "ERROR: GetMetaArmType() called on parentless segment.\n"); 
-       return METAARM_UNKNOWN; 
-@@ -1021,7 +1021,7 @@
-    */ 
-   void Arm::WriteTraceFiles(string stepname) {
-     bool trace = false; 
--    for (uint32_t n = 0; n<mTraceArms.size(); n++) {
-+    for (boost::uint32_t n = 0; n<mTraceArms.size(); n++) {
-       if (mArmID == mTraceArms[n]) 
-         trace = true; 
-     }
-@@ -1031,7 +1031,7 @@
-     string filebase = str(boost::format("%s-%s-arm_%d") % mTraceFileBasename % stepname % mArmID); 
-     
-     vector<Arm *> arms; 
--    vector<uint32_t> armdepths; 
-+    vector<boost::uint32_t> armdepths; 
-     vector<int> action; 
-     FindBFSNeighbors(arms, armdepths, action); 
-     string description = str(boost::format("arm %1%")%mArmID); 
-@@ -1040,21 +1040,21 @@
-   }
-   //===========================================================================
--  void Arm::FindBFSNeighbors(vector<Arm *> &arms, vector<uint32_t> &armdepths, vector<int> &action) {
-+  void Arm::FindBFSNeighbors(vector<Arm *> &arms, vector<boost::uint32_t> &armdepths, vector<int> &action) {
-     arms.push_back(this); 
-     armdepths.push_back(0);
-     action.push_back(2); 
-     
-     // first, collect the list of arms in BFS order:
--    uint32_t armnum = 0;
--    uint32_t depth = 0; 
-+    boost::uint32_t armnum = 0;
-+    boost::uint32_t depth = 0; 
-     while (depth++ < mTraceDepth && armnum < arms.size()) {
--      uint32_t lastInLevel = arms.size(); 
-+      boost::uint32_t lastInLevel = arms.size(); 
-       for (; armnum < lastInLevel; armnum++) {
-        // append arm's neighbors onto arms
-         Arm *arm = arms[armnum]; 
-         arm->mSeen = true; 
--        uint32_t numneighbors = arm->GetNumNeighborArms(); 
-+        boost::uint32_t numneighbors = arm->GetNumNeighborArms(); 
-         dbprintf(5, "Arm::WriteTraceFiles(arm %d): arm %d, depth %d: looking at %d neighbor arms\n", mArmID, arm->mArmID, depth, numneighbors); 
-        while (numneighbors--) {
-           Arm *nei = arm->GetNeighborArm(numneighbors); 
-@@ -1072,7 +1072,7 @@
-         }
-       }
-     } 
--    for (uint32_t arm = 0; arm < arms.size(); arm++) {
-+    for (boost::uint32_t arm = 0; arm < arms.size(); arm++) {
-       arms[arm]->mSeen = false; 
-     }
-     return ;
-@@ -1176,7 +1176,7 @@
-     
-  //===========================================================================
--  uint32_t Arm::GetMetaArmID(void) {
-+  boost::uint32_t Arm::GetMetaArmID(void) {
-     if (!mParentMetaArm) {
-       dbprintf(0, "Error: GetMetaArmID() called on parentless arm.\n");
-       return METAARM_UNKNOWN; 
-@@ -1185,7 +1185,7 @@
-   }
-  //===========================================================================
--  uint8_t Arm::GetMetaArmType(void) {
-+  boost::uint8_t Arm::GetMetaArmType(void) {
-     if (!mParentMetaArm) {
-       dbprintf(0, "Error: GetMetaArmType() called on parentless arm.\n");
-       return METAARM_UNKNOWN; 
-@@ -1317,7 +1317,7 @@
-       startNode = mTerminalNodes[0];       
-     }
--    uint32_t startnodenum = 0; 
-+    boost::uint32_t startnodenum = 0; 
-     for (startnodenum = 0; startnodenum < mTerminalNodes.size(); startnodenum++) {
-       if (startNode == mTerminalNodes[startnodenum]) {
-         break;
-@@ -1750,7 +1750,7 @@
-     int btype = GetBurgersType(); 
-     FullNode *sourceNode = sharedNode; // for iterating through source arm 
-     dbprintf(6, "ExtendBySegments(%d): iterating through %d source segments\n", mArmID, sourceSegments.size()); 
--    uint32_t seg = 0; 
-+    boost::uint32_t seg = 0; 
-     while (seg < sourceSegments.size()) {
-       sourceNode = sourceSegments[seg]->GetOtherEndpoint(sourceNode);
-       
-@@ -1864,7 +1864,7 @@
-   */
-   bool Arm::Decompose(int energy) {
-     
--    int8_t burgtype = GetBurgersType();
-+    boost::int8_t burgtype = GetBurgersType();
-     if (burgtype/10 != energy) 
-       return false; // not yet
-@@ -1880,7 +1880,7 @@
-     // This will be the one with the least number of neighbors.  If two terminal nodes have the same number of neighbors, use the one that has the lowest maximum energy level.  
-     // I believe this greedy algorithm results in the global minimum decomposition too.  
--    uint32_t numTermNodes = mTerminalNodes.size();
-+    boost::uint32_t numTermNodes = mTerminalNodes.size();
-     vector<int> maxEnergies; // we'll analyze this later. 
-     vector<int> numneighbors; 
-     vector<int> extendedArmIDs; 
-@@ -1903,7 +1903,7 @@
-     WriteTraceFiles("1-before-detachment"); 
-       
-     // Actually perform detachment
--    for (uint32_t n = 0; n<mTerminalNodes.size(); n++) {
-+    for (boost::uint32_t n = 0; n<mTerminalNodes.size(); n++) {
-       mTerminalNodes[n]->DetachCrossArms(); 
-     }
-@@ -1915,7 +1915,7 @@
-     WriteTraceFiles("2-before-decomposition"); 
-     int sharedNodeNum = -1; 
--    for (uint32_t termnode = 0; termnode < numTermNodes; termnode++) {
-+    for (boost::uint32_t termnode = 0; termnode < numTermNodes; termnode++) {
-       numneighbors.push_back(mTerminalNodes[termnode]->mNeighborArms.size()); 
-       maxEnergies.push_back(0); 
-       int neighbor = 0;
-@@ -1972,7 +1972,7 @@
-     double decomposedLength = 0; 
-     neighbornum = neighborArms.size();
-     vector<ArmSegment*> sourceSegments = this->GetSegments(sharedNode); 
--    uint32_t decomposed = 0;
-+    boost::uint32_t decomposed = 0;
-     while (neighbornum--) {
-       Arm *neighborArm = neighborArms[neighbornum]; 
-       if (neighborArm != this) { 
-@@ -2084,7 +2084,7 @@
-   string MetaArm::Stringify(int indent) {
-     int atype = mMetaArmType;
-     string s = INDENT(indent) + str(boost::format("(MetaArm): mLength: %1%, mMetaArmType: %2% (%3%), mMetaArmID: %4%\n\n")%mLength % atype % MetaArmTypeNames(mMetaArmType) % mMetaArmID); 
--    uint32_t i = 0; 
-+    boost::uint32_t i = 0; 
-     while (i<mTerminalNodes.size()) {
-       string s2 = mTerminalNodes[i]->Stringify(indent+1);
-       s += INDENT(indent+1);
-@@ -2155,7 +2155,7 @@
-     else {
-       dbprintf(4, "Candidate is type 200 and we shall try to recurse..\n", mMetaArmID);
-     }
--    uint32_t nodenum = candidate->mTerminalNodes.size(); 
-+    boost::uint32_t nodenum = candidate->mTerminalNodes.size(); 
-     if (nodenum < 2) {
-       dbprintf(0, "Error:  Found candidate with %d terminal node(s), but we already tested for loops. \n", mMetaArmID, nodenum); 
-       errexit1; 
-@@ -2175,7 +2175,7 @@
-         return true; 
-       }
--      uint32_t neighbornum = node->mNeighborArms.size(); 
-+      boost::uint32_t neighbornum = node->mNeighborArms.size(); 
-       dbprintf(4, "FindEndpoint(metaarm %d): Candidate has N node on other end. Recursing on %d neighbors.\n", mMetaArmID, neighbornum); 
-       Arm *foundseed = NULL; 
-       while (neighbornum--) {
-@@ -2280,11 +2280,11 @@
-     // Best algorithm: 
-     
-     // A metaarm can continue in up to two directions, call them paths.  
--    //uint32_t pathsTaken = 0; 
-+    //boost::uint32_t pathsTaken = 0; 
-     
-     // First, check each terminal node of the arm.  If it's a monster, add it as a meta arm terminal node and mark off a path.  If it's not, then recurse on it to extend the arm.  
-     dbprintf(4, "FindEndpoints(metaarm %d) (seed %d): Checking terminal nodes of seed arm.\n", mMetaArmID, seed->mArmID); 
--    uint32_t nodenum = 0; // seed->mTerminalNodes.size(); 
-+    boost::uint32_t nodenum = 0; // seed->mTerminalNodes.size(); 
-     bool seedIsTerminal = false; 
-     while (nodenum <  seed->mTerminalNodes.size() && mMetaArmType != METAARM_LOOP_111) {
-       FullNode * node = seed->mTerminalNodes[nodenum]; 
-@@ -2444,7 +2444,7 @@
-     vector<rclib::Point<float> > points; 
-     if (mMetaArmType == METAARM_LOOP_111 || mMetaArmType == METAARM_LOOP_HIGH_ENERGY) {
-       vector<FullNode *>nodes = GetNodes(); 
--      uint32_t  p = 0; 
-+      boost::uint32_t  p = 0; 
-       while (p < nodes.size()-1) {
-         vector<float> f = nodes[p]->GetLocation();
-         points.push_back(f);
-@@ -2507,11 +2507,11 @@
-     double armLengths[11] = {0}, totalArmLength=0; 
-     
-    
--    uint32_t numArms[11] = {0};  // number of arms of each type
--    uint32_t totalArms=0;
-+    boost::uint32_t numArms[11] = {0};  // number of arms of each type
-+    boost::uint32_t totalArms=0;
- #if LINKED_LOOPS
-     double linkedLoopLength = 0; 
--    uint32_t numLinkedLoops = 0; 
-+    boost::uint32_t numLinkedLoops = 0; 
- #endif
-     
-     double *armLengthBins = NULL; 
-@@ -2532,7 +2532,7 @@
-     };
-     
-     double shortLengths[16] = {0}, longLengths[16]={0}; 
--    uint32_t numShortArms[16]={0}, numLongArms[16]={0}; 
-+    boost::uint32_t numShortArms[16]={0}, numLongArms[16]={0}; 
-     vector<Arm *>::iterator armpos = Arm::mArms.begin(), armend = Arm::mArms.end(); 
-     while (armpos != armend) { 
-@@ -2543,7 +2543,7 @@
-         continue; 
-       }
-       if (mThreshold >= 0) {
--        int8_t btype = (*armpos)->GetBurgersType(); 
-+        boost::int8_t btype = (*armpos)->GetBurgersType(); 
-         if (!btype) {
-           printf("Error:  armpos has no terminal segments!\n"); 
-         }
-@@ -2683,9 +2683,9 @@
-     fprintf(thefile, "========================================\n\n\n"); 
- #ifdef DEBUG_SEGMENTS
-     // check against segment lengths: 
--    uint32_t numSegments[11] = {0}, totalSegments=0, culledSegments=0;  // number of arms of each type
-+    boost::uint32_t numSegments[11] = {0}, totalSegments=0, culledSegments=0;  // number of arms of each type
-     double segmentLengths[11] = {0}, totalSegmentLength=0, culledLength=0; 
--    for (std::map<uint32_t, ArmSegment *>::iterator segpos = ArmSegments.begin(); segpos != mArmSegments.end(); ++segpos) {
-+    for (std::map<boost::uint32_t, ArmSegment *>::iterator segpos = ArmSegments.begin(); segpos != mArmSegments.end(); ++segpos) {
-       ArmSegment *seg = segpos->second; 
-       double length = seg->GetLength(); 
-       // Cull out half the wrapped segments in such a way that for each culled, there is an identical one remaining:
-@@ -2849,7 +2849,7 @@
-   }
-   
-   //====================================================================== 
--  void DataSet::CopyNodeFromFile(uint32_t &lineno, map<uint64_t, FullNode*> &nodehash, std::ifstream &datafile, std::ofstream &tagfile) {
-+  void DataSet::CopyNodeFromFile(boost::uint32_t &lineno, map<boost::uint64_t, FullNode*> &nodehash, std::ifstream &datafile, std::ofstream &tagfile) {
-     // read the first line of the next node in the file: 
-     char comma;
-     int domainID, nodeID; 
-@@ -2923,7 +2923,7 @@
-   }
-   //====================================================================== 
--  void DataSet::ReadMinimalNodeFromFile(uint32_t &lineno, std::ifstream &datafile) {
-+  void DataSet::ReadMinimalNodeFromFile(boost::uint32_t &lineno, std::ifstream &datafile) {
-     MinimalNode theNode;
-     char comma;
-     int domainID, nodeID; 
-@@ -2997,8 +2997,8 @@
-     STARTPROGRESS();
-     dbprintf(2, "Size of a minimal_node is %d bytes\n",  sizeof(MinimalNode));
-     char linebuf[2048]="";
--    uint32_t nodenum = 0;
--    uint32_t lineno = 1; 
-+    boost::uint32_t nodenum = 0;
-+    boost::uint32_t lineno = 1; 
-     ReadBounds(); 
-     try {
-       ifstream datafile(mDataFilename.c_str()); 
-@@ -3127,7 +3127,7 @@
-     debugfile << "subspace bounds: " << mSubspaceMin.Stringify() << ", " << mSubspaceMax.Stringify() << endl; 
-     std::vector<MinimalNode>::iterator pos = MinimalNode::mMinimalNodes.begin(),
-       endpos = MinimalNode::mMinimalNodes.end(); 
--    uint32_t nodenum = 0; 
-+    boost::uint32_t nodenum = 0; 
-     while (pos != endpos) {
-       debugfile << "MinimalNode " << nodenum++ <<":\n"<< pos->Stringify(false) << endl;
-       debugfile << "***************************************************" << endl << endl; 
-@@ -3412,7 +3412,7 @@
-     theTimer.start(); 
-     dbprintf(2, "Size of a full node is %d bytes, so expect to use %d megabytes\n",  sizeof(FullNode), MinimalNode::mMinimalNodes.size()*sizeof(FullNode)/1000000);
-     char linebuf[2048]="";
--    uint32_t nodenum = 0;
-+    boost::uint32_t nodenum = 0;
-     try {
-       ifstream datafile(mDataFilename.c_str()); 
-       if (!datafile.good()){
-@@ -3435,7 +3435,7 @@
-         throw string( "Error: cannot find first node in data file");
-       }
-       STARTPROGRESS(); 
--      uint32_t nodelimit = MinimalNode::mMinimalNodes.size(); 
-+      boost::uint32_t nodelimit = MinimalNode::mMinimalNodes.size(); 
-       std::vector<MinimalNode>::reverse_iterator rpos = MinimalNode::mMinimalNodes.rbegin(), rend = MinimalNode::mMinimalNodes.rend(); 
-       //dbprintf(2, "\n"); 
-       while (datafile.good() && nodenum < nodelimit && rpos != rend) {
-@@ -3462,10 +3462,10 @@
-   //===========================================================================
-   void DataSet::WrapBoundarySegments(void) {
-     STARTPROGRESS();
--    uint32_t segnum = 0, totalsegs = ArmSegment::mArmSegments.size(); 
-+    boost::uint32_t segnum = 0, totalsegs = ArmSegment::mArmSegments.size(); 
-     ArmSegment *newSegment = NULL; 
-     FullNode *newnode0, *newnode1; 
--    for (map <uint32_t, ArmSegment *>::const_iterator segpos = ArmSegment::mArmSegments.begin(); segpos != ArmSegment::mArmSegments.end(); segpos++, segnum++) {      
-+    for (map <boost::uint32_t, ArmSegment *>::const_iterator segpos = ArmSegment::mArmSegments.begin(); segpos != ArmSegment::mArmSegments.end(); segpos++, segnum++) {      
-       ArmSegment *seg = segpos->second; 
-       if (seg && seg->Wrap(mDataSize, newSegment, newnode0, newnode1)) {
-         newnode0->SetWrappedCopy(true); 
-@@ -3483,11 +3483,11 @@
-   //===========================================================================
-   string DataSet::GetMonsterNodeSummary(void) {
--    vector<uint32_t> monsterTypes(1); 
--    for (std::map<uint32_t, FullNode*>::iterator nodepos = FullNode::mFullNodes.begin(); nodepos !=  FullNode::mFullNodes.end(); nodepos++) {
-+    vector<boost::uint32_t> monsterTypes(1); 
-+    for (std::map<boost::uint32_t, FullNode*>::iterator nodepos = FullNode::mFullNodes.begin(); nodepos !=  FullNode::mFullNodes.end(); nodepos++) {
-       FullNode *node = nodepos->second; 
-       if (node && node->GetNodeType() < 0 && !node->IsWrappedCopy()) {
--        uint8_t theType = - node->GetNodeType(); 
-+        boost::uint8_t theType = - node->GetNodeType(); 
-         if (theType >= monsterTypes.size()) {
-           monsterTypes.resize(theType+1); 
-         }
-@@ -3497,7 +3497,7 @@
-     }    
-     string s; 
-     s += str(boost::format("Total monster nodes: %1%\n") %monsterTypes[0]); 
--    for (uint8_t t = 1; t < monsterTypes.size(); t++) {
-+    for (boost::uint8_t t = 1; t < monsterTypes.size(); t++) {
-       if (monsterTypes[t]) {
-         s += str(boost::format("Type -%1% monster nodes: %2%\n") % (int)t % monsterTypes[t]); 
-       }
-@@ -3524,8 +3524,8 @@
-     debugfile << "=================================================" << endl; 
-     debugfile << endl << endl; 
--    for (std::map<uint32_t, FullNode*>::iterator nodepos = FullNode::mFullNodes.begin(); nodepos != FullNode::mFullNodes.end(); nodepos++) {
--      uint32_t key = nodepos->first; 
-+    for (std::map<boost::uint32_t, FullNode*>::iterator nodepos = FullNode::mFullNodes.begin(); nodepos != FullNode::mFullNodes.end(); nodepos++) {
-+      boost::uint32_t key = nodepos->first; 
-       FullNode *node = nodepos->second; 
-       debugfile << "mFullNodes[" << key <<"]: " << node->Stringify(false ) << endl; 
-       debugfile << "**************************************************************" << endl << endl; 
-@@ -3582,7 +3582,7 @@
-     STARTPROGRESS(); 
--    uint32_t armnum = 0; 
-+    boost::uint32_t armnum = 0; 
-     /*! 
-       For now, just look at every inbounds node and if it has not been looked at, make an arm out of it.  
-     */ 
-@@ -3592,7 +3592,7 @@
-       If you start from an out of bounds node, you will often trace out arms that have no nodes in them!  That would be segfault fodder. 
-     */ 
-     try {
--      for (map<uint32_t, FullNode*>::iterator nodepos = FullNode::mFullNodes.begin(); nodepos != FullNode::mFullNodes.end(); ++nodepos, ++nodenum) {
-+      for (map<boost::uint32_t, FullNode*>::iterator nodepos = FullNode::mFullNodes.begin(); nodepos != FullNode::mFullNodes.end(); ++nodepos, ++nodenum) {
-         FullNode *node = nodepos->second; 
-         if (!node->InBounds()) {
-           continue;
-@@ -3664,10 +3664,10 @@
-   //===========================================================================
-   void DataSet::DecomposeArms(void) {    
--    uint32_t armnum = 0; 
-+    boost::uint32_t armnum = 0; 
-     vector<Arm*> newArms; 
-     int energyLevel = 7, numarms=Arm::mArms.size();
--    vector<int32_t> numDecomposed(7, 0); 
-+    vector<boost::int32_t> numDecomposed(7, 0); 
-     while (energyLevel-- > 1) {
-       if (energyLevel == 1 && !Arm::mTraceArms.size()) {
-         // skip level 1; the only reason to do level 1 is to trace arms 
-@@ -3710,7 +3710,7 @@
-     debugfile <<"There are " << Arm::mArms.size() << " arms." << endl; 
-     vector<Arm*>::iterator pos = Arm::mArms.begin(), endpos = Arm::mArms.end(); 
--    uint32_t armnum = 0, empty=0; 
-+    boost::uint32_t armnum = 0, empty=0; 
-     while (pos != endpos) {
-       debugfile << "Arm #" << armnum << ": " << (*pos)->Stringify(0) << endl; 
-       debugfile << "******************************************************" << endl << endl; 
-@@ -3745,7 +3745,7 @@
-     debugfile <<"There are " << mMetaArms.size() << " MetaArms." << endl; 
-     vector<boost::shared_ptr<MetaArm> >::iterator pos = mMetaArms.begin(), endpos = mMetaArms.end(); 
--    uint32_t armnum = 0; 
-+    boost::uint32_t armnum = 0; 
-     while (pos != endpos) {
-       debugfile << "MetaArm #" << armnum << ": " << (*pos)->Stringify(0) << endl; 
-       debugfile.flush(); 
-@@ -3797,11 +3797,11 @@
-     // =======================================================
-     // SEGMENT FILES 
-     // We go by arm by arm to save writing duplicate points everywhere. 
--    uint32_t numsegfiles = ArmSegment::mArmSegments.size()/mElementsPerVTKFile + 1; 
-+    boost::uint32_t numsegfiles = ArmSegment::mArmSegments.size()/mElementsPerVTKFile + 1; 
-     dbecho(0, str(boost::format("DataSet::WriteVTKFiles() will write %d segment files. \n")% numsegfiles));
-     vector<FILE *> segfiles;
-     vector<string> segfilenames; 
--    for (uint32_t fileno = 0; fileno < numsegfiles; fileno++) {
-+    for (boost::uint32_t fileno = 0; fileno < numsegfiles; fileno++) {
-       string filename = str(boost::format("%s/%s-segments-%04d.vtk")%mOutputDir%mOutputBasename%fileno); 
-       FILE * fp = fopen(filename.c_str(), "w"); 
-       if (!fp) {
-@@ -3815,14 +3815,14 @@
-     // ----------------------------------------------------------
-     // WRITE THE SEGMENT FILES
-     float armsperfile = (float)(Arm::mArms.size())/segfiles.size(); 
--    for (uint32_t fileno = 0; fileno < segfiles.size(); fileno++) {
-+    for (boost::uint32_t fileno = 0; fileno < segfiles.size(); fileno++) {
-       FILE *segfile = segfiles[fileno]; 
-       string filename = segfilenames[fileno]; 
--      uint32_t firstarm =  armsperfile * fileno;
--      uint32_t lastarm = armsperfile *(fileno + 1) - 1; 
-+      boost::uint32_t firstarm =  armsperfile * fileno;
-+      boost::uint32_t lastarm = armsperfile *(fileno + 1) - 1; 
-       if (fileno == segfiles.size()-1) 
-         lastarm = Arm::mArms.size() - 1; 
--      uint32_t numarms = lastarm-firstarm+1; 
-+      boost::uint32_t numarms = lastarm-firstarm+1; 
-       // ----------------------------------------------------------
-       // 1. Segment file: the header
-       fprintf(segfile,"# vtk DataFile Version 3.0\n" );
-@@ -3836,13 +3836,13 @@
-       //   cause us to write too many duplicate points.  This of course 
-       //   comes at a minor expense in imperfect load balancing due to 
-       //   unequal unpredictable arm lengths.  <Shrug>  
--      uint32_t numnodes = 0, numsegs = 0;
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      boost::uint32_t numnodes = 0, numsegs = 0;
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         numnodes += Arm::mArms[armnum+firstarm]->GetNumNodes(); 
-       }
-       fprintf(segfile, "\nPOINTS %d float\n", numnodes);
--      vector<uint32_t> nodecounts; 
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      vector<boost::uint32_t> nodecounts; 
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         vector<FullNode*> nodes = Arm::mArms[armnum+firstarm]->GetNodes(); 
-         nodecounts.push_back(0); 
-         FullNode *previous = NULL; 
-@@ -3864,12 +3864,12 @@
-       // 3. Segment file: Segments (connectivity)
-       fprintf(segfile, "\nLINES %d %d\n", numsegs, 3*numsegs); 
-       
--      uint32_t nodenum = 0, previousnodenum = 0; 
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      boost::uint32_t nodenum = 0, previousnodenum = 0; 
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         Arm *theArm = Arm::mArms[armnum+firstarm]; 
-         if (!theArm->mNumSegments) continue; 
--        uint32_t armsegs = 0; 
-+        boost::uint32_t armsegs = 0; 
-         if (theArm->mNumWrappedSegments) {          
-           vector<FullNode *> nodes = theArm->GetNodes(); 
-           FullNode *previous = NULL; 
-@@ -3890,7 +3890,7 @@
-         } 
-         else {
-           // no wrapped segments
--          for (uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-+          for (boost::uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-             fprintf(segfile, "2 %d %d\n", nodenum, nodenum+1); 
-             ++nodenum; 
-             armsegs ++; 
-@@ -3911,10 +3911,10 @@
-       fprintf(segfile, "\nCELL_DATA %d\n", numsegs); 
-       fprintf(segfile, "SCALARS armnum int\n"); 
-       fprintf(segfile, "LOOKUP_TABLE default\n");   
--      uint32_t testsegs = 0; 
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      boost::uint32_t testsegs = 0; 
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         Arm *theArm = Arm::mArms[armnum+firstarm]; 
--        for (uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-+        for (boost::uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-           fprintf(segfile, "%d ", armnum); 
-           ++testsegs;         
-         }
-@@ -3927,10 +3927,10 @@
-       // 5. Segment file: Segment Burgers type
-       fprintf(segfile, "SCALARS burgers_type int\n"); 
-       fprintf(segfile, "LOOKUP_TABLE default\n");   
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         Arm *theArm = Arm::mArms[armnum+firstarm]; 
--        uint32_t burgertype = theArm->GetBurgersType(); 
--        for (uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-+        boost::uint32_t burgertype = theArm->GetBurgersType(); 
-+        for (boost::uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-           fprintf(segfile, "%d ", burgertype); 
-           ++testsegs; 
-         }        
-@@ -3942,10 +3942,10 @@
-       // ----------------------------------------------------------
-       fprintf(segfile, "SCALARS metaarm_type int\n"); 
-       fprintf(segfile, "LOOKUP_TABLE default\n");   
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         Arm *theArm = Arm::mArms[armnum+firstarm]; 
--        uint32_t matype = theArm->GetMetaArmType(); 
--        for (uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-+        boost::uint32_t matype = theArm->GetMetaArmType(); 
-+        for (boost::uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-           fprintf(segfile, "%d ", matype); 
-           ++testsegs; 
-         }        
-@@ -3957,9 +3957,9 @@
-       // ----------------------------------------------------------
-       fprintf(segfile, "SCALARS block_number int\n"); 
-       fprintf(segfile, "LOOKUP_TABLE default\n");   
--      for (uint32_t armnum = 0; armnum < numarms; armnum++) {
-+      for (boost::uint32_t armnum = 0; armnum < numarms; armnum++) {
-         Arm *theArm = Arm::mArms[armnum+firstarm]; 
--        for (uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-+        for (boost::uint32_t segnum = 0; segnum < theArm->mNumSegments; segnum++) {
-           fprintf(segfile, "%d ", fileno); 
-           ++testsegs; 
-         }        
-@@ -3976,7 +3976,7 @@
-     string visitsegfilename = str(boost::format("%s/%s-segments.visit")%mOutputDir%mOutputBasename); 
-     FILE *visitsegfile = fopen(visitsegfilename.c_str(), "w"); 
-     fprintf(visitsegfile, "!NBLOCKS %d\n", (int)segfiles.size()); 
--    for (uint32_t fileno = 0; fileno < segfiles.size(); fileno++) {
-+    for (boost::uint32_t fileno = 0; fileno < segfiles.size(); fileno++) {
-       fprintf(visitsegfile, "%s\n", Basename(segfilenames[fileno]).c_str()); 
-     }
-     fclose(visitsegfile); 
-@@ -3986,11 +3986,11 @@
-     // ============================================================
-     // NODE FILES 
-     // We use mElementsPerVTKFile to limit our node file size too.
--    uint32_t numnodefiles = FullNode::mFullNodes.size()/mElementsPerVTKFile + 1; 
-+    boost::uint32_t numnodefiles = FullNode::mFullNodes.size()/mElementsPerVTKFile + 1; 
-     dbecho(0, str(boost::format("DataSet::WriteVTKFiles() will write %d node files. \n")% numnodefiles));
-     vector<FILE *> nodefiles;
-     vector<string> nodefilenames; 
--    for (uint32_t fileno = 0; fileno < numnodefiles; fileno++) {
-+    for (boost::uint32_t fileno = 0; fileno < numnodefiles; fileno++) {
-       string filename = str(boost::format("%s/%s-nodes-%04d.vtk")%mOutputDir%mOutputBasename%fileno); 
-       FILE * fp = fopen(filename.c_str(), "w"); 
-       if (!fp) {
-@@ -4003,20 +4003,20 @@
-     
-    // ----------------------------------------------------------
-     // WRITE THE NODE FILES
--    map<uint32_t, FullNode *>::iterator nodepos = FullNode::mFullNodes.begin(),
-+    map<boost::uint32_t, FullNode *>::iterator nodepos = FullNode::mFullNodes.begin(),
-       nodeend =  FullNode::mFullNodes.end(); 
-     float nodesperfile = (float)(FullNode::mFullNodes.size())/numnodefiles; 
--    uint32_t firstnode = 0; 
-+    boost::uint32_t firstnode = 0; 
--    for (uint32_t fileno = 0; fileno < nodefiles.size(); fileno++) {
-+    for (boost::uint32_t fileno = 0; fileno < nodefiles.size(); fileno++) {
-       FILE *nodefile = nodefiles[fileno]; 
-       string filename = nodefilenames[fileno]; 
--      uint32_t lastnode = nodesperfile *(fileno + 1.0) - 1; 
-+      boost::uint32_t lastnode = nodesperfile *(fileno + 1.0) - 1; 
-       if (fileno == nodefiles.size()-1) 
-         lastnode = FullNode::mFullNodes.size()-1;
--      uint32_t numnodes = lastnode - firstnode + 1; 
-+      boost::uint32_t numnodes = lastnode - firstnode + 1; 
-       
--      map<uint32_t, FullNode *>::iterator firstnodepos = nodepos;  
-+      map<boost::uint32_t, FullNode *>::iterator firstnodepos = nodepos;  
-       
-       // ----------------------------------------------------------
-       // 1. Node file: the header
-@@ -4028,7 +4028,7 @@
-       // ----------------------------------------------------------
-       // 2. Node file: Points.  
-       fprintf(nodefile, "\nPOINTS %d float\n", numnodes); 
--      uint32_t nodecount = 0; 
-+      boost::uint32_t nodecount = 0; 
-       for (nodecount = 0; 
-            nodecount < numnodes && nodepos != nodeend; 
-            nodecount++, nodepos++) {
-@@ -4041,14 +4041,14 @@
-       
-       // ----------------------------------------------------------
-       // 2. Node file: Vertices  
--      for (uint32_t nodenum = 0; nodenum < numnodes; nodenum++) {
-+      for (boost::uint32_t nodenum = 0; nodenum < numnodes; nodenum++) {
-         fprintf(nodefile, "1 %d\n", nodenum); 
-       }
-       
-       // ----------------------------------------------------------
-       // Node file: Node Index
-       nodepos = firstnodepos; 
--      for (uint32_t nodenum = 0;  nodenum < numnodes; nodenum++, nodepos++) {
-+      for (boost::uint32_t nodenum = 0;  nodenum < numnodes; nodenum++, nodepos++) {
-         fprintf(nodefile, "1 %d\n", nodepos->second->GetIndex()); 
-       }
-       // ----------------------------------------------------------
-@@ -4071,8 +4071,8 @@
-   // Write a file containing all tagged nodes with their tag values. 
-   void DataSet::WriteTagFile(void) {
-     // First, create a fast searchable map for lookups, as our global map is ordered by global Node Index, which is not necessarily in file order any more at this point. 
--    map<uint64_t, FullNode*> nodehash; 
--    for (map<uint32_t, FullNode*>::iterator pos = FullNode::mFullNodes.begin(); 
-+    map<boost::uint64_t, FullNode*> nodehash; 
-+    for (map<boost::uint32_t, FullNode*>::iterator pos = FullNode::mFullNodes.begin(); 
-          pos != FullNode::mFullNodes.end(); pos++) {
-       nodehash[pos->second->Hash()] = pos->second; 
-     }
-@@ -4081,8 +4081,8 @@
-     dbecho(1, str(boost::format("DataSet::WriteTagFile: Writing node tags to file %s... ")% tagfilename)); 
-     
--    uint32_t nodenum = 0;
--    uint32_t lineno = 1; 
-+    boost::uint32_t nodenum = 0;
-+    boost::uint32_t lineno = 1; 
-     char linebuf[2048]="";
-     STARTPROGRESS();
-@@ -4135,7 +4135,7 @@
-     string metaArmFile = mOutputDir + "/" + mOutputBasename + ".metaarms"; 
-     dbecho(0, str(boost::format("Writing metaarms to metaarm file %s... ")% metaArmFile));
-     
--    uint32_t a = Arm::mArms.size(); 
-+    boost::uint32_t a = Arm::mArms.size(); 
-     while (a--) {
-       Arm::mArms[a]->mSeen = false; 
-     }
-@@ -4148,9 +4148,9 @@
-     fprintf(armfile, "DISCUSSION: \n%s\n", doctext.c_str()); 
-     
-     vector<boost::shared_ptr<MetaArm> >::iterator pos = mMetaArms.begin(), endpos = mMetaArms.end(); 
--    uint32_t armnum = 0, metaarmcounts[7]={0}; 
-+    boost::uint32_t armnum = 0, metaarmcounts[7]={0}; 
-     double metaarmtypelengths[7] = {0.0}, totalEPDist = 0.0; 
--    uint32_t numarms = 0; 
-+    boost::uint32_t numarms = 0; 
-     while (pos != endpos) {
-       if ((*pos)->mTerminalNodes.size() == 2) {
-         totalEPDist += (*pos)->mTerminalNodes[0]->Distance(*( (*pos)->mTerminalNodes[1]), true); 
-@@ -4239,7 +4239,7 @@
-         dbprintf(0,  "WARNING: arm # %d has %d terminal arms\n", armnum, numtermnodes);
-         dbprintf(0,  (*pos)->Stringify(0).c_str()); 
-       } else {
--        uint32_t i = numtermnodes, numarms = (*pos)->mAllArms.size(); 
-+        boost::uint32_t i = numtermnodes, numarms = (*pos)->mAllArms.size(); 
-         while (i--) {
-           (*pos)->mTerminalNodes[i]->GetLocation(loc[i]);
-           ntypes[i] = (*pos)->mTerminalNodes[i]->GetNodeType();
-@@ -4307,7 +4307,7 @@
-             "EP1-ID", "EP1-Type", "EP1-Nbrs", "EP1-X", "EP1-Y", "EP1-Z", 
-             "EP2-ID", "EP2-Type", "EP2-Nbrs", "EP2-X", "EP2-Y", "EP2-Z");
-     vector<Arm*>::iterator pos = Arm::mArms.begin(), endpos = Arm::mArms.end(); 
--    uint32_t armnum = 0; 
-+    boost::uint32_t armnum = 0; 
-     while (pos != endpos) {   
-       if ((*pos)->mArmType == ARM_EMPTY) {
-         ++pos; 
-@@ -4466,14 +4466,14 @@
-   //=========================================================================
-   void DataSet::CreateNodeSegmentVectors(void) {  
--    uint32_t index = 0; 
--    for (map<uint32_t, FullNode *>::iterator pos = FullNode::mFullNodes.begin(); pos != FullNode::mFullNodes.end(); pos++, index++) {
-+    boost::uint32_t index = 0; 
-+    for (map<boost::uint32_t, FullNode *>::iterator pos = FullNode::mFullNodes.begin(); pos != FullNode::mFullNodes.end(); pos++, index++) {
-       pos->second->SetIndex(index); 
-       FullNode::mFullNodeVector.push_back(pos->second); 
-     }
-     index = 0; 
--    for (map<uint32_t, ArmSegment *>::iterator pos = ArmSegment::mArmSegments.begin(); pos != ArmSegment::mArmSegments.end(); pos++, index++) {
-+    for (map<boost::uint32_t, ArmSegment *>::iterator pos = ArmSegment::mArmSegments.begin(); pos != ArmSegment::mArmSegments.end(); pos++, index++) {
-       pos->second->SetIndex(index); 
-       ArmSegment::mArmSegmentVector.push_back(pos->second); 
-     }
-@@ -4483,7 +4483,7 @@
-   //=========================================================================
-   void DataSet::ComputeNodeTypes(void) {
--    for (map<uint32_t, FullNode*>::iterator pos = FullNode::mFullNodes.begin(); pos !=  FullNode::mFullNodes.end(); pos++) {
-+    for (map<boost::uint32_t, FullNode*>::iterator pos = FullNode::mFullNodes.begin(); pos !=  FullNode::mFullNodes.end(); pos++) {
-       pos->second->ComputeNodeType(); 
-     }
-   }
-@@ -4494,7 +4494,7 @@
-       (*currentArm)->mSeen = false; 
-     }
--    uint32_t numMetaArms = 0, numArms = 0, totalArms = Arm::mArms.size(); 
-+    boost::uint32_t numMetaArms = 0, numArms = 0, totalArms = Arm::mArms.size(); 
-     STARTPROGRESS(); 
-     dbprintf(4, "FindMetaArms: %s\n", datestring()); 
-     for (vector<Arm*>::iterator currentArm = Arm::mArms.begin(); currentArm != Arm::mArms.end(); ++currentArm, ++numArms) {
-@@ -4545,7 +4545,7 @@
-     for (vector<Arm*>::iterator currentArm = Arm::mArms.begin(); currentArm != Arm::mArms.end(); ++currentArm) {
-       if (!(*currentArm)->mSeen && (*currentArm)->mArmType != ARM_EMPTY) {
--        uint32_t id = (*currentArm)->mArmID;
-+        boost::uint32_t id = (*currentArm)->mArmID;
-         dbprintf(0, "\n\nError: arm %d has not been seen!\n", id); 
-         errexit; 
-       }
-@@ -4559,11 +4559,11 @@
-   bool DataSet::Test(void) {
-     dbprintf(0, "DataSet::Test(): called\n"); 
-     
--    vector<uint32_t>segsperarm(Arm::mArms.size(), 0), segspermetaarm(mMetaArms.size(), 0);
-+    vector<boost::uint32_t>segsperarm(Arm::mArms.size(), 0), segspermetaarm(mMetaArms.size(), 0);
-     
-      //================================================================
-    dbprintf(0, "DataSet::Test(): enumerating segsperarm\n"); 
--   for (map<uint32_t, ArmSegment*>::iterator segpos = ArmSegment::mArmSegments.begin(); segpos != ArmSegment::mArmSegments.end(); ++segpos) {   
-+   for (map<boost::uint32_t, ArmSegment*>::iterator segpos = ArmSegment::mArmSegments.begin(); segpos != ArmSegment::mArmSegments.end(); ++segpos) {   
-       ArmSegment * seg = segpos->second; 
-       if (!seg->mParentArm) {
-         dbprintf(0, "DataSet::Test(): seg %d has NULL parent \n", seg->mSegmentID); 
-@@ -4581,7 +4581,7 @@
-     //================================================================
-     dbprintf(0, "DataSet::Test(): checking arms \n"); 
-     bool success = true; 
--    uint32_t numArms = 0, numsegs = 0, numnodes = 0; 
-+    boost::uint32_t numArms = 0, numsegs = 0, numnodes = 0; 
-     for (vector<Arm*>::iterator arm = Arm::mArms.begin(); arm != Arm::mArms.end(); ++arm, ++numArms) {
-       vector<ArmSegment*> segs = (*arm)->GetSegments(); 
-       numsegs += segs.size(); 
-@@ -4593,7 +4593,7 @@
-           for (vector<ArmSegment*>::iterator seg = segs.begin(); seg != segs.end(); seg++, ++segnum) {
-             dbprintf(0, "armseg %d: %s\n", segnum, (*seg)->Stringify(0).c_str()); 
-           }
--          for (map<uint32_t, ArmSegment*>::iterator seg = ArmSegment::mArmSegments.begin(); seg != ArmSegment::mArmSegments.end(); ++seg) {   
-+          for (map<boost::uint32_t, ArmSegment*>::iterator seg = ArmSegment::mArmSegments.begin(); seg != ArmSegment::mArmSegments.end(); ++seg) {   
-             if (seg->second->mParentArm == *arm) {
-               vector<ArmSegment*>::iterator pos = find(segs.begin(), segs.end(), seg->second); 
-               if (pos == segs.end()) {
-@@ -4628,11 +4628,11 @@
-       Checking metaarm segments counts is wrong -- for VisIt, a 'MetaArm' always has only a single segment, connecting its endpoints.  The entire metaarm is returned only if it is a LOOP. 
-     
-     dbprintf(0, "DataSet::Test(): checking meta-arms \n"); 
--     uint32_t manum = 0;
-+     boost::uint32_t manum = 0;
-     numsegs = 0; 
-     for (vector<boost::shared_ptr<MetaArm> >::iterator metaarm = mMetaArms.begin(); metaarm != mMetaArms.end(); ++metaarm, ++manum) {
--      uint32_t masegs = (*metaarm)->GetNumSegments(false); 
--      uint32_t shouldbe = segspermetaarm[(*metaarm)->GetMetaArmID()]; 
-+      boost::uint32_t masegs = (*metaarm)->GetNumSegments(false); 
-+      boost::uint32_t shouldbe = segspermetaarm[(*metaarm)->GetMetaArmID()]; 
-       if (masegs != shouldbe) {
-         dbprintf(0, "DataSet::Test(): numsegs %d != segspermetaarm[%d] %d \n", masegs, (*metaarm)->GetMetaArmID(), shouldbe); 
-         return false; 
-@@ -4649,7 +4649,7 @@
-     dbprintf(0, "DataSet::Test(): checking arm segments \n"); 
-     if (numnodes != FullNode::mFullNodes.size()) {
-       dbprintf(0, "DataSet::Test(): numnodes %d != FullNode::mFullNodes.size() %d.  Searching for extra node...\n", numnodes, FullNode::mFullNodes.size()); 
--      for (map<uint32_t, FullNode*>::iterator node = FullNode::mFullNodes.begin(); node != FullNode::mFullNodes.end(); ++node) {           
-+      for (map<boost::uint32_t, FullNode*>::iterator node = FullNode::mFullNodes.begin(); node != FullNode::mFullNodes.end(); ++node) {           
-         if (!node->second->mSeen) {
-           dbprintf(0, "DataSet::Test(): unseen node: %s\n", node->second->Stringify(0, false).c_str());
-         }
---- ParaView-5.0.1_SRC.orig/Utilities/VisItBridge/databases/paraDIS/paraDIS_lib/paradis.h      2016-05-11 13:07:50.000000000 +0300
-+++ ParaView-5.0.1_SRC.patch/Utilities/VisItBridge/databases/paraDIS/paraDIS_lib/paradis.h     2016-05-11 15:03:40.000000000 +0300
-@@ -1,3 +1,4 @@
-+
- /*! 
-   \file paradis.h 
-@@ -30,13 +31,13 @@
- /* now for the API */  
- #include <boost/cstdint.hpp>
--using boost::int8_t;
--using boost::int16_t;
--using boost::int32_t;
--using boost::uint8_t;
--using boost::uint16_t;
--using boost::uint32_t;
--using boost::uint64_t;
-+//using boost::int8_t;
-+//using boost::int16_t;
-+//using boost::int32_t;
-+//using boost::uint8_t;
-+//using boost::uint16_t;
-+//using boost::uint32_t;
-+//using boost::uint64_t;
- #include <boost/shared_ptr.hpp>
- #include <boost/format.hpp>
-@@ -141,12 +142,12 @@
-       mNodeID = other.mNodeID;
-     }
-     // -------------------------------------------------
--    NodeID(int16_t domain, int32_t node) {
-+    NodeID(boost::int16_t domain, boost::int32_t node) {
-       mDomainID = domain; 
-       mNodeID = node; 
-     }
-     // -------------------------------------------------
--    uint64_t Hash(void) const {
-+    boost::uint64_t Hash(void) const {
-       if (mNodeID >= 1000*1000) {
-         cerr << "Warning: Hash() is no longer unique" << endl; 
-       }
-@@ -157,8 +158,8 @@
-       return INDENT(indent) + str(boost::format("NodeID: (%1%,%2%)")% mDomainID % mNodeID);
-     }
-     
--    uint32_t mDomainID; 
--    uint64_t mNodeID; 
-+    boost::uint32_t mDomainID; 
-+    boost::uint64_t mNodeID; 
-   };
-   
-   /*! 
-@@ -203,7 +204,7 @@
-     }
-     
-     // return a hash based on NodeID
--    uint64_t Hash(void) const {
-+    boost::uint64_t Hash(void) const {
-       return mID.Hash(); 
-     }
-@@ -229,9 +230,9 @@
-     */ 
-     const NodeID &GetNodeID(void) const  { return mID; }
--    int32_t GetNodeSimulationDomain(void) const { return mID.mDomainID; }
-+    boost::int32_t GetNodeSimulationDomain(void) const { return mID.mDomainID; }
--    int32_t GetNodeSimulationID(void) const { return mID.mNodeID; }
-+    boost::int32_t GetNodeSimulationID(void) const { return mID.mNodeID; }
-     /*! 
-       conversion of Node to string
-@@ -360,12 +361,12 @@
-     /*!
-       Accessor
-     */ 
--    uint32_t GetFileOrderIndex(void) const { return mFileOrderIndex; }
-+    boost::uint32_t GetFileOrderIndex(void) const { return mFileOrderIndex; }
-     /*!
-       Accessor
-     */ 
--    void SetFileOrderIndex(uint32_t index) { mFileOrderIndex = index; }
-+    void SetFileOrderIndex(boost::uint32_t index) { mFileOrderIndex = index; }
-     /*!
-       For sorting by file order
-@@ -381,7 +382,7 @@
-     virtual std::string Stringify(int indent, bool shortform=true) const {
-       std::string s =std::string("MinimalNode: ")+Node::Stringify(0) + string("\nClassification: ") + string(mKeep?"KEEP":"DON'T KEEP") + string("\n");  
-       s += (intToString(mNeighbors.size()) + " neighbors --------------:\n");
--      uint32_t n = 0; 
-+      boost::uint32_t n = 0; 
-       if (!shortform) {
-         while (n < mNeighbors.size()) {
-           s += "neighbor " + intToString(n) + ": "; 
-@@ -402,7 +403,7 @@
-     /*! 
-       Accessor function --  returns const due to the fact that neighbors are stored in a set in the data set.  But you can always create a copy of what you get, or use const_cast<> on it. 
-     */ 
--    /*  const Neighbor *GetNeighbor(uint32_t num)  const { 
-+    /*  const Neighbor *GetNeighbor(boost::uint32_t num)  const { 
-       if (num >= mNeighbors.size())
-         throw std::string("subscript out of range in BaseNode::GtNeighbor"); 
-       return mNeighbors[num]; 
-@@ -436,7 +437,7 @@
-     /*!
-       Nodes must be sorted to find while classifying, then resorted in "file order" to most quickly load the full nodes later.  So we keep an index into the file.  
-     */ 
--    uint32_t mFileOrderIndex; 
-+    boost::uint32_t mFileOrderIndex; 
-     /*! 
-       The neighbors for this particular node
-@@ -466,7 +467,7 @@
-     */ 
-     FullNode(const FullNode &other, bool skipneighbors=false) {
-       init(); 
--      uint32_t saved = mNodeIndex; 
-+      boost::uint32_t saved = mNodeIndex; 
-       *this = other; 
-       mNodeIndex = saved; 
-       if (skipneighbors) {
-@@ -490,7 +491,7 @@
-       ===========================================
-       constructor
-     */ 
--    FullNode(int16_t domain, int32_t nodeID) {
-+    FullNode(boost::int16_t domain, boost::int32_t nodeID) {
-       init(); 
-       mID = NodeID(domain, nodeID); 
-     }
-@@ -499,7 +500,7 @@
-       Clear all nodes
-     */ 
-     static void Clear(void) {
--      for (map<uint32_t, FullNode *>::iterator nodepos = mFullNodes.begin(); nodepos != mFullNodes.end(); nodepos++) {
-+      for (map<boost::uint32_t, FullNode *>::iterator nodepos = mFullNodes.begin(); nodepos != mFullNodes.end(); nodepos++) {
-         delete nodepos->second;
-       }
-       mFullNodes.clear(); 
-@@ -547,7 +548,7 @@
-       Add the given arm to the list of arms to trace. 
-       See WriteTraceFiles()
-     */ 
--    static void TraceNode(int32_t nodeID){
-+    static void TraceNode(boost::int32_t nodeID){
-       mTraceNodes.push_back(nodeID);       
-     }
-@@ -630,7 +631,7 @@
-    /*!
-       Accessor function set the node type.  
-     */ 
--    void SetNodeType(int8_t itype) { 
-+    void SetNodeType(boost::int8_t itype) { 
-       mNodeType = itype; 
-       return; 
-     }
-@@ -638,7 +639,7 @@
-     /*!
-       Accessor function
-     */ 
--    int8_t GetNodeType(void) { return mNodeType; }
-+    boost::int8_t GetNodeType(void) { return mNodeType; }
-     
-     
-     /*!
-@@ -746,13 +747,13 @@
-     /*! 
-       Accessor function 
-     */ 
--    ArmSegment *GetNeighborSegment(uint32_t num)  const { 
-+    ArmSegment *GetNeighborSegment(boost::uint32_t num)  const { 
-       if (num >= mNeighborSegments.size()) 
-         throw std::string("subscript out of range in GetNeighborSegment"); 
-       return mNeighborSegments[num]; 
-     }
--    struct Arm *GetNeighborArm(uint32_t num)  const { 
-+    struct Arm *GetNeighborArm(boost::uint32_t num)  const { 
-       if (num >= mNeighborArms.size()) 
-         throw std::string("subscript out of range in GetNeighborArm"); 
-       return mNeighborArms[num]; 
-@@ -798,14 +799,14 @@
-    /*!
-       Accessor function
-     */
--    int32_t GetIndex(void) { return mNodeIndex; }
-+    boost::int32_t GetIndex(void) { return mNodeIndex; }
-  
-     string GetNodeIDString(void) { return GetNodeID().Stringify(0); }
-     /*!
-       Accessor
-     */ 
--    void SetIndex(int32_t index) { 
-+    void SetIndex(boost::int32_t index) { 
-       mNodeIndex = index; 
-     }
-     
-@@ -828,10 +829,10 @@
-     /*! 
-       all fullnodes in the data set.  DO NOT SORT THIS -- each node has an Index which is its position in this array when created -- used to find its counterpart in the wrapped nodes for tracing along arms to find their endpoints and lengths.  
-     */ 
--    static std::map<uint32_t, FullNode *> mFullNodes; 
-+    static std::map<boost::uint32_t, FullNode *> mFullNodes; 
-     static std::vector<FullNode *> mFullNodeVector; 
--    static uint32_t mNextNodeID; 
-+    static boost::uint32_t mNextNodeID; 
-     
-     /*!
-       Static member to keep track of subspace bounds for checking if we are in bounds or not
-@@ -848,7 +849,7 @@
-     /*!
-       Node Type is whether we are a butterfly, monster, or normal node (or a placeholder in a segment)
-     */ 
--    int8_t mNodeType; 
-+    boost::int8_t mNodeType; 
-     
-     bool mIsLoopNode; 
-@@ -857,7 +858,7 @@
-     /*!
-       This is needed for things like Visit, where nodes are accessed by node ID, whereas this library uses pointers.  Since it is also our index inthe global array of nodes, it turns out to be a good way to get the "real" counterpart of a wrapped node.  
-     */ 
--    int32_t mNodeIndex; 
-+    boost::int32_t mNodeIndex; 
-     /*!
-       Connectivity to our neighboring nodes encapsulated in ArmSegments
-@@ -865,10 +866,10 @@
-     std::vector< ArmSegment *> mNeighborSegments; 
-     static string mTraceFileBasename; 
--    static vector<uint32_t> mTraceNodes; 
-+    static vector<boost::uint32_t> mTraceNodes; 
-     // statistics:
--    std::vector<uint32_t> mNumMonsterNodes; 
-+    std::vector<boost::uint32_t> mNumMonsterNodes; 
-   }; /* end FullNode */  
-   
-@@ -886,7 +887,7 @@
-     }
-     ArmSegment(const ArmSegment &other){
-       init(); 
--      uint32_t saved = mSegmentID; 
-+      boost::uint32_t saved = mSegmentID; 
-       *this = other; 
-       mSegmentID = saved; 
-     }
-@@ -921,7 +922,7 @@
-     
-     static void Clear(void) {
--      for (map<uint32_t, ArmSegment *>::iterator pos = mArmSegments.begin(); pos != mArmSegments.end(); ++pos) {
-+      for (map<boost::uint32_t, ArmSegment *>::iterator pos = mArmSegments.begin(); pos != mArmSegments.end(); ++pos) {
-         delete pos->second; 
-       }
-       mArmSegments.clear(); 
-@@ -952,14 +953,14 @@
-     /*!
-       Accessor function
-     */
--    /*static ArmSegment *GetArmSegment(uint32_t segnum) { 
-+    /*static ArmSegment *GetArmSegment(boost::uint32_t segnum) { 
-       return mArmSegments[segnum]; 
-       }*/ 
-     /*! 
-       Accessor function. 
-     */ 
--    /* static uint32_t GetNumArmSegments(void)  { 
-+    /* static boost::uint32_t GetNumArmSegments(void)  { 
-       return mArmSegments.size(); 
-     }
-     */
-@@ -1001,7 +1002,7 @@
-     }
-     
--    int8_t GetBurgersType(void) const { return mBurgersType; } 
-+    boost::int8_t GetBurgersType(void) const { return mBurgersType; } 
-    /*!
-       Return the distance between the endpoints
-@@ -1013,42 +1014,42 @@
-     /*!
-       Accessor function
-     */ 
--    int32_t GetNodeIndex(int num) {
-+    boost::int32_t GetNodeIndex(int num) {
-       return mEndpoints[num]->GetIndex(); 
-     } 
-     /*! 
-       Set the segment id to the next available global ID
-     */ 
--    void SetIndex(uint32_t id) {
-+    void SetIndex(boost::uint32_t id) {
-       mSegmentID = id; 
-       return; 
-     }
-     /*!
-       accessor -- noop if not debug mode
-     */ 
--    uint32_t GetID(void) {
-+    boost::uint32_t GetID(void) {
-       return mSegmentID; 
-     }
-     /* Get the metaarm ID for the parent of this segment */ 
--    uint32_t GetMetaArmID(void); 
-+    boost::uint32_t GetMetaArmID(void); 
-     /* Get the metaarm Type for the parent of this segment */ 
--    uint8_t GetMetaArmType(void);
-+    boost::uint8_t GetMetaArmType(void);
-     
-     /*! 
-       Accessor for MN type
-     */ 
--    int8_t GetMNType(void) const;
-+    boost::int8_t GetMNType(void) const;
-      /* Get the arm ID for the parent of this segment */ 
--    uint32_t GetArmID(void);
-+    boost::uint32_t GetArmID(void);
-     
-     /*!
-       Accessor function
-     */ 
--    void GetNodeIndices(uint32_t indices[2]) {
-+    void GetNodeIndices(boost::uint32_t indices[2]) {
-       indices[0] = mEndpoints[0]->GetIndex(); 
-       indices[1] = mEndpoints[1]->GetIndex(); 
-     }
-@@ -1079,7 +1080,7 @@
-     /*!
-       SetEndpoint -- given an actual new FullNode and ID information for an as-yet uncreated neighborNode, we set the endpoints to be the address of the actualNode and the address of an internal placeholder, a copy of neighborNode.  We will delete the placeholder FullNode later, either when the actual FullNode is created, or when our destructor is called.
-     */ 
--    void SetEndpoints(FullNode *actualNode, int16_t neighborDomain, int32_t neighborNodeID) {
-+    void SetEndpoints(FullNode *actualNode, boost::int16_t neighborDomain, boost::int32_t neighborNodeID) {
-       FullNode *placeholder = new FullNode(neighborDomain, neighborNodeID); 
-       placeholder->SetNodeType(PLACEHOLDER_NODE); //mark as a dummy node; 
-       SetEndpoints(actualNode, placeholder); 
-@@ -1211,7 +1212,7 @@
-     /*!
-       purely for debugging
-     */ 
--    int32_t mSegmentID; 
-+    boost::int32_t mSegmentID; 
-     /*!
-       to find out if wrapped
-@@ -1225,23 +1226,23 @@
-     static double mSegLen;
--    static uint32_t mNumClassified, mNumWrapped, mNumArmSegmentsMeasured; 
--    static uint32_t mNextSegmentID; 
-+    static boost::uint32_t mNumClassified, mNumWrapped, mNumArmSegmentsMeasured; 
-+    static boost::uint32_t mNextSegmentID; 
-   protected:
-      /*!
-       The burgers-type is defined above.  
-     */ 
--    int8_t mBurgersType; 
-+    boost::int8_t mBurgersType; 
-     
-     /*! 
-       The MN_type of the segment is set by its parent arm.  See Arm struct for definitions, but it describes whether the segment is 200 or 111 and whether its parent arm has any monsters at either end. 
-     */ 
--    //int8_t mMNType; 
-+    //boost::int8_t mMNType; 
-      
-     /* The metaArm type that it belongs to.  */ 
--    int8_t mMetaArmType; 
-+    boost::int8_t mMetaArmType; 
-     /*!
-       Marker used for "once-through" operations like building arms that must look at every segment, but which will usually discover echo particular segment more than once. 
-@@ -1258,7 +1259,7 @@
-     /*!
-       The global list of valid arm segments
-     */ 
--    static std::map<uint32_t, ArmSegment *> mArmSegments; 
-+    static std::map<boost::uint32_t, ArmSegment *> mArmSegments; 
-     static vector<ArmSegment *> mArmSegmentVector; 
-     struct Arm *mParentArm; 
-@@ -1321,7 +1322,7 @@
-       return 1000*(id0.GetDomainID() + id1.GetDomainID()) + id0.GetNodeID() + id1.GetNodeID(); 
-     }
-   private:
--    uint32_t mDenominator;
-+    boost::uint32_t mDenominator;
-   };
-   */
-   //==============================================
-@@ -1384,7 +1385,7 @@
-     */ 
-     void MakeAncestor(Arm *sourceArm) {
-       mAncestorArms.push_back(sourceArm->mArmID); 
--      for  (uint32_t a = 0; a < sourceArm->mAncestorArms.size(); a++) {
-+      for  (boost::uint32_t a = 0; a < sourceArm->mAncestorArms.size(); a++) {
-         mAncestorArms.push_back(sourceArm->mAncestorArms[a]); 
-       }
-       return;
-@@ -1432,7 +1433,7 @@
-       Give the exact Burgers type of its segments. 
-       Return 0 is no terminal segments. 
-     */
--    int8_t GetBurgersType(void) const {
-+    boost::int8_t GetBurgersType(void) const {
-       if (!mTerminalSegments.size() || !mTerminalSegments[0])  {        
-         return BURGERS_UNKNOWN; 
-       }
-@@ -1441,10 +1442,10 @@
-     /* Get the metaarm ID for the parent of this arm */ 
--    uint32_t GetMetaArmID(void);
-+    boost::uint32_t GetMetaArmID(void);
-     /* Get the metaarm Type for the parent of this arm */ 
--    uint8_t GetMetaArmType(void);
-+    boost::uint8_t GetMetaArmType(void);
-   #if LINKED_LOOPS
-    /*! 
-@@ -1465,7 +1466,7 @@
-     */ 
-     vector<FullNode*> GetNodes(FullNode *startNode = NULL) const;
--    uint32_t GetNumNodes(void) { 
-+    boost::uint32_t GetNumNodes(void) { 
-       // The math here is a bit odd, due to wrapping: 
-       if (!mNumSegments) return 0; 
-       return mNumSegments + 1 + mNumWrappedSegments; 
-@@ -1534,9 +1535,9 @@
-     }
-     FullNode *GetCommonNode(Arm *other) {
--      uint32_t myNode = mTerminalNodes.size();
-+      boost::uint32_t myNode = mTerminalNodes.size();
-       while (myNode--) {
--        uint32_t otherNode = other->mTerminalNodes.size();
-+        boost::uint32_t otherNode = other->mTerminalNodes.size();
-         while (otherNode--) {
-           if (mTerminalNodes[myNode] == other->mTerminalNodes[otherNode]) {
-             return mTerminalNodes[myNode];
-@@ -1549,10 +1550,10 @@
-     /*!
-       Return number of neighbor arms, not including this arm, but including duplicates
-     */ 
--    uint32_t GetNumNeighborArms(void) {
--      uint32_t num = 0; 
--      for  (uint32_t node = 0; node < mTerminalNodes.size(); node++) {
--        for (uint32_t arm=0; arm < mTerminalNodes[node]->mNeighborArms.size(); arm++) {
-+    boost::uint32_t GetNumNeighborArms(void) {
-+      boost::uint32_t num = 0; 
-+      for  (boost::uint32_t node = 0; node < mTerminalNodes.size(); node++) {
-+        for (boost::uint32_t arm=0; arm < mTerminalNodes[node]->mNeighborArms.size(); arm++) {
-           if (mTerminalNodes[node]->mNeighborArms[arm] != this) {
-             num++;
-           }
-@@ -1565,8 +1566,8 @@
-       Return nth neighbor arm, not including this but including duplicates
-     */ 
-     Arm *GetNeighborArm (int num) {
--      for  (uint32_t node = 0; node < mTerminalNodes.size(); node++) {
--        for (uint32_t arm=0; arm < mTerminalNodes[node]->mNeighborArms.size(); arm++) {
-+      for  (boost::uint32_t node = 0; node < mTerminalNodes.size(); node++) {
-+        for (boost::uint32_t arm=0; arm < mTerminalNodes[node]->mNeighborArms.size(); arm++) {
-           if (mTerminalNodes[node]->mNeighborArms[arm] != this) {
-             if (!num)
-               return mTerminalNodes[node]->mNeighborArms[arm]; 
-@@ -1585,7 +1586,7 @@
-       return mArmLength; 
-     }
--    uint8_t GetArmType(void) const { return mArmType; }
-+    boost::uint8_t GetArmType(void) const { return mArmType; }
-     struct MetaArm *GetParentMetaArm(void) const { return mParentMetaArm; }
-@@ -1603,13 +1604,13 @@
-     /*! 
-       Helper function for Arm::WriteTraceFiles and FullNode::WriteTraceFiles
-     */ 
--    void FindBFSNeighbors(vector<Arm *> &arms, vector<uint32_t> &armdepths, vector<int> &action);
-+    void FindBFSNeighbors(vector<Arm *> &arms, vector<boost::uint32_t> &armdepths, vector<int> &action);
-     /*!
-       Add the given arm to the list of arms to trace. 
-       See WriteTraceFiles()
-     */ 
--    static void TraceArm(int32_t armID){
-+    static void TraceArm(boost::int32_t armID){
-       mTraceArms.push_back(armID);       
-     }
-@@ -1617,7 +1618,7 @@
-       Set the tracing depth for all traced arms.  
-       See WriteTraceFiles()
-     */ 
--    static void SetTraceDepth(uint32_t depth) {
-+    static void SetTraceDepth(boost::uint32_t depth) {
-       mTraceDepth = depth; 
-     }
-@@ -1642,8 +1643,8 @@
-     vector < ArmSegment *> mTerminalSegments; // At least one, but not more than two
-     vector <FullNode *> mTerminalNodes;  // At least one, but not more than two
--    int8_t mArmType;
--    int8_t mMetaArmType; // of its parent if it exists
-+    boost::int8_t mArmType;
-+    boost::int8_t mMetaArmType; // of its parent if it exists
-     double mArmLength; 
-     /*!
-       This is useless to the user, only used for classification 
-@@ -1651,8 +1652,8 @@
-     static std::vector<Arm *> mArms; 
-     static double mThreshold; // shorter than this and an arm is "short"
-     static double mDecomposedLength; // statistics
--    static vector<int32_t> mNumDecomposed; // statistics
--    static int32_t mNumDestroyedInDetachment; // statistics
-+    static vector<boost::int32_t> mNumDecomposed; // statistics
-+    static boost::int32_t mNumDestroyedInDetachment; // statistics
-     static double mTotalArmLengthBeforeDecomposition, 
-       mTotalArmLengthAfterDecomposition;  
-     bool mDecomposing, mExtendOrDetach; 
-@@ -1664,27 +1665,27 @@
-    /*!
-       number of segments in arm
-     */ 
--    uint32_t mNumSegments; 
-+    boost::uint32_t mNumSegments; 
-    /*!
-       number of segments that got wrapped (affects node and segments counts)
-     */ 
--    uint8_t mNumWrappedSegments; 
-+    boost::uint8_t mNumWrappedSegments; 
-     /*! 
-       purely for debugging
-     */ 
--    int32_t mArmID; 
-+    boost::int32_t mArmID; 
-     /*!
-       An ancestor of this arm was one which was assimilated into this arm,
-       during decomposition.  Useful for history tracing. 
-     */ 
--    vector<int32_t> mAncestorArms; 
-+    vector<boost::int32_t> mAncestorArms; 
-     /*! 
-       To trace out arms in a text and vtk file, add them to this vector
-     */ 
--    static vector<int32_t> mTraceArms; 
-+    static vector<boost::int32_t> mTraceArms; 
-     /*!
-       uniquify files from this run
-@@ -1695,7 +1696,7 @@
-       When tracing arms, how deep to BFS for neighbors? 
-       0 is no neighbors. 1 is immediate neighbors, etc. 
-     */ 
--    static uint8_t mTraceDepth; 
-+    static boost::uint8_t mTraceDepth; 
-     private: 
-     struct MetaArm * mParentMetaArm; 
-@@ -1734,7 +1735,7 @@
-  
-     vector<rclib::Point<float> > GetNodeLocations(bool wrapEndpoints);    
-  
--    uint32_t GetNumSegments(bool wrapEndpoints) { 
-+    boost::uint32_t GetNumSegments(bool wrapEndpoints) { 
-       if (!mNumSegments) {
-         dbprintf(1, "WARNING: MetaArm::GetNumSegments(): mNumSegments is 0.  You should call GetNodeLocations() before GetNumSegments() to avoid a permormance penalty.\n"); 
-         GetNodeLocations(wrapEndpoints); 
-@@ -1758,7 +1759,7 @@
-     }
-     // ======================
-     inline void AddTerminalNode(FullNode *node) {
--      uint16_t nodenum = mTerminalNodes.size(); 
-+      boost::uint16_t nodenum = mTerminalNodes.size(); 
-       while (nodenum--) {
-         if (mTerminalNodes[nodenum] == node) {
-           dbprintf(4, "Warning: node not added as it is a duplicate.\n"); 
-@@ -1770,7 +1771,7 @@
-     }
-     // ======================
-     inline void AddTerminalArm(Arm *arm) {
--      uint16_t armnum = mTerminalArms.size(); 
-+      boost::uint16_t armnum = mTerminalArms.size(); 
-       while (armnum--) {
-         if (mTerminalArms[armnum] == arm) {
-           dbprintf(4, "Warning: arm not added as it is a duplicate.\n"); 
-@@ -1785,7 +1786,7 @@
-       if (doreverse) {
-         reverse(mFoundArms.begin(), mFoundArms.end());
-       }
--      uint32_t i = 0; 
-+      boost::uint32_t i = 0; 
-       while (i < mFoundArms.size()) {
-         dbprintf(4, "Capture Path: add arm %d\n", mFoundArms[i]->mArmID); 
-         i++; 
-@@ -1795,16 +1796,16 @@
-       return; 
-     }
-     
--    int8_t GetMetaArmType(void) { return mMetaArmType; }
--    int32_t GetMetaArmID(void) { return mMetaArmID; }
-+    boost::int8_t GetMetaArmType(void) { return mMetaArmType; }
-+    boost::int32_t GetMetaArmID(void) { return mMetaArmID; }
-      
-    vector<FullNode *>mTerminalNodes; // 
-     vector<Arm*> mTerminalArms; // one or two arms
-     double mLength; 
--    int8_t mMetaArmType; 
--    uint32_t mMetaArmID; 
--    uint32_t mNumSegments, mNumNodes; 
-+    boost::int8_t mMetaArmType; 
-+    boost::uint32_t mMetaArmID; 
-+    boost::uint32_t mNumSegments, mNumNodes; 
-     static rclib::Point<float> mWrappedNode; // Used in GetNodeLocations -- used to indicate a gap in the point list from a MetaArm where a segment is skipped due to wrapping.  
-     bool mCombo; 
-     bool mFound111; // if we see a 111 on our search
-@@ -1922,21 +1923,21 @@
-     /*!
-       Trace decomposition of the given arm to the given depth.  
-     */ 
--    void TraceNode(int32_t nodeID){
-+    void TraceNode(boost::int32_t nodeID){
-       FullNode::TraceNode(nodeID); 
-     }
-     
-     /*!
-       Trace decomposition of the given arm to the given depth.  
-     */ 
--    void TraceArm(int32_t armID){
-+    void TraceArm(boost::int32_t armID){
-       Arm::TraceArm(armID);
-     }
-     
-     /*! 
-       Set trace depth for arm tracing
-     */ 
--    void SetTraceDepth(uint32_t depth) {
-+    void SetTraceDepth(boost::uint32_t depth) {
-       Arm::SetTraceDepth(depth); 
-     }
-@@ -2044,7 +2045,7 @@
-     /*!
-       Accessor function.
-     */ 
--    uint32_t GetNumNodes(void) { return FullNode::mFullNodeVector.size(); }
-+    boost::uint32_t GetNumNodes(void) { return FullNode::mFullNodeVector.size(); }
-     /*!
-       Accessor returns begin of node vector. 
-     */ 
-@@ -2063,7 +2064,7 @@
-    /*! 
-       Accessor function. 
-     */ 
--    FullNode * GetNode(uint32_t nodenum) { 
-+    FullNode * GetNode(boost::uint32_t nodenum) { 
-       if (nodenum >= FullNode::mFullNodeVector.size()) {
-         cerr << "ERROR: GetNode() -- out of bounds index" << endl; 
-         return NULL; 
-@@ -2104,19 +2105,19 @@
-      /*!
-       Accessor function
-     */
--    uint32_t GetNumMetaArms(void) { return mMetaArms.size(); }
-+    boost::uint32_t GetNumMetaArms(void) { return mMetaArms.size(); }
-     
-     /*!
-       Accessor function
-     */
--    boost::shared_ptr<MetaArm> GetMetaArm(uint32_t metaArmNum) {
-+    boost::shared_ptr<MetaArm> GetMetaArm(boost::uint32_t metaArmNum) {
-       return mMetaArms[metaArmNum]; 
-     }
-     /*!
-       Accessor function
-     */
--    ArmSegment *GetArmSegment(uint32_t segnum) { 
-+    ArmSegment *GetArmSegment(boost::uint32_t segnum) { 
-       if (segnum >= ArmSegment::mArmSegmentVector.size()) {
-         cerr << "" << endl; 
-         return NULL; 
-@@ -2127,7 +2128,7 @@
-     /*! 
-       Accessor function. 
-     */ 
--    uint32_t GetNumArmSegments(void)  { 
-+    boost::uint32_t GetNumArmSegments(void)  { 
-       return  ArmSegment::mArmSegmentVector.size(); 
-     }
-@@ -2200,11 +2201,11 @@
-     /*!
-       Read a node from the input file and write it out with its tag to the tagfile
-     */
--    void CopyNodeFromFile(uint32_t &lineno, map<uint64_t, FullNode*> &nodehash, std::ifstream &datafile, std::ofstream &tagfile);
-+    void CopyNodeFromFile(boost::uint32_t &lineno, map<boost::uint64_t, FullNode*> &nodehash, std::ifstream &datafile, std::ofstream &tagfile);
-     /*! 
-       Read a node and its neighbors from a file.  This has to be done in DataSet because we avoid duplicate neighbor structs by using pointers into a global neighbor array.
-     */ 
--    void ReadMinimalNodeFromFile(uint32_t &lineno, std::ifstream &datafile);
-+    void ReadMinimalNodeFromFile(boost::uint32_t &lineno, std::ifstream &datafile);
-     /*!
-       Make a first pass through the file:  load all as MinimalNodes, with minimal info: {domain and ID, whether out of bounds, neighbor IDs}
-     */ 
-@@ -2317,12 +2318,12 @@
-       When writing out VTK files, this is how many to put per block max.
-       Aids in speedy visualization. 
-     */ 
--    uint32_t mElementsPerVTKFile; 
-+    boost::uint32_t mElementsPerVTKFile; 
-     /*! 
-       Number of nodes in full dump data
-     */ 
--    uint32_t mTotalDumpNodes; 
-+    boost::uint32_t mTotalDumpNodes; 
-     /*!
-       if this is true, then complete dumps of all data are done, 
diff --git a/config/patches/paraview.003_surfacelic.patch b/config/patches/paraview.003_surfacelic.patch
deleted file mode 100644 (file)
index ac90392..0000000
Binary files a/config/patches/paraview.003_surfacelic.patch and /dev/null differ
diff --git a/config/patches/planegcs.001_for_shaper.patch b/config/patches/planegcs.001_for_shaper.patch
new file mode 100644 (file)
index 0000000..28c2a5e
--- /dev/null
@@ -0,0 +1,647 @@
+From 853a0a438422d61cf1b9756d6949e04e5270d495 Mon Sep 17 00:00:00 2001
+From: azv <azv@opencascade.com>
+Date: Thu, 2 Aug 2018 11:32:16 +0300
+Subject: [PATCH] Update PlaneGCS solver for SHAPER needs
+
+* Add possibility to compile PlaneGCS as a shared library
+* Possibility to avoid memory clearance inside the solver (make possible external memory management)
+---
+ src/Mod/Sketcher/App/planegcs/Constraints.h | 48 ++++++++---------
+ src/Mod/Sketcher/App/planegcs/GCS.cpp       | 81 +++++++++++++++++++++++------
+ src/Mod/Sketcher/App/planegcs/GCS.h         |  8 +--
+ src/Mod/Sketcher/App/planegcs/Geo.h         | 34 ++++++------
+ src/Mod/Sketcher/App/planegcs/Util.h        | 10 ++++
+ 5 files changed, 123 insertions(+), 58 deletions(-)
+
+diff --git a/src/Mod/Sketcher/App/planegcs/Constraints.h b/src/Mod/Sketcher/App/planegcs/Constraints.h
+index 559f3a2..76e4763 100644
+--- a/src/Mod/Sketcher/App/planegcs/Constraints.h
++++ b/src/Mod/Sketcher/App/planegcs/Constraints.h
+@@ -91,7 +91,7 @@ namespace GCS
+         HyperbolaNegativeMinorY = 17
+     };
+-    class Constraint
++    class PLANEGCS_EXPORT Constraint
+     {
+     _PROTECTED_UNLESS_EXTRACT_MODE_:
+         VEC_pD origpvec; // is used only as a reference for redirecting and reverting pvec
+@@ -128,7 +128,7 @@ namespace GCS
+     };
+     // Equal
+-    class ConstraintEqual : public Constraint
++    class PLANEGCS_EXPORT ConstraintEqual : public Constraint
+     {
+     private:
+         inline double* param1() { return pvec[0]; }
+@@ -142,7 +142,7 @@ namespace GCS
+     };
+     // Difference
+-    class ConstraintDifference : public Constraint
++    class PLANEGCS_EXPORT ConstraintDifference : public Constraint
+     {
+     private:
+         inline double* param1() { return pvec[0]; }
+@@ -157,7 +157,7 @@ namespace GCS
+     };
+     // P2PDistance
+-    class ConstraintP2PDistance : public Constraint
++    class PLANEGCS_EXPORT ConstraintP2PDistance : public Constraint
+     {
+     private:
+         inline double* p1x() { return pvec[0]; }
+@@ -178,7 +178,7 @@ namespace GCS
+     };
+     // P2PAngle
+-    class ConstraintP2PAngle : public Constraint
++    class PLANEGCS_EXPORT ConstraintP2PAngle : public Constraint
+     {
+     private:
+         inline double* p1x() { return pvec[0]; }
+@@ -200,7 +200,7 @@ namespace GCS
+     };
+     // P2LDistance
+-    class ConstraintP2LDistance : public Constraint
++    class PLANEGCS_EXPORT ConstraintP2LDistance : public Constraint
+     {
+     private:
+         inline double* p0x() { return pvec[0]; }
+@@ -224,7 +224,7 @@ namespace GCS
+     };
+     // PointOnLine
+-    class ConstraintPointOnLine : public Constraint
++    class PLANEGCS_EXPORT ConstraintPointOnLine : public Constraint
+     {
+     private:
+         inline double* p0x() { return pvec[0]; }
+@@ -246,7 +246,7 @@ namespace GCS
+     };
+     // PointOnPerpBisector
+-    class ConstraintPointOnPerpBisector : public Constraint
++    class PLANEGCS_EXPORT ConstraintPointOnPerpBisector : public Constraint
+     {
+     private:
+         inline double* p0x() { return pvec[0]; }
+@@ -268,7 +268,7 @@ namespace GCS
+     };
+     // Parallel
+-    class ConstraintParallel : public Constraint
++    class PLANEGCS_EXPORT ConstraintParallel : public Constraint
+     {
+     private:
+         inline double* l1p1x() { return pvec[0]; }
+@@ -291,7 +291,7 @@ namespace GCS
+     };
+     // Perpendicular
+-    class ConstraintPerpendicular : public Constraint
++    class PLANEGCS_EXPORT ConstraintPerpendicular : public Constraint
+     {
+     private:
+         inline double* l1p1x() { return pvec[0]; }
+@@ -315,7 +315,7 @@ namespace GCS
+     };
+     // L2LAngle
+-    class ConstraintL2LAngle : public Constraint
++    class PLANEGCS_EXPORT ConstraintL2LAngle : public Constraint
+     {
+     private:
+         inline double* l1p1x() { return pvec[0]; }
+@@ -342,7 +342,7 @@ namespace GCS
+     };
+     // MidpointOnLine
+-    class ConstraintMidpointOnLine : public Constraint
++    class PLANEGCS_EXPORT ConstraintMidpointOnLine : public Constraint
+     {
+     private:
+         inline double* l1p1x() { return pvec[0]; }
+@@ -366,7 +366,7 @@ namespace GCS
+     };
+     // TangentCircumf
+-    class ConstraintTangentCircumf : public Constraint
++    class PLANEGCS_EXPORT ConstraintTangentCircumf : public Constraint
+     {
+     private:
+         inline double* c1x() { return pvec[0]; }
+@@ -389,7 +389,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+     // PointOnEllipse
+-    class ConstraintPointOnEllipse : public Constraint
++    class PLANEGCS_EXPORT ConstraintPointOnEllipse : public Constraint
+     {
+     private:
+         inline double* p1x() { return pvec[0]; }
+@@ -411,7 +411,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+     
+-    class ConstraintEllipseTangentLine : public Constraint
++    class PLANEGCS_EXPORT ConstraintEllipseTangentLine : public Constraint
+     {
+     private:
+         Line l;
+@@ -426,7 +426,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+         
+-    class ConstraintInternalAlignmentPoint2Ellipse : public Constraint
++    class PLANEGCS_EXPORT ConstraintInternalAlignmentPoint2Ellipse : public Constraint
+     {
+     public:
+         ConstraintInternalAlignmentPoint2Ellipse(Ellipse &e, Point &p1, InternalAlignmentType alignmentType);
+@@ -442,7 +442,7 @@ namespace GCS
+         InternalAlignmentType AlignmentType;
+     };
+-    class ConstraintInternalAlignmentPoint2Hyperbola : public Constraint
++    class PLANEGCS_EXPORT ConstraintInternalAlignmentPoint2Hyperbola : public Constraint
+     {
+     public:
+         ConstraintInternalAlignmentPoint2Hyperbola(Hyperbola &e, Point &p1, InternalAlignmentType alignmentType);
+@@ -458,7 +458,7 @@ namespace GCS
+         InternalAlignmentType AlignmentType;
+     };
+-    class ConstraintEqualMajorAxesConic : public Constraint
++    class PLANEGCS_EXPORT ConstraintEqualMajorAxesConic : public Constraint
+     {
+     private:
+         MajorRadiusConic * e1;
+@@ -473,7 +473,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+-    class ConstraintEqualFocalDistance : public Constraint
++    class PLANEGCS_EXPORT ConstraintEqualFocalDistance : public Constraint
+     {
+     private:
+         ArcOfParabola * e1;
+@@ -488,7 +488,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+-    class ConstraintCurveValue : public Constraint
++    class PLANEGCS_EXPORT ConstraintCurveValue : public Constraint
+     {
+     private:
+         inline double* pcoord() { return pvec[2]; } //defines, which coordinate of point is being constrained by this constraint
+@@ -515,7 +515,7 @@ namespace GCS
+     };
+     
+     // PointOnHyperbola
+-    class ConstraintPointOnHyperbola : public Constraint
++    class PLANEGCS_EXPORT ConstraintPointOnHyperbola : public Constraint
+     {
+     private:
+         inline double* p1x() { return pvec[0]; }
+@@ -538,7 +538,7 @@ namespace GCS
+     };
+     // PointOnParabola
+-    class ConstraintPointOnParabola : public Constraint
++    class PLANEGCS_EXPORT ConstraintPointOnParabola : public Constraint
+     {
+     private:
+         void errorgrad(double* err, double* grad, double *param); //error and gradient combined. Values are returned through pointers.
+@@ -558,7 +558,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+     
+-    class ConstraintAngleViaPoint : public Constraint
++    class PLANEGCS_EXPORT ConstraintAngleViaPoint : public Constraint
+     {
+     private:
+         inline double* angle() { return pvec[0]; };
+@@ -583,7 +583,7 @@ namespace GCS
+         virtual double grad(double *);
+     };
+-    class ConstraintSnell : public Constraint //snell's law angles constrainer. Point needs to lie on all three curves to be constraied.
++    class PLANEGCS_EXPORT ConstraintSnell : public Constraint //snell's law angles constrainer. Point needs to lie on all three curves to be constraied.
+     {
+     private:
+         inline double* n1() { return pvec[0]; };
+diff --git a/src/Mod/Sketcher/App/planegcs/GCS.cpp b/src/Mod/Sketcher/App/planegcs/GCS.cpp
+index 474024a..9103653 100644
+--- a/src/Mod/Sketcher/App/planegcs/GCS.cpp
++++ b/src/Mod/Sketcher/App/planegcs/GCS.cpp
+@@ -101,11 +101,56 @@
+ #endif
+ #include <FCConfig.h>
++#ifndef _GCS_USE_STL_OUTPUT
+ #include <Base/Console.h>
++#endif
+ #include <boost/graph/adjacency_list.hpp>
+ #include <boost/graph/connected_components.hpp>
++namespace GCS
++{
++  void Log(const char* message)
++  {
++#ifdef _GCS_USE_STL_OUTPUT
++    std::cout << message << std::endl;
++#else
++    Base::Console().Log(message);
++#endif
++  }
++
++  void Log(const char* format, const char* param)
++  {
++#ifdef _GCS_USE_STL_OUTPUT
++    static char message[4096];
++    sprintf(message, format, param);
++    std::cout << message << std::endl;
++#else
++    Base::Console().Log(format, param);
++#endif
++  }
++
++  void Log(const char* format, const size_t param)
++  {
++#ifdef _GCS_USE_STL_OUTPUT
++    static char message[4096];
++    sprintf(message, format, param);
++    std::cout << message << std::endl;
++#else
++    Base::Console().Log(format, param);
++#endif
++}
++
++  void Warning(const char* message)
++  {
++#ifdef _GCS_USE_STL_OUTPUT
++    std::cout << "Warning: " << message << std::endl;
++#else
++    Base::Console().Warning(message);
++#endif
++  }
++}
++
+ typedef Eigen::FullPivHouseholderQR<Eigen::MatrixXd>::IntDiagSizeVectorType MatrixIndexType;
+ #ifdef _GCS_DEBUG
+@@ -130,7 +175,7 @@ void LogMatrix(std::string str, Eigen::MatrixXd matrix )
+ #else
+     const std::string tmp = stream.str();
+-    Base::Console().Log(tmp.c_str());
++    GCS::Log(tmp.c_str());
+ #endif
+ }
+@@ -155,7 +200,7 @@ void LogMatrix(std::string str, MatrixIndexType matrix )
+     #else
+     const std::string tmp = stream.str();
+-    Base::Console().Log(tmp.c_str());
++    GCS::Log(tmp.c_str());
+     #endif
+ }
+ #endif
+@@ -178,7 +223,7 @@ void LogString(std::string str)
+     #else
+     const std::string tmp = stream.str();
+-    Base::Console().Log(tmp.c_str());
++    GCS::Log(tmp.c_str());
+     #endif
+ }
+@@ -429,7 +474,11 @@ void System::clear()
+     reference.clear();
+     clearSubSystems();
++#ifdef _GCS_DO_NOT_FREE_CONSTRAINTS_MEMORY
++    clist.clear();
++#else
+     free(clist);
++#endif
+     c2p.clear();
+     p2c.clear();
+ }
+@@ -486,9 +535,11 @@ void System::removeConstraint(Constraint *constr)
+     }
+     c2p.erase(constr);
++#ifndef _GCS_DO_NOT_FREE_CONSTRAINTS_MEMORY
+     std::vector<Constraint *> constrvec;
+     constrvec.push_back(constr);
+     free(constrvec);
++#endif
+ }
+ // basic constraints
+@@ -1477,7 +1528,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
+                 << ", maxIter: "            << maxIterNumber  << "\n";
+         const std::string tmp = stream.str();
+-        Base::Console().Log(tmp.c_str());
++        GCS::Log(tmp.c_str());
+     }
+     double divergingLim = 1e6*err + 1e12;
+@@ -1493,7 +1544,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
+                         << ", h_norm: "           << h_norm  << "\n";
+                 const std::string tmp = stream.str();
+-                Base::Console().Log(tmp.c_str());
++                GCS::Log(tmp.c_str());
+             }
+             break;
+         }
+@@ -1505,7 +1556,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
+                         << ", divergingLim: "            << divergingLim  << "\n";
+                 const std::string tmp = stream.str();
+-                Base::Console().Log(tmp.c_str());
++                GCS::Log(tmp.c_str());
+             }
+             break;
+         }
+@@ -1542,7 +1593,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
+                     << ", h_norm: "                 << h_norm << "\n";
+             const std::string tmp = stream.str();
+-            Base::Console().Log(tmp.c_str());
++            GCS::Log(tmp.c_str());
+         }
+     }
+@@ -1598,7 +1649,7 @@ int System::solve_LM(SubSystem* subsys, bool isRedundantsolving)
+                 << ", maxIter: "        << maxIterNumber  << "\n";
+         const std::string tmp = stream.str();
+-        Base::Console().Log(tmp.c_str());
++        GCS::Log(tmp.c_str());
+     }
+     double nu=2, mu=0;
+@@ -1712,7 +1763,7 @@ int System::solve_LM(SubSystem* subsys, bool isRedundantsolving)
+                     << ", h_norm: "                 << h_norm << "\n";
+             const std::string tmp = stream.str();
+-            Base::Console().Log(tmp.c_str());
++            GCS::Log(tmp.c_str());
+         }
+     }
+@@ -1757,7 +1808,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
+                 << ", maxIter: "        << maxIterNumber  << "\n";
+         const std::string tmp = stream.str();
+-        Base::Console().Log(tmp.c_str());
++        GCS::Log(tmp.c_str());
+     }
+     Eigen::VectorXd x(xsize), x_new(xsize);
+@@ -1912,7 +1963,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
+                     << ", err(divergingLim): "  << err  << "\n";
+             const std::string tmp = stream.str();
+-            Base::Console().Log(tmp.c_str());
++            GCS::Log(tmp.c_str());
+         }
+         // count this iteration and start again
+@@ -1926,7 +1977,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
+         stream  << "DL: stopcode: "     << stop << ((stop == 1) ? ", Success" : ", Failed") << "\n";
+         const std::string tmp = stream.str();
+-        Base::Console().Log(tmp.c_str());
++        GCS::Log(tmp.c_str());
+     }
+     return (stop == 1) ? Success : Failed;
+@@ -3721,7 +3772,7 @@ int System::diagnose(Algorithm alg)
+     Eigen::SparseQR<Eigen::SparseMatrix<double>, Eigen::COLAMDOrdering<int> > SqrJT;
+ #else
+     if(qrAlgorithm==EigenSparseQR){
+-        Base::Console().Warning("SparseQR not supported by you current version of Eigen. It requires Eigen 3.2.2 or higher. Falling back to Dense QR\n");
++        GCS::Warning("SparseQR not supported by you current version of Eigen. It requires Eigen 3.2.2 or higher. Falling back to Dense QR\n");
+         qrAlgorithm=EigenDenseQR;
+     }
+ #endif
+@@ -4074,7 +4125,7 @@ int System::diagnose(Algorithm alg)
+                         break;
+                 }
+-                Base::Console().Log("Sketcher::RedundantSolving-%s-\n",solvername.c_str());
++                GCS::Log("Sketcher::RedundantSolving-%s-\n",solvername.c_str());
+             }
+             if (res == Success) {
+@@ -4088,7 +4139,7 @@ int System::diagnose(Algorithm alg)
+                 resetToReference();
+                 if(debugMode==Minimal || debugMode==IterationLevel) {
+-                    Base::Console().Log("Sketcher Redundant solving: %d redundants\n",redundant.size());
++                    GCS::Log("Sketcher Redundant solving: %d redundants\n",redundant.size());
+                 }
+                 std::vector< std::vector<Constraint *> > conflictGroupsOrig=conflictGroups;
+diff --git a/src/Mod/Sketcher/App/planegcs/GCS.h b/src/Mod/Sketcher/App/planegcs/GCS.h
+index 17d57c8..ecc5b04 100644
+--- a/src/Mod/Sketcher/App/planegcs/GCS.h
++++ b/src/Mod/Sketcher/App/planegcs/GCS.h
+@@ -69,7 +69,7 @@ namespace GCS
+         IterationLevel = 2
+     };
+-    class System
++    class PLANEGCS_EXPORT System
+     {
+     // This is the main class. It holds all constraints and information
+     // about partitioning into subsystems and solution strategies
+@@ -283,9 +283,9 @@ namespace GCS
+     // Helper elements
+     ///////////////////////////////////////
+-    void free(VEC_pD &doublevec);
+-    void free(std::vector<Constraint *> &constrvec);
+-    void free(std::vector<SubSystem *> &subsysvec);
++    PLANEGCS_EXPORT void free(VEC_pD &doublevec);
++    PLANEGCS_EXPORT void free(std::vector<Constraint *> &constrvec);
++    PLANEGCS_EXPORT void free(std::vector<SubSystem *> &subsysvec);
+ } //namespace GCS
+diff --git a/src/Mod/Sketcher/App/planegcs/Geo.h b/src/Mod/Sketcher/App/planegcs/Geo.h
+index 1cdb983..6246f3b 100644
+--- a/src/Mod/Sketcher/App/planegcs/Geo.h
++++ b/src/Mod/Sketcher/App/planegcs/Geo.h
+@@ -26,16 +26,20 @@
+ #include <cmath>
+ #include "Util.h"
++#ifdef _MSC_VER
++#pragma warning(disable : 4251)
++#endif
++
+ namespace GCS
+ {
+-    class DependentParameters 
++    class PLANEGCS_EXPORT DependentParameters
+     {
+     public:
+         DependentParameters():hasDependentParameters(false) {}
+         bool hasDependentParameters;
+     };
+     
+-    class Point : public DependentParameters
++    class PLANEGCS_EXPORT Point : public DependentParameters
+     {
+     public:
+         Point(){x = 0; y = 0;}
+@@ -55,7 +59,7 @@ namespace GCS
+     ///manually as well. The class also provides a bunch of methods to do math
+     ///on it (and derivatives are calculated implicitly).
+     ///
+-    class DeriVector2
++    class PLANEGCS_EXPORT DeriVector2
+     {
+     public:
+         DeriVector2(){x=0; y=0; dx=0; dy=0;}
+@@ -95,7 +99,7 @@ namespace GCS
+     // Geometries
+     ///////////////////////////////////////
+-    class Curve: public DependentParameters //a base class for all curve-based objects (line, circle/arc, ellipse/arc)
++    class PLANEGCS_EXPORT Curve: public DependentParameters //a base class for all curve-based objects (line, circle/arc, ellipse/arc)
+     {
+     public:
+         virtual ~Curve(){}
+@@ -125,7 +129,7 @@ namespace GCS
+         virtual Curve* Copy() = 0; //DeepSOIC: I haven't found a way to simply copy a curve object provided pointer to a curve object.
+     };
+-    class Line: public Curve
++    class PLANEGCS_EXPORT Line: public Curve
+     {
+     public:
+         Line(){}
+@@ -139,7 +143,7 @@ namespace GCS
+         virtual Line* Copy();
+     };
+-    class Circle: public Curve
++    class PLANEGCS_EXPORT Circle: public Curve
+     {
+     public:
+         Circle(){rad = 0;}
+@@ -153,7 +157,7 @@ namespace GCS
+         virtual Circle* Copy();
+     };
+-    class Arc: public Circle
++    class PLANEGCS_EXPORT Arc: public Circle
+     {
+     public:
+         Arc(){startAngle=0;endAngle=0;rad=0;}
+@@ -169,7 +173,7 @@ namespace GCS
+         virtual Arc* Copy();
+     };
+     
+-    class MajorRadiusConic: public Curve
++    class PLANEGCS_EXPORT MajorRadiusConic: public Curve
+     {
+     public:
+         virtual ~MajorRadiusConic(){}
+@@ -179,7 +183,7 @@ namespace GCS
+         DeriVector2 CalculateNormal(Point &p, double* derivparam = 0) = 0;
+     };
+     
+-    class Ellipse: public MajorRadiusConic
++    class PLANEGCS_EXPORT Ellipse: public MajorRadiusConic
+     {
+     public:
+         Ellipse(){ radmin = 0;}
+@@ -197,7 +201,7 @@ namespace GCS
+         virtual Ellipse* Copy();
+     };
+     
+-    class ArcOfEllipse: public Ellipse
++    class PLANEGCS_EXPORT ArcOfEllipse: public Ellipse
+     {
+     public:
+         ArcOfEllipse(){startAngle=0;endAngle=0;radmin = 0;}
+@@ -215,7 +219,7 @@ namespace GCS
+         virtual ArcOfEllipse* Copy();
+     };
+     
+-    class Hyperbola: public MajorRadiusConic
++    class PLANEGCS_EXPORT Hyperbola: public MajorRadiusConic
+     {
+     public:
+         Hyperbola(){ radmin = 0;}
+@@ -233,7 +237,7 @@ namespace GCS
+         virtual Hyperbola* Copy();
+     };    
+-    class ArcOfHyperbola: public Hyperbola
++    class PLANEGCS_EXPORT ArcOfHyperbola: public Hyperbola
+     {
+     public:
+         ArcOfHyperbola(){startAngle=0;endAngle=0;radmin = 0;}
+@@ -249,7 +253,7 @@ namespace GCS
+         virtual ArcOfHyperbola* Copy();
+     };
+     
+-    class Parabola: public Curve
++    class PLANEGCS_EXPORT Parabola: public Curve
+     {
+     public:
+         Parabola(){ }
+@@ -263,7 +267,7 @@ namespace GCS
+         virtual Parabola* Copy();
+     };    
+-    class ArcOfParabola: public Parabola
++    class PLANEGCS_EXPORT ArcOfParabola: public Parabola
+     {
+     public:
+         ArcOfParabola(){startAngle=0;endAngle=0;}
+@@ -279,7 +283,7 @@ namespace GCS
+         virtual ArcOfParabola* Copy();
+     };
+-    class BSpline: public Curve
++    class PLANEGCS_EXPORT BSpline: public Curve
+     {
+     public:
+         BSpline(){periodic=false;degree=2;}
+diff --git a/src/Mod/Sketcher/App/planegcs/Util.h b/src/Mod/Sketcher/App/planegcs/Util.h
+index 8a759ba..7baafaa 100644
+--- a/src/Mod/Sketcher/App/planegcs/Util.h
++++ b/src/Mod/Sketcher/App/planegcs/Util.h
+@@ -44,4 +44,14 @@ namespace GCS
+ } //namespace GCS
++#if defined WIN32
++#  if defined PLANEGCS_EXPORTS
++#    define PLANEGCS_EXPORT __declspec(dllexport)
++#  else
++#    define PLANEGCS_EXPORT __declspec(dllimport)
++#  endif
++#else
++#  define PLANEGCS_EXPORT
++#endif
++
+ #endif // PLANEGCS_UTIL_H
+-- 
+2.9.0.windows.1
+
diff --git a/config/patches/qt.002_webview_include.patch b/config/patches/qt.002_webview_include.patch
deleted file mode 100644 (file)
index 1cb42bf..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur a/qtwebengine/examples/webenginewidgets/simplebrowser/webview.cpp b/qtwebengine/examples/webenginewidgets/simplebrowser/webview.cpp
---- a/qtwebengine/examples/webenginewidgets/simplebrowser/webview.cpp  2016-05-26 21:01:25.000000000 +0300
-+++ b/qtwebengine/examples/webenginewidgets/simplebrowser/webview.cpp  2016-06-22 11:19:20.000000000 +0300
-@@ -49,6 +49,7 @@
- #include <QMessageBox>
- #include <QNetworkReply>
- #include <QTimer>
-+#include <QDebug>
- WebView::WebView(QWidget *parent)
-     : QWebEngineView(parent)
diff --git a/config/patches/qt.003_webengine.patch b/config/patches/qt.003_webengine.patch
deleted file mode 100644 (file)
index a9d3063..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur qt-5.5.1_SRC_orig/qtwebengine/src/3rdparty/chromium/third_party/mojo/src/mojo/public/c/system/macros.h qt-5.5.1_SRC_modif/qtwebengine/src/3rdparty/chromium/third_party/mojo/src/mojo/public/c/system/macros.h
---- qt-5.5.1_SRC_orig/qtwebengine/src/3rdparty/chromium/third_party/mojo/src/mojo/public/c/system/macros.h     2015-10-13 07:35:48.000000000 +0300
-+++ qt-5.5.1_SRC_modif/qtwebengine/src/3rdparty/chromium/third_party/mojo/src/mojo/public/c/system/macros.h    2015-12-23 11:18:45.000000000 +0300
-@@ -66,10 +66,18 @@
- // Unlike the C++11 |alignas()|, |alignment| must be an integer. It may not be a
- // type, nor can it be an expression like |MOJO_ALIGNOF(type)| (due to the
- // non-C++11 MSVS version).
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__)
-+  #if (__GNUC__<=4) and (_GNUC_MINOR__<= 7)
-+    #define MOJO_ALIGNAS(alignment) __attribute__((aligned(alignment)))
-+  #else
-+    #if __cplusplus >= 201103L
-+     #define MOJO_ALIGNAS(alignment) alignas(alignment)
-+    #else
-+     #define MOJO_ALIGNAS(alignment) __attribute__((aligned(alignment)))
-+    #endif
-+  #endif
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNAS(alignment) alignas(alignment)
--#elif defined(__GNUC__)
--#define MOJO_ALIGNAS(alignment) __attribute__((aligned(alignment)))
- #elif defined(_MSC_VER)
- #define MOJO_ALIGNAS(alignment) __declspec(align(alignment))
- #else
diff --git a/config/patches/qt.004_blender_scene.patch b/config/patches/qt.004_blender_scene.patch
deleted file mode 100644 (file)
index 7dd045c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-diff -NaurwB /tmp/qt/qt-5.6.1__0/qt3d/src/3rdparty/assimp/code/BlenderScene.cpp /tmp/qt/qt-5.6.1__1/qt3d/src/3rdparty/assimp/code/BlenderScene.cpp
---- qt-5.6.1__0/qt3d/src/3rdparty/assimp/code/BlenderScene.cpp 2017-03-15 17:56:09.572756601 +0300
-+++ qt-5.6.1__1/qt3d/src/3rdparty/assimp/code/BlenderScene.cpp 2017-03-15 18:00:35.950259586 +0300
-@@ -677,39 +677,39 @@
- //--------------------------------------------------------------------------------
- void DNA::RegisterConverters() {
--    converters["Object"] = DNA::FactoryPair( &Structure::Allocate<Object>, &Structure::Convert<Object> );
--    converters["Group"] = DNA::FactoryPair( &Structure::Allocate<Group>, &Structure::Convert<Group> );
--    converters["MTex"] = DNA::FactoryPair( &Structure::Allocate<MTex>, &Structure::Convert<MTex> );
--    converters["TFace"] = DNA::FactoryPair( &Structure::Allocate<TFace>, &Structure::Convert<TFace> );
--    converters["SubsurfModifierData"] = DNA::FactoryPair( &Structure::Allocate<SubsurfModifierData>, &Structure::Convert<SubsurfModifierData> );
--    converters["MFace"] = DNA::FactoryPair( &Structure::Allocate<MFace>, &Structure::Convert<MFace> );
--    converters["Lamp"] = DNA::FactoryPair( &Structure::Allocate<Lamp>, &Structure::Convert<Lamp> );
--    converters["MDeformWeight"] = DNA::FactoryPair( &Structure::Allocate<MDeformWeight>, &Structure::Convert<MDeformWeight> );
--    converters["PackedFile"] = DNA::FactoryPair( &Structure::Allocate<PackedFile>, &Structure::Convert<PackedFile> );
--    converters["Base"] = DNA::FactoryPair( &Structure::Allocate<Base>, &Structure::Convert<Base> );
--    converters["MTFace"] = DNA::FactoryPair( &Structure::Allocate<MTFace>, &Structure::Convert<MTFace> );
--    converters["Material"] = DNA::FactoryPair( &Structure::Allocate<Material>, &Structure::Convert<Material> );
--    converters["MTexPoly"] = DNA::FactoryPair( &Structure::Allocate<MTexPoly>, &Structure::Convert<MTexPoly> );
--    converters["Mesh"] = DNA::FactoryPair( &Structure::Allocate<Mesh>, &Structure::Convert<Mesh> );
--    converters["MDeformVert"] = DNA::FactoryPair( &Structure::Allocate<MDeformVert>, &Structure::Convert<MDeformVert> );
--    converters["World"] = DNA::FactoryPair( &Structure::Allocate<World>, &Structure::Convert<World> );
--    converters["MLoopCol"] = DNA::FactoryPair( &Structure::Allocate<MLoopCol>, &Structure::Convert<MLoopCol> );
--    converters["MVert"] = DNA::FactoryPair( &Structure::Allocate<MVert>, &Structure::Convert<MVert> );
--    converters["MEdge"] = DNA::FactoryPair( &Structure::Allocate<MEdge>, &Structure::Convert<MEdge> );
--    converters["MLoopUV"] = DNA::FactoryPair( &Structure::Allocate<MLoopUV>, &Structure::Convert<MLoopUV> );
--    converters["GroupObject"] = DNA::FactoryPair( &Structure::Allocate<GroupObject>, &Structure::Convert<GroupObject> );
--    converters["ListBase"] = DNA::FactoryPair( &Structure::Allocate<ListBase>, &Structure::Convert<ListBase> );
--    converters["MLoop"] = DNA::FactoryPair( &Structure::Allocate<MLoop>, &Structure::Convert<MLoop> );
--    converters["ModifierData"] = DNA::FactoryPair( &Structure::Allocate<ModifierData>, &Structure::Convert<ModifierData> );
--    converters["ID"] = DNA::FactoryPair( &Structure::Allocate<ID>, &Structure::Convert<ID> );
--    converters["MCol"] = DNA::FactoryPair( &Structure::Allocate<MCol>, &Structure::Convert<MCol> );
--    converters["MPoly"] = DNA::FactoryPair( &Structure::Allocate<MPoly>, &Structure::Convert<MPoly> );
--    converters["Scene"] = DNA::FactoryPair( &Structure::Allocate<Scene>, &Structure::Convert<Scene> );
--    converters["Library"] = DNA::FactoryPair( &Structure::Allocate<Library>, &Structure::Convert<Library> );
--    converters["Tex"] = DNA::FactoryPair( &Structure::Allocate<Tex>, &Structure::Convert<Tex> );
--    converters["Camera"] = DNA::FactoryPair( &Structure::Allocate<Camera>, &Structure::Convert<Camera> );
--    converters["MirrorModifierData"] = DNA::FactoryPair( &Structure::Allocate<MirrorModifierData>, &Structure::Convert<MirrorModifierData> );
--    converters["Image"] = DNA::FactoryPair( &Structure::Allocate<Image>, &Structure::Convert<Image> );
-+    converters["Object"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Object>, (DNA::ConvertProcPtr)&Structure::Convert<Object> );
-+    converters["Group"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Group>, (DNA::ConvertProcPtr)&Structure::Convert<Group> );
-+    converters["MTex"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MTex>, (DNA::ConvertProcPtr)&Structure::Convert<MTex> );
-+    converters["TFace"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<TFace>, (DNA::ConvertProcPtr)&Structure::Convert<TFace> );
-+    converters["SubsurfModifierData"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<SubsurfModifierData>, (DNA::ConvertProcPtr)&Structure::Convert<SubsurfModifierData> );
-+    converters["MFace"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MFace>, (DNA::ConvertProcPtr)&Structure::Convert<MFace> );
-+    converters["Lamp"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Lamp>, (DNA::ConvertProcPtr)&Structure::Convert<Lamp> );
-+    converters["MDeformWeight"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MDeformWeight>, (DNA::ConvertProcPtr)&Structure::Convert<MDeformWeight> );
-+    converters["PackedFile"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<PackedFile>, (DNA::ConvertProcPtr)&Structure::Convert<PackedFile> );
-+    converters["Base"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Base>, (DNA::ConvertProcPtr)&Structure::Convert<Base> );
-+    converters["MTFace"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MTFace>, (DNA::ConvertProcPtr)&Structure::Convert<MTFace> );
-+    converters["Material"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Material>, (DNA::ConvertProcPtr)&Structure::Convert<Material> );
-+    converters["MTexPoly"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MTexPoly>, (DNA::ConvertProcPtr)&Structure::Convert<MTexPoly> );
-+    converters["Mesh"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Mesh>, (DNA::ConvertProcPtr)&Structure::Convert<Mesh> );
-+    converters["MDeformVert"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MDeformVert>, (DNA::ConvertProcPtr)&Structure::Convert<MDeformVert> );
-+    converters["World"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<World>, (DNA::ConvertProcPtr)&Structure::Convert<World> );
-+    converters["MLoopCol"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MLoopCol>, (DNA::ConvertProcPtr)&Structure::Convert<MLoopCol> );
-+    converters["MVert"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MVert>, (DNA::ConvertProcPtr)&Structure::Convert<MVert> );
-+    converters["MEdge"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MEdge>, (DNA::ConvertProcPtr)&Structure::Convert<MEdge> );
-+    converters["MLoopUV"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MLoopUV>, (DNA::ConvertProcPtr)&Structure::Convert<MLoopUV> );
-+    converters["GroupObject"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<GroupObject>, (DNA::ConvertProcPtr)&Structure::Convert<GroupObject> );
-+    converters["ListBase"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<ListBase>, (DNA::ConvertProcPtr)&Structure::Convert<ListBase> );
-+    converters["MLoop"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MLoop>, (DNA::ConvertProcPtr)&Structure::Convert<MLoop> );
-+    converters["ModifierData"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<ModifierData>, (DNA::ConvertProcPtr)&Structure::Convert<ModifierData> );
-+    converters["ID"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<ID>, (DNA::ConvertProcPtr)&Structure::Convert<ID> );
-+    converters["MCol"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MCol>, (DNA::ConvertProcPtr)&Structure::Convert<MCol> );
-+    converters["MPoly"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MPoly>, (DNA::ConvertProcPtr)&Structure::Convert<MPoly> );
-+    converters["Scene"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Scene>, (DNA::ConvertProcPtr)&Structure::Convert<Scene> );
-+    converters["Library"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Library>, (DNA::ConvertProcPtr)&Structure::Convert<Library> );
-+    converters["Tex"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Tex>, (DNA::ConvertProcPtr)&Structure::Convert<Tex> );
-+    converters["Camera"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Camera>, (DNA::ConvertProcPtr)&Structure::Convert<Camera> );
-+    converters["MirrorModifierData"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<MirrorModifierData>, (DNA::ConvertProcPtr)&Structure::Convert<MirrorModifierData> );
-+    converters["Image"] = DNA::FactoryPair( (DNA::AllocProcPtr)&Structure::Allocate<Image>, (DNA::ConvertProcPtr)&Structure::Convert<Image> );
- }
diff --git a/config/patches/qt.005_null_ptr.patch b/config/patches/qt.005_null_ptr.patch
deleted file mode 100644 (file)
index 78c01e9..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur a/qtmultimedia/src/gsttools/qgstreamerbushelper.cpp b/qtmultimedia/src/gsttools/qgstreamerbushelper.cpp
---- a/qtmultimedia/src/gsttools/qgstreamerbushelper.cpp        2016-05-31 13:23:00.000000000 +0300
-+++ b/qtmultimedia/src/gsttools/qgstreamerbushelper.cpp        2016-06-22 12:03:49.000000000 +0300
-@@ -52,7 +52,7 @@
-         m_tag(0),
-         m_bus(bus),
-         m_helper(parent),
--        m_intervalTimer(nullptr)
-+        m_intervalTimer(NULL)
-     {
-         // glib event loop can be disabled either by env variable or QT_NO_GLIB define, so check the dispacher
-         QAbstractEventDispatcher *dispatcher = QCoreApplication::eventDispatcher();
diff --git a/config/patches/scotch.001.create_makefile.patch b/config/patches/scotch.001.create_makefile.patch
new file mode 100644 (file)
index 0000000..f9383cc
--- /dev/null
@@ -0,0 +1,25 @@
+diff -Naur scotch-6.0.4_SRC_orig/src/Makefile.inc scotch-6.0.4_SRC_modif/src/Makefile.inc
+--- scotch-6.0.4_SRC_orig/src/Makefile.inc     1970-01-01 03:00:00.000000000 +0300
++++ scotch-6.0.4_SRC_modif/src/Makefile.inc    2018-10-31 16:29:41.986238044 +0300
+@@ -0,0 +1,21 @@
++EXE           =
++LIB           = .a
++OBJ           = .o
++
++MAKE          = make
++AR            = ar
++ARFLAGS               = -ruv
++CAT           = cat
++CCS           = gcc
++CCP           = mpicc
++CCD           = gcc
++CFLAGS                = -fPIC -pg -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
++CLIBFLAGS     =
++LDFLAGS               = -lz -lm -pthread
++CP            = cp
++LEX           = flex -Pscotchyy -olex.yy.c
++LN            = ln
++MKDIR         = mkdir
++MV            = mv
++RANLIB                = ranlib
++YACC          = bison -pscotchyy -y -b y
diff --git a/config/patches/scotch.001_pthreads.patch b/config/patches/scotch.001_pthreads.patch
deleted file mode 100644 (file)
index b654d1f..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -NaurwB scotch-5.1.11__0/src/Make.inc/Makefile.inc.x86-64_pc_linux2.prof scotch-5.1.11__1/src/Make.inc/Makefile.inc.x86-64_pc_linux2.prof
---- scotch-5.1.11__0/src/Make.inc/Makefile.inc.x86-64_pc_linux2.prof   1970-01-01 03:00:00.000000000 +0300
-+++ scotch-5.1.11__1/src/Make.inc/Makefile.inc.x86-64_pc_linux2.prof   2017-03-15 18:17:53.536110097 +0300
-@@ -0,0 +1,21 @@
-+EXE           =
-+LIB           = .a
-+OBJ           = .o
-+
-+MAKE          = make
-+AR            = ar
-+ARFLAGS               = -ruv
-+CAT           = cat
-+CCS           = gcc
-+CCP           = mpicc
-+CCD           = gcc
-+CFLAGS                = -fPIC -pg -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER
-+CLIBFLAGS     =
-+LDFLAGS               = -lz -lm -lrt -lpthread
-+CP            = cp
-+LEX           = flex -Pscotchyy -olex.yy.c
-+LN            = ln
-+MKDIR         = mkdir
-+MV            = mv
-+RANLIB                = ranlib
-+YACC          = bison -pscotchyy -y -b y
-diff -NaurwB scotch-5.1.11__0/src/Makefile.inc scotch-5.1.11__1/src/Makefile.inc
---- scotch-5.1.11__0/src/Makefile.inc  1970-01-01 03:00:00.000000000 +0300
-+++ scotch-5.1.11__1/src/Makefile.inc  2017-03-15 18:17:53.536110097 +0300
-@@ -0,0 +1,21 @@
-+EXE           =
-+LIB           = .a
-+OBJ           = .o
-+
-+MAKE          = make
-+AR            = ar
-+ARFLAGS               = -ruv
-+CAT           = cat
-+CCS           = gcc
-+CCP           = mpicc
-+CCD           = gcc
-+CFLAGS                = -fPIC -pg -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_RENAME_PARSER
-+CLIBFLAGS     =
-+LDFLAGS               = -lz -lm -lrt -lpthread
-+CP            = cp
-+LEX           = flex -Pscotchyy -olex.yy.c
-+LN            = ln
-+MKDIR         = mkdir
-+MV            = mv
-+RANLIB                = ranlib
-+YACC          = bison -pscotchyy -y -b y
diff --git a/config/patches/solvespace.001_nogui.patch b/config/patches/solvespace.001_nogui.patch
deleted file mode 100644 (file)
index b273ca6..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -Naur '--exclude=CVS' '--exclude=.git' solvespace-2.1.orig/CMakeLists.txt solvespace-2.1.p1/CMakeLists.txt
---- solvespace-2.1.orig/CMakeLists.txt 2015-09-28 17:55:15.000000000 +0300
-+++ solvespace-2.1.p1/CMakeLists.txt   2015-09-28 18:05:50.000000000 +0300
-@@ -28,6 +28,10 @@
-     set(GUI gtk2 CACHE STRING "GUI toolkit to use (one of: gtk2 gtk3)")
- endif()
-+# options
-+
-+option(BUILD_GUI "Build only the library part" ON)
-+
- # compiler
- if(WIN32)
-@@ -54,6 +58,8 @@
- CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H)
-+if(BUILD_GUI)
-+
- find_package(OpenGL REQUIRED)
- find_package(Perl)
-@@ -125,6 +131,8 @@
-     endif()
- endif()
-+endif(BUILD_GUI)
-+
- # components
- if(WIN32)
-diff -Naur '--exclude=CVS' '--exclude=.git' solvespace-2.1.orig/src/CMakeLists.txt solvespace-2.1.p1/src/CMakeLists.txt
---- solvespace-2.1.orig/src/CMakeLists.txt     2015-09-28 17:55:15.000000000 +0300
-+++ solvespace-2.1.p1/src/CMakeLists.txt       2015-09-28 18:07:31.000000000 +0300
-@@ -79,6 +79,8 @@
- # generated files
-+if(BUILD_GUI)
-+
- file(GLOB icons "${CMAKE_CURRENT_SOURCE_DIR}/icons/*.png")
- if(PERL_FOUND AND PERLMODULES_FOUND)
-@@ -384,3 +386,5 @@
-         --malloc-fill=0xac
-         --free-fill=0xde
-         $<TARGET_FILE:solvespace>)
-+
-+endif(BUILD_GUI)
diff --git a/config/patches/tbb.001_install_py_backend.patch b/config/patches/tbb.001_install_py_backend.patch
new file mode 100644 (file)
index 0000000..c217160
--- /dev/null
@@ -0,0 +1,13 @@
+diff -Naur tbb-2019-U8_SRC_orig/build/build.py tbb-2019-U8_SRC_modif/build/build.py
+--- tbb-2019-U8_SRC_orig/build/build.py        2019-06-06 13:29:15.000000000 +0300
++++ tbb-2019-U8_SRC_modif/build/build.py       2019-11-15 14:54:44.242189708 +0300
+@@ -198,7 +198,7 @@
+     paths = [os.path.abspath(d) for d in [args.prefix, inc_dir, irml_dir, lib_dir]+release_dirs]
+     os.environ["TBBROOT"] = paths[0]
+     # all the paths must be relative to python/ directory or be absolute
+-    assert system('python python/setup.py build -b%s build_ext -I%s -L%s install -f'% \
+-        (paths[2], paths[1], ':'.join(paths[2:]))) == 0
++    assert system('python3 python/setup.py build -b%s build_ext -I%s -L%s install -f --prefix=%s'% \
++        (paths[2], paths[1], ':'.join(paths[2:]), args.prefix)) == 0
+ print("done")
index ad2b5be6796ab07f1d35c48f8a090d5392a2c4df..dbe31403696645f36393782bd072f689d2716bf3 100644 (file)
@@ -1,22 +1,19 @@
-<?xml version="1.0" encoding="utf-8" ?>
 <!DOCTYPE config>
-<config comment="SALOME 8.5" name="V8_5_0">
+<config comment="SALOME 9.4" name="V9_4_0">
   <product name="alabaster" version="0.7.6" />
-  <product name="babel" version="2.0" />
-  <product name="boost" version="1.52.0">
-    <patches>
-      <patch comment="Fix problem with compiling fcontext.cpp on some platforms" name="boost.001_fcontext.patch" sha1="d4c2de261f478d5892a4a38b38f5f2e62d5ca5b2" />
-      <patch comment="Fix problem with compiling formatter.cpp on some platforms" name="boost.002_icu_formatter.patch" sha1="08ae37016e1a588dda72381210621b007c8c8721" />
-    </patches>
-  </product>
-  <product name="cgnslib" version="3.3.1" />
-  <product name="cmake" version="3.6.2" />
+  <product name="babel" version="2.6.0" />
+  <product name="boost" version="1.58.0" />
+  <product name="certifi" version="2018.4.16" />
+  <product name="cgns" version="3.3.1" />
+  <product name="chardet" version="3.0.4" />
+  <product name="click" version="6.7" />
+  <product name="cmake" version="3.12.1" />
+  <product name="cycler" version="0.10.0" />
   <product name="cppunit" version="1.12.1" />
-  <product name="cython" version="0.23.2" />
+  <product name="cython" version="0.25.2" />
   <product name="dateutils" version="2.4.2" />
-  <product name="distribute" version="0.7.3" />
   <product name="docutils" version="0.12" />
-  <product name="doxygen" version="1.8.3.1" />
+  <product name="doxygen" version="1.8.14" />
   <product name="freeimage" version="3.16.0">
     <patches>
       <patch comment="Fix compilation problems" name="freeimage.001_sources.patch" sha1="d6272a9ac10f9bbbbe6e395185dda2abc11b1d1e" />
@@ -26,7 +23,7 @@
     </patches>
   </product>
   <product name="freetype" version="2.9.0" />
-  <product name="gmsh" version="3.0.5" />
+  <product name="gmsh" version="4.1.4" />
   <product name="gl2ps" version="1.4.0-20170729">
     <patches>
       <patch comment="Fix problem with missing additional libraries" name="gl2ps.001_libs.patch" sha1="59fb1261603d11392ce26a9c98561fa2777d826c" />
       <patch comment="Fix build procedure" name="graphviz.001_build_procedure.patch" sha1="4b227e20ad416e8f08911fa907b66deb1d359102" />
     </patches>
   </product>
-  <product name="hdf5" version="1.8.14" />
-  <product name="homardtool" version="11.11" />
+  <product name="hdf5" version="1.10.3" >
+    <patches>
+      <patch comment="Fix problem with threads libaray" name="hdf5.001_threads_threads.patch" sha1="b0c783d7232f2b061b461e9409222c2d69b7fe49" />
+    </patches>
+  </product> 
+  <product name="homardtool" version="11.12" />
+  <product name="idna" version="2.7" />
+  <product name="imagesize" version="1.0.0" />
+  <product name="ispc" vesrion="1.12.0" />
   <product name="h5py" version="2.5.0" />
   <product name="jinja2" version="2.7.3" />
+  <product name="kiwisolver" version="1.0.1" />
   <product name="lapack" version="3.7.0" />
-  <product name="libxml2" version="2.9.0">
-    <patches>
-      <patch comment="Fix crash on 64bits platforms" name="libxml2.001_64bits_crash.patch" sha1="0fd898b7998ada0ffe6cd6806c0a76564c275386" />
-    </patches>
-  </product>
+  <product name="libxml2" version="2.9.1"/>
+  <product name="llvm" version="8.0.1"/>
   <product name="markupsafe" version="0.23" />
-  <product name="matplotlib" version="2.0.2">
+  <product name="matplotlib" version="2.2.2">
     <patches>
-      <patch comment="Fix build procedure: create configuration file properly" name="matplotlib.001_build_procedure.patch" sha1="38611bfd4148bfb80740c6126a52560b7fecd8cf" />
+      <patch comment="Fix build procedure: create configuration file properly" name="matplotlib.001_build_procedure.patch" sha1="e01651c9160f7a2a73311ba0cbf1686385bea301" />
     </patches>
   </product>
-  <product name="medfile" version="3.3.1">
-    <patches>
-      <patch comment="Fix problem when builiding parallel support" name="medfile.001_parallel.patch" sha1="27e059085ca84be03edeef942de2f5d2e68fab76" />
-      <patch comment="Compatibility with gcc6" name="medfile.002_gcc6.patch" sha1="f625c9ee091ece9e5b7c2aa0c443ed8dfc64e982" />
+  <product name="medfile" version="4.0.0" >
+     <patches>
+      <patch comment="Fix bugs in the med CMake build procedure" name="medfile.001.bug_correct_cmake.patch" sha1="7f34557969af227905a2ce065f25c104a096ff00" />
     </patches>
-  </product>
-  <product name="meshgems" version="2.6-4" />
+  </product> 
+  <product name="meshgems" version="2.9.6" />
   <product name="metis" version="5.1.0" />
   <product name="mpich2" version="1.4.1p1" />
   <product name="mpi4py" version="1.3.1" />
   <product name="netgen" version="5.3.1">
     <patches>
-      <patch comment="General patch needed for SALOME platform" name="netgen.001_sources.patch" sha1="bf57cf2c33d62ee9122c219e5db21ce133286f07" />
+      <patch comment="General patch needed for SALOME platform" name="netgen.001.common.patch" sha1="a0a629d2dde375ee22405e26cae692bad09f8b63" />
     </patches>
   </product>
   <product name="nose" version="1.3.7" />
-  <product name="numpy" version="1.12.1" />
-  <product name="occt" version="7.2.0p3" />
-  <product name="omniorb" version="4.1.6">
+  <product name="numpy" version="1.15.1" >
     <patches>
-      <patch comment="Fix compilation issues" name="omniorb.001_omninotify_compilation.patch" sha1="2ea6f693df5dc9a69cf315b04e9c77f57712a88e" />
-      <patch comment="Fix for 64 bits platforms" name="omniorb.002_omninotify_64bits.patch" sha1="0a7fccb439a368bb0e3a4701df1084e748fd5ece" />
+      <patch comment="Fix problem with shell command" name="numpy.001_shell.patch" sha1="d004dfb9053fcc7bcdc021e8c7aa3eb552a80452" />
     </patches>
   </product>
-  <product name="omniorbpy" version="3.6" />
-  <product name="opencv" version="2.4.13.5">
+  <product name="occt" version="7.3.0p4" />
+  <product name="omniorb" version="4.2.2" />
+  <product name="omniorbpy" version="4.2.2" />
+  <product name="opencv" version="3.2.0">
     <patches>
-      <patch comment="Fix compilation problem (reduce optimizaion level)" name="opencv.001_compile.patch" sha1="1daad6f39cd53502c5062a366fa5a543489cd632"/>
-      <patch comment="Gcc 6 compatibility patch" name="opencv.002_gcc6.patch" sha1="64f8954aadd739037dadac69f7f4ca3a2cf7edd5"/>
+      <patch comment="Fix compilation problem (reduce optimizaion level)" name="opencv.001_compile.patch" sha1="608f927c36b71ba406d23ec8ea97353abdf9e264"/>
+      <patch comment="Fix error in the CMake list" name="opencv.002_cmake.patch" sha1="beedeb178af05ab4b8687fc36ee73a601a0b7461"/>
     </patches>
   </product>
   <product name="openmpi" version="1.8.5" />
-  <product name="paco++" version="0.5.5">
+  <product name="ospray" version="1.8.4" />
+  <product name="packaging" version="17.1" />
+  <product name="paraview" version="5.6.0p2-bfaf7b82">
     <patches>
-      <patch comment="Gcc 4.4 compatibility" name="paco++.001_gcc44_compat.patch" sha1="b1d28cbe87caa37177432aadaa612e792eecf1ea" />
-    </patches>
-  </product>
-  <product name="paraview" version="5.4.1p2-b5c4c893">
-    <patches>
-      <patch comment="Fix problem with installation of VTKTargets.cmake" name="paraview.001_vtk_targets.patch" sha1="6e2024fc8503ef05d0ce493bc4804ff844e6a51a" />
-      <patch comment="Fix compilation of VisItBridge utility" name="paraview.002_visitbridge.patch" sha1="34d2f6f064775c288e5aaba9ad72893c6de6fd72" />
-      <patch comment="Fix hangup on generation of docs in SurfaceLIC plugin" name="paraview.003_surfacelic.patch" sha1="eeca272ec7a01f4dbdec9d0af441a35209aa174b" />
+      <patch comment="Fix problem with python threads" name="paraview.001_against_multiple_py_sv_thr.patch" sha1="6f2bfdc85cd22ceb3ff8a85cd177a0b373461045" />
+      <patch comment="Fix bug in the vtkStateStorage class" name="paraview.002_statestorage_bug.patch" sha1="abc5ad2bf5565ea1edd25df68a4242830b986ae7" />
       <patch comment="Fix problem with forwarding executables on some platforms" name="paraview.004_forwarding.patch" sha1="7856257c15ae5375ac5a88d94868e106379169fa" />
     </patches>
   </product>
   <product name="pygments" version="2.0.2" />
   <product name="pyparsing" version="2.0.3" />
   <product name="pyqt" version="5.9.0" />
-  <product name="python" version="2.7.10" />
+  <product name="python" version="3.6.0" />
   <product name="pytz" version="2015.4" />
   <product name="qt" version="5.9.1">
     <patches>
       <patch comment="Fix problem with proxy factory (WebKit)." name="qt.001_proxy_factory.patch" sha1="7bf00a49425d1e7158e4d98f0dcba625b8462b1a" />
-      <patch comment="Fix problem with compiling webview" name="qt.002_webview_include.patch" sha1="6d4417d08fe32019fa52dd00a48ab1302f4fde94" />
-      <patch comment="Fix problem with compiling QWebEngine with gcc 4.7" name="qt.003_webengine.patch" sha1="1ae91894aee127470b05a9680a8399dd54ed7bf0" />
-      <patch comment="Fix compilation of blender scene (Qt 3D)" name="qt.004_blender_scene.patch" sha1="d36dacb1fbd2438dff5588e2e905a39cec66bf84" />
-      <patch comment="Fix compilation problem with null pointer (nullptr)" name="qt.005_null_ptr.patch" sha1="3112e302b56f1baa3963a5f92fd6eeffd6fe79ce" />
     </patches>
   </product>
   <product name="qwt" version="6.1.2" />
+  <product name="requests" version="2.19.1" />
   <product name="scipy" version="0.18.1" />
   <product name="scotch" version="6.0.4">
     <patches>
-      <patch comment="Fix problem with linking to pthreads" name="scotch.001_pthreads.patch" sha1="10b8e8c0fa1da10f3fb6e266cf3dbddad1755512" />
+      <patch comment="Patch to create Makefile" name="scotch.001.create_makefile.patch" sha1="3247b48c1976e12d0ed4bfca759f9c6a7487ede8" />
     </patches>
   </product>
   <product name="setuptools" version="38.4.0" />
   <product name="sip" version="4.19.3" />
-  <product name="six" version="1.9.0" />
-  <product name="snowballstemmer" version="1.2.0" />
-  <product name="sphinx" version="1.2.3" />
-  <product name="sphinx-inlt" version="0.9.10" />
-  <product name="sphinxcontrib-napoleon" version="2.0.12" />
-  <product name="sphinxrtdtheme" version="0.1.9" />
-  <product name="swig" version="2.0.12" />
+  <product name="six" version="1.10.0" />
+  <product name="snowballstemmer" version="1.2.1" />
+  <product name="sphinx" version="1.7.6" />
+  <product name="sphinxcontrib-napoleon" version="0.6.1" />
+  <product name="sphinxcontrib-websupport" version="1.1.0" />
+  <product name="sphinx-intl" version="1.9.10" />
+  <product name="swig" version="3.0.12" />
   <product name="tcltk" version="8.6.0" />
   <product name="tclx" version="8.4.1" />
-  <product name="tbb" version="4.2.4" />
-  <product name="eigen" version="3.2.7">
+  <product name="tbb" version="2019-U8" >
+    <patches>
+      <patch comment="Patch to install python backend in the TBB dir" name="tbb.001_install_py_backend.patch" sha1="f013ef00fdec58aaf80b447f79fd67807e40982b" />
+    </patches>
+  </product>
+  <product name="urllib3" version="1.23" />
+  <product name="eigen" version="3.2.7" />
+  <product name="embree" version="3.5.2" >
+    <patches>
+      <patch comment="Patch for CentOS-6 platform" name="embree.001_centos6.patch" sha1="63fe01e0c3da109bc092525f9573188e0c5625ea" />
+    </patches>
+  </product>
+  <product name="planegcs" version="0.18" >
     <patches>
-      <patch comment="Replace nullptr with 0" name="eigen.001_replace_nullptr.patch" />
+      <patch comment="Patch planegcs for shaper needs" name="planegcs.001_for_shaper.patch" sha1="2f210b3cc4cb4b59aea1dcd05df406a36342981a" />
     </patches>
   </product>
-  <product name="planegcs" version="0.16" />
-  <product comment="SALOME Geometry module" name="geom" version="V8_5_0" />
-  <product comment="SALOME GUI module" name="gui" version="V8_5_0" />
-  <product comment="SALOME HexaBlock module" name="hexablock" version="V8_5_0" />
-  <product comment="SALOME Homard module" name="homard" version="V8_5_0" />
-  <product comment="SALOME JobManager module" name="jobmanager" version="V8_5_0" />
-  <product comment="SALOME Kernel module" name="kernel" version="V8_5_0" />
-  <product comment="SALOME Med module" name="med" version="V8_5_0" />
-  <product comment="SALOME ParaVis module" name="paravis" version="V8_5_0" />
-  <product comment="SALOME Mesh module" name="smesh" version="V8_5_0" />
-  <product comment="SALOME YACS module" name="yacs" version="V8_5_0" />
-  <product comment="SALOME MG-CadSurf meshing plugin" name="blsurfplugin" version="V8_5_0" />
-  <product comment="SALOME MG-Tetra meshing plugin" name="ghs3dplugin" version="V8_5_0" />
-  <product comment="SALOME MG-Tetra_HPC meshing plugin" name="ghs3dprlplugin" version="V8_5_0" />
-  <product comment="SALOME MG-Hexa meshing plugin" name="hexoticplugin" version="V8_5_0" />
-  <product comment="SALOME HexaBlock meshing plugin" name="hexablockplugin" version="V8_5_0" />
-  <product comment="SALOME MG-Hybrid meshing plugin" name="hybridplugin" version="V8_5_0" />
-  <product comment="SALOME Netgen meshing plugin" name="netgenplugin" version="V8_5_0" />
-  <product comment="SALOME Gmsh meshing plugin" name="gmshplugin" version="V8_5_0" />
-  <product comment="SALOME Documentation tool" name="documentation" version="V8_5_0" />
-  <product comment="SALOME Hxx2salome tool" name="hxx2salome" version="V8_5_0" />
+  <product name="pockets" version="0.6.2" />
+  <product comment="SALOME Geometry module" name="geom" version="" />
+  <product comment="SALOME GUI module" name="gui" version="9_4_0" />
+  <product comment="SALOME HexaBlock module" name="hexablock" version="9_4_0" />
+  <product comment="SALOME Homard module" name="homard" version="9_4_0" />
+  <product comment="SALOME JobManager module" name="jobmanager" version="9_4_0" />
+  <product comment="SALOME Kernel module" name="kernel" version="9_4_0" />
+  <product comment="SALOME Med module" name="med" version="9_4_0" />
+  <product comment="SALOME ParaVis module" name="paravis" version="9_4_0" />
+  <product comment="SALOME Mesh module" name="smesh" version="9_4_0" />
+  <product comment="SALOME YACS module" name="yacs" version="9_4_0" />
+  <product comment="SALOME MG-CadSurf meshing plugin" name="blsurfplugin" version="9_4_0" />
+  <product comment="SALOME MG-Tetra meshing plugin" name="ghs3dplugin" version="9_4_0" />
+  <product comment="SALOME MG-Tetra_HPC meshing plugin" name="ghs3dprlplugin" version="9_4_0" />
+  <product comment="SALOME MG-Hexa meshing plugin" name="hexoticplugin" version="9_4_0" />
+  <product comment="SALOME HexaBlock meshing plugin" name="hexablockplugin" version="9_4_0" />
+  <product comment="SALOME MG-Hybrid meshing plugin" name="hybridplugin" version="9_4_0" />
+  <product comment="SALOME Netgen meshing plugin" name="netgenplugin" version="9_4_0" />
+  <product comment="SALOME Gmsh meshing plugin" name="gmshplugin" version="9_4_0" />
+  <product comment="SALOME Documentation tool" name="documentation" version="9_4_0" />
+  <product comment="SALOME Hxx2salome tool" name="hxx2salome" version="9_4_0" />
   <product comment="libBatch library" name="libbatch" version="V2_4_0" />
-  <product comment="SALOME MedCoupling library" name="medcoupling" version="V8_5_0" />
-  <product comment="SALOME Tutorial" name="tutorial" version="V8_5_0" />
-  <product comment="SALOME YacsGen tool" name="yacsgen" version="V8_5_0" />
-  <product comment="SALOME AtomGen sample module" name="atomgen" version="V8_5_0" />
-  <product comment="SALOME Atomic sample module" name="atomic" version="V8_5_0" />
-  <product comment="SALOME AtomSolv sample module" name="atomsolv" version="V8_5_0" />
-  <product comment="SALOME Calculator sample module" name="calculator" version="V8_5_0" />
-  <product comment="SALOME Component sample module" name="component" version="V8_5_0" />
-  <product comment="SALOME data files" name="samples" version="V8_5_0" />
-  <product comment="SALOME DscCode sample module" name="dsccode" version="V8_5_0" />
-  <product comment="SALOME Hello sample module" name="hello" version="V8_5_0" />
-  <product comment="SALOME Light sample module" name="light" version="V8_5_0" />
-  <product comment="SALOME PyCalculator sample module" name="pycalculator" version="V8_5_0" />
-  <product comment="SALOME PyHello sample module" name="pyhello" version="V8_5_0" />
-  <product comment="SALOME PyLight sample module" name="pylight" version="V8_5_0" />
-  <product comment="SALOME Randomizer sample module" name="randomizer" version="V8_5_0" />
-  <product comment="SALOME Sierpinsky sample module" name="sierpinsky" version="V8_5_0" />
+  <product comment="SALOME MedCoupling library" name="medcoupling" version="9_4_0" />
+  <product comment="SALOME Tutorial" name="tutorial" version="9_4_0" />
+  <product comment="SALOME YacsGen tool" name="yacsgen" version="9_4_0" />
+  <product comment="SALOME AtomGen sample module" name="atomgen" version="9_4_0" />
+  <product comment="SALOME Atomic sample module" name="atomic" version="9_4_0" />
+  <product comment="SALOME AtomSolv sample module" name="atomsolv" version="9_4_0" />
+  <product comment="SALOME Calculator sample module" name="calculator" version="9_4_0" />
+  <product comment="SALOME Component sample module" name="component" version="9_4_0" />
+  <product comment="SALOME data files" name="samples" version="9_4_0" />
+  <product comment="SALOME DscCode sample module" name="dsccode" version="9_4_0" />
+  <product comment="SALOME Hello sample module" name="hello" version="9_4_0" />
+  <product comment="SALOME Light sample module" name="light" version="9_4_0" />
+  <product comment="SALOME PyCalculator sample module" name="pycalculator" version="9_4_0" />
+  <product comment="SALOME PyHello sample module" name="pyhello" version="9_4_0" />
+  <product comment="SALOME PyLight sample module" name="pylight" version="9_4_0" />
+  <product comment="SALOME Randomizer sample module" name="randomizer" version="9_4_0" />
+  <product comment="SALOME Sierpinsky sample module" name="sierpinsky" version="9_4_0" />
 </config>