diff --git a/VERSIONS b/VERSIONS index cf1f36f87..6b574c5c9 100644 --- a/VERSIONS +++ b/VERSIONS @@ -1,17 +1,33 @@ -New in 4.4.2-34 (25 Aug 2022): -- module -T: fixed -morpho cube, made minor fixes, added -statcell and -statvox +New in 4.5.0 (07 Sep 2022): +- module -T: fixed -morpho cube, added -statcell and -statvox , added -ori :flat, added -transform ori, made minor fix to the objective function for tesr (does not change the result), made - minor fixes to -statface and -statpoly. + minor fixes to -statface and -statpoly, made other minor fixes. - module -M: added -transform node and ori, fixed -stateltco and -statelsetco, - made minor fix to inp output, made minor fixes, added -stat{elt,elset}{1d,2d} - theta, added -statelt and -statelset , added - -statelset* elts,nodenb,nodes, made minor fixes. -- module -S: fixed various bugs related to the initial state, made minor other - fixes. -- module -V: made minor fixes. -- general: fixed FORCE_BUILTIN_* configuration options, made various - installation improvements. + added -stat{elt,elset}{1d,2d} theta, fixed nsets in 2D, added -statelt and + -statelset , added -statelset scaleid, added + -statelset* elts,nodenb,nodes, made minor fix to inp output, made minor fixes + and improvements. +- module -S: fixed various bugs related to the initial state, revised odf and + odfn, made minor other improvements. +- module -V: added -datacellsymbol, -datapointsymbol, -lightambient, + -lightsource, -lightdiffuse and -lightreflection options, added -space pf to + plot pole figures, added -space tree to plot a simulation directory, added + -asymptote, added -pfpole, -pfprojection, -pfmode, -pfgrid, -pfkernel, + -pfdir, -pfclustering, -pfsym and -pfshape options, renamed -imageantialias + into -povrayantialiasing, added :shape transformation to color maps, made + minor fixes. +- documentation: made minor improvements. +- general: added tutorials to documentation, fixed FORCE_BUILTIN_* + configuration options, made various installation improvements. + +* Incompatible changes: In -V, removed -sceneshadow (merged in -light), renamed + -imageantialias into -povrayantialiasing, moved point shape definition to + -datapointsymbol, rotated long scale title by 180°, changed syntax for custom + color maps from ::... to custom(,,...). + In -S, changed odf(sigma=) using radians into odf(theta=) using + degrees, changed odfn(sigma=) using radians into odf(theta=) using + degrees. New in 4.4.1 (09 Mar 2022): - module -T: improved -morpho lamellar to avoid unrealistically small lamellae diff --git a/doc/_static/ini b/doc/_static/ini new file mode 100644 index 000000000..03aaa97a5 --- /dev/null +++ b/doc/_static/ini @@ -0,0 +1 @@ +0.088838317183 0.000000000000 0.176326980708 diff --git a/doc/_static/my_theme.css b/doc/_static/my_theme.css new file mode 100644 index 000000000..bf5fc6675 --- /dev/null +++ b/doc/_static/my_theme.css @@ -0,0 +1,3 @@ +.wy-nav-content { + max-width: 1200px !important; +} diff --git a/doc/conf.py b/doc/conf.py index 903de5591..d55251adc 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -11,8 +11,8 @@ import sphinx_rtd_theme project = u'Neper' -version = u'4.4.2-34' -release = u'4.4.2-34' +version = u'4.5.0' +release = u'4.5.0' author = u'Romain Quey' copyright = u'Romain Quey' language = 'en' @@ -22,3 +22,11 @@ 'logo_only': False, 'navigation_depth': 5, } + +def setup(app): + app.add_css_file('my_theme.css') + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff --git a/doc/exprskeys.rst b/doc/exprskeys.rst index f13a15de4..13d479069 100644 --- a/doc/exprskeys.rst +++ b/doc/exprskeys.rst @@ -40,8 +40,8 @@ The following table gives an overview of the functions supported by the default :data:`sign` sign function: -1 if :math:`x<0`; 1 if :math:`x>0` :data:`rint` round to nearest integer :data:`abs` absolute value -:data:`` min of all arguments -:data:`` max of all arguments +:data:`min` min of all arguments +:data:`max` max of all arguments :data:`sum` sum of all arguments :data:`avg` mean value of all arguments =============== ========================================================= @@ -464,8 +464,9 @@ Available keys for a mesh itself are provided below. "co" stands for "cohesive" ======================= ================================================= ============================== **Key** **Descriptor** **Apply to** -:data:`eltnb` element number {0-3}D,co mesh, co-elt mesh +:data:`eltnb` element number {0-3}D,co mesh :data:`nodenb` node number {0-3}D mesh +:data:`elsetnb` elset number {0-3}D,co mesh :data:`partnb` partition number highest-dimension mesh :data:`x` x coordinate {0-3}D mesh :data:`y` y coordinate {0-3}D mesh @@ -494,6 +495,7 @@ Available keys for mesh node, elements and element sets (of all dimensions) and :data:`elsetco` Cohesive elset co elt :data:`part` partition {0-3}D elt, node :data:`group` group {0-3}D elt, {0-3}D elset +:data:`scaleid()` identifier of the corresponding tess cell at scale :data:`` 2D elset, 3D elset :data:`cyl` cylinder polygonization [#cyl]_ 1D elt, 1D elset :data:`vol` volume 3D elt, 3D elset :data:`area` surface area 2D elt @@ -561,15 +563,15 @@ A result of a :ref:`simulation directory ` can be invoked Available results / keys and concerning orientation distributions are provided below. -===================================== ======================================================================================== ==================================================== -**Key** **Descriptor** **Apply to** -:data:`ori` average orientation elset, mesh -:data:`oridisanisoangles` orientation distribution principal angles elset, mesh -:data:`oridisanisoaxes` orientation distribution principal axes elset, mesh -:data:`oridisanisofact` orientation distribution factor elset, mesh -:data:`odf(sigma=value)` ODF defined at elements, with sigma the standard deviation of the kernel (optional) mesh -:data:`odfn(sigma=value)` ODF defined at nodes, with sigma the standard deviation of the kernel (optional) mesh -===================================== ======================================================================================== ==================================================== +===================================== ======================================================================================================= =============== +**Key** **Descriptor** **Apply to** +:data:`ori` average orientation elset, mesh +:data:`oridisanisoangles` orientation distribution principal angles elset, mesh +:data:`oridisanisoaxes` orientation distribution principal axes elset, mesh +:data:`oridisanisofact` orientation distribution factor elset, mesh +:data:`odf(theta=)` ODF defined at elements, with :data:`theta` the standard deviation of the kernel (in degrees, optional) mesh +:data:`odfn(theta=)` ODF defined at nodes, with :data:`theta` the standard deviation of the kernel (in degrees, optional) mesh +===================================== ======================================================================================================= =============== .. _rotations_and_orientations: @@ -643,7 +645,7 @@ Crystal Symmetries Crystal symmetries can be described using the following descriptors. ======================== ============================================ ======================== -Key Descriptor Number of operators +**Key** **Descriptor** **Number of operators** :data:`triclinic` triclinic (Laue group :math:`\overline{1}`) 24 :data:`cubic` cubic 24 :data:`hexagonal` hexagonal 1 @@ -821,29 +823,44 @@ Color Maps .. _color_map_for_integer_values: Color Map for Integer Values -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The *color map* or *palette* used to represent integer values is defined from the above color list, by excluding colors of brightness below 0.2 and above 0.8. The brightness is defined as the average of the channel values divided by 255. The resulting list of colors is: \(1) :data:`red`, (2) :data:`green`, (3) :data:`blue`, (4) :data:`yellow`, (5) :data:`magenta`, (6) :data:`cyan`, (7) :data:`chartreuse`, (8) :data:`springgreen`, (9) :data:`olive`, (10) :data:`purple`, (11) :data:`teal`, (12) :data:`gray`, (13) :data:`deepskyblue`, (14) :data:`lawngreen`, (15) :data:`darkgray`, (16) :data:`orangered`, (17) :data:`silver`, (18) :data:`darkorange`, (19) :data:`mediumblue`, (20) :data:`indigo`, (21) :data:`lightcoral`, (22) :data:`coral`, (23) :data:`salmon`, (24) :data:`aquamarine`, (25) :data:`gold`, (26) :data:`orange`, (27) :data:`darkmagenta`, (28) :data:`darkcyan`, (29) :data:`peru`, (30) :data:`steelblue`, (31) :data:`mediumspringgreen`, (32) :data:`darkslateblue`, (33) :data:`darkgoldenrod`, (34) :data:`lightsalmon`, (35) :data:`lightskyblue`, (36) :data:`tomato`, (37) :data:`slategray`, (38) :data:`hotpink`, (39) :data:`darkkhaki`, (40) :data:`darkturquoise`, (41) :data:`mediumseagreen`, (42) :data:`mediumvioletred`, (43) :data:`violet`, (44) :data:`greenyellow`, (45) :data:`darkseagreen`, (46) :data:`rosybrown`, (47) :data:`deeppink`, (48) :data:`saddlebrown`, (49) :data:`darkviolet`, (50) :data:`dodgerblue`, (51) :data:`lightslategray`, (52) :data:`burlywood`, (53) :data:`mediumslateblue`, (54) :data:`turquoise`, (55) :data:`skyblue`, (56) :data:`mediumturquoise`, (57) :data:`tan`, (58) :data:`limegreen`, (59) :data:`darksalmon`, (60) :data:`lightsteelblue`, (61) :data:`royalblue`, (62) :data:`palegreen`, (63) :data:`crimson`, (64) :data:`mediumorchid`, (65) :data:`khaki`, (66) :data:`lightgreen`, (67) :data:`darkslategray`, (68) :data:`darkorchid`, (69) :data:`seagreen`, (70) :data:`yellowgreen`, (71) :data:`blueviolet`, (72) :data:`palevioletred`, (73) :data:`olivedrab`, (74) :data:`mediumpurple`, (75) :data:`sandybrown`, (76) :data:`darkolivegreen`, (77) :data:`mediumaquamarine`, (78) :data:`slateblue`, (79) :data:`forestgreen`, (80) :data:`midnightblue`, (81) :data:`lightseagreen`, (82) :data:`orchid`, (83) :data:`cornflowerblue`, (84) :data:`sienna`, (85) :data:`firebrick`, (86) :data:`indianred`, (87) :data:`dimgray`, (88) :data:`chocolate`, (89) :data:`brown`, (90) :data:`goldenrod`, (91) :data:`plum` and (92) :data:`cadetblue`. .. _color_map_for_real_values: Color Maps for Real Values -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The color *map* used to represent real values is smooth and obtained by interpolation between nominal colors. `Tinycolormap `_ is used to generate standard color maps: - -================= =============================== ======================== -**Python-style** **Matlab-style** **GitHub-style** -:data:`magma` :data:`parula` :data:`github` -:data:`inferno` :data:`heat` -:data:`plasma` :data:`hot` -:data:`viridis` :data:`jet` -:data:`cividis` :data:`gray` -================= =============================== ======================== - -and :data:`viridis` is the default. See `Tinycolormap `_ for illustrations. - -Alternatively, any series of colors can be used to define a color map. Neper's legacy color map (version :math:`< 4`) is :data:`blue,cyan,yellow,green` and can be obtained using :data:`legacy`. +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The color *map* used to represent real values is smooth and obtained by interpolation between nominal colors. `Tinycolormap `_ is used to generate standard color maps, and the default is :data:`viridis`. The color maps are + +================= =================================================== +**Key** **Color bar** +viridis .. image:: imgs/color-maps-real/viridis.png +cividis .. image:: imgs/color-maps-real/cividis.png +magma .. image:: imgs/color-maps-real/magma.png +inferno .. image:: imgs/color-maps-real/inferno.png +plasma .. image:: imgs/color-maps-real/plasma.png +parula .. image:: imgs/color-maps-real/parula.png +heat .. image:: imgs/color-maps-real/heat.png +hot .. image:: imgs/color-maps-real/hot.png +jet .. image:: imgs/color-maps-real/jet.png +gray .. image:: imgs/color-maps-real/gray.png +github .. image:: imgs/color-maps-real/github.png +================= =================================================== + +Alternatively, a custom color map can be provided as :data:`custom(,,...)`. Neper's legacy color map (version :math:`< 4`) is :data:`custom(blue,cyan,yellow,green)` and can also be obtained using :data:`legacy`: + +================= =================================================== +legacy .. image:: imgs/color-maps-real/legacy.png +================= =================================================== + +Finally, it is possible to gradually fade the start of a color map, to make it starts with white. This can be done using the :data:`fade` modifier, following the syntax :data:`:fade[(threshold)]`. The threshold ranges from 0 to 1 and is equal to 0.1 by default. Fading is applied linearly from 0 (full fading) to the threshold (no fading). Examples are show below: + +================= =================================================== +viridis:fade .. image:: imgs/color-maps-real/viridis-fade.png +viridis:fade(0.2) .. image:: imgs/color-maps-real/viridis-fade0p2.png +================= =================================================== .. [#muparser_doc] Taken from the :data:`muparser` `documentation `_ diff --git a/doc/fileformat.rst b/doc/fileformat.rst index 40055b9e2..cb5261bfd 100644 --- a/doc/fileformat.rst +++ b/doc/fileformat.rst @@ -807,7 +807,7 @@ The file could be used in :data:`-T` as :data:`-n msfile()::msfile(`_ program (version 2.4.2 or higher, excluding version 2.5.1, mandatory for module -M). It is likely to be available from your system package manager. Alternatively, both binary and source-code versions can be downloaded from the program website (compiling from the source code significantly speeds up meshing). Gmsh must be available at the terminal as the command :program:`gmsh`, or the path to its binary must be specified with option :option:`-gmsh` (in module -M). -- The `POV-Ray `_ program (version 3.7 or higher, mandatory for module -V). It is likely to be available on your system or from your system package manager (binary package). Alternatively, both binary and source-code versions can be downloaded the program website. POV-Ray must be available at the terminal as the command :program:`povray`, or the path to its binary must be specified with option :option:`-povray` (in module -V). +- The `POV-Ray `_ program (version 3.7 or higher, mandatory for PNG output in :ref:`neper_v`). It is likely to be available on your system or from your system package manager (binary package). Alternatively, both binary and source-code versions can be downloaded the program website. POV-Ray must be available at the terminal as the command :program:`povray`, or the path to its binary must be specified with option :option:`-povray` (in module -V). + +- The `Asymptote `_ program (for pole figure plots in :ref:`neper_v`). It is likely to be available from your system package manager. Alternatively, both binary and source-code versions can be downloaded from the program website. Asymptote must be available at the terminal as the command :program:`asy`, or the path to its binary must be specified with option :option:`-asy` (in module -V). Finally, other third-party libraries are directly included in the source code (see directory :file:`src/contrib`) and are therefore not dependencies *per se*: @@ -275,7 +277,7 @@ Neper runs on all threads by default. The actual number of threads to use can b The environment variable is unset by default. -Conventions used in this manual +Conventions Used in This Manual ------------------------------- .. index:: @@ -307,6 +309,8 @@ Conventions used in this manual - File names are printed like :file:`this`. +Just like the :data:`$` sign, the :data:`<`, :data:`>`, :data:`[`, :data:`]`, :data:`{`, :data:`}`, etc. signs are used only for formatting and should not be typed. + Options that are only of secondary importance or for fine tuning are tagged :data:`(Secondary option)`. Some options, such as :data:`-datacellcol`, :data:`-datafacecol`, etc., differ only by the fact that they apply to different entities and are documented together, as :data:`-data{cell,...,face,...}col`. @@ -327,13 +331,14 @@ jargon: :code:`csys` coordinate system :code:`diameq` equivalent diameter :code:`dim` dimension +:code:`dir` directory or direction :code:`dis` distribution or distortion :code:`dof` degree of freedom :code:`dup` duplicate(d) :code:`elset` element set :code:`elt` element :code:`expr` expression -:code:`` factor +:code:`fact` factor :code:`faset` element face set :code:`geo` geometry :code:`id` identifier @@ -341,8 +346,8 @@ jargon: :code:`inf` infinity :code:`inter` interpolation :code:`iter` iteration -:code:`` maximum -:code:`` minimum +:code:`max` maximum +:code:`min` minimum :code:`morpho` morphology :code:`nb` number :code:`neigh` neighbor @@ -353,9 +358,9 @@ jargon: :code:`poly` polyhedron :code:`pov` POV-Ray file :code:`qual` quality -:code:`` radius +:code:`rad` radius :code:`rcl` relative characteristic length -:code:`` resolution +:code:`res` resolution :code:`rmax` relative maximum :code:`sing` singular :code:`stat` statistics diff --git a/doc/neper_s.rst b/doc/neper_s.rst index 2ba16324d..9fde2cc0c 100644 --- a/doc/neper_s.rst +++ b/doc/neper_s.rst @@ -122,7 +122,7 @@ Below are options to define the results to add to a simulation directory. The r .. option:: -res{cell,tess,node,elt,elset,mesh,} ,,... - Specify the results to add, remove or update. Provide as argument :data:``, :data:`'!'` [#quotes]_ or :data:`\\\` to add, remove or update result :data:``, respectively. Provide :data:`` or :data:`\\` to get a specific component of an existing result (:data:`` or :data:`\`, vectorial or tensorial, respectively, 1-indexed) [#f3]_ , :data:`:file()` to import results from files of basename :data:`` (the files of the different steps must be available as :data:`.step*`), or any expression based on the tessellation, mesh or simulation results (the mesh results can be any variables described in :ref:`tessellation_keys`, :ref:`raster_tessellation_keys` and :ref:`mesh_keys`). For nodes, :data:`disp` can be used to get the node displacements from the node coordinates. To use a simulation result at a specific step, use :data:`(step=)`, where :data:`` is the result and :data:`` is the step number. To define a name corresponding to a result, use :data:`:\`, where :data:`` is the name and :data:`` is its expression. To provide several values, combine them with :data:`,`. + Specify the results to add, remove or update. Provide as argument :data:``, :data:`'!'` [#quotes]_ or :data:`\\\` to add, remove or update result :data:``, respectively. Provide :data:`` or :data:`\\` to get a specific component of an existing result (:data:`` or :data:`\`, vectorial or tensorial, respectively, 1-indexed) [#f3]_ , :data:`:file()` to import results from files of basename :data:`` (the files of the different steps must be available as :data:`.step*`; if the file does not exist, it is attempted to read from :data:``), or any expression based on the tessellation, mesh or simulation results (the mesh results can be any variables described in :ref:`tessellation_keys`, :ref:`raster_tessellation_keys` and :ref:`mesh_keys`). For nodes, :data:`disp` can be used to get the node displacements from the node coordinates. To use a simulation result at a specific step, use :data:`(step=)`, where :data:`` is the result and :data:`` is the step number. To define a name corresponding to a result, use :data:`:\`, where :data:`` is the name and :data:`` is its expression. To provide several values, combine them with :data:`,`. **Default value**: -. diff --git a/doc/neper_t.rst b/doc/neper_t.rst index 03ff03bf1..866a19918 100644 --- a/doc/neper_t.rst +++ b/doc/neper_t.rst @@ -336,7 +336,7 @@ These options can be used to set the cell morphology. - :data:`reps`: relative error on the value of the objective function evaluated on a number of degrees of freedom basis (:data:`nlopt_eps` or :data:`nlopt_reps` are the NLopt iteration-based values); - :data:`xeps`: absolute error on the components of the solution vector; - :data:`xreps`: relative error on the components of the solution vector; - - :data:``: value of the objective function; + - :data:`val`: value of the objective function; - :data:`itermax`: a maximum number of iterations; - :data:`time`: maximum computation time; - :data:`loopmax`: maximum number of iteration loops (see option :option:`-morphooptialgomaxiter`). @@ -463,7 +463,7 @@ Crystal Orientation Options - :data:`uniform`: uniformly-distributed orientations in 3D space [#uniform-crysym]_; - - :data:`orientation[:]`: a :ref:`discrete orientation `, with an optional disorientation distribution (see below); + - :data:`[:]`: a :ref:`discrete orientation `, with an optional disorientation distribution (see below); - :data:`fiber(,,,,,)[:normal(=)]`: randomly-distributed orientations along the fiber, see :ref:`orientation_fibers`, with an optional disorientation distribution (see below); diff --git a/doc/neper_v.rst b/doc/neper_v.rst index 534d6f25e..71efb1044 100644 --- a/doc/neper_v.rst +++ b/doc/neper_v.rst @@ -1,7 +1,7 @@ .. |translate| replace:: :data:`translate(,,)`: translate by distances :data:``, :data:`` and :data:`` along :data:`x`, :data:`y` and :data:`z`, respectively .. |rotate| replace:: :data:`rotate(,,,)`: rotate about the center and by an axis/angle pair (angle expressed in degrees) .. |scale| replace:: :data:`scale(,,)`: scale by :data:``, :data:`` and :data:`` along :data:`x`, :data:`y` and :data:`z`, respectively -.. |data_description| replace:: This can be done either directly, by providing one or several values (e.g. the RGB channel values for color) or indirectly, e.g. using scalar values that are converted in color using a given *color scheme*. In this case (and for real-type data), a scale image is also generated, and its properties (minimum, maximum and tick values) can be set. +.. |data_description| replace:: This can be done either directly, by providing one or several values (e.g. the RGB channel values for color) or indirectly, e.g. using scalar values that are converted in color using a given *color scheme*. In this case (and for real-type data), a scale image is also generated, and its properties (minimum, maximum and tick values) can be specified. .. index:: single: -V @@ -11,9 +11,17 @@ Visualization Module (-V) ========================= -Module -V is the module for visualizing tessellations, meshes and simulation results as publication-quality PNG images or VTK files, for interactive visualization. Results can be defined from internal data, data loaded from external files or a simulation directory as generated by module -S. For the PNG images, it is possible to set different attributes of the tessellations and meshes such as the node coordinates, or the colors and transparencies of the different entities. Point data can also be represented, using symbols of specified sizes and colors. Slice views can also be generated. +Module -V is the module for visualizing tessellations, meshes, simulation results and custom data, either as publication-quality (raster) PNG or (vectorial) PDF images, or VTK files, for interactive visualization. Visualization can be done in real (physical) space, but also on pole figures, which is managed by option :option:`-space`. -Contrary to other modules, module -V processes the command arguments one after the other. Typically, module -V can be used to visualize tessellations, meshes, points, or results of a simulation directory (on the mesh). The aspects of all entities (tessellation polyhedra, faces, edges, vertices, seeds and crystals, 3D, 2D, 1D and 0D mesh elements and nodes, and points) can be set in detail (options :data:`-data*`). A crystal is plotted at the center of its cell, shaped according to the `Crystal Symmetry `_ and has the same volume as its cell. In the case of a PNG output file, the scene itself can also be set in detail: visibility of the different entities (options :data:`-show*`), camera position and angle, projection type, image size, etc. (options :data:`-camera*` or :data:`-image*`). The coordinate system can also be added. +Virtually any detail of the visualization can be set. For example, all entities (tessellation polyhedra, faces, edges, vertices, seeds and crystals, 3D, 2D, 1D and 0D mesh elements and nodes, and points) can be assigned a particular color, size, transparency, etc. (options :data:`-data*`), the visibility of the different entities can be adjusted (options :option:`-show*`), or slice views can be generated (option :option:`-slicemesh`). This different capabilities make it possible to carry out standard or advanced visualizations but also post-processing. + +.. note:: The specification of colors, etc. via options :option:`-data*` and visibility via options :option:`-show*` is common to all spaces. + +Standard, real space visualizations (default :option:`-space` :data:`real`) are achieved using the POV-Ray ray tracing renderer to produce high-quality (raster) PNG images. The parameters of the "scene" are assigned default values, but can also be fine-tuned, such as the light positions, camera position and angle, projection type, etc. (options :data:`-camera*` and :data:`-light*`). + +Pole figure visualizations (:option:`-space` :data:`pf`) are achieved using the Asymptote vector graphics rendered to produce high-quality (raster) PNG images (by default), but also high-quality (vectorial) PDF images. Data can be represented as symbols or a density field, and can be superimposed. + +In contrast to other modules, module -V processes the command arguments one after the other. Here is what a typical run of module -V looks like: @@ -67,16 +75,38 @@ Prerequisites .. option:: -povray - Specify the POV-Ray command or the path to the POV-Ray binary (for generating PNG images). + Specify the POV-Ray command or the path to the POV-Ray binary (for generating standard PNG images). **Default value**: :data:`povray`. +.. option:: -asymptote + + Specify the Asymptote command or the path to the Asymptote binary (for generating pole figures). + + **Default value**: :data:`asy`. + +.. _neper_v_input_data: + Input Data ~~~~~~~~~~ .. option:: ,,... - Specify the names of the input file(s) or directory. The file(s) can be a :ref:`tess_file`, a :ref:`tesr_file`, a :ref:`mesh_file`, or a :ref:`position_file` (for points), and the directory can be a :ref:`simulation_directory`. + Specify the input file(s) or directory. The argument can be: + + - a :ref:`tess_file`; + - a :ref:`tesr_file`; + - a :ref:`mesh_file`; + - a :ref:`simulation_directory`; + - :data:`[[(type=)]:]file([,des=])`: a custom input (points, vectors, ...) to load from a :ref:`data_file`, given a custom name, :data:`` (default :data:`point`), and of a specified type, which can be: + + - :data:`point`: points (default in :option:`-space` :data:`real`); + - :data:`ori`: orientations (default in :option:`-space` :data:`pf`); + - :data:`vector`: vectors. + + For :data:`ori`, the descriptor can be specified (see :ref:`rotations_and_orientations`, default :data:`rodrigues`). + + .. note:: As a custom input is loaded, new options such as :option:`-datacol`, :option:`-show\`, etc. are defined, as described in the following. It is possible to load several custom inputs. **Default value**: -. @@ -93,21 +123,44 @@ The data internal to the simulation directory have the same status as internal d Space Options ~~~~~~~~~~~~~ -The following option enables the definition of the space which the input data (tessellation, mesh, point, etc.) are defined in. The space is most generally real (physical) space, but can be defined as Rodrigues orientation space, which makes it possible to account for its distortion [#space]_. +The following option enables the definition of the space in which data (simulation, tessellation, mesh, point, etc.) are represented. The space is most generally real (physical) space, :data:`real`, but can be defined as pole figure space, :data:`pf`, or tree space, :data:`tree`. Tree space shows a tree-like structure of a simulation directory. -.. option:: -space (secondary option) +.. option:: -space - Specify the space which the input data are defined in, which can be: + Specify the space in which data are represented, which can be: - - :data:`real` for real space; - - :data:`rodrigues` for Rodrigues orientation space. + - :data:`real`: real (physical) space; + - :data:`pf`: pole figure space; + - :data:`tree`: tree space. **Default value**: :data:`real`. -Tessellation Data Loading and Rendering -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. - :data:`rodrigues` for Rodrigues orientation space; + +Tessellation Data Loading and Rendering Options +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following option enables the definition of the cell data itself (pole figure space only): + +.. index:: + single: -datacell -The following options enable the definition of the properties (color and size) of the tessellation cells or entities (polyhedra, faces, edges and vertices), seeds and crystals. |data_description| +.. option:: -datacell : + + Specify the cell data type and value, which can be: + + - :data:`ori`: orientations; + - :data:`vector:\`: a vectorial result from the :ref:`simulation_directory`. + + **Default value**: :data:`ori`. + + +The following options enable the definition of the properties (color and size) of the tessellation cells or entities (polyhedra, faces, edges and vertices), seeds and crystals. *Crystals* are plotted at the centers of their respective cells, shaped according to the `Crystal Symmetry `_ and have the same volumes as their respective cells. |data_description| + +For each entity, all attributes can be set, although the may not apply in certain spaces (see option :option:`-space`). Specifically, + + - :data:`-data{cell,poly,face}rad` applies only in PF space; + - :data:`-data*trs` does not apply in PF space. .. index:: single: -datacellcol @@ -118,11 +171,13 @@ The following options enable the definition of the properties (color and size) o single: -dataseedcol single: -datavoxcol single: -datavoidvoxcol + single: -datacrystaledgecol + single: -datacelledgecol single: -datavoxedgecol single: -datacrystalcol single: -data...col -.. option:: -data{cell,poly,face,edge,ver,seed,crystal,vox,voidvox,voxedge}col +.. option:: -data{cell,poly,face,edge,ver,seed,crystal,vox,voidvox,{crystal,cell,vox}edge}col Specify the colors, which can be done in two main different ways. @@ -159,8 +214,11 @@ The following options enable the definition of the properties (color and size) o See also option :data:`-data...colscheme`. + .. note:: :option:`-datacelledgecol` applied only in PF space. + **Default value**: :data:`id` for cells and crystals, :data:`white` for faces, :data:`black` for edges and vertices, :data:`gray` for seeds, voxels and void voxels, :data:`black` for voxel edges. + .. index:: single: -datacellcolscheme single: -datapolycolscheme @@ -178,9 +236,9 @@ The following options enable the definition of the properties (color and size) o Specify the color scheme used to get colors from the data loaded with option :data:`-data...col`. The type of color scheme depends on the type of data. - - For integer values, the color scheme is :data:`palette` (see :ref:`colors_and_color_maps`); + - For integer values, the color scheme is :data:`palette`, as described in :ref:`color_map_for_integer_values`; - - For real values, the available color schemes are described in :ref:`colors_and_color_maps`; + - For real values, the available color schemes are described in :ref:`color_map_for_real_values`; - For crystal orientations (cubic symmetry is assumed), the color scheme can be: @@ -211,7 +269,7 @@ The following options enable the definition of the properties (color and size) o - an expression based on the variables described in :ref:`tessellation_keys`, such as :data:`x` or :data:`vol`, or in a :ref:`simulation_directory`, which allows to define individual values; - :data:`file()`: individual values to load from a :ref:`data_file`. -.. option:: -data{edge,ver,seed,crystal,voxedge}rad +.. option:: -data{cell,poly,face,edge,ver,seed,crystal,{crystal,cell,vox}edge}rad Specify the radii, which can be: @@ -219,6 +277,8 @@ The following options enable the definition of the properties (color and size) o - an expression based on the variables described in :ref:`tessellation_keys`, such as :data:`x` or :data:`vol`, or in a :ref:`simulation_directory`, which allows to define individual values; - :data:`file()`: individual values to load from a :ref:`data_file`. + .. note:: :option:`-datacelledgerad` applied only in PF space. + **Default value**: tessellation dependent. .. option:: -data{cell,poly,face,edge,ver,seed,crystal,vox}scale @@ -240,20 +300,25 @@ The following options enable the definition of the properties (color and size) o **Default value**: -. -.. option:: -datacrystaledgerad +.. option:: -datacellsymbol - Specify the radius of the crystals edges, which can be any real value (:math:`\geq0`). + Specify the symbol representing the cells (only for :option:`-space` :data:`pf`), which can be: - **Default value**: :data:`0`. + - a symbol to apply to all cells (see below); + - :data:`file()`: individual values to load from a :ref:`data_file`. -.. option:: -datacrystaledgecol + A symbol can be (all arguments are optional, and the radius is taken from option :option:`-datarad` if defined): - Specify the color of the crystal edges, which can be a color as described in :ref:`colors_and_color_maps`. + - :data:`circle([rad=)`: a circle/disc of specified radius; + - :data:`square[(rad=,theta=)]`: a square of specified properties; + - :data:`triangle[(rad=,theta=)]`: a triangle of specified properties; + - :data:`diamond[(rad=,theta=)]`: a diamond (45° rotated square) of specified properties. + - :data:`star[(rad=,theta=)]`: a R-branch star of specified properties. - **Default value**: tessellation dependent. + **Default value**: :data:`circle`. -Mesh Data Loading and Rendering -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Mesh Data Loading and Rendering Options +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following options enable the definition of the properties (color, size, etc.) of the mesh entities (3D, 2D, 1D and 0D elements and elsets, nodes, and full mesh). :data:`elt` and :data:`elset` refer to the elements and elsets of higher dimensions. The dimension can be also be specified explicitly, as in :data:`elt2d` or :data:`elset2d`. :data:`node` represents all nodes, and :data:`mesh` the full mesh. |data_description| @@ -307,9 +372,9 @@ The following options enable the definition of the properties (color, size, etc. Specify the color scheme used to get colors from the data loaded with option :data:`-data...col`. The type of color scheme depends on the type of data. - - For integer values, the color scheme is :data:`palette` (see :ref:`colors_and_color_maps`); + - For integer values, the color scheme is :data:`palette`, as described in :ref:`color_map_for_integer_values`; - - For real values, the available color schemes are described in :ref:`colors_and_color_maps`; + - For real values, the available color schemes are described in :ref:`color_map_for_real_values`; - For crystal orientations (cubic symmetry is assumed), the color scheme can be: @@ -376,14 +441,14 @@ The following options enable the loading of node positions. **Default value**: :data:`1`. -Point Data Loading and Rendering -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Custom Input Data Loading and Rendering Options +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The following options enable the definition of the properties (color, shape, size, etc.) of points loaded as input. |data_description| +The following options enable the definition of the properties (color, shape, size, etc.) of custom inputs. |data_description| -.. option:: -datapointcol +.. option:: -datacol - Specify the colors of the points, which can be done in two main different ways. + Specify the colors of the input points, which can be done in two main different ways. **Colors can be specified directly**: @@ -404,34 +469,34 @@ The following options enable the definition of the properties (color, shape, siz - an expression based on the variables described in :ref:`point_keys`, such as :data:`x` or :data:`y`, which allows to define individual values; - :data:`file()`: individual values to load from a :ref:`data_file`. - See also option :option:`-datapointcolscheme`. + See also option :option:`-datacolscheme`. - **Default value**: :data:`gray`. + **Default value**: :data:`id`. -.. option:: -datapointcolscheme +.. option:: -datacolscheme - Specify the color scheme used to get colors from the data loaded with option :option:`-datapointcol`. + Specify the color scheme used to get colors from the data loaded with option :option:`-datacol`. The type of color scheme depends on the type of data. - - For integer values, the color scheme is :data:`palette` (see :ref:`colors_and_color_maps`); + - For integer values, the color scheme is :data:`palette`, as described in :ref:`color_map_for_integer_values`; - - For real values, the available color schemes are described in :ref:`colors_and_color_maps`; + - For real values, the available color schemes are described in :ref:`color_map_for_real_values`; **Default value**: :data:`palette` for integer values and :data:`viridis` for real values. -.. option:: -datapointtrs +.. option:: -datatrs - Specify the transparency of the points (a value from 0 to 1), which can be: + Specify the transparency of the input points (a value from 0 to 1), which can be: - a real value; - :data:`file()`: individual values to load from a :ref:`data_file`. **Default value**: :data:`0`. -.. option:: -datapointscale +.. option:: -datascale - Specify the scale relative to the :data:`-datapointcol real` data, which can be: + Specify the scale relative to the :data:`-datacol real` data, which can be: - :data:`:\`: minimal and maximal values; - :data:`:\:...:\`: minimal, intermediate and maximal values. @@ -442,15 +507,15 @@ The following options enable the definition of the properties (color, shape, siz **Default value**: :data:`:\`. -.. option:: -datapointscaletitle +.. option:: -data<input>scaletitle <title> - Specify the title of the scale relative to the :data:`-datapointcol real` data. + Specify the title of the scale relative to the :data:`-data<input>col real` data. **Default value**: -. -.. option:: -datapointcoo <coo> +.. option:: -data<input>coo <coo> - Specify the coordinates of the points, which can be done in two main different ways. + Specify the coordinates of the input points, which can be done in two main different ways. **Coordinates can be specified directly as follows:** @@ -464,41 +529,54 @@ The following options enable the definition of the properties (color, shape, siz **Default value**: -. -.. option:: -datapointcoofact <fact> +.. option:: -data<input>coofact <fact> - Specify the value of the scaling factor to apply to the displacements of the points. + Specify the value of the scaling factor to apply to the displacements of the input points. **Default value**: :data:`1`. -.. option:: -datapointrad <rad> +.. option:: -data<input>rad <rad> - Specify the radii (and shapes) of the points, which can be: + Specify the radii of the input points, which can be: - a real value; - :data:`file(<file_name>)`: individual values to load from a :ref:`data_file` (not for :data:`*edge*`). - - :data:`cube:file(<file_name>)`: cubes of properties to load from a :ref:`data_file`. The file must contain, for each point, the radius (half of the edge length) and the coordinates of the three axes (which also is the rotation matrix that brings the reference axes into coincidence with the cube axes). - - :data:`cylinder:file(<file_name>)`: cylinders of properties to load from a :ref:`data_file`. The file must contain, for each point, the radius, the length and the coordinates of the axis. - - :data:`arr:file(<file_name>)`: arrows of properties to load from a :ref:`data_file`. The file must contain, for each point, the radius, the length and the coordinates of the axis. - - :data:`disc:file(<file_name>)`: discs of properties to load from a :ref:`data_file`. The file must contain, for each point, the radius and the coordinates of the axis. - - :data:`ell:file(<file_name>)`: ellispoids of properties to load from a :ref:`data_file`. The file must contain, for each point, the three radii and the coordinates of the three axes. - - :data:`tor:file(<file_name>)`: torus of properties to load from a :ref:`data_file`. The file must contain, for each point, the major radius (center to center line), the minor radius and the coordinates of the normal axis. - **Default value**: point set dependent. + **Default value**: :data:`0.02`. + +.. option:: -data<input>symbol <symbol> -.. option:: -datapointedgerad <rad> + Specify the symbol representing the input points, which can be: + + - a symbol to apply to all input points (see below); + - :data:`file(<file_name>)`: individual values to load from a :ref:`data_file`. - Specify the radius of the point edges (represented as symbols), which can be any real value (:math:`\geq0`). + A symbol can be (all arguments are optional, and the radius is taken from option :option:`-data<entity>rad` if defined): + + - :data:`sphere([rad=<rad>])`: a sphere of radius :data:`<rad>`; + - :data:`cube[([rad=<rad>,[ori=<ori>)]`: a cube of radius (half edge length) :data:`<rad>` and orientation :data:`<ori>` (default identity); + - :data:`cylinder[(rad=<rad>,length=<length>,axis=(<axis_x>,<axis_y>,<axis_z>))]`: a cylinder of specified properties; + - :data:`arrow[(rad=<rad>,length=<length>,axis=(<axis_x>,<axis_y>,<axis_z>))]`: an arrow of specified properties; + - :data:`disc[(rad=<rad>,axis=(<axis_x>,<axis_y>,<axis_z>))]`: a disc of specified properties; + - :data:`ellipsoid[(rad1=<rad>,rad2=<rad>,rad3=<rad>,axis1=(<axis_x>,<axis_y>,<axis_z>)],axis2=(<axis_x>,<axis_y>,<axis_z>),axis3=(<axis_x>,<axis_y>,<axis_z>))]`: an ellipsoid of specified properties; + - :data:`torus[(rad1=<rad>,rad2=<rad>,axis=(<axis_x>,<axis_y>,<axis_z>)]`: a torus of specified properties. + + **Default value**: sphere. + +.. option:: -data<input>edgerad <rad> + + Specify the radius of the input point edges (represented as symbols), which can be any real value (:math:`\geq0`). **Default value**: :data:`0`. -.. option:: -datapointedgecol <color> +.. option:: -data<input>edgecol <color> - Specify the color of the point edges (represented as symbols), which can be a color as described in :ref:`colors_and_color_maps`. + Specify the color of the input point edges (represented as symbols), which can be a color as described in :ref:`colors_and_color_maps`. **Default value**: :data:`black`. -Coordinate System Rendering -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Coordinate System Rendering Options +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. option:: -datacsyscoo <coo_x>:<coo_y>:<coo_z> @@ -522,7 +600,9 @@ Coordinate System Rendering Specify the labels of the coordinate system axes. - **Default value**: :data:`X1:X2:X3`. + .. note:: A LaTeX (mathematical) syntax can be used, but is interprated as such only by the Asymptote renderer. + + **Default value**: :data:`$X_1$:$X_2$:$X_3$`. .. option:: -datacsyscol <color> @@ -536,29 +616,20 @@ Coordinate System Rendering **Default value**: :data:`1`. -Slice Settings -~~~~~~~~~~~~~~ - -.. option:: -slicemesh <plane1>,<plane2>,... - - Plot one (or several) slice(s) of the mesh. A slicing plane is defined by its equation, such as :data:`x=0` or :data:`0.12*x+0.34*y+0.56*z=0.78`. - - **Default value**: -. - -Show Settings +Show Options ~~~~~~~~~~~~~ -The following options apply to the full tessellations, mesh or points. +The following options apply to the full tessellations, mesh, etc. .. index:: single: -showtess single: -showtesr single: -showmesh single: -showmeshslice - single: -showpoint single: -showcsys + single: -showscale -.. option:: -show{tess,tesr,mesh,meshslice,point,csys} <logical> +.. option:: -show{tess,tesr,mesh,meshslice,csys,scale} <logical> Show or hide a full tessellation, mesh, etc. @@ -582,7 +653,7 @@ The following option applies to a tessellation or a raster tessellation. Specify the entities to show. The argument can be: - :data:`1` or :data:`all`: all; - - an expression based on the keys listed in :ref:`tessellation_keys` or :ref:`raster_tessellation_keys`, which allows to define individual values; + - an expression based on the :ref:`tessellation_keys` or :ref:`raster_tessellation_keys`, which allows to define individual values; - :data:`file(<file_name>)`: individual values to load from a :ref:`data_file`; - :data:`0` or :data:`none`: none. @@ -609,14 +680,34 @@ The following options apply to the entities of the mesh. The options apply to 3 Specify the entities to show. The argument can be: - - :data:`1` or :data:`all` for all; - - an expression based on the keys listed in :ref:`mesh_keys`, which allows to define individual values; + - :data:`1` or :data:`all`: all; + - an expression based on the :ref:`mesh_keys`, which allows to define individual values; - :data:`file(<file_name>)`: individual values to load from a :ref:`data_file`; - :data:`0` or :data:`none`: none. **Default value**: :data:`1` if highest mesh dimension is 3 and :data:`0` otherwise. -Camera Settings +.. option:: -show<input> <logical> + + Show or hide the points of a custom input. The argument can be: + + - :data:`1` or :data:`all`: all; + - an expression based on the :ref:`point_keys`, which allows to define individual values; + - :data:`file(<file_name>)`: individual values to load from a :ref:`data_file`; + - :data:`0` or :data:`none`: none. + + **Default value**: :data:`1`. + +Slice Options +~~~~~~~~~~~~~~ + +.. option:: -slicemesh <plane1>,<plane2>,... + + Plot one (or several) slice(s) of the mesh. A slicing plane is defined by its equation, such as :data:`x=0` or :data:`0.12*x+0.34*y+0.56*z=0.78`. + + **Default value**: -. + +Camera Options ~~~~~~~~~~~~~~~ .. option:: -cameracoo <coo_x>:<coo_y>:<coo_z> @@ -657,7 +748,48 @@ Camera Settings **Default value**: :data:`orthographic` for 2D and :data:`perspective` for 3D. -Scene Settings +Light Options +~~~~~~~~~~~~~~ + +These options set the lights (only for the POV-Ray renderer). + +.. option:: -lightambient <ambient> + + Specify the amount of ambient light. Ambient light is light that is scattered everywhere in the scene, and it ranges from :data:`0` to :data:`1`. + + **Default value**: :data:`0.6` in 3D and :data:`1` in 2D. + +.. option:: -lightsource <light1>:<light2>:... + + Specify the light sources. The argument can be: + + - :data:`point(coo=<coo>[,color=<color>][,shadow={0,1}])`: a point light source, where: + + - :data:`<coo>` can be either :data:`camera` (for the camera coordinates) or :data:`\<coo_x\>:\<coo_y\>:\<coo_z\>` for actual coordinates. + + - :data:`<color>` can be any color as described in :ref:`colors_and_color_maps`. + + - :data:`<shadow>` can be :data:`0` for no shadows or :data:`1` for shadows. + + - :data:`none`: none. + + **Default value**: :data:`"point(coo=camera,shadow=0)"` in 3D and :data:`none` in 2D. + +.. option:: -lightdiffuse <diffuse> + + Specify the amount of diffuse reflection, i.e how much of the light coming directly from any light sources is reflected by diffuse reflection. It ranges from :data:`0` to :data:`1`. + + **Default value**: :data:`0.6`. + +.. option:: -lightreflection <reflection> + + Specify the amount of specular reflection, ranging from :data:`0` to :data:`1`. + + **Default value**: :data:`0.0`. + +.. note:: To disable all light effects, use :data:`-lightambient 1 -lightsource none`. + +Scene Options ~~~~~~~~~~~~~~ .. option:: -scenebackground <color> @@ -666,40 +798,119 @@ Scene Settings **Default value**: :data:`white`. -.. option:: -sceneshadow <logical> +Pole Figure Options +~~~~~~~~~~~~~~~~~~~~ - Specify whether the scene should include shadows. +.. option:: -pfdir <dir1>:<dir2> - **Default value**: :data:`0` in 2D and :data:`1` in 3D. + Specify the 2 reference coordinate system directions aligned with the horizontal and vertical directions of the pole figure, respectively, which can be :data:`x`, :data:`y`, :data:`z`, :data:`-x`, :data:`-y` or :data:`-z`. -Output Image Settings -~~~~~~~~~~~~~~~~~~~~~ + .. note:: The resulting normal direction must be pointing upwards. To set the actual direction labels, see option :option:`-datacsyslabel`. -.. option:: -imagesize <size_x>,<size_y> + **Default value**: :data:`x:-y`. - Specify the size of the image (in pixels). +.. option:: -pfpole <h>:<k>:<l> - **Default value**: :data:`1200:900`. + Specify the pole family (for orientation input). + + **Default value**: :data:`1:1:1`. + +.. option:: -pfprojection <projection> + + Specify the projection, which can be :data:`stereographic` or :data:`equal-area`. + + **Default value**: :data:`stereographic`. + +.. option:: -pfsym <symmetry> + + Specify the symmetry, which can be :data:`monoclinic` or :data:`orthotropic`. + + **Default value**: :data:`monoclinic`. + +.. option:: -pfshape <shape> + + Specify the shape, which can be :data:`full` (full circle) or :data:`quarter` (quarter-circle, for orthotropic symmetry). + + **Default value**: :data:`full`. + +.. option:: -pfmode <mode1>,<mode2>,... + + Specify the representation mode, which can be: + + - :data:`symbol`: data represented as symbols; + - :data:`density`: data represented as a distribution density field. + + .. note:: Modes are processed successively, so that the last one(s) are printed on top of the first one(s). In the case of multiple inputs, :data:`density` is applied only to the first input. -.. option:: -imageantialias <logical> + **Default value**: :data:`point`. - Specify whether antialiasing (which produces a smoother image) should be used. +.. option:: -pfkernel <kernel> + + Specify the kernel used to smooth pole directions when computing a pole density field, which can be: + + - :data:`normal(theta=<theta>)`: a (2-variate) normal distribution of (1-D) standard deviation :data:`<theta>` (in degrees). + + **Default value**: :data:`normal(theta=3)`. + +.. option:: -pfgridsize <size> (secondary option) + + Specify the size of the density grid (in pixels). + + **Default value**: :data:`200`. + +.. option:: -pfclustering <logical> + + Specify whether data clustering (which speeds up density generation) should be used. + + .. note:: Clustering applies to all representation modes and slightly alters the point positions. It should be disable for absolute accuracy. **Default value**: :data:`1`. +.. option:: -pffont <font> (secondary option) + + Specify the character font, which can be :data:`TimesRoman` or :data:`ComputerModern`. + + **Default value**: :data:`TimesRoman`. + +Output Image Options +~~~~~~~~~~~~~~~~~~~~~ + .. option:: -imageformat <format1>,<format2>,... Specify the format(s) of the output image(s), which can be: - - :data:`png`: the PNG format; - - :data:`pov`: the POV-Ray format; - - :data:`pov:objects`: the POV-Ray format, but containing only the objects (the resulting file can be loaded with :option:`-includepov`, not compatible with :data:`png`); - - :data:`vtk`: the VTK format. + - Usual , real space images: + + - :data:`png`: the PNG format; + - :data:`pov`: the POV-Ray format; + - :data:`pov:objects`: the POV-Ray format, but containing only the objects (the resulting file can be loaded with :option:`-includepov`, not compatible with :data:`png`); + - :data:`vtk`: the VTK format. + + - Pole figure images: + + - :data:`pdf`: the PDF format (scalar format, recommended); + - :data:`png`: the PNG format; + - :data:`asy`: the Asymptote format. **Default value**: :data:`png`. -Scripting -~~~~~~~~~ +.. option:: -imagesize <size_x>:<size_y> + + Specify the size of the PNG image (in pixels). + + **Default value**: :data:`1200:900`. + +Renderer Options +~~~~~~~~~~~~~~~~ + +.. option:: -povrayantialiasing <logical> + + Specify whether antialiasing (which produces a smoother PNG image) should be used. + + **Default value**: :data:`1`. + +Scripting Options +~~~~~~~~~~~~~~~~~ .. option:: -loop <variable> <initial_value> <increment_value> <final_value> <commands> -endloop @@ -726,7 +937,7 @@ Print Options .. option:: -print <file_name> - Print the image. The file name should be extension free. + Print the image. The file name should not include the extension. **Default value**: -. @@ -766,7 +977,9 @@ Output Files ------------ - :file:`.png`: PNG file, a bitmapped image (the alpha channel is off); +- :file:`.pdf`: PDF file, a scalar image; - :file:`.pov`: POV-Ray file, a POV-Ray script file; +- :file:`.asy`: Asymptote file, an Asymptote script file; - :file:`.vtk`: a VTK file, for interactive visualization. A PNG image can be obtained from a POV-Ray file by invoking POV-Ray as follows (see the POV-Ray documentation for details and further commands): @@ -775,6 +988,14 @@ A PNG image can be obtained from a POV-Ray file by invoking POV-Ray as follows ( $ povray <file.pov> +W<image_width>+H<image_height> -D +A0.2 +Images can be obtained from an Asymptote file by invoking Asymptote as follows (see the Asymptote documentation for details and further commands): + +.. code-block:: console + + $ asy -f <format> <file.asy> + +where :data:`<format>` can be :data:`png`, :data:`pdf`, :data:`eps`, :data:`jpg`, :data:`tiff`, etc. + Examples -------- @@ -839,5 +1060,3 @@ Below are some examples of use of neper -V. .. code-block:: console $ neper -V mysim.sim -loop STEP 0 1 10 -step STEP -datanodecoo coo -dataeltcol ori -print imgSTEP -endloop - -.. [#space] It currently only affects the arguments of :option:`-datapointrad`. diff --git a/doc/tutorials.rst b/doc/tutorials.rst new file mode 100644 index 000000000..b1a58b13a --- /dev/null +++ b/doc/tutorials.rst @@ -0,0 +1,15 @@ +.. _tutorials: + +Tutorials +========= + +.. toctree:: + :maxdepth: 1 + + tutorials/simple_model.rst + tutorials/morpho_statistics.rst + tutorials/morpho_tesr_mesh.rst + tutorials/ebsd_process.rst + tutorials/visualize_tessellation.rst + tutorials/pole_figure.rst + tutorials/orientation_color_key.rst diff --git a/doc/tutorials/ebsd_process.rst b/doc/tutorials/ebsd_process.rst new file mode 100644 index 000000000..a40eb8873 --- /dev/null +++ b/doc/tutorials/ebsd_process.rst @@ -0,0 +1,152 @@ +.. _ebsd_process: + +Processing EBSD-type data +========================= + +An experimental EBSD (orientation) map can be written as a :ref:`tesr_file` and visualized using the :ref:`neper_v`. It can also be post-processed using the :ref:`neper_s`, just as a mesh (and simulation results) can be. + +Writing EBSD-type data as a :ref:`tesr_file` +-------------------------------------------- + +An EBSD map typically consists of an orientation field described over a 2D grid. This can be described by a :ref:`tesr_file`. An example of an EBSD map comprising :math:`3 \times 4` pixels of size 0.001 is provided below (:file:`n2.tesr`): + +.. literalinclude:: ebsd_process/n2.tesr + :language: plain + +.. note:: See the description of a :ref:`tesr_file` for details on the structure. *Voxel* is used instead of *pixel* in the following, and in Neper in general. + +The EBSD map can be visualized, colored by orientation, using the :ref:`neper_v`: + +.. code-block:: console + + $ neper -V n2.tesr -datavoxcol ori -print img1 + +.. image:: ebsd_process/img1.png + +.. note:: The orientation color key itself is not generated but can be obtained as detailed in :ref:`orientation_color_key`. + +In the EBSD map, it may also occur that a voxel is not assigned any orientation. This can be indicated using the :data:`**oridef` section: + +.. literalinclude:: ebsd_process/n2b.tesr + :language: plain + :emphasize-lines: 23-25 + +.. note:: Voxels for which the orientation is unknown (indicated :data:`0` in the :data:`**oridef` section) must still be assigned an orientation in the :data:`**oridata` section, as a placeholder. + +The EBSD map can be visualized as before: + +.. code-block:: console + + $ neper -V n2b.tesr -datavoxcol ori -print img2 + +.. image:: ebsd_process/img2.png + +The "unindexed" voxels appear in gray by default, and their color can be changed using option :option:`-datavoxcol`. + +Finally, cells (or "grains") can be defined using the :data:`**cell` and :data:`**data` sections: + +.. literalinclude:: ebsd_process/n2c.tesr + :language: plain + :emphasize-lines: 8-14 + +.. note:: The lines highlighted above indicate that there are :data:`2` cells of numbers (or "ids") :data:`1` and :data:`2`. The :data:`*id` section is optional if the cells are numbered contiguously from :data:`1`. The :data:`**data` section should always contain numbers contiguously numbered from :data:`1` (:data:`0` can be used to represent empty voxels), where :data:`1` represents the first cell, :data:`2` the second cell, etc. (independently of the cell ids provided in :data:`*id`). + +The EBSD map can be visualized, colored by its cell ids (which is the default), as follows: + +.. code-block:: console + + $ neper -V n2c.tesr -print img3 + +.. image:: ebsd_process/img3.png + +.. note:: The :data:`**data`, :data:`**oridata` and :data:`**oridef` sections are independent from each other, so that a cell may contain voxels that do not have any orientation, or a voxel that has an orientation may not belong to any cell. + +Finally, it is a good idea to specify the crystal symmetry, using the :data:`*crysym` section: + +.. literalinclude:: ebsd_process/n2d.tesr + :language: plain + :emphasize-lines: 12,13 + +Processing the Data +------------------- + +A :ref:`tesr_file` (:file:`n2c.tesr`) can be written as a :ref:`simulation_directory`, for post-processing. This is simply done as follows: + +.. code-block:: console + + $ neper -T -loadtesr n2d.tesr -for sim + +The resulting simulation directory is simply structured as follows: + +.. code-block:: console + + n2d.sim + └── inputs + └── simulation.tesr + +Cell properties can then be computed using option :option:`-rescell` of the :ref:`neper_s`, as follows: + +.. code-block:: console + + $ neper -S n2d.sim -rescell ori + +The resulting simulation directory is simply structured as follows: + +.. code-block:: console + + n2d.sim + ├── inputs + │   └── simulation.tesr + └── results + └── cells + └── ori + └── ori.step0 + +.. note:: For consistency with actual simulation results, the result files are suffixed :file:`.step0`, which denotes the initial state. + +The map can then be colored following its average cell orientations (compare to the first image): + +.. code-block:: console + + $ neper -V n2d.sim -datacellcol ori -print img4 + +.. image:: ebsd_process/img4.png + +Cell properties, such as the "grain orientation spread", :data:`gos`, can be computed: + +.. code-block:: console + + $ neper -S n2d.sim -rescell gos + +The resulting simulation directory is simply structured as follows: + +.. code-block:: console + + n2d.sim + ├── inputs + │   └── simulation.tesr + └── results + └── cells + ├── gos + │   └── gos.step0 + └── ori + └── ori.step0 + +The data are simply formatted and can be accessed easily: + +.. code-block:: console + + $ more n2d.sim/results/cells/gos/gos.step0 + 3.124415538011 + 2.405535676705 + +The map can then be colored following its cell :data:`gos` values: + +.. code-block:: console + + $ neper -V n2d.sim -datacellcol real:gos -datacellscale 2.0:3.0 -datacellscaletitle "GOS (degrees)" -print img5 + $ convert img5.png img5-scale.png -gravity East -composite img5.png + +This originally produces a PNG file named :file:`img5.png` for the map and a PNG file named :file:`img5-scale.png` for the scale bar, which is included to :file:`img5.png` thanks to :program:`convert`. + +.. image:: ebsd_process/img5.png diff --git a/doc/tutorials/ebsd_process/img1.png b/doc/tutorials/ebsd_process/img1.png new file mode 100644 index 000000000..3fc8bb422 Binary files /dev/null and b/doc/tutorials/ebsd_process/img1.png differ diff --git a/doc/tutorials/ebsd_process/img2.png b/doc/tutorials/ebsd_process/img2.png new file mode 100644 index 000000000..dc2b46b7f Binary files /dev/null and b/doc/tutorials/ebsd_process/img2.png differ diff --git a/doc/tutorials/ebsd_process/img3.png b/doc/tutorials/ebsd_process/img3.png new file mode 100644 index 000000000..d7f4d6385 Binary files /dev/null and b/doc/tutorials/ebsd_process/img3.png differ diff --git a/doc/tutorials/ebsd_process/img4.png b/doc/tutorials/ebsd_process/img4.png new file mode 100644 index 000000000..e25c59b5a Binary files /dev/null and b/doc/tutorials/ebsd_process/img4.png differ diff --git a/doc/tutorials/ebsd_process/img5-scale.png b/doc/tutorials/ebsd_process/img5-scale.png new file mode 100644 index 000000000..5602ec070 Binary files /dev/null and b/doc/tutorials/ebsd_process/img5-scale.png differ diff --git a/doc/tutorials/ebsd_process/img5.png b/doc/tutorials/ebsd_process/img5.png new file mode 100644 index 000000000..591352ea7 Binary files /dev/null and b/doc/tutorials/ebsd_process/img5.png differ diff --git a/doc/tutorials/ebsd_process/n2.tesr b/doc/tutorials/ebsd_process/n2.tesr new file mode 100644 index 000000000..7f02b7be2 --- /dev/null +++ b/doc/tutorials/ebsd_process/n2.tesr @@ -0,0 +1,23 @@ +***tesr + **format + 2.1 + **general + 2 + 4 3 + 0.001000000000 0.001000000000 + **oridata + rodrigues:active + ascii + 0.497071991874 0.751536029443 -0.324435016090 + 0.450508625443 0.778380114981 -0.314292142975 + -2.500450755483 0.574774285761 2.818266339832 + -2.640295868326 0.613322889998 2.986906001722 + 0.461530296952 0.723425478677 -0.335158513196 + -2.320688155349 0.549041867222 2.520971641905 + -2.355181399597 0.486342836815 2.739196570132 + -2.366437134562 0.745092186202 2.707700283931 + -2.680163356497 0.715754776276 3.187546229403 + -2.384540616434 0.667255925120 2.619216702767 + -2.694443582845 0.730843654602 2.969465573439 + -2.235296365544 0.532494712165 2.629239250625 +***end diff --git a/doc/tutorials/ebsd_process/n2b.tesr b/doc/tutorials/ebsd_process/n2b.tesr new file mode 100644 index 000000000..b05e0495e --- /dev/null +++ b/doc/tutorials/ebsd_process/n2b.tesr @@ -0,0 +1,26 @@ +***tesr + **format + 2.1 + **general + 2 + 4 3 + 0.001000000000 0.001000000000 + **oridata + rodrigues:active + ascii + 0.497071991874 0.751536029443 -0.324435016090 + 0.450508625443 0.778380114981 -0.314292142975 + -2.500450755483 0.574774285761 2.818266339832 + -2.640295868326 0.613322889998 2.986906001722 + 0.461530296952 0.723425478677 -0.335158513196 + -2.320688155349 0.549041867222 2.520971641905 + -2.355181399597 0.486342836815 2.739196570132 + -2.366437134562 0.745092186202 2.707700283931 + 0.000000000000 0.000000000000 0.000000000000 + -2.384540616434 0.667255925120 2.619216702767 + -2.694443582845 0.730843654602 2.969465573439 + -2.235296365544 0.532494712165 2.629239250625 + **oridef + ascii + 1 1 1 1 1 1 1 1 0 1 1 1 +***end diff --git a/doc/tutorials/ebsd_process/n2c.tesr b/doc/tutorials/ebsd_process/n2c.tesr new file mode 100644 index 000000000..2669d9bb1 --- /dev/null +++ b/doc/tutorials/ebsd_process/n2c.tesr @@ -0,0 +1,33 @@ +***tesr + **format + 2.1 + **general + 2 + 4 3 + 0.001000000000 0.001000000000 + **cell + 2 + *id + 1 2 + **data + ascii +2 2 1 1 2 1 1 1 1 1 1 1 + **oridata + rodrigues:active + ascii + 0.497071991874 0.751536029443 -0.324435016090 + 0.450508625443 0.778380114981 -0.314292142975 + -2.500450755483 0.574774285761 2.818266339832 + -2.640295868326 0.613322889998 2.986906001722 + 0.461530296952 0.723425478677 -0.335158513196 + -2.320688155349 0.549041867222 2.520971641905 + -2.355181399597 0.486342836815 2.739196570132 + -2.366437134562 0.745092186202 2.707700283931 + 0.000000000000 0.000000000000 0.000000000000 + -2.384540616434 0.667255925120 2.619216702767 + -2.694443582845 0.730843654602 2.969465573439 + -2.235296365544 0.532494712165 2.629239250625 + **oridef + ascii + 1 1 1 1 1 1 1 1 0 1 1 1 +***end diff --git a/doc/tutorials/ebsd_process/n2d.sim/.sim b/doc/tutorials/ebsd_process/n2d.sim/.sim new file mode 100644 index 000000000..26e92de99 --- /dev/null +++ b/doc/tutorials/ebsd_process/n2d.sim/.sim @@ -0,0 +1,15 @@ +***sim + **format + 1.0 + **input + *tesr + simulation.tesr + **general + 2 0 0 0 0 + *orides + rodrigues:active + **entity cell + *result + 2 + ori gos +***end diff --git a/doc/tutorials/ebsd_process/n2d.sim/inputs/simulation.tesr b/doc/tutorials/ebsd_process/n2d.sim/inputs/simulation.tesr new file mode 100644 index 000000000..eb7e974cb Binary files /dev/null and b/doc/tutorials/ebsd_process/n2d.sim/inputs/simulation.tesr differ diff --git a/doc/tutorials/ebsd_process/n2d.sim/results/cells/gos/gos.step0 b/doc/tutorials/ebsd_process/n2d.sim/results/cells/gos/gos.step0 new file mode 100644 index 000000000..faaf62f86 --- /dev/null +++ b/doc/tutorials/ebsd_process/n2d.sim/results/cells/gos/gos.step0 @@ -0,0 +1,2 @@ +3.124415538011 +2.405535676705 diff --git a/doc/tutorials/ebsd_process/n2d.sim/results/cells/ori/ori.step0 b/doc/tutorials/ebsd_process/n2d.sim/results/cells/ori/ori.step0 new file mode 100644 index 000000000..261bf872f --- /dev/null +++ b/doc/tutorials/ebsd_process/n2d.sim/results/cells/ori/ori.step0 @@ -0,0 +1,2 @@ + -2.429508417310 0.610250835528 2.740877646974 + 0.469638141286 0.750968229091 -0.324683973883 diff --git a/doc/tutorials/ebsd_process/n2d.tesr b/doc/tutorials/ebsd_process/n2d.tesr new file mode 100644 index 000000000..5a6275e5d --- /dev/null +++ b/doc/tutorials/ebsd_process/n2d.tesr @@ -0,0 +1,35 @@ +***tesr + **format + 2.1 + **general + 2 + 4 3 + 0.001000000000 0.001000000000 + **cell + 2 + *id + 1 2 + *crysym + cubic + **data + ascii +2 2 1 1 2 1 1 1 1 1 1 1 + **oridata + rodrigues:active + ascii + 0.497071991874 0.751536029443 -0.324435016090 + 0.450508625443 0.778380114981 -0.314292142975 + -2.500450755483 0.574774285761 2.818266339832 + -2.640295868326 0.613322889998 2.986906001722 + 0.461530296952 0.723425478677 -0.335158513196 + -2.320688155349 0.549041867222 2.520971641905 + -2.355181399597 0.486342836815 2.739196570132 + -2.366437134562 0.745092186202 2.707700283931 + 0.000000000000 0.000000000000 0.000000000000 + -2.384540616434 0.667255925120 2.619216702767 + -2.694443582845 0.730843654602 2.969465573439 + -2.235296365544 0.532494712165 2.629239250625 + **oridef + ascii + 1 1 1 1 1 1 1 1 0 1 1 1 +***end diff --git a/doc/tutorials/ebsd_process/sc.sh b/doc/tutorials/ebsd_process/sc.sh new file mode 100755 index 000000000..9fa73a6c9 --- /dev/null +++ b/doc/tutorials/ebsd_process/sc.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +neper -T -n 2 -for tesr -domain "square(0.004,0.003)" -tesrsize 4:3 -dim 2 -orispread "normal(2)" -o n2 + +# remove cell section +beg=`grep -n "^ \*\*" n2.tesr | grep cell | awk -F: '{print $1}'` +end=`grep -n "^ \*\*" n2.tesr | grep -A 1 cell | tail -1 | awk -F: '{print $1-1}'` +sed -i "${beg},${end}d" n2.tesr + +# remove data section +beg=`grep -n "^ \*\*" n2.tesr | grep "\<data\>" | awk -F: '{print $1}'` +end=`grep -n "^ \*\*" n2.tesr | grep -A 1 "\<data\>" | tail -1 | awk -F: '{print $1-1}'` +sed -i "${beg},${end}d" n2.tesr + +# n2b +sed -e '$ d' n2.tesr > n2b.tesr +echo " **oridef" >> n2b.tesr +echo " ascii" >> n2b.tesr +echo " 1 1 1 1 1 1 1 1 0 1 1 1" >> n2b.tesr +echo "***end" >> n2b.tesr +sed -i "19s/.*/ 0.000000000000 0.000000000000 0.000000000000/g" n2b.tesr + +# n2c + +neper -T -n 2 -for tesr -domain "square(0.004,0.003)" -tesrsize 4:3 -dim 2 -orispread "normal(2)" -o n2c + +sed -i '$ d' n2c.tesr +echo " **oridef" >> n2c.tesr +echo " ascii" >> n2c.tesr +echo " 1 1 1 1 1 1 1 1 0 1 1 1" >> n2c.tesr +echo "***end" >> n2c.tesr + +# remove ori and orispread sections +beg=`grep -n "^ \*" n2c.tesr | grep "ori\>" | awk -F: '{print $1}'` +end=`grep -n "^ .\*" n2c.tesr | grep -A 1 "orispread\>" | tail -1 | awk -F: '{print $1-1}'` +sed -i "${beg},${end}d" n2c.tesr + +sed -i "28s/.*/ 0.000000000000 0.000000000000 0.000000000000/g" n2c.tesr + +exit 0 diff --git a/doc/tutorials/morpho_statistics.rst b/doc/tutorials/morpho_statistics.rst new file mode 100644 index 000000000..780b2a37a --- /dev/null +++ b/doc/tutorials/morpho_statistics.rst @@ -0,0 +1,145 @@ +.. _morpho_statistics: + +Generating a Tessellation from Statistical Cell Properties +========================================================== + +Statistical morphological properties for the cells can be specified as input, using option :option:`-morpho`. In this case, instead of a Voronoi tessellation, Neper generates a Laguerre tessellation (which can represent any tessellation comprised of convex cells, and therefore does not involve particular limitations) by optimizing the attributes of its seeds until the specified input is reached [CMAME2018]_. + +.. note:: + + To reproduce *exactly* the images below, add the following line to your :file:`$HOME/.neperrc` file (or to a local configuration file to be loaded with :option:`--rcfile`):: + + neper -V -imagesize 800:400 + +Using the Built-in :data:`graingrowth` +-------------------------------------- + +Option :option:`-morpho` includes the :data:`graingrowth` (or :data:`gg`, for short) properties, which corresponds to those of an experimental polycrystal subjected to grain growth. Both the cell size distribution and the cell sphericity distribution (how close are the cells from a sphere) are defined [CMAME2018]_. + +A 100-cell tessellation with grain-growth properties can be generated using the :ref:`neper_t` as follows: + +.. code-block:: console + + $ neper -T -n 100 -morpho gg + +This produces a :ref:`tess_file` named :file:`n100-id1.tess`. + +The tessellation can be visualized using the :ref:`neper_v`: + +.. code-block:: console + + $ neper -V n100-id1.tess -print img1 + +This produces a PNG file named :file:`img1.png`. + +.. image:: morpho_statistics/img1.png + +Specifying Custom Properties +---------------------------- + +Statistical properties other than those of :data:`gg` can be specified. :data:`gg` actually is an alias for :data:`diameq:lognormal(1,0.35),1-sphericity:lognormal(0.145,0.03)`, where :data:`diameq::lognormal(1,0.35)` specifies a lognormal distribution of the (normalized) cell equivalent diameters of average 1 and standard deviation 0.35, and :data:`1-sphericity:lognormal(0.145,0.03)` corresponds to a lognormal distribution of the cell "1-sphericities" of average 0.145 and standard deviation 0.03. It is therefore possible to use this longer argument and change the numerical values. For example, to get nearly equal-size cells (small standard deviation of the cell size lognormal distribution), one may use: + +.. code-block:: console + + $ neper -T -n 100 -morpho "diameq:lognormal(1,0.05),1-sphericity:lognormal(0.145,0.03)" + +The tessellation can be visualized as before: + +.. code-block:: console + + $ neper -V n100-id1.tess -print img2 + +.. image:: morpho_statistics/img2.png + +Of course, it is also possible to change the sphericity distribution, for instance to get less spherical grains (smaller average of the sphericity distribution): + +.. code-block:: console + + $ neper -T -n 100 -morpho "diameq:lognormal(1,0.05),1-sphericity:lognormal(0.245,0.03)" + +The tessellation can be visualized as before: + +.. code-block:: console + + $ neper -V n100-id1.tess -print img3 + +.. image:: morpho_statistics/img3.png + +.. note:: See :ref:`statistical_distributions` for a list of possible distributions and other possible inputs. + +.. important:: Although it is not strictly needed, distributions for both the sizes (e.g. :data:`diameq`) and the shapes of the cells should be specified. Generating a tessellation from only a cell size distribution can lead to unrealistically small cell sphericities. + +Specifying an Absolute Cell Size Distribution +--------------------------------------------- + +It is possible to get Neper to consider the cell size distribution as a distribution of absolute values by using :option:`-n` :data:`from_morpho` (instead of an actual number of cells). Neper determines the number of cells from the cell size distribution and the domain size. An example is: + +.. code-block:: console + + $ neper -T -n from_morpho -morpho "diameq:lognormal(0.2,0.06),1-sphericity:lognormal(0.145,0.03)" -o mytess + +.. note:: Option :option:`-o` is used to set the output file name. The default file name is :file:`n<n>-id<id>.tess` and, in this case, would be the odd :file:`nfrom_morpho-id1.tess`. + +The tessellation contains 184 cells and can be visualized as before: + +.. code-block:: console + + $ neper -V mytess.tess -print img4 + +.. image:: morpho_statistics/img4.png + +Specifying an Experimental Cell Size Distribution +------------------------------------------------- + +Experimental or, more generally, numerical distributions defined from a file can be specified by using option :option:`-morpho` :data:`<property>:custom(<file_name>)` (instead of analytical distributions). + +Consider a cell-size (:data:`diameq`) distribution defined from a file, :file:`mydistrib`, that contains:: + + 0.2 10.0 + 0.3 20.0 + 0.4 5.0 + +i.e., 10 cells have a :data:`diameq` equal to 0.2, 20 cells have a :data:`diameq` equal to 0.3, and 5 cells have a :data:`diameq` equal to 0.4 (for a tessellation comprising 35 cells). The numbers on the right column are actually only considered relative to each other. + +.. note:: + + - In contrast to analytical distributions, numerical distributions do not need to be normalized to 1. + - As for an analytical distribution, if :option:`-morpho` :data:`from_morpho` is used, Neper determines the number of cells from the cell size distribution and the domain size. + +The corresponding tessellation can be generated as follows: + +.. code-block:: console + + $ neper -T -n from_morpho \ + -morpho "diameq:custom(mydistrib),1-sphericity:lognormal(0.145,0.03)" \ + -statcell diameq \ + -o mytess + +where option :option:`-statcell` is used to output the cell equivalent diameters to file :file:`mytess.stcell`. + +The tessellation can be visualized by coloring the cells from their equivalent diameters using options :option:`-datacellcol` and :option:`-datacellscale`: + +.. code-block:: console + + $ neper -V mytess.tess \ + -datacellcol "real:file(mytess.stcell)" \ + -datacellscale 0.15:0.20:0.25:0.30:0.35:0.40:0.45 \ + -datacellscaletitle "Cell size (mm)" \ + -print img5 + +This produces a PNG file named :file:`img5.png` for the tessellation and a PNG file named :file:`img5-scale3.png` for the scale bar. + +To include the scale bar to the image, ImageMagick can be used: + +.. code-block:: console + + $ convert img5.png img5-scale3.png -gravity East -composite img5.png + +.. image:: morpho_statistics/img5.png + +Speeding up Tessellation +------------------------ + +When statistical properties (or other properties) are specified as input, Neper employs an interative approach, and so tessellation generation is longer than for a standard Voronoi tessellation. Even though the tessellation generation remains relatively fast, to speed up the tessellation process, a first way is through multithreading, as a performace increase is expected up about 16 threads. A second way is to modify the termination criterion, which is controlled by option :option:`-morphooptistop` and set to :data:`val=1e-5` by default, which is relatively low. The value can be increased, or another criterion can be used. + +.. [CMAME2018] :ref:`singlescale` diff --git a/doc/tutorials/morpho_statistics/img1.png b/doc/tutorials/morpho_statistics/img1.png new file mode 100644 index 000000000..1b65f7e8e Binary files /dev/null and b/doc/tutorials/morpho_statistics/img1.png differ diff --git a/doc/tutorials/morpho_statistics/img2.png b/doc/tutorials/morpho_statistics/img2.png new file mode 100644 index 000000000..a9e72a8dd Binary files /dev/null and b/doc/tutorials/morpho_statistics/img2.png differ diff --git a/doc/tutorials/morpho_statistics/img3.png b/doc/tutorials/morpho_statistics/img3.png new file mode 100644 index 000000000..7058e3826 Binary files /dev/null and b/doc/tutorials/morpho_statistics/img3.png differ diff --git a/doc/tutorials/morpho_statistics/img4.png b/doc/tutorials/morpho_statistics/img4.png new file mode 100644 index 000000000..e4c2aaaad Binary files /dev/null and b/doc/tutorials/morpho_statistics/img4.png differ diff --git a/doc/tutorials/morpho_statistics/img5.png b/doc/tutorials/morpho_statistics/img5.png new file mode 100644 index 000000000..62801187d Binary files /dev/null and b/doc/tutorials/morpho_statistics/img5.png differ diff --git a/doc/tutorials/morpho_tesr_mesh.rst b/doc/tutorials/morpho_tesr_mesh.rst new file mode 100644 index 000000000..1418022c3 --- /dev/null +++ b/doc/tutorials/morpho_tesr_mesh.rst @@ -0,0 +1,303 @@ +.. _tesr_mesh: + +Meshing a Polycrystal Image Obtained by Synchrotron X-Ray Diffraction +===================================================================== + +Introduction +------------ + +Methods such as diffraction contrast tomography (DCT) provide 3D polycrystal maps that are usually defined as *(i)* a field of grain identifiers (or "ids") and *(ii)* grain orientations. Neper can read in such maps and process them in different ways. In particular, it can generate the *optimal tessellation* (made of convex cells) that corresponds to the polycrystal and mesh it for FEM simulations [CMAME2018]_. + +An AlLi polycrystal scanned by DCT at the Materials Science beamline of ESRF (ID11) is used as an example. The polycrystal contains 299 grains and is described by a 16-bit binary :file:`.dat` data file that correspond to a 3D raster of 214 x 214 x 462 voxels of size 3.5 :math:`\mu\text{m}`, on which grain ids are defined. Grain ids are strictly positive, while :data:`0` represents empty voxels. The orientations corresponding to the grains are defined as Rodrigues vectors in a separate, ASCII file. The data were obtained in the context of the 3DPLASTICITY French ANR project. + +Generating a Clean Raster Tessellation (:file:`.tesr`) +------------------------------------------------------ + +Converting the Raw Files (:file:`.dat`, Orientations) into a Neper :file:`.tesr` File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Neper uses a (standalone) :file:`.tesr` (*raster tessellation*) file to describe a DCT-type polycrystal, which embeeds not only the information contained in the :file:`.dat` file and the grain orientations, but also the numbers of voxels, the voxel size, the crystal type, etc. The raw :file:`.dat` file can be read by Neper using a minimal tesr file, named e.g. :file:`AlLi-load.tesr`, with the following content: + +.. code-block:: plain + + ***tesr + **format + 2.1 + **general + 3 + 214 214 462 + 3.5e-6 3.5e-6 3.5e-6 + **data + binary16 + *file AlLi.dat + ***end + +It is possible to visualize the polycrystal as follows: + +.. code-block:: console + + $ neper -V AlLi-load.tesr -print AlLi + +.. image:: morpho_tesr_mesh/AlLi.png + + +where the grains are colored by their ids. + + +The grain orientations (and the crystal symmetry) can be added to the file through a :data:`**cell` section: + +.. code-block:: none + + ***tesr + **format + 2.1 + **general + 3 + 214 214 462 + 3.5e-6 3.5e-6 3.5e-6 + **cell + <number_of_cells> + *crysym + <crysym> + *ori + <descriptor> + <orientations> + **data + binary16 + *file AlLi.dat + ***end + +where :data:`<number_of_cells>` is the number of cells, :data:`<crysym>` is the :ref:`crystal symmetry <crystal_symmetries>), :data:`<descriptor>` is the :ref:`orientation descriptor <rotation_and_orientation_descriptors>` (e.g., :data:`rodrigues:active`) and :data:`<orientations>` is the list of orientations (the crystal symmetry could also have been defined a posteriori, using the :option:`-oricrysym` option). If the grains are not numbered contiguously from 1, their ids must be provided in the :data:`**cell/*id` section in order to be able to provide an :data:`*ori` section. + +It is now possible to visualize the polycrystal colored by its grain orientations: + +.. code-block:: console + + $ neper -V AlLi-load.tesr -datacellcol ori -print AlLi-ori + +.. image:: morpho_tesr_mesh/AlLi-ori.png + + +The tesr file can be made a standalone file (not reading from :file:`AlLi.dat` any more), as follows: + +.. code-block:: console + + $ neper -T -loadtesr AlLi-load.tesr -o AlLi + +The new file is written using Neper's default behavior. Optionally, the data encoding format can be specified using :option:`-tesrformat`. (The tesr can be written back to a raw data format anytime using :option:`-tesrformat` :data:`raw`.) + +The resulting tesr describes all of the data obtained by DCT, and later operations to the file will be applied using Neper -T options. The procedure is to load it using :option:`-loadtesr` and apply transformations using :option:`-transform`. Several transformations can be applied successively, on a single run, by combining them with :data:`,`. It is generally a good idea to write the resulting tesr to a different file, using :option:`-o`. + +.. note:: + + To reproduce *exactly* the images below, add the following line to your :file:`$HOME/.neperrc` file (or to a local configuration file to be loaded with :option:`--rcfile`):: + + neper -V -imagesize 250:500 -cameracoo x+5:y+5:z+5 -cameraangle 6 + +Cleaning the Tesr: Raster Trimming and Cell Renumbering +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +At this point, the polycrystal is generally surrounded by a relatively large empty volume, which makes the tesr file larger than necessary. Also, the cells may not by numbered contiguously from 1 (in the :data:`**cell/*data` section). This can be fixed as follows: + +.. code-block:: console + + $ neper -T -loadtesr AlLi.tesr -transform autocrop,resetorigin,renumber,resetcellid -o AlLi-c + +:data:`autocrop` generates a :data:`**general/*origin` section so that the voxel coordinates are retained, and it is here reset to (:data:`0`, :data:`0`, :data:`0`) using :data:`resetorigin`. :data:`renumber` generates a :data:`**cell/*id` section so that cell identifiers are retained, and they are here reset to a contiguous sequence starting from 1 using :data:`resetcellid`. + +Aligning the Polycrystal +~~~~~~~~~~~~~~~~~~~~~~~~ + +The polycrystal axes may not perfectly coincide with the tesr axes. It is generally a good idea to fix this, at it will later facilitate the domain definition. This can be analysed via orthographic views along the 3 coordinate axes: + +.. code-block:: console + + $ neper -V AlLi-c.tesr -print AlLi-c \ + -cameraprojection orthographic \ + -cameracoo x+8:y:z -print AlLi-c-x \ + -cameracoo x:y+8:z -print AlLi-c-y \ + -cameracoo x:y:z+8 -print AlLi-c-z + +.. image:: morpho_tesr_mesh/AlLi-c.png + +It is possible to determine by elementary image processing that the polycrystal is tilted by -0.6° around the *x* axis, 1° around the *y* axis, and 2° around the *z* axis. This can be corrected simply by applying the rotations successively, but, before the rotations, a 10-voxel buffer is added around the polycrystal to accommodate the new positions, and, after the rotations, the raster is cropped again. Of course, Neper rotates the whole polycrystal (including the grain orientations). The command is as follows: + +.. code-block:: console + + $ neper -T -loadtesr AlLi-c.tesr \ + -transform "addbuffer(10,10,10),rotate(1,0,0,0.6),rotate(0,1,0,-1.0),rotate(0,0,1,2),autocrop,resetorigin" \ + -o AlLi-cr + +The tessellation can be visualized again after the transformation: + +.. code-block:: console + + $ neper -V AlLi-cr.tesr -print AlLi-cr-xyz \ + -cameraprojection orthographic \ + -cameracoo x+8:y:z -print AlLi-cr-x \ + -cameracoo x:y+8:z -print AlLi-cr-y \ + -cameracoo x:y:z+8 -print AlLi-cr-z + +.. image:: morpho_tesr_mesh/AlLi-cr.png + + +In general, but especially as a result of this transformation, the top and bottom surfaces are not flat nor perfectly horizontal, while this is usually desired for simulations. This can be fixed by cropping the tessellation by a few voxels along the z axis, as follows: + +.. code-block:: console + + $ neper -T -loadtesr AlLi-cr.tesr \ + -transform "crop(cube(-10,10,-10,10,originz+5*voxsizez,originz+(voxnbz-5)*voxsizez)),autocrop,resetorigin,renumber,resetcellid" + -o AlLi-crc + +The tesr can be visualized as before (along x and y, and in perspective): + +.. code-block:: console + + $ neper -V AlLi-crc.tesr -print AlLi-crc-xyz \ + -cameraprojection orthographic \ + -cameracoo x+8:y:z -print AlLi-crc-x \ + -cameracoo x:y+8:z -print AlLi-crc-y \ + -cameracoo x:y:z+8 -print AlLi-crc-z + +.. image:: morpho_tesr_mesh/AlLi-crc.png + +Defining the Domain +~~~~~~~~~~~~~~~~~~~ + +The last step is to define the *domain*, i.e. the actual external envelope of the polycrystal, and to have the polycrystal fill it perfectly. When the polycrystal is not cubic, this is certainly the most tedious step. For this polycrystal, the domain can be represented by a cube slightly slimer than the tesr in the *y* direction (by 2 x 3 voxels) and of the same size as the tesr in the *z* direction (which has already been "cropped"), and cut by 2 torus in the *x* direction. We generate it through a 1000-cell tessellation: + +.. code-block:: console + + $ neper -T -n 1000 -domain "cube(1,0.479,1.5785):translate(-0.25,0.0105,0)" \ + -transform "cut(torus(1.119,0.231,0.78925,0,0,1,10,8.916),torus(-0.58,0.231,0.78925,0,0,1,10,8.916))" \ + -o domain + +The domain can be superimposed onto the tesr as follows. First, we generate an image of the domain at the :data:`pov:objects` format: + +.. code-block:: console + + $ neper -V domain.tess \ + -showcell 0 \ + -showedge "domtype==1" \ + -showface "domtype==2" \ + -dataedgerad 0.0035 \ + -datafacetrs 0.5 \ + -imageformat pov:objects \ + -print domain + +The, we plot the polycrystal as before, but we also include the domain file: + +.. code-block:: console + + $ neper -V AlLi-crc.tesr \ + -includepov domain.pov \ + -print AlLi-crcd-xyz \ + -cameraprojection orthographic \ + -cameracoo x+8:y:z -print AlLi-crcd-x \ + -cameracoo x:y+8:z -print AlLi-crcd-y \ + -cameracoo x:y:z+8 -print AlLi-crcd-z \ + -cameracoo x-8:y:z -print AlLi-crcd-xm\ + -cameracoo x:y-8:z -print AlLi-crcd-ym\ + -cameracoo x:y:z-8 -print AlLi-crcd-zm + +.. image:: morpho_tesr_mesh/AlLi-crcd.png + + +This shows how closely the domain fits the polycrystal. + +Adjusting the Tesr to the Domain +-------------------------------- + +The tesr can now be adjusted to the domain. To do so, the grains are grown until they fill the entire tesr and the tesr is then intersected with the domain, and we finish by the usual :data:`autocrop,renumber`: + +.. code-block:: console + + $ neper -T -loadtesr AlLi.tesr -transform "grow,tessinter(domain.tess),autocrop,renumber" + +The tessellation may contain an :data:`*origin` at this point, which we can determine as follows: + +.. code-block:: console + + $ neper -T -loadtesr AlLi-crcf.tesr -stattesr originx,originy,originz + +As per the :data:`AlLi-crcf.sttesr` file, the origin is :data:`0 0.0105 0`. We can reset it simply, and apply :data:`domain.tess` the same transformation (this is only for the visualization that follows): + +.. code-block:: console + + $ neper -T -loadtesr AlLi-crcf.tesr -transform resetorigin + $ neper -T -loadtesr domain.tess -transform "translate(0,-0.0105,0)" + +Finally, the grains can be cleaned from potential "satellites" (voxels that would be disconnected from the rest of the grain): + +.. code-block:: console + + $ neper -T -loadtesr AlLi-crcf.tesr -transform "rmsat,grow,tessinter(domain.tess)" -o AlLi-crcfs + +For this polycrystal, less than 200 voxels are filtered. + +We can visualize the final tesr, this time taking advantage of the definition of the domain to highlight the polycrystal edges: + +.. code-block:: console + + $ neper -V domain.tess \ + -showcell 0 \ + -showedge "domtype==1" \ + -dataedgerad 0.0035 \ + -datafacetrs 0.5 \ + -imageformat pov:objects \ + -print domain + + $ neper -V AlLi-crcf.tesr \ + -includepov domain.pov \ + -print AlLi-crcfs-xyz \ + -cameraprojection orthographic \ + -cameracoo x+8:y:z -print AlLi-crcfs-x\ + -cameracoo x:y+8:z -print AlLi-crcfs-y\ + -cameracoo x:y:z+8 -print AlLi-crcfs-z + +.. image:: morpho_tesr_mesh/AlLi-crcfs.png + +The tesr is now perfectly clean and ready for further processing. + +Generating a Tessellation (:file:`.tess`) +----------------------------------------- + +A (scalar) tessellation (:file:`.tess`) can be generated from the tesr, for meshing. Since the domain has to be convex (and we can cut the tessellation afterwards), we use the bounding box of :data:`domain.tess`. We make the domain a little larger along *x* to enable for clean cutting: + +.. code-block:: console + + $ neper -T -n from_morpho \ + -domain "cube(0.5687,0.4790,1.5785):translate(-0.01,0,0)" \ + -morpho "tesr:file(AlLi-crcfs.tesr)" \ + -morphooptiobj "tesr:pts(region=surf,res=10)" \ + -transform "cut(torus(1.119,0.231,0.78925,0,0,1,10,8.916),torus(-0.58,0.231,0.78925,0,0,1,10,8.916))" \ + -o AlLi + +Even if the tesr does not fill the domain, and because of the form of the objective function, the method works just as well as in the standard case. We can visualized the tess: + +.. code-block:: console + + $ neper -V AlLi.tess -print AlLi-tess + +.. image:: morpho_tesr_mesh/AlLi-tesr-tess.png + + +It is also useful to apply regularization, for future meshing; we choose to reduce the small edge length (threshold) to 0.25 times its default value: + +.. code-block:: console + + $ neper -T -loadtess AlLi.tess -reg 1 -rsel 0.25 + +Generating a Mesh (:file:`.msh`) +-------------------------------- + +A mesh can be simply obtained from the tess; we adapt the progression factor to the value of :option:`-rsel` used before: + +.. code-block:: console + + $ neper -M AlLi-r.tess -rcl 0.5 -pl 8 + $ neper -V AlLi-r.tess,AlLi-r.msh -showelt1d all -print AlLi-mesh + +.. image:: morpho_tesr_mesh/AlLi-tesr-tess-mesh.png + +.. [CMAME2018] :ref:`singlescale`. diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-c.png b/doc/tutorials/morpho_tesr_mesh/AlLi-c.png new file mode 100644 index 000000000..413a51acb Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-c.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-cr.png b/doc/tutorials/morpho_tesr_mesh/AlLi-cr.png new file mode 100644 index 000000000..fe58a0834 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-cr.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-crc.png b/doc/tutorials/morpho_tesr_mesh/AlLi-crc.png new file mode 100644 index 000000000..d75ef1dd9 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-crc.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-crcd.png b/doc/tutorials/morpho_tesr_mesh/AlLi-crcd.png new file mode 100644 index 000000000..2e35c40b4 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-crcd.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-crcf-xyz.png b/doc/tutorials/morpho_tesr_mesh/AlLi-crcf-xyz.png new file mode 100644 index 000000000..6d9c9ae74 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-crcf-xyz.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-crcf.png b/doc/tutorials/morpho_tesr_mesh/AlLi-crcf.png new file mode 100644 index 000000000..dedd77bcc Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-crcf.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-crcfs.png b/doc/tutorials/morpho_tesr_mesh/AlLi-crcfs.png new file mode 100644 index 000000000..58ee3ae7f Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-crcfs.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-filled-xyz.png b/doc/tutorials/morpho_tesr_mesh/AlLi-filled-xyz.png new file mode 100644 index 000000000..6c1a4dd42 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-filled-xyz.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-ori.png b/doc/tutorials/morpho_tesr_mesh/AlLi-ori.png new file mode 100644 index 000000000..1a4b70c63 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-ori.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-tesr-tess-mesh.png b/doc/tutorials/morpho_tesr_mesh/AlLi-tesr-tess-mesh.png new file mode 100644 index 000000000..b2a577710 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-tesr-tess-mesh.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-tesr-tess.png b/doc/tutorials/morpho_tesr_mesh/AlLi-tesr-tess.png new file mode 100644 index 000000000..10212fd44 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-tesr-tess.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi-tess.png b/doc/tutorials/morpho_tesr_mesh/AlLi-tess.png new file mode 100644 index 000000000..6e7d0f172 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi-tess.png differ diff --git a/doc/tutorials/morpho_tesr_mesh/AlLi.png b/doc/tutorials/morpho_tesr_mesh/AlLi.png new file mode 100644 index 000000000..213ce7c31 Binary files /dev/null and b/doc/tutorials/morpho_tesr_mesh/AlLi.png differ diff --git a/doc/tutorials/orientation_color_key.rst b/doc/tutorials/orientation_color_key.rst new file mode 100644 index 000000000..c62fb3ceb --- /dev/null +++ b/doc/tutorials/orientation_color_key.rst @@ -0,0 +1,42 @@ +.. _orientation_color_key: + +Plotting an Orientation Color Key +================================= + +The :ref:`neper_v` can color cells, elements, etc. according to their orientations, but an image of the color key itself is not generated. Color keys can be obtained as described in the following. + +.. note:: People interested in a color key rather than how it is generated may simply copy the image. + +.. _rodrigues_color_key: + +Rodrigues Color Key +------------------- + +Cubic crystal symmetry is assumed. The color map onto the fundamental region of Rodrigues space is created by generating a tessellation corresponding to the fundamental region, meshing it, getting the node colors, and visualizing it - as the space is 3D, we also produce a slice view: + +.. code-block:: console + + $ neper -T -n 1 -domain "rodrigues(cubic)" -o rodrigues + $ neper -M rodrigues.tess -cl 0.05 -statnode col_rodrigues + $ neper -V rodrigues.tess,rodrigues.msh -datanodecol "col:file(rodrigues.stnode)" -dataeltcol from_nodes -dataelt3dedgerad 0 -dataelt1drad 0.002 -showelt1d all -showcsys 1 -datacsyscoo 0.44:-0.44:0.65 -datacsysrad 0.005 -datacsyslength 0.15 -datacsyslabel " : : " -cameracoo 4:4:3 -imagesize 400:400 -cameraangle 14 -cameraprojection orthographic -sceneshadow 0 -print tmp1 -slicemesh "x=0,y=0,z=0" -showtess 1 -showcell 0 -showedge all -dataedgerad 0.002 -showmesh 0 -showmeshslice 1 -showcsys 0 -print tmp2 + $ convert -pointsize 20 -draw "text 1,86 'X1' text 55,86 'X2' text 28,17 'X3'" tmp1.png tmp1b.png + $ convert +append tmp1b.png tmp2.png rodrigues.png + +.. image:: orientation_color_key/rodrigues.png + +.. _ipf_color_key: + +IPF Color Key +------------- + +Cubic crystal symmetry is assumed. The color map onto the standard stereographical triangle is created by generating a tessellation corresponding to the triangle, meshing it, getting the node colors, and visualizing it: + + +.. code-block:: console + + $ neper -T -n 1 -domain "stdtriangle(20)" -dim 2 -o stdtriangle + $ neper -M stdtriangle.tess -cl 0.02 -statnode col_stdtriangle + $ neper -V stdtriangle.msh -datanodecol "col:file(stdtriangle.stnode)" -dataeltcol from_nodes -dataelt2dedgerad 0 -dataelt1drad 0.001 -showelt1d all -imagesize 800:400 -print tmp + $ convert -pointsize 32 -draw "text 180,390 '[001]' text 545,390 '[011]' text 505,30 '[111]'" tmp.png stdtriangle.png + +.. image:: orientation_color_key/stdtriangle.png diff --git a/doc/tutorials/orientation_color_key/rodrigues.png b/doc/tutorials/orientation_color_key/rodrigues.png new file mode 100644 index 000000000..c63498438 Binary files /dev/null and b/doc/tutorials/orientation_color_key/rodrigues.png differ diff --git a/doc/tutorials/orientation_color_key/stdtriangle.png b/doc/tutorials/orientation_color_key/stdtriangle.png new file mode 100644 index 000000000..bb08cda5d Binary files /dev/null and b/doc/tutorials/orientation_color_key/stdtriangle.png differ diff --git a/doc/tutorials/pole_figure.rst b/doc/tutorials/pole_figure.rst new file mode 100644 index 000000000..5fa335a0d --- /dev/null +++ b/doc/tutorials/pole_figure.rst @@ -0,0 +1,372 @@ +.. _pole_figure: + +Plotting a Pole Figure +====================== + +.. important:: Read first: :ref:`visualize_tessellation`. + +A pole figure can be generated using the :ref:`neper_v`, by switching to pole figure space, using :option:`-space` :data:`pf`. Pole figures can be generated from one or several inputs, among those of the :ref:`neper_v`, such as the orientations of a tessellation cells, an orientation file and/or a direction file, making it possible to produce advanced figures. + +Visualization in pole figure space works in the same way as visualization in standard, real space: the entity properties can be specified using the :option:`-data*` options, the entities to show can be specified using the :option:`-show*` options, etc. A difference is that the list of entities reduces to :data:`cell` if the input is a tessellation, and :data:`<input>` (or the default :data:`point`) if the input is a custom input (orientations or directions). + +In the following, and unless mentionned otherwise, a simple tessellation is used: + +.. code-block:: console + + # $ neper -T -n 100 -morpho gg -oricrysym cubic -o n100 + +The tessellation can be visualized as follows: + +.. code-block:: console + + $ neper -V n100.tess -imagesize 800:400 -print img1 + +.. image:: pole_figure/img1.png + +To reproduce *exactly* the images below, add the following line to your :file:`$HOME/.neperrc` file (or to a local configuration file to be loaded with :option:`--rcfile`):: + + neper -V -imagesize 500:500 + +Generalities +------------ + +The tessellation orientations can be visualized using :option:`-space` :data:`pf`: + +.. code-block:: console + + $ neper -V n100.tess -space pf -print img2 + +.. image:: pole_figure/img2.png + +This generates a PNG image named :file:`img2.png`. By default, a pole figure is plotted from the (four) {111} poles, using a stereographic projection in the 1--2 reference plane, and all cell orientations/poles are represented using symbols. Orientations are colored from their (cell) ids, so that colors match between visualizations in real space an pole figure space (the two images above). + +.. note:: Even if only orientations/poles are represented in pole figure space, :data:`cell` is used to represent a cell orientation, which makes it possible to use the same options, :option:`-showcell`, :option:`-datacellcol`, etc. in all spaces. + +For pole figures, it is also possible to write the output file at a vectorial PDF format: + +.. code-block:: console + + $ neper -V n100.tess -space pf -imageformat pdf -print img2 + +:download:`img2.pdf <pole_figure/img2.pdf>` + +.. note:: The PDF format, as a vectorial format, provides an optimal quality/weight ratio and should be used when possible (for example, in LaTeX documents). + +The pole family can be modified using :option:`-pfpole`: + +.. code-block:: console + + $ neper -V n100.tess -space pf -pfpole 1:0:0 -print img3 + +.. image:: pole_figure/img3.png + + +The projection type can be modified using :option:`-pfprojection`: + +.. code-block:: console + + $ neper -V n100.tess -space pf -pfprojection equal-area -print img4 + +.. image:: pole_figure/img4.png + +The sample directions can be modified using :option:`-pfdir`, so as the actual axis labels, using :option:`-datacsyslabel`: + +.. code-block:: console + + $ neper -V n100.tess -space pf -pfdir y:z -datacsyslabel RD:TD:ND -print img5 + +.. image:: pole_figure/img5.png + +The representation *mode* can be changed into :data:`density`: + +.. code-block:: console + + $ neper -V n100.tess -space pf -pfmode density -print img6 + +.. image:: pole_figure/img6.png + +It is even possible to superimpose the :data:`symbol` and :data:`density` representation modes: + +.. code-block:: console + :emphasize-lines: 2 + + $ neper -V n100.tess -space pf \ + -pfmode density,symbol \ + -datacellcol orange \ + -datacellrad 0.01 \ + -print img7 + +.. image:: pole_figure/img7.png + +The visualization can be reduced to a selection of cells using :option:`-showcell` (as in real space). For instance, to show only the cells larger than the average: + +.. code-block:: console + + $ neper -V n100.tess -space pf -showcell "vol>0.01" -print img8 + +.. image:: pole_figure/img8.png + +Finally, it is possible to change the character font from the default :data:`TimesRoman` to the LaTeX-style :data:`ComputerModern`: + +.. code-block:: console + + $ neper -V n100.tess -space pf -pffont ComputerModern -print img9 + +.. image:: pole_figure/img9.png + +Configuring a Symbol Plot +------------------------- + +For a tessellation, the way data are represented can be specified using options :option:`-datacell*`. The properties include the color (options :option:`-datacellcol` and :option:`-datacellcolscheme`), +transparency (option :option:`-datacelltrs`), radius (or size) (option :option:`-datacellrad`) and symbol (option :option:`-datacellsymbol`). + +The size of the poles can, for instance, be set to be proportional to the corresponding cell sizes, and their colors a function of the z cell positions: + +.. code-block:: console + :emphasize-lines: 2-5 + + $ neper -V n100.tess -space pf \ + -datacellrad real:0.1*diameq \ + -datacellcol z \ + -datacellscale "0.0:1.0" \ + -datacellscaletitle "z position" \ + -print img10 + $ convert +append img10.png img10-scale3.png -alpha off img10.png + +.. image:: pole_figure/img10.png + +This originally produces a PNG file named :file:`img10.png` for the map and a PNG file named :file:`img10-scale3.png` for the scale bar, which is pasted to :file:`img10.png` thanks to :program:`convert`. + +The apparence of the symbol "edges" can also be specified, using options :option:`-datacelledgerad` and :option:`-datacelledgecol`. For example: + +.. code-block:: console + :emphasize-lines: 6,7 + + $ neper -V n100.tess -space pf \ + -datacellrad real:0.1*diameq \ + -datacellcol z \ + -datacellscale "0.0:1.0" \ + -datacellscaletitle "z position" \ + -datacelledgerad 0.02 \ + -datacelledgecol orange \ + -print img11 + $ convert +append img11.png img11-scale3.png -alpha off img11.png + +.. image:: pole_figure/img11.png + +The type of symbols can be specified using :option:`-datacellsymbol`. For example, to use squares: + +.. code-block:: console + :emphasize-lines: 3 + + $ neper -V n100.tess -space pf \ + -datacellrad real:0.1*diameq \ + -datacellsymbol "square" \ + -print img12 + +.. image:: pole_figure/img12.png + +When only the type of symbol is provided to :option:`-datacellsymbol`, the radius is taken from option :option:`-datacellrad` (either the provided value or the default value). Alternatively, values can be provided in :option:`-datacellsymbol` itself, as well as an angle; different symbols can even be specified for the different cells, using a :ref:`data_file` (:download:`n100-symbols <pole_figure/n100-symbols>`), to produce a fully customized plot: + +.. code-block:: console + :emphasize-lines: 2 + + $ neper -V n100.tess -space pf \ + -datacellsymbol "file(n100-symbols)" \ + -print img13 + +.. image:: pole_figure/img13.png + +Configuring a Density Field Plot +-------------------------------- + +A tessellation with typical rolling orientations is used in the following: :download:`n200-psc.tess <pole_figure/n200-psc.tess>`. + +The (default) symbol plot can be turned into a density field plot using :option:`-pfmode` :data:`density`. + +.. code-block:: console + :emphasize-lines: 2 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -print img14 + +.. image:: pole_figure/img14.png + +A density plot is plotted with a color field and contour lines that correspond to the scale ticks. + +The scale extent and ticks (and so the values of the contour lines) can be modified using :option:`-datacellscale`: + +.. code-block:: console + :emphasize-lines: 3 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -datacellscale 0:2:4:6:8:10:12 \ + -print img15 + +.. image:: pole_figure/img15.png + +A density field is computed by assigning a kernel to each pole, which is defined by :option:`-pfkernel` (default :data:`normal(theta=3)`). A different value changes the intensity of the density field: + +.. code-block:: console + :emphasize-lines: 3 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -pfkernel "normal(theta=5)" \ + -datacellscale 0:1:2:3:4:5:6 \ + -print img16 + +.. image:: pole_figure/img16.png + +Symmetry conditions in the reference coordinate system can be defined using :option:`-pfsym` (default :data:`monoclinic`). It can be set to :data:`orthotropic`: + +.. code-block:: console + :emphasize-lines: 4 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -pfkernel "normal(theta=5)" \ + -pfsym orthotropic \ + -datacellscale 0:1:2:3:4:5:6 \ + -print img17 + +.. image:: pole_figure/img17.png + +In the case of orthotropic symmetry, the pole figure can be reduced to one quarter using :option:`-pfsym` :data:`quarter` (default :data:`full`): + +.. code-block:: console + :emphasize-lines: 5 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -pfkernel "normal(theta=5)" \ + -pfsym orthotropic \ + -pfshape quarter \ + -datacellscale 0:1:2:3:4:5:6 \ + -print img18 + +.. image:: pole_figure/img18.png + +The density field is defined on a regular grid, whose dimensions can be modified using :option:`-pfgridsize`. While the default value of :data:`200` provides a good balance between quality and computation time, the option can be used to speed up generation or, at the opposite, increase quality: + +.. code-block:: console + :emphasize-lines: 6,8 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -pfkernel "normal(theta=5)" \ + -datacellscale 0:1:2:3:4:5:6 \ + -pfsym orthotropic \ + -pfgridsize 30 \ + -print img19 \ + -pfgridsize 300 \ + -print img20 + +.. image:: pole_figure/img19.png +.. image:: pole_figure/img20.png + +It is possible to specify which color scheme to use for the density plot, using :option:`-datacellcolscheme` (see :ref:`color_map_for_real_values`): + +.. code-block:: console + :emphasize-lines: 6 + + $ neper -V n200-psc.tess -space pf \ + -pfmode density \ + -pfkernel "normal(theta=5)" \ + -pfsym orthotropic \ + -datacellscale 0.0:6 \ + -datacellcolscheme "viridis:fade" \ + -print img21 + +.. image:: pole_figure/img21.png + +Working From an Orientation Input +--------------------------------- + +A pole figure can be generated from an orientation file by loading it as a custom input (see :ref:`neper_v_input_data`). For instance, consider an orientation file, :file:`n100.ori`, generated by :ref:`neper_t`: + +.. code-block:: console + + $ neper -T -n 100 -for ori -o n100 + +The file can be loaded to the :ref:`neper_v` and plotted as a pole figure as follows: + +.. code-block:: console + + $ neper -V n100.ori -space pf -print img22 + +.. image:: pole_figure/img22.png + +.. note:: In :option:`-space` :data:`pf`, a custom input is interprated as an orientation file by default. + The command produces the same image as if the orientations were read from a tessellation with the same orientations. + +Since the orientations are not attached to cells, they are no longer called :data:`cell` but :data:`point` (by default) in options :option:`-data*` and :option:`-show*`. For example, to specify symbol radii: + +.. code-block:: console + + $ neper -V n100.ori -space pf -datapointrad 0.01+0.03*id/100 -print img23 + +.. image:: pole_figure/img23.png + +Working From a Direction Input +------------------------------ + +A pole figure can be created from directions (instead of orientations) loaded as a custom input (see :ref:`neper_v_input_data`). For instance, consider file :download:`dir_file <pole_figure/dir_file>`. The file can be loaded to the :ref:`neper_v`, as a direction file, and plotted as a pole figure as follows: + +.. code-block:: console + + $ neper -V "mydir(type=vector):file(dir_file)" -space pf -print img24 + +.. image:: pole_figure/img24.png + +The data are not called :data:`point` anymore but :data:`mydir` (or any other name defining the custom input), which defines new options, :option:`-datamydir*` and :option:`-showmydir`. + +.. code-block:: console + :emphasize-lines: 2 + + $ neper -V "mydir(type=vector):file(dir_file)" -space pf \ + -datamydirrad 0.01+0.03*id/100 \ + -print img25 + +.. image:: pole_figure/img25.png + +Working From Multiple Inputs +---------------------------- + +A pole figure can be created from multiple inputs loaded as custom inputs (see :ref:`neper_v_input_data`). This can, for example, be used to plot a (lattice) rotation path associated with plastic deformation. In the following, file :download:`ini <pole_figure/ini>` contains an initial orientation, :download:`all <pole_figure/all>` its locations during plastic deformation, and :download:`fin <pole_figure/fin>` the final orientation, all written as Rodrigues vectors. + +The initial orientation, rotation path and final orientation can be visualized as follows: + +.. code-block:: console + :emphasize-lines: 1,3-5 + + $ neper -V "final(type=ori):file(fin),initial(type=ori):file(ini),path(type=ori):file(all)" \ + -space pf \ + -datainitialrad 0.030 -datainitialcol pink \ + -datapathrad 0.005 -datapathcol black \ + -datafinalrad 0.060 -datafinalcol red \ + -print img26 + +.. image:: pole_figure/img26.png + +It is also possible to plot in :data:`density` mode, in which case the mode applies only to the first input. This can be used, for example, to mimic an orientation spread at final state: + +.. code-block:: console + :emphasize-lines: 6 + + $ neper -V "final(type=ori):file(fin),initial(type=ori):file(ini),path(type=ori):file(all)" \ + -space pf \ + -datainitialrad 0.030 -datainitialcol pink \ + -datapathrad 0.005 -datapathcol black \ + -datafinalrad 0.000 \ + -pfmode density,symbol \ + -datafinalscale 0.0:12 \ + -datafinalcolscheme viridis:fade \ + -pfgridsize 300 -pfkernel "normal(theta=8)" \ + -print img27 + +.. image:: pole_figure/img27.png + +Of course, it is also possible to represent final state using a file containing several orientations. diff --git a/doc/tutorials/pole_figure/all b/doc/tutorials/pole_figure/all new file mode 100644 index 000000000..2dd1728c2 --- /dev/null +++ b/doc/tutorials/pole_figure/all @@ -0,0 +1,201 @@ +0.088838317183 0.000000000000 0.176326980708 +0.089501992541 0.001444606795 0.175078755829 +0.090209225682 0.002932778338 0.173837613195 +0.090961028055 0.004465886220 0.172603731327 +0.091758442319 0.006045327299 0.171377279404 +0.092602541961 0.007672518645 0.170158413131 +0.093494513998 0.009348978655 0.168947222364 +0.094435666250 0.011076289397 0.167743687033 +0.095401641218 0.012810604710 0.166577241085 +0.096382599762 0.014534887021 0.165458890931 +0.097378142782 0.016249235603 0.164388168403 +0.098387787830 0.017953583608 0.163364768929 +0.099411041056 0.019647879480 0.162388401259 +0.100447387818 0.021332011993 0.161458839763 +0.101496351058 0.023006022331 0.160575761902 +0.102557429534 0.024669847715 0.159738942935 +0.103630129378 0.026323442268 0.158948162772 +0.104713964232 0.027966772269 0.158203209509 +0.105808455783 0.029599814431 0.157503880751 +0.106913134378 0.031222555323 0.156849984154 +0.108027539606 0.032834991187 0.156241337689 +0.109151220816 0.034437127898 0.155677769840 +0.110283737568 0.036028980959 0.155159119793 +0.111424660036 0.037610575483 0.154685237652 +0.112573569348 0.039181946162 0.154255984676 +0.113730057891 0.040743137220 0.153871233546 +0.114893729575 0.042294202343 0.153530868654 +0.116064200060 0.043835204600 0.153234786408 +0.117241096964 0.045366216346 0.152982895566 +0.118424060027 0.046887319119 0.152775117573 +0.119612741270 0.048398603530 0.152611386928 +0.120806805121 0.049900169137 0.152491651558 +0.122005928522 0.051392124331 0.152415873206 +0.123209801020 0.052874586195 0.152384027846 +0.124418124844 0.054347680378 0.152396106095 +0.125630614957 0.055811540955 0.152452113659 +0.126846999106 0.057266310288 0.152552071786 +0.128067017848 0.058712138881 0.152696017737 +0.129290424572 0.060149185235 0.152884005276 +0.130516985499 0.061577615700 0.153116105185 +0.131746479688 0.062997604323 0.153392405787 +0.132978699012 0.064409332694 0.153713013499 +0.134213448145 0.065812989791 0.154078053408 +0.135450544524 0.067208771820 0.154487669862 +0.136689818314 0.068596882048 0.154942027093 +0.137931112365 0.069977530644 0.155441309861 +0.139174282156 0.071350934501 0.155985724126 +0.140419195742 0.072717317061 0.156575497748 +0.141665733691 0.074076908136 0.157210881210 +0.142913789014 0.075429943715 0.157892148373 +0.144163267097 0.076776665766 0.158619597262 +0.145414085625 0.078117322021 0.159393550869 +0.146666174498 0.079452165756 0.160214357993 +0.147919475749 0.080781455538 0.161082394088 +0.149173943452 0.082105454952 0.161998062136 +0.150429543624 0.083424432288 0.162961793511 +0.151686254119 0.084738660173 0.163974048836 +0.152944064510 0.086048415132 0.165035318781 +0.154202975958 0.087353977027 0.166146124769 +0.155463001054 0.088655628340 0.167307019512 +0.156724182770 0.089953740428 0.168518702297 +0.157986543358 0.091248545468 0.169781724364 +0.159250130736 0.092540341706 0.171096754625 +0.160515004059 0.093829430409 0.172464501383 +0.161781233570 0.095116115539 0.173885714016 +0.163048900407 0.096400703335 0.175361184728 +0.164318096328 0.097683501669 0.176891750133 +0.165588923281 0.098964818682 0.178478292033 +0.166861492617 0.100244959193 0.180121735111 +0.168135923429 0.101524213708 0.181823033707 +0.169412356113 0.102803000663 0.183583387802 +0.170690919427 0.104081581428 0.185403828812 +0.171971749642 0.105360315432 0.187285602821 +0.173249225017 0.106634004490 0.189211757704 +0.174505709600 0.107885643491 0.191125111094 +0.175741373159 0.109115692684 0.193025260255 +0.176956317536 0.110324556675 0.194911704169 +0.178150821483 0.111512779473 0.196784312159 +0.179325021179 0.112680789000 0.198642710536 +0.180479069583 0.113829023491 0.200486586464 +0.181613120711 0.114957918471 0.202315656778 +0.182727325713 0.116067903147 0.204129659360 +0.183821832036 0.117159399284 0.205928350425 +0.184896783453 0.118232820797 0.207711503461 +0.185952320343 0.119288573565 0.209478908656 +0.186988580030 0.120327055331 0.211230372471 +0.188005697149 0.121348655641 0.212965717254 +0.189003803997 0.122353755810 0.214684780866 +0.189983030877 0.123342728900 0.216387416308 +0.190943506427 0.124315939722 0.218073491340 +0.191885357935 0.125273744847 0.219742888101 +0.192808711636 0.126216492632 0.221395502718 +0.193713692996 0.127144523264 0.223031244923 +0.194600426978 0.128058168805 0.224650037656 +0.195469038291 0.128957753262 0.226251816674 +0.196319651626 0.129843592657 0.227836530157 +0.197152391873 0.130715995108 0.229404138311 +0.197967384322 0.131575260926 0.230954612975 +0.198764754851 0.132421682712 0.232487937229 +0.199544630094 0.133255545467 0.234004105001 +0.200307137600 0.134077126704 0.235503120680 +0.201052405971 0.134886696572 0.236984998727 +0.201780564990 0.135684517980 0.238449763294 +0.202491745730 0.136470846732 0.239897447845 +0.203186080654 0.137245931659 0.241328094777 +0.203863703701 0.138010014762 0.242741755058 +0.204524750356 0.138763331353 0.244138487854 +0.205169357711 0.139506110203 0.245518360171 +0.205797664512 0.140238573688 0.246881446504 +0.206409811198 0.140960937940 0.248227828487 +0.207005939922 0.141673412997 0.249557594548 +0.207586194575 0.142376202958 0.250870839580 +0.208150720783 0.143069506131 0.252167664605 +0.208699665910 0.143753515192 0.253448176460 +0.209233179042 0.144428417332 0.254712487474 +0.209751410973 0.145094394411 0.255960715169 +0.210254514170 0.145751623111 0.257192981952 +0.210742642744 0.146400275082 0.258409414828 +0.211215952409 0.147040517094 0.259610145114 +0.211674600430 0.147672511185 0.260795308157 +0.212118745577 0.148296414800 0.261965043070 +0.212548548060 0.148912380941 0.263119492465 +0.212964169476 0.149520558301 0.264258802201 +0.213365772733 0.150121091410 0.265383121138 +0.213753521985 0.150714120762 0.266492600894 +0.214127582561 0.151299782957 0.267587395615 +0.214488120881 0.151878210821 0.268667661752 +0.214835304386 0.152449533542 0.269733557844 +0.215169301450 0.153013876791 0.270785244307 +0.215490281302 0.153571362842 0.271822883235 +0.215798413940 0.154122110689 0.272846638203 +0.216093870047 0.154666236167 0.273856674081 +0.216376820903 0.155203852055 0.274853156853 +0.216647438302 0.155735068194 0.275836253445 +0.216905894460 0.156259991583 0.276806131558 +0.217152361936 0.156778726488 0.277762959508 +0.217387013538 0.157291374540 0.278706906072 +0.217610022241 0.157798034828 0.279638140346 +0.217821529963 0.158298907190 0.280556821360 +0.218021736567 0.158793991112 0.281463129299 +0.218210814579 0.159283379437 0.282357233402 +0.218388936328 0.159767162857 0.283239302706 +0.218556273857 0.160245430007 0.284109505929 +0.218712998846 0.160718267530 0.284968011362 +0.218859282532 0.161185760164 0.285814986765 +0.218995295635 0.161647990805 0.286650599265 +0.219121208281 0.162105040578 0.287475015266 +0.219237189929 0.162556988907 0.288288400359 +0.219343409304 0.163003913571 0.289090919236 +0.219440034325 0.163445890772 0.289882735616 +0.219527232040 0.163882995187 0.290664012165 +0.219605168566 0.164315300026 0.291434910432 +0.219674009020 0.164742877084 0.292195590779 +0.219733917469 0.165165796791 0.292946212322 +0.219785056865 0.165584128261 0.293686932873 +0.219827588998 0.165997939334 0.294417908888 +0.219861674440 0.166407296625 0.295139295417 +0.219887472497 0.166812265559 0.295851246058 +0.219905141164 0.167212910416 0.296553912912 +0.219914837077 0.167609294362 0.297247446551 +0.219916715475 0.168001479489 0.297931995975 +0.219910930157 0.168389526846 0.298607708584 +0.219897633449 0.168773496472 0.299274730145 +0.219876976165 0.169153447424 0.299933204770 +0.219849107577 0.169529437806 0.300583274887 +0.219814175385 0.169901524796 0.301225081222 +0.219772325687 0.170269764673 0.301858762777 +0.219723702956 0.170634212838 0.302484456817 +0.219668450013 0.170994923837 0.303102298854 +0.219606708009 0.171351951385 0.303712422636 +0.219538616404 0.171705348382 0.304314960134 +0.219464312948 0.172055166937 0.304910041539 +0.219383933667 0.172401458381 0.305497795251 +0.219297612849 0.172744273290 0.306078347878 +0.219205483032 0.173083661495 0.306651824232 +0.219107674992 0.173419672101 0.307218347330 +0.219004317738 0.173752353502 0.307778038389 +0.218895538501 0.174081753392 0.308331016837 +0.218781462730 0.174407918783 0.308877400306 +0.218662214089 0.174730896012 0.309417304646 +0.218537914455 0.175050730756 0.309950843925 +0.218408683913 0.175367468047 0.310478130436 +0.218274640760 0.175681152274 0.310999274708 +0.218135901503 0.175991827204 0.311514385515 +0.217992580865 0.176299535985 0.312023569883 +0.217844791785 0.176604321160 0.312526933102 +0.217692598964 0.176906328761 0.313024566488 +0.217536153809 0.177205502634 0.313516584930 +0.217375563632 0.177501884065 0.314003088600 +0.217210933974 0.177795513782 0.314484175992 +0.217042368619 0.178086431953 0.314959943937 +0.216869969602 0.178374678202 0.315430487614 +0.216693837220 0.178660291609 0.315895900572 +0.216514070043 0.178943310718 0.316356274742 +0.216330764927 0.179223773546 0.316811700457 +0.216144017027 0.179501717582 0.317262266463 +0.215953919811 0.179777179800 0.317708059944 +0.215760565075 0.180050196659 0.318149166536 +0.215564042956 0.180320804110 0.318585670346 +0.215364441950 0.180589037600 0.319017653968 +0.215161848925 0.180854932080 0.319445198505 diff --git a/doc/tutorials/pole_figure/dir_file b/doc/tutorials/pole_figure/dir_file new file mode 100644 index 000000000..2f8cf736b --- /dev/null +++ b/doc/tutorials/pole_figure/dir_file @@ -0,0 +1,100 @@ +-0.069657092940 0.474002969374 -0.877763678006 +-0.582290524672 -0.482762061883 0.654124251564 +0.053352264873 -0.946610219748 0.317934942561 +0.108710424184 -0.529839334587 0.841101850669 +-0.800827415477 0.592029631554 0.090423260189 +0.757642510616 -0.422023815431 0.497869184943 +-0.732131649051 0.486279989920 0.476985345542 +0.692223782285 -0.014489444548 -0.721537449642 +0.904744852642 0.080773543762 0.418225281691 +-0.208362632702 -0.383945851237 0.899539102325 +-0.354107686272 -0.934742672203 -0.029391891508 +0.721313278296 -0.664710008632 -0.194596400219 +-0.566347991605 0.748042098496 0.345952267348 +-0.283781844228 0.437104574532 -0.853467899695 +-0.414099430676 -0.729128989108 -0.544878499077 +0.407394931181 -0.204516725677 0.890057458239 +0.229006468886 0.354997375382 0.906384521426 +0.200093509803 -0.678921604577 -0.706419168889 +-0.847269090219 0.082315453625 -0.524746848350 +0.967164819221 0.045042643514 -0.250126713339 +-0.599528590406 -0.551535138154 0.579977982917 +0.996833947772 0.030294834077 0.073513968726 +-0.428594868468 0.532366594549 -0.729994690207 +0.734412861716 0.048170461921 -0.676991399609 +-0.992002759204 0.107202046664 0.066620169036 +-0.803752494693 -0.504047796354 0.316097684688 +0.717928937368 -0.452205066024 0.529233992817 +0.936963402657 -0.257336557992 0.236384174602 +0.113408747747 -0.487603188533 -0.865668288935 +-0.092747164596 -0.631844546949 -0.769526108686 +0.445685315856 0.824343976459 0.349029522685 +0.388108978465 0.823784285814 0.413220124485 +-0.138183642058 -0.344286900832 -0.928639763839 +-0.623675860125 0.451762595171 0.637917689911 +-0.164266932162 0.833617799481 0.527349731570 +0.009287419732 -0.321822101151 -0.946754603393 +-0.876092491054 -0.251700568275 0.411228368489 +0.643843916372 -0.010085793491 0.765090379053 +-0.733001428696 -0.329368998955 -0.595168016661 +-0.775232508121 0.027459489900 0.631078865726 +-0.083315790157 -0.202604281233 -0.975709989872 +0.084923917607 -0.837065374108 0.540471541977 +-0.115293696909 -0.447455106074 -0.886843442498 +0.165256873942 0.985596503863 0.035912354240 +-0.462486845343 -0.074666746143 0.883476538967 +-0.436275112169 -0.783701751288 0.442126216742 +0.928103197164 -0.192103794426 -0.318936651359 +-0.969066252774 -0.246081144803 -0.018832628756 +-0.791621027317 -0.150492192685 -0.592189369248 +-0.423987051080 -0.572679464132 -0.701621843929 +0.873376218795 0.485176857959 -0.042630938819 +0.690986672580 0.530161311272 0.491392310021 +0.877908356484 -0.415370668942 0.238210253763 +0.757284990996 -0.511624691838 -0.405905921507 +-0.967004876023 0.234385723852 0.099824356760 +0.525814953987 -0.671012189534 0.522743986729 +0.218035303544 -0.004338830127 -0.975931237824 +-0.339358053790 -0.155052141182 0.927790356084 +-0.322288692843 0.942937854644 -0.083655249352 +-0.887213311971 -0.276275767658 -0.369491866307 +-0.124087986561 -0.008259129120 -0.992236845908 +-0.694416693204 0.144364404634 -0.704942816741 +0.002697858164 0.721834471746 -0.692060486489 +-0.946384537473 0.084010133000 0.311927242775 +-0.197093180196 0.036064638417 0.979721195124 +0.000940819782 -0.934831648756 0.355089993302 +-0.602567104479 -0.583974318598 0.543954850900 +0.615411178581 -0.720662748662 0.319240166597 +-0.179710613871 -0.118686728852 0.976533438064 +0.807950937982 0.178637579028 0.561519275870 +0.017781987633 -0.224580227142 -0.974293345196 +0.540324445704 0.658307551160 -0.524099858290 +0.854859838433 0.335013282956 0.396207971749 +0.442902918672 0.663103474002 0.603432504427 +0.560865511172 -0.490442881032 0.667004991602 +0.241093149768 -0.265893386166 -0.933367451933 +0.443617064462 0.612687312545 -0.654078097145 +0.397044188969 0.771003992633 0.497904363658 +-0.281807717819 -0.212760961654 -0.935583872976 +0.181051484364 -0.000662790994 0.983473396040 +-0.340100492648 -0.223483610757 -0.913447716415 +-0.128754163058 0.736217691438 0.664383832065 +0.426298532920 -0.874866379334 0.229952993329 +0.713519634069 0.462431913518 -0.526352027789 +0.018613512383 0.985894737533 0.166328300841 +0.765048846804 -0.376152230714 -0.522694711406 +0.073538534702 -0.139880936004 0.987433748490 +-0.418098069839 0.892962091540 -0.166771421620 +-0.934986290133 0.266246561728 -0.234336095450 +0.446645531966 -0.894578773823 -0.015381358840 +0.800520430782 0.519133292994 -0.299445594401 +0.520643948078 -0.415466004991 -0.745867198653 +0.491012037869 -0.801074088842 -0.342326573397 +0.664082733956 0.243022574223 -0.707060217294 +-0.456060492880 -0.207963327228 0.865309240308 +-0.501215497835 0.367705187748 0.783310870366 +-0.812247842268 -0.474831902854 -0.338803935577 +-0.501603849404 0.215773629061 -0.837756121592 +-0.699747134418 -0.236082218835 0.674254502264 +0.657024569134 -0.404646888685 -0.636065728546 diff --git a/doc/tutorials/pole_figure/fin b/doc/tutorials/pole_figure/fin new file mode 100644 index 000000000..328f39884 --- /dev/null +++ b/doc/tutorials/pole_figure/fin @@ -0,0 +1 @@ +0.215161848925 0.180854932080 0.319445198505 diff --git a/doc/tutorials/pole_figure/img1.png b/doc/tutorials/pole_figure/img1.png new file mode 100644 index 000000000..f631cd1f1 Binary files /dev/null and b/doc/tutorials/pole_figure/img1.png differ diff --git a/doc/tutorials/pole_figure/img10-scale3.png b/doc/tutorials/pole_figure/img10-scale3.png new file mode 100644 index 000000000..5037fabc8 Binary files /dev/null and b/doc/tutorials/pole_figure/img10-scale3.png differ diff --git a/doc/tutorials/pole_figure/img10.png b/doc/tutorials/pole_figure/img10.png new file mode 100644 index 000000000..4c005461e Binary files /dev/null and b/doc/tutorials/pole_figure/img10.png differ diff --git a/doc/tutorials/pole_figure/img11-scale3.png b/doc/tutorials/pole_figure/img11-scale3.png new file mode 100644 index 000000000..da1ed5693 Binary files /dev/null and b/doc/tutorials/pole_figure/img11-scale3.png differ diff --git a/doc/tutorials/pole_figure/img11.png b/doc/tutorials/pole_figure/img11.png new file mode 100644 index 000000000..204a68038 Binary files /dev/null and b/doc/tutorials/pole_figure/img11.png differ diff --git a/doc/tutorials/pole_figure/img12.png b/doc/tutorials/pole_figure/img12.png new file mode 100644 index 000000000..b486c62e3 Binary files /dev/null and b/doc/tutorials/pole_figure/img12.png differ diff --git a/doc/tutorials/pole_figure/img13.png b/doc/tutorials/pole_figure/img13.png new file mode 100644 index 000000000..836b3be61 Binary files /dev/null and b/doc/tutorials/pole_figure/img13.png differ diff --git a/doc/tutorials/pole_figure/img14.png b/doc/tutorials/pole_figure/img14.png new file mode 100644 index 000000000..17812d667 Binary files /dev/null and b/doc/tutorials/pole_figure/img14.png differ diff --git a/doc/tutorials/pole_figure/img15.png b/doc/tutorials/pole_figure/img15.png new file mode 100644 index 000000000..462e56e6e Binary files /dev/null and b/doc/tutorials/pole_figure/img15.png differ diff --git a/doc/tutorials/pole_figure/img16.png b/doc/tutorials/pole_figure/img16.png new file mode 100644 index 000000000..7e7ca12ee Binary files /dev/null and b/doc/tutorials/pole_figure/img16.png differ diff --git a/doc/tutorials/pole_figure/img17.png b/doc/tutorials/pole_figure/img17.png new file mode 100644 index 000000000..ed59b3fa2 Binary files /dev/null and b/doc/tutorials/pole_figure/img17.png differ diff --git a/doc/tutorials/pole_figure/img18.png b/doc/tutorials/pole_figure/img18.png new file mode 100644 index 000000000..6d174d12b Binary files /dev/null and b/doc/tutorials/pole_figure/img18.png differ diff --git a/doc/tutorials/pole_figure/img19.png b/doc/tutorials/pole_figure/img19.png new file mode 100644 index 000000000..401e51879 Binary files /dev/null and b/doc/tutorials/pole_figure/img19.png differ diff --git a/doc/tutorials/pole_figure/img2.pdf b/doc/tutorials/pole_figure/img2.pdf new file mode 100644 index 000000000..62633009b Binary files /dev/null and b/doc/tutorials/pole_figure/img2.pdf differ diff --git a/doc/tutorials/pole_figure/img2.png b/doc/tutorials/pole_figure/img2.png new file mode 100644 index 000000000..896ba7ccd Binary files /dev/null and b/doc/tutorials/pole_figure/img2.png differ diff --git a/doc/tutorials/pole_figure/img20.png b/doc/tutorials/pole_figure/img20.png new file mode 100644 index 000000000..69b528c0e Binary files /dev/null and b/doc/tutorials/pole_figure/img20.png differ diff --git a/doc/tutorials/pole_figure/img21.png b/doc/tutorials/pole_figure/img21.png new file mode 100644 index 000000000..3a8e52c35 Binary files /dev/null and b/doc/tutorials/pole_figure/img21.png differ diff --git a/doc/tutorials/pole_figure/img22.png b/doc/tutorials/pole_figure/img22.png new file mode 100644 index 000000000..16e39a0e0 Binary files /dev/null and b/doc/tutorials/pole_figure/img22.png differ diff --git a/doc/tutorials/pole_figure/img23.png b/doc/tutorials/pole_figure/img23.png new file mode 100644 index 000000000..bda079502 Binary files /dev/null and b/doc/tutorials/pole_figure/img23.png differ diff --git a/doc/tutorials/pole_figure/img24.png b/doc/tutorials/pole_figure/img24.png new file mode 100644 index 000000000..86297fdca Binary files /dev/null and b/doc/tutorials/pole_figure/img24.png differ diff --git a/doc/tutorials/pole_figure/img25.png b/doc/tutorials/pole_figure/img25.png new file mode 100644 index 000000000..80332c82c Binary files /dev/null and b/doc/tutorials/pole_figure/img25.png differ diff --git a/doc/tutorials/pole_figure/img26.png b/doc/tutorials/pole_figure/img26.png new file mode 100644 index 000000000..dc2ac1c0e Binary files /dev/null and b/doc/tutorials/pole_figure/img26.png differ diff --git a/doc/tutorials/pole_figure/img27.png b/doc/tutorials/pole_figure/img27.png new file mode 100644 index 000000000..e7b4891c1 Binary files /dev/null and b/doc/tutorials/pole_figure/img27.png differ diff --git a/doc/tutorials/pole_figure/img3.png b/doc/tutorials/pole_figure/img3.png new file mode 100644 index 000000000..1624faa41 Binary files /dev/null and b/doc/tutorials/pole_figure/img3.png differ diff --git a/doc/tutorials/pole_figure/img4.png b/doc/tutorials/pole_figure/img4.png new file mode 100644 index 000000000..6c315387a Binary files /dev/null and b/doc/tutorials/pole_figure/img4.png differ diff --git a/doc/tutorials/pole_figure/img5.png b/doc/tutorials/pole_figure/img5.png new file mode 100644 index 000000000..e7191e2ec Binary files /dev/null and b/doc/tutorials/pole_figure/img5.png differ diff --git a/doc/tutorials/pole_figure/img6.png b/doc/tutorials/pole_figure/img6.png new file mode 100644 index 000000000..71661b04b Binary files /dev/null and b/doc/tutorials/pole_figure/img6.png differ diff --git a/doc/tutorials/pole_figure/img7.png b/doc/tutorials/pole_figure/img7.png new file mode 100644 index 000000000..f9027c443 Binary files /dev/null and b/doc/tutorials/pole_figure/img7.png differ diff --git a/doc/tutorials/pole_figure/img8.png b/doc/tutorials/pole_figure/img8.png new file mode 100644 index 000000000..ec5651d6b Binary files /dev/null and b/doc/tutorials/pole_figure/img8.png differ diff --git a/doc/tutorials/pole_figure/img9.png b/doc/tutorials/pole_figure/img9.png new file mode 100644 index 000000000..f89dbdf77 Binary files /dev/null and b/doc/tutorials/pole_figure/img9.png differ diff --git a/doc/tutorials/pole_figure/ini b/doc/tutorials/pole_figure/ini new file mode 100644 index 000000000..03aaa97a5 --- /dev/null +++ b/doc/tutorials/pole_figure/ini @@ -0,0 +1 @@ +0.088838317183 0.000000000000 0.176326980708 diff --git a/doc/tutorials/pole_figure/n100-symbols b/doc/tutorials/pole_figure/n100-symbols new file mode 100644 index 000000000..f85454a48 --- /dev/null +++ b/doc/tutorials/pole_figure/n100-symbols @@ -0,0 +1,100 @@ +square(rad=0.0208511,theta=150.128) +square(rad=0.0498592,theta=358.987) +square(rad=0.0360162,theta=259.317) +square(rad=0.0466279,theta=335.721) +square(rad=5.71905e-06,theta=0.0411772) +square(rad=0.00640622,theta=46.1248) +square(rad=0.0151166,theta=108.84) +square(rad=0.049952,theta=359.655) +square(rad=0.00733779,theta=52.8321) +square(rad=0.0118044,theta=84.992) +square(rad=0.00461693,theta=33.2419) +square(rad=0.019829,theta=142.769) +square(rad=0.00931301,theta=67.0537) +square(rad=0.0193955,theta=139.648) +square(rad=0.017278,theta=124.402) +square(rad=0.0334873,theta=241.109) +square(rad=0.0198384,theta=142.836) +square(rad=0.046777,theta=336.794) +square(rad=0.0269408,theta=193.974) +square(rad=0.0423155,theta=304.672) +square(rad=0.0209597,theta=150.91) +square(rad=0.0156637,theta=112.778) +square(rad=0.034261,theta=246.679) +square(rad=0.0262274,theta=188.837) +square(rad=0.0102226,theta=73.6028) +square(rad=0.0221726,theta=159.643) +square(rad=0.0439059,theta=316.122) +square(rad=0.0114789,theta=82.6478) +square(rad=0.00136938,theta=9.85953) +square(rad=0.0267207,theta=192.389) +square(rad=0.0335234,theta=241.368) +square(rad=0.0456981,theta=329.026) +square(rad=0.0208652,theta=150.23) +square(rad=0.0228602,theta=164.594) +square(rad=0.0279345,theta=201.128) +square(rad=0.0215349,theta=155.051) +square(rad=0.00701935,theta=50.5393) +square(rad=0.0469564,theta=338.086) +square(rad=0.00990507,theta=71.3165) +square(rad=0.0389195,theta=280.22) +square(rad=0.0400372,theta=288.268) +square(rad=0.0357985,theta=257.749) +square(rad=0.0484131,theta=348.574) +square(rad=0.0401379,theta=288.993) +square(rad=0.0156712,theta=112.833) +square(rad=0.00464004,theta=33.4083) +square(rad=0.0346161,theta=249.236) +square(rad=0.0259076,theta=186.535) +square(rad=0.0438195,theta=315.5) +square(rad=0.043251,theta=311.407) +triangle(rad=0.0447303,theta=322.058) +triangle(rad=0.0414573,theta=298.493) +triangle(rad=0.00425221,theta=30.6159) +triangle(rad=0.0414802,theta=298.657) +triangle(rad=0.00195274,theta=14.0597) +triangle(rad=0.0136525,theta=98.298) +triangle(rad=0.00849152,theta=61.139) +triangle(rad=0.00296216,theta=21.3276) +triangle(rad=0.0439071,theta=316.131) +triangle(rad=0.0335264,theta=241.39) +triangle(rad=0.00491734,theta=35.4049) +triangle(rad=0.0296533,theta=213.504) +triangle(rad=0.0210554,theta=151.599) +triangle(rad=0.0335827,theta=241.795) +triangle(rad=0.0478945,theta=344.84) +triangle(rad=0.0205894,theta=148.244) +triangle(rad=0.0266583,theta=191.94) +triangle(rad=0.00987754,theta=71.1183) +triangle(rad=0.0345939,theta=249.076) +triangle(rad=0.0144815,theta=104.267) +triangle(rad=0.0157758,theta=113.586) +triangle(rad=0.00710601,theta=51.1632) +triangle(rad=0.034325,theta=247.14) +triangle(rad=0.0391657,theta=281.993) +triangle(rad=0.0417313,theta=300.465) +triangle(rad=0.0206269,theta=148.514) +triangle(rad=0.000914414,theta=6.58378) +triangle(rad=0.00170857,theta=12.3017) +triangle(rad=0.0375072,theta=270.052) +triangle(rad=0.0312015,theta=224.651) +triangle(rad=0.0494431,theta=355.99) +triangle(rad=0.0330318,theta=237.829) +triangle(rad=0.0374083,theta=269.34) +triangle(rad=0.0149248,theta=107.458) +triangle(rad=0.0140222,theta=100.96) +triangle(rad=0.0223067,theta=160.608) +triangle(rad=0.039464,theta=284.141) +triangle(rad=0.0111062,theta=79.9648) +triangle(rad=0.0051613,theta=37.1614) +triangle(rad=0.00366821,theta=26.4111) +triangle(rad=0.0223947,theta=161.242) +triangle(rad=0.0234619,theta=168.926) +triangle(rad=0.0454298,theta=327.094) +triangle(rad=0.00480861,theta=34.622) +triangle(rad=0.0146807,theta=105.701) +triangle(rad=0.0451685,theta=325.213) +triangle(rad=0.0143888,theta=103.599) +triangle(rad=0.00597452,theta=43.0166) +triangle(rad=0.00650143,theta=46.8103) +triangle(rad=0.02624,theta=188.928) diff --git a/doc/tutorials/pole_figure/n100.ori b/doc/tutorials/pole_figure/n100.ori new file mode 100644 index 000000000..3b2d6545c --- /dev/null +++ b/doc/tutorials/pole_figure/n100.ori @@ -0,0 +1,100 @@ + 0.919953402851 1.412193625247 -0.358468593221 + -1.381019825878 0.030115972514 -3.318384436434 + 0.540501980937 -0.787561454202 -0.735523888182 + -2.005448934444 0.199749071961 -1.999283218069 + 5.163148738562 14.893183177083 5.316486583072 + 1.919036671923 -0.744035465279 0.303477757891 + -0.581246451853 -2.835847764762 0.780360761158 + -2.211174665124 0.445317073444 0.934247527182 + -2.194677973955 -0.312638828364 -0.439479476190 + 1.153229166270 -1.695620636026 0.825414393959 + 0.796884762601 -1.107754784685 -1.483474260840 + 78.435636913937 -30.176004069002 -9.253401342930 + -1.304041896707 -3.047214076507 0.684663836131 + -0.211548636607 1.062524060254 0.862383255887 + -1.573550365172 2.888202836356 0.218919009137 + -0.045560551339 -0.625794184664 -0.174128973161 + -0.099417496225 -0.766210345912 0.215529293255 + -43.003356751122 24.916664320168 24.747633153903 + -5.136813222250 0.667237155343 18.187818081829 + -10.710376617792 -0.118087188367 1.384730917780 + 2.707865688288 -5.177550780736 2.544419694732 + 8.395339772700 0.090554077824 0.324248082969 + 0.516526524826 1.758780419996 0.271794853607 + -0.303237524060 0.381906939590 0.146135711596 + 3.822880233752 42.914853377006 45.250978841038 + 0.173026070437 -2.055114502338 -2.289734360679 + -0.380739142319 -0.207844350287 -0.380519326682 + -0.441221083331 -0.063419814508 -0.186701637778 + 0.121121308319 0.724450166599 -0.532108325409 + -0.541299181401 1.225174506320 -0.237310577436 + 1.722011381650 0.740479394396 0.985952317161 + 1.561528603720 0.629015887552 1.058302591958 + 0.942813727566 0.700893342238 -1.415407362487 + 0.441051814378 -1.165662606147 1.948100778159 + -1.211917121371 -1.839852310043 0.232746122328 + -2.826099182604 1.839174593983 2.332140739700 + 1.148203713428 -5.651246656537 1.779338260974 + 1.102701128938 -0.472193246081 0.507092080293 + 1.392323671791 0.511537428815 -4.337234883285 + -0.342642890802 -2.849556487783 -0.839868770163 + 3.286048274178 0.338112665036 -3.718657279080 + 4.414069806417 -3.903809720749 1.427393861845 + -5.935432044113 4.004360322754 5.444003127152 + 0.785584937634 0.633643474063 0.870030232046 + -5.400309547306 -0.893472081093 -9.015060361523 + -0.463902521092 -0.139367624582 -1.754056347734 + -1.003337878360 0.265380849757 0.066333290079 + -7.642953383753 61.409286539401 -3.302032578878 + 4.095143487210 -0.115643882841 -12.360136909191 + 4.003145160961 -2.761912183873 -5.870308228000 + 2.760494514524 0.737683643000 0.196166889231 + 7.844540184644 2.168839920543 2.593106205246 + 1.186654976498 -0.389322472862 -0.070662279873 + 2.194827049450 -0.408028176978 -0.798116409734 + 0.697870627239 1.931999267655 9.215004329978 + -1.236175783780 0.201036850368 -0.863286628305 + 6.608899001893 0.777692029924 -5.298836408863 + 0.563086937331 -1.536533060325 0.556087137697 + -0.715261570597 -0.871745764454 1.479646612200 + -0.902184544779 5.485962969533 0.506035637218 + -0.512739243429 1.137638952584 0.571404014187 + -0.490870735882 2.074977726536 1.604800370098 + -0.443060541603 0.371242554733 1.025691994192 + 1.273914140478 -3.821762169823 8.978355043172 + -0.703092214649 -1.251799009336 -0.813008048133 + -0.201726181071 -0.166353466222 -1.005516587144 + 0.447513655190 -2.026232206312 -0.856866904707 + 6.911270543636 -3.280858436286 0.919699226293 + -3.351070748176 -0.705611729955 -4.134052475999 + -2.908899542676 -0.598001873334 -0.804648818280 + -0.380966447570 1.041333890168 0.144031677952 + 1.531200106354 0.994660868308 -0.093612880063 + 6.273032950389 0.919390972685 1.520567153649 + 0.465033462411 -0.204495531998 0.654042464434 + 1.234510821924 -0.815228491285 0.213331640039 + -0.982292608636 0.962500324873 0.524494525759 + 2.776084980633 1.631284501477 -0.833385181373 + 0.121511061196 -0.289338629027 0.595188675348 + -1.067725422162 1.619001191501 1.094673033383 + 0.453026697365 -0.832964245064 0.376678679507 + -1.313543639692 1.829071212286 1.479573505441 + -0.177489765923 -0.912549482677 0.709669228115 + -0.773707646340 0.313355026014 -0.738122310492 + 15.722203298921 4.550167053243 -4.559610242471 + -37.930974868511 -36.875887033278 -5.225828831899 + 0.169520868324 0.260009267996 -0.263312764914 + -0.585092800335 -0.843556510229 -0.668463487668 + 0.892374032954 1.655996577046 1.278805872396 + 0.127589317503 4.126918969833 3.635352908305 + -1.158137208787 0.726803007207 -0.606067644392 + 4.485179751751 1.459495645632 -0.457608816695 + 0.405488631307 0.379707858414 -0.472107014543 + -3.273429448955 1.988304595343 0.214289214012 + 1.939240489259 0.708101471752 -0.677933377035 + 9.384562966740 -5.178800477954 14.546811953491 + -3.279275938896 -3.987929930702 -4.412701863362 + 0.194632997028 1.312293729227 -2.880256263224 + 0.334287119091 1.825629000823 -0.128968595063 + 8.990910210797 -9.314976990324 19.403909631169 + -0.550201722439 0.518219922429 -0.033000373243 diff --git a/doc/tutorials/pole_figure/n100.tess b/doc/tutorials/pole_figure/n100.tess new file mode 100644 index 000000000..dc16eef69 --- /dev/null +++ b/doc/tutorials/pole_figure/n100.tess @@ -0,0 +1,4267 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 100 + *crysym + cubic + *seed + 1 0.371509903427 0.107703474367 0.621068690773 0.166940788125 + 2 0.556305518786 0.506869850167 0.077170697802 0.124742765684 + 3 0.110395514901 0.861998959915 0.523419966592 0.106628525833 + 4 0.274669866727 0.728494798902 0.590229203920 0.137127960858 + 5 0.251994017486 0.747610059947 0.912633391707 0.154047001664 + 6 0.911901124101 0.123837152600 0.886323667387 0.170533027369 + 7 0.094536830177 0.327423650148 0.696284070403 0.138751601833 + 8 0.915201040256 0.539001037122 0.079970762346 0.168662801184 + 9 0.909175008044 0.508423989009 0.536355689548 0.110634826917 + 10 0.650296913146 0.575267234535 0.377261371510 0.113226504222 + 11 0.472097773085 0.893322189134 1.001767342235 0.253181549739 + 12 0.921267860484 0.325588340095 0.620757083330 0.100370786509 + 13 0.081429976099 0.122510200603 0.294661180940 0.211590507730 + 14 0.588114056070 0.616832773340 0.932315730039 0.146615278425 + 15 0.240542123656 0.471959834784 0.556886584197 0.113986524752 + 16 0.468318392066 0.563767971878 0.944856778632 0.133831913866 + 17 0.899167208881 0.771032724968 0.350550494714 0.258237107696 + 18 0.352438341572 0.629043688174 0.936232312917 0.156878380055 + 19 0.099498184094 0.087009239333 0.914632807062 0.273566892938 + 20 0.250449493040 0.294815883899 0.125372664525 0.177080565275 + 21 0.489264068603 0.551397542625 0.604656199601 0.179938380857 + 22 0.534247629096 0.866342989740 0.148160706588 0.343241774759 + 23 0.108739934476 0.093777770063 0.599951950700 0.186252151108 + 24 0.858464912857 0.712226062462 0.695196592590 0.166749680737 + 25 0.639541144281 0.610696659588 0.756247146780 0.143362925307 + 26 0.470978951554 0.630391498316 0.954903839420 0.128449486140 + 27 0.289674167190 0.402240184071 0.927110093812 0.206424200876 + 28 0.717167032401 0.332885514775 0.594903061093 0.167645919686 + 29 0.933213767827 0.247443121544 0.320073465913 0.104461810513 + 30 0.607417605682 0.382366938584 0.370808065877 0.106086976511 + 31 0.744784592975 0.574722096961 0.565650209075 0.110066096097 + 32 0.776136194312 0.460979053661 0.381609854458 0.096580597666 + 33 0.633868412612 0.337764407226 0.894475760961 0.234153276769 + 34 0.349984003852 0.083966392039 0.122813378792 0.189805526034 + 35 0.712158643684 0.319145459461 0.207112934689 0.127681904121 + 36 0.893193743243 0.095739143792 0.540695954078 0.208796901051 + 37 0.871683212853 0.870330484804 0.931349118025 0.198561523858 + 38 0.474282369504 0.650459829498 0.862854749537 0.133490346302 + 39 0.290303266015 0.133634729275 0.393701362176 0.170074402245 + 40 0.626547042165 0.483372127215 0.203138500566 0.120508289913 + 41 0.089102496215 0.803028095473 0.735278407451 0.169109688262 + 42 0.129509724268 0.916258051710 0.117819399379 0.182705284646 + 43 0.479475472806 0.306247765124 0.234510812933 0.142728535832 + 44 0.895290957814 0.249771934633 0.726140833801 0.136124665586 + 45 0.770770864015 0.534716431048 0.202309225970 0.128370323504 + 46 0.360165672123 0.403241420305 0.726914121362 0.144611883403 + 47 0.877551630815 0.782831349653 0.067893268880 0.237023571143 + 48 0.434209783011 0.384375101520 0.078878517041 0.096676104368 + 49 0.339953314451 0.898117935122 0.402386615807 0.167414794417 + 50 0.803110596749 0.264953697469 0.338339309952 0.116080764239 + 51 0.086982190130 0.531873712192 0.713907511802 0.140419515557 + 52 0.579194696732 0.711603437436 0.848430585542 0.113641623114 + 53 0.652241175010 0.847350505284 0.770566217538 0.142725566928 + 54 0.433425639037 0.127496480903 0.884682549036 0.234943193620 + 55 0.428707365171 0.319780049576 0.479814761195 0.126730016226 + 56 0.589033069800 0.342843142860 0.075076837083 0.111391684948 + 57 0.432224191745 0.869039339878 0.691589366587 0.119341674787 + 58 0.243452220203 0.272551101034 0.569368410357 0.089111311361 + 59 0.913455036847 0.333518685741 0.450315642342 0.086804241769 + 60 0.919040244114 0.448299051474 0.290905468936 0.122058918702 + 61 0.092792081918 0.856319359610 0.350428961346 0.118706046598 + 62 0.241474886682 0.231779547076 0.721064431161 0.104137037907 + 63 0.454302445809 0.270973627660 0.073782110484 0.099396301308 + 64 0.378587467383 0.589979981164 0.326893156251 0.237817390650 + 65 0.167072609801 0.637154119104 0.119166568781 0.301635709760 + 66 0.519449542718 0.736301188587 0.771734652964 0.103195123374 + 67 0.035411675228 0.343107244406 0.140292902322 0.218696942057 + 68 0.505645277551 0.281069957121 0.678343655134 0.081885695178 + 69 0.595338599881 0.123617513082 0.653752766678 0.136714311874 + 70 0.072649572776 0.427988935467 0.506905913006 0.078868108764 + 71 0.728700164269 0.291911272070 0.064323437835 0.111365337796 + 72 0.866566732314 0.867630122045 0.671043585081 0.100165614053 + 73 0.725682301543 0.431801366800 0.072908018730 0.120833331739 + 74 0.610367800111 0.080114218262 0.359755263303 0.232491789465 + 75 0.098235503737 0.273877838773 0.503691115030 0.105275082782 + 76 0.085938258283 0.639301704624 0.469377914764 0.155113256443 + 77 0.246038269975 0.885072178582 0.630754728513 0.060492733740 + 78 0.605514159228 0.125179978545 0.086565125863 0.172135091759 + 79 0.872207116299 0.103231379630 0.111007645388 0.219858714824 + 80 0.716556464877 0.567334393830 0.069383817719 0.129258035457 + 81 0.708420532289 0.109439955286 0.778322787550 0.125582214734 + 82 0.073709665833 0.101810097159 0.086225463991 0.203556873706 + 83 0.066799675303 0.408237435015 0.926836439122 0.172765864695 + 84 0.899546636327 0.491765821825 0.898011258070 0.271267756006 + 85 0.609976573189 0.799116471849 0.513159576119 0.195854222277 + 86 0.274297370143 0.859460519062 0.794374225076 0.127820887760 + 87 0.059863606752 0.351442925064 0.385188415782 0.074584251447 + 88 0.390040480461 0.590424742079 0.825777076522 0.110940630598 + 89 0.910553078508 0.057242177588 0.338342123970 0.173220930455 + 90 0.111300990126 0.890582924533 0.968919880365 0.202369010297 + 91 0.258181060274 0.621899078355 0.776995661106 0.125079322100 + 92 0.467436521472 0.552300638507 0.859320917345 0.121203200304 + 93 0.193675120267 0.759244861054 0.423764258140 0.092038089573 + 94 0.694295865412 0.721919580305 0.909605929317 0.143275625302 + 95 0.060111661737 0.445274299762 0.364580655157 0.073880264416 + 96 0.216083491423 0.384368995167 0.363234160249 0.142038626542 + 97 0.904854490631 0.336047852446 0.101487208884 0.168944671706 + 98 0.377636746776 0.712019100165 0.796268096628 0.123191296931 + 99 0.693564457697 0.095150289666 0.909523315380 0.098877863822 + 100 0.107874084791 0.618217780057 0.938426948697 0.188243798081 + *ori + rodrigues:active + 0.263825479211 -0.040451566812 0.307203931676 + 0.219201395542 -0.412257491038 0.206384463508 + -0.166972745052 0.133001089912 0.005685047206 + 0.299582850056 0.001539607679 0.199826329842 + 0.356974497652 -0.067144813040 -0.346678656750 + 0.314842454966 -0.358855794189 -0.150925718620 + -0.275177240067 0.352628237815 -0.204963912053 + -0.157326341048 -0.398979327396 0.370333626121 + -0.373958810151 -0.235428519145 -0.039703735043 + 0.218951125860 -0.078687435770 -0.153388222337 + 0.039334494570 0.131909685770 -0.181021805189 + -0.012749306812 0.117974452774 -0.384723134232 + 0.072470147886 0.387167256190 0.400613567791 + 0.187571758663 0.227441000378 -0.315194022379 + 0.273192835659 -0.175061451314 -0.294649303044 + 0.079080379936 0.230168011957 -0.135127512801 + -0.178317826191 0.132367956415 0.065740639159 + 0.379087531891 0.349641133488 0.266293975556 + -0.036685937386 -0.282431526373 -0.054981856290 + 0.093367398336 0.129288723188 0.011025493555 + 0.379795187971 -0.351195304086 -0.080951763828 + -0.119113702015 -0.038622389534 0.010786231442 + 0.285749954117 0.275041976700 -0.088710094303 + -0.303237524060 0.381906939590 0.146135711596 + 0.026496947913 0.032017848216 -0.054702372931 + 0.053999544228 0.190334337427 0.269980868707 + -0.380739142319 -0.207844350287 -0.380519326682 + 0.387712144328 -0.173548288447 -0.085539841663 + -0.238329309278 -0.159789965948 -0.378804587329 + -0.349909526927 0.101194088679 0.136613377109 + 0.217488295150 0.107124773522 -0.223804070150 + 0.233196273887 0.031124184214 -0.205752315177 + -0.190115431717 0.042740105029 -0.161938708253 + -0.294498524994 -0.367240271441 0.049066751699 + 0.251412793435 0.403944711432 0.205761019233 + -0.166695503174 0.043165969499 0.289976882353 + -0.314857653384 0.176952106460 0.203177065736 + 0.021999543382 0.364510298424 0.044646517804 + 0.117940909953 -0.321016433110 0.230561642823 + 0.294736662973 0.350931804401 -0.120244287934 + -0.094491814100 0.061759770145 0.191030537238 + -0.291828446651 -0.051382550138 0.061344971877 + -0.213368705743 0.153379075484 0.389108546358 + 0.006679832144 -0.137052712837 -0.085706617223 + 0.007389884518 -0.250756715719 0.131350918712 + -0.219047858687 0.117838873114 -0.273798445829 + -0.001666158463 0.165580725758 -0.099357957451 + -0.053770899565 -0.016284182024 0.124459244106 + -0.009356197564 -0.331318618661 0.080905252696 + -0.381012806328 0.189109422355 -0.178449435518 + -0.362253934843 -0.071062227510 0.267228802346 + -0.127477197702 -0.330561912389 0.276477635335 + 0.085360963894 -0.145729525880 -0.210360005432 + 0.373988022186 0.122099953055 -0.377530479129 + -0.209657988046 0.075731991245 -0.108518668488 + -0.272208987270 -0.129093800748 0.355053042562 + -0.018669206395 -0.110017778179 0.149288841967 + 0.148680635465 -0.144851116647 -0.387711305315 + -0.079466416994 0.219502148136 0.156426097305 + 0.092241898100 -0.182283403215 0.164453269151 + -0.024512576169 0.060930165522 -0.326991592304 + -0.127773290696 -0.405152347976 -0.138358686515 + -0.401987616415 -0.035453557143 0.012683070410 + -0.402855129179 0.177647915456 0.021399346265 + -0.037655777293 -0.095999074470 0.195254356187 + -0.183533584141 0.017637707449 -0.002750706317 + -0.397600002441 -0.142446113309 -0.331497072892 + -0.188351151175 0.007878704622 0.356197622155 + 0.039329782721 -0.104605055170 0.227866887274 + 0.343772614121 -0.276616227709 0.205576667245 + -0.116068601398 0.020248471045 0.257183858090 + 0.395706158432 -0.398656383745 0.102182774827 + -0.159412521488 -0.242397444055 0.146562433189 + 0.404783437430 0.157515865533 -0.209158799127 + 0.256325309855 0.369575380946 -0.112589040994 + -0.121148337428 -0.142766422160 -0.131356422847 + 0.412447602819 -0.210137294045 -0.156741566249 + 0.257555545982 -0.105208600352 -0.253770184623 + -0.123824324253 0.135096174845 -0.095495622550 + -0.034058952087 0.091405922383 -0.376786838264 + -0.117932965669 0.176995329002 -0.006395030701 + 0.366249020985 0.221319464033 0.158848304589 + -0.070252012531 -0.230448498803 0.255640007369 + -0.063604316837 0.290010894515 0.289410266916 + 0.083225370957 -0.056489855669 -0.014104158474 + 0.169520868324 0.260009267996 -0.263312764914 + 0.077431528242 0.023593846010 0.190500075607 + -0.100434834621 0.055843149424 0.215949928553 + -0.063327601667 -0.112391152512 -0.145265372716 + -0.010713767333 0.079883111914 0.236397794045 + -0.222956504610 0.102026862249 0.325404047644 + -0.304305789418 -0.245281043203 0.222438946121 + 0.230777383233 -0.149325446587 0.244239796765 + 0.224126444725 -0.359099830434 -0.210176768759 + 0.174615979729 -0.215710505726 -0.258188277880 + -0.146255323406 -0.325030429398 -0.213254538480 + -0.373987796644 -0.284941860963 0.192094788237 + 0.072662944770 0.292192995111 -0.163947819766 + -0.351299574173 0.347886404598 0.278245821856 + 0.290154675389 0.313004134986 -0.355579720816 + **vertex + 495 + 1 0.505133638038 0.228943237797 0.573992757174 0 + 2 0.327604049960 0.244173379184 0.524972629960 0 + 3 0.265779500728 -0.000000000000 0.519205933430 0 + 4 0.253425990663 0.193029695230 0.545633165880 0 + 5 0.246038615828 0.212163895265 0.624941005946 0 + 6 0.505089756564 -0.000000000000 0.685766866797 0 + 7 0.492255915564 0.206096558082 0.673306771426 0 + 8 0.321547783743 0.276557945358 0.643232535823 0 + 9 0.355033387665 0.291026209525 0.606423647471 0 + 10 0.408952472691 0.287287028463 0.622642963254 0 + 11 0.411187932022 0.263964643175 0.688002510393 0 + 12 0.348225833132 0.256038420588 0.703385724578 0 + 13 0.403119671789 -0.000000000000 0.470153444042 0 + 14 0.520859015131 -0.000000000000 0.577775054535 0 + 15 0.510589918935 0.209039019291 0.546318248671 0 + 16 0.435103146144 0.185122281884 0.479843414404 0 + 17 0.243401612449 0.149820810581 0.698867978245 0 + 18 0.274253326768 0.158615889777 0.728074665359 0 + 19 0.294134165634 -0.000000000000 0.735314605598 0 + 20 0.251581149947 -0.000000000000 0.695885675706 0 + 21 0.510635351704 0.403840702389 -0.000000000000 0 + 22 0.625239072756 0.425272359978 0.112392815121 0 + 23 0.653027595815 0.488185008792 0.108633090892 0 + 24 0.648919103172 0.485083637187 -0.000000000000 0 + 25 0.622833669534 0.426227155368 -0.000000000000 0 + 26 0.543023516386 0.408323375801 0.155075812462 0 + 27 0.513617718613 0.402730495054 0.133585398596 0 + 28 0.506103725280 0.443797390249 0.182280073062 0 + 29 0.476896401386 0.439740128176 0.162844620052 0 + 30 0.616502330917 0.570998755512 -0.000000000000 0 + 31 0.632265595357 0.546093240845 0.131012350291 0 + 32 0.541840690963 0.531137970371 0.178644904818 0 + 33 0.431186819317 0.484638954929 0.115372056702 0 + 34 0.421449226604 0.492736313713 -0.000000000000 0 + 35 0.444104390710 0.560420121591 -0.000000000000 0 + 36 0.448789360347 0.539024068317 0.109799211492 0 + 37 -0.000000000000 1.000000000000 0.450504484665 0 + 38 -0.000000000000 1.000000000000 0.625283465340 0 + 39 0.136159487342 1.000000000000 0.638968294212 0 + 40 0.192200918529 0.845019934741 0.601462036986 0 + 41 -0.000000000000 0.799463471108 0.457088453173 0 + 42 -0.000000000000 0.773918710344 0.562353666409 0 + 43 0.133168635398 0.757176669350 0.571077744639 0 + 44 0.164754766368 0.767532952319 0.514106815544 0 + 45 0.111021923150 0.789936388695 0.446103737748 0 + 46 0.179343005578 0.854094475623 0.437045013083 0 + 47 0.216836904681 0.824173643270 0.499228759331 0 + 48 0.233723462977 0.867441436446 0.544168682735 0 + 49 0.212190071067 1.000000000000 0.542885742187 0 + 50 0.155157905195 1.000000000000 0.434715734365 0 + 51 0.271571052617 0.742849225251 0.731136540492 0 + 52 0.337659081973 0.788792246583 0.701783175536 0 + 53 0.308110440905 0.850511829844 0.662134124132 0 + 54 0.252360220555 0.744219365453 0.730222497295 0 + 55 0.243156367079 0.836306354160 0.671128882721 0 + 56 0.335016203581 0.875069488769 0.586260487227 0 + 57 0.294564507044 0.575643105088 0.637734746070 0 + 58 0.350956760734 0.647732710055 0.683858040755 0 + 59 0.420244318509 0.729401814597 0.655762529216 0 + 60 0.170738122452 0.654585252271 0.671858356205 0 + 61 0.219856585775 0.585693467952 0.636875283480 0 + 62 0.189302467000 0.594056624449 0.603803528904 0 + 63 0.140998610763 0.657952837653 0.632080955957 0 + 64 0.226012814218 0.696160207658 0.471117005557 0 + 65 0.274890125772 0.756759762324 0.458529578367 0 + 66 0.306485472800 0.583911622480 0.561915884508 0 + 67 0.236682315494 0.597722146175 0.527105842817 0 + 68 0.433101098381 0.741936841303 0.618397051997 0 + 69 0.403303116115 0.818344151743 0.558769785908 0 + 70 0.403494064950 0.760996413669 0.507050750909 0 + 71 0.419089177998 0.718221716437 0.535704390195 0 + 72 0.267924552794 0.740712133770 0.763731791351 0 + 73 0.306707374783 0.676125247980 0.825360895235 0 + 74 0.251051495806 0.635892401699 0.860110557240 0 + 75 0.251073490918 0.663754005059 1.000000000000 0 + 76 0.184284417298 0.738145126407 1.000000000000 0 + 77 0.243080699357 0.742609069049 0.760840445569 0 + 78 0.198485384623 0.820559625955 0.826156148080 0 + 79 0.143585076339 0.754776197774 0.856023965986 0 + 80 0.185032400205 0.697452142104 0.800044686732 0 + 81 0.258896787946 0.811567732405 1.000000000000 0 + 82 0.318779915933 0.721111972543 1.000000000000 0 + 83 0.363679306428 0.733160808508 0.869430380389 0 + 84 0.341293171992 0.792947380520 0.826973421849 0 + 85 0.269059749347 0.867347169427 0.883718308859 0 + 86 1.000000000000 0.000000000000 1.000000000000 0 + 87 0.783756728085 -0.000000000000 1.000000000000 0 + 88 0.769237036367 -0.000000000000 0.863352190176 0 + 89 1.000000000000 -0.000000000000 0.738157898793 0 + 90 1.000000000000 0.140316324852 0.726750800404 0 + 91 0.827118712193 0.130437713020 0.736911228175 0 + 92 0.830826026967 -0.000000000000 0.747314577563 0 + 93 0.791785905876 0.198850348862 0.794360668700 0 + 94 0.751805211705 0.143738631940 0.877033602358 0 + 95 0.763491315009 0.154240731882 1.000000000000 0 + 96 1.000000000000 0.247061696404 1.000000000000 0 + 97 1.000000000000 0.252929291614 0.815286438748 0 + 98 0.829671531023 0.246801889718 0.828131330581 0 + 99 0.830532303313 0.241371227674 1.000000000000 0 + 100 -0.000000000000 0.433650232184 0.606557179215 0 + 101 -0.000000000000 0.351324158617 0.562839650271 0 + 102 -0.000000000000 0.420384418118 0.760454278394 0 + 103 0.120348363211 0.439049061528 0.595514930105 0 + 104 0.147795309495 0.375945111077 0.558832742172 0 + 105 0.169981159459 0.358596544627 0.564082162024 0 + 106 -0.000000000000 0.262429309650 0.587554712178 0 + 107 0.192493661632 0.254331448144 0.635576488775 0 + 108 0.158386624178 0.271887562234 0.587966828032 0 + 109 0.207747650255 0.434770120944 0.682620495197 0 + 110 0.233311168331 0.364025078028 0.636042828679 0 + 111 0.239820642381 0.332653767647 0.657244188981 0 + 112 0.203477156366 0.430511289033 0.730196696990 0 + 113 0.150306856745 0.424504144384 0.777093248157 0 + 114 0.229096787562 0.337296375616 0.738751495515 0 + 115 -0.000000000000 0.218869816830 0.693204790961 0 + 116 -0.000000000000 0.313859366561 0.797793702176 0 + 117 0.147680146837 0.328410843134 0.810460096468 0 + 118 0.197920493484 0.299410361901 0.777387343861 0 + 119 0.164002485353 0.226783334372 0.698191535107 0 + 120 1.000000000000 0.423553307719 -0.000000000000 0 + 121 0.776368382545 0.496525304495 0.109994434636 0 + 122 0.802515971101 0.448376183455 0.139177413571 0 + 123 0.816450604825 0.432910652512 -0.000000000000 0 + 124 0.781875576813 0.494035986948 -0.000000000000 0 + 125 1.000000000000 0.444203649340 0.194783678114 0 + 126 0.854676384041 0.452259924871 0.200892901179 0 + 127 1.000000000000 0.616384978468 -0.000000000000 0 + 128 0.788761301417 0.590103301339 0.127902590792 0 + 129 0.794807519521 0.584701568675 -0.000000000000 0 + 130 1.000000000000 0.625090864151 0.175761538023 0 + 131 1.000000000000 0.549905609794 0.240235552086 0 + 132 0.884560792652 0.542960778810 0.239350371486 0 + 133 0.838579387272 0.600727259385 0.187088836725 0 + 134 1.000000000000 0.393007138405 0.527251461968 0 + 135 1.000000000000 0.439903655814 0.431918534268 0 + 136 0.884605557657 0.439287131160 0.427431575952 0 + 137 0.874978440633 0.387260198301 0.532714899542 0 + 138 0.834805536842 0.413049949768 0.478290179438 0 + 139 0.788891903653 0.470556197656 0.500131898657 0 + 140 1.000000000000 0.518016570751 0.412784169184 0 + 141 1.000000000000 0.632807159163 0.575024042778 0 + 142 0.856000669971 0.612881439530 0.554617984299 0 + 143 0.810918535872 0.543409871690 0.458858187661 0 + 144 0.879680283003 0.511192422149 0.409619857896 0 + 145 1.000000000000 0.583146015997 0.638742164203 0 + 146 1.000000000000 0.441461350011 0.632216046375 0 + 147 0.864444354423 0.430598694902 0.628106799350 0 + 148 0.816910119088 0.482975283327 0.629253804168 0 + 149 0.844139083627 0.548830617133 0.633012075493 0 + 150 0.680720007285 0.464927318583 0.323301696912 0 + 151 0.700593437341 0.486277497311 0.309323243926 0 + 152 0.594611330483 0.484012233961 0.324974421557 0 + 153 0.572969646452 0.484908541869 0.441981488305 0 + 154 0.640799117617 0.597680266331 0.501853558039 0 + 155 0.576887958279 0.612688914377 0.458169433537 0 + 156 0.759002424474 0.551544637617 0.334416542736 0 + 157 0.763392305199 0.560405311987 0.440258264042 0 + 158 0.710441876878 0.631371097358 0.467021257535 0 + 159 0.673174086467 0.461932524334 0.462960440378 0 + 160 0.634232525867 0.469891930289 0.483789360213 0 + 161 0.650223623572 0.485989398747 0.496803436162 0 + 162 0.688444161965 0.479303502395 0.477614322972 0 + 163 0.606718664721 0.561660673636 0.282343265277 0 + 164 0.668953463928 0.574470693211 0.267093995834 0 + 165 0.710176520693 0.607265732345 0.287879332972 0 + 166 0.670646068163 0.671363112310 0.389339859078 0 + 167 0.589245310506 0.648953603457 0.402101214158 0 + 168 0.513601553069 0.737009709864 0.827345941336 0 + 169 0.465616728157 0.745570173467 0.811624962954 0 + 170 0.613578047978 0.776566199551 0.850295553616 0 + 171 0.558547401007 0.781070201657 0.806522131104 0 + 172 0.436918263489 0.667621554453 1.000000000000 0 + 173 0.448725951001 0.681106006545 0.924062718639 0 + 174 0.407996922967 0.713941632797 0.866015323483 0 + 175 0.541728970068 0.702914292031 0.887397665376 0 + 176 0.511435603349 0.680463031936 0.926173035689 0 + 177 0.524142853364 0.667250396758 1.000000000000 0 + 178 0.623508127465 0.708944541634 1.000000000000 0 + 179 0.591357849257 0.720167960345 0.901613338537 0 + 180 0.450106380120 0.797271460041 0.773140736200 0 + 181 0.514711456279 0.833020711941 0.762037015999 0 + 182 0.536887643734 1.000000000000 0.746113974124 0 + 183 0.367843938024 1.000000000000 0.767844652892 0 + 184 0.386003762154 0.823672154986 0.779314342988 0 + 185 0.257466160334 1.000000000000 1.000000000000 0 + 186 0.270116174997 1.000000000000 0.861052138127 0 + 187 0.715458229483 1.000000000000 1.000000000000 0 + 188 0.692017283746 1.000000000000 0.866985276665 0 + 189 0.688099700190 0.849779241786 0.893802509425 0 + 190 0.704772805681 0.814292159133 1.000000000000 0 + 191 1.000000000000 0.254396547686 0.631994368578 0 + 192 1.000000000000 0.292509364189 0.522575474241 0 + 193 0.872532742042 0.305827346073 0.529038077463 0 + 194 0.860718296357 0.277562237898 0.614327812879 0 + 195 1.000000000000 0.339581896580 0.693279404670 0 + 196 0.856404413402 0.357891101335 0.671055575331 0 + 197 -0.000000000000 -0.000000000000 0.196454857932 0 + 198 -0.000000000000 0.281720586530 0.426494328150 0 + 199 -0.000000000000 0.309967992324 0.355059962804 0 + 200 -0.000000000000 0.186050391360 0.177977879019 0 + 201 0.160052414621 0.213390174524 0.169334491668 0 + 202 0.109442834343 0.301042826503 0.403703303376 0 + 203 0.096550672583 0.323051601833 0.344974391246 0 + 204 0.185844453675 0.294711124554 0.277855850541 0 + 205 0.238695792007 0.262342946131 0.297678143544 0 + 206 0.177008435542 0.259924251412 0.428046926888 0 + 207 -0.000000000000 -0.000000000000 0.462144440586 0 + 208 -0.000000000000 0.205749179702 0.481508517721 0 + 209 0.161207417993 0.207533694095 0.467255566532 0 + 210 0.182421825943 -0.000000000000 0.445825793030 0 + 211 0.204464766137 -0.000000000000 0.188881628851 0 + 212 0.261782923310 -0.000000000000 0.278455203723 0 + 213 0.267378037807 0.183479848464 0.246046167639 0 + 214 0.217010926435 0.160596426990 0.172467825346 0 + 215 0.516156892377 0.598258926211 1.000000000000 0 + 216 0.500606853019 0.612312515646 0.910926399126 0 + 217 0.510759923069 0.581990010796 0.879608130288 0 + 218 0.626663181787 0.671898610728 0.843326268812 0 + 219 0.563849873765 0.650410281575 0.825728292824 0 + 220 0.545362180182 0.581624601878 0.822725533991 0 + 221 0.552717939013 0.515721071780 1.000000000000 0 + 222 0.563277175349 0.540586184415 0.829388462793 0 + 223 0.535294181029 0.528246104401 0.886560340059 0 + 224 0.661195060512 0.533506322623 1.000000000000 0 + 225 0.700434240453 0.631216860124 1.000000000000 0 + 226 0.680956537998 0.620851040732 0.860963617043 0 + 227 0.652554175375 0.551740392185 0.855076252086 0 + 228 0.148028400570 0.482826725938 0.464019790123 0 + 229 0.113026646234 0.502789716207 0.564033316679 0 + 230 0.191743748739 0.355898791608 0.515909183038 0 + 231 0.161717601535 0.379293550443 0.509119864059 0 + 232 0.321056590193 0.361374377705 0.573237880572 0 + 233 0.288531905561 0.356528276696 0.503399951239 0 + 234 0.360148493314 0.413059900325 0.566623863687 0 + 235 0.241898963560 0.507856419180 0.688131798061 0 + 236 0.301040374686 0.541826329784 0.660251919645 0 + 237 0.183181013500 0.507213617642 0.448549531138 0 + 238 0.317805060838 0.405907500699 0.477368007375 0 + 239 0.361164532860 0.437999451693 0.519860830150 0 + 240 0.438532586313 0.587024803303 0.879677803056 0 + 241 0.451755365822 0.614457231571 0.909640824110 0 + 242 0.437671281908 0.601393188938 1.000000000000 0 + 243 0.398153910630 0.531240378078 1.000000000000 0 + 244 0.407626388377 0.533155188555 0.887218454291 0 + 245 0.468178793068 0.453795246098 1.000000000000 0 + 246 0.461709183041 0.472509449650 0.894791311681 0 + 247 1.000000000000 1.000000000000 0.191410924561 0 + 248 0.824698432553 0.524150628474 0.321184892670 0 + 249 1.000000000000 1.000000000000 0.556642350063 0 + 250 0.784295631993 1.000000000000 0.534700955987 0 + 251 1.000000000000 0.828326126156 0.608385273259 0 + 252 0.765968173329 0.685636748208 0.556399427805 0 + 253 0.796931482364 0.835372419650 0.585605424704 0 + 254 0.860330480563 1.000000000000 0.202091838137 0 + 255 0.729705502494 1.000000000000 0.437615638758 0 + 256 0.769384471694 0.634128550015 0.193774593249 0 + 257 0.419534528482 0.589459889230 0.848842086518 0 + 258 0.393557717235 0.642915273352 0.821308993823 0 + 259 0.341464757301 0.634049815418 0.806674720924 0 + 260 0.317469018062 0.560640539330 0.824172286631 0 + 261 0.391172004443 0.538929967440 0.856853664660 0 + 262 0.255188032397 0.570803855492 1.000000000000 0 + 263 0.253676937949 0.576804366930 0.861207628252 0 + 264 0.000000000000 0.000000000000 1.000000000000 0 + 265 -0.000000000000 -0.000000000000 0.688497078206 0 + 266 -0.000000000000 0.306177440466 1.000000000000 0 + 267 0.317874040090 -0.000000000000 1.000000000000 0 + 268 0.268607090513 0.255998733233 0.796766207294 0 + 269 0.289326174794 0.235454815704 1.000000000000 0 + 270 0.147252488655 0.321166587930 1.000000000000 0 + 271 0.384530999979 0.322874175706 -0.000000000000 0 + 272 0.374490885675 0.237030498556 -0.000000000000 0 + 273 0.415418275603 0.322861635626 0.122052601290 0 + 274 0.411274554834 0.252718555308 0.138095452459 0 + 275 0.240709151125 0.173876922104 -0.000000000000 0 + 276 0.156704812063 0.250801622763 -0.000000000000 0 + 277 0.355582660763 0.224974572406 0.257870771287 0 + 278 0.331948499273 0.290304590541 0.300623851228 0 + 279 0.342439512799 0.409238752073 -0.000000000000 0 + 280 0.202891822872 0.379753086654 0.248301162190 0 + 281 0.183597461977 0.370552582189 -0.000000000000 0 + 282 0.387765813915 0.405245080372 0.171451775220 0 + 283 0.376574688908 0.420387517085 0.156388812900 0 + 284 0.277472848819 0.397988266321 0.252211145946 0 + 285 0.339597512023 0.353439130757 0.277959281228 0 + 286 0.422802429113 0.519745621661 0.762068584822 0 + 287 0.512035739296 0.585865673186 0.769482377962 0 + 288 0.511574081658 0.650360182444 0.744711169932 0 + 289 0.466341106277 0.665292923879 0.736357372659 0 + 290 0.435281866754 0.629454668131 0.748305152350 0 + 291 0.456239783354 0.589929699043 0.764685643362 0 + 292 0.466793254781 0.359478231542 0.614303517816 0 + 293 0.558078893266 0.703049778618 0.677998389202 0 + 294 0.654341503617 0.631265944641 0.610650399076 0 + 295 0.368900388466 0.616029290039 0.720887327141 0 + 296 0.351884798319 0.550763242525 0.724771189928 0 + 297 0.521595916123 0.431031592059 0.454967973896 0 + 298 0.671367281883 0.501446969146 0.644554576989 0 + 299 0.529997895521 0.356471676734 0.589222951320 0 + 300 0.563022408722 0.394804841823 0.502084518846 0 + 301 0.443580228407 0.730011526968 0.668846227111 0 + 302 0.468611433831 0.738234813192 0.655223319056 0 + 303 0.485227464231 0.469911539735 0.767595814360 0 + 304 0.511794232437 0.382892556989 0.690196593593 0 + 305 0.554722632052 0.378841418539 0.665791441500 0 + 306 0.640686076804 0.467496851044 0.688250417177 0 + 307 0.538604092321 0.512044994138 0.772021359941 0 + 308 0.813079665112 1.000000000000 -0.000000000000 0 + 309 0.724781059077 0.637017489223 -0.000000000000 0 + 310 0.500061124986 1.000000000000 0.485261611602 0 + 311 0.428790112566 0.775991784448 0.458790258943 0 + 312 0.250947254735 1.000000000000 -0.000000000000 0 + 313 0.230039764699 1.000000000000 0.278895489054 0 + 314 0.754331891729 0.615966120144 0.148291185085 0 + 315 0.673093021085 0.561242316629 0.167996504081 0 + 316 0.237546432067 0.891338993173 -0.000000000000 0 + 317 0.216212701198 0.889829437986 0.282097931193 0 + 318 0.276536493708 0.785708196737 0.341214709346 0 + 319 0.196647244201 0.228434281110 0.502492347245 0 + 320 0.716077957411 0.725071576148 0.772838400803 0 + 321 1.000000000000 0.849150119835 0.742369960399 0 + 322 0.760975848154 0.775695249087 0.804927126899 0 + 323 0.795070714769 0.860441715029 0.746280846522 0 + 324 1.000000000000 0.743531514347 0.813081753882 0 + 325 0.798208738667 0.726691566988 0.835651097863 0 + 326 0.743457124908 0.679869475214 0.795845697477 0 + 327 0.759330137790 0.575474878203 0.679153205600 0 + 328 0.704060466660 0.666022731204 0.631543887656 0 + 329 0.688281917636 0.731906468242 0.684530090789 0 + 330 0.752564239513 0.848037823964 0.652214100855 0 + 331 0.543354923266 0.675843516437 0.784471606303 0 + 332 0.599020315079 0.732175711386 0.759249162172 0 + 333 0.646924522275 0.727390534422 0.795846902081 0 + 334 0.595275336332 0.736020309818 0.699030334190 0 + 335 0.699342720505 0.474480407111 0.704446637476 0 + 336 0.726351144081 0.498898525898 0.675396470265 0 + 337 0.398829972812 0.503881176679 0.799349809535 0 + 338 0.328092798223 0.528261704961 0.774564299805 0 + 339 0.151624118287 0.483628479580 1.000000000000 0 + 340 0.308355816442 0.281488415476 0.766380479284 0 + 341 0.152116967029 0.493611691791 0.817391823705 0 + 342 0.231493817950 0.491039923352 0.740364434508 0 + 343 0.190371122851 0.526664864561 0.801120861880 0 + 344 0.442268562012 0.315477371333 1.000000000000 0 + 345 0.450317025399 0.450959599505 0.817214368831 0 + 346 0.428309501970 0.337684695471 0.808898725093 0 + 347 0.727009266513 0.353309019316 0.412610249274 0 + 348 0.804760582578 0.358566204920 0.437263361941 0 + 349 0.824138498016 0.284944107282 0.463247897867 0 + 350 0.732435692284 0.171694270775 0.660909146809 0 + 351 0.767205942135 0.191585306723 0.686798846582 0 + 352 0.545030497343 0.253342395173 0.563288585175 0 + 353 0.588227018499 0.260183756115 0.677040087063 0 + 354 0.688018730732 0.210121011825 0.705603312766 0 + 355 0.754336760665 0.222496685229 0.723842026719 0 + 356 0.696229344017 0.301031547165 0.416141408425 0 + 357 0.579118080054 0.297817065544 0.472786301109 0 + 358 0.553401587944 0.242902998158 0.543495879429 0 + 359 0.694393035628 0.166047745307 0.562075783539 0 + 360 0.759654329632 0.239251532658 0.453745309788 0 + 361 0.791215770103 0.315338037964 0.732584504293 0 + 362 1.000000000000 0.352368129477 0.368890187250 0 + 363 0.893890109904 0.343403137571 0.358717368638 0 + 364 1.000000000000 0.336365016993 0.258689955044 0 + 365 0.879823640641 0.329760091720 0.271604248465 0 + 366 1.000000000000 0.187382557400 0.268348840863 0 + 367 1.000000000000 0.251346218187 0.224227277051 0 + 368 0.868729605913 0.270772439946 0.249132724992 0 + 369 0.866374578440 0.205826059441 0.294619371159 0 + 370 1.000000000000 0.257839431161 0.431363122388 0 + 371 1.000000000000 0.199164778557 0.391017379452 0 + 372 0.878976172689 0.212345589770 0.378127510080 0 + 373 0.890338448739 0.260253707568 0.413131061475 0 + 374 0.605787481539 0.374883032943 0.260509400477 0 + 375 0.700571773211 0.425290813594 0.301689309708 0 + 376 0.724305140913 0.369295675204 0.338501357796 0 + 377 0.521950703506 0.300627326362 0.380677187067 0 + 378 0.613441504987 0.304744985326 0.292495211148 0 + 379 0.685009693500 0.303754988112 0.338670777800 0 + 380 0.549566907749 0.425868620670 0.284809224974 0 + 381 0.488581921817 0.376582440044 0.369581091290 0 + 382 0.849894799974 0.377099723671 0.381438525477 0 + 383 0.787454410104 0.415643759176 0.277675923658 0 + 384 0.796823008925 0.388608796507 0.296215425233 0 + 385 0.718900272976 0.434501672756 0.287482630384 0 + 386 0.642609823010 0.124497421522 1.000000000000 0 + 387 0.654980324531 0.119067883099 0.863382937018 0 + 388 0.545434036515 0.230630848984 0.710179708314 0 + 389 0.618626700523 0.158411617758 0.762710728314 0 + 390 0.464068429980 0.306877800242 0.738450261451 0 + 391 0.492279098416 -0.000000000000 -0.000000000000 0 + 392 0.461914850710 0.188262696648 -0.000000000000 0 + 393 0.229478978437 -0.000000000000 -0.000000000000 0 + 394 0.476792272866 0.215615306015 0.135977012108 0 + 395 0.515426072522 -0.000000000000 0.163173378349 0 + 396 0.385683261747 -0.000000000000 0.305752330469 0 + 397 0.413080121790 0.181068173583 0.278588739841 0 + 398 0.490843906107 0.178728216552 0.193093330978 0 + 399 0.673896192355 0.350425378324 0.108106359714 0 + 400 0.646546922293 0.393245900315 0.141295327158 0 + 401 0.754303896841 0.351602173293 0.117196780738 0 + 402 0.719157179479 0.432063385382 0.181196810928 0 + 403 0.779486195961 0.415485726352 0.173360270559 0 + 404 0.597021273975 0.368438033113 0.183026224906 0 + 405 0.648842982084 0.279479447106 0.118735549013 0 + 406 0.599810972178 0.278167668000 0.164223172029 0 + 407 0.831595027837 0.357011509639 0.259066676196 0 + 408 0.811353217968 0.408090417515 0.230312725401 0 + 409 0.710561817678 0.235941269650 0.134189418672 0 + 410 0.769005981807 0.279989477029 0.132558613920 0 + 411 0.823494432515 0.276390023918 0.231387367118 0 + 412 0.605887729247 0.250768617527 0.202933269062 0 + 413 0.702468306102 0.203572537893 0.193431847555 0 + 414 0.757685975591 0.218033571543 0.252899572283 0 + 415 1.000000000000 -0.000000000000 0.428907641994 0 + 416 0.714967441064 -0.000000000000 0.657225581210 0 + 417 0.688054630172 -0.000000000000 0.586322121592 0 + 418 0.799752312920 -0.000000000000 0.411728986496 0 + 419 0.810913454481 0.177138948625 0.378986526832 0 + 420 1.000000000000 1.000000000000 1.000000000000 0 + 421 1.000000000000 1.000000000000 0.740805070886 0 + 422 0.781318871199 1.000000000000 0.745103395732 0 + 423 1.000000000000 0.727070774818 1.000000000000 0 + 424 0.790638864911 0.711661206688 1.000000000000 0 + 425 0.288132141226 0.298131500148 0.471775592198 0 + 426 0.211992731710 0.275318149391 0.469509583560 0 + 427 0.358433534095 0.303738847469 0.346664023787 0 + 428 0.432182328761 0.240222770769 0.365430963314 0 + 429 0.697578870491 0.492027058521 0.141025390184 0 + 430 0.181713075825 1.000000000000 0.707364161337 0 + 431 -0.000000000000 1.000000000000 0.777770925486 0 + 432 0.164225216077 1.000000000000 0.762167734778 0 + 433 -0.000000000000 0.648014540172 0.772167416819 0 + 434 -0.000000000000 0.755067696893 0.869556881388 0 + 435 0.142129671376 0.647943344513 0.758969402247 0 + 436 -0.000000000000 0.658972631370 0.633130920194 0 + 437 0.000000000000 1.000000000000 0.000000000000 0 + 438 -0.000000000000 1.000000000000 0.287344498641 0 + 439 -0.000000000000 0.859369076615 -0.000000000000 0 + 440 -0.000000000000 0.860582619793 0.251419511916 0 + 441 0.180159691118 1.000000000000 0.315782878595 0 + 442 0.204306108094 0.888269023120 0.290803642705 0 + 443 0.495518861983 0.337764778339 0.106236697288 0 + 444 0.531360882061 0.270408141067 0.115405533475 0 + 445 0.369831182245 0.341733822121 0.346926874115 0 + 446 1.000000000000 1.000000000000 0.000000000000 0 + 447 0.494124715549 0.342292173521 -0.000000000000 0 + 448 0.342444229140 1.000000000000 0.596451999331 0 + 449 0.471314300295 1.000000000000 0.555335673534 0 + 450 0.245145826865 0.774561696783 0.370646502236 0 + 451 0.202313034862 0.817598845523 0.357136952534 0 + 452 0.804940409718 0.174048195189 0.298553282541 0 + 453 -0.000000000000 0.523214488307 0.820162121852 0 + 454 -0.000000000000 0.510591988820 0.567943577893 0 + 455 0.726918224619 1.000000000000 0.627949652831 0 + 456 0.570058562881 1.000000000000 0.653705053347 0 + 457 0.536018670530 0.806841562170 0.695489107501 0 + 458 0.627129559719 -0.000000000000 1.000000000000 0 + 459 0.605767085088 -0.000000000000 0.756355268971 0 + 460 0.641558646715 -0.000000000000 0.848894933701 0 + 461 0.667945174358 0.356931117251 -0.000000000000 0 + 462 0.637091363929 0.272322757318 -0.000000000000 0 + 463 0.535549895540 0.264634207781 -0.000000000000 0 + 464 0.313650146137 1.000000000000 0.684577005991 0 + 465 -0.000000000000 0.746166635402 0.359850487047 0 + 466 0.122253070764 0.757790451726 0.388101886070 0 + 467 0.160316135619 0.516421083906 0.398400191607 0 + 468 0.194464350126 0.699426108726 0.405189161540 0 + 469 -0.000000000000 0.452759248912 -0.000000000000 0 + 470 -0.000000000000 0.475402347408 0.315157967816 0 + 471 0.097443026735 0.432407863673 0.324011676183 0 + 472 -0.000000000000 0.534226311768 0.361150159303 0 + 473 0.125116067466 0.501809222592 0.390334906134 0 + 474 -0.000000000000 0.394091289401 0.352196599035 0 + 475 -0.000000000000 0.225929884789 -0.000000000000 0 + 476 0.081874375853 0.392094364714 0.344089709377 0 + 477 -0.000000000000 0.412492866917 0.435982768064 0 + 478 -0.000000000000 0.353192485249 0.473275743483 0 + 479 0.089770664034 0.410464603940 0.427828236102 0 + 480 0.101551464093 0.370501932922 0.451722533870 0 + 481 -0.000000000000 0.488802372212 0.445250536962 0 + 482 0.116753266743 0.479431474606 0.433827255702 0 + 483 0.777103995372 0.359286011197 -0.000000000000 0 + 484 0.799398253131 0.270306984642 -0.000000000000 0 + 485 0.720766621561 0.210501005140 -0.000000000000 0 + 486 0.688769921585 -0.000000000000 0.160093659584 0 + 487 0.789355064610 -0.000000000000 0.265972643628 0 + 488 0.703442571524 -0.000000000000 -0.000000000000 0 + 489 1.000000000000 0.000000000000 0.000000000000 0 + 490 1.000000000000 -0.000000000000 0.230441813538 0 + 491 1.000000000000 0.242177014961 -0.000000000000 0 + 492 0.000000000000 0.000000000000 0.000000000000 0 + 493 -0.000000000000 0.513287784699 1.000000000000 0 + 494 0.000000000000 1.000000000000 1.000000000000 0 + 495 -0.000000000000 0.740463797741 1.000000000000 0 + **edge + 986 + 1 3 13 0 + 2 13 14 0 + 3 14 6 0 + 4 6 19 0 + 5 19 20 0 + 6 20 3 0 + 7 12 8 0 + 8 8 5 0 + 9 5 17 0 + 10 17 18 0 + 11 18 12 0 + 12 2 4 0 + 13 4 5 0 + 14 8 9 0 + 15 9 2 0 + 16 7 1 0 + 17 1 10 0 + 18 10 11 0 + 19 11 7 0 + 20 7 6 0 + 21 14 15 0 + 22 15 1 0 + 23 4 3 0 + 24 13 16 0 + 25 16 2 0 + 26 10 9 0 + 27 16 15 0 + 28 17 20 0 + 29 11 12 0 + 30 18 19 0 + 31 30 24 0 + 32 24 25 0 + 33 25 21 0 + 34 21 34 0 + 35 34 35 0 + 36 35 30 0 + 37 28 26 0 + 38 26 22 0 + 39 22 23 0 + 40 23 31 0 + 41 31 32 0 + 42 32 28 0 + 43 22 25 0 + 44 21 27 0 + 45 27 26 0 + 46 23 24 0 + 47 30 31 0 + 48 29 27 0 + 49 34 33 0 + 50 33 29 0 + 51 29 28 0 + 52 33 36 0 + 53 36 32 0 + 54 36 35 0 + 55 38 37 0 + 56 37 41 0 + 57 41 42 0 + 58 42 38 0 + 59 38 39 0 + 60 39 49 0 + 61 49 50 0 + 62 50 37 0 + 63 44 45 0 + 64 45 46 0 + 65 46 47 0 + 66 47 44 0 + 67 41 45 0 + 68 46 50 0 + 69 39 40 0 + 70 40 48 0 + 71 48 49 0 + 72 42 43 0 + 73 43 40 0 + 74 44 43 0 + 75 48 47 0 + 76 40 55 0 + 77 55 53 0 + 78 53 56 0 + 79 56 48 0 + 80 47 65 0 + 81 65 64 0 + 82 64 44 0 + 83 57 58 0 + 84 58 51 0 + 85 51 54 0 + 86 54 60 0 + 87 60 61 0 + 88 61 57 0 + 89 52 51 0 + 90 58 59 0 + 91 59 52 0 + 92 53 52 0 + 93 59 68 0 + 94 68 69 0 + 95 69 56 0 + 96 62 63 0 + 97 63 43 0 + 98 64 67 0 + 99 67 62 0 + 100 55 54 0 + 101 63 60 0 + 102 61 62 0 + 103 67 66 0 + 104 66 57 0 + 105 69 70 0 + 106 70 65 0 + 107 68 71 0 + 108 71 66 0 + 109 70 71 0 + 110 76 75 0 + 111 75 82 0 + 112 82 81 0 + 113 81 76 0 + 114 73 74 0 + 115 74 75 0 + 116 82 83 0 + 117 83 73 0 + 118 78 77 0 + 119 77 72 0 + 120 72 84 0 + 121 84 85 0 + 122 85 78 0 + 123 72 73 0 + 124 83 84 0 + 125 74 80 0 + 126 80 77 0 + 127 76 79 0 + 128 79 80 0 + 129 79 78 0 + 130 85 81 0 + 131 86 89 0 + 132 89 90 0 + 133 90 97 0 + 134 97 96 0 + 135 96 86 0 + 136 86 87 0 + 137 87 88 0 + 138 88 92 0 + 139 92 89 0 + 140 95 87 0 + 141 96 99 0 + 142 99 95 0 + 143 90 91 0 + 144 91 93 0 + 145 93 98 0 + 146 98 97 0 + 147 88 94 0 + 148 94 95 0 + 149 92 91 0 + 150 93 94 0 + 151 99 98 0 + 152 102 100 0 + 153 100 101 0 + 154 101 106 0 + 155 106 115 0 + 156 115 116 0 + 157 116 102 0 + 158 114 111 0 + 159 111 107 0 + 160 107 119 0 + 161 119 118 0 + 162 118 114 0 + 163 105 104 0 + 164 104 101 0 + 165 106 108 0 + 166 108 105 0 + 167 108 107 0 + 168 111 110 0 + 169 110 105 0 + 170 100 103 0 + 171 103 109 0 + 172 109 112 0 + 173 112 113 0 + 174 113 102 0 + 175 104 103 0 + 176 113 117 0 + 177 117 116 0 + 178 110 109 0 + 179 115 119 0 + 180 114 112 0 + 181 117 118 0 + 182 125 120 0 + 183 120 127 0 + 184 127 130 0 + 185 130 131 0 + 186 131 125 0 + 187 120 123 0 + 188 123 124 0 + 189 124 129 0 + 190 129 127 0 + 191 128 121 0 + 192 121 122 0 + 193 122 126 0 + 194 126 132 0 + 195 132 133 0 + 196 133 128 0 + 197 121 124 0 + 198 129 128 0 + 199 122 123 0 + 200 125 126 0 + 201 132 131 0 + 202 130 133 0 + 203 134 135 0 + 204 135 140 0 + 205 140 141 0 + 206 141 145 0 + 207 145 146 0 + 208 146 134 0 + 209 142 143 0 + 210 143 139 0 + 211 139 148 0 + 212 148 149 0 + 213 149 142 0 + 214 136 135 0 + 215 134 137 0 + 216 137 138 0 + 217 138 136 0 + 218 146 147 0 + 219 147 137 0 + 220 138 139 0 + 221 143 144 0 + 222 144 136 0 + 223 144 140 0 + 224 141 142 0 + 225 149 145 0 + 226 148 147 0 + 227 150 151 0 + 228 151 156 0 + 229 156 157 0 + 230 157 162 0 + 231 162 159 0 + 232 159 150 0 + 233 150 152 0 + 234 152 153 0 + 235 153 160 0 + 236 160 159 0 + 237 151 164 0 + 238 164 163 0 + 239 163 152 0 + 240 157 158 0 + 241 158 154 0 + 242 154 161 0 + 243 161 162 0 + 244 156 165 0 + 245 165 164 0 + 246 155 154 0 + 247 158 166 0 + 248 166 167 0 + 249 167 155 0 + 250 153 155 0 + 251 167 163 0 + 252 160 161 0 + 253 166 165 0 + 254 182 183 0 + 255 183 186 0 + 256 186 185 0 + 257 185 187 0 + 258 187 188 0 + 259 188 182 0 + 260 185 81 0 + 261 82 172 0 + 262 172 177 0 + 263 177 178 0 + 264 178 190 0 + 265 190 187 0 + 266 168 171 0 + 267 171 170 0 + 268 170 179 0 + 269 179 175 0 + 270 175 168 0 + 271 172 173 0 + 272 173 176 0 + 273 176 177 0 + 274 168 169 0 + 275 169 174 0 + 276 174 173 0 + 277 176 175 0 + 278 171 181 0 + 279 181 180 0 + 280 180 169 0 + 281 84 184 0 + 282 184 183 0 + 283 186 85 0 + 284 83 174 0 + 285 180 184 0 + 286 179 178 0 + 287 190 189 0 + 288 189 170 0 + 289 181 182 0 + 290 188 189 0 + 291 191 192 0 + 292 192 134 0 + 293 146 195 0 + 294 195 191 0 + 295 191 194 0 + 296 194 196 0 + 297 196 195 0 + 298 192 193 0 + 299 193 137 0 + 300 193 194 0 + 301 196 147 0 + 302 198 199 0 + 303 199 200 0 + 304 200 197 0 + 305 197 207 0 + 306 207 208 0 + 307 208 198 0 + 308 210 207 0 + 309 197 211 0 + 310 211 212 0 + 311 212 210 0 + 312 200 201 0 + 313 201 214 0 + 314 214 211 0 + 315 210 209 0 + 316 209 206 0 + 317 206 205 0 + 318 205 213 0 + 319 213 212 0 + 320 198 202 0 + 321 202 203 0 + 322 203 199 0 + 323 202 206 0 + 324 209 208 0 + 325 201 204 0 + 326 204 203 0 + 327 205 204 0 + 328 214 213 0 + 329 177 215 0 + 330 215 221 0 + 331 221 224 0 + 332 224 225 0 + 333 225 178 0 + 334 216 215 0 + 335 176 216 0 + 336 219 218 0 + 337 218 179 0 + 338 175 219 0 + 339 217 216 0 + 340 221 223 0 + 341 223 217 0 + 342 217 220 0 + 343 220 219 0 + 344 218 226 0 + 345 226 225 0 + 346 223 222 0 + 347 222 220 0 + 348 222 227 0 + 349 227 226 0 + 350 224 227 0 + 351 103 229 0 + 352 229 228 0 + 353 228 231 0 + 354 231 104 0 + 355 105 230 0 + 356 230 233 0 + 357 233 232 0 + 358 232 110 0 + 359 230 231 0 + 360 228 237 0 + 361 237 238 0 + 362 238 233 0 + 363 234 232 0 + 364 109 235 0 + 365 235 236 0 + 366 236 234 0 + 367 62 229 0 + 368 235 61 0 + 369 67 237 0 + 370 238 239 0 + 371 239 234 0 + 372 57 236 0 + 373 239 66 0 + 374 215 242 0 + 375 242 243 0 + 376 243 245 0 + 377 245 221 0 + 378 242 241 0 + 379 241 216 0 + 380 244 240 0 + 381 240 217 0 + 382 223 246 0 + 383 246 244 0 + 384 241 240 0 + 385 243 244 0 + 386 246 245 0 + 387 247 249 0 + 388 249 251 0 + 389 251 141 0 + 390 140 131 0 + 391 130 247 0 + 392 250 249 0 + 393 247 254 0 + 394 254 255 0 + 395 255 250 0 + 396 133 256 0 + 397 256 254 0 + 398 132 248 0 + 399 248 156 0 + 400 165 256 0 + 401 144 248 0 + 402 143 157 0 + 403 158 252 0 + 404 252 142 0 + 405 252 253 0 + 406 253 250 0 + 407 255 166 0 + 408 253 251 0 + 409 75 262 0 + 410 262 243 0 + 411 242 172 0 + 412 173 241 0 + 413 259 258 0 + 414 258 257 0 + 415 257 261 0 + 416 261 260 0 + 417 260 259 0 + 418 257 240 0 + 419 174 258 0 + 420 261 244 0 + 421 73 259 0 + 422 260 263 0 + 423 263 74 0 + 424 262 263 0 + 425 265 264 0 + 426 264 266 0 + 427 266 116 0 + 428 115 265 0 + 429 267 264 0 + 430 265 20 0 + 431 19 267 0 + 432 267 269 0 + 433 269 270 0 + 434 270 266 0 + 435 118 268 0 + 436 268 18 0 + 437 17 119 0 + 438 117 270 0 + 439 268 269 0 + 440 271 272 0 + 441 272 275 0 + 442 275 276 0 + 443 276 281 0 + 444 281 279 0 + 445 279 271 0 + 446 271 273 0 + 447 273 282 0 + 448 282 283 0 + 449 283 279 0 + 450 272 274 0 + 451 274 273 0 + 452 276 201 0 + 453 204 280 0 + 454 280 281 0 + 455 275 214 0 + 456 213 277 0 + 457 277 274 0 + 458 277 278 0 + 459 278 285 0 + 460 285 282 0 + 461 205 278 0 + 462 285 284 0 + 463 284 280 0 + 464 283 284 0 + 465 287 288 0 + 466 288 293 0 + 467 293 294 0 + 468 294 298 0 + 469 298 306 0 + 470 306 307 0 + 471 307 287 0 + 472 292 234 0 + 473 236 296 0 + 474 296 286 0 + 475 286 303 0 + 476 303 304 0 + 477 304 292 0 + 478 286 291 0 + 479 291 290 0 + 480 290 295 0 + 481 295 296 0 + 482 289 288 0 + 483 293 302 0 + 484 302 301 0 + 485 301 289 0 + 486 287 291 0 + 487 303 307 0 + 488 294 154 0 + 489 161 298 0 + 490 297 239 0 + 491 292 299 0 + 492 299 300 0 + 493 300 297 0 + 494 289 290 0 + 495 295 58 0 + 496 59 301 0 + 497 299 305 0 + 498 305 304 0 + 499 155 71 0 + 500 68 302 0 + 501 153 297 0 + 502 160 300 0 + 503 306 305 0 + 504 308 312 0 + 505 312 313 0 + 506 313 310 0 + 507 310 255 0 + 508 254 308 0 + 509 308 309 0 + 510 309 30 0 + 511 35 316 0 + 512 316 312 0 + 513 310 311 0 + 514 311 318 0 + 515 318 317 0 + 516 317 313 0 + 517 31 315 0 + 518 315 314 0 + 519 314 309 0 + 520 314 256 0 + 521 311 167 0 + 522 163 32 0 + 523 36 318 0 + 524 315 164 0 + 525 317 316 0 + 526 106 208 0 + 527 207 265 0 + 528 210 3 0 + 529 108 319 0 + 530 319 209 0 + 531 107 5 0 + 532 4 319 0 + 533 321 324 0 + 534 324 145 0 + 535 251 321 0 + 536 321 323 0 + 537 323 330 0 + 538 330 253 0 + 539 328 327 0 + 540 327 149 0 + 541 252 328 0 + 542 320 326 0 + 543 326 327 0 + 544 328 329 0 + 545 329 320 0 + 546 323 322 0 + 547 322 320 0 + 548 329 330 0 + 549 322 325 0 + 550 325 326 0 + 551 324 325 0 + 552 219 331 0 + 553 331 332 0 + 554 332 333 0 + 555 333 218 0 + 556 288 331 0 + 557 332 334 0 + 558 334 293 0 + 559 333 320 0 + 560 326 226 0 + 561 220 287 0 + 562 307 222 0 + 563 328 294 0 + 564 298 336 0 + 565 336 327 0 + 566 334 329 0 + 567 227 335 0 + 568 335 306 0 + 569 335 336 0 + 570 344 245 0 + 571 262 339 0 + 572 339 270 0 + 573 269 344 0 + 574 340 114 0 + 575 112 342 0 + 576 342 338 0 + 577 338 337 0 + 578 337 345 0 + 579 345 346 0 + 580 346 340 0 + 581 339 341 0 + 582 341 113 0 + 583 337 261 0 + 584 260 338 0 + 585 246 345 0 + 586 263 343 0 + 587 343 342 0 + 588 268 340 0 + 589 341 343 0 + 590 346 344 0 + 591 352 353 0 + 592 353 305 0 + 593 299 352 0 + 594 194 351 0 + 595 351 355 0 + 596 355 361 0 + 597 361 196 0 + 598 138 348 0 + 599 348 349 0 + 600 349 193 0 + 601 162 139 0 + 602 148 336 0 + 603 353 354 0 + 604 354 350 0 + 605 350 359 0 + 606 359 358 0 + 607 358 352 0 + 608 347 159 0 + 609 300 357 0 + 610 357 356 0 + 611 356 347 0 + 612 348 347 0 + 613 349 360 0 + 614 360 356 0 + 615 351 350 0 + 616 354 355 0 + 617 360 359 0 + 618 358 357 0 + 619 361 335 0 + 620 366 367 0 + 621 367 364 0 + 622 364 362 0 + 623 362 370 0 + 624 370 371 0 + 625 371 366 0 + 626 363 365 0 + 627 365 368 0 + 628 368 369 0 + 629 369 372 0 + 630 372 373 0 + 631 373 363 0 + 632 363 362 0 + 633 370 373 0 + 634 369 366 0 + 635 371 372 0 + 636 365 364 0 + 637 368 367 0 + 638 150 375 0 + 639 375 376 0 + 640 376 347 0 + 641 374 375 0 + 642 152 380 0 + 643 380 374 0 + 644 374 378 0 + 645 378 377 0 + 646 377 381 0 + 647 381 380 0 + 648 376 379 0 + 649 379 378 0 + 650 377 357 0 + 651 297 381 0 + 652 356 379 0 + 653 383 384 0 + 654 384 382 0 + 655 382 136 0 + 656 248 383 0 + 657 383 385 0 + 658 385 151 0 + 659 382 348 0 + 660 376 384 0 + 661 375 385 0 + 662 386 95 0 + 663 99 224 0 + 664 344 386 0 + 665 386 387 0 + 666 387 94 0 + 667 353 388 0 + 668 388 390 0 + 669 390 304 0 + 670 354 389 0 + 671 389 387 0 + 672 93 355 0 + 673 303 345 0 + 674 388 389 0 + 675 346 390 0 + 676 361 98 0 + 677 211 393 0 + 678 393 391 0 + 679 391 395 0 + 680 395 396 0 + 681 396 212 0 + 682 272 392 0 + 683 392 391 0 + 684 393 275 0 + 685 392 394 0 + 686 394 274 0 + 687 394 398 0 + 688 398 395 0 + 689 398 397 0 + 690 397 277 0 + 691 396 397 0 + 692 401 399 0 + 693 399 405 0 + 694 405 409 0 + 695 409 410 0 + 696 410 401 0 + 697 384 407 0 + 698 407 411 0 + 699 411 414 0 + 700 414 379 0 + 701 400 399 0 + 702 401 403 0 + 703 403 402 0 + 704 402 400 0 + 705 404 400 0 + 706 405 406 0 + 707 406 404 0 + 708 402 385 0 + 709 374 404 0 + 710 403 408 0 + 711 408 407 0 + 712 411 410 0 + 713 408 383 0 + 714 406 412 0 + 715 412 378 0 + 716 412 413 0 + 717 413 409 0 + 718 414 413 0 + 719 415 371 0 + 720 370 192 0 + 721 191 90 0 + 722 89 415 0 + 723 416 417 0 + 724 417 418 0 + 725 418 415 0 + 726 92 416 0 + 727 418 419 0 + 728 419 372 0 + 729 91 351 0 + 730 349 373 0 + 731 419 360 0 + 732 416 350 0 + 733 359 417 0 + 734 321 421 0 + 735 421 420 0 + 736 420 423 0 + 737 423 324 0 + 738 421 422 0 + 739 422 188 0 + 740 187 420 0 + 741 424 423 0 + 742 190 424 0 + 743 325 424 0 + 744 189 322 0 + 745 323 422 0 + 746 291 257 0 + 747 290 258 0 + 748 168 331 0 + 749 289 169 0 + 750 396 13 0 + 751 2 425 0 + 752 425 426 0 + 753 426 319 0 + 754 425 427 0 + 755 427 428 0 + 756 428 16 0 + 757 206 426 0 + 758 278 427 0 + 759 397 428 0 + 760 402 429 0 + 761 429 315 0 + 762 429 23 0 + 763 22 400 0 + 764 26 404 0 + 765 28 380 0 + 766 433 434 0 + 767 434 431 0 + 768 431 38 0 + 769 42 436 0 + 770 436 433 0 + 771 430 39 0 + 772 431 432 0 + 773 432 430 0 + 774 78 432 0 + 775 430 55 0 + 776 54 77 0 + 777 434 79 0 + 778 60 435 0 + 779 435 80 0 + 780 433 435 0 + 781 63 436 0 + 782 438 437 0 + 783 437 439 0 + 784 439 440 0 + 785 440 438 0 + 786 438 441 0 + 787 441 313 0 + 788 312 437 0 + 789 316 439 0 + 790 441 442 0 + 791 442 440 0 + 792 442 317 0 + 793 273 443 0 + 794 443 444 0 + 795 444 394 0 + 796 27 443 0 + 797 282 29 0 + 798 444 406 0 + 799 377 428 0 + 800 427 445 0 + 801 445 381 0 + 802 398 412 0 + 803 285 445 0 + 804 195 97 0 + 805 121 429 0 + 806 314 128 0 + 807 403 122 0 + 808 126 408 0 + 809 292 10 0 + 810 11 390 0 + 811 111 8 0 + 812 12 340 0 + 813 337 286 0 + 814 296 338 0 + 815 9 232 0 + 816 235 342 0 + 817 127 446 0 + 818 446 247 0 + 819 446 308 0 + 820 129 309 0 + 821 21 447 0 + 822 447 271 0 + 823 279 34 0 + 824 443 447 0 + 825 33 283 0 + 826 49 448 0 + 827 448 449 0 + 828 449 310 0 + 829 441 50 0 + 830 65 450 0 + 831 450 451 0 + 832 451 46 0 + 833 448 56 0 + 834 451 442 0 + 835 449 69 0 + 836 70 311 0 + 837 318 450 0 + 838 363 382 0 + 839 365 407 0 + 840 419 452 0 + 841 452 369 0 + 842 368 411 0 + 843 452 414 0 + 844 454 100 0 + 845 102 453 0 + 846 453 433 0 + 847 436 454 0 + 848 343 435 0 + 849 229 454 0 + 850 453 341 0 + 851 171 332 0 + 852 333 170 0 + 853 422 455 0 + 854 455 456 0 + 855 456 182 0 + 856 334 457 0 + 857 457 181 0 + 858 457 456 0 + 859 455 330 0 + 860 6 459 0 + 861 459 460 0 + 862 460 458 0 + 863 458 267 0 + 864 458 386 0 + 865 387 460 0 + 866 388 7 0 + 867 459 389 0 + 868 425 233 0 + 869 352 1 0 + 870 445 238 0 + 871 358 15 0 + 872 25 461 0 + 873 461 462 0 + 874 462 463 0 + 875 463 447 0 + 876 399 461 0 + 877 462 405 0 + 878 444 463 0 + 879 456 449 0 + 880 448 464 0 + 881 464 183 0 + 882 457 302 0 + 883 301 180 0 + 884 464 53 0 + 885 52 184 0 + 886 230 426 0 + 887 362 135 0 + 888 364 125 0 + 889 37 438 0 + 890 440 465 0 + 891 465 41 0 + 892 451 466 0 + 893 466 45 0 + 894 465 466 0 + 895 463 392 0 + 896 467 237 0 + 897 284 467 0 + 898 450 468 0 + 899 468 64 0 + 900 467 468 0 + 901 439 469 0 + 902 469 470 0 + 903 470 472 0 + 904 472 465 0 + 905 281 469 0 + 906 470 471 0 + 907 471 280 0 + 908 468 466 0 + 909 472 473 0 + 910 473 471 0 + 911 473 467 0 + 912 475 200 0 + 913 199 474 0 + 914 474 470 0 + 915 469 475 0 + 916 276 475 0 + 917 474 476 0 + 918 476 203 0 + 919 471 476 0 + 920 14 417 0 + 921 416 459 0 + 922 481 477 0 + 923 477 478 0 + 924 478 101 0 + 925 454 481 0 + 926 479 477 0 + 927 481 482 0 + 928 482 479 0 + 929 478 480 0 + 930 480 479 0 + 931 480 231 0 + 932 228 482 0 + 933 461 483 0 + 934 483 484 0 + 935 484 485 0 + 936 485 462 0 + 937 483 401 0 + 938 484 410 0 + 939 485 409 0 + 940 249 421 0 + 941 250 455 0 + 942 24 124 0 + 943 123 483 0 + 944 395 486 0 + 945 486 487 0 + 946 487 418 0 + 947 413 486 0 + 948 452 487 0 + 949 478 198 0 + 950 480 202 0 + 951 472 481 0 + 952 482 473 0 + 953 430 464 0 + 954 391 488 0 + 955 488 486 0 + 956 485 488 0 + 957 490 489 0 + 958 489 491 0 + 959 491 367 0 + 960 366 490 0 + 961 488 489 0 + 962 490 487 0 + 963 484 491 0 + 964 88 460 0 + 965 492 197 0 + 966 475 492 0 + 967 492 393 0 + 968 493 453 0 + 969 266 493 0 + 970 339 493 0 + 971 423 96 0 + 972 424 225 0 + 973 432 186 0 + 974 51 72 0 + 975 477 474 0 + 976 476 479 0 + 977 295 259 0 + 978 415 490 0 + 979 494 431 0 + 980 434 495 0 + 981 495 494 0 + 982 494 185 0 + 983 495 76 0 + 984 491 120 0 + 985 87 458 0 + 986 493 495 0 + **face + 592 + 1 6 3 13 14 6 19 20 + 6 1 2 3 4 5 6 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 5 12 8 5 17 18 + 5 7 8 9 10 11 + 0.276269104943 -0.632228530205 0.603256223177 0.486177966173 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 5 2 4 5 8 9 + 5 12 13 -8 14 15 + -0.134117966155 -0.595479119485 0.766555485825 -0.240410701526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 7 1 10 11 + 4 16 17 18 19 + 0.619367271370 0.592056798324 0.765218014909 0.252804543506 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 1 7 6 14 15 + 5 -16 20 -3 21 22 + 0.597399563473 0.987066447939 0.070179623595 0.144134131229 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 2 4 3 13 16 + 5 12 23 1 24 25 + 0.575043196966 0.334427739925 -0.106790913265 0.936351316341 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 6 1 10 9 2 16 15 + 6 17 26 15 -25 27 22 + 0.013910917833 -0.219019283123 -0.812079033803 0.540886491307 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 5 3 4 5 17 20 + 5 -23 13 9 28 6 + 0.306089032444 0.995398645751 0.052751945972 0.079992301083 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 6 6 7 11 12 18 19 + 6 -20 -19 29 -11 30 -4 + 0.781005437586 0.228042335153 0.072899778798 0.970918284733 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 5 8 9 10 11 12 + 5 14 -26 18 29 7 + -0.465320490055 0.036113728802 -0.940828597751 -0.336953035668 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 4 13 14 15 16 + 4 2 21 -27 -24 + 0.074820555410 -0.672641774036 0.077693417001 0.735878235021 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 17 18 19 20 + 4 10 30 5 -28 + -0.339001640331 0.678760951806 0.051639093725 -0.732541448863 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 13 6 30 24 25 21 34 35 + 6 31 32 33 34 35 36 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 14 6 28 26 22 23 31 32 + 6 37 38 39 40 41 42 + 0.329041081448 0.480679167127 -0.160800411987 0.862027125904 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 15 5 22 25 21 27 26 + 5 43 33 44 45 38 + 0.296095801222 -0.195653584908 0.980593179492 0.012517629435 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 16 4 23 24 30 31 + 4 46 -31 47 -40 + 0.777579724338 0.934650784285 0.352654599138 -0.045416353251 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 17 5 29 27 21 34 33 + 5 48 -44 34 49 50 + 0.646476649925 0.705917887677 0.708224850505 -0.009874056139 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 18 4 22 23 24 25 + 4 39 46 32 -43 + -0.396605906400 -0.913990018915 0.405084117293 0.023002244242 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 19 4 26 27 29 28 + 4 -45 -48 51 37 + 0.372681004678 0.288525039648 0.753409610822 -0.590869917847 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 20 5 32 28 29 33 36 + 5 42 -51 -50 52 53 + 0.023743492153 0.559614071755 -0.261704415751 -0.786347817108 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 21 5 30 31 32 36 35 + 5 47 41 -53 54 36 + -0.522121722255 0.060090289371 -0.979279762556 -0.193391581441 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 22 4 33 34 35 36 + 4 -49 35 -54 -52 + 0.241991719214 0.943363073692 -0.315763044595 -0.101783156086 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 23 4 38 37 41 42 + 4 55 56 57 58 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 24 5 37 38 39 49 50 + 5 -55 59 60 61 62 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 25 4 44 45 46 47 + 4 63 64 65 66 + -0.702755491641 0.502879684880 -0.620475428867 -0.601765955092 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 26 5 37 41 45 46 50 + 5 56 67 64 68 62 + 0.480596759508 0.101182479502 0.032645680077 0.994332120277 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 27 4 39 40 48 49 + 4 69 70 71 -60 + 0.631074295626 0.777299002268 0.132220772419 0.615080424347 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 28 5 40 39 38 42 43 + 5 -69 -59 -58 72 73 + 0.332671137554 -0.096374201099 -0.266907667374 0.958891188018 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 29 5 44 43 40 48 47 + 5 74 73 70 75 66 + 0.184961267217 -0.740057918334 0.601437840963 -0.300976412647 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 30 5 41 42 43 44 45 + 5 57 72 -74 63 -67 + 0.879712282753 0.106122695269 0.966307600630 0.234494337914 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 31 5 46 47 48 49 50 + 5 65 -75 71 61 -68 + -0.072979710800 -0.876133737521 -0.137852221991 0.461937700204 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 32 5 40 55 53 56 48 + 5 76 77 78 79 -70 + 0.920433194089 -0.174315564917 0.953278108375 0.246728457867 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 33 4 44 47 65 64 + 4 -66 80 81 82 + -0.401381906787 -0.431603569933 0.163860462319 -0.887055864819 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 34 6 57 58 51 54 60 61 + 6 83 84 85 86 87 88 + 0.245225676749 -0.076451661587 -0.494239530135 0.865957522222 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 35 4 52 51 58 59 + 4 89 -84 90 91 + 0.720439641570 0.445891778853 -0.071347006089 0.892238828047 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 36 6 56 53 52 59 68 69 + 6 -78 92 -91 93 94 95 + 1.004236310278 0.672731789624 0.600102730041 0.432791696578 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 37 6 62 63 43 44 64 67 + 6 96 97 -74 -82 98 99 + -0.670314671908 -0.782451721877 -0.369780614769 -0.501030537865 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 38 5 51 52 53 55 54 + 5 -89 -92 -77 100 -85 + 1.016083759556 -0.001535792912 0.539967970305 0.841684164271 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 39 6 54 55 40 43 63 60 + 6 -100 -76 -73 -97 101 -86 + 0.463716727270 -0.751157278485 0.301702977491 0.587143982641 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 40 5 57 61 62 67 66 + 5 -88 102 -99 103 104 + -0.685955307016 -0.130790643918 -0.983140697995 -0.127781749128 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 41 6 65 47 48 56 69 70 + 6 -80 -75 -79 -95 105 106 + 0.230234440325 0.249765844046 0.648955704160 -0.718660919479 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 42 6 66 57 58 59 68 71 + 6 104 83 90 93 107 108 + 0.105999881875 -0.770237884735 0.635650986255 -0.051782473802 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 43 4 60 61 62 63 + 4 87 102 96 101 + 0.260037875137 0.628485279806 0.658399426840 -0.414145442815 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 44 6 66 67 64 65 70 71 + 6 -103 -98 -81 -106 109 108 + -0.625075067299 0.329720914775 -0.439494677768 -0.835540870678 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 45 4 68 69 70 71 + 4 94 105 109 -107 + -0.426961811041 -0.954682684054 -0.201073485805 0.219432053432 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 46 4 76 75 82 81 + 4 110 111 112 113 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 47 5 73 74 75 82 83 + 5 114 115 111 116 117 + 0.190113509260 -0.639060756964 0.754359352653 -0.150144317156 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 48 5 78 77 72 84 85 + 5 118 119 120 121 122 + 0.009091375390 -0.135750989382 -0.680786011013 0.719793078663 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 49 4 72 73 83 84 + 4 123 -117 124 -120 + 0.466362766459 -0.718325699468 0.203480943343 0.665284672286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 50 5 72 73 74 80 77 + 5 123 114 125 126 119 + -1.054100544318 0.033436575756 -0.679378647107 -0.733025681171 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 51 5 74 75 76 79 80 + 5 115 -110 127 128 -125 + -0.492730207886 -0.737591980041 -0.662217266836 0.132008948497 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 52 5 76 79 78 85 81 + 5 127 129 -122 130 113 + -0.652280951759 0.675317514892 -0.686260587476 -0.270171538391 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 53 4 77 78 79 80 + 4 -118 -129 128 126 + 0.539779029262 0.659206548834 -0.224271537631 0.717738812789 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 54 5 81 82 83 84 85 + 5 -112 116 124 121 130 + 0.948907226461 0.790011663172 0.523000078804 0.319925756423 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 55 5 86 89 90 97 96 + 5 131 132 133 134 135 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 56 5 86 87 88 92 89 + 5 136 137 138 139 -131 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 57 5 95 87 86 96 99 + 5 140 -136 -135 141 142 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 58 5 90 91 93 98 97 + 5 143 144 145 146 -133 + -0.564247788851 -0.081248803490 0.616011313848 -0.783536019046 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 59 4 87 88 94 95 + 4 137 147 148 140 + 0.668030322270 0.986022003976 0.129551662318 -0.104771057386 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 60 5 88 92 91 93 94 + 5 138 149 144 150 -147 + 1.082109059764 0.881572264594 0.062375333816 0.467909884518 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 61 4 89 90 91 92 + 4 132 143 -149 139 + 0.788531901007 0.053869503219 0.080910619579 0.995264561944 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 62 5 93 94 95 99 98 + 5 150 148 -142 151 -145 + -0.487675379172 -0.792333020593 0.609646350378 0.023231701374 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 63 4 96 97 98 99 + 4 -134 -146 -151 -141 + 0.244987545623 -0.033542671970 0.998933414800 0.031732033539 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 64 6 102 100 101 106 115 116 + 6 152 153 154 155 156 157 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 65 5 114 111 107 119 118 + 5 158 159 160 161 162 + -0.111309152779 -0.829845306662 0.540158294807 -0.139949217800 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 66 5 105 104 101 106 108 + 5 163 164 154 165 166 + 0.636270171573 -0.018499640114 0.267819861320 0.963291381254 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 67 5 105 108 107 111 110 + 5 -166 167 -159 168 169 + 0.324566208864 -0.732814637820 0.270028552440 0.624553670603 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 68 6 102 100 103 109 112 113 + 6 152 170 171 172 173 174 + -0.483811932977 0.036789587728 -0.995630956187 -0.085822638724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 69 4 100 101 104 103 + 4 153 -164 175 -170 + 0.330608102916 0.101547218242 -0.466578557049 0.878631101526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 70 4 102 113 117 116 + 4 -174 176 177 157 + -0.851234260311 0.112809894028 -0.328678069126 -0.937680465129 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 71 5 103 104 105 110 109 + 5 -175 -163 -169 178 -171 + 0.007988395873 -0.588081599684 -0.582164308208 0.561466606631 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 72 5 107 108 106 115 119 + 5 -167 -165 155 179 -160 + 0.465841618892 -0.056111144442 0.923047345803 0.380572117837 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 73 5 109 110 111 114 112 + 5 -178 -168 -158 180 -172 + -0.392385409591 -0.955739274606 -0.272794249756 -0.110207696084 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 74 5 114 112 113 117 118 + 5 180 173 176 181 162 + 0.772254774962 0.626687966675 0.240274989070 0.741302989372 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 75 5 115 116 117 118 119 + 5 156 -177 181 -161 -179 + -0.303998367485 -0.015274754412 0.740175190874 -0.672240558648 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 76 5 125 120 127 130 131 + 5 182 183 184 185 186 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 77 5 120 123 124 129 127 + 5 187 188 189 190 -183 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 78 6 128 121 122 126 132 133 + 6 191 192 193 194 195 196 + -0.532419023080 -0.762856482492 -0.022630585959 0.646171682836 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 79 4 121 124 129 128 + 4 197 189 198 191 + 0.703303291293 0.988605382865 -0.141008174535 0.052688629561 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 80 5 122 123 120 125 126 + 5 199 -187 -182 200 -193 + -0.471283560149 -0.050630857254 -0.993151736108 0.105290765788 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 81 4 121 122 123 124 + 4 192 199 188 -197 + 0.923294742549 0.869947105856 0.492078216534 0.032420083684 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 82 4 125 126 132 131 + 4 200 194 201 186 + -0.020186667753 -0.016718277627 0.394972768689 -0.918540696533 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 83 5 128 129 127 130 133 + 5 -198 190 184 202 196 + -0.456020037073 0.152417309198 -0.987106057945 0.048893703338 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 84 4 130 131 132 133 + 4 185 -201 195 -202 + -0.494850135710 0.044937349408 -0.650305518791 -0.758342512891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 85 6 134 135 140 141 145 146 + 6 203 204 205 206 207 208 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 86 5 142 143 139 148 149 + 5 209 210 211 212 213 + -0.466648264002 -0.915007001992 0.369019282354 0.163055069090 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 87 5 136 135 134 137 138 + 5 214 -203 215 216 217 + -0.563287034528 0.021952308589 -0.897090970230 -0.441300223521 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 88 4 137 134 146 147 + 4 -215 -208 218 219 + -0.075652645049 0.059942996383 -0.906297062298 0.418368822995 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 89 5 136 138 139 143 144 + 5 -217 220 -210 221 222 + -0.976884132323 -0.634984050097 -0.226451036047 -0.738589997493 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 90 4 135 136 144 140 + 4 -214 -222 223 -204 + -0.484771452491 0.039008528092 -0.237742442075 -0.970544623380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 91 4 141 142 149 145 + 4 224 -213 225 -206 + 0.644063830273 -0.192579997872 0.773972179056 0.603224676606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 92 5 137 138 139 148 147 + 5 216 220 211 226 219 + 0.767986661383 0.720042554375 0.658280839405 -0.219556499246 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 93 5 140 141 142 143 144 + 5 205 224 209 221 223 + -0.153271764888 0.031094658895 -0.815936544523 0.577304666099 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 94 5 145 146 147 148 149 + 5 207 218 -226 212 225 + -0.584432411972 0.026585445906 0.045995814825 -0.998587802391 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 95 6 150 151 156 157 162 159 + 6 227 228 229 230 231 232 + 0.199541009108 0.740023398215 -0.672094811756 0.025572135335 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 96 5 150 152 153 160 159 + 5 233 234 235 236 232 + 0.611791869556 0.216875482929 0.975653463537 0.032639607737 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 97 5 152 150 151 164 163 + 5 -233 227 237 238 239 + 0.580831901478 0.119760294903 0.463387155304 0.878026090765 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 98 5 157 158 154 161 162 + 5 240 241 242 243 -230 + 0.734330570230 0.448324924606 -0.002586567499 0.893866920545 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 99 4 151 156 165 164 + 4 228 244 245 -237 + -0.048865965034 -0.557089898327 0.187513091656 0.809005368116 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 100 5 155 154 158 166 167 + 5 246 -241 247 248 249 + 0.664838552134 -0.152176571169 0.844849260433 0.512905467248 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 101 5 152 153 155 167 163 + 5 234 250 -249 251 239 + -0.617239911804 -0.981857878974 0.053166448293 -0.182012181662 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 102 5 154 155 153 160 161 + 5 -246 -250 235 252 -242 + -0.011933219910 -0.575816391902 -0.085352524884 0.813111572487 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 103 5 156 157 158 166 165 + 5 229 240 247 253 -244 + -0.906125036235 -0.783191987153 -0.616071769498 0.084058825160 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 104 4 159 160 161 162 + 4 -236 252 243 231 + -0.101671599247 -0.201083890405 0.728861556031 -0.654466271980 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 105 5 163 164 165 166 167 + 5 -238 -245 -253 248 251 + -0.073141046292 0.298961435035 -0.749857495393 0.590199794107 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 106 6 182 183 186 185 187 188 + 6 254 255 256 257 258 259 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 107 8 185 81 82 172 177 178 190 187 + 8 260 -112 261 262 263 264 265 -257 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 108 5 168 171 170 179 175 + 5 266 267 268 269 270 + -0.789131845834 0.410687032760 -0.696841070597 -0.588003982514 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 109 4 172 173 176 177 + 4 271 272 273 -262 + -0.834556122503 -0.004189138706 -0.984476168495 -0.175468301362 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 110 6 168 169 174 173 176 175 + 6 274 275 276 272 277 270 + 1.046486653747 -0.007807928084 0.868010137586 0.496485082664 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 111 5 169 168 171 181 180 + 5 -274 266 278 279 280 + 0.997207330508 -0.167609981628 0.555803663118 0.814241476543 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 112 5 84 184 183 186 85 + 5 281 282 255 283 -121 + 0.921265865866 0.685405591680 0.117335342424 0.718645665340 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 113 6 84 83 174 169 180 184 + 6 -124 284 -275 -280 285 -281 + 1.193456195581 0.325875661360 0.625467098264 0.708940027310 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 114 5 170 179 178 190 189 + 5 268 286 264 287 288 + 0.254370963122 -0.752265450541 0.580294184366 0.312018190997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 115 6 170 171 181 182 188 189 + 6 -267 278 289 -259 290 288 + -0.410399494415 0.607197734223 -0.154953786671 -0.779294703915 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 116 5 172 173 174 83 82 + 5 271 -276 -284 -116 261 + 0.989369535638 0.402330019544 0.888581644686 0.220347943265 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 117 5 175 176 177 178 179 + 5 -277 273 263 -286 269 + 0.627490360820 -0.376943156444 0.898329014099 0.225652031318 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 118 5 180 181 182 183 184 + 5 -279 289 254 -282 -285 + 0.883467025707 0.127118835548 0.077414855086 0.988861841645 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 119 4 185 186 85 81 + 4 -256 283 130 -260 + -0.354623073302 -0.995852847757 -0.007560778206 -0.090663886126 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 120 4 187 188 189 190 + 4 258 290 -287 265 + -0.473621381925 -0.983247045004 0.056574947664 0.173275860373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 121 5 191 192 134 146 195 + 5 291 292 -208 293 294 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 122 4 191 194 196 195 + 4 295 296 297 294 + -0.161165187645 0.196206317979 0.572649401149 -0.795974713260 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 123 4 137 134 192 193 + 4 -215 -292 298 299 + -0.553624630804 -0.045741292094 0.046429341479 -0.997873764786 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 124 5 137 193 194 196 147 + 5 -299 300 296 301 219 + -0.920672551128 -0.991448818601 0.035447064493 -0.125589592373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 125 4 191 192 193 194 + 4 291 298 300 -295 + 0.559759334889 0.114584803764 0.938131903757 0.326770338159 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 126 4 146 195 196 147 + 4 293 -297 301 -218 + -0.700448063620 0.067046996680 -0.512940752565 -0.855801661949 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 127 6 198 199 200 197 207 208 + 6 302 303 304 305 306 307 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 128 5 210 207 197 211 212 + 5 308 -305 309 310 311 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 129 5 197 200 201 214 211 + 5 -304 312 313 314 -309 + -0.195360512620 -0.036832960515 -0.098758478156 -0.994429532954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 130 6 210 209 206 205 213 212 + 6 315 316 317 318 319 311 + -0.355429324635 -0.902525593134 -0.048068241960 -0.427945087427 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 131 4 199 198 202 203 + 4 -302 320 321 322 + 0.417216606951 -0.087269275173 0.926386477276 0.366322492253 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 132 5 198 202 206 209 208 + 5 320 323 -316 324 307 + -0.509588279086 -0.064979702605 -0.585273150846 -0.808228295192 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 133 5 199 200 201 204 203 + 5 303 312 325 326 322 + -0.049672647429 0.168473334222 -0.807607381964 0.565143390879 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 134 5 205 204 201 214 213 + 5 327 -325 313 328 -318 + -0.119240965022 -0.573308487292 -0.584455052475 0.574220924414 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 135 5 202 203 204 205 206 + 5 321 -326 -327 -317 -323 + -0.401053260854 -0.445384859035 -0.866133661818 -0.226814477511 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 136 4 207 208 209 210 + 4 306 -324 -315 308 + -0.458297161120 -0.088710861808 0.093331474175 -0.991675157965 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 137 4 211 212 213 214 + 4 310 -319 -328 314 + -0.069907548540 -0.836221139980 0.120017367850 0.535098155917 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 138 6 178 177 215 221 224 225 + 6 -263 329 330 331 332 333 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 139 4 216 215 177 176 + 4 334 -329 -273 335 + -0.247876509228 -0.975628210078 0.112931769124 0.188138276869 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 140 4 219 218 179 175 + 4 336 337 269 338 + 0.099747874638 0.070299308856 -0.746949633210 0.661153728433 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 141 5 217 216 215 221 223 + 5 339 334 330 340 341 + 0.615696957770 0.910154465492 0.403162889181 -0.095281339891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 142 6 216 217 220 219 175 176 + 6 -339 342 343 -338 -277 335 + 0.724727452572 0.827713386216 -0.244515085045 0.505077146052 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 143 5 178 179 218 226 225 + 5 -286 -337 344 345 333 + -0.780874226806 -0.702689420713 -0.695442919726 0.150288800050 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 144 4 220 217 223 222 + 4 -342 -341 346 347 + 1.053527838504 0.778067672180 0.416070547828 0.470633611994 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 145 6 218 219 220 222 227 226 + 6 -336 -343 -347 348 349 -344 + 0.655914168024 -0.280213785359 0.033434202118 0.959355194192 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 146 5 222 223 221 224 227 + 5 -346 -340 331 350 -348 + 0.548419527429 -0.160364526365 0.978107217256 0.132625375533 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 147 4 224 225 226 227 + 4 332 -345 -349 -350 + -0.310915861014 -0.923158214825 0.370727377330 0.101686390925 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 148 5 103 229 228 231 104 + 5 351 352 353 354 175 + -0.383565705446 -0.929594051773 -0.243459797603 -0.276734937910 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 149 5 110 105 230 233 232 + 5 169 355 356 357 358 + -0.320147059674 0.014563576228 -0.997940874856 0.062465290679 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 150 6 233 230 231 228 237 238 + 6 -356 359 -353 360 361 362 + -0.634609579760 -0.114323082166 -0.409411886130 -0.905158627192 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 151 6 234 232 110 109 235 236 + 6 363 358 178 364 365 366 + -0.507131514134 -0.546338024545 0.313846924769 -0.776540321393 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 152 6 62 229 103 109 235 61 + 6 367 -351 171 364 368 102 + 0.445119294451 -0.674535015636 0.263180683309 0.689737950684 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 153 5 228 229 62 67 237 + 5 -352 -367 -99 369 -360 + 0.070908301073 -0.633476518061 0.685669435088 -0.358559516470 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 154 4 230 231 104 105 + 4 359 354 -163 355 + 0.501643615547 0.570059790324 0.793487900826 0.213093375538 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 155 5 234 232 233 238 239 + 5 363 -357 -362 370 371 + -0.152622064932 0.740871710418 -0.599184508520 -0.303458454245 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 156 5 57 236 234 239 66 + 5 372 366 -371 373 104 + 0.563066922669 0.937040862387 0.299275475181 0.179968364367 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 157 4 235 236 57 61 + 4 365 -372 -88 -368 + 0.868751853532 0.066085724654 0.561759689932 0.824656733292 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 158 5 237 238 239 66 67 + 5 361 370 373 -103 369 + 0.061471827351 -0.471053308687 -0.402721156274 0.784808543954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 159 5 215 242 243 245 221 + 5 374 375 376 377 -330 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 160 4 216 215 242 241 + 4 334 374 378 379 + -0.760476731580 -0.039456998604 -0.988049469039 -0.149001315407 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 161 5 244 240 217 223 246 + 5 380 381 -341 382 383 + -0.954310175629 -0.010217996666 -0.132868898197 -0.991080949487 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 162 4 217 216 241 240 + 4 339 -379 384 381 + 0.155923624725 -0.049916273233 -0.725578608733 0.686326488062 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 163 5 240 241 242 243 244 + 5 -384 -378 375 385 380 + 0.150701570704 0.869449913913 -0.489764766865 0.064709507301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 164 4 243 244 246 245 + 4 385 -383 386 -376 + -0.723346330922 -0.739742351613 -0.668865426163 -0.073486698890 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 165 4 245 221 223 246 + 4 377 340 382 386 + 0.265008704274 -0.581602105917 0.793984493103 0.176996087823 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 166 7 247 249 251 141 140 131 130 + 7 387 388 389 -205 390 -185 391 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 167 5 250 249 247 254 255 + 5 392 -387 393 394 395 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 168 5 247 130 133 256 254 + 5 -391 202 396 397 -393 + -0.225288467073 -0.076184169631 0.041584288038 -0.996226239007 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 169 6 133 132 248 156 165 256 + 6 -195 398 399 244 400 -396 + -0.903198387740 -0.418101648079 -0.769525270046 -0.482723389359 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 170 5 140 144 248 132 131 + 5 -223 401 -398 201 -390 + -0.522897924951 0.060441090568 -0.981549871998 -0.181402104043 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 171 5 143 157 158 252 142 + 5 402 240 403 404 209 + 0.404024264605 0.468386137340 0.595592814849 -0.652597598255 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 172 6 158 252 253 250 255 166 + 6 403 405 406 -395 407 -247 + -0.335717026237 -0.868547527431 0.084345984635 0.488375826050 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 173 5 144 143 157 156 248 + 5 -221 402 -229 -399 -401 + -0.758184055271 -0.367241063588 -0.925493790481 0.092710544141 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 174 4 249 250 253 251 + 4 -392 -406 408 -388 + 0.720737767879 -0.096933542085 0.287220582054 0.952947126374 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 175 5 251 141 142 252 253 + 5 389 224 -404 405 408 + -0.341670974683 0.115635333736 0.167069888168 -0.979140501695 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 176 5 254 255 166 165 256 + 5 394 407 253 400 397 + 0.606361408585 0.852550749871 -0.222670534011 0.472837236454 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 177 6 75 262 243 242 172 82 + 6 409 410 -375 411 -261 -111 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 178 4 241 242 172 173 + 4 -378 411 271 412 + -0.594651385030 -0.987758894529 -0.011230847011 -0.155583528547 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 179 5 259 258 257 261 260 + 5 413 414 415 416 417 + -0.819720627745 0.305944096230 -0.314217193745 -0.898702267237 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 180 6 258 257 240 241 173 174 + 6 414 418 -384 -412 -276 419 + -0.010121012293 -0.847101994145 -0.148892451522 0.510146301952 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 181 4 240 257 261 244 + 4 -418 415 420 380 + 0.393641814618 -0.726884489449 0.485080133657 0.486144220299 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 182 5 73 259 258 174 83 + 5 421 413 -419 -284 117 + 0.313941428958 -0.153041570681 -0.503948058454 0.850067427928 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 183 5 73 259 260 263 74 + 5 421 -417 422 423 -114 + -0.891928804322 -0.509002388041 -0.038581883646 -0.859899998385 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 184 6 260 261 244 243 262 263 + 6 -416 420 -385 -410 424 -422 + -0.656459545213 -0.266509408908 -0.963053659395 -0.038734791710 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 185 4 75 262 263 74 + 4 409 424 423 115 + 0.271205150798 0.998981550498 0.044221026485 -0.008964517885 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 186 5 265 264 266 116 115 + 5 425 426 427 -156 428 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 187 5 267 264 265 20 19 + 5 429 -425 430 -5 431 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 188 5 266 264 267 269 270 + 5 -426 -429 432 433 434 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 189 5 119 118 268 18 17 + 5 161 435 436 -10 437 + -0.281924734067 0.506463931130 0.516429370694 -0.690503433408 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 190 5 119 115 265 20 17 + 5 -179 428 430 -28 437 + 0.688041345799 -0.029349205278 -0.021494953838 0.999338076483 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 191 4 266 116 117 270 + 4 427 -177 438 434 + -0.342154351114 0.101196593822 -0.994149288306 -0.037768266580 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 192 5 268 269 267 19 18 + 5 439 -432 -431 -30 -436 + 0.225631564679 0.988817914429 0.119889841874 -0.088687980695 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 193 5 118 268 269 270 117 + 5 435 439 433 -438 181 + -0.384734247709 -0.516269811336 -0.855755904176 -0.033872029328 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 194 6 271 272 275 276 281 279 + 6 440 441 442 443 444 445 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 195 5 279 271 273 282 283 + 5 445 446 447 448 449 + -0.474986725086 -0.876536963099 -0.427197653220 0.221777179630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 196 4 271 272 274 273 + 4 440 450 451 -446 + -0.334029540881 -0.963264498376 0.112661595943 0.243780374452 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 197 5 276 201 204 280 281 + 5 452 325 453 454 -443 + -0.097718892836 -0.973471037740 0.218613829439 0.067543558241 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 198 6 274 272 275 214 213 277 + 6 -450 441 455 328 456 457 + 0.054478067542 -0.426863792992 0.904249321278 0.010975755105 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 199 6 273 274 277 278 285 282 + 6 -451 -457 458 459 460 -447 + -0.441620420758 -0.901825808117 -0.045014829909 -0.429748620594 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 200 6 280 204 205 278 285 284 + 6 -453 -327 461 459 462 463 + 0.335694072441 -0.133994135832 0.349170435629 0.927429554438 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 201 4 275 276 201 214 + 4 442 452 313 -455 + 0.287596547445 0.667914990883 0.729385449381 0.147940633989 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 202 4 213 277 278 205 + 4 456 458 -461 318 + 0.149278029482 0.126301817198 -0.510804152460 0.850368725202 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 203 5 280 281 279 283 284 + 5 454 444 -449 464 463 + -0.316533954081 0.236597354013 -0.971448169815 0.017610946521 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 204 4 282 283 284 285 + 4 448 464 -462 460 + 0.536915437818 0.337495494901 0.777416324817 0.530773632380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 205 7 287 288 293 294 298 306 307 + 7 465 466 467 468 469 470 471 + -1.030678174349 -0.678333261493 -0.267669325023 -0.684263924808 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 206 7 292 234 236 296 286 303 304 + 7 472 -366 473 474 475 476 477 + 0.165995471488 0.557809413661 0.640154192268 -0.528253034211 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 207 5 286 291 290 295 296 + 5 478 479 480 481 474 + 0.598168996203 -0.404194098896 0.158979976544 0.900751074091 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 208 5 289 288 293 302 301 + 5 482 466 483 484 485 + 1.036218567803 0.120246795985 0.736581804495 0.665573401919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 209 5 287 291 286 303 307 + 5 486 -478 475 487 471 + 0.725010167231 -0.085397278879 0.003533238543 0.996340715311 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 210 4 294 154 161 298 + 4 488 242 489 -468 + -0.609186470938 -0.984547946158 -0.089872005869 0.150294258965 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 211 6 297 239 234 292 299 300 + 6 490 371 -472 491 492 493 + 0.697113051422 0.224285375644 0.857847496483 0.462378354867 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 212 6 289 290 295 58 59 301 + 6 494 480 495 90 496 485 + -0.715440265083 0.407673128448 -0.586604531818 -0.699784069261 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 213 5 287 288 289 290 291 + 5 465 -482 494 -479 -486 + 0.899225238430 -0.054094271158 0.357683208845 0.932274922938 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 214 4 292 299 305 304 + 4 491 497 498 477 + -0.157708022597 0.058364829898 -0.963153793793 0.262542027366 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 215 7 293 294 154 155 71 68 302 + 7 467 488 -246 499 -107 500 -483 + 0.618172162474 0.415736695794 0.853149799803 -0.315116516333 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 216 5 295 58 57 236 296 + 5 495 -83 372 473 -481 + 0.277732041270 -0.778667871854 0.237565198696 0.580722930243 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 217 6 239 66 71 155 153 297 + 6 373 -108 -499 -250 501 490 + -0.555497785717 -0.367110857932 0.127976753503 -0.921331410813 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 218 4 297 153 160 300 + 4 -501 235 502 493 + -0.377242350863 0.378945381223 -0.542119755958 -0.750004378820 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 219 7 299 300 160 161 298 306 305 + 7 492 -502 252 489 469 503 -497 + 0.117600217130 0.721477879266 -0.691748768072 -0.030875744526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 220 4 301 302 68 59 + 4 -484 -500 -93 496 + 0.792054111300 -0.170662431632 0.950379357268 0.260102694543 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 221 5 303 304 305 306 307 + 5 476 -498 -503 470 -487 + 0.495466557031 0.372690480633 -0.550599198501 0.746955372332 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 222 6 308 312 313 310 255 254 + 6 504 505 506 507 -394 508 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 223 6 312 308 309 30 35 316 + 6 -504 509 510 -36 511 512 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 224 5 313 310 311 318 317 + 5 506 513 514 515 516 + -0.180323473758 0.604253631516 -0.098819804239 -0.790640370263 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 225 5 309 30 31 315 314 + 5 510 47 517 518 519 + 0.162526691873 -0.507888194410 0.832998221065 0.219461945863 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 226 5 308 309 314 256 254 + 5 509 -519 520 397 508 + -0.539916853117 -0.947519943568 0.230492345287 0.221538338226 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 227 6 311 167 163 32 36 318 + 6 521 251 522 -53 523 -514 + 0.547138069724 0.427547646283 0.759078961091 -0.490919688937 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 228 5 167 311 310 255 166 + 5 -521 -513 507 407 248 + -0.390095513348 -0.199925669729 0.177479123390 -0.963603075620 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 229 5 163 32 31 315 164 + 5 522 -41 517 524 238 + -0.360969860803 0.232051372408 -0.962832929116 0.138220516474 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 230 4 312 313 317 316 + 4 505 -516 525 512 + 0.126311664189 0.989745265072 -0.122062192968 0.074196572122 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 231 5 314 315 164 165 256 + 5 -518 524 -245 400 -520 + 0.043376219910 -0.575600785510 0.807043366139 -0.131775342501 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 232 5 35 316 317 318 36 + 5 511 -525 -515 -523 54 + 0.671976886289 0.846408127080 0.528323857966 0.066836992136 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 233 5 106 208 207 265 115 + 5 526 -306 527 -428 -155 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 234 5 207 210 3 20 265 + 5 -308 528 -6 -430 -527 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 235 5 106 108 319 209 208 + 5 165 529 530 324 -526 + -0.045456378244 -0.051371153520 0.880766269837 -0.470756606436 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 236 5 108 107 5 4 319 + 5 167 531 -13 532 -529 + 0.229989959525 0.596266718962 0.791290764020 -0.135369592729 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 237 4 107 5 17 119 + 4 531 9 437 -160 + -0.607444314901 -0.585860482038 -0.609106992991 -0.534561658442 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 238 5 3 4 319 209 210 + 5 -23 532 530 -315 528 + 0.211883100456 -0.653913518332 -0.143547731843 0.742826466427 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 239 5 321 324 145 141 251 + 5 533 534 -206 -389 535 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 240 5 321 323 330 253 251 + 5 536 537 538 408 535 + -0.775552527161 -0.051447197280 -0.986828125992 0.153373516758 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 241 5 328 327 149 142 252 + 5 539 540 213 -404 541 + 1.149442975363 0.515596397679 0.623648397122 0.587556832543 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 242 5 320 326 327 328 329 + 5 542 543 -539 544 545 + 0.735969936657 0.879481433029 0.407873595976 -0.245258106214 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 243 5 323 322 320 329 330 + 5 546 547 -545 548 -537 + -0.033168101451 0.799897290413 -0.524118497757 -0.292342479122 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 244 4 320 322 325 326 + 4 -547 549 550 -542 + -0.204186216347 0.607546982459 -0.035873190511 -0.793473237297 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 245 5 322 323 321 324 325 + 5 -546 -536 533 551 -549 + -1.134573753694 -0.046461655750 -0.555729045781 -0.830064179579 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 246 6 145 324 325 326 327 149 + 6 -534 551 550 543 540 225 + 0.139128463976 0.135868267223 -0.729121087360 0.670762442247 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 247 5 328 329 330 253 252 + 5 544 548 538 -405 541 + -0.725018198460 -0.776397657273 0.271487629472 -0.568771610424 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 248 5 218 219 331 332 333 + 5 -336 552 553 554 555 + -0.721016134984 0.403913608113 -0.675393869544 -0.617006416631 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 249 5 288 331 332 334 293 + 5 556 553 557 558 -466 + 0.182191195327 -0.688338497866 0.719937378555 0.088770959866 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 250 5 218 333 320 326 226 + 5 -555 559 542 560 -344 + -1.208801836407 -0.277661950952 -0.564012974931 -0.777684515149 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 251 5 331 219 220 287 288 + 5 -552 -343 561 465 556 + -0.103219999314 0.823654651793 -0.198180822231 -0.531335464918 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 252 4 220 287 307 222 + 4 561 -471 562 347 + -0.205912188226 -0.823718894986 -0.279492236595 0.493326739319 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 253 5 327 328 294 298 336 + 5 -539 563 468 564 565 + 0.318261657161 -0.476915607931 0.163020412372 0.863698933693 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 254 5 320 333 332 334 329 + 5 -559 -554 557 566 545 + -0.807624557062 -0.053490354958 -0.996745478660 -0.060309474352 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 255 5 307 222 227 335 306 + 5 562 348 567 568 470 + 0.117955571045 0.018538799705 0.891957641367 -0.451738728595 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 256 5 334 293 294 328 329 + 5 558 467 -563 544 -566 + 0.158081716771 0.095684909817 -0.609815467572 0.786746143011 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 257 6 327 326 226 227 335 336 + 6 -543 560 -349 567 569 565 + 0.705879382325 0.814730190251 -0.372671143656 0.444219468034 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 258 4 298 306 335 336 + 4 469 -568 569 -564 + 0.578461355059 -0.234867133334 0.840553438686 0.488167334418 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 259 4 242 215 177 172 + 4 -374 -329 -262 -411 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 260 4 241 216 176 173 + 4 379 -335 -272 412 + 0.741579739027 -0.035042382075 -0.212883183282 0.976449067660 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 261 7 344 245 243 262 339 270 269 + 7 570 -376 -410 571 572 -433 573 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 262 8 340 114 112 342 338 337 345 346 + 8 574 180 575 576 577 578 579 580 + -0.619129744839 0.332121278675 0.004717332373 -0.943224895254 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 263 5 339 341 113 117 270 + 5 581 582 176 438 -572 + -0.139787468062 -0.999637405877 0.026898889707 -0.001227396920 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 264 4 337 261 260 338 + 4 583 416 584 577 + -0.228061962685 -0.425055130657 -0.796968716744 0.429149158724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 265 5 337 261 244 246 345 + 5 583 420 -383 585 -578 + 0.381012946717 0.733622731372 0.619297381038 -0.279764976103 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 266 5 338 260 263 343 342 + 5 -584 422 586 587 576 + 0.039448057467 0.117550724799 -0.819895677498 0.560315005261 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 267 4 340 114 118 268 + 4 574 -162 435 588 + 0.812417297640 0.177382169101 0.627326325565 0.758285729352 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 268 5 263 262 339 341 343 + 5 -424 571 581 589 -586 + -0.312190329190 0.643461857341 -0.764429494326 -0.040054791874 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 269 5 340 346 344 269 268 + 5 -580 590 -573 -439 588 + -0.209370620716 0.459317503793 -0.877866433651 -0.135565317756 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 270 5 341 113 112 342 343 + 5 582 -173 575 -587 -589 + 0.438963027402 0.630512123511 -0.403249858623 0.663207368494 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 271 5 344 245 246 345 346 + 5 570 -386 585 579 590 + -0.282205710016 -0.978662940931 0.183326869131 0.092790662796 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 272 4 352 353 305 299 + 4 591 592 -497 593 + -0.349086459480 -0.906986767771 -0.222180575185 0.357785962692 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 273 5 194 351 355 361 196 + 5 594 595 596 597 -296 + -0.892202503024 -0.753657988403 0.351660864616 -0.555278554254 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 274 5 137 138 348 349 193 + 5 216 598 599 600 299 + -0.389548512243 -0.805142922613 -0.002597169007 0.593075146064 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 275 6 298 161 162 139 148 336 + 6 -489 243 601 211 602 -564 + -0.493370543348 -0.112651200894 -0.986444162247 0.119321505630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 276 6 352 353 354 350 359 358 + 6 591 603 604 605 606 607 + 0.346182790194 0.488886361632 0.839773358622 -0.236158488220 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 277 6 347 159 160 300 357 356 + 6 608 -236 502 609 610 611 + 0.608409637220 0.431429795253 -0.194513640578 0.880927224802 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 278 6 139 138 348 347 159 162 + 6 -220 598 612 608 -231 601 + 0.000472309471 0.230624155499 0.500964627498 -0.834174406762 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 279 5 347 348 349 360 356 + 5 -612 599 613 614 611 + -0.241528631790 0.308071160245 -0.243506700402 -0.919672032349 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 280 4 351 350 354 355 + 4 615 -604 616 -595 + -0.264344296628 0.030241864428 0.772584488674 -0.634191325623 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 281 7 350 351 194 193 349 360 359 + 7 -615 -594 -300 -600 613 617 -605 + -0.174461513154 -0.586227636690 0.789776483048 0.180527739713 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 282 5 300 299 352 358 357 + 5 -492 593 -607 618 -609 + 0.725010012371 0.927978652967 0.042160458892 0.370240618170 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 283 7 306 305 353 354 355 361 335 + 7 503 -592 603 616 596 619 568 + 0.498731353454 -0.267861624107 0.015688952097 0.963329646130 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 284 5 356 357 358 359 360 + 5 -610 -618 -606 -617 614 + 0.687102671202 0.295533488121 0.699465542530 0.650698019217 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 285 6 361 196 147 148 336 335 + 6 597 301 -226 602 -569 -619 + 1.073923254283 0.470307000411 0.409708755938 0.781632944976 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 286 6 366 367 364 362 370 371 + 6 620 621 622 623 624 625 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 287 6 363 365 368 369 372 373 + 6 626 627 628 629 630 631 + -0.782644882681 -0.981607547746 0.132114485382 0.137812862102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 288 4 363 362 370 373 + 4 632 623 633 631 + -0.372498103872 0.125563200339 -0.546994810659 -0.827665729527 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 289 4 369 366 371 372 + 4 634 -625 635 -629 + -0.277517712354 -0.117769681888 -0.988491759868 0.094943892380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 290 4 362 363 365 364 + 4 -632 626 636 622 + -0.225314974079 0.069663472972 -0.987215453896 0.143361947962 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 291 4 364 365 368 367 + 4 -636 627 637 621 + 0.231948538172 0.119377065215 -0.372977515119 0.920128735295 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 292 4 366 367 368 369 + 4 620 -637 628 634 + 0.551799249664 0.233559705978 0.552104585259 0.800393897203 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 293 4 370 371 372 373 + 4 624 635 630 -633 + -0.059223703158 0.147827436228 0.560369723153 -0.814943447407 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 294 5 150 375 376 347 159 + 5 638 639 640 608 232 + -0.830752048454 -0.904914191053 -0.421632370799 -0.057934883497 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 295 5 374 375 150 152 380 + 5 641 -638 233 642 643 + -0.029358107797 -0.097264185936 -0.513563870851 0.852520867012 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 296 5 374 378 377 381 380 + 5 644 645 646 647 643 + -0.701281843425 -0.633872182395 -0.377122262373 -0.675266507099 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 297 5 374 375 376 379 378 + 5 641 639 648 649 -644 + -0.014161017418 0.512527532605 -0.309360584164 -0.801006590040 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 298 5 377 357 300 297 381 + 5 650 -609 493 651 -646 + -0.323115961678 -0.817941425171 -0.286454816723 0.498914284186 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 299 4 376 347 356 379 + 4 640 -611 652 -648 + 0.379114644866 0.848948826077 -0.509358218026 -0.140854877206 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 300 5 377 378 379 356 357 + 5 -645 -649 -652 -610 -650 + -0.309231956038 0.009753704195 -0.999284520738 -0.036541919329 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 301 5 152 380 381 297 153 + 5 642 -647 -651 -501 -234 + -0.159730539463 -0.733238153418 0.665252423035 -0.140716111439 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 302 4 139 162 157 143 + 4 -601 -230 -402 210 + -0.552732056408 0.143412006042 -0.520296167262 -0.841858001599 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 303 5 328 294 154 158 252 + 5 563 488 -241 403 541 + -0.080111510376 0.504926205076 -0.840473736895 0.196604743120 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 304 4 148 149 327 336 + 4 212 -540 -565 -602 + 0.786125009848 0.411716372303 -0.220690137704 0.884186344555 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 305 6 383 384 382 136 144 248 + 6 653 654 655 -222 401 656 + -0.483542659310 -0.841929360881 0.074705133634 0.534391330669 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 306 5 383 385 151 156 248 + 5 657 658 228 -399 656 + -0.120466768915 -0.027664169985 0.380197160202 -0.924491651165 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 307 4 136 382 348 138 + 4 -655 659 -598 217 + -0.475293862296 -0.688117540064 0.638715803379 -0.344291117472 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 308 5 376 384 382 348 347 + 5 660 654 659 612 -640 + -0.333257233865 0.133175023164 -0.967794612401 -0.213630525472 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 309 5 383 384 376 375 385 + 5 653 -660 -639 661 -657 + -0.674893539112 -0.273650652724 -0.606663669520 -0.746374244162 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 310 4 150 151 385 375 + 4 227 -658 -661 -638 + -0.637402372096 -0.639419439981 0.095719284095 -0.762876528953 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 311 7 386 95 99 224 221 245 344 + 7 662 -142 663 -331 -377 -570 664 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 312 4 386 387 94 95 + 4 665 666 148 -662 + 0.092703544511 0.238495000678 -0.969281198606 0.060117324292 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 313 5 353 388 390 304 305 + 5 667 668 669 -498 -592 + -0.918036546176 -0.497720265329 -0.220069309139 -0.838954132629 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 314 6 355 354 389 387 94 93 + 6 -616 670 671 666 -150 672 + 0.294755598115 -0.279432014865 0.855792724942 0.435357968809 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 315 6 345 246 223 222 307 303 + 6 -585 -382 346 -562 -487 673 + -0.025307615947 -0.607880469680 0.783578099974 -0.128400528906 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 316 7 390 388 389 387 386 344 346 + 7 -668 674 671 -665 -664 -590 675 + -0.566899497959 -0.689601994531 -0.723404385162 -0.033692501636 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 317 6 224 227 335 361 98 99 + 6 350 567 -619 676 -151 663 + -0.851047159478 -0.865103786634 -0.501460771056 -0.011512317020 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 318 4 355 361 98 93 + 4 596 676 -145 672 + 0.172600970125 0.809000833224 -0.272302389185 -0.520930955778 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 319 4 388 353 354 389 + 4 -667 603 670 -674 + -0.743826010423 -0.118741156811 -0.659957786849 -0.741859998420 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 320 5 390 346 345 303 304 + 5 -675 -579 -673 476 -669 + -0.704233984289 -0.835651434296 0.199910164564 -0.511588317363 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 321 6 212 211 393 391 395 396 + 6 -310 677 678 679 680 681 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 322 5 272 392 391 393 275 + 5 682 683 -678 684 -441 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 323 4 272 392 394 274 + 4 682 685 686 -450 + -0.379614691047 -0.474871322196 -0.851281629349 0.223196807524 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 324 5 391 392 394 398 395 + 5 -683 685 687 688 -679 + 0.481301566548 0.977700593213 0.157689991289 -0.138691804652 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 325 4 275 393 211 214 + 4 -684 -677 -314 -455 + -0.227027819134 -0.989318588921 0.063897028213 -0.131018698670 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 326 5 277 274 394 398 397 + 5 457 -686 687 689 690 + -0.445195784742 -0.461724054420 -0.792582381158 -0.398276369684 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 327 5 277 213 212 396 397 + 5 -456 319 -681 691 690 + 0.212234213626 -0.211786965589 0.176256306648 0.961290796572 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 328 4 395 396 397 398 + 4 680 691 -689 688 + -0.491008322017 -0.739571467193 0.010941379045 -0.672989101798 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 329 5 401 399 405 409 410 + 5 692 693 694 695 696 + 0.094549435815 -0.113064509266 0.186150965791 0.975993972665 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 330 6 376 384 407 411 414 379 + 6 660 697 698 699 700 -648 + -0.535463113627 -0.539421731809 0.321402818945 -0.778282996876 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 331 5 400 399 401 403 402 + 5 701 -692 702 703 704 + -0.193935725248 -0.076951829598 -0.641030575825 0.763647966526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 332 5 404 400 399 405 406 + 5 705 701 693 706 707 + -0.488472045447 -0.676197611395 0.130146129715 -0.725133625798 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 333 6 400 402 385 375 374 404 + 6 -704 708 -661 -641 709 705 + -0.046792079354 0.462154511912 -0.886539839608 0.021455067183 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 334 6 401 403 408 407 411 410 + 6 702 710 711 698 712 696 + 0.630299413599 0.874318446656 0.076691190873 -0.479255375640 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 335 5 385 402 403 408 383 + 5 -708 -703 710 713 657 + -0.601575749852 -0.262307303890 -0.964744895080 0.021498040436 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 336 5 374 404 406 412 378 + 5 709 -707 714 715 -644 + -0.590909894134 -0.991637573698 -0.054966752734 0.116762915874 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 337 5 409 405 406 412 413 + 5 -694 706 714 716 717 + 0.546400017019 0.423114357594 0.769562347945 0.478276105427 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 338 4 384 407 408 383 + 4 697 -711 713 653 + 0.930120013052 0.802241363397 0.500829235312 0.324929025961 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 339 5 409 410 411 414 413 + 5 695 -712 699 718 717 + 0.174770952263 0.560726390203 -0.756450346570 -0.336702819270 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 340 5 379 378 412 413 414 + 5 649 -715 716 -718 700 + -0.300801569571 -0.337810377053 -0.793266180759 0.506569753953 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 341 7 415 371 370 192 191 90 89 + 7 719 -624 720 -291 721 -132 722 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 342 6 416 417 418 415 89 92 + 6 723 724 725 -722 -139 726 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 343 5 372 371 415 418 419 + 5 -635 -719 -725 727 728 + -0.335884196116 0.083977788076 -0.186233517588 -0.978910010183 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 344 5 351 194 191 90 91 + 5 -594 -295 721 143 729 + -0.657382366928 -0.008699192350 -0.638924073244 -0.769220613791 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 345 5 373 370 192 193 349 + 5 -633 720 298 -600 730 + -0.166874537793 -0.079399153402 -0.931801033864 0.354178779331 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 346 5 349 373 372 419 360 + 5 730 -630 -728 731 -613 + -0.429665644015 -0.323178247082 0.607066526497 -0.725965600439 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 347 5 416 350 351 91 92 + 5 732 -615 -729 -149 726 + -0.079873188109 0.613207092875 -0.045468900730 -0.788612477910 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 348 4 416 350 359 417 + 4 732 605 733 -723 + -0.433551342514 -0.931358067606 0.087172388085 0.353515381081 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 349 5 417 418 419 360 359 + 5 724 727 731 617 733 + 0.894598697847 0.841452555338 0.046486660201 0.538327583854 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 350 5 321 421 420 423 324 + 5 734 735 736 737 -533 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 351 5 420 421 422 188 187 + 5 -735 738 739 -258 740 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 352 5 424 423 420 187 190 + 5 741 -736 -740 -265 742 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 353 5 322 325 424 190 189 + 5 549 743 -742 287 744 + -1.151988700383 -0.763602281600 -0.638866902994 -0.093598268118 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 354 4 422 421 321 323 + 4 -738 -734 536 745 + -0.770644253491 -0.019650820621 -0.010371258873 -0.999753110642 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 355 5 422 323 322 189 188 + 5 -745 546 -744 -290 -739 + -1.151001720500 -0.803789872778 -0.084172909604 -0.588928486073 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 356 4 423 324 325 424 + 4 737 551 743 741 + 0.736695579693 -0.073122777915 0.993478055674 0.087489497904 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 357 6 257 240 217 220 287 291 + 6 418 381 342 561 486 746 + 0.647287778729 0.069528481778 0.996934125669 0.035890657529 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 358 4 258 257 291 290 + 4 414 -746 479 747 + 0.930060825553 0.766606739476 0.546323250149 0.337409266821 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 359 4 331 219 175 168 + 4 -552 -338 270 748 + -0.711567545299 -0.857945185218 -0.500016208045 0.117956987301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 360 5 258 290 289 169 174 + 5 -747 -494 749 275 419 + 0.401020193364 0.729246161939 -0.464499690708 0.502434147556 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 361 5 289 288 331 168 169 + 5 482 556 -748 274 -749 + -0.083224874088 -0.339385261123 -0.645010302771 0.684674633568 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 362 5 3 210 212 396 13 + 5 -528 -311 -681 750 -1 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 363 5 2 425 426 319 4 + 5 751 752 753 -532 -12 + 0.484218086971 -0.204764155218 0.607138923286 0.767759056325 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 364 5 2 425 427 428 16 + 5 751 754 755 756 25 + -0.549654447423 -0.559368113673 -0.752317000151 -0.348032246624 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 365 4 206 426 319 209 + 4 757 753 530 316 + -0.189051348805 0.733019523136 -0.535232649290 -0.419771830684 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 366 6 427 425 426 206 205 278 + 6 -754 752 -757 317 461 758 + -0.148117344909 0.281928461770 -0.952429811117 0.115731574515 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 367 5 427 278 277 397 428 + 5 -758 -458 -690 759 -755 + -0.215727636709 -0.627365187558 -0.572448836154 0.527934893170 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 368 5 396 13 16 428 397 + 5 750 24 -756 -759 -691 + -0.346526684251 -0.980953047708 0.164032883374 0.104040046927 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 369 6 151 385 402 429 315 164 + 6 -658 -708 760 761 524 -237 + 0.821418424900 0.942067345236 0.335380045990 -0.005416806371 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 370 5 402 429 23 22 400 + 5 760 762 -39 763 -704 + -0.148102095781 -0.577703833122 0.300525021632 0.758909080569 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 371 4 429 23 31 315 + 4 762 40 517 -761 + 0.468921399975 0.495173002224 0.461905502560 -0.735830826055 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 372 4 400 22 26 404 + 4 -763 -38 764 705 + 0.503691163238 0.193578168690 0.725152302567 0.660818909149 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 373 5 374 404 26 28 380 + 5 709 -764 -37 765 643 + 0.634048545051 0.632969654553 0.762311483955 -0.135020805231 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 374 5 28 380 152 163 32 + 5 765 -642 -239 522 42 + -0.187330090103 -0.835091868078 0.359039782930 0.416787723120 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 375 6 433 434 431 38 42 436 + 6 766 767 768 -58 769 770 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 376 5 430 39 38 431 432 + 5 771 -59 -768 772 773 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 377 6 78 432 430 55 54 77 + 6 774 773 775 100 776 -118 + -0.651549573841 -0.914901585607 -0.278788028668 -0.291945754766 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 378 4 430 39 40 55 + 4 771 69 76 -775 + -0.178108156976 -0.763180752115 -0.398981465817 0.508300038891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 379 5 78 432 431 434 79 + 5 774 -772 -767 777 129 + 1.074975788222 0.088619065984 0.349529441273 0.932724949182 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 380 5 77 54 60 435 80 + 5 -776 86 778 779 126 + 0.245427749702 -0.672901284345 0.720859849558 -0.166026921981 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 381 5 433 435 60 63 436 + 5 780 -778 -101 781 770 + 0.706659597841 0.007795142317 0.996878244147 0.078568454886 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 382 5 433 434 79 80 435 + 5 766 777 128 -779 -780 + -0.134791959297 -0.068192026739 0.671365128205 -0.737982867090 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 383 4 42 436 63 43 + 4 769 -781 97 -72 + 0.884591264990 0.010132662742 0.524291894589 0.851478325275 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 384 4 438 437 439 440 + 4 782 783 784 785 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 385 5 437 438 441 313 312 + 5 -782 786 787 -505 788 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 386 4 439 437 312 316 + 4 -783 -788 -512 789 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 387 4 440 438 441 442 + 4 785 786 790 791 + -0.028396880380 0.151102636645 0.246663288646 -0.957248773952 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 388 5 439 440 442 317 316 + 5 784 -791 792 525 789 + 0.851680690316 -0.133379802443 0.991053452459 -0.004783583214 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 389 4 441 442 317 313 + 4 790 792 516 -787 + 0.309359761913 0.593814962688 -0.051186508678 0.802971812343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 390 5 273 443 444 394 274 + 5 793 794 795 686 451 + -0.249076744021 -0.151218231997 -0.211897150989 -0.965521954030 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 391 5 27 443 273 282 29 + 5 796 -793 447 797 48 + -0.069889983200 -0.251575948000 0.434213171332 -0.864967319747 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 392 6 443 444 406 404 26 27 + 6 794 798 707 -764 -45 796 + -0.252494092311 -0.556472151599 -0.185877649258 0.809807535159 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 393 5 377 428 427 445 381 + 5 799 -755 800 801 -646 + -0.282823861079 0.202370128830 -0.053941938659 -0.977822375593 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 394 5 406 444 394 398 412 + 5 -798 795 687 802 -714 + -0.003523975388 -0.474489910718 0.681654500909 0.556961817378 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 395 6 377 378 412 398 397 428 + 6 -645 -715 -802 689 759 -799 + -0.165711959375 -0.451741499621 0.780442289303 -0.432249292178 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 396 4 427 278 285 445 + 4 -758 459 803 -800 + 0.085882735625 0.868151378614 -0.257490957790 -0.424277727989 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 397 7 380 381 445 285 282 29 28 + 7 -647 -801 -803 460 797 51 765 + -0.291120776680 0.320292524462 -0.900774154127 -0.293289314552 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 398 4 90 191 195 97 + 4 -721 -294 804 -133 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 399 4 91 351 355 93 + 4 729 595 -672 -144 + 0.561348169434 0.780413358760 0.586058232787 -0.217923695939 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 400 5 196 195 97 98 361 + 5 297 804 -146 -676 597 + -0.692565927910 -0.014336232338 -0.815212093742 -0.578985072916 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 401 5 128 121 429 315 314 + 5 191 805 761 518 806 + -0.275214609491 -0.368266470650 0.221566635882 -0.902933016596 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 402 5 121 429 402 403 122 + 5 805 -760 -703 807 -192 + 0.585494221536 0.263099859762 0.600527883053 0.755079284227 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 403 5 126 408 383 248 132 + 5 808 713 -656 -398 -194 + -0.545927269010 -0.767698770856 0.447445831605 -0.458727397269 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 404 4 126 122 403 408 + 4 -193 -807 710 -808 + -0.017282396405 -0.515657811906 0.764038138901 0.387740561878 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 405 4 133 128 314 256 + 4 196 -806 520 -396 + 0.707446313219 0.353914917571 0.822353815181 -0.445509184841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 406 5 292 10 11 390 304 + 5 809 18 810 669 477 + 0.029814088058 -0.741921664195 0.623054035757 0.247701257014 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 407 5 114 111 8 12 340 + 5 158 811 -7 812 574 + -0.428281371588 -0.568942128052 -0.821899380580 -0.028040383915 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 408 4 337 286 296 338 + 4 813 -474 814 577 + 0.866568240661 0.139742367941 0.875568483228 0.462441241435 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 409 4 286 337 345 303 + 4 -813 578 -673 -475 + 0.988205339014 0.473809853533 0.658386940833 0.584834043841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 410 5 232 110 111 8 9 + 5 358 -168 811 14 815 + 0.742728527203 0.495319993105 0.554636393453 0.668607938547 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 411 5 338 296 236 235 342 + 5 -814 -473 -365 816 576 + 0.490390526830 -0.413873934133 0.887356470013 0.203240895913 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 412 5 232 234 292 10 9 + 5 -363 -472 809 26 815 + -0.555500443912 0.254168862276 -0.309494567447 -0.916303062404 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 413 4 109 235 342 112 + 4 364 816 -575 -172 + 0.032115403342 0.903884357247 -0.425606686119 0.043035072383 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 414 5 11 12 340 346 390 + 5 29 812 -580 675 -810 + -0.202075007391 -0.224705672654 0.845775048761 -0.483913140523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 415 4 127 446 247 130 + 4 817 818 -391 -184 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 416 4 247 446 308 254 + 4 -818 819 -508 -393 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 417 5 446 127 129 309 308 + 5 -817 -190 820 -509 -819 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 418 4 128 129 309 314 + 4 -198 820 -519 806 + 0.944097669127 0.598496681790 0.801106121696 -0.005541088947 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 419 5 21 447 271 279 34 + 5 821 822 -445 823 -34 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 420 4 443 447 271 273 + 4 824 822 446 793 + 0.250590234934 -0.174293753706 0.983700804321 0.044208766059 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 421 4 447 21 27 443 + 4 -821 44 796 824 + 0.388456475214 0.965580681654 -0.259020834557 -0.023709797154 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 422 4 282 29 33 283 + 4 797 -50 825 -448 + 0.318957584986 -0.170139029623 0.628909715703 0.758633824775 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 423 4 34 279 283 33 + 4 -823 -449 -825 -49 + 0.032349745166 -0.722038172786 0.683229884415 0.108893535536 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 424 7 50 49 448 449 310 313 441 + 7 -61 826 827 828 -506 -787 829 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 425 5 46 47 65 450 451 + 5 65 80 830 831 832 + 0.668055248019 0.721185875344 0.684676892832 -0.105396800834 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 426 4 48 49 448 56 + 4 71 826 833 79 + -0.368036427838 0.379808394148 0.052759255660 -0.923559442958 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 427 5 441 50 46 451 442 + 5 829 -68 -832 834 -790 + 0.401308124146 0.965478031055 0.163276440938 0.202960526669 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 428 4 56 448 449 69 + 4 -833 827 835 95 + -0.573902523145 -0.302571850428 0.095353643845 -0.948344851799 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 429 5 449 69 70 311 310 + 5 835 105 836 -513 -828 + 0.291310292154 0.876142619001 -0.321229370098 0.359424265954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 430 5 65 70 311 318 450 + 5 -106 836 514 837 -830 + 0.804713384744 -0.120884784860 0.964151856449 0.236216143597 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 431 5 318 450 451 442 317 + 5 837 831 834 792 -515 + -0.827893203814 -0.409532596279 -0.618190383507 -0.670912589184 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 432 5 373 363 382 348 349 + 5 631 838 659 599 730 + 0.946585577650 0.643369512379 0.399772050423 0.652884352885 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 433 5 384 382 363 365 407 + 5 654 -838 626 839 -697 + 0.673613855595 0.522093491262 0.825702640824 -0.213620072370 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 434 4 372 419 452 369 + 4 -728 840 841 629 + 0.215235559127 0.459441435450 -0.888208065290 0.000012033197 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 435 4 407 365 368 411 + 4 -839 627 842 -698 + 0.181861854596 0.380486975622 0.265867552138 -0.885744944159 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 436 6 379 356 360 419 452 414 + 6 -652 -614 -731 840 843 700 + 0.675323022101 0.719439691310 0.689939443562 -0.079938068435 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 437 5 368 369 452 414 411 + 5 628 -841 843 -699 -842 + -0.140560967148 0.240405719329 -0.562676244835 -0.790949134655 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 438 6 454 100 102 453 433 436 + 6 844 -152 845 846 -770 847 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 439 6 435 60 61 235 342 343 + 6 -778 87 -368 816 -587 848 + -0.641645920106 -0.841460221765 -0.442484021723 -0.310084804058 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 440 4 100 103 229 454 + 4 170 351 849 844 + 0.735221176670 0.061765251664 0.447683017000 0.892056595725 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 441 5 435 433 453 341 343 + 5 -780 -846 850 589 848 + 0.949735366962 0.086524832702 0.357598300595 0.929858542327 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 442 4 102 453 341 113 + 4 845 850 582 174 + -0.445049548331 0.081695194518 0.500457440526 -0.861898048156 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 443 5 436 454 229 62 63 + 5 847 -849 -367 96 781 + 0.314603411466 0.003908552794 -0.402217808786 0.915535666979 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 444 4 332 331 168 171 + 4 -553 -748 266 851 + -0.757034966428 -0.595616046638 0.246218746006 -0.764603069640 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 445 4 218 333 170 179 + 4 -555 852 268 -337 + 0.999203614869 0.880274651201 0.078896149966 0.467858884679 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 446 4 332 333 170 171 + 4 554 852 -267 851 + -0.486552952622 -0.422963021913 -0.786019961342 0.450860180617 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 447 5 422 455 456 182 188 + 5 853 854 855 -259 -739 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 448 5 332 334 457 181 171 + 5 557 856 857 -278 851 + 0.924069862770 0.767095714785 0.641497159853 -0.006749685899 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 449 5 322 320 333 170 189 + 5 547 -559 852 -288 744 + -0.242929848874 -0.219125348318 0.653555997279 -0.724464381558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 450 4 457 456 182 181 + 4 858 855 -289 -857 + 0.661769977320 0.937174422417 -0.092384781992 0.336406233628 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 451 4 455 330 323 422 + 4 859 -537 745 853 + -0.478895717188 -0.903664154360 -0.085505261069 0.419618810891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 452 6 455 456 457 334 329 330 + 6 854 -858 -856 566 548 -859 + 0.906964696601 0.159323532858 0.181826310426 0.970337675613 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 453 6 6 459 460 458 267 19 + 6 860 861 862 863 -431 -4 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 454 5 458 386 344 269 267 + 5 864 -664 -573 -432 -863 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 455 4 458 386 387 460 + 4 864 665 865 862 + -0.713899644878 -0.987932329589 0.122841520641 -0.094338077990 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 456 4 388 7 11 390 + 4 866 -19 810 -668 + -0.268479487296 0.270320208620 0.574829990629 -0.772332484546 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 457 4 12 340 268 18 + 4 812 -588 436 11 + 0.568747401433 0.703295920065 -0.382086832541 0.599486864926 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 458 5 388 7 6 459 389 + 5 866 20 860 867 -674 + 0.271511939752 -0.574031621409 0.013752142977 0.818717641306 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 459 4 459 460 387 389 + 4 861 -865 -671 -867 + -0.291595637514 -0.930926645440 0.061125865363 0.360054453373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 460 5 2 425 233 232 9 + 5 751 868 357 -815 15 + 0.119409196697 0.877504709904 0.223711059666 -0.424191991767 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 461 5 1 10 292 299 352 + 5 17 -809 491 593 869 + -0.665210485030 -0.355525483985 0.178877018227 -0.917390125621 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 462 5 233 425 427 445 238 + 5 -868 754 800 870 362 + 0.386574644634 0.847304252242 -0.257386375679 0.464572661429 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 463 4 1 352 358 15 + 4 -869 -607 871 22 + -0.447778778333 -0.536404537889 0.631469093549 -0.559925848327 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 464 5 297 381 445 238 239 + 5 651 -801 870 370 -490 + 0.065972934848 -0.159367954818 0.859163972584 -0.486250062407 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 465 6 377 357 358 15 16 428 + 6 650 -618 871 -27 -756 -799 + -0.070831796953 0.561005084800 -0.740137774439 -0.370768620135 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 466 6 447 21 25 461 462 463 + 6 -821 -33 872 873 874 875 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 467 4 399 461 462 405 + 4 876 873 877 -693 + -0.503922394253 -0.937034140643 0.341704693997 0.072145140997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 468 4 447 443 444 463 + 4 -824 794 878 875 + 0.597054896701 0.882285379469 0.470638527549 0.008478535280 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 469 5 25 461 399 400 22 + 5 872 -876 -701 -763 43 + -0.754445386954 -0.837987532350 -0.545527271616 0.013300058237 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 470 5 462 463 444 406 405 + 5 874 -878 798 -706 -877 + 0.223134840821 -0.075397845131 0.995767520436 -0.052556733097 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 471 6 456 449 448 464 183 182 + 6 879 -827 880 881 -254 -855 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 472 5 180 181 457 302 301 + 5 -279 -857 882 484 883 + 0.025879047598 -0.490285874355 0.746109242785 -0.450489466291 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 473 5 464 53 52 184 183 + 5 884 92 885 282 -881 + 0.059635354097 -0.837041494796 -0.050769529917 0.544778845791 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 474 5 52 184 180 301 59 + 5 885 -285 -883 -496 91 + 0.350350537729 0.277868762947 0.799286718620 -0.532850534406 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 475 4 464 53 56 448 + 4 884 78 -833 880 + 0.427473758456 0.947377923988 -0.081580590532 0.309547534941 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 476 6 69 449 456 457 302 68 + 6 -835 -879 -858 882 -500 94 + -0.326085808446 0.680039544187 -0.267508738370 -0.682631154606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 477 4 5 107 111 8 + 4 -531 -159 811 8 + -0.545312838603 0.012587101137 0.259539257053 -0.965650526295 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 478 5 319 108 105 230 426 + 5 -529 166 355 886 753 + -0.384328730597 -0.911114006079 0.008324174833 -0.412070353265 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 479 4 230 233 425 426 + 4 356 -868 752 -886 + -0.304100885962 -0.115919647025 0.473602224021 -0.873077069242 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 480 5 362 135 134 192 370 + 5 887 -203 -292 -720 -623 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 481 5 363 362 135 136 382 + 5 632 887 -214 -655 -838 + 0.065006912793 -0.028421576975 -0.584085575310 0.811194338415 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 482 6 135 362 364 125 131 140 + 6 -887 -622 888 -186 -390 -204 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 483 6 126 125 364 365 407 408 + 6 -200 -888 -636 839 -711 -808 + -0.457509694795 -0.064294430905 -0.508758802884 -0.858504925229 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 484 5 41 37 438 440 465 + 5 -56 889 -785 890 891 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 485 4 438 37 50 441 + 4 -889 -62 -829 -786 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 486 4 45 46 451 466 + 4 64 -832 892 893 + 0.207326063376 -0.638309634185 0.614212147809 -0.464008888267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 487 4 45 41 465 466 + 4 -67 -891 894 893 + -0.481180891281 -0.027684028575 -0.876579743248 0.480459725980 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 488 5 440 465 466 451 442 + 5 890 894 -892 834 791 + 0.754230662097 -0.227046879012 0.669903476221 0.706879796909 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 489 5 271 447 463 392 272 + 5 -822 -875 895 -682 -440 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 490 4 444 463 392 394 + 4 878 895 685 -795 + -0.201481761786 -0.718556878432 0.692810279273 -0.060744789010 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 491 6 467 237 238 445 285 284 + 6 896 361 -870 -803 462 897 + 0.445061316443 0.614189360810 0.777113786411 -0.137352073292 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 492 4 65 450 468 64 + 4 830 898 899 -81 + 0.452762835980 -0.688042972686 0.629820090153 0.360449055729 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 493 8 467 468 450 318 36 33 283 284 + 8 900 -898 -837 -523 -52 825 464 897 + -0.307490982057 -0.704602364403 0.157147396224 -0.691982806100 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 494 5 467 237 67 64 468 + 5 896 -369 -98 -899 -900 + 0.107288740072 -0.888948479504 0.149819202355 0.432810359618 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 495 5 70 71 155 167 311 + 5 109 -499 -249 -521 -836 + 0.955077070072 0.636939876618 0.575685575644 0.512731617485 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 496 6 440 439 469 470 472 465 + 6 -784 901 902 903 904 -890 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 497 7 34 279 281 469 439 316 35 + 7 -823 -444 905 -901 -789 -511 -35 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 498 5 281 469 470 471 280 + 5 905 902 906 907 454 + 0.412341786236 0.407784188958 0.910730785128 -0.065433112841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 499 4 468 466 451 450 + 4 908 -892 -831 898 + -0.649956529038 -0.080801758432 -0.370835175519 -0.925176928178 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 500 4 471 470 472 473 + 4 -906 903 909 910 + 0.042128259302 0.324741077936 0.582560836411 -0.745094694775 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 501 5 284 280 471 473 467 + 5 463 -907 -910 911 -897 + 0.071733192294 -0.138143045836 0.712505178585 -0.687933768162 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 502 6 465 472 473 467 468 466 + 6 -904 909 911 900 908 -894 + 0.355016922853 -0.225690902876 0.005973924805 0.974180644738 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 503 4 289 301 180 169 + 4 -485 883 280 -749 + 0.440020445246 0.971631012865 0.166368838663 -0.168091000239 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 504 4 457 334 293 302 + 4 -856 558 483 -882 + -0.286865046343 0.322076697685 0.223483957133 -0.919957347768 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 505 6 475 200 199 474 470 469 + 6 912 -303 913 914 -902 915 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 506 4 276 475 469 281 + 4 916 -915 -905 -443 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 507 4 199 474 476 203 + 4 913 917 918 322 + -0.363593150128 -0.099295439507 -0.033849885180 -0.994482076745 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 508 4 476 474 470 471 + 4 -917 914 906 919 + -0.481463741392 -0.099719050049 -0.412469930000 -0.905496917666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 509 4 276 475 200 201 + 4 916 912 312 -452 + 0.217865756411 -0.153052030013 0.964306942457 0.216072202836 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 510 5 204 203 476 471 280 + 5 326 -918 -919 907 -453 + -0.371435243224 -0.623200286342 -0.142326210201 -0.769002375155 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 511 5 353 352 1 7 388 + 5 -591 869 -16 -866 -667 + 0.026552144736 -0.490479983242 0.861014734514 0.134473093921 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 512 5 459 6 14 417 416 + 5 -860 -3 920 -723 921 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 513 5 350 416 459 389 354 + 5 -732 921 867 -670 604 + -0.963767973354 -0.669766513734 0.083971446686 -0.737808656240 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 514 5 358 15 14 417 359 + 5 871 -21 920 -733 606 + 0.544516306529 -0.050504998751 0.146191002640 0.987966313114 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 515 6 481 477 478 101 100 454 + 6 922 923 924 -153 -844 925 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 516 4 479 477 481 482 + 4 926 -922 927 928 + -0.381614362618 -0.087118285760 0.120105438731 -0.988931285719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 517 4 477 478 480 479 + 4 923 929 930 926 + 0.586348355822 0.088574017665 0.530267925382 0.843190708384 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 518 5 478 480 231 104 101 + 5 929 931 354 164 -924 + -0.358086771824 0.163746127090 -0.986287943301 -0.020574225685 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 519 5 479 480 231 228 482 + 5 -930 931 -353 932 928 + 0.320230472184 -0.690756168097 0.210067068504 0.691901541381 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 520 5 481 482 228 229 454 + 5 927 -932 -352 849 925 + -0.402644766500 -0.061799132670 -0.982711634592 0.174524240262 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 521 5 462 461 483 484 485 + 5 -873 933 934 935 936 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 522 4 399 461 483 401 + 4 876 933 937 692 + -0.341799113489 0.021527601667 -0.997891060553 -0.061237191593 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 523 4 401 483 484 410 + 4 -937 934 938 696 + -0.824046276436 -0.950319639933 -0.238108595097 -0.200491593087 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 524 4 405 462 485 409 + 4 -877 -936 939 -694 + -0.594198413383 -0.590843553923 -0.799702125120 0.106678985124 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 525 4 484 485 409 410 + 4 935 939 695 -938 + -0.263725025693 -0.593969435642 0.780938398067 -0.193224035638 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 526 4 421 321 251 249 + 4 -734 -535 -388 940 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 527 5 455 422 421 249 250 + 5 -853 -738 -940 -392 941 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 528 4 330 455 250 253 + 4 -859 -941 -406 -538 + -1.146329756666 -0.830480239171 -0.221751421780 -0.511007709615 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 529 6 483 461 25 24 124 123 + 6 -933 -872 -32 942 -188 943 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 530 5 429 23 24 124 121 + 5 762 46 942 -197 805 + -0.440244692743 0.067158221173 -0.997405206663 0.025935054460 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 531 5 483 401 403 122 123 + 5 937 702 807 199 943 + -0.510994213030 -0.873354439264 0.466739605416 -0.139306009035 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 532 8 418 417 14 13 396 395 486 487 + 8 -724 -920 -2 -750 -680 944 945 946 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 533 5 395 398 412 413 486 + 5 -688 802 716 947 -944 + -0.170006639821 -0.017526928962 0.162736468985 -0.986513886584 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 534 4 418 419 452 487 + 4 727 840 948 946 + -0.766220200485 -0.994597206298 0.075781423651 0.070947678288 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 535 5 486 487 452 414 413 + 5 945 -948 843 718 947 + -0.388298432709 -0.723518423174 -0.063877695623 0.687343241277 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 536 5 106 101 478 198 208 + 5 -154 -924 949 -307 -526 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 537 4 478 480 202 198 + 4 929 950 -320 -949 + -0.195513894548 -0.261501850904 0.528600752738 -0.807587782336 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 538 6 230 231 480 202 206 426 + 6 359 -931 950 323 757 -886 + 0.049249805290 -0.550519655983 -0.516152669226 0.656136060911 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 539 7 481 454 436 42 41 465 472 + 7 -925 -847 -769 -57 -891 -904 951 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 540 5 64 44 45 466 468 + 5 82 63 -893 -908 899 + -0.515418419260 -0.642999512314 -0.715849614231 0.272233276747 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 541 4 481 482 473 472 + 4 927 952 -909 951 + 0.637318498087 0.116321727137 0.873889937663 0.472001729497 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 542 5 237 228 482 473 467 + 5 -360 932 952 911 896 + -0.501430450195 0.426316401774 -0.835082413458 -0.347694820656 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 543 5 39 430 464 448 49 + 5 -771 953 -880 -826 -60 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 544 4 53 464 430 55 + 4 -884 -953 775 77 + 0.567016636209 0.168203347019 -0.152445294729 0.973893251936 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 545 4 391 488 486 395 + 4 954 955 -944 -679 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 546 6 391 392 463 462 485 488 + 6 -683 -895 -874 -936 956 -954 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 547 5 409 485 488 486 413 + 5 -939 956 955 -947 717 + -0.698165895393 -0.992498781927 0.081681788401 -0.090962922764 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 548 5 490 489 491 367 366 + 5 957 958 959 -620 960 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 549 5 488 489 490 487 486 + 5 961 -957 962 -945 -955 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 550 5 484 491 489 488 485 + 5 963 -958 -961 -956 -935 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 551 5 369 366 490 487 452 + 5 634 960 962 -948 841 + -0.385954697117 -0.163113201592 0.195625446631 -0.967018494185 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 552 6 410 484 491 367 368 411 + 6 -938 963 959 -637 842 712 + -0.378389586819 -0.138755503918 -0.989499696902 0.040463069133 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 553 5 129 124 24 30 309 + 5 -189 -942 -31 -510 -820 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 554 5 88 460 459 416 92 + 5 964 -861 -921 -726 -138 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 555 4 94 88 460 387 + 4 -147 964 -865 666 + -0.766843447750 0.111859672141 0.107594863057 -0.987881956102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 556 4 492 197 200 475 + 4 965 -304 -912 966 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 557 4 197 492 393 211 + 4 -965 967 -677 -309 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 558 5 492 475 276 275 393 + 5 -966 -916 -442 -684 -967 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 559 5 493 453 102 116 266 + 5 968 -845 -157 -427 969 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 560 4 339 493 266 270 + 4 970 -969 -434 -572 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 561 4 339 493 453 341 + 4 970 968 850 -581 + -0.557095386629 -0.191691379753 -0.979963499533 -0.054092092868 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 562 7 96 97 195 146 145 324 423 + 7 -134 -804 -293 -207 -534 -737 971 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 563 6 225 224 99 96 423 424 + 6 -332 -663 -141 -971 -741 972 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 564 5 225 226 326 325 424 + 5 -345 -560 -550 743 972 + -0.042472448418 0.665106066932 -0.745803099350 -0.037572020588 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 565 6 449 456 455 250 255 310 + 6 -879 -854 -941 -395 -507 -828 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 566 5 464 430 432 186 183 + 5 -953 -773 973 -255 -881 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 567 5 52 51 72 84 184 + 5 89 974 120 281 -885 + 0.444730112979 -0.573916502548 0.818846273523 -0.010518005556 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 568 4 77 72 51 54 + 4 119 -974 85 776 + 0.810733344351 0.067505458888 0.995059923758 0.072792589939 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 569 4 432 78 85 186 + 4 -774 -122 -283 -973 + 0.570457112948 -0.676790403193 0.129225847499 0.724745079655 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 570 5 478 477 474 199 198 + 5 -923 975 -913 -302 -949 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 571 4 479 477 474 476 + 4 926 975 917 976 + -0.309365574654 -0.002582076062 -0.976717909713 0.214512138883 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 572 5 480 479 476 203 202 + 5 930 -976 918 -321 -950 + -0.112601884899 -0.969379694239 -0.204313707159 0.136231117828 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 573 5 337 261 257 291 286 + 5 583 -415 -746 -478 -813 + -0.415599557792 -0.836101795617 0.411850929794 -0.362370803175 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 574 4 259 258 290 295 + 4 413 -747 480 977 + 0.390157646394 -0.098648154434 0.967052285990 -0.234687915729 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 575 5 338 260 259 295 296 + 5 -584 417 -977 481 814 + -0.447131445873 -0.915223413322 0.218460307484 -0.338587060829 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 576 4 371 415 490 366 + 4 -719 978 -960 -625 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 577 4 490 415 418 487 + 4 -978 -725 -946 -962 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 578 4 494 431 434 495 + 4 979 -767 980 981 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 579 5 432 431 494 185 186 + 5 -772 -979 982 -256 -973 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 580 5 494 495 76 81 185 + 5 -981 983 -113 -260 -982 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 581 4 495 434 79 76 + 4 -980 777 -127 -983 + -0.847061170706 -0.012502929687 -0.993713545382 -0.111252265026 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 582 6 259 73 72 51 58 295 + 6 -421 -123 -974 -84 -495 977 + -0.752135683910 -0.791762416210 -0.597323143892 -0.127739336335 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 583 5 74 80 435 343 263 + 5 125 -779 -848 -586 423 + 0.447740676821 -0.681345206519 -0.016687415475 0.731771986153 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 584 4 190 178 225 424 + 4 -264 -333 -972 -742 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 585 5 474 477 481 472 470 + 5 -975 -922 -951 -903 -914 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 586 5 482 479 476 471 473 + 5 928 -976 -919 -910 -952 + -0.069119476924 0.931470118341 -0.363728959215 -0.008041322426 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 587 5 491 120 125 364 367 + 5 984 -182 -888 -621 -959 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 588 5 483 123 120 491 484 + 5 -943 -187 -984 -963 -934 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 589 4 88 87 458 460 + 4 -137 985 -862 -964 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 590 4 87 95 386 458 + 4 -140 -662 -864 -985 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 591 5 453 493 495 434 433 + 5 -968 986 -980 -766 -846 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 592 6 75 76 495 493 339 262 + 6 -110 -983 -986 -970 -571 -409 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 100 + 1 12 1 2 3 4 5 -6 -7 -8 9 -10 -11 -12 + 2 10 13 14 -15 16 -17 -18 -19 -20 -21 -22 + 3 9 23 24 25 -26 27 28 -29 -30 -31 + 4 15 32 33 34 29 35 36 37 38 39 40 41 -42 -43 44 -45 + 5 9 46 -47 -48 -49 50 51 -52 -53 54 + 6 9 55 56 57 58 -59 -60 -61 62 63 + 7 12 64 -65 -66 -67 -68 -69 -70 -71 -72 -73 74 -75 + 8 9 76 77 78 -79 80 -81 -82 -83 -84 + 9 10 85 86 87 88 89 90 91 -92 -93 -94 + 10 11 95 -96 -97 98 -99 100 101 102 -103 -104 -105 + 11 16 106 107 108 109 -54 -110 -111 -112 -113 -114 115 -116 -117 -118 119 -120 + 12 7 121 -122 123 -88 124 -125 -126 + 13 11 127 128 129 -130 131 -132 -133 -134 -135 -136 -137 + 14 11 138 139 -140 -141 -142 -143 -144 -145 -146 117 -147 + 15 13 148 149 150 -151 152 153 71 -154 155 -40 156 157 -158 + 16 8 159 -160 161 -162 141 -163 164 -165 + 17 14 166 167 168 169 103 93 170 -171 172 173 174 -175 84 -176 + 18 12 177 -178 179 163 -180 47 -181 -182 183 184 -185 116 + 19 10 186 187 188 189 -190 -191 75 192 -193 12 + 20 12 194 -195 -196 197 -198 -199 200 -201 134 202 -203 204 + 21 20 -205 -206 207 208 209 -210 -156 -211 -212 213 42 -102 214 215 216 217 218 219 220 221 + 22 14 222 223 -224 -225 -226 -227 21 -228 105 229 -230 -231 176 -232 + 23 10 233 234 235 236 -237 72 8 -238 136 190 + 24 11 239 -240 -241 -242 -243 -91 -244 -245 246 247 175 + 25 14 -248 249 145 -250 -251 252 -253 205 -254 242 -255 -256 257 -258 + 26 6 259 160 -260 178 -139 -109 + 27 15 261 262 263 -184 -264 -164 265 -266 -267 -268 -74 269 -270 -271 193 + 28 19 -124 272 -273 -274 -275 -276 -277 278 92 279 -280 -281 -282 283 -219 258 104 -284 285 + 29 8 286 287 -288 289 -290 -291 -292 -293 + 30 11 -294 -295 96 296 297 298 299 277 300 -218 301 + 31 10 -86 -98 302 241 253 275 210 -303 171 304 + 32 12 -305 -95 294 306 -307 308 -89 -302 309 310 -278 -173 + 33 17 311 312 313 -314 315 165 146 316 255 -317 -283 318 319 320 -62 271 -221 + 34 10 321 322 -323 198 324 325 -326 327 137 -328 + 35 14 -329 -330 -331 332 -333 -297 334 -335 -309 336 -337 338 339 340 + 36 13 341 342 343 -344 125 -345 293 346 281 -347 348 -349 61 + 37 9 350 351 352 353 354 355 245 -356 120 + 38 12 260 -357 -358 162 -359 -360 -361 142 180 251 -213 110 + 39 12 362 363 130 6 -364 -365 -366 238 -327 -367 -202 -368 + 40 12 -14 369 -370 371 333 -372 295 97 -373 -310 374 -229 + 41 12 375 376 -377 -378 -28 -39 53 379 -380 -381 -382 -383 + 42 7 384 385 386 -387 -388 389 230 + 43 15 390 391 -392 -296 373 -336 -393 199 -394 19 326 -395 367 -396 -397 + 44 8 398 122 -58 273 -399 344 -400 -318 + 45 12 401 -369 -402 -78 -403 -306 99 335 -404 405 -169 231 + 46 15 -406 407 -262 408 151 409 206 -410 411 412 73 -413 10 -414 -320 + 47 8 415 416 417 83 -418 -168 -405 226 + 48 8 419 -420 421 17 -391 195 422 423 + 49 12 424 -425 -426 -427 -41 31 -428 429 -430 224 -389 431 + 50 12 -287 330 432 -308 433 -299 434 435 -436 -346 -279 437 + 51 12 438 -439 68 -152 -440 441 -442 -443 381 43 413 270 + 52 7 444 359 140 445 248 -446 -108 + 53 11 447 446 -448 -449 -450 -451 254 243 -452 -355 -115 + 54 12 453 454 -455 456 -9 -457 -458 -316 -459 -269 414 -192 + 55 14 -460 -461 -298 364 393 -462 -155 7 -412 211 -463 282 464 465 + 56 10 466 -467 -468 -421 -469 15 -332 372 392 -470 + 57 11 471 -472 473 -474 -475 -36 450 476 428 118 -220 + 58 10 -477 478 -149 67 460 -3 -236 -363 410 479 + 59 9 480 288 -123 -432 -87 -481 307 274 345 + 60 11 482 305 403 481 290 483 -433 82 -90 -338 -170 + 61 8 484 485 -486 26 387 487 427 -488 + 62 8 477 65 -2 -407 237 267 457 -189 + 63 7 489 420 468 -390 -490 196 323 + 64 18 -491 492 -101 158 -374 493 -217 -301 -464 397 -44 20 430 -422 494 495 227 -204 + 65 15 496 497 388 -493 -498 488 -499 -500 203 -501 502 -423 22 -431 232 + 66 9 -444 361 -503 448 -249 472 -208 504 111 + 67 9 505 506 -197 -507 -508 -509 133 -510 498 + 68 8 -511 406 461 -4 -272 -313 -456 -214 + 69 10 512 -513 511 -5 276 458 -514 463 -348 -319 + 70 9 515 516 -517 518 -148 -519 -520 69 440 + 71 7 521 -522 329 467 -523 524 -525 + 72 7 526 527 240 451 -354 528 -174 + 73 10 529 -530 522 469 402 370 331 18 -531 81 + 74 15 532 436 533 395 514 -340 -534 -300 -465 368 349 328 11 284 -535 + 75 10 536 537 -518 -478 66 -235 -538 154 132 365 + 76 13 539 -540 520 -541 30 -37 -153 -487 443 542 383 -494 -502 + 77 7 543 -32 544 -27 475 378 426 + 78 10 545 546 -524 490 470 337 -324 394 -547 -533 + 79 11 548 549 550 -551 -552 525 292 547 -339 -437 535 + 80 8 553 530 -401 -16 -371 79 418 225 + 81 9 554 -555 513 60 399 314 280 459 347 + 82 7 556 557 558 -129 509 201 -325 + 83 7 559 560 -561 -263 70 442 191 + 84 14 562 563 400 -246 317 -564 -257 126 147 94 -63 -304 356 -285 + 85 15 565 -476 -100 452 303 -504 -215 -429 -528 256 -247 -172 45 -495 228 + 86 10 566 48 -544 -567 -473 377 -568 569 -38 112 + 87 7 570 -571 517 -537 -572 507 -131 + 88 8 -573 358 -179 574 575 -408 264 -207 + 89 7 576 577 -289 -343 -434 551 534 + 90 8 578 579 580 52 -569 -379 581 -119 + 91 13 -575 -582 -50 -183 439 -34 583 568 -411 380 -157 266 -216 + 92 10 -161 573 357 144 181 -252 -409 -265 -209 -315 + 93 7 486 -25 540 -33 425 -492 499 + 94 9 584 -445 143 449 250 -353 244 114 564 + 95 7 585 571 -516 586 541 508 500 + 96 15 572 -586 519 -150 538 -479 462 -200 366 491 510 135 396 -542 501 + 97 11 587 588 523 -80 531 -334 -483 552 291 404 -435 + 98 11 -574 360 503 582 182 49 567 474 -35 212 113 + 99 6 589 590 555 59 -312 455 + 100 10 591 592 -51 561 -583 -441 185 -581 382 268 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 492 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 489 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 446 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 437 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 264 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 494 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 420 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 86 + *edge + 12 + 1 2 4 6 + x0y1 + 5 55 768 782 889 979 + 2 2 6 5 + x0z1 + 4 426 969 981 986 + 3 2 5 1 + x0y0 + 4 305 425 527 965 + 4 2 1 4 + x0z0 + 4 783 901 915 966 + 5 2 2 8 + x1y0 + 4 131 722 957 978 + 6 2 8 7 + x1z1 + 3 135 736 971 + 7 2 7 3 + x1y1 + 4 387 735 818 940 + 8 2 3 2 + x1z0 + 4 183 817 958 984 + 9 2 5 8 + y0z1 + 4 136 429 863 985 + 10 2 2 1 + y0z0 + 4 678 954 961 967 + 11 2 4 3 + y1z0 + 3 504 788 819 + 12 2 7 6 + y1z1 + 3 257 740 982 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 20 23 64 127 186 233 375 384 438 484 496 505 515 536 539 556 559 570 578 585 591 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 18 55 76 85 121 166 239 286 341 350 398 415 480 482 526 548 562 576 587 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 17 1 56 128 187 234 321 342 362 453 512 532 545 549 554 557 577 589 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 17 24 106 167 222 351 376 385 416 424 447 471 485 527 543 565 566 579 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 19 13 77 194 223 322 386 417 419 466 489 497 506 521 529 546 550 553 558 588 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 18 46 57 107 138 159 177 188 259 261 311 352 454 560 563 580 584 590 592 +***end diff --git a/doc/tutorials/pole_figure/n200-psc.tess b/doc/tutorials/pole_figure/n200-psc.tess new file mode 100644 index 000000000..2d01e14d1 --- /dev/null +++ b/doc/tutorials/pole_figure/n200-psc.tess @@ -0,0 +1,9804 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 200 + *crysym + triclinic + *seed + 1 1.764238148496 0.389046853444 0.053077467444 0.000000000000 + 2 1.356086922638 0.195589598124 0.167104266553 0.000000000000 + 3 2.596160837769 0.187921499787 0.014254002026 0.000000000000 + 4 1.425523474767 0.773470393088 0.322080033435 0.000000000000 + 5 1.459878314800 0.126699919585 0.320900767200 0.000000000000 + 6 2.463437436803 0.199552426396 0.310550040436 0.000000000000 + 7 2.089442371950 0.598737026382 0.146968465969 0.000000000000 + 8 2.761451374673 0.748056963445 0.176045802364 0.000000000000 + 9 0.357117341137 0.289530289636 0.097976554455 0.000000000000 + 10 1.623298250804 0.654010886462 0.009515979730 0.000000000000 + 11 0.158285794152 0.978993450942 0.172253700720 0.000000000000 + 12 2.760433978363 0.702501321437 0.080718903597 0.000000000000 + 13 0.659853354030 0.916320369088 0.178555348881 0.000000000000 + 14 2.479522669534 0.618645378443 0.102603280316 0.000000000000 + 15 1.033116354949 0.224082846824 0.309290023265 0.000000000000 + 16 2.572744778853 0.448436199152 0.331467033520 0.000000000000 + 17 0.125873011305 0.122343743450 0.266627535344 0.000000000000 + 18 0.846542372609 0.845670441682 0.152385010524 0.000000000000 + 19 0.020805495760 0.935030680421 0.116932753881 0.000000000000 + 20 0.230077646164 0.605414463506 0.075068585356 0.000000000000 + 21 2.443147666267 0.023440585803 0.073604026216 0.000000000000 + 22 1.482404739535 0.546683373417 0.312786360408 0.000000000000 + 23 2.219526204078 0.430803313340 0.327854162351 0.000000000000 + 24 0.398389159702 0.398622851765 0.081490783941 0.000000000000 + 25 0.164539463189 0.252621496141 0.300849636682 0.000000000000 + 26 0.521600425712 0.335912313049 0.240360939715 0.000000000000 + 27 0.771784136483 0.649196051441 0.248875571845 0.000000000000 + 28 2.943237504175 0.045539137834 0.176566347396 0.000000000000 + 29 0.323996265503 0.486153995794 0.128563743167 0.000000000000 + 30 1.916252833205 0.312425899085 0.177962607566 0.000000000000 + 31 2.003649649839 0.989523074260 0.246208561011 0.000000000000 + 32 1.201192059823 0.957719058202 0.240634642419 0.000000000000 + 33 2.279599344930 0.485029144929 0.285361124867 0.000000000000 + 34 0.616374885993 0.021722875038 0.225508458501 0.000000000000 + 35 2.180210967586 0.680398391631 0.319504190878 0.000000000000 + 36 0.623037277290 0.253611091290 0.024825472062 0.000000000000 + 37 1.942024141145 0.372266692059 0.213866605810 0.000000000000 + 38 0.426128756521 0.149457236079 0.107361576972 0.000000000000 + 39 0.864342836487 0.743914360892 0.191609485535 0.000000000000 + 40 0.932747377843 0.844800423318 0.139175889310 0.000000000000 + 41 2.159568174993 0.513713361444 0.080854574977 0.000000000000 + 42 1.856708292697 0.223389022511 0.321593822150 0.000000000000 + 43 0.035500378642 0.008203837503 0.267486464695 0.000000000000 + 44 0.329640834062 0.644090550148 0.271975854660 0.000000000000 + 45 0.410383557859 0.396450351083 0.300700746982 0.000000000000 + 46 1.403001268967 0.563063938607 0.015342083549 0.000000000000 + 47 2.980825220963 0.370521236775 0.018330333256 0.000000000000 + 48 0.014861200780 0.971526760273 0.092815692331 0.000000000000 + 49 2.002515283691 0.842389101385 0.322216589496 0.000000000000 + 50 2.940499481411 0.032617225815 0.115059648485 0.000000000000 + 51 2.789454839853 0.987233567817 0.110987444587 0.000000000000 + 52 0.920152520513 0.002926500708 0.206122200037 0.000000000000 + 53 0.595420608564 0.480818136857 0.220398822941 0.000000000000 + 54 1.623269991752 0.232765480975 0.253107086609 0.000000000000 + 55 2.396777868034 0.234193379074 0.239423436877 0.000000000000 + 56 2.026448535689 0.061395904385 0.035283025148 0.000000000000 + 57 1.090355256428 0.156803166188 0.129635121496 0.000000000000 + 58 1.604609302629 0.578229373744 0.281550319222 0.000000000000 + 59 0.224957585017 0.914283170277 0.065109928234 0.000000000000 + 60 2.669456608025 0.718460289598 0.284928053538 0.000000000000 + 61 0.337617153987 0.971872557885 0.291689134811 0.000000000000 + 62 0.136452921538 0.613217847537 0.205423677697 0.000000000000 + 63 0.614934265088 0.817338728891 0.068402473383 0.000000000000 + 64 2.093562713764 0.254793964852 0.113192088295 0.000000000000 + 65 0.231647130279 0.535179152946 0.127215166019 0.000000000000 + 66 0.030198599130 0.120937999117 0.328088823441 0.000000000000 + 67 1.415425707427 0.164348687676 0.035226442526 0.000000000000 + 68 0.966967034151 0.429131194414 0.074389423370 0.000000000000 + 69 1.843520461819 0.520721999947 0.242339045464 0.000000000000 + 70 2.354861234240 0.254960163020 0.122772442247 0.000000000000 + 71 0.664158052432 0.372453944840 0.096246697987 0.000000000000 + 72 1.826711488312 0.513445433058 0.228269433559 0.000000000000 + 73 0.486170985294 0.272439754207 0.114261131325 0.000000000000 + 74 2.120425705045 0.954685403196 0.332245383112 0.000000000000 + 75 2.107783272063 0.700797334170 0.124618284675 0.000000000000 + 76 2.585958039429 0.343881558865 0.031668135831 0.000000000000 + 77 0.169145238038 0.297479911207 0.260249913907 0.000000000000 + 78 1.452156658004 0.608338613713 0.119808875604 0.000000000000 + 79 1.290917045865 0.656057560181 0.031615261009 0.000000000000 + 80 0.076574791622 0.957625443509 0.168879945259 0.000000000000 + 81 1.214142950068 0.835468335763 0.091560545568 0.000000000000 + 82 0.621628356461 0.556180259375 0.326610674292 0.000000000000 + 83 0.201001078788 0.033684392901 0.138063744269 0.000000000000 + 84 1.576604356954 0.889124550230 0.145760663278 0.000000000000 + 85 2.326107019804 0.507159134430 0.133146756948 0.000000000000 + 86 1.731595445502 0.054890012188 0.006598146477 0.000000000000 + 87 0.677392674988 0.571856288663 0.233126589210 0.000000000000 + 88 2.541549208729 0.776748082437 0.229942551430 0.000000000000 + 89 2.186730147158 0.949482162459 0.279326544297 0.000000000000 + 90 1.990029924568 0.017554098816 0.013714095113 0.000000000000 + 91 1.230080590765 0.885935353858 0.129741785885 0.000000000000 + 92 1.745208272647 0.534292389359 0.292132699476 0.000000000000 + 93 0.406937680915 0.933237997996 0.083055544989 0.000000000000 + 94 0.378655969540 0.622824658534 0.185205056318 0.000000000000 + 95 0.658282491511 0.378010261484 0.026069014408 0.000000000000 + 96 2.341279162788 0.633419993718 0.078218899672 0.000000000000 + 97 0.281432659932 0.513195176435 0.241817211193 0.000000000000 + 98 1.593676722761 0.808252678847 0.074006029783 0.000000000000 + 99 0.603929059183 0.047043990036 0.059665308493 0.000000000000 + 100 2.374193347874 0.980613766860 0.190913207101 0.000000000000 + 101 0.497150352886 0.090593349856 0.168619535985 0.000000000000 + 102 0.187546583028 0.206784170689 0.238935583021 0.000000000000 + 103 0.219421893693 0.423082977621 0.328842482223 0.000000000000 + 104 1.411762845162 0.016923807672 0.100015693015 0.000000000000 + 105 2.600275985982 0.116564112590 0.274087891275 0.000000000000 + 106 1.121510916279 0.079672320757 0.015251300533 0.000000000000 + 107 1.441602863486 0.766824561958 0.127070385314 0.000000000000 + 108 1.437851676146 0.539698932819 0.018553550183 0.000000000000 + 109 2.588331762735 0.531184829096 0.067251633319 0.000000000000 + 110 1.901297296917 0.147497782584 0.282894556200 0.000000000000 + 111 0.414615274898 0.170378962432 0.140488276575 0.000000000000 + 112 0.706227031887 0.396812678549 0.023821514266 0.000000000000 + 113 2.543050167007 0.929966586172 0.329767481336 0.000000000000 + 114 2.122379794466 0.416582495117 0.225240109796 0.000000000000 + 115 1.983779875000 0.449112731852 0.075880878676 0.000000000000 + 116 0.836808525194 0.278020420943 0.131660714364 0.000000000000 + 117 0.706929830595 0.923232392340 0.019485173555 0.000000000000 + 118 0.403482743413 0.774351249552 0.183757859844 0.000000000000 + 119 1.173082888039 0.188903727658 0.175506077812 0.000000000000 + 120 0.991825354715 0.717175313763 0.184613227435 0.000000000000 + 121 0.896143614159 0.114563309694 0.129113404699 0.000000000000 + 122 0.149097810486 0.274169911293 0.015449265405 0.000000000000 + 123 1.464557816503 0.126288326039 0.037008473181 0.000000000000 + 124 2.001081131412 0.435702564928 0.027548090888 0.000000000000 + 125 2.689495518414 0.989408426409 0.281244930221 0.000000000000 + 126 1.030808793432 0.820726673296 0.159605501058 0.000000000000 + 127 1.528272597606 0.650630235042 0.252724978485 0.000000000000 + 128 2.907586052800 0.746443547940 0.223641571831 0.000000000000 + 129 2.010354968054 0.425434043153 0.093417761646 0.000000000000 + 130 0.789271749121 0.618730035123 0.300138595895 0.000000000000 + 131 0.559753820755 0.202040566641 0.026563579607 0.000000000000 + 132 2.964172736357 0.381774537602 0.123757986313 0.000000000000 + 133 1.412385871055 0.311360546252 0.279250973045 0.000000000000 + 134 2.164648201934 0.800799860104 0.251319578136 0.000000000000 + 135 0.439785821182 0.583078480197 0.222573766342 0.000000000000 + 136 0.605620409952 0.503138738040 0.328181939515 0.000000000000 + 137 1.698459875182 0.844562973488 0.253945257982 0.000000000000 + 138 2.061999211262 0.428019367369 0.053005016050 0.000000000000 + 139 2.000617287406 0.732264786799 0.292082726274 0.000000000000 + 140 2.827124553518 0.377830626212 0.161819213874 0.000000000000 + 141 2.322963196518 0.526389926391 0.247451816861 0.000000000000 + 142 2.296111760166 0.702205064641 0.025533127074 0.000000000000 + 143 2.281161260223 0.578690938608 0.256395530411 0.000000000000 + 144 0.162947682839 0.439391640683 0.165912628498 0.000000000000 + 145 0.931602625793 0.904799258816 0.239941319128 0.000000000000 + 146 1.616276602786 0.555401507567 0.169394574085 0.000000000000 + 147 2.677733163037 0.297558068507 0.066449092668 0.000000000000 + 148 0.000948355138 0.319740488316 0.053107879586 0.000000000000 + 149 2.459545270335 0.062253722842 0.195826273056 0.000000000000 + 150 2.141316984361 0.619718995327 0.331512985316 0.000000000000 + 151 1.021228355260 0.729927436307 0.242781675455 0.000000000000 + 152 1.179278926945 0.466581278454 0.215839913363 0.000000000000 + 153 1.358656600940 0.103609182506 0.018689631949 0.000000000000 + 154 2.720511343820 0.553517018969 0.137228685076 0.000000000000 + 155 0.021367689433 0.631574165409 0.040783061076 0.000000000000 + 156 1.588678361673 0.060642523008 0.018183038597 0.000000000000 + 157 1.041266096050 0.101066507806 0.299289529350 0.000000000000 + 158 0.018558149315 0.223873282427 0.157621551382 0.000000000000 + 159 2.612929696220 0.831794480270 0.085635185654 0.000000000000 + 160 1.564333791406 0.715330544223 0.020748688586 0.000000000000 + 161 0.318474096348 0.018204100642 0.261875403647 0.000000000000 + 162 1.064002629164 0.676190169906 0.165521337815 0.000000000000 + 163 0.249957695200 0.270027882822 0.187615077938 0.000000000000 + 164 1.938350881588 0.128957611266 0.160045891914 0.000000000000 + 165 0.058485066071 0.223159096606 0.244661892465 0.000000000000 + 166 1.199423437440 0.393263993755 0.241209654833 0.000000000000 + 167 2.549841551341 0.464488567237 0.306689196265 0.000000000000 + 168 2.456687843796 0.351413192485 0.225580422605 0.000000000000 + 169 2.828586211786 0.802625019886 0.324684612282 0.000000000000 + 170 1.771709700955 0.403536517376 0.187256440730 0.000000000000 + 171 2.059105673940 0.958432746806 0.027347291478 0.000000000000 + 172 2.278220539965 0.130795263416 0.305924656152 0.000000000000 + 173 1.820065662744 0.049353454625 0.176806694301 0.000000000000 + 174 0.446197834702 0.307396869512 0.061234885297 0.000000000000 + 175 1.377729211597 0.375510237058 0.035301803424 0.000000000000 + 176 2.679204547100 0.602926635283 0.316058160066 0.000000000000 + 177 0.144339590423 0.491835853305 0.011281482531 0.000000000000 + 178 0.602195636184 0.431664655650 0.056834926391 0.000000000000 + 179 2.147026045912 0.685406399231 0.149292338872 0.000000000000 + 180 1.803352116644 0.638263609605 0.031732181023 0.000000000000 + 181 1.232332062766 0.734602766133 0.235649206798 0.000000000000 + 182 2.139466223679 0.229415109170 0.313754844373 0.000000000000 + 183 1.577950296201 0.604657843492 0.261465217413 0.000000000000 + 184 1.842274359583 0.754101710884 0.216405962610 0.000000000000 + 185 2.970562851052 0.972529381976 0.214757813212 0.000000000000 + 186 2.794657593576 0.440002073292 0.267966661122 0.000000000000 + 187 1.774809370739 0.242970883869 0.325898410127 0.000000000000 + 188 0.958460962240 0.028110543587 0.096192039509 0.000000000000 + 189 1.661417370942 0.416024510243 0.318441128557 0.000000000000 + 190 0.413032145535 0.186750981739 0.278947733120 0.000000000000 + 191 2.693530184069 0.020007579067 0.275464127855 0.000000000000 + 192 0.886023810741 0.777284846586 0.144772444551 0.000000000000 + 193 2.671158706385 0.634962221387 0.181963392082 0.000000000000 + 194 0.767537214811 0.593738811420 0.062633904585 0.000000000000 + 195 0.070849479758 0.703037558203 0.271235206434 0.000000000000 + 196 1.779643731532 0.297773320399 0.030014182716 0.000000000000 + 197 1.934020204540 0.481868990320 0.119538310652 0.000000000000 + 198 2.354766649995 0.897781380386 0.206835554039 0.000000000000 + 199 1.130922238801 0.252970970358 0.164764097955 0.000000000000 + 200 2.507351273774 0.404251698456 0.052342151695 0.000000000000 + *ori + rodrigues:active + 2.324874456736 0.730309659279 0.284845703234 + 0.838921251396 -2.280774969407 0.414761185150 + -0.746405762352 -0.839744102850 0.205446198806 + -2.547678434164 -8.954483612872 3.788709349905 + 1.637808459739 2.106764099713 -0.824266498123 + 0.801779049009 -1.864728400236 0.694649883160 + 3.147285586164 -2.168828137156 4.943270504548 + -0.110756360587 -0.373689871848 -0.457877061134 + -0.821954743809 -0.154022686781 0.612041884289 + -0.113910890187 -0.110261034274 -1.028640648958 + 0.556010992347 -0.352506193626 -2.458265125060 + 1.446576469714 -0.804957549806 -0.231539617452 + 0.582189390055 0.798207065801 0.126093078888 + -2.544142717299 3.570702411694 -0.695848943888 + -0.569252920187 -0.107564599906 0.369270147899 + -1.827415617875 -5.113952650229 1.091322791423 + -1.019286738471 0.164411656007 -0.751916414593 + -0.318682752339 1.230199894996 -1.170150074392 + 1.983068118337 -2.378128742595 0.836830770936 + 2.407068141524 0.805451223880 -1.391318264369 + 0.148715949887 -1.504313238386 0.809832600632 + 0.853081683927 0.153545490835 0.604834893675 + 4.106139489126 -5.775787977504 -5.363679371971 + 0.075710323509 -0.260474297610 -0.449634251859 + -1.058607594944 -0.718800893451 0.121418673615 + 0.566570828773 -0.612637652949 -3.071149955586 + 1.419313460297 0.442565902295 -0.810253032714 + -0.103730663575 -0.325982671878 -0.591491626783 + -1.856919207689 -1.542557965297 0.623445620777 + -1.816197121269 4.546531750730 -0.573063260517 + -1.457210068888 -0.076070603420 -0.977823147743 + 0.292323929487 -1.556480687841 0.675155136270 + -3.751952494284 3.789590824376 -4.543555315881 + 1.364800275478 0.359771314308 0.112077917793 + -0.454087545323 0.432198568959 1.053334717721 + -0.365112870392 -0.461595380910 -0.732238594687 + 0.862214283720 -0.158445986690 -0.640768577324 + 0.364905447162 -0.178831364966 -1.332107407046 + -3.794271839997 8.796197307203 -6.034869874986 + 0.508803892735 -0.561902441329 0.483450652735 + -4.112993488154 -2.499741735968 -1.691411203226 + 52.921043853276 38.826333993627 -73.470194051384 + -0.403826414582 0.738862383154 -1.788753293710 + -0.618778611727 0.130638020326 1.879932851464 + -0.740978758140 1.153271949467 1.007870520369 + -0.669582157737 0.321371157021 -2.905600133604 + 0.687511115201 0.214577222820 -1.913263206955 + 12.706520603687 3.340069128689 -20.141656920211 + -2.007459189872 7.023033608684 -2.430785990286 + -3.945731976794 -6.244474405155 5.314612242517 + -0.084132544290 1.434795838439 -1.371178356014 + 2.389520745121 -123.404949425973 -55.490721989830 + 0.245923399934 1.338561072167 1.578179320569 + 3.359637652827 2.827625690831 3.926128397549 + 3.045500653186 1.719223884075 -1.419428729040 + 0.480157370304 -0.710512389467 0.041179704145 + -0.813367956215 -0.824983226970 0.202423972063 + -55.982820567398 -28.789788437799 -16.317175935447 + 0.272809069027 -1.471350217489 -1.969870994286 + 1.644779605285 -0.772694872281 -0.209566275898 + 0.392796631004 -14.930191817823 -31.336920755315 + 0.399745388969 -0.867593683868 -1.260875419509 + -0.792301868228 0.608235374606 0.072657970388 + 0.635908264158 -0.123297073594 -0.434228259308 + 3.066533105061 -2.049562334771 4.781017126297 + -0.028519972854 -1.350946732821 -0.627206263716 + 6.273199737283 -0.404294197379 -0.251045513913 + 1.059325640890 1.990947051283 -0.728103447910 + -0.349050867854 -1.626749324133 -0.702228266356 + -2.844395381677 0.251978089435 2.029938712857 + -0.932879519125 0.611736195011 0.465566248721 + 3.452565838110 1.575100995992 3.701913816197 + -33.261270716012 -8.107281839338 5.333305196839 + -1.704023746873 -4.273962592733 0.467484404065 + 2.378470213283 -0.335050021038 1.583339309674 + 0.086816138044 -1.410663579355 0.648351887747 + 0.934395491724 -0.223566086902 -0.721866740492 + 1.661157526309 0.632190044772 0.179384215892 + 3.654401785607 6.025222112442 4.950868565420 + -7.021480790033 -2.698887532930 1.576872311288 + 2.008035461263 -1.380043551046 3.437803928327 + -0.669435539021 0.307114102278 1.761982006793 + 0.268337156450 -1.476676901240 -2.224039085556 + 1.829063250443 -6.768963574899 -1.908133315498 + 2.716243167299 1.055132275083 -1.469298384700 + 0.259310757160 1.325041542213 1.478577440890 + 1.654412933749 1.107290642503 -2.820467305212 + -0.217072375602 1.298971553068 -1.281210808517 + -0.410989029309 0.579707853083 0.341286422517 + 2.510405287456 -20.074394943804 -8.916717190112 + -0.127383096885 0.892361195728 -0.004537298370 + 0.565095746714 0.802022170678 0.110333184289 + 0.315716772851 -1.633947013949 1.046477376089 + 1.287514701451 0.689177831612 0.172520741570 + -1.857401858676 0.868404132684 -0.302553518075 + 0.054675393336 -41.987360348149 10.463194369640 + -0.595869405925 0.347134203551 1.534049523202 + 0.071832466978 1.432716627328 -0.762854734806 + -5.697946248683 1.443012142294 2.702389468368 + 1.269028601578 -2.249613366358 0.647022393277 + -0.073829063587 0.315524740644 0.562071651791 + 0.486034704710 -0.262773776304 -0.611689978016 + 4.116122031465 -1.197448849479 2.029452695648 + -1.056637342647 -2.561877419934 -0.370409454193 + 0.317266895667 -0.743280896289 0.051069743939 + -1.955951402151 -4.211352101537 0.331519944786 + -0.453576176922 -0.807228082276 1.302912203442 + 1.737454221681 1.661908504043 1.770290372483 + -1.685759898009 -2.975181651773 -1.802532426018 + 5.880228745887 -5.132245123606 -7.336318531459 + -10.495924939103 5.393582731913 3.665355801764 + -4.976496807768 -3.160010227658 -1.905470147850 + 3.707739182204 -7.646945338991 -5.486050450207 + 0.056647633998 -1.323686672490 -0.659652404381 + -0.340748786755 0.573345119122 0.261957326811 + -1.158120113393 0.763061993515 -0.215141629498 + 6.348469801884 -5.075122649068 17.947554218318 + -0.985534503943 -0.698891419199 -2.009745591759 + -0.178390281500 -0.197689282049 0.345384758640 + 0.454756297798 0.496758523956 -0.360107158888 + -0.265959191388 1.322403073094 -1.473317559201 + -34.414598588891 -8.729159529093 -68.273385082770 + -0.884593244231 -0.181941806773 0.688752927943 + 0.602001056761 0.081284152801 2.179310002895 + 1.199050210099 0.111419456114 -0.790470563674 + 13.290233286425 5.620526958480 3.539147855556 + -4.241022150417 7.981225124812 -6.636431365962 + -0.305107505880 -1.620681655139 2.937072152608 + 1.683784733431 -0.722802165052 -0.217345977647 + -6.658187972045 -2.250888870767 1.372070965703 + -0.435077143338 0.718841157873 0.058713896527 + 0.402624910800 0.584636299967 -0.284084350069 + 0.811141653403 -0.797850098832 -0.152186866550 + 2.675159098010 -0.442646822264 -2.401219133761 + 3.482812700140 10.321601948799 6.458117746638 + 3.994527791627 -5.371372476446 -5.215280629390 + 0.590511816133 0.230356304400 2.431876506618 + 0.902245296338 -1.313741943179 0.955114819446 + 2.047519765269 -0.129659807051 1.431440507748 + 2.353522578017 1.033232837342 0.432143331056 + 1.613817812418 0.264478322084 -4.367105343128 + 0.283201310662 -1.644504506635 -2.701323083668 + 0.137666495352 -0.179885818807 -0.203683118592 + 0.271383706368 1.507445065631 2.187722052788 + 3.388665857859 2.105523143841 -5.265912612685 + -10.603571934241 -6.752602161861 -14.989926117220 + -0.095110397675 0.381652450700 0.384293344188 + 4.668601084319 -2.840733792673 -1.133080436578 + 2.762438485747 5.846274893946 3.176893464556 + 8.576023740451 19.051966713456 14.462628605655 + -0.470355680507 -0.001956549769 -1.811744817184 + 4.895712195619 1.120448221076 0.671482443355 + 1.142668568460 2.148571336712 -0.712160325114 + -4.953632679814 -1.730460885225 0.987087890924 + 0.371762776758 1.060446173134 2.146608191742 + 31.501015001886 16.491544461248 -9.393293786150 + 0.153992591973 -0.240681542572 -0.423437020788 + -0.011555451981 -0.291626915018 0.489874196387 + 0.496092520370 -0.528599592629 0.543147032670 + -0.276844995444 0.244686499369 -0.672183134271 + 2.416734516091 5.804094198470 2.531164177048 + -2.217217869319 -0.231663476587 -1.507400313653 + -0.240198859971 0.158698596609 -0.287623340629 + -1.209563519155 -0.705088478505 0.177562054337 + 19.880726389575 21.603956891533 27.728883559372 + -1.908204294351 0.194322862123 -0.077613995371 + -1.809063017190 0.466467685950 -1.592217602817 + 1.013430976239 0.176568406648 0.799322652990 + 0.433225879375 -0.126840354838 -0.326327160250 + 1.301721877222 -0.718700332076 -0.197457558339 + 1.677693856710 -1.663518888420 2.371102809208 + -0.476237765227 0.667775621798 0.112111649640 + 1.774601073380 5.211024981593 1.130877366050 + -0.249590499291 -1.311613356058 1.387891344113 + 0.276615737689 1.471508374482 2.093186457225 + -2.880738950229 -2.701814143676 0.727585083645 + 0.780144199193 0.590302790762 -0.217130693278 + 0.476192329062 -0.889565718922 -0.230275105116 + -0.410597805634 -0.617786674560 -0.246657931356 + 0.441944889631 -0.582946930443 0.393603397674 + 0.567395954949 0.350320907958 2.455968746174 + 0.716218069256 -0.700176623938 0.004386364101 + -0.213750855186 43.310078602367 -44.600326800030 + -0.688282712977 0.107499371313 2.170804125162 + -0.078197729731 0.253828256606 -0.403642113107 + 3.983159912823 3.817966787661 4.803059910808 + 2.797413408712 0.698315983698 -1.628360364352 + -0.591411127174 1.741341248487 0.699665550387 + -0.250191726886 1.513996587791 -2.052597392628 + -0.188793358176 -0.403574785114 -0.515984568661 + -0.364553609205 -0.406838764393 -0.899904869498 + -0.560103200155 0.727931266360 -3.297122502691 + -1.030995215833 -0.750328496868 0.158720880941 + -1.379278234793 -0.644892410936 0.155107166730 + 2.155139640709 16.534883375551 5.664490991138 + 1.535822054663 -3.187859163447 0.066037110943 + -0.521546508451 1.595712149352 -5.351566621257 + -0.776796184352 -0.468543664823 -1.788303519958 + 1.372711774249 1.892401774819 -0.836302188857 + 2.456433074603 0.209498763013 -1.795253398805 + **vertex + 1186 + 1 1.978655087295 0.352665624270 0.039185338893 0 + 2 1.806544795505 0.498940709048 0.049155312060 0 + 3 1.674798226337 0.402909942600 0.014635059738 0 + 4 1.982661248961 0.349811879980 0.071823142483 0 + 5 1.646457417150 0.440639694491 0.019041603833 0 + 6 1.562974638647 0.444756332457 0.093874663215 0 + 7 2.052345644961 0.290575184519 0.067039959133 0 + 8 2.033424703492 0.306726023052 0.072316778883 0 + 9 1.684238192847 0.525760586031 0.055829684004 0 + 10 1.764806571814 0.518591214400 0.048366647150 0 + 11 1.738784338062 0.516405413786 0.044949209491 0 + 12 1.506785310087 0.272001441905 0.070700978617 0 + 13 1.619088599118 0.242782008948 0.084448073265 0 + 14 1.426527435074 0.499236409367 0.073013602977 0 + 15 1.444224351477 0.350156066694 0.112263356906 0 + 16 1.519686484076 0.472248395096 0.090979413978 0 + 17 1.541803522978 0.526153331226 0.072610773604 0 + 18 1.431709594916 0.503557590860 0.074500937222 0 + 19 1.454515689519 0.444536230497 0.097322544793 0 + 20 1.393379608829 0.304592931709 0.098330671406 0 + 21 1.431564143730 0.270444109723 0.090984560183 0 + 22 1.513630520978 0.253899666898 0.094319515150 0 + 23 1.420548463586 0.322165422857 0.107188436286 0 + 24 1.443948109452 0.348791691048 0.112420590523 0 + 25 1.492800846881 0.318657158642 0.111762432232 0 + 26 1.485477298809 0.309718387714 0.110043101709 0 + 27 1.184539700490 0.192659784362 0.149859908190 0 + 28 1.524679245271 0.338350863247 0.142763592971 0 + 29 1.285324120975 0.016063866883 0.161324295621 0 + 30 1.312766968054 0.023873659569 0.169378276801 0 + 31 1.295399664832 0.012640542361 0.160836842404 0 + 32 1.306832570483 0.015852682415 0.159469113732 0 + 33 1.549506789319 0.089818925784 0.140107335920 0 + 34 1.708058264604 0.183474601924 0.203218362011 0 + 35 1.461607393265 0.104501540998 0.216437292704 0 + 36 1.531885686612 0.282157266025 0.205231603790 0 + 37 1.712364436963 0.188021311126 0.202835594373 0 + 38 1.485852981395 0.309420012642 0.110128332814 0 + 39 1.707426707498 0.243753398343 0.139476200069 0 + 40 1.613674993722 0.175732934525 0.115392007517 0 + 41 1.607130382545 0.178217119527 0.114591478624 0 + 42 1.383391517261 0.280632979876 0.210988635508 0 + 43 1.364872548163 0.292318260992 0.207049831017 0 + 44 1.411554366600 0.311077939226 0.202716772894 0 + 45 1.450786805051 0.298123400570 0.207570547416 0 + 46 1.541601849951 0.340729389631 0.129169217936 0 + 47 1.565011254928 0.330848535603 0.126079228222 0 + 48 1.517689691514 0.326017605246 0.117515298353 0 + 49 1.525775341551 0.330429516200 0.119925884744 0 + 50 1.531627969088 0.329695853433 0.120312392293 0 + 51 3.000000000000 0.000000000000 0.000000000000 0 + 52 3.000000000000 0.232994558700 -0.000000000000 0 + 53 3.000000000000 0.225468600852 0.037383583552 0 + 54 2.863455936593 0.258446048241 0.032331594994 0 + 55 2.755528095063 0.290217249447 -0.000000000000 0 + 56 3.000000000000 -0.000000000000 0.026710054265 0 + 57 2.302855797579 0.182807427225 0.060744389349 0 + 58 2.553998306571 -0.000000000000 -0.000000000000 0 + 59 2.553093617189 -0.000000000000 0.012513909104 0 + 60 2.492152534083 0.023935702503 0.017933882123 0 + 61 2.231260914716 0.127581208439 -0.000000000000 0 + 62 2.209486567214 0.219429854630 0.054012036141 0 + 63 2.095750048489 0.195377949758 -0.000000000000 0 + 64 2.205745853364 0.286220986005 -0.000000000000 0 + 65 2.223215867629 0.236149031675 0.049853371302 0 + 66 3.000000000000 0.133326675377 0.058845649713 0 + 67 3.000000000000 0.068570537969 0.047782776082 0 + 68 2.891655125347 0.127200201409 0.062358908155 0 + 69 1.706219133955 0.815654793851 0.295899161824 0 + 70 1.696895611049 0.667265821012 0.316299730137 0 + 71 1.615232182796 0.706139069720 0.291088580265 0 + 72 1.607063621459 0.746527447985 0.283007029421 0 + 73 1.803522230768 0.724477671134 0.333000000000 0 + 74 1.803491794146 0.724510282159 0.332759464180 0 + 75 1.417849964061 0.765383129333 0.275849884912 0 + 76 1.155759629677 0.646013656745 0.333000000000 0 + 77 1.230221251814 0.662760202565 0.293299872407 0 + 78 1.229016949731 0.664760694186 0.292165689260 0 + 79 1.200466670733 0.683068450883 0.288048827137 0 + 80 1.250797718298 0.713178726722 0.283053760655 0 + 81 1.708797049067 0.661425800764 0.333000000000 0 + 82 1.766896947664 0.691479749995 0.333000000000 0 + 83 1.756215278205 0.683130029790 0.327895293794 0 + 84 1.726544883432 0.665398798622 0.323587639431 0 + 85 1.558295852079 0.952594430934 0.333000000000 0 + 86 1.447035011735 1.000000000000 0.333000000000 0 + 87 1.532180387635 0.977369885972 0.306020223485 0 + 88 1.259168468348 0.839080170303 0.276544980580 0 + 89 1.503437122098 0.989617492366 0.306018657843 0 + 90 1.474824205546 1.000000000000 0.309594210853 0 + 91 0.865709792382 0.819758594321 0.300754408327 0 + 92 1.212368684200 0.836163761249 0.277979280870 0 + 93 1.222828787782 0.838307197130 0.277584323455 0 + 94 1.031348080841 1.000000000000 0.333000000000 0 + 95 0.752629147576 0.830187734801 0.333000000000 0 + 96 0.818051556331 0.833827131869 0.306779678955 0 + 97 1.003255331285 0.958160476790 0.315101960522 0 + 98 1.051871970130 1.000000000000 0.323947811707 0 + 99 1.217361156006 -0.000000000000 0.333000000000 0 + 100 1.693727552436 0.158126029349 0.333000000000 0 + 101 1.370983395527 0.255257528993 0.333000000000 0 + 102 1.138951693683 0.142275936481 0.333000000000 0 + 103 1.494262220066 -0.000000000000 0.266915008310 0 + 104 1.617489552218 0.195258119061 0.296397405884 0 + 105 1.400609768856 0.252526506134 0.317043147525 0 + 106 1.328715863469 0.180566835295 0.282674740643 0 + 107 1.576599564970 0.208844402904 0.293094594525 0 + 108 1.588373881264 0.205397155135 0.292846173624 0 + 109 1.457227808524 0.073557061606 0.266078865194 0 + 110 1.340374814577 0.176364588241 0.280444933837 0 + 111 1.889871098578 -0.000000000000 0.323526997776 0 + 112 1.903941476833 -0.000000000000 0.333000000000 0 + 113 1.901078294939 0.063569825698 0.333000000000 0 + 114 1.893721213852 0.067237792594 0.328158008091 0 + 115 2.285906831800 0.175569458857 0.333000000000 0 + 116 2.272380673913 0.213807498348 0.276642490524 0 + 117 2.344293808900 0.193453846990 0.274712865793 0 + 118 3.000000000000 0.099322656486 0.333000000000 0 + 119 3.000000000000 0.112686171212 0.325416855484 0 + 120 2.651999326013 0.074511951782 0.318960106003 0 + 121 2.688731472149 0.055000315995 0.333000000000 0 + 122 2.399656666717 0.312684742650 0.333000000000 0 + 123 3.000000000000 0.291389299634 0.333000000000 0 + 124 2.447855461620 0.318333358814 0.333000000000 0 + 125 2.458639318516 0.334133033456 0.311459125353 0 + 126 2.390358330151 0.334899624311 0.298464653682 0 + 127 3.000000000000 0.260976237732 0.287990701153 0 + 128 3.000000000000 0.304735733529 0.315390337383 0 + 129 2.801730673659 0.321063586047 0.306612810521 0 + 130 2.474770866986 0.329486862344 0.280552892422 0 + 131 2.770884250488 0.273910461508 0.274132126123 0 + 132 2.379702536795 0.333703946314 0.286428107466 0 + 133 2.372399809188 0.329445314282 0.281732746815 0 + 134 2.410525468391 0.331929745220 0.281426677986 0 + 135 2.313484513131 0.632259223689 0.129100471275 0 + 136 2.428623681737 0.615439202766 0.140736787413 0 + 137 2.432742803144 0.620473087103 0.141433507728 0 + 138 2.019352102751 0.594611776139 0.107063180479 0 + 139 2.127139286863 0.567527880681 0.112334120818 0 + 140 2.168766097060 0.581440800270 0.110894071849 0 + 141 2.141049945508 0.595166446844 0.108574509348 0 + 142 2.443298485140 0.617255714661 0.151516676563 0 + 143 2.435378291002 0.597395842096 0.155418477784 0 + 144 1.843605468109 0.608961952375 0.112552678480 0 + 145 1.763398994453 0.574585505513 0.134393215986 0 + 146 1.732720879614 0.670796517805 0.147034104041 0 + 147 1.747151259457 0.670740527609 0.142860001445 0 + 148 2.039360091537 0.473550610903 0.162861740675 0 + 149 1.939359540480 0.490088141600 0.162029830289 0 + 150 1.898239425960 0.649287651657 0.185453302901 0 + 151 2.003051824656 0.522189184987 0.185465794873 0 + 152 1.959173361624 0.620809667708 0.195191427267 0 + 153 2.319443470494 0.519639247021 0.188088617149 0 + 154 2.155474227237 0.483938797881 0.179725835252 0 + 155 2.079573827926 0.511762942771 0.187299716197 0 + 156 2.198024201424 0.549372484037 0.196391167899 0 + 157 2.285375057790 0.537879670613 0.192972414154 0 + 158 2.192108402594 0.623533766271 0.202242392162 0 + 159 2.162394438592 0.625562276353 0.202925025329 0 + 160 2.151655491974 0.622944035789 0.203103656989 0 + 161 2.162497214288 0.616010810972 0.202728779213 0 + 162 2.194832817689 0.619838926231 0.202108524433 0 + 163 3.000000000000 0.673091032026 0.193304847898 0 + 164 2.657386765093 0.709664511250 0.206403221779 0 + 165 3.000000000000 0.653491557713 0.151768294837 0 + 166 2.327588866480 0.762083909008 0.186729807045 0 + 167 2.347348183326 0.729267376851 0.189660279643 0 + 168 3.000000000000 0.848658765343 0.193964797913 0 + 169 2.763921131194 0.859144071013 0.202934963194 0 + 170 2.752094767710 0.861510004690 0.202200785156 0 + 171 2.735907530579 0.897281256156 0.180277483693 0 + 172 2.383101038663 0.850589876393 0.148038759142 0 + 173 2.599868602739 0.683556326418 0.140259653467 0 + 174 2.555422706364 0.688074443927 0.141479011984 0 + 175 2.541351129704 0.739663546287 0.132064295132 0 + 176 2.550494567374 0.750353673287 0.129543033675 0 + 177 2.416485289265 0.839667723850 0.141428365420 0 + 178 2.394808273724 0.855383544613 0.143481198319 0 + 179 3.000000000000 0.692503298519 0.130087794282 0 + 180 3.000000000000 0.792597465475 0.124783544791 0 + 181 2.622390643004 0.743827989097 0.127417620870 0 + 182 2.758710007651 0.698676928769 0.129792366866 0 + 183 3.000000000000 0.827587049904 0.128377129592 0 + 184 3.000000000000 0.902908068377 0.159082917809 0 + 185 2.791859199766 0.917143514443 0.163782364917 0 + 186 2.479773617930 0.871161429312 0.143381934942 0 + 187 0.631363961408 0.279125544490 0.085424836240 0 + 188 0.503441536076 0.331567219679 0.084431282813 0 + 189 0.601440385117 0.218029769324 0.081236503623 0 + 190 0.218148424296 0.219783982675 0.118866313433 0 + 191 -0.000000000000 0.371256940616 0.098026523241 0 + 192 -0.000000000000 0.186935174892 0.084264717373 0 + 193 0.177436937066 0.186126367926 0.066850200358 0 + 194 0.201131952912 0.331999880827 0.075423909103 0 + 195 -0.000000000000 0.386825910005 0.109450944885 0 + 196 0.396198826616 0.382032021161 0.118154125036 0 + 197 0.401586809439 0.380089381030 0.119610778211 0 + 198 -0.000000000000 0.201209022836 0.107888465865 0 + 199 0.178525181688 0.236287446269 0.124655859362 0 + 200 0.132264065382 0.215060140036 0.118829361813 0 + 201 -0.000000000000 0.350747437953 0.126142056336 0 + 202 -0.000000000000 0.370026218437 0.121426236302 0 + 203 0.241951915358 0.358723161271 0.132711419842 0 + 204 0.175202649371 0.334156908210 0.136370047846 0 + 205 1.347699953130 0.683372639985 -0.000000000000 0 + 206 1.545800100858 0.643213392103 0.037122820195 0 + 207 1.537187043886 0.615575502023 0.035810548332 0 + 208 1.345653047115 0.646437203321 -0.000000000000 0 + 209 1.641040431073 0.566936704900 -0.000000000000 0 + 210 1.598339620868 0.594638489762 0.028058379004 0 + 211 1.948769903574 0.747593054743 -0.000000000000 0 + 212 1.944859745957 0.739213621228 0.004819558299 0 + 213 1.971710439680 0.712008529375 -0.000000000000 0 + 214 1.832321799948 0.534923495940 -0.000000000000 0 + 215 1.825650784541 0.534088097759 0.000600485190 0 + 216 1.825702223664 0.533650697410 -0.000000000000 0 + 217 -0.000000000000 1.000000000000 0.183352051563 0 + 218 0.148643076436 1.000000000000 0.138995519808 0 + 219 0.386529132652 0.896282772746 0.140851349572 0 + 220 0.340583608321 0.878917883417 0.166757755811 0 + 221 0.511166013372 1.000000000000 0.133008421839 0 + 222 0.432460973866 1.000000000000 0.130305183222 0 + 223 0.455773505116 0.951519634969 0.133863549774 0 + 224 -0.000000000000 0.924719944238 0.236223209818 0 + 225 -0.000000000000 1.000000000000 0.236720912143 0 + 226 0.413203771078 1.000000000000 0.229076690281 0 + 227 0.306918236796 0.906713172582 0.230426209061 0 + 228 0.108124101598 0.882029310761 0.233940684020 0 + 229 2.447247211007 0.732740391912 0.095006799101 0 + 230 2.621349981917 0.621767317632 0.075389289244 0 + 231 3.000000000000 0.566781707092 0.093332896363 0 + 232 2.863913916979 0.580059613262 0.096030157351 0 + 233 3.000000000000 0.833964794048 0.004145386725 0 + 234 3.000000000000 0.629921637771 0.004266851867 0 + 235 2.601099294105 0.645138294379 0.045610417275 0 + 236 2.446556418077 0.744117618397 0.061572408484 0 + 237 0.855614289747 0.842969407514 0.185855275722 0 + 238 0.679392612973 0.814905891039 0.178767622292 0 + 239 0.964919860733 0.866419260863 0.199101317150 0 + 240 0.639728702646 0.835231049998 0.216189382884 0 + 241 0.948056729619 1.000000000000 0.147768613174 0 + 242 1.067015829274 0.967599920388 0.167126899073 0 + 243 0.965434948358 0.992313441398 0.150800438112 0 + 244 0.952833329634 1.000000000000 0.202540643666 0 + 245 1.167991311250 1.000000000000 0.179423949175 0 + 246 1.168232683365 0.987675792581 0.180309370409 0 + 247 1.083685852363 0.926955941947 0.193883260181 0 + 248 0.364913414026 0.866051280142 0.142595394045 0 + 249 0.387703576764 0.860453916426 0.139494967468 0 + 250 0.702185315250 1.000000000000 0.126775431200 0 + 251 0.448116574802 0.899577022293 0.133093046402 0 + 252 0.673790135020 0.984839684030 0.127404164313 0 + 253 0.445527211859 1.000000000000 0.230211036294 0 + 254 0.359069438768 0.897028295697 0.232783723526 0 + 255 2.574218111081 0.505868180107 0.105397819349 0 + 256 2.395416872484 0.550470604319 0.086380876476 0 + 257 2.140269479472 0.597673101165 0.107374887457 0 + 258 2.442953019718 0.510500236319 0.099149103116 0 + 259 2.387126635369 0.740300854645 0.099714316538 0 + 260 2.530920324609 0.666868578659 0.142691494531 0 + 261 0.605000893354 0.138345509373 0.333000000000 0 + 262 1.029544472815 0.206385455791 0.244452969719 0 + 263 0.957330501486 0.400715359475 0.295829326846 0 + 264 1.358995708836 0.307560967127 0.333000000000 0 + 265 1.366275330038 0.306582366717 0.329117959334 0 + 266 0.980286171317 0.206988022211 0.243136447135 0 + 267 0.903021481295 0.201909930123 0.249287411772 0 + 268 0.714117096637 0.297672236757 0.283787569662 0 + 269 0.862975678796 0.356029303494 0.280675697461 0 + 270 0.585628511695 0.268208805019 0.333000000000 0 + 271 0.567624674660 0.207325612166 0.333000000000 0 + 272 0.597096081398 0.265887019284 0.317589511891 0 + 273 1.098296211946 0.402380146297 0.333000000000 0 + 274 0.788507543275 0.349649411530 0.333000000000 0 + 275 0.957952687549 0.401058261829 0.296036594342 0 + 276 1.093877799790 0.409604427061 0.319935027961 0 + 277 3.000000000000 0.505352088908 0.333000000000 0 + 278 3.000000000000 0.490537765268 0.316529719107 0 + 279 3.000000000000 0.445764516985 0.313313224822 0 + 280 2.356047292407 0.533813252482 0.326972485018 0 + 281 2.400292821511 0.546195188033 0.327358093909 0 + 282 2.414568411214 0.550176806310 0.333000000000 0 + 283 2.351608201120 0.532556314100 0.333000000000 0 + 284 -0.000000000000 0.068916801344 0.216140076708 0 + 285 -0.000000000000 0.126624017441 0.235652689992 0 + 286 0.196495415399 0.201672372151 0.266420809976 0 + 287 0.083162878284 0.061587264266 0.215943759289 0 + 288 0.431781873931 0.121020082330 0.245606120238 0 + 289 -0.000000000000 0.208032514694 0.277085173136 0 + 290 0.151742254511 0.211924053427 0.273329996461 0 + 291 0.220334787014 0.055218419144 0.299918956076 0 + 292 -0.000000000000 0.074318770325 0.295741460964 0 + 293 -0.000000000000 0.163302880049 0.295967147479 0 + 294 0.188238887208 0.148630744971 0.299540286373 0 + 295 0.326094714487 0.076094981952 0.302000340096 0 + 296 0.936139673357 0.814791657591 0.149741401095 0 + 297 1.055679727142 0.935697839121 0.158470431489 0 + 298 0.838648208488 0.788048873433 0.170151254306 0 + 299 0.672286490096 0.779043754222 0.168490962812 0 + 300 0.534843421695 0.821490997674 0.117424651706 0 + 301 0.531998640743 0.832300134029 0.117116959096 0 + 302 0.456317015615 0.813474009822 0.120392806145 0 + 303 0.384371334887 0.804439595638 0.124794978621 0 + 304 0.384645656415 0.804515049655 0.124737344999 0 + 305 -0.000000000000 1.000000000000 0.112768541881 0 + 306 -0.000000000000 1.000000000000 0.140961701882 0 + 307 0.301076309878 1.000000000000 0.111854221284 0 + 308 -0.000000000000 0.853646856458 0.088209447475 0 + 309 0.175566367685 0.896317257024 0.094836676035 0 + 310 0.221106778302 0.787691426927 0.101869536287 0 + 311 -0.000000000000 0.799608759297 0.150626948092 0 + 312 0.370843458311 0.793613893644 0.122863004976 0 + 313 0.380439247899 0.801043783295 0.124166988521 0 + 314 -0.000000000000 0.765831979178 0.092107982696 0 + 315 0.275947878251 0.754384127330 0.119098699887 0 + 316 0.179330554337 0.768656699051 0.100686862164 0 + 317 -0.000000000000 0.728349370212 0.124833338703 0 + 318 -0.000000000000 0.730028695066 0.132074812019 0 + 319 0.107701931545 0.734876308455 0.125768226601 0 + 320 0.548756910839 0.560340275666 0.099536937924 0 + 321 -0.000000000000 0.476087038914 0.087156839479 0 + 322 0.284337647620 0.502892966078 0.091054982259 0 + 323 0.526239491247 0.524822255884 0.091243519619 0 + 324 0.517797400537 0.522856974231 0.086952343597 0 + 325 -0.000000000000 0.494846670230 0.056893837258 0 + 326 0.244098100099 0.488884020438 0.054028638840 0 + 327 0.433121051753 0.547844801276 0.039256556429 0 + 328 0.427088302180 0.583339417675 0.032348133478 0 + 329 0.461543215793 0.694255897096 0.039148314014 0 + 330 -0.000000000000 0.475165314244 0.060779876275 0 + 331 -0.000000000000 0.470560167796 0.067422754597 0 + 332 0.035776654152 0.471947208365 0.060822786589 0 + 333 -0.000000000000 0.762169372834 0.079511426159 0 + 334 0.180551837872 0.758473522257 0.065656808316 0 + 335 0.595829882596 0.659308672987 0.114300851325 0 + 336 0.588336846937 0.688010024207 0.107322074973 0 + 337 0.358449275393 0.738074453174 0.120288022998 0 + 338 0.378868752276 0.718620015289 0.123239719741 0 + 339 3.000000000000 -0.000000000000 0.049465939488 0 + 340 2.421253441336 -0.000000000000 0.024803883692 0 + 341 2.665375677349 0.156420847989 0.095089736031 0 + 342 2.352302070750 0.181479893892 0.075079033382 0 + 343 2.279138315503 0.185890320306 0.064260593811 0 + 344 2.228557822061 0.096281954809 0.116826938054 0 + 345 1.981066755438 -0.000000000000 0.112052265139 0 + 346 1.935102652952 -0.000000000000 0.089937126423 0 + 347 1.945704664102 0.079076718787 0.097201757602 0 + 348 1.950720334613 0.076311646102 0.099539340044 0 + 349 2.412640984036 -0.000000000000 0.136287955493 0 + 350 2.320029249941 -0.000000000000 0.136441043830 0 + 351 2.417850144153 0.071896259534 0.133747580537 0 + 352 2.417888396390 0.071898127370 0.133747451532 0 + 353 1.801208004743 0.523045663025 0.333000000000 0 + 354 1.814826744010 0.555139363654 0.333000000000 0 + 355 1.427152181772 0.451404501115 0.279123015826 0 + 356 1.440433769666 0.447998212529 0.281431862399 0 + 357 1.755955852408 0.650101725775 0.317452895109 0 + 358 1.754252146724 0.650345302225 0.317169590234 0 + 359 1.398978459190 0.453744472313 0.278026999368 0 + 360 1.133024945811 0.527456074741 0.273462059583 0 + 361 1.069601371803 0.553914191828 0.333000000000 0 + 362 1.065835867184 0.515992317449 0.333000000000 0 + 363 1.109733536516 0.417782009177 0.333000000000 0 + 364 1.094187577906 0.410234066516 0.319724308082 0 + 365 1.051091321144 0.438947927960 0.298490000640 0 + 366 1.036939331003 0.458210118903 0.294601082735 0 + 367 1.049657772953 0.513274508732 0.320795655511 0 + 368 1.905860670481 0.512052418631 0.333000000000 0 + 369 2.311720858094 0.533279432040 0.318354734517 0 + 370 2.003733434412 0.358428017168 0.288247441666 0 + 371 2.350206158118 0.340881309414 0.291799469593 0 + 372 1.968109323097 0.442852249283 0.299573518240 0 + 373 1.907403410068 0.512328621371 0.331824902942 0 + 374 2.046878344704 0.522177077993 0.312170541761 0 + 375 1.944437399087 0.350183852564 0.333000000000 0 + 376 2.023887715497 0.329282898322 0.333000000000 0 + 377 1.973764134498 0.344385754619 0.312585526393 0 + 378 0.592751728976 0.363771613932 0.070945331265 0 + 379 0.266061223013 0.400455783140 0.043124655959 0 + 380 -0.000000000000 0.444970140003 0.097461855604 0 + 381 0.611260572550 0.510895150436 0.095770741426 0 + 382 0.614363214730 0.509383819314 0.094785009987 0 + 383 0.244812935382 0.413218757392 0.042857239640 0 + 384 -0.000000000000 0.232384336408 0.333000000000 0 + 385 0.493854864641 0.176404243791 0.333000000000 0 + 386 0.429516258741 0.297397027279 0.283654810740 0 + 387 -0.000000000000 0.235595598411 0.275482508001 0 + 388 0.155811544944 0.214333599856 0.273095257555 0 + 389 -0.000000000000 0.317835528820 0.333000000000 0 + 390 -0.000000000000 0.377302639780 0.292844548090 0 + 391 0.011107493110 0.376946847402 0.292816481532 0 + 392 0.399593833299 0.303540555619 0.333000000000 0 + 393 0.424495272941 0.249893987679 0.253267092035 0 + 394 0.228013825590 0.309373140739 0.223111877768 0 + 395 0.132437516202 0.385716700235 0.218602141309 0 + 396 0.486152067677 0.302720742634 0.278048873801 0 + 397 0.309158338741 0.409088101539 0.262195667893 0 + 398 0.574788114172 0.448953410229 0.263792911459 0 + 399 0.797584220993 0.443396047460 0.269470834305 0 + 400 0.860432728866 0.368524709354 0.212066896610 0 + 401 0.291087476949 0.394801256001 0.207276937534 0 + 402 0.198617708413 0.396095976608 0.212965136473 0 + 403 0.241916640350 0.402728160615 0.211417299903 0 + 404 0.726816025599 0.344452764191 0.186602229131 0 + 405 0.847611903899 0.351459249170 0.197745933884 0 + 406 0.883164503042 0.339926304459 0.202679754493 0 + 407 0.667066641515 0.182218937561 0.232667072843 0 + 408 0.647111502980 0.189906074252 0.213066108658 0 + 409 0.654001538108 0.190349569246 0.212567483005 0 + 410 0.932315572221 0.273654192946 0.215623717571 0 + 411 0.732373391584 0.193650130725 0.210986872455 0 + 412 0.719549694138 0.206487707558 0.206172919920 0 + 413 0.737939191168 0.236997657380 0.200780091701 0 + 414 0.901542417174 0.185933704944 0.242387878385 0 + 415 0.947407256547 0.189014887946 0.238766141878 0 + 416 0.984737008972 0.201529672790 0.240240685305 0 + 417 0.643983558544 0.803786568343 0.286272740904 0 + 418 0.603933125445 0.571548887280 0.271136103668 0 + 419 0.503658085213 0.626116758689 0.248825995173 0 + 420 0.654115493060 0.672351165635 0.212538331839 0 + 421 0.919992100840 0.661028165200 0.215756325804 0 + 422 1.071339355192 0.609283529035 0.216071639572 0 + 423 0.870776328282 0.644445644777 0.211734813355 0 + 424 1.074014767527 0.608515308207 0.216292407093 0 + 425 1.128997390178 0.599210038293 0.230352519374 0 + 426 1.155475249928 0.596561617160 0.239815735333 0 + 427 1.141602727819 0.623433642299 0.272295530880 0 + 428 1.156282846186 0.593522190071 0.237985847594 0 + 429 0.639559393907 0.804608944598 0.285249562666 0 + 430 0.473166316634 0.803793648379 0.245989765062 0 + 431 0.562358921367 0.707182056146 0.217099422628 0 + 432 0.421837195914 0.731704176630 0.232118247453 0 + 433 0.463155082189 0.798628271948 0.243502262005 0 + 434 0.468350275309 0.803561435678 0.244191615693 0 + 435 0.572202516580 0.793381339113 0.234784838708 0 + 436 0.588479496628 0.785941824210 0.232064988335 0 + 437 1.142554337725 0.601980167721 0.270877699964 0 + 438 1.151053672633 0.569983158545 0.251619913160 0 + 439 1.027254761814 0.523254827925 0.266174145324 0 + 440 1.116634119207 0.539658171360 0.266879489179 0 + 441 1.119922445409 0.540843816903 0.264750236584 0 + 442 1.049831018326 0.528697103789 0.261543383811 0 + 443 3.000000000000 -0.000000000000 0.146691503354 0 + 444 2.557743008909 -0.000000000000 0.146934072356 0 + 445 3.000000000000 -0.000000000000 0.230726984615 0 + 446 2.809377007640 -0.000000000000 0.224796830650 0 + 447 2.846967182649 0.083789448923 0.228364895299 0 + 448 3.000000000000 0.100886387797 0.233615081945 0 + 449 2.851005869139 0.153241976393 0.222930871739 0 + 450 3.000000000000 0.190946527546 0.226341780231 0 + 451 2.585430320823 0.117668166592 0.144177616417 0 + 452 2.776181195730 0.217229262774 0.193620211523 0 + 453 2.687194452826 0.203291019552 0.167426503158 0 + 454 2.864704468537 0.200048865409 0.142105248757 0 + 455 3.000000000000 0.233364949940 0.212224361868 0 + 456 2.924278166615 0.202327531002 0.142019488595 0 + 457 3.000000000000 0.201763462146 0.141991097598 0 + 458 3.000000000000 0.206631765285 0.145428313607 0 + 459 -0.000000000000 0.453800159851 0.133057211949 0 + 460 0.346309040850 0.533595340595 0.162534566852 0 + 461 0.572580296278 0.381441557054 0.141259049450 0 + 462 0.537108980755 0.372953170934 0.150368248535 0 + 463 0.752826046906 0.522496019987 0.109604154515 0 + 464 0.586192468595 0.495217753971 0.169950891782 0 + 465 0.698617044853 0.419180619256 0.165366993046 0 + 466 0.678350393212 0.597847870882 0.141394838927 0 + 467 0.735319819792 0.605239614327 0.123125491942 0 + 468 0.868024536559 0.547009994055 0.123588650810 0 + 469 0.907087410644 0.513161712680 0.133251665775 0 + 470 0.923634395307 0.478571276162 0.148892631060 0 + 471 0.787407558708 0.513227802586 0.162739583588 0 + 472 0.847473580533 0.459239190649 0.160204404558 0 + 473 0.913608208892 0.476329885902 0.152644162612 0 + 474 0.853966385766 0.488954877874 0.160159422320 0 + 475 2.180900954474 0.420460351021 0.179251225063 0 + 476 2.117089287065 0.236431131020 0.154016117269 0 + 477 2.256473608781 0.363445147679 0.189120279516 0 + 478 2.152761522636 0.372778477774 0.141766243930 0 + 479 2.395552923479 0.239632756065 0.180912973179 0 + 480 2.194650573141 0.277316823719 0.205585048856 0 + 481 1.589139663047 0.288981566322 0.208784226690 0 + 482 1.964829768725 0.181404302994 0.214185846069 0 + 483 1.970681107752 0.217205294886 0.218675453130 0 + 484 1.531786875457 0.349537239749 0.131965064756 0 + 485 2.083240694086 0.423084706932 0.157684341747 0 + 486 2.212207687286 0.429574026871 0.175343008273 0 + 487 2.327326845409 0.403193701357 0.175603618989 0 + 488 2.156160287013 0.373510784383 0.142014490187 0 + 489 2.340217542349 0.218336460574 0.177953553887 0 + 490 2.268456215100 0.207928616352 0.188681252346 0 + 491 2.383687648217 0.230651001865 0.180788196054 0 + 492 2.402478293765 0.306374427596 0.173885021726 0 + 493 2.343375736498 0.368883958917 0.160880415028 0 + 494 2.344861652637 0.395461212642 0.173853655404 0 + 495 2.257933654800 0.910412207118 0.243760541012 0 + 496 1.990359802486 0.888792510570 0.259087021046 0 + 497 2.381666531005 1.000000000000 0.234208127852 0 + 498 2.427442079251 1.000000000000 0.244225919818 0 + 499 2.434713643505 0.990587397029 0.242468699664 0 + 500 2.441650972220 1.000000000000 0.240798923538 0 + 501 1.964635580979 0.877643185145 0.223419481553 0 + 502 1.980422634403 0.878663996684 0.221472053552 0 + 503 1.631066249175 0.991229295443 0.297292855943 0 + 504 1.646284849218 1.000000000000 0.297432165460 0 + 505 1.595603255236 1.000000000000 0.298279716113 0 + 506 1.569293677646 1.000000000000 0.285492552424 0 + 507 1.859792527699 0.940741626800 0.192178275362 0 + 508 1.839885577387 0.918849629124 0.195647422443 0 + 509 1.733826558390 0.920836605807 0.200982741644 0 + 510 1.635114346471 0.945121200741 0.203461877843 0 + 511 1.618476833020 1.000000000000 0.198250914036 0 + 512 1.818968125088 1.000000000000 0.187748852478 0 + 513 1.212344173154 0.852884150953 0.204436615931 0 + 514 1.450702498721 0.856505468729 0.204809065651 0 + 515 1.396712295902 0.856855796772 0.198915446306 0 + 516 1.440901076925 0.857111070214 0.201049345508 0 + 517 1.491114990480 0.873456626218 0.202186978216 0 + 518 0.932676987153 1.000000000000 0.299106759655 0 + 519 1.236844779969 1.000000000000 0.179644949885 0 + 520 1.231633550570 0.971719201146 0.181658253174 0 + 521 1.532395584471 1.000000000000 0.302476634963 0 + 522 2.595656040694 0.542935668833 0.275059130347 0 + 523 2.595680220890 0.542645631952 0.275024381041 0 + 524 2.067810548559 0.513098829164 0.264009975666 0 + 525 2.017934451776 0.536590242561 0.272400048859 0 + 526 2.081844510197 0.589881529720 0.291550926479 0 + 527 2.078593565199 0.461398344826 0.257906968832 0 + 528 2.368494309886 0.558741301607 0.312210679261 0 + 529 2.572908644752 0.557100719607 0.280123115683 0 + 530 2.360170691897 0.600777744055 0.295642849177 0 + 531 2.140081832012 0.592976353255 0.292699315512 0 + 532 2.351119168224 0.592262878169 0.300721023484 0 + 533 2.443457226613 0.341294890720 0.277285649552 0 + 534 2.452836569634 0.419859464411 0.258155893686 0 + 535 2.337676497150 0.412864078471 0.255686514821 0 + 536 1.906262018853 0.388225075652 0.272697262807 0 + 537 1.903071887197 0.396357194247 0.273843809563 0 + 538 1.960012604492 0.348769069807 0.275946541706 0 + 539 2.440976231903 0.339947406273 0.277529068499 0 + 540 2.142740204983 0.333652519045 0.271967439080 0 + 541 2.214329992765 0.343160325430 0.268460499083 0 + 542 0.617152090014 -0.000000000000 0.187965770414 0 + 543 0.084936091595 -0.000000000000 0.204874024743 0 + 544 0.068811145065 -0.000000000000 0.202124834774 0 + 545 0.078210608404 0.018727472987 0.204396169999 0 + 546 0.114289204796 0.055751045152 0.208434741773 0 + 547 0.457776277685 0.121047022188 0.243802717910 0 + 548 0.983688136984 -0.000000000000 0.258731737600 0 + 549 0.769289137950 -0.000000000000 0.273944269554 0 + 550 0.706539557003 0.082979290068 0.268501405776 0 + 551 0.788393226407 0.155041952311 0.204357444462 0 + 552 0.975823870727 0.176944731637 0.238189217650 0 + 553 0.637916213597 0.187815629283 0.212642667104 0 + 554 2.440785598167 0.643485765830 0.333000000000 0 + 555 2.360894545488 0.796946163005 0.302972669988 0 + 556 2.319738716642 0.677226825490 0.281183652185 0 + 557 2.403776212835 0.634023154425 0.290560936169 0 + 558 2.075902581869 0.594730253114 0.291120964786 0 + 559 1.921163944621 0.626385994834 0.302683203580 0 + 560 2.050940535261 0.607750153508 0.288302183053 0 + 561 2.541314813235 0.718690266194 0.324874542330 0 + 562 2.409229842658 0.801481399378 0.311953042170 0 + 563 2.541432574483 0.715515162731 0.333000000000 0 + 564 2.407409176669 0.800413759961 0.317553933025 0 + 565 2.395427246920 0.796621017301 0.333000000000 0 + 566 2.406999131565 0.794751684833 0.333000000000 0 + 567 0.855880642433 0.311329452419 -0.000000000000 0 + 568 0.410881758744 0.244628801649 -0.000000000000 0 + 569 0.442008730232 0.324358303356 -0.000000000000 0 + 570 0.396967279065 0.323271285841 0.027787068115 0 + 571 0.360620280501 0.262301865247 0.035599407359 0 + 572 0.883556418256 0.180180948767 -0.000000000000 0 + 573 0.857282307256 0.306042716017 0.058155801093 0 + 574 0.897331303051 0.280611357841 0.064718370801 0 + 575 1.088033351540 0.245290936552 -0.000000000000 0 + 576 0.971835259792 0.183390870881 0.050162978489 0 + 577 1.006122721668 0.239637990197 0.071506869939 0 + 578 1.012500027805 0.303354957975 0.033767412951 0 + 579 0.998201743731 0.302569684843 0.047471465459 0 + 580 1.042670385151 0.262832256922 0.059274014621 0 + 581 1.107310934188 0.264305204638 -0.000000000000 0 + 582 1.057908785800 0.298289038560 -0.000000000000 0 + 583 0.914286067244 0.225799878092 0.074711696620 0 + 584 1.000898284791 0.235354395857 0.072334323204 0 + 585 0.959906736556 0.190467301034 0.068094232019 0 + 586 1.000205018013 0.234705824634 0.072367846628 0 + 587 0.965337601785 0.198422416733 0.070567062867 0 + 588 0.917092782445 0.197844000002 0.073158197884 0 + 589 0.876916857189 0.204190261142 0.076015307280 0 + 590 0.883577622261 0.207061850648 0.075943508599 0 + 591 1.958866695103 0.466464939192 0.202755268707 0 + 592 1.862477008896 0.423188410542 0.240286376680 0 + 593 2.156063232409 0.308259742734 0.232582405038 0 + 594 2.027187906847 0.305278053870 0.259050437583 0 + 595 1.530340835669 0.328850316703 0.218616189006 0 + 596 1.572707447514 0.410154167423 0.225869638069 0 + 597 1.627301756798 0.397294282557 0.245233160617 0 + 598 1.834061569680 0.376899873366 0.265838030269 0 + 599 1.847287121905 0.369607641773 0.266404759000 0 + 600 1.614102760122 0.369831961897 0.243155013392 0 + 601 1.633293991536 0.393745331239 0.247540501020 0 + 602 -0.000000000000 0.041384093433 0.073398238719 0 + 603 0.531360432590 0.064526088739 0.131080876478 0 + 604 0.571052609598 0.068699434103 0.130958573941 0 + 605 0.566527716280 0.052717077736 0.129320207025 0 + 606 0.674351086540 0.193102889247 0.122688477160 0 + 607 0.682131951299 0.189902382376 0.122945940677 0 + 608 0.863227669178 0.203638969420 0.077175846088 0 + 609 0.852361386987 0.206040717620 0.078029511107 0 + 610 -0.000000000000 0.145674009462 0.117006467743 0 + 611 0.065003963582 0.146742139508 0.123325906167 0 + 612 0.586471584338 0.023117428891 0.118745119756 0 + 613 0.840357345712 0.179835332091 0.079030338095 0 + 614 0.529158137650 0.005569892728 0.106229714831 0 + 615 0.863001908715 0.196828150937 0.076024399519 0 + 616 0.864755637718 0.201582565394 0.076403244384 0 + 617 -0.000000000000 0.109270960699 0.057234345853 0 + 618 0.182974711903 0.168291892512 0.060108343919 0 + 619 0.114119426547 0.135151435827 0.056313669730 0 + 620 0.050626722597 0.121578056943 0.056629293385 0 + 621 0.126848048908 0.144501503528 0.057247798867 0 + 622 0.746507466419 0.695270324567 0.162295650170 0 + 623 0.909160581647 0.766050333215 0.168815393383 0 + 624 1.053807382108 0.738315085576 0.213044082714 0 + 625 1.176628493683 0.828239466104 0.202507716989 0 + 626 0.667593567057 0.676214090696 0.160340009202 0 + 627 0.704624930641 0.655153415323 0.169894553005 0 + 628 0.630503741998 0.692240622918 0.161394666870 0 + 629 1.156806294728 0.841882314611 0.204868329707 0 + 630 0.593289839813 0.794193826353 0.232133394527 0 + 631 1.045464255777 0.817545572051 0.215760662258 0 + 632 0.752694756376 0.621851377485 0.194800238511 0 + 633 0.563894236132 0.697808367289 0.211959697132 0 + 634 0.675105777252 0.651897331348 0.204303255423 0 + 635 1.168638692637 0.792444556306 0.133071253930 0 + 636 1.157799787013 0.785042132568 0.132745004500 0 + 637 1.124893225020 0.778386294490 0.120456341861 0 + 638 1.142339516217 0.789599090661 0.121482992141 0 + 639 0.859968197851 0.784242088714 0.101038764412 0 + 640 0.850040642132 1.000000000000 0.109707094656 0 + 641 0.877712983640 0.954850689650 0.098622994994 0 + 642 0.837948273211 0.916750502521 0.096555590651 0 + 643 2.276054233902 0.420606472033 0.076944897757 0 + 644 1.967296477667 0.501543137855 0.094827949280 0 + 645 2.189904049599 0.477435614710 0.108619093171 0 + 646 2.288745966315 0.418459827303 0.077129504152 0 + 647 2.431188839448 0.418926774864 0.098337975881 0 + 648 2.465970716077 0.433922022387 0.097181562389 0 + 649 2.321875671148 0.494303132372 0.049821014041 0 + 650 2.271926428496 0.538870398570 0.036770356565 0 + 651 1.938187914246 0.541204915214 0.050379872895 0 + 652 2.027173423077 0.547807847772 0.044285766045 0 + 653 1.869258221701 0.638733484619 0.083959666404 0 + 654 2.264377297103 0.562816715130 0.037249143998 0 + 655 2.167679619585 0.579817568202 0.040731813388 0 + 656 2.178952675841 0.565851024820 0.035797766351 0 + 657 2.259775098055 0.555818587778 0.034465142757 0 + 658 1.754866895093 0.571907304719 0.085990448304 0 + 659 1.737854954012 0.581484948077 0.079604154136 0 + 660 1.828703003320 0.633152478434 0.086013997386 0 + 661 1.849589948884 0.611806369022 0.096437328193 0 + 662 2.016864491748 0.308290887934 0.333000000000 0 + 663 2.049412570177 0.138598536912 0.333000000000 0 + 664 2.002153259002 0.145809059510 0.312611297979 0 + 665 1.936902128938 0.336768465501 0.299890040546 0 + 666 1.851080472009 0.325007630618 0.285704479105 0 + 667 1.770556183859 0.285151346634 0.286933232671 0 + 668 1.653463361155 0.222863453794 0.290905067463 0 + 669 1.905164050143 0.283659758687 0.281257547976 0 + 670 1.898512611635 0.329838894072 0.282237962628 0 + 671 1.874374380917 0.327263741912 0.283212585124 0 + 672 -0.000000000000 -0.000000000000 0.311071843564 0 + 673 0.256291103100 -0.000000000000 0.311348099503 0 + 674 -0.000000000000 0.051821065052 0.202954686465 0 + 675 0.072195084082 0.050961451129 0.207028762222 0 + 676 -0.000000000000 0.032429292703 0.201162732451 0 + 677 -0.000000000000 -0.000000000000 0.200454747039 0 + 678 0.054785775402 -0.000000000000 0.201317930442 0 + 679 -0.000000000000 0.575092437806 0.264622824415 0 + 680 0.398395398734 0.777179067100 0.333000000000 0 + 681 0.563184450978 0.530089481147 0.275190115877 0 + 682 0.462967826569 0.577441171962 0.254374290201 0 + 683 0.388279832772 0.756808700739 0.333000000000 0 + 684 0.258300335169 0.708840114260 0.333000000000 0 + 685 0.081563484607 0.612649321377 0.244940927939 0 + 686 0.179261696088 0.616301950497 0.241258816668 0 + 687 0.460729798406 0.523907778920 0.286673704375 0 + 688 0.525092606088 0.521323971695 0.281974541335 0 + 689 0.531259899658 0.520124901706 0.280614655796 0 + 690 -0.000000000000 0.580705353006 0.314159485179 0 + 691 -0.000000000000 0.523442135961 0.289481261800 0 + 692 0.151972451758 0.516182813117 0.289981964485 0 + 693 0.282352581638 0.530713604632 0.299357723500 0 + 694 0.276793152001 0.533782049598 0.300547341796 0 + 695 0.059040222571 0.611151924551 0.328690689724 0 + 696 0.321091647174 0.727850002836 0.230448174891 0 + 697 0.328076878184 0.726354160249 0.230275291114 0 + 698 0.405780835174 0.780652741876 0.331861762727 0 + 699 0.643589342937 0.804645758936 0.286437806688 0 + 700 0.496864014531 0.817362669117 0.263721787500 0 + 701 0.641994722345 0.804863922218 0.286043506051 0 + 702 0.524778021226 0.403273618914 0.333000000000 0 + 703 -0.000000000000 0.387434638365 0.290787204796 0 + 704 -0.000000000000 0.464438052342 0.282706270540 0 + 705 -0.000000000000 0.438355292918 0.276971899872 0 + 706 0.530188588954 0.520362138276 0.282120150285 0 + 707 0.594461865590 0.508055346085 0.276255804305 0 + 708 0.623915442059 0.475275084098 0.268254247553 0 + 709 0.806844918971 0.453608337699 0.270923521667 0 + 710 0.831315159899 0.463164780817 0.274865577743 0 + 711 0.863379586651 0.457212244773 0.280140752274 0 + 712 0.957956248512 0.401309666253 0.295928053812 0 + 713 1.533094249744 0.602933459392 0.043474217846 0 + 714 0.850525834976 0.580129251860 -0.000000000000 0 + 715 1.123952365832 0.540851767254 0.048093094266 0 + 716 1.054361364321 0.517150691879 0.038276448427 0 + 717 1.056487671017 0.470059149873 -0.000000000000 0 + 718 0.845409803677 0.568353221902 -0.000000000000 0 + 719 1.008964982486 0.506684097344 0.031513520522 0 + 720 1.017906429427 0.502398688217 0.031249179354 0 + 721 2.839789883125 0.385860448187 0.051918708633 0 + 722 2.619455237069 0.514322002360 -0.000000000000 0 + 723 2.965959917598 0.428464377029 0.068874038541 0 + 724 2.626606052251 0.525474877639 -0.000000000000 0 + 725 3.000000000000 0.433460957912 0.070419308769 0 + 726 3.000000000000 0.422700536316 0.070546671729 0 + 727 2.984526886543 0.429205321813 0.070439566916 0 + 728 3.000000000000 0.623583652362 -0.000000000000 0 + 729 3.000000000000 0.623334458727 0.001272473439 0 + 730 2.922860950275 0.605890046697 -0.000000000000 0 + 731 -0.000000000000 1.000000000000 0.054678389810 0 + 732 0.228736316474 1.000000000000 0.076049620229 0 + 733 2.292973218757 0.866882577098 0.333000000000 0 + 734 2.291781307405 0.886646083461 0.308632962026 0 + 735 1.968169554351 0.850321220341 0.281647506328 0 + 736 1.968619674804 0.850866312497 0.281624731436 0 + 737 1.673767842382 0.967137741374 0.298214737656 0 + 738 2.389246991227 0.828346119537 0.297648620624 0 + 739 2.365386576970 0.822155573717 0.294671899040 0 + 740 2.357535755231 0.817183774960 0.294774100465 0 + 741 2.410118023337 0.803271782911 0.311488944006 0 + 742 3.000000000000 0.210028447254 0.105202315332 0 + 743 2.865365153597 0.209147780416 0.113636966477 0 + 744 2.873036142115 0.203221979322 0.139756434829 0 + 745 3.000000000000 1.000000000000 0.011157073093 0 + 746 3.000000000000 1.000000000000 0.160608512722 0 + 747 2.798184563682 1.000000000000 0.164948262011 0 + 748 2.772118972441 1.000000000000 0.030706950500 0 + 749 2.174314204462 0.937569281450 0.124437902442 0 + 750 2.098177809628 0.977107045135 0.104088710733 0 + 751 2.083221508409 1.000000000000 0.104823682531 0 + 752 2.122475625754 1.000000000000 0.121692846033 0 + 753 0.896533771560 0.092210661130 0.173042093213 0 + 754 0.829343455570 -0.000000000000 0.158477171491 0 + 755 1.189160129766 0.031938833616 0.162229229931 0 + 756 1.108524573167 0.157166446989 0.238374032977 0 + 757 1.420590528599 0.083728238276 0.220671096039 0 + 758 1.235883966857 -0.000000000000 0.156915528218 0 + 759 1.300680963981 -0.000000000000 0.160614489749 0 + 760 1.295175327607 0.010982728680 0.160460855946 0 + 761 1.245148332166 0.003862808434 0.157500894020 0 + 762 1.518956671987 -0.000000000000 0.243171615907 0 + 763 1.469560354978 -0.000000000000 0.250949630493 0 + 764 1.456986964064 0.019328893948 0.248893254997 0 + 765 1.508041710333 0.015209426807 0.241714316100 0 + 766 0.501537205747 0.526136151933 0.237624382238 0 + 767 0.675113047150 0.563871115568 0.193920947647 0 + 768 0.331311679505 0.505718951490 0.193991701063 0 + 769 0.269186072012 0.493856046606 0.201067463453 0 + 770 0.905295092203 0.475354562186 0.245863079760 0 + 771 0.802029609013 0.563516624891 0.184130990648 0 + 772 0.884999102644 0.550626533017 0.187771047990 0 + 773 0.644054003289 0.376813267346 0.174275007781 0 + 774 0.843962247703 0.400846289165 0.174884664141 0 + 775 0.721945642141 0.349127066383 0.183901863422 0 + 776 2.039213901025 0.288022665623 0.267226635922 0 + 777 2.039043395519 0.313113975307 0.267398222348 0 + 778 1.882404947754 0.365607458118 0.271228436412 0 + 779 1.959756761585 0.348699787826 0.275930905062 0 + 780 1.043480212051 0.201908370653 0.242422864684 0 + 781 1.038202748026 0.199250115131 0.240762816385 0 + 782 1.981213634318 0.134137664138 0.225049944937 0 + 783 1.968139332247 0.165384103074 0.216305516184 0 + 784 2.194059659443 0.080516258843 0.243082417031 0 + 785 2.241864230268 0.146077801493 0.264294656062 0 + 786 2.216860136120 0.206859022890 0.274224932310 0 + 787 3.000000000000 0.267843032065 0.239632930692 0 + 788 3.000000000000 0.254538523749 0.250270636710 0 + 789 3.000000000000 0.240132791025 0.213613419733 0 + 790 2.591374479571 0.231778118342 0.183979372723 0 + 791 2.444916919914 0.339704266061 0.277510892636 0 + 792 2.031688130792 0.110771273896 0.226970821879 0 + 793 2.059494060203 0.143943299760 0.212957040707 0 + 794 2.471068035170 0.234888617255 0.180484987238 0 + 795 2.026830369659 0.146449745304 -0.000000000000 0 + 796 1.771789510075 -0.000000000000 0.038315141232 0 + 797 1.786207769387 0.019263969478 0.033673145400 0 + 798 1.800037927128 0.148099255730 0.028681342718 0 + 799 2.018884860414 0.186460620284 -0.000000000000 0 + 800 1.820561719771 0.168591828344 0.025566650371 0 + 801 1.696597288743 -0.000000000000 0.062032661084 0 + 802 1.690221898964 0.034006978641 0.063877479001 0 + 803 1.797874110814 0.132754105697 0.083995245896 0 + 804 1.843926573937 0.180317262011 0.070413932131 0 + 805 2.203169879836 0.219082612261 0.055930200090 0 + 806 0.895681370644 0.182442800010 0.157071398401 0 + 807 0.875063729525 0.193310521528 0.154065685211 0 + 808 1.171091049222 0.045211129977 0.125946311086 0 + 809 1.223854940960 0.144403698803 0.081055648931 0 + 810 1.397855003438 0.321810680570 0.107619013341 0 + 811 1.027794705378 0.240933188144 0.073593502524 0 + 812 0.870970097516 0.204023108602 0.076664517316 0 + 813 1.561140709229 0.202212237632 0.095876997065 0 + 814 0.885340845926 0.196853125175 0.075123910295 0 + 815 0.872871249631 0.203101499681 0.076218920568 0 + 816 1.223121276113 0.266338114198 0.082105191480 0 + 817 1.930235668372 0.606457079682 0.268155210173 0 + 818 1.685110623268 0.690303550922 0.284397988028 0 + 819 1.951319808548 0.621993064515 0.271856535776 0 + 820 1.942068895913 0.612001189654 0.268770636860 0 + 821 1.947064648276 0.624075439674 0.270450697310 0 + 822 1.487083788506 0.475145461537 0.256242641109 0 + 823 1.527285675004 0.452030980582 0.263019743071 0 + 824 1.460122247095 0.449261831972 0.272739380212 0 + 825 1.197931607791 0.630511640766 0.283640899270 0 + 826 1.130529500326 0.533667761951 0.270612637172 0 + 827 0.000000000000 1.000000000000 0.000000000000 0 + 828 0.475146470908 1.000000000000 0.045262429706 0 + 829 0.127393845045 1.000000000000 -0.000000000000 0 + 830 0.525373715540 0.907737967845 0.049793092263 0 + 831 -0.000000000000 0.823869721461 -0.000000000000 0 + 832 0.283175329067 0.789037930953 0.015687474297 0 + 833 0.158952634928 0.811151048514 -0.000000000000 0 + 834 3.000000000000 0.686428190505 0.309827603341 0 + 835 2.658761015475 0.641966913507 0.243491338993 0 + 836 2.383034854059 0.699976389888 0.258212903917 0 + 837 2.314427392814 0.698512267403 0.270511962965 0 + 838 2.768890815699 0.601992175117 0.246739641253 0 + 839 3.000000000000 0.849738786432 0.270347445151 0 + 840 3.000000000000 0.849874938234 0.271458106790 0 + 841 2.589497921067 0.855566180647 0.290366409611 0 + 842 2.534577877975 0.853759466481 0.271946511272 0 + 843 2.840752971957 0.850115192052 0.262742804863 0 + 844 2.517013239442 0.855835903317 0.287707643738 0 + 845 2.522366637343 0.854149843531 0.274312436904 0 + 846 3.000000000000 0.594958966563 0.272183984721 0 + 847 3.000000000000 0.602834726208 0.257846285823 0 + 848 2.784634591852 0.597876865413 0.247284984599 0 + 849 2.765505536928 0.594747203515 0.251242740306 0 + 850 2.704579039130 0.582410891724 0.268159674551 0 + 851 0.000000000000 1.000000000000 0.333000000000 0 + 852 -0.000000000000 0.824611815161 0.333000000000 0 + 853 -0.000000000000 0.890712504116 0.236660690071 0 + 854 0.382682397322 0.843621181077 0.243799395018 0 + 855 0.103006212664 0.881121666938 0.234086394784 0 + 856 0.401713011735 0.780320274925 0.333000000000 0 + 857 0.647619306443 0.805291734157 0.286777480172 0 + 858 -0.000000000000 0.703755325165 0.161817613762 0 + 859 0.370046605242 0.701713532434 0.216327362294 0 + 860 -0.000000000000 0.478111800083 0.207942188306 0 + 861 0.257096414146 0.496712508365 0.200991998238 0 + 862 0.295213221851 0.509340421070 0.195146410029 0 + 863 -0.000000000000 0.601675687257 0.245599928390 0 + 864 -0.000000000000 0.773765697770 0.219555561737 0 + 865 -0.000000000000 0.626653208000 0.157755215689 0 + 866 -0.000000000000 0.567589760150 0.164290481210 0 + 867 0.074391162581 0.566261510544 0.165553088984 0 + 868 0.906345472041 0.959479373051 0.071041062575 0 + 869 0.896886314569 0.714193034130 0.095350202419 0 + 870 0.554660813350 0.709740386619 0.002943021886 0 + 871 0.748461449649 0.722669725841 0.010537281117 0 + 872 1.051601577689 0.807505697961 0.037926037191 0 + 873 0.994161359743 0.729085218823 0.063045874923 0 + 874 0.372622495015 0.793908929274 0.122915376187 0 + 875 2.180991428943 0.377375453212 0.132270796416 0 + 876 2.318289396174 0.336679370712 0.086210371318 0 + 877 2.242037146193 0.321571320552 0.075706744697 0 + 878 2.228954928065 0.296338673937 0.067738238522 0 + 879 2.320169150227 0.333802145278 0.085584218537 0 + 880 2.192132417265 0.269200994507 0.059315134340 0 + 881 1.597149022924 0.192017035147 0.093329598463 0 + 882 1.735258756302 0.204878588134 0.076874333776 0 + 883 -0.000000000000 0.702313283043 0.145074826063 0 + 884 0.442774812507 0.693193089665 0.132773410242 0 + 885 0.719610907588 0.616663114484 0.122668062502 0 + 886 0.646500486349 0.629153134485 0.137142997398 0 + 887 0.000000000000 0.000000000000 0.333000000000 0 + 888 0.546699571632 -0.000000000000 0.326926287662 0 + 889 0.560740956879 -0.000000000000 0.333000000000 0 + 890 0.581880631985 0.119510341395 0.333000000000 0 + 891 0.534452964720 0.048571929425 0.317912520991 0 + 892 1.596748158591 0.156343818090 0.008979045828 0 + 893 1.137967111104 0.226032945414 -0.000000000000 0 + 894 1.189164181581 0.112672165697 0.044005694320 0 + 895 1.624969394984 0.175458713270 -0.000000000000 0 + 896 1.624826773263 0.173933928109 0.000627068204 0 + 897 1.692699197275 0.171003990874 0.011104875441 0 + 898 1.745032874658 0.179920902931 0.014445483111 0 + 899 1.682301078309 0.193858902728 -0.000000000000 0 + 900 1.429002790654 0.270686130501 -0.000000000000 0 + 901 1.223236414435 0.131867219943 0.077891980103 0 + 902 1.106337960603 0.108049728913 0.061194247226 0 + 903 0.976499974148 0.157542422243 0.061467837191 0 + 904 0.958054914766 0.168407332665 0.059704522179 0 + 905 0.957748250680 0.178424129911 0.064910587631 0 + 906 1.013829667661 0.239418021024 0.072759150362 0 + 907 0.685161432103 0.502188070473 0.092214811344 0 + 908 0.889166064871 0.495948762980 0.039885159169 0 + 909 0.833972776747 0.373653048095 0.052058733048 0 + 910 1.000960988040 0.319075101137 0.045317938479 0 + 911 0.801884385178 0.330975997346 0.059591106097 0 + 912 0.792829906963 0.332989410553 0.061941478988 0 + 913 1.066371810538 0.474460109816 0.030150193524 0 + 914 1.022101024924 0.473616344808 0.141512867319 0 + 915 1.149181023649 0.539407787832 0.053016263101 0 + 916 1.318143156910 0.544262805188 0.071638798324 0 + 917 1.227835474536 0.564064626183 0.074861137113 0 + 918 1.239603083526 0.426064918982 0.133690585328 0 + 919 1.363350327294 0.405379730403 0.126453490607 0 + 920 1.443847554013 0.349129240889 0.112495798626 0 + 921 0.987614720214 0.487995206199 0.139760781930 0 + 922 0.913838893365 0.551852683173 0.121531792550 0 + 923 2.096257843886 0.504767565590 0.232166586154 0 + 924 2.092502295163 0.570089979486 0.228475631762 0 + 925 1.941122700372 0.609957592712 0.268314264869 0 + 926 1.712577641706 0.603978604176 0.232124576715 0 + 927 1.467141152609 0.497752365098 0.241829445859 0 + 928 1.824284437582 0.636634185339 0.228607467977 0 + 929 2.023241501469 0.633970573122 0.225831596697 0 + 930 1.943502478876 0.654957821183 0.246822480883 0 + 931 1.933830097330 0.653839331436 0.245712039614 0 + 932 1.475908650779 0.482512381904 0.242574401046 0 + 933 1.462773779939 0.489693320043 0.245004133570 0 + 934 1.856262631718 0.377870556030 0.269643507563 0 + 935 1.762825360525 0.400313592626 0.270312539051 0 + 936 1.550727085659 0.438791334650 0.263990103602 0 + 937 2.536221490653 0.383935977149 0.126890256766 0 + 938 2.524095785601 0.391953080373 0.104864421440 0 + 939 2.449944535456 0.391822570323 0.102683988356 0 + 940 2.520358870092 0.392002124836 0.104604597154 0 + 941 2.181336065318 0.377445899626 0.132266328015 0 + 942 2.529013580604 0.235685332559 0.179694969372 0 + 943 0.842292221310 0.228186803765 0.079741971561 0 + 944 1.007016916087 0.477393097419 0.143535685205 0 + 945 1.457924482731 0.557415628898 0.222799612153 0 + 946 1.462094166864 0.573611111044 0.213352343770 0 + 947 1.533426640423 0.487839979170 0.203433068392 0 + 948 1.662032539962 0.629051588861 0.208928403546 0 + 949 1.546068539154 0.422475423724 0.222648340038 0 + 950 0.522567032617 0.284712809457 0.157117282887 0 + 951 0.319551665386 0.281837259583 0.149051980896 0 + 952 0.513756420566 0.349417047270 0.157003626902 0 + 953 0.265348229123 0.323739813765 0.147054188287 0 + 954 2.363046178655 1.000000000000 0.333000000000 0 + 955 2.351299871153 1.000000000000 0.308315867596 0 + 956 1.733201027387 0.681262166722 0.143861142450 0 + 957 2.114189571644 0.790246047608 0.074749023756 0 + 958 1.736241468289 0.699157322665 0.100605627046 0 + 959 1.816841196066 0.773440820832 0.148598065078 0 + 960 2.063988542756 0.894459284447 0.105566729949 0 + 961 1.845328082391 0.816749749372 0.114637763896 0 + 962 1.919565045005 0.698368193793 0.077476234049 0 + 963 1.790977339109 0.663214314916 0.085293191984 0 + 964 2.129449024076 0.870793492009 0.149206043900 0 + 965 2.388185157301 0.856384629232 0.143139227392 0 + 966 2.182623607709 0.907531232647 0.129378557778 0 + 967 2.220554698259 0.281636436470 0.056657878754 0 + 968 2.452212107251 0.490126005240 -0.000000000000 0 + 969 2.257573541165 0.365066912977 0.031376752025 0 + 970 2.203767223309 0.272020357746 0.055783465930 0 + 971 2.194629004359 0.307821547134 -0.000000000000 0 + 972 2.185894633495 0.314506616324 0.031798000442 0 + 973 0.213941795378 0.217925361252 0.266111796443 0 + 974 -0.000000000000 0.343248684634 0.218566501746 0 + 975 0.160671791546 0.309854163558 0.222168582403 0 + 976 -0.000000000000 0.392292361080 0.217195204231 0 + 977 -0.000000000000 0.389014656088 0.216648448622 0 + 978 0.023988010900 0.390683147373 0.216907353707 0 + 979 1.458175024199 0.673173839132 0.158511614759 0 + 980 1.342026489866 0.701894078963 0.086922827209 0 + 981 1.718971588043 0.679202978067 0.148589993480 0 + 982 1.072969344085 0.692005239403 0.106037794651 0 + 983 1.107010678615 0.686673725430 0.119550740948 0 + 984 1.311455494082 0.691252674173 0.080608651166 0 + 985 1.026719781640 0.681211262234 0.101215237013 0 + 986 1.149186049280 0.675391020308 0.083312223718 0 + 987 0.963574824923 0.643878330913 0.111588316599 0 + 988 1.549512661717 0.657230936861 0.073204957304 0 + 989 1.587673944631 0.547329159378 0.070939136768 0 + 990 1.524189629678 0.575946905208 0.068898439356 0 + 991 1.089596037043 0.483789362957 0.151122341158 0 + 992 1.104743957538 0.458448987650 0.147504714159 0 + 993 1.036541782712 0.472539737016 0.147423415301 0 + 994 1.372878081723 0.409330272649 0.130755252857 0 + 995 1.165045381539 0.444642757656 0.143411167557 0 + 996 1.557009967505 0.680629782639 0.063229577358 0 + 997 1.237237841891 0.807524063101 0.040849273251 0 + 998 1.108732132845 0.805852654872 -0.000000000000 0 + 999 0.711911297705 0.709478684398 -0.000000000000 0 + 1000 1.160909954961 0.831498876250 0.031688045792 0 + 1001 -0.000000000000 0.855476824674 0.226942202575 0 + 1002 1.540695978827 1.000000000000 0.088595696974 0 + 1003 1.531310523430 0.899457505390 0.103380513831 0 + 1004 1.515298176009 0.865837853121 0.108390509668 0 + 1005 1.525301553962 0.865730653880 0.107578036664 0 + 1006 0.932831267316 1.000000000000 0.091721969895 0 + 1007 1.350700833819 1.000000000000 0.037984100828 0 + 1008 0.949000531354 1.000000000000 0.072813958683 0 + 1009 1.232755157872 0.864322076789 0.029890624266 0 + 1010 0.264345315671 0.542868993082 0.333000000000 0 + 1011 0.040432651486 0.618051362151 0.333000000000 0 + 1012 -0.000000000000 0.075970309749 0.192170363425 0 + 1013 0.171418744194 0.122049498934 0.162183627285 0 + 1014 0.625720546795 -0.000000000000 0.133139094418 0 + 1015 -0.000000000000 -0.000000000000 0.072616236695 0 + 1016 0.527983254832 -0.000000000000 0.106050067158 0 + 1017 0.618493935561 -0.000000000000 0.126223731122 0 + 1018 1.344501590202 0.822737332768 0.154864533167 0 + 1019 1.569705571108 1.000000000000 0.090927398409 0 + 1020 1.757782195138 0.757676547989 0.165292664193 0 + 1021 1.459284027559 0.771259128718 0.182002139566 0 + 1022 1.457844736860 0.771583868684 0.181894597852 0 + 1023 1.457647981860 0.772619159846 0.182366189720 0 + 1024 2.009029520754 0.836640271662 0.170386777966 0 + 1025 2.114525182298 0.866798552392 0.153351707293 0 + 1026 1.431193852150 0.814523443830 0.192473114445 0 + 1027 1.821108248377 1.000000000000 0.091664385046 0 + 1028 2.059749694971 0.940587957043 0.099789202153 0 + 1029 2.532578450586 0.486719548484 0.179083866113 0 + 1030 2.629042139197 0.433256143226 0.131574911956 0 + 1031 2.631053673556 0.451668067773 0.105993147676 0 + 1032 2.572575705025 0.421366296218 0.101900821960 0 + 1033 2.525533915635 0.392933981765 0.104616016638 0 + 1034 2.474420702053 0.477287072859 0.186887096071 0 + 1035 2.460022858905 0.479389722906 0.187530566553 0 + 1036 1.557692631486 -0.000000000000 -0.000000000000 0 + 1037 1.765741747813 -0.000000000000 0.031623066776 0 + 1038 1.836412608013 -0.000000000000 -0.000000000000 0 + 1039 1.619598917608 0.170890902343 -0.000000000000 0 + 1040 1.073747578127 0.608701963533 0.216070778916 0 + 1041 0.979674146326 0.582756512843 0.199940284088 0 + 1042 0.791105085713 0.593761267868 0.188537108105 0 + 1043 2.633697390214 0.631039935975 0.231379571831 0 + 1044 2.207915155496 0.781604466290 0.209986889590 0 + 1045 2.245106620975 0.660570874433 0.208768759057 0 + 1046 2.214925796429 0.683085970126 0.223801367686 0 + 1047 2.460837534422 0.895172459609 0.250760830021 0 + 1048 2.843091959082 0.873971530130 0.251693873689 0 + 1049 2.656707445294 0.911816542913 0.240920511393 0 + 1050 2.495401831411 0.901884835978 0.251217145700 0 + 1051 2.514470991902 0.868935194577 0.265685250094 0 + 1052 2.242536700532 0.757349387188 0.192450644199 0 + 1053 2.250137131423 0.684268010382 0.201170778440 0 + 1054 2.409153583422 1.000000000000 0.303280464217 0 + 1055 1.890810863104 0.515992086053 0.333000000000 0 + 1056 0.435802397282 0.430347592571 -0.000000000000 0 + 1057 0.432653471928 0.459701820629 0.026403943367 0 + 1058 0.283642411716 0.395556723632 0.035461676415 0 + 1059 0.337756022695 0.381159046607 -0.000000000000 0 + 1060 0.277771899247 0.383926047390 0.032435694440 0 + 1061 0.277295905730 0.390501519505 0.033864459393 0 + 1062 0.273927329435 0.386512691555 0.031902251829 0 + 1063 2.008211794659 0.737838915579 0.065293550573 0 + 1064 2.116778613124 0.790839648068 0.071819890108 0 + 1065 1.932429511304 0.781614325851 0.041142931023 0 + 1066 1.938658325825 0.805114825862 0.036553853213 0 + 1067 2.117222756496 0.821687966706 0.064415396403 0 + 1068 1.363490035922 1.000000000000 0.035421231784 0 + 1069 1.388309481428 0.934796742264 0.015199463319 0 + 1070 0.000000000000 0.000000000000 0.000000000000 0 + 1071 0.637785460176 -0.000000000000 -0.000000000000 0 + 1072 0.990857950054 -0.000000000000 0.050695442274 0 + 1073 0.613664338852 0.042514705249 -0.000000000000 0 + 1074 0.879538871394 0.195894545349 0.075267730384 0 + 1075 -0.000000000000 0.010895134924 -0.000000000000 0 + 1076 0.063856902908 0.025103657925 -0.000000000000 0 + 1077 -0.000000000000 0.108974363437 0.055866612070 0 + 1078 2.522394510054 1.000000000000 0.236323653583 0 + 1079 2.573728028609 1.000000000000 0.234115986123 0 + 1080 2.572819131676 0.995020003762 0.234208839041 0 + 1081 0.267200877457 0.168578136267 0.173354571564 0 + 1082 0.753711261491 0.187347182408 0.161670654600 0 + 1083 0.684878979142 0.228834195938 0.177206630050 0 + 1084 -0.000000000000 0.080134783035 0.197766653335 0 + 1085 0.111321591043 0.123175857435 0.195919237771 0 + 1086 0.714159587894 0.220273013366 0.190868959630 0 + 1087 0.687663413050 0.228915668641 0.177567733351 0 + 1088 0.775888050650 0.187849078565 0.164464019706 0 + 1089 0.780613438060 0.185897588188 0.164920731461 0 + 1090 -0.000000000000 0.216828581587 0.207049036380 0 + 1091 -0.000000000000 0.163039931257 0.199698728251 0 + 1092 -0.000000000000 0.615667175156 0.333000000000 0 + 1093 1.152335677308 -0.000000000000 0.138674311998 0 + 1094 1.412476507800 -0.000000000000 0.054464537012 0 + 1095 1.887357851881 -0.000000000000 0.122180366051 0 + 1096 1.214221488321 0.031366464787 0.058455015247 0 + 1097 1.208862803801 -0.000000000000 0.056106294039 0 + 1098 1.280155768601 -0.000000000000 0.053098457061 0 + 1099 2.190838166296 0.017996422221 0.264283621395 0 + 1100 2.173304500208 0.014105741440 0.248652716031 0 + 1101 1.281016461904 -0.000000000000 0.052931253539 0 + 1102 1.337888938822 -0.000000000000 -0.000000000000 0 + 1103 1.333756710820 -0.000000000000 0.008112928332 0 + 1104 1.339445813157 0.004246679140 -0.000000000000 0 + 1105 1.178421747163 0.744714235435 0.143361896181 0 + 1106 1.419414149166 0.763432409241 0.177413598576 0 + 1107 1.704723484912 0.712040323319 0.167503976228 0 + 1108 1.526822599274 0.713498412427 0.177357785007 0 + 1109 1.467158805070 0.756318344414 0.181331029266 0 + 1110 1.642309897547 0.423292185181 -0.000000000000 0 + 1111 1.099899604000 0.445360996174 -0.000000000000 0 + 1112 2.533908635044 0.532045863422 -0.000000000000 0 + 1113 2.327746465537 0.510461333037 0.034173776158 0 + 1114 2.447503043914 0.530848474008 0.006912777900 0 + 1115 3.000000000000 0.517551477520 0.095075088297 0 + 1116 2.897310524968 0.425310959436 0.076445163654 0 + 1117 2.167286935346 -0.000000000000 0.267585472460 0 + 1118 2.152807965501 -0.000000000000 0.248564941437 0 + 1119 2.024197811710 -0.000000000000 0.238405065860 0 + 1120 0.560943832968 0.538886843732 0.022115153510 0 + 1121 0.655832373788 0.574911251632 -0.000000000000 0 + 1122 3.000000000000 1.000000000000 0.333000000000 0 + 1123 3.000000000000 0.942493548146 0.333000000000 0 + 1124 3.000000000000 1.000000000000 0.325251600998 0 + 1125 3.000000000000 0.947833454097 0.318165143794 0 + 1126 2.479575475257 0.490983736422 0.197072988349 0 + 1127 1.864171238218 0.529348381253 0.048473926444 0 + 1128 1.125204009889 0.451070457872 0.148311888548 0 + 1129 0.560120488686 0.706376400430 -0.000000000000 0 + 1130 1.380205717239 1.000000000000 -0.000000000000 0 + 1131 1.394963120760 0.937012614872 -0.000000000000 0 + 1132 1.013458504890 0.747494322929 0.162298312635 0 + 1133 1.087438498461 0.609716357373 0.215960851734 0 + 1134 1.259540209340 0.612665924557 0.205856486489 0 + 1135 1.455131459251 0.714908020642 0.190628476353 0 + 1136 1.430389586995 0.788789415210 0.189267484248 0 + 1137 0.194265302357 0.184273895919 0.055178662216 0 + 1138 -0.000000000000 0.383621654597 0.019012667310 0 + 1139 -0.000000000000 0.380338667417 -0.000000000000 0 + 1140 1.341004201375 -0.000000000000 0.048658464994 0 + 1141 1.659739575746 0.403236429920 -0.000000000000 0 + 1142 2.139598828592 0.568250943932 -0.000000000000 0 + 1143 2.472965561500 0.527245117670 -0.000000000000 0 + 1144 3.000000000000 1.000000000000 0.256318676652 0 + 1145 3.000000000000 0.872030545759 0.259921186193 0 + 1146 1.564912821026 0.753202398202 0.237804441513 0 + 1147 1.815848373832 0.727675375154 0.256470426746 0 + 1148 1.949675536908 0.665313821601 0.251024949188 0 + 1149 1.948342185297 0.663423154899 0.250285619823 0 + 1150 1.949369706593 0.665011039663 0.251139812315 0 + 1151 1.500403648833 0.663196881279 0.202498315181 0 + 1152 1.342460552852 0.609953175269 0.207190319103 0 + 1153 2.678416726526 0.615235747995 0.232941632031 0 + 1154 3.000000000000 0.561731144386 0.226335004717 0 + 1155 2.801004285934 0.580687424560 0.234620880588 0 + 1156 3.000000000000 0.479715492467 0.148566138084 0 + 1157 1.862214730781 0.738984687157 0.255636975185 0 + 1158 1.992202824584 0.675556465959 0.250256337839 0 + 1159 3.000000000000 0.518226881754 0.179076538749 0 + 1160 3.000000000000 0.496435333358 0.209921373393 0 + 1161 3.000000000000 0.356953247845 0.218980541548 0 + 1162 2.794689875961 0.482505801091 0.210052349067 0 + 1163 2.596228095500 0.543014087322 0.275041222310 0 + 1164 2.730059807777 0.493281100298 0.213904453099 0 + 1165 3.000000000000 0.851302690357 -0.000000000000 0 + 1166 1.958765886947 0.809515367011 -0.000000000000 0 + 1167 2.825792807210 0.898624767806 -0.000000000000 0 + 1168 2.621745198952 0.554406070302 0.276230111033 0 + 1169 2.196394871589 0.636397110596 0.203597488412 0 + 1170 -0.000000000000 0.335434198565 0.170281703203 0 + 1171 1.468174020741 0.688144254124 0.192714768574 0 + 1172 1.312756130261 0.612536523166 0.204294611678 0 + 1173 1.303056815264 0.417492785094 0.161809279859 0 + 1174 1.412573895341 0.401647999026 0.135128760435 0 + 1175 0.274584649757 0.397257834595 0.036832536804 0 + 1176 2.232345851756 -0.000000000000 0.152177904479 0 + 1177 1.367677510286 0.338763723242 0.197567039559 0 + 1178 -0.000000000000 0.603166138759 -0.000000000000 0 + 1179 0.536981238990 0.655671904525 -0.000000000000 0 + 1180 3.000000000000 0.983275438887 -0.000000000000 0 + 1181 3.000000000000 1.000000000000 0.004029301714 0 + 1182 3.000000000000 0.494590339793 0.309889484158 0 + 1183 3.000000000000 0.677401258811 0.333000000000 0 + 1184 3.000000000000 1.000000000000 0.000000000000 0 + 1185 2.556684890504 -0.000000000000 0.333000000000 0 + 1186 3.000000000000 0.000000000000 0.333000000000 0 + **edge + 2368 + 1 4 2 0 + 2 2 1 0 + 3 1 7 0 + 4 7 8 0 + 5 8 4 0 + 6 1 3 0 + 7 3 12 0 + 8 12 13 0 + 9 13 7 0 + 10 9 10 0 + 11 10 2 0 + 12 4 6 0 + 13 6 16 0 + 14 16 17 0 + 15 17 9 0 + 16 5 3 0 + 17 10 11 0 + 18 11 5 0 + 19 5 14 0 + 20 14 20 0 + 21 20 21 0 + 22 21 12 0 + 23 6 15 0 + 24 15 24 0 + 25 24 25 0 + 26 25 8 0 + 27 11 9 0 + 28 17 18 0 + 29 18 14 0 + 30 16 19 0 + 31 19 15 0 + 32 22 13 0 + 33 25 26 0 + 34 26 22 0 + 35 22 21 0 + 36 19 18 0 + 37 20 23 0 + 38 23 24 0 + 39 26 23 0 + 40 27 29 0 + 41 29 30 0 + 42 30 35 0 + 43 35 42 0 + 44 42 43 0 + 45 43 27 0 + 46 46 28 0 + 47 28 44 0 + 48 44 43 0 + 49 27 38 0 + 50 38 48 0 + 51 48 49 0 + 52 49 46 0 + 53 29 31 0 + 54 31 32 0 + 55 32 41 0 + 56 41 38 0 + 57 33 34 0 + 58 34 37 0 + 59 37 39 0 + 60 39 40 0 + 61 40 33 0 + 62 33 32 0 + 63 31 30 0 + 64 35 34 0 + 65 37 36 0 + 66 36 28 0 + 67 46 47 0 + 68 47 39 0 + 69 44 45 0 + 70 45 36 0 + 71 40 41 0 + 72 42 45 0 + 73 48 50 0 + 74 50 47 0 + 75 50 49 0 + 76 56 51 0 + 77 51 52 0 + 78 52 53 0 + 79 53 66 0 + 80 66 67 0 + 81 67 56 0 + 82 56 59 0 + 83 59 58 0 + 84 58 51 0 + 85 55 52 0 + 86 58 61 0 + 87 61 63 0 + 88 63 64 0 + 89 64 55 0 + 90 55 54 0 + 91 54 65 0 + 92 65 64 0 + 93 57 62 0 + 94 62 65 0 + 95 54 53 0 + 96 66 68 0 + 97 68 57 0 + 98 61 60 0 + 99 60 57 0 + 100 62 63 0 + 101 59 60 0 + 102 68 67 0 + 103 86 90 0 + 104 90 98 0 + 105 98 94 0 + 106 94 86 0 + 107 76 81 0 + 108 81 82 0 + 109 82 73 0 + 110 73 85 0 + 111 85 86 0 + 112 94 95 0 + 113 95 76 0 + 114 69 74 0 + 115 74 73 0 + 116 85 87 0 + 117 87 69 0 + 118 69 72 0 + 119 72 71 0 + 120 71 70 0 + 121 70 84 0 + 122 84 83 0 + 123 83 74 0 + 124 76 77 0 + 125 77 70 0 + 126 84 81 0 + 127 75 72 0 + 128 87 89 0 + 129 89 88 0 + 130 88 75 0 + 131 71 78 0 + 132 78 77 0 + 133 75 80 0 + 134 80 79 0 + 135 79 78 0 + 136 82 83 0 + 137 88 93 0 + 138 93 92 0 + 139 92 80 0 + 140 79 91 0 + 141 91 96 0 + 142 96 95 0 + 143 92 91 0 + 144 90 89 0 + 145 98 97 0 + 146 97 93 0 + 147 97 96 0 + 148 99 103 0 + 149 103 111 0 + 150 111 112 0 + 151 112 99 0 + 152 100 101 0 + 153 101 102 0 + 154 102 99 0 + 155 112 113 0 + 156 113 100 0 + 157 102 106 0 + 158 106 110 0 + 159 110 109 0 + 160 109 103 0 + 161 104 100 0 + 162 101 105 0 + 163 105 107 0 + 164 107 108 0 + 165 108 104 0 + 166 104 114 0 + 167 114 113 0 + 168 106 105 0 + 169 108 109 0 + 170 111 114 0 + 171 107 110 0 + 172 123 118 0 + 173 118 119 0 + 174 119 127 0 + 175 127 128 0 + 176 128 123 0 + 177 122 115 0 + 178 115 121 0 + 179 121 118 0 + 180 123 124 0 + 181 124 122 0 + 182 117 116 0 + 183 116 115 0 + 184 121 120 0 + 185 120 117 0 + 186 122 126 0 + 187 126 132 0 + 188 132 133 0 + 189 133 116 0 + 190 119 120 0 + 191 117 131 0 + 192 131 127 0 + 193 131 130 0 + 194 130 134 0 + 195 134 133 0 + 196 124 125 0 + 197 125 126 0 + 198 128 129 0 + 199 129 125 0 + 200 130 129 0 + 201 132 134 0 + 202 150 146 0 + 203 146 147 0 + 204 147 135 0 + 205 135 137 0 + 206 137 142 0 + 207 142 158 0 + 208 158 159 0 + 209 159 150 0 + 210 138 141 0 + 211 141 135 0 + 212 147 144 0 + 213 144 138 0 + 214 143 136 0 + 215 136 140 0 + 216 140 139 0 + 217 139 148 0 + 218 148 154 0 + 219 154 153 0 + 220 153 143 0 + 221 139 138 0 + 222 144 145 0 + 223 145 149 0 + 224 149 148 0 + 225 145 146 0 + 226 150 152 0 + 227 152 151 0 + 228 151 149 0 + 229 136 137 0 + 230 141 140 0 + 231 142 143 0 + 232 153 157 0 + 233 157 162 0 + 234 162 158 0 + 235 151 155 0 + 236 155 154 0 + 237 152 160 0 + 238 160 159 0 + 239 156 155 0 + 240 160 161 0 + 241 161 156 0 + 242 156 157 0 + 243 162 161 0 + 244 168 163 0 + 245 163 165 0 + 246 165 179 0 + 247 179 180 0 + 248 180 183 0 + 249 183 184 0 + 250 184 168 0 + 251 167 164 0 + 252 164 163 0 + 253 165 173 0 + 254 173 174 0 + 255 174 167 0 + 256 164 169 0 + 257 169 168 0 + 258 167 166 0 + 259 166 170 0 + 260 170 169 0 + 261 166 172 0 + 262 172 171 0 + 263 171 170 0 + 264 179 182 0 + 265 182 173 0 + 266 174 175 0 + 267 175 177 0 + 268 177 178 0 + 269 178 172 0 + 270 171 185 0 + 271 185 184 0 + 272 178 186 0 + 273 186 185 0 + 274 175 176 0 + 275 176 177 0 + 276 176 181 0 + 277 181 182 0 + 278 180 181 0 + 279 186 183 0 + 280 195 191 0 + 281 191 192 0 + 282 192 198 0 + 283 198 201 0 + 284 201 202 0 + 285 202 195 0 + 286 197 187 0 + 287 187 189 0 + 288 189 190 0 + 289 190 199 0 + 290 199 204 0 + 291 204 203 0 + 292 203 197 0 + 293 187 188 0 + 294 188 194 0 + 295 194 193 0 + 296 193 189 0 + 297 191 194 0 + 298 188 196 0 + 299 196 195 0 + 300 197 196 0 + 301 192 193 0 + 302 190 200 0 + 303 200 198 0 + 304 200 199 0 + 305 203 202 0 + 306 201 204 0 + 307 209 208 0 + 308 208 205 0 + 309 205 211 0 + 310 211 213 0 + 311 213 214 0 + 312 214 216 0 + 313 216 209 0 + 314 206 205 0 + 315 211 212 0 + 316 212 206 0 + 317 210 207 0 + 318 207 206 0 + 319 212 213 0 + 320 214 215 0 + 321 215 210 0 + 322 208 207 0 + 323 210 209 0 + 324 215 216 0 + 325 217 224 0 + 326 224 225 0 + 327 225 217 0 + 328 221 222 0 + 329 222 218 0 + 330 218 217 0 + 331 225 226 0 + 332 226 221 0 + 333 218 219 0 + 334 219 220 0 + 335 220 228 0 + 336 228 224 0 + 337 219 223 0 + 338 223 222 0 + 339 221 223 0 + 340 220 227 0 + 341 227 226 0 + 342 227 228 0 + 343 231 234 0 + 344 234 233 0 + 345 233 180 0 + 346 179 231 0 + 347 229 236 0 + 348 236 233 0 + 349 181 229 0 + 350 229 230 0 + 351 230 232 0 + 352 232 182 0 + 353 230 235 0 + 354 235 236 0 + 355 232 231 0 + 356 234 235 0 + 357 244 245 0 + 358 245 241 0 + 359 241 250 0 + 360 250 221 0 + 361 226 253 0 + 362 253 244 0 + 363 243 242 0 + 364 242 237 0 + 365 237 238 0 + 366 238 249 0 + 367 249 251 0 + 368 251 252 0 + 369 252 243 0 + 370 243 241 0 + 371 250 252 0 + 372 237 239 0 + 373 239 247 0 + 374 247 246 0 + 375 246 242 0 + 376 220 248 0 + 377 248 249 0 + 378 238 240 0 + 379 240 254 0 + 380 254 227 0 + 381 240 239 0 + 382 248 219 0 + 383 244 247 0 + 384 254 253 0 + 385 245 246 0 + 386 251 223 0 + 387 230 256 0 + 388 256 257 0 + 389 257 259 0 + 390 259 229 0 + 391 255 232 0 + 392 256 258 0 + 393 258 255 0 + 394 255 136 0 + 395 137 260 0 + 396 260 173 0 + 397 140 258 0 + 398 141 257 0 + 399 259 176 0 + 400 175 135 0 + 401 174 260 0 + 402 270 271 0 + 403 271 261 0 + 404 261 102 0 + 405 101 264 0 + 406 264 273 0 + 407 273 274 0 + 408 274 270 0 + 409 106 262 0 + 410 262 266 0 + 411 266 267 0 + 412 267 261 0 + 413 263 262 0 + 414 105 265 0 + 415 265 276 0 + 416 276 275 0 + 417 275 263 0 + 418 267 268 0 + 419 268 272 0 + 420 272 271 0 + 421 264 265 0 + 422 270 272 0 + 423 268 269 0 + 424 269 263 0 + 425 275 274 0 + 426 266 269 0 + 427 273 276 0 + 428 279 278 0 + 429 278 277 0 + 430 277 123 0 + 431 128 279 0 + 432 277 282 0 + 433 282 283 0 + 434 283 124 0 + 435 280 281 0 + 436 281 278 0 + 437 279 129 0 + 438 125 280 0 + 439 280 283 0 + 440 281 282 0 + 441 289 285 0 + 442 285 284 0 + 443 284 292 0 + 444 292 293 0 + 445 293 289 0 + 446 287 284 0 + 447 292 291 0 + 448 291 287 0 + 449 286 285 0 + 450 287 288 0 + 451 288 286 0 + 452 290 286 0 + 453 288 295 0 + 454 295 294 0 + 455 294 290 0 + 456 290 289 0 + 457 291 295 0 + 458 294 293 0 + 459 243 297 0 + 460 297 296 0 + 461 296 300 0 + 462 300 301 0 + 463 301 252 0 + 464 242 297 0 + 465 296 298 0 + 466 298 237 0 + 467 299 298 0 + 468 300 302 0 + 469 302 304 0 + 470 304 303 0 + 471 303 299 0 + 472 238 299 0 + 473 303 249 0 + 474 302 301 0 + 475 251 304 0 + 476 311 306 0 + 477 306 305 0 + 478 305 308 0 + 479 308 314 0 + 480 314 317 0 + 481 317 318 0 + 482 318 311 0 + 483 307 305 0 + 484 306 218 0 + 485 222 307 0 + 486 308 309 0 + 487 309 307 0 + 488 248 311 0 + 489 312 310 0 + 490 310 309 0 + 491 304 313 0 + 492 313 312 0 + 493 310 316 0 + 494 316 314 0 + 495 312 315 0 + 496 315 316 0 + 497 303 313 0 + 498 315 319 0 + 499 319 318 0 + 500 317 319 0 + 501 333 325 0 + 502 325 330 0 + 503 330 331 0 + 504 331 321 0 + 505 321 317 0 + 506 314 333 0 + 507 329 328 0 + 508 328 325 0 + 509 333 334 0 + 510 334 329 0 + 511 335 320 0 + 512 320 322 0 + 513 322 321 0 + 514 319 338 0 + 515 338 335 0 + 516 320 323 0 + 517 323 324 0 + 518 324 327 0 + 519 327 328 0 + 520 329 336 0 + 521 336 335 0 + 522 323 322 0 + 523 324 326 0 + 524 326 332 0 + 525 332 331 0 + 526 327 326 0 + 527 330 332 0 + 528 334 316 0 + 529 315 337 0 + 530 337 336 0 + 531 338 337 0 + 532 339 56 0 + 533 67 339 0 + 534 345 346 0 + 535 346 340 0 + 536 340 59 0 + 537 339 349 0 + 538 349 350 0 + 539 350 345 0 + 540 343 57 0 + 541 60 340 0 + 542 346 347 0 + 543 347 343 0 + 544 68 341 0 + 545 341 352 0 + 546 352 349 0 + 547 341 342 0 + 548 342 344 0 + 549 344 351 0 + 550 351 352 0 + 551 343 342 0 + 552 344 348 0 + 553 348 347 0 + 554 345 348 0 + 555 351 350 0 + 556 353 354 0 + 557 354 81 0 + 558 76 361 0 + 559 361 362 0 + 560 362 363 0 + 561 363 353 0 + 562 70 358 0 + 563 358 355 0 + 564 355 359 0 + 565 359 360 0 + 566 360 77 0 + 567 353 356 0 + 568 356 355 0 + 569 358 357 0 + 570 357 354 0 + 571 363 364 0 + 572 364 356 0 + 573 84 357 0 + 574 360 366 0 + 575 366 367 0 + 576 367 361 0 + 577 359 365 0 + 578 365 364 0 + 579 366 365 0 + 580 362 367 0 + 581 283 368 0 + 582 368 375 0 + 583 375 376 0 + 584 376 122 0 + 585 280 369 0 + 586 369 371 0 + 587 371 126 0 + 588 371 370 0 + 589 370 372 0 + 590 372 374 0 + 591 374 369 0 + 592 372 373 0 + 593 373 368 0 + 594 375 377 0 + 595 377 370 0 + 596 373 374 0 + 597 376 377 0 + 598 195 380 0 + 599 380 321 0 + 600 331 191 0 + 601 378 188 0 + 602 196 381 0 + 603 381 382 0 + 604 382 378 0 + 605 379 378 0 + 606 382 324 0 + 607 326 383 0 + 608 383 379 0 + 609 194 379 0 + 610 322 380 0 + 611 381 323 0 + 612 383 332 0 + 613 387 289 0 + 614 293 384 0 + 615 384 389 0 + 616 389 390 0 + 617 390 387 0 + 618 392 389 0 + 619 384 385 0 + 620 385 271 0 + 621 270 392 0 + 622 386 388 0 + 623 388 290 0 + 624 294 385 0 + 625 272 386 0 + 626 387 388 0 + 627 386 391 0 + 628 391 390 0 + 629 392 391 0 + 630 393 394 0 + 631 394 395 0 + 632 395 397 0 + 633 397 396 0 + 634 396 393 0 + 635 400 399 0 + 636 399 398 0 + 637 398 403 0 + 638 403 401 0 + 639 401 404 0 + 640 404 405 0 + 641 405 400 0 + 642 393 407 0 + 643 407 408 0 + 644 408 394 0 + 645 396 268 0 + 646 267 414 0 + 647 414 407 0 + 648 401 402 0 + 649 402 395 0 + 650 408 409 0 + 651 409 412 0 + 652 412 413 0 + 653 413 404 0 + 654 398 397 0 + 655 402 403 0 + 656 399 269 0 + 657 400 406 0 + 658 406 410 0 + 659 410 416 0 + 660 416 266 0 + 661 406 405 0 + 662 410 413 0 + 663 409 411 0 + 664 411 415 0 + 665 415 414 0 + 666 412 411 0 + 667 416 415 0 + 668 418 419 0 + 669 419 420 0 + 670 420 423 0 + 671 423 422 0 + 672 422 424 0 + 673 424 442 0 + 674 442 439 0 + 675 439 418 0 + 676 421 422 0 + 677 424 425 0 + 678 425 426 0 + 679 426 427 0 + 680 427 417 0 + 681 417 429 0 + 682 429 435 0 + 683 435 436 0 + 684 436 421 0 + 685 419 432 0 + 686 432 431 0 + 687 431 420 0 + 688 418 417 0 + 689 427 437 0 + 690 437 440 0 + 691 440 439 0 + 692 430 429 0 + 693 432 433 0 + 694 433 430 0 + 695 426 428 0 + 696 428 425 0 + 697 423 421 0 + 698 436 431 0 + 699 428 438 0 + 700 438 441 0 + 701 441 442 0 + 702 430 434 0 + 703 434 433 0 + 704 437 438 0 + 705 435 434 0 + 706 440 441 0 + 707 455 450 0 + 708 450 448 0 + 709 448 445 0 + 710 445 443 0 + 711 443 457 0 + 712 457 458 0 + 713 458 455 0 + 714 444 443 0 + 715 445 446 0 + 716 446 444 0 + 717 451 444 0 + 718 446 447 0 + 719 447 449 0 + 720 449 452 0 + 721 452 453 0 + 722 453 451 0 + 723 451 454 0 + 724 454 456 0 + 725 456 457 0 + 726 447 448 0 + 727 450 449 0 + 728 455 452 0 + 729 454 453 0 + 730 456 458 0 + 731 459 380 0 + 732 202 459 0 + 733 459 460 0 + 734 460 466 0 + 735 466 467 0 + 736 467 320 0 + 737 462 203 0 + 738 460 464 0 + 739 464 465 0 + 740 465 462 0 + 741 461 197 0 + 742 381 463 0 + 743 463 469 0 + 744 469 470 0 + 745 470 461 0 + 746 466 471 0 + 747 471 464 0 + 748 462 461 0 + 749 465 472 0 + 750 472 473 0 + 751 473 470 0 + 752 463 468 0 + 753 468 467 0 + 754 468 469 0 + 755 472 474 0 + 756 474 471 0 + 757 473 474 0 + 758 475 481 0 + 759 481 36 0 + 760 28 484 0 + 761 484 485 0 + 762 485 486 0 + 763 486 475 0 + 764 480 477 0 + 765 477 475 0 + 766 481 483 0 + 767 483 480 0 + 768 477 487 0 + 769 487 486 0 + 770 482 37 0 + 771 39 476 0 + 772 476 489 0 + 773 489 490 0 + 774 490 482 0 + 775 476 478 0 + 776 478 47 0 + 777 479 491 0 + 778 491 489 0 + 779 478 488 0 + 780 488 493 0 + 781 493 492 0 + 782 492 479 0 + 783 480 479 0 + 784 492 494 0 + 785 494 487 0 + 786 46 484 0 + 787 485 488 0 + 788 483 482 0 + 789 490 491 0 + 790 494 493 0 + 791 506 505 0 + 792 505 504 0 + 793 504 498 0 + 794 498 500 0 + 795 500 497 0 + 796 497 512 0 + 797 512 511 0 + 798 511 506 0 + 799 498 499 0 + 800 499 495 0 + 801 495 496 0 + 802 496 503 0 + 803 503 504 0 + 804 501 496 0 + 805 503 505 0 + 806 506 510 0 + 807 510 509 0 + 808 509 501 0 + 809 500 499 0 + 810 495 502 0 + 811 502 508 0 + 812 508 507 0 + 813 507 497 0 + 814 501 502 0 + 815 507 512 0 + 816 509 508 0 + 817 511 510 0 + 818 511 519 0 + 819 519 245 0 + 820 244 518 0 + 821 518 98 0 + 822 90 521 0 + 823 521 506 0 + 824 247 513 0 + 825 513 93 0 + 826 97 518 0 + 827 88 514 0 + 828 514 517 0 + 829 517 510 0 + 830 521 89 0 + 831 513 515 0 + 832 515 516 0 + 833 516 514 0 + 834 515 520 0 + 835 520 246 0 + 836 517 516 0 + 837 519 520 0 + 838 369 528 0 + 839 528 529 0 + 840 529 522 0 + 841 522 523 0 + 842 523 533 0 + 843 533 539 0 + 844 539 134 0 + 845 132 371 0 + 846 527 524 0 + 847 524 522 0 + 848 523 534 0 + 849 534 535 0 + 850 535 527 0 + 851 526 525 0 + 852 525 524 0 + 853 529 530 0 + 854 530 531 0 + 855 531 526 0 + 856 534 533 0 + 857 526 374 0 + 858 372 537 0 + 859 537 525 0 + 860 537 536 0 + 861 536 527 0 + 862 531 532 0 + 863 532 528 0 + 864 538 536 0 + 865 535 541 0 + 866 541 540 0 + 867 540 538 0 + 868 530 532 0 + 869 541 539 0 + 870 370 538 0 + 871 540 133 0 + 872 543 544 0 + 873 544 542 0 + 874 542 548 0 + 875 548 549 0 + 876 549 543 0 + 877 548 552 0 + 878 552 551 0 + 879 551 542 0 + 880 543 545 0 + 881 545 546 0 + 882 546 547 0 + 883 547 550 0 + 884 550 549 0 + 885 544 545 0 + 886 546 553 0 + 887 553 409 0 + 888 411 551 0 + 889 553 408 0 + 890 407 547 0 + 891 414 550 0 + 892 415 552 0 + 893 82 554 0 + 894 554 563 0 + 895 563 566 0 + 896 566 565 0 + 897 565 73 0 + 898 554 532 0 + 899 531 558 0 + 900 558 559 0 + 901 559 83 0 + 902 555 556 0 + 903 556 560 0 + 904 560 559 0 + 905 74 555 0 + 906 555 562 0 + 907 562 564 0 + 908 564 565 0 + 909 530 557 0 + 910 557 561 0 + 911 561 563 0 + 912 556 557 0 + 913 561 562 0 + 914 558 560 0 + 915 564 566 0 + 916 575 572 0 + 917 572 568 0 + 918 568 569 0 + 919 569 567 0 + 920 567 582 0 + 921 582 581 0 + 922 581 575 0 + 923 585 576 0 + 924 576 572 0 + 925 568 571 0 + 926 571 589 0 + 927 589 588 0 + 928 588 585 0 + 929 573 570 0 + 930 570 569 0 + 931 567 578 0 + 932 578 579 0 + 933 579 573 0 + 934 583 574 0 + 935 574 573 0 + 936 570 571 0 + 937 589 590 0 + 938 590 583 0 + 939 582 578 0 + 940 576 575 0 + 941 574 577 0 + 942 577 584 0 + 943 584 583 0 + 944 579 580 0 + 945 580 577 0 + 946 580 581 0 + 947 585 587 0 + 948 587 586 0 + 949 586 584 0 + 950 586 590 0 + 951 588 587 0 + 952 592 591 0 + 953 591 475 0 + 954 477 593 0 + 955 593 594 0 + 956 594 599 0 + 957 599 598 0 + 958 598 592 0 + 959 481 595 0 + 960 595 596 0 + 961 596 591 0 + 962 592 597 0 + 963 597 596 0 + 964 598 601 0 + 965 601 597 0 + 966 593 480 0 + 967 594 483 0 + 968 595 600 0 + 969 600 599 0 + 970 601 600 0 + 971 602 610 0 + 972 610 198 0 + 973 192 617 0 + 974 617 602 0 + 975 190 606 0 + 976 606 607 0 + 977 607 604 0 + 978 604 603 0 + 979 603 611 0 + 980 611 200 0 + 981 189 609 0 + 982 609 606 0 + 983 610 611 0 + 984 603 605 0 + 985 605 612 0 + 986 612 614 0 + 987 614 602 0 + 988 613 612 0 + 989 605 604 0 + 990 607 608 0 + 991 608 616 0 + 992 616 615 0 + 993 615 613 0 + 994 614 613 0 + 995 615 619 0 + 996 619 620 0 + 997 620 617 0 + 998 609 608 0 + 999 193 618 0 + 1000 618 616 0 + 1001 618 621 0 + 1002 621 619 0 + 1003 620 621 0 + 1004 421 624 0 + 1005 624 625 0 + 1006 625 623 0 + 1007 623 622 0 + 1008 622 627 0 + 1009 627 632 0 + 1010 632 423 0 + 1011 622 626 0 + 1012 626 627 0 + 1013 298 623 0 + 1014 625 629 0 + 1015 629 239 0 + 1016 299 628 0 + 1017 628 626 0 + 1018 240 630 0 + 1019 630 436 0 + 1020 431 633 0 + 1021 633 628 0 + 1022 630 631 0 + 1023 631 624 0 + 1024 629 631 0 + 1025 632 634 0 + 1026 634 633 0 + 1027 420 634 0 + 1028 241 640 0 + 1029 640 250 0 + 1030 296 636 0 + 1031 636 637 0 + 1032 637 639 0 + 1033 639 300 0 + 1034 297 635 0 + 1035 635 636 0 + 1036 635 638 0 + 1037 638 641 0 + 1038 641 640 0 + 1039 637 638 0 + 1040 641 642 0 + 1041 642 639 0 + 1042 642 301 0 + 1043 651 643 0 + 1044 643 644 0 + 1045 644 658 0 + 1046 658 659 0 + 1047 659 651 0 + 1048 645 644 0 + 1049 643 646 0 + 1050 646 647 0 + 1051 647 645 0 + 1052 650 649 0 + 1053 649 646 0 + 1054 651 652 0 + 1055 652 650 0 + 1056 653 257 0 + 1057 256 654 0 + 1058 654 655 0 + 1059 655 653 0 + 1060 645 139 0 + 1061 138 661 0 + 1062 661 658 0 + 1063 649 648 0 + 1064 648 258 0 + 1065 654 657 0 + 1066 657 650 0 + 1067 648 647 0 + 1068 652 656 0 + 1069 656 657 0 + 1070 656 655 0 + 1071 653 660 0 + 1072 660 659 0 + 1073 660 661 0 + 1074 662 100 0 + 1075 113 663 0 + 1076 663 662 0 + 1077 662 665 0 + 1078 665 666 0 + 1079 666 667 0 + 1080 667 668 0 + 1081 668 104 0 + 1082 664 663 0 + 1083 665 670 0 + 1084 670 669 0 + 1085 669 664 0 + 1086 114 664 0 + 1087 669 668 0 + 1088 666 671 0 + 1089 671 670 0 + 1090 667 671 0 + 1091 672 292 0 + 1092 284 674 0 + 1093 674 676 0 + 1094 676 677 0 + 1095 677 672 0 + 1096 543 673 0 + 1097 673 672 0 + 1098 677 678 0 + 1099 678 544 0 + 1100 291 673 0 + 1101 545 675 0 + 1102 675 287 0 + 1103 675 674 0 + 1104 676 678 0 + 1105 679 691 0 + 1106 691 690 0 + 1107 690 679 0 + 1108 680 684 0 + 1109 684 683 0 + 1110 683 680 0 + 1111 433 696 0 + 1112 696 685 0 + 1113 685 679 0 + 1114 690 695 0 + 1115 695 684 0 + 1116 680 698 0 + 1117 698 700 0 + 1118 700 430 0 + 1119 685 686 0 + 1120 686 682 0 + 1121 682 681 0 + 1122 681 689 0 + 1123 689 692 0 + 1124 692 691 0 + 1125 419 682 0 + 1126 686 697 0 + 1127 697 432 0 + 1128 683 688 0 + 1129 688 689 0 + 1130 681 418 0 + 1131 417 699 0 + 1132 699 698 0 + 1133 687 688 0 + 1134 695 694 0 + 1135 694 687 0 + 1136 697 696 0 + 1137 687 693 0 + 1138 693 694 0 + 1139 429 701 0 + 1140 701 699 0 + 1141 692 693 0 + 1142 701 700 0 + 1143 703 704 0 + 1144 704 705 0 + 1145 705 703 0 + 1146 702 392 0 + 1147 274 702 0 + 1148 391 703 0 + 1149 704 692 0 + 1150 693 702 0 + 1151 687 706 0 + 1152 706 711 0 + 1153 711 712 0 + 1154 712 275 0 + 1155 397 705 0 + 1156 386 396 0 + 1157 706 688 0 + 1158 398 708 0 + 1159 708 707 0 + 1160 707 689 0 + 1161 707 710 0 + 1162 710 711 0 + 1163 399 709 0 + 1164 709 708 0 + 1165 709 710 0 + 1166 712 263 0 + 1167 714 208 0 + 1168 209 717 0 + 1169 717 718 0 + 1170 718 714 0 + 1171 716 715 0 + 1172 715 713 0 + 1173 713 210 0 + 1174 717 720 0 + 1175 720 716 0 + 1176 207 713 0 + 1177 715 714 0 + 1178 718 719 0 + 1179 719 716 0 + 1180 720 719 0 + 1181 725 726 0 + 1182 726 53 0 + 1183 52 728 0 + 1184 728 729 0 + 1185 729 725 0 + 1186 55 722 0 + 1187 722 724 0 + 1188 724 730 0 + 1189 730 728 0 + 1190 721 722 0 + 1191 54 721 0 + 1192 723 721 0 + 1193 726 727 0 + 1194 727 723 0 + 1195 724 723 0 + 1196 725 727 0 + 1197 730 729 0 + 1198 305 731 0 + 1199 731 308 0 + 1200 307 732 0 + 1201 732 731 0 + 1202 309 732 0 + 1203 565 733 0 + 1204 733 85 0 + 1205 734 733 0 + 1206 87 737 0 + 1207 737 734 0 + 1208 735 69 0 + 1209 555 740 0 + 1210 740 735 0 + 1211 737 736 0 + 1212 736 739 0 + 1213 739 738 0 + 1214 738 734 0 + 1215 738 741 0 + 1216 741 564 0 + 1217 736 735 0 + 1218 740 739 0 + 1219 562 741 0 + 1220 742 457 0 + 1221 443 339 0 + 1222 66 742 0 + 1223 444 349 0 + 1224 352 451 0 + 1225 743 341 0 + 1226 454 744 0 + 1227 744 743 0 + 1228 742 743 0 + 1229 744 456 0 + 1230 183 745 0 + 1231 745 746 0 + 1232 746 184 0 + 1233 747 746 0 + 1234 745 748 0 + 1235 748 751 0 + 1236 751 752 0 + 1237 752 747 0 + 1238 186 749 0 + 1239 749 750 0 + 1240 750 748 0 + 1241 747 185 0 + 1242 749 752 0 + 1243 751 750 0 + 1244 542 754 0 + 1245 754 758 0 + 1246 758 759 0 + 1247 759 762 0 + 1248 762 763 0 + 1249 763 548 0 + 1250 551 753 0 + 1251 753 754 0 + 1252 753 755 0 + 1253 755 29 0 + 1254 30 757 0 + 1255 757 756 0 + 1256 756 552 0 + 1257 758 761 0 + 1258 761 755 0 + 1259 761 760 0 + 1260 760 31 0 + 1261 763 764 0 + 1262 764 756 0 + 1263 760 759 0 + 1264 762 765 0 + 1265 765 757 0 + 1266 765 764 0 + 1267 770 709 0 + 1268 708 766 0 + 1269 766 767 0 + 1270 767 771 0 + 1271 771 772 0 + 1272 772 770 0 + 1273 766 769 0 + 1274 769 768 0 + 1275 768 767 0 + 1276 403 769 0 + 1277 768 464 0 + 1278 471 771 0 + 1279 400 770 0 + 1280 772 474 0 + 1281 472 774 0 + 1282 774 405 0 + 1283 401 773 0 + 1284 773 465 0 + 1285 773 775 0 + 1286 775 404 0 + 1287 775 774 0 + 1288 107 667 0 + 1289 671 778 0 + 1290 778 599 0 + 1291 600 780 0 + 1292 780 110 0 + 1293 782 776 0 + 1294 776 669 0 + 1295 668 108 0 + 1296 109 764 0 + 1297 765 782 0 + 1298 595 45 0 + 1299 42 781 0 + 1300 781 780 0 + 1301 777 776 0 + 1302 670 779 0 + 1303 779 777 0 + 1304 594 777 0 + 1305 782 783 0 + 1306 783 482 0 + 1307 779 778 0 + 1308 756 781 0 + 1309 757 35 0 + 1310 783 34 0 + 1311 789 787 0 + 1312 787 788 0 + 1313 788 450 0 + 1314 455 789 0 + 1315 790 789 0 + 1316 787 791 0 + 1317 791 539 0 + 1318 541 593 0 + 1319 479 794 0 + 1320 794 790 0 + 1321 788 131 0 + 1322 117 785 0 + 1323 785 784 0 + 1324 784 449 0 + 1325 777 540 0 + 1326 790 452 0 + 1327 784 792 0 + 1328 792 793 0 + 1329 793 490 0 + 1330 491 794 0 + 1331 785 786 0 + 1332 786 776 0 + 1333 782 792 0 + 1334 786 116 0 + 1335 130 791 0 + 1336 783 793 0 + 1337 796 340 0 + 1338 346 801 0 + 1339 801 796 0 + 1340 61 795 0 + 1341 795 799 0 + 1342 799 63 0 + 1343 795 797 0 + 1344 797 796 0 + 1345 798 797 0 + 1346 799 800 0 + 1347 800 798 0 + 1348 798 802 0 + 1349 802 801 0 + 1350 800 804 0 + 1351 804 803 0 + 1352 803 802 0 + 1353 804 805 0 + 1354 805 62 0 + 1355 803 347 0 + 1356 805 343 0 + 1357 812 807 0 + 1358 807 806 0 + 1359 806 755 0 + 1360 761 808 0 + 1361 808 814 0 + 1362 814 815 0 + 1363 815 812 0 + 1364 27 806 0 + 1365 807 810 0 + 1366 810 23 0 + 1367 26 38 0 + 1368 811 810 0 + 1369 812 590 0 + 1370 586 811 0 + 1371 808 809 0 + 1372 809 587 0 + 1373 588 814 0 + 1374 32 760 0 + 1375 809 813 0 + 1376 813 41 0 + 1377 811 816 0 + 1378 816 21 0 + 1379 22 813 0 + 1380 20 816 0 + 1381 815 589 0 + 1382 818 821 0 + 1383 821 820 0 + 1384 820 817 0 + 1385 817 822 0 + 1386 822 826 0 + 1387 826 825 0 + 1388 825 818 0 + 1389 358 819 0 + 1390 819 820 0 + 1391 817 823 0 + 1392 823 824 0 + 1393 824 355 0 + 1394 818 71 0 + 1395 78 825 0 + 1396 822 823 0 + 1397 819 821 0 + 1398 359 824 0 + 1399 826 360 0 + 1400 731 827 0 + 1401 827 831 0 + 1402 831 333 0 + 1403 732 828 0 + 1404 828 829 0 + 1405 829 827 0 + 1406 829 833 0 + 1407 833 831 0 + 1408 828 830 0 + 1409 830 310 0 + 1410 830 832 0 + 1411 832 334 0 + 1412 833 832 0 + 1413 839 840 0 + 1414 840 834 0 + 1415 834 846 0 + 1416 846 847 0 + 1417 847 839 0 + 1418 561 834 0 + 1419 846 850 0 + 1420 850 557 0 + 1421 841 840 0 + 1422 741 841 0 + 1423 836 835 0 + 1424 835 843 0 + 1425 843 842 0 + 1426 842 836 0 + 1427 839 843 0 + 1428 835 838 0 + 1429 838 848 0 + 1430 848 847 0 + 1431 836 837 0 + 1432 837 556 0 + 1433 850 849 0 + 1434 849 838 0 + 1435 740 837 0 + 1436 842 845 0 + 1437 845 739 0 + 1438 848 849 0 + 1439 738 844 0 + 1440 844 841 0 + 1441 844 845 0 + 1442 852 851 0 + 1443 851 225 0 + 1444 224 853 0 + 1445 853 852 0 + 1446 518 253 0 + 1447 851 94 0 + 1448 852 856 0 + 1449 856 95 0 + 1450 857 701 0 + 1451 700 854 0 + 1452 854 254 0 + 1453 96 857 0 + 1454 853 855 0 + 1455 855 854 0 + 1456 698 856 0 + 1457 699 857 0 + 1458 855 228 0 + 1459 860 863 0 + 1460 863 864 0 + 1461 864 858 0 + 1462 858 865 0 + 1463 865 866 0 + 1464 866 860 0 + 1465 858 859 0 + 1466 859 862 0 + 1467 862 867 0 + 1468 867 865 0 + 1469 862 861 0 + 1470 861 686 0 + 1471 697 859 0 + 1472 861 860 0 + 1473 863 685 0 + 1474 696 864 0 + 1475 867 866 0 + 1476 642 868 0 + 1477 868 830 0 + 1478 312 874 0 + 1479 874 302 0 + 1480 832 870 0 + 1481 870 871 0 + 1482 871 872 0 + 1483 872 868 0 + 1484 869 639 0 + 1485 872 873 0 + 1486 873 869 0 + 1487 869 336 0 + 1488 329 870 0 + 1489 871 873 0 + 1490 874 337 0 + 1491 478 875 0 + 1492 875 876 0 + 1493 876 879 0 + 1494 879 342 0 + 1495 344 476 0 + 1496 50 875 0 + 1497 876 877 0 + 1498 877 8 0 + 1499 25 48 0 + 1500 348 40 0 + 1501 879 878 0 + 1502 878 880 0 + 1503 880 805 0 + 1504 878 877 0 + 1505 7 880 0 + 1506 804 882 0 + 1507 882 13 0 + 1508 803 881 0 + 1509 881 813 0 + 1510 882 881 0 + 1511 459 866 0 + 1512 865 883 0 + 1513 883 318 0 + 1514 460 867 0 + 1515 883 884 0 + 1516 884 886 0 + 1517 886 466 0 + 1518 467 885 0 + 1519 885 335 0 + 1520 338 884 0 + 1521 886 885 0 + 1522 887 384 0 + 1523 672 887 0 + 1524 673 888 0 + 1525 888 889 0 + 1526 889 887 0 + 1527 889 890 0 + 1528 890 385 0 + 1529 295 891 0 + 1530 891 890 0 + 1531 891 888 0 + 1532 900 899 0 + 1533 899 895 0 + 1534 895 893 0 + 1535 893 575 0 + 1536 581 900 0 + 1537 901 902 0 + 1538 902 894 0 + 1539 894 892 0 + 1540 892 897 0 + 1541 897 898 0 + 1542 898 882 0 + 1543 881 901 0 + 1544 893 894 0 + 1545 892 896 0 + 1546 896 895 0 + 1547 897 896 0 + 1548 902 903 0 + 1549 903 904 0 + 1550 904 576 0 + 1551 898 899 0 + 1552 900 12 0 + 1553 580 816 0 + 1554 809 901 0 + 1555 903 905 0 + 1556 905 585 0 + 1557 905 904 0 + 1558 811 906 0 + 1559 906 577 0 + 1560 584 906 0 + 1561 907 908 0 + 1562 908 909 0 + 1563 909 911 0 + 1564 911 912 0 + 1565 912 907 0 + 1566 914 906 0 + 1567 574 912 0 + 1568 907 463 0 + 1569 469 921 0 + 1570 921 914 0 + 1571 913 910 0 + 1572 910 909 0 + 1573 908 719 0 + 1574 720 913 0 + 1575 716 915 0 + 1576 915 917 0 + 1577 917 922 0 + 1578 922 468 0 + 1579 911 573 0 + 1580 579 910 0 + 1581 14 913 0 + 1582 914 918 0 + 1583 918 810 0 + 1584 915 916 0 + 1585 916 18 0 + 1586 918 919 0 + 1587 919 19 0 + 1588 916 917 0 + 1589 922 921 0 + 1590 24 920 0 + 1591 920 919 0 + 1592 15 920 0 + 1593 927 926 0 + 1594 926 928 0 + 1595 928 929 0 + 1596 929 924 0 + 1597 924 923 0 + 1598 923 592 0 + 1599 597 932 0 + 1600 932 927 0 + 1601 926 931 0 + 1602 931 930 0 + 1603 930 925 0 + 1604 925 817 0 + 1605 822 933 0 + 1606 933 927 0 + 1607 527 923 0 + 1608 598 934 0 + 1609 934 536 0 + 1610 525 925 0 + 1611 823 936 0 + 1612 936 935 0 + 1613 935 537 0 + 1614 524 924 0 + 1615 930 929 0 + 1616 928 931 0 + 1617 932 933 0 + 1618 936 601 0 + 1619 935 934 0 + 1620 938 940 0 + 1621 940 879 0 + 1622 743 938 0 + 1623 489 351 0 + 1624 939 876 0 + 1625 875 941 0 + 1626 941 939 0 + 1627 942 492 0 + 1628 493 937 0 + 1629 937 744 0 + 1630 453 942 0 + 1631 937 938 0 + 1632 940 939 0 + 1633 941 488 0 + 1634 942 794 0 + 1635 187 943 0 + 1636 943 461 0 + 1637 378 912 0 + 1638 907 382 0 + 1639 943 583 0 + 1640 470 944 0 + 1641 944 914 0 + 1642 921 944 0 + 1643 591 155 0 + 1644 156 923 0 + 1645 926 945 0 + 1646 945 927 0 + 1647 947 949 0 + 1648 949 596 0 + 1649 151 947 0 + 1650 924 161 0 + 1651 945 946 0 + 1652 946 948 0 + 1653 948 928 0 + 1654 160 929 0 + 1655 946 947 0 + 1656 152 948 0 + 1657 949 932 0 + 1658 950 606 0 + 1659 609 943 0 + 1660 462 952 0 + 1661 952 950 0 + 1662 199 951 0 + 1663 951 950 0 + 1664 204 953 0 + 1665 953 951 0 + 1666 952 953 0 + 1667 86 954 0 + 1668 954 955 0 + 1669 955 504 0 + 1670 505 521 0 + 1671 733 954 0 + 1672 734 955 0 + 1673 737 503 0 + 1674 147 956 0 + 1675 956 959 0 + 1676 959 964 0 + 1677 964 965 0 + 1678 965 177 0 + 1679 259 957 0 + 1680 957 962 0 + 1681 962 653 0 + 1682 661 144 0 + 1683 958 956 0 + 1684 959 961 0 + 1685 961 958 0 + 1686 958 963 0 + 1687 963 660 0 + 1688 960 957 0 + 1689 965 966 0 + 1690 966 960 0 + 1691 960 961 0 + 1692 963 962 0 + 1693 964 966 0 + 1694 968 722 0 + 1695 64 971 0 + 1696 971 968 0 + 1697 721 967 0 + 1698 967 969 0 + 1699 969 968 0 + 1700 967 970 0 + 1701 970 65 0 + 1702 970 972 0 + 1703 972 969 0 + 1704 972 971 0 + 1705 974 387 0 + 1706 390 703 0 + 1707 705 976 0 + 1708 976 977 0 + 1709 977 974 0 + 1710 388 973 0 + 1711 973 975 0 + 1712 975 974 0 + 1713 973 393 0 + 1714 394 975 0 + 1715 395 978 0 + 1716 978 977 0 + 1717 976 978 0 + 1718 980 958 0 + 1719 956 981 0 + 1720 981 979 0 + 1721 979 983 0 + 1722 983 982 0 + 1723 982 980 0 + 1724 992 991 0 + 1725 991 979 0 + 1726 981 146 0 + 1727 145 994 0 + 1728 994 995 0 + 1729 995 992 0 + 1730 983 987 0 + 1731 987 922 0 + 1732 944 993 0 + 1733 993 991 0 + 1734 658 16 0 + 1735 919 994 0 + 1736 980 984 0 + 1737 984 988 0 + 1738 988 963 0 + 1739 982 985 0 + 1740 985 986 0 + 1741 986 984 0 + 1742 987 985 0 + 1743 659 989 0 + 1744 989 17 0 + 1745 917 986 0 + 1746 988 990 0 + 1747 990 916 0 + 1748 989 990 0 + 1749 993 992 0 + 1750 918 995 0 + 1751 714 999 0 + 1752 999 998 0 + 1753 998 205 0 + 1754 997 996 0 + 1755 996 206 0 + 1756 998 1000 0 + 1757 1000 997 0 + 1758 713 990 0 + 1759 915 715 0 + 1760 988 996 0 + 1761 873 986 0 + 1762 999 871 0 + 1763 984 997 0 + 1764 1000 872 0 + 1765 217 306 0 + 1766 311 1001 0 + 1767 1001 853 0 + 1768 855 1001 0 + 1769 1006 1002 0 + 1770 1002 1007 0 + 1771 1007 1008 0 + 1772 1008 1006 0 + 1773 1002 1003 0 + 1774 1003 1004 0 + 1775 1004 638 0 + 1776 641 1006 0 + 1777 980 1005 0 + 1778 1005 1003 0 + 1779 1007 1009 0 + 1780 1009 997 0 + 1781 1004 1005 0 + 1782 982 637 0 + 1783 985 869 0 + 1784 1009 1000 0 + 1785 868 1008 0 + 1786 684 1011 0 + 1787 1011 1010 0 + 1788 1010 362 0 + 1789 361 683 0 + 1790 694 1010 0 + 1791 367 706 0 + 1792 1011 695 0 + 1793 1012 610 0 + 1794 602 1015 0 + 1795 1015 677 0 + 1796 676 1012 0 + 1797 1015 1016 0 + 1798 1016 1017 0 + 1799 1017 1014 0 + 1800 1014 678 0 + 1801 1012 1013 0 + 1802 1013 603 0 + 1803 605 1014 0 + 1804 611 1013 0 + 1805 612 1017 0 + 1806 1016 614 0 + 1807 1027 1019 0 + 1808 1019 519 0 + 1809 512 752 0 + 1810 751 1027 0 + 1811 1019 1003 0 + 1812 1004 1018 0 + 1813 1018 520 0 + 1814 1005 961 0 + 1815 959 1020 0 + 1816 1020 1021 0 + 1817 1021 1022 0 + 1818 1022 1018 0 + 1819 1022 1023 0 + 1820 1023 1026 0 + 1821 1026 515 0 + 1822 1027 1028 0 + 1823 1028 960 0 + 1824 1024 1020 0 + 1825 1021 1023 0 + 1826 1026 516 0 + 1827 517 509 0 + 1828 508 1024 0 + 1829 1024 1025 0 + 1830 1025 964 0 + 1831 507 1025 0 + 1832 966 749 0 + 1833 750 1028 0 + 1834 645 941 0 + 1835 485 148 0 + 1836 143 1029 0 + 1837 1029 1030 0 + 1838 1030 1031 0 + 1839 1031 255 0 + 1840 939 647 0 + 1841 1031 1032 0 + 1842 1032 648 0 + 1843 153 1035 0 + 1844 1035 1034 0 + 1845 1034 1029 0 + 1846 1030 937 0 + 1847 494 1034 0 + 1848 1032 1033 0 + 1849 1033 938 0 + 1850 154 486 0 + 1851 1033 940 0 + 1852 487 1035 0 + 1853 1036 1038 0 + 1854 1038 1037 0 + 1855 1037 1036 0 + 1856 795 1038 0 + 1857 1036 1039 0 + 1858 1039 895 0 + 1859 899 799 0 + 1860 1037 797 0 + 1861 798 897 0 + 1862 896 1039 0 + 1863 898 800 0 + 1864 766 682 0 + 1865 634 767 0 + 1866 707 681 0 + 1867 632 1042 0 + 1868 1042 771 0 + 1869 422 1040 0 + 1870 1040 424 0 + 1871 770 442 0 + 1872 1040 1041 0 + 1873 1041 772 0 + 1874 710 439 0 + 1875 1042 1041 0 + 1876 164 1043 0 + 1877 1043 835 0 + 1878 843 1048 0 + 1879 1048 169 0 + 1880 1047 1044 0 + 1881 1044 1046 0 + 1882 1046 836 0 + 1883 842 1051 0 + 1884 1051 1047 0 + 1885 170 1049 0 + 1886 1049 1050 0 + 1887 1050 1047 0 + 1888 1044 1052 0 + 1889 1052 166 0 + 1890 1043 1045 0 + 1891 1045 1053 0 + 1892 1053 167 0 + 1893 1046 1045 0 + 1894 1052 1053 0 + 1895 1049 1048 0 + 1896 1051 1050 0 + 1897 955 1054 0 + 1898 1054 498 0 + 1899 736 496 0 + 1900 495 1047 0 + 1901 1051 845 0 + 1902 499 1050 0 + 1903 844 1054 0 + 1904 796 1037 0 + 1905 1038 58 0 + 1906 1019 1002 0 + 1907 1006 640 0 + 1908 635 1018 0 + 1909 353 1055 0 + 1910 1055 354 0 + 1911 925 820 0 + 1912 1055 373 0 + 1913 935 356 0 + 1914 357 559 0 + 1915 558 526 0 + 1916 560 819 0 + 1917 824 936 0 + 1918 1008 828 0 + 1919 313 874 0 + 1920 858 883 0 + 1921 859 633 0 + 1922 768 862 0 + 1923 884 628 0 + 1924 627 1042 0 + 1925 626 886 0 + 1926 569 1059 0 + 1927 1059 1056 0 + 1928 1056 567 0 + 1929 909 1057 0 + 1930 1057 1056 0 + 1931 578 910 0 + 1932 911 1058 0 + 1933 1058 1057 0 + 1934 570 1060 0 + 1935 1060 1061 0 + 1936 1061 1058 0 + 1937 1059 1062 0 + 1938 1062 1060 0 + 1939 1061 1062 0 + 1940 235 654 0 + 1941 236 1064 0 + 1942 1064 1063 0 + 1943 1063 655 0 + 1944 957 1064 0 + 1945 962 1063 0 + 1946 679 863 0 + 1947 860 976 0 + 1948 704 691 0 + 1949 861 769 0 + 1950 402 978 0 + 1951 1027 1068 0 + 1952 1068 1007 0 + 1953 1066 1065 0 + 1954 1065 996 0 + 1955 1009 1069 0 + 1956 1069 1066 0 + 1957 1065 1063 0 + 1958 1028 1067 0 + 1959 1067 1066 0 + 1960 1069 1068 0 + 1961 1067 1064 0 + 1962 1075 1070 0 + 1963 1070 1015 0 + 1964 617 1077 0 + 1965 1077 1075 0 + 1966 1070 1071 0 + 1967 1071 1072 0 + 1968 1072 1016 0 + 1969 1073 1071 0 + 1970 1075 1076 0 + 1971 1076 1073 0 + 1972 613 1074 0 + 1973 1074 905 0 + 1974 903 1072 0 + 1975 1076 619 0 + 1976 615 1074 0 + 1977 904 1073 0 + 1978 1077 620 0 + 1979 497 1078 0 + 1980 1078 1079 0 + 1981 1079 747 0 + 1982 1078 1080 0 + 1983 1080 171 0 + 1984 172 1025 0 + 1985 1080 1079 0 + 1986 965 178 0 + 1987 1084 1012 0 + 1988 674 1084 0 + 1989 1014 754 0 + 1990 1013 1081 0 + 1991 1081 1083 0 + 1992 1083 1082 0 + 1993 1082 604 0 + 1994 1082 1088 0 + 1995 1088 1089 0 + 1996 1089 753 0 + 1997 1086 1087 0 + 1998 1087 1083 0 + 1999 1081 1085 0 + 2000 1085 553 0 + 2001 412 1086 0 + 2002 1085 1084 0 + 2003 1087 1088 0 + 2004 1086 1089 0 + 2005 546 675 0 + 2006 285 1090 0 + 2007 1090 1091 0 + 2008 1091 1084 0 + 2009 286 973 0 + 2010 975 1090 0 + 2011 288 547 0 + 2012 1085 1091 0 + 2013 389 1092 0 + 2014 1092 690 0 + 2015 702 1010 0 + 2016 1011 1092 0 + 2017 1093 1097 0 + 2018 1097 1098 0 + 2019 1098 1094 0 + 2020 1094 801 0 + 2021 345 1095 0 + 2022 1095 759 0 + 2023 758 1093 0 + 2024 1093 808 0 + 2025 901 1096 0 + 2026 1096 1097 0 + 2027 1096 1098 0 + 2028 1094 802 0 + 2029 1095 33 0 + 2030 119 448 0 + 2031 788 127 0 + 2032 120 1099 0 + 2033 1099 1100 0 + 2034 1100 447 0 + 2035 785 1099 0 + 2036 784 1100 0 + 2037 1071 1102 0 + 2038 1102 1103 0 + 2039 1103 1101 0 + 2040 1101 1098 0 + 2041 1097 1072 0 + 2042 893 1104 0 + 2043 1104 1102 0 + 2044 1073 572 0 + 2045 1101 894 0 + 2046 1104 1103 0 + 2047 1096 902 0 + 2048 636 1105 0 + 2049 1105 1106 0 + 2050 1106 1022 0 + 2051 1105 983 0 + 2052 979 1108 0 + 2053 1108 1109 0 + 2054 1109 1106 0 + 2055 1109 1021 0 + 2056 981 1107 0 + 2057 1107 1108 0 + 2058 1020 1107 0 + 2059 216 1110 0 + 2060 1110 1111 0 + 2061 1111 717 0 + 2062 11 215 0 + 2063 989 9 0 + 2064 5 1110 0 + 2065 1111 913 0 + 2066 729 234 0 + 2067 231 1115 0 + 2068 1115 725 0 + 2069 1112 730 0 + 2070 724 1112 0 + 2071 649 1113 0 + 2072 1113 1114 0 + 2073 1114 1112 0 + 2074 723 1116 0 + 2075 1116 1032 0 + 2076 1113 650 0 + 2077 1031 1115 0 + 2078 657 1114 0 + 2079 1116 727 0 + 2080 1119 1118 0 + 2081 1118 1117 0 + 2082 1117 111 0 + 2083 103 763 0 + 2084 762 1119 0 + 2085 786 664 0 + 2086 1117 1099 0 + 2087 1100 1118 0 + 2088 792 1119 0 + 2089 951 1081 0 + 2090 1082 607 0 + 2091 1083 950 0 + 2092 1111 582 0 + 2093 1056 1121 0 + 2094 1121 718 0 + 2095 1057 1120 0 + 2096 1120 908 0 + 2097 1120 1121 0 + 2098 1122 1123 0 + 2099 1123 1125 0 + 2100 1125 1124 0 + 2101 1124 1122 0 + 2102 954 1122 0 + 2103 1124 1054 0 + 2104 566 1123 0 + 2105 841 1125 0 + 2106 535 1126 0 + 2107 1126 1035 0 + 2108 1126 157 0 + 2109 778 934 0 + 2110 779 538 0 + 2111 643 4 0 + 2112 6 644 0 + 2113 651 1127 0 + 2114 1127 2 0 + 2115 10 1127 0 + 2116 775 1087 0 + 2117 1088 807 0 + 2118 995 1128 0 + 2119 1128 774 0 + 2120 608 812 0 + 2121 773 952 0 + 2122 992 1128 0 + 2123 473 993 0 + 2124 1068 1130 0 + 2125 1130 829 0 + 2126 999 1129 0 + 2127 1129 833 0 + 2128 1130 1131 0 + 2129 1131 998 0 + 2130 1069 1131 0 + 2131 870 1129 0 + 2132 864 1001 0 + 2133 435 630 0 + 2134 434 854 0 + 2135 806 1089 0 + 2136 1086 413 0 + 2137 410 43 0 + 2138 781 416 0 + 2139 1134 1041 0 + 2140 622 1132 0 + 2141 1132 1106 0 + 2142 1109 1135 0 + 2143 1135 1134 0 + 2144 623 1132 0 + 2145 1023 1136 0 + 2146 1136 625 0 + 2147 624 1133 0 + 2148 1133 1134 0 + 2149 1135 1136 0 + 2150 1133 1040 0 + 2151 1017 1093 0 + 2152 814 1074 0 + 2153 616 815 0 + 2154 1138 1139 0 + 2155 1139 1075 0 + 2156 1077 1138 0 + 2157 1139 1059 0 + 2158 568 1076 0 + 2159 1137 1060 0 + 2160 1062 1138 0 + 2161 621 1137 0 + 2162 1137 571 0 + 2163 1101 1140 0 + 2164 1140 1094 0 + 2165 892 1140 0 + 2166 971 1141 0 + 2167 1141 1110 0 + 2168 214 1142 0 + 2169 1142 1143 0 + 2170 1143 968 0 + 2171 652 1127 0 + 2172 1 972 0 + 2173 969 1113 0 + 2174 1141 3 0 + 2175 1114 1143 0 + 2176 1142 656 0 + 2177 1144 1124 0 + 2178 1125 840 0 + 2179 839 1145 0 + 2180 1145 1144 0 + 2181 1144 1079 0 + 2182 1078 500 0 + 2183 1080 1049 0 + 2184 1048 1145 0 + 2185 1132 1105 0 + 2186 513 629 0 + 2187 1136 1026 0 + 2188 818 1150 0 + 2189 1150 1149 0 + 2190 1149 931 0 + 2191 945 438 0 + 2192 437 825 0 + 2193 1146 75 0 + 2194 80 426 0 + 2195 428 1152 0 + 2196 1152 1151 0 + 2197 1151 1146 0 + 2198 1146 1147 0 + 2199 1147 1148 0 + 2200 1148 1149 0 + 2201 948 1151 0 + 2202 79 427 0 + 2203 1147 72 0 + 2204 1148 1150 0 + 2205 946 1152 0 + 2206 168 1145 0 + 2207 847 1154 0 + 2208 1154 163 0 + 2209 1153 1043 0 + 2210 1154 1155 0 + 2211 1155 1153 0 + 2212 1153 838 0 + 2213 1155 848 0 + 2214 49 920 0 + 2215 877 646 0 + 2216 856 680 0 + 2217 366 711 0 + 2218 857 91 0 + 2219 826 440 0 + 2220 618 1137 0 + 2221 742 726 0 + 2222 1115 1156 0 + 2223 1156 458 0 + 2224 1030 1156 0 + 2225 1116 1033 0 + 2226 262 780 0 + 2227 365 712 0 + 2228 666 265 0 + 2229 276 364 0 + 2230 1157 735 0 + 2231 837 1158 0 + 2232 1158 1157 0 + 2233 1044 502 0 + 2234 501 1157 0 + 2235 1158 1046 0 + 2236 273 363 0 + 2237 1157 1147 0 + 2238 1146 514 0 + 2239 878 967 0 + 2240 880 970 0 + 2241 821 1150 0 + 2242 1148 1158 0 + 2243 1156 1159 0 + 2244 1159 1160 0 + 2245 1160 1161 0 + 2246 1161 789 0 + 2247 1159 1029 0 + 2248 1161 1162 0 + 2249 1162 1034 0 + 2250 942 790 0 + 2251 1160 1162 0 + 2252 522 1163 0 + 2253 1163 849 0 + 2254 1153 162 0 + 2255 1163 523 0 + 2256 534 1164 0 + 2257 1164 1155 0 + 2258 1126 1164 0 + 2259 1165 233 0 + 2260 728 1165 0 + 2261 1112 1143 0 + 2262 1142 213 0 + 2263 211 1166 0 + 2264 1166 1167 0 + 2265 1167 1165 0 + 2266 212 1065 0 + 2267 1066 1166 0 + 2268 1067 1167 0 + 2269 1163 1168 0 + 2270 1168 529 0 + 2271 850 1168 0 + 2272 930 1149 0 + 2273 1045 1169 0 + 2274 1169 159 0 + 2275 158 1169 0 + 2276 201 1170 0 + 2277 1170 977 0 + 2278 1170 953 0 + 2279 92 631 0 + 2280 947 1173 0 + 2281 1173 1174 0 + 2282 1174 149 0 + 2283 994 1174 0 + 2284 991 1172 0 + 2285 1172 1152 0 + 2286 1173 1128 0 + 2287 1172 1171 0 + 2288 1171 1108 0 + 2289 150 1107 0 + 2290 1171 1151 0 + 2291 330 1138 0 + 2292 379 1175 0 + 2293 1175 1061 0 + 2294 383 1175 0 + 2295 446 1118 0 + 2296 1119 1176 0 + 2297 1176 350 0 + 2298 793 1176 0 + 2299 1055 368 0 + 2300 282 554 0 + 2301 281 528 0 + 2302 1133 425 0 + 2303 441 933 0 + 2304 949 1177 0 + 2305 1177 406 0 + 2306 1173 1177 0 + 2307 1172 1134 0 + 2308 1103 1140 0 + 2309 1039 1104 0 + 2310 165 1159 0 + 2311 260 142 0 + 2312 1178 325 0 + 2313 831 1178 0 + 2314 1179 1178 0 + 2315 1129 1179 0 + 2316 328 1179 0 + 2317 1102 1036 0 + 2318 99 889 0 + 2319 888 549 0 + 2320 261 890 0 + 2321 550 891 0 + 2322 1091 1170 0 + 2323 1165 1180 0 + 2324 1180 1181 0 + 2325 1181 745 0 + 2326 1181 748 0 + 2327 1167 1180 0 + 2328 1131 1166 0 + 2329 885 987 0 + 2330 1171 1135 0 + 2331 1090 974 0 + 2332 1176 1095 0 + 2333 44 1177 0 + 2334 279 1182 0 + 2335 1182 278 0 + 2336 1182 1168 0 + 2337 533 791 0 + 2338 1161 787 0 + 2339 1162 1164 0 + 2340 1123 1183 0 + 2341 1183 834 0 + 2342 563 1183 0 + 2343 484 1174 0 + 2344 1184 1181 0 + 2345 1180 1184 0 + 2346 1184 1130 0 + 2347 1117 1185 0 + 2348 1185 112 0 + 2349 1185 121 0 + 2350 115 663 0 + 2351 1175 1058 0 + 2352 1141 900 0 + 2353 1183 277 0 + 2354 1182 846 0 + 2355 1178 1139 0 + 2356 1179 1121 0 + 2357 327 1120 0 + 2358 1169 1053 0 + 2359 1024 1052 0 + 2360 376 662 0 + 2361 377 665 0 + 2362 746 1144 0 + 2363 1160 1154 0 + 2364 375 264 0 + 2365 118 1186 0 + 2366 1186 445 0 + 2367 1186 1185 0 + 2368 1092 852 0 + **face + 1383 + 1 5 4 2 1 7 8 + 5 1 2 3 4 5 + -1.548752862075 -0.647117638129 -0.762283047892 0.012779566461 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 5 7 1 3 12 13 + 5 -3 6 7 8 9 + 0.162685602644 -0.007536084865 0.401841709210 0.915678135681 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 7 9 10 2 4 6 16 17 + 7 10 11 -1 12 13 14 15 + -0.390252001304 -0.113132610772 -0.278574318228 -0.953728138205 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 6 5 3 1 2 10 11 + 6 16 -6 -2 -11 17 18 + -0.251730345755 -0.111331579865 -0.197380923207 0.973984625381 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 6 12 3 5 14 20 21 + 6 -7 -16 19 20 21 22 + 0.478812895880 0.257921970577 0.081298293413 0.962739240180 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 6 8 4 6 15 24 25 + 6 5 12 23 24 25 26 + 0.253870641659 0.074589046694 0.099248690822 0.992263156367 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 6 14 5 11 9 17 18 + 6 -19 -18 27 -15 28 29 + -0.002144739700 0.104279871087 -0.433197533366 0.895246114525 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 15 6 16 19 + 4 -23 13 30 31 + 0.209352207228 0.031089591276 0.152973884736 0.987741073310 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 6 22 13 7 8 25 26 + 6 32 9 4 -26 33 34 + 0.129413797530 0.065378486093 -0.239870522333 0.968600942634 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 3 9 10 11 + 3 10 17 27 + 0.405172794816 0.013799860845 0.791339014251 -0.611221832369 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 4 12 13 22 21 + 4 8 -32 35 22 + -0.468972374028 -0.138855564696 -0.805032399027 -0.576751219045 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 7 15 19 18 14 20 23 24 + 7 -31 36 29 20 37 38 -24 + -0.428649001331 -0.411284756819 0.186103200259 0.892306252170 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 13 4 16 17 18 19 + 4 14 28 -36 -30 + 0.164653113395 -0.054059708814 0.341877495465 0.938188321169 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 14 5 20 21 22 26 23 + 5 21 -35 -34 39 -37 + -0.146374169559 -0.102254122434 -0.317163222865 0.942842290369 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 15 4 23 24 25 26 + 4 38 25 33 39 + 0.035180685940 0.069071491429 0.133567902582 -0.988629730724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 16 6 27 29 30 35 42 43 + 6 40 41 42 43 44 45 + -0.178066175484 -0.258261838760 -0.084918055697 0.962335568529 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 17 8 46 28 44 43 27 38 48 49 + 8 46 47 48 45 49 50 51 52 + 0.329136148880 0.378721707712 -0.868627078713 0.319463403591 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 18 6 27 29 31 32 41 38 + 6 40 53 54 55 56 -49 + 0.272658129616 0.086485379754 0.113611351212 0.989753878479 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 19 5 33 34 37 39 40 + 5 57 58 59 60 61 + -0.757989634571 -0.574603570690 0.591798260635 0.565336674258 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 20 6 33 32 31 30 35 34 + 6 62 -54 63 42 64 -57 + -0.443753989116 -0.289558780519 0.821364432190 -0.491442959210 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 21 6 39 37 36 28 46 47 + 6 -59 65 66 -46 67 68 + -0.901297864429 -0.377993671857 -0.709558425743 -0.594682793170 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 22 4 36 28 44 45 + 4 66 47 69 70 + 0.595401980478 0.164928231369 0.742661072972 0.649040221550 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 23 3 29 30 31 + 3 41 -63 -53 + 0.021253699486 0.119872634740 0.476804071728 -0.870797581889 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 24 4 32 33 40 41 + 4 -62 -61 71 -55 + 0.144607189864 -0.009805897926 0.283206920002 0.959008699037 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 25 6 36 37 34 35 42 45 + 6 -65 -58 -64 43 72 70 + -0.276872481732 -0.038205568022 -0.047843344010 -0.998123914655 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 26 7 47 39 40 41 38 48 50 + 7 68 60 71 56 50 73 74 + 0.174251882588 0.165012077324 0.119224143926 -0.979059047168 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 27 4 42 43 44 45 + 4 44 -48 69 -72 + -0.247292500991 0.024969801554 -0.283556910692 -0.958630266270 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 28 4 46 47 50 49 + 4 67 -74 75 52 + 0.271565735253 0.123563506183 0.550864916417 -0.825396815963 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 29 3 48 49 50 + 3 51 -75 -73 + 0.151615416614 0.102840946139 0.325152333533 -0.940053030310 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 30 6 56 51 52 53 66 67 + 6 76 77 78 79 80 81 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 31 4 51 56 59 58 + 4 -76 82 83 84 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 32 7 55 52 51 58 61 63 64 + 7 85 -77 -84 86 87 88 89 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 33 4 55 54 65 64 + 4 90 91 92 89 + -0.190388146918 0.005121975742 -0.704651068700 -0.709535507741 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 34 7 57 62 65 54 53 66 68 + 7 93 94 -91 95 79 96 97 + -0.143792634036 -0.018750387259 -0.226811642679 -0.973758133072 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 35 4 52 53 54 55 + 4 78 -95 -90 85 + -0.893577276162 -0.223650386243 -0.955499212835 -0.192358412877 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 36 5 61 60 57 62 63 + 5 98 99 93 100 -87 + -0.665192792615 -0.267546712349 -0.534767395027 0.801525164875 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 37 6 56 59 60 57 68 67 + 6 82 101 99 -97 102 81 + 0.065529859793 0.030349905714 0.293620618664 -0.955440116134 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 38 4 58 59 60 61 + 4 -83 101 -98 -86 + -0.938588271283 -0.367497609089 -0.929644900859 -0.026568131684 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 39 4 62 63 64 65 + 4 100 88 -92 -94 + 0.838160753758 0.450822846632 -0.545871471498 -0.706245777020 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 40 3 66 67 68 + 3 80 -102 -96 + -0.159873174775 -0.041450190442 0.168254497899 -0.984871720403 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 41 4 86 90 98 94 + 4 103 104 105 106 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 42 8 76 81 82 73 85 86 94 95 + 8 107 108 109 110 111 -106 112 113 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 43 5 69 74 73 85 87 + 5 114 115 110 116 117 + -1.763043360535 -0.681044376000 -0.732125277423 -0.013081898840 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 44 7 74 69 72 71 70 84 83 + 7 -114 118 119 120 121 122 123 + 0.016473157411 -0.227400818313 0.146639896744 0.962697049187 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 45 5 76 77 70 84 81 + 5 124 125 121 126 -107 + -0.690943172680 0.026131344091 -0.937676878926 -0.346524492040 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 46 6 75 72 69 87 89 88 + 6 127 -118 -117 128 129 130 + 0.116396457248 -0.048969936103 -0.114798143554 0.992181098184 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 47 4 70 71 78 77 + 4 -120 131 132 125 + 0.511310124567 -0.047964888262 0.470625867490 0.881028184761 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 48 6 78 71 72 75 80 79 + 6 -131 -119 -127 133 134 135 + 0.392726457068 -0.017908427751 0.192691346757 0.981095985671 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 49 4 74 73 82 83 + 4 115 -109 136 123 + 0.597037431487 0.658140295955 -0.730487674047 -0.182315958999 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 50 5 80 75 88 93 92 + 5 -133 -130 137 138 139 + 0.352492986582 0.027495497458 0.049785663575 0.998381382700 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 51 7 76 77 78 79 91 96 95 + 7 124 -132 -135 140 141 142 113 + 0.948694349904 0.270913883631 0.592991400685 0.758265696421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 52 4 79 80 92 91 + 4 -134 -139 143 -140 + 0.403509551824 0.062578426701 0.060657787790 0.996195047815 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 53 4 81 82 83 84 + 4 108 136 -122 126 + -0.324234456606 -0.412350414283 0.797150386843 -0.441042397731 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 54 5 87 85 86 90 89 + 5 -116 111 103 144 -128 + -1.488822370042 -0.355378579789 -0.834073299959 -0.421933401525 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 55 6 93 88 89 90 98 97 + 6 -137 -129 -144 104 145 146 + 0.105461258944 0.032898962707 -0.243186223716 0.969421538263 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 56 5 91 92 93 97 96 + 5 -143 -138 -146 147 -141 + 0.215609271306 0.072758223527 -0.174111489507 0.982034332460 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 57 5 94 95 96 97 98 + 5 112 -142 -147 -145 105 + 0.048789914827 0.336439867600 -0.552210765785 0.762805011546 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 58 4 99 103 111 112 + 4 148 149 150 151 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 59 6 100 101 102 99 112 113 + 6 152 153 154 -151 155 156 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 60 6 103 99 102 106 110 109 + 6 -148 -154 157 158 159 160 + -0.601597806973 -0.230262914638 -0.126899824216 -0.964818855929 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 61 6 104 100 101 105 107 108 + 6 161 152 162 163 164 165 + -0.715435241051 -0.270176039460 -0.897728732619 -0.347977054320 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 62 4 100 104 114 113 + 4 -161 166 167 156 + -0.864716107497 -0.414199221125 -0.908290653898 -0.058711951606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 63 4 101 102 106 105 + 4 153 157 168 -162 + 0.497968448447 0.314757238741 -0.646420856259 0.695030903812 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 64 6 104 108 109 103 111 114 + 6 -165 169 160 149 170 -166 + 0.052454854569 -0.141402950541 -0.059960975421 0.988134549039 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 65 4 106 105 107 110 + 4 168 163 171 -158 + -0.190744796413 -0.012607021793 0.441168810244 -0.897335580410 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 66 4 107 108 109 110 + 4 164 169 -159 -171 + -0.206864816864 0.029245661858 0.170863157840 -0.984860636108 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 67 4 111 112 113 114 + 4 150 155 -167 -170 + -0.786834954772 -0.558303446325 -0.025145960383 0.829255655692 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 68 5 123 118 119 127 128 + 5 172 173 174 175 176 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 69 6 122 115 121 118 123 124 + 6 177 178 179 -172 180 181 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 70 5 117 116 115 121 120 + 5 182 183 178 184 185 + 0.879452521502 0.247912616884 0.828282497190 0.502481282477 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 71 6 116 115 122 126 132 133 + 6 183 -177 186 187 188 189 + -1.226230066758 -0.654723493262 0.543153813457 0.525662517494 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 72 5 119 120 117 131 127 + 5 190 185 191 192 -174 + -0.208388525015 0.044788542640 -0.244465692483 -0.968622997686 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 73 6 116 117 131 130 134 133 + 6 -182 191 193 194 195 189 + 0.290891828273 0.011529622458 -0.053924350545 0.998478458568 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 74 4 118 119 120 121 + 4 173 190 -184 179 + 0.127499343497 -0.070102007741 0.492314902758 0.867589617868 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 75 4 122 124 125 126 + 4 -181 196 197 -186 + 0.211349538432 -0.096689862991 0.825040105484 0.556740419530 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 76 5 125 124 123 128 129 + 5 -196 -180 -176 198 199 + 0.549625159297 0.038861714956 0.796364182613 0.603567606620 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 77 6 130 129 125 126 132 134 + 6 200 199 197 187 201 -194 + -0.378791849592 -0.035904787778 -0.990835721901 0.130212973312 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 78 5 127 128 129 130 131 + 5 175 198 -200 -193 192 + -0.137632835461 -0.080959296181 -0.528952432497 0.844780987308 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 79 3 132 133 134 + 3 188 -195 -201 + 0.050377197926 0.055902439103 -0.781283151898 0.621668363247 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 80 8 150 146 147 135 137 142 158 159 + 8 202 203 204 205 206 207 208 209 + -0.808815615288 -0.071571020955 -0.969495964080 -0.234425179091 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 81 5 138 141 135 147 144 + 5 210 211 -204 212 213 + -0.191308127980 -0.009019923287 -0.451732754171 0.892107706386 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 82 7 143 136 140 139 148 154 153 + 7 214 215 216 217 218 219 220 + 0.063990557439 -0.167609071165 0.583710198955 0.794474419286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 83 6 139 138 144 145 149 148 + 6 221 -213 222 223 224 -217 + 0.477321807081 0.062996558246 0.426326292267 0.902373163481 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 84 6 149 145 146 150 152 151 + 6 -223 225 -202 226 227 228 + 0.423740159511 0.246355012470 0.203064775104 -0.947667613113 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 85 5 136 137 135 141 140 + 5 229 -205 -211 230 -215 + -0.151910095894 -0.107570530332 -0.049410257382 0.992968885449 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 86 4 136 137 142 143 + 4 229 206 231 214 + 1.073919563851 0.578797972314 -0.373270193736 -0.725025702795 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 87 4 138 139 140 141 + 4 -221 -216 -230 -210 + 0.163796753615 -0.012936687356 0.141165173322 0.989901528416 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 88 6 142 143 153 157 162 158 + 6 231 -220 232 233 234 -207 + -0.703649276212 -0.199388678309 -0.111748699380 -0.973527802967 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 89 4 144 145 146 147 + 4 222 225 203 212 + -0.596796607311 -0.277535306673 0.037633066042 -0.959978075734 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 90 5 148 149 151 155 154 + 5 -224 -228 235 236 -218 + 0.254294155701 0.085286017043 0.471562666102 -0.877698665395 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 91 4 150 152 160 159 + 4 226 237 238 209 + 0.255317442860 -0.042528390063 0.240592172795 0.969694148909 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 92 6 156 155 151 152 160 161 + 6 239 -235 -227 237 240 241 + -0.044628224431 0.039518732473 0.115462409706 -0.992525416163 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 93 5 153 154 155 156 157 + 5 -219 -236 -239 242 -232 + -0.063920371696 -0.005020253766 0.249872549683 -0.968265720744 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 94 4 156 157 162 161 + 4 242 233 243 241 + 0.214696445762 0.028531254181 -0.079553425380 0.996422209731 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 95 5 158 159 160 161 162 + 5 208 -238 240 -243 234 + 0.236792354417 0.021577215564 -0.020304983245 0.999560969338 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 96 7 168 163 165 179 180 183 184 + 7 244 245 246 247 248 249 250 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 97 6 167 164 163 165 173 174 + 6 251 252 245 253 254 255 + 0.764458138362 0.079969223242 0.901478377141 -0.425372376726 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 98 4 163 164 169 168 + 4 -252 256 257 244 + -0.304043686674 -0.037802219312 0.003756234918 -0.999278180946 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 99 5 164 167 166 170 169 + 5 -251 258 259 260 -256 + -0.114363467287 0.050120037231 -0.058853442908 -0.997007649984 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 100 4 170 166 172 171 + 4 -259 261 262 263 + -0.190704135455 0.141795590726 -0.469829201154 -0.871294744730 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 101 4 173 165 179 182 + 4 -253 246 264 265 + 0.484148810554 0.011357895013 0.485736770869 0.874031342485 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 102 7 172 166 167 174 175 177 178 + 7 -261 -258 -255 266 267 268 269 + 0.973898700976 0.264154670913 0.242413431835 0.933519168470 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 103 6 168 169 170 171 185 184 + 6 -257 -260 -263 270 271 250 + -0.788843367894 -0.055893346809 -0.539992517850 -0.839811892300 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 104 5 171 172 178 186 185 + 5 -262 -269 272 273 -270 + -0.423435812150 0.158272654211 -0.855415304158 -0.493167744629 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 105 3 175 176 177 + 3 274 275 -267 + 0.595129072950 0.153941786509 0.100168702712 0.982989398398 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 106 6 173 174 175 176 181 182 + 6 254 266 274 276 277 265 + -0.389007201045 -0.046369678619 -0.191562481828 -0.980384449316 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 107 7 180 181 176 177 178 186 183 + 7 278 -276 275 268 272 279 -248 + -0.103535388036 -0.020130281437 0.102146287213 -0.994565688016 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 108 4 179 180 181 182 + 4 247 278 277 -264 + 0.166945588722 0.000131314204 0.052918341997 0.998598834286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 109 4 183 184 185 186 + 4 249 -271 -273 279 + -0.208267841170 -0.004910938676 -0.377497379808 0.925997630083 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 110 6 195 191 192 198 201 202 + 6 280 281 282 283 284 285 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 111 7 197 187 189 190 199 204 203 + 7 286 287 288 289 290 291 292 + -0.113289309177 -0.096535140997 0.115057078189 -0.988657086816 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 112 5 189 187 188 194 193 + 5 -287 293 294 295 296 + 0.051415718986 -0.029815774328 -0.053820460916 0.998105394028 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 113 5 191 194 188 196 195 + 5 297 -294 298 299 280 + -0.140562429093 -0.024860724781 -0.591422484250 0.805978529172 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 114 4 188 187 197 196 + 4 -293 -286 300 -298 + -0.476331425927 -0.374839018426 -0.911107821861 0.171400837831 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 115 6 192 193 189 190 200 198 + 6 301 296 288 302 303 -282 + -0.116292434738 0.046802502158 -0.854958910709 0.516579893909 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 116 3 190 200 199 + 3 302 304 -289 + -0.051744718814 -0.015911505244 0.296756623980 -0.954820574833 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 117 4 191 192 193 194 + 4 281 301 -295 -297 + 0.069781523901 0.097072411696 -0.074103003438 0.992514832015 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 118 5 195 196 197 203 202 + 5 -299 -300 -292 305 285 + -0.313640650273 0.010863423191 -0.580417706754 -0.814246444096 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 119 5 199 200 198 201 204 + 5 -304 303 283 306 -290 + -0.082515097669 0.069254960661 0.120875941491 -0.990248835997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 120 4 201 202 203 204 + 4 284 -305 -291 -306 + -0.205749109247 0.034186435222 -0.237467731742 -0.970793677373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 121 7 209 208 205 211 213 214 216 + 7 307 308 309 310 311 312 313 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 122 4 206 205 211 212 + 4 314 309 315 316 + -0.278893648346 0.055244893828 -0.517063705061 -0.854162236706 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 123 7 210 207 206 212 213 214 215 + 7 317 318 -316 319 311 320 321 + -0.139800726793 -0.099060340684 0.077973196671 -0.992021788825 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 124 4 208 207 210 209 + 4 322 -317 323 307 + 0.850554719824 0.226964863067 0.843297318672 -0.487172026346 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 125 4 205 206 207 208 + 4 -314 -318 -322 308 + 0.238651823016 0.182200820565 -0.010097293798 -0.983209492246 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 126 4 209 210 215 216 + 4 -323 -321 324 313 + 0.695031549533 0.145214145757 0.805608917598 -0.574375420573 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 127 3 211 212 213 + 3 315 319 -310 + 1.071222882216 0.440700762406 0.284109782199 0.851507175350 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 128 3 214 215 216 + 3 320 324 -312 + -0.144735048772 0.152399091113 -0.792597874143 0.590392349995 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 129 3 217 224 225 + 3 325 326 327 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 130 6 221 222 218 217 225 226 + 6 328 329 330 -327 331 332 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 131 6 217 218 219 220 228 224 + 6 -330 333 334 335 336 -325 + -0.704093194721 -0.237228599188 -0.558332670308 -0.794976239264 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 132 4 218 219 223 222 + 4 333 337 338 329 + 0.230667219816 0.030487032837 0.087740934500 0.995676689112 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 133 6 221 223 219 220 227 226 + 6 339 -337 334 340 341 332 + 0.262836466128 -0.550105228550 0.618642701358 -0.560950484070 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 134 3 220 227 228 + 3 340 342 -335 + -0.663428600983 0.117914817603 -0.885708942599 0.449016441558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 135 3 221 222 223 + 3 328 -338 -339 + 0.171954569100 -0.034270874988 0.056756917693 0.997799658960 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 136 5 224 225 226 227 228 + 5 326 331 -341 342 336 + -0.230065175212 -0.018496315036 0.006610068273 -0.999807078054 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 137 5 231 234 233 180 179 + 5 343 344 345 -247 346 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 138 5 229 236 233 180 181 + 5 347 348 345 278 349 + -0.427434294650 0.119054756736 -0.939204531147 -0.322057158857 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 139 5 229 230 232 182 181 + 5 350 351 352 -277 349 + -0.549536234495 -0.144041512261 -0.386985600617 0.910765715023 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 140 4 229 230 235 236 + 4 350 353 354 -347 + 1.931808096308 0.539594382479 0.800379847433 0.261208733047 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 141 5 230 232 231 234 235 + 5 351 355 343 356 -353 + 0.786286965054 0.090685193450 0.812440576271 0.575948353343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 142 4 231 232 182 179 + 4 -355 352 -264 346 + 0.094520040132 0.008354444376 0.280595951117 -0.959789620425 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 143 4 233 234 235 236 + 4 -344 356 354 348 + -0.313958654181 -0.103113853074 -0.000592118160 -0.994669383615 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 144 7 244 245 241 250 221 226 253 + 7 357 358 359 360 -332 361 362 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 145 7 243 242 237 238 249 251 252 + 7 363 364 365 366 367 368 369 + -0.346528190766 0.083904393740 -0.285772319908 -0.954617323269 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 146 4 243 241 250 252 + 4 370 359 371 369 + 0.262019097617 -0.083410504171 0.196741694318 0.976900912842 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 147 5 242 237 239 247 246 + 5 364 372 373 374 375 + 0.385191721839 -0.205982123149 0.477726737355 0.854019045080 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 148 7 220 248 249 238 240 254 227 + 7 376 377 -366 378 379 380 -340 + -0.832123180794 -0.187147163173 -0.932720256964 0.308235075172 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 149 4 237 238 240 239 + 4 365 378 381 -372 + 0.495308250662 -0.108197114576 0.820993293073 -0.560592005942 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 150 3 220 248 219 + 3 376 382 334 + 0.002744796312 0.557384887589 -0.355242643436 0.750416385330 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 151 6 244 247 239 240 254 253 + 6 383 -373 -381 379 384 362 + -0.233302552345 -0.054451068586 0.020776618290 -0.998300262077 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 152 5 242 243 241 245 246 + 5 -363 370 -358 385 375 + -0.079334923884 0.142131290591 -0.068162217375 -0.987498156129 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 153 4 244 245 246 247 + 4 357 385 -374 -383 + -0.375679883743 -0.106538179153 -0.073327231533 -0.991601095955 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 154 5 219 248 249 251 223 + 5 -382 377 367 386 -337 + 0.158683197202 0.126672044576 -0.033378815444 0.991382896666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 155 5 250 221 223 251 252 + 5 360 339 -386 368 -371 + 0.129949833461 0.032606520294 -0.019629566771 0.999275485010 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 156 4 226 253 254 227 + 4 361 -384 380 341 + -0.268463116770 0.035020201765 -0.054336042130 -0.997908402607 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 157 5 230 256 257 259 229 + 5 387 388 389 390 350 + -0.215709689872 -0.069526234049 0.066874824386 -0.995336054126 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 158 5 255 232 230 256 258 + 5 391 -351 387 392 393 + 0.141239916806 -0.036547181604 0.264389017268 0.963723378914 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 159 7 232 255 136 137 260 173 182 + 7 -391 394 229 395 396 -265 -352 + -0.215227048122 -0.083651907302 0.203466007483 -0.975501892465 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 160 4 258 255 136 140 + 4 393 394 215 397 + -0.239375068055 -0.057271653257 -0.374570740938 0.925427856597 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 161 6 135 141 257 259 176 175 + 6 -211 398 389 399 -274 400 + 0.082202038902 0.188783817627 -0.375479810313 -0.907400453080 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 162 5 258 256 257 141 140 + 5 -392 388 -398 230 397 + 0.709681013154 0.157820413809 0.465827896296 0.870687709812 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 163 5 260 137 135 175 174 + 5 -395 -205 -400 -266 401 + -0.025935002516 0.086337889073 -0.156019781192 -0.983973371991 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 164 4 259 229 181 176 + 4 390 -349 -276 -399 + -0.677003901474 -0.056402832694 -0.811051118150 0.582249778197 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 165 3 260 174 173 + 3 -401 -254 -396 + -0.233032767390 -0.029731442970 -0.022783343053 -0.999298234051 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 166 8 270 271 261 102 101 264 273 274 + 8 402 403 404 -153 405 406 407 408 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 167 6 261 102 106 262 266 267 + 6 404 157 409 410 411 412 + 0.304862680745 -0.005936492850 0.806475993820 0.591237033215 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 168 7 263 262 106 105 265 276 275 + 7 413 -409 168 414 415 416 417 + 0.016758793599 -0.146471292741 -0.303354454492 0.941553097463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 169 5 261 267 268 272 271 + 5 -412 418 419 420 403 + 0.484725772082 0.242064788479 0.131160524641 0.961354021656 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 170 4 105 101 264 265 + 4 -162 405 421 -414 + -0.974934882327 -0.479156284659 -0.109820226376 -0.870832229968 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 171 7 270 272 268 269 263 275 274 + 7 422 -419 423 424 -417 425 408 + 0.099802010842 0.343829139912 -0.856522635607 0.384903231008 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 172 4 263 262 266 269 + 4 413 410 426 424 + -0.150903628872 0.029004087866 0.265547942974 -0.963661274966 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 173 4 265 264 273 276 + 4 -421 406 427 -415 + -0.823422143369 -0.316912906511 -0.871332530074 -0.374627590711 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 174 4 266 267 268 269 + 4 411 418 423 -426 + -0.289688773184 -0.089626098050 0.176349441311 -0.980238765351 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 175 3 270 271 272 + 3 402 -420 -422 + 0.588120622403 0.764834949913 -0.226170198232 0.603220142919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 176 4 273 274 275 276 + 4 407 -425 -416 -427 + -0.353680733973 0.143770730869 -0.844641052452 -0.515666044508 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 177 5 279 278 277 123 128 + 5 428 429 430 -176 431 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 178 5 277 282 283 124 123 + 5 432 433 434 -180 -430 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 179 6 280 281 278 279 129 125 + 6 435 436 -428 437 199 438 + -0.314624974987 -0.011358825537 0.071650357403 -0.997365130414 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 180 4 280 283 124 125 + 4 439 434 196 438 + 2.085103568370 0.727195458300 0.326718351057 0.603690222309 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 181 4 277 278 281 282 + 4 -429 -436 440 -432 + 0.323293356089 0.056835098818 0.742292737779 -0.667661038989 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 182 3 279 129 128 + 3 437 -198 431 + 0.190507945014 -0.043013307858 0.014713061403 0.998966156169 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 183 4 280 281 282 283 + 4 435 440 433 -439 + 0.120158460162 0.269510525311 -0.962994625448 -0.002329829492 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 184 5 289 285 284 292 293 + 5 441 442 443 444 445 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 185 4 287 284 292 291 + 4 446 443 447 448 + 0.053917161609 0.087436481112 0.993884132028 -0.067447712146 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 186 5 286 285 284 287 288 + 5 449 442 -446 450 451 + 0.182615056399 -0.025985875608 -0.320207268610 0.946991045046 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 187 5 290 286 288 295 294 + 5 452 -451 453 454 455 + -0.369230003465 -0.241119413905 -0.486728448677 -0.839617082655 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 188 4 285 286 290 289 + 4 -449 -452 456 441 + 0.152496699935 0.033668262945 -0.453322923915 0.890710264185 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 189 4 288 287 291 295 + 4 -450 -448 457 -453 + 0.121159080352 -0.186691981315 0.908501248606 0.373860382221 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 190 4 289 290 294 293 + 4 -456 -455 458 445 + -0.336149618478 -0.012824151933 -0.388872381961 -0.921202372812 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 191 5 291 292 293 294 295 + 5 -447 444 -458 -454 -457 + -0.295497673683 0.019176036219 0.002535781853 -0.999812907221 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 192 6 243 297 296 300 301 252 + 6 459 460 461 462 463 369 + -0.080157518912 0.080148156458 -0.007280010132 -0.996756376688 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 193 5 242 297 296 298 237 + 5 464 460 465 466 -364 + -0.118242058066 -0.281730473250 0.343235499806 -0.896000743367 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 194 7 299 298 296 300 302 304 303 + 7 467 -465 461 468 469 470 471 + 0.638083600111 -0.045225733426 0.705017333790 0.707746559223 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 195 3 242 297 243 + 3 464 -459 363 + 0.236786969583 0.200592655118 0.189528989112 -0.961166660366 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 196 4 298 237 238 299 + 4 466 365 472 467 + -0.049834314869 0.005373400157 -0.276452641825 0.961012519897 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 197 4 238 299 303 249 + 4 472 -471 473 -366 + 0.138518346388 0.166372252156 0.241028079546 -0.956151524907 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 198 3 300 302 301 + 3 468 474 -462 + -0.166116995592 -0.033935702327 -0.037360994128 -0.998725449874 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 199 5 302 301 252 251 304 + 5 474 463 -368 475 -469 + 0.041576226023 0.077139345140 -0.138292735939 0.987382722463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 200 4 303 304 251 249 + 4 -470 -475 -367 -473 + 0.009519872169 0.266394603124 -0.259460094387 0.928285718326 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 201 7 311 306 305 308 314 317 318 + 7 476 477 478 479 480 481 482 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 202 5 307 305 306 218 222 + 5 483 -477 484 -329 485 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 203 4 307 305 308 309 + 4 483 478 486 487 + -0.054279369636 0.002994951433 -0.165492439890 0.986206511135 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 204 5 306 218 219 248 311 + 5 484 333 -382 488 476 + -0.188957411263 -0.013211026960 -0.048171671835 -0.998751700274 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 205 9 312 310 309 307 222 223 251 304 313 + 9 489 490 487 -485 -338 -386 475 491 492 + -0.074706238106 0.139067655648 -0.005810800979 -0.990265833877 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 206 5 308 309 310 316 314 + 5 486 -490 493 494 -479 + -0.125835100235 0.048432977454 -0.044299195037 -0.997843588953 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 207 4 310 312 315 316 + 4 -489 495 496 -493 + -0.267898176875 0.144142737927 -0.256981262332 -0.955606353010 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 208 9 311 248 249 303 313 312 315 319 318 + 9 -488 377 -473 497 492 495 498 499 482 + 0.060320536087 -0.068017194093 0.257032987796 -0.964006070776 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 209 3 304 313 303 + 3 491 -497 -470 + 0.188047942515 -0.308423486308 0.506083461961 -0.805452967357 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 210 5 315 316 314 317 319 + 5 496 494 480 500 -498 + 0.572445080049 -0.046345941789 0.656978798900 0.752483163583 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 211 3 317 318 319 + 3 481 -499 -500 + 0.680212511267 -0.056981524209 0.972565716933 -0.225541641709 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 212 7 333 325 330 331 321 317 314 + 7 501 502 503 504 505 -480 506 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 213 5 329 328 325 333 334 + 5 507 508 -501 509 510 + -0.014930809251 -0.074528079678 0.084072132468 -0.993668678123 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 214 7 335 320 322 321 317 319 338 + 7 511 512 513 505 500 514 515 + -0.015875041579 -0.000366763748 0.147715984972 -0.989029753480 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 215 8 320 323 324 327 328 329 336 335 + 8 516 517 518 519 -507 520 521 511 + 0.118092823406 0.468074634407 -0.091515142919 -0.878937492226 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 216 3 320 323 322 + 3 516 522 -512 + 0.026317626093 -0.020994542736 0.239935073938 -0.970561893683 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 217 7 321 322 323 324 326 332 331 + 7 -513 -522 517 523 524 525 504 + 0.433301441599 -0.086756156603 0.959316482150 -0.268673140389 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 218 3 324 327 326 + 3 518 526 -523 + 0.344917557115 -0.170312599996 0.715703193250 0.677320129226 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 219 6 326 327 328 325 330 332 + 6 -526 519 508 502 527 -524 + 0.151651928670 0.016245183898 0.193682356603 0.980929782778 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 220 6 336 329 334 316 315 337 + 6 -520 -510 528 -496 529 530 + 0.733130247976 0.190562810877 0.944413933585 -0.267895758013 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 221 3 330 331 332 + 3 503 -525 -527 + 0.423998220556 0.073044646695 0.819635893986 0.568209011614 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 222 4 334 333 314 316 + 4 -509 -506 -494 -528 + 0.709659532515 -0.001768620663 0.960231538258 -0.279199328286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 223 4 336 335 338 337 + 4 521 -515 531 530 + -0.348605207281 -0.111148189261 -0.262106474719 -0.958616855649 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 224 4 315 337 338 319 + 4 529 -531 -514 -498 + -0.250799884104 -0.019367917290 -0.169819594474 -0.985284826389 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 225 3 339 56 67 + 3 532 -81 533 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 226 8 345 346 340 59 56 339 349 350 + 8 534 535 536 -82 -532 537 538 539 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 227 6 343 57 60 340 346 347 + 6 540 -99 541 -535 542 543 + -0.344072136293 -0.132011085457 0.108218860887 -0.985323171079 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 228 6 339 67 68 341 352 349 + 6 -533 -102 544 545 546 -537 + 0.487476645000 0.146185614938 0.024275441449 0.988959285779 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 229 3 340 59 60 + 3 536 101 541 + 0.249413993718 0.092810869172 0.010851417435 0.995624622688 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 230 5 341 342 344 351 352 + 5 547 548 549 550 -545 + 0.104399157566 -0.019607329859 0.462758835480 0.886267348378 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 231 5 343 342 344 348 347 + 5 551 548 552 553 543 + 0.052858347737 0.090927395302 -0.541577204639 -0.835719055783 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 232 5 68 341 342 343 57 + 5 544 547 -551 540 -97 + -0.375567734076 -0.092163651357 -0.969254349020 0.228148785387 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 233 5 345 348 344 351 350 + 5 554 -552 549 555 539 + 0.030135958066 0.071120481797 -0.133796009103 -0.988453592748 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 234 4 345 346 347 348 + 4 534 542 -553 -554 + 0.757718810795 0.433433608163 0.024647750686 -0.900848375533 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 235 4 349 350 351 352 + 4 538 -555 550 546 + -0.140188996657 -0.001651986121 -0.035192267777 -0.999379194916 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 236 7 353 354 81 76 361 362 363 + 7 556 557 -107 558 559 560 561 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 237 6 77 70 358 355 359 360 + 6 125 562 563 564 565 566 + -0.158602489960 0.047849038668 0.111166160749 -0.992649260415 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 238 6 354 353 356 355 358 357 + 6 -556 567 568 -563 569 570 + -0.084197734726 0.154550870540 -0.065582589980 -0.985805737611 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 239 4 356 353 363 364 + 4 -567 -561 571 572 + -0.109647064511 0.140407686202 -0.922334790807 0.359978076168 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 240 4 354 81 84 357 + 4 557 -126 573 570 + -1.159698846904 -0.369713845321 -0.368820776215 -0.852808834153 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 241 6 361 76 77 360 366 367 + 6 -558 124 -566 574 575 576 + -0.517880649211 -0.495774997173 0.463793248878 -0.734236320590 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 242 5 356 355 359 365 364 + 5 568 564 577 578 572 + 0.526368572070 0.020298598054 0.613984662506 0.789056906139 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 243 4 70 84 357 358 + 4 121 573 -569 -562 + 0.602968773947 0.213674384704 0.688686428606 -0.692859480974 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 244 4 359 360 366 365 + 4 565 574 579 -577 + 0.441219804687 0.047338178911 0.230981149291 0.971805950532 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 245 3 361 362 367 + 3 559 580 576 + 0.352720504166 0.607575275262 -0.060330021732 -0.791967533026 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 246 6 362 363 364 365 366 367 + 6 560 571 -578 -579 575 -580 + 0.457260533728 0.556345171593 0.248673044681 -0.792869325232 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 247 6 283 368 375 376 122 124 + 6 581 582 583 584 -181 -434 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 248 5 280 369 371 126 125 + 5 585 586 587 -197 438 + -0.213142621796 -0.186057217539 -0.170765488124 0.967585582710 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 249 5 369 371 370 372 374 + 5 586 588 589 590 591 + -0.200597069781 0.017244027868 0.140089990977 -0.989988604950 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 250 6 370 372 373 368 375 377 + 6 589 592 593 582 594 595 + 1.450856063710 0.584144018688 0.139213967377 0.799621933615 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 251 6 369 280 283 368 373 374 + 6 -585 439 581 -593 596 591 + -0.474862516463 0.045266508278 -0.984078089781 -0.171875700556 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 252 6 376 377 370 371 126 122 + 6 597 595 -588 587 -186 -584 + -0.531429576132 -0.037323939871 -0.844984106559 -0.533487378647 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 253 3 372 373 374 + 3 592 596 -590 + -0.450882429351 -0.153904896718 0.302217712018 -0.940732553550 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 254 3 375 376 377 + 3 583 597 -594 + 0.860052380248 0.253370824863 0.963132686257 0.090435909744 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 255 5 191 195 380 321 331 + 5 -280 598 599 -504 600 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 256 5 378 188 196 381 382 + 5 601 298 602 603 604 + -0.125544387247 -0.212757869293 0.188542637161 -0.958741760343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 257 6 379 378 382 324 326 383 + 6 605 -604 606 523 607 608 + -0.042793255032 -0.100232385890 -0.146250158741 0.984156674461 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 258 4 378 188 194 379 + 4 601 294 609 605 + -0.210507362282 0.026007704290 -0.446638718383 -0.894336320720 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 259 6 322 380 195 196 381 323 + 6 610 -598 -299 602 611 522 + 0.185280622255 -0.019067135377 0.201910595334 0.979218339207 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 260 6 331 191 194 379 383 332 + 6 600 297 609 -608 612 525 + 0.200315349788 0.162680199402 0.290592677475 0.942916246822 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 261 3 380 321 322 + 3 599 -513 610 + -0.232198774640 0.042613848101 -0.314094205661 -0.948434968736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 262 4 381 382 324 323 + 4 603 606 -517 -611 + 0.413926857162 0.156521450003 0.744575225335 -0.648928940259 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 263 3 326 383 332 + 3 607 612 -524 + 0.006980703294 -0.044064772882 0.145509743579 -0.988375035255 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 264 6 387 289 293 384 389 390 + 6 613 -445 614 615 616 617 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 265 6 392 389 384 385 271 270 + 6 618 -615 619 620 -402 621 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 266 7 386 388 290 294 385 271 272 + 7 622 623 -455 624 620 -420 625 + 0.303557161725 -0.131459387059 0.313625642018 0.940402778719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 267 5 387 388 386 391 390 + 5 626 -622 627 628 617 + 0.244786503160 -0.001387361806 -0.121611169460 0.992576847750 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 268 4 385 384 293 294 + 4 -619 -614 -458 624 + 0.183431574445 -0.053479239082 -0.471792402320 0.880086302643 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 269 5 392 391 386 272 270 + 5 629 -627 -625 -422 621 + -0.369698621614 -0.186577168533 -0.982397502369 0.009171015239 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 270 4 387 289 290 388 + 4 613 -456 -623 -626 + 0.288615915019 0.023210426217 0.058031668864 0.998044889533 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 271 4 389 390 391 392 + 4 616 -628 -629 618 + -0.453749533154 -0.020015625366 -0.559505803424 -0.828584715450 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 272 5 393 394 395 397 396 + 5 630 631 632 633 634 + -0.102353222050 0.208790489853 0.204902304144 -0.956253929196 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 273 7 400 399 398 403 401 404 405 + 7 635 636 637 638 639 640 641 + -0.096362375128 -0.035470742379 -0.626647788206 0.778494942804 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 274 4 394 393 407 408 + 4 -630 642 643 644 + 0.379934347954 0.275001958994 0.956715319973 0.095235072733 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 275 6 407 393 396 268 267 414 + 6 -642 -634 645 -418 646 647 + -0.120741572843 0.031846453486 0.393782921908 -0.918651628102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 276 9 404 401 402 395 394 408 409 412 413 + 9 -639 648 649 -631 -644 650 651 652 653 + 0.277232563093 0.062729661148 0.136930488727 0.988592449328 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 277 5 398 397 395 402 403 + 5 654 -632 -649 655 -637 + -0.376710753611 0.148449342964 -0.986217782084 -0.073056682616 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 278 6 396 397 398 399 269 268 + 6 -633 -654 -636 656 -423 -645 + -0.298767314184 0.022564769823 -0.110542962425 -0.993615159215 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 279 7 269 399 400 406 410 416 266 + 7 -656 -635 657 658 659 660 426 + -0.921952628054 -0.792997631041 -0.603871092217 -0.080588219662 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 280 3 400 406 405 + 3 657 661 641 + 0.240170736815 0.273643705710 0.489313028522 -0.828065143841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 281 3 401 402 403 + 3 648 655 638 + -0.161515839212 -0.058562689670 0.152069796892 -0.986633259247 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 282 5 404 405 406 410 413 + 5 640 -661 658 662 653 + -0.154436773866 0.098106615041 -0.120189114901 -0.987891526811 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 283 6 407 408 409 411 415 414 + 6 643 650 663 664 665 647 + -0.238184803070 0.030817039084 -0.919461777579 -0.391969832607 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 284 3 409 412 411 + 3 651 666 -663 + -0.268812738599 -0.003926282894 -0.354548017076 -0.935029565249 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 285 6 411 412 413 410 416 415 + 6 -666 652 -662 659 667 -664 + -0.162750855295 0.119178104143 -0.242035433975 -0.962920260558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 286 5 267 414 415 416 266 + 5 646 -665 -667 660 411 + 0.234986778395 0.098894527668 -0.402229157685 0.910182166990 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 287 8 418 419 420 423 422 424 442 439 + 8 668 669 670 671 672 673 674 675 + -0.549470351993 -0.064717607168 -0.477238075983 -0.876387728208 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 288 10 421 422 424 425 426 427 417 429 435 436 + 10 676 672 677 678 679 680 681 682 683 684 + -0.660058129301 -0.273017535530 -0.795246947787 0.541335124788 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 289 4 420 419 432 431 + 4 -669 685 686 687 + -0.477930831156 -0.148158637414 -0.265552562525 -0.952644138541 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 290 6 418 417 427 437 440 439 + 6 688 -680 689 690 691 675 + -0.235495269167 -0.004193990001 0.065758976597 -0.997826722154 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 291 7 430 429 417 418 419 432 433 + 7 692 -681 -688 668 685 693 694 + -0.111611190543 0.229464569197 0.023846985433 -0.973024836666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 292 3 425 426 428 + 3 678 695 696 + 0.524390702470 0.329357455431 0.549701843394 -0.767692353694 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 293 5 420 423 421 436 431 + 5 670 697 -684 698 687 + 0.074931084596 -0.019583839876 -0.180366987110 0.983404404697 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 294 3 421 422 423 + 3 676 -671 697 + -0.098639383903 0.041864408232 0.116401847383 -0.992319495550 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 295 6 424 425 428 438 441 442 + 6 677 -696 699 700 701 -673 + -0.360242981009 0.128499664967 -0.518272722165 -0.845506488185 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 296 3 430 434 433 + 3 702 703 694 + 0.251513887005 -0.349617570969 0.241699322010 0.905178983301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 297 5 428 426 427 437 438 + 5 -695 679 689 704 -699 + 1.168785027224 0.924162091600 0.015768598811 0.381674966091 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 298 4 430 429 435 434 + 4 692 682 705 -702 + 0.722426128472 0.066114572822 0.951653794660 -0.299973196086 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 299 6 431 432 433 434 435 436 + 6 -686 693 -703 -705 683 698 + -0.103010978752 -0.067998257151 0.207962879167 -0.975770299770 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 300 4 438 437 440 441 + 4 -704 690 706 -700 + 0.702401433877 0.591959612917 -0.294335578562 0.750300195833 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 301 4 439 440 441 442 + 4 -691 706 701 674 + 0.384318799767 -0.176421709637 0.950258172253 0.256680319532 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 302 7 455 450 448 445 443 457 458 + 7 707 708 709 710 711 712 713 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 303 4 444 443 445 446 + 4 714 -710 715 716 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 304 7 451 444 446 447 449 452 453 + 7 717 -716 718 719 720 721 722 + -0.613117366745 -0.294359416893 0.091547592397 0.951299937986 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 305 6 443 444 451 454 456 457 + 6 -714 -717 723 724 725 -711 + -0.148296683046 -0.000548330883 -0.023290292443 -0.999728593975 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 306 4 445 446 447 448 + 4 715 718 726 709 + -0.137276365629 0.031081568271 0.028601676471 -0.999107541868 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 307 4 447 448 450 449 + 4 726 -708 727 -719 + 0.111305597358 -0.043149365571 0.080423435111 0.995826392167 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 308 4 449 450 455 452 + 4 -727 -707 728 -720 + -0.029690903101 -0.101113053952 0.314165304994 0.943968384777 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 309 3 451 454 453 + 3 723 729 722 + 0.402548222941 0.122789428408 -0.393340458543 0.911156430008 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 310 6 455 452 453 454 456 458 + 6 728 721 -729 724 730 713 + -0.029644513068 0.036022584673 -0.927803349046 0.371326431719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 311 3 456 457 458 + 3 725 712 -730 + -0.012347845316 -0.003990160267 -0.576764474661 0.816900740231 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 312 4 459 380 195 202 + 4 731 -598 -285 732 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 313 7 320 322 380 459 460 466 467 + 7 512 610 -731 733 734 735 736 + 0.400239451542 -0.199077696607 0.951154962537 -0.235949799649 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 314 7 462 203 202 459 460 464 465 + 7 737 305 732 733 738 739 740 + -0.069291239943 0.052550741126 0.137328546426 -0.989130572747 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 315 7 461 197 196 381 463 469 470 + 7 741 300 602 742 743 744 745 + -0.199605822658 0.119946542286 -0.360832275825 -0.924885341930 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 316 4 464 460 466 471 + 4 -738 734 746 747 + -0.298889534842 -0.011485149774 -0.258456344208 -0.965954662224 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 317 4 197 203 462 461 + 4 -292 -737 748 741 + 0.357302140006 -0.072000129264 0.853937514778 0.515370451463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 318 6 470 461 462 465 472 473 + 6 745 -748 -740 749 750 751 + 0.196792752734 -0.261862475287 0.956532041966 -0.128353016052 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 319 6 320 323 381 463 468 467 + 6 516 -611 742 752 753 736 + -0.046431633248 -0.081294608730 -0.177468595734 0.980763011191 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 320 3 463 468 469 + 3 752 754 -743 + -0.059470067760 0.143738132218 -0.114728635071 -0.982942872013 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 321 5 471 464 465 472 474 + 5 747 739 749 755 756 + 0.187978222505 0.036390613542 -0.006438540496 0.999316900909 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 322 8 471 466 467 468 469 470 473 474 + 8 -746 735 -753 754 744 -751 757 756 + -0.551811486836 -0.209555422691 -0.484330966236 -0.849417470956 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 323 3 472 473 474 + 3 750 757 -755 + 0.249223387896 0.119835294455 -0.024681338770 0.992486943853 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 324 7 475 481 36 28 484 485 486 + 7 758 759 66 760 761 762 763 + -0.146640971640 0.128653595690 -0.729853962595 -0.671387701407 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 325 5 480 477 475 481 483 + 5 764 765 758 766 767 + 0.271636419231 0.008696206427 0.181732762917 0.983309503095 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 326 4 475 477 487 486 + 4 -765 768 769 763 + 0.387195257766 0.052113228828 0.236996792693 0.970111710905 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 327 6 482 37 39 476 489 490 + 6 770 59 771 772 773 774 + -0.257948399743 0.010042926597 -0.750429478670 -0.660874221897 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 328 4 39 476 478 47 + 4 771 775 776 68 + 0.105365941434 -0.033546964968 0.098135469124 0.994607475762 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 329 8 479 491 489 476 478 488 493 492 + 8 777 778 -772 775 779 780 781 782 + 0.025693033511 0.096814532998 -0.114160297629 -0.988733721811 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 330 6 487 477 480 479 492 494 + 6 -768 -764 783 -782 784 785 + 0.530334352188 0.137932389578 0.089554699321 0.986384616534 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 331 6 478 47 46 484 485 488 + 6 776 -67 786 761 787 -779 + -0.013150255275 0.003566981855 0.306156931401 -0.951974374653 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 332 6 479 480 483 482 490 491 + 6 -783 -767 788 -774 789 -777 + 0.372454580229 0.094953971190 -0.139131972771 0.985710929993 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 333 5 481 36 37 482 483 + 5 759 -65 -770 -788 -766 + 0.097688848565 -0.047655956484 -0.116616524711 0.992033011535 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 334 3 28 484 46 + 3 760 -786 46 + -1.069394705168 -0.548420596081 -0.373672908148 -0.748066445920 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 335 6 488 485 486 487 494 493 + 6 -787 762 -769 -785 790 -780 + 0.251771591033 0.100991175878 0.431853697160 -0.896271815157 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 336 3 489 490 491 + 3 773 789 778 + -0.379806942318 -0.198823933864 0.823979712249 -0.530590686994 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 337 3 492 493 494 + 3 -781 -790 -784 + 1.258700550216 0.535538211082 0.346086686002 -0.770339425347 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 338 8 506 505 504 498 500 497 512 511 + 8 791 792 793 794 795 796 797 798 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 339 6 498 499 495 496 503 504 + 6 799 800 801 802 803 793 + -0.272431866531 -0.067354767427 0.132578385315 -0.988881341240 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 340 7 501 496 503 505 506 510 509 + 7 804 802 805 -791 806 807 808 + -1.084206955201 -0.206250654291 -0.881690878978 0.424360532485 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 341 7 497 500 499 495 502 508 507 + 7 -795 809 800 810 811 812 813 + -0.222304795795 0.105784565868 -0.248759522571 -0.962771169881 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 342 4 495 496 501 502 + 4 801 -804 814 -810 + -0.616063988678 0.091693834051 -0.967355256901 0.236254201535 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 343 3 497 507 512 + 3 -813 815 -796 + -0.055235426341 0.082272110687 -0.017803265191 -0.996450873627 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 344 3 498 499 500 + 3 799 -809 -794 + 0.806212148364 0.234463599858 -0.000352742127 0.972124835561 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 345 4 502 501 509 508 + 4 -814 -808 816 -811 + -0.843882297507 -0.050122018903 -0.658081829383 -0.751276306732 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 346 3 503 504 505 + 3 803 -792 -805 + 0.279741430384 0.016703883648 -0.044849259780 0.998854105547 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 347 3 506 511 510 + 3 -798 817 -806 + -1.736072210274 -0.831873826367 -0.296728898514 -0.468975370133 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 348 6 507 508 509 510 511 512 + 6 -812 -816 -807 -817 -797 -815 + -0.390937297656 -0.051992417072 -0.110010947775 -0.992569584431 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 349 9 506 511 519 245 244 518 98 90 521 + 9 -798 818 819 -357 820 821 -104 822 823 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 350 6 244 247 513 93 97 518 + 6 383 824 825 -146 826 -820 + -1.353310255405 -0.490012077098 -0.865694414871 -0.102280713525 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 351 7 88 514 517 510 506 521 89 + 7 827 828 829 -806 -823 830 129 + 0.044948732818 0.317594665364 -0.650434051303 0.689977661550 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 352 6 514 88 93 513 515 516 + 6 -827 137 -825 831 832 833 + -0.857932871393 0.015200293508 -0.980182891698 -0.197510632373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 353 5 247 513 515 520 246 + 5 824 831 834 835 -374 + 0.388837970167 0.025455984866 0.184205206046 0.982558107645 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 354 3 514 517 516 + 3 828 836 833 + 0.377193025250 -0.231993292331 0.663160922053 0.711615558975 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 355 7 515 516 517 510 511 519 520 + 7 832 -836 829 -817 818 837 -834 + 0.198645107964 -0.048540448671 0.079822834704 0.995626506227 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 356 3 518 98 97 + 3 821 145 826 + -0.132561986129 0.203930912346 -0.030080801044 -0.978523034168 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 357 4 245 519 520 246 + 4 -819 837 835 -385 + -0.246819899929 0.003201471433 -0.071596624743 -0.997428530726 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 358 3 90 521 89 + 3 822 830 -144 + -0.484563005860 -0.122695522683 0.003644278031 -0.992437669555 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 359 10 371 369 528 529 522 523 533 539 134 132 + 10 -586 838 839 840 841 842 843 844 -201 845 + -0.611458022433 -0.153396111677 0.104934026117 -0.982577469254 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 360 6 527 524 522 523 534 535 + 6 846 847 841 848 849 850 + -0.171521778533 0.013990396377 0.120097347292 -0.992663536140 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 361 7 526 525 524 522 529 530 531 + 7 851 852 847 -840 853 854 855 + 0.074040794464 -0.000625398456 -0.337523726651 0.941316813206 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 362 3 523 534 533 + 3 848 856 -842 + -0.468205999865 -0.330913419894 0.260359989809 0.907033066785 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 363 5 525 526 374 372 537 + 5 -851 857 -590 858 859 + 0.780018470388 0.603453908388 -0.500668687034 -0.620624078066 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 364 5 527 524 525 537 536 + 5 846 -852 -859 860 861 + 0.469436104654 0.123411830952 -0.090910811880 0.988182546023 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 365 6 528 369 374 526 531 532 + 6 -838 -591 -857 -855 862 863 + -0.385651201558 0.035101677572 -0.307707773670 -0.950833212637 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 366 6 538 536 527 535 541 540 + 6 864 861 -850 865 866 867 + -0.379917455465 -0.031950000048 -0.125186938426 -0.991618589955 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 367 4 528 529 530 532 + 4 839 853 868 863 + 0.846520149182 0.145984849378 0.387635660150 0.910179662886 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 368 3 530 531 532 + 3 854 862 -868 + 0.499802369140 -0.030269939620 0.535518731006 0.843980698534 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 369 5 533 534 535 541 539 + 5 -856 849 865 869 -843 + 0.264518007061 -0.035404423206 0.240418558062 0.970023424334 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 370 5 536 537 372 370 538 + 5 -860 -858 -589 870 864 + 0.243383679461 0.218885526016 0.219898100504 -0.950649226527 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 371 6 371 370 538 540 133 132 + 6 588 870 -867 871 -188 845 + -0.135336546451 -0.042995392246 -0.705843348790 0.707061923183 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 372 5 540 541 539 134 133 + 5 -866 869 844 195 -871 + -0.347726622418 0.026874715398 -0.517759199926 -0.855104181117 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 373 5 543 544 542 548 549 + 5 872 873 874 875 876 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 374 4 542 548 552 551 + 4 874 877 878 879 + 0.067193042405 -0.188518650188 0.104982067242 0.976442258451 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 375 6 543 545 546 547 550 549 + 6 880 881 882 883 884 876 + -0.195298253343 0.100411922738 0.010674500490 -0.994888687649 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 376 8 551 542 544 545 546 553 409 411 + 8 879 -873 885 881 886 887 663 888 + -0.202022677413 -0.025583694392 0.133006607031 -0.990784899495 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 377 3 543 544 545 + 3 872 885 -880 + -0.187568569881 0.167963731838 0.035182077536 -0.985165166968 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 378 5 547 546 553 408 407 + 5 -882 886 889 -643 890 + -0.133096283911 0.210616059431 -0.818024195611 -0.535235733958 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 379 4 550 547 407 414 + 4 -883 -890 -647 891 + -0.249319999913 0.044310743031 -0.323653857091 -0.945137417968 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 380 6 552 548 549 550 414 415 + 6 -877 875 -884 -891 -665 892 + -0.325410708776 -0.070280905380 -0.118117484986 -0.990509391212 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 381 4 551 552 415 411 + 4 -878 -892 -664 888 + 0.036013540974 -0.127571050108 -0.344789246131 0.929970968863 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 382 3 553 409 408 + 3 887 -650 -889 + 0.122537470875 0.095938089693 -0.585117670130 0.805253497383 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 383 6 73 82 554 563 566 565 + 6 -109 893 894 895 896 897 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 384 7 554 532 531 558 559 83 82 + 7 898 -862 899 900 901 -136 893 + 0.108941754909 0.034791770157 0.488514955511 -0.871861612283 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 385 6 555 556 560 559 83 74 + 6 902 903 904 901 123 905 + -0.318391589498 -0.078731349713 0.204637499662 -0.975666371412 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 386 6 73 74 555 562 564 565 + 6 -115 905 906 907 908 897 + -0.544778769085 0.119651319207 -0.981687429146 -0.148234116416 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 387 6 554 532 530 557 561 563 + 6 898 -868 909 910 911 -894 + 0.749699854606 0.553287035135 -0.773110278817 -0.310119256962 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 388 5 555 556 557 561 562 + 5 902 912 910 913 -906 + -0.201396271696 -0.170520663127 -0.119394136408 0.978093933954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 389 6 558 560 556 557 530 531 + 6 914 -903 912 -909 854 899 + -0.350866103437 0.019397961820 -0.175891076199 -0.984218496265 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 390 3 558 559 560 + 3 900 -904 -914 + -0.890705458064 -0.166163125689 -0.502288543762 -0.848584724389 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 391 5 563 561 562 564 566 + 5 -911 913 907 915 -895 + 1.915364759126 0.482298744969 0.818272673778 0.312758296371 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 392 3 564 565 566 + 3 908 -896 -915 + 1.211694684512 0.149752693183 0.927026583469 0.343796225148 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 393 7 575 572 568 569 567 582 581 + 7 916 917 918 919 920 921 922 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 394 7 585 576 572 568 571 589 588 + 7 923 924 917 925 926 927 928 + 0.285241101696 0.129358525036 0.948743736867 -0.288360353996 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 395 6 573 570 569 567 578 579 + 6 929 930 919 931 932 933 + -0.336741255984 -0.031337854987 -0.995472128052 -0.089739518144 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 396 7 583 574 573 570 571 589 590 + 7 934 935 929 936 926 937 938 + 0.056139406451 -0.058952918327 0.161374956278 0.985130791777 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 397 3 567 582 578 + 3 920 939 -931 + -0.365087233120 -0.064285643366 -0.995943021028 0.062967093974 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 398 4 568 569 570 571 + 4 918 -930 936 -925 + 0.163282445310 0.517737470309 -0.202128435921 0.831319437539 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 399 3 572 576 575 + 3 -924 940 916 + -0.087138661009 -0.274278949971 0.861368899951 0.427568328808 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 400 4 574 577 584 583 + 4 941 942 943 934 + -0.120818700823 -0.006975886628 -0.181448633452 -0.983375681225 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 401 5 577 574 573 579 580 + 5 -941 935 -933 944 945 + -0.233480633314 -0.079329991722 -0.364365317193 -0.927871040630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 402 9 584 577 580 581 575 576 585 587 586 + 9 -942 -945 946 922 -940 -923 947 948 949 + -0.471956309105 -0.562290825773 0.570077576312 -0.599033041024 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 403 5 578 579 580 581 582 + 5 932 944 946 -921 939 + 0.712469482639 0.477676861985 0.694396732013 0.538180261709 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 404 4 583 584 586 590 + 4 -943 -949 950 938 + -0.102908633502 -0.024638230479 -0.025319701603 -0.999375740305 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 405 3 585 588 587 + 3 -928 951 -947 + -0.053661620863 -0.054569805689 0.330178501423 -0.942339797263 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 406 5 586 587 588 589 590 + 5 -948 -951 -927 937 -950 + -0.102585258414 -0.054568685044 0.101738286765 -0.993313434732 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 407 8 592 591 475 477 593 594 599 598 + 8 952 953 -765 954 955 956 957 958 + -0.711124574106 -0.176538222639 -0.390400282237 -0.903560665134 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 408 5 591 475 481 595 596 + 5 953 758 959 960 961 + -0.293065731475 -0.077959655499 0.128820922397 -0.988598736630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 409 4 591 592 597 596 + 4 -952 962 963 961 + -0.348955314745 0.066639968988 -0.734293420687 -0.675553319042 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 410 4 597 592 598 601 + 4 -962 -958 964 965 + -0.350872778008 0.036876836611 -0.500195114882 -0.865127127057 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 411 3 477 593 480 + 3 954 966 764 + 1.160087889660 0.469046112810 -0.171046210898 0.866451924688 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 412 6 594 483 481 595 600 599 + 6 967 -766 959 968 969 -956 + 0.059455369526 0.092709862988 0.365166206364 -0.926314483874 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 413 4 593 594 483 480 + 4 955 967 767 -966 + 0.438893841773 0.184829975789 -0.505066303552 0.843057476727 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 414 5 595 596 597 601 600 + 5 960 -963 -965 970 -968 + 0.250929285713 0.316297715354 -0.080490883857 -0.945239108838 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 415 4 598 599 600 601 + 4 -957 -969 -970 -964 + -0.043412820285 0.098790931968 0.102244828631 -0.989841576607 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 416 5 602 610 198 192 617 + 5 971 972 -282 973 974 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 417 7 190 606 607 604 603 611 200 + 7 975 976 977 978 979 980 -302 + -0.132997477686 0.004271771866 -0.069862062979 -0.997547514719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 418 4 606 190 189 609 + 4 -975 -288 981 982 + -0.260029428378 -0.048347519581 -0.891257676866 -0.450912708600 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 419 7 602 610 611 603 605 612 614 + 7 971 983 -979 984 985 986 987 + -0.051572785332 0.083063872918 0.384443474337 -0.919403941723 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 420 8 613 612 605 604 607 608 616 615 + 8 988 -985 989 -977 990 991 992 993 + -0.257874296684 -0.253552476858 0.169413736322 -0.952370793034 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 421 7 617 602 614 613 615 619 620 + 7 974 -987 994 -993 995 996 997 + 0.080907063065 -0.044636157862 0.231394456261 0.971835489691 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 422 3 603 604 605 + 3 -978 -989 -984 + -0.131040542127 -0.014202946568 0.105944755712 -0.994270579393 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 423 4 607 606 609 608 + 4 -976 -982 998 -990 + -0.319542465374 -0.176778689671 -0.498064667034 -0.848929256375 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 424 6 616 608 609 189 193 618 + 6 -991 -998 -981 -296 999 1000 + -0.004460258470 -0.005011544880 -0.354958707448 0.934868547136 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 425 4 198 610 611 200 + 4 -972 983 980 303 + 0.138391051627 -0.098118263377 0.161233803307 0.982026714027 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 426 3 612 613 614 + 3 -988 -994 -986 + -0.118282160122 -0.351167713491 0.720447421288 0.598027382451 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 427 5 615 616 618 621 619 + 5 -992 -1000 1001 1002 -995 + 0.044111033037 -0.020319622791 -0.071964500331 0.997200192349 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 428 6 618 193 192 617 620 621 + 6 -999 -301 973 -997 1003 -1001 + 0.018061499206 0.090816119821 -0.327343823224 0.940530942488 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 429 3 619 620 621 + 3 996 1003 1002 + -0.039742147336 -0.036698372593 0.148686529747 -0.988203190301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 430 8 421 624 625 623 622 627 632 423 + 8 1004 1005 1006 1007 1008 1009 1010 697 + 0.260905293961 -0.202430211230 0.382131756605 0.901663645810 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 431 3 622 626 627 + 3 1011 1012 -1008 + 0.279505023587 -0.090246449301 0.275502689738 0.957054777082 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 432 6 237 298 623 625 629 239 + 6 -466 1013 -1006 1014 1015 -372 + -0.090016698565 -0.061812367223 -0.256698477802 0.964512894031 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 433 6 622 623 298 299 628 626 + 6 -1007 -1013 -467 1016 1017 -1011 + 0.102785331810 -0.005685609964 -0.078759564661 0.996877427176 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 434 8 628 299 238 240 630 436 431 633 + 8 -1016 -472 378 1018 1019 698 1020 1021 + 0.244718150488 0.553398420520 -0.328936128914 0.765213180272 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 435 5 624 421 436 630 631 + 5 -1004 -684 -1019 1022 1023 + -0.230203099296 -0.037729937050 0.030273871637 -0.998829286989 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 436 4 624 625 629 631 + 4 1005 1014 1024 1023 + 0.302543742002 0.102383256900 -0.023316341820 0.994471727557 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 437 6 628 626 627 632 634 633 + 6 1017 1012 1009 1025 1026 1021 + -0.879428682337 -0.373190198003 -0.837381938180 -0.399400257541 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 438 5 629 239 240 630 631 + 5 1015 -381 1018 1022 -1024 + 0.502266636585 0.016083286456 0.346239875825 0.938008142974 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 439 4 632 423 420 634 + 4 1010 -670 1027 -1025 + -0.120455296008 -0.050348610276 -0.417041433857 0.907491851142 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 440 4 431 633 634 420 + 4 1020 -1026 -1027 -687 + -0.244554755382 -0.144845213710 -0.493848317295 0.857399383934 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 441 3 241 640 250 + 3 1028 1029 -359 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 442 5 296 636 637 639 300 + 5 1030 1031 1032 1033 -461 + 0.619432360686 0.061471265897 0.799434076669 -0.597600569385 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 443 4 296 297 635 636 + 4 -460 1034 1035 -1030 + -0.097637958595 -0.058541277068 0.129345192040 -0.989870062268 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 444 7 241 243 297 635 638 641 640 + 7 -370 459 1034 1036 1037 1038 -1028 + 0.598195529140 0.330013629605 0.410905288305 -0.849851662538 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 445 5 639 637 638 641 642 + 5 -1032 1039 1037 1040 1041 + 0.055305353893 -0.072604918051 0.021670558003 0.997125324516 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 446 4 635 636 637 638 + 4 1035 1031 1039 -1036 + -0.070367820959 0.388364790558 -0.535609262905 -0.749863658904 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 447 4 300 639 642 301 + 4 -1033 -1041 1042 -462 + 0.181917019699 0.055192932432 0.042922152854 0.997552719912 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 448 6 301 252 250 640 641 642 + 6 463 -371 -1029 -1038 1040 1042 + -0.032387558995 -0.112988086818 0.171034371973 -0.978765005423 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 449 5 651 643 644 658 659 + 5 1043 1044 1045 1046 1047 + -0.926506320443 -0.241034715062 -0.797202937421 -0.553506768434 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 450 5 645 644 643 646 647 + 5 1048 -1044 1049 1050 1051 + -0.457516931581 -0.114670333208 -0.610583818036 0.783605842139 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 451 6 650 649 646 643 651 652 + 6 1052 1053 -1049 -1043 1054 1055 + -0.301380599435 -0.040819032937 -0.322659096661 -0.945634661956 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 452 5 653 257 256 654 655 + 5 1056 -388 1057 1058 1059 + 0.907061071739 0.163215286185 0.967699159736 -0.192143453183 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 453 6 644 645 139 138 661 658 + 6 -1048 1060 221 1061 1062 -1045 + -0.091665714249 -0.071358547541 -0.090673893431 0.993320795485 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 454 7 650 649 648 258 256 654 657 + 7 1052 1063 1064 -392 1057 1065 1066 + -0.852260595847 -0.358866520833 -0.131609411120 0.924063733262 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 455 6 258 648 647 645 139 140 + 6 -1064 1067 1051 1060 -216 397 + -0.187751757617 -0.039205659921 0.013886641046 -0.999134664312 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 456 4 646 647 648 649 + 4 1050 -1067 -1063 1053 + -0.080838441371 -0.136974597263 0.388003917680 0.911422470411 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 457 4 650 652 656 657 + 4 -1055 1068 1069 1066 + -0.204630499409 -0.036135284325 -0.160079210510 -0.986442541453 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 458 7 651 652 656 655 653 660 659 + 7 1054 1068 1070 1059 1071 1072 1047 + 0.068468566450 0.085695574967 -0.269669611755 0.959132195751 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 459 6 138 141 257 653 660 661 + 6 210 398 -1056 1071 1073 -1061 + 0.324812073148 -0.013172879856 0.428308464579 0.903536570597 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 460 4 654 655 656 657 + 4 1058 -1070 1069 -1065 + -0.228399148495 -0.028436265248 -0.353293789385 0.935080144801 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 461 4 658 659 660 661 + 4 1046 -1072 1073 1062 + 0.144033742810 0.211176732913 -0.254228069956 -0.943807435827 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 462 4 662 100 113 663 + 4 1074 -156 1075 1076 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 463 7 104 100 662 665 666 667 668 + 7 161 -1074 1077 1078 1079 1080 1081 + 0.013740895643 -0.204858576561 0.440831323959 0.873899712454 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 464 6 664 663 662 665 670 669 + 6 1082 1076 1077 1083 1084 1085 + -0.537187413448 -0.404899233171 -0.077662263016 0.911057179260 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 465 5 104 114 664 669 668 + 5 166 1086 -1085 1087 1081 + 0.308651967556 -0.013870626318 0.212472367000 0.977068625526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 466 4 663 113 114 664 + 4 -1075 -167 1086 1082 + 0.205894431819 0.267151019586 -0.528166514234 -0.806021380595 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 467 4 665 666 671 670 + 4 1078 1088 1089 -1083 + -0.073080783476 0.110750079320 -0.983197571037 0.145110152082 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 468 3 666 667 671 + 3 1079 1090 -1088 + 0.435222537277 0.125001262541 -0.222741322508 0.966830382027 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 469 5 667 668 669 670 671 + 5 1080 -1087 -1084 -1089 -1090 + 0.356605662896 0.041954544104 -0.015166600112 0.999004399625 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 470 6 672 292 284 674 676 677 + 6 1091 -443 1092 1093 1094 1095 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 471 6 544 543 673 672 677 678 + 6 -872 1096 1097 -1095 1098 1099 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 472 6 287 291 673 543 545 675 + 6 -448 1100 -1096 880 1101 1102 + -0.127406575659 0.520494719651 0.165548086258 -0.837662866523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 473 4 672 292 291 673 + 4 1091 447 1100 1097 + -0.304657464292 0.001055672509 -0.202025224695 -0.979379749710 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 474 4 284 287 675 674 + 4 -446 -1102 1103 -1092 + -0.128886221877 0.051886712774 0.609900962469 -0.790777203147 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 475 6 544 545 675 674 676 678 + 6 885 1101 1103 1093 1104 1099 + 0.197002291632 -0.057193917938 -0.091865295011 0.994127568938 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 476 3 676 677 678 + 3 1094 1098 -1104 + 0.200382135613 -0.015749904477 -0.021823755540 0.999637766495 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 477 3 679 691 690 + 3 1105 1106 1107 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 478 3 680 684 683 + 3 1108 1109 1110 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 479 11 433 696 685 679 690 695 684 680 698 700 430 + 11 1111 1112 1113 -1107 1114 1115 -1108 1116 1117 1118 -694 + 0.487405521802 -0.436167195913 0.894144093491 -0.101313954051 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 480 8 679 685 686 682 681 689 692 691 + 8 -1113 1119 1120 1121 1122 1123 1124 -1105 + -0.487768040885 -0.017743760274 -0.433602507580 -0.900929533533 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 481 5 419 682 686 697 432 + 5 1125 -1120 1126 1127 -685 + -0.317652687959 0.027206314509 -0.135632337580 -0.990385624620 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 482 9 680 683 688 689 681 418 417 699 698 + 9 -1110 1128 1129 -1122 1130 688 1131 1132 -1116 + 0.327356899196 0.196201167381 -0.097430051837 0.975711272312 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 483 4 419 418 681 682 + 4 -668 -1130 -1121 -1125 + -0.313904388580 0.107392361876 -0.200765785615 -0.973735066605 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 484 6 687 688 683 684 695 694 + 6 1133 -1128 -1109 -1115 1134 1135 + 0.219596502587 0.064688166945 -0.175284202800 0.982390395569 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 485 4 685 686 697 696 + 4 1119 1126 1136 1112 + 0.278826061896 0.035695457687 0.051339326141 0.998043139294 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 486 3 687 693 694 + 3 1137 1138 1135 + -0.162407815586 -0.058187353215 0.267463690594 -0.961809443778 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 487 4 699 417 429 701 + 4 -1131 681 1139 1140 + 0.150018787924 0.267393901298 0.298690089768 -0.916124845108 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 488 5 687 688 689 692 693 + 5 1133 1129 1123 1141 -1137 + 0.143234086964 -0.025026169933 0.690803687492 -0.722609130973 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 489 6 690 691 692 693 694 695 + 6 -1106 -1124 1141 1138 -1134 -1114 + 0.058666550965 -0.021925416391 -0.395677433770 0.918127793132 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 490 4 433 696 697 432 + 4 1111 -1136 1127 693 + 0.106537066182 -0.010177104963 -0.161576148270 0.986807769956 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 491 4 698 699 701 700 + 4 -1132 -1140 1142 -1117 + 0.845401083059 0.002376737439 0.879035193115 0.476750962647 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 492 4 700 430 429 701 + 4 1118 692 1139 1142 + -0.430908143071 -0.169396602466 -0.660288627609 0.731658198426 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 493 3 703 704 705 + 3 1143 1144 1145 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 494 4 702 392 270 274 + 4 1146 -621 -408 1147 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 495 7 702 392 391 703 704 692 693 + 7 1146 629 1148 1143 1149 1141 1150 + -0.328501759607 0.082864161737 -0.104010470074 -0.991118233519 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 496 8 274 702 693 687 706 711 712 275 + 8 1147 -1150 -1137 1151 1152 1153 1154 425 + -0.505880716594 -0.080140831660 -0.394141084064 -0.915549153762 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 497 6 397 705 703 391 386 396 + 6 1155 1145 -1148 -627 1156 -633 + 0.381132112977 0.070737928642 0.261188501352 0.962692428667 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 498 3 706 688 687 + 3 1157 -1133 1151 + 0.568581301998 0.082644643619 0.562415703962 0.822714068689 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 499 8 689 692 704 705 397 398 708 707 + 8 1123 -1149 1144 -1155 -654 1158 1159 1160 + 0.176324470880 0.026343628459 -0.214650236460 0.976335643735 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 500 4 386 396 268 272 + 4 1156 645 419 625 + -0.410520937136 0.001024849138 -0.730272959623 -0.683154707315 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 501 6 706 688 689 707 710 711 + 6 1157 1129 -1160 1161 1162 -1152 + -0.603460950604 -0.186040305379 -0.982286677884 0.022402839680 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 502 4 708 398 399 709 + 4 -1158 -636 1163 1164 + 0.193781280179 -0.028188927567 -0.115674869104 0.992887057535 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 503 4 707 708 709 710 + 4 -1159 -1164 1165 -1161 + 0.097025834557 -0.046733900267 -0.276307540098 0.959932333996 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 504 7 269 399 709 710 711 712 263 + 7 -656 1163 1165 1162 1153 1166 -424 + -0.139908502569 0.161273405600 -0.005861392307 -0.986892361267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 505 3 712 275 263 + 3 1154 417 -1166 + 0.063898674044 0.466110881184 -0.356238254629 -0.809836373832 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 506 5 714 208 209 717 718 + 5 1167 -307 1168 1169 1170 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 507 7 716 715 713 210 209 717 720 + 7 1171 1172 1173 323 1168 1174 1175 + 0.184216811213 -0.103503164636 0.624531250250 -0.774110981947 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 508 5 208 207 713 715 714 + 5 322 1176 -1172 1177 1167 + -0.248913604684 0.071499171514 -0.533890501544 -0.842525252342 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 509 3 207 713 210 + 3 1176 1173 317 + 0.698685397606 0.259078254967 0.437974333869 0.860846641786 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 510 5 716 715 714 718 719 + 5 1171 1177 -1170 1178 1179 + -0.097509451145 -0.162925270145 0.070781985484 0.984096167495 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 511 3 716 720 719 + 3 -1175 1180 1179 + 0.181353222771 0.087894517380 0.242979969807 -0.966041038511 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 512 4 717 718 719 720 + 4 1169 1178 -1180 -1174 + 0.804946287990 0.389634998407 0.836706861429 -0.384845678231 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 513 6 725 726 53 52 728 729 + 6 1181 1182 -78 1183 1184 1185 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 514 6 52 55 722 724 730 728 + 6 -85 1186 1187 1188 1189 -1183 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 515 4 721 722 55 54 + 4 1190 -1186 90 1191 + -0.983581615311 -0.335493757920 -0.203706498350 0.919754098076 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 516 6 723 721 54 53 726 727 + 6 1192 -1191 95 -1182 1193 1194 + -0.229449762639 -0.076310429196 -0.165331472282 0.983281354786 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 517 4 721 722 724 723 + 4 1190 1187 1195 1192 + 0.384819244098 0.168066030257 -0.107757783603 -0.979868393993 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 518 6 725 727 723 724 730 729 + 6 1196 1194 -1195 1188 1197 1185 + 0.063881529876 0.092485257854 -0.340721917957 -0.935604110564 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 519 3 725 726 727 + 3 1181 1193 -1196 + -0.069706471825 0.001945983788 -0.011835391142 -0.999928065745 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 520 3 728 729 730 + 3 1184 -1197 1189 + 0.061786010622 0.219602393742 -0.957403498862 -0.187492210582 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 521 3 305 731 308 + 3 1198 1199 -478 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 522 4 731 305 307 732 + 4 -1198 -483 1200 1201 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 523 4 731 308 309 732 + 4 1199 486 1202 1201 + 0.275481604403 -0.090696693295 0.222403822390 0.970726866637 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 524 3 307 732 309 + 3 1200 -1202 487 + 0.332210863924 -0.413288892421 0.363242603415 0.835013234905 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 525 4 565 733 85 73 + 4 1203 1204 -110 -897 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 526 5 734 733 85 87 737 + 5 1205 1204 116 1206 1207 + -1.087884618824 -0.090489606498 -0.775629773927 -0.624667979741 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 527 5 735 69 74 555 740 + 5 1208 114 905 1209 1210 + 0.581804820982 0.000719230871 0.375576741455 0.926791019586 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 528 5 734 737 736 739 738 + 5 -1207 1211 1212 1213 1214 + -0.055961105926 -0.050934274316 -0.266495141745 0.962489500788 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 529 6 565 733 734 738 741 564 + 6 1203 -1205 -1214 1215 1216 908 + -1.873244938849 -0.476096249871 -0.694234211900 -0.539788124997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 530 4 736 735 740 739 + 4 1217 -1210 1218 -1212 + 0.280799091711 -0.028106109184 0.064886303910 0.997496774026 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 531 5 69 735 736 737 87 + 5 -1208 -1217 -1211 -1206 117 + 0.386061690286 0.054790435902 -0.003525563339 0.998491651711 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 532 6 738 739 740 555 562 741 + 6 -1213 -1218 -1209 906 1219 -1215 + 0.070203824588 -0.202493709776 0.338640350180 0.918868331553 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 533 3 562 564 741 + 3 907 -1216 -1219 + -1.914665959279 -0.895687268507 0.388036454236 -0.217191222703 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 534 6 742 457 443 339 67 66 + 6 1220 -711 1221 -533 -80 1222 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 535 4 339 443 444 349 + 4 -1221 -714 1223 -537 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 536 4 444 349 352 451 + 4 1223 -546 1224 717 + 0.040584619867 0.073113009071 -0.040547147390 -0.996499080152 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 537 6 743 341 352 451 454 744 + 6 1225 545 1224 723 1226 1227 + -0.545901715137 -0.269015837227 0.919208991617 0.287550533041 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 538 5 742 743 341 68 66 + 5 1228 1225 -544 -96 1222 + 0.152152911797 0.056907758281 -0.516408289134 0.854449522184 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 539 5 457 742 743 744 456 + 5 -1220 1228 -1227 1229 725 + 0.250024701886 0.007350049863 0.975654294927 0.219190952269 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 540 3 454 456 744 + 3 724 -1229 -1226 + 0.170415457688 -0.023109518618 0.633292041442 0.773567799482 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 541 4 183 745 746 184 + 4 1230 1231 1232 -249 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 542 6 747 746 745 748 751 752 + 6 1233 -1231 1234 1235 1236 1237 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 543 6 748 745 183 186 749 750 + 6 -1234 -1230 -279 1238 1239 1240 + -0.782339741728 -0.070767988830 -0.560832312412 -0.824899393327 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 544 5 747 185 186 749 752 + 5 1241 -273 1238 1242 1237 + 0.023312755699 0.063881419521 0.009165166076 -0.997915409226 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 545 4 746 184 185 747 + 4 1232 -271 -1241 1233 + -0.209332060092 -0.021495932620 0.015707321139 -0.999645539651 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 546 3 748 751 750 + 3 1235 1243 1240 + 0.364766630902 0.106893147822 0.037937325123 0.993546483216 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 547 4 749 750 751 752 + 4 1239 -1243 1236 -1242 + 0.974202970327 0.379462876741 0.276257110961 -0.883000528776 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 548 7 548 542 754 758 759 762 763 + 7 -874 1244 1245 1246 1247 1248 1249 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 549 4 542 551 753 754 + 4 -879 1250 1251 -1244 + -0.262609371904 -0.133324620278 0.248682754871 -0.959365119784 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 550 8 552 551 753 755 29 30 757 756 + 8 878 1250 1252 1253 41 1254 1255 1256 + 0.016258863113 -0.084122652618 -0.556691077845 0.826449286505 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 551 5 755 753 754 758 761 + 5 -1252 1251 1245 1257 1258 + 0.159612634218 0.003792580723 -0.158712955596 0.987317483922 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 552 5 31 29 755 761 760 + 5 -53 -1253 -1258 1259 1260 + 0.119518764783 -0.026749915277 -0.217656253777 0.975658852891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 553 5 756 552 548 763 764 + 5 1256 -877 -1249 1261 1262 + 0.272599152412 0.015906603643 0.116004070458 0.993121359954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 554 7 757 30 31 760 759 762 765 + 7 -1254 -63 -1260 1263 1247 1264 1265 + -0.305810239587 -0.349087835112 -0.162086491083 0.922965683428 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 555 4 756 757 765 764 + 4 -1255 -1265 1266 1262 + -0.458153240376 -0.159984278116 -0.470669018485 -0.867684104841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 556 4 758 759 760 761 + 4 1246 -1263 -1259 -1257 + 0.086215045240 -0.056986521538 -0.014602867664 0.998268146651 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 557 4 762 763 764 765 + 4 1248 1261 -1266 -1264 + -0.466653427083 -0.152337747550 -0.202022143664 -0.967460730025 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 558 7 770 709 708 766 767 771 772 + 7 1267 1164 1268 1269 1270 1271 1272 + -0.543257271646 -0.062050906517 -0.620223459556 -0.781967099830 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 559 4 767 766 769 768 + 4 -1269 1273 1274 1275 + -0.471722851826 0.163833892586 -0.968828328769 -0.185822832330 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 560 5 403 769 766 708 398 + 5 1276 -1273 -1268 -1158 637 + -0.228396751617 0.175376429294 -0.162756330464 -0.970954934558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 561 5 767 768 464 471 771 + 5 -1275 1277 -747 1278 -1270 + -0.006504404842 0.069103901460 -0.407441188394 0.910613160899 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 562 7 405 400 770 772 474 472 774 + 7 641 1279 -1272 1280 -755 1281 1282 + -0.535819383450 -0.830517488920 0.182262777925 0.526327825961 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 563 7 464 768 769 403 401 773 465 + 7 -1277 -1274 -1276 638 1283 1284 -739 + 0.266814737056 0.096990219500 0.083616065799 0.991766732081 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 564 4 400 770 709 399 + 4 1279 1267 -1163 -635 + 0.299861946428 0.308283253509 -0.402188985269 0.862093646731 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 565 4 404 401 773 775 + 4 -639 1283 1285 1286 + -0.426365135967 -0.105129542126 -0.577319701502 -0.809722015033 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 566 4 471 771 772 474 + 4 1278 1271 1280 756 + 0.113597434938 0.097390533826 0.365456786242 -0.925719407440 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 567 4 405 404 775 774 + 4 -640 -1286 1287 1282 + -0.232498568030 0.107356110447 -0.411104388323 -0.905244634036 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 568 5 773 465 472 774 775 + 5 1284 749 1281 -1287 -1285 + -0.240449271589 0.032471783973 -0.245525266632 -0.968846183195 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 569 8 107 667 671 778 599 600 780 110 + 8 1288 1090 1289 1290 -969 1291 1292 -171 + 0.194587979568 -0.093867589881 0.314854261986 0.944486987353 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 570 8 782 776 669 668 108 109 764 765 + 8 1293 1294 1087 1295 169 1296 -1266 1297 + 0.388754126218 0.108958351712 -0.300746183146 0.947459661894 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 571 6 780 600 595 45 42 781 + 6 -1291 -968 1298 -72 1299 1300 + -0.215106283660 -0.236988762063 0.807667518413 -0.539916203088 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 572 4 667 668 108 107 + 4 1080 1295 -164 1288 + -0.336630248819 -0.025638734139 -0.015539739703 -0.999550484869 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 573 5 777 776 669 670 779 + 5 1301 1294 -1084 1302 1303 + -0.476689126610 -0.104294870248 0.006092332991 -0.994527759049 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 574 7 483 594 777 776 782 783 482 + 7 -967 1304 1301 -1293 1305 1306 -788 + 0.948865634134 0.571496497088 0.009494859820 -0.820549572819 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 575 5 599 594 777 779 778 + 5 -956 1304 -1303 1307 1290 + -0.327062075360 -0.175353165900 -0.581226930039 0.794623510227 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 576 4 595 481 36 45 + 4 -959 759 -70 -1298 + -0.078341488928 0.026682594862 0.276270612669 -0.960709418975 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 577 4 671 778 779 670 + 4 1289 -1307 -1302 -1089 + -0.380498309254 -0.006869229931 -0.296996436504 -0.954853879075 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 578 6 781 780 110 109 764 756 + 6 1300 1292 159 1296 1262 1308 + -0.015610431358 0.146450601340 0.298256670839 -0.943183534455 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 579 5 35 42 781 756 757 + 5 43 1299 -1308 -1255 1309 + 0.325989961906 0.071157059477 0.062395524603 0.995511663114 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 580 6 782 783 34 35 757 765 + 6 1305 1310 -64 -1309 -1265 1297 + 0.191079963103 -0.030691966191 0.257442052208 0.965806188097 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 581 4 783 482 37 34 + 4 1306 770 -58 -1310 + 0.153359184055 -0.041364737402 0.122653796799 0.991587113990 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 582 5 789 787 788 450 455 + 5 1311 1312 1313 -707 1314 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 583 10 790 789 787 791 539 541 593 480 479 794 + 10 1315 1311 1316 1317 -869 1318 966 783 1319 1320 + -0.125173853120 -0.038842941956 -0.684000638530 0.728446533625 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 584 7 788 131 117 785 784 449 450 + 7 1321 -191 1322 1323 1324 -727 -1313 + 0.346888865464 0.067541956597 -0.351375226576 0.933795231433 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 585 5 593 594 777 540 541 + 5 955 1304 1325 -866 1318 + -0.174613251684 -0.135598735353 0.811177711287 -0.568861761486 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 586 9 790 452 449 784 792 793 490 491 794 + 9 1326 -720 -1324 1327 1328 1329 789 1330 1320 + -0.219289745211 0.016250329645 -0.400632874916 -0.916094550973 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 587 6 784 785 786 776 782 792 + 6 -1323 1331 1332 -1293 1333 -1327 + -0.080139578665 -0.135849609020 -0.213929813116 0.967356665759 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 588 4 117 785 786 116 + 4 1322 1331 1334 -182 + -0.187060349964 0.021641237757 0.169866925725 -0.985229356228 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 589 6 777 776 786 116 133 540 + 6 1301 -1332 1334 -189 -871 -1325 + 0.178031864495 -0.042611553280 -0.007121657971 0.999066332890 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 590 5 787 788 131 130 791 + 5 1312 1321 193 1335 -1316 + -0.750134881863 -0.132951764257 -0.618939958866 -0.774104098749 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 591 4 490 482 783 793 + 4 774 -1306 1336 1329 + 0.375688252077 0.070226619690 0.145089997228 0.986923054038 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 592 4 789 790 452 455 + 4 -1315 1326 -728 1314 + -0.039728209664 -0.066780334497 -0.200604056223 0.977393676852 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 593 4 130 134 539 791 + 4 194 -844 -1317 -1335 + -0.443945544553 -0.026202153352 -0.354807014672 -0.934572324381 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 594 4 782 792 793 783 + 4 1333 1328 -1336 -1305 + 0.466576285387 0.107226102485 0.309299821478 0.944900091745 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 595 3 479 794 491 + 3 1319 -1330 -777 + -0.186750118899 -0.004426444749 0.019736966472 -0.999795408442 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 596 4 796 340 346 801 + 4 1337 -535 1338 1339 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 597 4 61 795 799 63 + 4 1340 1341 1342 -87 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 598 6 795 797 796 340 60 61 + 6 1343 1344 1337 -541 -98 1340 + 0.073320057508 0.020290394469 0.219835614727 0.975325895478 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 599 5 798 797 795 799 800 + 5 1345 -1343 1341 1346 1347 + 0.258233658240 0.125605348961 0.024943180120 0.991766673204 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 600 5 796 797 798 802 801 + 5 -1344 -1345 1348 1349 1339 + 0.569515923771 0.300812168947 0.004659149241 0.953672025039 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 601 5 802 798 800 804 803 + 5 -1348 -1347 1350 1351 1352 + 1.119718029105 0.683190401525 -0.710111241963 -0.170273014012 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 602 6 63 799 800 804 805 62 + 6 -1342 1346 1350 1353 1354 100 + -0.046519008882 -0.113008920818 0.974109118442 -0.195807071333 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 603 5 346 801 802 803 347 + 5 1338 -1349 -1352 1355 -542 + 0.135153656535 0.115873368466 0.075450243197 -0.990394175711 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 604 5 347 803 804 805 343 + 5 -1355 -1351 1353 1356 -543 + -0.134606415475 -0.010232682998 -0.265381025551 -0.964089313018 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 605 4 343 57 62 805 + 4 540 93 -1354 1356 + 0.606387058643 0.193402121372 0.631165475892 0.751149626566 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 606 8 812 807 806 755 761 808 814 815 + 8 1357 1358 1359 -1258 1360 1361 1362 1363 + 0.582671807579 0.452719112575 0.886172997221 0.098705745047 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 607 7 38 27 806 807 810 23 26 + 7 -49 1364 -1358 1365 1366 -39 1367 + -0.215468731691 -0.013613548737 -0.290449649243 -0.956793432537 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 608 4 806 27 29 755 + 4 -1364 40 -1253 -1359 + -0.190512085579 -0.022148713558 -0.077348706169 -0.996758050954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 609 6 811 810 807 812 590 586 + 6 1368 -1365 -1357 1369 -950 1370 + -0.012678297240 0.223974805351 -0.963713861195 -0.145226995801 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 610 5 814 808 809 587 588 + 5 -1361 1371 1372 -951 1373 + 0.185739357466 0.044648636208 0.392083305206 0.918845569758 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 611 7 32 760 761 808 809 813 41 + 7 1374 -1259 1360 1371 1375 1376 -55 + 0.006114357288 0.117618270085 -0.460696382765 -0.879729950297 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 612 3 32 31 760 + 3 -54 -1260 -1374 + 0.385694464311 0.181716560480 -0.240819545078 0.953407068547 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 613 8 813 809 587 586 811 816 21 22 + 8 -1375 1372 948 1370 1377 1378 -35 1379 + -0.027828907102 0.042384204495 0.008854383175 -0.999062149772 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 614 5 816 811 810 23 20 + 5 -1377 1368 1366 -37 1380 + 0.026159572861 -0.024139335921 0.479497627033 -0.877211102376 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 615 4 812 815 589 590 + 4 -1363 1381 937 -1369 + 0.123483667723 0.112012588704 -0.235680766604 0.965353694883 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 616 5 813 41 38 26 22 + 5 1376 56 -1367 34 1379 + -0.856129537106 -0.531308306726 -0.467071814898 0.706792333668 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 617 4 814 815 589 588 + 4 1362 1381 927 1373 + -0.121311007340 -0.063225474594 0.048513636201 -0.996819425204 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 618 3 816 21 20 + 3 1378 -21 1380 + -0.031239636548 -0.036328161243 -0.248829200888 0.967865844777 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 619 7 818 821 820 817 822 826 825 + 7 1382 1383 1384 1385 1386 1387 1388 + -0.208992611095 -0.016180223342 0.144362727783 -0.989392542523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 620 7 358 819 820 817 823 824 355 + 7 1389 1390 1384 1391 1392 1393 -563 + -0.273961814810 -0.147078841741 0.413657418325 -0.898473903114 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 621 4 818 71 78 825 + 4 1394 131 1395 1388 + 0.141653347775 0.031417162065 -0.268175923119 0.962857536808 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 622 3 817 822 823 + 3 1385 1396 -1391 + 0.218402963448 -0.073894799989 0.160082363216 0.984333884168 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 623 6 818 71 70 358 819 821 + 6 1394 120 562 1389 1397 -1382 + 1.114114492097 0.236261987293 0.827090432031 0.510001657451 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 624 3 819 820 821 + 3 1390 -1383 -1397 + 0.356948538832 0.314558023139 0.001931411720 -0.949236282349 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 625 6 359 824 823 822 826 360 + 6 1398 -1392 -1396 1386 1399 -565 + 0.604140337583 0.109648551404 0.450486281638 0.886024438281 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 626 3 355 824 359 + 3 -1393 -1398 -564 + 0.583690629679 0.079539124721 0.993836261384 0.077220549059 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 627 5 825 826 360 77 78 + 5 -1387 1399 566 -132 1395 + -0.181938028855 -0.465056520475 0.207908821554 0.860520978643 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 628 6 308 731 827 831 333 314 + 6 -1199 1400 1401 1402 -506 -479 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 629 5 827 731 732 828 829 + 5 -1400 -1201 1403 1404 1405 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 630 4 827 829 833 831 + 4 -1405 1406 1407 -1401 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 631 5 310 309 732 828 830 + 5 490 1202 1403 1408 1409 + -0.218571595485 -0.123149982090 -0.115444384964 -0.985650382180 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 632 5 310 830 832 334 316 + 5 -1409 1410 1411 528 -493 + 0.578237608458 -0.392984685937 0.879229823691 -0.269291577571 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 633 5 830 828 829 833 832 + 5 -1408 1404 1406 1412 -1410 + -0.038002438187 -0.129038291837 -0.021563754032 0.991405125946 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 634 5 832 833 831 333 334 + 5 -1412 1407 1402 509 -1411 + 0.649589176825 0.063089096286 0.788461039293 0.611840629124 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 635 5 839 840 834 846 847 + 5 1413 1414 1415 1416 1417 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 636 5 557 561 834 846 850 + 5 910 1418 1415 1419 1420 + -0.035978610962 -0.003567793337 0.380572938600 -0.924744023639 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 637 6 841 840 834 561 562 741 + 6 1421 1414 -1418 913 1219 1422 + -0.601843214220 -0.047955630726 -0.228276534811 -0.972414562384 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 638 4 836 835 843 842 + 4 1423 1424 1425 1426 + 0.242463785251 0.028453626135 -0.116697639646 0.992759815897 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 639 6 839 843 835 838 848 847 + 6 1427 -1424 1428 1429 1430 1417 + 0.083501068185 -0.047757608973 -0.050509174111 0.997581091499 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 640 8 838 835 836 837 556 557 850 849 + 8 -1428 -1423 1431 1432 912 -1420 1433 1434 + 0.902389652216 0.145766664482 0.472226643595 0.869341173881 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 641 6 740 837 836 842 845 739 + 6 1435 -1431 -1426 1436 1437 -1218 + 0.483605129710 0.175809731596 -0.258087778536 0.949990335133 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 642 4 837 556 555 740 + 4 1432 -902 1209 1435 + -1.458059427206 -0.747793607441 0.138906655132 0.649237754470 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 643 3 838 848 849 + 3 1429 1438 1434 + -0.782362173691 -0.098557012211 -0.491694573486 -0.865172215081 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 644 4 841 741 738 844 + 4 -1422 -1215 1439 1440 + -0.573866570335 0.030763400106 -0.463266546906 -0.885684887379 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 645 7 842 843 839 840 841 844 845 + 7 -1425 -1427 1413 -1421 -1440 1441 -1436 + -0.834972429282 -0.008156279506 -0.992536931083 0.121671342316 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 646 4 844 738 739 845 + 4 -1439 -1213 -1437 -1441 + -0.198692249195 0.221192872026 -0.952720766961 0.208319114739 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 647 5 846 847 848 849 850 + 5 1416 -1430 1438 -1433 -1419 + 0.520649271960 -0.043744951473 0.875634244846 0.480989655267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 648 5 852 851 225 224 853 + 5 1442 1443 -326 1444 1445 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 649 7 518 253 226 225 851 94 98 + 7 1446 -361 -331 -1443 1447 -105 -821 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 650 5 851 852 856 95 94 + 5 -1442 1448 1449 -112 -1447 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 651 9 857 701 700 854 254 253 518 97 96 + 9 1450 1142 1451 1452 384 -1446 -826 147 1453 + -0.304796687443 0.138635809064 -0.140893765452 -0.980269891051 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 652 7 852 853 855 854 700 698 856 + 7 -1445 1454 1455 -1451 -1117 1456 -1448 + -0.864782132070 -0.090541082023 -0.821184599842 -0.563434260095 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 653 3 701 699 857 + 3 1140 1457 1450 + 0.534891184367 -0.149299580865 0.475563809646 0.866919083945 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 654 4 224 853 855 228 + 4 1444 1454 1458 336 + 0.248013485666 0.026178290823 0.012858778557 0.999574583962 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 655 5 854 254 227 228 855 + 5 1452 380 342 -1458 1455 + 0.403877972034 -0.007368550453 0.198874885186 0.979997185969 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 656 6 857 699 698 856 95 96 + 6 -1457 1132 1456 1449 -142 1453 + 0.630673926384 -0.137588587841 0.968207638828 -0.208909905490 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 657 6 860 863 864 858 865 866 + 6 1459 1460 1461 1462 1463 1464 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 658 5 858 859 862 867 865 + 5 1465 1466 1467 1468 -1462 + -0.123233606181 0.145816005096 0.052053189734 -0.987941373815 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 659 5 859 862 861 686 697 + 5 1466 1469 1470 1126 1471 + -0.153784874249 -0.209165967009 0.187045880286 -0.959824690719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 660 5 686 861 860 863 685 + 5 -1470 1472 1459 1473 1119 + -0.059462615191 -0.046899101701 0.291204559256 -0.955510533133 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 661 5 858 859 697 696 864 + 5 1465 -1471 1136 1474 1461 + -0.320729441520 -0.116358437128 -0.631925963412 0.766244276243 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 662 5 860 861 862 867 866 + 5 -1472 -1469 1467 1475 1464 + 0.396508443400 -0.007425329830 0.438443363891 0.898728146403 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 663 4 863 864 696 685 + 4 1460 -1474 1112 -1473 + -0.332843444094 0.012142862817 -0.149626537229 -0.988668018214 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 664 3 865 866 867 + 3 1463 -1475 1468 + 0.225690688946 -0.014904308290 0.109964828779 0.993823725832 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 665 8 302 301 642 868 830 310 312 874 + 8 474 -1042 1476 1477 1409 -489 1478 1479 + 0.562072095321 -0.130362876372 0.653763903620 0.745384651564 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 666 6 868 830 832 870 871 872 + 6 1477 1410 1480 1481 1482 1483 + -0.175255752445 -0.022525520240 -0.233356777745 0.972130246016 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 667 6 869 639 642 868 872 873 + 6 1484 -1041 1476 -1483 1485 1486 + -0.420899483002 -0.302706936360 -0.082428077263 -0.949512571143 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 668 6 869 336 329 870 871 873 + 6 1487 -520 1488 1481 1489 1486 + -0.649210374507 0.073658168302 -0.971341926555 -0.225985256064 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 669 7 336 869 639 300 302 874 337 + 7 -1487 1484 1033 468 -1479 1490 530 + 0.092794663443 0.043620365520 -0.058004763119 0.997362878378 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 670 4 870 832 334 329 + 4 -1480 1411 510 1488 + 0.532547686715 0.207630666817 0.584827036964 0.784134454691 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 671 3 871 872 873 + 3 1482 1485 -1489 + -0.169566967316 0.199523103959 -0.428433804466 -0.881268974932 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 672 4 312 874 337 315 + 4 1478 1490 -529 -495 + -0.081602533074 0.022559936089 0.041277324513 -0.998893003161 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 673 7 476 478 875 876 879 342 344 + 7 775 1491 1492 1493 1494 548 1495 + -0.820806451284 -0.318542249634 -0.001823470888 -0.947906910067 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 674 7 50 875 876 877 8 25 48 + 7 1496 1492 1497 1498 -26 1499 73 + 0.083583554748 -0.037432083073 0.690881861882 -0.721997986202 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 675 5 39 476 344 348 40 + 5 771 -1495 552 1500 -60 + 0.002688511284 0.039087759667 0.285209894738 -0.957667720552 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 676 4 875 478 47 50 + 4 -1491 776 -74 1496 + -0.232493387262 0.075483284832 -0.966910450273 -0.243693362370 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 677 6 342 879 878 880 805 343 + 6 -1494 1501 1502 1503 1356 551 + -0.300477668403 -0.151428709987 -0.099767828937 0.983420421845 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 678 5 878 877 8 7 880 + 5 1504 1498 -4 1505 -1502 + -0.011847482509 0.006155409574 -0.304036591283 0.952640468432 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 679 4 876 877 878 879 + 4 1497 -1504 -1501 -1493 + -0.192079026835 -0.080576999036 -0.261934986569 0.961715867623 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 680 6 7 880 805 804 882 13 + 6 1505 1503 -1353 1506 1507 9 + -0.145429770574 -0.046374188128 0.057142751771 -0.997288393894 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 681 7 40 348 347 803 881 813 41 + 7 -1500 553 -1355 1508 1509 1376 -71 + 0.642935088274 0.274001285539 0.860355929565 0.429780141450 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 682 4 803 804 882 881 + 4 -1351 1506 1510 -1508 + 0.285323798161 0.099497164316 0.182945348192 0.978075310939 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 683 5 881 882 13 22 813 + 5 -1510 1507 -32 1379 -1509 + 0.285221564227 0.105695544661 0.126872541528 0.986271671521 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 684 4 25 48 38 26 + 4 1499 -50 -1367 -33 + 0.226881153747 0.224130462344 0.003820011191 -0.974551662748 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 685 8 321 380 459 866 865 883 318 317 + 8 -599 -731 1511 -1463 1512 1513 -481 -505 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 686 4 459 460 867 866 + 4 733 1514 1475 -1511 + 0.008192064279 -0.021088567290 -0.264633752656 0.964118379290 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 687 7 460 867 865 883 884 886 466 + 7 1514 1468 1512 1515 1516 1517 -734 + -0.259042826504 -0.030790437616 -0.165213135287 -0.985777139560 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 688 4 335 320 467 885 + 4 511 -736 1518 1519 + -0.012778528078 -0.101203434625 -0.099531505903 0.989874408272 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 689 5 338 884 883 318 319 + 5 1520 -1515 1513 -499 514 + -0.429341147470 -0.033880616853 -0.424415417574 -0.904833496908 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 690 5 335 338 884 886 885 + 5 -515 1520 1516 1521 1519 + 0.741055619192 0.243759610645 0.811673646708 0.530817429497 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 691 4 466 467 885 886 + 4 735 1518 -1521 1517 + 0.509571517728 0.240587264303 0.366825345266 0.898641716329 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 692 5 887 384 293 292 672 + 5 1522 -614 -444 -1091 1523 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 693 5 887 672 673 888 889 + 5 -1523 -1097 1524 1525 1526 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 694 5 385 384 887 889 890 + 5 -619 -1522 -1526 1527 1528 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 695 5 385 294 295 891 890 + 5 -624 -454 1529 1530 1528 + 0.255435898423 -0.094520335234 -0.146241067815 0.984723035331 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 696 5 673 291 295 891 888 + 5 -1100 457 1529 1531 -1524 + -0.292881809815 0.052791873340 -0.169322870224 -0.984145712650 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 697 4 888 889 890 891 + 4 1525 1527 -1530 1531 + 0.082809735778 -0.396032845857 0.070052562773 0.915560278437 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 698 6 900 899 895 893 575 581 + 6 1532 1533 1534 1535 -922 1536 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 699 8 901 902 894 892 897 898 882 881 + 8 1537 1538 1539 1540 1541 1542 1510 1543 + 0.069844492022 0.130998593021 -0.913306700300 0.385629666666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 700 5 893 894 892 896 895 + 5 1544 1539 1545 1546 1534 + 0.129738313106 0.039142163965 0.376917699763 0.925419331225 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 701 3 892 897 896 + 3 1540 1547 -1545 + -0.070511321188 -0.103268734877 0.556334563741 0.824516477448 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 702 7 576 575 893 894 902 903 904 + 7 940 -1535 1544 -1538 1548 1549 1550 + -0.279130036790 -0.161904187181 -0.419798965384 -0.893059831610 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 703 5 895 896 897 898 899 + 5 -1546 -1547 1541 1551 1533 + -0.134035869199 -0.124306224686 0.387315854851 0.913528538736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 704 6 898 899 900 12 13 882 + 6 1551 -1532 1552 8 -1507 -1542 + 0.638494331128 0.275041036827 0.906806423745 -0.319459759462 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 705 6 21 12 900 581 580 816 + 6 22 -1552 -1536 -946 1553 1378 + 0.242292199752 -0.019831518257 0.999798158048 0.003217770660 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 706 4 809 901 881 813 + 4 1554 -1543 1509 -1375 + 0.042436750704 -0.000675399449 -0.244654611434 0.969610058188 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 707 7 585 587 809 901 902 903 905 + 7 947 -1372 1554 1537 1548 1555 1556 + 0.065500816628 0.089282294281 0.239565278962 -0.966766336321 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 708 4 576 585 905 904 + 4 -923 -1556 1557 1550 + 0.694681469703 0.738748332459 -0.292873142734 0.607022424260 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 709 3 903 904 905 + 3 1549 -1557 -1555 + 0.350280214703 0.339676837967 0.441913345831 -0.830260345028 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 710 5 580 816 811 906 577 + 5 1553 -1377 1558 1559 -945 + -0.086833445375 0.112173500047 -0.596073263198 -0.795055828724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 711 4 811 586 584 906 + 4 -1370 949 1560 -1558 + -0.028780961701 0.073107765404 -0.129260899911 -0.988911964935 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 712 3 577 584 906 + 3 942 1560 1559 + 0.008807680963 -0.140479098038 0.350221319475 0.926072702545 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 713 5 907 908 909 911 912 + 5 1561 1562 1563 1564 1565 + -0.251453404085 -0.247993178486 0.015501571594 -0.968637746891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 714 9 914 906 577 574 912 907 463 469 921 + 9 1566 1559 -941 1567 1565 1568 743 1569 1570 + 0.160407833690 0.161883307883 0.272699658099 -0.948382144023 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 715 6 913 910 909 908 719 720 + 6 1571 1572 -1562 1573 -1180 1574 + -0.130930246252 -0.063244158250 -0.070551567946 -0.995501206784 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 716 9 463 907 908 719 716 915 917 922 468 + 9 -1568 1561 1573 1179 1575 1576 1577 1578 -752 + -0.292861652708 0.112458186091 -0.835397969961 0.538018018441 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 717 5 910 909 911 573 579 + 5 1572 1563 1579 -933 1580 + 0.159947941843 0.077936165665 0.116162361657 0.990167793768 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 718 7 20 14 913 910 579 580 816 + 7 -20 1581 1571 -1580 944 1553 -1380 + -0.035054834093 -0.126969781343 0.149171891772 0.980625525535 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 719 4 911 912 574 573 + 4 1564 -1567 935 -1579 + 0.522179518956 0.322259162460 0.677977911603 0.660677669964 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 720 5 811 906 914 918 810 + 5 1558 -1566 1582 1583 -1368 + 0.024636789623 0.026865137083 0.280707770004 -0.959417225335 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 721 7 18 14 913 720 716 915 916 + 7 29 1581 -1574 1175 1575 1584 1585 + 0.179614480820 0.100970895156 0.213379462268 -0.971737661827 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 722 9 914 918 919 19 18 916 917 922 921 + 9 1582 1586 1587 36 -1585 1588 1577 1589 1570 + 0.439552969216 0.119714599272 0.397955129293 0.909560404696 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 723 3 915 916 917 + 3 1584 1588 -1576 + -0.319209597847 -0.080168903953 -0.505423479780 0.859139134789 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 724 6 918 810 23 24 920 919 + 6 1583 1366 38 1590 1591 -1586 + 0.067725445690 0.021842664422 -0.211217923829 0.977194907203 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 725 3 24 15 920 + 3 -24 1592 -1590 + 0.895128563057 0.559726284421 -0.017850057528 0.828485281689 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 726 4 15 19 919 920 + 4 -31 -1587 -1591 -1592 + 0.516885004496 0.253191786020 0.124269269060 0.959401411433 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 727 4 469 921 922 468 + 4 1569 -1589 1578 754 + 0.286719591056 0.012562751826 0.287870294982 0.957587004159 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 728 9 927 926 928 929 924 923 592 597 932 + 9 1593 1594 1595 1596 1597 1598 962 1599 1600 + -0.291461248254 -0.014694171779 -0.057249665727 -0.998251750357 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 729 8 927 926 931 930 925 817 822 933 + 8 1593 1601 1602 1603 1604 1385 1605 1606 + -0.207125226634 0.152042664202 -0.432490084885 -0.888726816710 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 730 6 536 527 923 592 598 934 + 6 861 1607 1598 -958 1608 1609 + 0.124129021381 -0.164257682864 0.552075565704 0.817454575724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 731 7 537 525 925 817 823 936 935 + 7 859 1610 1604 1391 1611 1612 1613 + 0.239346967457 -0.024308197111 0.030198140549 0.999248309411 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 732 4 924 923 527 524 + 4 1597 -1607 846 1614 + -1.771844620511 -0.753685573486 -0.080189992984 -0.652324782102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 733 6 924 524 525 925 930 929 + 6 -1614 -852 1610 -1603 1615 1596 + -1.109295303115 -0.329391029668 -0.392673709066 -0.858666936468 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 734 3 926 928 931 + 3 1594 1616 -1601 + -0.245309519669 0.213664440383 -0.792427044025 -0.571320301419 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 735 3 927 932 933 + 3 -1600 1617 1606 + -0.754279851527 -0.288411636263 -0.211569616308 -0.933839935708 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 736 4 928 929 930 931 + 4 1595 -1615 -1602 -1616 + -0.287118021716 0.000419064886 -0.706371557192 0.707841117466 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 737 7 597 932 933 822 823 936 601 + 7 1599 1617 -1605 1396 1611 1618 965 + 1.157415758095 0.488407687197 0.869842910257 0.069507140365 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 738 4 536 537 935 934 + 4 -860 -1613 1619 1609 + 0.155404925362 -0.029133089828 -0.150746767772 0.988143043837 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 739 5 598 934 935 936 601 + 5 1608 -1619 -1612 1618 -964 + -0.197595734394 -0.120924865335 -0.528496333234 0.840279002892 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 740 6 938 940 879 342 341 743 + 6 1620 1621 1494 -547 -1225 1622 + -0.105650411594 -0.070208996106 -0.083366818926 0.994042589816 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 741 4 344 476 489 351 + 4 1495 772 1623 -549 + 0.209970507364 0.127861975526 0.348126801107 -0.928686731662 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 742 4 939 876 875 941 + 4 1624 -1492 1625 1626 + -0.170776996802 -0.120683276248 0.537465165358 -0.834605740971 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 743 7 942 492 493 937 744 454 453 + 7 1627 -781 1628 1629 -1226 729 1630 + -0.597261423446 -0.139328014696 -0.326245281017 -0.934960812513 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 744 4 937 938 743 744 + 4 1631 -1622 -1227 -1629 + -1.538036560304 -0.470053255060 -0.880478350046 -0.061707475296 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 745 7 493 937 938 940 939 941 488 + 7 1628 1631 1620 1632 -1626 1633 780 + 0.373948887852 -0.011876488037 0.937502315054 0.347776304971 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 746 4 879 876 939 940 + 4 -1493 -1624 -1632 1621 + 0.053299498246 0.025959958161 0.228738993252 -0.973141589666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 747 4 875 478 488 941 + 4 -1491 779 -1633 -1625 + -0.086556171176 -0.200252858657 0.971750003045 -0.124902858985 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 748 8 489 351 352 451 453 942 794 491 + 8 1623 550 1224 -722 1630 1634 -1330 778 + 0.149134317610 0.016943130758 -0.280706159413 0.959644195724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 749 4 942 492 479 794 + 4 1627 782 1319 -1634 + 0.233797787904 0.012136985331 0.103468445815 0.994558683190 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 750 4 187 943 461 197 + 4 1635 1636 741 286 + -0.138298052585 -0.103111683012 -0.521463076976 0.847020802683 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 751 4 378 912 907 382 + 4 1637 1565 1638 604 + 0.021524151190 0.019104008046 -0.164300517603 0.986225317456 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 752 7 912 378 188 187 943 583 574 + 7 -1637 601 -293 1635 1639 934 1567 + 0.186901186837 0.074913091068 0.201241492302 0.976672867731 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 753 8 914 906 584 583 943 461 470 944 + 8 1566 -1560 943 -1639 1636 -745 1640 1641 + -0.060183313291 -0.057506620917 0.283086254928 -0.957368873957 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 754 4 463 907 382 381 + 4 -1568 1638 -603 742 + 0.242478390473 0.030592129533 0.589346792106 -0.807300737176 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 755 3 914 921 944 + 3 -1570 1642 1641 + 0.702273606153 0.265860546505 0.716259951246 0.645205279003 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 756 4 470 944 921 469 + 4 1640 -1642 -1569 744 + 0.401414439129 0.063826267793 0.436362419074 0.897504343588 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 757 5 923 592 591 155 156 + 5 1598 952 1643 -239 1644 + 0.128751319713 0.310311922539 -0.914942571889 -0.258043796428 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 758 3 926 945 927 + 3 1645 1646 1593 + 0.245867968564 -0.087979343606 0.290331748994 0.952873082118 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 759 6 947 949 596 591 155 151 + 6 1647 1648 961 1643 -235 1649 + 0.358211551973 0.015836927408 0.284819392695 0.958450366620 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 760 4 923 924 161 156 + 4 -1597 1650 241 1644 + -0.891542908395 -0.302923257410 -0.071114501352 -0.950357947206 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 761 5 926 945 946 948 928 + 5 1645 1651 1652 1653 -1594 + -0.295074396572 0.126644255691 -0.523936420899 -0.842289652885 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 762 4 929 924 161 160 + 4 1596 1650 -240 1654 + 0.752866788972 0.189314454263 0.244619454904 0.950958127201 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 763 5 948 946 947 151 152 + 5 -1652 1655 -1649 -227 1656 + 0.231467269395 0.043859523034 -0.078701593160 0.995932930208 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 764 6 927 945 946 947 949 932 + 6 -1646 1651 1655 1647 1657 1600 + -1.104698543416 -0.509496018922 -0.331917043769 -0.793879639970 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 765 5 948 928 929 160 152 + 5 1653 1595 -1654 -237 1656 + 0.500841105646 0.006565674981 0.913754144334 -0.406214543836 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 766 4 597 932 949 596 + 4 1599 -1657 1648 -963 + -0.730561334939 -0.384148745373 -0.662387784292 0.643173510531 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 767 7 950 606 609 943 461 462 952 + 7 1658 -982 1659 1636 -748 1660 1661 + 0.288069757017 0.240833185059 0.034497412077 0.969953249149 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 768 5 606 190 199 951 950 + 5 -975 289 1662 1663 1658 + -0.015319571401 0.030849809568 0.396013172933 -0.917726460397 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 769 4 187 189 609 943 + 4 287 981 1659 -1635 + 0.070692462609 0.009262910706 -0.072904979855 0.997295875053 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 770 4 951 199 204 953 + 4 -1662 290 1664 1665 + -0.070431472565 0.130728884298 0.122198027158 -0.983858526908 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 771 4 951 950 952 953 + 4 1663 -1661 1666 1665 + 0.135238594998 -0.039644446601 -0.003643130142 0.999207208469 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 772 5 204 203 462 952 953 + 5 291 -737 1660 1666 -1664 + -0.227804069462 0.072390275634 -0.336520408310 -0.938889590306 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 773 7 86 954 955 504 505 521 90 + 7 1667 1668 1669 -792 1670 -822 -103 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 774 4 733 954 86 85 + 4 1671 -1667 -111 -1204 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 775 4 954 733 734 955 + 4 -1671 -1205 1672 -1668 + 1.368615451240 0.815533793275 -0.429296673161 -0.388083751837 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 776 5 504 955 734 737 503 + 5 -1669 -1672 -1207 1673 803 + -0.282870203396 0.015434790050 -0.010901205594 -0.999821449546 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 777 6 87 737 503 505 521 89 + 6 1206 1673 805 1670 830 -128 + 0.552303935952 0.065465103763 0.153762655635 0.985936796109 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 778 8 177 175 135 147 956 959 964 965 + 8 -267 400 -204 1674 1675 1676 1677 1678 + -0.130365933400 -0.019545452588 0.068991175616 -0.997425783189 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 779 5 257 259 957 962 653 + 5 389 1679 1680 1681 1056 + 0.069878657138 -0.061100141393 0.158678960645 0.985437852008 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 780 3 138 661 144 + 3 1061 1682 213 + 0.775360035190 0.085999342842 0.975174101839 0.204057796060 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 781 4 958 956 959 961 + 4 1683 1675 1684 1685 + -0.788476209003 -0.728367671144 0.649717220220 0.217596115272 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 782 7 661 144 147 956 958 963 660 + 7 1682 -212 1674 -1683 1686 1687 1073 + -1.558351094820 -0.580712107553 -0.737046171402 -0.345740349630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 783 7 960 957 259 176 177 965 966 + 7 1688 -1679 399 275 -1678 1689 1690 + -0.516439438791 -0.147960847010 -0.345329650758 0.926744312127 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 784 6 957 960 961 958 963 962 + 6 -1688 1691 1685 1686 1692 -1680 + 0.148125532848 0.120928964036 -0.227482360935 0.966244255414 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 785 5 960 961 959 964 966 + 5 1691 -1684 1676 1693 1690 + 0.243290972962 -0.215076553747 0.686290263212 0.694800511405 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 786 4 653 962 963 660 + 4 -1681 -1692 1687 -1071 + 0.206385280825 0.040237001998 0.074386362891 0.996417408863 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 787 3 964 965 966 + 3 1677 1689 -1693 + 0.599161651300 0.044798923552 0.423479759345 0.904797187150 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 788 5 968 722 55 64 971 + 5 1694 -1186 -89 1695 1696 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 789 5 722 721 967 969 968 + 5 -1190 1697 1698 1699 1694 + -0.041654688093 0.044524425449 -0.307753560582 -0.950423758903 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 790 5 54 721 967 970 65 + 5 1191 1697 1700 1701 -91 + 0.086274638756 0.032145441890 -0.146028695797 0.988757953480 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 791 4 969 967 970 972 + 4 -1698 1700 1702 1703 + 0.434443018981 0.267141699680 -0.386080820982 -0.882936527709 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 792 4 968 969 972 971 + 4 -1699 -1703 1704 1696 + 0.965289251951 0.548553532719 -0.775066734670 0.313624901036 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 793 5 970 65 64 971 972 + 5 1701 92 1695 -1704 -1702 + 2.069671448916 0.879569283180 0.452675226940 0.146434336824 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 794 7 974 387 390 703 705 976 977 + 7 1705 -617 1706 -1145 1707 1708 1709 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 795 5 387 388 973 975 974 + 5 626 1710 1711 1712 1705 + 0.352603551944 0.077095305390 0.466003912425 0.881417419553 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 796 4 973 393 394 975 + 4 1713 630 1714 -1711 + 0.331587843508 -0.009619534401 0.426711045740 0.904336855382 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 797 5 393 973 388 386 396 + 5 -1713 -1710 -622 1156 634 + -0.130384337135 -0.133138567544 0.544025183051 -0.828438725579 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 798 6 974 975 394 395 978 977 + 6 -1712 -1714 631 1715 1716 1709 + 0.232725921470 -0.013694857137 0.041869342678 0.999029233322 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 799 5 395 397 705 976 978 + 5 632 1155 1707 1717 -1715 + -0.177978006006 -0.045765233888 -0.791275947011 0.609744142284 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 800 3 390 703 391 + 3 1706 -1148 628 + -0.362054374160 -0.008850029791 -0.198985349891 -0.979962503110 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 801 3 976 977 978 + 3 1708 -1716 -1717 + 0.149688365198 0.000798404732 -0.164536972089 0.986370593320 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 802 7 980 958 956 981 979 983 982 + 7 1718 1683 1719 1720 1721 1722 1723 + -0.672701223001 0.006838138431 -0.924192683917 -0.381865320312 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 803 8 992 991 979 981 146 145 994 995 + 8 1724 1725 -1720 1726 -225 1727 1728 1729 + -0.137212218511 -0.040464382154 0.117466561817 -0.992252105380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 804 8 991 979 983 987 922 921 944 993 + 8 1725 1721 1730 1731 1589 1642 1732 1733 + 0.114598258406 -0.102685500473 0.161550143474 0.981507635801 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 805 8 145 144 661 658 16 19 919 994 + 8 -222 -1682 1062 1734 30 -1587 1735 -1727 + -0.155925555644 -0.389788543077 0.920733048605 0.017763583341 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 806 5 958 980 984 988 963 + 5 -1718 1736 1737 1738 -1686 + -0.273365764884 -0.034246422219 -0.435394609554 0.899588081589 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 807 5 984 980 982 985 986 + 5 -1736 -1723 1739 1740 1741 + -0.297345167367 0.077255458746 -0.663504212490 0.744173201682 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 808 4 981 146 147 956 + 4 1726 203 1674 1719 + 0.781407140063 0.268649627428 0.268162751212 0.925157346912 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 809 4 982 983 987 985 + 4 -1722 1730 1742 -1739 + -0.254116475993 0.218105807945 -0.585787228532 -0.780565935350 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 810 5 658 659 989 17 16 + 5 1046 1743 1744 -14 -1734 + 0.049809122556 -0.137047551254 0.369422644778 0.919100037113 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 811 6 917 986 984 988 990 916 + 6 1745 1741 1737 1746 1747 1588 + -0.068535362665 -0.022479699732 0.059875908685 -0.997952673557 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 812 5 985 986 917 922 987 + 5 1740 -1745 1577 -1731 1742 + -0.268961380116 -0.145895931555 -0.028001637985 -0.988903577416 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 813 6 988 963 660 659 989 990 + 6 1738 1687 1072 1743 1748 -1746 + 0.027629081689 0.049034651286 0.037603719865 -0.998088955567 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 814 5 989 990 916 18 17 + 5 1748 1747 1585 -28 -1744 + 0.114522327429 0.001735766053 0.074958630671 0.997185133666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 815 3 991 993 992 + 3 -1733 1749 1724 + 0.033319567843 -0.034530399729 -0.161443870439 0.986277612132 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 816 6 992 993 944 914 918 995 + 6 -1749 -1732 1641 1582 1750 1729 + -0.596873337102 -0.193224396471 -0.933503768590 0.302051397343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 817 4 994 995 918 919 + 4 1728 -1750 1586 1735 + -0.261812806198 -0.066061911168 -0.657732728986 0.750348906252 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 818 5 205 208 714 999 998 + 5 -308 -1167 1751 1752 1753 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 819 6 997 996 206 205 998 1000 + 6 1754 1755 314 -1753 1756 1757 + 0.687400086471 0.256395758611 0.500247616903 -0.827051108910 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 820 5 715 713 990 916 915 + 5 1172 1758 1747 -1584 1759 + -0.302016807998 0.098128291343 -0.699376718595 -0.707985200357 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 821 6 996 206 207 713 990 988 + 6 1755 -318 1176 1758 -1746 1760 + -1.284018036706 -0.954325826501 0.298244690937 -0.017672611590 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 822 8 873 986 917 915 715 714 999 871 + 8 1761 -1745 -1576 1759 1177 1751 1762 1489 + 0.292771516159 0.198865474946 0.213109908933 -0.956575501249 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 823 4 997 996 988 984 + 4 1754 -1760 -1737 1763 + -0.436341830359 -0.081484988624 -0.368657275506 -0.925987046262 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 824 6 873 986 984 997 1000 872 + 6 1761 1741 1763 -1757 1764 1485 + 0.274568670310 -0.014975010299 0.314951334267 0.948989676503 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 825 5 998 999 871 872 1000 + 5 -1752 1762 1482 -1764 -1756 + 0.484484875982 -0.219285977440 0.902912314121 -0.369679608725 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 826 6 224 217 306 311 1001 853 + 6 -325 1765 -476 1766 1767 -1444 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 827 3 217 218 306 + 3 -330 -484 -1765 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 828 6 311 248 220 228 855 1001 + 6 -488 -376 335 -1458 1768 -1766 + -0.549243031451 0.157911270207 -0.796767241203 0.583288945624 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 829 3 1001 853 855 + 3 1767 1454 1768 + 0.008685806206 0.000664375973 0.265885719998 -0.964004327016 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 830 4 1006 1002 1007 1008 + 4 1769 1770 1771 1772 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 831 6 1002 1003 1004 638 641 1006 + 6 1773 1774 1775 1037 1776 1769 + -0.240516977865 -0.005088605601 -0.145019002638 -0.989415784676 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 832 8 997 984 980 1005 1003 1002 1007 1009 + 8 -1763 -1736 1777 1778 -1773 1770 1779 1780 + -0.142894027654 -0.253927315366 0.163877875291 0.953239193750 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 833 6 637 638 1004 1005 980 982 + 6 1039 -1775 1781 -1777 -1723 1782 + -0.041317948919 -0.076940928420 0.208975904663 -0.974889309001 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 834 5 639 637 982 985 869 + 5 -1032 -1782 1739 1783 1484 + 0.058787139685 0.075208665993 0.120026900945 -0.989917774166 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 835 3 1003 1004 1005 + 3 1774 1781 1778 + 0.325244318443 0.081630886747 0.108756514621 0.990711067293 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 836 3 997 1009 1000 + 3 -1780 1784 1757 + 0.115152933420 -0.059774338350 0.184557690756 0.981002287081 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 837 5 1006 641 642 868 1008 + 5 -1776 1040 1476 1785 1772 + -0.046130947864 0.585247191454 -0.637972522927 0.500476557779 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 838 6 1007 1008 868 872 1000 1009 + 6 1771 -1785 -1483 -1764 -1784 -1779 + 0.019818266628 0.085610842833 -0.133320671508 0.987368412569 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 839 4 869 985 986 873 + 4 -1783 1740 -1761 1486 + 0.673987420931 0.138191371317 0.673176330656 0.726454935105 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 840 6 683 684 1011 1010 362 361 + 6 -1109 1786 1787 1788 -559 1789 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 841 6 706 687 694 1010 362 367 + 6 -1151 -1135 1790 1788 580 1791 + 0.446861296104 0.032380269561 0.965613473302 -0.257957628925 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 842 5 683 688 706 367 361 + 5 1128 -1157 -1791 576 1789 + 0.100712659815 -0.075264925932 -0.252740280878 0.964602271066 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 843 4 694 1010 1011 695 + 4 1790 -1787 1792 1134 + -0.545463627741 -0.315082000064 -0.938396208371 0.141900984319 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 844 3 684 1011 695 + 3 1786 1792 1115 + 0.148827343845 0.116765161498 -0.280203821282 0.952812529094 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 845 6 1012 610 602 1015 677 676 + 6 1793 -971 1794 1795 -1094 1796 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 846 6 1015 1016 1017 1014 678 677 + 6 1797 1798 1799 1800 -1098 -1795 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 847 7 1012 1013 603 605 1014 678 676 + 7 1801 1802 984 1803 1800 -1104 1796 + -0.202186299200 -0.116156466866 -0.200888860986 -0.972703110274 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 848 3 603 611 1013 + 3 979 1804 1802 + 0.172999666907 0.168989296254 0.973246515191 0.155672214668 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 849 4 1012 610 611 1013 + 4 1793 983 1804 -1801 + -0.185808263960 0.077915144754 -0.731008617913 -0.677905325805 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 850 4 1014 605 612 1017 + 4 -1803 985 1805 1799 + -0.272499945864 -0.560020649547 -0.586418972955 0.585226161616 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 851 4 602 1015 1016 614 + 4 1794 1797 1806 987 + 0.072458198313 -0.063185842402 -0.018855073268 0.997823649515 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 852 4 1016 1017 612 614 + 4 1798 -1805 986 -1806 + -0.011350856794 -0.217526261177 0.014406211675 0.975948147579 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 853 7 1027 1019 519 511 512 752 751 + 7 1807 1808 -818 -797 1809 -1236 1810 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 854 6 1019 1003 1004 1018 520 519 + 6 1811 1774 1812 1813 -837 -1808 + -0.513337261987 -0.257481227563 -0.021327321506 -0.966047909169 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 855 8 1018 1004 1005 961 959 1020 1021 1022 + 8 -1812 1781 1814 -1684 1815 1816 1817 1818 + -0.703550527447 -0.071845014303 -0.585769813563 -0.807286826003 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 856 6 520 1018 1022 1023 1026 515 + 6 -1813 -1818 1819 1820 1821 834 + -0.765636347634 -0.391910391336 -0.442019988005 0.806860939299 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 857 7 960 961 1005 1003 1019 1027 1028 + 7 1691 -1814 1778 -1811 -1807 1822 1823 + -0.209672453342 0.002908856683 -0.124013401285 -0.992276279498 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 858 9 1024 1020 1021 1023 1026 516 517 509 508 + 9 1824 1816 1825 1820 1826 -836 1827 816 1828 + -0.084198344101 -0.045281240204 0.207121669924 -0.977266710337 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 859 5 964 959 1020 1024 1025 + 5 -1676 1815 -1824 1829 1830 + 0.174673678014 -0.293815998949 0.944390577684 -0.147643474432 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 860 3 1021 1022 1023 + 3 1817 1819 -1825 + 0.413649883500 0.164218785542 0.434584094356 -0.885533091086 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 861 7 512 507 1025 964 966 749 752 + 7 -815 1831 1830 1693 1832 1242 -1809 + 0.771455497389 0.207716504060 0.214439246386 0.954394920120 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 862 4 1024 1025 507 508 + 4 1829 -1831 -812 1828 + 0.492825076531 0.155065307533 0.015525509759 0.987782217367 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 863 3 517 509 510 + 3 1827 -807 -829 + 0.182776881002 0.013862177411 -0.045623574735 0.998862517800 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 864 3 1026 515 516 + 3 1821 832 -1826 + 0.029761888693 0.046304917529 0.187049807110 -0.981258490039 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 865 5 1028 960 966 749 750 + 5 1823 -1690 1832 1239 1833 + -0.231746602343 -0.206630439424 0.102878154082 0.972995347839 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 866 4 1027 1028 750 751 + 4 1822 -1833 -1243 1810 + -0.064451183807 -0.050036456924 -0.064686723608 0.996650380408 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 867 6 148 139 645 941 488 485 + 6 -217 -1060 1834 1633 -787 1835 + -0.910674454124 -0.328403306735 -0.190642224298 -0.925098270694 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 868 6 255 136 143 1029 1030 1031 + 6 394 -214 1836 1837 1838 1839 + 1.902746951142 0.595001669843 0.629423039464 0.499799610120 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 869 4 645 941 939 647 + 4 1834 1626 1840 1051 + 0.419242791449 0.095038543971 0.221386694846 0.970543974534 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 870 5 258 255 1031 1032 648 + 5 393 -1839 1841 1842 1064 + 0.041186903066 0.048931793849 0.040349293237 -0.997986780517 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 871 5 1029 143 153 1035 1034 + 5 -1836 -220 1843 1844 1845 + 0.517686512632 0.083344688818 0.277829033561 0.957008197957 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 872 6 1029 1030 937 493 494 1034 + 6 1837 1846 -1628 -790 1847 1845 + -0.422336154771 -0.189079304769 0.439266263107 -0.878233549009 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 873 6 937 1030 1031 1032 1033 938 + 6 -1846 1838 1841 1848 1849 -1631 + -0.723749351867 -0.424320695495 0.750439181340 0.506747454344 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 874 4 485 148 154 486 + 4 1835 218 1850 -762 + 0.189450636955 0.122554100653 0.206159708710 -0.970813404789 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 875 6 939 647 648 1032 1033 940 + 6 1840 -1067 -1842 1848 1851 1632 + -0.089390280363 0.027354168870 -0.139781128940 -0.989804518800 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 876 5 153 154 486 487 1035 + 5 -219 1850 -769 1852 -1843 + 0.067769041295 -0.027085678666 -0.108380054200 0.993740474099 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 877 3 1033 938 940 + 3 1849 1620 -1851 + -0.073042763992 0.061222921762 -0.328449716168 -0.942535165286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 878 4 494 1034 1035 487 + 4 1847 -1844 -1852 -785 + 0.138364078348 0.017107255101 -0.183636994357 0.982845255433 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 879 3 1036 1038 1037 + 3 1853 1854 1855 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 880 7 795 1038 1036 1039 895 899 799 + 7 1856 -1853 1857 1858 -1533 1859 -1341 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 881 7 1039 1036 1037 797 798 897 896 + 7 -1857 -1855 1860 -1345 1861 1547 1862 + -0.233731673133 -0.150049931809 0.054356515671 0.987183056565 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 882 4 1037 1038 795 797 + 4 -1854 -1856 1343 -1860 + 0.662448475838 0.360729649180 -0.469030056786 0.806154405827 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 883 3 1039 895 896 + 3 1858 -1546 1862 + 0.465031014332 0.327791645669 -0.385391962311 -0.862569227607 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 884 4 798 897 898 800 + 4 1861 1541 1863 1347 + 0.122727530552 0.104133056746 -0.250580123335 -0.962479043035 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 885 4 899 799 800 898 + 4 1859 1346 -1863 1551 + -0.174179649773 -0.016585562751 -0.754557761412 -0.656024011604 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 886 6 767 766 682 419 420 634 + 6 -1269 1864 -1125 669 1027 1865 + -0.301324337168 -0.265613626822 0.112904583841 -0.957445536934 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 887 5 681 682 766 708 707 + 5 -1121 -1864 -1268 1159 1866 + -0.319641706202 -0.409923139612 -0.546567626658 0.730223834930 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 888 5 767 634 632 1042 771 + 5 -1865 -1025 1867 1868 -1270 + -0.177522503548 -0.076057913493 0.116788229109 -0.990240225065 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 889 3 424 422 1040 + 3 -672 1869 1870 + -0.845977411196 -0.207107304758 -0.856918641790 -0.472013776990 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 890 6 770 442 424 1040 1041 772 + 6 1871 -673 -1870 1872 1873 1272 + 0.193103397414 -0.284224646237 0.536567343217 0.794551343001 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 891 5 439 418 681 707 710 + 5 675 -1130 -1866 1161 1874 + 0.326840743913 0.020504461577 0.077316410298 0.996795736224 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 892 6 1040 422 423 632 1042 1041 + 6 -1869 -671 -1010 1867 1875 -1872 + -0.068003986286 -0.075568769165 -0.314325530202 0.946302711710 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 893 5 770 442 439 710 709 + 5 1871 674 -1874 -1165 -1267 + -0.071800921443 0.287961761870 -0.886633126582 0.361883575958 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 894 4 771 772 1041 1042 + 4 1271 -1873 -1875 1868 + 0.030663598149 -0.069282825089 -0.168275321684 0.983302245629 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 895 6 169 164 1043 835 843 1048 + 6 -256 1876 1877 1424 1878 1879 + -0.982637264741 -0.533975194514 0.397874775949 0.746033614730 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 896 6 1047 1044 1046 836 842 1051 + 6 1880 1881 1882 -1426 1883 1884 + -0.166969943339 -0.210721637294 0.121024006057 0.970025557155 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 897 7 170 1049 1050 1047 1044 1052 166 + 7 1885 1886 1887 1880 1888 1889 259 + -0.020758839157 0.085804329035 -0.500403404506 0.861530063246 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 898 5 164 1043 1045 1053 167 + 5 1876 1890 1891 1892 251 + -0.332914554627 0.031612876056 -0.311245166413 -0.949803702063 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 899 5 1043 835 836 1046 1045 + 5 1877 -1423 -1882 1893 -1890 + -0.468793961711 -0.092908660880 -0.636016440273 0.766062052602 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 900 5 1045 1046 1044 1052 1053 + 5 -1893 -1881 1888 1894 -1891 + -1.467142819988 -0.530487859607 -0.154621071655 -0.833471628197 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 901 4 169 170 1049 1048 + 4 -260 1885 1895 1879 + 1.117142976454 0.195660458379 0.803610643758 -0.562073765858 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 902 3 1047 1051 1050 + 3 -1884 1896 1887 + 0.353195744535 -0.082254698713 0.360391312747 0.929167512473 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 903 6 843 1048 1049 1050 1051 842 + 6 1878 -1895 1886 -1896 -1883 -1425 + 0.685135953765 0.032267302954 0.417433742268 0.908134291818 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 904 4 1052 166 167 1053 + 4 1889 -258 -1892 -1894 + -0.418683996586 -0.059695212889 -0.124388009746 -0.990436320310 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 905 4 498 504 955 1054 + 4 -793 -1669 1897 1898 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 906 7 736 496 495 1047 1051 845 739 + 7 1899 -801 1900 -1884 1901 1437 -1212 + -0.690801021206 -0.008371264940 -0.507289117457 -0.861735268649 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 907 7 1054 498 499 1050 1051 845 844 + 7 1898 799 1902 -1896 1901 -1441 1903 + -2.538556678570 -0.788911679809 -0.563850813640 -0.244316641716 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 908 5 734 955 1054 844 738 + 5 1672 1897 -1903 -1439 1214 + -0.467865072025 -0.086629923086 0.042702332192 -0.995324955606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 909 4 503 496 736 737 + 4 -802 -1899 -1211 1673 + -1.011517360359 -0.210632258433 -0.407344667386 -0.888653123361 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 910 4 499 495 1047 1050 + 4 800 1900 -1887 -1902 + 0.250390429232 -0.028460049703 0.078808242397 0.996483460225 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 911 6 340 796 1037 1038 58 59 + 6 -1337 1904 -1854 1905 -83 -536 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 912 4 1038 795 61 58 + 4 -1856 -1340 -86 -1905 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 913 3 796 1037 797 + 3 1904 1860 1344 + 1.047491716511 0.602989764123 -0.582623640415 -0.544933975810 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 914 7 1019 1002 1006 640 241 245 519 + 7 1906 -1769 1907 -1028 -358 -819 -1808 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 915 6 242 297 635 1018 520 246 + 6 464 1034 1908 1813 835 375 + -0.150054819458 -0.079651573320 -0.234582949688 0.968827366760 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 916 4 638 635 1018 1004 + 4 -1036 1908 -1812 1775 + 0.566583742698 -0.189881487775 0.962321398903 0.194634390112 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 917 3 1019 1003 1002 + 3 1811 -1773 -1906 + -0.117542560867 0.079184378597 -0.152260390760 -0.985163239058 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 918 3 640 641 1006 + 3 -1038 1776 1907 + 0.176802735888 0.211016930958 -0.109136491435 0.971370722786 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 919 3 353 1055 354 + 3 1909 1910 -556 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 920 3 817 925 820 + 3 -1604 1911 1384 + 0.235542064568 0.064985269053 -0.246053806186 0.967075198352 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 921 7 353 1055 373 372 537 935 356 + 7 1909 1912 -592 858 -1613 1913 -567 + -0.001415089743 0.035098336182 0.445860484454 -0.894414073681 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 922 8 526 374 373 1055 354 357 559 558 + 8 857 -596 -1912 1910 -570 1914 -900 1915 + -0.667447588297 -0.119629029885 -0.232197665097 -0.965283968339 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 923 7 819 820 925 525 526 558 560 + 7 1390 -1911 -1610 -851 -1915 914 1916 + -0.169939437151 -0.180058282127 -0.134244868912 0.974452323209 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 924 5 357 358 819 560 559 + 5 -569 1389 -1916 904 -1914 + -0.891970382432 -0.141896329987 -0.989878959271 0.002253337063 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 925 5 935 356 355 824 936 + 5 1913 568 -1393 1917 1612 + -0.731374364861 -0.145540746461 -0.877377845676 -0.457193620949 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 926 3 823 824 936 + 3 1392 1917 -1611 + 0.572388446080 0.125241902215 0.291257599209 0.948411027368 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 927 9 1008 828 732 307 222 221 250 640 1006 + 9 1918 -1403 -1200 -485 -328 -360 -1029 -1907 -1772 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 928 4 828 830 868 1008 + 4 1408 -1477 1785 1918 + 0.035024558909 -0.058036647945 0.017421210262 0.998162436144 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 929 4 302 304 313 874 + 4 469 491 1919 1479 + -0.061274936630 0.091708202695 -0.268677469395 0.958854536933 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 930 3 312 874 313 + 3 1478 -1919 492 + -0.015902221853 -0.000416389085 -0.172341285348 0.985037211472 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 931 3 858 883 865 + 3 1920 -1512 -1462 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 932 6 859 633 634 767 768 862 + 6 1921 -1026 1865 -1275 1922 -1466 + -0.140024115002 -0.020012637870 0.117108624866 -0.992917450903 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 933 6 633 859 858 883 884 628 + 6 -1921 -1465 1920 1515 1923 -1021 + -0.687160622612 -0.018134792819 -0.996147551779 0.085797344799 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 934 5 867 862 768 464 460 + 5 -1467 -1922 1277 -738 1514 + 0.529460342476 0.094378845454 0.722317025320 0.685091781051 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 935 3 632 627 1042 + 3 -1009 1924 -1867 + -0.934880506015 -0.584806955372 -0.809877803427 0.045812317837 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 936 7 466 471 771 1042 627 626 886 + 7 746 1278 -1868 -1924 -1012 1925 1517 + -0.291741380423 -0.380008595986 -0.266309282885 0.885817606975 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 937 4 626 628 884 886 + 4 -1017 -1923 1516 -1925 + -0.209058620959 -0.140941904607 -0.386167986813 0.911597315423 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 938 4 567 569 1059 1056 + 4 -919 1926 1927 1928 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 939 6 909 1057 1056 567 578 910 + 6 1929 1930 1928 931 1931 1572 + -0.369851932528 -0.189208930433 -0.667818833006 0.719873590936 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 940 4 909 911 1058 1057 + 4 1563 1932 1933 -1929 + -0.103639774413 0.022047481186 -0.189821628462 -0.981571015231 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 941 6 1058 911 573 570 1060 1061 + 6 -1932 1579 929 1934 1935 1936 + 0.071742164857 0.072341355275 0.216773891020 -0.973537779693 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 942 5 570 569 1059 1062 1060 + 5 930 1926 1937 1938 -1934 + 0.385680367440 0.371797622688 0.682401437059 0.629360633074 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 943 6 1059 1056 1057 1058 1061 1062 + 6 1927 -1930 -1933 -1936 1939 -1937 + -0.130689540150 0.309691321649 -0.617300445333 0.723209129842 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 944 3 1060 1061 1062 + 3 1935 1939 1938 + -0.133077595716 -0.279701548069 -0.223148781917 0.933794230619 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 945 3 578 910 579 + 3 1931 -1580 -932 + 0.718841655511 0.692402998386 -0.021654445341 0.721185948853 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 946 4 256 230 235 654 + 4 -387 353 1940 -1057 + -0.006447809972 -0.189481972066 0.705701884945 0.682701568657 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 947 6 655 654 235 236 1064 1063 + 6 -1058 -1940 354 1941 1942 1943 + -0.020103062455 0.010453212015 -0.143272005761 0.989628143660 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 948 5 236 229 259 957 1064 + 5 -347 -390 1679 1944 -1941 + -1.066509350979 -0.142704386015 -0.937896865213 -0.316203934884 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 949 4 655 653 962 1063 + 4 1059 -1681 1945 1943 + -0.339630512070 -0.141137451986 0.011437499724 -0.989923938112 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 950 4 957 962 1063 1064 + 4 1680 1945 -1942 -1944 + 0.204294156094 0.421112191582 -0.886323453852 0.192601290892 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 951 7 679 863 860 976 705 704 691 + 7 1946 -1459 1947 -1707 -1144 1948 -1105 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 952 5 766 682 686 861 769 + 5 1864 -1120 -1470 1949 -1273 + -0.023180419658 -0.093636166239 -0.371905690864 0.923535827933 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 953 3 863 679 685 + 3 -1946 -1113 -1473 + 0.548461609370 -0.071541008178 0.580452999038 0.811144993239 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 954 7 976 860 861 769 403 402 978 + 7 -1947 -1472 1949 -1276 -655 1950 -1717 + -0.257949566256 -0.019118423369 -0.107178694678 -0.994055940727 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 955 3 681 707 689 + 3 -1866 1160 -1122 + -0.430963243726 -0.104612370109 -0.195656985419 -0.975076712919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 956 3 704 691 692 + 3 1948 -1124 -1149 + -0.227872410706 0.008721816603 0.114068557362 -0.993434594796 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 957 3 395 402 978 + 3 -649 1950 -1715 + 0.368362963558 0.006405716242 0.445399899854 0.895308827171 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 958 5 1002 1019 1027 1068 1007 + 5 -1906 -1807 1951 1952 -1770 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 959 4 980 1005 961 958 + 4 1777 1814 1685 -1718 + 0.021136772924 0.035156664193 0.086196731016 -0.995657638209 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 960 6 1066 1065 996 997 1009 1069 + 6 1953 1954 -1754 -1780 1955 1956 + -0.201739352652 -0.006664694839 -0.189949632916 -0.981771215099 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 961 6 963 988 996 1065 1063 962 + 6 -1738 1760 -1954 1957 -1945 -1692 + -0.247645649767 0.055727296179 -0.406615575155 -0.911898153579 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 962 6 1027 1028 1067 1066 1069 1068 + 6 1822 1958 1959 -1956 1960 -1951 + 0.457559917024 0.114984451023 0.333918536066 -0.935562390915 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 963 5 1063 1065 1066 1067 1064 + 5 -1957 -1953 -1959 1961 1942 + 0.109411645047 0.170959689743 -0.232290242250 -0.957504061526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 964 5 1028 960 957 1064 1067 + 5 1823 1688 1944 -1961 -1958 + 1.702861787939 0.725338033682 0.150778932789 0.671677340932 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 965 4 1068 1007 1009 1069 + 4 1952 1779 1955 1960 + 0.071486834201 0.191516638185 -0.223496417569 0.955704310251 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 966 6 1075 1070 1015 602 617 1077 + 6 1962 1963 -1794 -974 1964 1965 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 967 5 1070 1071 1072 1016 1015 + 5 1966 1967 1968 -1797 -1963 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 968 5 1073 1071 1070 1075 1076 + 5 1969 -1966 -1962 1970 1971 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 969 7 1072 1016 614 613 1074 905 903 + 7 1968 1806 994 1972 1973 -1555 1974 + -0.167720999343 -0.118549791878 0.056979372099 -0.991311907525 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 970 7 1073 1076 619 615 1074 905 904 + 7 -1971 1975 -995 1976 1973 1557 1977 + 0.010635150053 -0.014591317205 0.460765774189 -0.887401822625 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 971 5 1073 1071 1072 903 904 + 5 1969 1967 -1974 1549 1977 + -0.090352678138 -0.141666255785 -0.080375694089 0.986646045840 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 972 3 615 1074 613 + 3 1976 -1972 -993 + -0.140979474986 -0.051475668426 -0.107046067578 -0.992920638811 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 973 5 619 1076 1075 1077 620 + 5 -1975 -1970 -1965 1978 -996 + 0.005360089179 -0.109466311840 0.491970885798 -0.863702364301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 974 3 617 1077 620 + 3 1964 1978 997 + -0.092043381774 0.233470282944 -0.950277104489 0.206070501689 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 975 6 497 1078 1079 747 752 512 + 6 1979 1980 1981 -1237 -1809 -796 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 976 7 507 497 1078 1080 171 172 1025 + 7 813 1979 1982 1983 -262 1984 -1831 + 0.327803983317 0.013020302531 0.499648712393 -0.866130264987 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 977 5 747 185 171 1080 1079 + 5 1241 -270 -1983 1985 1981 + -0.945134761512 -0.294301105750 0.035905911659 -0.955038022627 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 978 3 1078 1079 1080 + 3 1980 -1985 -1982 + -0.355249694736 -0.042964138584 -0.010785510100 -0.999018396011 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 979 5 172 1025 964 965 178 + 5 1984 1830 1677 1986 269 + -0.767097567298 -0.052784350566 -0.617346605048 -0.784918455364 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 980 5 966 749 186 178 965 + 5 1832 -1238 -272 -1986 1689 + -0.208031859774 0.027592459151 -0.154800938488 -0.987560289623 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 981 4 1084 1012 676 674 + 4 1987 -1796 -1093 1988 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 982 5 1014 754 542 544 678 + 5 1989 -1244 -873 -1099 -1800 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 983 6 604 603 1013 1081 1083 1082 + 6 978 -1802 1990 1991 1992 1993 + -0.123933423092 -0.034463222469 0.299836438610 -0.953367922881 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 984 8 753 754 1014 605 604 1082 1088 1089 + 8 1251 -1989 -1803 989 -1993 1994 1995 1996 + -0.054731848341 0.123209605669 0.066617575473 -0.990142157323 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 985 8 1086 1087 1083 1081 1085 553 409 412 + 8 1997 1998 -1991 1999 2000 887 651 2001 + 0.210768433804 -0.110043488331 0.718914627467 0.686332418796 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 986 5 1012 1013 1081 1085 1084 + 5 1801 1990 1999 2002 1987 + 0.051217336493 0.304850039865 -0.764060785135 0.568575034461 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 987 4 1082 1083 1087 1088 + 4 -1992 -1998 2003 -1994 + 0.025178940666 0.098219728676 0.487788424148 -0.867418779003 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 988 6 1086 1089 753 551 411 412 + 6 2004 1996 -1250 -888 -666 2001 + -0.629531061863 -0.542547018217 -0.710192210114 -0.448630981674 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 989 6 1084 1085 553 546 675 674 + 6 -2002 2000 -886 2005 1103 1988 + -0.208674077443 0.053285542109 -0.179977194435 -0.982226481258 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 990 4 1086 1087 1088 1089 + 4 1997 2003 1995 -2004 + -0.440320613912 -0.390409601006 -0.900235638366 0.192759276970 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 991 3 546 545 675 + 3 -881 1101 -2005 + -0.200142232471 0.023513300016 0.085736020607 -0.996040390493 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 992 6 284 285 1090 1091 1084 674 + 6 -442 2006 2007 2008 -1988 -1092 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 993 5 285 286 973 975 1090 + 5 -449 2009 1711 2010 -2006 + 0.254150502261 -0.255892146934 0.292201234175 0.921486650953 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 994 6 393 973 286 288 547 407 + 6 -1713 -2009 -451 2011 -890 -642 + 0.267811270491 0.069161328373 -0.055301534588 0.996071508944 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 995 7 1091 1090 975 394 408 553 1085 + 7 -2007 -2010 -1714 -644 -889 -2000 2012 + -0.175765995996 0.014844021112 0.135378439647 -0.990682761087 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 996 5 547 288 287 675 546 + 5 -2011 -450 -1102 -2005 882 + 0.122254553860 0.051899103253 -0.672770959350 0.738028264592 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 997 3 1091 1084 1085 + 3 2008 -2002 2012 + 0.195781828161 0.025590412836 -0.023290687611 0.999401158015 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 998 7 691 704 703 390 389 1092 690 + 7 -1948 -1143 -1706 -616 2013 2014 -1106 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 999 6 389 392 702 1010 1011 1092 + 6 -618 -1146 2015 -1787 2016 -2013 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1000 4 702 1010 694 693 + 4 2015 -1790 -1138 1150 + -0.580267252927 -0.471413465230 -0.879481035220 0.065440457581 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1001 4 1092 690 695 1011 + 4 2014 1114 -1792 2016 + 0.001077258681 0.027962415103 -0.474205499289 0.879970026640 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1002 10 1093 1097 1098 1094 801 346 345 1095 759 758 + 10 2017 2018 2019 2020 -1338 -534 2021 2022 -1246 2023 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1003 6 1093 808 809 901 1096 1097 + 6 2024 1371 1554 2025 2026 -2017 + -1.012330480239 -0.811634465501 0.180268088224 -0.555655388509 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1004 4 1093 808 761 758 + 4 2024 -1360 -1257 2023 + 0.103679610343 0.200470813372 -0.341656832980 -0.918195001873 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1005 7 901 1096 1098 1094 802 803 881 + 7 2025 2027 2019 2028 -1352 1508 1543 + 0.039161272745 -0.010137403462 -0.188996223896 0.981925486177 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1006 3 1094 801 802 + 3 2020 -1349 -2028 + 0.016804992126 -0.026580980518 -0.059117352124 0.997897083948 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1007 5 1095 33 32 760 759 + 5 2029 62 1374 1263 -2022 + 0.245030939526 0.065300183076 0.046678485005 0.996773296757 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1008 5 1095 33 40 348 345 + 5 2029 -61 -1500 -554 2021 + -0.317624834918 -0.105249921770 -0.201531243086 -0.973810870769 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1009 3 1096 1097 1098 + 3 2026 2018 -2027 + 0.106654692360 0.042011260200 -0.081740359435 0.995767828189 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1010 5 119 448 450 788 127 + 5 2030 -708 -1313 2031 -174 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1011 6 119 120 1099 1100 447 448 + 6 190 2032 2033 2034 726 -2030 + 0.247627050851 0.105837565313 -0.986269548138 0.126770612462 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1012 4 120 117 785 1099 + 4 185 1322 2035 -2032 + -0.007814283279 -0.123530904453 0.049127821287 0.991123893779 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1013 4 1099 785 784 1100 + 4 -2035 1323 2036 -2033 + -1.288756502577 -0.673536880799 0.268269564333 0.688752140509 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1014 4 784 1100 447 449 + 4 2036 2034 719 -1324 + 0.296938784338 0.022085030650 0.076706918958 0.996809058950 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1015 3 788 127 131 + 3 2031 -192 -1321 + -0.405401220273 -0.065682250951 -0.983617751106 0.167874839147 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1016 7 1072 1071 1102 1103 1101 1098 1097 + 7 -1967 2037 2038 2039 2040 -2018 2041 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1017 7 893 1104 1102 1071 1073 572 575 + 7 2042 2043 -2037 -1969 2044 -916 -1535 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1018 5 1101 894 893 1104 1103 + 5 2045 -1544 2042 2046 2039 + -0.749757573776 -0.558144521786 -0.507038761673 -0.656800111876 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1019 5 902 894 1101 1098 1096 + 5 1538 -2045 2040 -2027 2047 + -0.288508215353 -0.185716857900 -0.227130465858 -0.955992154869 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1020 3 1102 1103 1104 + 3 2038 -2046 2043 + -1.133222977553 -0.847023205492 0.310527036996 -0.431421659925 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1021 4 1073 904 576 572 + 4 -1977 1550 924 -2044 + -0.193453985093 -0.364790668624 0.715165240122 0.596210069863 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1022 5 1072 903 902 1096 1097 + 5 -1974 -1548 -2047 2026 2041 + -0.026029619359 0.024750589375 0.070442579609 -0.997208730058 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1023 6 1018 635 636 1105 1106 1022 + 6 -1908 1035 2048 2049 2050 1818 + 0.094162528905 -0.151246316209 0.178611297801 0.972225568544 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1024 5 982 637 636 1105 983 + 5 1782 -1031 2048 2051 1722 + 0.245335031518 0.359996129059 -0.061001143955 -0.930957382214 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1025 6 1106 1105 983 979 1108 1109 + 6 -2049 2051 -1721 2052 2053 2054 + -0.186302866865 -0.116269248478 -0.251170219803 0.960934431968 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1026 4 1022 1106 1109 1021 + 4 -2050 -2054 2055 1817 + -0.032033678330 -0.095430457813 -0.094807885091 0.990910940825 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1027 4 979 981 1107 1108 + 4 -1720 2056 2057 -2052 + -0.122546695282 0.044437068950 -0.484074984303 0.873897451922 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1028 5 981 956 959 1020 1107 + 5 -1719 1675 1815 2058 -2056 + 0.474688991777 0.340681677547 -0.353885571903 0.871034440526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1029 5 1021 1020 1107 1108 1109 + 5 -1816 2058 2057 2053 2055 + -0.250049338717 -0.055168844741 0.015766394719 -0.998352552642 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1030 5 209 216 1110 1111 717 + 5 -313 2059 2060 2061 -1168 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1031 7 9 11 215 210 713 990 989 + 7 -27 2062 321 -1173 1758 -1748 2063 + 0.794579104947 0.254374538630 0.617375720083 0.744406350288 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1032 5 14 5 1110 1111 913 + 5 -19 2064 2060 2065 -1581 + 0.360546157321 0.029930669482 0.735640140528 -0.676710971293 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1033 5 216 1110 5 11 215 + 5 2059 -2064 -18 2062 324 + -0.402490315634 -0.428688085903 0.712388230547 -0.555634352774 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1034 3 715 716 915 + 3 -1171 1575 1759 + -0.086674790789 -0.182534402268 0.132441171379 0.974238434939 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1035 3 9 989 17 + 3 -2063 1744 15 + 0.157849768981 0.114807918058 -0.171451334510 0.978480240907 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1036 4 717 720 913 1111 + 4 1174 1574 -2065 2061 + 0.894398911471 0.475059204276 0.835011336883 -0.277623521535 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1037 5 729 234 231 1115 725 + 5 2066 -343 2067 2068 -1185 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1038 3 1112 730 724 + 3 2069 -1188 2070 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1039 9 648 649 1113 1114 1112 724 723 1116 1032 + 9 -1063 2071 2072 2073 -2070 1195 2074 2075 1842 + -0.487964507136 -0.048604357559 -0.685665524152 -0.726292231417 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1040 3 649 1113 650 + 3 2071 2076 1052 + 1.104903258438 0.334483349685 0.590053117604 0.734818485879 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1041 5 231 232 255 1031 1115 + 5 -355 -391 -1839 2077 -2067 + 0.183045796952 0.023252276331 0.035356960671 0.999104207266 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1042 8 234 235 654 657 1114 1112 730 729 + 8 356 1940 1065 2078 2073 2069 1197 2066 + -0.021029166977 0.078325290848 -0.412555219180 0.907559000804 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1043 3 723 1116 727 + 3 2074 2079 1194 + 0.304068966591 -0.042459913359 0.998619124699 0.030935409196 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1044 4 657 650 1113 1114 + 4 1066 -2076 2072 -2078 + 0.565727829853 0.173416925861 0.253765868589 0.951593113554 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1045 6 1115 725 727 1116 1032 1031 + 6 2068 1196 -2079 2075 -1841 2077 + -0.180977327993 -0.078398051468 0.280494381667 -0.956648654094 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1046 7 1119 1118 1117 111 103 763 762 + 7 2080 2081 2082 -149 2083 -1248 2084 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1047 7 785 786 664 114 111 1117 1099 + 7 1331 2085 -1086 -170 -2082 2086 -2035 + 0.688583635951 0.197061815526 -0.078591223296 0.977235928772 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1048 4 664 669 776 786 + 4 -1085 -1294 -1332 2085 + -0.521532091816 -0.090842364078 -0.281204073786 -0.955338648739 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1049 3 668 108 104 + 3 1295 165 -1081 + 0.277390240815 -0.035167511799 0.238899977699 0.970407155151 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1050 4 1117 1099 1100 1118 + 4 2086 2033 2087 2081 + -1.023994757628 -0.521490260560 0.755288128988 0.396973236316 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1051 4 109 103 763 764 + 4 160 2083 1261 -1296 + 0.567531607789 0.524866553667 0.255027966839 -0.812081176344 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1052 5 1118 1100 784 792 1119 + 5 -2087 -2036 1327 2088 2080 + 0.077800452320 -0.078294897594 0.107600165540 0.991106509608 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1053 5 1119 792 782 765 762 + 5 -2088 -1333 -1297 -1264 2084 + 0.256146131711 0.009384540986 0.102045899959 0.994735424468 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1054 6 1013 611 200 199 951 1081 + 6 -1804 980 304 1662 2089 -1990 + -0.141999909593 0.259892472023 -0.315926495152 -0.912494576777 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1055 3 604 1082 607 + 3 -1993 2090 977 + -0.103422488140 -0.416516334506 0.434518932156 0.798565864965 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1056 5 606 607 1082 1083 950 + 5 976 -2090 -1992 2091 1658 + -0.300667659265 -0.330678120576 -0.758780668675 0.561162968680 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1057 4 950 951 1081 1083 + 4 -1663 2089 1991 2091 + 0.195889602946 -0.041875208427 0.228081658106 0.972741087934 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1058 7 1111 582 567 1056 1121 718 717 + 7 2092 -920 -1928 2093 2094 -1169 -2061 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1059 4 909 1057 1120 908 + 4 1929 2095 2096 1562 + -0.062943710308 0.038533787094 -0.116184233683 -0.992479909669 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1060 4 1056 1057 1120 1121 + 4 -1930 2095 2097 -2093 + 0.085338707544 -0.389321041362 0.592557632677 -0.705198254896 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1061 5 910 578 582 1111 913 + 5 -1931 -939 -2092 2065 1571 + 0.560968336313 0.576686701262 -0.164651010454 0.800201532955 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1062 5 1121 1120 908 719 718 + 5 -2097 2096 1573 -1178 -2094 + 0.292987862902 0.016960043648 0.490275527600 0.871402469561 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1063 4 1122 1123 1125 1124 + 4 2098 2099 2100 2101 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1064 5 954 1122 1124 1054 955 + 5 2102 -2101 2103 -1897 -1668 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1065 6 1123 1122 954 733 565 566 + 6 -2098 -2102 -1671 -1203 -896 2104 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1066 6 741 841 1125 1123 566 564 + 6 1422 2105 -2099 -2104 -915 -1216 + -0.288497840924 0.228231474321 -0.916067114908 -0.329744499747 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1067 5 1054 1124 1125 841 844 + 5 -2103 -2100 -2105 -1440 1903 + -0.077090222771 0.036822454362 0.134515366002 -0.990227106862 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1068 7 487 477 593 541 535 1126 1035 + 7 -768 954 -1318 -865 2106 2107 -1852 + -0.808691765787 -0.494777415949 0.868057747883 -0.040878539676 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1069 6 156 923 527 535 1126 157 + 6 1644 -1607 -850 2106 2108 -242 + 0.647676274668 0.097105279298 0.478434060670 0.872737884088 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1070 5 475 591 155 154 486 + 5 -953 1643 236 1850 763 + -0.440184703823 -0.112939385467 -0.037815150551 -0.992882021994 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1071 4 598 599 778 934 + 4 -957 -1290 2109 -1608 + -0.108742190806 -0.156365010304 -0.208561334378 0.965428481740 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1072 4 1126 157 153 1035 + 4 2108 -232 1843 -2107 + -0.402130019287 -0.135095004013 -0.483834353335 0.864669681684 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1073 5 536 934 778 779 538 + 5 -1609 -2109 -1307 2110 864 + 0.155985639235 -0.060825522390 -0.000662651611 0.998148193766 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1074 4 540 538 779 777 + 4 867 -2110 1303 1325 + 0.193578520984 0.002315572503 -0.228286251142 0.973591303198 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1075 4 643 4 6 644 + 4 2111 12 2112 -1044 + -0.055833981252 -0.018462060978 0.148049022586 -0.988807685658 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1076 5 2 4 643 651 1127 + 5 -1 -2111 -1043 2113 2114 + 0.023917253857 -0.041873868448 0.101628923297 0.993940713066 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1077 4 644 6 16 658 + 4 -2112 13 -1734 -1045 + -0.108543669242 0.013993448916 -0.082905638800 -0.996459150413 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1078 3 2 10 1127 + 3 -11 2115 2114 + -0.056511123353 0.004408309548 -0.030751841908 -0.999517329027 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1079 6 651 1127 10 9 989 659 + 6 2113 -2115 -10 -2063 -1743 1047 + 0.098485585949 -0.045434753414 0.428682438351 -0.902312058122 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1080 9 774 775 1087 1088 807 810 918 995 1128 + 9 -1287 2116 2003 2117 1365 -1583 1750 2118 2119 + 0.231445654523 0.108441767643 -0.083123156683 0.990621483642 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1081 6 807 1088 1082 607 608 812 + 6 -2117 -1994 2090 990 2120 1357 + -0.177777899377 0.039909121063 -0.989479712542 -0.139058119232 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1082 6 812 608 609 943 583 590 + 6 -2120 -998 1659 1639 -938 -1369 + -0.126317926489 -0.068105857336 0.046098005958 -0.996612545598 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1083 6 952 950 1083 1087 775 773 + 6 1661 -2091 -1998 -2116 -1285 2121 + 0.084367942014 -0.128141568192 -0.015706865948 0.991631500540 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1084 4 952 462 465 773 + 4 -1660 -740 -1284 2121 + -0.186324048768 0.210053223712 -0.452717957642 -0.866558765484 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1085 6 992 1128 774 472 473 993 + 6 2122 2119 -1281 750 2123 1749 + -0.307051097092 -0.048590395532 -0.240780573776 -0.969362516685 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1086 3 995 1128 992 + 3 2118 -2122 -1729 + -0.610172935540 -0.193546727357 -0.619878899229 -0.760453689990 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1087 4 470 944 993 473 + 4 1640 1732 -2123 751 + -0.516176856830 -0.050245108478 -0.792515020938 -0.607779047568 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1088 6 829 828 1008 1007 1068 1130 + 6 -1404 -1918 -1771 -1952 2124 2125 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1089 7 998 999 1129 833 829 1130 1131 + 7 -1752 2126 2127 -1406 -2125 2128 2129 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1090 5 998 1000 1009 1069 1131 + 5 1756 -1784 1955 2130 2129 + 0.270391866684 -0.416061836431 0.907973671813 -0.049763034061 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1091 4 999 871 870 1129 + 4 1762 -1481 2131 -2126 + -0.449036216427 0.013206179096 -0.646161547353 0.763086398488 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1092 4 832 870 1129 833 + 4 1480 2131 2127 1412 + 0.695764744159 0.213114934712 0.815988051740 -0.537350466661 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1093 4 1130 1068 1069 1131 + 4 -2124 -1960 2130 -2128 + 1.428371090400 0.884715781058 0.207281311252 0.417507418799 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1094 6 858 864 1001 311 318 883 + 6 -1461 2132 -1766 -482 -1513 -1920 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1095 8 884 628 299 303 313 874 337 338 + 8 1923 -1016 -471 497 1919 1490 -531 1520 + 0.058783144886 -0.150754716419 -0.008248587677 0.988536785496 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1096 5 859 633 431 432 697 + 5 1921 -1020 -686 -1127 1471 + -0.142893785742 0.010111667071 -0.479484940153 0.877491849737 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1097 3 436 435 630 + 3 -683 2133 1019 + -0.239546666352 -0.127457220786 0.082492244345 -0.988407651980 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1098 6 240 630 435 434 854 254 + 6 1018 -2133 705 2134 1452 -379 + -0.486314353281 -0.111459774780 -0.247779634821 -0.962383484467 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1099 7 1001 864 696 433 434 854 855 + 7 -2132 -1474 -1111 -703 2134 -1455 1768 + 0.148838052754 -0.046609714886 -0.089934473367 0.994856434355 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1100 7 43 27 806 1089 1086 413 410 + 7 45 1364 2135 -2004 2136 -662 2137 + -0.066442516238 -0.040302025016 0.551185927692 -0.833408555208 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1101 4 755 806 1089 753 + 4 -1359 2135 1996 1252 + 0.250771763950 0.072226271444 0.174493058306 0.982005874889 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1102 3 30 757 35 + 3 1254 1309 -42 + -0.590958384475 -0.456670746844 0.886510072755 -0.074509864320 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1103 5 410 43 42 781 416 + 5 2137 -44 1299 2138 -659 + -0.297416361682 -0.004669498522 -0.326050133350 -0.945340947133 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1104 3 1086 413 412 + 3 2136 -652 2001 + 0.202727287893 0.602037693964 -0.476163143532 -0.640951851380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1105 5 756 552 415 416 781 + 5 1256 -892 -667 -2138 -1308 + -0.210792851633 0.013079061935 0.078438079031 -0.996833188601 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1106 9 1134 1041 1042 627 622 1132 1106 1109 1135 + 9 2139 -1875 -1924 -1008 2140 2141 -2054 2142 2143 + -0.284773886248 0.045267132493 -0.231340398521 -0.971819173884 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1107 7 625 623 1132 1106 1022 1023 1136 + 7 1006 2144 2141 2050 1819 2145 2146 + -0.182083252766 -0.017451931085 -0.417216675787 0.908639464005 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1108 3 623 622 1132 + 3 1007 2140 -2144 + 0.069399143495 0.032254443958 -0.164923831590 0.985778768598 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1109 6 625 624 1133 1134 1135 1136 + 6 -1005 2147 2148 -2143 2149 2146 + 0.301464310968 0.057923632222 0.037775046477 0.997606083930 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1110 5 422 421 624 1133 1040 + 5 -676 1004 2147 2150 -1869 + -0.237480830080 -0.006226061772 -0.024302265447 -0.999685268497 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1111 4 1133 1134 1041 1040 + 4 2148 2139 -1872 -2150 + 0.183630570478 -0.055169087629 0.663766484461 -0.745902423831 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1112 5 1109 1135 1136 1023 1021 + 5 2142 2149 -2145 -1825 -2055 + -0.718628491134 -0.310705416793 -0.121417138338 -0.942719482398 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1113 5 1014 1017 1093 758 754 + 5 -1799 2151 -2023 -1245 -1989 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1114 7 613 612 1017 1093 808 814 1074 + 7 988 1805 2151 2024 1361 2152 -1972 + 0.107313475897 -0.022386904555 0.279515880359 0.959880044137 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1115 4 1088 807 806 1089 + 4 2117 1358 2135 -1995 + -0.282381422214 -0.074321234107 -0.394327437155 -0.915959729719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1116 4 812 608 616 815 + 4 -2120 991 2153 1363 + 0.079426884302 0.077663013609 -0.299556801236 0.950912287832 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1117 5 814 815 616 615 1074 + 5 1362 -2153 992 1976 -2152 + 0.091801013028 0.040203911442 -0.094094266961 0.994751182171 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1118 4 1138 1139 1075 1077 + 4 2154 2155 -1965 2156 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1119 6 1139 1059 569 568 1076 1075 + 6 2157 -1926 -918 2158 -1970 -2155 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1120 7 1137 1060 1062 1138 1077 620 621 + 7 2159 -1938 2160 -2156 1978 1003 2161 + 0.069782842727 -0.047985048818 0.132841239423 0.989975070493 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1121 6 1137 571 568 1076 619 621 + 6 2162 -925 2158 1975 -1002 2161 + -0.008378428686 -0.346601381164 0.547906687548 -0.761357829351 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1122 4 571 1137 1060 570 + 4 -2162 2159 -1934 936 + -0.084994175189 -0.079440713452 -0.079960139564 -0.993627469994 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1123 4 1138 1139 1059 1062 + 4 2154 2157 1937 2160 + -0.374791192980 0.002393483458 -0.985414382201 0.170155125074 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1124 4 1101 1140 1094 1098 + 4 2163 2164 -2019 -2040 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1125 4 892 1140 1101 894 + 4 2165 -2163 2045 1539 + -0.142481099889 -0.070390797059 -0.135670084924 -0.988250354792 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1126 6 798 897 892 1140 1094 802 + 6 1861 -1540 2165 2164 2028 -1348 + -0.056060905761 -0.075551522366 0.359624292187 0.930033513341 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1127 4 800 898 882 804 + 4 -1863 1542 -1506 -1350 + 0.489330222184 0.188182059854 0.921760007037 -0.339036873771 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1128 3 902 901 1096 + 3 -1537 2025 2047 + 0.073610233572 0.103070190789 0.179951375217 -0.978260721039 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1129 8 968 971 1141 1110 216 214 1142 1143 + 8 -1696 2166 2167 -2059 -312 2168 2169 2170 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1130 8 652 1127 2 1 972 969 1113 650 + 8 2171 2114 2 2172 1703 2173 2076 -1055 + 0.085635970746 0.029454703620 -0.033434355902 0.999006788906 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1131 5 1 972 971 1141 3 + 5 2172 1704 2166 2174 -6 + 0.679925183013 0.173438977972 0.972287269217 -0.156768577969 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1132 5 968 969 1113 1114 1143 + 5 -1699 2173 2072 2175 2170 + -0.526555752924 -0.241741094097 0.135158477883 -0.960881589626 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1133 8 652 1127 10 11 215 214 1142 656 + 8 2171 -2115 17 2062 -320 2168 2176 -1068 + -0.328640751171 0.106025456121 -0.977548209678 -0.182093658348 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1134 4 1141 1110 5 3 + 4 2167 -2064 16 -2174 + 1.206824615647 0.600357478649 0.521747374810 -0.606094526216 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1135 5 1142 1143 1114 657 656 + 5 2169 -2175 -2078 -1069 -2176 + -0.823330083215 -0.121806434161 -0.990254719994 0.067518753893 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1136 6 1144 1124 1125 840 839 1145 + 6 2177 -2100 2178 -1413 2179 2180 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1137 7 500 498 1054 1124 1144 1079 1078 + 7 -794 -1898 -2103 -2177 2181 -1980 2182 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1138 6 1144 1079 1080 1049 1048 1145 + 6 2181 -1985 2183 1895 2184 2180 + 0.127988653421 -0.051994686815 0.028102112001 0.998251883967 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1139 3 1125 840 841 + 3 2178 -1421 2105 + 0.013903703937 -0.035587653559 0.430112518728 -0.902073578012 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1140 6 1049 1050 499 500 1078 1080 + 6 1886 -1902 -809 -2182 1982 2183 + -0.507199041332 -0.054833515560 -0.135088729269 -0.989315076604 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1141 3 1051 845 842 + 3 1901 -1436 1883 + 1.143118697353 0.174407298746 0.564073371113 0.807095611527 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1142 4 839 1145 1048 843 + 4 2179 -2184 -1878 -1427 + 0.477701536770 -0.042217107433 0.423289665698 0.905010262236 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1143 6 296 298 623 1132 1105 636 + 6 465 1013 2144 2185 -2048 -1030 + 0.497926015063 0.113642962282 0.306880727833 0.944938884801 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1144 3 1132 1106 1105 + 3 2141 -2049 -2185 + 0.620612496683 -0.023931956408 0.937866052540 -0.346171242243 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1145 6 515 513 629 625 1136 1026 + 6 -831 2186 -1014 -2146 2187 1821 + 0.135771374423 0.032380375793 -0.124544031024 0.991685583035 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1146 4 239 629 513 247 + 4 -1015 -2186 -824 -373 + 0.283033282340 -0.015111968228 0.115260174273 0.993220378689 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1147 3 1136 1023 1026 + 3 -2145 1820 -2187 + 0.330622913169 0.171950721925 -0.127061329236 0.976876843743 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1148 9 818 1150 1149 931 926 945 438 437 825 + 9 2188 2189 2190 -1601 1645 2191 -704 2192 1388 + 0.000189885862 -0.060381986193 0.502904512744 -0.862230286412 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1149 7 1146 75 80 426 428 1152 1151 + 7 2193 133 2194 695 2195 2196 2197 + 0.139134904706 0.184262961045 -0.470558198803 0.862914910478 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1150 8 1146 1147 1148 1149 931 928 948 1151 + 8 2198 2199 2200 2190 -1616 -1653 2201 2197 + 0.158280698779 0.101054881942 0.299701120746 -0.948665983926 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1151 4 426 80 79 427 + 4 -2194 134 2202 -679 + 0.297026650565 0.425845869492 -0.599386493741 0.677783982223 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1152 4 1146 1147 72 75 + 4 2198 2203 -127 -2193 + -0.913490700899 -0.096891833350 -0.993696412452 -0.056386279444 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1153 6 818 71 72 1147 1148 1150 + 6 1394 -119 -2203 2199 2204 -2188 + -0.667828198622 -0.142632265970 -0.221858088278 -0.964590599876 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1154 5 428 438 945 946 1152 + 5 699 -2191 1651 2205 -2195 + 0.610362535013 0.101477035171 0.481643926805 0.870472020863 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1155 3 1148 1149 1150 + 3 2200 -2189 -2204 + -1.072528522482 -0.726221887289 0.624521324312 -0.287358462382 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1156 4 948 1151 1152 946 + 4 2201 -2196 -2205 1652 + 0.264876304684 -0.012907714778 0.125706406808 0.991983513062 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1157 5 78 825 437 427 79 + 5 1395 -2192 -689 -2202 135 + -0.006416912706 0.188088070996 0.073072207854 -0.979430104698 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1158 6 163 168 1145 839 847 1154 + 6 -244 2206 -2179 -1417 2207 2208 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1159 6 1153 1043 164 163 1154 1155 + 6 2209 -1876 252 -2208 2210 2211 + -0.576457072728 -0.066857859281 -0.283726170449 -0.956571736387 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1160 4 168 169 1048 1145 + 4 -257 -1879 2184 -2206 + 0.822306287604 0.029160477412 0.942171392576 -0.333860350400 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1161 4 835 1043 1153 838 + 4 -1877 -2209 2212 -1428 + -0.636856520461 -0.200731471016 -0.483791599459 0.851852431374 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1162 4 838 1153 1155 848 + 4 -2212 -2211 2213 -1429 + -0.825324442966 -0.206713171145 -0.700266561582 0.683298183522 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1163 4 1154 847 848 1155 + 4 -2207 -1430 -2213 -2210 + -0.236804125650 -0.024904488794 -0.608225020648 0.793373865650 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1164 9 15 6 644 645 941 875 50 49 920 + 9 -23 2112 -1048 1834 -1625 -1496 75 2214 -1592 + -0.140099376452 0.034994546739 -0.232845924309 -0.971883818793 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1165 5 643 4 8 877 646 + 5 2111 -5 -1498 2215 -1049 + 0.038118433919 -0.015742901088 -0.007092843422 0.999850915206 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1166 5 647 646 877 876 939 + 5 -1050 -2215 -1497 -1624 1840 + -0.237140095699 -0.147213769788 0.056469223248 0.987491434297 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1167 5 49 920 24 25 48 + 5 2214 -1590 25 1499 51 + -0.191485821367 -0.145139870127 -0.256166736112 0.955674118834 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1168 6 680 683 361 76 95 856 + 6 -1110 -1789 -558 -113 -1449 2216 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1169 4 706 367 366 711 + 4 -1791 -575 2217 -1152 + -0.001358451694 0.073189073123 0.414590927542 -0.907059933177 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1170 6 91 79 427 417 699 857 + 6 -140 2202 680 1131 1457 2218 + -0.079474917320 0.048656565823 0.209928718313 -0.976505233898 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1171 3 680 856 698 + 3 -2216 -1456 -1116 + -0.186012116570 -0.279752821123 0.295463289301 -0.913476766946 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1172 4 437 825 826 440 + 4 2192 -1387 2219 -690 + -0.007832492426 0.243504758206 -0.039103143732 -0.969111127210 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1173 7 366 711 710 439 440 826 360 + 7 2217 -1162 1874 -691 -2219 1399 574 + -0.367162449563 0.078699323493 -0.389358934475 -0.917717841510 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1174 3 91 857 96 + 3 -2218 -1453 -141 + 0.138362745855 0.025763848138 0.466042210071 -0.884387292175 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1175 4 1076 568 572 1073 + 4 -2158 -917 -2044 -1971 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1176 6 616 618 1137 571 589 815 + 6 -1000 2220 2162 926 -1381 -2153 + -0.103627449464 0.038213350323 -0.319086267945 -0.946954958520 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1177 3 1137 621 618 + 3 -2161 -1001 2220 + 0.083378734265 -0.226703930983 0.429751190812 0.874024737449 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1178 5 1074 905 585 588 814 + 5 1973 1556 -928 1373 2152 + 0.079860685266 0.067835757570 -0.266331005529 0.961491604482 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1179 7 742 726 725 1115 1156 458 457 + 7 2221 -1181 -2068 2222 2223 -712 -1220 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1180 6 744 937 1030 1156 458 456 + 6 -1629 -1846 2224 2223 -730 -1229 + -0.009949839082 0.044318072523 0.011478291260 -0.998951528993 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1181 4 1156 1030 1031 1115 + 4 -2224 1838 2077 2222 + -0.090593661642 0.127646026782 -0.809731104017 -0.572749536041 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1182 7 726 727 1116 1033 938 743 742 + 7 1193 -2079 2225 1849 -1622 -1228 2221 + 0.319364969818 0.060668793931 0.160535794510 0.985163720467 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1183 3 1033 1116 1032 + 3 -2225 2075 1848 + 0.288876122797 0.078521863377 -0.034771871036 0.996305793397 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1184 10 263 262 780 600 601 936 824 359 365 712 + 10 413 2226 -1291 -970 -1618 -1917 -1398 577 2227 1166 + 0.258334991921 0.066939249612 -0.231698131032 0.970481897274 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1185 9 356 935 934 778 671 666 265 276 364 + 9 -1913 1619 -2109 -1289 -1088 2228 415 2229 572 + -0.503775926298 -0.074859628646 -0.283160762092 -0.956146442137 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1186 5 265 666 667 107 105 + 5 -2228 1079 -1288 -163 414 + -0.402956386401 -0.094067534775 0.159755707206 -0.982664445737 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1187 4 262 780 110 106 + 4 2226 1292 -158 409 + -0.148689874729 -0.147101525288 -0.750192210387 0.644649353317 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1188 5 276 275 712 365 364 + 5 416 -1154 -2227 578 -2229 + -0.248608085848 0.183159315403 -0.391853241242 -0.901611724918 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1189 5 1157 735 740 837 1158 + 5 2230 -1210 1435 2231 2232 + -0.025072051297 0.048682077437 0.183062246520 -0.981895243514 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1190 6 1044 502 501 1157 1158 1046 + 6 2233 -814 2234 -2232 2235 -1881 + 0.567272150111 0.111828674557 0.145792626478 0.982974494894 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1191 5 1157 501 496 736 735 + 5 -2234 804 -1899 1217 -2230 + 0.808438309247 0.721168519997 -0.609292856741 -0.329663738511 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1192 4 1044 1047 495 502 + 4 -1880 -1900 810 -2233 + -0.092446222057 -0.051116826788 -0.234677321535 0.970728399078 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1193 4 1158 837 836 1046 + 4 -2231 -1431 -1882 -2235 + 0.496600172512 -0.056993707499 0.977824286953 -0.201522656666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1194 4 769 861 862 768 + 4 -1949 -1469 -1922 -1274 + -0.342274186271 -0.057853908172 -0.270250361519 -0.961050293901 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1195 6 362 1010 702 274 273 363 + 6 -1788 -2015 -1147 -407 2236 -560 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1196 4 366 711 712 365 + 4 2217 1153 -2227 -579 + 0.268007967760 -0.083020508322 0.138255802515 0.986910800564 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1197 4 273 363 364 276 + 4 2236 571 -2229 -427 + -0.378538275985 -0.688077235425 0.510961740933 0.515235691109 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1198 3 506 521 505 + 3 -823 -1670 -791 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1199 7 501 1157 1147 1146 514 517 509 + 7 2234 2237 -2198 2238 828 1827 808 + -0.352460052415 0.045554836071 -0.257891491620 -0.965099339685 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1200 5 1147 1157 735 69 72 + 5 -2237 2230 1208 118 -2203 + 0.185643882999 0.092398981855 -0.309064544672 0.946541882528 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1201 4 514 1146 75 88 + 4 -2238 2193 -130 827 + -0.991106586162 -0.252728698991 -0.536571503887 -0.805120628181 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1202 7 967 969 1113 649 646 877 878 + 7 1698 2173 -2071 1053 -2215 -1504 2239 + 1.862518354174 0.896115217435 -0.430417066167 -0.108252788576 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1203 5 970 972 1 7 880 + 5 1702 -2172 3 1505 2240 + 0.470462948321 0.127092791315 0.527632766849 0.839911355884 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1204 3 1127 652 651 + 3 -2171 -1054 2113 + -0.169263530355 0.100463159349 -0.734963628994 0.670623305343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1205 4 967 970 880 878 + 4 1700 -2240 -1502 2239 + -0.639695193439 -0.358593133484 0.683806264703 -0.635468297377 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1206 4 83 559 357 84 + 4 -901 -1914 -573 122 + -0.179926832429 -0.041879034224 0.301491633552 -0.952548655655 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1207 8 837 556 560 819 821 1150 1148 1158 + 8 1432 903 1916 1397 2241 -2204 2242 -2231 + -0.341350621094 0.087082955792 -0.429034281102 -0.899080721877 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1208 3 821 818 1150 + 3 -1382 2188 -2241 + -0.798473795726 -0.152588679683 -0.414610978916 -0.897114502723 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1209 4 1147 1157 1158 1148 + 4 -2237 -2232 -2242 -2199 + -0.279762959931 -0.025758213816 0.031970619128 -0.999156841509 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1210 7 1156 1159 1160 1161 789 455 458 + 7 2243 2244 2245 2246 -1314 -713 -2223 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1211 4 1030 1156 1159 1029 + 4 2224 2243 2247 1837 + -0.055783679122 0.041833890574 -0.620437262482 0.783139533495 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1212 8 789 1161 1162 1034 494 492 942 790 + 8 -2246 2248 2249 -1847 -784 -1627 2250 1315 + -0.012121119792 -0.071324392434 -0.045778040478 0.996402128688 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1213 5 1034 1029 1159 1160 1162 + 5 1845 -2247 2244 2251 2249 + -0.360904090597 0.054961094215 -0.815499718635 -0.576141898345 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1214 3 1160 1161 1162 + 3 2245 2248 -2251 + -0.230371401233 0.003760632431 -0.064811600634 -0.997890431895 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1215 4 942 790 452 453 + 4 2250 1326 721 1630 + 0.277322859290 0.092416428853 0.714078366079 -0.693938967616 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1216 9 924 524 522 1163 849 838 1153 162 161 + 9 -1614 847 2252 2253 1434 -2212 2254 243 -1650 + 0.400300669897 -0.048261207756 0.543443489989 0.838057294589 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1217 7 849 1163 523 534 1164 1155 848 + 7 -2253 2255 848 2256 2257 2213 1438 + 0.664347054794 0.248628435825 -0.409812565761 0.877631791723 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1218 4 534 535 1126 1164 + 4 849 2106 2258 -2256 + -0.332995376991 0.056263663507 -0.662581584670 -0.746873512601 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1219 3 522 523 1163 + 3 841 -2255 -2252 + 0.332044284229 0.046824191351 -0.114979367658 0.992263694850 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1220 6 1153 1155 1164 1126 157 162 + 6 -2211 -2257 -2258 2108 233 -2254 + 0.054595892898 0.064296489813 0.180437011253 -0.981482779456 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1221 5 1165 233 234 729 728 + 5 2259 -344 -2066 -1184 2260 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1222 10 1112 1143 1142 213 211 1166 1167 1165 728 730 + 10 2261 -2169 2262 -310 2263 2264 2265 -2260 -1189 -2069 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1223 7 655 656 1142 213 212 1065 1063 + 7 -1070 -2176 2262 -319 2266 1957 1943 + 1.518833999139 0.541814721965 0.632762441572 -0.553216503367 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1224 5 1166 211 212 1065 1066 + 5 -2263 315 2266 -1953 2267 + -1.598645054339 -0.874490402320 0.141167072109 -0.464045680944 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1225 6 1167 1165 233 236 1064 1067 + 6 2265 2259 -348 1941 -1961 2268 + -0.386693920128 -0.063042011781 -0.232077129585 -0.970652311940 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1226 4 1166 1167 1067 1066 + 4 2264 -2268 1959 2267 + -0.603797944903 0.102031674154 -0.992759545247 -0.063387875743 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1227 3 1114 1112 1143 + 3 2073 2261 -2175 + 0.257665741931 -0.061056086911 0.775076579161 -0.628910526774 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1228 4 522 1163 1168 529 + 4 2252 2269 2270 840 + 0.299231812338 0.063699630240 -0.243679352835 0.967761711430 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1229 4 1163 849 850 1168 + 4 2253 -1433 2271 -2269 + 0.555662281326 0.312292143470 -0.759115424797 0.571154435300 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1230 5 529 530 557 850 1168 + 5 853 909 -1420 2271 2270 + -0.514456476892 -0.081841648118 -0.044847896752 -0.995635782197 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1231 3 526 531 558 + 3 -855 899 1915 + 0.278940568930 -0.022889741887 0.060439332277 0.997909388086 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1232 6 821 820 925 930 1149 1150 + 6 1383 -1911 -1603 2272 -2189 -2241 + 1.312017986434 0.829648503212 -0.275721858515 -0.485449088839 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1233 10 160 929 930 1149 1148 1158 1046 1045 1169 159 + 10 1654 -1615 2272 -2200 2242 2235 1893 2273 2274 -238 + -0.170552301028 -0.120712321275 0.434207931942 -0.892688079528 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1234 6 1045 1043 1153 162 158 1169 + 6 -1890 -2209 2254 234 2275 -2273 + -0.008405582593 0.064199201954 0.083367579316 -0.994448746385 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1235 3 1169 159 158 + 3 2274 -208 2275 + 0.166144799290 0.015335590456 -0.109806373151 0.993834684483 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1236 8 860 866 459 202 201 1170 977 976 + 8 -1464 -1511 -732 -284 2276 2277 -1708 -1947 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1237 8 1170 953 952 773 401 402 978 977 + 8 2278 -1666 -2121 -1283 648 1950 1716 -2277 + -0.090671680889 0.037327267316 -0.653912978814 0.755648391286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1238 4 1170 953 204 201 + 4 2278 -1664 -306 2276 + 0.371798501971 0.070155070481 0.942432233129 0.326955275299 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1239 3 244 253 518 + 3 -362 -1446 -820 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1240 8 857 91 92 631 630 435 429 701 + 8 2218 -143 2279 -1022 -2133 -682 1139 -1450 + 0.717598404836 -0.056256462275 0.987875148127 -0.144699350951 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1241 5 513 629 631 92 93 + 5 2186 1024 -2279 -138 -825 + 0.633390929582 -0.188025478435 0.957709679446 0.217804015927 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1242 4 700 854 434 430 + 4 1451 -2134 -702 -1118 + -0.383507087897 -0.265770556409 -0.560672798154 0.784227023735 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1243 5 149 151 947 1173 1174 + 5 -228 1649 2280 2281 2282 + -0.066804957834 0.077775709207 -0.683912674289 0.725406364050 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1244 4 149 145 994 1174 + 4 -223 1727 2283 2282 + 0.088452917911 -0.077262879636 0.160922221508 0.983938253172 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1245 8 991 1172 1152 946 947 1173 1128 992 + 8 2284 2285 -2205 1655 2280 2286 -2122 1724 + 0.075606337044 0.112682461886 0.206125441200 -0.972015928508 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1246 5 1108 979 991 1172 1171 + 5 -2052 -1725 2284 2287 2288 + -0.097947090601 -0.438587492554 0.863317106485 -0.249648923544 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1247 4 981 146 150 1107 + 4 1726 -202 2289 -2056 + -0.705262613752 -0.255575077235 -0.563418569579 0.785646800636 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1248 7 948 152 150 1107 1108 1171 1151 + 7 -1656 -226 2289 2057 -2288 2290 -2201 + 0.544498419804 0.053555296518 0.423778696382 0.904181091766 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1249 4 1171 1172 1152 1151 + 4 -2287 2285 2196 -2290 + 0.281217150991 -0.068230819947 0.286612851068 0.955613744570 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1250 5 1173 1174 994 995 1128 + 5 2281 -2283 1728 2118 -2286 + 0.655722000212 0.173947478708 0.975500170638 0.134691097463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1251 4 53 726 742 66 + 4 -1182 -2221 -1222 -79 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1252 8 879 878 967 721 723 1116 1033 940 + 8 1501 2239 -1697 -1192 2074 2225 1851 1621 + 0.114876165622 0.113286013190 -0.638460250662 0.761271822374 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1253 5 65 970 880 805 62 + 5 -1701 -2240 1503 1354 94 + 0.693611714101 0.290596056019 -0.000626844205 0.956845619362 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1254 7 192 191 331 330 1138 1077 617 + 7 -281 -600 -503 2291 -2156 -1964 -973 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1255 8 194 379 1175 1061 1060 1137 618 193 + 8 609 2292 2293 -1935 -2159 -2220 -999 -295 + -0.127463298251 -0.554113250855 0.138254770672 -0.820880090886 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1256 7 383 1175 1061 1062 1138 330 332 + 7 2294 2293 1939 2160 -2291 527 -612 + 0.141835927155 0.038400242948 0.414785006301 -0.909108805309 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1257 3 379 383 1175 + 3 -608 2294 -2292 + -0.475780392522 -0.496290433322 -0.831474931042 -0.249690297855 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1258 7 444 446 1118 1119 1176 350 349 + 7 -716 2295 -2080 2296 2297 -538 -1223 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1259 6 489 490 793 1176 350 351 + 6 773 -1329 2298 2297 -555 -1623 + 0.533205267132 0.173104091253 -0.199389030546 0.964509713839 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1260 4 793 1176 1119 792 + 4 2298 -2296 -2088 1328 + -0.992559965967 -0.381798521739 -0.069318441890 -0.921642469948 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1261 4 447 446 1118 1100 + 4 -718 2295 -2087 2034 + -0.325721565775 -0.036114430236 0.058684376228 -0.997623121181 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1262 3 794 942 790 + 3 -1634 2250 -1320 + -0.292956413707 0.000804845514 -0.733022630536 -0.680203774869 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1263 8 354 1055 368 283 282 554 82 81 + 8 -1910 2299 -581 -433 2300 -893 -108 -557 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1264 5 528 532 554 282 281 + 5 -863 -898 -2300 -440 2301 + 0.581084961033 0.391716706934 -0.110061350926 -0.913479348722 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1265 4 369 528 281 280 + 4 838 -2301 -435 585 + -0.177845208588 0.164360036889 -0.562079073189 -0.810587992606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1266 3 1055 368 373 + 3 2299 -593 -1912 + 1.016040832472 0.220968801059 0.844116402752 0.488508226709 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1267 7 426 80 92 631 624 1133 425 + 7 -2194 -139 2279 1023 2147 2302 678 + -0.210813221257 -0.341805868987 -0.068130004601 0.937297738394 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1268 4 1133 425 424 1040 + 4 2302 -677 -1870 -2150 + -0.540623634703 0.048953226871 -0.734099197887 -0.677275386561 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1269 9 770 442 441 933 932 949 1177 406 400 + 9 1871 -701 2303 -1617 -1657 2304 2305 -657 1279 + -0.097497548201 -0.009316219194 0.305162990012 -0.952254565538 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1270 4 949 947 1173 1177 + 4 -1647 2280 2306 -2304 + -0.064902577502 -0.240760867018 0.230589645298 0.942795110506 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1271 5 933 927 945 438 441 + 5 1606 -1646 2191 700 2303 + 0.534591636990 0.101538766288 0.316504084154 0.943141051834 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1272 8 993 991 1172 1134 1041 772 474 473 + 8 1733 2284 2307 2139 1873 1280 -757 2123 + -0.037749276656 0.025616389620 -0.419208529521 0.907528517106 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1273 6 1173 1177 406 405 774 1128 + 6 2306 2305 661 -1282 -2119 -2286 + -0.336210297991 -0.010581841892 -0.420697019203 -0.907139483573 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1274 6 428 1152 1172 1134 1133 425 + 6 2195 -2285 2307 -2148 2302 -696 + 0.646917737121 0.018298095750 0.831968646515 0.554520830003 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1275 3 1101 1103 1140 + 3 -2039 2308 -2163 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1276 4 1104 893 895 1039 + 4 -2042 -1534 -1858 2309 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1277 6 892 1140 1103 1104 1039 896 + 6 2165 -2308 -2046 -2309 -1862 -1545 + 0.678284345413 0.509105322453 -0.855879872920 -0.091002273489 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1278 6 1159 1156 1115 231 179 165 + 6 -2243 -2222 -2067 -346 -246 2310 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1279 7 143 1029 1159 165 173 260 142 + 7 1836 -2247 -2310 253 -396 2311 231 + 0.238096066685 -0.013322882136 0.197877236123 0.980136266157 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1280 3 137 260 142 + 3 395 2311 -206 + 0.316762151073 0.349236685246 -0.722852863621 -0.596252861824 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1281 4 1178 325 333 831 + 4 2312 -501 -1402 2313 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1282 5 1179 1178 831 833 1129 + 5 2314 -2313 -1407 -2127 2315 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1283 4 1178 325 328 1179 + 4 2312 -508 2316 2314 + 0.280183529100 -0.045420669641 0.464521316924 0.884396352826 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1284 5 1179 328 329 870 1129 + 5 -2316 -507 1488 2131 2315 + -0.090796304825 -0.381878807242 0.174272299063 -0.907633043889 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1285 8 1140 1103 1102 1036 1037 796 801 1094 + 8 -2308 -2038 2317 -1855 -1904 -1339 -2020 -2164 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1286 4 1039 1036 1102 1104 + 4 -1857 -2317 -2043 -2309 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1287 7 549 548 763 103 99 889 888 + 7 -875 -1249 -2083 -148 2318 -1525 2319 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1288 5 99 102 261 890 889 + 5 -154 -404 2320 -1527 -2318 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1289 6 261 267 414 550 891 890 + 6 -412 646 891 2321 1530 -2320 + -0.427075947584 -0.325937977907 0.400090471612 -0.856558257845 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1290 4 549 550 891 888 + 4 -884 2321 1531 2319 + 0.432461448835 0.225217860699 0.232375077111 0.946191702965 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1291 5 266 262 780 781 416 + 5 -410 2226 -1300 2138 660 + -0.082728812714 0.029287628655 0.486983041599 -0.872920243781 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1292 7 1170 201 198 610 1012 1084 1091 + 7 -2276 -283 -972 -1793 -1987 -2008 2322 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1293 6 1170 953 951 1081 1085 1091 + 6 2278 1665 2089 1999 2012 2322 + -0.223299639882 -0.093293252766 -0.167473168798 -0.981452549399 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1294 7 233 1165 1180 1181 745 183 180 + 7 -2259 2323 2324 2325 -1230 -248 -345 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1295 3 745 1181 748 + 3 -2325 2326 -1234 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1296 3 1165 1167 1180 + 3 -2265 2327 -2323 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1297 7 1067 1167 1180 1181 748 750 1028 + 7 2268 2327 2324 2326 -1240 1833 1958 + 0.110420424024 0.113081883967 -0.232717322968 0.965947791089 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1298 3 177 178 965 + 3 268 -1986 1678 + -0.280520989941 -0.087048811101 -0.246158568725 0.965312624764 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1299 5 1166 211 205 998 1131 + 5 -2263 -309 -1753 -2129 2328 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1300 4 996 206 212 1065 + 4 1755 -316 2266 1954 + -0.037736309700 0.207030514771 -0.600777635645 0.772142861433 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1301 4 1066 1166 1131 1069 + 4 2267 -2328 -2130 1956 + 1.188224205249 0.214538762053 0.948707125285 0.232223836009 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1302 4 673 543 549 888 + 4 -1096 -876 -2319 -1524 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1303 5 547 288 295 891 550 + 5 -2011 453 1529 -2321 -883 + 0.274580150602 0.045975914895 0.737556180044 0.673718855702 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1304 8 983 1105 1132 622 626 886 885 987 + 8 -2051 -2185 -2140 1011 1925 1521 2329 -1730 + -0.117782766387 0.092583684568 -0.473300472844 0.876022216475 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1305 4 1134 1172 1171 1135 + 4 -2307 2287 2330 2143 + 0.298295495514 0.029436249596 0.091933000235 0.995330010940 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1306 4 1109 1135 1171 1108 + 4 2142 -2330 2288 2053 + 0.568231331468 0.182662938098 0.164574857181 0.969303547620 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1307 5 987 885 467 468 922 + 5 -2329 -1518 -753 -1578 -1731 + 0.202091699413 0.035340953075 0.088459513493 0.995452626451 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1308 5 1170 1091 1090 974 977 + 5 -2322 -2007 2331 -1709 -2277 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1309 3 1090 974 975 + 3 2331 -1712 2010 + -0.186364479160 0.041148913193 0.090652103216 -0.995032141755 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1310 5 404 775 1087 1086 413 + 5 -1286 2116 -1997 2136 653 + -0.117215169160 -0.427867395651 0.074557904626 0.900761128489 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1311 4 1176 1095 345 350 + 4 2332 -2021 -539 -2297 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1312 6 793 1176 1095 33 34 783 + 6 2298 2332 2029 57 -1310 1336 + 0.036990019521 0.076708209506 0.464611144691 -0.882186111217 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1313 5 285 289 387 974 1090 + 5 -441 -613 -1705 -2331 -2006 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1314 4 973 286 290 388 + 4 -2009 -452 -623 1710 + -0.263768678306 -0.125535207745 0.116019859572 -0.985281839781 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1315 6 1177 949 596 595 45 44 + 6 -2304 1648 -960 1298 -69 2333 + -0.011572175001 0.129559506618 0.020930308121 -0.991350723229 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1316 5 822 933 441 440 826 + 5 1605 -2303 -706 -2219 -1386 + 0.742556420432 0.148864296637 0.748218955236 0.646535239729 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1317 5 1177 406 410 43 44 + 5 2305 658 2137 -48 2333 + 0.275934404590 0.010818195127 0.199404623423 0.979857521690 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1318 3 279 1182 278 + 3 2334 2335 -428 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1319 9 129 279 1182 1168 1163 523 533 791 130 + 9 -437 2334 2336 -2269 2255 842 2337 -1335 200 + 0.110275167828 -0.077472878129 0.069739516640 0.994552337976 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1320 6 278 1182 1168 529 528 281 + 6 -2335 2336 2270 -839 -2301 436 + 0.846173598200 0.088279761127 0.850254862739 0.518915553981 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1321 3 533 791 539 + 3 2337 1317 -843 + -0.360308259531 -0.013983222643 -0.152762822224 -0.988163948761 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1322 3 371 132 126 + 3 -845 -187 -587 + -0.680834022610 -0.184017582310 -0.948689695808 0.257148576641 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1323 3 787 789 1161 + 3 -1311 -2246 2338 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1324 7 534 533 791 787 1161 1162 1164 + 7 856 2337 -1316 -2338 2248 2339 -2256 + 0.578392442599 0.095270328158 0.224750959991 0.969747683965 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1325 5 1162 1164 1126 1035 1034 + 5 2339 -2258 2107 1844 -2249 + -0.248808699030 -0.049086356664 -0.584067678792 0.810219400027 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1326 5 1123 1183 834 840 1125 + 5 2340 2341 -1414 -2178 -2099 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1327 4 1183 1123 566 563 + 4 -2340 -2104 -895 2342 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1328 4 1183 834 561 563 + 4 2341 -1418 911 2342 + 0.981472942367 0.077215047249 0.929012821729 0.361901939123 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1329 5 149 148 485 484 1174 + 5 224 -1835 -761 2343 2282 + -0.041535449567 0.029279098215 0.127173146919 -0.991448296741 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1330 6 484 28 44 1177 1173 1174 + 6 -760 47 2333 -2306 2281 -2343 + -0.718057189235 -0.271280737229 -0.573684435288 -0.772847287837 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1331 3 1184 1181 1180 + 3 2344 -2324 2345 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1332 7 1027 751 748 1181 1184 1130 1068 + 7 -1810 -1235 -2326 -2344 2346 -2124 -1951 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1333 6 1184 1180 1167 1166 1131 1130 + 6 -2345 -2327 -2264 -2328 -2128 -2346 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1334 4 1117 1185 112 111 + 4 2347 2348 -150 -2082 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1335 6 1185 121 115 663 113 112 + 6 2349 -178 2350 -1075 -155 -2348 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1336 5 664 663 115 116 786 + 5 1082 -2350 -183 -1334 2085 + 0.045690620074 -0.126091908616 0.806580178568 0.577519909721 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1337 5 1185 121 120 1099 1117 + 5 2349 184 2032 -2086 2347 + -0.088423732824 -0.153938128200 0.369579760514 0.916359019874 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1338 5 759 1095 1176 1119 762 + 5 -2022 -2332 -2296 -2084 -1247 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1339 6 911 912 378 379 1175 1058 + 6 1564 -1637 -605 2292 2351 -1932 + -0.400198588229 -0.131715051694 -0.944317416508 0.301522407190 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1340 3 1175 1058 1061 + 3 2351 -1936 -2293 + 0.097284303214 -0.068738935789 0.378002778916 -0.923249076814 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1341 6 1111 1110 1141 900 581 582 + 6 -2060 -2167 2352 -1536 -921 -2092 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1342 4 900 12 3 1141 + 4 1552 -7 -2174 2352 + -0.421228237285 -0.439784407109 0.765554213570 0.469591760307 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1343 6 834 1183 277 278 1182 846 + 6 -2341 2353 -429 -2335 2354 -1415 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1344 5 554 282 277 1183 563 + 5 -2300 -432 -2353 -2342 -894 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1345 4 1182 846 850 1168 + 4 2354 1419 2271 -2336 + 0.380814265842 -0.027678937801 0.351538660929 0.935764097556 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1346 5 1178 1139 1138 330 325 + 5 2355 -2154 -2291 -502 -2312 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1347 6 1056 1059 1139 1178 1179 1121 + 6 -1927 -2157 -2355 -2314 2356 -2093 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1348 7 1057 1058 1175 383 326 327 1120 + 7 -1933 -2351 -2294 -607 -526 2357 -2095 + -0.012422756501 -0.121620922641 0.143850211843 -0.982097483821 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1349 5 1179 1121 1120 327 328 + 5 2356 -2097 -2357 519 2316 + -0.217020977865 -0.144497763616 -0.212649632789 -0.966385290650 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1350 6 1120 908 907 382 324 327 + 6 2096 -1561 1638 606 518 2357 + -0.576807073544 -0.107252396999 -0.946196211384 -0.305302559605 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1351 7 1053 167 174 260 142 158 1169 + 7 1892 -255 401 2311 207 2275 2358 + -0.511580007912 -0.191231884175 0.165642828849 -0.967467218941 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1352 8 150 1107 1020 1024 1052 1053 1169 159 + 8 2289 -2058 -1824 2359 1894 -2358 2274 209 + -0.151737008075 0.055504957112 -0.112604374260 -0.992088430854 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1353 5 166 1052 1024 1025 172 + 5 -1889 -2359 1829 -1984 -261 + -0.556815860589 -0.041131872843 -0.378445161584 -0.924709375269 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1354 3 213 1142 214 + 3 -2262 -2168 -311 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1355 8 1136 1135 1171 1151 1146 514 516 1026 + 8 -2149 -2330 2290 2197 2238 -833 -1826 -2187 + -0.424280521982 -0.361798933879 -0.104095546638 0.926426278024 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1356 5 662 663 115 122 376 + 5 -1076 -2350 -177 -584 2360 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1357 4 662 376 377 665 + 4 -2360 597 2361 -1077 + -0.349398205271 -0.344681522039 0.115318895452 0.931609467919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1358 6 370 377 665 670 779 538 + 6 -595 2361 1083 1302 2110 -870 + 0.137803183398 0.267493979001 -0.939761738440 -0.212825858773 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1359 3 931 1149 930 + 3 -2190 -2272 -1602 + 0.125967437696 0.067679060654 0.344380242669 -0.936387629782 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1360 5 1052 1044 502 508 1024 + 5 -1888 2233 811 1828 2359 + -1.242273579215 -0.321683457413 -0.811669489262 0.487557579603 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1361 3 1045 1053 1169 + 3 1891 -2358 -2273 + -0.183166478818 -0.266810101919 0.345148964534 0.899824739488 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1362 5 1144 1145 168 184 746 + 5 -2180 -2206 -250 -1232 2362 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1363 4 1079 1144 746 747 + 4 -2181 -2362 -1233 -1981 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1364 4 1080 1049 170 171 + 4 2183 -1885 -263 -1983 + 2.154612621182 0.551843808318 0.602866656392 0.576211945236 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1365 11 846 1182 279 128 127 788 787 1161 1160 1154 847 + 11 -2354 -2334 -431 -175 -2031 -1312 -2338 -2245 2363 -2207 -1416 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1366 5 1160 1162 1164 1155 1154 + 5 2251 2339 2257 -2210 -2363 + -0.134019091869 -0.017156352588 0.243753171035 -0.969685542419 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1367 6 100 662 376 375 264 101 + 6 -1074 -2360 -583 2364 -405 -152 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1368 6 666 665 377 375 264 265 + 6 -1078 -2361 -594 2364 421 -2228 + -0.073664836875 0.067705016818 -0.929954391364 0.361387410794 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1369 5 1072 1097 1093 1017 1016 + 5 -2041 -2017 -2151 -1798 -1968 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1370 7 264 375 368 1055 353 363 273 + 7 -2364 -582 -2299 -1909 -561 -2236 -406 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1371 4 271 385 890 261 + 4 -620 -1528 -2320 -403 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1372 5 119 118 1186 445 448 + 5 -173 2365 2366 -709 -2030 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1373 6 1186 1185 1117 1118 446 445 + 6 2367 -2347 -2081 -2295 -715 -2366 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1374 4 1185 1186 118 121 + 4 -2367 -2365 -179 -2349 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1375 6 885 987 985 869 336 335 + 6 2329 1742 1783 1487 521 -1519 + 0.279758221063 0.017248999475 0.240481794197 0.970500375413 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1376 5 1159 165 163 1154 1160 + 5 -2310 -245 -2208 -2363 -2244 + 3.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1377 6 714 718 1121 1179 1129 999 + 6 -1170 -2094 -2356 -2315 -2126 -1751 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1378 8 864 863 679 690 1092 852 853 1001 + 8 -1460 -1946 -1107 -2014 2368 -1445 -1767 -2132 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1379 6 684 680 856 852 1092 1011 + 6 -1108 -2216 -1448 -2368 -2016 -1786 + 0.333000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1380 7 799 899 900 1141 971 64 63 + 7 -1859 -1532 -2352 -2166 -1695 -88 -1342 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1381 7 994 1174 484 46 49 920 919 + 7 2283 -2343 -786 -52 2214 1591 1735 + 0.342079091585 0.187414751489 0.480750551263 -0.856594780736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1382 3 497 500 1078 + 3 -795 -2182 -1979 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1383 5 724 722 968 1143 1112 + 5 -1187 -1694 -2170 -2261 -2070 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 200 + 1 15 -1 -2 -3 -4 -5 6 -7 8 9 10 11 12 13 14 -15 + 2 14 16 -17 -18 -19 -20 -21 22 -23 -24 -25 26 -27 28 29 + 3 11 30 31 32 -33 -34 -35 36 -37 38 -39 -40 + 4 17 41 42 -43 -44 45 -46 -47 -48 49 -50 -51 -52 -53 -54 -55 -56 -57 + 5 10 58 59 60 -61 -62 -63 -64 65 66 -67 + 6 12 68 69 -70 71 72 -73 -74 75 76 -77 -78 -79 + 7 16 -80 -81 -82 -83 -84 -85 86 -87 -88 89 -90 91 -92 -93 94 95 + 8 14 96 -97 -98 -99 -100 -101 -102 -103 -104 -105 106 107 -108 -109 + 9 11 110 -111 -112 -113 -114 115 -116 -117 -118 -119 -120 + 10 8 121 -122 -123 -124 -125 -126 127 128 + 11 8 129 130 131 -132 -133 134 -135 -136 + 12 8 137 -138 139 -140 -141 -142 143 108 + 13 14 144 145 -146 -147 148 133 -149 -150 -151 152 -153 -154 -155 -156 + 14 12 157 -139 -158 -159 160 -161 -162 85 -163 -164 -165 -106 + 15 12 166 -167 63 -168 -169 -170 -171 172 -173 174 -175 -176 + 16 8 177 178 179 -180 181 -182 -183 -76 + 17 8 184 -185 -186 -187 -188 -189 -190 -191 + 18 10 192 -193 -194 -145 195 196 -197 198 -199 -200 + 19 14 201 202 -203 -204 205 206 132 207 154 -208 200 -209 -210 -211 + 20 14 212 213 -214 215 -216 -217 -218 -219 220 -221 222 -223 210 -224 + 21 12 225 226 227 228 -229 37 230 -231 -232 -233 -234 -235 + 22 12 236 237 238 239 -45 -240 241 -242 243 -244 -245 -246 + 23 10 247 180 -248 249 -250 -251 252 253 -254 -75 + 24 11 255 -256 -257 258 113 259 -260 -261 217 262 263 + 25 10 264 265 -266 -267 268 -269 190 -270 -271 175 + 26 16 -272 -273 -274 -275 -276 -277 -278 -279 280 281 -174 282 283 284 285 286 + 27 15 287 -288 289 -290 -291 292 -293 294 295 296 297 298 299 300 -301 + 28 10 302 303 304 305 -306 307 308 -309 -310 -311 + 29 15 312 313 -314 -259 315 216 118 -316 -317 -318 -319 320 321 -322 323 + 30 15 -324 325 326 327 -328 21 329 330 331 332 333 334 335 -336 337 + 31 11 338 -339 340 341 342 343 344 345 346 347 348 + 32 13 349 350 351 352 153 -347 -353 -354 55 -355 -356 357 -358 + 33 16 -359 360 -361 -249 -362 -363 -364 -365 366 367 368 -369 -370 371 372 79 + 34 11 373 -374 -375 376 -377 -378 -379 -380 -381 -382 -283 + 35 12 383 -384 385 -386 387 -388 389 390 -368 391 -49 392 + 36 14 393 -394 -395 396 -397 -398 -399 -400 -401 -402 403 -404 -405 -406 + 37 10 -407 408 -325 -409 -410 411 -412 413 -414 -415 + 38 15 416 -417 -418 -115 -419 -420 -421 -422 -423 -424 425 -426 -427 -428 429 + 39 14 -430 -431 -432 -433 -196 -434 -435 436 149 293 437 438 439 440 + 40 10 441 -192 -442 -443 444 146 -445 446 -447 448 + 41 15 449 450 451 452 453 -454 162 -455 -456 457 87 -458 459 -460 -461 + 42 9 462 463 -464 -465 62 466 -467 -468 -469 + 43 9 470 471 472 185 -473 474 377 -475 -476 + 44 17 477 478 479 480 291 481 482 483 484 -485 -486 487 -488 489 -490 491 -492 + 45 17 493 494 -495 -496 269 -497 498 278 -499 500 -501 -502 488 171 -503 504 505 + 46 8 506 -507 -508 124 509 510 -511 -512 + 47 9 513 514 515 516 -517 35 -518 -519 -520 + 48 5 521 522 203 -523 -524 + 49 11 525 -526 -527 386 -528 -529 43 -530 -531 -532 -533 + 50 10 534 535 -305 -228 -536 537 -538 539 40 540 + 51 8 541 542 543 -544 109 -545 -546 -547 + 52 12 548 374 549 -550 -551 23 -552 553 -554 -555 -556 -557 + 53 14 -558 -559 -560 273 -561 -562 -563 564 565 502 -321 566 567 568 + 54 19 569 570 412 571 469 -572 -66 -573 -333 574 -575 576 -577 -578 25 -579 -580 -581 555 + 55 20 582 -583 584 585 586 73 -413 587 -588 589 -332 -590 -574 -372 -591 -592 -593 -308 -594 595 + 56 12 596 597 -598 -599 -600 -227 -601 -36 602 -603 -604 605 + 57 17 -606 -607 -608 -609 18 -610 611 552 612 613 614 -615 -616 617 406 -618 -14 + 58 11 619 -620 -237 -621 -622 623 47 624 -625 -626 627 + 59 10 628 629 630 -631 523 -632 -206 -633 -634 -222 + 60 15 635 -636 -637 -638 388 -639 -640 -641 642 643 -644 -645 532 -646 -647 + 61 14 648 649 650 651 652 356 -491 156 -653 136 -654 -655 -656 57 + 62 9 657 658 -659 -660 -661 -662 485 -663 -664 + 63 13 665 632 -666 -667 668 447 -220 669 -198 -207 -670 671 -672 + 64 18 -673 674 -675 328 -676 -677 -9 -678 -679 680 231 -26 604 -681 -682 -683 616 -684 + 65 12 685 -313 686 214 -687 261 664 -688 -689 690 691 211 + 66 9 692 693 694 -268 191 -695 473 696 -697 + 67 19 698 699 -700 -701 702 -703 704 705 706 -11 -707 402 -708 -613 -709 -710 683 -711 712 + 68 21 713 -714 715 -716 -717 -718 -719 -720 721 401 511 -320 -12 722 -723 -614 710 724 725 726 727 + 69 15 728 -729 -730 622 731 -732 -733 -734 410 364 735 -736 -737 738 739 + 70 16 673 -740 -741 742 -329 -743 -744 745 746 747 -230 748 -537 749 309 -595 + 71 13 256 750 114 714 -751 -752 -753 -315 400 754 755 -712 756 + 72 13 -728 757 409 758 -759 -760 -761 762 -763 764 765 766 92 + 73 10 111 418 767 -750 -768 -769 -770 317 771 -772 + 74 9 773 774 526 775 776 -346 -777 54 358 + 75 14 -778 81 161 -779 -780 -459 781 782 -783 -784 785 105 -786 787 + 76 8 788 -789 790 -515 33 -791 -792 -793 + 77 11 794 -795 -796 267 272 -797 497 -798 -799 -800 -801 + 78 22 -802 -803 804 -805 -89 -782 -806 -807 808 -809 -810 811 -722 461 812 813 -814 -13 815 -755 816 817 + 79 13 818 508 819 125 820 -821 -822 -823 824 -811 723 -671 825 + 80 8 826 827 -131 204 150 828 654 -829 + 81 14 830 -831 -832 -833 445 -834 835 667 807 -824 -836 -837 -838 -839 + 82 8 840 -841 -842 843 -498 -484 -844 245 + 83 10 845 846 -847 848 419 -849 -850 -851 -852 476 + 84 19 853 854 855 856 -835 857 -785 -858 -859 -860 861 862 355 863 -864 -348 -865 -866 547 + 85 17 82 867 868 -160 455 -869 870 871 -872 -873 -745 -874 875 -335 876 877 878 + 86 9 879 880 881 882 599 -883 -884 703 -885 + 87 14 886 -287 558 887 -483 888 -889 -890 891 -439 -892 893 -894 503 + 88 12 -895 896 -897 99 638 898 899 900 901 902 903 904 + 89 11 905 339 -776 906 -907 528 -908 909 -910 -902 646 + 90 7 911 912 598 -882 -913 229 -38 + 91 11 914 -444 -854 831 915 -916 -195 917 -152 -918 -357 + 92 14 919 620 -238 -920 -921 -731 363 -922 -923 -924 -253 -390 925 -926 + 93 14 927 631 524 -665 -205 -928 -448 199 135 837 929 155 918 930 + 94 13 931 -658 -932 -933 -888 561 687 -437 -934 316 -935 -936 -937 + 95 10 938 -939 -940 395 -941 717 -942 -943 944 945 + 96 9 -157 -452 -946 140 -947 779 -948 949 -950 + 97 14 951 -952 560 -887 660 -480 277 499 953 799 954 -955 -956 -957 + 98 15 958 832 -959 960 -917 823 961 -857 806 784 962 963 950 964 -965 + 99 12 966 967 968 -969 970 421 -971 -972 851 973 709 -974 + 100 11 975 -976 -343 -977 104 544 -978 -861 979 -787 980 + 101 17 981 982 983 847 984 -376 422 -549 985 -986 987 -988 -989 -990 -991 -284 475 + 102 12 992 993 796 186 994 995 274 996 -474 378 -997 989 + 103 10 998 999 495 -1000 -843 271 800 956 -489 -1001 + 104 15 1002 1003 -611 -1004 -1005 -706 -1006 1007 24 -1008 -1009 603 681 234 556 + 105 9 1010 1011 1012 -72 -584 1013 -1014 -307 -1015 + 106 11 1016 1017 -1018 -1019 -702 -1020 971 1021 399 -1022 1009 + 107 14 916 -855 833 802 959 1023 -446 -1024 1025 -781 1026 1027 1028 -1029 + 108 13 1030 507 -820 126 1031 -1032 7 -1033 -721 1034 1035 -1036 814 + 109 15 1037 1038 946 1039 158 454 141 -1040 1041 -870 -1042 -1043 -1044 518 -1045 + 110 14 1046 465 1047 -1048 -570 1049 64 -587 -1013 -1050 -1051 -1052 -1053 557 + 111 9 417 -983 768 -1054 -848 -1055 116 -1056 1057 + 112 10 1058 939 -1059 397 -715 1060 1061 1062 1036 512 + 113 10 1063 1064 1065 -775 1066 1067 908 529 644 -392 + 114 16 407 -1068 -757 1069 730 1070 -326 -366 -585 575 93 -876 1071 -1072 1073 1074 + 115 9 -1075 -1076 -449 3 -1077 1078 1079 -1035 810 + 116 20 -767 1080 609 753 1081 1056 423 720 -987 1082 1083 318 -1084 404 -1085 -568 711 -816 -1086 -1087 + 117 12 1088 1089 666 633 928 838 -825 -1090 1091 965 -1092 1093 + 118 21 1094 933 434 -148 197 661 -1095 -828 -134 1096 -299 -1097 -1098 208 1099 490 689 -930 672 224 655 + 119 13 -16 1100 608 -1101 550 988 -1102 579 -1103 381 -1104 -285 -1105 + 120 13 430 1106 -1107 -1108 1109 -1110 -294 935 892 -1026 -1111 860 -1112 + 121 15 1113 606 -1114 -1081 420 1055 -984 1101 -1115 1004 972 850 551 -1116 -1117 + 122 10 1118 1119 1120 -1121 398 -1122 942 -1123 -973 -429 + 123 11 1124 -699 1125 -1126 1019 884 601 1127 1005 -1128 682 + 124 14 1129 1130 4 -1078 -1131 -457 -1132 -1133 792 1033 -1134 1044 -128 -1135 + 125 13 1136 1137 -1067 907 -1138 -1139 -344 1140 -903 645 -1141 978 -1142 + 126 14 193 443 -1143 1107 -915 432 -1144 147 -1023 -856 1145 1146 353 1147 + 127 15 -1148 621 -1149 734 1150 761 -1151 -1152 -1153 48 -1154 -297 -1155 -1156 -1157 + 128 10 1158 895 98 1159 639 1160 1161 1162 1142 1163 + 129 12 1075 -1164 -450 -1165 -6 869 -674 -1166 -742 -725 -29 1167 + 130 18 1168 842 -1169 290 -482 -891 1170 -241 501 955 1171 51 -627 1157 1172 1173 1174 656 + 131 12 1175 394 -1176 1121 -970 -1021 1177 427 708 1178 1117 -617 + 132 11 1179 -1180 -1181 -1182 744 873 1045 -1183 519 -539 311 + 133 16 -569 -1184 -1185 168 -1186 468 -65 1187 -925 242 415 626 -739 -1071 -505 -1188 + 134 11 -896 -1189 -1190 -1191 -906 -1192 -342 641 530 -1193 1141 + 135 10 -886 952 559 659 932 -289 -481 -1096 -440 1194 + 136 11 1195 841 496 1000 1169 486 246 176 -1196 1188 -1197 + 137 13 1198 1199 1191 -340 1200 1201 1152 -351 -909 531 46 777 -863 + 138 12 1076 -1130 1 1165 -451 1202 -1203 791 1040 -1204 -1205 678 + 139 14 -385 527 1189 -1206 -1200 -623 1207 1208 1153 924 44 -642 1209 -243 + 140 13 1210 1180 -1211 872 1212 743 -1213 592 -337 -1214 310 -1215 -540 + 141 12 1216 -360 -1069 732 760 1217 1218 1219 -643 1220 -1162 -94 + 142 15 1221 1222 947 -1223 -143 1042 -127 1224 -1225 460 -1226 1135 -963 -1227 520 + 143 22 -1216 361 733 -762 640 -1207 1228 923 -389 1229 -1230 1193 -899 1231 -1232 -624 1233 1155 1234 -1161 -95 -1235 + 144 15 1236 314 -686 1237 934 662 563 -1238 -1194 -954 772 120 -281 1084 801 + 145 14 1239 -350 -1240 -1241 151 -438 -1146 -651 -298 1098 56 -1174 492 1242 + 146 14 803 1243 84 763 -1244 -1245 1246 -1247 -1027 1248 1156 1249 -1250 1086 + 147 15 1251 -790 -1252 -516 34 740 1182 1043 677 1205 232 -877 538 -1253 -605 + 148 12 1254 -1120 -1255 260 117 1256 -1257 -1177 -944 428 221 974 + 149 14 1258 -304 -1259 -586 1260 1014 -1261 536 -748 -1262 336 1052 1215 235 + 150 13 1263 384 1206 1264 251 922 365 1265 183 -1231 240 -1266 53 + 151 13 -1267 288 435 1110 1240 1151 889 -1170 -487 1097 52 1268 653 + 152 19 -1269 562 890 1245 -764 -1270 1271 -735 1154 -295 -1272 1273 -280 1111 1274 -1268 -815 1085 -323 + 153 7 1275 1276 -1125 700 1018 1277 883 + 154 11 1278 -868 159 1279 1211 1181 -1041 -86 142 101 -1280 + 155 8 1281 1282 -213 -1283 -1284 670 634 1092 + 156 10 1285 1286 -881 -1277 1126 701 913 600 1020 1006 + 157 15 1287 1288 167 -60 1289 -1187 578 380 -1290 1051 -553 -286 1291 697 1105 + 158 10 1292 -1293 1054 849 770 986 -425 119 1238 997 + 159 15 1294 1295 1296 138 -543 948 164 783 1225 -1297 1298 -107 -964 -980 865 + 160 9 1299 122 -819 1300 -960 -1224 836 1301 1090 + 161 9 1302 -472 189 375 1303 -996 -696 1290 991 + 162 19 -1106 431 -1304 1144 -1025 -804 -1246 1305 936 1272 894 -566 1306 322 -691 -1307 -727 -756 1087 + 163 16 1308 1293 -995 -1057 -1237 -1309 276 -985 798 -771 -1083 -565 957 382 -1310 1104 + 164 11 1311 -1312 -327 675 19 1259 741 1008 591 581 233 + 165 7 1313 -993 795 188 -1314 270 1309 + 166 23 1269 1184 -571 -564 279 -766 737 1315 -893 1316 625 414 -1317 -172 926 244 1103 301 27 -1173 -504 -1291 1196 + 167 13 1318 -179 359 248 -1319 1320 -1219 -1228 -1265 77 1321 1322 593 + 168 14 1323 583 1068 -411 1324 -1218 -1212 369 -330 -1321 1262 -1325 -878 -749 + 169 8 1326 1327 637 -1066 -1328 1139 -391 533 + 170 13 -408 324 -1070 759 -1243 1270 1329 -1315 90 -22 -576 874 1330 + 171 10 1331 1332 1333 -962 1226 1297 -1301 546 866 -1093 + 172 10 1334 1335 70 1336 -1047 -1012 -466 -1337 588 67 + 173 11 1338 1312 20 -1260 1102 -1007 580 -612 554 594 1053 + 174 16 -258 112 -1339 -396 752 941 1255 1176 769 1122 424 719 -1082 1340 1116 615 + 175 11 1341 5 -1342 1032 718 -705 1134 -1061 -945 -403 618 + 176 11 1343 1344 -1320 636 -181 -387 -1264 -367 1328 -1345 1230 + 177 12 1346 1347 1283 943 -1060 -1348 1123 -1256 219 -263 -1340 -1349 + 178 10 257 940 1059 -713 751 1339 -1350 1348 218 1257 + 179 16 778 80 163 -1351 1247 102 1280 -1352 -1028 -808 859 -1353 -1298 -904 -979 1235 + 180 16 1354 123 -1300 -509 -1031 821 1223 1133 -961 458 -949 1204 -1079 -10 -813 786 + 181 15 1267 1149 -1109 -292 -436 1241 -1201 -1355 -352 -1305 -1145 50 -1274 -1249 864 + 182 13 1356 464 -1336 -71 1357 1048 -252 -589 -1358 573 -1322 -371 -1074 + 183 12 1148 -619 920 729 -758 -1208 1359 -1271 1232 -1316 -300 -1172 + 184 22 -1199 1190 -1150 1355 -1359 -1360 -1209 1352 -900 -765 736 -1248 -345 -1233 858 -91 1029 1112 354 -1306 -1361 -1147 + 185 9 1362 1363 977 -1364 1138 -1160 -901 103 545 + 186 15 1365 1319 362 -1217 -1324 182 1345 -1229 590 647 78 1214 1366 1015 -1163 + 187 10 1367 -463 -1357 61 -1049 -1368 1186 572 254 170 + 188 12 1369 1114 -1003 969 610 426 1022 1128 707 852 -1178 405 + 189 15 1370 -239 921 1185 1368 250 467 370 1358 -738 1266 577 173 -1073 1197 + 190 13 1371 187 266 -994 797 1314 -1303 275 695 -500 169 -1289 379 + 191 9 1372 1373 1374 -1011 1337 74 1261 1050 306 + 192 17 442 194 1143 1304 1108 433 1024 1095 834 -669 937 809 -929 -1375 -690 209 223 + 193 16 1376 97 -1279 -1159 1351 -898 88 -871 165 -1220 -1234 1213 1072 1361 1325 -1366 + 194 20 1377 1350 716 -215 822 -1062 -668 -262 -754 -510 1284 -1034 319 688 1349 -812 839 1375 1307 -1091 + 195 13 1378 1379 -479 663 -953 -296 -1171 844 -652 -1099 1001 -1242 829 + 196 13 1380 2 1342 1131 1203 -704 -1127 -602 885 793 -680 39 1253 + 197 16 1164 1077 -867 -453 83 1244 805 -1329 780 -8 676 -331 -747 -726 -28 -1381 + 198 12 1382 976 897 1192 -341 1364 100 1360 910 -1140 1353 -862 + 199 20 -1100 17 -1080 607 1115 -1273 990 -1330 1317 -334 1310 -282 -724 -567 1250 684 1381 -817 -1167 15 + 200 14 1383 789 1252 -1039 -1202 456 1132 517 1166 -746 1183 -875 679 1227 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 1070 + 2 3.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 51 + 3 3.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 1184 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 827 + 5 0.000000000000 0.000000000000 0.333000000000 x0y0z1 + 1 887 + 6 0.000000000000 1.000000000000 0.333000000000 x0y1z1 + 1 851 + 7 3.000000000000 1.000000000000 0.333000000000 x1y1z1 + 1 1122 + 8 3.000000000000 0.000000000000 0.333000000000 x1y0z1 + 1 1186 + *edge + 12 + 1 2 4 6 + x0y1 + 6 327 477 1198 1400 1443 1765 + 2 2 6 5 + x0z1 + 5 615 1442 1522 2013 2368 + 3 2 5 1 + x0y0 + 4 1095 1523 1795 1963 + 4 2 1 4 + x0z0 + 5 1401 1962 2155 2313 2355 + 5 2 2 8 + x1y0 + 5 76 532 710 1221 2366 + 6 2 8 7 + x1z1 + 6 172 430 2098 2340 2353 2365 + 7 2 7 3 + x1y1 + 6 1231 2101 2177 2325 2344 2362 + 8 2 3 2 + x1z0 + 5 77 1183 2260 2323 2345 + 9 2 5 8 + y0z1 + 5 151 1526 2318 2348 2367 + 10 2 2 1 + y0z0 + 6 84 1853 1905 1966 2037 2317 + 11 2 4 3 + y1z0 + 3 1405 2125 2346 + 12 2 7 6 + y1z1 + 4 106 1447 1667 2102 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 37 110 129 184 201 212 255 264 312 416 470 477 493 521 628 648 657 685 692 794 826 845 931 951 966 981 992 998 1094 1118 1236 1254 1281 1292 1308 1313 1346 1378 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -3.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 32 30 68 96 137 177 225 302 513 534 541 582 635 1010 1037 1063 1136 1158 1179 1210 1221 1251 1278 1294 1318 1323 1326 1331 1343 1362 1365 1372 1376 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 30 31 58 226 303 373 471 535 548 596 693 846 879 911 967 982 1002 1016 1046 1113 1124 1258 1275 1285 1287 1302 1311 1334 1338 1369 1373 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 29 41 130 144 202 338 349 441 522 542 629 649 773 827 830 853 905 914 927 958 975 1064 1088 1137 1198 1239 1295 1332 1363 1382 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 35 32 121 393 506 514 597 630 698 788 818 880 912 938 968 1017 1030 1038 1058 1089 1119 1129 1175 1222 1276 1282 1286 1296 1299 1333 1341 1347 1354 1377 1380 1383 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -0.333000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 33 42 59 69 166 178 236 247 265 383 462 478 494 525 650 694 774 840 919 999 1065 1168 1195 1263 1288 1327 1335 1344 1356 1367 1370 1371 1374 1379 +***end diff --git a/doc/tutorials/pole_figure/n3-id1.ori b/doc/tutorials/pole_figure/n3-id1.ori new file mode 100644 index 000000000..104fbf138 --- /dev/null +++ b/doc/tutorials/pole_figure/n3-id1.ori @@ -0,0 +1,3 @@ + 0.441932185869 -0.838180043298 0.319609383638 -0.258240351385 -0.460080766139 -0.849492560030 0.859073840837 0.292882064397 -0.419776407561 + 0.197995872535 -0.934685317408 0.295230404736 0.080650368008 0.315706371969 0.945423188228 -0.976879292748 -0.163379448279 0.137891273404 +-0.086349178228 0.238267090139 -0.967353406556 -0.862813551122 0.467566510165 0.192183075664 0.498092958612 0.851240478554 0.165206090239 diff --git a/doc/tutorials/simple_model.rst b/doc/tutorials/simple_model.rst new file mode 100644 index 000000000..020e7cd6a --- /dev/null +++ b/doc/tutorials/simple_model.rst @@ -0,0 +1,124 @@ +.. _simple_model: + +Generating and Meshing a Simple Tessellation +============================================ + +The only required input to generate and mesh a simple tessellation is the number of cells. By default, a 3D Voronoi tessellation is generated [CMAME2011]_. 2D is also available (option :option:`-dim`). + +.. note:: + + To reproduce *exactly* the images below, add the following line to your :file:`$HOME/.neperrc` file (or to a local configuration file to be loaded with :option:`--rcfile`):: + + neper -V -imagesize 800:400 + +Generating a Tessellation +------------------------- + +The number of cells can be specified using option :option:`-n` of the :ref:`neper_t`. +A 100-cell tessellation can be generated as follows: + +.. code-block:: console + + $ neper -T -n 100 + +This produces a :ref:`tess_file` named :file:`n100-id1.tess`. + +The tessellation can be visualized using the :ref:`neper_v`: + +.. code-block:: console + + $ neper -V n100-id1.tess -print img1 + +This produces a PNG file named :file:`img1.png` where cells are colored arbitrarily from their ids. + +.. image:: simple_model/img1.png + +Another tessellation with the same number of cells but different cell properties can be generated using :option:`-id` (the default value is :data:`1`): + +.. code-block:: console + + $ neper -T -n 100 -id 2 + +This produces a :ref:`tess_file` named :file:`n100-id2.tess`. + +The tessellation can be visualized as before: + +.. code-block:: console + + $ neper -V n100-id2.tess -print img1b + +.. image:: simple_model/img1b.png + +Meshing a Tessellation +---------------------- + +A mesh can be obtained by passing :file:`n100-id1.tess` to the :ref:`neper_m`: + +.. code-block:: console + + $ neper -M n100-id1.tess + +This produces a :ref:`mesh_file` named :file:`n100-id1.msh`. + +The mesh can be visualized using the :ref:`neper_v`: + +.. code-block:: console + + $ neper -V n100-id1.tess,n100-id1.msh -print img2 + +.. note:: + + When both the tess file and mesh file are available, it is a good practice to pass both of them to :option:`-V` by using the :data:`,` separator. Only the mesh is printed. + +.. image:: simple_model/img2.png + +The cell boundaries can be highlighted via the 1D elements, using :option:`-showelt1d` and (optionally) :option:`-dataelt1drad`: + +.. code-block:: console + + $ neper -V n100-id1.tess,n100-id1.msh -showelt1d all -dataelt1drad 0.005 -print img3 + +.. image:: simple_model/img3.png + +Regularizing a Tessellation +--------------------------- + +It is quite clear from the above image that the mesh is overrefined at some locations, which is where *small edges* typical of Voronoi tessellations are. Neper includes a strategy called *regularization* (option :option:`-regularization`) that removes the smallest edges of the tessellation [CMAME2011]_: + +.. code-block:: console + + $ neper -T -n 100 -reg 1 + $ neper -V n100-id1.tess -print img4 + +.. note:: An option name may be abbreviated as long as the abbreviation is not ambiguous. Here, :data:`-regularization` has been abbreviated to :data:`-reg`. + +.. image:: simple_model/img4.png + +The resulting tessellation is very similar to the original one, as only slight morphological changes occur during regularization. However, no local mesh overrefinements will be present anymore. + +The new tessellation can be meshed, and the mesh can be visualized as before: + +.. code-block:: console + + $ neper -M n100-id1.tess + $ neper -V n100-id1.tess,n100-id1.msh -showelt1d all -dataelt1drad 0.005 -print img5 + +.. image:: simple_model/img5.png + +Setting Mesh Properties +----------------------- + +Mesh properties can be specified, such as the element size or *characteristic length*, the element type, etc. + +For example, smaller elements than shown above can be obtained using option :option:`-rcl`, and 2nd-order elements can be obtained using option :option:`-order`: + +.. code-block:: console + + $ neper -M n100-id1.tess -rcl 0.7 -order 2 + $ neper -V n100-id1.tess,n100-id1.msh -showelt1d all -dataelt1drad 0.005 -print img6 + +.. image:: simple_model/img6.png + +This mesh can be used by `FEPX <https://fepx.info>`_. + +.. [CMAME2011] :ref:`px`. diff --git a/doc/tutorials/simple_model/img1.png b/doc/tutorials/simple_model/img1.png new file mode 100644 index 000000000..76484d4ee Binary files /dev/null and b/doc/tutorials/simple_model/img1.png differ diff --git a/doc/tutorials/simple_model/img1b.png b/doc/tutorials/simple_model/img1b.png new file mode 100644 index 000000000..11460d5a7 Binary files /dev/null and b/doc/tutorials/simple_model/img1b.png differ diff --git a/doc/tutorials/simple_model/img2.png b/doc/tutorials/simple_model/img2.png new file mode 100644 index 000000000..2879fac39 Binary files /dev/null and b/doc/tutorials/simple_model/img2.png differ diff --git a/doc/tutorials/simple_model/img3.png b/doc/tutorials/simple_model/img3.png new file mode 100644 index 000000000..afee99caa Binary files /dev/null and b/doc/tutorials/simple_model/img3.png differ diff --git a/doc/tutorials/simple_model/img4.png b/doc/tutorials/simple_model/img4.png new file mode 100644 index 000000000..58359ea16 Binary files /dev/null and b/doc/tutorials/simple_model/img4.png differ diff --git a/doc/tutorials/simple_model/img5.png b/doc/tutorials/simple_model/img5.png new file mode 100644 index 000000000..665852a01 Binary files /dev/null and b/doc/tutorials/simple_model/img5.png differ diff --git a/doc/tutorials/simple_model/img6.png b/doc/tutorials/simple_model/img6.png new file mode 100644 index 000000000..321caa736 Binary files /dev/null and b/doc/tutorials/simple_model/img6.png differ diff --git a/doc/tutorials/visualize_tessellation.rst b/doc/tutorials/visualize_tessellation.rst new file mode 100644 index 000000000..db1765a08 --- /dev/null +++ b/doc/tutorials/visualize_tessellation.rst @@ -0,0 +1,312 @@ +.. _visualize_tessellation: + +Visualizing a Tessellation +========================== + +A tessellation can be visualized using the :ref:`neper_v`. The entities to show can be specified, so as their size, transparency and other properties. The crystals can also be visualized. Advanced visualizations can be realized. + +A simple tessellation is used in this tutorial, which is generated using the command + +.. code-block:: console + + $ neper -T -n 200 -morpho gg -oricrysym cubic -o n200 + +.. note:: + + To reproduce *exactly* the images below, add the following line to your :file:`$HOME/.neperrc` file (or to a local configuration file to be loaded with :option:`--rcfile`):: + + neper -V -imagesize 800:400 + +Generating a Tessellation Image +------------------------------- + +The tessellation can be visualized as follows: + +.. code-block:: console + + $ neper -V n200.tess -print img1 + +.. image:: visualize_tessellation/img1.png + +This generates a PNG image named :file:`img1.png`. By default, all cells and edges are shown, while other entities are hidden. Cells are colored from their ids and edges appear in black. + +Showing Specific Entities +------------------------- + +The entities to show can be specified using options :option:`-show*`, using any logical expression based on the :ref:`tessellation_keys` as arguments. For instance, only some of the cells can be shown: + +.. code-block:: console + + $ neper -V n200.tess -showcell "z<0.5" -print img2 + +.. image:: visualize_tessellation/img2.png + +By default, only edges that belong to a shown cell are plotted. However, the edges to show can also be specified. For example, to show all of them: + +.. code-block:: console + + $ neper -V n200.tess -showcell "z<0.5" -showedge all -print img3 + +.. image:: visualize_tessellation/img3.png + +The figure is not very clear, and only the domain edges can be added instead: + +.. code-block:: console + + $ neper -V n200.tess -showcell "z<0.5" -showedge "cell_shown||domtype==1" -print img4 + +.. image:: visualize_tessellation/img4.png + +:data:`cell_shown` (or :data:`cell_shown==1`) selects edges for which at least one cell is shown, :data:`domtype==1` selects edges that belong to a domain edge, and :data:`||` is the logical :code:`OR`. + +A logical expression can be arbitrarily complex. For example, the following command only shows the cells that have a volume larger than average (0.005, for a 200-cell in a unit cube), have at least 20 faces and are interior to the domain: + +.. code-block:: console + + $ neper -V n200.tess -showcell "(vol>0.005)&&(facenb>=20)&&(body>0)" -showedge "cell_shown||domtype==1" -print img5 + +.. image:: visualize_tessellation/img5.png + +It is also possible to fully hide the cells and visualize the tessellation based on the individual faces, edges, etc.: + +.. code-block:: console + + $ neper -V n200.tess -showcell none -showface "z<0.5" -showedge "face_shown||domtype==1" -print img6 + +.. image:: visualize_tessellation/img6.png + +Faces appear in white by default, but can be assigned colored, as will be covered in the following. + +The vertices can also be shown (as before, the domain edges are shown): + +.. code-block:: console + + $ neper -V n200.tess -showcell none -showedge "domtype==1" -showver all -print img7 + +.. image:: visualize_tessellation/img7.png + +Finally, the crystals can be shown (as before, the domain edges are shown): + +.. code-block:: console + + $ neper -V n200.tess -showcell none -showcrystal all -showedge "domtype==1" -print img8 + +.. image:: visualize_tessellation/img8.png + +By default, crystals are represented based on the cell crystal symmetry (as specified by option :option:`-oricrysym`), the cell size and the crystal orientations. + +Setting Color, Transparency, Size, etc. +--------------------------------------- + +The way entities are represented can be specified using options :option:`-data*`. The entities of a tessellation are the cells (which correspond to polyhedra in 3D and faces in 2D), polyhedra, faces, edges, vertices, seeds and crystals, and their properties include +the color (options :option:`-data<entity>col`, :option:`-data<entity>colscheme` and :option:`-data<entity>scale` and :option:`-data<entity>scaletitle`), +transparency (option :option:`-data<entity>trs`) and radius (or size) (option :option:`-data<entity>rad`). +Similarly to the :option:`-show*` options, the :option:`-data*` options can take (mathematical) expressions as argument. + +Coloring Cells by Orientations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following command colors cells by orientation: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol ori -print img9 + +.. image:: visualize_tessellation/img9.png + +.. note:: The orientation color key itself is not generated but can be obtained as detailed in :ref:`orientation_color_key` (:ref:`rodrigues_color_key`). + +The color scheme can be changed to IPF as follows: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol ori -datacellcolscheme ipf -print img10 + +.. image:: visualize_tessellation/img10.png + +.. note:: The orientation color key itself is not generated but can be obtained as detailed in :ref:`orientation_color_key` (:ref:`ipf_color_key`). + +Coloring Entities from Integer Values +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Just like the cell id (:data:`id`) is used to color cells by default, different integer values can be used, for example the number of faces: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol int:facenb -print img11 + +.. image:: visualize_tessellation/img11.png + +The different integer values are assigned colors using a color palette (see :ref:`color_map_for_integer_values`). + +(Mathematical) expressions can be used. For example, Euler's polyhedron formula, :math:`V - E + F = 2`, where :math:`V`, :math:`E` and :math:`F` are the number of vertices, edges and faces of a cell, respectively, can be verified as follows: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol int:vernb-edgenb+facenb -print img12 + +.. image:: visualize_tessellation/img12.png + +All cells are green, which represents effectively a value of 2 according to the color palette (see :ref:`color_map_for_integer_values`). + +Other entities can be colored in the same way. For example, to color the vertices from their cell numbers: + +.. code-block:: console + + $ neper -V n200.tess -datavercol int:cellnb -dataverrad 0.02 -showcell "z<0.5" -showedge "cell_shown||domtype==1" -showver cell_shown -print img13 + +.. image:: visualize_tessellation/img13.png + +The image shows the vertices having 1, 2, 3 and 4 cells in red, green, blue and yellow, respectively. + +.. note:: In options :option:`-data*col`, the data type may be omitted if it can be determined from the data value, as in :data:`-datavercol cellnb`. + +Coloring Entities from Real Values +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Cells can be colored from real values, for example from the cell equivalent diameters: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol real:diameq -datacellscale 0.00:0.50 -datacellscaletitle "Equivalent diameter" -print img14 + $ convert img14.png img14-scale3.png -gravity East -composite img14.png + +.. image:: visualize_tessellation/img14.png + +This originally produces a PNG file named :file:`img14.png` for the map and a PNG file named :file:`img14-scale.png` for the scale bar, which is included to :file:`img14.png` thanks to :program:`convert`. + +Again, mathematical expressions can be used: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol "real:x*sqrt(y)*sqrt(z)" -datacellscale 0.00:1.00 -datacellscaletitle "x*sqrt(y)*sqrt(z)" -print img15 + $ convert img15.png img15-scale3.png -gravity East -composite img15.png + +.. image:: visualize_tessellation/img15.png + +The color key (see :ref:`color_map_for_real_values`) can be changed using option :option:`-datacellcolscheme`: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol "real:x*sqrt(y)*sqrt(z)" -datacellscale 0.00:1.00 -datacellscaletitle "x*sqrt(y)*sqrt(z)" -datacellcolscheme heat -print img16 + $ convert img16.png img16-scale3.png -gravity East -composite img16.png + +.. image:: visualize_tessellation/img16.png + +Not only cells can be colored. For example, to color the edges from their lengths: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol lightgray -dataedgecol length -dataedgescaletitle "length" -dataedgescale 0.00:0.30 -print img17 + $ convert img17.png img17-scale1.png -gravity East -composite img17.png + +.. image:: visualize_tessellation/img17.png + +Crystals can be colored, for example, from the cell equivalent diameters: + +.. code-block:: console + + $ neper -V n200.tess -showcell none -showcrystal all -datacrystalcol real:diameq -datacrystalscale 0.00:0.50 -datacrystalscaletitle "Equivalent diameter" -showedge "domtype==1" -print img18 + $ convert img18.png img18-scalec.png -gravity East -composite img18.png + +.. image:: visualize_tessellation/img18.png + +Making Entities Transparent +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The transparency level of entities can be specified using options :option:`-data<entity>trs`. The transparency ranges from :data:`0` (fully opaque) to :data:`1` (fully transparent). The example below uses semi-transparency to show the tessellation interior: + +.. code-block:: console + + $ neper -V n200.tess -datacelltrs 0.5 -print img19 + +.. image:: visualize_tessellation/img19.png + +Again, this works for all entities. For example, to show all interior faces colored from their surface areas: + +.. code-block:: console + + $ neper -V n200.tess -showcell none -showface "domtype==-1" -showedge face_shown -datafacecol area -datafacetrs 0.5 -datafacescale 0.00:0.01:0.02:0.03:0.04:0.05 -datafacescaletitle "Surface area" -print img20 + $ convert img20.png img20-scale2.png -gravity East -composite img20.png + +.. image:: visualize_tessellation/img20.png + +Changing the Entity Radius +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The radius of entities can by modified using options :option:`-data<entity>rad`, and this works for vertices, edges, seeds and crystals. For example, to plot thick (and colored) edges: + +.. code-block:: console + + $ neper -V n200.tess -dataedgerad 0.05 -dataedgecol id -print img21 + +.. image:: visualize_tessellation/img21.png + +The following command plots small crystals in a tessellation for which cells are made gradually transparent: + +.. code-block:: console + + $ neper -V n200.tess -showcrystal all -datacrystalrad 0.5*radeq -datacelltrs "sqrt(z)" -dataedgetrs 0.75 -print img22 + +.. image:: visualize_tessellation/img22.png + +Changing the General Settings +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Neper uses POV-Ray, a ray-tracing software, to generate the PNG images. As such, properties such as the camera position, angle, etc., the type of projection, shadowing effects, etc. can be set. + +Camera Settings +^^^^^^^^^^^^^^^ + +The camera position can be changed using option :option:`-cameracoo`, for example to produce orthogonal views - option :option:`-camerasky` may also be needed, to define the vertical direction, and option :option:`-cameraangle` sets the opening angle along the horizontal direction: + +.. code-block:: console + + $ neper -V n200.tess -datacelltrs 0.5 -cameraangle 12 -imagesize 400:400 -print view -cameracoo 7:y:z -camerasky 0:1:0 -print xview -cameracoo x:7:z -camerasky 0:0:1 -print yview -cameracoo x:y:7 -camerasky 1:0:0 -print zview + $ convert +append view.png xview.png tmp1.png + $ convert +append yview.png zview.png tmp2.png + $ convert -append tmp1.png tmp2.png img23.png + +.. image:: visualize_tessellation/img23.png + +.. note:: Several images can be generated in a single Neper command by using option :option:`-print` several times. + +The camera projection type can be specified using option :option:`-cameraprojection` - in 3D, the default is :data:`perspective`, but :data:`orthographic` is also available: + +.. code-block:: console + + $ neper -V n200.tess -cameraprojection orthographic -print img24 + +.. image:: visualize_tessellation/img24.png + +The orthographic projection keeps parallel lines parallel. + +Scene Settings +^^^^^^^^^^^^^^ + +Shadowing can be turned on or off using option :option:`-showshadow`: + +.. code-block:: console + + $ neper -V n200.tess -datacellcol real:diameq -datacellscale 0.00:0.50 -datacellscaletitle "Equivalent diameter" -sceneshadow 0 -print img25 + $ convert img25.png img25-scale3.png -gravity East -composite img25.png + +.. image:: visualize_tessellation/img25.png + +While shadowing generally improves visualization, turning it off may be useful to render "true" colors, which closely match a color key. Shadowing not only generates shadows between objects, but also affects the color of objects depending on their orientation with respect to the light source. + +The background color of the scene can be specified using option :option:`-scenebackground` (see :ref:`colors`): + +.. code-block:: console + + $ neper -V n200.tess -scenebackground 41:128:185 -print img26 + +.. image:: visualize_tessellation/img26.png + +Finally, the image size (in pixels) can be specified using option :option:`-imagesize`: + +.. code-block:: console + + $ neper -V n200.tess -imagesize 200:100 -scenebackground 41:128:185 -print img27 + +.. image:: visualize_tessellation/img27.png diff --git a/doc/tutorials/visualize_tessellation/img1.png b/doc/tutorials/visualize_tessellation/img1.png new file mode 100644 index 000000000..577179936 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img1.png differ diff --git a/doc/tutorials/visualize_tessellation/img10.png b/doc/tutorials/visualize_tessellation/img10.png new file mode 100644 index 000000000..39ca80c60 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img10.png differ diff --git a/doc/tutorials/visualize_tessellation/img11.png b/doc/tutorials/visualize_tessellation/img11.png new file mode 100644 index 000000000..1427dd7b0 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img11.png differ diff --git a/doc/tutorials/visualize_tessellation/img12.png b/doc/tutorials/visualize_tessellation/img12.png new file mode 100644 index 000000000..dbeea1df2 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img12.png differ diff --git a/doc/tutorials/visualize_tessellation/img13.png b/doc/tutorials/visualize_tessellation/img13.png new file mode 100644 index 000000000..2dc1fab1d Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img13.png differ diff --git a/doc/tutorials/visualize_tessellation/img14-scale3.png b/doc/tutorials/visualize_tessellation/img14-scale3.png new file mode 100644 index 000000000..df75335a4 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img14-scale3.png differ diff --git a/doc/tutorials/visualize_tessellation/img14.png b/doc/tutorials/visualize_tessellation/img14.png new file mode 100644 index 000000000..dac8e22e2 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img14.png differ diff --git a/doc/tutorials/visualize_tessellation/img15-scale3.png b/doc/tutorials/visualize_tessellation/img15-scale3.png new file mode 100644 index 000000000..190177f1e Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img15-scale3.png differ diff --git a/doc/tutorials/visualize_tessellation/img15.png b/doc/tutorials/visualize_tessellation/img15.png new file mode 100644 index 000000000..2f0d07adf Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img15.png differ diff --git a/doc/tutorials/visualize_tessellation/img16-scale3.png b/doc/tutorials/visualize_tessellation/img16-scale3.png new file mode 100644 index 000000000..2ef329e08 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img16-scale3.png differ diff --git a/doc/tutorials/visualize_tessellation/img16.png b/doc/tutorials/visualize_tessellation/img16.png new file mode 100644 index 000000000..c4efddaf0 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img16.png differ diff --git a/doc/tutorials/visualize_tessellation/img17-scale1.png b/doc/tutorials/visualize_tessellation/img17-scale1.png new file mode 100644 index 000000000..75513552d Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img17-scale1.png differ diff --git a/doc/tutorials/visualize_tessellation/img17.png b/doc/tutorials/visualize_tessellation/img17.png new file mode 100644 index 000000000..86de40abb Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img17.png differ diff --git a/doc/tutorials/visualize_tessellation/img18.png b/doc/tutorials/visualize_tessellation/img18.png new file mode 100644 index 000000000..3420f64bb Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img18.png differ diff --git a/doc/tutorials/visualize_tessellation/img19.png b/doc/tutorials/visualize_tessellation/img19.png new file mode 100644 index 000000000..eca664207 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img19.png differ diff --git a/doc/tutorials/visualize_tessellation/img2.png b/doc/tutorials/visualize_tessellation/img2.png new file mode 100644 index 000000000..32ea95d17 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img2.png differ diff --git a/doc/tutorials/visualize_tessellation/img20-scale2.png b/doc/tutorials/visualize_tessellation/img20-scale2.png new file mode 100644 index 000000000..0c1ecdd71 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img20-scale2.png differ diff --git a/doc/tutorials/visualize_tessellation/img20.png b/doc/tutorials/visualize_tessellation/img20.png new file mode 100644 index 000000000..542584467 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img20.png differ diff --git a/doc/tutorials/visualize_tessellation/img21.png b/doc/tutorials/visualize_tessellation/img21.png new file mode 100644 index 000000000..6d0fa27ef Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img21.png differ diff --git a/doc/tutorials/visualize_tessellation/img22.png b/doc/tutorials/visualize_tessellation/img22.png new file mode 100644 index 000000000..3ae77ecb5 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img22.png differ diff --git a/doc/tutorials/visualize_tessellation/img23.png b/doc/tutorials/visualize_tessellation/img23.png new file mode 100644 index 000000000..23005de6a Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img23.png differ diff --git a/doc/tutorials/visualize_tessellation/img24-scale3.png b/doc/tutorials/visualize_tessellation/img24-scale3.png new file mode 100644 index 000000000..01ded81f8 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img24-scale3.png differ diff --git a/doc/tutorials/visualize_tessellation/img24.png b/doc/tutorials/visualize_tessellation/img24.png new file mode 100644 index 000000000..03acd54df Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img24.png differ diff --git a/doc/tutorials/visualize_tessellation/img25.png b/doc/tutorials/visualize_tessellation/img25.png new file mode 100644 index 000000000..f8d4cd915 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img25.png differ diff --git a/doc/tutorials/visualize_tessellation/img26.png b/doc/tutorials/visualize_tessellation/img26.png new file mode 100644 index 000000000..998f6376f Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img26.png differ diff --git a/doc/tutorials/visualize_tessellation/img27.png b/doc/tutorials/visualize_tessellation/img27.png new file mode 100644 index 000000000..1cc0661f0 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img27.png differ diff --git a/doc/tutorials/visualize_tessellation/img3.png b/doc/tutorials/visualize_tessellation/img3.png new file mode 100644 index 000000000..e2d47c4ef Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img3.png differ diff --git a/doc/tutorials/visualize_tessellation/img4.png b/doc/tutorials/visualize_tessellation/img4.png new file mode 100644 index 000000000..b771d4612 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img4.png differ diff --git a/doc/tutorials/visualize_tessellation/img5.png b/doc/tutorials/visualize_tessellation/img5.png new file mode 100644 index 000000000..508d4d147 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img5.png differ diff --git a/doc/tutorials/visualize_tessellation/img6.png b/doc/tutorials/visualize_tessellation/img6.png new file mode 100644 index 000000000..cbb5d38a7 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img6.png differ diff --git a/doc/tutorials/visualize_tessellation/img7.png b/doc/tutorials/visualize_tessellation/img7.png new file mode 100644 index 000000000..558897f24 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img7.png differ diff --git a/doc/tutorials/visualize_tessellation/img8.png b/doc/tutorials/visualize_tessellation/img8.png new file mode 100644 index 000000000..974293a82 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img8.png differ diff --git a/doc/tutorials/visualize_tessellation/img9.png b/doc/tutorials/visualize_tessellation/img9.png new file mode 100644 index 000000000..1a3c33589 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/img9.png differ diff --git a/doc/tutorials/visualize_tessellation/n200.tess b/doc/tutorials/visualize_tessellation/n200.tess new file mode 100644 index 000000000..69dadae22 --- /dev/null +++ b/doc/tutorials/visualize_tessellation/n200.tess @@ -0,0 +1,8593 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 200 + *crysym + cubic + *seed + 1 0.539735898005 0.330950058731 0.232932191939 0.132821103008 + 2 0.524578352405 0.243549627118 0.568739057115 0.098475163189 + 3 0.885985759058 0.068751321221 0.074420926842 0.212729823421 + 4 0.464041237453 0.876189373041 0.987808302533 0.294674420539 + 5 0.561200394335 0.109962855845 0.975871255193 0.107042106075 + 6 0.897700801233 0.344391217319 0.939657050179 0.138600987123 + 7 0.749396653875 0.459195994924 0.521465215608 0.118052605102 + 8 0.913314850918 0.747763158534 0.404056337288 0.174792291986 + 9 0.052649706240 0.296276495077 0.294812050804 0.118721764186 + 10 0.498605074043 0.569205887295 0.061976642976 0.096554005513 + 11 0.057398852685 0.920863324145 0.672535437448 0.114007258747 + 12 0.882783396599 0.595820831804 0.242482380152 0.113460289826 + 13 0.305223986180 0.902210235582 0.531471741807 0.102641058126 + 14 0.782759931609 0.560690587492 0.370933004283 0.079264375405 + 15 0.331325420665 0.307926456936 0.938500245367 0.157296563855 + 16 0.924252957537 0.492356462703 0.953056861256 0.088045800797 + 17 0.039357723937 0.183912215898 0.824606308500 0.106898650903 + 18 0.211710636325 0.783558198306 0.499303658718 0.111796098457 + 19 0.057910828594 0.927318516197 0.404410113916 0.115508066439 + 20 0.055351465702 0.448821063497 0.231609669064 0.119675610123 + 21 0.722397799315 0.055949243957 0.385436017886 0.182621547756 + 22 0.596373842819 0.584998801768 0.963740204976 0.113383469058 + 23 0.621668088363 0.290897189581 0.937176116185 0.104191022706 + 24 0.146028627238 0.383931895024 0.251631526191 0.091391785397 + 25 0.066576563735 0.260711272845 0.978945149125 0.161870237472 + 26 0.268916299511 0.262312219033 0.688803185075 0.114879230477 + 27 0.414435028994 0.626258068550 0.775966084256 0.109576714262 + 28 0.922172935592 0.180098345072 0.574695763705 0.220942367664 + 29 0.343776499514 0.498190139207 0.454278759987 0.149698183422 + 30 0.685395744566 0.328916993193 0.552594467630 0.107903162804 + 31 0.672460584527 0.921573496649 0.739810532164 0.128441760776 + 32 0.496614276498 0.902147943889 0.601652867377 0.182880284875 + 33 0.708402973384 0.405161062749 0.949159300975 0.120575323416 + 34 0.198518236711 0.075313942601 0.671172690015 0.091388940549 + 35 0.742099384391 0.720689277915 0.967598944225 0.130556440127 + 36 0.339972514746 0.209482335575 0.063969249101 0.118969045168 + 37 0.550913489333 0.372409636127 0.646223319804 0.089400404956 + 38 0.023878863531 0.113401097822 0.110352763585 0.182343757351 + 39 0.220047086887 0.724202518823 0.641145881816 0.083290918414 + 40 0.239289104390 0.889472121846 0.401779607695 0.106103171269 + 41 0.769941233717 0.487413843037 0.180891260546 0.087454149702 + 42 0.622310865121 0.191276471696 0.965099114910 0.099605148220 + 43 0.018629197764 0.061662300905 0.547411956585 0.193083721403 + 44 0.241282324688 0.748564787531 0.773327784414 0.057663554061 + 45 0.156962772371 0.351663977861 0.840366581728 0.060986227080 + 46 0.391762365956 0.515337114700 0.064873990279 0.107193256869 + 47 0.875027415764 0.497247389085 0.071143705758 0.114727520684 + 48 0.030796111847 0.937805030938 0.280405871339 0.110308094056 + 49 0.788242853788 0.856234805811 0.975233188379 0.118069690583 + 50 0.910758604081 0.119639783615 0.353172924075 0.155972313954 + 51 0.873901431390 0.966458370086 0.225338296287 0.333187994865 + 52 0.397388539951 0.094340013122 0.637796753218 0.116538583602 + 53 0.226532930700 0.438995014835 0.623104023310 0.135643311512 + 54 0.448686395687 0.261464675245 0.722294228823 0.062577297653 + 55 0.689196634394 0.247006926739 0.731316148662 0.140719006353 + 56 0.645223342459 0.072720354305 0.129149544871 0.104171067849 + 57 0.379314719117 0.238492241933 0.212046007036 0.083031893600 + 58 0.407417296339 0.545441457465 0.948792615996 0.157348979276 + 59 0.041102160703 0.912283255744 0.091501715845 0.184917055060 + 60 0.945427425228 0.753913460296 0.819028213525 0.076349538579 + 61 0.056163396583 0.979589243065 1.081997591725 0.376456876601 + 62 0.074136541203 0.613659511892 0.605207323257 0.105832265716 + 63 0.067059387506 0.791304368224 0.321209472818 0.144735835727 + 64 0.706278473799 0.226808046732 0.210517278090 0.128832371156 + 65 0.056899345760 0.625897181774 0.383993680898 0.163630117605 + 66 0.052001721852 0.077754098433 0.964730962537 0.182961875127 + 67 0.521077922429 0.191106420102 0.033220769390 0.101406763195 + 68 0.305839482550 0.379753736121 0.208066370772 0.116647298410 + 69 0.610532449559 0.422335025734 0.783845177417 0.079184634851 + 70 0.733209266472 0.276332141164 0.393227316480 0.141620507869 + 71 0.217208614564 0.351910962595 0.336729815713 0.076472128360 + 72 0.680329427625 0.589072613611 0.680593304535 0.131279739950 + 73 0.134687053643 0.264166666637 0.369967277748 0.080549742902 + 74 0.771925516527 0.942552156728 0.988646596368 0.101794606736 + 75 0.662617608080 0.543557930182 0.290304046250 0.062957647811 + 76 0.838874632592 0.315391316332 0.056445567805 0.155801884803 + 77 0.046749867184 0.291730250977 0.781127939236 0.103046322873 + 78 0.478053006974 0.536514202571 0.230178434222 0.143635426967 + 79 0.414411003756 0.627017387864 0.073297953994 0.074954671734 + 80 0.102814731762 0.936043695392 0.539957905807 0.116576080404 + 81 0.372561835582 0.843511364159 0.262006484149 0.159414535006 + 82 0.049696995278 0.582424274079 0.948801133026 0.134789771231 + 83 0.090151459231 0.055687453747 0.307757079222 0.199299805039 + 84 0.561029866648 0.895882379928 0.388195630584 0.173075168344 + 85 0.789967034629 0.451840097163 0.331046768491 0.075234416523 + 86 0.650586685189 0.157212679948 0.042642897094 0.120678243452 + 87 0.336235590154 0.631653625259 0.623324528516 0.098209652208 + 88 0.691333095766 0.785957031221 0.653894379183 0.080968339993 + 89 0.768891900447 0.936829859040 0.902639879366 0.087166701088 + 90 0.650671897327 0.062123331929 0.035602418547 0.110715709038 + 91 0.370251398714 0.906437280175 0.454652906957 0.083175932888 + 92 0.665154504325 0.531478894565 0.852609397975 0.068541816742 + 93 0.150711286932 0.918827317273 0.256177074353 0.105265195679 + 94 0.212217584379 0.628649220999 0.535079734796 0.087677583267 + 95 0.215619287031 0.336764469041 0.064870655836 0.092251780546 + 96 0.739077342741 0.595994860196 0.229613222766 0.042472088998 + 97 0.060160711539 0.495369548072 0.746052319230 0.131203731661 + 98 0.630432738003 0.710498678464 0.235969003537 0.123890255089 + 99 0.229148214267 0.082310437726 0.073543661039 0.122703383129 + 100 0.729777675193 0.909287713246 0.541780554091 0.144107741345 + 101 0.233457739430 0.098098972380 0.512853169481 0.117211738679 + 102 0.107853220608 0.172178744947 0.739711966526 0.086744530282 + 103 0.033429409769 0.410147018028 0.941306202160 0.132240217988 + 104 0.495612633296 0.071978264056 0.356238253131 0.205832515190 + 105 0.891471818410 0.318776729598 0.765066418938 0.138540834915 + 106 0.409149075050 0.069969736591 0.061280404635 0.124695784631 + 107 0.487276278139 0.680067829432 0.422385569930 0.170328082227 + 108 0.555136065193 0.446086445298 0.068641185102 0.136679871151 + 109 0.900348106772 0.427463111955 0.240095416667 0.084011922870 + 110 0.595932546919 0.128390688345 0.814259948933 0.143184836958 + 111 0.131447897194 0.226808758951 0.438778806814 0.074513393558 + 112 0.238500702468 0.437638707442 0.068458302579 0.092936974796 + 113 0.901648370660 0.946646710048 0.979533552149 0.130719872969 + 114 0.694293213274 0.401819706087 0.649400992216 0.037601568434 + 115 0.637002604097 0.460069792387 0.190226095935 0.065326024294 + 116 0.239422088420 0.316221117376 0.477757165917 0.080948270855 + 117 0.298938842080 0.902973083537 0.060510329732 0.186051981386 + 118 0.061047270693 0.781331240765 0.548727622548 0.133089748848 + 119 0.356155149848 0.226757336115 0.503412851521 0.040845132992 + 120 0.352995652485 0.775040050561 0.567581550917 0.125830011482 + 121 0.277763944081 0.206657153429 0.354490065395 0.102901164270 + 122 0.075694611412 0.300249129783 0.064247023319 0.114828374731 + 123 0.504351572478 0.186521564690 0.131947811307 0.114206024900 + 124 0.713933398195 0.472196204873 0.059369133377 0.123044291290 + 125 0.904338778714 0.914275770408 0.794036278497 0.126101984354 + 126 0.370158136744 0.845138393743 0.465485724633 0.102448420266 + 127 0.527377440555 0.664688869081 0.767990698978 0.091891948067 + 128 0.894039049361 0.682989563367 0.665704000955 0.171943643228 + 129 0.699460754016 0.399575186999 0.260048442146 0.048439647036 + 130 0.256621961041 0.631175402249 0.904613499443 0.130191209878 + 131 0.179203257055 0.224701368013 0.059023750110 0.081294211519 + 132 0.905740097691 0.341366814193 0.405102476733 0.128840631263 + 133 0.519178607467 0.302030893369 0.831681711382 0.075772582520 + 134 0.759593208414 0.778086888172 0.815504511314 0.129785930435 + 135 0.233680566419 0.625412107494 0.710437581351 0.070490743490 + 136 0.203096155621 0.455610936323 0.949915831162 0.118095222697 + 137 0.517328701993 0.733167116075 0.721556260318 0.064748974398 + 138 0.687445615734 0.385959660540 0.155170013804 0.073286976734 + 139 0.644280972358 0.658336766822 0.846859310361 0.099359856966 + 140 0.941211771803 0.465748760420 0.600264226337 0.163008033192 + 141 0.782303933966 0.453436912545 0.769125153056 0.102810131273 + 142 0.786211595694 0.690694380518 0.065195194660 0.183592362627 + 143 0.781362287149 0.595003425739 0.841771918683 0.078060203669 + 144 0.073860896339 0.439952089808 0.453983930219 0.173866186894 + 145 0.258814554709 0.898484920962 0.694412290531 0.152848128514 + 146 0.517801996634 0.601723768102 0.571858647871 0.174626276122 + 147 0.891293394265 0.274259089962 0.243645241046 0.089441622938 + 148 0.059694405397 0.332659647416 0.173875829380 0.111990484868 + 149 0.713971650690 0.097784230891 0.622330899968 0.054150928391 + 150 0.740971058376 0.574469381388 0.955073486611 0.087812495574 + 151 0.323514237716 0.719390067198 0.730334758530 0.075776871850 + 152 0.403270030236 0.368086991910 0.580906730897 0.103642552644 + 153 0.474866297104 0.174840001595 0.035140922179 0.102706300776 + 154 0.905096019792 0.508971212098 0.392341189208 0.100775561279 + 155 0.097235496324 0.687571957140 0.093156457788 0.251852386119 + 156 0.533149425819 0.073235508707 0.043971724594 0.130895843571 + 157 0.322432923231 0.080788140964 0.914178189270 0.207250864763 + 158 0.048252523622 0.243779012645 0.414095171223 0.105594040406 + 159 0.758607973392 0.664746850241 0.290495221561 0.072990115747 + 160 0.538559693678 0.686679052562 0.080020634873 0.091763791337 + 161 0.056044035163 0.058065526616 0.788041118266 0.139694890631 + 162 0.327788457849 0.672431981668 0.493829549289 0.101070242187 + 163 0.069222941467 0.282871659186 0.589816611602 0.139262966123 + 164 0.662911338513 0.200948201910 0.524935845916 0.100208731970 + 165 0.033869191543 0.177718927674 0.738810922317 0.088705317749 + 166 0.373212955937 0.454214080464 0.750112921750 0.152720260354 + 167 0.845509913817 0.493635439022 0.943786920928 0.096027832516 + 168 0.786416396470 0.361852768628 0.647313737110 0.082565916501 + 169 0.903362476055 0.792910217966 0.968171799055 0.123911670357 + 170 0.649193018201 0.434547511686 0.573418093070 0.058513138318 + 171 0.555065990511 0.921052955333 0.120777985090 0.152094736574 + 172 0.689810965404 0.107429826554 0.971656105257 0.120289527171 + 173 0.595897636793 0.102369630933 0.580735564992 0.040972534870 + 174 0.184660486445 0.242719634514 0.202589693994 0.128134993444 + 175 0.439079376245 0.337424203532 0.049591491776 0.150895874069 + 176 0.905395744570 0.646188235364 0.946743145782 0.131132046442 + 177 0.071102534287 0.425906974759 0.066913641633 0.128574272133 + 178 0.156527490924 0.404501295251 0.156639879788 0.101521471631 + 179 0.673191079974 0.703226242681 0.460648168311 0.160238920239 + 180 0.635462528120 0.575330002347 0.101587469450 0.128623183321 + 181 0.426493313024 0.726253054093 0.705271331205 0.099416449868 + 182 0.733778753228 0.238362898687 0.941598503314 0.126059012997 + 183 0.524743575091 0.574781788984 0.822886445291 0.103278257607 + 184 0.608645711140 0.747453216337 0.732309044776 0.078196240650 + 185 0.907028178823 0.918620365126 0.587755653534 0.124757493165 + 186 0.921670718945 0.492922719938 0.824352069825 0.102894823796 + 187 0.522060649874 0.234954837148 0.956110683347 0.101724590639 + 188 0.316086452473 0.106210048652 0.191617005781 0.108584201353 + 189 0.524933894263 0.424447578682 0.947610106229 0.129203262305 + 190 0.131004297878 0.212104112370 0.841265827629 0.092728137950 + 191 0.890411017090 0.091238550042 0.869772710835 0.215715667960 + 192 0.328331137031 0.763153752984 0.442062129979 0.090101967736 + 193 0.827211756426 0.574676058975 0.464312596940 0.022834474388 + 194 0.245705503587 0.595053543504 0.291091841117 0.190104675540 + 195 0.057049266336 0.727017353810 0.753407907675 0.138898243431 + 196 0.614544828608 0.319646543175 0.052223808063 0.129787512309 + 197 0.572587708282 0.422679259810 0.431437493744 0.167391816573 + 198 0.798309952266 0.900588886242 0.673322379707 0.105420186740 + 199 0.399012685518 0.320934325249 0.382320461231 0.109433952684 + 200 0.795483327368 0.363941612417 0.243289290574 0.067909892645 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + 3.025870470579 -3.260987336705 -0.843736391301 + 0.242934208754 -0.020187203509 -0.393571772734 + 0.055030738647 0.084422216651 0.878364793330 + 0.285266736746 0.631675397064 0.911518136412 + 1.177596922200 3.875092960223 -14.103935694478 + -3.736039302294 -5.332610685121 4.954157482771 + 0.099311183162 1.094908058291 0.055424909656 + -0.489586984085 0.315276118450 0.029241362534 + 0.296459279759 0.043757222958 -0.761907710218 + -0.055161844221 -0.392513618555 0.321596650650 + -20.903774357556 -12.791791766022 4.586490934117 + -0.320522986345 -0.438220546055 0.441208828865 + 0.659360141903 -0.913310708591 -1.165179922014 + -1.960637647584 1.606584227750 -0.597902058430 + -2.015373283272 2.242342313914 -1.464781408033 + -3.219388849611 3.617776175957 -5.060419107574 + -11.465080942255 -4.093596653481 4.346751592768 + 0.192919726527 -0.777760594060 0.436096923141 + 2.144334771844 -1.416116991098 -1.187006566465 + 0.092675411574 0.579567725796 -0.533627865686 + -1.254628225715 -1.775907980415 0.082998493977 + -0.203472384986 -0.326617192941 -1.521607841917 + -0.937181221070 0.012402241831 0.108341486992 + -22.959655343129 5.364775436224 36.035413871002 + 18.341748821792 -9.737999941692 2.703372426681 + 0.474498955987 -1.414446042389 -0.212038321698 + -1.227694844808 0.847163587571 -1.572813645830 + 1.361579825138 0.619563310043 0.549621906582 + -0.004580561539 0.708557911707 0.315004450317 + 0.402987252663 -0.015297318226 -0.773388138891 + -1.619747636373 4.219027584677 3.984082339136 + 0.476264942285 0.326385467931 -1.398453116348 + -2.033813688018 -2.485209299220 -0.386523095183 + -2.149107525391 1.285467800905 -0.933048267957 + 1.324912888375 7.506230824620 -0.961003158598 + -2.807878947259 -9.012639678577 -8.523691535605 + -0.993210326145 0.349897278074 1.060808851763 + 7.712611763000 -70.575137747260 48.754611411737 + 0.241653882232 1.461254269764 1.063727215751 + -0.416517026271 -0.345827831988 1.189613744678 + 2.889909264499 -2.102773507725 -0.870410622955 + -1.096002653539 -0.270571260964 0.330418625999 + 0.697873575776 -1.355549961246 -0.953082096392 + -2.124329622192 2.085507605896 3.153481939293 + -1.686925841894 -0.696816462800 6.836095610277 + 2.545764968380 1.479588863856 -1.588458681770 + 2.159239970701 -0.843991132833 0.662147588658 + -0.100071880938 -0.125812871761 0.305064665171 + 5.165833636173 -0.821116537829 -2.408152447937 + 0.140916089057 -0.357744076383 -0.037887429420 + 0.260364210870 0.076212182689 2.666486754135 + 15.963279406983 17.310896267663 -4.671755161642 + -0.744501163245 -0.633290752383 -0.697190900781 + -1.603740008695 -0.729215970001 0.206644366570 + 222.535824696512 -331.663965021475 -46.955104573674 + -0.040240380668 -0.066689857096 -0.096571817630 + 5.422549947933 -4.123346176228 4.020706291191 + -2.473438894494 -2.160080284956 -2.389002590875 + 0.742487860569 -0.203807213127 -0.535613201193 + 6.033857566421 -4.686897723293 3.943480591652 + 6.047289458289 -0.845343151708 -10.211208624186 + -4.608043931507 7.197843536019 5.191150571771 + -0.160250316551 -0.051671881597 0.385828310033 + -0.090338898337 -1.239813080373 -0.064890171770 + 0.447433439869 -1.257724271334 -0.934996907147 + 21.502918360850 10.996310030879 -13.741801284725 + -3.221472309330 2.416588388012 -9.571945170774 + -2.368199955591 2.756249365467 -0.219821602484 + 0.240785969797 0.173466011539 0.395480716764 + 0.357988183915 -0.255490547549 0.315175922422 + -5.603028018850 5.584819098411 3.393925184137 + -0.361387600405 -0.877832404895 7.394220300901 + 0.605333754107 0.489313681803 0.161769324022 + 0.662151327606 -1.400289271863 0.485878274969 + -0.835427011184 -0.968055436346 -2.218990981868 + -3.795104912361 2.848424423732 1.155800530195 + -0.512461770555 -1.163608884801 0.441915596997 + -1.324578447616 0.654623261434 -0.390027808876 + 0.023661034163 -0.029966879570 0.056145834991 + 1.717280971322 0.709088680685 0.963055545931 + -0.194848380689 -0.490091707088 1.588753615983 + 2.521565694336 1.691488362440 3.525411646535 + 1.510154049717 -5.571858162747 -3.113324350107 + -33.146103700485 -19.879703749573 -136.747744015755 + 0.076134982585 -0.024895747656 -2.321943733954 + -0.515580103446 -0.421576284740 0.942528992225 + -9.515897839247 2.691965740933 -27.840737255867 + 0.485183058199 -2.230124310946 0.936571628836 + -0.675151170250 -1.041380730813 1.729696111891 + -0.607066015371 -1.092516344830 -1.577216773996 + -0.270145426418 -0.532108231652 0.531448468212 + -1.863683011132 0.827537728542 0.048328864351 + -0.087919732871 0.467007126734 0.178970257805 + -2.781315259210 -0.326914976957 0.258829773146 + -28.978327239767 -38.088369880918 6.394222300210 + -0.315218409879 0.793404563118 0.125347970525 + -0.845397503219 0.204948534057 0.480508136680 + 0.192469416108 2.505351096374 0.756925515063 + 28.240959232402 -18.574003470999 24.140422358393 + -0.203208368361 0.177531961367 -1.334731909142 + -0.665209486354 -1.210159573593 -2.061666060906 + 0.362180934267 0.211819100716 -0.916306571503 + 0.232527906851 1.198984152134 0.405709974220 + -1.256180533640 0.552943508635 -0.025989104268 + -1.288968986184 1.000432190128 0.000915319563 + 0.938629119655 0.218579286548 1.320020456584 + 1.769492646439 -3.081999712070 -14.479453823646 + 2.399085373714 -1.112428889066 1.684817229020 + -0.411122559013 0.419883260416 0.531992660335 + 1.905961646238 2.822220513831 -2.379346082816 + -1.991319515669 -2.607080946877 -1.665399470604 + 1.067630471109 -0.774696988386 -1.048931390846 + -1.766333690064 0.257354922320 0.323578404978 + 1.511438148821 -2.361392593868 -0.907760930751 + -8.738416633053 1.720027490319 -1.067647144569 + 1.535673210341 0.836020685683 -0.012024105447 + -0.349365422114 -1.095883950821 -0.410672518454 + 3.155509822734 -0.331212438673 -6.435444739395 + -0.348933189705 -0.186696662360 0.093825374382 + -0.520381208267 -1.628909026566 0.708788397168 + -0.033222794403 -3.630936832258 -2.329598934132 + 1.018453883170 2.300222080776 -0.284562151890 + -0.188442809904 -0.078869129335 0.496326246095 + -0.368635022919 1.045825752368 0.438439251231 + 0.869134736483 -0.264777855429 -0.588457472105 + -0.368658235127 0.638382850542 -0.294650063479 + 1.057268569399 1.999676839212 2.532631867310 + 0.349352648571 0.035170618836 -0.993293040013 + -6.881946273656 -1.665717457676 -2.603110622003 + 0.497998922999 -0.541303780721 -0.158962311990 + -2.861477214373 2.356427006179 1.770323331414 + 2.440628375467 0.712266081102 -1.778238484658 + -4.302731779941 10.279995293905 -0.292215938294 + 73.758834618238 65.463945186435 30.647016988570 + 1.110519706535 -0.865966047281 0.133062291595 + -5.693757159642 -3.793459704204 0.832835817444 + 0.976094217485 -0.999864127478 -0.024305934160 + -0.175621075538 -0.089468431072 0.156238843978 + 2.635674830127 1.758372198343 1.879993951981 + -0.919658042116 -1.890972797257 0.228471386287 + 0.063728593531 -0.159262946458 -0.862441150856 + 0.815473801258 -1.052257493292 -0.808981156378 + -1.773839980471 1.240718412804 -3.450414105373 + -5.217572804827 -3.569882656935 9.144922111221 + -0.017835152109 -0.880633190064 -0.583436283354 + 0.244585203235 0.393314705837 -0.760211503261 + -17.860912078968 -14.030084811142 -8.560909916115 + -0.476621838632 -0.530642665969 -0.184441072394 + -2.420236443947 -0.124658632942 0.589323712585 + -0.166328814339 -0.185946361101 -0.341668491016 + 2.752960052265 1.646056554286 3.922615921431 + -0.610352625534 0.844077270241 -0.679924122869 + 0.067974489371 -3.786168090874 3.966146306053 + 0.679278558451 0.156990237107 0.809511716187 + -0.394769986793 1.289362423122 -0.528021983899 + 1.030738255423 2.408916081039 -0.092863279073 + 2.635361928389 -0.745665628280 0.441462382751 + -1.365897316944 -0.967393314589 0.191682984210 + 0.812645762485 0.454157578072 0.214943910117 + -0.566993855679 -0.545090136576 2.201748036253 + -0.683241541669 -0.624321034443 0.986791632335 + 0.185274815576 -0.806104466186 -0.183564036522 + -2.696585300219 0.280801972827 0.479389770976 + 0.736834289836 1.696316430838 -1.593864291448 + -0.016779536430 0.242536301729 -0.070951458423 + -0.366664955227 -0.923891583082 0.386481065934 + -0.565976105817 -0.984343366251 0.899767740499 + -0.999123889531 -0.179505761100 0.151856089802 + -4.124720706352 -1.846901535704 -1.737877533434 + -0.229039201901 2.028991993215 1.898411754978 + -1.028292565606 0.293268853434 0.277032125810 + 29.911431884095 -45.186600257783 -52.598572524305 + -4.033246909287 -0.346283345467 -0.295081664236 + -0.064834013860 0.398080311160 -1.418619308118 + 0.058644344373 -0.698706670279 0.192198554354 + 3.437304940763 -0.085846550249 3.622362623350 + 0.102179349405 0.409211755028 -0.243693226760 + -0.519889563676 0.001692767811 0.395406348422 + -0.614818990650 -0.539785392180 -1.777030225498 + 0.074390634235 0.362439176227 -0.816512192652 + 0.884332995836 0.452037696803 0.972343561937 + -0.504180729400 -1.195629221461 -0.950921834546 + -1.501899882177 -0.628348218198 -3.227287503215 + -11.039738546030 0.618066298336 0.461806977740 + 3.057581276584 13.307572642740 0.982836876496 + -1.042151128935 2.059856849095 -1.037167120760 + 1.766296112651 -5.462503109126 2.562361361677 + -0.138870763286 -0.028273083884 0.132115065398 + 2.432081733243 2.499894036349 -0.627498561359 + -3.080501621756 5.955788138965 5.849965385688 + 0.073644442203 1.726743106562 -1.412018467766 + -6.828020952353 -5.184216002913 -1.824321453835 + -0.452070259261 1.626289898002 0.217027827701 + 1.558306107109 -1.143466154883 -0.846916878754 + 1.007443654280 2.254197115375 -0.005614444947 + -0.894599617409 0.141038766734 -0.177061506869 + -3.952508816289 1.048357140885 1.929535144996 + -0.468063816503 4.877106487374 -18.233153172223 + **vertex + 1013 + 1 0.655669778999 0.401129751314 0.225271641119 0 + 2 0.595862708500 0.245222407583 0.153133205915 0 + 3 0.652825843947 0.332415503944 0.171260548184 0 + 4 0.674798080615 0.355114080128 0.229054100543 0 + 5 0.626754272422 0.382716991850 0.157321128319 0 + 6 0.626669664302 0.405863819113 0.173534669910 0 + 7 0.443099281744 0.265100124319 0.178231365769 0 + 8 0.544573241810 0.348240987940 0.125456668874 0 + 9 0.537423224396 0.277883704366 0.126897661744 0 + 10 0.581924102068 0.447935492629 0.198824498039 0 + 11 0.475019560664 0.415417509566 0.166014723586 0 + 12 0.635888613906 0.430219629306 0.268170166124 0 + 13 0.601158687956 0.454562413225 0.262669037576 0 + 14 0.445570088320 0.408505550487 0.309701163644 0 + 15 0.409001189599 0.319599196595 0.198876155693 0 + 16 0.401842405282 0.317665803511 0.262419494471 0 + 17 0.416835305232 0.399512524329 0.282030164046 0 + 18 0.426777178610 0.401289714286 0.192001561110 0 + 19 0.672699582914 0.341899701808 0.274857655270 0 + 20 0.660775176517 0.361348248473 0.295876973235 0 + 21 0.458620856322 0.227130190987 0.227097535087 0 + 22 0.431829656946 0.260125974633 0.286809621048 0 + 23 0.506248085501 0.281507317981 0.358345024876 0 + 24 0.586581875754 0.265099948932 0.352631950357 0 + 25 0.614183435892 0.240552434641 0.310953197207 0 + 26 0.578448754040 0.203091943976 0.219490204922 0 + 27 0.471742369547 0.301774899226 0.651234810111 0 + 28 0.395083819549 0.232896211328 0.591950692883 0 + 29 0.405444600273 0.239689805832 0.625711671057 0 + 30 0.577541812594 0.328470622281 0.570879732618 0 + 31 0.507475067891 0.344750577077 0.567619485993 0 + 32 0.598567682143 0.277733357057 0.512037655142 0 + 33 0.601422016276 0.169729646927 0.626092319321 0 + 34 0.620596796043 0.253794279357 0.604889111097 0 + 35 0.602017653332 0.292197515440 0.622884851041 0 + 36 0.538071552905 0.265997242503 0.688190973108 0 + 37 0.456024713546 0.301859210745 0.493671216074 0 + 38 0.426306398466 0.272160213546 0.501360106295 0 + 39 0.514063791495 0.120724393836 0.568722676860 0 + 40 0.423383358440 0.181159804154 0.532288171072 0 + 41 0.437038758893 0.241749459215 0.481507242257 0 + 42 0.488586406036 0.264403344413 0.456190290372 0 + 43 0.572165161895 0.245172150285 0.460324879078 0 + 44 0.567155127371 0.145246967744 0.541686543135 0 + 45 0.535084439663 0.218818942261 0.692218865127 0 + 46 0.506177444534 0.180083181633 0.682451330822 0 + 47 0.537924841307 0.140063015639 0.654453755060 0 + 48 0.575725231715 0.158978892045 0.652340353821 0 + 49 1.000000000000 0.000000000000 0.000000000000 0 + 50 0.709136328025 -0.000000000000 -0.000000000000 0 + 51 0.692618046235 -0.000000000000 0.100132149534 0 + 52 1.000000000000 0.256111044183 -0.000000000000 0 + 53 0.691736807507 0.093857069923 0.089448689903 0 + 54 0.706305783756 0.100492966047 -0.000000000000 0 + 55 0.746596459247 0.207708001319 -0.000000000000 0 + 56 1.000000000000 0.267015826617 0.149624576664 0 + 57 0.735812623816 0.212427578426 0.093020401203 0 + 58 0.831857037221 0.237863134763 0.190301628287 0 + 59 0.702697070165 0.139163249898 0.134379435193 0 + 60 1.000000000000 0.207775627506 0.221566491137 0 + 61 1.000000000000 -0.000000000000 0.259497635349 0 + 62 0.833402190321 0.198490980270 0.238067119608 0 + 63 0.853636152103 -0.000000000000 0.272505071913 0 + 64 0.715255643745 -0.000000000000 0.199719584384 0 + 65 0.718064853124 0.095709756165 0.205136802303 0 + 66 0.799286323759 0.149369744753 0.250066499899 0 + 67 0.722604369638 1.000000000000 1.000000000000 0 + 68 0.550574821029 0.736403829880 0.748151068470 0 + 69 0.595738923217 0.709023911349 0.787508195364 0 + 70 0.650709290895 0.656328775748 1.000000000000 0 + 71 0.648179359172 0.661074027751 0.928678820837 0 + 72 0.498162366884 0.725552283652 0.743490393764 0 + 73 0.722802475449 1.000000000000 0.927240709340 0 + 74 0.735714863573 0.808331846866 1.000000000000 0 + 75 0.741979378965 0.910111353879 1.000000000000 0 + 76 0.739966951107 0.920307600320 0.931937472793 0 + 77 0.702047593547 1.000000000000 0.852950975270 0 + 78 0.468595023872 0.696701620525 0.762730192944 0 + 79 0.324747585452 0.688956583547 0.805551936813 0 + 80 0.367751853280 0.712434301433 0.767782811295 0 + 81 0.290596641531 0.717425317375 0.806854020047 0 + 82 0.360009997798 0.643831242751 0.850533531089 0 + 83 0.310969339248 0.634595624345 1.000000000000 0 + 84 0.523008331688 0.598294614251 1.000000000000 0 + 85 0.562854477517 0.653190027686 0.831754508871 0 + 86 0.489547366024 0.646418800967 0.817147506578 0 + 87 0.467483088237 0.625905876621 0.846515340596 0 + 88 0.528672375989 0.609164359601 0.899633545482 0 + 89 0.570081695565 0.629847545455 0.877074821959 0 + 90 0.722599630236 0.893589619640 0.850749746659 0 + 91 0.735289077427 0.875129394546 0.883026372967 0 + 92 0.732714654947 0.814237490631 0.913279749329 0 + 93 0.678451048719 0.722515529643 0.872424214855 0 + 94 0.640354215984 0.739550708219 0.797377767768 0 + 95 0.643918386298 0.802094502153 0.767881585468 0 + 96 0.353794386777 0.786023144296 0.730585674695 0 + 97 0.292147068911 0.772190861200 0.772656035948 0 + 98 0.546593259463 0.780134854825 0.723863265251 0 + 99 0.499048555089 0.771026424973 0.719240470461 0 + 100 0.382917798261 0.813222570074 0.712281148360 0 + 101 0.385007132039 1.000000000000 0.725013148613 0 + 102 0.568201974591 1.000000000000 0.740466026434 0 + 103 0.595548788576 0.821420830964 0.730768140996 0 + 104 0.337606246225 1.000000000000 1.000000000000 0 + 105 0.289527576621 1.000000000000 0.791799851999 0 + 106 0.242250230917 0.797406567470 0.809474397774 0 + 107 0.237819772678 0.750092273415 0.842229779426 0 + 108 0.256634455890 0.680593418486 1.000000000000 0 + 109 0.612516701456 -0.000000000000 1.000000000000 0 + 110 0.615396410255 0.146212676867 1.000000000000 0 + 111 0.559828001757 0.187974583142 1.000000000000 0 + 112 0.609768968644 -0.000000000000 0.916162534807 0 + 113 0.561609175795 0.176829458306 0.925975526248 0 + 114 0.613050678759 0.139063179273 0.932724580452 0 + 115 0.505218987848 -0.000000000000 1.000000000000 0 + 116 0.531241586878 -0.000000000000 0.899286085574 0 + 117 0.508531610129 0.158067245210 0.912429165660 0 + 118 0.485109473734 0.164577369474 1.000000000000 0 + 119 1.000000000000 0.436259951156 1.000000000000 0 + 120 0.887545294287 0.456439790790 1.000000000000 0 + 121 0.899422700750 0.463358792337 0.900062582450 0 + 122 1.000000000000 0.445500195105 0.897966101499 0 + 123 1.000000000000 0.399415400013 0.838601416280 0 + 124 0.774451199360 0.338001066829 0.855658667674 0 + 125 0.811141482877 0.429721284211 1.000000000000 0 + 126 0.779860503714 0.332281157999 1.000000000000 0 + 127 0.835782666344 0.442223278365 0.859606948856 0 + 128 0.805240594142 0.431166417912 0.873204149473 0 + 129 0.785785686357 0.374201640544 0.849943232266 0 + 130 0.848291254275 0.425166964186 0.840235971610 0 + 131 1.000000000000 0.242425569297 1.000000000000 0 + 132 1.000000000000 0.282234739670 0.855793189768 0 + 133 0.808147688269 0.286023194111 0.862082218147 0 + 134 0.834906018139 0.247179615557 1.000000000000 0 + 135 0.688705888185 0.417841076851 0.614419694110 0 + 136 0.720119898855 0.404177402532 0.621822229756 0 + 137 0.733162396698 0.483513544545 0.395662107497 0 + 138 0.661570672906 0.418771498760 0.562524325295 0 + 139 0.816156060634 0.534125371119 0.448180882766 0 + 140 0.843275364111 0.531542612785 0.479886066631 0 + 141 0.801067012456 0.482696597225 0.410161361844 0 + 142 0.687998140624 0.458678775864 0.632429639016 0 + 143 0.743108738925 0.424510901023 0.400060548495 0 + 144 0.714290069460 0.372607161285 0.477711671196 0 + 145 0.789389589969 0.413192464586 0.410358337598 0 + 146 0.817045745404 0.445294050633 0.415010643006 0 + 147 0.853911803257 0.448927014491 0.460864645252 0 + 148 0.775332717927 0.462876696446 0.650984386426 0 + 149 0.774482060697 0.481273766671 0.651525221008 0 + 150 0.741232441205 0.458818682688 0.655421022134 0 + 151 0.743357213262 0.456002541591 0.655073211104 0 + 152 0.705523431935 0.539453478203 0.427253182094 0 + 153 0.774089610345 0.569742070190 0.462871610266 0 + 154 0.656734036807 0.494886782002 0.589307784259 0 + 155 0.646272436632 0.486438951945 0.565122086922 0 + 156 0.668077618213 0.545478757516 0.498350519448 0 + 157 0.690437488340 0.564595957355 0.547041279840 0 + 158 0.818949706078 0.575433781960 0.535450475178 0 + 159 0.792010701666 0.593264358530 0.534799844158 0 + 160 0.769608353757 0.592256864724 0.558828054683 0 + 161 0.791775944845 0.548943937035 0.603800571295 0 + 162 0.789311172898 0.356513957409 0.564601401147 0 + 163 0.786888184527 0.344373023585 0.508808791791 0 + 164 0.806203392040 0.353407949597 0.493487079964 0 + 165 0.835743246413 0.375079101673 0.511232180225 0 + 166 0.811929824680 0.371450636602 0.569501322645 0 + 167 0.811557901769 0.625230899894 0.328689477003 0 + 168 1.000000000000 0.585875639423 0.330090188697 0 + 169 0.856170542671 0.589667584964 0.353702691265 0 + 170 0.841813031389 0.586510753841 0.428121537975 0 + 171 0.781301755066 0.641102286784 0.358305688624 0 + 172 0.806940830835 0.608491104701 0.441429878101 0 + 173 1.000000000000 0.804952980028 0.566039507547 0 + 174 0.819549975054 0.625505381846 0.508321488061 0 + 175 0.840905464812 0.810282223916 0.555638190124 0 + 176 0.800300544448 0.774291331907 0.543736872863 0 + 177 1.000000000000 0.653181334799 0.266796671976 0 + 178 1.000000000000 0.857661060185 0.517016160457 0 + 179 0.846365150414 0.839488589109 0.528660437458 0 + 180 0.783732424284 0.798896185599 0.492800630993 0 + 181 0.771746484944 0.676386024428 0.345529663767 0 + 182 0.816066270844 0.650497956017 0.304076708758 0 + 183 1.000000000000 0.619372808890 0.520097209772 0 + 184 1.000000000000 0.579374381189 0.462606491290 0 + 185 0.888514259854 0.582232353336 0.482565414381 0 + 186 0.875259987442 0.596742029307 0.505305024629 0 + 187 0.095040937883 0.363506775267 0.244940500075 0 + 188 -0.000000000000 0.362809351303 0.239194419297 0 + 189 0.124491744956 0.327666471880 0.235873645419 0 + 190 0.167885528331 0.303595004287 0.311968419783 0 + 191 0.166157133171 0.315998811899 0.302290985600 0 + 192 -0.000000000000 0.311542724718 0.383208447713 0 + 193 0.102426475731 0.298565571058 0.381272884855 0 + 194 0.149846115703 0.332735910112 0.344110097022 0 + 195 0.148042024551 0.348850507304 0.329804759776 0 + 196 0.099294667562 0.387012082419 0.301854486392 0 + 197 -0.000000000000 0.392282096745 0.310329511202 0 + 198 0.142871031205 0.240982953404 0.312522749540 0 + 199 0.103127817479 0.237031374823 0.354217032805 0 + 200 -0.000000000000 0.220356949191 0.343076837876 0 + 201 -0.000000000000 0.258079948187 0.207687019917 0 + 202 0.072139805126 0.246120913511 0.208291436385 0 + 203 0.077300087179 0.226174577521 0.227261630336 0 + 204 -0.000000000000 0.215351510628 0.250048562730 0 + 205 0.425437001975 0.598145928487 -0.000000000000 0 + 206 0.467865635969 0.659937083490 -0.000000000000 0 + 207 0.467443260015 0.514831196233 -0.000000000000 0 + 208 0.561828769044 0.627978625291 -0.000000000000 0 + 209 0.564889734700 0.559574298612 -0.000000000000 0 + 210 0.531354579000 0.550524074446 0.117264926250 0 + 211 0.467428608363 0.520432704827 0.103605449811 0 + 212 0.433608531920 0.587995074143 0.112604493082 0 + 213 0.470854486813 0.639390965678 0.127144764188 0 + 214 0.524509435316 0.620693208350 0.130066605322 0 + 215 -0.000000000000 1.000000000000 0.589231312085 0 + 216 -0.000000000000 0.896000092712 0.577323131395 0 + 217 0.147172588769 1.000000000000 0.639646887125 0 + 218 0.134062916085 0.862191113644 0.619376654816 0 + 219 -0.000000000000 0.819607197346 0.663418341576 0 + 220 0.124357182496 0.820494570675 0.666082873980 0 + 221 -0.000000000000 1.000000000000 0.712772141753 0 + 222 -0.000000000000 0.849219626402 0.734397378425 0 + 223 0.120081515935 0.849157919724 0.734768546362 0 + 224 0.139184444044 1.000000000000 0.713192098198 0 + 225 0.768242801848 0.579418441892 0.282431007939 0 + 226 0.769048835721 0.542381789134 0.272929424220 0 + 227 1.000000000000 0.505089194700 0.283270972358 0 + 228 0.778701370820 0.529989512818 0.277056584485 0 + 229 0.832917356820 0.519191507678 0.316320965278 0 + 230 0.858317952953 0.490131367792 0.295697446064 0 + 231 0.828611981448 0.487533422998 0.260341765720 0 + 232 1.000000000000 0.506622308863 0.175137100070 0 + 233 0.862780609097 0.492099727811 0.189703640790 0 + 234 1.000000000000 0.619922934474 0.109953727033 0 + 235 0.829017551191 0.543019579560 0.161937116529 0 + 236 0.774933927920 0.573354925353 0.207631196352 0 + 237 0.772603702128 0.620806584043 0.234293819149 0 + 238 1.000000000000 0.646586470768 0.124222464520 0 + 239 0.788997826206 0.646853097913 0.239302162609 0 + 240 0.312627142807 0.902956227381 0.448188821807 0 + 241 0.301651121451 1.000000000000 0.444237526335 0 + 242 0.282661246424 0.844623994988 0.469152625549 0 + 243 0.293387912802 0.829842004003 0.492493364802 0 + 244 0.258583142888 0.837488477766 0.565467589878 0 + 245 0.367331446157 0.911136041723 0.494946309710 0 + 246 0.356054708343 0.862799391196 0.525656092929 0 + 247 0.333361060313 0.871849683703 0.587551760854 0 + 248 0.332426053754 1.000000000000 0.590215352744 0 + 249 0.365985191695 1.000000000000 0.498696541937 0 + 250 0.206124682442 0.882603788449 0.551557617091 0 + 251 0.206270275582 0.895659924652 0.502976790643 0 + 252 0.222926424905 1.000000000000 0.484260798342 0 + 253 0.226098948338 1.000000000000 0.559930806933 0 + 254 0.734367703581 0.579705595520 0.292973691521 0 + 255 0.706579526055 0.601657876534 0.329715271457 0 + 256 0.751579555650 0.535737956262 0.276669507073 0 + 257 0.750516996753 0.527005111911 0.280108409561 0 + 258 0.708964702438 0.499418093545 0.347885896112 0 + 259 0.681965063528 0.553165433422 0.376696445750 0 + 260 0.484072916823 0.311195382696 0.899252197529 0 + 261 0.476543703787 0.315829057455 1.000000000000 0 + 262 0.440685318336 0.222101422137 1.000000000000 0 + 263 0.459134232105 0.236421638201 0.859521470315 0 + 264 0.235409263148 0.399615012634 0.828958028247 0 + 265 0.456543322436 0.360937595829 0.848092719745 0 + 266 0.421336927644 0.407559204754 1.000000000000 0 + 267 0.303327918226 0.445365351116 1.000000000000 0 + 268 0.300001684337 0.451475384464 0.883590939175 0 + 269 0.424444236404 0.411746004783 0.880409595880 0 + 270 0.426013049623 0.304544937530 0.797514020163 0 + 271 0.434212445033 0.242124144701 0.815378787995 0 + 272 0.232492281526 0.250188660534 0.813817879298 0 + 273 0.370760710719 0.248441822327 0.779578267323 0 + 274 0.372335588914 0.287193963778 0.772105467438 0 + 275 0.243517207134 0.350620801576 0.792715542385 0 + 276 0.216772562391 0.285635365621 0.811271511384 0 + 277 0.195923827129 0.352110137560 1.000000000000 0 + 278 0.217551595461 0.230837139181 1.000000000000 0 + 279 0.198589936746 0.243311141296 0.890440704455 0 + 280 0.186502813585 0.291629373156 0.867725906231 0 + 281 0.181668990197 0.347373266289 0.901159264551 0 + 282 1.000000000000 0.551075309763 1.000000000000 0 + 283 1.000000000000 0.546905845116 0.898412251812 0 + 284 0.900548647560 0.534794472699 0.900354284936 0 + 285 0.888861119744 0.537451534273 1.000000000000 0 + 286 -0.000000000000 0.227221749365 0.759961562900 0 + 287 0.076377380525 0.220218744276 0.755581046477 0 + 288 0.102267387728 0.226516288283 0.775599540208 0 + 289 -0.000000000000 0.158832088526 0.764898388760 0 + 290 0.072572639266 0.170038650330 0.759446781516 0 + 291 0.117351560493 0.165287778612 0.796232491760 0 + 292 -0.000000000000 0.261092733942 0.843955122575 0 + 293 0.084021734662 0.251318074457 0.834001118134 0 + 294 -0.000000000000 0.140630933997 0.827541438721 0 + 295 -0.000000000000 0.201462382272 0.873627204826 0 + 296 0.096695565380 0.194827744049 0.859875597415 0 + 297 0.114486826845 0.155532444707 0.828500193091 0 + 298 0.250106538340 0.701996354495 0.566104330189 0 + 299 0.170329639431 0.702906047782 0.571173706721 0 + 300 0.290824528393 0.740226348731 0.486617501164 0 + 301 0.255122948034 0.699544821043 0.555418205804 0 + 302 0.286160717485 0.823660037053 0.447374767014 0 + 303 0.298800220812 0.808288913062 0.478604968323 0 + 304 0.127274458307 0.840662279301 0.446131910424 0 + 305 0.131421165510 0.853834273337 0.459366185547 0 + 306 0.146214871965 0.865912942449 0.453687865717 0 + 307 0.142397513286 0.848972104467 0.434210131730 0 + 308 0.238009371825 0.784804611516 0.601467480056 0 + 309 0.181405064547 0.795066477045 0.609088476025 0 + 310 0.170817584407 0.849996177418 0.579288776309 0 + 311 0.149313559231 0.687885179846 0.506431748317 0 + 312 0.127308623824 0.756298428559 0.442434772282 0 + 313 0.243802592641 0.772138304646 0.379442385713 0 + 314 0.261424738759 0.711970966077 0.436792088737 0 + 315 0.230103278088 0.677990319728 0.462442607394 0 + 316 0.196618164117 0.676855407165 0.458002966482 0 + 317 0.178106213133 0.737202232188 0.400345486354 0 + 318 0.213837381815 0.773936713581 0.372921757655 0 + 319 -0.000000000000 1.000000000000 0.353074602179 0 + 320 -0.000000000000 1.000000000000 0.493494378035 0 + 321 -0.000000000000 0.894483560806 0.344151522839 0 + 322 0.118525130643 1.000000000000 0.327157945796 0 + 323 0.104148828433 0.914389538154 0.323061747172 0 + 324 0.173935122163 1.000000000000 0.435873624689 0 + 325 0.172851687240 1.000000000000 0.361168780134 0 + 326 0.151637812162 0.898853195290 0.353681922318 0 + 327 -0.000000000000 0.834328683933 0.442491081481 0 + 328 -0.000000000000 0.891643709121 0.500469246763 0 + 329 0.116857426363 0.382628664102 0.208108063446 0 + 330 -0.000000000000 0.404936988949 0.154432933278 0 + 331 0.093115863524 0.403922061936 0.163479481052 0 + 332 -0.000000000000 0.496921380831 0.314502849665 0 + 333 0.140554111287 0.444314201343 0.300705622197 0 + 334 0.160029081508 0.448854519553 0.227220053998 0 + 335 0.093816269530 0.502625479210 0.306921503577 0 + 336 -0.000000000000 0.538759817023 0.265884967864 0 + 337 -0.000000000000 0.468962346318 0.145525112348 0 + 338 0.112077567893 0.456520339045 0.157974949478 0 + 339 0.149869661536 0.473608882349 0.198875338426 0 + 340 0.082775638592 0.529793244771 0.275463656802 0 + 341 0.629783982656 0.199383752482 0.438189250295 0 + 342 0.601829453279 -0.000000000000 0.545860040723 0 + 343 0.611792919161 0.106578346783 0.526981205097 0 + 344 0.653550590712 -0.000000000000 0.579361051801 0 + 345 0.662782176033 0.092504107586 0.563353439526 0 + 346 0.645698275486 0.202904727493 0.316512546883 0 + 347 0.791367947075 0.196455798240 0.296789370342 0 + 348 0.643616406832 -0.000000000000 0.221292003455 0 + 349 0.650813786036 0.111130412780 0.226396941572 0 + 350 0.811095116131 0.191745047400 0.402662514315 0 + 351 0.729847428187 0.192721534930 0.487783826364 0 + 352 0.709378763379 0.113612295169 0.561283192262 0 + 353 0.759292962477 -0.000000000000 0.583122217650 0 + 354 0.884247876741 -0.000000000000 0.451224729795 0 + 355 0.682549541414 0.581033312539 0.892544203489 0 + 356 0.616740312372 0.568629465795 0.857787418362 0 + 357 0.595310195608 0.509562963729 0.872970031965 0 + 358 0.539011358001 0.521851752916 1.000000000000 0 + 359 0.545619548741 0.529278537891 0.896809793665 0 + 360 0.691298779805 0.612737468373 1.000000000000 0 + 361 0.686931636865 0.619741620850 0.918628211373 0 + 362 0.679751308424 0.519731764154 0.920334777032 0 + 363 0.630883592250 0.490604729042 0.904117153161 0 + 364 0.629142755155 0.481746282200 1.000000000000 0 + 365 0.684260397190 0.516081575502 1.000000000000 0 + 366 0.586793172432 0.249864814984 1.000000000000 0 + 367 0.646137032662 0.250247715799 1.000000000000 0 + 368 0.677263261718 0.316672562784 1.000000000000 0 + 369 0.616628348031 0.362699028727 1.000000000000 0 + 370 0.550374523205 0.314709574007 1.000000000000 0 + 371 0.533355570499 0.310377124174 0.897669605876 0 + 372 0.619127486321 0.375338743596 0.861386995362 0 + 373 0.590687810417 0.355880882147 0.846772819877 0 + 374 0.583636020628 0.222660572150 0.903016259698 0 + 375 0.636423911098 0.220648767619 0.894623599476 0 + 376 0.559119547838 0.254018373812 0.866691486213 0 + 377 0.686779772839 0.324721743740 0.854367255422 0 + 378 0.649478893415 0.245511519601 0.859019366348 0 + 379 0.593763608158 0.272513117810 0.834986138775 0 + 380 0.608876516565 0.334130005013 0.826806653156 0 + 381 0.654258850998 0.351116515288 0.838071886931 0 + 382 0.144201423631 0.344517713637 0.202877724654 0 + 383 0.204087178369 0.357617077525 0.212333065921 0 + 384 0.218885010547 0.342303215648 0.268084914894 0 + 385 0.210020343443 0.425177700024 0.227618336048 0 + 386 0.225641544173 0.406761860263 0.286688061147 0 + 387 0.186126376265 0.418420480837 0.324127227908 0 + 388 -0.000000000000 0.363539020599 1.000000000000 0 + 389 -0.000000000000 0.191644311480 1.000000000000 0 + 390 -0.000000000000 0.326831796249 0.854263419498 0 + 391 0.129528664904 0.302031250081 0.837392222422 0 + 392 0.099541455834 0.347203319562 0.847481024763 0 + 393 0.136410414861 0.393796955329 1.000000000000 0 + 394 0.148237421777 0.369728328452 0.894026131612 0 + 395 0.179911738258 0.177312076920 1.000000000000 0 + 396 0.159603661117 0.187323398507 0.891963139303 0 + 397 0.398900061704 0.240374626036 0.628330334499 0 + 398 0.379434880215 0.234573842513 0.598405381576 0 + 399 0.310613667721 0.280057040241 0.557297341687 0 + 400 0.292733381934 0.314218371354 0.568522214154 0 + 401 0.219229579228 0.298956069356 0.574896003110 0 + 402 0.169892255567 0.182686429385 0.650278924979 0 + 403 0.389292767089 0.306898482583 0.681582964415 0 + 404 0.222657821081 0.370653338942 0.765497728710 0 + 405 0.326686443104 0.351775253394 0.647619262991 0 + 406 0.161160422391 0.344699269557 0.735372981931 0 + 407 0.169364175405 0.294195284747 0.771206560990 0 + 408 0.156001027139 0.263222680177 0.748919039913 0 + 409 0.144322996070 0.267456479660 0.719468470860 0 + 410 0.152463602316 0.335876490886 0.717256576217 0 + 411 0.275015165134 0.144982056727 0.630438501476 0 + 412 0.186611509854 0.179632077470 0.615915478719 0 + 413 0.220876870792 0.234164189515 0.558115566108 0 + 414 0.274926922850 0.231355415879 0.549844471755 0 + 415 0.316923251229 0.193290550553 0.576906849496 0 + 416 0.205546148476 0.185555442307 0.768158781809 0 + 417 0.379131498728 0.193393903708 0.733253258805 0 + 418 0.288838444174 0.132674007045 0.705788172962 0 + 419 0.213517638766 0.157461033994 0.743637789190 0 + 420 0.355071245081 0.668653132854 0.703693137042 0 + 421 0.448240211095 0.552796766197 0.811546913871 0 + 422 0.311115522530 0.636212622813 0.725065287043 0 + 423 0.311921142505 0.598715923464 0.723327132604 0 + 424 0.294648095832 0.642353415600 0.770409921203 0 + 425 0.294351351975 0.595636886697 0.771831564250 0 + 426 0.332516400780 0.579363708154 0.819271025672 0 + 427 0.476455447714 0.664396476635 0.718376559364 0 + 428 0.398238711963 0.647278510963 0.680822565172 0 + 429 0.388921917545 0.586260438758 0.683438770337 0 + 430 0.482580591871 0.556148090854 0.734490308357 0 + 431 0.500442806047 0.598076586242 0.738496417228 0 + 432 1.000000000000 -0.000000000000 0.445260409773 0 + 433 1.000000000000 0.250533333167 0.376884232645 0 + 434 0.854423749321 0.245136663608 0.385858162678 0 + 435 0.728240088015 0.252929113076 0.521385991303 0 + 436 1.000000000000 0.366302863508 0.486970989392 0 + 437 1.000000000000 0.348051796729 0.690871586830 0 + 438 0.844915390495 0.361504153370 0.656061485197 0 + 439 0.702879542271 0.161182097178 0.615077935594 0 + 440 0.712767423228 0.239444783435 0.596352382060 0 + 441 0.750223568008 0.303264773117 0.624805185811 0 + 442 0.792498490613 0.311043647276 0.684366919537 0 + 443 1.000000000000 0.241920010959 0.768184892178 0 + 444 1.000000000000 -0.000000000000 0.695332835124 0 + 445 0.779536641151 -0.000000000000 0.671602281774 0 + 446 0.744001510987 0.106169477118 0.699749292741 0 + 447 0.810443031845 0.232046248762 0.744807689974 0 + 448 0.335584716182 0.341109386099 0.486933611050 0 + 449 0.259358374803 0.612983634473 0.475408971833 0 + 450 0.303061290439 0.364883933498 0.526641085115 0 + 451 0.289996871043 0.599547410907 0.546987869607 0 + 452 0.271372116586 0.563800146347 0.574379900772 0 + 453 0.284455299165 0.359516559419 0.402343333301 0 + 454 0.340987249048 0.629397506875 0.436095027557 0 + 455 0.372854304578 0.616487217026 0.505853546921 0 + 456 0.352860836074 0.605799577595 0.544855994302 0 + 457 0.419919935497 0.371005491252 0.478027027607 0 + 458 0.450895142739 0.445969724547 0.540495518462 0 + 459 0.468533228369 0.529583778861 0.440764660569 0 + 460 0.415323372779 0.555189121447 0.347372876126 0 + 461 0.425464008180 0.431867958604 0.332359426492 0 + 462 0.459493249371 0.524046501788 0.368512805390 0 + 463 0.305925553813 0.392003516834 0.338798652848 0 + 464 0.386272165246 0.429362110951 0.308447912593 0 + 465 0.375430780380 0.441886390489 0.304093782318 0 + 466 0.293011947933 0.407611318101 0.333280538340 0 + 467 0.204236530633 0.557337276682 0.475505539026 0 + 468 0.209169297490 0.534246004351 0.520819542361 0 + 469 0.238704118610 0.397500008859 0.493383314589 0 + 470 0.241263784498 0.386029219033 0.415856076021 0 + 471 0.233314054103 0.423063773488 0.378329549542 0 + 472 0.395287241143 0.475412817250 0.596872868407 0 + 473 0.358236443029 0.459799496305 0.598238606166 0 + 474 0.342024031309 0.523529905713 0.609325385865 0 + 475 0.357629476673 0.525927072399 0.608128934896 0 + 476 0.643499437153 0.398684418804 0.633001038010 0 + 477 0.613232712259 0.396699475349 0.590449977168 0 + 478 0.629836804527 0.278417518022 0.483452756570 0 + 479 0.649457683169 0.367128352098 0.656217547158 0 + 480 0.703402308775 0.363982541336 0.653628543156 0 + 481 0.738373493467 0.823340698503 0.699427307757 0 + 482 0.667223057453 0.795266715741 0.728112331745 0 + 483 0.746756508097 1.000000000000 0.659538554232 0 + 484 0.722205454776 0.844761519248 0.662063583049 0 + 485 0.653085496984 1.000000000000 0.632426750812 0 + 486 0.660750199153 0.847589209733 0.644100763046 0 + 487 0.626260934879 0.811790625422 0.693031939525 0 + 488 0.783418470000 1.000000000000 0.804761254997 0 + 489 0.795710404367 1.000000000000 0.752198925536 0 + 490 0.787781790374 0.891355004204 0.771481486474 0 + 491 0.777785468135 0.909094001523 0.816614724116 0 + 492 0.416277207833 0.903587215638 0.452651694552 0 + 493 0.421136260477 1.000000000000 0.451288040980 0 + 494 0.622148676667 1.000000000000 0.511948122647 0 + 495 0.372537278266 0.801409216862 0.685202957649 0 + 496 0.441761896434 0.823042303717 0.462706497966 0 + 497 0.419787571851 0.799555624658 0.492946930314 0 + 498 0.565092131613 0.786958713933 0.500983363369 0 + 499 0.629138049004 0.831027184087 0.519017147582 0 + 500 0.647445432010 0.799413125894 0.586542424911 0 + 501 0.509990372203 0.738776785902 0.671900490974 0 + 502 0.558964206283 0.742543353891 0.668748060912 0 + 503 0.603405649613 0.748730317200 0.637966905897 0 + 504 0.612965906055 0.752178027579 0.610001229170 0 + 505 0.560935719539 0.755424549722 0.540265058730 0 + 506 0.451836930243 0.746009988016 0.557610951154 0 + 507 0.442254413050 0.738578924605 0.625726157444 0 + 508 0.765497499181 0.500454836878 1.000000000000 0 + 509 0.627959607929 0.459640559257 0.864915985390 0 + 510 0.685798361780 0.452721181469 0.829955014419 0 + 511 0.749965350437 0.507866334374 0.873359430130 0 + 512 0.750633286963 0.506227651035 0.870916318835 0 + 513 0.757622301884 0.504974392291 0.873449131585 0 + 514 0.756725059778 0.506490571360 0.875519885560 0 + 515 0.698086306100 0.377726136754 0.814889213532 0 + 516 0.757649159734 0.336163185537 0.839812504552 0 + 517 0.754503107210 0.349428370278 0.830459354550 0 + 518 0.285782700465 -0.000000000000 0.611949258077 0 + 519 0.140199165826 -0.000000000000 0.687754982535 0 + 520 0.204667997261 -0.000000000000 0.594048070759 0 + 521 0.129054232863 0.115497334247 0.691214262745 0 + 522 0.178336118056 0.173410198930 0.613193743834 0 + 523 0.155691419939 0.172255396469 0.646235709711 0 + 524 0.300992888858 -0.000000000000 0.702579067106 0 + 525 0.196194259975 -0.000000000000 0.756018554219 0 + 526 0.184468409382 0.119179603589 0.759313098218 0 + 527 0.817204955215 0.780590352121 1.000000000000 0 + 528 0.814959839931 0.786299955508 0.912196442356 0 + 529 0.796131087053 0.611928515404 1.000000000000 0 + 530 0.844883331374 0.718786940140 1.000000000000 0 + 531 0.838438629664 0.734008961964 0.895163312333 0 + 532 0.726104005835 0.622269731803 0.885586757901 0 + 533 0.787935159741 0.619940573156 0.907207016831 0 + 534 0.803862484258 0.666470946407 0.865698790773 0 + 535 0.741253745727 0.657508156007 0.855115175229 0 + 536 0.401786700913 0.159433829262 -0.000000000000 0 + 537 0.415596176005 0.213206543553 -0.000000000000 0 + 538 0.315980313532 0.116887200683 -0.000000000000 0 + 539 0.235193422870 0.187289158953 -0.000000000000 0 + 540 0.323191732367 0.118453262468 0.104273714516 0 + 541 0.242165216931 0.260937083714 -0.000000000000 0 + 542 0.291612936762 0.309246955625 -0.000000000000 0 + 543 0.423832198725 0.168588870969 0.092154101716 0 + 544 0.432696969765 0.209458255091 0.084522428896 0 + 545 0.410217160768 0.233908368299 0.147139276476 0 + 546 0.395386393588 0.174093172550 0.162798103243 0 + 547 0.398820549300 0.155109079267 0.148081806458 0 + 548 0.307273301793 0.213795279979 0.178430596004 0 + 549 0.238995212417 0.257191843300 0.091525716230 0 + 550 0.233024282383 0.196659230300 0.099349838424 0 + 551 0.262449822130 0.173909065465 0.137773422301 0 + 552 0.308946645094 0.266676806563 0.167625921653 0 + 553 0.345143408825 0.285131271700 0.154393441357 0 + 554 0.298937252310 0.315642160946 0.107395361220 0 + 555 0.278342052160 0.295385917602 0.126452523934 0 + 556 0.644100698106 0.388845958460 0.696928703059 0 + 557 0.538215329110 0.293941994125 0.729139967137 0 + 558 0.564597214055 0.337248368931 0.750088462275 0 + 559 0.458082938367 0.334066359550 0.679973928393 0 + 560 0.495655869090 0.340200119953 0.739411647409 0 + 561 0.520582937810 0.373083505544 0.756155828625 0 + 562 0.590362858682 0.442812615530 0.598934726946 0 + 563 0.497275683734 0.424971029508 0.585365481340 0 + 564 0.476743131975 0.436803460931 0.630994771301 0 + 565 0.540206155060 0.472145026071 0.711718114135 0 + 566 0.632406034118 0.449682075990 0.661551620782 0 + 567 0.614656419712 0.462367561832 0.648418297206 0 + 568 0.586552903568 0.472307070300 0.691581523006 0 + 569 0.632635946684 0.446460474249 0.680994384000 0 + 570 0.000000000000 0.000000000000 0.000000000000 0 + 571 -0.000000000000 0.252779870909 -0.000000000000 0 + 572 0.123944806310 0.218408126303 -0.000000000000 0 + 573 0.139519042190 -0.000000000000 -0.000000000000 0 + 574 0.164109921036 0.162355952531 -0.000000000000 0 + 575 -0.000000000000 -0.000000000000 0.187087829600 0 + 576 0.163240469378 -0.000000000000 0.132284723630 0 + 577 0.142675242339 0.237317296436 0.097681389572 0 + 578 0.185340025965 0.180327376846 0.103212144474 0 + 579 0.188908172617 0.133469065876 0.162688926417 0 + 580 -0.000000000000 0.282893662350 0.122039091730 0 + 581 0.097816860008 0.260895132965 0.142818973571 0 + 582 0.242451914880 0.701780590805 0.725384935692 0 + 583 0.275337615105 0.678686198474 0.685988427062 0 + 584 0.230319974424 0.633005326433 0.629717833583 0 + 585 0.264308247946 0.685215474531 0.580173626963 0 + 586 0.298516776023 0.712611445900 0.660929045118 0 + 587 0.290182080415 0.751430544675 0.672692644810 0 + 588 0.253140695877 0.746615995854 0.715404212418 0 + 589 0.187738013961 0.630755294478 0.634888131130 0 + 590 0.156531223379 0.687948721006 0.585667083509 0 + 591 0.200177418125 0.700832627192 0.732351120304 0 + 592 0.194594639200 0.757370166997 0.722827644896 0 + 593 0.150276110056 0.787123232307 0.657733740045 0 + 594 0.133167790419 0.702745576188 0.635009140020 0 + 595 0.159691812299 0.654824334968 0.674722018091 0 + 596 0.268523927202 1.000000000000 0.302966233705 0 + 597 0.333625438761 1.000000000000 0.365040086175 0 + 598 0.333380250074 0.894329708653 0.399553228381 0 + 599 0.309819222726 0.825174405131 0.399827871192 0 + 600 0.212069401323 0.833771941394 0.303796999073 0 + 601 0.257697973929 0.777576872839 0.365781822771 0 + 602 0.224580195735 0.790299654136 0.330020688639 0 + 603 0.694798381556 0.450929338515 0.176296133452 0 + 604 0.700568589841 0.436281882547 0.215564399984 0 + 605 0.738218924012 0.405756033203 0.215214008940 0 + 606 0.810379299500 0.438894828137 0.251250304653 0 + 607 0.754453388852 0.430034178452 0.256609779396 0 + 608 0.695392289717 0.474261900684 0.253100926343 0 + 609 0.715779314767 0.475399072855 0.272515146877 0 + 610 0.687166653139 0.487662939833 0.175213515279 0 + 611 0.699206115858 0.546345360675 0.219853016721 0 + 612 0.683436166788 0.520317396532 0.217740175688 0 + 613 0.766610888205 0.392344368782 0.177053215569 0 + 614 0.757339668053 0.405954918932 0.153103668761 0 + 615 0.802621481149 0.442509662882 0.127656342593 0 + 616 0.844909878970 0.430914048299 0.167109615791 0 + 617 0.826250279857 0.409436580374 0.186462143452 0 + 618 0.739669733968 0.540209864951 0.144435383792 0 + 619 0.790273505480 0.524038246975 0.123137913602 0 + 620 0.729931154053 0.567790114335 0.191524951243 0 + 621 0.671130374071 0.191080878099 1.000000000000 0 + 622 0.659178880391 0.174414924397 0.909919451934 0 + 623 -0.000000000000 0.203019212351 0.671510477947 0 + 624 -0.000000000000 0.237576858618 0.491236054031 0 + 625 0.102414346689 0.215557069395 0.483912759824 0 + 626 0.158346331381 0.197029058975 0.513833078629 0 + 627 0.074701443341 0.184976976274 0.676502519168 0 + 628 -0.000000000000 -0.000000000000 0.709554206521 0 + 629 0.071461196890 0.145628835982 0.700619649321 0 + 630 -0.000000000000 0.136903225619 0.711600550358 0 + 631 -0.000000000000 -0.000000000000 0.417903924341 0 + 632 0.185224673436 -0.000000000000 0.473182112998 0 + 633 0.155354919079 0.163782683332 0.460184552025 0 + 634 0.107899892302 0.186512490220 0.445455463287 0 + 635 -0.000000000000 0.180598755525 0.413401408168 0 + 636 0.258593965086 0.676127982378 0.773667169907 0 + 637 0.197813371955 0.676213896589 0.780845693574 0 + 638 0.186657519984 0.727773146021 0.828250967693 0 + 639 0.184579480185 0.789184192739 0.781041497292 0 + 640 0.094339681944 0.384312280169 0.819614489879 0 + 641 0.135153203103 0.427981228754 0.844262280545 0 + 642 0.146632992198 0.367108639627 0.739728807962 0 + 643 0.202256259162 0.444407451327 0.800417645345 0 + 644 0.200877305635 0.432226804353 0.783273459165 0 + 645 0.449289272050 0.472002957961 -0.000000000000 0 + 646 0.323498589311 0.438548168253 -0.000000000000 0 + 647 0.440889037258 0.459003251851 0.125329085552 0 + 648 0.329526647689 0.431372374528 0.102201616545 0 + 649 0.393036792453 0.443965479700 0.152234938743 0 + 650 0.372589963731 0.598064275729 0.143166859560 0 + 651 0.302775878514 0.485774588391 0.137661134149 0 + 652 0.351349286868 0.487479186522 0.168421726725 0 + 653 0.333994988633 0.616690269230 -0.000000000000 0 + 654 0.339508627855 0.606611404330 0.118796091872 0 + 655 0.286645464390 0.516610449529 0.116380397961 0 + 656 0.279998051825 0.524353849129 -0.000000000000 0 + 657 1.000000000000 0.402896222549 0.132293793459 0 + 658 1.000000000000 0.413588592603 -0.000000000000 0 + 659 0.810594070668 0.451242278790 -0.000000000000 0 + 660 1.000000000000 0.616541848210 -0.000000000000 0 + 661 0.799223634258 0.524360949236 -0.000000000000 0 + 662 -0.000000000000 1.000000000000 0.232166227184 0 + 663 -0.000000000000 0.868250886473 0.249966106962 0 + 664 0.085872045968 0.889993464861 0.251713513220 0 + 665 0.100439268645 1.000000000000 0.237645894939 0 + 666 0.807320596462 0.933546105975 0.928680985606 0 + 667 0.812648785908 0.923470620989 1.000000000000 0 + 668 0.861851509275 0.861754629914 1.000000000000 0 + 669 0.833496806808 0.902674851569 0.887429180752 0 + 670 0.813213696564 0.879377770096 0.866970931615 0 + 671 0.845839108874 0.846328916038 0.877288381571 0 + 672 0.859636468630 0.869594724523 0.893581083312 0 + 673 1.000000000000 0.267246835020 0.305521493189 0 + 674 0.853184391140 0.260157041368 0.321604894256 0 + 675 0.817308776943 0.229087966646 0.284120741289 0 + 676 1.000000000000 1.000000000000 0.000000000000 0 + 677 1.000000000000 0.718725587957 -0.000000000000 0 + 678 0.625411116471 1.000000000000 -0.000000000000 0 + 679 0.649599636545 0.830148948009 -0.000000000000 0 + 680 0.619961113995 0.772569162222 0.115380734056 0 + 681 0.737678716255 0.665571445736 0.235170345832 0 + 682 0.574500256849 0.820700835204 0.233103163489 0 + 683 0.543202786847 1.000000000000 0.250677611029 0 + 684 0.658443172567 1.000000000000 0.472070402194 0 + 685 1.000000000000 1.000000000000 0.535804473911 0 + 686 0.832079688856 1.000000000000 0.551153224805 0 + 687 0.713814375940 0.691504859248 0.313028643572 0 + 688 0.637509525875 0.764787615870 0.329922123741 0 + 689 0.685971979615 0.840325949093 0.455760585258 0 + 690 0.548076079822 -0.000000000000 0.670059120670 0 + 691 0.476796699504 -0.000000000000 0.750257678365 0 + 692 0.448488636141 0.163340034411 0.750589520178 0 + 693 0.353984578269 -0.000000000000 0.522465764079 0 + 694 0.522554579523 -0.000000000000 0.581272852244 0 + 695 0.363497426139 0.144282308122 0.514325310457 0 + 696 0.213601772614 0.526452538370 0.757287462844 0 + 697 0.232242892988 0.586018830146 0.628615104552 0 + 698 0.277232777322 0.560342410398 0.679740380050 0 + 699 0.187863816086 0.338225720821 0.538943616357 0 + 700 0.085419639681 0.421629862222 0.631896408360 0 + 701 0.191986196922 0.585260583965 0.633528339019 0 + 702 0.160728410045 0.550929723012 0.564643645498 0 + 703 0.102706830108 0.505645983128 0.616765972009 0 + 704 0.166239377340 0.567004896458 0.674603054824 0 + 705 0.125637399297 0.363854692318 0.712809820611 0 + 706 0.535313248879 0.255685091143 0.745197672135 0 + 707 0.460318572013 0.216217865295 0.808162616343 0 + 708 0.642308103815 0.142435628884 0.626976244559 0 + 709 0.630876296789 0.118744578410 0.656815321431 0 + 710 0.715856538583 0.390073687772 0.703713497378 0 + 711 0.767182583699 0.362858755592 0.725907908965 0 + 712 0.685967790559 0.400341108112 0.721258449742 0 + 713 0.708520133835 0.188703477943 0.844166793923 0 + 714 0.720186201377 0.090122949863 0.716306408442 0 + 715 0.781571794969 0.272358378598 0.832117839393 0 + 716 0.618384004734 0.094109784283 0.085147704869 0 + 717 0.610210882915 -0.000000000000 0.095332430200 0 + 718 0.588283154894 0.136834892313 0.125011722898 0 + 719 0.611571797192 0.164952548506 0.153918531774 0 + 720 0.557566227790 -0.000000000000 0.164600376607 0 + 721 0.599598628633 0.149175692906 0.192779669070 0 + 722 0.557704206023 0.097998391942 0.165011522864 0 + 723 0.333414442479 0.282772888260 0.287229653801 0 + 724 0.303668043033 0.204686351861 0.248571237444 0 + 725 0.304321674749 0.266956790296 0.262954159061 0 + 726 0.341535035952 0.183160513059 0.270756406360 0 + 727 0.409577610313 0.162752459517 0.192309499847 0 + 728 0.373687197108 0.235617681032 0.305401975481 0 + 729 0.494034292956 0.479758391632 0.837199978151 0 + 730 0.259744279991 0.544497122451 1.000000000000 0 + 731 0.276767636928 0.504069698318 0.863441240199 0 + 732 0.000000000000 1.000000000000 0.000000000000 0 + 733 -0.000000000000 0.847020012382 -0.000000000000 0 + 734 0.185187956126 1.000000000000 0.181236547068 0 + 735 0.163403732958 1.000000000000 -0.000000000000 0 + 736 0.159316855775 0.886817684287 -0.000000000000 0 + 737 0.182109637631 0.893892106157 0.187502137718 0 + 738 -0.000000000000 0.848785233856 0.239714241594 0 + 739 0.101983145787 0.874274822546 0.241614492781 0 + 740 1.000000000000 0.831485580191 0.867807478641 0 + 741 1.000000000000 0.736620496267 0.892611969401 0 + 742 1.000000000000 0.812990837935 0.749134811240 0 + 743 1.000000000000 0.653813839299 0.822766058747 0 + 744 0.875258653659 0.715762248345 0.835918792944 0 + 745 0.878017414010 0.740087187279 0.857301158210 0 + 746 0.885872600374 0.798568253485 0.844225544231 0 + 747 0.885809169162 0.791263394764 0.797457748312 0 + 748 0.000000000000 1.000000000000 1.000000000000 0 + 749 -0.000000000000 0.675882680048 0.867633575858 0 + 750 -0.000000000000 0.631491204658 1.000000000000 0 + 751 0.128476318292 0.672907899410 0.870266522941 0 + 752 0.166576815361 0.628779101073 1.000000000000 0 + 753 -0.000000000000 0.607743272424 0.692321879555 0 + 754 -0.000000000000 0.690367212389 0.629123265582 0 + 755 0.141408060655 0.609159319313 0.707542861241 0 + 756 -0.000000000000 0.659368768313 0.537097942405 0 + 757 0.129300580462 0.666196011619 0.527400394806 0 + 758 -0.000000000000 0.579033995372 0.532653775125 0 + 759 -0.000000000000 0.510865213794 0.610957951990 0 + 760 0.135384501615 0.587590900011 0.522577847998 0 + 761 -0.000000000000 0.762952069252 0.439362328558 0 + 762 -0.000000000000 0.710965874958 0.302402886122 0 + 763 0.134459724008 0.709681763700 0.320778767798 0 + 764 0.209098651816 0.823106862246 0.279062386453 0 + 765 0.218002868130 0.789613861309 0.295475255809 0 + 766 0.722133676354 0.358669049876 0.223169701597 0 + 767 0.725087173864 0.346541495276 0.265877743804 0 + 768 0.803199019192 0.295152748310 0.268293414281 0 + 769 0.609102436144 0.221247762644 0.131399533221 0 + 770 0.751390498436 0.348799133811 0.184833522294 0 + 771 0.708796683214 0.326565398462 0.135393471000 0 + 772 0.708148759914 0.245762332322 0.088378273209 0 + 773 0.811368729033 0.303651245615 0.210493881546 0 + 774 0.185942930792 0.572741148448 0.470873677648 0 + 775 0.000000000000 0.000000000000 1.000000000000 0 + 776 -0.000000000000 -0.000000000000 0.843211961580 0 + 777 0.181901051547 -0.000000000000 1.000000000000 0 + 778 0.153247433828 -0.000000000000 0.846717959020 0 + 779 0.148809526304 0.137878861444 0.831252569430 0 + 780 0.509578035779 0.162009301804 0.066831730680 0 + 781 0.508968730297 0.155851207602 -0.000000000000 0 + 782 0.565038567016 0.168573999862 0.076532724721 0 + 783 0.568882699677 0.161987171734 -0.000000000000 0 + 784 0.577448035289 0.217203106098 0.080893460358 0 + 785 0.585021786347 0.223654994086 -0.000000000000 0 + 786 0.483517253735 0.228156865937 -0.000000000000 0 + 787 0.487980011162 0.223271499412 0.066017589000 0 + 788 0.535245031764 0.248731263077 0.075207579834 0 + 789 0.537345069139 0.258322731657 -0.000000000000 0 + 790 0.237887170475 0.382008680897 0.125935736325 0 + 791 0.224272862274 0.342401826533 0.146403912970 0 + 792 0.297721654454 0.369645120947 0.091948836194 0 + 793 0.298116177577 0.313132413861 0.316351390897 0 + 794 0.268191955442 0.297729222495 0.292404594262 0 + 795 0.240049312305 0.460610886064 0.157483271190 0 + 796 0.594157292158 0.487918603569 0.846883014088 0 + 797 0.616454308121 0.516701962184 0.783486150009 0 + 798 0.674751015569 0.489933388127 0.779666427934 0 + 799 0.676780433934 0.445137421067 0.708698957606 0 + 800 0.516453464602 0.396613644495 0.807445700702 0 + 801 0.524211197548 0.457820246487 0.810711042976 0 + 802 0.565584986022 0.502680587498 0.726456529254 0 + 803 0.540454796767 0.488743765535 0.725655652268 0 + 804 0.810885995064 0.373195658000 0.317086888867 0 + 805 0.746033774205 0.387609261723 0.298573620247 0 + 806 0.830613598702 0.324553800646 0.296858735302 0 + 807 0.711466102242 0.408858254455 0.326997032834 0 + 808 0.589782671365 0.245027982436 0.442963675775 0 + 809 0.216965079051 0.288931010613 0.395110728632 0 + 810 0.203978322555 0.275114876597 0.326393858280 0 + 811 0.279452006907 0.314571338865 0.391757106864 0 + 812 0.191289883800 0.317332530798 0.406342458758 0 + 813 0.704335275005 0.581001955773 0.812767495705 0 + 814 0.724749808738 0.541720346055 0.801416319364 0 + 815 0.616110027431 0.674815362016 0.754557821480 0 + 816 0.591576714504 0.678879063178 0.708106770479 0 + 817 0.632048227343 0.715556044705 0.651880678099 0 + 818 0.628417756020 0.568009541289 0.801720134036 0 + 819 0.566151685672 0.594829377828 0.736330881897 0 + 820 0.599303191401 0.617373326216 0.774843468416 0 + 821 0.795217452048 0.565301696623 0.756376820136 0 + 822 0.734297727299 0.647559334023 0.791536815954 0 + 823 0.671162257626 0.699144175252 0.756358750110 0 + 824 0.689491346657 0.720916703301 0.715086037320 0 + 825 0.724666290580 0.716909631719 0.700033875497 0 + 826 0.760064583159 0.648301844042 0.775357853070 0 + 827 0.650179575105 0.710792425856 0.624225220838 0 + 828 0.723832845734 0.706015666383 0.619355610631 0 + 829 0.806814545402 0.527649282820 0.685333240704 0 + 830 0.206731764397 0.256592855956 0.420670931835 0 + 831 0.131786956555 0.284372592790 0.432224735353 0 + 832 0.169105628118 0.293958756433 0.439185778634 0 + 833 0.184255080639 0.208050669138 0.393259245818 0 + 834 0.129015458529 0.218873615246 0.396534755699 0 + 835 0.184975374237 0.227730683183 0.326791807372 0 + 836 0.810233223708 1.000000000000 1.000000000000 0 + 837 0.804918404789 1.000000000000 0.924344328542 0 + 838 0.700372655627 0.606662944294 0.273437101519 0 + 839 0.678433079950 0.588262688105 0.229899266156 0 + 840 0.626845888406 0.526642357285 0.226948008266 0 + 841 0.621687788264 0.579500072145 0.236589279762 0 + 842 0.614641874995 0.478755947424 0.270019963913 0 + 843 0.653146768764 0.458398975874 0.277147034724 0 + 844 0.695380435862 0.462759881635 0.307823202449 0 + 845 0.686277552012 0.617760325939 0.315882163844 0 + 846 0.620645645163 0.577093351996 0.358074310773 0 + 847 0.591600713864 0.566495597792 0.330469552576 0 + 848 0.598124831832 0.597801128511 0.306775342848 0 + 849 0.622880553736 0.609376406944 0.327675776405 0 + 850 1.000000000000 0.346042495663 0.166988617873 0 + 851 0.859713996369 0.355291000041 0.208302953695 0 + 852 0.712222869015 0.372860670422 -0.000000000000 0 + 853 0.710140364848 0.369206848727 0.106974327974 0 + 854 0.709918317456 0.251367829158 -0.000000000000 0 + 855 -0.000000000000 0.248213158213 0.703406104246 0 + 856 0.078059191858 0.235777119206 0.713151454054 0 + 857 -0.000000000000 0.388624671125 0.808581113197 0 + 858 -0.000000000000 0.369541246749 0.697788057357 0 + 859 0.598936345247 0.491940454960 0.182308713998 0 + 860 0.547062682361 0.647218485131 0.165681048828 0 + 861 0.481158513482 0.702662786816 0.234070137365 0 + 862 0.479008679417 0.705785164314 0.196827844926 0 + 863 0.441481215029 0.695521754226 0.171442110830 0 + 864 0.403003423390 0.681519100580 0.178973442836 0 + 865 0.422266466961 0.680410090179 0.253515995139 0 + 866 0.429477035315 0.739819106615 -0.000000000000 0 + 867 0.422237701062 0.742062402862 0.113781256145 0 + 868 0.351253333913 0.707086823728 -0.000000000000 0 + 869 0.361251378789 0.717236106968 0.128738272955 0 + 870 0.359198143437 0.700234308159 0.147788078673 0 + 871 0.397534194933 0.894365979897 0.400310788454 0 + 872 0.391333057745 1.000000000000 0.365732182133 0 + 873 0.270033625194 1.000000000000 0.245511475928 0 + 874 0.467233692235 1.000000000000 0.252371853268 0 + 875 0.419627752821 1.000000000000 0.190852529617 0 + 876 0.374838261461 0.791707031887 0.400863547332 0 + 877 0.417186070066 0.821684919960 0.401124097093 0 + 878 0.341130856579 0.735161406226 0.367347389385 0 + 879 0.534348116679 0.806064822100 0.232621016993 0 + 880 0.518205187495 0.766864352400 0.273000040386 0 + 881 0.453803435635 0.776919943577 0.112534212161 0 + 882 0.505967471726 0.762865625413 0.172227257030 0 + 883 0.223295935059 0.860464205853 0.221411415101 0 + 884 -0.000000000000 0.495843976614 1.000000000000 0 + 885 0.111897175107 0.485277887358 1.000000000000 0 + 886 0.180760157561 0.568577671703 1.000000000000 0 + 887 -0.000000000000 0.502018468298 0.858074143202 0 + 888 0.117147443835 0.490478012067 0.869075188418 0 + 889 0.156217199109 0.537578515268 0.850867897838 0 + 890 -0.000000000000 0.603868712797 0.814342468709 0 + 891 0.133750228719 0.605467835230 0.820558600159 0 + 892 0.199306152050 0.179117527097 0.426303546733 0 + 893 0.256361933732 0.157707781048 0.266413185405 0 + 894 0.248773178393 -0.000000000000 0.183045133066 0 + 895 0.218329973747 0.128075307244 0.179536539014 0 + 896 0.298440366565 -0.000000000000 0.279666010697 0 + 897 0.283513294925 -0.000000000000 0.404505149368 0 + 898 0.282022595708 0.088408999608 0.387264775014 0 + 899 0.290837244154 0.101652388154 0.309095396404 0 + 900 0.604019480600 0.747476411808 0.335735231467 0 + 901 0.840110366385 0.392255899128 0.299833018739 0 + 902 0.869409102184 0.438489578644 0.322999119143 0 + 903 0.612915891971 0.100409276838 -0.000000000000 0 + 904 0.268385576243 0.682546528727 0.574534274076 0 + 905 0.343684782395 0.710190881400 0.668283200367 0 + 906 0.392737354334 0.691735870538 0.635560264639 0 + 907 0.367980824335 0.666403123655 0.562953935038 0 + 908 0.767079584849 0.798808964347 0.686107912121 0 + 909 0.772258761005 0.802939097911 0.633220490434 0 + 910 0.757086493573 0.768074913988 0.589665513894 0 + 911 0.836115315701 1.000000000000 0.870483046795 0 + 912 0.603421829942 -0.000000000000 -0.000000000000 0 + 913 0.708074504132 0.584314771755 0.872280652889 0 + 914 0.171698543369 0.283835936889 -0.000000000000 0 + 915 0.160770868564 0.323672012770 0.119338753019 0 + 916 0.172612642321 0.278773190744 0.091340480397 0 + 917 0.153367595273 0.354079073563 -0.000000000000 0 + 918 0.181278698026 0.399328215966 -0.000000000000 0 + 919 0.180742684745 0.396664242402 0.078321826848 0 + 920 0.153467888499 0.352095230389 0.093656452792 0 + 921 0.291420745200 0.374344573180 -0.000000000000 0 + 922 0.729111082352 0.636300278444 0.230749519774 0 + 923 0.700959999750 0.610851265212 0.208021540141 0 + 924 0.159523054390 0.606866020487 0.787427897735 0 + 925 -0.000000000000 0.420820009654 0.628043253001 0 + 926 0.214109063311 0.532865486214 0.783175092914 0 + 927 0.210749823379 0.509682885047 0.807192910029 0 + 928 0.613973270654 0.696359563558 0.118756533930 0 + 929 0.612258669554 0.766362036481 0.109074437815 0 + 930 0.307966629576 -0.000000000000 -0.000000000000 0 + 931 0.317014068304 -0.000000000000 0.132798883538 0 + 932 0.812905848761 1.000000000000 0.625075257700 0 + 933 0.826798790682 0.827870164584 0.606454240438 0 + 934 0.281806507686 0.219452144742 0.477034620816 0 + 935 0.224190503979 0.218307722893 0.460130539395 0 + 936 0.195223715826 0.228316500971 0.517412506150 0 + 937 0.331990650993 0.170143144119 0.457273537504 0 + 938 0.165988697042 0.142332108900 0.794169659718 0 + 939 0.361224254150 0.217147613562 0.435541095427 0 + 940 0.420267284806 0.122871182140 0.172358954061 0 + 941 0.387176249410 -0.000000000000 0.182895913244 0 + 942 0.480990330650 -0.000000000000 0.155395376069 0 + 943 0.478753212672 0.085338428141 0.155470046413 0 + 944 1.000000000000 0.426032694852 0.760415631007 0 + 945 0.877808764212 0.451918163789 0.746621236656 0 + 946 0.823694218799 0.409675690879 0.692616390865 0 + 947 0.459299352943 -0.000000000000 -0.000000000000 0 + 948 0.455995031972 0.125464038785 -0.000000000000 0 + 949 0.467156698428 0.139039138446 0.082524128605 0 + 950 0.383883713793 0.680893532290 0.537358696458 0 + 951 0.373499442106 0.773429364075 0.467227692084 0 + 952 0.353435319145 0.733210620607 0.474978873667 0 + 953 0.604808948791 0.574603452781 0.436530518921 0 + 954 0.328094171776 0.698995563206 0.414751750743 0 + 955 0.548282327884 0.366273441412 -0.000000000000 0 + 956 0.632326491329 0.517661523577 -0.000000000000 0 + 957 0.649405729581 0.413787051801 -0.000000000000 0 + 958 0.649211450945 0.468640079459 0.151136822415 0 + 959 0.658461750240 0.402156313787 0.122345753541 0 + 960 0.654675665073 0.435455939148 0.151274084952 0 + 961 1.000000000000 0.438673824855 0.318827891450 0 + 962 1.000000000000 0.348470154884 0.271762014232 0 + 963 0.860947048693 0.356895653102 0.280702095060 0 + 964 0.621603177167 -0.000000000000 0.670048128926 0 + 965 0.475022015725 0.218566865663 0.849528484172 0 + 966 0.707569570468 -0.000000000000 0.722918687471 0 + 967 0.678915410946 -0.000000000000 0.874920367280 0 + 968 0.696691509499 0.156122475182 0.885109114218 0 + 969 0.158982050481 0.288296437144 0.480217942794 0 + 970 0.120080734983 0.278674614594 0.467762747490 0 + 971 0.221693315251 0.476917652221 0.146547472257 0 + 972 0.176397790517 0.456244700897 0.096672340972 0 + 973 0.176611846634 0.465918752533 -0.000000000000 0 + 974 1.000000000000 1.000000000000 1.000000000000 0 + 975 1.000000000000 0.863294934823 1.000000000000 0 + 976 1.000000000000 1.000000000000 0.872859991027 0 + 977 1.000000000000 0.871027754151 0.895366805836 0 + 978 0.317604943097 0.259219129765 0.452823375015 0 + 979 0.341981169491 0.303339747989 0.495764570269 0 + 980 0.464536051490 1.000000000000 -0.000000000000 0 + 981 0.479027140213 0.794713077933 -0.000000000000 0 + 982 0.344804174739 0.774746991286 0.690559552178 0 + 983 -0.000000000000 0.346282228296 0.103298978542 0 + 984 -0.000000000000 0.348474363201 -0.000000000000 0 + 985 0.125072055120 0.350491933359 0.120308558373 0 + 986 0.146282131758 0.324490465028 0.131091186461 0 + 987 0.689036664738 0.560810294963 -0.000000000000 0 + 988 1.000000000000 1.000000000000 0.693067837307 0 + 989 0.865034525142 1.000000000000 0.691308214159 0 + 990 0.840283164367 0.829393157464 0.732392413057 0 + 991 0.887407740216 0.851662378328 0.688475682889 0 + 992 1.000000000000 0.845901200768 0.689822273991 0 + 993 0.560907493618 0.705899631792 0.700929557888 0 + 994 0.506909452349 0.700860386749 0.705183588702 0 + 995 1.000000000000 0.551566939802 0.745192750384 0 + 996 0.836445425690 0.554743915482 0.777485130190 0 + 997 0.861392261355 0.524106873909 0.736435727255 0 + 998 0.833855196838 0.665051881073 0.830951504774 0 + 999 1.000000000000 0.611715705921 0.817253420229 0 + 1000 0.871495924847 0.595607746112 0.820336931257 0 + 1001 1.000000000000 0.447534316264 0.435199952244 0 + 1002 0.818719779680 0.518300589501 0.848272359956 0 + 1003 0.607330691661 0.667577214283 -0.000000000000 0 + 1004 0.605413680121 0.785812028290 -0.000000000000 0 + 1005 0.809458430677 0.570445017980 0.905909659984 0 + 1006 0.848405102395 0.555910628575 0.866977559194 0 + 1007 -0.000000000000 0.292040693347 0.479119516426 0 + 1008 0.816169849197 0.565987078881 1.000000000000 0 + 1009 -0.000000000000 0.483557301801 -0.000000000000 0 + 1010 1.000000000000 0.720936541944 1.000000000000 0 + 1011 0.742442501032 -0.000000000000 1.000000000000 0 + 1012 0.755576604155 0.162723535937 1.000000000000 0 + 1013 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 2022 + 1 10 6 0 + 2 6 1 0 + 3 1 12 0 + 4 12 13 0 + 5 13 10 0 + 6 3 4 0 + 7 4 1 0 + 8 6 5 0 + 9 5 3 0 + 10 12 20 0 + 11 20 19 0 + 12 19 4 0 + 13 2 9 0 + 14 9 7 0 + 15 7 21 0 + 16 21 26 0 + 17 26 2 0 + 18 16 15 0 + 19 15 7 0 + 20 21 22 0 + 21 22 16 0 + 22 3 2 0 + 23 9 8 0 + 24 8 5 0 + 25 19 25 0 + 26 25 26 0 + 27 10 11 0 + 28 11 8 0 + 29 14 17 0 + 30 17 16 0 + 31 22 23 0 + 32 23 14 0 + 33 15 18 0 + 34 18 11 0 + 35 14 13 0 + 36 18 17 0 + 37 23 24 0 + 38 24 20 0 + 39 24 25 0 + 40 33 34 0 + 41 34 32 0 + 42 32 43 0 + 43 43 44 0 + 44 44 33 0 + 45 30 31 0 + 46 31 27 0 + 47 27 36 0 + 48 36 35 0 + 49 35 30 0 + 50 44 39 0 + 51 39 47 0 + 52 47 48 0 + 53 48 33 0 + 54 29 27 0 + 55 36 45 0 + 56 45 46 0 + 57 46 29 0 + 58 28 29 0 + 59 31 37 0 + 60 37 38 0 + 61 38 28 0 + 62 28 40 0 + 63 40 41 0 + 64 41 38 0 + 65 30 32 0 + 66 34 35 0 + 67 39 40 0 + 68 46 47 0 + 69 37 42 0 + 70 42 43 0 + 71 45 48 0 + 72 41 42 0 + 73 49 52 0 + 74 52 56 0 + 75 56 60 0 + 76 60 61 0 + 77 61 49 0 + 78 51 50 0 + 79 50 49 0 + 80 61 63 0 + 81 63 64 0 + 82 64 51 0 + 83 50 54 0 + 84 54 55 0 + 85 55 52 0 + 86 51 53 0 + 87 53 54 0 + 88 53 59 0 + 89 59 65 0 + 90 65 64 0 + 91 56 58 0 + 92 58 57 0 + 93 57 55 0 + 94 57 59 0 + 95 58 62 0 + 96 62 60 0 + 97 62 66 0 + 98 66 65 0 + 99 63 66 0 + 100 67 73 0 + 101 73 77 0 + 102 77 102 0 + 103 102 101 0 + 104 101 105 0 + 105 105 104 0 + 106 104 67 0 + 107 83 84 0 + 108 84 70 0 + 109 70 74 0 + 110 74 75 0 + 111 75 67 0 + 112 104 108 0 + 113 108 83 0 + 114 68 72 0 + 115 72 99 0 + 116 99 98 0 + 117 98 68 0 + 118 69 68 0 + 119 72 78 0 + 120 78 86 0 + 121 86 85 0 + 122 85 69 0 + 123 73 76 0 + 124 76 75 0 + 125 85 89 0 + 126 89 71 0 + 127 71 93 0 + 128 93 94 0 + 129 94 69 0 + 130 71 70 0 + 131 74 92 0 + 132 92 93 0 + 133 94 95 0 + 134 95 103 0 + 135 103 98 0 + 136 89 88 0 + 137 88 84 0 + 138 96 80 0 + 139 80 78 0 + 140 99 100 0 + 141 100 96 0 + 142 77 90 0 + 143 90 91 0 + 144 91 76 0 + 145 91 92 0 + 146 90 95 0 + 147 103 102 0 + 148 80 79 0 + 149 79 82 0 + 150 82 87 0 + 151 87 86 0 + 152 83 82 0 + 153 79 81 0 + 154 81 107 0 + 155 107 108 0 + 156 96 97 0 + 157 97 81 0 + 158 107 106 0 + 159 106 97 0 + 160 88 87 0 + 161 101 100 0 + 162 106 105 0 + 163 112 109 0 + 164 109 115 0 + 165 115 116 0 + 166 116 112 0 + 167 109 110 0 + 168 110 111 0 + 169 111 118 0 + 170 118 115 0 + 171 111 113 0 + 172 113 114 0 + 173 114 110 0 + 174 114 112 0 + 175 113 117 0 + 176 117 118 0 + 177 116 117 0 + 178 123 122 0 + 179 122 119 0 + 180 119 131 0 + 181 131 132 0 + 182 132 123 0 + 183 119 120 0 + 184 120 125 0 + 185 125 126 0 + 186 126 134 0 + 187 134 131 0 + 188 120 121 0 + 189 121 122 0 + 190 125 128 0 + 191 128 127 0 + 192 127 121 0 + 193 124 129 0 + 194 129 130 0 + 195 130 123 0 + 196 132 133 0 + 197 133 124 0 + 198 130 127 0 + 199 124 126 0 + 200 134 133 0 + 201 129 128 0 + 202 138 135 0 + 203 135 142 0 + 204 142 154 0 + 205 154 155 0 + 206 155 138 0 + 207 136 135 0 + 208 138 144 0 + 209 144 163 0 + 210 163 162 0 + 211 162 136 0 + 212 153 139 0 + 213 139 140 0 + 214 140 158 0 + 215 158 159 0 + 216 159 153 0 + 217 136 151 0 + 218 151 150 0 + 219 150 142 0 + 220 148 151 0 + 221 162 166 0 + 222 166 148 0 + 223 137 141 0 + 224 141 139 0 + 225 153 152 0 + 226 152 137 0 + 227 137 143 0 + 228 143 145 0 + 229 145 146 0 + 230 146 141 0 + 231 143 144 0 + 232 155 156 0 + 233 156 152 0 + 234 148 149 0 + 235 149 161 0 + 236 161 158 0 + 237 140 147 0 + 238 147 165 0 + 239 165 166 0 + 240 147 146 0 + 241 149 150 0 + 242 154 157 0 + 243 157 160 0 + 244 160 161 0 + 245 145 164 0 + 246 164 163 0 + 247 165 164 0 + 248 157 156 0 + 249 159 160 0 + 250 168 177 0 + 251 177 178 0 + 252 178 173 0 + 253 173 183 0 + 254 183 184 0 + 255 184 168 0 + 256 170 172 0 + 257 172 174 0 + 258 174 186 0 + 259 186 185 0 + 260 185 170 0 + 261 171 167 0 + 262 167 182 0 + 263 182 181 0 + 264 181 171 0 + 265 167 169 0 + 266 169 168 0 + 267 177 182 0 + 268 170 169 0 + 269 171 172 0 + 270 185 184 0 + 271 174 176 0 + 272 176 180 0 + 273 180 181 0 + 274 173 175 0 + 275 175 179 0 + 276 179 178 0 + 277 175 176 0 + 278 186 183 0 + 279 180 179 0 + 280 200 192 0 + 281 192 197 0 + 282 197 188 0 + 283 188 201 0 + 284 201 204 0 + 285 204 200 0 + 286 193 194 0 + 287 194 190 0 + 288 190 198 0 + 289 198 199 0 + 290 199 193 0 + 291 189 187 0 + 292 187 188 0 + 293 201 202 0 + 294 202 189 0 + 295 192 193 0 + 296 199 200 0 + 297 189 191 0 + 298 191 195 0 + 299 195 196 0 + 300 196 187 0 + 301 197 196 0 + 302 191 190 0 + 303 198 203 0 + 304 203 202 0 + 305 195 194 0 + 306 204 203 0 + 307 207 205 0 + 308 205 206 0 + 309 206 208 0 + 310 208 209 0 + 311 209 207 0 + 312 205 212 0 + 313 212 213 0 + 314 213 206 0 + 315 207 211 0 + 316 211 212 0 + 317 208 214 0 + 318 214 213 0 + 319 209 210 0 + 320 210 211 0 + 321 210 214 0 + 322 215 216 0 + 323 216 219 0 + 324 219 222 0 + 325 222 221 0 + 326 221 215 0 + 327 217 215 0 + 328 221 224 0 + 329 224 217 0 + 330 217 218 0 + 331 218 216 0 + 332 218 220 0 + 333 220 219 0 + 334 220 223 0 + 335 223 224 0 + 336 222 223 0 + 337 168 227 0 + 338 227 232 0 + 339 232 234 0 + 340 234 238 0 + 341 238 177 0 + 342 226 225 0 + 343 225 237 0 + 344 237 236 0 + 345 236 226 0 + 346 167 225 0 + 347 237 239 0 + 348 239 182 0 + 349 226 228 0 + 350 228 229 0 + 351 229 169 0 + 352 233 231 0 + 353 231 228 0 + 354 236 235 0 + 355 235 233 0 + 356 227 230 0 + 357 230 231 0 + 358 233 232 0 + 359 230 229 0 + 360 235 234 0 + 361 239 238 0 + 362 248 249 0 + 363 249 241 0 + 364 241 252 0 + 365 252 253 0 + 366 253 248 0 + 367 240 241 0 + 368 249 245 0 + 369 245 240 0 + 370 243 242 0 + 371 242 240 0 + 372 245 246 0 + 373 246 243 0 + 374 244 243 0 + 375 246 247 0 + 376 247 244 0 + 377 252 251 0 + 378 251 242 0 + 379 244 250 0 + 380 250 251 0 + 381 248 247 0 + 382 250 253 0 + 383 153 172 0 + 384 170 139 0 + 385 141 229 0 + 386 228 257 0 + 387 257 258 0 + 388 258 137 0 + 389 255 254 0 + 390 254 225 0 + 391 171 255 0 + 392 254 256 0 + 393 256 257 0 + 394 258 259 0 + 395 259 255 0 + 396 256 226 0 + 397 152 259 0 + 398 262 261 0 + 399 261 266 0 + 400 266 267 0 + 401 267 277 0 + 402 277 278 0 + 403 278 262 0 + 404 267 268 0 + 405 268 264 0 + 406 264 281 0 + 407 281 277 0 + 408 264 275 0 + 409 275 276 0 + 410 276 280 0 + 411 280 281 0 + 412 260 261 0 + 413 262 263 0 + 414 263 260 0 + 415 260 265 0 + 416 265 270 0 + 417 270 271 0 + 418 271 263 0 + 419 266 269 0 + 420 269 265 0 + 421 271 273 0 + 422 273 272 0 + 423 272 279 0 + 424 279 278 0 + 425 268 269 0 + 426 270 274 0 + 427 274 275 0 + 428 272 276 0 + 429 280 279 0 + 430 273 274 0 + 431 122 283 0 + 432 283 282 0 + 433 282 119 0 + 434 282 285 0 + 435 285 120 0 + 436 285 284 0 + 437 284 121 0 + 438 283 284 0 + 439 292 286 0 + 440 286 289 0 + 441 289 294 0 + 442 294 295 0 + 443 295 292 0 + 444 286 287 0 + 445 287 290 0 + 446 290 289 0 + 447 293 288 0 + 448 288 291 0 + 449 291 297 0 + 450 297 296 0 + 451 296 293 0 + 452 288 287 0 + 453 290 291 0 + 454 293 292 0 + 455 297 294 0 + 456 295 296 0 + 457 300 303 0 + 458 303 302 0 + 459 302 313 0 + 460 313 314 0 + 461 314 300 0 + 462 302 242 0 + 463 251 306 0 + 464 306 307 0 + 465 307 318 0 + 466 318 313 0 + 467 298 299 0 + 468 299 309 0 + 469 309 308 0 + 470 308 298 0 + 471 298 301 0 + 472 301 300 0 + 473 303 243 0 + 474 244 308 0 + 475 304 305 0 + 476 305 310 0 + 477 310 309 0 + 478 299 311 0 + 479 311 312 0 + 480 312 304 0 + 481 311 316 0 + 482 316 315 0 + 483 315 301 0 + 484 315 314 0 + 485 305 306 0 + 486 250 310 0 + 487 304 307 0 + 488 318 317 0 + 489 317 312 0 + 490 317 316 0 + 491 320 319 0 + 492 319 321 0 + 493 321 327 0 + 494 327 328 0 + 495 328 320 0 + 496 322 319 0 + 497 320 324 0 + 498 324 325 0 + 499 325 322 0 + 500 322 323 0 + 501 323 321 0 + 502 324 306 0 + 503 305 328 0 + 504 326 323 0 + 505 327 304 0 + 506 307 326 0 + 507 326 325 0 + 508 330 188 0 + 509 197 332 0 + 510 332 336 0 + 511 336 337 0 + 512 337 330 0 + 513 329 187 0 + 514 196 333 0 + 515 333 334 0 + 516 334 329 0 + 517 329 331 0 + 518 331 330 0 + 519 334 339 0 + 520 339 338 0 + 521 338 331 0 + 522 338 337 0 + 523 333 335 0 + 524 335 332 0 + 525 335 340 0 + 526 340 336 0 + 527 339 340 0 + 528 354 353 0 + 529 353 344 0 + 530 344 342 0 + 531 342 348 0 + 532 348 64 0 + 533 63 354 0 + 534 354 350 0 + 535 350 347 0 + 536 347 66 0 + 537 341 343 0 + 538 343 345 0 + 539 345 352 0 + 540 352 351 0 + 541 351 341 0 + 542 341 346 0 + 543 346 347 0 + 544 350 351 0 + 545 342 343 0 + 546 346 349 0 + 547 349 348 0 + 548 345 344 0 + 549 352 353 0 + 550 65 349 0 + 551 358 364 0 + 552 364 365 0 + 553 365 360 0 + 554 360 70 0 + 555 84 358 0 + 556 357 356 0 + 557 356 355 0 + 558 355 362 0 + 559 362 363 0 + 560 363 357 0 + 561 360 361 0 + 562 361 355 0 + 563 362 365 0 + 564 361 71 0 + 565 89 356 0 + 566 359 357 0 + 567 88 359 0 + 568 359 358 0 + 569 364 363 0 + 570 366 367 0 + 571 367 368 0 + 572 368 369 0 + 573 369 370 0 + 574 370 366 0 + 575 367 375 0 + 576 375 374 0 + 577 374 366 0 + 578 371 370 0 + 579 374 376 0 + 580 376 371 0 + 581 375 378 0 + 582 378 377 0 + 583 377 368 0 + 584 369 372 0 + 585 372 381 0 + 586 381 377 0 + 587 373 371 0 + 588 376 379 0 + 589 379 380 0 + 590 380 373 0 + 591 373 372 0 + 592 380 381 0 + 593 378 379 0 + 594 383 382 0 + 595 382 329 0 + 596 334 385 0 + 597 385 383 0 + 598 384 191 0 + 599 195 387 0 + 600 387 386 0 + 601 386 384 0 + 602 189 382 0 + 603 384 383 0 + 604 386 385 0 + 605 333 387 0 + 606 295 389 0 + 607 389 388 0 + 608 388 390 0 + 609 390 292 0 + 610 277 393 0 + 611 393 388 0 + 612 389 395 0 + 613 395 278 0 + 614 390 392 0 + 615 392 394 0 + 616 394 393 0 + 617 293 391 0 + 618 391 280 0 + 619 279 396 0 + 620 396 296 0 + 621 395 396 0 + 622 391 392 0 + 623 394 281 0 + 624 274 403 0 + 625 403 397 0 + 626 397 417 0 + 627 417 273 0 + 628 402 409 0 + 629 409 408 0 + 630 408 416 0 + 631 416 419 0 + 632 419 402 0 + 633 401 400 0 + 634 400 405 0 + 635 405 404 0 + 636 404 406 0 + 637 406 410 0 + 638 410 401 0 + 639 411 412 0 + 640 412 402 0 + 641 419 418 0 + 642 418 411 0 + 643 397 398 0 + 644 398 399 0 + 645 399 400 0 + 646 405 403 0 + 647 398 415 0 + 648 415 414 0 + 649 414 399 0 + 650 407 406 0 + 651 404 275 0 + 652 276 407 0 + 653 408 407 0 + 654 272 416 0 + 655 411 415 0 + 656 417 418 0 + 657 401 413 0 + 658 413 414 0 + 659 409 410 0 + 660 413 412 0 + 661 427 431 0 + 662 431 86 0 + 663 78 427 0 + 664 427 428 0 + 665 428 420 0 + 666 420 80 0 + 667 431 430 0 + 668 430 421 0 + 669 421 87 0 + 670 420 422 0 + 671 422 424 0 + 672 424 79 0 + 673 423 422 0 + 674 428 429 0 + 675 429 423 0 + 676 421 426 0 + 677 426 425 0 + 678 425 423 0 + 679 429 430 0 + 680 82 426 0 + 681 424 425 0 + 682 432 433 0 + 683 433 436 0 + 684 436 437 0 + 685 437 443 0 + 686 443 444 0 + 687 444 432 0 + 688 354 432 0 + 689 444 445 0 + 690 445 353 0 + 691 439 352 0 + 692 445 446 0 + 693 446 439 0 + 694 433 434 0 + 695 434 350 0 + 696 434 164 0 + 697 165 436 0 + 698 437 438 0 + 699 438 442 0 + 700 442 447 0 + 701 447 443 0 + 702 441 442 0 + 703 438 166 0 + 704 162 441 0 + 705 439 440 0 + 706 440 435 0 + 707 435 351 0 + 708 435 163 0 + 709 441 440 0 + 710 447 446 0 + 711 451 449 0 + 712 449 454 0 + 713 454 455 0 + 714 455 456 0 + 715 456 451 0 + 716 450 448 0 + 717 448 457 0 + 718 457 458 0 + 719 458 472 0 + 720 472 473 0 + 721 473 450 0 + 722 453 448 0 + 723 457 461 0 + 724 461 464 0 + 725 464 463 0 + 726 463 453 0 + 727 452 451 0 + 728 449 467 0 + 729 467 468 0 + 730 468 452 0 + 731 453 470 0 + 732 470 469 0 + 733 469 450 0 + 734 454 460 0 + 735 460 465 0 + 736 465 466 0 + 737 466 471 0 + 738 471 467 0 + 739 468 469 0 + 740 473 474 0 + 741 474 452 0 + 742 474 475 0 + 743 475 456 0 + 744 466 463 0 + 745 470 471 0 + 746 459 455 0 + 747 460 462 0 + 748 462 459 0 + 749 458 459 0 + 750 475 472 0 + 751 462 461 0 + 752 465 464 0 + 753 135 476 0 + 754 476 477 0 + 755 477 138 0 + 756 136 480 0 + 757 480 479 0 + 758 479 476 0 + 759 32 478 0 + 760 478 435 0 + 761 440 34 0 + 762 441 480 0 + 763 477 30 0 + 764 35 479 0 + 765 144 478 0 + 766 488 489 0 + 767 489 483 0 + 768 483 485 0 + 769 485 102 0 + 770 77 488 0 + 771 483 484 0 + 772 484 481 0 + 773 481 490 0 + 774 490 489 0 + 775 482 481 0 + 776 484 486 0 + 777 486 487 0 + 778 487 482 0 + 779 491 490 0 + 780 482 95 0 + 781 90 491 0 + 782 103 487 0 + 783 488 491 0 + 784 485 486 0 + 785 485 494 0 + 786 494 493 0 + 787 493 249 0 + 788 248 101 0 + 789 493 492 0 + 790 492 245 0 + 791 246 497 0 + 792 497 496 0 + 793 496 492 0 + 794 495 247 0 + 795 497 506 0 + 796 506 507 0 + 797 507 495 0 + 798 502 501 0 + 799 501 99 0 + 800 98 502 0 + 801 501 507 0 + 802 495 100 0 + 803 494 499 0 + 804 499 498 0 + 805 498 496 0 + 806 487 503 0 + 807 503 502 0 + 808 486 500 0 + 809 500 504 0 + 810 504 503 0 + 811 499 500 0 + 812 506 505 0 + 813 505 498 0 + 814 504 505 0 + 815 368 126 0 + 816 125 508 0 + 817 508 365 0 + 818 364 369 0 + 819 128 513 0 + 820 513 514 0 + 821 514 508 0 + 822 510 509 0 + 823 509 363 0 + 824 362 511 0 + 825 511 512 0 + 826 512 510 0 + 827 124 516 0 + 828 516 377 0 + 829 511 514 0 + 830 509 372 0 + 831 381 515 0 + 832 515 510 0 + 833 512 513 0 + 834 129 517 0 + 835 517 515 0 + 836 517 516 0 + 837 519 520 0 + 838 520 518 0 + 839 518 524 0 + 840 524 525 0 + 841 525 519 0 + 842 402 523 0 + 843 523 521 0 + 844 521 526 0 + 845 526 419 0 + 846 411 518 0 + 847 520 522 0 + 848 522 412 0 + 849 519 521 0 + 850 526 525 0 + 851 418 524 0 + 852 522 523 0 + 853 360 529 0 + 854 529 530 0 + 855 530 527 0 + 856 527 74 0 + 857 528 527 0 + 858 92 528 0 + 859 529 533 0 + 860 533 532 0 + 861 532 361 0 + 862 535 534 0 + 863 534 531 0 + 864 531 528 0 + 865 93 535 0 + 866 532 535 0 + 867 530 531 0 + 868 534 533 0 + 869 537 536 0 + 870 536 538 0 + 871 538 539 0 + 872 539 541 0 + 873 541 542 0 + 874 542 537 0 + 875 536 543 0 + 876 543 544 0 + 877 544 537 0 + 878 538 540 0 + 879 540 547 0 + 880 547 543 0 + 881 545 546 0 + 882 546 548 0 + 883 548 552 0 + 884 552 553 0 + 885 553 545 0 + 886 541 549 0 + 887 549 550 0 + 888 550 539 0 + 889 544 545 0 + 890 553 554 0 + 891 554 542 0 + 892 546 547 0 + 893 540 551 0 + 894 551 548 0 + 895 550 551 0 + 896 554 555 0 + 897 555 549 0 + 898 552 555 0 + 899 562 477 0 + 900 476 566 0 + 901 566 567 0 + 902 567 562 0 + 903 556 479 0 + 904 566 569 0 + 905 569 556 0 + 906 556 558 0 + 907 558 561 0 + 908 561 565 0 + 909 565 568 0 + 910 568 569 0 + 911 559 27 0 + 912 31 563 0 + 913 563 564 0 + 914 564 559 0 + 915 557 36 0 + 916 559 560 0 + 917 560 557 0 + 918 557 558 0 + 919 561 560 0 + 920 565 564 0 + 921 562 563 0 + 922 568 567 0 + 923 580 571 0 + 924 571 570 0 + 925 570 575 0 + 926 575 204 0 + 927 201 580 0 + 928 570 573 0 + 929 573 576 0 + 930 576 575 0 + 931 571 572 0 + 932 572 574 0 + 933 574 573 0 + 934 574 578 0 + 935 578 577 0 + 936 577 572 0 + 937 577 581 0 + 938 581 580 0 + 939 576 579 0 + 940 579 578 0 + 941 203 579 0 + 942 202 581 0 + 943 582 583 0 + 944 583 584 0 + 945 584 589 0 + 946 589 595 0 + 947 595 591 0 + 948 591 582 0 + 949 582 588 0 + 950 588 592 0 + 951 592 591 0 + 952 583 586 0 + 953 586 587 0 + 954 587 588 0 + 955 584 585 0 + 956 585 298 0 + 957 299 590 0 + 958 590 589 0 + 959 585 586 0 + 960 308 587 0 + 961 592 593 0 + 962 593 309 0 + 963 595 594 0 + 964 594 590 0 + 965 593 594 0 + 966 241 597 0 + 967 597 596 0 + 968 596 325 0 + 969 324 252 0 + 970 597 598 0 + 971 598 240 0 + 972 598 599 0 + 973 599 302 0 + 974 599 601 0 + 975 601 313 0 + 976 326 600 0 + 977 600 596 0 + 978 601 602 0 + 979 602 600 0 + 980 602 318 0 + 981 256 611 0 + 982 611 620 0 + 983 620 236 0 + 984 603 604 0 + 985 604 605 0 + 986 605 613 0 + 987 613 614 0 + 988 614 603 0 + 989 615 614 0 + 990 603 610 0 + 991 610 618 0 + 992 618 619 0 + 993 619 615 0 + 994 608 604 0 + 995 610 612 0 + 996 612 608 0 + 997 607 605 0 + 998 608 609 0 + 999 609 607 0 + 1000 606 607 0 + 1001 613 617 0 + 1002 617 606 0 + 1003 233 616 0 + 1004 616 615 0 + 1005 619 235 0 + 1006 606 231 0 + 1007 616 617 0 + 1008 609 257 0 + 1009 611 612 0 + 1010 618 620 0 + 1011 366 111 0 + 1012 110 621 0 + 1013 621 367 0 + 1014 621 622 0 + 1015 622 114 0 + 1016 113 374 0 + 1017 375 622 0 + 1018 628 630 0 + 1019 630 623 0 + 1020 623 624 0 + 1021 624 635 0 + 1022 635 631 0 + 1023 631 628 0 + 1024 519 628 0 + 1025 631 632 0 + 1026 632 520 0 + 1027 522 626 0 + 1028 626 633 0 + 1029 633 632 0 + 1030 623 627 0 + 1031 627 629 0 + 1032 629 630 0 + 1033 626 625 0 + 1034 625 634 0 + 1035 634 633 0 + 1036 625 624 0 + 1037 635 634 0 + 1038 523 627 0 + 1039 521 629 0 + 1040 636 582 0 + 1041 588 97 0 + 1042 81 636 0 + 1043 636 637 0 + 1044 637 591 0 + 1045 106 639 0 + 1046 639 592 0 + 1047 637 638 0 + 1048 638 107 0 + 1049 639 638 0 + 1050 407 391 0 + 1051 392 640 0 + 1052 640 642 0 + 1053 642 406 0 + 1054 394 641 0 + 1055 641 643 0 + 1056 643 264 0 + 1057 640 641 0 + 1058 643 644 0 + 1059 644 642 0 + 1060 404 644 0 + 1061 207 645 0 + 1062 645 646 0 + 1063 646 656 0 + 1064 656 653 0 + 1065 653 205 0 + 1066 212 650 0 + 1067 650 654 0 + 1068 654 653 0 + 1069 646 648 0 + 1070 648 651 0 + 1071 651 655 0 + 1072 655 656 0 + 1073 645 647 0 + 1074 647 211 0 + 1075 648 649 0 + 1076 649 647 0 + 1077 649 652 0 + 1078 652 650 0 + 1079 651 652 0 + 1080 654 655 0 + 1081 232 657 0 + 1082 657 658 0 + 1083 658 660 0 + 1084 660 234 0 + 1085 658 659 0 + 1086 659 661 0 + 1087 661 660 0 + 1088 615 659 0 + 1089 661 619 0 + 1090 616 657 0 + 1091 319 662 0 + 1092 662 663 0 + 1093 663 321 0 + 1094 322 665 0 + 1095 665 662 0 + 1096 665 664 0 + 1097 664 323 0 + 1098 664 663 0 + 1099 527 668 0 + 1100 668 667 0 + 1101 667 75 0 + 1102 667 666 0 + 1103 666 76 0 + 1104 666 669 0 + 1105 669 670 0 + 1106 670 91 0 + 1107 528 671 0 + 1108 671 672 0 + 1109 672 668 0 + 1110 672 669 0 + 1111 670 671 0 + 1112 673 433 0 + 1113 432 61 0 + 1114 60 673 0 + 1115 675 674 0 + 1116 674 673 0 + 1117 62 675 0 + 1118 674 434 0 + 1119 347 675 0 + 1120 677 676 0 + 1121 676 685 0 + 1122 685 178 0 + 1123 238 677 0 + 1124 676 678 0 + 1125 678 683 0 + 1126 683 684 0 + 1127 684 686 0 + 1128 686 685 0 + 1129 677 679 0 + 1130 679 678 0 + 1131 239 681 0 + 1132 681 687 0 + 1133 687 181 0 + 1134 679 680 0 + 1135 680 681 0 + 1136 680 682 0 + 1137 682 683 0 + 1138 686 179 0 + 1139 180 689 0 + 1140 689 684 0 + 1141 687 688 0 + 1142 688 682 0 + 1143 689 688 0 + 1144 690 691 0 + 1145 691 524 0 + 1146 518 693 0 + 1147 693 694 0 + 1148 694 690 0 + 1149 398 28 0 + 1150 40 695 0 + 1151 695 415 0 + 1152 29 397 0 + 1153 417 692 0 + 1154 692 46 0 + 1155 695 693 0 + 1156 47 690 0 + 1157 694 39 0 + 1158 692 691 0 + 1159 400 450 0 + 1160 469 699 0 + 1161 699 401 0 + 1162 696 698 0 + 1163 698 474 0 + 1164 473 405 0 + 1165 644 696 0 + 1166 698 697 0 + 1167 697 701 0 + 1168 701 704 0 + 1169 704 696 0 + 1170 452 697 0 + 1171 701 702 0 + 1172 702 468 0 + 1173 700 703 0 + 1174 703 704 0 + 1175 642 705 0 + 1176 705 700 0 + 1177 700 699 0 + 1178 410 705 0 + 1179 703 702 0 + 1180 270 560 0 + 1181 557 706 0 + 1182 706 707 0 + 1183 707 271 0 + 1184 559 403 0 + 1185 706 45 0 + 1186 692 707 0 + 1187 709 48 0 + 1188 706 379 0 + 1189 378 713 0 + 1190 713 714 0 + 1191 714 709 0 + 1192 711 710 0 + 1193 710 480 0 + 1194 442 711 0 + 1195 710 712 0 + 1196 712 556 0 + 1197 439 708 0 + 1198 708 709 0 + 1199 714 446 0 + 1200 380 558 0 + 1201 712 515 0 + 1202 708 33 0 + 1203 516 715 0 + 1204 715 713 0 + 1205 711 517 0 + 1206 715 447 0 + 1207 717 51 0 + 1208 348 720 0 + 1209 720 717 0 + 1210 716 717 0 + 1211 53 716 0 + 1212 719 718 0 + 1213 718 716 0 + 1214 59 719 0 + 1215 720 722 0 + 1216 722 718 0 + 1217 719 721 0 + 1218 721 722 0 + 1219 349 721 0 + 1220 548 724 0 + 1221 724 726 0 + 1222 726 727 0 + 1223 727 546 0 + 1224 545 7 0 + 1225 21 727 0 + 1226 552 725 0 + 1227 725 723 0 + 1228 723 16 0 + 1229 15 553 0 + 1230 725 724 0 + 1231 726 728 0 + 1232 728 723 0 + 1233 22 728 0 + 1234 730 267 0 + 1235 266 358 0 + 1236 83 730 0 + 1237 359 729 0 + 1238 729 269 0 + 1239 421 729 0 + 1240 730 731 0 + 1241 731 426 0 + 1242 268 731 0 + 1243 662 732 0 + 1244 732 733 0 + 1245 733 738 0 + 1246 738 663 0 + 1247 665 734 0 + 1248 734 735 0 + 1249 735 732 0 + 1250 735 736 0 + 1251 736 733 0 + 1252 734 737 0 + 1253 737 739 0 + 1254 739 664 0 + 1255 737 736 0 + 1256 738 739 0 + 1257 740 741 0 + 1258 741 743 0 + 1259 743 742 0 + 1260 742 740 0 + 1261 741 745 0 + 1262 745 746 0 + 1263 746 740 0 + 1264 746 747 0 + 1265 747 742 0 + 1266 743 744 0 + 1267 744 745 0 + 1268 744 747 0 + 1269 748 221 0 + 1270 222 749 0 + 1271 749 750 0 + 1272 750 748 0 + 1273 748 104 0 + 1274 105 224 0 + 1275 750 752 0 + 1276 752 108 0 + 1277 638 751 0 + 1278 751 749 0 + 1279 223 639 0 + 1280 752 751 0 + 1281 753 754 0 + 1282 754 756 0 + 1283 756 758 0 + 1284 758 759 0 + 1285 759 753 0 + 1286 760 757 0 + 1287 757 590 0 + 1288 589 701 0 + 1289 702 760 0 + 1290 594 754 0 + 1291 756 757 0 + 1292 753 755 0 + 1293 755 704 0 + 1294 703 759 0 + 1295 595 755 0 + 1296 758 760 0 + 1297 762 761 0 + 1298 761 327 0 + 1299 738 762 0 + 1300 739 764 0 + 1301 764 600 0 + 1302 761 312 0 + 1303 317 763 0 + 1304 763 762 0 + 1305 763 765 0 + 1306 765 764 0 + 1307 765 602 0 + 1308 768 767 0 + 1309 767 766 0 + 1310 766 770 0 + 1311 770 773 0 + 1312 773 768 0 + 1313 766 4 0 + 1314 3 771 0 + 1315 771 770 0 + 1316 767 19 0 + 1317 719 769 0 + 1318 769 772 0 + 1319 772 57 0 + 1320 768 675 0 + 1321 346 25 0 + 1322 773 58 0 + 1323 2 769 0 + 1324 772 771 0 + 1325 26 721 0 + 1326 332 758 0 + 1327 756 761 0 + 1328 762 336 0 + 1329 760 774 0 + 1330 774 335 0 + 1331 316 774 0 + 1332 340 763 0 + 1333 311 757 0 + 1334 294 776 0 + 1335 776 775 0 + 1336 775 389 0 + 1337 776 778 0 + 1338 778 777 0 + 1339 777 775 0 + 1340 777 395 0 + 1341 778 779 0 + 1342 779 297 0 + 1343 396 779 0 + 1344 785 783 0 + 1345 783 781 0 + 1346 781 786 0 + 1347 786 789 0 + 1348 789 785 0 + 1349 781 780 0 + 1350 780 787 0 + 1351 787 786 0 + 1352 784 782 0 + 1353 782 780 0 + 1354 787 788 0 + 1355 788 784 0 + 1356 783 782 0 + 1357 785 784 0 + 1358 789 788 0 + 1359 793 794 0 + 1360 794 384 0 + 1361 386 466 0 + 1362 463 793 0 + 1363 383 791 0 + 1364 791 790 0 + 1365 790 795 0 + 1366 795 385 0 + 1367 790 792 0 + 1368 792 648 0 + 1369 651 795 0 + 1370 792 554 0 + 1371 555 791 0 + 1372 725 794 0 + 1373 723 793 0 + 1374 464 17 0 + 1375 649 18 0 + 1376 652 465 0 + 1377 509 796 0 + 1378 796 797 0 + 1379 797 798 0 + 1380 798 510 0 + 1381 561 800 0 + 1382 800 373 0 + 1383 569 799 0 + 1384 799 712 0 + 1385 798 799 0 + 1386 801 796 0 + 1387 797 802 0 + 1388 802 803 0 + 1389 803 801 0 + 1390 801 800 0 + 1391 568 802 0 + 1392 803 565 0 + 1393 341 808 0 + 1394 808 478 0 + 1395 804 805 0 + 1396 805 767 0 + 1397 768 806 0 + 1398 806 804 0 + 1399 805 807 0 + 1400 807 20 0 + 1401 674 806 0 + 1402 804 145 0 + 1403 143 807 0 + 1404 24 808 0 + 1405 190 810 0 + 1406 810 809 0 + 1407 809 812 0 + 1408 812 194 0 + 1409 811 809 0 + 1410 812 470 0 + 1411 453 811 0 + 1412 810 794 0 + 1413 793 811 0 + 1414 387 471 0 + 1415 817 816 0 + 1416 816 815 0 + 1417 815 823 0 + 1418 823 824 0 + 1419 824 817 0 + 1420 813 814 0 + 1421 814 798 0 + 1422 797 818 0 + 1423 818 813 0 + 1424 818 820 0 + 1425 820 815 0 + 1426 823 822 0 + 1427 822 813 0 + 1428 821 814 0 + 1429 822 826 0 + 1430 826 821 0 + 1431 799 150 0 + 1432 142 566 0 + 1433 567 154 0 + 1434 149 829 0 + 1435 829 821 0 + 1436 816 819 0 + 1437 819 820 0 + 1438 802 819 0 + 1439 817 827 0 + 1440 827 157 0 + 1441 825 824 0 + 1442 827 828 0 + 1443 828 825 0 + 1444 826 825 0 + 1445 828 160 0 + 1446 161 829 0 + 1447 831 832 0 + 1448 832 830 0 + 1449 830 833 0 + 1450 833 834 0 + 1451 834 831 0 + 1452 193 831 0 + 1453 834 199 0 + 1454 830 809 0 + 1455 810 835 0 + 1456 835 833 0 + 1457 812 832 0 + 1458 835 198 0 + 1459 836 837 0 + 1460 837 73 0 + 1461 67 836 0 + 1462 667 836 0 + 1463 666 837 0 + 1464 254 838 0 + 1465 838 839 0 + 1466 839 611 0 + 1467 612 840 0 + 1468 840 842 0 + 1469 842 843 0 + 1470 843 608 0 + 1471 609 844 0 + 1472 844 843 0 + 1473 838 845 0 + 1474 845 255 0 + 1475 258 844 0 + 1476 841 839 0 + 1477 845 849 0 + 1478 849 848 0 + 1479 848 841 0 + 1480 840 841 0 + 1481 848 847 0 + 1482 847 842 0 + 1483 259 846 0 + 1484 846 847 0 + 1485 846 849 0 + 1486 657 850 0 + 1487 850 56 0 + 1488 52 658 0 + 1489 854 852 0 + 1490 852 659 0 + 1491 55 854 0 + 1492 770 613 0 + 1493 614 853 0 + 1494 853 771 0 + 1495 773 851 0 + 1496 851 617 0 + 1497 850 851 0 + 1498 852 853 0 + 1499 854 772 0 + 1500 855 286 0 + 1501 390 857 0 + 1502 857 858 0 + 1503 858 855 0 + 1504 287 856 0 + 1505 856 855 0 + 1506 408 288 0 + 1507 409 856 0 + 1508 858 705 0 + 1509 857 640 0 + 1510 840 859 0 + 1511 859 10 0 + 1512 13 842 0 + 1513 213 863 0 + 1514 863 864 0 + 1515 864 650 0 + 1516 859 210 0 + 1517 647 11 0 + 1518 841 860 0 + 1519 860 214 0 + 1520 860 862 0 + 1521 862 863 0 + 1522 848 861 0 + 1523 861 862 0 + 1524 462 847 0 + 1525 861 865 0 + 1526 865 460 0 + 1527 864 865 0 + 1528 461 14 0 + 1529 866 206 0 + 1530 653 868 0 + 1531 868 866 0 + 1532 863 867 0 + 1533 867 866 0 + 1534 654 870 0 + 1535 870 864 0 + 1536 867 869 0 + 1537 869 870 0 + 1538 869 868 0 + 1539 215 320 0 + 1540 328 216 0 + 1541 217 253 0 + 1542 218 310 0 + 1543 873 596 0 + 1544 597 872 0 + 1545 872 874 0 + 1546 874 875 0 + 1547 875 873 0 + 1548 599 876 0 + 1549 876 878 0 + 1550 878 601 0 + 1551 872 871 0 + 1552 871 598 0 + 1553 871 877 0 + 1554 877 876 0 + 1555 867 881 0 + 1556 881 875 0 + 1557 873 883 0 + 1558 883 869 0 + 1559 874 879 0 + 1560 879 880 0 + 1561 880 877 0 + 1562 764 883 0 + 1563 881 882 0 + 1564 882 879 0 + 1565 880 861 0 + 1566 865 878 0 + 1567 870 765 0 + 1568 862 882 0 + 1569 890 887 0 + 1570 887 884 0 + 1571 884 750 0 + 1572 749 890 0 + 1573 884 885 0 + 1574 885 886 0 + 1575 886 752 0 + 1576 885 888 0 + 1577 888 887 0 + 1578 888 889 0 + 1579 889 886 0 + 1580 891 889 0 + 1581 751 891 0 + 1582 891 890 0 + 1583 575 631 0 + 1584 635 200 0 + 1585 576 894 0 + 1586 894 896 0 + 1587 896 897 0 + 1588 897 632 0 + 1589 634 834 0 + 1590 833 892 0 + 1591 892 633 0 + 1592 893 835 0 + 1593 579 895 0 + 1594 895 893 0 + 1595 893 899 0 + 1596 899 898 0 + 1597 898 892 0 + 1598 897 898 0 + 1599 895 894 0 + 1600 896 899 0 + 1601 872 493 0 + 1602 494 684 0 + 1603 683 874 0 + 1604 871 492 0 + 1605 877 496 0 + 1606 689 499 0 + 1607 880 900 0 + 1608 900 498 0 + 1609 900 688 0 + 1610 682 879 0 + 1611 606 901 0 + 1612 901 804 0 + 1613 805 607 0 + 1614 844 807 0 + 1615 902 230 0 + 1616 146 902 0 + 1617 901 902 0 + 1618 903 783 0 + 1619 785 854 0 + 1620 54 903 0 + 1621 903 716 0 + 1622 782 718 0 + 1623 769 784 0 + 1624 583 422 0 + 1625 423 698 0 + 1626 697 584 0 + 1627 907 904 0 + 1628 904 451 0 + 1629 456 907 0 + 1630 905 586 0 + 1631 420 905 0 + 1632 904 585 0 + 1633 428 906 0 + 1634 906 905 0 + 1635 907 906 0 + 1636 475 429 0 + 1637 482 824 0 + 1638 817 503 0 + 1639 484 909 0 + 1640 909 908 0 + 1641 908 481 0 + 1642 910 909 0 + 1643 500 910 0 + 1644 825 908 0 + 1645 910 828 0 + 1646 827 504 0 + 1647 837 911 0 + 1648 911 488 0 + 1649 911 669 0 + 1650 491 670 0 + 1651 717 912 0 + 1652 912 50 0 + 1653 912 903 0 + 1654 913 355 0 + 1655 356 818 0 + 1656 813 913 0 + 1657 511 913 0 + 1658 814 512 0 + 1659 796 357 0 + 1660 873 734 0 + 1661 737 883 0 + 1662 904 301 0 + 1663 315 449 0 + 1664 774 467 0 + 1665 541 914 0 + 1666 914 917 0 + 1667 917 918 0 + 1668 918 921 0 + 1669 921 542 0 + 1670 790 919 0 + 1671 919 918 0 + 1672 921 792 0 + 1673 914 916 0 + 1674 916 549 0 + 1675 915 920 0 + 1676 920 919 0 + 1677 791 915 0 + 1678 915 916 0 + 1679 917 920 0 + 1680 838 922 0 + 1681 922 237 0 + 1682 922 923 0 + 1683 923 839 0 + 1684 923 620 0 + 1685 857 887 0 + 1686 890 753 0 + 1687 759 925 0 + 1688 925 858 0 + 1689 641 888 0 + 1690 924 755 0 + 1691 696 926 0 + 1692 926 924 0 + 1693 924 891 0 + 1694 889 927 0 + 1695 927 643 0 + 1696 700 925 0 + 1697 926 927 0 + 1698 845 687 0 + 1699 681 922 0 + 1700 860 928 0 + 1701 928 929 0 + 1702 929 882 0 + 1703 923 928 0 + 1704 900 849 0 + 1705 929 680 0 + 1706 573 930 0 + 1707 930 931 0 + 1708 931 894 0 + 1709 538 930 0 + 1710 574 539 0 + 1711 540 931 0 + 1712 895 551 0 + 1713 578 550 0 + 1714 483 932 0 + 1715 932 686 0 + 1716 932 933 0 + 1717 933 909 0 + 1718 175 933 0 + 1719 176 910 0 + 1720 897 693 0 + 1721 414 934 0 + 1722 934 937 0 + 1723 937 695 0 + 1724 935 892 0 + 1725 626 936 0 + 1726 936 935 0 + 1727 935 934 0 + 1728 937 898 0 + 1729 936 413 0 + 1730 856 627 0 + 1731 629 290 0 + 1732 416 938 0 + 1733 938 291 0 + 1734 526 938 0 + 1735 388 884 0 + 1736 393 885 0 + 1737 941 942 0 + 1738 942 720 0 + 1739 342 694 0 + 1740 896 941 0 + 1741 727 940 0 + 1742 940 941 0 + 1743 899 726 0 + 1744 44 343 0 + 1745 940 943 0 + 1746 943 722 0 + 1747 939 41 0 + 1748 937 939 0 + 1749 728 939 0 + 1750 23 42 0 + 1751 808 43 0 + 1752 942 943 0 + 1753 437 944 0 + 1754 944 123 0 + 1755 132 443 0 + 1756 946 711 0 + 1757 438 946 0 + 1758 130 945 0 + 1759 945 946 0 + 1760 945 944 0 + 1761 133 715 0 + 1762 930 947 0 + 1763 947 942 0 + 1764 941 931 0 + 1765 536 948 0 + 1766 948 947 0 + 1767 949 948 0 + 1768 943 949 0 + 1769 543 949 0 + 1770 547 940 0 + 1771 953 459 0 + 1772 455 950 0 + 1773 950 506 0 + 1774 505 953 0 + 1775 950 952 0 + 1776 952 954 0 + 1777 954 454 0 + 1778 952 951 0 + 1779 951 876 0 + 1780 878 954 0 + 1781 846 953 0 + 1782 951 497 0 + 1783 209 956 0 + 1784 956 957 0 + 1785 957 955 0 + 1786 955 645 0 + 1787 959 957 0 + 1788 955 8 0 + 1789 5 959 0 + 1790 859 958 0 + 1791 958 960 0 + 1792 960 6 0 + 1793 956 958 0 + 1794 959 960 0 + 1795 227 961 0 + 1796 961 962 0 + 1797 962 850 0 + 1798 963 901 0 + 1799 851 963 0 + 1800 962 963 0 + 1801 902 961 0 + 1802 116 691 0 + 1803 690 964 0 + 1804 964 966 0 + 1805 966 967 0 + 1806 967 112 0 + 1807 622 968 0 + 1808 968 967 0 + 1809 376 965 0 + 1810 965 707 0 + 1811 117 965 0 + 1812 713 968 0 + 1813 709 964 0 + 1814 966 714 0 + 1815 831 970 0 + 1816 970 625 0 + 1817 935 830 0 + 1818 832 969 0 + 1819 969 936 0 + 1820 969 970 0 + 1821 646 921 0 + 1822 918 973 0 + 1823 973 656 0 + 1824 795 971 0 + 1825 971 972 0 + 1826 972 919 0 + 1827 973 972 0 + 1828 971 655 0 + 1829 974 975 0 + 1830 975 977 0 + 1831 977 976 0 + 1832 976 974 0 + 1833 836 974 0 + 1834 976 911 0 + 1835 668 975 0 + 1836 977 672 0 + 1837 151 710 0 + 1838 603 960 0 + 1839 1 604 0 + 1840 12 843 0 + 1841 958 610 0 + 1842 399 979 0 + 1843 979 978 0 + 1844 978 934 0 + 1845 811 978 0 + 1846 979 448 0 + 1847 969 699 0 + 1848 875 980 0 + 1849 980 735 0 + 1850 868 736 0 + 1851 980 981 0 + 1852 981 866 0 + 1853 981 881 0 + 1854 754 219 0 + 1855 220 593 0 + 1856 38 979 0 + 1857 978 939 0 + 1858 303 951 0 + 1859 952 300 0 + 1860 950 907 0 + 1861 495 982 0 + 1862 982 905 0 + 1863 906 507 0 + 1864 982 587 0 + 1865 893 724 0 + 1866 983 984 0 + 1867 984 571 0 + 1868 580 983 0 + 1869 984 917 0 + 1870 914 572 0 + 1871 986 985 0 + 1872 985 983 0 + 1873 581 986 0 + 1874 920 985 0 + 1875 577 916 0 + 1876 915 986 0 + 1877 780 949 0 + 1878 544 787 0 + 1879 788 9 0 + 1880 852 957 0 + 1881 956 987 0 + 1882 987 661 0 + 1883 853 959 0 + 1884 987 618 0 + 1885 988 976 0 + 1886 977 740 0 + 1887 742 992 0 + 1888 992 988 0 + 1889 988 989 0 + 1890 989 489 0 + 1891 490 990 0 + 1892 990 991 0 + 1893 991 989 0 + 1894 671 746 0 + 1895 747 990 0 + 1896 992 991 0 + 1897 994 993 0 + 1898 993 68 0 + 1899 72 994 0 + 1900 431 819 0 + 1901 820 85 0 + 1902 993 816 0 + 1903 815 69 0 + 1904 427 994 0 + 1905 995 183 0 + 1906 173 992 0 + 1907 743 999 0 + 1908 999 995 0 + 1909 990 908 0 + 1910 826 998 0 + 1911 998 744 0 + 1912 996 821 0 + 1913 998 1000 0 + 1914 1000 996 0 + 1915 995 997 0 + 1916 997 829 0 + 1917 158 186 0 + 1918 933 991 0 + 1919 174 159 0 + 1920 996 997 0 + 1921 999 1000 0 + 1922 605 766 0 + 1923 886 730 0 + 1924 731 927 0 + 1925 424 636 0 + 1926 637 924 0 + 1927 926 425 0 + 1928 673 962 0 + 1929 961 1001 0 + 1930 1001 436 0 + 1931 1001 147 0 + 1932 806 963 0 + 1933 260 371 0 + 1934 965 263 0 + 1935 265 800 0 + 1936 822 535 0 + 1937 94 823 0 + 1938 534 998 0 + 1939 531 745 0 + 1940 994 501 0 + 1941 502 993 0 + 1942 532 913 0 + 1943 995 944 0 + 1944 1001 184 0 + 1945 946 148 0 + 1946 185 140 0 + 1947 997 945 0 + 1948 127 1002 0 + 1949 1002 996 0 + 1950 1002 513 0 + 1951 660 677 0 + 1952 987 1003 0 + 1953 1003 1004 0 + 1954 1004 679 0 + 1955 928 1003 0 + 1956 1004 929 0 + 1957 533 1005 0 + 1958 1005 514 0 + 1959 1002 1006 0 + 1960 1006 1005 0 + 1961 1000 1006 0 + 1962 192 1007 0 + 1963 1007 925 0 + 1964 970 1007 0 + 1965 96 982 0 + 1966 562 155 0 + 1967 953 156 0 + 1968 458 563 0 + 1969 803 430 0 + 1970 564 472 0 + 1971 330 983 0 + 1972 331 985 0 + 1973 986 382 0 + 1974 964 344 0 + 1975 445 966 0 + 1976 708 345 0 + 1977 508 1008 0 + 1978 1008 529 0 + 1979 1005 1008 0 + 1980 457 37 0 + 1981 781 948 0 + 1982 537 786 0 + 1983 733 1009 0 + 1984 1009 337 0 + 1985 973 1009 0 + 1986 971 339 0 + 1987 338 972 0 + 1988 947 912 0 + 1989 115 777 0 + 1990 778 525 0 + 1991 118 262 0 + 1992 938 779 0 + 1993 624 1007 0 + 1994 1003 208 0 + 1995 981 1004 0 + 1996 289 630 0 + 1997 628 776 0 + 1998 314 954 0 + 1999 623 855 0 + 2000 801 729 0 + 2001 285 1008 0 + 2002 1006 284 0 + 2003 975 1010 0 + 2004 1010 741 0 + 2005 530 1010 0 + 2006 678 980 0 + 2007 967 1011 0 + 2008 1011 109 0 + 2009 1011 1012 0 + 2010 1012 621 0 + 2011 968 1012 0 + 2012 955 789 0 + 2013 1010 282 0 + 2014 283 999 0 + 2015 1009 984 0 + 2016 1012 134 0 + 2017 685 988 0 + 2018 932 989 0 + 2019 370 261 0 + 2020 131 1013 0 + 2021 1013 444 0 + 2022 1013 1011 0 + **face + 1210 + 1 5 10 6 1 12 13 + 5 1 2 3 4 5 + -0.633653287233 -0.581731510722 -0.772237703343 0.255416089879 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 5 3 4 1 6 5 + 5 6 7 -2 8 9 + -0.576910763761 -0.840411266542 -0.312983396348 0.442436771392 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 5 4 1 12 20 19 + 5 7 3 10 11 12 + 0.786397294548 0.907810023097 0.390036847330 0.154117551530 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 5 2 9 7 21 26 + 5 13 14 15 16 17 + 0.400367218975 0.196854750896 0.803503664205 0.561809637386 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 16 15 7 21 22 + 5 18 19 15 20 21 + -0.533003622932 -0.860942459320 -0.496199197195 -0.112091205915 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 5 3 2 9 8 + 5 9 22 13 23 24 + 0.072133725511 0.381858844022 -0.057698290147 -0.922417871984 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 6 2 3 4 19 25 26 + 6 -22 6 -12 25 26 17 + 0.355421714103 0.842409897077 -0.526773776563 -0.113379687917 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 5 8 5 6 10 11 + 5 24 -8 -1 27 28 + -0.138514264344 -0.076538138256 -0.572222662640 0.816518914510 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 14 17 16 22 23 + 5 29 30 -21 31 32 + -0.099903946416 -0.684866047625 -0.048744167238 0.727036796160 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 6 11 8 9 7 15 18 + 6 28 -23 14 -19 33 34 + -0.361098973100 -0.481024316359 0.030939088918 -0.876161160888 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 6 14 13 10 11 18 17 + 6 35 5 27 -34 36 -29 + 0.259215504274 -0.287382570313 0.957729948023 -0.012829845643 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 6 20 12 13 14 23 24 + 6 -10 4 -35 -32 37 38 + 0.513669477009 0.148564298589 0.414822936811 0.897691806958 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 13 4 15 16 17 18 + 4 -18 -30 -36 -33 + -0.353884136150 -0.973659049962 0.203158915752 -0.103510914295 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 14 4 19 20 24 25 + 4 -11 -38 39 -25 + 0.604913067473 0.752469614079 -0.212423671943 0.623430560276 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 15 6 21 22 23 24 25 26 + 6 20 31 37 39 26 -16 + 0.175924106864 0.152042888307 0.892382282040 -0.424896249472 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 16 5 33 34 32 43 44 + 5 40 41 42 43 44 + -0.320980456279 -0.914737110676 0.281705077740 0.289651976565 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 17 5 30 31 27 36 35 + 5 45 46 47 48 49 + 0.666688918182 0.172518880181 0.844149188034 0.507591749659 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 18 5 33 44 39 47 48 + 5 -44 50 51 52 53 + -0.166690894872 -0.449607059731 0.890019067385 -0.075627716683 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 19 5 29 27 36 45 46 + 5 54 47 55 56 57 + -0.404165212918 0.440668657550 -0.104024201637 -0.891622173192 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 20 6 28 29 27 31 37 38 + 6 58 54 -46 59 60 61 + -0.067248398298 -0.696056491103 0.714584453883 0.069817042774 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 21 4 38 28 40 41 + 4 61 62 63 64 + 0.601464216846 0.928323311558 0.092556577453 0.360068200747 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 22 4 30 32 34 35 + 4 65 -41 66 49 + -0.611114879614 -0.879815749393 -0.467036258628 0.088325422426 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 23 6 39 40 28 29 46 47 + 6 67 -62 58 -57 68 -51 + 0.212259340041 0.611873419536 0.717804319248 -0.332216612671 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 24 6 32 30 31 37 42 43 + 6 -65 45 59 69 70 -42 + -0.035465522560 -0.208060849353 -0.776304177417 0.595031517729 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 25 6 33 34 35 36 45 48 + 6 40 66 -48 55 71 53 + 0.870297098668 0.711424759838 0.014941284301 0.702603422361 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 26 4 37 38 41 42 + 4 60 -64 72 -69 + 0.529763870391 0.528225911311 -0.325539645551 0.784220202363 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 27 6 39 40 41 42 43 44 + 6 67 63 72 70 43 50 + -0.569661016370 -0.105464314168 -0.624692108211 -0.773716387558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 28 4 45 46 47 48 + 4 56 68 52 -71 + 0.652371177034 0.254457745739 -0.410670797440 0.875557394900 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 29 5 49 52 56 60 61 + 5 73 74 75 76 77 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 30 6 51 50 49 61 63 64 + 6 78 79 -77 80 81 82 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 31 5 52 49 50 54 55 + 5 -73 -79 83 84 85 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 32 4 50 51 53 54 + 4 -78 86 87 -83 + -0.699409861593 -0.986284066903 -0.027780259888 -0.162702171261 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 33 5 51 53 59 65 64 + 5 86 88 89 90 82 + 0.653109028855 0.974998233920 -0.016073107679 -0.221630546319 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 34 5 55 52 56 58 57 + 5 85 74 91 92 93 + -0.063780070329 0.187140770063 -0.979734556909 0.071403992742 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 35 5 53 54 55 57 59 + 5 87 84 -93 94 -88 + 0.620873610057 0.928699076995 -0.348998748590 0.125371040804 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 36 4 56 58 62 60 + 4 91 95 96 -75 + 0.321111353983 0.019933455746 0.771808885463 0.635542053418 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 37 6 59 57 58 62 66 65 + 6 -94 -92 95 97 98 -89 + 0.312352244806 0.652731188889 -0.574092220055 -0.494327945724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 38 5 62 60 61 63 66 + 5 96 76 80 99 -97 + -0.341402032338 -0.087093452347 -0.178907665646 -0.980003458020 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 39 4 63 64 65 66 + 4 81 -90 -98 -99 + 0.156098234830 0.465205635534 0.036406093085 -0.884453680558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 40 7 67 73 77 102 101 105 104 + 7 100 101 102 103 104 105 106 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 41 8 83 84 70 74 75 67 104 108 + 8 107 108 109 110 111 -106 112 113 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 42 4 68 72 99 98 + 4 114 115 116 117 + -0.896656442332 0.173633701892 -0.466028626893 -0.867564785180 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 43 6 69 68 72 78 86 85 + 6 118 114 119 120 121 122 + 0.915855482896 -0.203293534308 0.678864264856 0.705560095817 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 44 4 67 73 76 75 + 4 100 123 124 111 + -0.919745475336 -0.977546122501 -0.210704755912 -0.002661619781 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 45 6 69 85 89 71 93 94 + 6 -122 125 126 127 128 129 + 0.500378554898 -0.570502503330 0.689556369304 0.446137767115 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 46 5 71 70 74 92 93 + 5 130 109 131 132 -127 + -0.183777431020 -0.871039423647 0.487116506844 0.063307434100 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 47 6 68 69 94 95 103 98 + 6 -118 -129 133 134 135 117 + 0.643666184443 -0.451089439956 0.401588687745 0.797022485903 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 48 5 84 70 71 89 88 + 5 108 -130 -126 136 137 + 0.402410524434 -0.412567255963 0.907831404214 0.075035996894 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 49 6 96 80 78 72 99 100 + 6 138 139 -119 115 140 141 + 1.048136578744 0.116589410342 0.465564669175 0.877300660100 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 50 5 76 73 77 90 91 + 5 -123 101 142 143 144 + -0.626831407914 -0.945916569670 -0.188160458420 0.264267828368 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 51 5 74 75 76 91 92 + 5 110 -124 -144 145 -131 + -0.645468257485 -0.997364013858 0.061387625062 0.038685699562 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 52 5 77 90 95 103 102 + 5 142 146 134 147 -102 + -0.060608018822 0.637152852522 0.138742512256 -0.758146923635 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 53 6 78 80 79 82 87 86 + 6 -139 148 149 150 151 -120 + 1.083246340764 0.149702077334 0.754245015608 0.639299416919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 54 6 83 82 79 81 107 108 + 6 152 -149 153 154 155 113 + 0.914223833613 0.625460949387 0.738825597293 0.250869164260 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 55 5 81 79 80 96 97 + 5 -153 -148 -138 156 157 + 1.085586138222 0.422503407357 0.471427135813 0.774110668052 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 56 4 97 81 107 106 + 4 157 154 158 159 + -0.984506297710 -0.665882815846 -0.381502213833 -0.641136597303 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 57 5 82 83 84 88 87 + 5 -152 107 -137 160 -150 + 0.788925450521 0.167615476578 0.979064127401 0.115492365320 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 58 5 85 86 87 88 89 + 5 -121 -151 -160 -136 -125 + 0.859516160382 -0.173982540984 0.863882008284 0.472692237291 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 59 6 90 91 92 93 94 95 + 6 143 145 132 128 133 -146 + -0.058120589241 0.830439198758 -0.275647456067 -0.484137601443 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 60 6 101 100 96 97 106 105 + 6 161 141 156 -159 162 -104 + -0.751051319755 -0.572072129764 0.062149138760 -0.817845317220 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 61 6 98 99 100 101 102 103 + 6 -116 140 -161 -103 -147 135 + -0.621707769557 0.083865698741 0.066835448771 -0.994233155433 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 62 5 104 105 106 107 108 + 5 -105 -162 -158 155 -112 + 0.138886852821 -0.945928499486 0.239799454880 0.218438767849 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 63 4 112 109 115 116 + 4 163 164 165 166 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 64 5 109 110 111 118 115 + 5 167 168 169 170 -164 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 65 4 110 111 113 114 + 4 168 171 172 173 + -0.378586440015 -0.597446868800 -0.794963032628 0.105313891373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 66 4 109 110 114 112 + 4 167 -173 174 163 + -0.579318830549 -0.999269762752 0.019680960570 0.032750588396 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 67 4 111 113 117 118 + 4 171 175 176 -169 + -0.137225683340 -0.295485659524 0.943627469690 -0.149182517277 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 68 5 113 114 112 116 117 + 5 172 174 -166 177 -175 + -0.762864084417 0.208820560284 0.110793890427 -0.971657700760 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 69 4 115 116 117 118 + 4 165 177 176 170 + 0.734200213537 0.961497997598 0.117484303069 0.248433168373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 70 5 123 122 119 131 132 + 5 178 179 180 181 182 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 71 6 119 120 125 126 134 131 + 6 183 184 185 186 187 -180 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 72 4 119 120 121 122 + 4 183 188 189 179 + -0.692419667495 -0.175929746633 -0.980390738628 -0.088784705114 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 73 5 121 120 125 128 127 + 5 -188 184 190 191 192 + -0.163941537793 0.329986610051 -0.943624399351 -0.026111877297 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 74 6 124 129 130 123 132 133 + 6 193 194 195 -182 196 197 + -0.922422887610 -0.035277794770 -0.145067447873 -0.988792654081 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 75 5 121 122 123 130 127 + 5 189 -178 -195 198 192 + -0.070687535397 0.126453093193 0.783576655067 -0.608290424761 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 76 4 124 126 134 133 + 4 199 186 200 197 + 0.825298404545 0.839619483388 0.543084003631 -0.009944250316 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 77 5 125 126 124 129 128 + 5 185 -199 193 201 -190 + 0.592498767853 0.951054044416 -0.305314688139 -0.047740400155 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 78 4 127 128 129 130 + 4 -191 -201 194 198 + 0.836117623300 0.495267675190 -0.468009307729 0.731899732061 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 79 4 131 132 133 134 + 4 181 196 -200 187 + 0.527342270825 0.027747062622 0.963573512421 0.266000350894 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 80 5 138 135 142 154 155 + 5 202 203 204 205 206 + -0.410185155781 -0.867330965181 -0.213349471933 0.449687669016 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 81 6 136 135 138 144 163 162 + 6 207 -202 208 209 210 211 + -0.534770245911 -0.431124169131 -0.877587943398 0.209693472465 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 82 5 153 139 140 158 159 + 5 212 213 214 215 216 + -0.661528169638 -0.516963911635 -0.767190733812 0.379692891715 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 83 5 142 135 136 151 150 + 5 -203 -207 217 218 219 + 0.110732277611 -0.365766683877 -0.380853439856 0.849214572600 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 84 5 148 151 136 162 166 + 5 220 -217 -211 221 222 + 0.401402846503 0.226624992793 -0.595909274653 0.770411090927 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 85 5 137 141 139 153 152 + 5 223 224 -212 225 226 + -0.075706524259 -0.180740646072 -0.549832015315 0.815486096627 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 86 5 141 137 143 145 146 + 5 -223 227 228 229 230 + 0.252286738685 -0.208233343248 0.037755208475 0.977350202841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 87 7 152 137 143 144 138 155 156 + 7 226 227 231 -208 -206 232 233 + -0.906635673863 -0.876410849262 -0.181007034040 -0.446251584786 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 88 8 148 149 161 158 140 147 165 166 + 8 234 235 236 -214 237 238 239 222 + -0.978681920231 -0.924528181539 -0.031583622991 -0.379802733402 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 89 5 141 139 140 147 146 + 5 224 213 237 240 230 + 0.459845724299 0.747442195151 0.238948292242 -0.619866016606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 90 7 149 150 142 154 157 160 161 + 7 241 219 204 242 243 244 -235 + -0.520025627151 0.318719125972 -0.599331472240 -0.734315943666 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 91 5 144 143 145 164 163 + 5 -231 228 245 246 -209 + -0.629471067016 -0.072286606290 -0.816599187526 -0.572660818882 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 92 5 145 146 147 165 164 + 5 229 -240 238 247 -245 + 0.118463500496 0.686488011218 -0.517375835973 -0.510936840330 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 93 4 148 149 150 151 + 4 234 241 -218 -220 + 0.736570233646 0.131680221434 -0.023045272683 0.991024336074 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 94 6 157 156 152 153 159 160 + 6 248 233 -225 -216 249 -243 + -0.197475377999 0.289990402399 -0.928625376365 0.231431365391 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 95 4 154 155 156 157 + 4 205 232 -248 -242 + 0.187526316343 0.837388355077 -0.515344779349 -0.182210046866 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 96 4 158 159 160 161 + 4 215 249 244 236 + 1.070839999085 0.477365533332 0.738589372759 0.476033492555 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 97 5 162 163 164 165 166 + 5 -210 -246 -247 239 -221 + 0.201259263103 0.519570623041 -0.839298880507 0.160074222951 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 98 6 168 177 178 173 183 184 + 6 250 251 252 253 254 255 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 99 5 170 172 174 186 185 + 5 256 257 258 259 260 + 0.731890129284 0.425213668522 0.854777647792 -0.297571014947 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 100 4 171 167 182 181 + 4 261 262 263 264 + 1.027193470257 0.739876699522 0.397020695966 0.543099471994 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 101 5 167 169 168 177 182 + 5 265 266 250 267 -262 + 0.772201079693 0.136370751805 0.678660410702 0.721680722341 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 102 5 170 169 167 171 172 + 5 268 -265 -261 269 -256 + 1.014259926994 0.566358068693 0.811536329700 0.143691765953 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 103 5 168 169 170 185 184 + 5 -266 -268 -260 270 255 + 0.635348352787 0.034356735475 0.998209065442 0.048972200239 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 104 6 171 172 174 176 180 181 + 6 269 257 271 272 273 264 + -0.781381299441 -0.957850488079 -0.177657157470 0.225744051719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 105 4 173 175 179 178 + 4 274 275 276 252 + -0.937334503095 0.025051245367 -0.680834906020 -0.732008378265 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 106 6 173 175 176 174 186 183 + 6 274 277 -271 258 278 -253 + 0.283781012027 -0.071329911123 -0.239694041919 0.968224565918 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 107 4 175 176 180 179 + 4 277 272 279 -275 + -0.189113717467 0.654056412105 -0.575611836157 -0.490796519813 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 108 6 177 178 179 180 181 182 + 6 251 -276 -279 273 -263 -267 + -0.195508288522 0.138210919615 -0.766897840032 0.626710016398 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 109 4 183 184 185 186 + 4 254 -270 -259 278 + 0.129764643123 -0.080934487461 0.818179571202 -0.569237909847 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 110 6 200 192 197 188 201 204 + 6 280 281 282 283 284 285 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 111 5 193 194 190 198 199 + 5 286 287 288 289 290 + -0.237225610558 -0.708444303329 0.277288646686 -0.649012846945 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 112 5 189 187 188 201 202 + 5 291 292 283 293 294 + 0.124337964223 -0.055695097139 -0.287643681965 0.956116712740 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 113 4 192 193 199 200 + 4 295 -290 296 280 + -0.225118217176 0.033721098733 0.402592510221 -0.914757977945 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 114 5 187 189 191 195 196 + 5 -291 297 298 299 300 + -0.223157503017 -0.690887783513 -0.648540852003 0.319482133891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 115 4 187 188 197 196 + 4 292 -282 301 300 + 0.243590862267 0.016360278330 0.923720868603 -0.382716733630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 116 6 189 191 190 198 203 202 + 6 297 302 288 303 304 294 + -0.134746860392 0.777879003824 -0.315586024701 -0.543424066842 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 117 4 190 191 195 194 + 4 -302 298 305 287 + 0.322305619397 0.920892278881 0.311337454163 0.234577066935 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 118 6 192 193 194 195 196 197 + 6 295 286 -305 299 -301 -281 + 0.490815448403 0.098440485443 0.666794047189 0.738711831135 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 119 5 198 199 200 204 203 + 5 289 296 -285 306 -303 + -0.199207254039 0.153797727782 -0.986675153415 0.053088610478 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 120 4 201 202 203 204 + 4 293 -304 -306 -284 + -0.327189280370 -0.110091470761 -0.699771697807 -0.705832444008 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 121 5 207 205 206 208 209 + 5 307 308 309 310 311 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 122 4 206 205 212 213 + 4 -308 312 313 314 + -0.012063024536 -0.819351884900 0.562604489827 0.110175663092 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 123 4 205 207 211 212 + 4 -307 315 316 -312 + -0.648980527309 -0.892664827465 -0.450070570613 0.024207174042 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 124 4 206 208 214 213 + 4 309 317 318 314 + -0.767370503231 -0.318650394492 -0.936884665565 -0.143906391515 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 125 4 207 209 210 211 + 4 -311 319 320 -315 + -0.272488504436 0.416768235710 -0.907683937233 0.049133570931 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 126 4 208 209 210 214 + 4 310 319 321 -317 + -0.566148975489 -0.959688985330 -0.042944286811 -0.277763999946 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 127 5 210 211 212 213 214 + 5 320 316 313 -318 -321 + 0.053273610011 0.119088948495 0.189431960561 -0.974645245545 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 128 5 215 216 219 222 221 + 5 322 323 324 325 326 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 129 4 217 215 221 224 + 4 327 -326 328 329 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 130 4 216 215 217 218 + 4 -322 -327 330 331 + -0.446497318792 0.322188812676 0.107692417002 -0.940530016696 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 131 4 216 218 220 219 + 4 -331 332 333 -323 + -1.053174427946 0.019554514509 -0.747853492404 -0.663575749151 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 132 5 217 218 220 223 224 + 5 330 332 334 335 329 + -0.104291177837 -0.988143375151 0.109788217251 -0.107327617588 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 133 4 220 219 222 223 + 4 333 324 336 -334 + 0.500977657592 0.001664381057 0.922900914867 -0.385033935094 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 134 4 221 222 223 224 + 4 -325 336 335 -328 + 0.847518105594 -0.002986690618 0.141968744000 0.989866635162 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 135 6 168 227 232 234 238 177 + 6 337 338 339 340 341 -250 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 136 4 226 225 237 236 + 4 342 343 344 345 + -0.789672707884 -0.996013456974 0.001206174795 -0.089194947551 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 137 5 167 225 237 239 182 + 5 346 343 347 348 -262 + 0.279482159607 0.828286041985 -0.459756508388 -0.320259559808 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 138 6 225 226 228 229 169 167 + 6 -342 349 350 351 -265 346 + -0.365773289993 -0.600566725878 -0.210931063101 0.771250733800 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 139 6 233 231 228 226 236 235 + 6 352 353 -349 -345 354 355 + -0.965663380755 -0.671027292576 -0.644653082774 -0.366257799218 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 140 5 227 230 231 233 232 + 5 356 357 -352 358 -338 + -0.402550563740 0.103756178796 -0.994502813313 -0.014099988428 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 141 5 227 230 229 169 168 + 5 356 359 351 266 337 + -0.119656027986 -0.127765118130 0.497312746488 -0.858111943029 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 142 4 228 229 230 231 + 4 350 -359 357 353 + 0.643249853091 0.481301714864 0.746615930846 -0.459252992452 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 143 4 232 233 235 234 + 4 -358 -355 360 -339 + -0.443342675227 -0.039206728445 -0.498291870842 -0.866122418540 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 144 6 234 235 236 237 239 238 + 6 -360 -354 -344 347 361 -340 + -0.256656053004 -0.432931843731 0.425318571063 -0.794779297536 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 145 4 238 177 182 239 + 4 341 267 -348 361 + -0.616041100812 0.023931568075 -0.998645825512 0.046193021527 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 146 5 248 249 241 252 253 + 5 362 363 364 365 366 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 147 4 240 241 249 245 + 4 367 -363 368 369 + -0.102081300105 0.645528674153 0.041961972427 -0.762582404541 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 148 5 243 242 240 245 246 + 5 370 371 -369 372 373 + -0.559119337161 0.597064564560 -0.524771235170 -0.606736397857 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 149 4 244 243 246 247 + 4 374 -373 375 376 + -0.524540870580 0.339856462285 -0.904712197240 0.256891855084 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 150 5 242 240 241 252 251 + 5 371 367 364 377 378 + 0.617894070681 0.451463533947 0.087219294048 0.888016594587 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 151 5 242 243 244 250 251 + 5 -370 -374 379 380 378 + -0.917654132250 -0.605421822246 -0.768174092068 -0.208261809808 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 152 5 248 247 244 250 253 + 5 381 376 379 382 366 + -0.454479705699 0.273863513491 0.021983198637 -0.961517298314 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 153 5 245 246 247 248 249 + 5 372 375 -381 362 368 + -0.514995219793 -0.938868842401 0.000305573129 -0.344274895096 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 154 4 250 251 252 253 + 4 380 -377 365 -382 + 0.034954454208 0.985473695891 -0.164725594094 -0.041316744260 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 155 4 139 153 172 170 + 4 -212 383 -256 384 + -0.820231918557 -0.425941155580 -0.134009973923 -0.894771176822 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 156 6 141 229 228 257 258 137 + 6 385 -350 386 387 388 223 + 0.543496369382 -0.062048901561 0.937138450770 0.343396939274 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 157 5 255 254 225 167 171 + 5 389 390 -346 -261 391 + -0.142232334640 0.180614782383 -0.778160473932 0.601535183671 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 158 5 229 141 139 170 169 + 5 -385 224 -384 268 -351 + -0.608140818343 -0.909333997346 0.384434283176 -0.159128762927 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 159 6 255 254 256 257 258 259 + 6 389 392 393 387 394 395 + -0.835840776033 -0.824582230829 -0.117587910487 -0.553387050724 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 160 4 225 254 256 226 + 4 -390 392 396 342 + 0.348624572967 0.287249712359 -0.232155246333 0.929296262959 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 161 6 255 171 172 153 152 259 + 6 -391 269 -383 225 397 395 + -0.188723117205 0.545324160796 -0.709399937940 -0.446512360078 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 162 4 256 257 228 226 + 4 393 -386 -349 -396 + 0.497201684435 0.062811354342 0.359054531118 0.931200610744 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 163 4 258 259 152 137 + 4 394 -397 226 -388 + 0.761299597793 0.812692527483 0.533661265700 -0.233958349423 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 164 6 262 261 266 267 277 278 + 6 398 399 400 401 402 403 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 165 5 267 268 264 281 277 + 5 404 405 406 407 -401 + 0.195457631790 -0.654505596740 0.753808565284 0.058267235564 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 166 5 264 275 276 280 281 + 5 408 409 410 411 -406 + -0.512275388315 -0.851354951689 0.213555800962 -0.479154115197 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 167 4 260 261 262 263 + 4 412 -398 413 414 + 0.416916150965 0.930527439043 -0.356001850134 0.085914887469 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 168 5 263 260 265 270 271 + 5 414 415 416 417 418 + 0.032180750697 -0.868966687149 0.027271554072 0.494118567719 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 169 5 265 260 261 266 269 + 5 -415 412 399 419 420 + -0.610978256165 -0.856101595980 -0.515235291298 -0.040282154381 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 170 7 262 263 271 273 272 279 278 + 7 413 -418 421 422 423 424 403 + 0.344204765001 0.038898141467 0.993563215786 0.106391121937 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 171 7 264 268 269 265 270 274 275 + 7 -405 425 420 416 426 427 -408 + -0.362749953041 0.172970270999 0.604079703452 -0.777926087252 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 172 4 272 276 280 279 + 4 428 410 429 -423 + 0.617444960159 0.826356321094 0.395282329854 0.401107355072 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 173 4 266 267 268 269 + 4 400 404 425 -419 + -0.557467653076 -0.304832955312 -0.951512877046 -0.041232440758 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 174 4 270 271 273 274 + 4 417 421 430 -426 + -0.545545476008 0.468779315065 -0.185584025640 -0.863599747102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 175 5 272 273 274 275 276 + 5 -422 430 427 409 -428 + 0.876585422215 0.238759607300 0.174507144589 0.955270174563 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 176 5 277 278 279 280 281 + 5 402 -424 -429 411 407 + 0.103146199782 0.973518903001 0.173616893967 -0.148721617894 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 177 4 119 122 283 282 + 4 -179 431 432 433 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 178 4 120 119 282 285 + 4 -183 -433 434 435 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 179 4 121 120 285 284 + 4 -188 -435 436 437 + -0.990883081668 -0.993012555563 0.016128910987 -0.116901337567 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 180 4 121 122 283 284 + 4 189 431 438 437 + 0.915876139504 0.020059036057 -0.004398731524 0.999789120882 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 181 4 282 283 284 285 + 4 -432 438 -436 -434 + 0.384251628591 -0.121571746776 0.991747685332 -0.040704287534 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 182 5 292 286 289 294 295 + 5 439 440 441 442 443 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 183 4 286 287 290 289 + 4 444 445 446 -440 + -0.772777556043 -0.063676829775 -0.071853262712 -0.995380515174 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 184 5 293 288 291 297 296 + 5 447 448 449 450 451 + -0.294689061532 -0.941691721611 -0.289678865043 -0.171180771690 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 185 4 288 287 290 291 + 4 452 445 453 -448 + 0.560539548781 -0.624330417345 0.106949553933 0.773804447448 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 186 5 286 287 288 293 292 + 5 444 -452 -447 454 439 + 0.073339713905 -0.063457738969 -0.925562248606 0.373239386078 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 187 5 289 290 291 297 294 + 5 -446 453 449 455 -441 + -0.363011470884 0.126306977933 -0.952596100490 -0.276780087175 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 188 4 293 292 295 296 + 4 454 -443 456 451 + 0.861226699820 0.155958362160 0.440042824214 0.884329860477 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 189 4 294 295 296 297 + 4 442 456 -450 455 + -0.573216448520 -0.071738680318 0.602312915805 -0.795030007736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 190 5 300 303 302 313 314 + 5 457 458 459 460 461 + 0.068762491119 -0.886821626505 0.155162285179 0.435283893592 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 191 7 302 242 251 306 307 318 313 + 7 462 -378 463 464 465 466 -459 + -0.351308886528 -0.188130534977 -0.722507249149 0.665274512315 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 192 4 298 299 309 308 + 4 467 468 469 470 + -0.264406652959 -0.054137579163 0.385460547370 -0.921134783267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 193 7 298 301 300 303 243 244 308 + 7 471 472 457 473 -374 474 470 + 0.432767004952 0.899049920252 -0.054204191347 0.434478016171 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 194 7 304 305 310 309 299 311 312 + 7 475 476 477 -468 478 479 480 + -0.006317943615 0.950087027886 0.014043251075 -0.311668776976 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 195 6 301 298 299 311 316 315 + 6 -471 467 478 481 482 483 + -0.555803700898 0.003188606325 -0.974347847114 0.225024677789 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 196 4 300 301 315 314 + 4 -472 -483 484 461 + -0.318206549539 0.721926943147 -0.691131249942 -0.034045324377 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 197 4 302 303 243 242 + 4 -458 473 370 -462 + -0.466946706480 -0.914166763437 -0.355288457097 0.195113405178 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 198 5 305 306 251 250 310 + 5 485 -463 -380 486 -476 + -0.701803013440 0.567945405484 -0.795286451050 -0.212031783384 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 199 5 312 304 307 318 317 + 5 480 487 465 488 489 + -0.397929782986 -0.630101614138 0.033742357630 -0.775779227076 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 200 4 304 305 306 307 + 4 475 485 464 -487 + 0.255252310503 -0.666017277428 0.622542101561 -0.410928604446 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 201 5 244 308 309 310 250 + 5 474 -469 -477 -486 -379 + -0.945822288782 -0.203658830337 -0.496897980325 -0.843573042465 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 202 4 311 312 317 316 + 4 479 -489 490 -481 + -0.762179972598 -0.621136681438 -0.632570403899 -0.462648794534 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 203 6 313 314 315 316 317 318 + 6 460 -484 -482 -490 -488 466 + -0.764423145430 0.120158605830 -0.666290482583 -0.735947621957 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 204 5 320 319 321 327 328 + 5 491 492 493 494 495 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 205 5 322 319 320 324 325 + 5 496 -491 497 498 499 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 206 4 321 319 322 323 + 4 -492 -496 500 501 + -0.261420641375 -0.212887339436 0.082333377994 -0.973601661654 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 207 5 328 320 324 306 305 + 5 495 497 502 -485 503 + -0.528576272504 -0.313885217843 -0.060990350040 -0.947499998534 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 208 6 326 323 321 327 304 307 + 6 504 501 493 505 487 506 + 0.941081650547 -0.057283881431 0.851655260759 0.520962449462 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 209 4 322 323 326 325 + 4 500 -504 507 499 + 0.262649012479 -0.530010986966 0.048495759645 0.846602926402 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 210 5 324 325 326 307 306 + 5 498 -507 -506 -464 -502 + 0.040176868261 -0.978817879534 0.204240156678 0.014195672058 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 211 4 327 328 305 304 + 4 494 -503 -475 -505 + 0.282226391801 -0.015277074977 0.711079140753 -0.702945991216 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 212 6 330 188 197 332 336 337 + 6 508 -282 509 510 511 512 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 213 5 329 187 196 333 334 + 5 513 -300 514 515 516 + 0.088849492004 -0.800423505613 0.572788283468 -0.176736510049 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 214 5 188 187 329 331 330 + 5 -292 -513 517 518 508 + 0.431111136149 -0.033461194001 0.894992781941 0.444823862636 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 215 5 331 329 334 339 338 + 5 -517 -516 519 520 521 + 0.155334940841 -0.757893063935 0.331992138215 0.561586434846 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 216 4 330 331 338 337 + 4 -518 -521 522 512 + 0.207830506461 -0.094302674206 0.137188142722 0.986045850422 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 217 5 332 197 196 333 335 + 5 -509 301 514 523 524 + 0.293436871607 0.082883205815 -0.039714294085 0.995767617991 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 218 4 332 335 340 336 + 4 -524 525 526 -510 + 0.581786477437 0.006625575150 0.757959974360 0.652267413736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 219 5 335 333 334 339 340 + 5 -523 515 519 527 -525 + 0.443248437230 0.769732771829 0.591318857311 0.240527480676 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 220 5 336 337 338 339 340 + 5 511 -522 -520 527 526 + -0.328913741349 -0.150040506693 -0.855273585745 0.495978769584 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 221 7 354 353 344 342 348 64 63 + 7 528 529 530 531 532 -81 533 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 222 5 354 350 347 66 63 + 5 534 535 536 -99 533 + -0.754574069239 -0.935081749364 -0.316179692029 0.160164054503 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 223 5 341 343 345 352 351 + 5 537 538 539 540 541 + 0.250570368681 -0.283514748364 0.691070581833 0.664861518202 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 224 5 341 346 347 350 351 + 5 542 543 -535 544 541 + -0.245322877650 -0.048968205615 -0.998176738364 -0.035289004348 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 225 6 342 343 341 346 349 348 + 6 545 -537 542 546 547 -531 + -0.664973082481 -0.989385819549 0.069929111616 -0.127379823459 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 226 4 342 343 345 344 + 4 545 538 548 530 + -0.128436603005 0.533139088273 -0.195640245013 -0.823096353465 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 227 4 344 345 352 353 + 4 -548 539 549 529 + -0.547305209067 0.035005682805 -0.173799721334 -0.984158655419 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 228 5 349 346 347 66 65 + 5 -546 543 536 98 550 + -0.126930155144 -0.065779945684 0.697242744758 -0.713810586660 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 229 4 348 349 65 64 + 4 -547 -550 90 -532 + -0.396693748526 -0.287772290951 0.062537023821 -0.955654869298 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 230 5 350 351 352 353 354 + 5 544 -540 549 -528 534 + 0.868006693610 0.661730741461 0.411228735788 0.626899794758 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 231 6 358 364 365 360 70 84 + 6 551 552 553 554 -108 555 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 232 5 357 356 355 362 363 + 5 556 557 558 559 560 + -0.590110127533 0.487020200352 -0.378962274541 -0.786891935989 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 233 5 360 361 355 362 365 + 5 561 562 558 563 553 + -0.584150631859 -0.995581931260 0.072497251319 0.059672160179 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 234 5 356 355 361 71 89 + 5 557 -562 564 -126 565 + 0.198615496124 -0.327987236640 -0.502094713883 0.800203268484 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 235 5 359 357 356 89 88 + 5 566 556 -565 136 567 + 1.078676269046 0.452350992348 0.064521270380 0.889502999090 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 236 5 357 359 358 364 363 + 5 -566 568 551 569 560 + 0.784402262969 0.404835000170 0.909809647671 0.091405840304 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 237 4 358 359 88 84 + 4 -568 -567 137 555 + 0.709807322797 0.975861222820 0.204292886918 0.077196438718 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 238 4 361 360 70 71 + 4 -561 554 -130 -564 + -0.942689023836 -0.731719086649 -0.681330878594 -0.019375554402 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 239 4 362 363 364 365 + 4 559 -569 552 -563 + 0.144716680275 -0.527496846566 0.846778331203 0.068655186755 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 240 5 366 367 368 369 370 + 5 570 571 572 573 574 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 241 4 366 367 375 374 + 4 570 575 576 577 + -0.032944096008 -0.006212681827 0.962872126673 -0.269886402513 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 242 5 371 370 366 374 376 + 5 578 574 -577 579 580 + 0.461936880016 0.860165731960 0.483093383969 -0.163510537663 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 243 5 368 367 375 378 377 + 5 -571 575 581 582 583 + 0.514292808131 0.904936396857 -0.424047007221 0.035696684867 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 244 5 368 369 372 381 377 + 5 572 584 585 586 583 + -0.742665915862 -0.602517834790 -0.793752380481 -0.083243121286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 245 5 373 371 376 379 380 + 5 587 -580 588 589 590 + 0.989178873098 0.694830005904 -0.075481224034 0.715201962884 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 246 5 369 370 371 373 372 + 5 573 -578 -587 591 -584 + 0.004699169868 0.585439686111 -0.808252951320 -0.063146976241 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 247 4 372 373 380 381 + 4 -591 -590 592 -585 + 0.443175396054 0.055055268941 -0.649836578364 0.758077396301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 248 5 376 374 375 378 379 + 5 -579 -576 581 593 -588 + 0.789769648046 0.125309741610 0.791265562597 0.598495010928 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 249 5 377 378 379 380 381 + 5 -582 593 589 592 586 + -0.650316319288 0.305484654220 -0.198550132591 -0.931266326506 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 250 5 383 382 329 334 385 + 5 594 595 -516 596 597 + -0.109158865180 0.107395832453 0.210410185923 -0.971696294544 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 251 5 384 191 195 387 386 + 5 598 298 599 600 601 + -0.237573341251 -0.616429462102 0.277306120650 -0.736964065408 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 252 4 329 187 189 382 + 4 513 -291 602 595 + 0.361334506945 0.679809885680 0.403726124384 0.612261166352 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 253 5 382 189 191 384 383 + 5 -602 297 -598 603 594 + 0.343457849823 -0.250211252121 0.914605127538 0.317634680086 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 254 4 383 384 386 385 + 4 -603 -601 604 597 + -0.131994448493 -0.964487109818 0.025215936662 0.262923508900 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 255 4 195 196 333 387 + 4 299 514 605 -599 + -0.340489854198 0.325050391790 -0.252320338134 -0.911414664004 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 256 5 334 385 386 387 333 + 5 596 -604 -600 -605 515 + -0.505448474386 -0.420967640635 -0.891634905729 -0.166653654100 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 257 5 295 389 388 390 292 + 5 606 607 608 609 -443 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 258 6 277 393 388 389 395 278 + 6 610 611 -607 612 613 -402 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 259 5 388 390 392 394 393 + 5 608 614 615 616 611 + -0.105862016125 0.210287729410 -0.948030216392 0.238783960240 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 260 6 296 293 391 280 279 396 + 6 451 617 618 429 619 620 + -0.762119927644 0.403706124322 -0.304573932803 -0.862702778854 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 261 5 296 295 389 395 396 + 5 -456 606 612 621 620 + 0.267683503962 0.079173926741 0.993865871050 0.077214763401 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 262 5 391 392 394 281 280 + 5 622 615 623 -411 -618 + -0.407127964585 0.478736210047 0.481736693579 -0.733990053917 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 263 5 390 292 293 391 392 + 5 609 -454 617 622 -614 + 0.789459544547 0.098535556020 -0.154159430923 0.983120345663 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 264 4 394 393 277 281 + 4 616 -610 -407 -623 + 0.276756137372 0.569493563937 0.813026924793 -0.121096243529 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 265 4 395 278 279 396 + 4 613 -424 619 -621 + 0.158530568784 -0.801001242484 0.563279538848 0.202763829746 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 266 5 274 403 397 417 273 + 5 624 625 626 627 430 + -0.506110777305 -0.983074772314 0.004634802639 -0.183146145590 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 267 5 402 409 408 416 419 + 5 628 629 630 631 632 + 0.056014862010 0.841234676623 0.470768374988 -0.265897265795 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 268 6 401 400 405 404 406 410 + 6 633 634 635 636 637 638 + -0.029804689388 0.219365917731 -0.914466799968 0.340042741275 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 269 5 411 412 402 419 418 + 5 639 640 -632 641 642 + 0.287091989186 0.350960540412 0.932255996013 0.087894578743 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 270 6 397 398 399 400 405 403 + 6 643 644 645 634 646 625 + 0.055515393126 0.664491841387 0.523144934064 -0.533638426928 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 271 4 399 398 415 414 + 4 -644 647 648 649 + -0.414408368275 0.419512865876 -0.170975783968 -0.891502235926 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 272 5 407 406 404 275 276 + 5 650 -636 651 409 652 + -0.595630738628 0.536845240748 -0.428464093134 -0.726784499271 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 273 5 408 407 276 272 416 + 5 653 -652 -428 654 -630 + -0.375435754370 0.651678930682 0.237249585783 -0.720435427607 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 274 6 411 415 398 397 417 418 + 6 655 -647 -643 626 656 642 + -0.097352468538 0.590582191029 -0.772162087774 -0.234474701927 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 275 5 399 400 401 413 414 + 5 645 -633 657 658 649 + 0.508070834627 0.134180390267 -0.245252093577 0.960128654642 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 276 6 402 409 410 401 413 412 + 6 628 659 638 657 660 640 + -0.422376925417 -0.892177755137 0.091854207583 -0.442246150676 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 277 5 404 405 403 274 275 + 5 -635 646 -624 427 -651 + -0.622795430033 -0.459751159160 -0.845924560392 -0.270260078030 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 278 5 406 407 408 409 410 + 5 -650 -653 -629 659 -637 + -0.174227976254 0.916610521919 -0.121372420357 -0.380911914600 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 279 5 411 412 413 414 415 + 5 639 -660 658 -648 -655 + -0.593922608373 -0.145756304508 -0.675016580727 -0.723261858140 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 280 6 416 272 273 417 418 419 + 6 -654 -422 -627 656 -641 -631 + -0.511193513636 -0.181847533174 0.616812188701 -0.765816034403 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 281 4 427 431 86 78 + 4 661 662 -120 663 + -0.615682687034 -0.944586784812 -0.321413593081 0.066701635221 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 282 5 427 428 420 80 78 + 5 664 665 666 139 663 + 0.173876479100 0.097992259968 0.812614348336 -0.574504515095 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 283 5 431 430 421 87 86 + 5 667 668 669 151 -662 + -0.452765306616 -0.845548017516 0.394581088017 -0.359658609038 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 284 5 420 422 424 79 80 + 5 670 671 672 -148 -666 + -0.015376896080 -0.659220661133 0.675253007129 -0.330849658152 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 285 5 423 422 420 428 429 + 5 673 -670 -665 674 675 + -0.766770405900 -0.455729749341 0.031444160504 -0.889562623055 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 286 6 421 426 425 423 429 430 + 6 676 677 678 -675 679 668 + -0.752625310478 -0.230558102007 -0.962254743958 -0.144598649125 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 287 4 426 421 87 82 + 4 -676 669 -150 680 + 0.484166884966 -0.036757886783 -0.423305928922 0.905240823372 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 288 4 423 422 424 425 + 4 673 671 681 678 + 0.542400841096 0.940118615577 0.004399912047 0.340819056715 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 289 5 424 425 426 82 79 + 5 681 -677 -680 -149 -672 + 0.273835360300 -0.774867137899 0.024144263451 0.631662863517 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 290 5 427 428 429 430 431 + 5 664 674 679 -667 -661 + 0.494029603500 -0.449224172189 0.106624012108 0.887033800463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 291 6 432 433 436 437 443 444 + 6 682 683 684 685 686 687 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 292 5 353 354 432 444 445 + 5 -528 688 -687 689 690 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 293 5 439 352 353 445 446 + 5 691 549 -690 692 693 + -0.569296814518 -0.909596680184 -0.359616632658 0.208109963513 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 294 5 432 433 434 350 354 + 5 682 694 695 -534 688 + 0.478667418435 0.049647291159 0.262967989062 0.963526327201 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 295 5 436 433 434 164 165 + 5 -683 694 696 -247 697 + -0.170272459995 -0.070044746339 0.687404639453 -0.722889061453 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 296 5 437 438 442 447 443 + 5 698 699 700 701 -685 + 0.627688176650 -0.129257562520 0.583862465075 0.801496790017 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 297 5 441 442 438 166 162 + 5 702 -699 703 -221 704 + -0.005692573637 -0.569933534804 0.763041999701 0.304865007173 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 298 5 439 440 435 351 352 + 5 705 706 707 -540 -691 + -0.791022950689 -0.979026627426 0.078733469407 -0.187903974377 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 299 6 434 350 351 435 163 164 + 6 695 544 -707 708 -246 -696 + -0.744832541197 -0.677036911035 0.344795549044 -0.650182320934 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 300 5 441 440 435 163 162 + 5 709 706 708 210 704 + 0.521554532816 0.844025456295 -0.530484912171 0.078783164982 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 301 5 436 437 438 166 165 + 5 684 698 703 -239 697 + -0.473602214549 -0.066239618402 -0.993830415835 -0.088957391567 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 302 6 439 440 441 442 447 446 + 6 705 -709 702 700 710 693 + 0.196250413598 0.807289375503 -0.231845843683 -0.542707443257 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 303 5 443 444 445 446 447 + 5 686 689 692 -710 701 + -0.559765822076 0.102524348093 0.286830676069 -0.952479354797 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 304 5 451 449 454 455 456 + 5 711 712 713 714 715 + -0.677099224816 0.089125414503 -0.971311981744 -0.220476063576 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 305 6 450 448 457 458 472 473 + 6 716 717 718 719 720 721 + 0.194947377986 0.311399310589 -0.680982114887 0.662792447579 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 306 6 453 448 457 461 464 463 + 6 722 717 723 724 725 726 + 0.386531893767 -0.277401908749 0.890197254475 0.361382109612 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 307 5 452 451 449 467 468 + 5 727 711 728 729 730 + 0.416871895905 -0.650866224957 0.645424979299 0.399749613267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 308 5 450 448 453 470 469 + 5 716 -722 731 732 733 + 0.405815744438 0.494388566745 0.862094883690 -0.111231095414 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 309 7 449 454 460 465 466 471 467 + 7 712 734 735 736 737 738 -728 + -0.204296683852 -0.459106457134 0.453453275891 -0.763938078382 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 310 6 452 468 469 450 473 474 + 6 -730 739 733 -721 740 741 + 0.148571168284 -0.548130004967 -0.276745446633 0.789281607173 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 311 5 456 451 452 474 475 + 5 715 -727 -741 742 743 + 0.790192970489 -0.034990513274 0.619282855357 0.784387920000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 312 5 466 463 453 470 471 + 5 744 726 731 745 -737 + -0.600340700200 -0.559166415890 -0.646249267242 -0.519321484179 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 313 5 459 455 454 460 462 + 5 746 -713 734 747 748 + -0.639265988428 -0.613623255973 -0.777732074111 0.136379326252 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 314 6 458 459 455 456 475 472 + 6 749 746 714 -743 750 -719 + 0.803700841380 0.743202669822 0.442156297123 0.502143008001 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 315 5 457 458 459 462 461 + 5 718 749 -748 751 -723 + -0.236123034611 -0.945386371957 0.311990643730 0.094373968569 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 316 5 461 462 460 465 464 + 5 -751 -747 735 752 -724 + 0.003033948937 -0.508536057104 -0.145142053840 0.848719543095 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 317 4 463 464 465 466 + 4 -725 -752 736 744 + 0.512799185780 0.137533381555 0.429368472259 0.892595812218 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 318 5 467 468 469 470 471 + 5 729 739 -732 745 738 + 0.317698070482 0.977504840957 0.210910279158 0.001067731996 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 319 4 472 473 474 475 + 4 720 740 742 750 + -0.556698123372 -0.097948495868 0.146328374109 -0.984374978902 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 320 4 135 476 477 138 + 4 753 754 755 202 + -0.281705733537 0.318721696029 -0.929950348689 -0.183327110523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 321 5 476 135 136 480 479 + 5 -753 -207 756 757 758 + -0.790607691736 -0.073222200631 -0.599956824284 -0.796674537267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 322 5 34 32 478 435 440 + 5 41 759 760 -706 761 + -0.475472212677 -0.169258854910 -0.963327695928 -0.208209486557 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 323 4 480 136 162 441 + 4 -756 -211 704 762 + -1.018363365456 -0.709696181139 -0.231382332309 -0.665427341468 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 324 5 476 477 30 35 479 + 5 754 763 -49 764 758 + -0.058583924308 -0.793223449715 0.256534843244 0.552255767760 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 325 4 144 478 435 163 + 4 765 760 708 -209 + 0.352856103153 -0.274007767308 0.301351109981 0.913294723497 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 326 6 138 477 30 32 478 144 + 6 -755 763 65 759 -765 -208 + 0.544115047946 0.592938405900 -0.492830570698 0.636821855305 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 327 6 34 35 479 480 441 440 + 6 66 764 -757 -762 709 761 + -0.456060819242 -0.019329715397 0.416559896318 -0.908902753259 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 328 6 488 489 483 485 102 77 + 6 766 767 768 769 -102 770 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 329 5 483 484 481 490 489 + 5 771 772 773 774 767 + -0.202560378677 -0.874732764989 0.145856325008 0.462134744754 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 330 5 482 481 484 486 487 + 5 775 -772 776 777 778 + 0.976301508456 -0.116751765218 0.838969521891 0.531506506692 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 331 6 491 490 481 482 95 90 + 6 779 -773 -775 780 -146 781 + 0.004667515559 -0.473169114507 0.779196453031 -0.411052158078 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 332 4 487 482 95 103 + 4 778 780 134 782 + -1.004930602289 -0.343834516697 -0.938160012721 -0.040418011563 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 333 4 488 491 90 77 + 4 783 -781 -142 770 + -1.168473185594 -0.507919241001 -0.080357712970 -0.857648344362 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 334 4 484 483 485 486 + 4 -771 768 784 -776 + 0.484652616014 -0.277532676747 0.059488475674 0.958872637319 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 335 5 485 486 487 103 102 + 5 784 777 -782 147 -769 + -0.987404780163 -0.783384175752 -0.086539608413 -0.615483654825 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 336 4 488 489 490 491 + 4 766 -774 -779 -783 + -0.915014977157 -0.973271892777 0.030631046860 -0.227603958002 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 337 7 485 494 493 249 248 101 102 + 7 785 786 787 -362 788 -103 -769 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 338 4 245 249 493 492 + 4 -368 -787 789 790 + -0.594478706988 -0.651710432710 0.022122044513 -0.758145188630 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 339 5 492 245 246 497 496 + 5 790 372 791 792 793 + 0.852927570987 0.650568790176 0.293292473887 0.700528210717 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 340 6 495 247 246 497 506 507 + 6 794 -375 791 795 796 797 + -0.917467365193 -0.737295541154 -0.652534332787 -0.174912062275 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 341 4 502 501 99 98 + 4 798 799 116 800 + 0.161895669340 -0.099477782685 0.811503947885 -0.575817256878 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 342 5 501 507 495 100 99 + 5 801 797 802 -140 -799 + 0.445148056785 0.324854369605 0.814880753346 -0.480040619504 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 343 6 496 492 493 494 499 498 + 6 793 -789 -786 803 804 805 + -0.338343528773 0.288790580034 -0.028090029855 -0.956980120539 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 344 5 487 503 502 98 103 + 5 806 807 -800 -135 782 + -0.151806084042 -0.484116482754 0.668475483175 -0.564598759758 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 345 5 487 486 500 504 503 + 5 -777 808 809 810 -806 + -0.274300415490 -0.836814236146 0.499336480143 -0.224510609510 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 346 5 486 485 494 499 500 + 5 -784 785 803 811 -808 + -0.504707533578 -0.968151299916 -0.029646063760 0.248604447616 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 347 5 495 247 248 101 100 + 5 794 -381 788 161 -802 + 0.109550767251 0.931535386666 0.014349198782 -0.363367477745 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 348 5 498 496 497 506 505 + 5 805 -792 795 812 813 + 0.945007200849 0.032700847948 0.777705004443 0.627778289373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 349 5 498 499 500 504 505 + 5 -804 811 809 814 813 + -0.423191189699 0.586535064889 -0.660758098620 -0.468375226462 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 350 7 501 502 503 504 505 506 507 + 7 -798 -807 -810 814 -812 796 -801 + 0.763809169291 -0.070009522449 0.992676557195 0.098447547258 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 351 7 369 368 126 125 508 365 364 + 7 -572 815 -185 816 817 -552 818 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 352 5 508 125 128 513 514 + 5 -816 190 819 820 821 + 0.881153989150 0.839790554151 0.541912358657 -0.032906240943 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 353 6 510 509 363 362 511 512 + 6 822 823 -559 824 825 826 + -0.319267291630 -0.262480927031 0.766640353223 -0.585974685251 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 354 5 377 368 126 124 516 + 5 583 815 -199 827 828 + 0.255763845243 -0.150253259682 0.987633405299 0.044768456432 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 355 5 508 365 362 511 514 + 5 817 -563 824 829 821 + -0.669953539221 -0.188785537928 -0.981419755485 -0.034282418415 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 356 5 509 372 369 364 363 + 5 830 -584 -818 569 -823 + -0.583707875507 -0.994485061543 0.104541604918 -0.008397333432 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 357 5 510 509 372 381 515 + 5 822 830 585 831 832 + 1.019020322534 0.507419042322 -0.089040045054 0.857086801827 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 358 7 515 510 512 513 128 129 517 + 7 832 -826 833 -819 -201 834 835 + -0.383440426678 0.368565219101 0.240765465253 -0.897881768392 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 359 4 511 512 513 514 + 4 825 833 820 -829 + -0.249331750430 -0.317228697903 -0.825438761825 0.466922695641 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 360 5 377 381 515 517 516 + 5 -586 831 -835 836 828 + -0.928787460638 -0.071165222259 -0.586008309362 -0.807173941910 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 361 4 129 124 516 517 + 4 -193 827 -836 -834 + -0.164246614125 0.669067998395 -0.315711790644 -0.672810581644 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 362 5 519 520 518 524 525 + 5 837 838 839 840 841 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 363 5 402 523 521 526 419 + 5 842 843 844 845 632 + 0.313808829493 -0.607130129126 0.648646440313 0.458967103153 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 364 5 411 518 520 522 412 + 5 846 -838 847 848 -639 + -0.530767029168 0.213407087098 0.139168747584 -0.967000245539 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 365 4 519 521 526 525 + 4 849 844 850 841 + -0.326356461967 0.769797606802 0.093194341167 -0.631447907065 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 366 4 518 411 418 524 + 4 -846 -642 851 -839 + 0.179757232722 0.981847029944 0.093934039059 -0.164781085372 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 367 5 521 519 520 522 523 + 5 -849 837 847 852 843 + 0.504338258697 0.822250318304 0.062399948299 0.565694847511 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 368 4 522 412 402 523 + 4 848 640 842 -852 + 0.143385668960 0.501701516906 -0.805381364105 0.315684092545 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 369 5 524 525 526 419 418 + 5 840 -850 845 641 851 + -0.762480757121 -0.454181920373 -0.020064465277 -0.890682996604 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 370 6 360 529 530 527 74 70 + 6 853 854 855 856 -109 -554 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 371 4 528 527 74 92 + 4 857 856 131 858 + -1.054122705126 -0.321808656579 -0.945306558176 -0.053241897229 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 372 5 529 533 532 361 360 + 5 859 860 861 -561 853 + 0.701145179528 0.007688253550 0.996321651255 0.085346692955 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 373 6 535 534 531 528 92 93 + 6 862 863 864 -858 132 865 + 0.485321313268 -0.106993892275 -0.351049245762 0.930224023591 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 374 5 361 532 535 93 71 + 5 -861 866 -865 -127 -564 + 1.294546502262 0.584218717311 0.372399257916 0.721115304960 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 375 4 528 527 530 531 + 4 857 -855 867 864 + 1.068113076885 0.912651099559 0.408726632168 0.003242010218 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 376 5 529 530 531 534 533 + 5 854 867 -863 868 -859 + -0.351751959866 -0.903707297939 0.412300285099 0.115419212259 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 377 4 532 533 534 535 + 4 -860 -868 -862 -866 + 0.884715530110 -0.215577511301 0.690092716399 0.690867845101 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 378 6 537 536 538 539 541 542 + 6 869 870 871 872 873 874 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 379 4 537 536 543 544 + 4 869 875 876 877 + -0.342245839476 -0.948464035200 0.243576889177 0.202697491329 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 380 5 536 538 540 547 543 + 5 870 878 879 880 -875 + -0.035642922925 -0.444166566901 0.895777874163 0.017264443476 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 381 5 545 546 548 552 553 + 5 881 882 883 884 885 + -0.286735239830 -0.252296741119 -0.186036978640 -0.949598123945 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 382 4 539 541 549 550 + 4 872 886 887 888 + 0.216394591758 0.995082754518 -0.094198337024 0.030610210114 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 383 6 542 537 544 545 553 554 + 6 874 -877 889 -885 890 891 + -0.421397901981 -0.609983540675 -0.787457421582 0.088492312106 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 384 5 546 547 540 551 548 + 5 892 -879 893 894 -882 + 0.040033665422 0.143960764469 0.622419769488 -0.769330181940 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 385 5 540 538 539 550 551 + 5 -878 871 -888 895 -893 + 0.295241602277 0.655932919642 0.752689021196 -0.056667824201 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 386 5 549 541 542 554 555 + 5 -886 873 -891 896 897 + -0.017413023435 0.698820120846 -0.715279510824 -0.005065579523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 387 5 543 544 545 546 547 + 5 876 889 881 892 880 + 0.401784756153 0.916493416618 -0.128017495947 0.379013638313 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 388 6 549 550 551 548 552 555 + 6 887 895 894 883 898 897 + -0.075342243634 -0.736728471562 0.157662382713 0.657551315311 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 389 4 552 553 554 555 + 4 884 890 896 -898 + 0.261531347436 -0.151260219898 0.754556153728 0.638565076361 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 390 5 562 477 476 566 567 + 5 899 -754 900 901 902 + -0.305641901279 -0.716385086914 -0.452939161346 0.530696262815 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 391 5 556 479 476 566 569 + 5 903 758 900 904 905 + 0.724057282308 0.979373467631 0.200889229023 0.021705496173 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 392 6 556 558 561 565 568 569 + 6 906 907 908 909 910 905 + -0.972509827864 -0.377163444285 -0.315839656211 -0.870627961795 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 393 5 559 27 31 563 564 + 5 911 -46 912 913 914 + 0.702710747951 0.914178499991 0.026764940556 0.404427135725 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 394 5 557 36 27 559 560 + 5 915 -47 -911 916 917 + 0.190376993373 0.605053520460 0.656652133646 -0.450242393337 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 395 4 557 558 561 560 + 4 918 907 919 917 + 0.485139722067 -0.157974777330 -0.350342133394 0.923203314171 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 396 6 556 479 35 36 557 558 + 6 903 -764 -48 -915 918 -906 + -0.485531589524 -0.674040017484 0.611256305975 -0.414771965345 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 397 5 559 560 561 565 564 + 5 916 -919 908 920 914 + 0.074802300820 -0.802257732563 0.369319364289 0.469026372077 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 398 5 31 30 477 562 563 + 5 -45 -763 -899 921 -912 + 0.422224346956 -0.097784753241 -0.226794919758 0.969021262102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 399 6 562 563 564 565 568 567 + 6 921 913 -920 909 922 902 + 0.153927552795 -0.136074242144 0.942384174738 -0.305607375286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 400 4 566 567 568 569 + 4 901 -922 910 -904 + 0.793127448736 0.508109159430 0.850655992003 0.134942452079 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 401 6 580 571 570 575 204 201 + 6 923 924 925 926 -284 927 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 402 4 570 573 576 575 + 4 928 929 930 -925 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 403 5 570 571 572 574 573 + 5 -924 931 932 933 -928 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 404 4 572 574 578 577 + 4 932 934 935 936 + -0.220159762038 -0.785026658880 -0.562523871868 0.259422509484 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 405 5 571 572 577 581 580 + 5 931 -936 937 938 923 + -0.236979674896 -0.259981146523 -0.937494247637 0.231331664716 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 406 5 574 573 576 579 578 + 5 933 929 939 940 -934 + -0.135827371382 -0.973540021850 0.147455047726 0.174576157466 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 407 5 579 576 575 204 203 + 5 -939 930 926 306 941 + -0.170916424587 -0.306701288424 0.267091530226 -0.913562496034 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 408 6 581 577 578 579 203 202 + 6 -937 -935 -940 -941 304 942 + -0.277147965824 -0.711383656739 -0.572174181657 -0.408105377041 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 409 4 580 581 202 201 + 4 -938 -942 -293 927 + -0.301985850231 -0.155000263726 -0.948893447953 -0.274911154151 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 410 6 582 583 584 589 595 591 + 6 943 944 945 946 947 948 + 0.129784790243 -0.112268637508 0.813516817347 -0.570601560570 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 411 4 582 588 592 591 + 4 949 950 951 948 + 0.868108886341 0.156054951107 0.179035087229 0.971387301634 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 412 5 582 583 586 587 588 + 5 943 952 953 954 -949 + 0.632137302205 0.756965494713 -0.035207887686 0.652505666227 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 413 6 589 584 585 298 299 590 + 6 -945 955 956 467 957 958 + 0.902822615094 0.054761458994 0.668323178263 0.741852621485 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 414 4 583 584 585 586 + 4 944 955 959 -952 + -0.287723416199 0.776617627910 -0.618607694951 -0.119120022525 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 415 5 586 585 298 308 587 + 5 -959 956 -470 960 -953 + 0.170349702506 0.829770799347 0.317291872665 -0.459136459119 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 416 6 309 308 587 588 592 593 + 6 469 960 954 950 961 962 + -0.955582341352 -0.208070955480 -0.935400426520 -0.285888998656 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 417 4 590 589 595 594 + 4 958 946 963 964 + -0.642910499752 -0.782148873262 -0.592562298447 -0.192647508456 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 418 5 590 299 309 593 594 + 5 -957 468 -962 965 964 + 0.206219894355 0.825644304105 -0.296654455336 0.479903758298 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 419 5 591 592 593 594 595 + 5 -951 961 965 -963 947 + 0.260484491727 -0.823484181630 0.014220877784 0.567160972952 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 420 6 241 597 596 325 324 252 + 6 966 967 968 -498 969 -364 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 421 4 240 241 597 598 + 4 367 966 970 971 + -0.562105076400 -0.920661047620 -0.119264560235 -0.371697726745 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 422 5 302 242 240 598 599 + 5 462 371 -971 972 973 + -0.193450611590 -0.860112529152 0.291375234613 -0.418696680008 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 423 4 302 599 601 313 + 4 -973 974 975 -459 + 0.379070975783 -0.557520904625 0.790920076617 -0.252221873179 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 424 4 596 325 326 600 + 4 968 -507 976 977 + 0.222869027104 0.512191470869 -0.169743183504 0.841930608080 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 425 7 600 596 597 598 599 601 602 + 7 977 -967 970 972 974 978 979 + -0.264558460558 0.671328546919 -0.231515992790 -0.704072671798 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 426 4 324 252 251 306 + 4 969 377 463 -502 + -0.415896558346 0.683334266222 -0.233186285624 -0.691865909554 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 427 5 307 326 600 602 318 + 5 506 976 -979 980 -465 + -0.667561257024 -0.804851042760 -0.458750210460 -0.376514333554 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 428 4 601 313 318 602 + 4 975 -466 -980 -978 + -0.851126283303 0.020395204752 -0.935840648851 -0.351832794919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 429 5 226 256 611 620 236 + 5 -396 981 982 983 345 + -0.394102599523 0.251031771751 -0.883144809480 -0.396280576184 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 430 5 603 604 605 613 614 + 5 984 985 986 987 988 + 0.807410269867 0.619025668385 0.761285807251 0.193005547997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 431 6 615 614 603 610 618 619 + 6 989 988 990 991 992 993 + -0.498997397731 -0.415888641527 -0.112999240271 -0.902367890357 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 432 5 608 604 603 610 612 + 5 994 -984 990 995 996 + 0.757485439486 0.977185775895 0.200996636016 -0.068617138515 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 433 5 607 605 604 608 609 + 5 997 -985 -994 998 999 + 0.513132035370 0.512006946739 0.638105788638 -0.575039032587 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 434 5 606 607 605 613 617 + 5 1000 997 986 1001 1002 + -0.126633611561 0.181559627606 -0.877671678644 0.443540895667 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 435 5 233 616 615 619 235 + 5 1003 1004 -993 1005 355 + 0.490502599016 0.690157700710 0.064582206704 -0.720771452493 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 436 5 606 231 233 616 617 + 5 1006 -352 1003 1007 1002 + -0.607001096293 -0.839934342735 0.386135153212 -0.381326557361 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 437 6 231 606 607 609 257 228 + 6 -1006 1000 -999 1008 -386 -353 + -0.246404377654 -0.128695628065 0.228614355443 -0.964973010919 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 438 6 611 612 608 609 257 256 + 6 1009 996 998 1008 -393 981 + -0.124446737948 -0.657528463934 0.343972123200 0.670327903028 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 439 5 611 612 610 618 620 + 5 1009 -995 991 1010 -982 + 0.354021105130 0.750553451815 -0.490678256813 0.442610849686 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 440 5 613 614 615 616 617 + 5 987 -989 -1004 1007 -1001 + -0.164319215636 0.308804037215 -0.770617024617 -0.557484948649 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 441 5 618 619 235 236 620 + 5 992 1005 -354 -983 -1010 + -0.448419896488 -0.069393914244 -0.867001742507 0.493449554824 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 442 5 366 111 110 621 367 + 5 1011 -168 1012 1013 -570 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 443 4 110 621 622 114 + 4 1012 1014 1015 173 + -0.332314421907 -0.625926831267 0.777507954586 -0.060802816188 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 444 4 366 111 113 374 + 4 1011 171 1016 577 + 0.518596151089 0.913683051108 -0.398085750896 0.081920797427 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 445 4 621 367 375 622 + 4 1013 575 1017 -1014 + -0.489236303708 -0.904287567589 -0.381990466074 0.190649623479 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 446 5 113 114 622 375 374 + 5 172 -1015 -1017 576 -1016 + 1.000420165735 0.159348840609 0.379886867346 0.911204650457 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 447 6 628 630 623 624 635 631 + 6 1018 1019 1020 1021 1022 1023 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 448 5 520 519 628 631 632 + 5 -837 1024 -1023 1025 1026 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 449 5 520 522 626 633 632 + 5 847 1027 1028 1029 1026 + -0.106241194970 -0.973748581747 -0.165155695314 0.156643850343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 450 4 623 627 629 630 + 4 1030 1031 1032 1019 + -0.677891930099 -0.067928170304 -0.517291176261 -0.853109373200 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 451 4 626 625 634 633 + 4 1033 1034 1035 -1028 + 0.023796946003 -0.495684597413 -0.725593859745 0.477294804694 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 452 4 625 624 635 634 + 4 1036 1021 1037 -1034 + 0.097627155106 -0.130135562215 -0.800040508118 0.585661950972 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 453 7 623 624 625 626 522 523 627 + 7 1020 -1036 -1033 -1027 852 1038 -1030 + -0.317890835160 -0.219163384992 -0.958240845701 -0.183689663042 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 454 4 627 523 521 629 + 4 -1038 843 1039 -1031 + -0.657548407389 -0.373214138840 -0.462277962549 -0.804369499616 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 455 5 628 519 521 629 630 + 5 -1024 849 1039 1032 -1018 + 0.701052974759 0.153624634113 -0.014768289069 0.988018911475 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 456 5 631 632 633 634 635 + 5 1025 -1029 -1035 -1037 1022 + 0.400336820734 -0.285893349255 0.023883040474 0.957963774487 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 457 5 636 582 588 97 81 + 5 1040 949 1041 157 1042 + -0.326134749279 0.845389610224 -0.299932283497 -0.441992117850 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 458 4 582 636 637 591 + 4 -1040 1043 1044 948 + -0.966774452334 -0.054890208798 -0.889251681335 -0.454112884888 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 459 5 592 588 97 106 639 + 5 -950 1041 -159 1045 1046 + -0.351762356301 -0.102933136524 -0.880193195235 0.463319229546 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 460 5 81 636 637 638 107 + 5 1042 1043 1047 1048 -154 + -0.148024625205 -0.086771989050 0.664038587349 -0.742646198690 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 461 5 637 591 592 639 638 + 5 1044 -951 -1046 1049 -1047 + 0.356831217409 0.987551521842 0.115501534598 0.106777278543 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 462 4 638 107 106 639 + 4 1048 158 1045 1049 + 0.910089117319 -0.432834798818 0.540168554111 0.721714604315 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 463 6 407 391 392 640 642 406 + 6 1050 622 1051 1052 1053 -650 + -0.590924889608 -0.794397595657 -0.431993045236 -0.426982984301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 464 4 280 391 407 276 + 4 -618 -1050 -652 410 + -0.315313712036 -0.182862361129 -0.983118115440 0.006334664574 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 465 5 281 394 641 643 264 + 5 -623 1054 1055 1056 406 + -0.906936673693 -0.292157297661 -0.658283879156 -0.693762529881 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 466 4 394 392 640 641 + 4 -615 1051 1057 -1054 + -0.550603109048 0.727049777479 -0.344199173761 -0.594075373879 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 467 5 642 640 641 643 644 + 5 -1052 1057 1055 1058 1059 + -0.158184883826 -0.490698027479 0.728455977424 -0.478087162329 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 468 4 642 406 404 644 + 4 1053 -636 1060 1059 + 0.484923344887 -0.284803900397 -0.357512769165 0.889421923613 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 469 5 275 264 643 644 404 + 5 -408 -1056 1058 -1060 651 + -0.066740840153 -0.845434585997 -0.400921756958 0.352848559013 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 470 6 205 207 645 646 656 653 + 6 -307 1061 1062 1063 1064 1065 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 471 5 205 212 650 654 653 + 5 312 1066 1067 1068 1065 + -0.668944224144 -0.198212135482 -0.977382641303 -0.073723278727 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 472 5 646 648 651 655 656 + 5 1069 1070 1071 1072 -1063 + -0.486733041795 -0.891734234831 -0.452078674907 0.020854882517 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 473 4 207 645 647 211 + 4 1061 1073 1074 -315 + -0.229403061708 -0.920494641041 0.390178286778 -0.021225464458 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 474 5 647 645 646 648 649 + 5 -1073 1062 1069 1075 1076 + 0.339501613556 -0.256140380596 0.963092987086 0.082728493598 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 475 6 212 211 647 649 652 650 + 6 -316 -1074 -1076 1077 1078 -1066 + -0.364908257211 -0.459799383423 -0.112842039771 -0.880824160127 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 476 4 649 648 651 652 + 4 -1075 1070 1079 -1077 + 0.335495258955 0.399448435800 0.630316003695 -0.665689629349 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 477 5 651 652 650 654 655 + 5 1079 1078 1067 1080 -1071 + 0.091314036995 -0.520102014145 0.283866670207 0.805551741620 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 478 4 653 654 655 656 + 4 -1068 1080 1072 1064 + -0.022914586829 0.860282477388 -0.503080133682 -0.082610157932 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 479 5 232 657 658 660 234 + 5 1081 1082 1083 1084 -339 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 480 4 658 659 661 660 + 4 1085 1086 1087 -1083 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 481 4 615 659 661 619 + 4 1088 1086 1089 993 + 0.868044093897 0.985556726737 0.153260583390 0.072035629808 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 482 4 616 657 232 233 + 4 1090 -1081 -358 1003 + 0.105971306907 0.137208457340 -0.378148961589 0.915520181145 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 483 5 657 658 659 615 616 + 5 1082 1085 -1088 -1004 1090 + 0.598755315032 0.194373481544 0.977739330146 0.079023743001 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 484 5 660 234 235 619 661 + 5 1084 -360 -1005 -1089 1087 + -0.143005999978 0.417084297775 -0.908438412378 0.027934556841 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 485 4 321 319 662 663 + 4 -492 1091 1092 1093 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 486 4 319 322 665 662 + 4 -496 1094 1095 -1091 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 487 4 323 322 665 664 + 4 -500 1094 1096 1097 + 0.102513980407 -0.968607595598 0.153291337735 0.195706646606 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 488 4 321 323 664 663 + 4 -501 -1097 1098 1093 + 0.748364563888 -0.231950375057 0.937060512173 -0.260991609132 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 489 4 662 663 664 665 + 4 1092 -1098 -1096 1095 + 0.363433068633 -0.053986972799 0.133692688863 0.989551247643 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 490 5 527 668 667 75 74 + 5 1099 1100 1101 -110 -856 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 491 4 667 666 76 75 + 4 1102 1103 124 -1101 + 0.898726487686 -0.183620881732 0.971339124210 0.150942630068 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 492 5 666 669 670 91 76 + 5 1104 1105 1106 144 -1103 + -0.070785928825 -0.175629074088 0.731479959948 -0.658856203226 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 493 5 668 527 528 671 672 + 5 -1099 -857 1107 1108 1109 + 0.285646401808 0.874924929722 -0.481275559096 -0.053667528059 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 494 5 666 667 668 672 669 + 5 -1102 -1100 -1109 1110 -1104 + 1.240204252648 0.781575298544 0.623106467794 0.029637518435 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 495 5 670 671 528 92 91 + 5 1111 -1107 -858 -145 -1106 + -1.279742844719 -0.159063719456 -0.433879661867 -0.886818567786 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 496 4 669 670 671 672 + 4 1105 1111 1108 1110 + 0.052231125175 -0.520869680325 -0.260403443915 0.812948228681 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 497 5 673 433 432 61 60 + 5 1112 -682 1113 -76 1114 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 498 4 432 354 63 61 + 4 -688 -533 -80 -1113 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 499 5 675 674 673 60 62 + 5 1115 1116 -1114 -96 1117 + -0.060934468992 -0.102190720014 0.811738398555 -0.575011155591 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 500 4 433 673 674 434 + 4 -1112 -1116 1118 -694 + 0.307762981295 -0.022032037360 0.973416758251 0.227978955359 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 501 5 674 434 350 347 675 + 5 1118 695 535 1119 1115 + 0.407365088395 0.739271747851 -0.652428415676 -0.166776632800 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 502 4 347 675 62 66 + 4 1119 -1117 97 -536 + -0.674710799622 -0.753479156418 0.394899261737 -0.525665039662 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 503 6 677 676 685 178 177 238 + 6 1120 1121 1122 -251 -341 1123 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 504 6 676 678 683 684 686 685 + 6 1124 1125 1126 1127 1128 -1121 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 505 4 676 677 679 678 + 4 -1120 1129 1130 -1124 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 506 5 182 239 681 687 181 + 5 -348 1131 1132 1133 -263 + 0.821062577076 0.349908144510 0.915674834634 -0.197747029369 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 507 6 677 679 680 681 239 238 + 6 1129 1134 1135 -1131 361 1123 + 0.864421385299 0.265141748882 0.833808683674 0.484213725569 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 508 5 678 679 680 682 683 + 5 -1130 1134 1136 1137 -1125 + -0.723000635738 -0.941626173280 -0.134097159408 -0.308801071293 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 509 5 684 686 179 180 689 + 5 1127 1138 -279 1139 1140 + 0.007619305915 0.408994071405 0.162238761487 -0.897999127966 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 510 5 682 680 681 687 688 + 5 -1136 1135 1132 1141 1142 + -0.983140591101 -0.688894237537 -0.724237494966 0.030079567371 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 511 5 682 683 684 689 688 + 5 1137 1126 -1140 1143 1142 + 0.555178840342 0.869785607958 0.196201852213 -0.452744772888 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 512 4 685 178 179 686 + 4 1122 -276 -1138 1128 + -0.488950438102 -0.090249145961 0.130327889899 -0.987354917326 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 513 5 181 687 688 689 180 + 5 -1133 1141 -1143 -1139 273 + 0.619589092683 0.494194803341 0.648137719449 -0.579386738697 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 514 6 690 691 524 518 693 694 + 6 1144 1145 -839 1146 1147 1148 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 515 5 415 398 28 40 695 + 5 -647 1149 62 1150 1151 + -0.336585186297 -0.213516797194 0.685689986387 -0.695873422315 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 516 5 46 29 397 417 692 + 5 57 1152 626 1153 1154 + 0.585711683973 0.264190579744 0.860713586222 0.435172908241 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 517 5 518 411 415 695 693 + 5 -846 655 -1151 1155 -1146 + -0.598142007819 -0.795196748290 0.018233987571 -0.606077266696 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 518 4 47 690 694 39 + 4 1156 -1148 1157 51 + 0.341376588624 0.960356968313 0.038846075775 -0.276053393041 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 519 5 690 47 46 692 691 + 5 -1156 -68 -1154 1158 -1144 + 0.847854655761 0.741380900757 0.127148236073 0.658929196543 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 520 4 29 28 398 397 + 4 -58 -1149 -643 -1152 + 0.115863851600 0.021031026726 0.978864156587 -0.203427281511 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 521 5 691 524 418 417 692 + 5 1145 -851 -656 1153 1158 + -0.598630131648 0.261455713666 0.047270832547 -0.964057248394 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 522 5 693 694 39 40 695 + 5 1147 1157 67 1150 1155 + 0.375655223792 -0.328467876363 0.074779170541 0.941550280044 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 523 5 401 400 450 469 699 + 5 633 1159 -733 1160 1161 + 0.615834377043 -0.067589795797 0.643817295057 0.762188237963 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 524 7 696 698 474 473 405 404 644 + 7 1162 1163 -740 1164 635 1060 1165 + -0.696350570649 -0.753664348589 -0.078197881173 -0.652591097891 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 525 4 400 405 473 450 + 4 634 -1164 721 -1159 + -0.028024316970 -0.906111060582 0.363537389854 0.216340731415 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 526 5 696 698 697 701 704 + 5 1162 1166 1167 1168 1169 + 0.804930426318 0.034699889165 0.905005893976 0.423981425961 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 527 5 468 452 697 701 702 + 5 730 1170 1167 1171 1172 + -0.250424701387 0.068306367254 -0.904944216250 0.420012149430 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 528 7 700 703 704 696 644 642 705 + 7 1173 1174 1169 -1165 1059 1175 1176 + -0.406912010718 0.775933055972 -0.262921682924 -0.573410918364 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 529 4 452 697 698 474 + 4 1170 -1166 1163 741 + 0.624791148199 0.494818904975 0.868995547775 0.000994598902 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 530 5 700 699 401 410 705 + 5 1177 1161 -638 1178 1176 + -0.447521925324 -0.701906223264 -0.696611546795 -0.148526114255 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 531 6 468 469 699 700 703 702 + 6 739 1160 -1177 1173 1179 1172 + -0.524507552040 -0.670083088628 0.004200636725 -0.742274214145 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 532 4 701 702 703 704 + 4 1171 -1179 1174 -1168 + 0.265076278528 -0.655490242368 0.751270249162 -0.076977625872 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 533 4 406 410 705 642 + 4 637 1178 -1175 1053 + -0.129772468229 0.639718721989 0.524009462774 -0.562293552924 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 534 6 270 560 557 706 707 271 + 6 1180 917 1181 1182 1183 -417 + -0.950942527359 -0.517146642181 -0.297602855112 -0.802491053602 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 535 5 397 29 27 559 403 + 5 -1152 54 -911 1184 625 + 0.444850073899 0.248427761848 -0.583224642242 0.773390369622 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 536 5 560 559 403 274 270 + 5 -916 1184 -624 -426 1180 + 0.233333376436 -0.361359188287 0.922864637463 0.133193085258 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 537 5 706 45 46 692 707 + 5 1185 56 -1154 1186 -1182 + -0.518102249675 -0.673151666453 0.608362088204 -0.420431211481 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 538 4 36 45 706 557 + 4 55 -1185 -1181 915 + -0.546526594636 -0.997499078339 0.059962481797 -0.037417769705 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 539 5 417 273 271 707 692 + 5 627 -421 -1183 -1186 -1153 + -0.198095423908 0.432021879664 0.618250052318 -0.656600310920 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 540 8 709 48 45 706 379 378 713 714 + 8 1187 -71 -1185 1188 -593 1189 1190 1191 + 0.107119539764 0.541650461084 0.688888316574 -0.481713260452 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 541 5 711 710 480 441 442 + 5 1192 1193 -762 702 1194 + -0.320780413245 -0.564148551457 -0.666429478524 0.487450676523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 542 5 556 479 480 710 712 + 5 903 -757 -1193 1195 1196 + -0.036479306334 -0.029086260328 -0.883519103424 0.467491158575 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 543 5 439 708 709 714 446 + 5 1197 1198 -1191 1199 693 + 0.395159428117 -0.132886333676 0.800389259692 0.584566724414 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 544 6 380 558 556 712 515 381 + 6 1200 -906 -1196 1201 -831 -592 + -0.271648677743 0.394867414594 -0.880087339636 -0.263677832791 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 545 5 558 380 379 706 557 + 5 -1200 -589 -1188 -1181 918 + 0.010499372749 0.829533775405 -0.268467053769 -0.489692920618 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 546 5 708 33 34 440 439 + 5 1202 40 -761 -705 1197 + -0.717269251590 -0.123356006668 -0.216152041542 -0.968535797251 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 547 5 378 377 516 715 713 + 5 582 -828 1203 1204 -1189 + -0.964391160628 -0.207233307028 0.040180470693 -0.977466053750 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 548 6 442 711 517 516 715 447 + 6 1194 1205 836 1203 1206 -700 + 0.946868435102 0.930995369698 0.330328974713 0.155339595937 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 549 4 708 709 48 33 + 4 1198 1187 53 -1202 + -0.764959454832 -0.407971298442 -0.632459800106 -0.658448191506 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 550 5 712 710 711 517 515 + 5 -1195 -1192 1205 835 -1201 + -0.756917337516 -0.405536256261 -0.899122238632 -0.164680128902 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 551 5 713 714 446 447 715 + 5 1190 1199 -710 -1206 1204 + 0.794123210245 0.694581302781 -0.537704117212 0.477944658052 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 552 5 717 51 64 348 720 + 5 1207 -82 -532 1208 1209 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 553 4 716 717 51 53 + 4 1210 1207 86 1211 + 0.059312107994 -0.057777134488 0.112372106339 0.991985036403 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 554 5 719 718 716 53 59 + 5 1212 1213 -1211 88 1214 + -0.032239418190 -0.044309837526 -0.698042510058 0.714684050787 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 555 5 718 716 717 720 722 + 5 1213 1210 -1209 1215 1216 + -0.543504527523 -0.796151237967 0.003659556363 -0.605086616883 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 556 4 718 719 721 722 + 4 -1212 1217 1218 1216 + 0.369654214929 0.777793899453 -0.628329488581 -0.015450040580 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 557 5 719 59 65 349 721 + 5 -1214 89 550 1219 -1217 + -0.407719243213 -0.330673511660 -0.834536217357 -0.440686204237 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 558 5 720 348 349 721 722 + 5 -1208 -547 1219 1218 -1215 + -0.169296246734 -0.550153913433 -0.002728841116 0.835058815270 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 559 5 546 548 724 726 727 + 5 882 1220 1221 1222 1223 + 0.346914971098 0.427123099071 0.893600020134 0.138003124083 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 560 5 546 545 7 21 727 + 5 -881 1224 15 1225 1223 + 0.173846779229 0.794772172288 -0.330341390861 -0.509128431381 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 561 6 552 725 723 16 15 553 + 6 1226 1227 1228 18 1229 -884 + 0.089806559474 -0.461303886527 0.886890322915 -0.024985583736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 562 5 723 725 724 726 728 + 5 -1227 1230 1221 1231 1232 + -0.010946735546 -0.571120077982 -0.179040073525 0.801103307070 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 563 4 723 16 22 728 + 4 1228 -21 1233 1232 + -0.414225054904 -0.103561548241 -0.433437118068 -0.895213533413 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 564 4 552 548 724 725 + 4 -883 1220 -1230 -1226 + -0.310858569318 -0.998587165295 0.021686761782 -0.048511417941 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 565 4 545 553 15 7 + 4 -885 -1229 19 -1224 + 0.119141991228 0.299758428872 0.496207805742 -0.814814517446 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 566 5 726 727 21 22 728 + 5 1222 -1225 20 1233 -1231 + 0.193756880168 0.466899849303 -0.668501681455 0.578886891036 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 567 6 730 267 266 358 84 83 + 6 1234 -400 1235 -555 -107 1236 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 568 5 358 359 729 269 266 + 5 -568 1237 1238 -419 1235 + 0.005813545007 -0.696706600180 0.717321939364 0.007010604237 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 569 5 421 729 359 88 87 + 5 1239 -1237 -567 160 -669 + 0.191138132848 -0.672043303491 -0.168061013519 0.721188806047 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 570 5 730 731 426 82 83 + 5 1240 1241 -680 -152 1236 + 0.204833873889 0.842427613508 -0.478958068280 0.246809409928 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 571 6 731 426 421 729 269 268 + 6 1241 -676 1239 1238 -425 1242 + -1.025836850159 -0.154573108474 -0.412266369570 -0.897854996454 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 572 4 730 731 268 267 + 4 1240 -1242 -404 -1234 + -0.451885412295 -0.915420304366 -0.402467814716 0.005032342544 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 573 5 662 732 733 738 663 + 5 1243 1244 1245 1246 -1092 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 574 5 732 662 665 734 735 + 5 -1243 -1095 1247 1248 1249 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 575 4 733 732 735 736 + 4 -1244 -1249 1250 1251 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 576 5 665 734 737 739 664 + 5 1247 1252 1253 1254 -1096 + -0.286406832007 -0.553786596855 -0.033063064072 -0.832001946475 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 577 5 737 736 733 738 739 + 5 1255 1251 1245 1256 -1253 + 0.821747408395 -0.242348654146 0.970162919864 -0.007144141325 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 578 4 734 735 736 737 + 4 1248 1250 -1255 -1252 + -0.126304093724 -0.992216163831 0.035827731347 0.119262139418 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 579 4 738 663 664 739 + 4 1246 -1098 -1254 -1256 + 0.182516652707 -0.099486336402 0.463676123519 -0.880401568233 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 580 4 740 741 743 742 + 4 1257 1258 1259 1260 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 581 4 740 741 745 746 + 4 1257 1261 1262 1263 + -0.749643044796 0.263245407903 -0.244044449874 -0.933351038840 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 582 4 742 740 746 747 + 4 1260 -1263 1264 1265 + -0.421471500171 0.245424811511 -0.957853155851 0.149278242626 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 583 4 741 743 744 745 + 4 1258 1266 1267 -1261 + 0.031339506529 0.233000946684 0.627005386187 -0.743353754639 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 584 4 742 743 744 747 + 4 -1259 1266 1268 1265 + -1.268058287348 -0.291026047748 -0.401660902212 -0.868315817641 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 585 4 744 745 746 747 + 4 1267 1262 1264 -1268 + -0.791195323070 -0.991470140183 0.128971038469 -0.018799796857 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 586 5 748 221 222 749 750 + 5 1269 -325 1270 1271 1272 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 587 5 221 748 104 105 224 + 5 -1269 1273 -105 1274 -328 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 588 5 104 748 750 752 108 + 5 -1273 -1272 1275 1276 -112 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 589 6 638 751 749 222 223 639 + 6 1277 1278 -1270 336 1279 1049 + -1.099795111969 0.002137485307 -0.609422209094 -0.792842987116 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 590 4 749 750 752 751 + 4 1271 1275 1280 1278 + 0.916572967761 0.015434603736 0.947990021839 0.317925606866 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 591 5 638 751 752 108 107 + 5 1277 -1280 1276 -155 -1048 + 0.826347780520 -0.456246856543 0.792995400713 0.403728993686 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 592 5 223 224 105 106 639 + 5 335 -1274 -162 1045 -1279 + -0.740341630381 0.455576760267 -0.182329302477 -0.871324188212 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 593 5 753 754 756 758 759 + 5 1281 1282 1283 1284 1285 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 594 6 760 757 590 589 701 702 + 6 1286 1287 958 1288 1171 1289 + -0.058777189034 0.887454573233 0.096339697270 -0.450713926098 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 595 5 590 594 754 756 757 + 5 -964 1290 1282 1291 1287 + -0.452180646187 0.073778857124 -0.945096865337 0.318352941515 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 596 5 759 753 755 704 703 + 5 1285 1292 1293 -1174 1294 + -0.138893366546 0.075766558380 0.641280243461 -0.763556859689 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 597 5 753 754 594 595 755 + 5 1281 -1290 -963 1295 -1292 + -0.915302191552 0.091198125887 -0.605012959550 -0.790975486732 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 598 5 755 595 589 701 704 + 5 -1295 -946 1288 1168 -1293 + -0.544042071883 -0.833201041512 -0.061376631826 -0.549553394575 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 599 4 757 756 758 760 + 4 -1291 1283 1296 1286 + 0.498350958228 0.077567661450 -0.055069714647 0.995465009142 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 600 5 760 758 759 703 702 + 5 -1296 1284 -1294 1179 1289 + 0.786470129687 0.001196840955 0.754231927549 0.656607011109 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 601 6 762 761 327 321 663 738 + 6 1297 1298 -493 -1093 -1246 1299 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 602 6 326 323 664 739 764 600 + 6 504 -1097 -1254 1300 1301 -976 + -0.629129770248 -0.504541258610 -0.769146781556 0.392238889941 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 603 5 762 761 312 317 763 + 5 1297 1302 -489 1303 1304 + 0.556462942299 0.057332214511 0.933378083713 -0.354285718064 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 604 4 761 327 304 312 + 4 1298 505 -480 -1302 + -0.405388107133 0.026390233968 0.043777121311 -0.998692705090 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 605 6 739 738 762 763 765 764 + 6 -1256 1299 -1304 1305 1306 -1300 + 0.565546223026 -0.119581632399 0.411069933665 0.903726586324 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 606 5 318 317 763 765 602 + 5 488 1303 1305 1307 980 + -0.467696468695 0.668866628503 -0.734780191988 -0.112763037992 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 607 4 600 764 765 602 + 4 -1301 -1306 1307 979 + -0.286278134567 -0.968204757635 -0.165455505066 0.187627351783 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 608 5 768 767 766 770 773 + 5 1308 1309 1310 1311 1312 + -0.724728903268 -0.534658272263 -0.821923834465 -0.196422356770 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 609 5 766 4 3 771 770 + 5 1313 -6 1314 1315 -1310 + -0.183609958385 0.111075483783 -0.938670192180 0.326436069109 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 610 4 766 767 19 4 + 4 -1309 1316 12 -1313 + -0.378617606179 0.037906475045 -0.960584110149 -0.275392931061 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 611 5 719 769 772 57 59 + 5 1317 1318 1319 94 1214 + -0.375536112333 -0.293005537678 -0.366155018063 -0.883220390184 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 612 7 19 767 768 675 347 346 25 + 7 -1316 -1308 1320 -1119 -543 1321 -25 + -0.445940736158 -0.140844834972 -0.259005109581 -0.955551717948 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 613 5 675 768 773 58 62 + 5 -1320 -1312 1322 95 1117 + -0.884669088624 -0.954400741150 -0.244776533229 -0.170890825010 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 614 5 3 2 769 772 771 + 5 22 1323 1318 1324 -1314 + 0.273612798537 0.447130912773 -0.452516212221 0.771558827647 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 615 5 719 769 2 26 721 + 5 1317 -1323 -17 1325 -1217 + 0.645369971799 0.916235868018 0.182798426567 0.356506058017 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 616 6 773 770 771 772 57 58 + 6 -1311 -1315 -1324 1319 -92 -1322 + -0.460239520869 -0.597991269991 -0.399498917391 0.694843188078 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 617 5 349 721 26 25 346 + 5 1219 -1325 -26 -1321 546 + 0.405330325835 0.703836393484 0.517287641804 -0.486855036788 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 618 6 332 758 756 761 762 336 + 6 1326 -1283 1327 -1297 1328 -510 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 619 5 758 760 774 335 332 + 5 1296 1329 1330 524 1326 + 0.352991926865 -0.085061287564 0.932504894848 -0.350997433670 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 620 6 317 316 774 335 340 763 + 6 490 1331 1330 525 1332 -1303 + -0.123679400611 0.887776397706 -0.145028395212 -0.436829294184 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 621 5 757 760 774 316 311 + 5 -1286 1329 -1331 -481 1333 + 0.468849063380 0.716747455397 0.012699842139 0.697217182226 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 622 5 761 756 757 311 312 + 5 -1327 1291 -1333 479 -1302 + 0.843021386513 0.018310997671 0.686163018427 0.727217312436 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 623 4 762 763 340 336 + 4 -1304 -1332 526 -1328 + -0.146990575120 0.134441083854 0.205563087471 -0.969365468769 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 624 5 294 776 775 389 295 + 5 1334 1335 1336 -606 -442 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 625 4 775 776 778 777 + 4 -1335 1337 1338 1339 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 626 4 389 775 777 395 + 4 -1336 -1339 1340 -612 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 627 5 297 294 776 778 779 + 5 455 1334 1337 1341 1342 + 0.837808730248 -0.022731416873 0.110716092288 0.993592084105 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 628 4 297 296 396 779 + 4 450 -620 1343 1342 + -0.363873058105 0.397329243449 0.675689225341 -0.620945684467 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 629 5 777 778 779 396 395 + 5 -1338 1341 -1343 -621 -1340 + -0.004946903732 0.982913053393 0.011027573717 -0.183739821723 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 630 5 785 783 781 786 789 + 5 1344 1345 1346 1347 1348 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 631 4 781 780 787 786 + 4 1349 1350 1351 -1346 + -0.531433601083 -0.942545421850 -0.331774487165 0.039163981111 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 632 5 784 782 780 787 788 + 5 1352 1353 1350 1354 1355 + 0.026617140692 0.166864997088 0.045739320719 -0.984918264267 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 633 4 780 781 783 782 + 4 -1349 -1345 1356 1353 + -0.102764363855 0.101463218197 -0.990726806468 0.090363766516 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 634 4 782 783 785 784 + 4 -1356 -1344 1357 1352 + 0.508078295625 0.965031106423 -0.252558304661 0.070208734372 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 635 4 784 785 789 788 + 4 -1357 -1348 1358 1355 + 0.521229173047 0.583943055110 0.803066189315 0.118723224217 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 636 4 786 787 788 789 + 4 -1351 1354 -1358 -1347 + -0.037171381939 -0.486566234652 0.868226282767 0.097141243607 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 637 6 793 794 384 386 466 463 + 6 1359 1360 -601 1361 744 1362 + -0.035048348512 0.558488974404 0.175445444506 -0.810745929051 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 638 5 383 791 790 795 385 + 5 1363 1364 1365 1366 597 + 0.203582006810 0.934090741487 -0.154819888248 0.321722378568 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 639 5 790 792 648 651 795 + 5 1367 1368 1070 1369 -1365 + 0.069433172034 0.406989747863 -0.349851747452 0.843779058723 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 640 5 791 790 792 554 555 + 5 1364 1367 1370 896 1371 + -0.320223234318 -0.516660547386 -0.246184993653 -0.820033430828 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 641 7 384 383 791 555 552 725 794 + 7 603 1363 -1371 -898 1226 1372 1360 + -0.409265409574 -0.662143847182 -0.748778997590 -0.029925547727 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 642 6 17 16 723 793 463 464 + 6 30 -1228 1373 -1362 -725 1374 + -0.312771805450 -0.451927408152 0.285297736449 -0.845202235763 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 643 7 553 554 792 648 649 18 15 + 7 890 -1370 1368 1075 1375 -33 1229 + 0.044717107194 0.630492672485 -0.200303823329 -0.749904906173 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 644 4 725 723 793 794 + 4 1227 1373 1359 -1372 + -0.071133303314 -0.122894405013 -0.757691666806 0.640937050942 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 645 6 17 18 649 652 465 464 + 6 -36 -1375 1077 1376 752 1374 + 0.601259005785 0.736195364889 0.670135108054 0.094526830425 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 646 7 652 651 795 385 386 466 465 + 7 -1079 1369 1366 -604 1361 -736 -1376 + 0.410170679115 -0.252176023516 0.902874717846 0.348173084885 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 647 5 510 509 796 797 798 + 5 822 1377 1378 1379 1380 + -1.027520664048 -0.389914202062 -0.779112845664 -0.490866671054 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 648 5 373 380 558 561 800 + 5 -590 1200 907 1381 1382 + 0.355116816643 0.576540607663 0.759247952682 -0.301899774865 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 649 4 712 556 569 799 + 4 1196 -905 1383 1384 + -0.298794998818 0.524407050086 -0.128441740270 -0.841724399775 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 650 5 712 515 510 798 799 + 5 1201 832 -1380 1385 1384 + -0.683076635653 -0.980520145027 -0.177538353768 0.084026056306 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 651 5 801 796 797 802 803 + 5 1386 1378 1387 1388 1389 + 0.315083458661 -0.478648148232 0.850557387375 0.217825804201 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 652 6 373 372 509 796 801 800 + 6 591 -830 1377 -1386 1390 1382 + 0.480855797620 -0.463199121424 0.011431649352 0.886180507180 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 653 6 797 798 799 569 568 802 + 6 1379 1385 -1383 -910 1391 -1387 + 0.231946470353 0.335291294333 0.800975388939 -0.496002191789 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 654 5 561 800 801 803 565 + 5 1381 -1390 -1389 1392 -908 + -0.567200347716 -0.981407745960 0.131832201259 -0.139495902736 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 655 4 802 803 565 568 + 4 1388 1392 909 1391 + 0.397132533319 0.316728770696 -0.612717549139 0.724058071421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 656 5 478 435 351 341 808 + 5 760 707 541 1393 1394 + 0.009504365984 0.420323137875 0.450733255059 -0.787507455553 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 657 5 804 805 767 768 806 + 5 1395 1396 -1308 1397 1398 + -0.193236114377 -0.337555363591 -0.474885473942 0.812736219908 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 658 5 767 805 807 20 19 + 5 -1396 1399 1400 11 -1316 + 0.093035171580 0.182853853205 -0.667746936720 0.721580554663 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 659 6 674 806 804 145 164 434 + 6 1401 1398 1402 245 -696 -1118 + 0.908941875632 0.933794675771 0.351989444355 0.064272346805 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 660 5 807 805 804 145 143 + 5 -1399 -1395 1402 -228 1403 + -0.471633608074 -0.291580050427 -0.901631976071 0.319438341341 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 661 4 806 768 675 674 + 4 -1397 1320 1115 1401 + -0.396190834602 -0.726336741089 0.009524885738 0.687273028058 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 662 7 478 144 143 807 20 24 808 + 7 -765 -231 1403 1400 -38 1404 1394 + -0.190125110401 -0.728019322410 0.663320237663 0.173188130376 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 663 5 341 808 24 25 346 + 5 1393 -1404 39 -1321 -542 + -0.654660793375 -0.752926096901 -0.647582270088 -0.117215596544 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 664 5 190 810 809 812 194 + 5 1405 1406 1407 1408 287 + -0.241078912218 -0.660413484573 -0.702210617424 0.265996763461 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 665 5 811 809 812 470 453 + 5 1409 1407 1410 -731 1411 + -0.341323977422 -0.150948288121 0.242524923117 -0.958329941085 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 666 5 809 810 794 793 811 + 5 -1406 1412 -1359 1413 1409 + -0.137732390389 0.382366267087 -0.917180324742 0.112144057798 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 667 5 810 794 384 191 190 + 5 1412 1360 598 302 1405 + 0.457171443773 0.184933444571 0.620408287241 0.762163485219 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 668 4 793 811 453 463 + 4 1413 -1411 -726 1362 + -0.310153347374 -0.956985757151 0.163055758814 -0.239981416212 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 669 6 470 812 194 195 387 471 + 6 -1410 1408 -305 599 1414 -745 + -0.234874654379 0.699063100067 -0.429349724468 -0.571812553399 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 670 4 466 386 387 471 + 4 -1361 -600 1414 -737 + 0.370434797907 0.114434068214 0.976380076671 -0.183266990787 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 671 5 817 816 815 823 824 + 5 1415 1416 1417 1418 1419 + 0.560905303072 -0.395220208380 0.873213860584 0.285128989358 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 672 5 813 814 798 797 818 + 5 1420 1421 -1379 1422 1423 + -0.525495831058 0.083362529867 0.316387636983 -0.944960079463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 673 6 813 818 820 815 823 822 + 6 -1423 1424 1425 1417 1426 1427 + -0.816535397389 0.196247945185 -0.377074347346 -0.905152849294 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 674 5 821 814 813 822 826 + 5 1428 -1420 -1427 1429 1430 + -1.080330673932 -0.530860333099 -0.031162464537 -0.846886183348 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 675 5 799 150 142 566 569 + 5 1431 219 1432 904 1383 + 0.504391053984 -0.073360016918 0.983750166998 0.163871647487 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 676 4 154 142 566 567 + 4 -204 1432 901 1433 + -0.839808561873 -0.163347265721 -0.810666783733 -0.562260648217 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 677 7 821 814 798 799 150 149 829 + 7 1428 1421 1385 1431 -241 1434 1435 + 0.372938745046 0.532783826018 -0.708652685380 0.462550285090 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 678 4 815 816 819 820 + 4 -1416 1436 1437 1425 + 0.118610683728 -0.797854857235 0.394442712833 0.455897546692 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 679 9 802 819 816 817 827 157 154 567 568 + 9 1438 -1436 -1415 1439 1440 -242 -1433 -922 1391 + -0.839756130710 -0.829411137362 0.064561461235 -0.554895470285 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 680 5 825 824 817 827 828 + 5 1441 1419 1439 1442 1443 + -0.655467942408 -0.055297337207 -0.989414065561 0.134171574365 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 681 5 818 797 802 819 820 + 5 -1422 1387 1438 1437 -1424 + -0.038750807043 0.736237485551 0.067624662643 -0.673335926467 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 682 7 821 826 825 828 160 161 829 + 7 -1430 1444 -1443 1445 244 1446 1435 + -0.905370054688 -0.913640389146 -0.401508915815 0.063653985282 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 683 5 822 823 824 825 826 + 5 -1426 1418 -1441 -1444 -1429 + -1.171208516485 -0.323027750552 -0.770299565900 -0.549810559326 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 684 4 827 157 160 828 + 4 1440 243 -1445 -1442 + 0.245241075972 0.028794460300 -0.460469607448 0.887208329353 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 685 3 161 149 829 + 3 -235 1434 -1446 + -0.301666859050 -0.870958211813 0.411717868402 0.268179399123 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 686 5 831 832 830 833 834 + 5 1447 1448 1449 1450 1451 + -0.238518623808 0.041334026233 0.476714465853 -0.878085882088 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 687 4 193 831 834 199 + 4 1452 -1451 1453 290 + -0.019003864707 0.871616345379 0.205591590061 -0.444991061218 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 688 5 830 809 810 835 833 + 5 1454 -1406 1455 1456 -1449 + -0.053628551048 -0.923213431436 0.371084071415 0.099867772369 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 689 4 830 809 812 832 + 4 1454 1407 1457 1448 + 0.505196982963 0.658492759996 0.327278059443 0.677699311523 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 690 4 190 810 835 198 + 4 1405 1455 1458 -288 + -0.286026700747 0.283955659250 -0.121864875075 -0.951061583602 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 691 5 193 831 832 812 194 + 5 1452 1447 -1457 1408 -286 + 0.383558813451 -0.298013034941 0.861247032193 0.411633065417 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 692 5 833 834 199 198 835 + 5 1450 1453 -289 -1458 1456 + -0.342429520310 -0.200543431997 -0.938780258919 -0.280132035562 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 693 4 836 837 73 67 + 4 1459 1460 -100 1461 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 694 4 667 836 67 75 + 4 1462 -1461 -111 -1101 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 695 4 666 837 73 76 + 4 1463 1460 123 -1103 + 1.016390657602 0.035172264874 0.066345300353 0.997176620717 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 696 4 836 837 666 667 + 4 1459 -1463 -1102 1462 + -0.769268942320 -0.997047450849 -0.031470660872 0.070042688843 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 697 5 256 254 838 839 611 + 5 -392 1464 1465 1466 -981 + -0.620576189489 -0.690000715788 -0.473210107302 0.547696272179 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 698 5 608 612 840 842 843 + 5 -996 1467 1468 1469 1470 + 0.622914984778 0.192850423168 0.628566082354 0.753467580191 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 699 4 608 609 844 843 + 4 998 1471 1472 1470 + -0.331791027740 0.242916183517 -0.949314657525 -0.199482853382 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 700 4 254 838 845 255 + 4 1464 1473 1474 389 + 0.910755325034 0.620897832016 0.783890523640 0.001236585945 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 701 4 609 257 258 844 + 4 1008 387 1475 -1471 + 0.361748006758 0.785419437345 -0.565663864818 0.251278131717 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 702 6 841 839 838 845 849 848 + 6 1476 -1465 1473 1477 1478 1479 + -0.357888137283 0.180321187402 -0.935313825544 0.304421282304 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 703 5 839 611 612 840 841 + 5 1466 1009 1467 1480 1476 + -0.223076757339 -0.140489202871 0.164375619538 -0.976341866140 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 704 5 842 840 841 848 847 + 5 -1468 1480 -1479 1481 1482 + 0.684972964540 0.950193246403 0.036263196550 0.309544463794 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 705 7 842 843 844 258 259 846 847 + 7 1469 -1472 -1475 394 1483 1484 1482 + -0.363701991521 -0.436013704759 -0.585413923746 0.683507561880 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 706 5 845 255 259 846 849 + 5 1474 -395 1483 1485 -1477 + -0.683317209668 -0.045240800948 -0.683174118732 -0.728852792699 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 707 4 846 847 848 849 + 4 1484 -1481 -1478 -1485 + -0.066726344044 0.678288738034 -0.528073599776 -0.510942913716 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 708 5 658 657 850 56 52 + 5 -1082 1486 1487 -74 1488 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 709 6 854 852 659 658 52 55 + 6 1489 1490 -1085 -1488 -85 1491 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 710 5 770 613 614 853 771 + 5 1492 987 1493 1494 1315 + -0.365467199880 -0.780342664362 0.363652164437 0.508745938044 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 711 5 613 770 773 851 617 + 5 -1492 1311 1495 1496 -1001 + 0.095345215013 -0.219297652886 0.245370954464 0.944299546830 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 712 5 850 851 773 58 56 + 5 1497 -1495 1322 -91 -1487 + 0.349491990174 0.263803171042 -0.207002443440 0.942102900621 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 713 5 614 615 659 852 853 + 5 -989 1088 -1490 1498 -1493 + -0.152205516864 -0.623098840318 0.782007194637 0.014580217064 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 714 5 657 850 851 617 616 + 5 1486 1497 1496 -1007 1090 + -0.585115224574 -0.274735528466 -0.500868129017 -0.820762759105 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 715 5 771 853 852 854 772 + 5 -1494 -1498 -1489 1499 1324 + -0.704898619862 -0.999643201242 0.018961852183 -0.018812718368 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 716 4 772 854 55 57 + 4 -1499 -1491 -93 -1319 + -0.704143626422 -0.764468053063 -0.642221214158 -0.056040234922 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 717 6 855 286 292 390 857 858 + 6 1500 -439 -609 1501 1502 1503 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 718 4 286 287 856 855 + 4 444 1504 1505 1500 + 0.474809240160 0.105327600178 0.932291085595 0.346033854357 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 719 5 288 293 391 407 408 + 5 -447 617 -1050 -653 1506 + -0.285019185198 -0.645146011570 0.609706638755 -0.460482831834 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 720 5 856 287 288 408 409 + 5 -1504 -452 -1506 -629 1507 + 0.376883008172 -0.434885927272 0.850874209726 0.294766533860 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 721 6 409 856 855 858 705 410 + 6 1507 1505 -1503 1508 -1178 -659 + -0.709267944094 0.116543252248 -0.045939824903 -0.992122574505 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 722 4 392 390 857 640 + 4 -614 1501 1509 -1051 + -0.879256601026 0.066721624324 -0.593144724594 -0.802326342914 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 723 5 640 857 858 705 642 + 5 -1509 1502 1508 -1175 -1052 + -0.245217090470 -0.064763934477 -0.983419219960 0.169387929336 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 724 5 840 859 10 13 842 + 5 1510 1511 -5 1512 -1468 + -0.278199205389 -0.878927274711 0.422706809744 0.220920344842 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 725 5 650 212 213 863 864 + 5 -1066 313 1513 1514 1515 + -0.041434859671 0.331519958289 -0.471443554512 0.817212023997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 726 6 10 859 210 211 647 11 + 6 -1511 1516 320 -1074 1517 -27 + 0.138465750766 -0.384391960369 0.450938295563 0.805541727285 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 727 6 214 210 859 840 841 860 + 6 -321 -1516 -1510 1480 1518 1519 + -0.434591675212 -0.760689396658 -0.187579296968 0.621422279260 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 728 5 213 214 860 862 863 + 5 -318 -1519 1520 1521 -1513 + -0.477384161200 -0.274019108490 -0.680057702099 0.680025771569 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 729 5 860 841 848 861 862 + 5 -1518 -1479 1522 1523 -1520 + -0.851199422759 -0.658649087102 -0.752033852816 -0.025029268443 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 730 6 460 462 847 848 861 865 + 6 747 1524 -1481 1522 1525 1526 + 0.626042776687 0.038418194184 0.597951747689 0.800610860400 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 731 6 460 465 652 650 864 865 + 6 735 -1376 1078 -1515 1527 1526 + 0.173277040433 0.939803131024 -0.236780921228 -0.246383583583 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 732 6 13 842 847 462 461 14 + 6 1512 -1482 -1524 751 1528 35 + 0.231984071219 0.378440427450 -0.455702972574 0.805678374824 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 733 4 18 11 647 649 + 4 34 -1517 -1076 1375 + 0.483056108914 0.143495599278 0.733022256012 0.664896522159 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 734 4 461 14 17 464 + 4 1528 29 -1374 -724 + 0.276517511237 0.286956321063 0.782663928379 -0.552352464480 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 735 5 861 862 863 864 865 + 5 1523 1521 1514 1527 -1525 + 0.528577254656 -0.323421157124 0.941210301524 0.097580343460 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 736 5 866 206 205 653 868 + 5 1529 -308 -1065 1530 1531 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 737 5 206 213 863 867 866 + 5 -314 1513 1532 1533 1529 + -0.706706211007 -0.900252258495 -0.432630810871 -0.048748872401 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 738 4 864 650 654 870 + 4 1515 1067 1534 1535 + 0.183145468713 0.608298736821 0.115251524870 -0.785295952363 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 739 5 864 863 867 869 870 + 5 -1514 1532 1536 1537 1535 + 0.566635941551 -0.144194442146 0.745946203993 0.650209369052 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 740 4 866 867 869 868 + 4 -1533 1536 1538 1531 + -0.516223452110 0.385660215040 -0.921651863013 0.042708804022 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 741 5 653 868 869 870 654 + 5 1530 -1538 1537 -1534 1068 + 0.212020337422 0.980406377150 -0.187177397033 -0.061383692320 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 742 4 215 320 328 216 + 4 1539 -495 1540 -322 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 743 6 252 324 320 215 217 253 + 6 -969 -497 -1539 -327 1541 -365 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 744 5 305 328 216 218 310 + 5 503 1540 -331 1542 -476 + 0.832192360542 0.260247938704 0.963994372117 -0.054643031835 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 745 5 218 217 253 250 310 + 5 -330 1541 -382 486 -1542 + -0.378042419894 -0.700440372131 0.168639178184 -0.693501342948 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 746 6 873 596 597 872 874 875 + 6 1543 -967 1544 1545 1546 1547 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 747 4 599 876 878 601 + 4 1548 1549 1550 -974 + 0.039694940134 0.218884112707 0.397665083251 -0.891039969231 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 748 4 598 597 872 871 + 4 -970 1544 1551 1552 + -0.653647267052 0.011399644127 -0.310475070277 -0.950513166058 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 749 5 599 598 871 877 876 + 5 -972 -1552 1553 1554 -1548 + -0.402725140383 0.011811791281 -0.007995233660 -0.999898273739 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 750 6 867 881 875 873 883 869 + 6 1555 1556 1547 1557 1558 -1536 + 0.044420421950 0.330721249898 -0.267107505668 0.905139235301 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 751 6 877 871 872 874 879 880 + 6 -1553 -1551 1545 1559 1560 1561 + -0.740081057775 -0.809639432358 -0.224980540412 -0.542095698200 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 752 5 873 596 600 764 883 + 5 1543 -977 -1301 1562 -1557 + -0.059642079993 0.946626965117 -0.321370005867 0.024873846549 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 753 5 879 874 875 881 882 + 5 -1559 1546 -1556 1563 1564 + -0.522381080014 -0.749669974171 -0.318516598570 0.580122492463 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 754 6 878 876 877 880 861 865 + 6 -1549 -1554 -1561 1565 1525 1566 + 0.086328197821 -0.447902937722 0.638165846632 -0.626200695123 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 755 7 602 601 878 865 864 870 765 + 7 -978 -1550 -1566 -1527 -1535 1567 1307 + 0.767419283360 0.452280844153 0.885826596871 -0.103698014872 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 756 5 882 879 880 861 862 + 5 1564 1560 1565 1523 1568 + 0.084165396841 0.885178901927 -0.456585143806 -0.089377391093 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 757 5 882 881 867 863 862 + 5 -1563 -1555 -1532 -1521 1568 + 0.229427493966 -0.568464107081 0.537076447829 0.623215410711 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 758 5 869 883 764 765 870 + 5 -1558 -1562 -1306 -1567 -1537 + 0.649777945574 0.767667598185 0.434791783348 0.470789298764 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 759 5 890 887 884 750 749 + 5 1569 1570 1571 -1271 1572 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 760 5 884 885 886 752 750 + 5 1573 1574 1575 -1275 -1571 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 761 4 884 885 888 887 + 4 1573 1576 1577 1570 + 0.536457507823 0.093920539734 0.994638870261 0.043271815098 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 762 4 886 885 888 889 + 4 -1574 1576 1578 1579 + -0.217351193285 0.770721927708 -0.637147034677 0.005600567136 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 763 5 891 889 886 752 751 + 5 1580 1579 1575 1280 1581 + -0.096414940423 -0.952982924737 -0.224520963604 0.203504009940 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 764 5 887 888 889 891 890 + 5 -1577 1578 -1580 1582 1569 + 0.985425158789 -0.047369397995 0.394098029887 0.917846873380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 765 4 890 891 751 749 + 4 -1582 -1581 1278 1572 + 0.295253775161 -0.030233042309 -0.594576650186 0.803470329388 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 766 5 200 204 575 631 635 + 5 -285 -926 1583 -1022 1584 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 767 7 632 631 575 576 894 896 897 + 7 -1025 -1583 -930 1585 1586 1587 1588 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 768 5 634 834 833 892 633 + 5 1589 -1450 1590 1591 -1035 + -0.431716282334 -0.188188789350 -0.779803606480 -0.597068936458 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 769 5 200 199 834 634 635 + 5 -296 -1453 -1589 -1037 1584 + -0.354071968105 0.190367628687 -0.854593166212 -0.483146650834 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 770 6 893 835 198 203 579 895 + 6 1592 1458 303 941 1593 1594 + -0.109641628562 -0.403086167918 -0.797702476108 0.448544647548 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 771 6 892 833 835 893 899 898 + 6 -1590 -1456 -1592 1595 1596 1597 + -0.343883219469 -0.764814886081 -0.615438113069 -0.190510154612 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 772 5 892 633 632 897 898 + 5 1591 1029 -1588 1598 1597 + 0.487019999161 0.564706585287 0.167125012462 0.808192862343 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 773 5 893 895 894 896 899 + 5 -1594 1599 1586 1600 -1595 + -0.134926462318 -0.872292512643 -0.195058236098 0.448394978693 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 774 4 576 894 895 579 + 4 1585 -1599 -1593 -939 + 0.030304896634 -0.507934609543 -0.097288134308 0.855884017465 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 775 4 896 897 898 899 + 4 1587 1598 -1596 -1600 + -0.329270913903 -0.992137997469 -0.039862588457 -0.118630384052 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 776 6 874 872 493 494 684 683 + 6 -1545 1601 -786 1602 -1126 1603 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 777 4 492 493 872 871 + 4 -789 -1601 1551 1604 + -0.196727085146 -0.943057557862 0.052175062302 0.328512108504 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 778 4 496 492 871 877 + 4 793 -1604 1553 1605 + -0.425871666409 -0.899970697556 -0.239260683951 0.364427041609 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 779 4 499 494 684 689 + 4 -803 1602 -1140 1606 + -0.861967048730 -0.738279034491 -0.058648918906 -0.671940750023 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 780 5 498 496 877 880 900 + 5 805 -1605 -1561 1607 1608 + -0.842893809622 -0.319809059832 -0.935811394241 0.148253835225 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 781 5 499 498 900 688 689 + 5 804 -1608 1609 -1143 1606 + -0.221554149808 0.478492430564 -0.821892886498 0.309090726189 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 782 5 879 880 900 688 682 + 5 1560 1607 1609 1142 1610 + 0.591706544931 -0.277930017217 0.742385643896 0.609605168340 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 783 4 874 879 682 683 + 4 1559 -1610 1137 1603 + 0.167883786862 0.022198120097 -0.093687300491 0.995354174749 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 784 5 607 606 901 804 805 + 5 -1000 1611 1612 1395 1613 + -0.451676952797 0.044368156462 -0.706977295916 -0.705843162290 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 785 5 805 607 609 844 807 + 5 1613 -999 1471 1614 -1399 + 0.862518547466 0.716326448510 0.413658999416 0.561927621111 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 786 5 902 230 229 141 146 + 5 1615 359 -385 -230 1616 + 1.017915442838 0.808532060927 0.401222490029 0.430460706624 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 787 5 606 901 902 230 231 + 5 1611 1617 1615 357 -1006 + -0.385285219349 -0.760789961019 0.168015813455 0.626872651854 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 788 5 804 901 902 146 145 + 5 -1612 1617 -1616 -229 -1402 + 0.431764497162 0.656573303323 -0.626517139740 0.419985441385 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 789 5 844 807 143 137 258 + 5 1614 -1403 -227 -388 1475 + -0.554508595749 -0.901202388985 -0.120893816029 0.416195794469 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 790 6 903 783 785 854 55 54 + 6 1618 -1344 1619 -1491 -84 1620 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 791 4 903 716 53 54 + 4 1621 -1211 87 1620 + 0.099587389497 -0.000893680461 0.997269810198 0.073838519774 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 792 5 716 903 783 782 718 + 5 -1621 1618 1356 1622 1213 + 0.556943664434 0.813392875869 0.581641918327 -0.009203712924 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 793 5 769 784 785 854 772 + 5 1623 -1357 1619 1499 -1318 + -0.091466876671 0.216259736920 -0.974641926373 -0.057487751244 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 794 5 784 782 718 719 769 + 5 1352 1622 -1212 1317 1623 + -0.407584503589 -0.841222727174 0.168600409956 0.513729719842 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 795 6 584 583 422 423 698 697 + 6 -944 1624 -673 1625 1166 1626 + -0.202557118696 0.761336020881 0.046335051434 -0.646699718816 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 796 4 907 904 451 456 + 4 1627 1628 -715 1629 + 0.358998483416 0.062099218192 -0.299782690844 0.951984256892 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 797 5 905 586 583 422 420 + 5 1630 -952 1624 -670 1631 + 0.931547665604 -0.091544912875 0.631365648638 0.770062949795 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 798 6 451 904 585 584 697 452 + 6 -1628 1632 -955 -1626 -1170 727 + 0.565131744294 0.814628397411 0.019734820053 0.579647402313 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 799 4 905 420 428 906 + 4 -1631 -665 1633 1634 + 0.991316596539 0.584921382628 0.613058106833 0.531061892618 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 800 6 905 586 585 904 907 906 + 6 1630 -959 -1632 -1627 1635 1634 + -0.454535689994 -0.108303476936 -0.926562688044 0.360210968751 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 801 6 428 906 907 456 475 429 + 6 1633 -1635 -1629 -743 1636 -674 + -0.093651091568 -0.950220224031 0.156636660514 0.269344542223 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 802 5 423 429 475 474 698 + 5 -675 -1636 -742 -1163 -1625 + 0.013528190587 -0.167170575263 0.802184529623 -0.573196283309 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 803 5 487 482 824 817 503 + 5 778 1637 1419 1638 -806 + 0.238574403573 0.687425904240 0.320103482333 -0.651904430709 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 804 4 481 484 909 908 + 4 -772 1639 1640 1641 + -1.183329561616 -0.677096415712 -0.725547755846 -0.122967059883 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 805 5 910 909 484 486 500 + 5 1642 -1639 776 808 1643 + -0.337466041585 -0.224756959458 -0.721023080826 0.655446432664 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 806 5 481 482 824 825 908 + 5 -775 1637 -1441 1644 1641 + 0.893772056599 0.388700706178 -0.044815779557 0.920273495717 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 807 5 500 910 828 827 504 + 5 1643 1645 -1442 1646 -809 + -0.906333728298 -0.085984387164 -0.392103955481 -0.915893647352 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 808 5 908 909 910 828 825 + 5 -1640 -1642 1645 1443 1644 + -0.357291831049 -0.890368404685 0.452275714955 -0.051872744293 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 809 4 817 503 504 827 + 4 1638 -810 -1646 -1439 + -1.108747154060 -0.652239830640 -0.692465344460 -0.308342261212 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 810 5 837 911 488 77 73 + 5 1647 1648 -770 -101 -1460 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 811 4 666 837 911 669 + 4 1463 1647 1649 -1104 + -1.221295245931 -0.863562200382 -0.063857237571 -0.500182545959 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 812 5 670 669 911 488 491 + 5 -1105 -1649 1648 783 1650 + 0.021948285579 -0.773675456931 0.128829435211 0.620346084025 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 813 4 670 491 90 91 + 4 -1650 -781 143 -1106 + 1.228192497539 0.051282210000 0.875466177321 0.480550837378 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 814 4 717 912 50 51 + 4 1651 1652 -78 -1207 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 815 4 912 903 54 50 + 4 1653 -1620 -83 -1652 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 816 4 912 717 716 903 + 4 -1651 -1210 -1621 -1653 + -0.599238202070 -0.993066827110 0.093898077474 0.070720774456 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 817 5 241 249 493 872 597 + 5 -363 -787 -1601 -1544 -966 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 818 5 240 245 492 871 598 + 5 -369 -790 -1604 1552 971 + 0.811649800510 0.001498213328 0.984740175539 -0.174024544349 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 819 5 913 355 356 818 813 + 5 1654 -557 1655 1423 1656 + -0.422164001203 0.162197309973 -0.985746238879 0.044680926278 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 820 5 512 511 913 813 814 + 5 -825 1657 -1656 1420 1658 + -0.827429678235 -0.874532487312 -0.478059772790 0.081558459256 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 821 4 913 355 362 511 + 4 1654 558 824 1657 + 1.250245976327 0.563614415059 0.319587963176 0.761710131829 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 822 5 356 818 797 796 357 + 5 1655 -1422 -1378 1659 556 + -0.583471192177 -0.936617848017 0.288854037255 -0.198268383604 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 823 4 512 510 798 814 + 4 826 -1380 -1421 1658 + -0.148348631054 0.715815620829 -0.476858231251 -0.510111972282 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 824 4 796 509 363 357 + 4 -1377 823 560 -1659 + -0.274916113800 -0.699856171964 -0.534204828955 0.474158770123 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 825 6 665 322 325 596 873 734 + 6 -1094 -499 -968 -1543 1660 -1247 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 826 4 873 734 737 883 + 4 1660 1252 1661 -1557 + 0.097023460600 -0.602589674709 0.064452237236 0.795444274006 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 827 4 739 764 883 737 + 4 1300 1562 -1661 1253 + 0.857870021680 0.185712942919 0.803113203341 0.566144756623 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 828 5 451 904 301 315 449 + 5 -1628 1662 -483 1663 -711 + -0.285532767104 -0.887037092328 -0.336044295172 0.316606109410 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 829 4 584 589 701 697 + 4 945 1288 -1167 1626 + 0.641328272840 0.121468338376 -0.018320231451 0.992426224911 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 830 4 585 298 301 904 + 4 956 471 -1662 1632 + -0.760274216894 -0.684445070020 -0.711733602665 -0.158019698022 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 831 4 299 590 757 311 + 4 957 -1287 -1333 -478 + -0.415100226634 0.702164991435 -0.709186655019 -0.063392532255 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 832 5 468 702 760 774 467 + 5 -1172 1289 1329 1664 729 + -0.694503079523 -0.558700249156 -0.761980759334 -0.327474203561 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 833 5 315 316 774 467 449 + 5 -482 1331 1664 -728 -1663 + 0.514580779925 -0.134729748582 0.135163285430 0.981620487316 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 834 6 541 914 917 918 921 542 + 6 1665 1666 1667 1668 1669 -873 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 835 5 790 919 918 921 792 + 5 1670 1671 1668 1672 -1367 + -0.429278004596 -0.221078620350 -0.974639768933 -0.034663589511 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 836 4 914 916 549 541 + 4 1673 1674 -886 1665 + 0.322607619712 0.308671922871 0.949876548866 0.049559922773 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 837 5 915 920 919 790 791 + 5 1675 1676 -1670 -1364 1677 + -0.181971715905 0.460005194268 -0.527303178325 -0.714385455741 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 838 5 915 916 914 917 920 + 5 1678 -1673 1666 1679 -1675 + 0.237803176616 0.967585892062 0.252505335123 0.004312448986 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 839 5 791 915 916 549 555 + 5 1677 1678 1674 -897 1371 + -0.111910396661 -0.182523436164 -0.554459023809 0.811948512018 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 840 4 917 918 919 920 + 4 1667 -1671 -1676 -1679 + -0.055351709658 0.851046533626 -0.524952429736 -0.012030964906 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 841 4 921 542 554 792 + 4 1669 -891 -1370 -1672 + -0.291843260146 -0.997666241990 -0.002945469291 0.068215788519 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 842 5 225 254 838 922 237 + 5 -390 1464 1680 1681 -343 + -0.767250713077 -0.208021194461 -0.732279020887 -0.648455563801 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 843 4 839 838 922 923 + 4 -1465 1680 1682 1683 + -0.030945856292 -0.687745715723 0.724835905458 0.040233576309 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 844 4 611 839 923 620 + 4 -1466 -1683 1684 -982 + -0.674035306477 -0.624212137954 -0.124492382152 -0.771272230550 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 845 5 922 237 236 620 923 + 5 1681 344 -983 -1684 -1682 + 0.289933876429 0.241087486700 0.484379573569 -0.840983503088 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 846 7 858 857 887 890 753 759 925 + 7 -1502 1685 -1569 1686 -1285 1687 1688 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 847 5 887 857 640 641 888 + 5 -1685 1509 1057 1689 1577 + 0.581051120462 -0.124498030752 -0.396914346251 0.909372993924 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 848 5 924 755 704 696 926 + 5 1690 1293 1169 1691 1692 + -0.357478796202 -0.789635732643 -0.591783872540 0.162071767851 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 849 5 890 753 755 924 891 + 5 1686 1292 -1690 1693 1582 + -0.629352854595 0.013423816265 -0.999406185943 -0.031734471087 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 850 5 641 888 889 927 643 + 5 1689 1578 1694 1695 -1055 + -0.691760836154 -0.566902400983 0.157688336890 -0.808551826520 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 851 4 858 705 700 925 + 4 1508 1176 1696 1688 + 0.710651550972 -0.034338683579 0.805198921823 0.592009755920 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 852 5 889 891 924 926 927 + 5 -1580 -1693 -1692 1697 -1694 + -0.832345006704 -0.685312750028 -0.473729468948 -0.553106522200 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 853 4 703 759 925 700 + 4 1294 1687 -1696 1173 + 0.694744250777 -0.046036353770 0.186217759166 0.981429365926 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 854 5 643 644 696 926 927 + 5 1058 1165 1691 1697 1695 + 0.152886114757 0.991386900645 -0.130332850846 0.012859285373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 855 5 922 838 845 687 681 + 5 -1680 1473 1698 -1132 1699 + -0.524675419544 -0.874244851690 0.312059503207 -0.371906985350 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 856 5 860 928 929 882 862 + 5 1700 1701 1702 -1568 -1520 + 0.501286262192 0.503250219336 0.130476050377 0.854233701639 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 857 5 860 841 839 923 928 + 5 -1518 1476 -1683 1703 -1700 + 0.561166833782 -0.026379840779 0.708921857855 0.704793518313 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 858 5 900 849 845 687 688 + 5 1704 -1477 1698 1141 -1609 + 0.418759680935 0.186858644594 -0.031781342086 0.981872595216 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 859 6 922 923 928 929 680 681 + 6 1682 1703 1701 1705 1135 1699 + 0.265401869452 0.671467102362 -0.085364180694 -0.736101139178 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 860 5 848 849 900 880 861 + 5 -1478 -1704 -1607 1565 -1522 + -0.196743527783 -0.604025238814 -0.128397984074 0.786554173952 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 861 5 929 882 879 682 680 + 5 1702 1564 -1610 -1136 -1705 + 0.408064226529 -0.299598005134 0.836995670119 -0.457907505422 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 862 5 573 930 931 894 576 + 5 1706 1707 1708 -1585 -929 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 863 5 539 538 930 573 574 + 5 -871 1709 -1706 -933 1710 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 864 5 551 540 931 894 895 + 5 -893 1711 1708 -1599 1712 + -0.291060697440 -0.585197089425 -0.160872626828 -0.794773152834 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 865 4 550 539 574 578 + 4 888 -1710 934 1713 + 0.098431528668 -0.329466964521 0.939296181151 -0.095782061812 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 866 4 930 931 540 538 + 4 1707 -1711 -878 1709 + -0.306538134175 -0.995361525363 0.068241113141 0.067812862380 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 867 5 578 550 551 895 579 + 5 1713 895 -1712 -1593 940 + -0.161423537650 0.211217088633 -0.761584490694 -0.612679692011 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 868 6 494 485 483 932 686 684 + 6 -785 -768 1714 1715 -1127 -1602 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 869 5 484 483 932 933 909 + 5 -771 1714 1716 1717 -1639 + -0.869809108929 -0.461252739158 0.058546978943 -0.885335056279 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 870 5 175 933 932 686 179 + 5 1718 -1716 1715 1138 -275 + -0.993482005948 -0.966713968669 -0.050899742187 -0.250745526432 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 871 6 176 910 500 499 689 180 + 6 1719 -1643 -811 -1606 -1139 -272 + -1.089157681762 -0.247564130600 -0.901510836857 -0.354950999816 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 872 5 909 933 175 176 910 + 5 -1717 -1718 277 1719 1642 + -0.077223576163 -0.537049499631 0.739877580931 -0.405165398550 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 873 5 518 520 632 897 693 + 5 -838 -1026 -1588 1720 -1146 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 874 5 415 414 934 937 695 + 5 648 1721 1722 1723 1151 + -0.327506724486 -0.689172657288 -0.722654423720 0.053024827435 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 875 5 935 892 633 626 936 + 5 1724 1591 -1028 1725 1726 + -0.160160199814 -0.566204062130 0.714401692964 -0.411148611960 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 876 5 892 935 934 937 898 + 5 -1724 1727 1722 1728 1597 + -0.199119749087 0.224853058436 0.550930489750 -0.803689428558 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 877 5 414 934 935 936 413 + 5 1721 -1727 -1726 1729 658 + 0.148438715872 0.026987017351 0.986941931445 -0.158799637439 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 878 5 936 626 522 412 413 + 5 -1725 -1027 848 -660 -1729 + 0.192904315948 -0.634317429049 0.713640087893 0.297252795037 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 879 5 693 897 898 937 695 + 5 -1720 1598 -1728 1723 1155 + 0.035801760111 0.855347527159 -0.085225505209 -0.510996302378 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 880 5 290 287 856 627 629 + 5 -445 1504 1730 1031 1731 + -0.068890799778 -0.997134432654 0.074668912059 -0.012144002121 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 881 5 291 288 408 416 938 + 5 -448 -1506 630 1732 1733 + -0.808401878440 -0.207541651156 -0.357917542293 -0.910396340038 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 882 6 291 290 629 521 526 938 + 6 -453 -1731 -1039 844 1734 1733 + 0.100803180973 -0.385716069351 -0.849565606131 0.359807441175 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 883 5 856 409 402 523 627 + 5 -1507 -628 842 1038 -1730 + -0.440436021279 -0.202997446129 0.581677880527 -0.787681966387 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 884 4 938 416 419 526 + 4 -1732 631 -845 1734 + -0.553330840818 -0.736717035547 0.313771591722 -0.598995323657 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 885 5 390 388 884 887 857 + 5 -608 1735 -1570 -1685 -1501 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 886 4 884 388 393 885 + 4 -1735 -611 1736 -1573 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 887 5 394 393 885 888 641 + 5 616 1736 1576 -1689 -1054 + -0.282364168354 -0.964764970883 -0.258518518704 -0.048956372870 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 888 9 941 942 720 348 342 694 693 897 896 + 9 1737 1738 -1208 -531 1739 -1147 -1720 -1587 1740 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 889 6 726 727 940 941 896 899 + 6 1222 1741 1742 -1740 1600 1743 + -0.404994571851 -0.729867946219 0.139170132200 -0.669271585670 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 890 5 44 343 342 694 39 + 5 1744 -545 1739 1157 -50 + -0.738240287004 -0.404784058534 -0.122669795083 -0.906146780235 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 891 7 721 26 21 727 940 943 722 + 7 -1325 -16 1225 1741 1745 1746 -1218 + 0.082983780058 -0.034678674378 -0.454541419962 0.890050272222 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 892 5 939 41 40 695 937 + 5 1747 -63 1150 -1723 1748 + -0.185570197070 0.546722643657 -0.606788688331 -0.576976462801 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 893 6 726 728 939 937 898 899 + 6 1231 1749 -1748 1728 -1596 1743 + 0.196031748751 0.850559404409 -0.525834680688 0.006825551835 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 894 6 41 939 728 22 23 42 + 6 -1747 -1749 -1233 31 1750 -72 + -0.113770252518 0.360029372576 -0.927862763617 -0.097208758738 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 895 5 44 343 341 808 43 + 5 1744 -537 1393 1751 43 + 0.758311253484 0.618857131832 0.477074617696 0.624031777662 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 896 4 940 941 942 943 + 4 1742 1737 1752 -1745 + 0.284417687940 0.281295575391 0.006534427919 0.959598926905 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 897 4 942 720 722 943 + 4 1738 1215 -1746 -1752 + 0.096878500381 -0.119347400171 -0.003997381512 0.992844508981 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 898 5 808 43 42 23 24 + 5 1751 -70 -1750 37 1404 + -0.448808319636 -0.209833070066 -0.956006429713 -0.204992168273 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 899 5 437 944 123 132 443 + 5 1753 1754 -182 1755 -685 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 900 4 946 711 442 438 + 4 1756 -1194 -699 1757 + 0.919704612813 0.642232994074 -0.263335799414 0.719854872922 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 901 6 130 945 946 711 517 129 + 6 1758 1759 1756 1205 -834 194 + -0.184214858124 -0.629573567268 0.776588207954 0.023406808062 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 902 4 123 130 945 944 + 4 -195 1758 1760 1754 + -0.801791665805 -0.161991157208 -0.934143627712 -0.318016584146 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 903 5 944 945 946 438 437 + 5 -1760 1759 -1757 -698 1753 + 0.057270969637 -0.219747369094 -0.649311366431 0.728083678707 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 904 4 133 715 516 124 + 4 1761 -1203 -827 -197 + -0.006982820112 0.630787077727 0.321662879406 -0.706144924633 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 905 5 132 443 447 715 133 + 5 1755 -701 -1206 -1761 -196 + -0.097122938001 0.004235143954 0.908423591504 -0.418029474983 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 906 5 931 930 947 942 941 + 5 -1707 1762 1763 -1737 1764 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 907 5 536 948 947 930 538 + 5 1765 1766 -1762 -1709 -870 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 908 5 949 948 947 942 943 + 5 1767 1766 1763 1752 1768 + -0.454734493372 -0.990061254078 -0.026075042665 0.138198427354 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 909 4 948 536 543 949 + 4 -1765 875 1769 1767 + 0.340928677223 0.519543532740 0.829077466403 -0.206652056104 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 910 5 931 540 547 940 941 + 5 -1711 879 1770 1742 1764 + 0.074260688954 0.566763824137 -0.220708349743 -0.793767341230 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 911 5 547 543 949 943 940 + 5 880 1769 -1768 -1745 -1770 + -0.400049991856 -0.572619005540 -0.701029843787 -0.425046624047 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 912 6 953 459 455 950 506 505 + 6 1771 746 1772 1773 812 1774 + -0.225628616112 -0.177993851584 0.456820081970 -0.871569619426 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 913 5 455 950 952 954 454 + 5 1772 1775 1776 1777 713 + -0.160256454623 -0.911747375668 -0.043652011464 0.408425298993 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 914 5 952 951 876 878 954 + 5 1778 1779 1549 1780 -1776 + 0.078084682704 -0.880937517306 0.460495405563 0.109055362359 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 915 6 900 849 846 953 505 498 + 6 1704 -1485 1781 -1774 813 -1608 + -0.744971665785 -0.972261850622 -0.121109462512 -0.200098455552 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 916 5 877 876 951 497 496 + 5 1554 -1779 1782 792 -1605 + 0.502881892721 -0.565962673704 0.797688358216 0.208277543532 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 917 5 951 952 950 506 497 + 5 -1778 -1775 1773 -795 -1782 + 0.415421338089 -0.612057779679 0.432888114071 0.661810512934 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 918 5 459 953 846 847 462 + 5 -1771 -1781 1484 -1524 748 + 0.340378048486 -0.314443192233 0.948689798558 -0.033363827276 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 919 5 954 878 865 460 454 + 5 -1780 -1566 1526 -734 -1777 + -0.671108250403 -0.839405417628 -0.295405983262 -0.456216889111 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 920 6 209 956 957 955 645 207 + 6 1783 1784 1785 1786 -1061 -311 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 921 5 959 957 955 8 5 + 5 1787 1785 1788 24 1789 + 0.097672006492 -0.422349249366 0.898887549273 0.116714546314 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 922 5 859 958 960 6 10 + 5 1790 1791 1792 -1 -1511 + -0.530264337271 -0.555995446659 -0.094967704936 -0.825742210568 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 923 5 209 956 958 859 210 + 5 1783 1793 -1790 1516 -319 + -0.755933822759 -0.515913805394 -0.830094254247 -0.211604523746 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 924 5 647 645 955 8 11 + 5 -1073 -1786 1788 -28 -1517 + -0.645951019939 -0.724794948202 -0.678615292285 -0.118968769591 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 925 5 958 956 957 959 960 + 5 -1793 1784 -1787 1794 -1791 + -0.706763732805 -0.985117040599 -0.161974817821 0.057520211342 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 926 4 959 960 6 5 + 4 1794 1792 8 1789 + 0.434710395181 0.782249470251 -0.355485642057 0.511581591327 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 927 6 232 227 961 962 850 657 + 6 -338 1795 1796 1797 -1486 -1081 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 928 5 963 901 606 617 851 + 5 1798 -1611 -1002 -1496 1799 + -0.913669646067 -0.855026724881 -0.517929661593 0.026041608654 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 929 4 962 963 851 850 + 4 1800 -1799 -1497 -1797 + -0.400469463850 -0.058983584699 -0.997991090323 0.023124021526 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 930 4 227 230 902 961 + 4 356 -1615 1801 -1795 + 0.515427566074 0.027483230173 0.471808533153 0.881272591259 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 931 5 901 902 961 962 963 + 5 1617 1801 1796 1800 1798 + -0.108663152083 -0.028958672234 0.462395895113 -0.886200559403 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 932 7 112 116 691 690 964 966 967 + 7 -166 1802 -1144 1803 1804 1805 1806 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 933 5 112 114 622 968 967 + 5 -174 -1015 1807 1808 1806 + -1.092068253199 -0.508932165146 0.113632685198 -0.853273499023 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 934 5 706 379 376 965 707 + 5 1188 -588 1809 1810 -1182 + -0.085459611575 0.402600879273 -0.910802751216 -0.091383151543 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 935 5 376 374 113 117 965 + 5 -579 -1016 175 1811 -1809 + -0.565640103158 0.384381535752 -0.554490852562 -0.738099403467 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 936 5 622 375 378 713 968 + 5 -1017 581 1189 1812 -1807 + -1.038637302237 -0.633746717835 -0.505596267195 -0.585437880763 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 937 4 709 964 966 714 + 4 1813 1804 1814 1191 + 0.242877582848 -0.519101523356 0.134598266009 0.844047934206 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 938 5 709 964 690 47 48 + 5 1813 -1803 -1156 52 -1187 + -0.666019119600 -0.000148572917 -0.110742208005 -0.993849154194 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 939 6 965 117 116 691 692 707 + 6 -1811 -177 1802 -1158 1186 -1810 + 0.187900975427 0.926975169863 0.161339817766 -0.338653949720 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 940 5 713 714 966 967 968 + 5 1190 -1814 1805 -1808 -1812 + -0.822942307763 -0.975225173937 0.123036840411 -0.183841768977 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 941 5 834 831 970 625 634 + 5 1451 1815 1816 1034 1589 + 0.190074355030 0.940872439327 -0.191919854477 0.279151970032 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 942 5 936 935 830 832 969 + 5 1726 1817 -1448 1818 1819 + 0.423768610338 0.742054588902 0.614488056091 0.267879480384 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 943 4 935 830 833 892 + 4 1817 1449 1590 -1724 + 0.061041086492 -0.860398882164 0.118499776572 0.495652667220 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 944 5 936 969 970 625 626 + 5 -1819 1820 1816 -1033 1725 + 0.456272979954 -0.360293815145 0.324614392697 0.874536370211 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 945 4 832 969 970 831 + 4 1818 1820 -1815 1447 + -0.269284208762 0.260211200367 -0.963104192769 -0.068705495235 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 946 5 646 921 918 973 656 + 5 1821 -1668 1822 1823 -1063 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 947 5 919 790 795 971 972 + 5 -1670 1365 1824 1825 1826 + -0.168600571187 -0.656443809261 -0.265365339217 0.706160578073 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 948 4 919 918 973 972 + 4 1671 1822 1827 1826 + 0.208743868220 0.997510951344 0.069908362539 0.009204498629 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 949 4 921 792 648 646 + 4 1672 1368 -1069 1821 + -0.093052669603 -0.891410522698 0.445372689082 0.083847765878 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 950 4 651 795 971 655 + 4 1369 1824 1828 -1071 + -0.400712261282 -0.026414609292 -0.577122299800 -0.816230432837 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 951 5 656 655 971 972 973 + 5 -1072 -1828 1825 -1827 1823 + -0.317537191300 0.490242756359 -0.867361246145 -0.085711775866 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 952 4 974 975 977 976 + 4 1829 1830 1831 1832 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 953 5 837 836 974 976 911 + 5 -1459 1833 -1832 1834 -1647 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 954 5 974 836 667 668 975 + 5 -1833 -1462 -1100 1835 -1829 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 955 4 668 975 977 672 + 4 1835 1830 1836 1109 + 0.923473648101 -0.011118620783 0.997218584362 0.073698516093 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 956 5 976 977 672 669 911 + 5 -1831 1836 1110 -1649 -1834 + -1.017384576514 0.014286377590 -0.171893429277 -0.985011953423 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 957 4 135 476 566 142 + 4 753 900 -1432 -203 + -0.679973070723 -0.478638573949 0.347333091912 -0.806390004149 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 958 4 136 151 710 480 + 4 217 1837 1193 -756 + 0.486734549564 0.917187076908 -0.397914588586 -0.020780908156 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 959 5 712 710 151 150 799 + 5 -1195 -1837 218 -1431 1384 + 1.064121678825 0.559499582606 0.328139631641 0.761107482036 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 960 5 604 603 960 6 1 + 5 -984 1838 1792 2 1839 + 0.047278443008 -0.524035852466 0.769905777979 0.364186104024 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 961 5 608 604 1 12 843 + 5 994 -1839 3 1840 1470 + -0.290673827785 -0.560083319942 0.542475553114 -0.626120554683 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 962 5 958 610 612 840 859 + 5 1841 995 1467 1510 1790 + -0.272464991655 0.010591259441 -0.792656210255 0.609576867645 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 963 4 603 960 958 610 + 4 1838 -1791 1841 -990 + 0.235422697367 0.505195823847 0.079632779278 -0.859322872983 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 964 4 12 843 842 13 + 4 1840 -1469 -1512 -4 + 0.030259079784 -0.255160492857 -0.148111498123 0.955487366221 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 965 5 399 979 978 934 414 + 5 1842 1843 1844 -1721 649 + -0.170816174733 -0.781902456950 0.599247115773 -0.171847147352 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 966 6 830 809 811 978 934 935 + 6 1454 -1409 1845 1844 -1727 1817 + -0.425477752689 0.226446602515 -0.647083636571 -0.728014219292 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 967 5 811 978 979 448 453 + 5 1845 -1843 1846 -722 1411 + -0.046731726039 -0.857970098175 -0.025338531809 0.513074331305 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 968 5 450 448 979 399 400 + 5 716 -1846 -1842 645 1159 + -0.613171083013 -0.817442801719 -0.258760563743 -0.514616591813 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 969 5 969 699 401 413 936 + 5 1847 1161 657 -1729 -1819 + -0.083006397101 0.824257217743 0.161508045799 -0.542692537392 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 970 6 812 832 969 699 469 470 + 6 1457 1818 1847 -1160 -732 -1410 + -0.009932171230 -0.795773898961 0.594715930206 -0.114266635949 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 971 5 735 734 873 875 980 + 5 -1248 -1660 -1547 1848 1849 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 972 6 868 736 735 980 981 866 + 6 1850 -1250 -1849 1851 1852 -1531 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 973 4 875 980 981 881 + 4 1848 1851 1853 1556 + -0.519673868704 -0.971125236329 -0.068551185917 -0.228509322073 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 974 5 883 737 736 868 869 + 5 -1661 1255 -1850 -1538 -1558 + -0.751629323258 -0.679372121716 -0.725508640981 0.109957865102 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 975 4 981 866 867 881 + 4 1852 -1533 1555 -1853 + 0.176587339951 -0.740962651572 0.668830770120 -0.060330339926 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 976 7 756 754 219 216 328 327 761 + 7 -1282 1854 -323 -1540 -494 -1298 -1327 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 977 5 594 754 219 220 593 + 5 1290 1854 -333 1855 965 + -0.430934032073 0.018876158756 0.256437327565 -0.966376524788 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 978 5 310 309 593 220 218 + 5 477 -962 -1855 -332 1542 + -0.800157034509 -0.726707996941 -0.430488372705 -0.535327234640 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 979 5 38 979 978 939 41 + 5 1856 1843 1857 1747 64 + 0.105533946824 -0.269074009011 -0.591274781127 0.760258713122 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 980 5 28 38 979 399 398 + 5 -61 1856 -1842 -644 1149 + 0.580028994183 0.280569084657 0.841618016110 0.461476005545 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 981 4 934 978 939 937 + 4 -1844 1857 -1748 -1722 + -0.575508506980 -0.462509582968 -0.118591454497 -0.878647228746 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 982 5 246 243 303 951 497 + 5 373 -473 1858 1782 -791 + -0.103371607283 -0.137269628323 -0.560663209933 0.816586685030 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 983 4 300 303 951 952 + 4 457 1858 -1778 1859 + -0.599759178153 -0.191985375101 -0.092521391843 -0.977026820409 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 984 6 904 301 300 952 950 907 + 6 1662 472 -1859 -1775 1860 1627 + -0.924874020471 -0.195627059153 -0.796316887013 -0.572371792793 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 985 5 495 982 905 906 507 + 5 1861 1862 -1634 1863 797 + 0.505289821784 0.449457183113 -0.298345088051 0.842008580113 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 986 4 586 905 982 587 + 4 -1630 -1862 1864 -953 + 0.338719253474 -0.168935644513 -0.318887878358 0.932615284589 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 987 6 244 247 495 982 587 308 + 6 -376 -794 1861 1864 -960 -474 + -0.751915187887 0.469763287389 -0.615727247825 -0.632615531035 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 988 5 950 907 906 507 506 + 5 1860 1635 1863 -796 -1773 + 0.219249685871 -0.688981795291 0.724558050595 -0.017880634107 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 989 6 978 811 793 723 728 939 + 6 -1845 -1413 -1373 -1232 1749 -1857 + -0.477934732549 -0.717774197886 -0.676503560922 -0.164751731126 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 990 6 724 725 794 810 835 893 + 6 -1230 1372 -1412 1455 -1592 1865 + 0.322645131467 0.512188115677 -0.198389777379 0.835646354860 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 991 4 893 724 726 899 + 4 1865 1221 -1743 -1595 + -0.253173795411 0.196368577027 -0.514701564664 -0.834578744810 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 992 4 983 984 571 580 + 4 1866 1867 -923 1868 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 993 5 984 917 914 572 571 + 5 1869 -1666 1870 -931 -1867 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 994 5 986 985 983 580 581 + 5 1871 1872 -1868 -938 1873 + 0.195330681256 -0.138609569475 0.280771878269 0.949712872200 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 995 5 983 984 917 920 985 + 5 1866 1869 1679 1874 1872 + -0.348163621801 0.036511705898 -0.999108280459 -0.021202340680 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 996 4 916 914 572 577 + 4 -1673 1870 -936 1875 + 0.028622263217 -0.807067191194 0.589053402392 0.040726380017 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 997 4 985 920 915 986 + 4 -1874 -1675 1876 1871 + -0.358665743236 -0.501894229809 -0.647305410971 -0.573670538734 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 998 5 986 915 916 577 581 + 5 -1876 1678 -1875 937 1873 + -0.083166095589 -0.588172688641 0.310530961170 -0.746741863358 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 999 5 780 949 543 544 787 + 5 1877 -1769 876 1878 -1350 + -0.229581189397 -0.289441375420 -0.114671735178 -0.950302101095 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1000 6 718 782 780 949 943 722 + 6 -1622 1353 1877 -1768 1746 1216 + 0.065334419152 -0.196845017591 0.774356179226 0.601352265103 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1001 6 7 545 544 787 788 9 + 6 -1224 -889 1878 1354 1879 14 + 0.019556703811 0.354957134633 -0.820624574983 0.447862411357 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1002 5 784 788 9 2 769 + 5 -1355 1879 -13 1323 1623 + 0.452385681676 0.578997135542 0.699489096872 -0.418900131764 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1003 4 547 546 727 940 + 4 -892 -1223 1741 -1770 + 0.369161520819 0.883045937182 0.376696214068 -0.279874677548 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1004 6 659 852 957 956 987 661 + 6 -1490 1880 -1784 1881 1882 -1086 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1005 5 959 960 603 614 853 + 5 1794 -1838 -988 1493 1883 + 0.307019296630 0.201288931795 0.655338434483 -0.728020811671 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1006 5 610 958 956 987 618 + 5 -1841 -1793 1881 1884 -991 + -0.027654400194 0.575737902029 -0.756688897801 -0.309754386752 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1007 4 959 957 852 853 + 4 1787 -1880 1498 1883 + -0.700655664347 -0.545461181281 -0.837218193395 -0.039214746757 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1008 4 987 661 619 618 + 4 1882 1089 -992 -1884 + -0.748593269386 -0.313957808972 -0.949099602136 -0.025306904412 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1009 6 988 976 977 740 742 992 + 6 1885 -1831 1886 -1260 1887 1888 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1010 6 911 976 988 989 489 488 + 6 -1834 -1885 1889 1890 -766 -1648 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1011 5 989 489 490 990 991 + 5 1890 -774 1891 1892 1893 + 1.171206112702 0.657546578150 0.084880349521 0.748617274600 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1012 7 490 491 670 671 746 747 990 + 7 -779 1650 1111 1894 1264 1895 -1891 + 1.094844464244 0.724093821476 0.681288746701 -0.107395443662 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1013 4 989 988 992 991 + 4 -1889 -1888 1896 1893 + -0.658766614970 0.013033581911 0.021055115957 -0.999693356902 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1014 5 977 740 746 671 672 + 5 1886 -1263 -1894 1108 -1836 + -0.231915637105 0.004599589735 0.571781449161 -0.820393087593 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1015 5 990 991 992 742 747 + 5 1892 -1896 -1887 -1265 1895 + -1.112452841683 -0.038910265453 -0.873751863054 -0.484813028962 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1016 5 303 302 599 876 951 + 5 458 -973 1548 -1779 -1858 + -0.947395286034 -0.440414911495 -0.863252409976 -0.246637349976 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1017 4 994 993 68 72 + 4 1897 1898 114 1899 + -0.121843837869 0.120567848486 -0.821623018319 0.557134642325 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1018 5 431 819 820 85 86 + 5 1900 1437 1901 -121 -662 + -0.138070605318 -0.024995307903 -0.853215617783 0.520959061878 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1019 5 993 816 815 69 68 + 5 1902 1416 1903 118 -1898 + -0.650944196744 -0.669659908267 -0.681987752321 0.294020939636 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1020 4 427 994 72 78 + 4 1904 -1899 119 663 + 0.390293687635 0.754012303352 -0.460133363700 0.468767249286 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1021 4 815 820 85 69 + 4 -1425 1901 122 -1903 + -0.901438118813 -0.828144658471 0.044998294533 -0.558705269471 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1022 6 993 994 427 431 819 816 + 6 -1897 -1904 661 1900 -1436 -1902 + 0.908245989061 0.046434575734 0.305339133508 0.951110847233 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1023 7 995 183 173 992 742 743 999 + 7 1905 -253 1906 -1887 -1259 1907 1908 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1024 7 747 990 908 825 826 998 744 + 7 1895 1909 -1644 -1444 1910 1911 1268 + 0.339652633993 -0.603927001623 0.427174554657 0.672899752239 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1025 5 996 821 826 998 1000 + 5 1912 -1430 1910 1913 1914 + 0.027193967235 0.496814574693 0.387948630103 -0.776318967161 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1026 7 186 183 995 997 829 161 158 + 7 278 -1905 1915 1916 -1446 236 1917 + -0.523940150410 0.203563055354 -0.937452818197 -0.282390325877 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1027 5 991 990 908 909 933 + 5 -1892 1909 -1640 -1717 1918 + -0.444046545005 0.402480520473 -0.914868011745 -0.032030481204 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1028 4 186 174 159 158 + 4 -258 1919 -215 1917 + 0.943983882736 0.280509267425 0.454648698681 0.845345557554 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1029 5 173 992 991 933 175 + 5 1906 1896 -1918 -1718 -274 + -0.637910119172 -0.052264093081 -0.948102811071 0.313639162438 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1030 5 996 997 995 999 1000 + 5 1920 -1915 -1908 1921 1914 + 0.164665017523 0.110919475166 -0.762969260889 0.636847530392 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1031 4 996 821 829 997 + 4 1912 -1435 -1916 -1920 + -0.509684681507 -0.405639343927 -0.833360097646 0.375456615748 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1032 5 998 744 743 999 1000 + 5 1911 -1266 1907 1921 -1913 + -0.770360439627 -0.040035468838 0.129734785810 -0.990740150890 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1033 6 174 159 160 828 910 176 + 6 1919 249 -1445 -1645 -1719 -271 + -0.902421793009 -0.731175471381 0.066998866133 -0.678891436084 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1034 5 607 605 766 767 805 + 5 997 1922 -1309 -1396 1613 + -0.508948768901 -0.925222588207 0.343346225281 0.161482295799 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1035 5 1 604 605 766 4 + 5 1839 985 1922 1313 7 + -0.347295072514 -0.112883004597 -0.127918755483 -0.985339646654 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1036 5 843 12 20 807 844 + 5 -1840 10 -1400 -1614 1472 + -0.115512090316 -0.591517926148 0.107717704381 0.799064102065 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1037 5 886 730 83 108 752 + 5 1923 -1236 -113 -1276 -1575 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1038 5 886 730 731 927 889 + 5 1923 1240 1924 -1694 1579 + 0.339565057191 0.283129259666 0.928663041513 -0.239630502336 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1039 6 425 424 636 637 924 926 + 6 -681 1925 1043 1926 -1692 1927 + 0.818238527590 0.117280472745 0.029462983596 0.992661686231 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1040 4 636 424 79 81 + 4 -1925 672 153 1042 + 0.280387727731 -0.323982045390 -0.427253623349 0.844091212844 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1041 5 731 426 425 926 927 + 5 1241 677 -1927 1697 -1924 + 0.725752808866 -0.444566214277 0.674760730613 0.589116998181 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1042 5 891 924 637 638 751 + 5 -1693 -1926 1047 1277 1581 + 0.345902371756 0.744394086259 -0.357484685283 0.563987716294 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1043 5 914 541 539 574 572 + 5 -1665 -872 -1710 -932 -1870 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1044 5 916 549 550 578 577 + 5 1674 887 -1713 935 1875 + -0.131761222420 -0.037689324985 -0.124439757483 -0.991511100059 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1045 6 673 962 961 1001 436 433 + 6 1928 -1796 1929 1930 -683 -1112 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1046 5 146 902 961 1001 147 + 5 1616 1801 1929 1931 240 + -0.409367742738 0.003831727255 -0.997106623108 0.075919035954 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1047 5 806 963 962 673 674 + 5 1932 -1800 -1928 -1116 1401 + -0.465730898510 -0.082343679081 -0.382502273695 -0.920277962973 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1048 4 806 963 901 804 + 4 1932 1798 1612 -1398 + 0.671169582351 0.559385907118 -0.114532866739 0.820956533170 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1049 4 147 1001 436 165 + 4 -1931 1930 -697 -238 + -0.752020969603 -0.151503684678 -0.531249895380 -0.833558745493 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1050 5 260 371 376 965 263 + 5 1933 -580 1809 1934 414 + -0.653630633622 -0.020384176998 0.474417100496 -0.880064145438 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1051 5 373 371 260 265 800 + 5 587 -1933 415 1935 1382 + -0.860306689486 -0.034116308181 -0.725664160700 -0.687202738202 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1052 5 800 561 560 270 265 + 5 -1381 919 -1180 -416 1935 + -0.357764384573 -0.645592996131 0.673092598758 -0.360771446824 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1053 4 965 263 271 707 + 4 1934 -418 -1183 -1810 + -0.233389260314 -0.640139466549 -0.719844087319 0.268413772594 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1054 5 823 822 535 93 94 + 5 1426 1936 -865 128 1937 + -0.812179536963 -0.681615750240 -0.707848287371 0.185339610151 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1055 5 482 824 823 94 95 + 5 1637 -1418 -1937 133 -780 + -1.060528449960 -0.862274848005 -0.174992266865 -0.475247086298 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1056 5 535 534 998 826 822 + 5 862 1938 -1910 -1429 1936 + 0.439127235601 -0.116890460473 0.983078360339 -0.141044523760 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1057 4 490 481 908 990 + 4 -773 -1641 -1909 -1891 + -0.156564559046 -0.202040628757 -0.639268137034 0.741967541948 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1058 5 746 671 528 531 745 + 5 -1894 -1107 -864 1939 1262 + 1.275195625966 0.683866708386 0.070510074369 0.726191885505 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1059 5 531 534 998 744 745 + 5 -863 1938 1911 1267 -1939 + 0.604564486065 0.616793710596 -0.557975612997 0.555183513687 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1060 5 422 583 582 636 424 + 5 -1624 -943 -1040 -1925 -671 + 0.776797322710 0.683035336539 0.714545742224 0.151284868075 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1061 5 637 591 595 755 924 + 5 1044 -947 1295 -1690 -1926 + 0.323263158568 -0.848163360454 0.487896806027 0.206338606792 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1062 5 423 698 696 926 425 + 5 1625 -1162 1691 1927 678 + 0.134931314249 -0.621821697264 0.762938613060 -0.176811904332 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1063 6 267 730 886 885 393 277 + 6 -1234 -1923 -1574 -1736 -610 -401 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1064 5 264 643 927 731 268 + 5 -1056 -1695 -1924 -1242 405 + -0.480682191844 0.648268047227 -0.005323031108 -0.761393593540 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1065 4 994 501 99 72 + 4 1940 799 -115 1899 + 0.674016064817 0.981555699533 0.074712477397 0.175972879830 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1066 4 502 993 68 98 + 4 1941 1898 -117 800 + -0.739828720601 -0.981363875823 -0.153529587248 -0.115557816997 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1067 4 994 993 502 501 + 4 1897 -1941 798 -1940 + 0.991125066963 -0.002375788135 0.659803681584 0.751434266852 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1068 4 766 605 613 770 + 4 -1922 986 -1492 -1310 + -0.636125585056 -0.765437032654 0.155995801515 -0.624316793745 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1069 5 959 5 3 771 853 + 5 -1789 9 1314 -1494 1883 + 0.612335862920 0.511538806811 0.465313671770 0.722365029601 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1070 5 820 818 356 89 85 + 5 -1424 -1655 -565 -125 -1901 + -0.959387091141 -0.808769138776 -0.565318377438 -0.162196215414 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1071 4 823 815 69 94 + 4 -1417 1903 -129 1937 + -0.322883718832 -0.238452977879 0.596321790233 -0.766511904561 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1072 5 535 532 913 813 822 + 5 -866 1942 -1656 -1427 1936 + 0.368121194955 0.907280675955 -0.419175411291 -0.033671198495 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1073 4 355 913 532 361 + 4 -1654 -1942 861 562 + 0.679268262437 0.576876357064 -0.500373034895 0.645631856874 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1074 7 995 944 437 436 1001 184 183 + 7 1943 -1753 -684 -1930 1944 -254 -1905 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1075 4 946 148 166 438 + 4 1945 -222 -703 1757 + -0.715020249782 -0.805073182417 -0.540351264195 0.244699166807 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1076 4 140 158 186 185 + 4 214 1917 259 1946 + -0.497017565695 -0.547570936493 0.523205393279 -0.653010096363 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1077 5 1001 147 140 185 184 + 5 1931 -237 -1946 270 -1944 + -0.497919286481 -0.167655008809 0.200645427915 -0.965211484742 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1078 4 944 995 997 945 + 4 -1943 1915 1947 1760 + 0.716922776881 -0.086245903430 0.119934309857 0.989028516000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1079 6 997 945 946 148 149 829 + 6 1947 1759 1945 234 1434 -1916 + 0.081737323043 0.684354725209 0.053022376897 -0.727218837512 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1080 5 946 711 710 151 148 + 5 1756 1192 -1837 -220 -1945 + -0.777283864702 0.026974891200 -0.600728229118 -0.798998091353 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1081 6 945 130 127 1002 996 997 + 6 -1758 198 1948 1949 1920 1947 + -1.170245103851 -0.899005060781 -0.254708757766 -0.356248999167 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1082 6 1002 513 512 814 821 996 + 6 1950 -833 -1658 -1428 -1912 -1949 + -0.843554536191 0.005917800699 -0.889677951622 -0.456550240425 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1083 4 513 1002 127 128 + 4 -1950 -1948 -191 819 + -1.161524794516 -0.332581756252 -0.211519488600 -0.919047812331 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1084 4 234 660 677 238 + 4 -1084 1951 -1123 -340 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1085 7 677 660 661 987 1003 1004 679 + 7 -1951 -1087 -1882 1952 1953 1954 -1129 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1086 6 987 618 620 923 928 1003 + 6 1884 1010 -1684 1703 1955 -1952 + -0.872133023977 -0.779936470776 -0.596865290193 0.188284165338 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1087 4 922 237 239 681 + 4 1681 347 1131 1699 + 0.067194014853 -0.120823169952 -0.113574328258 0.986155481435 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1088 4 928 1003 1004 929 + 4 1955 1953 1956 -1701 + 0.616969046848 0.998082239616 0.016182502482 -0.059749222398 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1089 4 929 680 679 1004 + 4 1705 -1134 -1954 1956 + 0.124095888666 -0.698255593553 0.695878094935 0.167907126298 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1090 6 913 532 533 1005 514 511 + 6 -1942 -860 1957 1958 -829 1657 + -0.477213241111 0.331005115190 0.168275982735 -0.928503531147 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1091 5 1002 1006 1005 514 513 + 5 1959 1960 1958 -820 -1950 + 0.549407648233 0.407358801241 -0.643720488164 0.647829252326 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1092 6 1006 1005 533 534 998 1000 + 6 1960 -1957 -868 1938 1913 1961 + -1.318913631397 -0.728059105609 -0.300447697672 -0.616166470771 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1093 4 1002 1006 1000 996 + 4 1959 -1961 1914 -1949 + -0.270595685086 -0.804586726837 0.585373094848 0.099892636500 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1094 7 758 332 197 192 1007 925 759 + 7 -1326 -509 -281 1962 1963 -1687 -1284 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1095 5 1007 192 193 831 970 + 5 -1962 295 1452 1815 1964 + -0.378567562931 -0.126888022473 -0.972026379747 -0.197646519901 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1096 6 699 969 970 1007 925 700 + 6 -1847 1820 1964 1963 -1696 1177 + -0.092463422098 0.022328255407 0.756223825188 -0.653931934706 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1097 6 333 387 471 467 774 335 + 6 605 1414 738 -1664 1330 -523 + -0.155745268011 -0.607104007235 -0.547952685711 0.575475958335 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1098 6 101 248 253 217 224 105 + 6 -788 -366 -1541 -329 -1274 -104 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1099 5 982 587 588 97 96 + 5 1864 954 1041 -156 1965 + 0.472891725783 -0.333878811484 0.924208189879 -0.185375729273 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1100 4 495 982 96 100 + 4 1861 -1965 -141 -802 + 0.283106224509 -0.696861771627 0.715784188069 -0.045129451090 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1101 5 592 593 220 223 639 + 5 961 -1855 334 1279 1046 + 0.466252274167 0.743762999413 0.632077167860 -0.217474261868 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1102 6 994 427 428 906 507 501 + 6 -1904 664 1633 1863 -801 -1940 + -0.661901035363 0.447442362437 -0.610234160801 -0.653765708254 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1103 4 567 562 155 154 + 4 902 1966 -205 -1433 + 0.021043644172 0.617916148992 -0.786209798321 0.007333882941 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1104 6 953 156 157 827 504 505 + 6 1967 -248 -1440 1646 814 1774 + -0.479536279665 -0.718161312481 -0.469113716334 0.513981177091 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1105 4 455 456 907 950 + 4 714 1629 -1860 -1772 + -0.307161978480 -0.874669946581 0.325483909084 -0.359183392538 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1106 7 953 459 458 563 562 155 156 + 7 1771 -749 1968 -921 1966 232 -1967 + 0.559907209181 -0.234083135156 0.765004205895 0.599978041931 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1107 5 817 816 993 502 503 + 5 1415 -1902 -1941 -807 -1638 + -1.133055558704 -0.386537563769 -0.620074885711 -0.682712126673 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1108 5 430 431 819 802 803 + 5 -667 1900 -1438 1388 1969 + -0.683957467324 -0.027484339392 0.106673504096 -0.993914168634 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1109 4 458 563 564 472 + 4 1968 913 1970 -719 + -0.579767756791 -0.439904142367 -0.897372051565 0.034752648792 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1110 7 564 472 475 429 430 803 565 + 7 1970 -750 1636 679 -1969 1392 920 + 0.076555260622 0.529947824399 0.540652581032 -0.653337653926 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1111 5 850 962 673 60 56 + 5 -1797 -1928 -1114 -75 -1487 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1112 5 963 851 773 768 806 + 5 -1799 -1495 1312 1397 1932 + -0.385415254346 -0.730064363347 0.683373008493 -0.002712311584 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1113 5 188 330 983 580 201 + 5 -508 1971 -1868 -927 -283 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1114 5 329 331 985 986 382 + 5 517 1972 -1871 1973 595 + -0.289144062869 -0.795024979612 -0.589838734292 0.141511657899 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1115 4 330 983 985 331 + 4 1971 -1872 -1972 518 + -0.149205808148 -0.080136270049 -0.655014777367 0.751354656373 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1116 5 189 382 986 581 202 + 5 602 -1973 -1873 -942 294 + 0.045589201183 -0.797887181105 0.574251691026 -0.183333143709 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1117 5 964 344 353 445 966 + 5 1974 -529 -690 1975 -1804 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1118 5 964 709 708 345 344 + 5 -1813 -1198 1976 548 -1974 + -0.808379847544 -0.942553257414 0.036604021520 -0.332044428575 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1119 4 439 708 345 352 + 4 1197 1976 539 -691 + 0.525033908771 0.338632593485 -0.684184674370 0.645925148904 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1120 4 445 446 714 966 + 4 692 -1199 -1814 -1975 + 0.999170552418 0.580439302318 -0.021533575544 0.814018747603 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1121 5 360 365 508 1008 529 + 5 -553 -817 1977 1978 -853 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1122 4 508 514 1005 1008 + 4 -821 -1958 1979 -1977 + 0.213259428695 0.788217802577 -0.609483929749 -0.085100147345 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1123 4 533 1005 1008 529 + 4 1957 1979 1978 859 + -0.926948392881 -0.915614140281 -0.399373101115 0.046388276798 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1124 5 982 905 420 80 96 + 5 1862 -1631 666 -138 1965 + -0.221424799092 -0.969605552520 -0.064618857579 0.235986177069 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1125 6 559 403 405 473 472 564 + 6 1184 -646 -1164 -720 -1970 914 + -0.676584911184 0.156360664071 -0.448043898981 -0.880231791813 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1126 5 38 979 448 457 37 + 5 1856 1846 717 1980 60 + -0.559442437457 -0.020853807147 -0.230968521958 -0.972737714182 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1127 5 457 37 31 563 458 + 5 1980 -59 912 -1968 -718 + -0.085659359089 -0.728695797872 -0.234949809576 0.643273675153 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1128 5 781 948 536 537 786 + 5 1981 -1765 -869 1982 -1346 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1129 4 780 781 948 949 + 4 -1349 1981 -1767 -1877 + -0.117728091381 -0.496168078755 0.864965679450 -0.075177197323 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1130 4 786 787 544 537 + 4 -1351 -1878 877 1982 + -0.118437149370 0.214161876796 -0.972962663130 -0.086477434531 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1131 5 1001 961 227 168 184 + 5 -1929 -1795 -337 -255 -1944 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1132 4 139 140 185 170 + 4 213 -1946 260 384 + 0.030341256726 -0.624314600543 0.526685282223 0.576917579069 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1133 6 738 733 1009 337 336 762 + 6 -1245 1983 1984 -511 -1328 -1299 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1134 7 973 1009 733 736 868 653 656 + 7 1985 -1983 -1251 -1850 -1530 -1064 -1823 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1135 8 654 655 971 339 340 763 765 870 + 8 1080 -1828 1986 527 1332 1305 -1567 -1534 + -0.067375672003 -0.562042091426 0.350233987687 -0.749296230696 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1136 5 973 1009 337 338 972 + 5 1985 1984 -522 1987 -1827 + 0.478785375951 0.098886262407 0.990131622805 0.099301946749 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1137 4 338 972 971 339 + 4 1987 -1825 1986 520 + -0.380120765008 0.200243742258 -0.955999693422 0.214399230089 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1138 5 947 912 717 720 942 + 5 1988 -1651 -1209 -1738 -1763 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1139 6 912 947 948 781 783 903 + 6 -1988 -1766 -1981 -1345 -1618 -1653 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1140 7 524 691 116 115 777 778 525 + 7 -1145 -1802 -165 1989 -1338 1990 -840 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1141 6 777 115 118 262 278 395 + 6 -1989 -170 1991 -403 -613 -1340 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1142 6 272 416 938 779 396 279 + 6 654 1732 1992 -1343 -619 -423 + -0.291751844317 -0.786733478362 0.539682457409 -0.299655267249 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1143 5 262 118 117 965 263 + 5 -1991 -176 1811 1934 -413 + 0.641975440656 0.780743878735 0.602945825084 0.163997950694 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1144 5 525 526 938 779 778 + 5 -850 1734 1992 -1341 1990 + 0.499380985129 0.901125833457 0.076864823234 0.426689619309 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1145 5 1007 192 200 635 624 + 5 -1962 -280 -1584 -1021 1993 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1146 4 1007 970 625 624 + 4 -1964 1816 1036 1993 + -0.527538119720 -0.115708621729 -0.215701770197 -0.969579424901 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1147 5 171 255 845 687 181 + 5 391 -1474 1698 1133 264 + -0.097300954788 0.439751826986 -0.198103471687 -0.875998484683 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1148 6 1004 1003 208 206 866 981 + 6 -1953 1994 -309 -1529 -1852 1995 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1149 5 860 214 208 1003 928 + 5 1519 -317 -1994 -1955 -1700 + -0.103782627914 0.649581170544 -0.746420337377 0.144571722081 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1150 5 1004 929 882 881 981 + 5 1956 1702 -1563 -1853 1995 + -0.814242566210 -0.069219442957 -0.982851039064 -0.170916657258 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1151 5 776 294 289 630 628 + 5 -1334 -441 1996 -1018 1997 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1152 5 776 628 519 525 778 + 5 -1997 -1024 -841 -1990 -1337 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1153 4 289 290 629 630 + 4 -446 -1731 1032 -1996 + -0.142081582778 -0.168923196895 0.911493915010 -0.375025061097 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1154 4 291 297 779 938 + 4 449 -1342 -1992 1733 + 0.427213356536 0.417868325499 0.858692906879 0.296702804539 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1155 4 952 300 314 954 + 4 1859 -461 1998 -1776 + -0.403255129632 -0.005195398261 -0.868534759901 0.495601027723 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1156 5 314 954 454 449 315 + 5 1998 1777 -712 -1663 484 + -0.711631047778 -0.353793965128 -0.333516558944 -0.873840108458 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1157 6 1007 624 623 855 858 925 + 6 -1993 -1020 1999 -1503 -1688 -1963 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1158 4 856 855 623 627 + 4 1505 -1999 1030 -1730 + 0.423685255414 -0.190320844738 -0.566071682100 0.802085298944 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1159 5 33 708 345 343 44 + 5 -1202 1976 -538 -1744 44 + 0.167911376330 0.509169452845 0.748999021959 -0.423965721956 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1160 4 32 478 808 43 + 4 759 -1394 1751 -42 + -0.157013603964 -0.351411353872 0.862662528644 -0.363762865124 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1161 5 289 286 855 623 630 + 5 -440 -1500 -1999 -1019 -1996 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1162 5 801 729 421 430 803 + 5 2000 -1239 -668 -1969 1389 + -0.936013904351 -0.732501497906 -0.582826280151 -0.351788406192 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1163 5 800 265 269 729 801 + 5 -1935 -420 -1238 -2000 1390 + -0.901123113335 -0.604900868712 0.118676980155 -0.787407590396 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1164 5 508 125 120 285 1008 + 5 -816 -184 -435 2001 -1977 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1165 5 1006 284 121 127 1002 + 5 2002 437 -192 1948 1959 + -0.277637906910 0.537656379717 -0.005031432661 -0.843149039041 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1166 5 285 1008 1005 1006 284 + 5 2001 -1979 -1960 2002 -436 + -0.842985670564 -0.365351753522 -0.930694806227 -0.018035350281 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1167 5 975 1010 741 740 977 + 5 2003 2004 -1257 -1886 -1830 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1168 5 1010 975 668 527 530 + 5 -2003 -1835 -1099 -855 2005 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1169 5 741 1010 530 531 745 + 5 -2004 -2005 867 1939 -1261 + -0.844092822976 0.013711203872 -0.989409417187 -0.144502623055 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1170 4 477 138 155 562 + 4 755 -206 -1966 899 + 0.837745864185 0.473561007730 0.073367516227 0.877699937063 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1171 5 980 875 874 683 678 + 5 -1848 -1546 -1603 -1125 2006 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1172 5 1004 981 980 678 679 + 5 -1995 -1851 -2006 -1130 -1954 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1173 4 109 112 967 1011 + 4 -163 -1806 2007 2008 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1174 5 621 110 109 1011 1012 + 5 -1012 -167 -2008 2009 2010 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1175 4 621 622 968 1012 + 4 1014 1807 2011 2010 + -0.173110402321 -0.311054034646 -0.926297691359 0.212645184554 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1176 4 1011 967 968 1012 + 4 -2007 -1808 2011 -2009 + 0.208583479025 0.889294676024 -0.071778725276 -0.451666684397 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1177 5 344 964 690 694 342 + 5 -1974 -1803 -1148 -1739 -530 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1178 5 791 383 382 986 915 + 5 -1363 594 -1973 -1876 -1677 + -0.248406648459 0.164986145846 -0.948769662807 0.269473001645 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1179 5 724 548 551 895 893 + 5 -1220 -894 -1712 1594 1865 + -0.048683918007 -0.692405949183 0.719188545672 0.057808626614 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1180 8 645 955 789 786 537 542 921 646 + 8 -1786 2012 -1347 -1982 -874 -1669 -1821 -1062 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1181 5 955 789 788 9 8 + 5 2012 1358 1879 23 -1788 + -0.508512299738 -0.994795797823 0.100789879602 -0.014923833408 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1182 6 741 1010 282 283 999 743 + 6 -2004 2013 -432 2014 -1907 -1258 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1183 6 1008 285 282 1010 530 529 + 6 -2001 -434 -2013 -2005 -854 -1978 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1184 5 1006 284 283 999 1000 + 5 2002 -438 2014 1921 1961 + 0.901900902882 -0.082693206266 0.778742662725 0.621869519183 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1185 5 984 983 330 337 1009 + 5 -1866 -1971 -512 -1984 2015 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1186 5 918 917 984 1009 973 + 5 -1667 -1869 -2015 -1985 -1822 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1187 6 919 920 985 331 338 972 + 6 -1676 1874 -1972 -521 1987 1826 + -0.111169191844 -0.679466346460 0.170259832976 -0.713678550402 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1188 5 795 385 334 339 971 + 5 1366 -596 519 -1986 -1824 + -0.522073797191 -0.357168927152 -0.763185229666 -0.538496669160 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1189 4 172 153 159 174 + 4 -383 -216 -1919 -257 + -0.237633726865 -0.767603658459 0.640664575575 -0.018262670224 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1190 5 846 953 156 152 259 + 5 1781 1967 233 397 1483 + 0.784059264984 0.335940627708 0.936818795846 0.097541982785 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1191 5 956 209 208 1003 987 + 5 -1783 -310 -1994 -1952 -1881 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1192 6 126 368 367 621 1012 134 + 6 -815 -571 -1013 -2010 2016 -186 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1193 6 713 968 1012 134 133 715 + 6 1812 2011 2016 200 1761 1204 + -0.099661734971 -0.691291109741 0.649328252920 0.317000664911 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1194 5 796 357 359 729 801 + 5 1659 -566 1237 -2000 1386 + 0.165808993152 0.000974313744 -0.769616037896 0.638506229356 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1195 5 988 992 173 178 685 + 5 -1888 -1906 -252 -1122 2017 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1196 5 932 989 988 685 686 + 5 2018 -1889 -2017 -1128 -1715 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1197 4 989 932 933 991 + 4 -2018 1716 1918 1893 + -0.379319618756 -0.779217974116 -0.129237321936 0.613283835947 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1198 6 283 122 123 944 995 999 + 6 -431 -178 -1754 -1943 -1908 -2014 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1199 6 111 366 370 261 262 118 + 6 -1011 -574 2019 -398 -1991 -169 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1200 4 371 370 261 260 + 4 578 2019 -412 1933 + -0.277883784192 -0.015145849054 -0.998880732513 0.044809435072 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1201 4 931 941 896 894 + 4 -1764 -1740 -1586 -1708 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1202 6 370 369 364 358 266 261 + 6 -573 -818 -551 -1235 -399 -2019 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1203 5 132 131 1013 444 443 + 5 -181 2020 2021 -686 -1755 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1204 6 1013 1011 967 966 445 444 + 6 2022 -2007 -1805 -1975 -689 -2021 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1205 5 1012 1011 1013 131 134 + 5 -2009 -2022 -2020 -187 -2016 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1206 5 314 954 878 601 313 + 5 1998 -1780 1550 975 460 + 0.861373013949 0.343449514846 0.698741213651 0.627537367093 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1207 6 219 754 753 890 749 222 + 6 -1854 -1281 -1686 -1572 -1270 -324 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1208 6 785 789 955 957 852 854 + 6 -1348 -2012 -1785 -1880 -1489 -1619 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1209 6 14 461 457 37 42 23 + 6 -1528 -723 1980 69 -1750 32 + 0.647566728448 0.838098409265 0.491270382388 0.237159161273 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 1210 4 932 483 489 989 + 4 -1714 -767 -1890 -2018 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 200 + 1 15 -1 -2 3 -4 5 6 7 -8 9 10 11 12 13 14 -15 + 2 13 -16 17 -18 -19 20 -21 -22 -23 -24 25 -26 27 28 + 3 11 29 30 31 32 -33 -34 -35 36 -37 -38 -39 + 4 23 40 41 42 -43 -44 -45 -46 -47 -48 -49 -50 -51 52 -53 -54 -55 56 -57 -58 59 60 61 62 + 5 7 63 64 -65 -66 67 68 -69 + 6 10 70 71 -72 -73 74 75 -76 -77 -78 -79 + 7 18 80 81 -82 83 84 -85 -86 87 -88 89 -90 91 92 93 -94 -95 96 97 + 8 12 98 -99 -100 -101 -102 -103 104 -105 106 -107 -108 -109 + 9 11 110 -111 -112 -113 -114 115 116 117 118 119 120 + 10 7 121 122 123 -124 125 -126 -127 + 11 7 128 129 130 131 -132 -133 134 + 12 12 135 136 -137 138 139 140 -141 -142 143 144 101 -145 + 13 9 146 147 148 149 -150 151 -152 -153 -154 + 14 12 -155 -156 -157 -158 159 -160 -138 85 -161 -162 102 -163 + 15 13 164 165 166 167 -168 -169 -170 171 -172 -173 174 -175 -176 + 16 6 177 178 179 -180 72 181 + 17 8 182 183 -184 -185 -186 187 188 -189 + 18 15 -190 -191 -192 -151 193 -194 195 196 -197 -198 199 200 -201 202 203 + 19 9 204 205 206 -207 -208 -209 -210 -211 -200 + 20 10 212 -213 -214 -215 -115 -216 217 218 219 -220 + 21 11 221 -222 223 -224 225 -226 -227 228 229 230 39 + 22 10 231 232 -233 -234 -235 -236 -237 -238 -239 48 + 23 10 240 -241 -242 243 -244 -245 -246 -247 -248 249 + 24 9 250 213 -251 -252 114 -253 -254 -255 -256 + 25 11 257 258 -259 260 -188 -261 262 -263 264 176 -265 + 26 16 -266 -267 -268 -269 270 271 -272 -273 274 -275 276 -277 -278 279 175 -280 + 27 11 -281 282 -283 284 285 286 287 -288 289 -290 53 + 28 15 291 292 293 -294 295 296 297 298 299 -300 -301 -302 -230 -303 -97 + 29 16 -304 305 -306 307 -308 309 310 311 312 -313 314 -315 -316 -317 -318 -319 + 30 11 -320 -321 322 -323 -81 324 -325 22 -326 -327 300 + 31 10 328 -329 -330 -331 332 -333 -334 335 -336 -52 + 32 17 337 338 -339 340 153 -341 -342 343 -335 -344 -345 -346 -347 -348 349 -350 -61 + 33 14 351 244 352 353 -354 -355 356 -357 77 358 239 -359 360 361 + 34 9 362 363 364 -365 269 366 -367 -368 -369 + 35 10 370 -371 -372 -373 -374 375 -376 -377 238 46 + 36 12 378 -379 -380 -381 -382 -383 -384 -385 -386 387 388 389 + 37 13 -390 391 -17 -392 -393 -394 -324 395 -396 397 -398 399 400 + 38 10 401 402 403 -404 -405 -406 -407 -408 -409 -120 + 39 11 -410 411 412 -413 414 192 415 -416 417 -418 419 + 40 12 420 -421 150 191 -422 -423 -424 210 425 -426 427 428 + 41 15 -429 -430 431 -432 -433 434 435 -436 -437 438 -139 -439 162 440 -441 + 42 7 442 65 241 -443 -444 -445 -446 + 43 11 447 448 367 -449 -450 -451 -452 -453 -454 455 -456 + 44 8 457 -411 458 -459 -460 -461 -56 462 + 45 10 463 464 -465 -466 -262 467 -166 272 -468 -469 + 46 10 470 -471 -123 472 -473 -474 -475 -476 477 -478 + 47 8 479 480 -435 -481 482 -483 -143 -484 + 48 6 485 486 -487 -206 -488 -489 + 49 9 490 491 492 493 371 494 495 -496 51 + 50 9 497 498 499 222 500 294 -501 502 38 + 51 13 503 504 505 108 -506 -507 508 -509 510 -511 -512 145 -513 + 52 12 514 515 516 -366 517 518 23 -274 519 520 -521 -522 + 53 14 -523 268 -524 -525 526 -527 -310 -528 529 530 531 532 468 -533 + 54 11 -534 394 19 -535 266 -516 536 -537 -538 -174 -539 + 55 19 -540 -541 -542 -543 327 -544 -545 396 546 -547 548 -249 549 -550 -25 538 -360 302 551 + 56 9 552 -553 -554 555 -556 -557 33 -229 558 + 57 10 -559 381 560 561 562 -5 -563 564 565 566 + 58 10 567 -568 -569 -570 -287 237 571 572 173 57 + 59 8 573 574 575 489 -576 -577 -578 -579 + 60 6 580 -581 -582 -583 584 585 + 61 10 586 587 588 -134 589 -590 -462 -62 -591 592 + 62 10 593 594 -595 -596 -417 -597 -598 -599 -600 -532 + 63 12 601 488 208 -602 -603 -427 -604 -199 -605 579 606 -607 + 64 15 -608 -609 -610 557 611 -612 -613 -7 -614 -615 -616 -228 -502 37 -617 + 65 10 618 603 -619 620 621 599 622 -218 -202 623 + 66 8 624 625 626 189 -627 261 628 629 + 67 7 630 631 -632 633 634 635 636 + 68 16 -637 -561 -638 -639 254 640 641 -642 643 476 -389 644 645 646 -13 317 + 69 13 -647 392 -648 649 -650 651 652 357 544 247 653 654 -655 + 70 15 -656 325 -657 -658 659 612 -660 -661 662 224 -91 501 -14 -299 663 + 71 11 251 664 -665 666 637 -667 -117 -668 -669 -312 670 + 72 18 671 -672 -673 -674 -675 676 677 678 679 -680 -653 -681 90 -682 -683 -684 -400 -685 + 73 9 -686 -687 111 -664 -688 689 690 691 692 + 74 6 693 694 -695 -491 -696 44 + 75 13 -697 -698 -159 699 700 701 -438 -702 703 -704 705 -706 -707 + 76 13 708 709 483 710 711 712 713 616 -440 -714 715 716 34 + 77 12 717 186 -718 -719 -463 -720 721 -722 263 -723 278 533 + 78 18 127 -724 475 -725 704 -726 -727 -11 -728 -729 -645 730 -731 732 316 -733 -734 735 + 79 9 736 -122 471 -737 725 -738 739 -740 -741 + 80 9 742 743 -130 207 -744 198 426 154 -745 + 81 17 746 -425 -747 -748 -749 -750 -751 -752 -753 -754 -755 -739 756 -757 607 -735 -758 + 82 8 759 760 -761 762 -763 -764 -765 590 + 83 14 766 767 407 -768 -769 -692 -770 -119 -771 456 772 -773 -774 -775 + 84 11 776 777 778 -343 -779 780 751 781 -782 -783 511 + 85 12 156 784 -785 786 -787 437 -701 788 142 660 86 789 + 86 10 790 -791 554 -634 -792 -793 794 -611 -716 35 + 87 12 -795 -796 797 -414 -798 799 -800 -285 -801 -311 -802 -529 + 88 10 -803 -804 330 -805 806 680 807 -808 345 809 + 89 8 810 695 -492 -811 -812 -813 333 50 + 90 6 814 815 553 791 816 -32 + 91 7 817 -818 -147 421 -338 -777 748 + 92 10 -819 -820 821 647 -232 822 823 -353 672 824 + 93 9 825 487 602 424 209 576 752 -826 -827 + 94 13 -828 413 798 -594 -195 829 -307 -830 527 -831 -621 832 -833 + 95 10 834 -835 -836 -837 -838 839 -840 -640 386 -841 + 96 8 -842 697 429 -136 160 843 844 845 + 97 14 846 596 -467 723 528 847 -848 764 -849 -850 -851 -852 -853 854 + 98 13 -855 -843 702 -856 -857 858 729 859 860 782 861 -756 -510 + 99 9 862 863 -864 865 385 -866 -867 406 774 + 100 11 868 -869 805 -870 334 779 871 346 107 -872 509 + 101 12 873 -364 -874 875 876 -517 449 877 -279 -772 878 879 + 102 10 880 185 -881 882 720 -363 883 267 454 -884 + 103 8 885 886 259 466 761 -887 722 -847 + 104 21 888 -225 889 -890 -566 -891 -892 -893 -894 895 -558 -27 15 522 617 -879 -896 -897 -663 -898 775 + 105 11 899 -900 901 -74 -902 -548 -903 -296 -904 -905 -361 + 106 9 906 907 -908 909 380 -910 -911 866 896 + 107 15 -912 913 914 -915 916 917 -780 313 -860 -730 754 707 -918 348 919 + 108 11 920 -125 -921 -922 -923 924 -925 926 473 726 8 + 109 10 927 928 787 929 436 -140 930 -482 -931 714 + 110 16 932 446 -68 540 -933 -934 -935 248 -936 537 -937 938 -519 -28 -939 -940 + 111 9 686 -941 942 -943 944 -875 768 -945 451 + 112 9 946 835 947 639 -948 -472 -949 -950 -951 + 113 8 952 953 954 696 -494 811 -955 956 + 114 9 957 958 321 -391 -83 959 -649 542 675 + 115 10 -960 -961 698 432 -962 922 963 1 724 964 + 116 13 -942 665 -965 -689 966 -967 523 -968 -969 970 308 275 -877 + 117 9 971 972 750 826 578 -973 974 740 -975 + 118 12 976 194 744 595 -131 418 211 -977 831 -622 604 -978 + 119 9 965 -979 980 981 874 21 -515 -271 892 + 120 14 -982 983 984 -149 800 -193 -415 985 986 -340 -987 830 -917 -988 + 121 13 688 -666 -989 -966 -981 943 -562 -990 991 -876 -644 771 893 + 122 9 992 993 994 -995 -996 838 -997 -998 405 + 123 14 632 999 -1000 -560 911 -794 -387 4 556 -1001 1002 -1003 615 891 + 124 10 1004 -1005 -431 -1006 -963 925 481 1007 -713 -1008 + 125 12 1009 1010 -1011 582 812 -956 -1012 1013 -1014 496 336 1015 + 126 10 818 1016 -148 982 422 197 339 749 -916 -778 + 127 9 -1017 1018 281 -1019 -1020 -1021 -678 -1022 43 + 128 18 1023 -584 1024 -1025 808 1026 682 -1027 -1028 -1029 1030 -1015 -106 1031 -1032 1033 -96 872 + 129 10 -1034 1035 961 785 433 -699 -3 610 658 1036 + 130 13 1037 460 570 -1038 -1039 -289 -1040 763 -1041 -1042 852 54 591 + 131 7 1043 836 996 -1044 -865 382 404 + 132 11 1045 -1046 1047 -788 -659 931 -1048 -92 -500 -1049 -295 + 133 11 534 -1050 245 648 -1051 934 -395 545 168 1052 1053 + 134 16 373 1054 1055 -806 -495 813 331 -1056 -585 -1057 1012 1058 -1024 1059 683 -59 + 135 12 410 1060 795 -458 -829 598 288 1039 -526 1061 848 -1062 + 136 10 1063 465 887 1038 -165 -762 -572 -264 850 1064 + 137 6 1017 -1065 -1066 -1067 341 -42 + 138 10 960 -1035 1005 430 -1068 -1069 -926 609 2 -710 + 139 11 819 1021 234 1070 1071 1072 374 1073 -1054 673 45 + 140 13 1074 1075 88 1076 1077 903 1078 -1026 -1079 1049 301 685 109 + 141 15 1080 -1081 -959 -1082 -823 -901 650 -1083 -677 -358 550 1079 78 -93 -1031 + 142 13 1084 1085 1086 -845 484 -144 1087 1008 -859 441 -1088 507 1089 + 143 12 -1090 820 -1072 1091 1082 -1092 -1093 377 1056 674 1025 359 + 144 17 1094 619 1095 -691 669 -1096 -970 -118 945 255 -217 -531 600 -832 318 -1097 853 + 145 15 1098 152 459 416 -1099 987 132 745 201 -1100 347 -1101 978 -60 -592 + 146 22 912 801 -679 1067 -1102 1022 1103 -1104 1105 290 -1106 -314 -1107 988 -399 -1108 1109 -809 -1110 95 655 350 + 147 9 1111 1112 -929 -1047 -499 613 -712 661 -36 + 148 9 1113 -994 -1114 112 252 214 -1115 -1116 409 + 149 8 1117 1118 -1119 543 937 -293 227 1120 + 150 9 1121 1090 1122 -821 233 372 -1073 355 -1123 + 151 10 -457 -1124 -1060 -412 -284 -797 -986 1099 1040 55 + 152 13 393 -980 -20 535 -305 -1125 525 968 -270 1126 -1127 -1109 -520 + 153 7 1128 -631 -999 -1129 -909 379 -1130 + 154 10 1131 1132 158 -786 1046 -930 141 -89 -1077 103 + 155 15 1133 1134 577 605 -1135 -1136 220 827 951 1137 -974 -623 741 478 758 + 156 10 1138 1139 1129 -816 -633 908 -555 792 1000 897 + 157 16 1140 1141 170 1142 69 1143 369 -629 521 884 539 280 939 -1144 -1053 265 + 158 8 1145 941 687 113 -1146 -1095 769 452 + 159 9 842 157 855 137 -700 -1147 100 -1087 506 + 160 10 1148 124 737 1149 856 728 -1150 1088 757 975 + 161 10 1151 1152 1153 -187 -882 627 1154 365 -455 1144 + 162 9 -1155 -984 828 796 -196 -913 304 -1105 1156 + 163 14 1157 -944 1146 1158 -883 -721 969 1096 -276 -530 453 368 -878 851 + 164 10 -1159 -322 1119 16 656 -223 -546 1160 -298 -895 + 165 7 1161 -880 -183 718 -1153 -1158 450 + 166 20 -286 1125 524 -1162 -536 802 -571 -397 1062 -1052 277 -654 -171 -1163 469 1041 -1064 1110 319 -854 + 167 9 1164 -179 -1122 1165 -1091 73 -352 -1166 1083 + 168 8 -958 323 -1080 -84 900 541 -1075 -297 + 169 9 1167 1168 -493 1169 955 581 -375 -1058 1014 + 170 7 -957 320 -80 390 -1170 -676 -1103 + 171 9 1171 1172 1150 753 -861 973 783 -1089 -508 + 172 7 1173 1174 443 66 -1175 933 1176 + 173 9 1177 -1118 1159 18 -518 -549 -938 226 890 + 174 17 1044 253 1116 -839 -116 -1178 -690 667 990 -641 998 -1179 -564 867 -388 408 770 + 175 14 1180 -924 383 1130 -636 -1181 1001 474 -565 -10 -643 841 949 733 + 176 12 1182 1183 -1169 -181 1166 1092 583 1123 376 -1184 -1059 1032 + 177 9 1185 1186 -1187 995 1115 216 948 840 1136 + 178 11 -250 1114 -947 1187 837 215 638 997 1178 -1188 -1137 + 179 17 915 1147 -1189 161 -807 1104 -871 -858 706 -781 684 -104 94 -1190 -349 -1033 513 + 180 12 1191 1006 126 962 -1149 923 -844 439 857 -1086 -703 727 + 181 10 1065 1124 -282 1020 -799 -985 1102 342 1100 49 + 182 10 1192 445 -243 1175 354 76 547 936 -1193 904 + 183 12 -1018 283 -1070 -822 235 569 -651 1194 1162 681 1108 58 + 184 10 1066 803 1019 -1071 -1055 -671 -332 344 1107 47 + 185 8 1195 1196 1197 870 -1013 1029 105 512 + 186 10 1198 180 -1165 1081 1093 902 -75 1184 -1078 -1030 + 187 9 1199 444 242 -67 1050 -1200 935 -167 -1143 + 188 10 1201 559 864 910 384 1179 -991 1003 -889 773 + 189 12 1202 246 568 1051 236 -356 -652 1200 -1194 -824 169 1163 + 190 10 184 881 719 -464 -260 -1154 -628 273 172 -1142 + 191 11 1203 1204 1205 -1176 1193 905 79 -551 940 -1120 303 + 192 8 -1016 1155 -983 190 423 -914 747 -1206 + 193 7 155 -1132 82 1189 99 -1076 1028 + 194 21 -620 -309 -1156 256 -646 1206 731 -219 833 -670 1188 1135 -606 950 738 755 -477 -203 1097 -919 -428 + 195 12 1207 461 597 -419 -1061 133 977 849 765 1042 1101 -589 + 196 11 1208 921 1069 -635 793 1181 -1007 -1002 -6 614 -715 + 197 21 1170 326 -87 -705 -1209 -1036 -662 -12 398 24 1127 1106 -789 315 -732 -964 -1160 163 918 1190 898 + 198 8 1210 -1197 329 869 804 1011 1057 1027 + 199 13 979 989 967 668 563 306 -1126 -9 642 1209 26 894 734 + 200 10 1034 -928 -784 -1112 -434 1068 608 657 1048 -711 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 570 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 49 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 676 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 732 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 775 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 748 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 974 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 1013 + *edge + 12 + 1 2 4 6 + x0y1 + 6 326 491 1091 1243 1269 1539 + 2 2 6 5 + x0z1 + 5 607 1272 1336 1571 1735 + 3 2 5 1 + x0y0 + 5 925 1023 1335 1583 1997 + 4 2 1 4 + x0z0 + 5 924 1244 1867 1983 2015 + 5 2 2 8 + x1y0 + 4 77 687 1113 2021 + 6 2 8 7 + x1z1 + 6 180 433 1829 2003 2013 2020 + 7 2 7 3 + x1y1 + 4 1121 1832 1885 2017 + 8 2 3 2 + x1z0 + 5 73 1083 1120 1488 1951 + 9 2 5 8 + y0z1 + 5 164 1339 1989 2008 2022 + 10 2 2 1 + y0z0 + 6 79 928 1652 1706 1762 1988 + 11 2 4 3 + y1z0 + 4 1124 1249 1849 2006 + 12 2 7 6 + y1z1 + 4 106 1273 1461 1833 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 32 110 128 182 204 212 257 401 447 485 573 586 593 601 618 624 717 742 759 766 846 885 976 992 1094 1113 1133 1145 1151 1157 1161 1185 1207 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 26 29 70 98 135 177 291 479 497 503 580 708 899 927 952 1009 1023 1045 1074 1084 1111 1131 1167 1182 1195 1198 1203 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 26 30 63 221 292 362 402 448 498 514 552 625 767 814 862 873 888 906 932 1117 1138 1140 1152 1173 1177 1201 1204 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 26 40 129 146 205 328 337 420 486 504 574 587 693 743 746 776 810 817 825 868 953 971 1010 1098 1171 1196 1210 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 32 31 121 378 403 470 480 505 575 630 709 736 790 815 834 863 907 920 946 972 993 1004 1043 1085 1128 1134 1139 1148 1172 1180 1186 1191 1208 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 31 41 64 71 164 178 231 240 258 351 370 442 490 567 588 626 694 760 886 954 1037 1063 1121 1141 1164 1168 1174 1183 1192 1199 1202 1205 +***end diff --git a/doc/tutorials/visualize_tessellation/tmp1.png b/doc/tutorials/visualize_tessellation/tmp1.png new file mode 100644 index 000000000..1fb8d46ce Binary files /dev/null and b/doc/tutorials/visualize_tessellation/tmp1.png differ diff --git a/doc/tutorials/visualize_tessellation/tmp2.png b/doc/tutorials/visualize_tessellation/tmp2.png new file mode 100644 index 000000000..b6b2bd22c Binary files /dev/null and b/doc/tutorials/visualize_tessellation/tmp2.png differ diff --git a/doc/tutorials/visualize_tessellation/view.png b/doc/tutorials/visualize_tessellation/view.png new file mode 100644 index 000000000..b9d94c16d Binary files /dev/null and b/doc/tutorials/visualize_tessellation/view.png differ diff --git a/doc/tutorials/visualize_tessellation/xview.png b/doc/tutorials/visualize_tessellation/xview.png new file mode 100644 index 000000000..2dd0d097a Binary files /dev/null and b/doc/tutorials/visualize_tessellation/xview.png differ diff --git a/doc/tutorials/visualize_tessellation/yview.png b/doc/tutorials/visualize_tessellation/yview.png new file mode 100644 index 000000000..7c61042f8 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/yview.png differ diff --git a/doc/tutorials/visualize_tessellation/zview.png b/doc/tutorials/visualize_tessellation/zview.png new file mode 100644 index 000000000..6f62848c2 Binary files /dev/null and b/doc/tutorials/visualize_tessellation/zview.png differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 54c7f1aef..b7df451f3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,7 +7,7 @@ if(POLICY CMP0077) cmake_policy(SET CMP0077 NEW) endif() -set(NEPER_VERSION \"4.4.2-34\") +set(NEPER_VERSION \"4.5.0\") project(neper) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8.1) diff --git a/src/contrib/bashcomp/neper-completion.bash b/src/contrib/bashcomp/neper-completion.bash index ea5fe60e3..f4a854b8c 100644 --- a/src/contrib/bashcomp/neper-completion.bash +++ b/src/contrib/bashcomp/neper-completion.bash @@ -117,7 +117,7 @@ _neper_completions() { -imagesize -imageantialias -imageformat \ - -sceneshadow -scenebackground \ + -scenebackground \ -loop -endloop \ diff --git a/src/contrib/orilib/ol_cal.h b/src/contrib/orilib/ol_cal.h index 1a37d6827..e152b696f 100644 --- a/src/contrib/orilib/ol_cal.h +++ b/src/contrib/orilib/ol_cal.h @@ -141,7 +141,7 @@ extern void ol_m_refsym_orthotropic (int *, int **, int *); extern void ol_e_ecrysym_orthotropic_rad (double *, char*, double **, int *); extern void ol_e_ecrysym_orthotropic (double *, char*, double **, int *); extern int ol_q_qrefsym_orthotropic (double *, double *); -extern void ol_polef_polecrysym (int *, char*, int **, int *); +extern void ol_polef_polecrysym (int *, char*, int ***, int *); extern void ol_pole_polecrysym (int *, char*, int *); extern int ol_crysym_qty (char*); diff --git a/src/contrib/orilib/ol_cal/ol_sym.c b/src/contrib/orilib/ol_cal/ol_sym.c index 31b5aed7f..e89b384cf 100644 --- a/src/contrib/orilib/ol_cal/ol_sym.c +++ b/src/contrib/orilib/ol_cal/ol_sym.c @@ -1374,8 +1374,7 @@ ol_pole_crysym (int *pole1, char *crysym, int nb, int *pole2) {2, 0, 1, 5, 3, 4}, {1, 2, 0, 4, 5, 3} }; - int signcubic[25][6] = { - {0, 0, 0, 0, 0, 0}, + int signcubic[24][6] = { {1, 1, 1, 1, 1, 1}, {1, 1, -1, 1, 1, -1}, {1, -1, -1, 1, -1, -1}, @@ -1415,20 +1414,20 @@ ol_pole_crysym (int *pole1, char *crysym, int nb, int *pole2) void ol_pole_polecrysym (int *pole, char *crysym, int *pole2) { - int tmp; + int poleqty; int qty = ol_crysym_qty (crysym); - int **polelist = ut_alloc_2d_int (qty, 3); + int **poles = NULL; - ol_polef_polecrysym (pole, crysym, polelist, &tmp); - ol_pole_memcpy (polelist[0], pole2); + ol_polef_polecrysym (pole, crysym, &poles, &poleqty); + ol_pole_memcpy (poles[0], pole2); - ut_free_2d_int (&polelist, qty); + ut_free_2d_int (&poles, qty); return; } void -ol_polef_polecrysym (int *polef, char *crysym, int **pole, int *pqty) +ol_polef_polecrysym (int *polef, char *crysym, int ***ppoles, int *ppoleqty) { int *tmp = ol_pole_alloc (); int i, j; @@ -1436,65 +1435,73 @@ ol_polef_polecrysym (int *polef, char *crysym, int **pole, int *pqty) int *sort; int *perm; int qty = ol_crysym_qty (crysym); + int **poles = ut_alloc_2d_int (100, 3); - (*pqty) = 0; + (*ppoleqty) = 0; for (i = 1; i <= qty; i++) { ol_pole_crysym (polef, crysym, i, tmp); record = 1; - for (j = 0; j < *pqty; j++) /* is it already in pole? */ - if ((tmp[0] == pole[j][0] - && tmp[1] == pole[j][1] - && tmp[2] == pole[j][2]) - || (tmp[0] == -pole[j][0] - && tmp[1] == -pole[j][1] && tmp[2] == -pole[j][2])) + for (j = 0; j < *ppoleqty; j++) /* is it already in pole? */ + if ((tmp[0] == poles[j][0] + && tmp[1] == poles[j][1] + && tmp[2] == poles[j][2]) + || (tmp[0] == -poles[j][0] + && tmp[1] == -poles[j][1] && tmp[2] == -poles[j][2])) { record = 0; break; } if (record) - ol_pole_memcpy (tmp, pole[(*pqty)++]); + ol_pole_memcpy (tmp, poles[(*ppoleqty)++]); } /* ordering: positive first */ - for (i = 0; i < *pqty; i++) + for (i = 0; i < *ppoleqty; i++) { qty1 = 0; qty2 = 0; for (j = 0; j < 3; j++) - tmp[j] = -pole[i][j]; + tmp[j] = -poles[i][j]; for (j = 0; j < 3; j++) { - if (pole[i][j] < 0) + if (poles[i][j] < 0) qty1++; if (tmp[j] < 0) qty2++; } if (qty2 < qty1) - ol_pole_memcpy (tmp, pole[i]); + ol_pole_memcpy (tmp, poles[i]); } - sort = ut_alloc_1d_int (*pqty); - for (i = 0; i < *pqty; i++) + sort = ut_alloc_1d_int (*ppoleqty); + for (i = 0; i < *ppoleqty; i++) { sort[i] = - 100 * abs (pole[i][0]) + 10 * abs (pole[i][1]) + abs (pole[i][2]); + 100 * abs (poles[i][0]) + 10 * abs (poles[i][1]) + abs (poles[i][2]); for (j = 0; j < 3; j++) - if (pole[i][j] < 0) + if (poles[i][j] < 0) sort[i] -= 1000; } - perm = ut_alloc_1d_int (*pqty); - ut_array_1d_int_sort_des_index (sort, *pqty, perm); - ut_array_2d_int_permute (pole, *pqty, 3, perm); + perm = ut_alloc_1d_int (*ppoleqty); + ut_array_1d_int_sort_des_index (sort, *ppoleqty, perm); + ut_array_2d_int_permute (poles, *ppoleqty, 3, perm); + + if (ppoles) + { + *ppoles = ut_alloc_2d_int (*ppoleqty, 3); + ut_array_2d_int_memcpy (poles, *ppoleqty, 3, *ppoles); + } ol_pole_free (tmp); ut_free_1d_int (&sort); ut_free_1d_int (&perm); + ut_free_2d_int (&poles, *ppoleqty); return; } diff --git a/src/contrib/orilib/ol_set/ol_set_alloc.c b/src/contrib/orilib/ol_set/ol_set_alloc.c index ae53c1ccf..09a41234b 100644 --- a/src/contrib/orilib/ol_set/ol_set_alloc.c +++ b/src/contrib/orilib/ol_set/ol_set_alloc.c @@ -44,6 +44,7 @@ ol_set_free (struct OL_SET Set) return; } +// REVISE to use net_ori_file int ol_set_fscanf (FILE * file, struct OL_SET *pSet, char *format) { @@ -73,7 +74,7 @@ ol_set_fscanf (FILE * file, struct OL_SET *pSet, char *format) else if (firstline_nbw == 3) { (*pSet).size = whole_nbw / 3; - strcpy (format2, "e"); + strcpy (format2, "rodrigues"); } else if (firstline_nbw == 4) { diff --git a/src/contrib/ut/src/ut_array/ut_array.c b/src/contrib/ut/src/ut_array/ut_array.c index f3a8bfb34..264672275 100644 --- a/src/contrib/ut/src/ut_array/ut_array.c +++ b/src/contrib/ut/src/ut_array/ut_array.c @@ -1724,18 +1724,28 @@ ut_array_3d_uchar_max (unsigned char ***array, int size1, int size2, } double -ut_array_2d_mean (double **array, int size1, int size2) +ut_array_2d_sum (double **array, int size1, int size2) { int i, j; - double mean; + double sum; if (size1 <= 0 || size2 <= 0) abort (); - mean = 0; + sum = 0; for (i = 0; i < size1; i++) for (j = 0; j < size2; j++) - mean += array[i][j]; + sum += array[i][j]; + + return sum; +} + +double +ut_array_2d_mean (double **array, int size1, int size2) +{ + double mean; + + mean = ut_array_2d_sum (array, size1, size2); mean /= (size1 * size2); return mean; diff --git a/src/contrib/ut/src/ut_array/ut_array.h b/src/contrib/ut/src/ut_array/ut_array.h index 09ff0fe74..b8013dcaf 100644 --- a/src/contrib/ut/src/ut_array/ut_array.h +++ b/src/contrib/ut/src/ut_array/ut_array.h @@ -429,6 +429,13 @@ extern "C" /// \remark Failure if \c size <= 0 extern double ut_array_1d_mean (double *array, int size); +/// \brief Get the sum of a 2D array of \c double +/// \param array: array +/// \param size1: 1st-index size of the array +/// \param size2: 2nd-index size of the array +/// \return mean + extern double ut_array_2d_sum (double **array, int size1, int size2); + /// \brief Get the mean of a 2D array of \c double /// \param array: array /// \param size1: 1st-index size of the array diff --git a/src/contrib/ut/src/ut_color/ut_color.c b/src/contrib/ut/src/ut_color/ut_color.c index 6f1f1a51a..47ebf4bd2 100644 --- a/src/contrib/ut/src/ut_color/ut_color.c +++ b/src/contrib/ut/src/ut_color/ut_color.c @@ -377,21 +377,28 @@ ut_color_changeintensity (int *rgb, double intensity, int *rgb2) int -ut_color_bar_val_color (char *bar, double beg, double end, double val, +ut_color_bar_val_color (char *scheme, double beg, double end, double val, int *col) { int i, pos; double pos2; - char **color = NULL; + char **cols = NULL; int colqty; double *vals = NULL; int *col0 = ut_alloc_1d_int (3); int *col1 = ut_alloc_1d_int (3); int status = 0; - if (ut_string_strcmp (bar, "legacy")) - ut_list_break (bar, ",", &color, &colqty); + char *fct = NULL; + + if (ut_string_strcmp (scheme, "legacy")) + { + ut_string_function (scheme, &fct, NULL, &cols, &colqty); + if (strcmp (fct, "custom")) + ut_print_exprbug (scheme); + } else - ut_list_break ("blue,cyan,yellow,red", ",", &color, &colqty); + ut_string_function ("custom(blue,cyan,yellow,red)", &fct, NULL, &cols, &colqty); + vals = ut_alloc_1d (colqty); for (i = 0; i < colqty; i++) vals[i] = beg + (end - beg) * i / (colqty - 1); @@ -402,24 +409,24 @@ ut_color_bar_val_color (char *bar, double beg, double end, double val, if (beg < end) { if (val < vals[0]) - ut_color_name_rgb (color[0], col); + ut_color_name_rgb (cols[0], col); else - ut_color_name_rgb (color[colqty - 1], col); + ut_color_name_rgb (cols[colqty - 1], col); } else { if (val < vals[0]) - ut_color_name_rgb (color[colqty - 1], col); + ut_color_name_rgb (cols[colqty - 1], col); else - ut_color_name_rgb (color[0], col); + ut_color_name_rgb (cols[0], col); } } else { if (pos < colqty - 1) { - ut_color_name_rgb (color[pos], col0); - ut_color_name_rgb (color[pos + 1], col1); + ut_color_name_rgb (cols[pos], col0); + ut_color_name_rgb (cols[pos + 1], col1); if (vals[pos + 1] - vals[pos] != 0) pos2 = (val - vals[pos]) / (vals[pos + 1] - vals[pos]); else @@ -428,13 +435,15 @@ ut_color_bar_val_color (char *bar, double beg, double end, double val, col[i] = ut_num_d2ri (col0[i] + pos2 * (col1[i] - col0[i])); } else - ut_color_name_rgb (color[pos], col); + ut_color_name_rgb (cols[pos], col); } ut_free_1d_int (&col0); ut_free_1d_int (&col1); - ut_free_2d_char (&color, colqty); + ut_free_2d_char (&cols, colqty); ut_free_1d (&vals); + ut_free_1d_char (&fct); + return status; } diff --git a/src/contrib/ut/src/ut_file/ut_file.c b/src/contrib/ut/src/ut_file/ut_file.c index 4371130a1..00d001e59 100644 --- a/src/contrib/ut/src/ut_file/ut_file.c +++ b/src/contrib/ut/src/ut_file/ut_file.c @@ -5,6 +5,7 @@ #include<stdlib.h> #include<string.h> #include<stdarg.h> +#include<limits.h> #include"ut.h" int @@ -1054,3 +1055,27 @@ ut_file_scan_file (FILE *file, char *dirname, FILE **pfile, char **pfilename) return; } + +void +ut_file_dir_basename_extension_filename (char *dir, char *basename, + char *extension, char **pfilename) +{ + char *tmp = NULL; + char *filename = ut_alloc_1d_char (strlen (dir) + strlen (basename) + + strlen (extension) + 10); + + tmp = ut_string_addextension (basename, extension); + filename = ut_string_paste3 (dir, "/", tmp); + + while (!strncmp (filename, "./", 2)) + ut_string_fnrs (filename, "./", "", 1); + + ut_string_fnrs (filename, "//", "/", INT_MAX); + + ut_string_string (filename, pfilename); + + ut_free_1d_char (&filename); + ut_free_1d_char (&tmp); + + return; +} diff --git a/src/contrib/ut/src/ut_file/ut_file.h b/src/contrib/ut/src/ut_file/ut_file.h index 1998e44e2..6de1ba07d 100644 --- a/src/contrib/ut/src/ut_file/ut_file.h +++ b/src/contrib/ut/src/ut_file/ut_file.h @@ -267,6 +267,9 @@ extern "C" /// \param pfile: new file pointer extern void ut_file_scan_file (FILE *file, char *dirname, FILE **pfile, char **pfilename); +extern void ut_file_dir_basename_extension_filename (char *dir, char *basename, + char *extension, char **pfilename); + #endif /* UT_FILE_H */ #ifdef __cplusplus diff --git a/src/contrib/ut/src/ut_string/ut_string.c b/src/contrib/ut/src/ut_string/ut_string.c index f66dca3b8..43f08aee9 100644 --- a/src/contrib/ut/src/ut_string/ut_string.c +++ b/src/contrib/ut/src/ut_string/ut_string.c @@ -347,14 +347,15 @@ ut_string_function (char *string, char **pfct, char ***pvars, char ***pvals, if (!string) { if (pqty) - (*pqty) = 0; + *pqty = 0; return; } if (!strstr (string, "(")) { ut_string_string (string, pfct); - *pqty = 0; + if (pqty) + *pqty = 0; return; } diff --git a/src/neper_m/nem_meshing/nem_meshing_0d/nem_meshing_0d1.c b/src/neper_m/nem_meshing/nem_meshing_0d/nem_meshing_0d1.c index ef300f40c..394762969 100644 --- a/src/neper_m/nem_meshing/nem_meshing_0d/nem_meshing_0d1.c +++ b/src/neper_m/nem_meshing/nem_meshing_0d/nem_meshing_0d1.c @@ -20,7 +20,7 @@ nem_meshing_0d (struct TESS Tess, struct MESHPARA MeshPara, Mesh[0] = neut_mesh_alloc (0, "tri", 1, 0, 0); - ut_print_message (0, 2, "0d meshing... "); + ut_print_message (0, 2, "0D meshing... "); if (MeshPara.dim >= 0) { diff --git a/src/neper_m/nem_meshing/nem_meshing_1d/nem_meshing_1d1.c b/src/neper_m/nem_meshing/nem_meshing_1d/nem_meshing_1d1.c index 1c1532753..7471003d6 100644 --- a/src/neper_m/nem_meshing/nem_meshing_1d/nem_meshing_1d1.c +++ b/src/neper_m/nem_meshing/nem_meshing_1d/nem_meshing_1d1.c @@ -34,7 +34,7 @@ nem_meshing_1d (struct MESHPARA *pMeshPara, struct TESS Tess, Mesh[1] = neut_mesh_alloc (1, "tri", 1, 0, 0); - ut_print_message (0, 2, "1d meshing... "); + ut_print_message (0, 2, "1D meshing... "); ut_print_progress (stdout, 0, Tess.EdgeQty, "%3.0f%%", message); diff --git a/src/neper_m/nem_meshing/nem_meshing_2d/nem_meshing_2d1.c b/src/neper_m/nem_meshing/nem_meshing_2d/nem_meshing_2d1.c index f88423e5d..772163e27 100644 --- a/src/neper_m/nem_meshing/nem_meshing_2d/nem_meshing_2d1.c +++ b/src/neper_m/nem_meshing/nem_meshing_2d/nem_meshing_2d1.c @@ -29,7 +29,7 @@ nem_meshing_2d (struct IN_M In, struct MESHPARA MeshPara, struct TESS Tess, for (i = 1; i <= Tess.FaceQty; i++) neut_mesh_set_zero (M + i); - ut_print_message (0, 2, "2d meshing... "); + ut_print_message (0, 2, "2D meshing... "); neut_multim_set_zero (&Multim); neut_multim_init (2, In.mesh2dalgo, Tess.FaceQty, &Multim); diff --git a/src/neper_m/nem_meshing/nem_meshing_3d/nem_meshing_3d1.c b/src/neper_m/nem_meshing/nem_meshing_3d/nem_meshing_3d1.c index 0f23bbfc3..e242d5e90 100644 --- a/src/neper_m/nem_meshing/nem_meshing_3d/nem_meshing_3d1.c +++ b/src/neper_m/nem_meshing/nem_meshing_3d/nem_meshing_3d1.c @@ -23,7 +23,7 @@ nem_meshing_3d (struct IN_M In, struct MESHPARA MeshPara, struct TESS Tess, for (i = 1; i <= Tess.PolyQty; i++) neut_mesh_set_zero (M + i); - ut_print_message (0, 2, "3d meshing... "); + ut_print_message (0, 2, "3D meshing... "); // this is the default case, input is 3d if (Tess.Dim == 3) diff --git a/src/neper_m/nem_stat/nem_stat2.c b/src/neper_m/nem_stat/nem_stat2.c index 164a2d6e1..79caef172 100644 --- a/src/neper_m/nem_stat/nem_stat2.c +++ b/src/neper_m/nem_stat/nem_stat2.c @@ -185,12 +185,12 @@ nem_stat_point (FILE * file, char *format, struct NODES Nodes, || ut_list_testelt (format, NEUT_SEP_NODEP, "2dmeshn")) { meshx_init = 1; - meshp = ut_alloc_2d (Point.PointQty + 1, 3); - meshd = ut_alloc_1d (Point.PointQty + 1); - meshv = ut_alloc_2d (Point.PointQty + 1, 3); - meshn = ut_alloc_2d (Point.PointQty + 1, 3); + meshp = ut_alloc_2d (Point.Qty + 1, 3); + meshd = ut_alloc_1d (Point.Qty + 1); + meshv = ut_alloc_2d (Point.Qty + 1, 3); + meshn = ut_alloc_2d (Point.Qty + 1, 3); neut_mesh_points_mesh2ddist (Tess, Nodes, Mesh[2], Mesh[3], - Point.PointCoo + 1, Point.PointQty, + Point.Coo + 1, Point.Qty, meshp + 1, meshd + 1, meshv + 1, meshn + 1); } @@ -198,7 +198,7 @@ nem_stat_point (FILE * file, char *format, struct NODES Nodes, ut_list_break (format, NEUT_SEP_NODEP, &invar, &invalqty); - for (i = 1; i <= Point.PointQty; i++) + for (i = 1; i <= Point.Qty; i++) for (j = 0; j < invalqty; j++) { status = @@ -233,9 +233,9 @@ nem_stat_point (FILE * file, char *format, struct NODES Nodes, if (meshx_init) { ut_free_1d (&meshd); - ut_free_2d (&meshp, Point.PointQty + 1); - ut_free_2d (&meshv, Point.PointQty + 1); - ut_free_2d (&meshn, Point.PointQty + 1); + ut_free_2d (&meshp, Point.Qty + 1); + ut_free_2d (&meshv, Point.Qty + 1); + ut_free_2d (&meshn, Point.Qty + 1); } return; diff --git a/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity2.c b/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity2.c index d6ead0725..a0d02410b 100644 --- a/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity2.c +++ b/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity2.c @@ -101,19 +101,20 @@ nes_pproc_entity_file (struct SIM *pSim, char *entity, char *dir, char *res, cha { int step; char *simfile = ut_alloc_1d_char (1000); + char *stepsimfile = ut_alloc_1d_char (1000); char *filename = ut_alloc_1d_char (1000); char *prev = ut_alloc_1d_char (1000); ut_print_progress (stdout, 0, (*pSim).StepQty + 1, "%3.0f%%", prev); - expr[strlen (expr) - 1] = '\0'; + ut_string_string (expr + 5, &simfile); + simfile[strlen (simfile) - 1] = '\0'; for (step = 0; step <= (*pSim).StepQty; step++) { - sprintf (simfile, "%s.step%d)", expr, step); + sprintf (stepsimfile, "%s.step%d", simfile, step); sprintf (filename, "%s/%s/%s.step%d", dir, res, res, step); - - ut_file_cp (simfile, filename); + ut_file_cp (ut_file_exist (stepsimfile) ? stepsimfile : simfile, filename); ut_print_progress (stdout, step + 1, (*pSim).StepQty + 1, "%3.0f%%", prev); } @@ -122,6 +123,7 @@ nes_pproc_entity_file (struct SIM *pSim, char *entity, char *dir, char *res, cha neut_sim_fprintf ((*pSim).simdir, *pSim, "W"); ut_free_1d_char (&simfile); + ut_free_1d_char (&stepsimfile); ut_free_1d_char (&filename); ut_free_1d_char (&prev); diff --git a/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity_builtin/nes_pproc_entity_builtin3.c b/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity_builtin/nes_pproc_entity_builtin3.c index a8175cf57..3a0fd8878 100644 --- a/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity_builtin/nes_pproc_entity_builtin3.c +++ b/src/neper_s/nes_pproc/nes_pproc_entity/nes_pproc_entity_builtin/nes_pproc_entity_builtin3.c @@ -370,16 +370,17 @@ nes_pproc_entity_builtin_elsets_odf (struct SIM *pSim, struct TESS Tess, int user_sigma = 0; for (i = 0; i < size; i++) { - if (!strcmp (vars[i], "sigma")) + if (!strcmp (vars[i], "theta")) { - sscanf (vals[i], "%lf", &Odf.sigma); + Odf.sigma = atof (vals[i]); + Odf.sigma *= M_PI / 180; user_sigma = 1; } } if (!user_sigma) neut_odf_sigma ("avthetaeq", &OSet, &Odf); - printf ("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b (sigma = %8.6f) ", Odf.sigma); + printf ("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b (theta = %8.6f°) ", Odf.sigma * 180 / M_PI); ut_print_progress (stdout, 0, (*pSim).StepQty + 1, "%3.0f%%", prev); diff --git a/src/neper_t/net_ori/net_ori1.c b/src/neper_t/net_ori/net_ori1.c index f0f2fe37d..20206ef3b 100644 --- a/src/neper_t/net_ori/net_ori1.c +++ b/src/neper_t/net_ori/net_ori1.c @@ -60,7 +60,11 @@ net_ori (struct IN_T In, int level, struct MTESS MTess, struct TESS *Tess, OSets + i, verbositylevel); else if (!strncmp (ori, "file(", 5)) + { + ol_set_free (OSets[i]); net_ori_file (ori, OSets + i); + ut_string_string (oricrysym, &(OSets[i].crysym)); + } else net_ori_label (parts[i], SSet, dtess, dcell, OSets + i); diff --git a/src/neper_t/net_ori/net_ori2.c b/src/neper_t/net_ori/net_ori2.c index 83675f069..41d46b557 100644 --- a/src/neper_t/net_ori/net_ori2.c +++ b/src/neper_t/net_ori/net_ori2.c @@ -130,7 +130,7 @@ net_ori_label (char *label, struct SEEDSET *SSet, int dtess, int dcell, struct O } void -net_ori_file (char *filename, struct OL_SET *pOSet) +net_ori_file (char *filename_in, struct OL_SET *pOSet) { unsigned int i; char *des = NULL, *conv = NULL, *tmp = NULL; @@ -138,12 +138,20 @@ net_ori_file (char *filename, struct OL_SET *pOSet) double **g = ol_g_alloc (); FILE *fp = NULL; char *fct = NULL; - int varqty; + int varqty = 0; char **vars = NULL; char **vals = NULL; + char *filename = NULL; - ut_string_function (filename, &fct, &vars, &vals, &varqty); + if (!strncmp (filename_in, "file(", 5)) + { + ut_string_function (filename_in, &fct, &vars, &vals, &varqty); + ut_string_string (vals[0], &filename); + } + else + ut_string_string (filename_in, &filename); + ut_string_string ("rodrigues", &des); ut_string_string ("active", &conv); if (varqty == 1) @@ -160,7 +168,9 @@ net_ori_file (char *filename, struct OL_SET *pOSet) abort (); } - fp = ut_file_open (vals[0], "r"); + (*pOSet) = ol_set_alloc (ut_file_nbwords (filename) / ol_des_size (des), NULL); + + fp = ut_file_open (filename, "r"); for (i = 0; i < (*pOSet).size; i++) { @@ -218,6 +228,7 @@ net_ori_file (char *filename, struct OL_SET *pOSet) ol_g_free (g); ut_free_2d_char (&vars, varqty); ut_free_2d_char (&vals, varqty); + ut_free_1d_char (&filename); return; } diff --git a/src/neper_t/net_stat/net_stat2.c b/src/neper_t/net_stat/net_stat2.c index 00fd99ea9..4ece4df3b 100644 --- a/src/neper_t/net_stat/net_stat2.c +++ b/src/neper_t/net_stat/net_stat2.c @@ -65,7 +65,7 @@ net_stat_point (FILE * file, char *format, struct POINT Point, ut_list_break (format, NEUT_SEP_NODEP, &invar, &invalqty); - for (i = 1; i <= Point.PointQty; i++) + for (i = 1; i <= Point.Qty; i++) for (j = 0; j < invalqty; j++) { status = diff --git a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo1.c b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo1.c index 455ba0d32..166c6f2a6 100644 --- a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo1.c +++ b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo1.c @@ -57,16 +57,6 @@ net_tess_opt_init_sset_coo (struct MTESS MTess, struct TESS *Tess, int dtess, int *id = ut_alloc_1d_int ((*pTOpt).CellQty + 1); int multiseed = (ut_array_1d_int_max (qty + 1, (*pTOpt).CellQty) > 1); - Point.Periodic = ut_alloc_1d_int (3); - if ((*pTOpt).SSet.Periodic) - ut_array_1d_int_memcpy ((*pTOpt).SSet.Periodic, 3, Point.Periodic); - if ((*pTOpt).activedim) - { - Point.activedim = ut_alloc_1d_int (3); - ut_array_1d_int_memcpy ((*pTOpt).activedim, 3, Point.activedim); - } - Point.BBox = ut_alloc_2d (3, 2); - ut_array_2d_memcpy ((*pTOpt).SSet.Size, 3, 2, Point.BBox); Point.Dim = (*pTOpt).SSet.Dim; gsl_rng *r = gsl_rng_alloc (gsl_rng_ranlxd2); diff --git a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo2.c b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo2.c index 303ab93a0..79f888a5a 100644 --- a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo2.c +++ b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo2.c @@ -11,11 +11,6 @@ net_tess_opt_init_sset_coo_cluster (int dim, int *activedim, gsl_rng * r2, { neut_point_set_zero (pPoint); (*pPoint).Dim = dim; - if (activedim) - { - (*pPoint).activedim = ut_alloc_1d_int (3); - ut_array_1d_int_memcpy (activedim, 3, (*pPoint).activedim); - } if (qty == 1) neut_point_addpoint (pPoint, NULL, rad); @@ -65,13 +60,13 @@ net_tess_opt_init_sset_coo_centre (struct TOPT *pTOpt, gsl_rng * r, char *var, do { iter++; - if (Point2.PointQty == 1 && Point2.PointRad[1] == 0) + if (Point2.Qty == 1 && Point2.Rad[1] == 0) status = net_tess_opt_init_sset_coo_centre_randpt (pTOpt, Point, r, 0, 0, coo[iter], dist + iter); else status = - net_tess_opt_init_sset_coo_centre_randpt_cluster ((*pTOpt).DomPoly, + net_tess_opt_init_sset_coo_centre_randpt_cluster (pTOpt, Point, r, Point2, 0, coo[iter], dist + iter); @@ -109,7 +104,7 @@ net_tess_opt_init_sset_coo_centre (struct TOPT *pTOpt, gsl_rng * r, char *var, ut_array_1d_memcpy ((*pTOpt).tarcellval[pos][cell], (*pTOpt).Dim, centre); else - net_tess_opt_init_sset_coo_centre_randpt_pick (Point, r, centre); + net_tess_opt_init_sset_coo_centre_randpt_pick (pTOpt, Point, (*pTOpt).activedim, r, centre); } else abort (); @@ -140,12 +135,12 @@ net_tess_opt_init_sset_coo_record (struct TOPT *pTOpt, int cell, int i; neut_point_shift (pPoint2, centre); - for (i = 1; i <= (*pPoint2).PointQty; i++) + for (i = 1; i <= (*pPoint2).Qty; i++) { - neut_point_addpoint (pPoint, (*pPoint2).PointCoo[i], - (*pPoint2).PointRad[i]); - neut_topt_seed_subcell_add (pTOpt, (*pPoint2).PointCoo[i], - (*pPoint2).PointRad[i], cell); + neut_point_addpoint (pPoint, (*pPoint2).Coo[i], + (*pPoint2).Rad[i]); + neut_topt_seed_subcell_add (pTOpt, (*pPoint2).Coo[i], + (*pPoint2).Rad[i], cell); } return; diff --git a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo3.c b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo3.c index eb186fd2c..65835439d 100644 --- a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo3.c +++ b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo3.c @@ -12,11 +12,11 @@ net_tess_opt_init_sset_coo_centre_randpt (struct TOPT *pTOpt, { int status = 0; - net_tess_opt_init_sset_coo_centre_randpt_pick (Point, r, coo); + net_tess_opt_init_sset_coo_centre_randpt_pick (pTOpt, Point, (*pTOpt).activedim, r, coo); if (!(*pTOpt).DomType || strcmp ((*pTOpt).DomType, "cube")) status = - net_tess_opt_init_sset_coo_centre_randpt_test ((*pTOpt).DomPoly, Point, + net_tess_opt_init_sset_coo_centre_randpt_test (pTOpt, Point, rad, penetration, coo, pdist); @@ -24,7 +24,7 @@ net_tess_opt_init_sset_coo_centre_randpt (struct TOPT *pTOpt, } int -net_tess_opt_init_sset_coo_centre_randpt_cluster (struct POLY DomPoly, +net_tess_opt_init_sset_coo_centre_randpt_cluster (struct TOPT *pTOpt, struct POINT Point, gsl_rng * r, struct POINT Point2, @@ -33,21 +33,21 @@ net_tess_opt_init_sset_coo_centre_randpt_cluster (struct POLY DomPoly, { int i, status = 0; double rad2, *coo2 = ut_alloc_1d (3); - double *val = ut_alloc_1d (Point2.PointQty + 1); + double *val = ut_alloc_1d (Point2.Qty + 1); - net_tess_opt_init_sset_coo_centre_randpt_pick (Point, r, coo); + net_tess_opt_init_sset_coo_centre_randpt_pick (pTOpt, Point, (*pTOpt).activedim, r, coo); - for (i = 1; i <= Point2.PointQty; i++) + for (i = 1; i <= Point2.Qty; i++) { - ut_array_1d_add (coo, Point2.PointCoo[i], 3, coo2); - rad2 = Point2.PointRad[i]; + ut_array_1d_add (coo, Point2.Coo[i], 3, coo2); + rad2 = Point2.Rad[i]; status = - net_tess_opt_init_sset_coo_centre_randpt_test (DomPoly, Point, rad2, + net_tess_opt_init_sset_coo_centre_randpt_test (pTOpt, Point, rad2, penetration, coo2, val + i); } - (*pdist) = ut_array_1d_sum (val + 1, Point2.PointQty); + (*pdist) = ut_array_1d_sum (val + 1, Point2.Qty); ut_free_1d (&val); ut_free_1d (&coo2); @@ -56,8 +56,8 @@ net_tess_opt_init_sset_coo_centre_randpt_cluster (struct POLY DomPoly, } int -net_tess_opt_init_sset_coo_centre_randpt_pick (struct POINT Point, - gsl_rng * r, double *coo) +net_tess_opt_init_sset_coo_centre_randpt_pick (struct TOPT *pTOpt, struct POINT Point, + int *activedim, gsl_rng * r, double *coo) { int i; @@ -65,22 +65,22 @@ net_tess_opt_init_sset_coo_centre_randpt_pick (struct POINT Point, // centre for all dimensions. for (i = 0; i < 3; i++) coo[i] = - Point.BBox[i][0] + gsl_rng_uniform (r) * (Point.BBox[i][1] - - Point.BBox[i][0]); + (*pTOpt).SSet.Size[i][0] + gsl_rng_uniform (r) * ((*pTOpt).SSet.Size[i][1] - + (*pTOpt).SSet.Size[i][0]); for (i = Point.Dim; i < 3; i++) - coo[i] = ut_array_1d_mean (Point.BBox[i], 2); + coo[i] = ut_array_1d_mean ((*pTOpt).SSet.Size[i], 2); - if (Point.activedim) + if (activedim) for (i = 0; i < Point.Dim; i++) - if (!Point.activedim[i]) - coo[i] = ut_array_1d_mean (Point.BBox[i], 2); + if (!activedim[i]) + coo[i] = ut_array_1d_mean ((*pTOpt).SSet.Size[i], 2); return 0; } int -net_tess_opt_init_sset_coo_centre_randpt_test (struct POLY DomPoly, +net_tess_opt_init_sset_coo_centre_randpt_test (struct TOPT *pTOpt, struct POINT Point, double rad, double penetration, double *coo, double *pdist) @@ -90,27 +90,27 @@ net_tess_opt_init_sset_coo_centre_randpt_test (struct POLY DomPoly, double *ptcoo = ut_alloc_1d (3); status = 0; - if (DomPoly.FaceQty > 0 && neut_poly_point_in (DomPoly, coo) == 0) + if ((*pTOpt).DomPoly.FaceQty > 0 && neut_poly_point_in ((*pTOpt).DomPoly, coo) == 0) status = -2; else if (pdist) { (*pdist) = 0; - for (i = 1; i <= Point.PointQty; i++) - for (l = -Point.Periodic[0]; l <= Point.Periodic[0]; l++) + for (i = 1; i <= Point.Qty; i++) + for (l = -(*pTOpt).SSet.Periodic[0]; l <= (*pTOpt).SSet.Periodic[0]; l++) { ptcoo[0] = - Point.PointCoo[i][0] + l * (Point.BBox[0][1] - Point.BBox[0][0]); - for (m = -Point.Periodic[1]; m <= Point.Periodic[1]; m++) + Point.Coo[i][0] + l * ((*pTOpt).SSet.Size[0][1] - (*pTOpt).SSet.Size[0][0]); + for (m = -(*pTOpt).SSet.Periodic[1]; m <= (*pTOpt).SSet.Periodic[1]; m++) { ptcoo[1] = - Point.PointCoo[i][1] + m * (Point.BBox[1][1] - Point.BBox[1][0]); - for (n = -Point.Periodic[2]; n <= Point.Periodic[2]; n++) + Point.Coo[i][1] + m * ((*pTOpt).SSet.Size[1][1] - (*pTOpt).SSet.Size[1][0]); + for (n = -(*pTOpt).SSet.Periodic[2]; n <= (*pTOpt).SSet.Periodic[2]; n++) { ptcoo[2] = - Point.PointCoo[i][2] + n * (Point.BBox[2][1] - - Point.BBox[2][0]); - dist = ut_space_dist (ptcoo, coo) - Point.PointRad[i] - rad; + Point.Coo[i][2] + n * ((*pTOpt).SSet.Size[2][1] - + (*pTOpt).SSet.Size[2][0]); + dist = ut_space_dist (ptcoo, coo) - Point.Rad[i] - rad; (*pdist) = ut_num_min (dist, (*pdist)); } } diff --git a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo_.h b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo_.h index 774059ed8..e805cf5f7 100644 --- a/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo_.h +++ b/src/neper_t/net_tess/net_tess_opt/net_tess_opt_init/net_tess_opt_init_sset/net_tess_opt_init_sset_coo/net_tess_opt_init_sset_coo_.h @@ -38,11 +38,11 @@ extern int net_tess_opt_init_sset_coo_centre_randpt (struct TOPT *pTOpt, struct Point, gsl_rng *r, double rad, double penetration, double *coo, double *pdist); -extern int net_tess_opt_init_sset_coo_centre_randpt_pick (struct POINT - Point, gsl_rng *r, double *coo); -extern int net_tess_opt_init_sset_coo_centre_randpt_test (struct POLY DomPoly, struct POINT +extern int net_tess_opt_init_sset_coo_centre_randpt_pick (struct TOPT *pTOpt, struct POINT + Point, int *activedim, gsl_rng *r, double *coo); +extern int net_tess_opt_init_sset_coo_centre_randpt_test (struct TOPT *pTOpt, struct POINT Point, double rad, double penetration, double *coo, double *pdist); -extern int net_tess_opt_init_sset_coo_centre_randpt_cluster (struct POLY DomPoly, struct - POINT Point, gsl_rng *r, struct POINT Point2, double penetration, - double *coo, double *pdist); +extern int net_tess_opt_init_sset_coo_centre_randpt_cluster (struct TOPT + *pTOpt, struct POINT Point, gsl_rng *r, struct POINT + Point2, double penetration, double *coo, double *pdist); diff --git a/src/neper_v/CMakeLists.txt b/src/neper_v/CMakeLists.txt index 57fa5d8e2..016b5f8c7 100644 --- a/src/neper_v/CMakeLists.txt +++ b/src/neper_v/CMakeLists.txt @@ -35,6 +35,7 @@ add_library(neper_v ./neper_v.c ./nev_sim/nev_sim1.c ./nev_space/nev_space1.c +./nev_pf/nev_pf1.c ./nev_outdir/nev_outdir1.c ./nev_load/nev_load1.c ./nev_load/nev_load2.c @@ -50,12 +51,15 @@ add_library(neper_v ./nev_data/nev_data_points/nev_data_points1.c ./nev_data/nev_data_csys/nev_data_csys1.c ./nev_camera/nev_camera1.c +./nev_light/nev_light1.c ./nev_povray/nev_povray1.c +./nev_asymptote/nev_asymptote1.c ./nev_print/nev_print1.c ./nev_print/nev_print_init/nev_print_init1.c ./nev_print/nev_print_init/nev_print_init2.c ./nev_print/nev_print_init/nev_print_init3.c ./nev_print/nev_print_init/nev_print_init4.c +./nev_print/nev_print_utils/nev_print_utils1.c ./nev_print/nev_print_png/nev_print_png1.c ./nev_print/nev_print_png/nev_print_png2.c ./nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils1.c @@ -76,8 +80,17 @@ add_library(neper_v ./nev_print/nev_print_png/nev_print_png_tess/nev_print_png_tess1.c ./nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr1.c ./nev_print/nev_print_png/nev_print_png_point/nev_print_png_point1.c +./nev_print/nev_print_scale/nev_print_scale1.c +./nev_print/nev_print_scale/nev_print_scale2.c ./nev_print/nev_print_vtk/nev_print_vtk1.c ./nev_print/nev_print_vtk/nev_print_vtk2.c +./nev_print/nev_print_tree/nev_print_tree1.c +./nev_print/nev_print_pf/nev_print_pf1.c +./nev_print/nev_print_pf/nev_print_pf2.c +./nev_print/nev_print_pf/nev_print_pf3.c +./nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density1.c +./nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density2.c +./nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density3.c ) list (APPEND EXTRA_LIBS neut) diff --git a/src/neper_v/neper_v.c b/src/neper_v/neper_v.c index 896d120ad..df5d568e2 100644 --- a/src/neper_v/neper_v.c +++ b/src/neper_v/neper_v.c @@ -7,7 +7,7 @@ int neper_v (int fargc, char **fargv, int argc, char **argv) { - int i, dim, type; + int i, type; struct PRINT Print; // Simulation @@ -21,16 +21,17 @@ neper_v (int fargc, char **fargv, int argc, char **argv) struct NODES Nodes; struct MESH *Mesh = calloc (5, sizeof (MESH)); - // Point - struct POINT Point; + // Points + int PointQty = 0; + struct POINT *Points = NULL; // Datas struct DATA *TessData = calloc (6, sizeof (DATA)); // ver, edge, face, poly, seed, crystal - struct DATA TesrData; + struct DATA *TesrData = calloc (2, sizeof (DATA)); // cell, vox struct DATA NodeData; struct DATA *MeshData = calloc (5, sizeof (DATA)); struct DATA CsysData; - struct DATA PointData; + struct DATA *PointData = NULL; int *expargcs = ut_alloc_1d_int (2); char ***expargvs = ut_alloc_1d_ppchar (2); @@ -44,19 +45,20 @@ neper_v (int fargc, char **fargv, int argc, char **argv) neut_tess_set_zero (&Tess); neut_tesr_set_zero (&Tesr); neut_nodes_set_zero (&Nodes); - neut_point_set_zero (&Point); - neut_data_set_default (&TesrData); - for (dim = 0; dim <= 4; dim++) + // neut_point_set_zero (&Points); + for (i = 0; i <= 4; i++) { - neut_mesh_set_zero (Mesh + dim); - neut_data_set_default (MeshData + dim); + neut_mesh_set_zero (Mesh + i); + neut_data_set_default (MeshData + i); } - for (dim = 0; dim <= 5; dim++) - neut_data_set_default (TessData + dim); + for (i = 0; i <= 5; i++) + neut_data_set_default (TessData + i); + for (i = 0; i <= 1; i++) + neut_data_set_default (TesrData + i); neut_data_set_default (&NodeData); neut_data_set_default (&CsysData); - neut_data_set_default (&PointData); + // neut_data_set_default (&PointData); // Printing module header -------------------------------------------- ut_print_moduleheader ("-V", fargc, fargv, argc, argv); @@ -72,27 +74,31 @@ neper_v (int fargc, char **fargv, int argc, char **argv) // tessellation / mesh loading ------------------------------------- if (expargv[i][0] != '-') - nev_load (expargv[i], &Sim, &Tess, &Tesr, &Nodes, Mesh, &Point, - TessData, &TesrData, &NodeData, MeshData, + nev_load (expargv[i], &Sim, &Tess, &Tesr, &Nodes, Mesh, &Points, + &PointQty, TessData, TesrData, &NodeData, MeshData, &PointData); // data loading and settings --------------------------------------- else if (!strncmp (expargv[i], "-data", 5)) - nev_data (expargv, &i, Sim, &Tess, &Tesr, &Nodes, &Mesh, &Point, - TessData, &TesrData, &NodeData, MeshData, + nev_data (expargv, &i, Sim, &Tess, &Tesr, &Nodes, &Mesh, &Points, + PointQty, TessData, TesrData, &NodeData, MeshData, &CsysData, &PointData); // show settings --------------------------------------------------- else if (!strncmp (expargv[i], "-show", 5)) - nev_show (expargv, &i, Tess, Tesr, Nodes, Mesh, Point, &Print); + nev_show (expargv, &i, Tess, Tesr, Nodes, Mesh, Points, PointQty, &Print); // simulation settings --------------------------------------------- - else if (!strncmp (expargv[i], "-sim", 4)) + else if (!strncmp (expargv[i], "-sim", 4) || !strncmp (expargv[i], "-step", 5)) nev_sim (expargv, &i, &Sim); // space settings -------------------------------------------------- else if (!strncmp (expargv[i], "-space", 6)) - nev_space (expargv, &i, &PointData); + nev_space (expargv, &i, &Print); + + // pf settings ----------------------------------------------------- + else if (!strncmp (expargv[i], "-pf", 3)) + nev_pf (expargv, &i, &Print); // output settings ------------------------------------------------- else if (!strncmp (expargv[i], "-out", 4)) @@ -106,6 +112,10 @@ neper_v (int fargc, char **fargv, int argc, char **argv) else if (!strncmp (expargv[i], "-camera", 7)) nev_camera (expargv, &i, &Print); + // light settings ------------------------------------------------- + else if (!strncmp (expargv[i], "-light", 6)) + nev_light (expargv, &i, &Print); + // image settings -------------------------------------------------- else if (!strncmp (expargv[i], "-image", 6)) nev_image (expargv, &i, &Print); @@ -119,13 +129,17 @@ neper_v (int fargc, char **fargv, int argc, char **argv) nev_include (expargv, &i, &Print); // povray settings ------------------------------------------------- - else if (!strcmp (expargv[i], "-povray")) + else if (!strncmp (expargv[i], "-povray", 7)) nev_povray (expargv, &i, &Print); + // povray settings ------------------------------------------------- + else if (!strcmp (expargv[i], "-asymptote")) + nev_asymptote (expargv, &i, &Print); + // image printing -------------------------------------------------- else if (!strcmp (expargv[i], "-print")) - nev_print (expargv, &i, &Print, Sim, Tess, TessData, Tesr, &TesrData, Nodes, - Mesh, &NodeData, MeshData, &CsysData, Point, &PointData); + nev_print (expargv, &i, &Print, Sim, Tess, TessData, Tesr, TesrData, Nodes, + Mesh, &NodeData, MeshData, &CsysData, Points, PointQty, PointData); else ut_print_message (2, 0, "Unknown option %s (i = %d)\n", expargv[i], @@ -137,13 +151,13 @@ neper_v (int fargc, char **fargv, int argc, char **argv) neut_sim_free (&Sim); neut_tess_free (&Tess); neut_nodes_free (&Nodes); - for (dim = 0; dim <= 4; dim++) + for (i = 0; i <= 4; i++) { - neut_mesh_free (Mesh + dim); - neut_data_free (MeshData + dim); + neut_mesh_free (Mesh + i); + neut_data_free (MeshData + i); } - for (dim = 0; dim <= 5; dim++) - neut_data_free (TessData + dim); + for (i = 0; i <= 5; i++) + neut_data_free (TessData + i); neut_data_free (&NodeData); // ut_free_2d_char (&expargv, argc); diff --git a/src/neper_v/neper_v_.h b/src/neper_v/neper_v_.h index 550959838..68b68c141 100644 --- a/src/neper_v/neper_v_.h +++ b/src/neper_v/neper_v_.h @@ -13,8 +13,10 @@ #include"nev_print/nev_print.h" #include"nev_sim/nev_sim.h" #include"nev_space/nev_space.h" +#include"nev_pf/nev_pf.h" #include"nev_load/nev_load.h" #include"nev_camera/nev_camera.h" +#include"nev_light/nev_light.h" #include"nev_image/nev_image.h" #include"nev_utils/nev_utils.h" #include"nev_scene/nev_scene.h" @@ -24,5 +26,6 @@ #include"nev_include/nev_include.h" #include"nev_show/nev_show.h" #include"nev_povray/nev_povray.h" +#include"nev_asymptote/nev_asymptote.h" #include"neper_v.h" diff --git a/src/neper_v/nev_asymptote/nev_asymptote.h b/src/neper_v/nev_asymptote/nev_asymptote.h new file mode 100644 index 000000000..3e726a3ab --- /dev/null +++ b/src/neper_v/nev_asymptote/nev_asymptote.h @@ -0,0 +1,5 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_asymptote (char **, int *, struct PRINT *); diff --git a/src/neper_v/nev_asymptote/nev_asymptote1.c b/src/neper_v/nev_asymptote/nev_asymptote1.c new file mode 100644 index 000000000..471e67447 --- /dev/null +++ b/src/neper_v/nev_asymptote/nev_asymptote1.c @@ -0,0 +1,15 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_asymptote_.h" + +void +nev_asymptote (char **expargv, int *pi, struct PRINT *pPrint) +{ + (*pi)++; + + ut_string_string (expargv[*pi], &((*pPrint).asymptote)); + + return; +} diff --git a/src/neper_v/nev_asymptote/nev_asymptote_.h b/src/neper_v/nev_asymptote/nev_asymptote_.h new file mode 100644 index 000000000..83a83b6fd --- /dev/null +++ b/src/neper_v/nev_asymptote/nev_asymptote_.h @@ -0,0 +1,12 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> + +#include"ut.h" +#include"neut_v.h" + +#include "nev_asymptote.h" diff --git a/src/neper_v/nev_data/nev_data.h b/src/neper_v/nev_data/nev_data.h index 44bd4d65c..270af9b84 100644 --- a/src/neper_v/nev_data/nev_data.h +++ b/src/neper_v/nev_data/nev_data.h @@ -5,10 +5,10 @@ extern void nev_data (char **, int *, struct SIM Sim, struct TESS *pTess, struct TESR *pTesr, struct NODES *, struct MESH **, - struct POINT *, + struct POINT **, int, struct DATA *, struct DATA *, struct DATA *, struct DATA *, - struct DATA *, struct DATA *); + struct DATA *, struct DATA **); #include "nev_data_tess/nev_data_tess.h" #include "nev_data_tesr/nev_data_tesr.h" diff --git a/src/neper_v/nev_data/nev_data1.c b/src/neper_v/nev_data/nev_data1.c index 2858a2734..d8cdc3fff 100644 --- a/src/neper_v/nev_data/nev_data1.c +++ b/src/neper_v/nev_data/nev_data1.c @@ -7,28 +7,34 @@ void nev_data (char **argv, int *pi, struct SIM Sim, struct TESS *pTess, struct TESR *pTesr, struct NODES *pNodes, - struct MESH **pMesh, struct POINT *pPoint, + struct MESH **pMesh, struct POINT **pPoints, int PointQty, struct DATA *TessData, - struct DATA *pTesrData, struct DATA *pNodeData, + struct DATA *TesrData, struct DATA *pNodeData, struct DATA *MeshData, struct DATA *pCsysData, - struct DATA *pPointData) + struct DATA **pPointData) { + int i; char *entity = ut_alloc_1d_char (100); + char *nameedge = NULL; char *attribute = ut_alloc_1d_char (100); + char **PointNames = ut_alloc_1d_pchar (PointQty); - neut_data_string_entity_attribute (argv[(*pi)], entity, attribute); + for (i = 0; i < PointQty; i++) + ut_string_string ((*pPoints)[i].Name, PointNames + i); + + neut_data_string_entity_attribute (argv[(*pi)], entity, PointNames, PointQty, attribute); if ((!strcmp (entity, "poly") || !strcmp (entity, "edge") || !strcmp (entity, "face") || !strcmp (entity, "ver") || !strcmp (entity, "cell") || !strcmp (entity, "seed") - || !strncmp (entity, "crystal", 7)) + || !strncmp (entity, "crystal", 7) || !strncmp (entity, "celledge", 8)) && !neut_tess_isvoid (*pTess)) nev_data_tess (Sim, pTess, entity, attribute, argv[++(*pi)], TessData); else if ((!strcmp (entity, "cell") || !strncmp (entity, "vox", 3) || !strcmp (entity, "edge") || !strncmp (entity, "voidvox", 7)) && !neut_tesr_isvoid (*pTesr)) - nev_data_tesr (Sim, pTesr, entity, attribute, argv[++(*pi)], pTesrData); + nev_data_tesr (Sim, pTesr, entity, attribute, argv[++(*pi)], TesrData); else if (!strncmp (entity, "node", 4)) nev_data_nodes (Sim, pTess, pNodes, pMesh, attribute, argv[++(*pi)], pNodeData); @@ -41,17 +47,35 @@ nev_data (char **argv, int *pi, struct SIM Sim, struct TESS *pTess, else if (!strcmp (entity, "csys")) nev_data_csys (Sim, attribute, argv[++(*pi)], pCsysData); - else if (!strncmp (entity, "point", 5)) - nev_data_points (Sim, pPoint, pTess, pNodes, pMesh, entity, attribute, argv[++(*pi)], pPointData); - else { - ut_print_message (1, 0, "Unknown entity `%s'. Skipping...\n", entity); - ++(*pi); + int status = -1; + + for (i = 0; i < PointQty; i++) + { + nameedge = ut_string_paste ((*pPoints)[i].Name, "edge"); + + if (strlen ((*pPoints)[i].Name) == 0 + || !strcmp (entity, (*pPoints)[i].Name) || !strcmp (entity, nameedge)) + { + nev_data_points (Sim, (*pPoints) + i, pTess, pNodes, pMesh, entity, attribute, + argv[(*pi) + 1], (*pPointData) + i); + status = 0; + break; + } + + ut_free_1d_char (&nameedge); + } + + if (status) + ut_print_message (1, 0, "Unknown entity `%s'. Skipping...\n", entity); + + (*pi)++; } ut_free_1d_char (&entity); ut_free_1d_char (&attribute); + ut_free_2d_char (&PointNames, PointQty); return; } diff --git a/src/neper_v/nev_data/nev_data_points/nev_data_points1.c b/src/neper_v/nev_data/nev_data_points/nev_data_points1.c index d70ebf337..ba83677ff 100644 --- a/src/neper_v/nev_data/nev_data_points/nev_data_points1.c +++ b/src/neper_v/nev_data/nev_data_points/nev_data_points1.c @@ -25,7 +25,7 @@ nev_data_points (struct SIM Sim, struct POINT *pPoint, struct TESS *pTess, neut_data_datastring_type_value (entity, attribute, datastring, &datatype, &datavalue); - if (!strcmp (entity, "point")) + if (!strstr (entity, "edge")) { if (!strcmp (attribute, "colscheme")) ut_string_string (datastring, &(*pData).ColScheme); @@ -37,18 +37,18 @@ nev_data_points (struct SIM Sim, struct POINT *pPoint, struct TESS *pTess, ut_string_string (datastring, &(*pData).ScaleTitle); else if (!strcmp (attribute, "coo")) - neut_data_fscanf_coo (Sim, "point", (*pPoint).PointQty, datatype, datavalue, + neut_data_fscanf_coo (Sim, "point", (*pPoint).Qty, datatype, datavalue, pData); else if (!strcmp (attribute, "coofact")) (*pData).CooFact = atof (datavalue); else - neut_data_fscanf_general (DataInput, entity, 0, (*pPoint).PointQty, attribute, + neut_data_fscanf_general (DataInput, entity, 0, (*pPoint).Qty, attribute, datatype, datavalue, pData); } - else if (!strcmp (entity, "pointedge")) + else { if (!strcmp (attribute, "col")) { diff --git a/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr1.c b/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr1.c index 13370b3d7..aae8391a1 100644 --- a/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr1.c +++ b/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr1.c @@ -6,22 +6,16 @@ void nev_data_tesr (struct SIM Sim, struct TESR *pTesr, char *entity, char *attribute, - char *datastring, struct DATA *pTesrData) + char *datastring, struct DATA *TesrData) { - struct DATA TesrDataCell; struct DATA *pData = NULL; - ut_print_message (0, 1, "Reading data (%s, %s)...\n", entity, attribute); + ut_print_message (0, 1, "Reading data (%s%s%s)...\n", entity, strlen (attribute) ? ", " : "", attribute); - neut_data_set_default (&TesrDataCell); - - if (strcmp (entity, "cell")) - pData = pTesrData; + if (!strcmp (entity, "cell")) + pData = TesrData; else - { - TesrDataCell.Qty = (*pTesr).CellQty; - pData = &TesrDataCell; - } + pData = TesrData + 1; if (!strcmp (entity, "cell") || !strcmp (entity, "vox")) nev_data_tesr_gen (Sim, pTesr, pData, entity, attribute, datastring); @@ -39,7 +33,7 @@ nev_data_tesr (struct SIM Sim, struct TESR *pTesr, char *entity, char *attribute abort (); if (!strcmp (entity, "cell")) - nev_data_tesr_cell2vox (*pTesr, attribute, TesrDataCell, pTesrData); + nev_data_tesr_cell2vox (*pTesr, attribute, TesrData[0], TesrData + 1); return; } diff --git a/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr2.c b/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr2.c index b88fc1982..f294169fe 100644 --- a/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr2.c +++ b/src/neper_v/nev_data/nev_data_tesr/nev_data_tesr2.c @@ -21,7 +21,10 @@ nev_data_tesr_gen (struct SIM Sim, struct TESR *pTesr, struct DATA *pData, char neut_data_datastring_type_value (entity, attribute, datastring, &datatype, &datavalue); - if (!strcmp (attribute, "colscheme")) + if (!strcmp (attribute, "")) + ut_string_string (datastring, &(*pData).Value); + + else if (!strcmp (attribute, "colscheme")) ut_string_string (datastring, &(*pData).ColScheme); else if (!strcmp (attribute, "scale")) @@ -91,14 +94,17 @@ nev_data_tesr_cell2vox (struct TESR Tesr, char *attribute, { int i, j, k, id, size, vox; - (*pData).ColDataDef = ut_alloc_1d_int ((*pData).Qty + 1); + (*pData).Qty = Tesr.size[0] * Tesr.size[1] * Tesr.size[2]; + + if (!(*pData).ColDataDef) + (*pData).ColDataDef = ut_alloc_1d_int ((*pData).Qty + 1); id = 0; for (k = 1; k <= Tesr.size[2]; k++) for (j = 1; j <= Tesr.size[1]; j++) for (i = 1; i <= Tesr.size[0]; i++) (*pData).ColDataDef[++id] = (Tesr.VoxCell[i][j][k] > 0); - ut_string_string ("cell", &(*pData).Entity); + ut_string_string ("voxel", &(*pData).Entity); if (!strcmp (attribute, "col")) { @@ -117,7 +123,8 @@ nev_data_tesr_cell2vox (struct TESR Tesr, char *attribute, else abort (); - (*pData).ColData = ut_alloc_2d ((*pData).Qty + 1, size); + if (!(*pData).ColData) + (*pData).ColData = ut_alloc_2d ((*pData).Qty + 1, size); vox = 0; for (k = 1; k <= Tesr.size[2]; k++) for (j = 1; j <= Tesr.size[1]; j++) @@ -133,6 +140,12 @@ nev_data_tesr_cell2vox (struct TESR Tesr, char *attribute, ut_string_string (TesrDataCell.Scale, &(*pData).Scale); else if (!strcmp (attribute, "scaletitle")) ut_string_string (TesrDataCell.ScaleTitle, &(*pData).ScaleTitle); + else if (!strcmp (attribute, "rad")) + {} + else if (!strcmp (attribute, "symbol")) + {} + else if (!strcmp (attribute, "")) + {} else ut_print_exprbug (attribute); diff --git a/src/neper_v/nev_data/nev_data_tess/nev_data_tess1.c b/src/neper_v/nev_data/nev_data_tess/nev_data_tess1.c index 4041d0904..e6ccc11d0 100644 --- a/src/neper_v/nev_data/nev_data_tess/nev_data_tess1.c +++ b/src/neper_v/nev_data/nev_data_tess/nev_data_tess1.c @@ -21,7 +21,10 @@ nev_data_tess (struct SIM Sim, struct TESS *pTess, char *entity, char *attribute pData = nev_data_tess_init (*pTess, TessData, entity, attribute, datastring, &dim, &entityqty, &datatype, &datavalue); - if (!strcmp (attribute, "colscheme")) + if (!strcmp (attribute, "")) + ut_string_string (datastring, &(*pData).Value); + + else if (!strcmp (attribute, "colscheme")) ut_string_string (datastring, &(*pData).ColScheme); else if (!strcmp (attribute, "scale")) @@ -43,6 +46,19 @@ nev_data_tess (struct SIM Sim, struct TESS *pTess, char *entity, char *attribute ut_print_exprbug (attribute); } + else if (!strcmp (entity, "celledge")) + { + if (!strcmp (attribute, "col")) + { + TessData[dim].BCol = ut_alloc_1d_int (3); + ut_array_1d_int_fnscanf_wcard (datavalue, TessData[dim].BCol, 3, "color", "r"); + } + else if (!strcmp (attribute, "rad")) + TessData[dim].BRad = atof (datavalue); + else + ut_print_exprbug (attribute); + } + else neut_data_fscanf_general (DataInput, entity, dim, entityqty, attribute, datatype, datavalue, pData); diff --git a/src/neper_v/nev_data/nev_data_tess/nev_data_tess2.c b/src/neper_v/nev_data/nev_data_tess/nev_data_tess2.c index 08d0aa51a..2d67d4a1e 100644 --- a/src/neper_v/nev_data/nev_data_tess/nev_data_tess2.c +++ b/src/neper_v/nev_data/nev_data_tess/nev_data_tess2.c @@ -10,7 +10,7 @@ nev_data_tess_init (struct TESS Tess, struct DATA *TessData, char *datastring, int *pdim, int *pentityqty, char **ptype, char **pvalue) { - ut_print_message (0, 1, "Reading data (%s, %s)...\n", entity, attribute); + ut_print_message (0, 1, "Reading data (%s%s%s)...\n", entity, strlen (attribute) ? ", " : "", attribute); neut_tess_entity_dim (Tess, entity, pdim); @@ -23,3 +23,19 @@ nev_data_tess_init (struct TESS Tess, struct DATA *TessData, return TessData + (*pdim); } + +void +nev_data_tess_celledge (struct DATA *pData, char *attribute, char *datastring) +{ + if (!strcmp (attribute, "col")) + { + (*pData).BCol = ut_alloc_1d_int (3); + ut_array_1d_int_fnscanf_wcard (datastring, (*pData).BCol, 3, "color", "r"); + } + else if (!strcmp (attribute, "rad")) + (*pData).BRad = atof (datastring); + else + ut_print_exprbug (attribute); + + return; +} diff --git a/src/neper_v/nev_image/nev_image1.c b/src/neper_v/nev_image/nev_image1.c index d14bef36a..5c2a51709 100644 --- a/src/neper_v/nev_image/nev_image1.c +++ b/src/neper_v/nev_image/nev_image1.c @@ -10,11 +10,8 @@ nev_image (char **argv, int *pi, struct PRINT *pPrint) if (strcmp (argv[*pi], "-imagesize") == 0) strcpy ((*pPrint).imagesize, argv[++(*pi)]); - else if (strcmp (argv[*pi], "-imageantialias") == 0) - ut_string_int (argv[++(*pi)], &((*pPrint).imageantialias)); - else if (strcmp (argv[*pi], "-imageformat") == 0) - ut_string_string (argv[++(*pi)], &(*pPrint).format); + ut_string_string (argv[++(*pi)], &(*pPrint).imageformat); else { diff --git a/src/neper_v/nev_light/nev_light.h b/src/neper_v/nev_light/nev_light.h new file mode 100644 index 000000000..b4a09fa59 --- /dev/null +++ b/src/neper_v/nev_light/nev_light.h @@ -0,0 +1,5 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_light (char **argv, int *pi, struct PRINT *pPrint); diff --git a/src/neper_v/nev_light/nev_light1.c b/src/neper_v/nev_light/nev_light1.c new file mode 100644 index 000000000..74bd1bc87 --- /dev/null +++ b/src/neper_v/nev_light/nev_light1.c @@ -0,0 +1,26 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_light_.h" + +void +nev_light (char **argv, int *pi, struct PRINT *pPrint) +{ + if (!strcmp (argv[*pi], "-lightambient")) + ut_string_string (argv[++(*pi)], &(*pPrint).lightambientstring); + + else if (!strcmp (argv[*pi], "-lightsource")) + ut_string_string (argv[++(*pi)], &(*pPrint).lightsourcestring); + + else if (!strcmp (argv[*pi], "-lightdiffuse")) + ut_string_string (argv[++(*pi)], &(*pPrint).lightdiffusestring); + + else if (!strcmp (argv[*pi], "-lightreflection")) + ut_string_string (argv[++(*pi)], &(*pPrint).lightreflectionstring); + + else + ut_print_message (2, 0, "Unknown command %s\n", argv[(*pi)]); + + return; +} diff --git a/src/neper_v/nev_light/nev_light_.h b/src/neper_v/nev_light/nev_light_.h new file mode 100644 index 000000000..cf6b3371f --- /dev/null +++ b/src/neper_v/nev_light/nev_light_.h @@ -0,0 +1,12 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> + +#include"ut.h" +#include"neut_v.h" + +#include "nev_light.h" diff --git a/src/neper_v/nev_load/nev_load.h b/src/neper_v/nev_load/nev_load.h index 5e502a080..12b4b5d9c 100644 --- a/src/neper_v/nev_load/nev_load.h +++ b/src/neper_v/nev_load/nev_load.h @@ -4,6 +4,6 @@ extern void nev_load (char *string, struct SIM *pSim, struct TESS *pTess, struct TESR *pTesr, struct NODES *pNodes, struct MESH - *Mesh, struct POINT *pPoint, struct DATA *TessData, - struct DATA *pTesrData, struct DATA *pData, struct DATA - *MeshData, struct DATA *pPointData); + *Mesh, struct POINT **pPoints, int *pPointQty, struct DATA *TessData, + struct DATA *TesrData, struct DATA *pData, struct DATA + *MeshData, struct DATA **pPointData); diff --git a/src/neper_v/nev_load/nev_load1.c b/src/neper_v/nev_load/nev_load1.c index 57debf560..ee5908f4e 100644 --- a/src/neper_v/nev_load/nev_load1.c +++ b/src/neper_v/nev_load/nev_load1.c @@ -6,111 +6,163 @@ void nev_load (char *string, struct SIM *pSim, struct TESS *pTess, struct TESR *pTesr, - struct NODES *pNodes, struct MESH *Mesh, struct POINT *pPoint, - struct DATA *TessData, struct DATA *pTesrData, + struct NODES *pNodes, struct MESH *Mesh, struct POINT **pPoints, + int *pPointQty, struct DATA *TessData, struct DATA *TesrData, struct DATA *pNodeData, struct DATA *MeshData, - struct DATA *pPointData) + struct DATA **pPointData) { - int i, j, qty, dim, isdir = ut_sys_isdir (string), topology; + int i, j, qty, dim, topology; char **list = NULL; - if (neut_tess_isvoid (*pTess) && neut_tesr_isvoid (*pTesr) - && neut_nodes_isvoid (*pNodes) && neut_point_isvoid (*pPoint)) + if (!neut_tess_isvoid (*pTess) || !neut_tesr_isvoid (*pTesr) + || !neut_nodes_isvoid (*pNodes) || *pPointQty > 0) + ut_print_message (2, 0, "Input file already loaded (reading `%s').\n", + string); + + // simulation directory + if (ut_sys_isdir (string)) { - if (!isdir) - ut_list_break (string, NEUT_SEP_NODEP, &list, &qty); + neut_sim_fscanf (string, pSim, "R"); + + qty = 0; + list = ut_alloc_1d_pchar (3); + if (ut_file_exist ("%s/inputs/%s", string, (*pSim).tess)) + list[qty++] = ut_string_paste3 (string, "/inputs/", (*pSim).tess); + if (ut_file_exist ("%s/inputs/simulation.tesr", string)) + list[qty++] = ut_string_paste3 (string, "/inputs/", (*pSim).tesr); + if (ut_file_exist ("%s/inputs/%s", string, (*pSim).msh)) + list[qty++] = ut_string_paste3 (string, "/inputs/", (*pSim).msh); + } + + // other + else + ut_list_break (string, NEUT_SEP_NODEP, &list, &qty); - else + for (i = 0; i < qty; i++) + { + char *input = NULL; + char **list2 = NULL; + int qty2; + char *file = NULL; + + ut_list_break (list[i], NEUT_SEP_DEP, &list2, &qty2); + + if (qty2 == 1) { - neut_sim_fscanf (string, pSim, "R"); - - qty = 0; - list = ut_alloc_1d_pchar (3); - if (ut_file_exist ("%s/inputs/%s", string, (*pSim).tess)) - list[qty++] = ut_string_paste3 (string, "/inputs/", (*pSim).tess); - if (ut_file_exist ("%s/inputs/simulation.tesr", string)) - list[qty++] = ut_string_paste3 (string, "/inputs/", (*pSim).tesr); - if (ut_file_exist ("%s/inputs/%s", string, (*pSim).msh)) - list[qty++] = ut_string_paste3 (string, "/inputs/", (*pSim).msh); + ut_string_string (list[i], &file); + ut_file_format (list[i], &input); + if (!strlen (input)) + ut_string_string ("point", &input); // we give it the default name } - - for (i = 0; i < qty; i++) + else if (qty2 == 2) { - char *format = NULL; - char **list2 = NULL; - int qty2; + ut_string_string (list2[0], &input); + ut_string_string (list2[1], &file); + } - ut_list_break (list[i], NEUT_SEP_DEP, &list2, &qty2); + if (!input) + ut_print_message (2, 1, "Input file `%s' is void.\n", list[i]); - ut_file_format (list2[0], &format); + if (!strcmp (input, "tess")) + { + ut_print_message (0, 1, "Loading tessellation...\n"); + neut_tess_fnscanf (file, pTess); + (*pTess).pSim = pSim; + } - if (!format) - ut_print_message (2, 1, "Input file `%s' is void.\n", list2[0]); + else if (!strcmp (input, "tesr")) + { + ut_print_message (0, 1, "Loading raster tessellation...\n"); + neut_tesr_fnscanf (file, pTesr); + (*pTesr).pSim = pSim; + } - if (!strcmp (format, "tess")) - { - ut_print_message (0, 1, "Loading tessellation...\n"); - neut_tess_fnscanf (list[i], pTess); - (*pTess).pSim = pSim; - } - else if (!strcmp (format, "tesr")) + else if (!strcmp (input, "gmsh:msh")) + { + ut_print_message (0, 1, "Loading mesh...\n"); + neut_mesh_fnscanf_msh (file, pNodes, Mesh, Mesh + 1, Mesh + 2, + Mesh + 3, Mesh + 4, &topology, "r"); + (*pNodes).pSim = pSim; + for (i = 0; i <= 4; i++) + Mesh[i].pSim = pSim; + + if (topology && Mesh[3].EltQty > 0) { - ut_print_message (0, 1, "Loading raster tessellation...\n"); - neut_tesr_fnscanf (list[i], pTesr); - (*pTesr).pSim = pSim; + ut_print_message (0, 1, "Reconstructing mesh...\n"); + // does not work for hex meshes, due to topological issues + if (!strcmp (Mesh[neut_mesh_array_dim (Mesh)].EltType, "tri") + && (*pTesr).Dim == 0 && (*pTess).Dim == 0) + nem_reconstruct_mesh ("3,2,1,0", pNodes, Mesh, pTess); } - else if (!strcmp (format, "gmsh:msh")) + + for (j = 0; j <= 3; j++) + if (!neut_mesh_isvoid (Mesh[j]) && !(Mesh[j].NodeElts)) + neut_mesh_init_nodeelts (Mesh + j, (*pNodes).NodeQty); + } + + else // point + { + (*pPointQty)++; + (*pPoints) = (struct POINT *) realloc (*pPoints, (*pPointQty) * sizeof (struct POINT)); + neut_point_set_zero ((*pPoints) + (*pPointQty) - 1); + + char *fct = NULL; + int varqty; + char **vals = NULL, **vars = NULL; + + ut_string_function (input, &fct, &vars, &vals, &varqty); + + ut_print_message (0, 1, "Loading %s...\n", strlen (input) > 0 ? fct : "points"); + + ut_string_string (fct, &((*pPoints)[(*pPointQty) - 1].Name)); + ut_string_string ("none", &((*pPoints)[(*pPointQty) - 1].Type)); + + for (j = 0; j < varqty; j++) { - ut_print_message (0, 1, "Loading mesh...\n"); - neut_mesh_fnscanf_msh (list[i], pNodes, Mesh, Mesh + 1, Mesh + 2, - Mesh + 3, Mesh + 4, &topology, "r"); - (*pNodes).pSim = pSim; - for (i = 0; i <= 4; i++) - Mesh[i].pSim = pSim; - - if (topology && Mesh[3].EltQty > 0) - { - ut_print_message (0, 1, "Reconstructing mesh...\n"); - // does not work for hex meshes, due to topological issues - if (!strcmp (Mesh[neut_mesh_array_dim (Mesh)].EltType, "tri") - && (*pTesr).Dim == 0 && (*pTess).Dim == 0) - nem_reconstruct_mesh ("3,2,1,0", pNodes, Mesh, pTess); - } - - for (j = 0; j <= 3; j++) - if (!neut_mesh_isvoid (Mesh[j]) && !(Mesh[j].NodeElts)) - neut_mesh_init_nodeelts (Mesh + j, (*pNodes).NodeQty); + if (!strcmp (vars[j], "type")) + ut_string_string (vals[j], &((*pPoints)[(*pPointQty) - 1].Type)); + else + ut_print_exprbug (input); } - else // point + + if (!strcmp ((*pPoints)[(*pPointQty) - 1].Type, "ori")) { - ut_print_message (0, 1, "Loading points...\n"); - neut_point_fnscanf (list[i], pPoint); - (*pPoint).pSim = pSim; + struct OL_SET OSet; + + net_ori_file (file, &OSet); + + (*pPoints)[(*pPointQty) - 1].Dim = 4; + (*pPoints)[(*pPointQty) - 1].Qty = OSet.size; + (*pPoints)[(*pPointQty) - 1].Coo = ut_alloc_2d (OSet.size + 1, 4); + ut_array_2d_memcpy (OSet.q, OSet.size, 4, (*pPoints)[(*pPointQty) - 1].Coo + 1); + + ol_set_free (OSet); } - /* - ut_print_message (2, 0, "Unknown input file format (%s).", - format); - */ - ut_free_2d_char (&list2, qty2); - ut_free_1d_char (&format); + else + neut_point_fnscanf (file, (*pPoints) + (*pPointQty) - 1); + + (*pPoints)[(*pPointQty) - 1].pSim = pSim; + + ut_free_1d_char (&fct); + ut_free_2d_char (&vals, varqty); + ut_free_2d_char (&vars, varqty); } - ut_free_2d_char (&list, qty); - } - else - { - ut_print_message (2, 0, "Input file already loaded (reading `%s').\n", - string); - abort (); + ut_free_2d_char (&list2, qty2); + ut_free_1d_char (&input); + ut_free_1d_char (&file); } + ut_free_2d_char (&list, qty); + if (!neut_tess_isvoid (*pTess)) for (dim = 0; dim <= 5; dim++) nev_load_init_data_tess (*pTess, dim, TessData + dim); if (!neut_tesr_isvoid (*pTesr)) - nev_load_init_data_tesr (*pTesr, pTesrData); + for (i = 0; i <= 1; i++) + nev_load_init_data_tesr (*pTesr, i, TesrData + i); if (!neut_nodes_isvoid (*pNodes)) { @@ -119,8 +171,13 @@ nev_load (char *string, struct SIM *pSim, struct TESS *pTess, struct TESR *pTesr nev_load_init_data_mesh (Mesh[dim], MeshData + dim); } - if (!neut_point_isvoid (*pPoint)) - nev_load_init_data_point (*pPoint, pPointData); + (*pPointData) = calloc ((*pPointQty), sizeof (struct DATA)); + for (i = 0; i < *pPointQty; i++) + { + neut_data_set_default ((*pPointData) + i); + if (!neut_point_isvoid ((*pPoints)[i])) + nev_load_init_data_point ((*pPoints)[i], (*pPointData) + i); + } return; } diff --git a/src/neper_v/nev_load/nev_load2.c b/src/neper_v/nev_load/nev_load2.c index 37fb856ce..60371b5ff 100644 --- a/src/neper_v/nev_load/nev_load2.c +++ b/src/neper_v/nev_load/nev_load2.c @@ -15,9 +15,20 @@ nev_load_init_data_tess (struct TESS Tess, int dim, struct DATA *pTessData) } void -nev_load_init_data_tesr (struct TESR Tesr, struct DATA *pTesrData) +nev_load_init_data_tesr (struct TESR Tesr, int id, struct DATA *pTesrData) { - (*pTesrData).Qty = ut_array_1d_int_prod (Tesr.size, 3); + if (id == 0) + { + ut_string_string ("cell", &(*pTesrData).Entity); + (*pTesrData).Qty = Tesr.CellQty; + } + else if (id == 1) + { + ut_string_string ("voxel", &(*pTesrData).Entity); + (*pTesrData).Qty = ut_array_1d_int_prod (Tesr.size, 3); + } + else + abort (); return; } @@ -33,7 +44,7 @@ nev_load_init_data_node (struct NODES Nodes, struct DATA *pData) void nev_load_init_data_point (struct POINT Point, struct DATA *pPointData) { - (*pPointData).Qty = Point.PointQty; + (*pPointData).Qty = Point.Qty; return; } diff --git a/src/neper_v/nev_load/nev_load_.h b/src/neper_v/nev_load/nev_load_.h index 428721084..aed37636f 100644 --- a/src/neper_v/nev_load/nev_load_.h +++ b/src/neper_v/nev_load/nev_load_.h @@ -9,12 +9,13 @@ #include"ut.h" #include"neut_v.h" #include"neper_m/nem_reconstruct/nem_reconstruct_mesh/nem_reconstruct_mesh.h" +#include"neper_t/net_ori/net_ori.h" #include "nev_load.h" extern void nev_load_init_data_tess (struct TESS Tess, int dim, struct DATA *pTessData); -extern void nev_load_init_data_tesr (struct TESR Tesr, +extern void nev_load_init_data_tesr (struct TESR Tesr, int id, struct DATA *pTesrData); extern void nev_load_init_data_node (struct NODES Nodes, diff --git a/src/neper_v/nev_pf/nev_pf.h b/src/neper_v/nev_pf/nev_pf.h new file mode 100644 index 000000000..a4cd925ef --- /dev/null +++ b/src/neper_v/nev_pf/nev_pf.h @@ -0,0 +1,5 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_pf (char **argv, int *pi, struct PRINT *pPrint); diff --git a/src/neper_v/nev_pf/nev_pf1.c b/src/neper_v/nev_pf/nev_pf1.c new file mode 100644 index 000000000..83e21d707 --- /dev/null +++ b/src/neper_v/nev_pf/nev_pf1.c @@ -0,0 +1,38 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_pf_.h" + +void +nev_pf (char **argv, int *pi, struct PRINT *pPrint) +{ + int *polef = ut_alloc_1d_int (3); + + if (!strcmp (argv[*pi], "-pfpole")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfpolestring); + else if (!strcmp (argv[*pi], "-pfprojection")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfprojection); + else if (!strcmp (argv[*pi], "-pfmode")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfmode); + else if (!strcmp (argv[*pi], "-pffont")) + ut_string_string (argv[++(*pi)], &(*pPrint).pffont); + else if (!strcmp (argv[*pi], "-pfgridsize")) + ut_string_int (argv[++(*pi)], &(*pPrint).pfgridsize); + else if (!strcmp (argv[*pi], "-pfkernel")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfkernel); + else if (!strcmp (argv[*pi], "-pfdir")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfdirstring); + else if (!strcmp (argv[*pi], "-pfsym")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfsym); + else if (!strcmp (argv[*pi], "-pfclustering")) + (*pPrint).pfclustering = atoi (argv[++(*pi)]); + else if (!strcmp (argv[*pi], "-pfshape")) + ut_string_string (argv[++(*pi)], &(*pPrint).pfshape); + else + ut_print_message (2, 0, "Unknown command %s\n", argv[(*pi)]); + + ut_free_1d_int (&polef); + + return; +} diff --git a/src/neper_v/nev_pf/nev_pf_.h b/src/neper_v/nev_pf/nev_pf_.h new file mode 100644 index 000000000..57963cd2a --- /dev/null +++ b/src/neper_v/nev_pf/nev_pf_.h @@ -0,0 +1,12 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> + +#include"ut.h" +#include"neut_v.h" + +#include "nev_pf.h" diff --git a/src/neper_v/nev_povray/nev_povray1.c b/src/neper_v/nev_povray/nev_povray1.c index b037a24f0..82a242714 100644 --- a/src/neper_v/nev_povray/nev_povray1.c +++ b/src/neper_v/nev_povray/nev_povray1.c @@ -5,11 +5,16 @@ #include"nev_povray_.h" void -nev_povray (char **expargv, int *pi, struct PRINT *pPrint) +nev_povray (char **argv, int *pi, struct PRINT *pPrint) { - (*pi)++; + if (!strcmp (argv[*pi], "-povray")) + ut_string_string (argv[++(*pi)], &(*pPrint).povray); - ut_string_string (expargv[*pi], &((*pPrint).povray)); + else if (!strcmp (argv[*pi], "-povrayantialiasing")) + sscanf (argv[++(*pi)], "%d", &((*pPrint).povrayantialiasing)); + + else + ut_print_message (2, 0, "Unknown command %s\n", argv[(*pi)]); return; } diff --git a/src/neper_v/nev_print/nev_print.h b/src/neper_v/nev_print/nev_print.h index 427a0443d..aa03f2345 100644 --- a/src/neper_v/nev_print/nev_print.h +++ b/src/neper_v/nev_print/nev_print.h @@ -6,5 +6,5 @@ extern void nev_print (char **expargv, int *pi, struct PRINT *pPrint, struct SIM struct TESS Tess, struct DATA *TessData, struct TESR Tesr, struct DATA *pTesrData, struct NODES Nodes, struct MESH *Mesh, struct DATA *pNodeData, struct DATA - *MeshData, struct DATA *pCsysData, struct POINT Point, - struct DATA *pPointData); + *MeshData, struct DATA *pCsysData, struct POINT *Points, int PointQty, + struct DATA *PointData); diff --git a/src/neper_v/nev_print/nev_print1.c b/src/neper_v/nev_print/nev_print1.c index 45a926ff8..4fa0c6faf 100644 --- a/src/neper_v/nev_print/nev_print1.c +++ b/src/neper_v/nev_print/nev_print1.c @@ -9,8 +9,8 @@ nev_print (char **expargv, int *pi, struct PRINT *pPrint, struct SIM Sim, struct TESS Tess, struct DATA *TessData, struct TESR Tesr, struct DATA *pTesrData, struct NODES Nodes, struct MESH *Mesh, struct DATA *pNodeData, struct DATA *MeshData, - struct DATA *pCsysData, struct POINT Point, - struct DATA *pPointData) + struct DATA *pCsysData, struct POINT *Points, int PointQty, + struct DATA *PointData) { char *basename = NULL; int SQty = 0; @@ -24,18 +24,32 @@ nev_print (char **expargv, int *pi, struct PRINT *pPrint, struct SIM Sim, nev_print_init (pPrint, Tess, TessData, Tesr, pTesrData, Nodes, Mesh, pNodeData, MeshData, &SQty, &SNodes, &SMesh2D, - &SNodeData, &SMeshData, &SElt2dElt3d, pCsysData, Point, - pPointData); - - if (ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "png")) - nev_print_png (basename, *pPrint, Sim, Tess, TessData, Tesr, pTesrData, Nodes, - Mesh, SQty, SNodes, SMesh2D, pNodeData, MeshData, pCsysData, - Point, pPointData, SNodeData, SMeshData, SElt2dElt3d); - - if (ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "vtk")) - nev_print_vtk (basename, *pPrint, Sim, Nodes, Mesh, pNodeData, MeshData); + &SNodeData, &SMeshData, &SElt2dElt3d, pCsysData, Points, + PointQty, PointData); + + if (!strcmp ((*pPrint).space, "real") || !strcmp ((*pPrint).space, "rodrigues")) + { + if (ut_list_testelt ((*pPrint).imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt ((*pPrint).imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt ((*pPrint).imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png (basename, *pPrint, Sim, Tess, TessData, Tesr, pTesrData, Nodes, + Mesh, SQty, SNodes, SMesh2D, pNodeData, MeshData, pCsysData, + Points, PointQty, PointData, SNodeData, SMeshData, SElt2dElt3d); + + if (ut_list_testelt ((*pPrint).imageformat, NEUT_SEP_NODEP, "vtk")) + nev_print_vtk (basename, *pPrint, Sim, Nodes, Mesh, pNodeData, MeshData); + } + + else if (!strcmp ((*pPrint).space, "pf")) + nev_print_pf (basename, *pPrint, Sim, Tess, Tesr, TessData, pTesrData, + *pCsysData, Points, PointQty, PointData); + + else if (!strcmp ((*pPrint).space, "tree")) + nev_print_tree (basename, *pPrint, Sim); + + if ((*pPrint).showscale) + nev_print_scale (basename, *pPrint, Sim, TessData, pTesrData, pNodeData, + MeshData, PointQty, PointData); ut_free_1d_char (&basename); diff --git a/src/neper_v/nev_print/nev_print_.h b/src/neper_v/nev_print/nev_print_.h index f13f1cbd3..fa4a785da 100644 --- a/src/neper_v/nev_print/nev_print_.h +++ b/src/neper_v/nev_print/nev_print_.h @@ -10,7 +10,11 @@ #include"ut.h" #include"neut_v.h" #include "nev_print_init/nev_print_init.h" +#include "nev_print_utils/nev_print_utils.h" #include "nev_print_png/nev_print_png.h" #include "nev_print_vtk/nev_print_vtk.h" +#include "nev_print_pf/nev_print_pf.h" +#include "nev_print_tree/nev_print_tree.h" +#include "nev_print_scale/nev_print_scale.h" #include "nev_print.h" diff --git a/src/neper_v/nev_print/nev_print_init/nev_print_init.h b/src/neper_v/nev_print/nev_print_init/nev_print_init.h index fad068555..4e756c56b 100644 --- a/src/neper_v/nev_print/nev_print_init/nev_print_init.h +++ b/src/neper_v/nev_print/nev_print_init/nev_print_init.h @@ -7,4 +7,4 @@ extern void nev_print_init (struct PRINT *pPrint, struct TESS Tess, struct DATA struct MESH *Mesh, struct DATA *pNodeData, struct DATA *MeshData, int *pSQty, struct NODES **pSNodes, struct MESH **pSMesh2D, struct DATA **pSNodeData, struct DATA ***pSMeshData, int ***pSElt2dElt3d, struct DATA - *pCsysData, struct POINT Point, struct DATA *pPointData); + *pCsysData, struct POINT *Points, int PointQty, struct DATA *PointData); diff --git a/src/neper_v/nev_print/nev_print_init/nev_print_init1.c b/src/neper_v/nev_print/nev_print_init/nev_print_init1.c index 6cc7aeaa9..6a5dbfaa2 100644 --- a/src/neper_v/nev_print/nev_print_init/nev_print_init1.c +++ b/src/neper_v/nev_print/nev_print_init/nev_print_init1.c @@ -7,21 +7,27 @@ void nev_print_init (struct PRINT *pPrint, struct TESS Tess, struct DATA *TessData, struct TESR Tesr, - struct DATA *pTesrData, struct NODES Nodes, struct MESH *Mesh, + struct DATA *TesrData, struct NODES Nodes, struct MESH *Mesh, struct DATA *pNodeData, struct DATA *MeshData, int *pSQty, struct NODES **pSNodes, struct MESH **pSMesh2D, struct DATA **pSNodeData, struct DATA ***pSMeshData, int ***pSElt2dElt3d, struct DATA *pCsysData, - struct POINT Point, struct DATA *pPointData) + struct POINT *Points, int PointQty, struct DATA *PointData) { int i; - if (ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt ((*pPrint).format, NEUT_SEP_NODEP, "png")) + if (PointQty) { - nev_print_init_data (*pPrint, Tess, TessData, Tesr, pTesrData, Nodes, Mesh, - Point, pNodeData, MeshData, pCsysData, pPointData); + (*pPrint).inputqty = PointQty; + (*pPrint).inputs = ut_alloc_1d_pchar ((*pPrint).inputqty); + for (i = 0; i < (*pPrint).inputqty; i++) + ut_string_string (Points[i].Name, (*pPrint).inputs + i); + } + + if (strcmp ((*pPrint).imageformat, "vtk")) + { + nev_print_init_data (*pPrint, Tess, TessData, Tesr, TesrData, Nodes, Mesh, + Points, PointQty, pNodeData, MeshData, pCsysData, PointData); if ((*pPrint).slice) neut_mesh_slice (Nodes, Mesh[3], *pNodeData, MeshData, (*pPrint).slice, @@ -35,13 +41,17 @@ nev_print_init (struct PRINT *pPrint, struct TESS Tess, 3, (*pSMeshData)[i] + 2); } - nev_print_init_show (Tess, Tesr, Nodes, Mesh, *pSQty, Point, pPrint); + nev_print_init_show (Tess, Tesr, Nodes, Mesh, *pSQty, Points, PointQty, pPrint); - nev_print_init_camera (Tess, Tesr, Nodes, Mesh, Point, *pNodeData, pPrint); + nev_print_init_camera (Tess, Tesr, Nodes, Mesh, Points, PointQty, *pNodeData, pPrint); + + nev_print_init_light (Tess, Tesr, Mesh, pPrint); } - else if (ut_list_testelt ((*pPrint).format, NEUT_SEP_DEP, "vtk")) + else nev_print_init_data_nodes (*pPrint, Nodes, Nodes.NodeQty, pNodeData); + nev_print_init_pf (pPrint); + return; } diff --git a/src/neper_v/nev_print/nev_print_init/nev_print_init2.c b/src/neper_v/nev_print/nev_print_init/nev_print_init2.c index 1ed8bd7eb..ac14d6c92 100644 --- a/src/neper_v/nev_print/nev_print_init/nev_print_init2.c +++ b/src/neper_v/nev_print/nev_print_init/nev_print_init2.c @@ -7,12 +7,12 @@ void nev_print_init_data (struct PRINT Print, struct TESS Tess, struct DATA *TessData, struct TESR Tesr, - struct DATA *pTesrData, struct NODES Nodes, - struct MESH *Mesh, struct POINT Point, + struct DATA *TesrData, struct NODES Nodes, + struct MESH *Mesh, struct POINT *Points, int PointQty, struct DATA *pData, struct DATA *MeshData, - struct DATA *pCsysData, struct DATA *pPointData) + struct DATA *pCsysData, struct DATA *PointData) { - int dim, meshdim; + int i, meshdim; double size; /* @@ -21,11 +21,12 @@ nev_print_init_data (struct PRINT Print, */ if (Print.showtess && !neut_tess_isvoid (Tess)) - for (dim = 0; dim <= 5; dim++) - nev_print_init_data_tess (Print, Tess, TessData + dim); + for (i = 0; i <= 5; i++) + nev_print_init_data_tess (Print, Tess, TessData + i); - if (Print.showtesr && (*pTesrData).Qty > 0) - nev_print_init_data_tesr (Print, Tesr, pTesrData); + if (Print.showtesr && !neut_tesr_isvoid (Tesr)) + for (i = 0; i <= 1; i++) + nev_print_init_data_tesr (Print, Tesr, TesrData + i); if ((Print.shownode || Print.showmesh || Print.showslice) && !neut_nodes_isvoid (Nodes)) nev_print_init_data_nodes (Print, Nodes, Nodes.NodeQty, pData); @@ -35,23 +36,27 @@ nev_print_init_data (struct PRINT Print, { neut_mesh_size (Nodes, Mesh[meshdim], &size); - for (dim = 0; dim <= meshdim; dim++) - if (!neut_mesh_isvoid (Mesh[dim])) - nev_print_init_data_mesh (Print, Mesh[dim], size, Mesh[dim].ElsetQty, meshdim, MeshData + dim); + for (i = 0; i <= meshdim; i++) + if (!neut_mesh_isvoid (Mesh[i])) + nev_print_init_data_mesh (Print, Mesh[i], size, Mesh[i].ElsetQty, meshdim, MeshData + i); } if (Print.showcsys) nev_print_init_data_csys (Print, pCsysData); - if (Print.showpoint && !neut_point_isvoid (Point)) - nev_print_init_data_points (Print, Point, pPointData); + if (PointQty != Print.inputqty) + abort (); + + for (i = 0; i < Print.inputqty; i++) + if (!neut_point_isvoid (Points[i])) + nev_print_init_data_points (Print, Points[i], PointData + i); return; } void nev_print_init_show (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, - struct MESH *Mesh, int SQty, struct POINT Point, + struct MESH *Mesh, int SQty, struct POINT *Points, int PointQty, struct PRINT *pPrint) { int dim = neut_mesh_array_dim (Mesh); @@ -85,14 +90,18 @@ nev_print_init_show (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, if (!neut_tesr_isvoid (Tesr) && (*pPrint).showtesr == -1) (*pPrint).showtesr = 1; - if (!neut_point_isvoid (Point)) - if ((*pPrint).showpoint[0] == -1) - { - (*pPrint).showpoint = - ut_realloc_1d_int ((*pPrint).showpoint, Point.PointQty + 1); - ut_array_1d_int_set ((*pPrint).showpoint + 1, Point.PointQty, 1); - (*pPrint).showpoint[0] = Point.PointQty; - } + if (PointQty > 0) + { + if (!(*pPrint).showpoint) + (*pPrint).showpoint = ut_alloc_1d_pint (PointQty); + + for (i = 0; i < PointQty; i++) + if (!(*pPrint).showpoint[i]) + { + (*pPrint).showpoint[i] = ut_alloc_1d_int (Points[i].Qty + 1); + ut_array_1d_int_set ((*pPrint).showpoint[i] + 1, Points[i].Qty, 1); + } + } if ((*pPrint).showmesh == 1) { @@ -212,6 +221,21 @@ nev_print_init_show (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, else if ((*pPrint).showtesr == 1) { + if (Tesr.Dim == 3 && (*pPrint).showpoly[0] == -1) + { + (*pPrint).showpoly = + ut_realloc_1d_int ((*pPrint).showpoly, Tesr.CellQty + 1); + (*pPrint).showpoly[0] = Tesr.CellQty; + ut_array_1d_int_set ((*pPrint).showpoly + 1, Tesr.CellQty, 1); + } + else if (Tesr.Dim == 2 && (*pPrint).showface[0] == -1) + { + (*pPrint).showface = + ut_realloc_1d_int ((*pPrint).showface, Tesr.CellQty + 1); + (*pPrint).showface[0] = Tesr.CellQty; + ut_array_1d_int_set ((*pPrint).showface + 1, Tesr.CellQty, 1); + } + if (!(*pPrint).showvox) { (*pPrint).showvox = ut_alloc_3d_int (Tesr.size[0] + 1, Tesr.size[1] + 1, Tesr.size[2] + 1); @@ -223,27 +247,12 @@ nev_print_init_show (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, } } - if ((*pPrint).sceneshadow == -1) - { - if ((*pPrint).showmesh == 1) - { - } - else if ((*pPrint).showtess == 1) - dim = Tess.Dim; - else if ((*pPrint).showtesr == 1) - dim = Tesr.Dim; - else - dim = 3; - - (*pPrint).sceneshadow = (dim == 3) ? 1 : 0; - } - return; } void nev_print_init_camera (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, - struct MESH *Mesh, struct POINT Point, + struct MESH *Mesh, struct POINT *Points, int PointQty, struct DATA NodeData, struct PRINT *pPrint) { int dim = -1; @@ -299,13 +308,13 @@ nev_print_init_camera (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, (*pPrint).cameralookat); } - else if (!neut_point_isvoid (Point)) + else if (PointQty > 0) { - dim = Tesr.Dim; + dim = Points[0].Dim; - nev_print_init_camera_coo_points (Point, (*pPrint).cameracoostring, + nev_print_init_camera_coo_points (Points[0], (*pPrint).cameracoostring, (*pPrint).cameracoo); - nev_print_init_camera_coo_points (Point, (*pPrint).cameralookatstring, + nev_print_init_camera_coo_points (Points[0], (*pPrint).cameralookatstring, (*pPrint).cameralookat); } @@ -323,3 +332,116 @@ nev_print_init_camera (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, return; } + +void +nev_print_init_light (struct TESS Tess, struct TESR Tesr, struct MESH *Mesh, struct PRINT *pPrint) +{ + int dim; + + if ((*pPrint).showmesh == 1) + dim = neut_mesh_array_dim (Mesh); + else if ((*pPrint).showtess == 1) + dim = Tess.Dim; + else if ((*pPrint).showtesr == 1) + dim = Tesr.Dim; + else + dim = 3; + + // lightsourcesource + + if (!strcmp ((*pPrint).lightsourcestring, "default")) + { + if (dim == 3) + { + (*pPrint).lightsources = ut_alloc_1d_pchar (1); + ut_string_string ("point(coo=camera,shadow=0)", (*pPrint).lightsources); + (*pPrint).lightsourceqty = 1; + } + else + (*pPrint).lightsourceqty = 0; + } + + else if (!(strcmp ((*pPrint).lightsourcestring, "none"))) + (*pPrint).lightsourceqty = 0; + + else + ut_list_break ((*pPrint).lightsourcestring, NEUT_SEP_NODEP, + &(*pPrint).lightsources, &(*pPrint).lightsourceqty); + + // lightambient + + if (!strcmp ((*pPrint).lightambientstring, "default")) + { + if (dim == 3) + (*pPrint).lightambient = 0.6; + else + (*pPrint).lightambient = 1; + } + else + (*pPrint).lightambient = atof ((*pPrint).lightambientstring); + + if (!strcmp ((*pPrint).lightdiffusestring, "default")) + (*pPrint).lightdiffuse = 0.6; + else + (*pPrint).lightdiffuse = atof ((*pPrint).lightdiffusestring); + + if (!strcmp ((*pPrint).lightreflectionstring, "default")) + (*pPrint).lightreflection = 0; + else + (*pPrint).lightreflection = atof ((*pPrint).lightreflectionstring); + + return; +} + +void +nev_print_init_pf (struct PRINT *pPrint) +{ + int i, varqty; + int *polef = ut_alloc_1d_int (3); + char *fct = NULL; + char **vars = NULL, **vals = NULL; + + sscanf ((*pPrint).pfpolestring, "%d:%d:%d\n", polef, polef + 1, polef + 2); + ol_polef_polecrysym (polef, "cubic", &(*pPrint).pfpoles, &(*pPrint).pfpoleqty); + + ut_string_function ((*pPrint).pfkernel, &fct, &vars, &vals, &varqty); + + if (varqty == 1) + (*pPrint).pfkernelsig = atof (vals[0]); + + int dirqty; + char **dirs = NULL; + + (*pPrint).pfdir = ut_alloc_2d (3, 3); + + ut_list_break ((*pPrint).pfdirstring, NEUT_SEP_DEP, &dirs, &dirqty); + if (dirqty != 2) + ut_print_exprbug ((*pPrint).pfdirstring); + + for (i = 0; i < 2; i++) + { + if (!strcmp (dirs[i], "x") || !strcmp (dirs[i], "+x") || !strcmp (dirs[i], "-x")) + (*pPrint).pfdir[i][0] = 1.; + else if (!strcmp (dirs[i], "y") || !strcmp (dirs[i], "+y") || !strcmp (dirs[i], "-y")) + (*pPrint).pfdir[i][1] = 1.; + else if (!strcmp (dirs[i], "z") || !strcmp (dirs[i], "+z") || !strcmp (dirs[i], "-z")) + (*pPrint).pfdir[i][2] = 1.; + else + ut_print_exprbug ((*pPrint).pfdirstring); + + if (strstr (dirs[i], "-")) + ut_array_1d_scale ((*pPrint).pfdir[i], 3, -1); + } + + ut_vector_vectprod ((*pPrint).pfdir[0], (*pPrint).pfdir[1], (*pPrint).pfdir[2]); + + if (ut_num_equal (ut_array_1d_min ((*pPrint).pfdir[2], 3), -1, 1e-6)) + ut_print_message (1, 2, "%s: normal vector pointing downwards, which is non-standard.\n", (*pPrint).pfdirstring); + + ut_free_2d_char (&dirs, dirqty); + ut_free_1d_int (&polef); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_init/nev_print_init3.c b/src/neper_v/nev_print/nev_print_init/nev_print_init3.c index 44d7e3b13..be83ab870 100644 --- a/src/neper_v/nev_print/nev_print_init/nev_print_init3.c +++ b/src/neper_v/nev_print/nev_print_init/nev_print_init3.c @@ -10,7 +10,6 @@ nev_print_init_data_csys (struct PRINT Print, struct DATA *pData) int i; (*pData).Col = ut_alloc_2d_int (2, 3); - (*pData).Rad = ut_alloc_1d (2); (*pData).Coo = ut_alloc_2d (2, 3); (*pData).Rad = ut_alloc_1d (2); (*pData).Length = ut_alloc_1d (2); @@ -22,9 +21,9 @@ nev_print_init_data_csys (struct PRINT Print, struct DATA *pData) if (!strcmp ((*pData).ColDataType, "col")) for (i = 0; i < 3; i++) (*pData).Col[1][i] = ut_num_d2ri ((*pData).ColData[1][i]); - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataType); } @@ -41,9 +40,9 @@ nev_print_init_data_csys (struct PRINT Print, struct DATA *pData) if (!(*pData).Label) { (*pData).Label = ut_alloc_1d_pchar (3); - ut_string_string ("X1", (*pData).Label); - ut_string_string ("X2", (*pData).Label + 1); - ut_string_string ("X3", (*pData).Label + 2); + ut_string_string ("$X_1$", (*pData).Label); + ut_string_string ("$X_2$", (*pData).Label + 1); + ut_string_string ("$X_3$", (*pData).Label + 2); } if ((*pData).FontSize == -1) @@ -147,9 +146,9 @@ nev_print_init_data_mesh (struct PRINT Print, struct MESH Mesh, double size, int neut_data_ori_color ((*pData).ColData, (*pData).Qty, (*pData).ColScheme, (*pData).Col); - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataName); } @@ -178,9 +177,12 @@ nev_print_init_data_nodes (struct PRINT Print, struct NODES Nodes, int Qty, stru { double noderad; - (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); - (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); - (*pData).Coo = ut_alloc_2d ((*pData).Qty + 1, 3); + if (!(*pData).Col) + (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); + if (!(*pData).Rad) + (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); + if (!(*pData).Coo) + (*pData).Coo = ut_alloc_2d ((*pData).Qty + 1, 3); noderad = 0.0168 / pow (Qty, 0.25); ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, noderad); @@ -210,9 +212,9 @@ nev_print_init_data_nodes (struct PRINT Print, struct NODES Nodes, int Qty, stru neut_data_ori_color ((*pData).ColData, (*pData).Qty, (*pData).ColScheme, (*pData).Col); - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataType); } @@ -241,17 +243,22 @@ nev_print_init_data_nodes (struct PRINT Print, struct NODES Nodes, int Qty, stru void nev_print_init_data_points (struct PRINT Print, struct POINT Point, struct DATA *pData) { + int i; double pointrad; - (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); - (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); - (*pData).Trs = ut_alloc_1d ((*pData).Qty + 1); - (*pData).Coo = ut_alloc_2d ((*pData).Qty + 1, 3); + if (!(*pData).Col) + (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); + if (!(*pData).Rad) + (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); + if (!(*pData).Trs) + (*pData).Trs = ut_alloc_1d ((*pData).Qty + 1); + if (!(*pData).Coo) + (*pData).Coo = ut_alloc_2d ((*pData).Qty + 1, 3); pointrad = 0.0168 / pow ((*pData).Qty, 0.25); ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, pointrad); ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 128); - ut_array_2d_memcpy (Point.PointCoo + 1, (*pData).Qty, 3, + ut_array_2d_memcpy (Point.Coo + 1, (*pData).Qty, 3, (*pData).Coo + 1); if ((*pData).ColData) @@ -274,17 +281,31 @@ nev_print_init_data_points (struct PRINT Print, struct POINT Point, struct DATA neut_data_ori_color ((*pData).ColData, (*pData).Qty, (*pData).ColScheme, (*pData).Col); - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataType); } + // by default, we color the points based on their ids + else + { + (*pData).ColData = ut_alloc_2d ((*pData).Qty + 1, 1); + for (i = 1; i <= (*pData).Qty; i++) + (*pData).ColData[i][0] = i; + neut_data_int_color ((*pData).ColData, (*pData).Qty, (*pData).VoidCol, + (*pData).Col); + + ut_string_string ("int", &(*pData).ColDataType); + } + if (!(*pData).RadDataType) ut_string_string ("rad", &((*pData).RadDataType)); if ((*pData).RadData) neut_data_rad_radius ((*pData).RadData, (*pData).Qty, (*pData).Rad); + else + ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, 0.02); if ((*pData).TrsData) neut_data_tr_tr ((*pData).TrsData, (*pData).Qty, @@ -293,20 +314,32 @@ nev_print_init_data_points (struct PRINT Print, struct POINT Point, struct DATA if ((*pData).CooDataType) { if (!strcmp ((*pData).CooDataType, "coo")) - neut_data_coo_coo (Point.PointCoo, (*pData).CooData, + neut_data_coo_coo (Point.Coo, (*pData).CooData, (*pData).CooFact, (*pData).Qty, (*pData).Coo); else if (!strcmp ((*pData).CooDataType, "disp")) - neut_data_disp_coo (Point.PointCoo, (*pData).CooData, + neut_data_disp_coo (Point.Coo, (*pData).CooData, (*pData).CooFact, (*pData).Qty, (*pData).Coo); else abort (); } + if ((*pData).BRad < 0) + (*pData).BRad = 0.01; + if (!(*pData).BCol) (*pData).BCol = ut_alloc_1d_int (3); + if (!(*pData).Symbol) + { + (*pData).Symbol = ut_alloc_1d_pchar ((*pData).Qty + 1); + + for (i = 1; i <= (*pData).Qty; i++) + ut_string_string ((*pData).SymbolData ? (*pData).SymbolData[i] : "sphere", + (*pData).Symbol + i); + } + return; } @@ -324,7 +357,7 @@ nev_print_init_data_crystal (struct PRINT Print, , struct DATA *pData) pointrad = 0.0168 / pow ((*pData).Qty, 0.25); ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, pointrad); ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 128); - ut_array_2d_memcpy (Crystal.PointCoo + 1, (*pData).Qty, 3, + ut_array_2d_memcpy (Crystal.Coo + 1, (*pData).Qty, 3, (*pData).Coo + 1); if ((*pData).ColData) @@ -347,9 +380,9 @@ nev_print_init_data_crystal (struct PRINT Print, , struct DATA *pData) neut_data_ori_color ((*pData).ColData, (*pData).Qty, (*pData).ColScheme, (*pData).Col); - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataType); } @@ -373,14 +406,19 @@ nev_print_init_data_crystal (struct PRINT Print, , struct DATA *pData) void nev_print_init_data_tesr (struct PRINT Print, struct TESR Tesr, struct DATA *pData) { - int i, j, k, id, Qty = ut_array_1d_int_prod (Tesr.size, 3); + int i, j, k, id; double size, rad; - (*pData).Col = ut_alloc_2d_int (Qty + 1, 3); - (*pData).Trs = ut_alloc_1d (Qty + 1); + if (!(*pData).Col) + (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); + if (!(*pData).Trs) + (*pData).Trs = ut_alloc_1d ((*pData).Qty + 1); + if (!(*pData).Rad) + (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); - ut_array_2d_int_set ((*pData).Col + 1, Qty, 3, 255); - ut_array_1d_set ((*pData).Trs + 1, Qty, 0); + ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 255); + ut_array_1d_set ((*pData).Trs + 1, (*pData).Qty, 0); + ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, 0.02); if (!(*pData).VoidCol) { @@ -393,20 +431,20 @@ nev_print_init_data_tesr (struct PRINT Print, struct TESR Tesr, struct DATA *pDa ut_print_message (0, 1, "Computing colors...\n"); if (!strcmp ((*pData).ColDataType, "col")) - neut_data_col_color ((*pData).ColData, Qty, (*pData).Col); + neut_data_col_color ((*pData).ColData, (*pData).Qty, (*pData).Col); else if (!strcmp ((*pData).ColDataType, "int")) - neut_data_int_color ((*pData).ColData, Qty, (*pData).VoidCol, (*pData).Col); + neut_data_int_color ((*pData).ColData, (*pData).Qty, (*pData).VoidCol, (*pData).Col); else if (!strcmp ((*pData).ColDataType, "real")) neut_data_real_color ((*pData).ColData, (*pData).ColDataDef, - Qty, (*pData).Scale, (*pData).ColScheme, + (*pData).Qty, (*pData).Scale, (*pData).ColScheme, (*pData).Col, &((*pData).Scale)); else if (!strcmp ((*pData).ColDataType, "ori") || !strcmp ((*pData).ColDataType, "disori")) { - neut_data_ori_color ((*pData).ColData, Qty, (*pData).ColScheme, + neut_data_ori_color ((*pData).ColData, (*pData).Qty, (*pData).ColScheme, (*pData).Col); id = 0; if (Tesr.VoxOriDef) @@ -420,9 +458,9 @@ nev_print_init_data_tesr (struct PRINT Print, struct TESR Tesr, struct DATA *pDa } } - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataType); } @@ -431,18 +469,31 @@ nev_print_init_data_tesr (struct PRINT Print, struct TESR Tesr, struct DATA *pDa { (*pData).ColData = ut_alloc_2d ((*pData).Qty + 1, 1); - id = 0; - for (k = 1; k <= Tesr.size[2]; k++) - for (j = 1; j <= Tesr.size[1]; j++) - for (i = 1; i <= Tesr.size[0]; i++) - { - if (Tesr.CellQty) + if (!strcmp ((*pData).Entity, "cell")) + { + if (!Tesr.CellId) + for (i = 1; i <= (*pData).Qty; i++) + (*pData).ColData[i][0] = i; + else + for (i = 1; i <= (*pData).Qty; i++) + (*pData).ColData[i][0] = Tesr.CellId[i]; + } + + else + { + id = 0; + for (k = 1; k <= Tesr.size[2]; k++) + for (j = 1; j <= Tesr.size[1]; j++) + for (i = 1; i <= Tesr.size[0]; i++) { - (*pData).ColData[++id][0] = Tesr.VoxCell[i][j][k]; - if (Tesr.CellId) - (*pData).ColData[id][0] = Tesr.CellId[ut_num_d2ri ((*pData).ColData[id][0])]; + if (Tesr.CellQty) + { + (*pData).ColData[++id][0] = Tesr.VoxCell[i][j][k]; + if (Tesr.CellId) + (*pData).ColData[id][0] = Tesr.CellId[ut_num_d2ri ((*pData).ColData[id][0])]; + } } - } + } neut_data_int_color ((*pData).ColData, (*pData).Qty, (*pData).VoidCol, (*pData).Col); @@ -458,11 +509,15 @@ nev_print_init_data_tesr (struct PRINT Print, struct TESR Tesr, struct DATA *pDa if ((*pData).TrsData) { ut_print_message (0, 1, "Computing transparency...\n"); - neut_data_tr_tr ((*pData).TrsData, Qty, (*pData).Trs); + neut_data_tr_tr ((*pData).TrsData, (*pData).Qty, (*pData).Trs); } + if ((*pData).RadData) + neut_data_rad_radius ((*pData).RadData, (*pData).Qty, + (*pData).Rad); + if ((*pData).BRad < 0) - (*pData).BRad = 0; + (*pData).BRad = (!strcmp (Print.space, "pf")) ? 0.01 : 0; if (!(*pData).BCol) (*pData).BCol = ut_alloc_1d_int (3); @@ -475,6 +530,13 @@ nev_print_init_data_tesr (struct PRINT Print, struct TESR Tesr, struct DATA *pDa sprintf ((*pData).RadDataName, "%g", rad); } + if (!(*pData).Symbol) + (*pData).Symbol = ut_alloc_1d_pchar ((*pData).Qty + 1); + + for (i = 1; i <= (*pData).Qty; i++) + ut_string_string ((*pData).SymbolData ? (*pData).SymbolData[i] : "sphere", + (*pData).Symbol + i); + return; } @@ -486,10 +548,14 @@ nev_print_init_data_tess (struct PRINT Print, struct TESS Tess, struct DATA *pDa neut_tess_size (Tess, &size); - (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); - (*pData).Trs = ut_alloc_1d ((*pData).Qty + 1); - (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); + if (!(*pData).Col) + (*pData).Col = ut_alloc_2d_int ((*pData).Qty + 1, 3); + if (!(*pData).Trs) + (*pData).Trs = ut_alloc_1d ((*pData).Qty + 1); + if (!(*pData).Rad) + (*pData).Rad = ut_alloc_1d ((*pData).Qty + 1); + // don't else if if (dim == 0) { rad = pow (size, 1. / 3) * 0.02000 / pow (Tess.CellQty, 0.25); @@ -497,26 +563,33 @@ nev_print_init_data_tess (struct PRINT Print, struct TESS Tess, struct DATA *pDa ut_array_1d_set ((*pData).Trs + 1, (*pData).Qty, 0); ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, rad); } - else if (dim == 1) + + if (dim == 1) { ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 0); ut_array_1d_set ((*pData).Trs + 1, (*pData).Qty, 0); rad = pow (size, 1. / 3) * 0.01414 / pow (Tess.CellQty, 0.25); ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, rad); } - else if (dim == 2 || dim == 3) + + if (dim == 2 || dim == 3) { ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 255); ut_array_1d_set ((*pData).Trs + 1, (*pData).Qty, 0); } - else if (dim == 4) + + if (dim == Tess.Dim) + ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, 0.02); + + if (dim == 4) { rad = pow (size, 1. / 3) * 0.04000 / pow (Tess.CellQty, 0.25); ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 128); ut_array_1d_set ((*pData).Trs + 1, (*pData).Qty, 0); ut_array_1d_set ((*pData).Rad + 1, (*pData).Qty, rad); } - else if (dim == 5) + + if (dim == 5) { rad = pow (size, 1. / 3) * 0.04000 / pow (Tess.CellQty, 0.25); ut_array_2d_int_set ((*pData).Col + 1, (*pData).Qty, 3, 128); @@ -544,9 +617,9 @@ nev_print_init_data_tess (struct PRINT Print, struct TESS Tess, struct DATA *pDa neut_data_ori_color ((*pData).ColData, (*pData).Qty, (*pData).ColScheme, (*pData).Col); - else if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") - || ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) + else if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") + || ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) ut_print_exprbug ((*pData).ColDataType); } @@ -585,6 +658,24 @@ nev_print_init_data_tess (struct PRINT Print, struct TESS Tess, struct DATA *pDa (*pData).BRad *= 0.01; } + if (dim == Tess.Dim) + { + if ((*pData).BRad == -1) + (*pData).BRad = 0.01; + + if (!(*pData).BCol) + (*pData).BCol = ut_alloc_1d_int (3); + } + + if (dim == Tess.Dim) + { + (*pData).Symbol = ut_alloc_1d_pchar ((*pData).Qty + 1); + + for (i = 1; i <= (*pData).Qty; i++) + ut_string_string ((*pData).SymbolData ? (*pData).SymbolData[i] : "sphere", + (*pData).Symbol + i); + } + return; } @@ -687,10 +778,8 @@ nev_print_init_camera_sky (char *expr, int dim, double *coo) { if (dim == 2) ut_array_1d_set_3 (coo, 0, 1, 0); - else if (dim == 3) + else if (dim >= 3) ut_array_1d_set_3 (coo, 0, 0, 1); - else - abort (); } else diff --git a/src/neper_v/nev_print/nev_print_init/nev_print_init4.c b/src/neper_v/nev_print/nev_print_init/nev_print_init4.c index 9b4e678b6..efd419024 100644 --- a/src/neper_v/nev_print/nev_print_init/nev_print_init4.c +++ b/src/neper_v/nev_print/nev_print_init/nev_print_init4.c @@ -14,7 +14,7 @@ nev_print_init_camera_v (int dim, double *v) v[2] = 8; } - else if (dim == 3) + else if (dim >= 3) { v[0] = 3.462; v[1] = -5.770; diff --git a/src/neper_v/nev_print/nev_print_init/nev_print_init_.h b/src/neper_v/nev_print/nev_print_init/nev_print_init_.h index 211151e93..58baf2297 100644 --- a/src/neper_v/nev_print/nev_print_init/nev_print_init_.h +++ b/src/neper_v/nev_print/nev_print_init/nev_print_init_.h @@ -14,8 +14,8 @@ extern void nev_print_init_data (struct PRINT, struct TESS, struct DATA *, struct TESR, struct DATA *, - struct NODES, struct MESH *, struct POINT, - struct DATA *, struct DATA *, + struct NODES, struct MESH *, struct POINT *, + int, struct DATA *, struct DATA *, struct DATA *, struct DATA *); extern void nev_print_init_data_csys (struct PRINT Print, struct DATA *); @@ -29,11 +29,11 @@ extern void nev_print_init_data_crystal (struct PRINT Print, struct POINT, struc extern void nev_print_init_show (struct TESS Tess, struct TESR Tesr, struct NODES Nodes, struct MESH *Mesh, - int SQty, struct POINT Point, + int SQty, struct POINT *Point, int, struct PRINT *pPrint); extern void nev_print_init_camera (struct TESS, struct TESR, struct NODES, - struct MESH *, struct POINT, struct + struct MESH *, struct POINT *, int, struct DATA, struct PRINT *); extern void nev_print_init_camera_coo (double **bbox, double *centre, double *v, char *expr, double *coo); @@ -50,3 +50,7 @@ extern void nev_print_init_camera_lookat (char *expr, struct TESS Tess, struct PRINT *pPrint); extern void nev_print_init_camera_v (int dim, double *v); extern void nev_print_init_camera_sky (char *expr, int dim, double *coo); + +extern void nev_print_init_light (struct TESS Tess, struct TESR Tesr, struct MESH *Mesh, struct PRINT *pPrint); + +extern void nev_print_init_pf (struct PRINT *pPrint); diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf.h b/src/neper_v/nev_print/nev_print_pf/nev_print_pf.h new file mode 100644 index 000000000..5b0850ae3 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf.h @@ -0,0 +1,5 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_print_pf (char *basename, struct PRINT Print, struct SIM Sim, struct TESS Tess, struct TESR Tesr, struct DATA *TessData, struct DATA *TesrData, struct DATA CsysData, struct POINT *Points, int PointQty, struct DATA *pPointData); diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf1.c b/src/neper_v/nev_print/nev_print_pf/nev_print_pf1.c new file mode 100644 index 000000000..df8a546a6 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf1.c @@ -0,0 +1,200 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_print_pf_.h" + +void +nev_print_pf (char *basename, struct PRINT Print, struct SIM Sim, + struct TESS Tess, struct TESR Tesr, + struct DATA *TessData, struct DATA *TesrData, + struct DATA CsysData, + struct POINT *Points, int PointQty, struct DATA *PointData) +{ + int i, ptqty, imagewidth, imageheight, modeqty, ipfptqty, *ptcells = NULL, density_plotted; + double *wgts = NULL, **pts = NULL, *ptwgts = NULL, **ipfpts = NULL; + char **modes = NULL, *outdir = NULL, *filename = NULL, *filename2 = NULL; + char *pole_string = ut_alloc_1d_char (1000); + FILE *file = NULL; + struct DATA *pData = NULL; + struct SIMRES SimRes; + double **data = NULL; + char *type = NULL, *value = NULL; + + struct DATAINPUT DataInput; + neut_datainput_set_default (&DataInput); + DataInput.pSim = &Sim; + DataInput.pTess = &Tess; + DataInput.pTesr = &Tesr; + + neut_simres_set_zero (&SimRes); + + neut_print_outdir (Print, Sim, "pf", &outdir); + if (strcmp (outdir, ".")) + ut_sys_mkdir (outdir); + + ut_file_dir_basename_extension_filename (outdir, basename, "asy", &filename); + ut_file_dir_basename_extension_filename (outdir, basename, "level", &filename2); + + ut_print_message (0, 1, "Printing pole figure...\n"); + file = ut_file_open (filename, ut_list_testelt (Print.imageformat, + NEUT_SEP_NODEP, "asy") ? "w" : "W"); + + nev_print_pf_header (file, Print); + + nev_print_pf_background (file, Print); + + nev_print_pf_border (file, Print, &ipfpts, &ipfptqty); + + nev_print_pf_csys (file, Print, CsysData); + + ut_list_break (Print.pfmode, NEUT_SEP_NODEP, &modes, &modeqty); + + density_plotted = 0; + + if (Print.showtess == 1) + { + ut_string_string ("tess", &DataInput.input); + + pData = TessData + Tess.Dim; + wgts = ut_alloc_1d (Tess.CellQty); + for (i = 1; i <= Tess.CellQty; i++) + neut_tess_cell_size (Tess, i, wgts + i - 1); + + if (!(*pData).Value || !strcmp ((*pData).Value, "ori")) + { + ut_string_string ("ori", &type); + data = Tess.CellOri + 1; + } + else + { + neut_data_datastring_type_value ("entity", "", (*pData).Value, &type, &value); + neut_data_fscanf_general (DataInput, "cell", 3, (*pData).Qty, "", type, value, pData); + data = (*pData).Data + 1; + } + + nev_print_pf_pts (type, data, wgts, Tess.CellQty, + Tess.Dim == 3 ? Print.showpoly + 1 : Print.showface + 1, + Print, i == 0 ? modes : NULL, i == 0 ? modeqty : 0, + &pts, &ptwgts, &ptcells, &ptqty); + + nev_print_pf_ptsprint (file, basename, Print, *pData, ipfpts, ipfptqty, + pts, ptwgts, ptcells, ptqty, modes, modeqty, &density_plotted); + + if (!(*pData).Value || !strcmp ((*pData).Value, "ori")) + { + sprintf (pole_string, "$\\left\\{%s\\right\\}$", Print.pfpolestring); + ut_string_fnrs (pole_string, NEUT_SEP_DEP, "", INT_MAX); + } + else if (!strncmp ((*pData).Value, "vector", 6)) + ut_string_string ("directions", &pole_string); + } + + if (Print.showtesr == 1) + { + ut_string_string ("tesr", &DataInput.input); + + pData = TesrData; + wgts = ut_alloc_1d (Tesr.CellQty); + for (i = 1; i <= Tesr.CellQty; i++) + neut_tesr_cell_size (Tesr, i, wgts + i - 1); + + data = ut_alloc_2d (Tesr.CellQty + 1, 4); + + if (!(*pData).Value || !strcmp ((*pData).Value, "ori")) + { + ut_string_string ("ori", &type); + + if (Tesr.CellOri) + ut_array_2d_memcpy (Tesr.CellOri + 1, Tesr.CellQty, 4, data + 1); + else + { + FILE *file = NULL; + neut_sim_simres (Sim, "cell", "ori", &SimRes); + file = ut_file_open (SimRes.file, "R"); + neut_ori_fscanf (file, Sim.OriDes, "ascii", data + 1, NULL, Tesr.CellQty, NULL); + ut_file_close (file, SimRes.file, "R"); + } + } + + else + { + neut_data_datastring_type_value ("cell", "", (*pData).Value, &type, &value); + neut_data_fscanf_general (DataInput, "cell", 3, (*pData).Qty, "", type, value, pData); + ut_array_2d_memcpy ((*pData).Data + 1, Tesr.CellQty, (*pData).DataSize, data + 1); + } + + nev_print_pf_pts (type, data + 1, !strcmp (type, "ori") ? wgts : NULL, Tesr.CellQty, + Tesr.Dim == 3 ? Print.showpoly + 1 : Print.showface + 1, + Print, i == 0 ? modes : NULL, i == 0 ? modeqty : 0, + &pts, &ptwgts, &ptcells, &ptqty); + + nev_print_pf_ptsprint (file, basename, Print, *pData, ipfpts, ipfptqty, + pts, ptwgts, ptcells, ptqty, modes, modeqty, &density_plotted); + + if (!(*pData).Value || !strcmp ((*pData).Value, "ori")) + { + sprintf (pole_string, "$\\left\\{%s\\right\\}$", Print.pfpolestring); + ut_string_fnrs (pole_string, NEUT_SEP_DEP, "", INT_MAX); + } + else if (!strncmp ((*pData).Value, "vector", 6)) + ut_string_string ("directions", &pole_string); + + ut_free_2d (&data, Tesr.CellQty); + } + + for (i = 0; i < PointQty; i++) + if (ut_array_1d_int_sum (Print.showpoint[i] + 1, Points[i].Qty) > 0) + { + pData = PointData + i; + nev_print_pf_pts (Points[i].Type, Points[i].Coo + 1, NULL, Points[i].Qty, + Print.showpoint[i] + 1, Print, + i == 0 ? modes : NULL, i == 0 ? modeqty : 0, + &pts, &ptwgts, &ptcells, &ptqty); + + nev_print_pf_ptsprint (file, basename, Print, *pData, ipfpts, ipfptqty, + pts, ptwgts, ptcells, ptqty, modes, modeqty, &density_plotted); + + if (strcmp (Points[i].Type, "vector")) + { + sprintf (pole_string, "$\\!\\left\\{%s\\right\\}$", Print.pfpolestring); + ut_string_fnrs (pole_string, NEUT_SEP_DEP, "", INT_MAX); + } + else + ut_string_string ("directions", &pole_string); + } + + nev_print_pf_pole_proj (file, Print, pole_string); + + // nev_print_pf_compress (InPF, &pts, &ptwgts, &ptqty); + + ut_file_close (file, filename, ut_list_testelt (Print.imageformat, + NEUT_SEP_NODEP, "asy") ? "w" : "W"); + + neut_print_imagesize (Print, &imagewidth, &imageheight); + neut_asy_convert (Print.asymptote, filename, imagewidth, imageheight, + Print.imageformat, 2); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "asy")) + { + remove (filename); + if (density_plotted) + remove (filename2); + } + + ut_free_2d (&ipfpts, ipfptqty); + ut_free_1d_char (&filename); + ut_free_1d_char (&filename2); + ut_free_1d (&wgts); + ut_free_2d (&pts, ptqty); + ut_free_1d_int (&ptcells); + ut_free_1d (&ptwgts); + ut_free_2d_char (&modes, modeqty); + ut_free_1d_char (&outdir); + ut_free_1d_char (&pole_string); + neut_simres_free (&SimRes); + ut_free_1d_char (&type); + ut_free_1d_char (&value); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf2.c b/src/neper_v/nev_print/nev_print_pf/nev_print_pf2.c new file mode 100644 index 000000000..378bc65bb --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf2.c @@ -0,0 +1,467 @@ +/* This file is part of the 'hermes' program. */ +/* Copyright (C) 2007-2010, Romain Quey. */ +/* See the COPYINPFG file in the top-level directory. */ + +#include"nev_print_pf_.h" + +void +nev_print_pf_header (FILE *file, struct PRINT Print) +{ + int i; + + fprintf (file, "import graph;\n"); + fprintf (file, "import palette;\n"); + fprintf (file, "import contour;\n"); + // fprintf (file, "settings.outformat=\"pdf\";\n"); + if (!strcmp (Print.pffont, "TimesRoman")) + fprintf (file, "usepackage(\"mathptmx\"); defaultpen(TimesRoman());\n"); + else if (!strcmp (Print.pffont, "ComputerModern")) + { } + else + ut_print_message (1, 0, "Font symbol unknown (ignoring)\n"); + + fprintf (file, "unitsize(1mm);\n"); + fprintf (file, "\n"); + if (!strcmp (Print.pfshape, "full")) + fprintf (file, "real scale = 30;\n"); + else if (!strcmp (Print.pfshape, "quarter")) + fprintf (file, "real scale = 60;\n"); + else if (!strcmp (Print.space, "ipf")) + fprintf (file, "real scale = 60;\n"); + else + abort (); + + fprintf (file, "pair O = (0,0);\n"); + fprintf (file, "pair X = (1,0);\n"); + fprintf (file, "pair Y = (0,1);\n"); + fprintf (file, "\n"); + + // circle + fprintf (file, "void circle (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, + "{\n if (w > 0) filldraw(shift(p)*circle(O, s), rgba+opacity(1-transa), rgbb+w);\n"); + fprintf (file, + " else filldraw(shift(p)*circle(O, s), rgba, invisible);\n}\n"); + + // sphere + fprintf (file, "void sphere (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, "{ circle (p, s, theta, rgba, transa, rgbb, w); }\n"); + + // square + fprintf (file, "void square (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, + "{ real a = 1.77245385090551602729 * s;\n"); // sqrt (pi) + fprintf (file, + " if (w > 0) filldraw(shift(p)*rotate(theta)*scale(a)*shift((-1/2,-1/2))*unitsquare, rgba+opacity(1-transa), rgbb+w);\n"); + fprintf (file, + " else filldraw(shift(p)*rotate(theta)*scale(a)*shift((-1/2,-1/2))*unitsquare, rgba+opacity(1-transa), invisible);\n}\n"); + + // cube + fprintf (file, "void cube (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, "{ square (p, s, theta, rgba, transa, rgbb, w); }\n"); + + // triangle + fprintf (file, "void triangle (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, + "{ real a = 2.69354737417719672123 * s;\n"); // sqrt (4 * pi / sqrt (3)) + fprintf (file, + " if (w > 0) filldraw(shift(p)*rotate(theta)*scale(a)*((-0.5,-0.289)--(0.5,-0.289)--(0,0.577)--cycle), rgba+opacity(1-transa), rgbb+w);\n"); + fprintf (file, + " else filldraw(shift(p)*rotate(theta)*scale(a)*((-0.5,-0.289)--(0.5,-0.289)--(0,0.577)--cycle), rgba+opacity(1-transa), invisible);\n}\n"); + + // diamond + fprintf (file, "void diamond (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, + "{ real a = 1.77245385090551602729 * s;\n"); // sqrt (pi) + fprintf (file, + " if (w > 0) filldraw(shift(p)*rotate(45+theta)*scale(a)*shift((-1/2,-1/2))*unitsquare, rgba+opacity(1-transa), rgbb+w);\n"); + fprintf (file, + " else filldraw(shift(p)*rotate(45+theta)*scale(a)*shift((-1/2,-1/2))*unitsquare, rgba+opacity(1-transa), invisible);\n}\n"); + + // diamond + fprintf (file, "void star (pair p, real s, real theta, pen rgba, real transa, pen rgbb, real w)\n"); + fprintf (file, "{\n"); + + double *coo = ut_alloc_1d (2); + for (i = 0; i < 5; i++) + { + coo[0] = cos (2 * M_PI * i / 5. + M_PI / 2); + coo[1] = sin (2 * M_PI * i / 5. + M_PI / 2); + fprintf (file, " pair pair%d = (%lf,%lf);\n", i, coo[0], coo[1]); + } + for (i = 0; i < 5; i++) + { + coo[0] = (3 - sqrt(5)) / 2 * cos (2 * M_PI * i / 5. + M_PI / 2 + M_PI / 5); + coo[1] = (3 - sqrt(5)) / 2 * sin (2 * M_PI * i / 5. + M_PI / 2 + M_PI / 5); + fprintf (file, " pair pair%d = (%lf,%lf);\n", i + 5, coo[0], coo[1]); + } + + ut_free_1d (&coo); + + fprintf (file, "if (w > 0) filldraw(shift(p)*rotate(theta)*scale(1.895 * s)*(pair0--pair5--pair1--pair6--pair2--pair7--pair3--pair8--pair4--pair9--cycle), rgba+opacity(1-transa), rgbb+w);\n"); + fprintf (file, " else filldraw(shift(p)*rotate(theta)*scale(1.895 * s)*(pair0--pair5--pair1--pair6--pair2--pair7--pair3--pair8--pair4--pair9--cycle), rgba+opacity(1-transa), invisible);\n"); + fprintf (file, "}\n"); + + return; +} + +void +nev_print_pf_background (FILE *file, struct PRINT Print) +{ + double xmin = 0, xmax = 0, ymin = 0, ymax = 0; + int density = ut_list_testelt (Print.pfmode, NEUT_SEP_NODEP, "density"); + + if (!strcmp (Print.pfshape, "full")) + { + xmin = -1 - WMARGINPF; + xmax = 1 + (!density || !Print.showscale ? EMARGINPF : 1.10); + ymin = -1 - SMARGINPF; + ymax = 1 + NMARGINPF; + } + else if (!strcmp (Print.pfshape, "quarter")) + { + xmin = 0 - WMARGINPF / 2; + xmax = 1 + (!density || !Print.showscale ? EMARGINPF / 2 : 0.55); + ymin = 0 + NMARGINPF; + ymax = -1 - SMARGINPF / 2; + } + else if (!strcmp (Print.space, "ipf")) + { + xmin = 0 - WMARGINPF / 2; + xmax = 1 + EMARGINPF / 2; + ymin = 0 + NMARGINPF / 2; + ymax = 1; + } + else + abort (); + + fprintf (file, "filldraw (scale(scale)*((%.3f,%.3f)--(%.3f,%.3f)--(%.3f,%.3f)--(%.3f,%.3f)--cycle),%s,%s);\n", xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax, + Print.scenebackground ? Print.scenebackground : "white", + Print.scenebackground ? Print.scenebackground : "white"); + + if (!ut_list_testelt (Print.pfmode, NEUT_SEP_NODEP, "density")) + { + if (!strcmp (Print.pfshape, "full")) + { + fprintf (file, "draw (shift(O)*scale(scale)*(-X--X), black);\n"); + fprintf (file, "draw (shift(O)*scale(scale)*(-Y--Y), black);\n"); + } + else if (!strcmp (Print.pfshape, "quarter")) + { + fprintf (file, "draw (shift(O)*scale(scale)*(O--X), black);\n"); + fprintf (file, "draw (shift(O)*scale(scale)*(O--(-Y)), black);\n"); + } + } + + return; +} + +void +nev_print_pf_border (FILE *file, struct PRINT Print, double ***pipfpts, int *pipfptqty) +{ + if (!strcmp (Print.pfshape, "full")) + { + fprintf (file, "draw (shift(O)*scale(scale)*unitcircle, black);\n"); + (*pipfptqty) = 0; + } + else if (!strcmp (Print.pfshape, "quarter")) + { + fprintf (file, "draw (shift(O)*scale(scale)*arc(O,-Y,X), black);\n"); + (*pipfptqty) = 0; + } + else if (!strcmp (Print.space, "ipf")) + { + int i; + double* r = ol_r_alloc (); + double** g = ol_g_alloc (); + double* v110 = ut_alloc_1d (3); + double* v111 = ut_alloc_1d (3); + double* v = ut_alloc_1d (3); + double* p = ol_p_alloc (); + double* p110 = ol_p_alloc (); + double* p111 = ol_p_alloc (); + double dtheta; + + ut_array_1d_set_3 (v110, 0, OL_IS2, OL_IS2); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v110, p110); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v110, p110); + + ut_array_1d_set_3 (v111, OL_IS3, OL_IS3, OL_IS3); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v111, p111); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v111, p111); + + ol_r_set_this (r, 0, OL_IS2, -OL_IS2); + dtheta = 35.26439 / 35; + ol_rtheta_g (r, dtheta, g); + // fprintf (file, "draw (shift(O)*scale(scale/%f)*(O--(%f,%f)", p[1], p[1], -p[0]); + (*pipfptqty) = 37; + (*pipfpts) = ut_alloc_2d (*pipfptqty, 2); + for (i = 0; i <= 35; i++) + { + ol_rtheta_g (r, i * dtheta, g); + ol_g_vect_vect (g, v110, v); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v, (*pipfpts)[i + 1]); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v, (*pipfpts)[i + 1]); + } + + // this is needed because of the linear approximation of the curved + // 011-111 line + ut_array_2d_scale (*pipfpts, *pipfptqty, 2, 1 + 1e-3); + + fprintf (file, "path border = "); + for (i = 0; i < (*pipfptqty); i++) + fprintf (file, "(%f,%f)--", (*pipfpts)[i][1], -(*pipfpts)[i][0]); + fprintf (file, "cycle;\n"); + + fprintf (file, "path line110111 = "); + for (i = 1; i < *pipfptqty; i++) + fprintf (file, "(%f,%f)%s", (*pipfpts)[i][1], -(*pipfpts)[i][0], + i < (*pipfptqty) - 1 ? "--" : ";\n"); + + fprintf (file, "draw (shift(O)*scale(scale/%f)*border,black);\n", + p110[1]); + + ut_free_1d (&v110); + ut_free_1d (&v111); + ut_free_1d (&v); + ol_p_free (p); + ol_p_free (p110); + ol_p_free (p111); + ol_r_free (r); + ol_g_free (g); + } + else + abort (); + + return; +} + +void +nev_print_pf_pole_proj (FILE *file, struct PRINT Print, char *pole_string) +{ + double xmin = 0, y, xshift; + char *legp = ut_alloc_1d_char (100); + + if (!strcmp (Print.pfshape, "full")) + { + xmin = -1 - WMARGINPF; + xshift = 0.01; + y = 1; + } + else if (!strcmp (Print.pfshape, "quarter")) + { + xmin = - WMARGINPF / 2; + xshift = 0.005; + y = 0.1; + } + else if (!strcmp (Print.space, "ipf")) + { + xmin = - WMARGINPF / 2; + xshift = 0; + } + else + abort (); + + sprintf (legp, "%s", pole_string); + fprintf (file, "label(\"%s\", scale(scale)*(%.3f, %.3f), NE);\n", legp, xmin, y); + ut_free_1d_char (&legp); + fprintf (file, "label(\"%s\", scale(scale)*(%.3f, %.3f), SE, fontsize(8));\n", + !strcmp (Print.pfprojection, "stereographic") ? "stereo. proj." : "equal-area proj.", + xmin + xshift, y); + + ut_free_1d_char (&legp); + + return; +} + +void +nev_print_pf_csys (FILE *file, struct PRINT Print, struct DATA CsysData) +{ + int id; + double* v = ol_r_alloc (); + double* p110 = ol_p_alloc (); + double* p111 = ol_p_alloc (); + + ut_array_1d_set_3 (v, 0, OL_IS2, OL_IS2); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v, p110); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v, p110); + + ut_array_1d_set_3 (v, OL_IS3, OL_IS3, OL_IS3); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v, p111); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v, p111); + + if (!strcmp (Print.pfshape, "full")) + { + id = ut_array_1d_absmax_index (Print.pfdir[0], 3); + fprintf (file, "label(\"%s\", scale(scale)*(%d,0), %s);\n", + CsysData.Label[id], + ut_num_sgn (Print.pfdir[0][id]), Print.pfdir[0][id] > 0 ? "E" : "W"); + id = ut_array_1d_absmax_index (Print.pfdir[1], 3); + fprintf (file, "label(\"%s\", scale(scale)*(0,%d), %s);\n", + CsysData.Label[id], + ut_num_sgn (Print.pfdir[1][id]), Print.pfdir[1][id] > 0 ? "N" : "S"); + // fprintf (file, "label(\"$%s$\", scale(scale)*( 0,0), NE);\n", " "); + + } + else if (!strcmp (Print.pfshape, "quarter")) + { + id = ut_array_1d_absmax_index (Print.pfdir[0], 3); + fprintf (file, "label(\"%s\", scale(scale)*( 1,0), E);\n", CsysData.Label[id]); + id = ut_array_1d_absmax_index (Print.pfdir[1], 3); + fprintf (file, "label(\"%s\", scale(scale)*(0,-1), S);\n", CsysData.Label[id]); + id = ut_array_1d_absmax_index (Print.pfdir[2], 3); + fprintf (file, "label(\"%s\", scale(scale)*( 0,0), W);\n", CsysData.Label[id]); + } + else if (!strcmp (Print.space, "ipf")) + { + fprintf (file, "label(\"$[1\\,0\\,0]$\", scale(scale)*O, S);\n"); + fprintf (file, "label(\"$[1\\,1\\,0]$\", scale(scale)*X, S);\n"); + fprintf (file, "label(\"$[1\\,1\\,1]$\", scale(scale/%f)*(%f,%f), N);\n", + p110[1], p111[1], p111[1]); + } + + ol_r_free (v); + ol_p_free (p111); + + return; +} + +void +nev_print_pf_pts (char *type_in, double **data_in, double *weights, + int qty, int *show, struct PRINT Print, char **modes, + int modeqty, double ***ppts, + double **pptwgts, int **pptcells, int *pptqty) +{ + int i; + char *type = NULL; + double **data = NULL; + + if (!type_in || !strcmp (type_in, "none")) // if none, we assume rodrigues vectors + { + data = ut_alloc_2d (qty, 4); + for (i = 0; i < qty; i++) + ol_R_q (data_in[i], data[i]); + ut_string_string ("ori", &type); + } + else + { + type = type_in; + data = data_in; + } + + if (!strcmp (type, "ori")) + nev_print_pf_file_data_ori (data, weights, qty, show, + Print, ppts, pptwgts, pptcells, pptqty); + + else if (!strcmp (type, "vector")) + nev_print_pf_file_data_vect (data_in, weights, qty, show, + Print, ppts, pptwgts, pptcells, pptqty); + + else + ut_print_exprbug (type); + + if (ut_num_equal (ut_array_1d_min (Print.pfdir[2], 3), -1, 1e-6)) + ut_array_2d_scale (*ppts, *pptqty, 2, -1); + + if (!strcmp (Print.pfsym, "orthotropic")) + nev_print_pf_file_data_orthotropic (ppts, pptwgts, pptcells, pptqty); + + if (!strcmp (Print.space, "ipf")) + nev_print_pf_file_data_crysym (Print, ppts, pptwgts, pptqty); + + if (!strcmp (Print.pfshape, "quarter") && strcmp (Print.pfsym, "orthotropic")) + nev_print_pf_file_data_orthotropic (ppts, pptwgts, pptcells, pptqty); + + if (Print.pfclustering) + for (i = 0; i < modeqty; i++) + if (!strcmp (modes[i], "density")) + { + nev_print_pf_file_data_clustering (Print, ppts, pptwgts, pptcells, pptqty); + break; + } + + if (type != type_in) + ut_free_1d_char (&type); + if (data != data_in) + ut_free_2d (&data, qty); + + return; +} + +void +nev_print_pf_ptsprint (FILE *file, char *basename, struct PRINT Print, + struct DATA Data, double **ipfpts, int ipfptqty, + double **pts, double *ptwgts, int *ptcells, int ptqty, char **modes, + int modeqty, int *pdensity_plotted) +{ + int i; + + for (i = 0; i < modeqty; i++) + { + if (!strcmp (modes[i], "symbol")) + { + ut_print_message (0, 2, "Computing symbols...\n"); + + nev_print_pf_ptsprint_symbols (file, Print, Data, ipfpts, ipfptqty, pts, ptcells, ptqty); + } + + else if (!strcmp (modes[i], "density")) + { + ut_print_message (0, 2, "Computing densities...\n"); + + if (!(*pdensity_plotted)) + { + nev_print_pf_ptsprint_density (file, basename, Print, Data, ipfpts, ipfptqty, + pts, ptwgts, ptqty); + (*pdensity_plotted) = 1; + } + } + + else + ut_print_exprbug (modes[i]); + } + + return; +} + +void +nev_print_pf_compress (struct PRINT Print, double ***ppt, + double **pwgt, int *pqty) +{ + int i, qty; + + qty = 0; + for (i = 0; i < (*pqty); i++) + if ((*pwgt)[i] > 1e-12) + { + if (i != qty) + { + ut_array_1d_memcpy ((*ppt)[i], 2, (*ppt)[qty]); + (*pwgt)[qty] = (*pwgt)[i]; + } + qty++; + } + + (*pwgt) = ut_realloc_1d (*pwgt, qty); + + for (i = *pqty - 1; i >= qty; i--) + ut_free_1d ((*ppt) + i); + (*ppt) = ut_realloc_1d_pdouble ((*ppt), qty); + + (*pqty) = qty; + + ut_print_message (0, 0, "number of data: %d\n", + !strcmp (Print.space, "pf") ? qty : qty / 4); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf3.c b/src/neper_v/nev_print/nev_print_pf/nev_print_pf3.c new file mode 100644 index 000000000..3c403c851 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf3.c @@ -0,0 +1,349 @@ +/* This id is part of the 'hermes' program. */ +/* Copyright (C) 2007-2010, Romain Quey. */ +/* See the COPYINPFG id in the top-level directory. */ + +#include"nev_print_pf_.h" + +void +nev_print_pf_file_data_ori (double **q, double *weights, int qty, int *show, + struct PRINT Print, + double ***ppts, double **pptwgts, int **pcell, + int *pptqty) +{ + int i, j; + struct OL_SET Set; + double** uvect = NULL; + double *qref = ol_q_alloc (); + + ol_g_q (Print.pfdir, qref); + + uvect = ut_alloc_2d (Print.pfpoleqty, 3); + for (i = 0; i < Print.pfpoleqty; i++) + ol_pole_vect (Print.pfpoles[i], uvect[i]); + + Set = ol_set_alloc (qty, NULL); + + for (i = 0; i < qty; i++) + { + ol_q_refcsys (q[i], qref, Set.q[i]); + Set.weight[i] = weights ? weights[i] : 1; + } + + /* + else if (! strcmp (InPF.SamplingType, "rel")) + ol_set_fscanf_sample (in, InPF.Sampling[id], &Set, NULL); + else if (! strcmp (InPF.SamplingType, "abs")) + ol_set_fscanf_sample_nb (in, InPF.Sampling[id], &Set, NULL); + else + abort (); + */ + + (*ppts) = ut_alloc_2d (qty * Print.pfpoleqty, 2); + (*pcell) = ut_alloc_1d_int (qty * Print.pfpoleqty); + (*pptwgts) = ut_alloc_1d (qty * Print.pfpoleqty); + + (*pptqty) = 0; + for (i = 0; i < (int) Set.size; i++) + if (!show || show[i]) + { + for (j = 0; j < Print.pfpoleqty; j++) + { + if (!strcmp (Print.space, "ipf")) + { + if (! strcmp (Print.pfprojection, "stereographic")) + ol_q_ipf_stprojxy (Set.q[i], uvect[j], (*ppts)[(*pptqty)]); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_q_ipf_eaprojxy (Set.q[i], uvect[j], (*ppts)[(*pptqty)]); + else + abort(); + } + + else + { + if (! strcmp (Print.pfprojection, "stereographic")) + ol_q_pf_stprojxy (Set.q[i], uvect[j], (*ppts)[(*pptqty)]); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_q_pf_eaprojxy (Set.q[i], uvect[j], (*ppts)[(*pptqty)]); + else + abort(); + } + + (*pcell)[(*pptqty)] = i + 1; + (*pptwgts)[(*pptqty)] = Set.weight[i]; + (*pptqty)++; + } + } + + ut_free_2d (&uvect, Print.pfpoleqty); + ol_q_free (qref); + + return; +} + +void +nev_print_pf_file_data_vect (double **data, double *weights, int qty, int *show, + struct PRINT Print, + double ***ppts, double **pptwgts, int **pcell, + int *pptqty) +{ + int i; + double *vect = ut_alloc_1d (3); + + (*ppts) = ut_alloc_2d (qty, 2); + (*pcell) = ut_alloc_1d_int (qty); + (*pptwgts) = ut_alloc_1d (qty); + + (*pptqty) = 0; + for (i = 0; i < qty; i++) + if (!show || show[i]) + { + ol_g_vect_vect (Print.pfdir, data[i], vect); + ut_array_1d_scale (vect, 3, 1. / ut_array_1d_norm (vect, 3)); + + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (vect, (*ppts)[(*pptqty)]); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (vect, (*ppts)[(*pptqty)]); + else + abort(); + + (*pcell)[(*pptqty)] = i + 1; + (*pptwgts)[(*pptqty)] = weights ? weights[i] : 1; + (*pptqty)++; + } + + ut_free_1d (&vect); + + return; +} + +void +nev_print_pf_file_data_orthotropic (double ***ppts, double **pptwgts, + int **pptcells, int *pptqty) +{ + int i, qty = *pptqty; + + (*ppts) = ut_realloc_1d_pdouble (*ppts, 4 * qty); + for (i = qty; i < 2 * qty; i++) + { + (*ppts)[i] = ut_alloc_1d (3); + (*ppts)[i][0] = (*ppts)[i - qty][0]; + (*ppts)[i][1] = -(*ppts)[i - qty][1]; + } + for (i = 2 * qty; i < 3 * qty; i++) + { + (*ppts)[i] = ut_alloc_1d (3); + (*ppts)[i][0] = -(*ppts)[i - 2 * qty][0]; + (*ppts)[i][1] = -(*ppts)[i - 2 * qty][1]; + } + for (i = 3 * qty; i < 4 * qty; i++) + { + (*ppts)[i] = ut_alloc_1d (3); + (*ppts)[i][0] = -(*ppts)[i - 3 * qty][0]; + (*ppts)[i][1] = (*ppts)[i - 3 * qty][1]; + } + + (*pptwgts) = ut_realloc_1d ((*pptwgts), 4 * qty); + ut_array_1d_memcpy (*pptwgts, qty, (*pptwgts) + qty); + ut_array_1d_memcpy (*pptwgts, qty, (*pptwgts) + 2 * qty); + ut_array_1d_memcpy (*pptwgts, qty, (*pptwgts) + 3 * qty); + + (*pptcells) = ut_realloc_1d_int (*pptcells, 4 * qty); + ut_array_1d_int_memcpy (*pptcells, qty, (*pptcells) + qty); + ut_array_1d_int_memcpy (*pptcells, qty, (*pptcells) + 2 * qty); + ut_array_1d_int_memcpy (*pptcells, qty, (*pptcells) + 3 * qty); + + (*pptqty) *= 4; + + return; +} + +void +nev_print_pf_file_data_crysym (struct PRINT Print, double ***ppts, double **pptwgts, + int *pptqty) +{ + int i, j; + int qty = *pptqty; + double** I = ol_g_alloc (); + double** gs = ol_g_alloc (); + double* v0 = ol_r_alloc (); + double* v = ol_r_alloc (); + + (*ppts) = ut_realloc_1d_pdouble ((*ppts), 24 * qty); + (*pptwgts) = ut_realloc_1d ((*pptwgts), 24 * qty); + for (i = 2; i <= 24; i++) + { + ol_g_crysym (I, "cubic", i, gs); + + for (j = 0; j < qty; j++) + { + (*ppts)[*pptqty] = ut_alloc_1d (3); + + if (!strcmp (Print.pfprojection, "stereographic")) + ol_stprojxy_vect ((*ppts)[j], v0); + else if (!strcmp (Print.pfprojection, "equal-area")) + ol_eaprojxy_vect ((*ppts)[j], v0); + + ol_g_vect_vect (gs, v0, v); + + if (!strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v, (*ppts)[*pptqty]); + else if (!strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v, (*ppts)[*pptqty]); + + (*pptwgts)[*pptqty] = (*pptwgts)[j]; + (*pptqty)++; + } + } + + ol_g_free (I); + ol_g_free (gs); + ol_r_free (v0); + ol_r_free (v); + + return; +} + +void +nev_print_pf_file_data_clustering (struct PRINT Print, double ***ppts, + double **pptwgts, int **pptcells, int *pptqty) +{ + int i, j, k, x_id, y_id, id, qty; + double **grid_p = NULL; + double *grid_w = NULL; + int *grid_cell = NULL; + double** tmp = NULL; + double* tmp2 = NULL; + int* tmp3 = NULL; + + ut_print_message (0, 2, "Reducing data...\n"); + + qty = (*pptqty); + tmp = ut_alloc_2d (*pptqty, 2); + ut_array_2d_memcpy (*ppts, *pptqty, 2, tmp); + tmp2 = ut_alloc_1d (*pptqty); + ut_array_1d_memcpy (*pptwgts, *pptqty, tmp2); + tmp3 = ut_alloc_1d_int (*pptqty); + ut_array_1d_int_memcpy (*pptcells, *pptqty, tmp3); + + grid_p = ut_alloc_2d (Print.pfgridsize * Print.pfgridsize, 2); + grid_w = ut_alloc_1d (Print.pfgridsize * Print.pfgridsize); + grid_cell = ut_alloc_1d_int (Print.pfgridsize * Print.pfgridsize); + + id = 0; + for (j = 0; j < Print.pfgridsize; j++) + for (i = 0; i < Print.pfgridsize; i++) + { + grid_p[id][0] = 2 * (double) i / (double) (Print.pfgridsize - 1) - 1; + grid_p[id][1] = 2 * (double) j / (double) (Print.pfgridsize - 1) - 1; + id++; + } + + for (k = 0; k < qty; k++) + { + x_id = ut_num_d2ri ((tmp[k][0] + 1) * (Print.pfgridsize - 1) / 2.); + y_id = ut_num_d2ri ((tmp[k][1] + 1) * (Print.pfgridsize - 1) / 2.); + id = y_id * Print.pfgridsize + x_id; + grid_w[id] += tmp2[k]; + grid_cell[id] = tmp3[k]; + } + + ut_free_2d (ppts, *pptqty); + (*ppts) = ut_alloc_2d (1, 2); + (*pptqty) = 0; + (*pptwgts) = ut_realloc_1d (*pptwgts, 1); + (*pptcells) = ut_realloc_1d_int (*pptcells, 1); + for (i = 0; i < Print.pfgridsize * Print.pfgridsize; i++) + if (grid_w[i] > 1e-12) + { + (*pptqty)++; + (*ppts) = ut_realloc_2d_addline ((*ppts), (*pptqty), 2); + ut_array_1d_memcpy (grid_p[i], 2, (*ppts)[(*pptqty) - 1]); + (*pptwgts) = ut_realloc_1d ((*pptwgts), (*pptqty)); + (*pptwgts)[(*pptqty) - 1] = grid_w[i]; + (*pptcells) = ut_realloc_1d_int ((*pptcells), (*pptqty)); + (*pptcells)[(*pptqty) - 1] = grid_cell[i]; + } + + ut_print_message (0, 3, "Number of data reduced by %.1f% (to %d)\n", 100 * + (double) (qty - (*pptqty)) / qty, !strcmp (Print.pfsym, "monoclinic") ? (*pptqty) : (*pptqty) / 4); + + ut_free_2d (&grid_p, Print.pfgridsize * Print.pfgridsize); + ut_free_1d (&grid_w); + ut_free_1d_int (&grid_cell); + ut_free_2d (&tmp, *pptqty); + ut_free_1d (&tmp2); + ut_free_1d_int (&tmp3); + + return; +} + +void +nev_print_pf_ptsprint_symbols (FILE *file, struct PRINT Print, struct DATA Data, + double **pipfpts, int ipfptqty, double **pts, int *ptcells, + int ptqty) +{ + int i, plot, trs_disable; + double* v = ut_alloc_1d (3); + double* p110 = ol_p_alloc (); + + ut_array_1d_set_3 (v, 0, OL_IS2, OL_IS2); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v, p110); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v, p110); + + trs_disable = 0; + + for (i = 0; i < ptqty; i++) + { + plot = 0; + if (!strcmp (Print.pfshape, "full")) + plot = 1; + else if (!strcmp (Print.pfshape, "quarter")) + { + if (pts[i][0] >= 0 && pts[i][1] <= 0) + plot = 1; + } + else if (!strcmp (Print.space, "ipf")) + plot = ut_space_point_indomain_2d (pts[i], pipfpts, ipfptqty); + else + abort (); + + if (plot) + { + char *symbol = ut_alloc_1d_char (20); + double *params = ut_alloc_1d (20); + + nev_print_symbol_expr_params (Data.Rad[ptcells[i]], Data.Symbol[ptcells[i]], symbol, params); + + if (strstr (Print.imageformat, "png") && Data.Trs[ptcells[i]] > 0) + trs_disable = 1; + + fprintf (file, "%s (scale(scale/%f)*(%9.6f, %9.6f), %f, %f, rgb(%f,%f,%f), %f, rgb(%f,%f,%f), %f);\n", + symbol, !strcmp (Print.space, "ipf") ? p110[1] : 1, + pts[i][0], + pts[i][1], + params[0] * 30, params[1], + Data.Col[ptcells[i]][0] / 255., + Data.Col[ptcells[i]][1] / 255., + Data.Col[ptcells[i]][2] / 255., + strstr (Print.imageformat, "png") ? 0. : Data.Trs[ptcells[i]], + Data.BCol[0] / 255., + Data.BCol[1] / 255., + Data.BCol[2] / 255., + Data.BRad * 30); + + ut_free_1d_char (&symbol); + ut_free_1d (¶ms); + } + } + + if (trs_disable) + ut_print_message (1, 3, "Transparency disabled (use pdf-only output).\n"); + + ut_free_1d (&v); + ut_free_1d (&p110); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf_.h b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_.h new file mode 100644 index 000000000..cd71f0c82 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_.h @@ -0,0 +1,67 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> +#include<math.h> +#include<limits.h> +#include<float.h> + +#include"ut.h" +#include"neut_v.h" +#include "nev_print_pf.h" + +#include "../nev_print_utils/nev_print_utils.h" +#include "nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density.h" + +#define NMARGINPF 0.192 +#define SMARGINPF 0.192 +#define WMARGINPF 0.265 +#define EMARGINPF 0.265 + +extern void nev_print_pf_header (FILE *, struct PRINT); +extern void nev_print_pf_background (FILE *, struct PRINT Print); +extern void nev_print_pf_border (FILE *, struct PRINT Print, double ***ppt, int *pqty); + +extern void nev_print_pf_pole_proj (FILE *file, struct PRINT Print, char *pole_string); +extern void nev_print_pf_csys (FILE *, struct PRINT Print, struct DATA CsysData); + +extern void nev_print_pf_pts (char *type, double **data, double *weights, int qty, + int *show, struct PRINT Print, char **modes, int modeqty, + double ***ppts, + double **pptwgts, int **pptcells, int *pptqty); +extern void nev_print_pf_file_data_compress (struct PRINT Print, double ***ppt, + double **pwgt, int *pptqty); + +extern void nev_print_pf_ptsprint_symbols (FILE *, struct PRINT, struct DATA, double **borderpt, int borderptqty, + double **, int *, int); + +extern void nev_print_pf_convert (char *asymptote, char *filename, int + imagewidth, int imageheight, char *format, int messagetag); + +extern void nev_print_pf_file_data_ori (double **q, double *weigths, int qty, int *show, + struct PRINT Print, + double ***ppts, double **pptwgts, int **pcell, + int *pptqty); +extern void nev_print_pf_file_data_vect (double **data, double *weights, int qty, int *show, + struct PRINT Print, + double ***ppts, double **pptwgts, int **pcell, + int *pptqty); + +extern void nev_print_pf_file_data_pos (char *filename, double + ***ptmp, double **ptmp2, int *pqty); + +extern void nev_print_pf_file_data_orthotropic (double ***ptmp, double + **pwght, int **pptcells, int *pqty); + +extern void nev_print_pf_file_data_clustering (struct PRINT Print, double ***ppts, + double **pptwgts, int **pptcells, int *pptqty); + +extern void nev_print_pf_file_data_crysym (struct PRINT Print, double ***ppt, + double **pwgt, int *pqty); + +extern void nev_print_pf_ptsprint (FILE *file, char *basename, struct PRINT + Print, struct DATA Data, double **ipfpts, int ipfptqty, double **pts, double *ptwgts, + int *ptcells, int ptqty, char **modes, int modeqty, int *pdensity_plotted); diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density.h b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density.h new file mode 100644 index 000000000..d89b77a52 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density.h @@ -0,0 +1,6 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_print_pf_ptsprint_density (FILE *, char *basename, struct PRINT, struct DATA, + double **, int, double **, double *, int); diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density1.c b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density1.c new file mode 100644 index 000000000..478a6edc2 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density1.c @@ -0,0 +1,31 @@ +/* This file is part of the 'hermes' program. */ +/* Copyright (C) 2007-2010, Romain Quey. */ +/* See the COPYINPFG file in the top-level directory. */ + +#include "nev_print_pf_ptsprint_density_.h" + +void +nev_print_pf_ptsprint_density (FILE *file, char *basename, struct PRINT Print, + struct DATA Data, + double **borderpts, int borderptqty, double **pos, + double *wgt, int pqty) +{ + double **density = NULL, **ldensity = NULL, min, max; + double ***grid = NULL, ***lgrid = NULL, ***Pgrid = NULL; + + nev_print_pf_ptsprint_density_grid (Print, &grid, &density, &Pgrid, &lgrid, &ldensity); + nev_print_pf_ptsprint_density_odf (Print, grid, Pgrid, borderpts, borderptqty, pos, + wgt, pqty, density, &min, &max); + nev_print_pf_ptsprint_density_ldensity (Print, density, lgrid, ldensity); + nev_print_pf_ptsprint_density_write (file, basename, Print, Data, lgrid, ldensity, min, max); + nev_print_pf_ptsprint_density_write_mask (file, Print, borderpts, borderptqty); + nev_print_pf_ptsprint_density_write_text0 (file, Print); + + ut_free_3d (&grid, Print.pfgridsize, Print.pfgridsize); + ut_free_3d (&Pgrid, Print.pfgridsize, Print.pfgridsize); + ut_free_2d (&density, Print.pfgridsize); + ut_free_3d (&lgrid, Print.pfgridsize + 2, Print.pfgridsize + 2); + ut_free_2d (&ldensity, Print.pfgridsize + 2); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density2.c b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density2.c new file mode 100644 index 000000000..efa66c653 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density2.c @@ -0,0 +1,534 @@ +/* This id is part of the 'hermes' program. */ +/* Copyright (C) 2007-2010, Romain Quey. */ +/* See the COPYINPFG id in the top-level directory. */ + +#include "nev_print_pf_ptsprint_density_.h" + +void +nev_print_pf_ptsprint_density_grid (struct PRINT Print, double ****pgrid, + double ***pdensity, + double ****pPgrid, double ****plgrid, + double ***pldensity) +{ + int i, j, gridsize; + + gridsize = Print.pfgridsize; + (*pgrid) = ut_alloc_3d (gridsize, gridsize, 2); + (*pdensity) = ut_alloc_2d (gridsize, gridsize); + (*plgrid) = ut_alloc_3d (gridsize + 2, gridsize + 2, 2); + (*pPgrid) = ut_alloc_3d (gridsize, gridsize, 3); + (*pldensity) = ut_alloc_2d (gridsize + 2, gridsize + 2); + + if (!strcmp (Print.pfshape, "full")) + { + for (i = 0; i < gridsize; i++) + for (j = 0; j < gridsize; j++) + { + (*pgrid)[i][j][0] = 2 * (double) (i + 0.5) / (double) (gridsize) - 1; + (*pgrid)[i][j][1] = 2 * (double) (j + 0.5) / (double) (gridsize) - 1; + if (ut_array_1d_norm ((*pgrid)[i][j], 2) <= 1) + { + if (!strcmp (Print.pfprojection, "stereographic")) + ol_stprojxy_vect ((*pgrid)[i][j], (*pPgrid)[i][j]); + else if (!strcmp (Print.pfprojection, "equal-area")) + ol_eaprojxy_vect ((*pgrid)[i][j], (*pPgrid)[i][j]); + else + abort(); + } + } + + for (i = 0; i < gridsize + 2; i++) + for (j = 0; j < gridsize + 2; j++) + { + (*plgrid)[i][j][0] = 2 * (double) (i - 0.5) / (double) (gridsize) - 1; + (*plgrid)[i][j][1] = 2 * (double) (j - 0.5) / (double) (gridsize) - 1; + } + } + + else if (!strcmp (Print.pfshape, "quarter")) + { + for (i = 0; i < gridsize; i++) + for (j = 0; j < gridsize; j++) + { + (*pgrid)[i][j][0] = (double) (i + 0.5) / (double) (gridsize); + (*pgrid)[i][j][1] = (double) (j + 0.5) / (double) (gridsize); + if (ut_array_1d_norm ((*pgrid)[i][j], 2) <= 1) + { + if (!strcmp (Print.pfprojection, "stereographic")) + ol_stprojxy_vect ((*pgrid)[i][j], (*pPgrid)[i][j]); + else if (!strcmp (Print.pfprojection, "equal-area")) + ol_eaprojxy_vect ((*pgrid)[i][j], (*pPgrid)[i][j]); + else + abort(); + } + } + + for (i = 0; i < gridsize + 2; i++) + for (j = 0; j < gridsize + 2; j++) + { + (*plgrid)[i][j][0] = (double) (i - 0.5) / (double) (gridsize); + (*plgrid)[i][j][1] = (double) (j - 0.5) / (double) (gridsize); + } + } + + else if (!strcmp (Print.space, "ipf")) + { + double* v110 = ut_alloc_1d (3); + double* p110 = ut_alloc_1d (3); + ut_array_1d_set_3 (v110, 0, OL_IS2, OL_IS2); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v110, p110); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v110, p110); + + double* v111 = ut_alloc_1d (3); + double* p111 = ut_alloc_1d (3); + ut_array_1d_set_3 (v111, OL_IS3, OL_IS3, OL_IS3); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v111, p111); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v111, p111); + + for (i = 0; i < gridsize; i++) + for (j = 0; j < gridsize; j++) + { + (*pgrid)[i][j][0] = p110[1] * (double) (i + 0.5) / (double) (gridsize); + (*pgrid)[i][j][1] = p111[0] * (double) (j + 0.5) / (double) (gridsize); + if (!strcmp (Print.pfprojection, "stereographic")) + ol_stprojxy_vect ((*pgrid)[i][j], (*pPgrid)[i][j]); + else if (!strcmp (Print.pfprojection, "equal-area")) + ol_eaprojxy_vect ((*pgrid)[i][j], (*pPgrid)[i][j]); + else + abort(); + } + + for (i = 0; i < gridsize + 2; i++) + for (j = 0; j < gridsize + 2; j++) + { + (*plgrid)[i][j][0] = p110[1] * (double) (i - 0.5) / (double) (gridsize); + (*plgrid)[i][j][1] = p111[0] * (double) (j - 0.5) / (double) (gridsize); + } + + ut_free_1d (&v110); + ut_free_1d (&p110); + ut_free_1d (&v111); + ut_free_1d (&p111); + } + + return; +} + +void +nev_print_pf_ptsprint_density_odf (struct PRINT Print, double ***grid, double ***Pgrid, + double **borderpts, int borderptqty, double **pos, double *wgt, + int pqty, double **density, double *pmin, double *pmax) +{ + int i; + double mean, sum; + double INPFVSIG2 = 1. / (2 * Print.pfkernelsig * Print.pfkernelsig); + double INPFVSQRTSIG2PI = 1. / (Print.pfkernelsig * sqrt (2 * OL_PI)); + +#pragma omp parallel for private(i) + for (i = 0; i < Print.pfgridsize; i++) + { + int j, k; + double theta, *P = ol_vect_alloc (); + for (j = 0; j < Print.pfgridsize; j++) + { + if (ut_array_1d_norm (grid[i][j], 2) <= 1) + for (k = 0; k < pqty; k++) + { + if (!strcmp (Print.pfprojection, "stereographic")) + ol_stprojxy_vect (pos[k], P); + else if (!strcmp (Print.pfprojection, "equal-area")) + ol_eaprojxy_vect (pos[k], P); + else + abort(); + + ol_vect_vect_theta (P, Pgrid[i][j], &theta); + + if (theta > 90) + theta = 180 - theta; + + density[i][j] += INPFVSQRTSIG2PI * wgt[k] + * exp (-theta*theta * INPFVSIG2); + } + } + + ol_vect_free (P); + } + + int qty = 0; + sum = 0; + if (!strcmp (Print.space, "pf")) + { +#pragma omp parallel for private(i) + for (i = 0; i < Print.pfgridsize; i++) + { + int j; + + for (j = 0; j < Print.pfgridsize; j++) + if (ut_array_1d_norm (grid[i][j], 2) <= 1) + { +#pragma omp critical + sum += density[i][j]; +#pragma omp critical + qty++; + } + } + } + + else if (!strcmp (Print.space, "ipf")) + { +#pragma omp parallel for private(i) + for (i = 0; i < Print.pfgridsize; i++) + { + int j; + + for (j = 0; j < Print.pfgridsize; j++) + { + double *tmp = ut_alloc_1d (2); + + // 2 next lines to confirm (signs) + tmp[0] = grid[i][j][1]; + tmp[1] = -grid[i][j][0]; + if (ut_space_point_indomain_2d (grid[i][j], borderpts, borderptqty)) + { +#pragma omp critical + sum += density[i][j]; +#pragma omp critical + qty++; + } + + ut_free_1d (&tmp); + } + } + } + + if (qty == 0) + abort (); + mean = sum / qty; + + // FIXME + ut_array_2d_scale (density, Print.pfgridsize, Print.pfgridsize, 1. / mean); + + (*pmin) = ut_array_2d_min (density, Print.pfgridsize, Print.pfgridsize); + (*pmax) = ut_array_2d_max (density, Print.pfgridsize, Print.pfgridsize); + + return; +} + +void nev_print_pf_ptsprint_density_ldensity (struct PRINT Print, double **density, double ***lgrid, + double **ldensity) +{ + int i, j; + + // copying density to a larger map to avoid edge effects + + for (i = 0; i < Print.pfgridsize; i++) + ut_array_1d_memcpy (density[i], Print.pfgridsize, ldensity[i + 1] + 1); + + if (!strcmp (Print.pfshape, "full")) + for (i = 0; i <= Print.pfgridsize + 1; i++) + for (j = 0; j <= Print.pfgridsize + 1; j++) + { + double r = ut_array_1d_norm (lgrid[i][j], 2); + double theta; + + theta = (180 / OL_PI) * atan2 (lgrid[i][j][0], lgrid[i][j][1]); + if (r > 1 && r < 1 + 2. / Print.pfgridsize) + { + if (theta >= -45 && theta <= 45) + ldensity[i][j] = ldensity[i][j - 1]; + else if (theta >= 45 && theta <= 135) + ldensity[i][j] = ldensity[i - 1][j]; + else if ((theta >= 135 && theta <= 180) + || (theta >= -180 && (theta <= -135))) + ldensity[i][j] = ldensity[i][j + 1]; + else if (theta >= -135 && theta <= -45) + ldensity[i][j] = ldensity[i + 1][j]; + } + } + + else if (!strcmp (Print.pfshape, "quarter")) + { + for (i = 0; i <= Print.pfgridsize + 1; i++) + for (j = 0; j <= Print.pfgridsize + 1; j++) + { + double r = ut_array_1d_norm (lgrid[i][j], 2); + double theta; + + theta = (180 / OL_PI) * atan2 (lgrid[i][j][0], lgrid[i][j][1]); + if (r > 1 && r < 1 + 2. / Print.pfgridsize) + { + if (theta <= 45) + ldensity[i][j] = ldensity[i][j - 1]; + else + ldensity[i][j] = ldensity[i - 1][j]; + } + } + + for (j = 0; j <= Print.pfgridsize + 1; j++) + ldensity[0][j] = ldensity[1][j]; + for (i = 0; i <= Print.pfgridsize + 1; i++) + ldensity[i][0] = ldensity[i][1]; + ldensity[0][0] = ldensity[1][1]; + } + + else if (!strcmp (Print.space, "ipf")) + { + for (j = 0; j <= Print.pfgridsize + 1; j++) + { + ldensity[0][j] = ldensity[1][j]; + ldensity[Print.pfgridsize + 1][j] = ldensity[Print.pfgridsize][j]; + } + for (i = 0; i <= Print.pfgridsize + 1; i++) + { + ldensity[i][0] = ldensity[i][1]; + ldensity[i][Print.pfgridsize + 1] = ldensity[i][Print.pfgridsize]; + } + } + + return; +} + +void +nev_print_pf_ptsprint_density_write (FILE *file, char *basename, struct PRINT Print, + struct DATA Data, double ***lgrid, double **ldensity, + double min, double max) +{ + int i, partqty = 0; + char **parts = NULL; + int qty = 0; + char **tmp = NULL; + int tickqty; + double *tickvals = NULL; + char **ticks = NULL; + char *tickformat = NULL; + char *filename2 = ut_string_addextension (basename, ".level"); + + nev_print_pf_ptsprint_density_write_data (filename2, Print, lgrid, ldensity); + + nev_print_pf_ptsprint_density_write_text (file, filename2, Print); + + nev_print_scale_ticks (Data.Scale, &min, &max, &ticks, &tickvals, &tickqty, &tickformat); + + if (Data.Scale) + { + fprintf (file, "v[0][0] = %f;\n", min); + fprintf (file, "for (int i = 0; i < n0; ++i)\n"); + fprintf (file, " for (int j = 0; j < n0; ++j)\n"); + fprintf (file, " if (v[i][j] < v[0][0])\n"); + fprintf (file, " v[i][j] = v[0][0];\n"); + + fprintf (file, "v[0][1] = %f;\n", max); + fprintf (file, "for (int i = 0; i < n0; ++i)\n"); + fprintf (file, " for (int j = 0; j < n0; ++j)\n"); + fprintf (file, " if (v[i][j] > v[0][1])\n"); + fprintf (file, " v[i][j] = v[0][1];\n"); + } + + fprintf (file, "real[][] vt=new real[n0][n0];\n"); + fprintf (file, "for (int i = 0; i < n0; ++i)\n"); + fprintf (file, " for (int j = 0; j < n0; ++j)\n"); + fprintf (file, " {\n"); + fprintf (file, " vt[j][i] = v[i][j];\n"); + fprintf (file, " }\n"); + fprintf (file, "\n"); + + char *asygradient = NULL; + + // do not use much higher values (e.g., 1000), as it will cause errors in the + // PDF (at least when opened with mupdf - "too large ...") + neut_data_colscheme_asygradient (Data.ColScheme, 100, &asygradient); + + fprintf (file, "pen[] Palette=%s;\n", asygradient); + + ut_free_1d_char (&asygradient); + + double px = 1. / Print.pfgridsize; + + if (!strcmp (Print.pfshape, "full")) + fprintf (file, "bounds range=image(v,scale*%f*(-1,-1),scale*%f*(1,1),Palette);\n", + 1 + 2 * px, 1 + 2 * px); + // fprintf (file, "bounds range=image(v,scale*1.035*(-1,-1),scale*1.035*(1,1),Palette);\n"); + else if (!strcmp (Print.pfshape, "quarter")) + fprintf (file, "bounds range=image(vt,scale*(%f,%f),scale*(%f,%f),Palette);\n", + -px, px, 1 + px, -1 - px); + else if (!strcmp (Print.space, "ipf")) + { + double* v110 = ut_alloc_1d (3); + double* p110 = ut_alloc_1d (3); + double* v111 = ut_alloc_1d (3); + double* p111 = ut_alloc_1d (3); + + ut_array_1d_set_3 (v110, 0, OL_IS2, OL_IS2); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v110, p110); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v110, p110); + + ut_array_1d_set_3 (v111, OL_IS3, OL_IS3, OL_IS3); + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v111, p111); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v111, p111); + fprintf (file, "bounds range=image(v,scale*(%f,%f),scale*(%f,%f),Palette);\n", + 1. + px, -p111[0] / p110[1] * px, -px, p111[0] / p110[1] + p111[0] / p110[1] * px); + + ut_free_1d (&v110); + ut_free_1d (&p110); + ut_free_1d (&v111); + ut_free_1d (&p111); + } + + double y; + if (strcmp (Print.space, "ipf") != 0) + y = 0; + else + y = 2; + + fprintf (file, "%spicture bar;\n", Print.showscale ? "" : "// "); + + fprintf (file, "%spalette(bar,\"%s\",range,(0cm,0cm),(0.5cm,6cm),Right,Palette,\n", + Print.showscale ? "" : "// ", Data.ScaleTitle ? Data.ScaleTitle : "Density"); + + ut_list_break (Data.Scale, ":", &parts, &partqty); + + if (Print.showscale) + { + if (Data.Scale) + fprintf (file, " PaletteTicks(N=%d,n=1,trailingzero));\n", tickqty - 1); + else + fprintf (file, " PaletteTicks(N=%d,n=1,\"$%s$\"));\n", tickqty - 1, + tickformat); + } + + if (!strcmp (Print.pfshape, "full")) + fprintf (file, "%sadd(bar.fit(),point(E),W+%fS);\n", Print.showscale ? "" : "// ", y); + + else if (!strcmp (Print.pfshape, "quarter")) + fprintf (file, "%sadd(bar.fit(),point(E),W+%fS);\n", Print.showscale ? "" : "// ", y); + + if (!strcmp (Print.pfshape, "full")) + fprintf (file, "draw (contour (points, values, new real[] {"); + + else if (!strcmp (Print.pfshape, "quarter")) + fprintf (file, "draw (contour (scale(1,-1)*points, values, new real[] {"); + + else + { + double* v = ut_alloc_1d (3); + double* p110 = ol_p_alloc (); + ut_array_1d_set_3 (v, 0, OL_IS2, OL_IS2); + + if (! strcmp (Print.pfprojection, "stereographic")) + ol_vect_stprojxy (v, p110); + else if (! strcmp (Print.pfprojection, "equal-area")) + ol_vect_eaprojxy (v, p110); + + fprintf (file, "draw (contour (scale(1/%f)*points, values, new real[] {", + p110[1]); + + ut_free_1d (&p110); + ut_free_1d (&v); + } + + for (i = 1; i < tickqty; i++) + fprintf (file, "%.12f,", tickvals[i]); + fprintf (file, "}, operator --), new pen[] {"); + for (i = 1; i < tickqty - 1; i++) + fprintf (file, "%s+linewidth(%f),", "black", 0.5); + fprintf (file, "%s+linewidth(%f)});\n", "black", 0.5); + + ut_free_2d_char (&parts, partqty); + ut_free_2d_char (&tmp, qty); + ut_free_2d_char (&ticks, tickqty); + ut_free_1d (&tickvals); + ut_free_1d_char (&tickformat); + ut_free_1d_char (&filename2); + + return; +} + +void +nev_print_pf_ptsprint_density_write_text0 (FILE *file, struct PRINT Print) +{ + if (Print.space[0] == 'f') + { + fprintf (file, + "label(\"\\begin{tabular}{r@{}}Gaussian smoothing: $%g^{\\circ}$\\\\", Print.pfkernelsig); + } + else if (Print.space[0] == 'q') + { + fprintf (file, + "label(\"\\begin{tabular}{r@{}}%s\\\\Gaussian smoothing: $%g^{\\circ}$\\\\", + !strcmp (Print.pfprojection, "stereographic") ? "stereo. proj." : "equal-area proj.", + Print.pfkernelsig); + fprintf (file, + "\\end{tabular}\", scale(scale)*(%.3f,%.3f), NW, fontsize(8));\n", + 1., -1 - SMARGINPF * 0.465); + } + + else if (Print.space[0] == 'i') + { + char *legp = ut_alloc_1d_char (1000); + sprintf (legp, "$\\!\\left\\{%d%d%d\\right\\}$", + Print.pfpoles[0][0], Print.pfpoles[0][1], Print.pfpoles[0][2]); + + fprintf (file, + "label(\"\\begin{tabular}{l}%s\\\\%s\\\\Gaussian smoothing: $%g^{\\circ}$\\\\", + legp, !strcmp (Print.pfprojection, "stereographic") ? "stereo. proj." : "equal-area proj.", + Print.pfkernelsig); + + ut_free_1d_char (&legp); + + fprintf (file, + "\\end{tabular}\", scale(scale)*(%.3f,%.3f), SE, fontsize(8));\n", + - WMARGINPF / 2, 1.); + } + + return; +} + +void +nev_print_pf_ptsprint_density_write_mask (FILE *file, struct PRINT Print, double **borderpt, int borderptqty) +{ + char *color = NULL; + + ut_string_string (Print.scenebackground ? Print.scenebackground : "white", &color); + + if (!strcmp (Print.pfshape, "full")) + { + fprintf (file, "draw (scale(scale)*(-X--X), black);\n"); + fprintf (file, "draw (scale(scale)*(-Y--Y), black);\n"); + + fprintf (file, "path g = shift(O)*scale(scale*1.15)*((-X-Y)--(-X+Y)--(X+Y)--(X-Y)--cycle);\n"); + fprintf (file, "filldraw(shift(O)*scale(scale*1.00)*unitcircle^^g, evenodd+%s, %s);\n", color, color); + fprintf (file, "draw (shift(O)*scale(scale)*unitcircle, black);\n"); + } + + else if (!strcmp (Print.pfshape, "quarter")) + { + fprintf (file, "filldraw(shift(O)*scale(scale*1.00)*((-.05*X)--(-.05*X+.05*Y)--(1.05*X+0.05*Y)--(1.05*X)--cycle), evenodd+%s, %s);\n", color, color); + fprintf (file, "filldraw(shift(O)*scale(scale*1.00)*((.05*Y)--(.05*Y-.05*X)--(-1.05*Y-0.05*X)--(-1.05*Y)--cycle), evenodd+%s, %s);\n", color, color); + fprintf (file, "filldraw(shift(O)*scale(scale*1.00)*(arc(O,-Y,X)--(1.05*X)--(1.05*X-1.05*Y)--(-1.05*Y)--cycle), evenodd+%s, %s);\n", color, color); + fprintf (file, "draw (shift(O)*scale(scale)*arc(O,-Y,X), black);\n"); + fprintf (file, "draw (shift(O)*scale(scale)*(-Y--O--X), black);\n"); + } + + else if (!strcmp (Print.space, "ipf")) + { + fprintf (file, + "filldraw(shift(O)*scale(scale/%f)*(scale(1+1e-3)*line110111--(%f,%f)--(%f,%f)--(%f,%f)--cycle), evenodd+%s, %s);\n", borderpt[1][1], + -borderpt[borderptqty - 1][0], borderpt[borderptqty - 1][1] + 0.03, + -borderpt[borderptqty - 1][0] + 0.1, borderpt[borderptqty - 1][1] + 0.03, + -borderpt[borderptqty - 1][0] + 0.1, 0., color, color); + fprintf (file, "filldraw(scale(scale)*((-0.05,-0.05)--(-0.05,1.05)--(1.05,1.05)--(0,0)--(1.05,0)--(1.05,-0.05)--cycle), %s, %s);\n", color, color); + fprintf (file, "draw (scale(scale/%f)*border, black);\n", borderpt[1][1]); + } + + ut_free_1d_char (&color); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density3.c b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density3.c new file mode 100644 index 000000000..c223ca3f7 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density3.c @@ -0,0 +1,55 @@ +/* This id is part of the 'hermes' program. */ +/* Copyright (C) 2007-2010, Romain Quey. */ +/* See the COPYINPFG id in the top-level directory. */ + +#include "nev_print_pf_ptsprint_density_.h" + +void +nev_print_pf_ptsprint_density_write_data (char *filename, struct PRINT Print, double ***lgrid, + double **ldensity) +{ + int i, j; + FILE *file = ut_file_open (filename, "W"); + + for (i = 0; i <= Print.pfgridsize + 1; i++) + for (j = 0; j <= Print.pfgridsize + 1; j++) + fprintf (file, "%f %f %f\n", + lgrid[i][j][0], lgrid[i][j][1], ldensity[i][j]); + + ut_file_close (file, filename, "W"); + + return; +} + +void +nev_print_pf_ptsprint_density_write_text (FILE *file, char *filename2, struct PRINT Print) +{ + fprintf (file, "int n0 = %d;\n", Print.pfgridsize + 2); + fprintf (file, "int n = n0*n0;\n"); + fprintf (file, "pair[]points = new pair[n];\n"); + fprintf (file, "real[]values = new real[n];\n"); + fprintf (file, "\n"); + fprintf (file, "file in = (input (\"%s\")).line();\n", filename2); + fprintf (file, "real[][]tmp = in.dimension(0, 0);\n"); + fprintf (file, "for (int i = 0; i < n; ++i)\n"); + fprintf (file, "{\n"); + if (strcmp (Print.space, "ipf")) + fprintf (file, " points[i] = scale*(tmp[i][0], tmp[i][1]);\n"); + else + fprintf (file, " points[i] = scale*(tmp[i][0], tmp[i][1]);\n"); + fprintf (file, " values[i] = tmp[i][2];\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + + fprintf (file, "real[][] v=new real[n0][n0];\n"); + fprintf (file, "int id = 0;\n"); + fprintf (file, "for (int i = 0; i < n0; ++i)\n"); + fprintf (file, " for (int j = 0; j < n0; ++j)\n"); + fprintf (file, " {\n"); + fprintf (file, " v[i][j] = values[id];\n"); + fprintf (file, " ++id;\n"); + fprintf (file, " }\n"); + fprintf (file, "\n"); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density_.h b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density_.h new file mode 100644 index 000000000..b426d5324 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_pf/nev_print_pf_ptsprint_density/nev_print_pf_ptsprint_density_.h @@ -0,0 +1,43 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> +#include<math.h> +#include<limits.h> +#include<float.h> + +#include "ut.h" +#include "neut_v.h" +#include "nev_print_pf_ptsprint_density.h" + +#include "../../nev_print_utils/nev_print_utils.h" + +#define NMARGINPF 0.192 +#define SMARGINPF 0.192 +#define WMARGINPF 0.265 +#define EMARGINPF 0.265 + +extern void nev_print_pf_ptsprint_density_write (FILE *, char *, struct PRINT, struct DATA, double ***, double **, double, double); + +extern void nev_print_pf_ptsprint_density_write_text0 (FILE *file, struct PRINT Print); + +extern void nev_print_pf_ptsprint_density_grid (struct PRINT Print, + double ****pgrid, double ***pdensity, + double ****pPgrid, double ****plgrid, double ***pldensity); + +extern void nev_print_pf_ptsprint_density_odf (struct PRINT Print, double ***grid, double ***Pgrid, + double **coo, int borderptqty, double **pos, double *wgt, int pqty, double **density, + double *pmin, double *pmax); + +extern void nev_print_pf_ptsprint_density_ldensity (struct PRINT Print, double **density, double ***lgrid, + double **ldensity); + +extern void nev_print_pf_ptsprint_density_write_data (char *filename, struct PRINT Print, double ***lgrid, double **ldensity); + +extern void nev_print_pf_ptsprint_density_write_text (FILE *file, char *filename2, struct PRINT Print); + +extern void nev_print_pf_ptsprint_density_write_mask (FILE *, struct PRINT, double **borderpt, + int borderptqty); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png.h b/src/neper_v/nev_print/nev_print_png/nev_print_png.h index 8e8d06bac..00a1a3263 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png.h @@ -5,14 +5,16 @@ extern void nev_print_png (char *basename, struct PRINT Print, struct SIM Sim, struct TESS Tess, struct DATA *TessData, struct TESR Tesr, - struct DATA *pTesrData, struct NODES Nodes, + struct DATA *TesrData, struct NODES Nodes, struct MESH *Mesh, int SQty, struct NODES *SNodes, struct MESH *SMesh2D, struct DATA *pNodeData, struct DATA *MeshData, struct DATA *pCsysData, - struct POINT Point, struct DATA *pPointData, + struct POINT *Points, int PointQty, struct DATA *pPointData, struct DATA *SNodeData, struct DATA **SMeshData, int **SElt2dElt3d); +extern void nev_print_png_convert (char *, char *, int, int, int, int); + #include "nev_print_png_foot/nev_print_png_foot.h" #include "nev_print_png_header/nev_print_png_header.h" #include "nev_print_png_csys/nev_print_png_csys.h" diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png1.c index 2813bdf50..467f4c4cf 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png1.c @@ -7,17 +7,16 @@ void nev_print_png (char *basename, struct PRINT Print, struct SIM Sim, struct TESS Tess, struct DATA *TessData, struct TESR Tesr, - struct DATA *pTesrData, struct NODES Nodes, struct MESH *Mesh, + struct DATA *TesrData, struct NODES Nodes, struct MESH *Mesh, int SQty, struct NODES *SNodes, struct MESH *SMesh2D, struct DATA *pNodeData, struct DATA *MeshData, - struct DATA *pCsysData, struct POINT Point, - struct DATA *pPointData, struct DATA *SNodeData, + struct DATA *pCsysData, struct POINT *Points, int PointQty, + struct DATA *PointData, struct DATA *SNodeData, struct DATA **SMeshData, int **SElt2dElt3d) { - int i, valqty, imageheight, imagewidth; + int i, imageheight, imagewidth; FILE *file = NULL; - char *filename = NULL, *filename2 = NULL; - char **vals = NULL; + char *filename = NULL, *filename2 = ut_alloc_1d_char (10000); char *outdir = NULL; char *suffix = ut_alloc_1d_char (10); @@ -25,29 +24,25 @@ nev_print_png (char *basename, struct PRINT Print, struct SIM Sim, if (strcmp (outdir, ".")) ut_sys_mkdir (outdir); - ut_list_break (Print.imagesize, NEUT_SEP_DEP, &vals, &valqty); + neut_print_imagesize (Print, &imagewidth, &imageheight); - if (valqty != 2) - ut_print_message (2, 2, "Expression `%s' could not be processed.\n", - Print.imagesize); - ut_string_int (vals[0], &imagewidth); - ut_string_int (vals[1], &imageheight); - ut_free_2d_char (&vals, valqty); - - if (!strcmp (outdir, ".")) - filename = ut_string_addextension (basename, "pov"); - else - filename = ut_string_paste4 (outdir, "/", basename, ".pov"); + ut_file_dir_basename_extension_filename (outdir, basename, "pov", &filename); ut_print_message (0, 1, "Printing image...\n"); - file = ut_file_open (filename, "w"); + file = ut_file_open (filename, ut_list_testelt (Print.imageformat, + NEUT_SEP_NODEP, "pov") ? "w" : "W"); + nev_print_png_header (file, Print); if (Print.showcsys == 1) nev_print_png_csys (file, *pCsysData, Print); - if (Print.showpoint[0] > 0) - nev_print_png_point (file, "point", Point, *pPointData, Print); + for (i = 0; i < PointQty; i++) + if (Print.showpoint && Print.showpoint[i] && ut_array_1d_int_sum (Print.showpoint[i] + 1, Points[i].Qty)) + { + ut_print_message (0, 2, "Printing %s...\n", Points[i].Name); + nev_print_png_point (file, Points[i], PointData[i], Print, Print.showpoint[i]); + } // tessellation ------------------------------------------------------ if (Print.showtess == 1) @@ -60,7 +55,7 @@ nev_print_png (char *basename, struct PRINT Print, struct SIM Sim, if (Print.showtesr == 1) { ut_print_message (0, 2, "Printing raster tessellation...\n"); - nev_print_png_tesr (file, Print, Tesr, *pTesrData); + nev_print_png_tesr (file, Print, Tesr, TesrData); } // mesh -------------------------------------------------------------- @@ -86,158 +81,27 @@ nev_print_png (char *basename, struct PRINT Print, struct SIM Sim, if (ut_string_strcmp (SMeshData[i][2].ColDataType, "from_nodes")) nev_print_png_mesh2d (file, SNodes[i], SMesh2D[i], showelt2d, - SMeshData[i][2].Col, "elt", Print.sceneshadow); + SMeshData[i][2].Col, "elt", Print); else nev_print_png_mesh2d (file, SNodes[i], SMesh2D[i], showelt2d, - SNodeData[i].Col, "node", Print.sceneshadow); + SNodeData[i].Col, "node", Print); ut_free_1d_int (&showelt2d); } } nev_print_png_foot (file, Print); - ut_file_close (file, filename, "w"); + ut_file_close (file, filename, ut_list_testelt (Print.imageformat, + NEUT_SEP_NODEP, "pov") ? "w" : "W"); - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) - nev_print_png_pov2png (Print.povray, filename, imagewidth, imageheight, - Print.imageantialias, 2); + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png_convert (Print.povray, filename, imagewidth, imageheight, + Print.povrayantialiasing, 2); - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") == 0 - && ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects") == 0) + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") == 0 + && ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects") == 0) remove (filename); - ut_print_message (0, 1, "Printing scale...\n"); - - for (i = 0; i <= 3; i++) - if (!ut_string_strcmp (MeshData[i].ColDataType, "real")) - { - ut_print_message (0, 2, "Printing scale for dimension %d...\n", i); - - filename2 = ut_alloc_1d_char (strlen (basename) + strlen (outdir) + 100); - - if (!strcmp (outdir, ".")) - sprintf (filename2, "%s-scale%dd.pov", basename, i); - else - sprintf (filename2, "%s/%s-scale%dd.pov", outdir, basename, i); - - file = ut_file_open (filename2, "w"); - nev_print_png_scale (file, MeshData[i].ColScheme, MeshData[i].Scale, - MeshData[i].ScaleTitle); - ut_file_close (file, filename2, "w"); - - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) - nev_print_png_pov2png (Print.povray, filename2, 0.3 * imageheight, - imageheight, Print.imageantialias, 3); - - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - && !ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) - remove (filename2); - } - - if (!ut_string_strcmp ((*pNodeData).ColDataType, "real")) - { - ut_print_message (0, 2, "Printing scale for points...\n", i); - - if (!strcmp (outdir, ".")) - filename2 = ut_string_paste (basename, "-scalen.pov"); - else - filename2 = ut_string_paste4 (outdir, "/", basename, "-scalen.pov"); - - file = ut_file_open (filename2, "w"); - nev_print_png_scale (file, (*pNodeData).ColScheme, (*pNodeData).Scale, - (*pNodeData).ScaleTitle); - ut_file_close (file, filename2, "w"); - - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) - nev_print_png_pov2png (Print.povray, filename2, 0.3 * imageheight, - imageheight, Print.imageantialias, 3); - - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - && !ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) - remove (filename2); - } - - for (i = 0; i <= 5; i++) - if (!ut_string_strcmp (TessData[i].ColDataType, "real")) - { - ut_print_message (0, 2, "Printing scale for dim %d...\n", i); - - filename2 = ut_alloc_1d_char (strlen (basename) + strlen (outdir) + 100); - - if (i < 4) - sprintf (suffix, "%d", i); - else if (i == 4) - sprintf (suffix, "s"); - else if (i == 5) - sprintf (suffix, "c"); - else - abort (); - - if (!strcmp (outdir, ".")) - sprintf (filename2, "%s-scale%s.pov", basename, suffix); - else - sprintf (filename2, "%s/%s-scale%s.pov", outdir, basename, suffix); - - file = ut_file_open (filename2, "w"); - nev_print_png_scale (file, TessData[i].ColScheme, TessData[i].Scale, - TessData[i].ScaleTitle); - ut_file_close (file, filename2, "w"); - - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) - nev_print_png_pov2png (Print.povray, filename2, 0.3 * imageheight, - imageheight, Print.imageantialias, 3); - - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - && !ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) - remove (filename2); - } - - if (!ut_string_strcmp ((*pTesrData).ColDataType, "real")) - { - ut_print_message (0, 2, "Printing scale...\n"); - - if (!strcmp (outdir, ".")) - filename2 = ut_string_paste (basename, "-scale.pov"); - else - filename2 = ut_string_paste4 (outdir, "/", basename, "-scale.pov"); - - file = ut_file_open (filename2, "w"); - nev_print_png_scale (file, (*pTesrData).ColScheme, (*pTesrData).Scale, - (*pTesrData).ScaleTitle); - ut_file_close (file, filename2, "w"); - - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) - nev_print_png_pov2png (Print.povray, filename2, 0.3 * imageheight, - imageheight, Print.imageantialias, 3); - - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - && !ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) - remove (filename2); - } - - if (!ut_string_strcmp ((*pPointData).ColDataType, "real")) - { - ut_print_message (0, 2, "Printing scale for points...\n", i); - - if (!strcmp (outdir, ".")) - filename2 = ut_string_paste (basename, "-scalep.pov"); - else - filename2 = ut_string_paste4 (outdir, "/", basename, "-scalep.pov"); - - file = ut_file_open (filename2, "w"); - nev_print_png_scale (file, (*pPointData).ColScheme, (*pPointData).Scale, - (*pPointData).ScaleTitle); - ut_file_close (file, filename2, "w"); - - if (ut_list_testelt (Print.format, NEUT_SEP_NODEP, "png")) - nev_print_png_pov2png (Print.povray, filename2, 0.3 * imageheight, - imageheight, Print.imageantialias, 3); - - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov") - && !ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) - remove (filename2); - } - ut_free_1d_char (&filename); ut_free_1d_char (&filename2); ut_free_1d_char (&outdir); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png2.c b/src/neper_v/nev_print/nev_print_png/nev_print_png2.c index 352dd97e6..239f03cd0 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png2.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png2.c @@ -5,39 +5,38 @@ #include"nev_print_png_.h" void -nev_print_png_pov2png (char *povray, char *filename, int imagewidth, - int imageheight, int imageantialias, int messagetag) +nev_print_png_convert (char *povray, char *filename, int imagewidth, + int imageheight, int antialiasing, int messagetag) { - char *outfilename = NULL; + char *pngfilename = NULL; char *command = ut_alloc_1d_char (1000); neut_povray_check (povray); - ut_string_string (filename, &outfilename); - outfilename[strlen (outfilename) - 2] = 'n'; - outfilename[strlen (outfilename) - 1] = 'g'; + ut_string_string (filename, &pngfilename); + ut_string_fnrs (pngfilename, ".pov", ".png", 1); if (messagetag >= 0) ut_print_message (0, messagetag, "Generating png file (%dx%d pixels)...\n", imagewidth, imageheight); - remove (outfilename); + remove (pngfilename); - ut_file_openmessage (outfilename, "w"); + ut_file_openmessage (pngfilename, "w"); sprintf (command, "%s Input_File_Name=%s +O%s +W%d +H%d -D %s 2>/dev/null", - povray, filename, outfilename, imagewidth, imageheight, - imageantialias > 0 ? "+A0.2" : ""); + povray, filename, pngfilename, imagewidth, imageheight, + antialiasing > 0 ? "+A0.2" : ""); - if (system (command) == -1 || !ut_file_exist (outfilename)) + if (system (command) == -1 || !ut_file_exist (pngfilename)) { ut_print_message (2, 3, "File `%s' could not be generated!\n", - outfilename); + pngfilename); sprintf (command, "%s Input_File_Name=%s +O%s +W%d +H%d -D %s", povray, - filename, outfilename, imagewidth, imageheight, - imageantialias > 0 ? "+A0.2" : ""); + filename, pngfilename, imagewidth, imageheight, + antialiasing > 0 ? "+A0.2" : ""); // otherwise, printing debugging info. ut_print_message (2, 3, @@ -45,9 +44,9 @@ nev_print_png_pov2png (char *povray, char *filename, int imagewidth, command); } - ut_file_closemessage (outfilename, "w"); + ut_file_closemessage (pngfilename, "w"); - ut_free_1d_char (&outfilename); + ut_free_1d_char (&pngfilename); ut_free_1d_char (&command); return; diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_.h index 1c3158f5c..6aac5f28e 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_.h @@ -19,5 +19,3 @@ #include "nev_print_png_point/nev_print_png_point.h" #include "nev_print_png.h" - -extern void nev_print_png_pov2png (char *, char *, int, int, int, int); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys1.c index f64bbaaf5..6c38b956b 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys1.c @@ -13,12 +13,13 @@ nev_print_png_csys (FILE * file, struct DATA CsysData, struct PRINT Print) double **s = ol_g_alloc (); char *edge_rad = ut_alloc_1d_char (10); char *edge_texture = ut_alloc_1d_char (100); + char *tmp = NULL; fprintf (file, "#declare csys =\n"); fprintf (file, - " texture { pigment { rgbt <%f,%f,%f,0.> } finish {ambient 0.600000} }", + " texture { pigment { rgbt <%f,%f,%f,0.> } finish {ambient %f diffuse %f reflection %f} }", CsysData.Col[1][0] / 255., CsysData.Col[1][1] / 255., - CsysData.Col[1][2] / 255.); + CsysData.Col[1][2] / 255., Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (edge_rad, "%f", CsysData.Rad[1]); sprintf (edge_texture, "csys"); @@ -28,10 +29,16 @@ nev_print_png_csys (FILE * file, struct DATA CsysData, struct PRINT Print) ut_array_1d_memcpy (CsysData.Coo[1], 3, O); + double *data = ut_alloc_1d (5); + for (i = 0; i < 3; i++) if (strlen (CsysData.Label[i]) > 0) { - nev_print_png_arrow (file, O, g[i], edge_rad, edge_texture); + data[0] = CsysData.Rad[1]; + data[1] = CsysData.Length[1]; + ut_array_1d_memcpy (g[i], 3, data + 2); + + nev_print_png_arr (file, O, data, edge_texture); fprintf (file, "#declare CamLoc = <%f,%f,%f>;\n", Print.cameracoo[0], Print.cameracoo[1], Print.cameracoo[2]); @@ -53,8 +60,10 @@ nev_print_png_csys (FILE * file, struct DATA CsysData, struct PRINT Print) fprintf (file, "#declare TransVec3=vnormalize(vcross(TransVec1,TransVec2));\n"); fprintf (file, "#declare X%d =\n", i + 1); - fprintf (file, "text {ttf \"timrom.ttf\" \"%s\" 0, 0\n", - CsysData.Label[i]); + ut_string_string (CsysData.Label[i], &tmp); + ut_string_fnrs (tmp, "_", "", 1); + ut_string_fnrs (tmp, "$", "", INT_MAX); + fprintf (file, "text {ttf \"timrom.ttf\" \"%s\" 0, 0\n", tmp); fprintf (file, "pigment {rgb<0,0,0>}\n"); fprintf (file, "scale %f\n", 0.1 * CsysData.FontSize); fprintf (file, @@ -66,11 +75,13 @@ nev_print_png_csys (FILE * file, struct DATA CsysData, struct PRINT Print) i + 1, s[i][0], s[i][1], s[i][2]); } + ut_free_1d (&data); ut_free_1d (&O); ol_g_free (g); ol_g_free (s); ut_free_1d_char (&edge_rad); ut_free_1d_char (&edge_texture); + ut_free_1d_char (&tmp); return; } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys_.h index 98fe40659..aed163c08 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_csys/nev_print_png_csys_.h @@ -7,6 +7,7 @@ #include<string.h> #include<math.h> #include<orilib.h> +#include<limits.h> #include"ut.h" #include"neut_v.h" diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_foot/nev_print_png_foot1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_foot/nev_print_png_foot1.c index 75ad22691..0d0991c3e 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_foot/nev_print_png_foot1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_foot/nev_print_png_foot1.c @@ -54,7 +54,7 @@ nev_print_png_foot (FILE * file, struct PRINT Print) } } - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) { fprintf (file, "rotate<-90, 0, 0>\n"); fprintf (file, "scale < 1, 1, -1>\n"); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header1.c index ea854747b..769ce8de5 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header1.c @@ -7,7 +7,10 @@ void nev_print_png_header (FILE * file, struct PRINT Print) { - if (!ut_list_testelt (Print.format, NEUT_SEP_NODEP, "pov:objects")) + int i; + int *rgb = ut_alloc_1d_int (3); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) { fprintf (file, "#version 3.7;\n"); fprintf (file, "#include \"shapes.inc\"\n"); @@ -38,15 +41,64 @@ nev_print_png_header (FILE * file, struct PRINT Print) fprintf (file, "}\n"); - if (Print.sceneshadow == 1) - fprintf (file, - "light_source { <%f, %f, %f> rgb<1, 1, 1> shadowless }\n\n", - Print.cameracoo[0], Print.cameracoo[2], Print.cameracoo[1]); + for (i = 0; i < Print.lightsourceqty; i++) + if (!strncmp (Print.lightsources[i], "point", 5)) + { + int size; + char *fct = NULL, **vars = NULL, **vals = NULL; + + ut_string_function (Print.lightsources[i], &fct, &vars, &vals, &size); + + int j; + int shadow = 0; + double *coo = ut_alloc_1d (3); + char *col = NULL; + ut_string_string ("white", &col); + + for (j = 0; j < size; j++) + { + if (!strcmp (vars[j], "coo")) + { + if (!strcmp (vals[j], "camera")) + ut_array_1d_memcpy (Print.cameracoo, 3, coo); + else + { + int qty, k; + char **tmp = NULL; + ut_list_break (vals[j], NEUT_SEP_DEP, &tmp, &qty); + if (qty != 3) + ut_print_exprbug (vals[j]); + for (k = 0; k < 3; k++) + coo[k] = atof (tmp[k]); + ut_free_2d_char (&tmp, qty); + } + } + else if (!strcmp (vars[j], "col")) + ut_string_string (vals[j], &col); + else if (!strcmp (vars[j], "shadow")) + shadow = atoi (vals[j]); + else + ut_print_exprbug (vals[j]); + } + + ut_color_name_rgb (col, rgb); + fprintf (file, + "light_source { <%f, %f, %f> rgb<%f, %f, %f> %s}\n\n", + coo[0], coo[2], coo[1], rgb[0] / 255., rgb[1] / 255., rgb[2] / 255., + !shadow ? "shadowless" : ""); + + ut_free_1d (&coo); + ut_free_1d_char (&col); + ut_free_2d_char (&vars, size); + ut_free_2d_char (&vals, size); + } fprintf (file, "global_settings { assumed_gamma 2.2 }\n"); } fprintf (file, "union {\n\n"); + ut_free_1d_int (&rgb); + return; } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header_.h index 7829d0b74..2d6876400 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_header/nev_print_png_header_.h @@ -5,6 +5,7 @@ #include<stdio.h> #include<stdlib.h> #include<string.h> +#include<ctype.h> #include<math.h> #include"ut.h" diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_0d/nev_print_png_mesh_0d1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_0d/nev_print_png_mesh_0d1.c index d43f79e77..669ff25ee 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_0d/nev_print_png_mesh_0d1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_0d/nev_print_png_mesh_0d1.c @@ -9,7 +9,6 @@ nev_print_png_mesh_0d (FILE * file, struct PRINT Print, struct MESH *Mesh, struct DATA NodeData, struct DATA *MeshData) { int i; - double ambient = (Print.sceneshadow == 1) ? 0.6 : 1; char *texture = ut_alloc_1d_char (100); if (MeshData[0].Qty > 0) @@ -20,10 +19,10 @@ nev_print_png_mesh_0d (FILE * file, struct PRINT Print, struct MESH *Mesh, if (Print.showelt0d[i] == 1) { fprintf (file, - "#declare elt0d%d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", + "#declare elt0d%d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", i, MeshData[0].Col[i][0] / 255., MeshData[0].Col[i][1] / 255., MeshData[0].Col[i][2] / 255., - ambient); + Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "elt0d%d", i); @@ -33,13 +32,9 @@ nev_print_png_mesh_0d (FILE * file, struct PRINT Print, struct MESH *Mesh, if (print == 1) { - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", MeshData[0].Rad[i]); nev_print_png_sphere (file, NodeData.Coo[Mesh[0].EltNodes[i][0]], - string, texture); - + MeshData[0].Rad[i], texture); printelt0d_qty++; - ut_free_1d_char (&string); } } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_1d/nev_print_png_mesh_1d1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_1d/nev_print_png_mesh_1d1.c index df92bbfce..27d3ceff1 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_1d/nev_print_png_mesh_1d1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_1d/nev_print_png_mesh_1d1.c @@ -10,7 +10,6 @@ nev_print_png_mesh_1d (FILE * file, struct PRINT Print, struct TESS Tess, struct DATA *MeshData) { int i, j, elset, elt1d_qty, elt3dqty, printelt1d_qty, texture_unique; - double ambient = (Print.sceneshadow == 1) ? 0.6 : 1; char *texture = NULL; int *hidden = NULL; int *elts3d = NULL; @@ -75,8 +74,8 @@ nev_print_png_mesh_1d (FILE * file, struct PRINT Print, struct TESS Tess, if (texture_unique) { fprintf (file, - "#declare elt1d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", - Col[0] / 255., Col[1] / 255., Col[2] / 255., ambient); + "#declare elt1d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", + Col[0] / 255., Col[1] / 255., Col[2] / 255., Print.lightambient, Print.lightdiffuse, Print.lightreflection); strcpy (texture, "elt1d"); } @@ -88,22 +87,19 @@ nev_print_png_mesh_1d (FILE * file, struct PRINT Print, struct TESS Tess, if (!texture_unique) { fprintf (file, - "#declare elt1d%d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", + "#declare elt1d%d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", i, MeshData[1].Col[i][0] / 255., MeshData[1].Col[i][1] / 255., MeshData[1].Col[i][2] / 255., - ambient); + Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "elt1d%d", i); } - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", MeshData[1].Rad[i]); nev_print_png_segment_wsph (file, NodeData.Coo[Mesh[1].EltNodes[i][0]], - NodeData.Coo[Mesh[1].EltNodes[i][1]], string, + NodeData.Coo[Mesh[1].EltNodes[i][1]], MeshData[1].Rad[i], texture); printelt1d_qty++; - ut_free_1d_char (&string); } ut_print_message (0, 4, diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d2.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d2.c index 3fc30029c..be81e3274 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d2.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d2.c @@ -11,7 +11,7 @@ nev_print_png_mesh_2d_print (FILE * file, struct PRINT Print, struct NODES N, { nev_print_png_mesh_2d_print_faces (file, Print, N, M2D, NodeData, MeshData); - nev_print_png_mesh_2d_print_edges (file, Print.sceneshadow, N, M1D, MeshData); + nev_print_png_mesh_2d_print_edges (file, Print, N, M1D, MeshData); return; } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d3.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d3.c index ac37d535a..db13cf89f 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d3.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d3.c @@ -29,8 +29,7 @@ nev_print_png_mesh_2d_print_faces (FILE * file, struct PRINT Print, for (i = 1; i <= N.NodeQty; i++) ut_array_1d_memcpy (NodeData.Coo[i], 3, N.NodeCoo[i]); - nev_print_png_mesh2d (file, N, M2D, Print.showelt2d, rgb, "elt", - Print.sceneshadow); + nev_print_png_mesh2d (file, N, M2D, Print.showelt2d, rgb, "elt", Print); ut_free_2d_int (&rgb, M2D.EltQty + 1); } @@ -45,8 +44,7 @@ nev_print_png_mesh_2d_print_faces (FILE * file, struct PRINT Print, for (i = 1; i <= N.NodeQty; i++) ut_array_1d_memcpy (NodeData.Coo[i], 3, N.NodeCoo[i]); - nev_print_png_mesh2d (file, N, M2D, Print.showelt2d, rgb, "node", - Print.sceneshadow); + nev_print_png_mesh2d (file, N, M2D, Print.showelt2d, rgb, "node", Print); ut_free_2d_int (&rgb, N.NodeQty + 1); } @@ -57,14 +55,12 @@ nev_print_png_mesh_2d_print_faces (FILE * file, struct PRINT Print, } void -nev_print_png_mesh_2d_print_edges (FILE * file, int sceneshadow, struct NODES N, +nev_print_png_mesh_2d_print_edges (FILE * file, struct PRINT Print, struct NODES N, struct MESH M1D, struct DATA *MeshData) { int i; double Rad; - double ambient = sceneshadow ? 0.6 : 1; char *texture = ut_alloc_1d_char (100); - char *string = ut_alloc_1d_char (100); int *Col = ut_alloc_1d_int (3); if (MeshData[2].Qty > 0) @@ -75,17 +71,15 @@ nev_print_png_mesh_2d_print_edges (FILE * file, int sceneshadow, struct NODES N, Rad = MeshData[2].BRad; fprintf (file, - "#declare elt3dedge =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", - Col[0] / 255., Col[1] / 255., Col[2] / 255., ambient); + "#declare elt3dedge =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", + Col[0] / 255., Col[1] / 255., Col[2] / 255., Print.lightambient, Print.lightdiffuse, Print.lightreflection); strcpy (texture, "elt3dedge"); - sprintf (string, "%.12f", Rad); for (i = 1; i <= M1D.EltQty; i++) nev_print_png_segment_wsph (file, N.NodeCoo[M1D.EltNodes[i][0]], - N.NodeCoo[M1D.EltNodes[i][1]], string, texture); + N.NodeCoo[M1D.EltNodes[i][1]], Rad, texture); - ut_free_1d_char (&string); ut_free_1d_char (&texture); ut_free_1d_int (&Col); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d_.h index 71bdb12e0..d63539586 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_2d/nev_print_png_mesh_2d_.h @@ -12,7 +12,7 @@ #include "nev_print_png_mesh_2d.h" #include "../../nev_print_png.h" -extern void nev_print_png_mesh_2d_print_edges (FILE * file, int, +extern void nev_print_png_mesh_2d_print_edges (FILE * file, struct PRINT Print, struct NODES N, struct MESH M1D, struct DATA *MeshData); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d2.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d2.c index e7f7cb645..6d17e4257 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d2.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d2.c @@ -174,7 +174,7 @@ nev_print_png_mesh_3d_print (FILE * file, struct PRINT Print, struct NODES N, nev_print_png_mesh_3d_print_faces (file, Print, N, M2D, elt2delt3d, nodes_new_old, NodeData, MeshData); - nev_print_png_mesh_3d_print_edges (file, Print.sceneshadow, N, M1D, MeshData); + nev_print_png_mesh_3d_print_edges (file, Print, N, M1D, MeshData); return; } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d3.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d3.c index 8e0110d89..e77692f81 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d3.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d3.c @@ -33,7 +33,7 @@ nev_print_png_mesh_3d_print_faces (FILE * file, struct PRINT Print, ut_array_1d_memcpy (NodeData.Coo[node], 3, N.NodeCoo[i]); } - nev_print_png_mesh2d (file, N, M2D, NULL, rgb, "elt", Print.sceneshadow); + nev_print_png_mesh2d (file, N, M2D, NULL, rgb, "elt", Print); ut_free_2d_int (&rgb, M2D.EltQty + 1); } @@ -54,7 +54,7 @@ nev_print_png_mesh_3d_print_faces (FILE * file, struct PRINT Print, ut_array_1d_memcpy (NodeData.Coo[node], 3, N.NodeCoo[i]); } - nev_print_png_mesh2d (file, N, M2D, NULL, rgb, "node", Print.sceneshadow); + nev_print_png_mesh2d (file, N, M2D, NULL, rgb, "node", Print); ut_free_2d_int (&rgb, N.NodeQty + 1); } @@ -65,14 +65,12 @@ nev_print_png_mesh_3d_print_faces (FILE * file, struct PRINT Print, } void -nev_print_png_mesh_3d_print_edges (FILE * file, int sceneshadow, struct NODES N, +nev_print_png_mesh_3d_print_edges (FILE * file, struct PRINT Print, struct NODES N, struct MESH M1D, struct DATA *MeshData) { int i; double Rad; - double ambient = sceneshadow ? 0.6 : 1; char *texture = ut_alloc_1d_char (100); - char *string = ut_alloc_1d_char (100); int *Col = ut_alloc_1d_int (3); if (MeshData[3].Qty > 0) @@ -93,17 +91,15 @@ nev_print_png_mesh_3d_print_edges (FILE * file, int sceneshadow, struct NODES N, } fprintf (file, - "#declare elt3dedge =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", - Col[0] / 255., Col[1] / 255., Col[2] / 255., ambient); + "#declare elt3dedge =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", + Col[0] / 255., Col[1] / 255., Col[2] / 255., Print.lightambient, Print.lightdiffuse, Print.lightreflection); strcpy (texture, "elt3dedge"); - sprintf (string, "%.12f", Rad); for (i = 1; i <= M1D.EltQty; i++) nev_print_png_segment_wsph (file, N.NodeCoo[M1D.EltNodes[i][0]], - N.NodeCoo[M1D.EltNodes[i][1]], string, texture); + N.NodeCoo[M1D.EltNodes[i][1]], Rad, texture); - ut_free_1d_char (&string); ut_free_1d_char (&texture); ut_free_1d_int (&Col); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d_.h index e00f3c765..10bf86786 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_3d/nev_print_png_mesh_3d_.h @@ -32,6 +32,6 @@ nev_print_png_mesh_3d_print_faces (FILE * file, struct PRINT Print, struct DATA NodeData, struct DATA *MeshData); extern void -nev_print_png_mesh_3d_print_edges (FILE * file, int sceneshadow, +nev_print_png_mesh_3d_print_edges (FILE * file, struct PRINT Print, struct NODES N, struct MESH M1D, struct DATA *MeshData); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_nodes/nev_print_png_mesh_nodes1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_nodes/nev_print_png_mesh_nodes1.c index a32e3e595..90e37f1c0 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_nodes/nev_print_png_mesh_nodes1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_mesh/nev_print_png_mesh_nodes/nev_print_png_mesh_nodes1.c @@ -9,7 +9,6 @@ nev_print_png_mesh_nodes (FILE * file, struct PRINT Print, struct NODES Nodes, struct MESH *Mesh, struct DATA NodeData) { int i, node_qty, printnode_qty; - double ambient = (Print.sceneshadow == 1) ? 0.6 : 1; char *texture = NULL; int *hidden = NULL; @@ -30,18 +29,14 @@ nev_print_png_mesh_nodes (FILE * file, struct PRINT Print, struct NODES Nodes, if (Print.shownode[i]) { fprintf (file, - "#declare node%d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", + "#declare node%d =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", i, NodeData.Col[i][0] / 255., NodeData.Col[i][1] / 255., - NodeData.Col[i][2] / 255., ambient); + NodeData.Col[i][2] / 255., Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "node%d", i); - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", NodeData.Rad[i]); - nev_print_png_sphere (file, NodeData.Coo[i], string, texture); - + nev_print_png_sphere (file, NodeData.Coo[i], NodeData.Rad[i], texture); printnode_qty++; - ut_free_1d_char (&string); } ut_print_message (0, 4, diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point.h index f355acb55..c1b2a1bb4 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point.h @@ -2,5 +2,5 @@ /* Copyright (C) 2003-2022, Romain Quey. */ /* See the COPYING file in the top-level directory. */ -extern void nev_print_png_point (FILE *, char *entity, struct POINT, struct DATA, - struct PRINT); +extern void nev_print_png_point (FILE *, struct POINT, struct DATA, + struct PRINT, int *); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point1.c index 387241f49..3696ba3de 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point1.c @@ -5,151 +5,83 @@ #include"nev_print_png_point_.h" void -nev_print_png_point (FILE * file, char *entity, struct POINT Point, struct DATA PointData, - struct PRINT Print) +nev_print_png_point (FILE * file, struct POINT Point, struct DATA PointData, + struct PRINT Print, int *show) { int i, point_qty, printpoint_qty, size; - double ambient = (Print.sceneshadow == 1) ? 0.6 : 1; char *texture = NULL, *bordertexture = NULL; int *hidden = NULL; - double *data = ut_alloc_1d (12); - int *show = NULL; - - if (strstr (entity, "point")) - show = Print.showpoint; - else if (strstr (entity, "crystal")) - show = Print.showcrystal; neut_data_type_size (PointData.RadDataType, &size); - point_qty = ut_array_1d_int_sum (show + 1, Point.PointQty); + point_qty = ut_array_1d_int_sum (show + 1, Point.Qty); if (point_qty == 0) return; texture = ut_alloc_1d_char (100); - hidden = ut_alloc_1d_int (Point.PointQty + 1); + hidden = ut_alloc_1d_int (Point.Qty + 1); - ut_array_1d_int_set (hidden + 1, Point.PointQty, 0); + ut_array_1d_int_set (hidden + 1, Point.Qty, 0); printpoint_qty = 0; if (PointData.BRad > 0) fprintf (file, - "#declare pointedge =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f} }\n", + "#declare pointedge =\n texture { pigment { rgb <%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", PointData.BCol[0] / 255., PointData.BCol[1] / 255., - PointData.BCol[2] / 255., ambient); + PointData.BCol[2] / 255., Print.lightambient, Print.lightdiffuse, Print.lightreflection); ut_string_string ("pointedge", &bordertexture); - for (i = 1; i <= Point.PointQty; i++) + for (i = 1; i <= Point.Qty; i++) if (show[i]) { + sprintf (texture, "point%d", i); + fprintf (file, - "#declare point%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare point%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", i, PointData.Col[i][0] / 255., PointData.Col[i][1] / 255., - PointData.Col[i][2] / 255., PointData.Trs[i], ambient); - - sprintf (texture, "point%d", i); + PointData.Col[i][2] / 255., PointData.Trs[i], Print.lightambient, Print.lightdiffuse, Print.lightreflection); char *string = ut_alloc_1d_char (100); - if (!strcmp (PointData.RadDataType, "none") - || !strcmp (PointData.RadDataType, "real")) - { - sprintf (string, "%.12f", PointData.Rad[i]); - nev_print_png_sphere (file, PointData.Coo[i], string, texture); - } - else + + if ((!strcmp (PointData.RadDataType, "none") + || !strcmp (PointData.RadDataType, "rad") + || !strcmp (PointData.RadDataType, "real")) + && (!PointData.SymbolDataType || strcmp (PointData.SymbolDataType, "string"))) + nev_print_png_sphere (file, PointData.Coo[i], PointData.Rad[i], texture); + + if (PointData.SymbolDataType && !strcmp (PointData.SymbolDataType, "string")) { - double **V = ol_g_alloc (); - double **Xp = ol_g_alloc (); - int j, k, l, start, length, id; - - if (!PointData.Space) - ut_array_1d_memcpy (PointData.RadData[i], size, data); - else if (!strcmp (PointData.Space, "rodrigues")) - { - double *dR = ol_R_alloc (); - double *R = ol_R_alloc (); - for (j = 0; j < 3; j++) - { - ol_R_set_zero (dR); - dR[j] = 0.001; - ol_R_R_R_ref (PointData.Coo[i], dR, R); - ut_array_1d_sub (PointData.Coo[i], R, 3, dR); - ut_array_1d_scale (dR, 3, 1. / 0.001); - ut_array_1d_memcpy (dR, 3, V[j]); - } - - ol_R_free (dR); - ol_R_free (R); - } - else - abort (); - - if (!strcmp (PointData.RadDataType, "cube")) - { - start = 1; - length = 9; - } - else if (!strcmp (PointData.RadDataType, "cyl")) - { - start = 2; - length = 3; - } - else if (!strcmp (PointData.RadDataType, "arr")) - { - start = 2; - length = 3; - } - else if (!strcmp (PointData.RadDataType, "tor")) - { - start = 2; - length = 3; - } - else if (!strcmp (PointData.RadDataType, "disc")) - { - start = 2; - length = 3; - } - else if (!strcmp (PointData.RadDataType, "ell")) - { - start = 3; - length = 9; - } - else - abort (); - - id = start; - for (k = 0; k < length / 3; k++) - for (l = 0; l < 3; l++) - Xp[k][l] = PointData.RadData[i][id++]; - - ol_g_g_g_ref (Xp, V, Xp); - - ut_array_1d_memcpy (PointData.RadData[i], start, data); - - id = start; - for (k = 0; k < length / 3; k++) - for (l = 0; l < 3; l++) - data[id++] = Xp[k][l]; - - if (!strcmp (PointData.RadDataType, "cube")) - nev_print_png_cube (file, PointData.Coo[i], data, texture, PointData.BRad, bordertexture); - else if (!strcmp (PointData.RadDataType, "cyl")) - nev_print_png_cyl (file, PointData.Coo[i], data, texture); - else if (!strcmp (PointData.RadDataType, "arr")) - nev_print_png_arr (file, PointData.Coo[i], data, texture); - else if (!strcmp (PointData.RadDataType, "tor")) - nev_print_png_tor (file, PointData.Coo[i], data, texture); - else if (!strcmp (PointData.RadDataType, "disc")) - nev_print_png_disc (file, PointData.Coo[i], data, texture); - else if (!strcmp (PointData.RadDataType, "ell")) - nev_print_png_ellipsoid (file, PointData.Coo[i], data, texture); - else - abort (); - - ol_g_free (Xp); - ol_g_free (V); + char *symbol = ut_alloc_1d_char (20); + double *params = ut_alloc_1d (20); + + nev_print_symbol_expr_params (PointData.Rad[i], PointData.SymbolData[i], symbol, params); + + if (!strcmp (symbol, "sphere")) + nev_print_png_sphere (file, PointData.Coo[i], params[0], texture); + + else if (!strcmp (symbol, "cube")) + nev_print_png_cube (file, PointData.Coo[i], params, texture, + PointData.BRad, bordertexture); + + else if (!strcmp (symbol, "cylinder")) + nev_print_png_cyl (file, PointData.Coo[i], params, texture); + + else if (!strcmp (symbol, "arrow")) + nev_print_png_arr (file, PointData.Coo[i], params, texture); + + else if (!strcmp (symbol, "circle") || !strcmp (symbol, "disc")) + nev_print_png_disc (file, PointData.Coo[i], params, texture); + + else if (!strcmp (symbol, "ellipsoid")) + nev_print_png_ellipsoid (file, PointData.Coo[i], params, texture); + + else if (!strcmp (symbol, "torus")) + nev_print_png_tor (file, PointData.Coo[i], params, texture); + + ut_free_1d_char (&symbol); + ut_free_1d (¶ms); } printpoint_qty++; @@ -161,7 +93,6 @@ nev_print_png_point (FILE * file, char *entity, struct POINT Point, struct DATA 100 * (double) hidden[0] / point_qty, point_qty - hidden[0]); - ut_free_1d (&data); ut_free_1d_char (&texture); ut_free_1d_char (&bordertexture); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point_.h index 42b4fdba2..4b6233c0d 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_point/nev_print_png_point_.h @@ -11,4 +11,5 @@ #include"ut.h" #include"neut_v.h" #include "../nev_print_png_utils/nev_print_png_utils.h" +#include "../../nev_print_utils/nev_print_utils.h" #include "nev_print_png_point.h" diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr.h index aa8e1e502..cd25aee65 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr.h @@ -3,4 +3,4 @@ /* See the COPYING file in the top-level directory. */ extern void nev_print_png_tesr (FILE *, struct PRINT, struct TESR, - struct DATA); + struct DATA *); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr1.c index b7200c34d..29e3e7d75 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_tesr/nev_print_png_tesr1.c @@ -6,7 +6,7 @@ void nev_print_png_tesr (FILE * file, struct PRINT Print, struct TESR Tesr, - struct DATA TesrData) + struct DATA* TesrData) { int i, j, k, elt, dim = Tesr.Dim, voidelset = Tesr.CellQty + 1; double *size = ut_alloc_1d (3); @@ -131,14 +131,14 @@ nev_print_png_tesr (FILE * file, struct PRINT Print, struct TESR Tesr, 1) * (Tesr.size[1] * Tesr.size[0]); - ut_array_1d_int_memcpy (TesrData.Col[id], 3, MeshData[dim].Col[i]); + ut_array_1d_int_memcpy (TesrData[1].Col[id], 3, MeshData[dim].Col[i]); ut_free_1d_int (&pos); ut_free_1d (&coo); } - MeshData[dim].BRad = TesrData.BRad; - ut_array_1d_int_memcpy (TesrData.BCol, 3, MeshData[dim].BCol); + MeshData[dim].BRad = TesrData[1].BRad; + ut_array_1d_int_memcpy (TesrData[1].BCol, 3, MeshData[dim].BCol); NodeData.Qty = Nodes.NodeQty; NodeData.Coo = ut_alloc_2d (Nodes.NodeQty + 1, 3); @@ -152,7 +152,7 @@ nev_print_png_tesr (FILE * file, struct PRINT Print, struct TESR Tesr, neut_mesh_entity_expr_val (Nodes, Mesh[0], Mesh[1], Mesh[2], Mesh[3], Mesh[4], Tess, NULL, NULL, NULL, NULL, - "elt1d", TesrData.RadDataName, MeshData[1].Rad, NULL); + "elt1d", TesrData[1].RadDataName, MeshData[1].Rad, NULL); nev_print_png_mesh_1d (file, Print, Tess, Mesh, NodeData, MeshData); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_tess/nev_print_png_tess1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_tess/nev_print_png_tess1.c index db6b885af..82331b76e 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_tess/nev_print_png_tess1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_tess/nev_print_png_tess1.c @@ -104,7 +104,6 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, double *p = ut_alloc_1d (3); double *p2 = NULL; - double ambient = (Print.sceneshadow == 1) ? 0.6 : 1; // Writing poly faces if (Tess.Dim == 3) @@ -129,8 +128,8 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, Trs /= qty; fprintf (file, - "#declare grainface%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", - i, Col[0] / 255., Col[1] / 255., Col[2] / 255., Trs, ambient); + "#declare grainface%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", + i, Col[0] / 255., Col[1] / 255., Col[2] / 255., Trs, Print.lightambient, Print.lightdiffuse, Print.lightreflection); ut_free_1d_int (&Col); @@ -146,7 +145,7 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, fprintf (file, "// poly face %d\n", face); nev_print_png_polygon (file, Tess.FaceEq[face], Tess.FaceVerQty[face], coo, - texture, NULL, NULL, Tess.FacePt[face] - 1, p2, NULL, + texture, 0, NULL, Tess.FacePt[face] - 1, p2, 0, NULL); ut_free_2d (&coo, Tess.FaceVerQty[face]); @@ -158,10 +157,10 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, face = facelist[i]; fprintf (file, - "#declare face%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare face%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", face, TessData[2].Col[face][0] / 255., TessData[2].Col[face][1] / 255., TessData[2].Col[face][2] / 255., - TessData[2].Trs[face], ambient); + TessData[2].Trs[face], Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "face%d", face); @@ -189,7 +188,7 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, fprintf (file, "// face %d\n", face); nev_print_png_polygon (file, Tess.FaceEq[face], Tess.FaceVerQty[face], coo, - texture, NULL, NULL, Tess.FacePt[face] - 1, p2, NULL, + texture, 0, NULL, Tess.FacePt[face] - 1, p2, 0, NULL); if (Print.showfaceinter == 1 && neut_tess_face_ff (Tess, face) > 0) @@ -208,8 +207,8 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, fprintf (file, "#declare faceinter_rad = %.12f;\n", faceinter_rad); fprintf (file, - "#declare faceinter_texture = texture { pigment { rgbt <0.5,0.5,0.5,%f> } finish {ambient %f} }\n", - faceinter_trs, ambient); + "#declare faceinter_texture = texture { pigment { rgbt <0.5,0.5,0.5,%f> } finish {ambient %f diffuse %f reflection %f} }\n", + faceinter_trs, Print.lightambient, Print.lightdiffuse, Print.lightreflection); // not printing the sphere at both extremities because they would // overlap with the regular edge spheres, which leads to bad @@ -217,7 +216,7 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, for (j = 0; j < Tess.FaceVerQty[face]; j++) { if (Tess.FacePt[face] <= 0) - nev_print_png_segment (file, p, coo[j], "faceinter_rad", + nev_print_png_segment (file, p, coo[j], faceinter_rad, "faceinter_texture"); else if (Tess.FacePt[face] != j + 1 && Tess.FacePt[face] != ut_array_rotpos (1, @@ -228,7 +227,7 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, Tess. FaceVerQty[face], j + 1, -1)) - nev_print_png_segment (file, p, coo[j], "faceinter_rad", + nev_print_png_segment (file, p, coo[j], faceinter_rad, "faceinter_texture"); } } @@ -244,10 +243,10 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, edge = edgelist[i]; fprintf (file, - "#declare edge%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare edge%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", edge, TessData[1].Col[edge][0] / 255., TessData[1].Col[edge][1] / 255., TessData[1].Col[edge][2] / 255., - TessData[1].Trs[edge], ambient); + TessData[1].Trs[edge], Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "edge%d", edge); @@ -256,10 +255,7 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, ut_array_1d_memcpy (Tess.VerCoo[Tess.EdgeVerNb[edge][0]], 3, coo[0]); ut_array_1d_memcpy (Tess.VerCoo[Tess.EdgeVerNb[edge][1]], 3, coo[1]); - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", TessData[1].Rad[edge]); - nev_print_png_segment_wsph (file, coo[0], coo[1], string, texture); - ut_free_1d_char (&string); + nev_print_png_segment_wsph (file, coo[0], coo[1], TessData[1].Rad[edge], texture); ut_free_2d (&coo, 2); } @@ -270,17 +266,14 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, ver = verlist[i]; fprintf (file, - "#declare ver%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare ver%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", ver, TessData[0].Col[ver][0] / 255., TessData[0].Col[ver][1] / 255., TessData[0].Col[ver][2] / 255., - TessData[0].Trs[ver], ambient); + TessData[0].Trs[ver], Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "ver%d", ver); - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", TessData[0].Rad[ver]); - nev_print_png_sphere (file, Tess.VerCoo[ver], string, texture); - ut_free_1d_char (&string); + nev_print_png_sphere (file, Tess.VerCoo[ver], TessData[0].Rad[ver], texture); } // Writing seeds @@ -289,17 +282,14 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, seed = seedlist[i]; fprintf (file, - "#declare seed%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare seed%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", seed, TessData[4].Col[seed][0] / 255., TessData[4].Col[seed][1] / 255., TessData[4].Col[seed][2] / 255., - TessData[4].Trs[seed], ambient); + TessData[4].Trs[seed], Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "seed%d", seed); - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", TessData[4].Rad[seed]); - nev_print_png_sphere (file, Tess.SeedCoo[seed], string, texture); - ut_free_1d_char (&string); + nev_print_png_sphere (file, Tess.SeedCoo[seed], TessData[4].Rad[seed], texture); } // Writing crystals @@ -309,19 +299,19 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, crystal = crystallist[i]; fprintf (file, - "#declare crystal%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare crystal%d =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", crystal, TessData[5].Col[crystal][0] / 255., TessData[5].Col[crystal][1] / 255., TessData[5].Col[crystal][2] / 255., - TessData[5].Trs[crystal], ambient); + TessData[5].Trs[crystal], Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (texture, "crystal%d", crystal); if (TessData[5].BRad > 0) fprintf (file, - "#declare crystal%dedge =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f} }\n", + "#declare crystal%dedge =\n texture { pigment { rgbt <%f,%f,%f,%f> } finish {ambient %f diffuse %f reflection %f} }\n", crystal, TessData[5].BCol[0] / 255., TessData[5].BCol[1] / 255., TessData[5].BCol[2] / 255., - TessData[5].BRad, ambient); + TessData[5].BRad, Print.lightambient, Print.lightdiffuse, Print.lightreflection); sprintf (bordertexture, "crystal%dedge", crystal); @@ -349,10 +339,7 @@ nev_print_png_tess (FILE * file, struct PRINT Print, struct TESS Tess, else { rad[0] = TessData[5].Rad[crystal]; - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", TessData[5].Rad[crystal]); - nev_print_png_sphere (file, coo, string, texture); - ut_free_1d_char (&string); + nev_print_png_sphere (file, coo, TessData[5].Rad[crystal], texture); } ut_free_1d_char (&string); ut_free_1d (&coo); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils.h index 7aebe03ea..d4b2c1493 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils.h @@ -2,25 +2,24 @@ /* Copyright (C) 2003-2022, Romain Quey. */ /* See the COPYING file in the top-level directory. */ -extern void nev_print_png_segment (FILE *, double *, double *, char *, char *); -extern void nev_print_png_segment_wsph (FILE *, double *, double *, char *, +extern void nev_print_png_segment (FILE *, double *, double *, double, char *); +extern void nev_print_png_segment_wsph (FILE *, double *, double *, double, char *); -extern void nev_print_png_arrow (FILE *, double *, double *, char *, char *); - extern void nev_print_png_cube (FILE *, double *, double *, char *, double, char *); extern void nev_print_png_cyl (FILE *, double *, double *, char *); extern void nev_print_png_arr (FILE *, double *, double *, char *); extern void nev_print_png_tor (FILE *, double *, double *, char *); extern void nev_print_png_disc (FILE *, double *, double *, char *); -extern void nev_print_png_sphere (FILE *, double *, char *, char *); +extern void nev_print_png_sphere (FILE *, double *, double, char *); extern void nev_print_png_ellipsoid (FILE *, double *, double *, char *); extern void nev_print_png_triangle_edge (FILE *, double *, double *, double *, char *, char *); extern void nev_print_png_triangle (FILE *, double *, double *, double *, char *, char *, char *); -extern void nev_print_png_polygon (FILE *, double*, int, double **, char *, char *, char *, - int, double *, char *, char *); -extern void nev_print_png_polygon_edge (FILE *, int, double **, char *, char *); +extern void nev_print_png_polygon (FILE * file, double *eq, int qty, double **coo, + char *texture, double edge_rad, char *edge_texture, int pt, + double *p, double iedge_rad, char *iedge_texture); +extern void nev_print_png_polygon_edge (FILE *, int, double **, double, char *); extern void nev_print_png_tet_edge (FILE *, double *, double *, double *, double *, char *, char *); @@ -28,8 +27,10 @@ extern void nev_print_png_tet (FILE *, double *, double *, double *, double *, char *, char *, char *); extern void nev_print_png_mesh2d (FILE *, struct NODES, struct MESH, int *, - int **, char *, int); + int **, char *, struct PRINT); extern void nev_print_png_scale (FILE *, char *, char *, char *); extern void nev_print_png_hcp (FILE * file, double *coo, double *rad, char *texture, double brad, char *bordertexture); +extern void nev_print_png_cone (FILE * file, double *coo1, double *coo2, double rad, + char *edge_texture); diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils1.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils1.c index ed49059bf..7195d73e5 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils1.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils1.c @@ -5,19 +5,19 @@ #include"nev_print_png_utils_.h" void -nev_print_png_segment (FILE * file, double *coo1, double *coo2, char *edge_rad, +nev_print_png_segment (FILE * file, double *coo1, double *coo2, double rad, char *edge_texture) { - if (!nev_print_png_cylinder_test (coo1, coo2, edge_rad)) + if (!nev_print_png_cylinder_test (coo1, coo2, rad)) return; fprintf (file, " cylinder {<%18.15g,%18.15g,%18.15g>,\n", coo1[0], coo1[1], coo1[2]); fprintf (file, " <%18.15g,%18.15g,%18.15g>,\n", coo2[0], coo2[1], coo2[2]); - fprintf (file, " %s\n", edge_rad); + fprintf (file, " %18.15g\n", rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); @@ -25,20 +25,20 @@ nev_print_png_segment (FILE * file, double *coo1, double *coo2, char *edge_rad, } void -nev_print_png_cone (FILE * file, double *coo1, double *coo2, char *edge_rad, +nev_print_png_cone (FILE * file, double *coo1, double *coo2, double rad, char *edge_texture) { - if (!nev_print_png_cylinder_test (coo1, coo2, edge_rad)) + if (!nev_print_png_cylinder_test (coo1, coo2, rad)) return; fprintf (file, " cone {<%18.15g,%18.15g,%18.15g>,\n", coo1[0], coo1[1], coo1[2]); - fprintf (file, " %s,\n", edge_rad); + fprintf (file, " %18.15g,\n", rad); fprintf (file, " <%18.15g,%18.15g,%18.15g>,\n", coo2[0], coo2[1], coo2[2]); fprintf (file, " 0\n"); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); @@ -47,34 +47,34 @@ nev_print_png_cone (FILE * file, double *coo1, double *coo2, char *edge_rad, void nev_print_png_segment_wsph (FILE * file, double *coo1, double *coo2, - char *edge_rad, char *edge_texture) + double rad, char *edge_texture) { - if (!nev_print_png_cylinder_test (coo1, coo2, edge_rad)) + if (!nev_print_png_cylinder_test (coo1, coo2, rad)) return; fprintf (file, " cylinder {<%18.15g,%18.15g,%18.15g>,\n", coo1[0], coo1[1], coo1[2]); fprintf (file, " <%18.15g,%18.15g,%18.15g>,\n", coo2[0], coo2[1], coo2[2]); - fprintf (file, " %s\n", edge_rad); + fprintf (file, " %18.15g\n", rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); fprintf (file, " sphere {<%18.15g,%18.15g,%18.15g>,\n", coo1[0], coo1[1], coo1[2]); - fprintf (file, " %s\n", edge_rad); + fprintf (file, " %18.15g\n", rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); fprintf (file, " sphere {<%18.15g,%18.15g,%18.15g>,\n", coo2[0], coo2[1], coo2[2]); - fprintf (file, " %s\n", edge_rad); + fprintf (file, " %18.15g\n", rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); @@ -82,18 +82,15 @@ nev_print_png_segment_wsph (FILE * file, double *coo1, double *coo2, } void -nev_print_png_sphere (FILE * file, double *coo, char *sphere_rad, char *texture) +nev_print_png_sphere (FILE * file, double *coo, double rad, char *texture) { - double rad; - - if (!sphere_rad || (sscanf (sphere_rad, "%lf", &rad) == 1 && rad <= 0)) + if (rad <= 0) return; - fprintf (file, " sphere {<%18.15g,%18.15g,%18.15g>,\n", coo[0], coo[1], - coo[2]); - fprintf (file, " %s\n", sphere_rad); + fprintf (file, " sphere {<%18.15g,%18.15g,%18.15g>,\n", coo[0], coo[1], coo[2]); + fprintf (file, " %18.15g\n", rad); - if (texture != NULL) + if (texture) fprintf (file, " texture { %s }\n", texture); fprintf (file, " }\n"); @@ -108,7 +105,7 @@ nev_print_png_ellipsoid (FILE * file, double *coo, double *rad, char *texture) rad[0], rad[1], rad[2], rad[3], rad[4], rad[5], rad[6], rad[7], rad[8], rad[9], rad[10], rad[11], coo[0], coo[1], coo[2]); - if (texture != NULL) + if (texture) fprintf (file, " texture { %s }\n", texture); fprintf (file, " }\n"); @@ -116,15 +113,15 @@ nev_print_png_ellipsoid (FILE * file, double *coo, double *rad, char *texture) } void -nev_print_png_cube (FILE * file, double *coo, double *rad, char *texture, +nev_print_png_cube (FILE * file, double *coo, double *data, char *texture, double brad, char *bordertexture) { fprintf (file, " box {<-.5,-.5,-.5>, <.5,.5,.5> scale %18.15g matrix <%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,0.,0.,0.> translate <%18.15g,%18.15g,%18.15g>\n", - 2 * rad[0], rad[1], rad[2], rad[3], rad[4], rad[5], rad[6], rad[7], - rad[8], rad[9], coo[0], coo[1], coo[2]); + 2 * data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], + data[8], data[9], coo[0], coo[1], coo[2]); - if (texture != NULL) + if (texture) fprintf (file, " texture { %s }\n", texture); fprintf (file, " }\n"); @@ -157,16 +154,13 @@ nev_print_png_cube (FILE * file, double *coo, double *rad, char *texture, fprintf (file, "union\n{\n"); - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", brad / (2 * rad[0])); for (i = 0; i < 12; i++) - nev_print_png_segment_wsph (file, vercoo[edges[i][0]], vercoo[edges[i][1]], string, bordertexture); - ut_free_1d_char (&string); + nev_print_png_segment_wsph (file, vercoo[edges[i][0]], vercoo[edges[i][1]], brad / (2 * data[0]), bordertexture); fprintf (file, " scale %18.15g matrix <%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,0.,0.,0.> translate <%18.15g,%18.15g,%18.15g>\n", - 2 * rad[0], rad[1], rad[2], rad[3], rad[4], rad[5], rad[6], rad[7], - rad[8], rad[9], coo[0], coo[1], coo[2]); + 2 * data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], + data[8], data[9], coo[0], coo[1], coo[2]); fprintf (file, "}\n"); @@ -241,11 +235,8 @@ nev_print_png_hcp (FILE * file, double *coo, double *rad, char *texture, fprintf (file, "union\n{\n"); - char *string = ut_alloc_1d_char (100); - sprintf (string, "%.12f", brad / (2 * rad[0])); for (i = 0; i < 18; i++) - nev_print_png_segment_wsph (file, vercoo[edges[i][0]], vercoo[edges[i][1]], string, bordertexture); - ut_free_1d_char (&string); + nev_print_png_segment_wsph (file, vercoo[edges[i][0]], vercoo[edges[i][1]], brad / (2 * rad[0]), bordertexture); fprintf (file, "scale %18.15g\n", rad[0]); // scaling to a fprintf (file, "matrix <%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,%18.15g,0.,0.,0.>\n", @@ -262,22 +253,22 @@ nev_print_png_hcp (FILE * file, double *coo, double *rad, char *texture, } void -nev_print_png_cyl (FILE * file, double *coo, double *rad, char *texture) +nev_print_png_cyl (FILE * file, double *coo, double *data, char *texture) { double *v = ut_alloc_1d (3); - ut_array_1d_memcpy (rad + 2, 3, v); + ut_array_1d_memcpy (data + 2, 3, v); ut_array_1d_scale (v, 3, 1. / ut_array_1d_norm (v, 3)); - ut_array_1d_scale (v, 3, rad[1] * .5); + ut_array_1d_scale (v, 3, data[1] * .5); - if (rad[0] > 0 && rad[1] > 0) + if (data[0] > 0 && data[1] > 0) { fprintf (file, " cylinder {<%18.15g,%18.15g,%18.15g>, <%18.15g,%18.15g,%18.15g>, %18.15g translate <%18.15g,%18.15g,%18.15g>\n", - -v[0], -v[1], -v[2], v[0], v[1], v[2], rad[0], coo[0], coo[1], + -v[0], -v[1], -v[2], v[0], v[1], v[2], data[0], coo[0], coo[1], coo[2]); - if (texture != NULL) + if (texture) fprintf (file, " texture { %s }\n", texture); fprintf (file, " }\n"); } @@ -287,49 +278,6 @@ nev_print_png_cyl (FILE * file, double *coo, double *rad, char *texture) return; } -void -nev_print_png_arr (FILE * file, double *coo, double *rad, char *texture) -{ - double *n = ut_alloc_1d (3); - double *v = ut_alloc_1d (3); - double fact = 3; - double fact2 = 2 * fact; - - ut_array_1d_memcpy (rad + 2, 3, v); - ut_array_1d_scale (v, 3, 1. / ut_array_1d_norm (v, 3)); - ut_array_1d_memcpy (v, 3, n); - ut_array_1d_scale (v, 3, rad[1] * .5); - - if (rad[0] > 0 && rad[1] > 0) - { - fprintf (file, - " cylinder {<%18.15g,%18.15g,%18.15g>, <%18.15g,%18.15g,%18.15g>, %18.15g translate <%18.15g,%18.15g,%18.15g>\n", - -v[0], -v[1], -v[2], v[0] - fact2 * rad[0] * n[0], - v[1] - fact2 * rad[0] * n[1], v[2] - fact2 * rad[0] * n[2], - rad[0], coo[0] + v[0], coo[1] + v[1], coo[2] + v[2]); - - if (texture != NULL) - fprintf (file, " texture { %s }\n", texture); - fprintf (file, " }\n"); - - fprintf (file, - " cone {<0.,0.,0.>, %18.15g <%18.15g,%18.15g,%18.15g>, 0. translate <%18.15g,%18.15g,%18.15g>\n", - fact * rad[0], fact2 * rad[0] * n[0], fact2 * rad[0] * n[1], - fact2 * rad[0] * n[2], coo[0] + 2 * v[0] - fact2 * rad[0] * n[0], - coo[1] + 2 * v[1] - fact2 * rad[0] * n[1], - coo[2] + 2 * v[2] - fact2 * rad[0] * n[2]); - - if (texture != NULL) - fprintf (file, " texture { %s }\n", texture); - fprintf (file, " }\n"); - } - - ut_free_1d (&v); - ut_free_1d (&n); - - return; -} - void nev_print_png_tor (FILE * file, double *coo, double *rad, char *texture) { @@ -348,7 +296,7 @@ nev_print_png_tor (FILE * file, double *coo, double *rad, char *texture) rad[0], rad[1], g[0][0], g[0][1], g[0][2], g[1][0], g[1][1], g[1][2], g[2][0], g[2][1], g[2][2], coo[0], coo[1], coo[2]); - if (texture != NULL) + if (texture) fprintf (file, " texture { %s }\n", texture); fprintf (file, " }\n"); } @@ -377,7 +325,7 @@ nev_print_png_disc (FILE * file, double *coo, double *rad, char *texture) " disc {<%18.15g,%18.15g,%18.15g>, <%18.15g,%18.15g,%18.15g>, %18.15g\n", coo[0], coo[1], coo[2], rad[1], rad[2], rad[3], rad[0]); - if (texture != NULL) + if (texture) fprintf (file, " texture { %s }\n", texture); fprintf (file, " }\n"); } @@ -418,7 +366,7 @@ nev_print_png_triangle_edge (FILE * file, double *coo1, double *coo2, coo1[1], coo1[2]); fprintf (file, " %s }\n", edge_rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); @@ -427,7 +375,7 @@ nev_print_png_triangle_edge (FILE * file, double *coo1, double *coo2, void nev_print_png_mesh2d (FILE * file, struct NODES Nodes, struct MESH Mesh, - int *showelt, int **rgb, char *coltype, int sceneshadow) + int *showelt, int **rgb, char *coltype, struct PRINT Print) { int i, showeltqty; @@ -457,7 +405,6 @@ nev_print_png_mesh2d (FILE * file, struct NODES Nodes, struct MESH Mesh, // texture_list fprintf (file, " texture_list {\n"); - double ambient = sceneshadow ? 0.6 : 1; int *elt_text = ut_alloc_1d_int (Mesh.EltQty + 1); if (strcmp (coltype, "elt") == 0) @@ -470,9 +417,9 @@ nev_print_png_mesh2d (FILE * file, struct NODES Nodes, struct MESH Mesh, { elt_text[i] = text_qty++; fprintf (file, - " texture{pigment{rgb<%.12f,%.12f,%.12f>} finish {ambient %.1f}}\n", + " texture{pigment{rgb<%.12f,%.12f,%.12f>} finish {ambient %f diffuse %f reflection %f}}\n", rgb[i][0] / 255., rgb[i][1] / 255., rgb[i][2] / 255., - ambient); + Print.lightambient, Print.lightdiffuse, Print.lightreflection); } } else if (strcmp (coltype, "node") == 0) @@ -482,8 +429,9 @@ nev_print_png_mesh2d (FILE * file, struct NODES Nodes, struct MESH Mesh, for (i = 1; i <= Nodes.NodeQty; i++) { fprintf (file, - " texture{pigment{rgb<%.12f,%.12f,%.12f>} finish {ambient %.1f}}\n", - rgb[i][0] / 255., rgb[i][1] / 255., rgb[i][2] / 255., ambient); + " texture{pigment{rgb<%.12f,%.12f,%.12f>} finish {ambient %f diffuse %f reflection %f}}\n", + rgb[i][0] / 255., rgb[i][1] / 255., rgb[i][2] / 255., Print.lightambient, + Print.lightdiffuse, Print.lightreflection); } } else @@ -628,7 +576,7 @@ nev_print_png_tet_edge (FILE * file, double *coo1, double *coo2, double *coo3, coo3[1], coo3[2]); fprintf (file, " %s }\n", edge_rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); @@ -636,13 +584,12 @@ nev_print_png_tet_edge (FILE * file, double *coo1, double *coo2, double *coo3, } void -nev_print_png_polygon_edge (FILE * file, int qty, double **coo, char *edge_rad, +nev_print_png_polygon_edge (FILE * file, int qty, double **coo, double rad, char *edge_texture) { int i; - double rad; - if (!edge_rad || (sscanf (edge_rad, "%lf", &rad) == 1 && rad <= 0)) + if (rad <= 0) return; fprintf (file, " union {\n"); @@ -653,15 +600,15 @@ nev_print_png_polygon_edge (FILE * file, int qty, double **coo, char *edge_rad, coo[i][1], coo[i][2]); fprintf (file, " <%18.15g,%18.15g,%18.15g>,\n", coo[i + 1][0], coo[i + 1][1], coo[i + 1][2]); - fprintf (file, " %s }\n", edge_rad); + fprintf (file, " %18.15g}\n", rad); } fprintf (file, " cylinder {<%18.15g,%18.15g,%18.15g>,\n", coo[qty - 1][0], coo[qty - 1][1], coo[qty - 1][2]); fprintf (file, " <%18.15g,%18.15g,%18.15g>,\n", coo[0][0], coo[0][1], coo[0][2]); - fprintf (file, " %s }\n", edge_rad); + fprintf (file, " %18.15g}\n", rad); - if (edge_texture != NULL) + if (edge_texture) fprintf (file, " texture { %s }\n", edge_texture); fprintf (file, " }\n"); @@ -670,8 +617,8 @@ nev_print_png_polygon_edge (FILE * file, int qty, double **coo, char *edge_rad, void nev_print_png_polygon (FILE * file, double *eq, int qty, double **coo, - char *texture, char *edge_rad, char *edge_texture, int pt, - double *p, char *iedge_rad, char *iedge_texture) + char *texture, double edge_rad, char *edge_texture, int pt, + double *p, double iedge_rad, char *iedge_texture) { int i, triqty, **tripos = NULL; double *c = ut_alloc_1d (3); @@ -697,7 +644,7 @@ nev_print_png_polygon (FILE * file, double *eq, int qty, double **coo, nev_print_png_polygon_edge (file, qty, coo, edge_rad, edge_texture); // drawing segment face interpolation - if (iedge_rad != NULL) + if (iedge_rad) for (i = 0; i < qty; i++) nev_print_png_segment (file, c, coo[i], iedge_rad, iedge_texture); @@ -723,258 +670,38 @@ nev_print_png_tet (FILE * file, double *coo1, double *coo2, double *coo3, } void -nev_print_png_scale (FILE * file, char *ColScheme, char *scale, char *scaletitle) +nev_print_png_arr (FILE * file, double *coo, double *data, char *texture) { int i; - struct NODES N; - struct MESH M; - double *coo = ut_alloc_1d (3); - int binqty = 100; - int *eltnodes = ut_alloc_1d_int (3); - char *minexpr = NULL, *maxexpr = NULL, *ticks = NULL; - char **parts = NULL; - char *tmp = NULL; - int qty; - char *format = ut_alloc_1d_char (100); - - double height = 1; - - double **data = ut_alloc_2d (2 * (binqty + 1) + 1, 1); - - double min, max; - - neut_nodes_set_zero (&N); - neut_mesh_set_zero (&M); - - ut_list_break (scale, NEUT_SEP_DEP, &parts, &qty); - if (qty < 2) - ut_print_neperbug (); - - ut_string_string (parts[0], &tmp); - ut_string_fnrs (tmp, "-", "", 1); - ut_string_format (tmp, format); - if (strstr (format, "d")) - ut_string_string ("%.0f", &format); - - ut_string_string (parts[0], &minexpr); - ut_string_string (parts[qty - 1], &maxexpr); - - if (qty > 2) - { - ticks = ut_alloc_1d_char (strlen (scale) + 1); - strcpy (ticks, scale); - } - - ut_string_real (minexpr, &min); - ut_string_real (maxexpr, &max); - - // In case min and max are equal, putting them apart a little - if (min == max) - { - if (min == 0) - { - min = -1e-12; - max = 1e-12; - } - else - { - min *= (1 - 1e-12); - max *= (1 + 1e-12); - } - } - - M.Dimension = 2; - ut_string_string ("tri", &(M.EltType)); - M.EltOrder = 1; - - // adding bottom nodes - coo[2] = 0; - coo[0] = 0; - neut_nodes_addnode (&N, coo, 0); - data[N.NodeQty][0] = min; - - coo[0] = -0.1; - neut_nodes_addnode (&N, coo, 0); - data[N.NodeQty][0] = min; - - // adding other nodes - for (i = 1; i <= binqty; i++) - { - coo[2] = height * i / (double) binqty; - - coo[0] = 0; - neut_nodes_addnode (&N, coo, 0); - data[N.NodeQty][0] = min + (max - min) * i / (double) binqty; - - coo[0] = -0.1; - neut_nodes_addnode (&N, coo, 0); - data[N.NodeQty][0] = data[N.NodeQty - 1][0]; - - eltnodes[0] = N.NodeQty - 1; - eltnodes[1] = N.NodeQty - 2; - eltnodes[2] = N.NodeQty - 3; - - neut_mesh_addelt (&M, eltnodes); - - eltnodes[0] = N.NodeQty; - eltnodes[1] = N.NodeQty - 2; - eltnodes[2] = N.NodeQty - 1; - - neut_mesh_addelt (&M, eltnodes); - } - - neut_mesh_addelset (&M, NULL, M.EltQty); - - neut_nodes_scale (&N, height, height, height); - - struct PRINT Print; - neut_print_set_default (&Print); - Print.cameralookat[0] = 0.05; - Print.cameralookat[1] = 0; - Print.cameralookat[2] = height / 2; - Print.cameracoo[0] = 0; - Print.cameracoo[1] = -5; - Print.cameracoo[2] = height / 2; - Print.cameraangle = 6; - sprintf (Print.cameraprojection, "orthographic"); - - Print.sceneshadow = 1; - - int **rgb = ut_alloc_2d_int (N.NodeQty + 1, 3); - - neut_data_real_color (data, NULL, N.NodeQty, scale, ColScheme, rgb, NULL); - - nev_print_png_header (file, Print); - nev_print_png_mesh2d (file, N, M, NULL, rgb, (char *) "elt", Print.sceneshadow); - nev_print_png_foot (file, Print); - - fprintf (file, "union {\n"); - fprintf (file, - "cylinder {<-0.1,0,0>,<-0.1,0,%f>,0.0025 texture {pigment{rgb<0,0,0>}}}\n", - height); - fprintf (file, - "cylinder {<0,0,0>,<0,0,%f>,0.0025 texture {pigment{rgb<0,0,0>}}}\n", - height); - fprintf (file, - "cylinder {<-0.1,0,0>,<0,0,0>,0.0025 texture {pigment{rgb<0,0,0>}}}\n"); - fprintf (file, - "cylinder {<-0.1,0,%f>,<0,0,%f>,0.0025 texture {pigment{rgb<0,0,0>}}}\n", - height, height); - - int valqty; - double z; - double *val = NULL; - char **valstring = NULL; - - if (!ticks) - { - valqty = 11; - val = ut_alloc_1d (valqty); - valstring = ut_alloc_2d_char (valqty, 11); - for (i = 0; i < valqty; i++) - { - val[i] = min + ((double) i / (valqty - 1)) * (max - min); - sprintf (valstring[i], format, val[i]); - } - } - else - { - ut_list_break_double (ticks, NEUT_SEP_DEP, &val, &valqty); - valstring = ut_alloc_2d_char (valqty, 100); - - for (i = 0; i < valqty; i++) - sprintf (valstring[i], format, val[i]); - } - - fprintf (file, "union {\n"); + double *n = ut_alloc_1d (3); - for (i = 0; i < valqty; i++) - { - z = height * (val[i] - min) / (max - min); + ut_array_1d_memcpy (data + 2, 3, n); + ut_array_1d_normalize (n, 3); - fprintf (file, - "cylinder {<-0.1,0,%f>,<0,0,%f>,0.0025 texture {pigment{rgb<0,0,0>}}}\n", - z, z); - - fprintf (file, "text {ttf \"timrom.ttf\" \"%s\" 0.1, 0\n", valstring[i]); - fprintf (file, "pigment {rgb<0,0,0>}\n"); - fprintf (file, "scale 0.06\n"); - fprintf (file, "rotate <90,0,0>\n"); - fprintf (file, "translate <0,0,%f>\n", z); - fprintf (file, "translate <0.02,0,-0.02>\n"); - fprintf (file, "}\n"); - } + double tail_rad = data[0]; + double tip_rad = data[0] * 3; + double total_length = data[1]; + double tip_length = 2 * tip_rad; + double tail_length = total_length - tip_length; + double *start = ut_alloc_1d (3); + double *end = ut_alloc_1d (3); - if (scaletitle) + if (data[0] > 0 && data[1] > 0) { - fprintf (file, "#declare ScaleTitle =\n"); - fprintf (file, "text {ttf \"timrom.ttf\" \"%s\" 0.1, 0\n", scaletitle); - fprintf (file, "pigment {rgb<0,0,0>}\n"); - fprintf (file, "scale 0.06\n"); - fprintf (file, "rotate <90,0,0>\n"); - if (strlen (scaletitle) > 3) - { - fprintf (file, "rotate <0,90,0>\n"); - fprintf (file, "translate <0,0,0.04>\n"); - } - - fprintf (file, "translate <0,0,0.46>\n"); - fprintf (file, "translate <0.17,0,0>\n"); - fprintf (file, "}\n"); - fprintf (file, "#declare Min = min_extent (ScaleTitle);\n"); - fprintf (file, "#declare Max = max_extent (ScaleTitle);\n"); - fprintf (file, "object {ScaleTitle translate - (Min - Max) / 2}\n"); - } - - ut_free_1d (&val); - ut_free_2d_char (&valstring, valqty); - - fprintf (file, "}\n"); + ut_array_1d_memcpy (coo, 3, start); + for (i = 0; i < 3; i++) + end[i] = coo[i] + tail_length * n[i]; - fprintf (file, "rotate<-90, 0, 0>\nscale<1,1,-1>}\n"); + nev_print_png_segment (file, start, end, tail_rad, texture); - neut_nodes_free (&N); - neut_mesh_free (&M); - ut_free_1d (&coo); - ut_free_1d_int (&eltnodes); - ut_free_1d_char (&tmp); + ut_array_1d_memcpy (end, 3, start); + for (i = 0; i < 3; i++) + end[i] = coo[i] + total_length * n[i]; - return; -} - -void -nev_print_png_arrow (FILE * file, double *O, double *v, char *edge_rad, - char *edge_texture) -{ - int i; - double **coo = ut_alloc_2d (3, 3); - char *tip_rad = ut_alloc_1d_char (strlen (edge_rad) + 6); - double edge_rad_val; - double *vnorm = ut_alloc_1d (3); - - ut_array_1d_memcpy (v, 3, vnorm); - ut_array_1d_scale (vnorm, 3, 1. / ut_array_1d_norm (vnorm, 3)); - - sscanf (edge_rad, "%lf", &edge_rad_val); - - sprintf (tip_rad, "3 * %s\n", edge_rad); - - for (i = 0; i < 3; i++) - { - coo[0][i] = O[i]; - coo[2][i] = O[i] + v[i]; + nev_print_png_cone (file, start, end, tip_rad, texture); } - for (i = 0; i < 3; i++) - coo[1][i] = coo[2][i] - 6 * edge_rad_val * vnorm[i]; - - nev_print_png_segment (file, coo[0], coo[1], edge_rad, edge_texture); - nev_print_png_cone (file, coo[1], coo[2], tip_rad, edge_texture); - nev_print_png_sphere (file, coo[0], edge_rad, edge_texture); - - ut_free_2d (&coo, 3); - ut_free_1d_char (&tip_rad); - ut_free_1d (&vnorm); + ut_free_1d (&n); return; } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils2.c b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils2.c index d9be7e644..64e5b8b60 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils2.c +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils2.c @@ -5,13 +5,7 @@ #include"nev_print_png_utils_.h" int -nev_print_png_cylinder_test (double *coo1, double *coo2, char *edge_rad) +nev_print_png_cylinder_test (double *coo1, double *coo2, double rad) { - double rad, dist = ut_space_dist (coo1, coo2); - - if (!edge_rad || (sscanf (edge_rad, "%lf", &rad) == 1 && rad <= 0) - || dist < 1e-9) - return 0; - else - return 1; + return !(rad <= 0 || ut_space_dist (coo1, coo2) < 1e-9); } diff --git a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils_.h b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils_.h index 715e56591..d4a9b5414 100644 --- a/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils_.h +++ b/src/neper_v/nev_print/nev_print_png/nev_print_png_utils/nev_print_png_utils_.h @@ -13,6 +13,7 @@ #include"neut_v.h" // #include"../../nefm/nefm.h" #include "nev_print_png_utils.h" +#include "../../nev_print_utils/nev_print_utils.h" #include "../nev_print_png_header/nev_print_png_header.h" #include "../nev_print_png_foot/nev_print_png_foot.h" @@ -20,11 +21,10 @@ extern void nev_print_png_triangle (FILE *, double *, double *, double *, char *, char *, char *); extern void nev_print_png_triangle_edge (FILE *, double *, double *, double *, char *, char *); -extern void nev_print_png_segment (FILE *, double *, double *, char *, char *); +extern void nev_print_png_segment (FILE *, double *, double *, double, char *); extern void nev_print_png_tet_edge (FILE *, double *, double *, double *, double *, char *, char *); extern void nev_print_png_tet (FILE *, double *, double *, double *, double *, char *, char *, char *); -extern int nev_print_png_cylinder_test (double *coo1, double *coo2, char - *edgerad); +extern int nev_print_png_cylinder_test (double *coo1, double *coo2, double rad); diff --git a/src/neper_v/nev_print/nev_print_scale/nev_print_scale.h b/src/neper_v/nev_print/nev_print_scale/nev_print_scale.h new file mode 100644 index 000000000..258058892 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_scale/nev_print_scale.h @@ -0,0 +1,7 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_print_scale (char *basename, struct PRINT Print, struct SIM Sim, + struct DATA *TessData, struct DATA *pTesrData, struct DATA *pNodeData, + struct DATA *MeshData, int PointQty, struct DATA *PointData); diff --git a/src/neper_v/nev_print/nev_print_scale/nev_print_scale1.c b/src/neper_v/nev_print/nev_print_scale/nev_print_scale1.c new file mode 100644 index 000000000..bec7d40d8 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_scale/nev_print_scale1.c @@ -0,0 +1,149 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_print_scale_.h" + +void +nev_print_scale (char *basename, struct PRINT Print, struct SIM Sim, + struct DATA *TessData, struct DATA *pTesrData, struct DATA *pNodeData, + struct DATA *MeshData, int PointQty, struct DATA *PointData) + +{ + int i, imageheight; + FILE *file = NULL; + char *filename2 = ut_alloc_1d_char (10000); + char *outdir = NULL; + char *suffix = ut_alloc_1d_char (10); + + neut_print_outdir (Print, Sim, "png", &outdir); + if (strcmp (outdir, ".")) + ut_sys_mkdir (outdir); + + neut_print_imagesize (Print, NULL, &imageheight); + + ut_print_message (0, 1, "Printing scale...\n"); + + for (i = 0; i <= 3; i++) + if (!ut_string_strcmp (MeshData[i].ColDataType, "real")) + { + ut_print_message (0, 2, "Printing scale for dimension %d...\n", i); + + sprintf (filename2, "%s-scale%dd", basename, i); + ut_file_dir_basename_extension_filename (outdir, filename2, "pov", &filename2); + + file = ut_file_open (filename2, "w"); + nev_print_png_scale (file, MeshData[i].ColScheme, MeshData[i].Scale, + MeshData[i].ScaleTitle); + ut_file_close (file, filename2, "w"); + + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png_convert (Print.povray, filename2, 0.3 * imageheight, + imageheight, Print.povrayantialiasing, 3); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + && !ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) + remove (filename2); + } + + if (!ut_string_strcmp ((*pNodeData).ColDataType, "real")) + { + ut_print_message (0, 2, "Printing scale for points...\n", i); + + sprintf (filename2, "%s-scalen", basename); + ut_file_dir_basename_extension_filename (outdir, filename2, "pov", &filename2); + + file = ut_file_open (filename2, "w"); + nev_print_png_scale (file, (*pNodeData).ColScheme, (*pNodeData).Scale, + (*pNodeData).ScaleTitle); + ut_file_close (file, filename2, "w"); + + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png_convert (Print.povray, filename2, 0.3 * imageheight, + imageheight, Print.povrayantialiasing, 3); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + && !ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) + remove (filename2); + } + + for (i = 0; i <= 5; i++) + if (!ut_string_strcmp (TessData[i].ColDataType, "real")) + { + ut_print_message (0, 2, "Printing scale for dim %d...\n", i); + + if (i < 4) + sprintf (suffix, "%d", i); + else if (i == 4) + sprintf (suffix, "s"); + else if (i == 5) + sprintf (suffix, "c"); + else + abort (); + + sprintf (filename2, "%s-scale%s", basename, suffix); + ut_file_dir_basename_extension_filename (outdir, filename2, "pov", &filename2); + + file = ut_file_open (filename2, "w"); + nev_print_png_scale (file, TessData[i].ColScheme, TessData[i].Scale, + TessData[i].ScaleTitle); + ut_file_close (file, filename2, "w"); + + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png_convert (Print.povray, filename2, 0.3 * imageheight, + imageheight, Print.povrayantialiasing, 3); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + && !ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) + remove (filename2); + } + + if (!ut_string_strcmp ((*pTesrData).ColDataType, "real")) + { + ut_print_message (0, 2, "Printing scale...\n"); + + sprintf (filename2, "%s-scale", basename); + ut_file_dir_basename_extension_filename (outdir, filename2, "pov", &filename2); + + file = ut_file_open (filename2, "w"); + nev_print_png_scale (file, (*pTesrData).ColScheme, (*pTesrData).Scale, + (*pTesrData).ScaleTitle); + ut_file_close (file, filename2, "w"); + + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png_convert (Print.povray, filename2, 0.3 * imageheight, + imageheight, Print.povrayantialiasing, 3); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + && !ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) + remove (filename2); + } + + for (i = 0; i < PointQty; i++) + if (!ut_string_strcmp (PointData[0].ColDataType, "real")) + { + ut_print_message (0, 2, "Printing scale for points...\n", i); + + sprintf (filename2, "%s-scalep", basename); + ut_file_dir_basename_extension_filename (outdir, filename2, "pov", &filename2); + + file = ut_file_open (filename2, "w"); + nev_print_png_scale (file, PointData[0].ColScheme, PointData[0].Scale, + PointData[0].ScaleTitle); + ut_file_close (file, filename2, "w"); + + if (ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "png")) + nev_print_png_convert (Print.povray, filename2, 0.3 * imageheight, + imageheight, Print.povrayantialiasing, 3); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov") + && !ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "pov:objects")) + remove (filename2); + } + + ut_free_1d_char (&filename2); + ut_free_1d_char (&outdir); + ut_free_1d_char (&suffix); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_scale/nev_print_scale2.c b/src/neper_v/nev_print/nev_print_scale/nev_print_scale2.c new file mode 100644 index 000000000..8e3c68551 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_scale/nev_print_scale2.c @@ -0,0 +1,161 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_print_scale_.h" + +void +nev_print_png_scale (FILE * file, char *ColScheme, char *scale, char *scaletitle) +{ + int i, tickqty; + double min, max, z, *tickvals = NULL; + char **ticks = NULL; + char *tickformat = NULL; + + nev_print_scale_ticks (scale, &min, &max, &ticks, &tickvals, &tickqty, &tickformat); + + int binqty = 1000; + double **data = ut_alloc_2d (2 * (binqty + 1) + 1, 1); + double *coo = ut_alloc_1d (3); + struct NODES N; + struct MESH M; + int *eltnodes = ut_alloc_1d_int (3); + + neut_nodes_set_zero (&N); + neut_mesh_set_zero (&M); + + M.Dimension = 2; + ut_string_string ("tri", &(M.EltType)); + M.EltOrder = 1; + + // adding bottom nodes + coo[2] = 0; + coo[0] = 0; + neut_nodes_addnode (&N, coo, 0); + data[N.NodeQty][0] = min; + + coo[0] = -0.1; + neut_nodes_addnode (&N, coo, 0); + data[N.NodeQty][0] = min; + + // adding other nodes + for (i = 1; i <= binqty; i++) + { + coo[2] = (double) i / (double) binqty; + + coo[0] = 0; + neut_nodes_addnode (&N, coo, 0); + data[N.NodeQty][0] = min + (max - min) * i / (double) binqty; + + coo[0] = -0.1; + neut_nodes_addnode (&N, coo, 0); + data[N.NodeQty][0] = data[N.NodeQty - 1][0]; + + eltnodes[0] = N.NodeQty - 1; + eltnodes[1] = N.NodeQty - 2; + eltnodes[2] = N.NodeQty - 3; + + neut_mesh_addelt (&M, eltnodes); + + eltnodes[0] = N.NodeQty; + eltnodes[1] = N.NodeQty - 2; + eltnodes[2] = N.NodeQty - 1; + + neut_mesh_addelt (&M, eltnodes); + } + + neut_mesh_addelset (&M, NULL, M.EltQty); + + neut_nodes_scale (&N, 1, 1, 1); + + struct PRINT Print; + neut_print_set_default (&Print); + Print.cameralookat[0] = 0.05; + Print.cameralookat[1] = 0; + Print.cameralookat[2] = 0.5; + Print.cameracoo[0] = 0; + Print.cameracoo[1] = -5; + Print.cameracoo[2] = 0.5; + Print.cameraangle = 6; + Print.lightambient = 0.6; + Print.lightdiffuse = 0.6; + ut_string_string ("point(coo=0:-5:0.5)", &(Print.lightsourcestring)); + Print.lightsourceqty = 1; + Print.lightsources = ut_alloc_1d_pchar (1); + ut_string_string ("point(coo=0:-5:0.5)", Print.lightsources); + sprintf (Print.cameraprojection, "orthographic"); + + int **rgb = ut_alloc_2d_int (N.NodeQty + 1, 3); + + neut_data_real_color (data, NULL, N.NodeQty, scale, ColScheme, rgb, NULL); + + nev_print_png_header (file, Print); + nev_print_png_mesh2d (file, N, M, NULL, rgb, (char *) "elt", Print); + nev_print_png_foot (file, Print); + + fprintf (file, "union {\n"); + fprintf (file, + "cylinder {<-0.1,0,0>,<-0.1,0,1>,0.0025 texture {pigment{rgb<0,0,0>}}}\n"); + fprintf (file, + "cylinder {<0,0,0>,<0,0,1>,0.0025 texture {pigment{rgb<0,0,0>}}}\n"); + fprintf (file, + "cylinder {<-0.1,0,0>,<0,0,0>,0.0025 texture {pigment{rgb<0,0,0>}}}\n"); + fprintf (file, + "cylinder {<-0.1,0,1>,<0,0,1>,0.0025 texture {pigment{rgb<0,0,0>}}}\n"); + + fprintf (file, "union {\n"); + + for (i = 0; i < tickqty; i++) + { + z = (tickvals[i] - min) / (max - min); + + fprintf (file, + "cylinder {<-0.1,0,%f>,<0,0,%f>,0.0025 texture {pigment{rgb<0,0,0>}}}\n", + z, z); + + fprintf (file, "text {ttf \"timrom.ttf\" \"%s\" 0.1, 0\n", ticks[i]); + fprintf (file, "pigment {rgb<0,0,0>}\n"); + fprintf (file, "scale 0.06\n"); + fprintf (file, "rotate <90,0,0>\n"); + fprintf (file, "translate <0,0,%f>\n", z); + fprintf (file, "translate <0.02,0,-0.02>\n"); + fprintf (file, "}\n"); + } + + if (scaletitle) + { + fprintf (file, "#declare ScaleTitle =\n"); + fprintf (file, "text {ttf \"timrom.ttf\" \"%s\" 0.1, 0\n", scaletitle); + fprintf (file, "pigment {rgb<0,0,0>}\n"); + fprintf (file, "scale 0.06\n"); + fprintf (file, "rotate <90,0,0>\n"); + if (strlen (scaletitle) > 3) + { + fprintf (file, "rotate <0,-90,0>\n"); + fprintf (file, "translate <0.08,0,0.04>\n"); + } + + fprintf (file, "translate <0,0,0.46>\n"); + fprintf (file, "translate <0.17,0,0>\n"); + fprintf (file, "}\n"); + fprintf (file, "#declare Min = min_extent (ScaleTitle);\n"); + fprintf (file, "#declare Max = max_extent (ScaleTitle);\n"); + fprintf (file, "object {ScaleTitle translate + (Min - Max) / 2}\n"); + } + + ut_free_1d (&tickvals); + ut_free_2d_char (&ticks, tickqty); + + fprintf (file, "}\n"); + + fprintf (file, "rotate<-90, 0, 0>\nscale<1,1,-1>}\n"); + + neut_nodes_free (&N); + neut_mesh_free (&M); + ut_free_1d (&coo); + ut_free_1d_int (&eltnodes); + ut_free_2d_char (&ticks, tickqty); + ut_free_1d_char (&tickformat); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_scale/nev_print_scale_.h b/src/neper_v/nev_print/nev_print_scale/nev_print_scale_.h new file mode 100644 index 000000000..4690199a1 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_scale/nev_print_scale_.h @@ -0,0 +1,17 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> +#include<math.h> +#include<limits.h> +#include<float.h> + +#include"ut.h" +#include"neut_v.h" +#include "nev_print_scale.h" + +#include "../nev_print_utils/nev_print_utils.h" +#include "../nev_print_png/nev_print_png.h" diff --git a/src/neper_v/nev_print/nev_print_tree/nev_print_tree.h b/src/neper_v/nev_print/nev_print_tree/nev_print_tree.h new file mode 100644 index 000000000..4de02a6b7 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_tree/nev_print_tree.h @@ -0,0 +1,5 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_print_tree (char *basename, struct PRINT Print, struct SIM Sim); diff --git a/src/neper_v/nev_print/nev_print_tree/nev_print_tree1.c b/src/neper_v/nev_print/nev_print_tree/nev_print_tree1.c new file mode 100644 index 000000000..1ab84f645 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_tree/nev_print_tree1.c @@ -0,0 +1,40 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_print_tree_.h" + +void +nev_print_tree (char *basename, struct PRINT Print, struct SIM Sim) +{ + char *filename = NULL, *outdir = NULL; + int imagewidth, imageheight; + + ut_print_message (0, 1, "Printing tree...\n"); + + if (neut_sim_isvoid (Sim)) + { + ut_print_message (1, 2, "Simulation directory is void. Skipping...\n"); + return; + } + + neut_print_outdir (Print, Sim, "pf", &outdir); + if (strcmp (outdir, ".")) + ut_sys_mkdir (outdir); + + neut_sim_fprintf_asy (basename, Sim, "w"); + + ut_file_dir_basename_extension_filename (outdir, basename, "asy", &filename); + + neut_print_imagesize (Print, &imagewidth, &imageheight); + neut_asy_convert (Print.asymptote, filename, imagewidth, imageheight, + Print.imageformat, 2); + + if (!ut_list_testelt (Print.imageformat, NEUT_SEP_NODEP, "asy")) + remove (filename); + + ut_free_1d_char (&filename); + ut_free_1d_char (&outdir); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_tree/nev_print_tree_.h b/src/neper_v/nev_print/nev_print_tree/nev_print_tree_.h new file mode 100644 index 000000000..7f8587e63 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_tree/nev_print_tree_.h @@ -0,0 +1,16 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> +#include<math.h> +#include<limits.h> +#include<float.h> + +#include"ut.h" +#include"neut_v.h" +#include "nev_print_tree.h" + +#include "../nev_print_utils/nev_print_utils.h" diff --git a/src/neper_v/nev_print/nev_print_utils/nev_print_utils.h b/src/neper_v/nev_print/nev_print_utils/nev_print_utils.h new file mode 100644 index 000000000..f722b3cf3 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_utils/nev_print_utils.h @@ -0,0 +1,17 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +extern void nev_print_symbol_expr_params (double rad, char *expr, char *symbol, double *params); +extern void nev_print_cube_expr_params (double rad, char *expr, double *params); +extern void nev_print_square_expr_params (double rad, char *expr, double *params); +extern void nev_print_cyl_expr_params (double rad, char *expr, double *params); +extern void nev_print_arr_expr_params (double rad, char *expr, double *params); +extern void nev_print_tor_expr_params (double rad, char *expr, double *params); +extern void nev_print_disc_expr_params (double rad, char *expr, double *params); +extern void nev_print_ellipsoid_expr_params (double rad, char *expr, double *params); +extern void nev_print_generic_expr_params (double rad, char *expr, double *params); + +extern void nev_print_scale_ticks (char *scale, double *pmin, double *pmax, + char ***pticks, double **ptickvals, int *ptickqty, + char **ptickformat); diff --git a/src/neper_v/nev_print/nev_print_utils/nev_print_utils1.c b/src/neper_v/nev_print/nev_print_utils/nev_print_utils1.c new file mode 100644 index 000000000..8880a0687 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_utils/nev_print_utils1.c @@ -0,0 +1,417 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include"nev_print_utils_.h" + +void +nev_print_symbol_expr_params (double rad, char *expr, char *symbol, double *params) +{ + char *fct = NULL; + + ut_string_function (expr, &fct, NULL, NULL, NULL); + strcpy (symbol, fct); + + if (!strcmp (fct, "cube")) + nev_print_cube_expr_params (rad, expr, params); + else if (!strcmp (fct, "cylinder")) + nev_print_cyl_expr_params (rad, expr, params); + else if (!strcmp (fct, "arrow")) + nev_print_arr_expr_params (rad, expr, params); + else if (!strcmp (fct, "torus")) + nev_print_tor_expr_params (rad, expr, params); + else if (!strcmp (fct, "circle") || !strcmp (fct, "disc")) + nev_print_disc_expr_params (rad, expr, params); + else if (!strcmp (fct, "ellipsoid")) + nev_print_ellipsoid_expr_params (rad, expr, params); + else // sphere and others + nev_print_generic_expr_params (rad, expr, params); + + ut_free_1d_char (&fct); + + return; +} + +void +nev_print_cube_expr_params (double rad, char *expr, double *params) +{ + int i, varqty = 0; + double **g = ol_g_alloc (); + char *fct = NULL, **vars = NULL, **vals = NULL; + + ol_g_set_id (g); + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + params[0] = rad; + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad")) + params[0] = atof (vals[i]); + else if (!strcmp (vars[i], "ori") || !strcmp (vars[i], "theta")) + ol_label_g (vals[i], g); + else + abort (); + } + + for (i = 0; i < 3; i++) + ut_array_1d_memcpy (g[i], 3, params + 1 + 3 * i); + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + ol_g_free (g); + + return; +} + +void +nev_print_generic_expr_params (double rad, char *expr, double *params) +{ + int i; + int varqty = 0; + char *fct = NULL, **vars = NULL, **vals = NULL; + + params[0] = rad; + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad")) + params[0] = atof (vals[i]); + else if (!strcmp (vars[i], "theta")) + params[1] = atof (vals[i]); + else + abort (); + } + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + + return; +} + +void +nev_print_cyl_expr_params (double rad, char *expr, double *params) +{ + int i, init_rad, init_length, varqty = 0; + char *fct = NULL, **vars = NULL, **vals = NULL; + double *v = ol_vect_alloc (); + + v[2] = 1.; + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + init_rad = 0; + init_length = 0; + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad")) + { + params[0] = atof (vals[i]); + init_rad = 1; + } + else if (!strcmp (vars[i], "length")) + { + params[1] = atof (vals[i]); + init_length = 1; + } + else if (!strcmp (vars[i], "axis")) + sscanf (vals[i], "(%lf,%lf,%lf)", v, v + 1, v + 2); + else + abort (); + } + + if (!init_rad) + params[0] = pow (2. / 9, 1. / 3) * rad; + + if (!init_length) + params[1] = 6 * params[0]; + + ut_array_1d_memcpy (v, 3, params + 2); + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + ol_vect_free (v); + + return; +} + +void +nev_print_arr_expr_params (double rad, char *expr, double *params) +{ + int i, init_rad, init_length; + int varqty = 0; + char *fct = NULL, **vars = NULL, **vals = NULL; + double *v = ol_vect_alloc (); + + v[2] = 1.; + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + init_rad = 0; + init_length = 0; + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad")) + { + params[0] = atof (vals[i]); + init_rad = 1; + } + else if (!strcmp (vars[i], "length")) + { + params[1] = atof (vals[i]); + init_length = 1; + } + else if (!strcmp (vars[i], "axis")) + sscanf (vals[i], "(%lf,%lf,%lf)", v, v + 1, v + 2); + else + abort (); + } + + double alpha = 10; + + if (!init_rad) + params[0] = pow (4. / (3 * (alpha + 12)), 1. / 3) * rad; + + if (!init_length) + params[1] = alpha * params[0]; + + ut_array_1d_memcpy (v, 3, params + 2); + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + ol_vect_free (v); + + return; +} + +void +nev_print_tor_expr_params (double rad, char *expr, double *params) +{ + int i, init_rad1, init_rad2; + int varqty = 0; + char *fct = NULL, **vars = NULL, **vals = NULL; + double *v = ol_vect_alloc (); + + v[2] = 1.; + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + init_rad1 = 0; + init_rad2 = 0; + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad1")) + { + init_rad1 = 1; + params[0] = atof (vals[i]); + } + else if (!strcmp (vars[i], "rad2")) + { + init_rad2 = 1; + params[1] = atof (vals[i]); + } + else if (!strcmp (vars[i], "axis")) + sscanf (vals[i], "(%lf,%lf,%lf)", v, v + 1, v + 2); + else + abort (); + } + + if (!init_rad1) + params[0] = pow (3. / (2 * M_PI), 1. / 3) * rad; + + if (!init_rad2) + params[1] = 2. / 3 * params[0]; + + ut_array_1d_memcpy (v, 3, params + 2); + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + ol_vect_free (v); + + return; +} + +void +nev_print_ellipsoid_expr_params (double rad, char *expr, double *params) +{ + int i, varqty = 0; + char *fct = NULL, **vars = NULL, **vals = NULL; + double *v1 = ol_vect_alloc (); + double *v2 = ol_vect_alloc (); + double *v3 = ol_vect_alloc (); + + v1[0] = 1.; + v2[1] = 1.; + v3[2] = 1.; + + ut_array_1d_set (params, 3, rad); + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad1")) + params[0] = atof (vals[i]); + else if (!strcmp (vars[i], "rad2")) + params[1] = atof (vals[i]); + else if (!strcmp (vars[i], "rad3")) + params[2] = atof (vals[i]); + else if (!strcmp (vars[i], "axis1")) + sscanf (vals[i], "(%lf,%lf,%lf)", v1, v1 + 1, v1 + 2); + else if (!strcmp (vars[i], "axis2")) + sscanf (vals[i], "(%lf,%lf,%lf)", v2, v2 + 1, v2 + 2); + else if (!strcmp (vars[i], "axis3")) + sscanf (vals[i], "(%lf,%lf,%lf)", v3, v3 + 1, v3 + 2); + else + abort (); + } + + ut_array_1d_memcpy (v1, 3, params + 3); + ut_array_1d_memcpy (v2, 3, params + 6); + ut_array_1d_memcpy (v3, 3, params + 9); + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + ol_vect_free (v1); + ol_vect_free (v2); + ol_vect_free (v3); + + return; +} +void +nev_print_disc_expr_params (double rad, char *expr, double *params) +{ + int i; + int varqty = 0; + char *fct = NULL, **vars = NULL, **vals = NULL; + double *v = ol_vect_alloc (); + + v[2] = 1.; + + ut_string_function (expr, &fct, &vars, &vals, &varqty); + + params[0] = rad; + + for (i = 0; i < varqty; i++) + { + if (!vars[i]) + ut_print_exprbug (expr); + else if (!strcmp (vars[i], "rad")) + params[0] = atof (vals[i]); + else if (!strcmp (vars[i], "axis")) + sscanf (vals[i], "(%lf,%lf,%lf)", v, v + 1, v + 2); + else + abort (); + } + + ut_array_1d_memcpy (v, 3, params + 1); + + ut_free_1d_char (&fct); + ut_free_2d_char (&vars, varqty); + ut_free_2d_char (&vals, varqty); + ol_vect_free (v); + + return; +} + +void +nev_print_scale_ticks (char *scale, double *pmin, double *pmax, + char ***pticks, double **ptickvals, int *ptickqty, + char **ptickformat) +{ + int i, qty; + char *minexpr = NULL, *maxexpr = NULL, *ticks = NULL; + char **parts = NULL; + char *tmp = NULL; + *ptickformat = ut_alloc_1d_char (100); + + ut_list_break (scale, NEUT_SEP_DEP, &parts, &qty); + + if (qty >= 2) + { + ut_string_string (parts[0], &tmp); + ut_string_fnrs (tmp, "-", "", 1); + ut_string_format (tmp, *ptickformat); + if (strstr (*ptickformat, "d")) + ut_string_string ("%.0f", ptickformat); + ut_string_string (parts[0], &minexpr); + ut_string_string (parts[qty - 1], &maxexpr); + ut_free_2d_char (&parts, qty); + } + else + ut_string_string ("%.1f", ptickformat); + + if (qty > 2) + ut_string_string (scale, &ticks); + + if (minexpr) + ut_string_real (minexpr, pmin); + if (maxexpr) + ut_string_real (maxexpr, pmax); + + // In case *pmin and *pmax are equal, putting them apart a little + if (*pmin == *pmax) + { + if (*pmin == 0) + { + *pmin = -1e-12; + *pmax = 1e-12; + } + else + { + *pmin *= (1 - 1e-12); + *pmax *= (1 + 1e-12); + } + } + + if (!ticks) + { + (*ptickqty) = 11; + (*ptickvals) = ut_alloc_1d (*ptickqty); + (*pticks) = ut_alloc_2d_char (*ptickqty, 11); + for (i = 0; i < *ptickqty; i++) + { + (*ptickvals)[i] = *pmin + ((double) i / ((*ptickqty) - 1)) * (*pmax - *pmin); + sprintf ((*pticks)[i], *ptickformat, (*ptickvals)[i]); + } + } + else + { + ut_list_break_double (ticks, NEUT_SEP_DEP, ptickvals, ptickqty); + (*pticks) = ut_alloc_2d_char ((*ptickqty), 100); + + for (i = 0; i < *ptickqty; i++) + sprintf ((*pticks)[i], *ptickformat, (*ptickvals)[i]); + } + + ut_free_1d_char (&minexpr); + ut_free_1d_char (&maxexpr); + ut_free_1d_char (&ticks); + ut_free_1d_char (&tmp); + + return; +} diff --git a/src/neper_v/nev_print/nev_print_utils/nev_print_utils_.h b/src/neper_v/nev_print/nev_print_utils/nev_print_utils_.h new file mode 100644 index 000000000..d68a2ea04 --- /dev/null +++ b/src/neper_v/nev_print/nev_print_utils/nev_print_utils_.h @@ -0,0 +1,11 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> + +#include"ut.h" +#include"neut_v.h" + +#include "nev_print_utils.h" diff --git a/src/neper_v/nev_scene/nev_scene1.c b/src/neper_v/nev_scene/nev_scene1.c index 2690e1cfb..63e278b81 100644 --- a/src/neper_v/nev_scene/nev_scene1.c +++ b/src/neper_v/nev_scene/nev_scene1.c @@ -10,9 +10,6 @@ nev_scene (char **argv, int *pi, struct PRINT *pPrint) if (strcmp (argv[*pi], "-scenebackground") == 0) sscanf (argv[++(*pi)], "%s", (*pPrint).scenebackground); - else if (strcmp (argv[*pi], "-sceneshadow") == 0) - ut_string_int (argv[++(*pi)], &((*pPrint).sceneshadow)); - else ut_print_message (2, 0, "Unknown command %s\n", argv[(*pi)]); diff --git a/src/neper_v/nev_show/nev_show.h b/src/neper_v/nev_show/nev_show.h index ae700c06b..3d18dbd7e 100644 --- a/src/neper_v/nev_show/nev_show.h +++ b/src/neper_v/nev_show/nev_show.h @@ -3,5 +3,5 @@ /* See the COPYING file in the top-level directory. */ extern void nev_show (char **, int *, struct TESS, struct TESR, - struct NODES, struct MESH *, struct POINT, + struct NODES, struct MESH *, struct POINT *, int, struct PRINT *); diff --git a/src/neper_v/nev_show/nev_show1.c b/src/neper_v/nev_show/nev_show1.c index c1b20c919..4218b6451 100644 --- a/src/neper_v/nev_show/nev_show1.c +++ b/src/neper_v/nev_show/nev_show1.c @@ -6,17 +6,20 @@ void nev_show (char **argv, int *pi, struct TESS Tess, struct TESR Tesr, - struct NODES Nodes, struct MESH *Mesh, struct POINT Point, - struct PRINT *pPrint) + struct NODES Nodes, struct MESH *Mesh, struct POINT *Points, + int PointQty, struct PRINT *pPrint) { - struct PART Part; - neut_part_set_zero (&Part); + int i; + char *input = NULL; // general ----------------------------------------------------------- if (!strcmp (argv[(*pi)], "-showcsys")) nev_show_csys (argv, pi, pPrint); + else if (!strcmp (argv[(*pi)], "-showscale")) + nev_show_scale (argv, pi, pPrint); + else if (!strcmp (argv[(*pi)], "-showtess")) nev_show_tess (argv, pi, pPrint); @@ -125,10 +128,25 @@ nev_show (char **argv, int *pi, struct TESS Tess, struct TESR Tesr, // point ------------------------------------------------------------- - else if (!strcmp (argv[(*pi)], "-showpoint")) - nev_show_points (argv, pi, Point, &(*pPrint).showpoint); + else if (!strncmp (argv[(*pi)], "-show", 4)) + { + if (!(*pPrint).showpoint) + (*pPrint).showpoint = ut_alloc_1d_pint (PointQty); + + int found = 0; + ut_string_string (argv[(*pi)] + 5, &input); + for (i = 0; i < PointQty; i++) + if (!strcmp (input, Points[i].Name)) + { + nev_show_points (argv, pi, Points[i], (*pPrint).showpoint + i); + found = 1; + } + + if (!found) + ut_print_exprbug (argv[(*pi)]); + } - neut_part_free (Part); + ut_free_1d_char (&input); return; } diff --git a/src/neper_v/nev_show/nev_show_gen/nev_show_gen.h b/src/neper_v/nev_show/nev_show_gen/nev_show_gen.h index 47d6416ee..5b8be9184 100644 --- a/src/neper_v/nev_show/nev_show_gen/nev_show_gen.h +++ b/src/neper_v/nev_show/nev_show_gen/nev_show_gen.h @@ -3,3 +3,4 @@ /* See the COPYING file in the top-level directory. */ extern void nev_show_csys (char **argv, int *pi, struct PRINT *pPrint); +extern void nev_show_scale (char **argv, int *pi, struct PRINT *pPrint); diff --git a/src/neper_v/nev_show/nev_show_gen/nev_show_gen1.c b/src/neper_v/nev_show/nev_show_gen/nev_show_gen1.c index 340ec53d5..ab51e7764 100644 --- a/src/neper_v/nev_show/nev_show_gen/nev_show_gen1.c +++ b/src/neper_v/nev_show/nev_show_gen/nev_show_gen1.c @@ -12,3 +12,12 @@ nev_show_csys (char **argv, int *pi, struct PRINT *pPrint) return; } + +void +nev_show_scale (char **argv, int *pi, struct PRINT *pPrint) +{ + (*pi)++; + ut_string_int (argv[(*pi)], &((*pPrint).showscale)); + + return; +} diff --git a/src/neper_v/nev_show/nev_show_point/nev_show_point1.c b/src/neper_v/nev_show/nev_show_point/nev_show_point1.c index 936b7a012..35f96074f 100644 --- a/src/neper_v/nev_show/nev_show_point/nev_show_point1.c +++ b/src/neper_v/nev_show/nev_show_point/nev_show_point1.c @@ -22,11 +22,11 @@ nev_show_points (char **argv, int *pi, struct POINT Point, int **pshow) (*pi)++; - *pshow = ut_realloc_1d_int (*pshow, Point.PointQty + 1); - ut_array_1d_int_zero (*pshow, Point.PointQty + 1); + *pshow = ut_realloc_1d_int (*pshow, Point.Qty + 1); + ut_array_1d_int_zero (*pshow, Point.Qty + 1); status = - nev_show_genexpr (argv[(*pi)], *pshow, Point.PointQty); + nev_show_genexpr (argv[(*pi)], *pshow, Point.Qty); if (status) { @@ -34,7 +34,7 @@ nev_show_points (char **argv, int *pi, struct POINT Point, int **pshow) vals = ut_alloc_1d (varqty); - for (i = 1; i <= Point.PointQty; i++) + for (i = 1; i <= Point.Qty; i++) { for (j = 0; j < varqty; j++) { @@ -51,7 +51,7 @@ nev_show_points (char **argv, int *pi, struct POINT Point, int **pshow) } (*pshow)[0] = - ut_array_1d_int_sum (*pshow + 1, Point.PointQty); + ut_array_1d_int_sum (*pshow + 1, Point.Qty); ut_free_2d_char (&vars, varqty); ut_free_1d (&tmp); diff --git a/src/neper_v/nev_show/nev_show_tesr/nev_show_tesr1.c b/src/neper_v/nev_show/nev_show_tesr/nev_show_tesr1.c index cee05d779..642ac7c22 100644 --- a/src/neper_v/nev_show/nev_show_tesr/nev_show_tesr1.c +++ b/src/neper_v/nev_show/nev_show_tesr/nev_show_tesr1.c @@ -25,7 +25,20 @@ nev_show_tesr_cell (char **argv, int *pi, struct TESR Tesr, int i, j, k, cell, status, varqty = 0; char **vars = NULL; double *vals = NULL; - int *showcell = ut_alloc_1d_int (Tesr.CellQty + 1); + int *showcell = NULL; + + if (Tesr.Dim == 3) + { + (*pPrint).showpoly = ut_alloc_1d_int (Tesr.CellQty + 1); + showcell = (*pPrint).showpoly; + } + else if (Tesr.Dim == 2) + { + (*pPrint).showface = ut_alloc_1d_int (Tesr.CellQty + 1); + showcell = (*pPrint).showface; + } + + // ut_alloc_1d_int (Tesr.CellQty + 1); (*pi)++; @@ -53,7 +66,7 @@ nev_show_tesr_cell (char **argv, int *pi, struct TESR Tesr, } status = ut_math_eval_int (argv[(*pi)], varqty, vars, vals, showcell + i); - if (!status) + if (status) ut_print_exprbug (argv[(*pi)]); } } diff --git a/src/neper_v/nev_space/nev_space.h b/src/neper_v/nev_space/nev_space.h index 935aeed68..01c061b2e 100644 --- a/src/neper_v/nev_space/nev_space.h +++ b/src/neper_v/nev_space/nev_space.h @@ -2,4 +2,4 @@ /* Copyright (C) 2003-2022, Romain Quey. */ /* See the COPYING file in the top-level directory. */ -extern void nev_space (char **argv, int *pi, struct DATA *pPointData); +extern void nev_space (char **argv, int *pi, struct PRINT *pPrint); diff --git a/src/neper_v/nev_space/nev_space1.c b/src/neper_v/nev_space/nev_space1.c index 72a677a9b..03cf23c2b 100644 --- a/src/neper_v/nev_space/nev_space1.c +++ b/src/neper_v/nev_space/nev_space1.c @@ -5,10 +5,10 @@ #include"nev_space_.h" void -nev_space (char **argv, int *pi, struct DATA *pPointData) +nev_space (char **argv, int *pi, struct PRINT *pPrint) { if (!strcmp (argv[*pi], "-space")) - ut_string_string (argv[++(*pi)], &(*pPointData).Space); + ut_string_string (argv[++(*pi)], &(*pPrint).space); else ut_print_message (2, 0, "Unknown command %s\n", argv[(*pi)]); diff --git a/src/neper_v/nev_utils/nev_utils1.c b/src/neper_v/nev_utils/nev_utils1.c index fb17755a7..c9e8088d2 100644 --- a/src/neper_v/nev_utils/nev_utils1.c +++ b/src/neper_v/nev_utils/nev_utils1.c @@ -7,13 +7,7 @@ void nev_fixarg (char **parg) { - if (!strcmp (*parg, "-showshadow")) - { - ut_print_message (1, 2, "`-showshadow' has been renamed `-sceneshadow' and will be removed in a future version.\n"); - ut_string_string ("-sceneshadow", parg); - } - - else if (!strcmp (*parg, "-imagebackground")) + if (!strcmp (*parg, "-imagebackground")) { ut_print_message (1, 2, "`-imagebackground' has been renamed `-scenebackground' and will be removed in a future version.\n"); ut_string_string ("-scenebackground", parg); diff --git a/src/neut/CMakeLists.txt b/src/neut/CMakeLists.txt index c72249745..928511347 100644 --- a/src/neut/CMakeLists.txt +++ b/src/neut/CMakeLists.txt @@ -92,6 +92,7 @@ add_library(neut ./neut_seedset/neut_seedset1.cpp ./neut_seedset/neut_seedset2.cpp ./neut_povray/neut_povray.c +./neut_asy/neut_asy.c ./neut_nset/neut_nset.c ./neut_print/neut_print.c ./neut_test/neut_test.c diff --git a/src/neut/neut.h b/src/neut/neut.h index cd10845bf..377d2e6c7 100644 --- a/src/neut/neut.h +++ b/src/neut/neut.h @@ -67,6 +67,7 @@ extern "C" #include "neut_multim/neut_multim.h" #include "neut_nset/neut_nset.h" #include "neut_povray/neut_povray.h" +#include "neut_asy/neut_asy.h" #include "neut_test/neut_test.h" #include "neut_reg/neut_reg.h" #include "neut_lloyd/neut_lloyd.h" diff --git a/src/neut/neut_asy/neut_asy.c b/src/neut/neut_asy/neut_asy.c new file mode 100644 index 000000000..1c660383f --- /dev/null +++ b/src/neut/neut_asy/neut_asy.c @@ -0,0 +1,81 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include "neut_asy_.h" + +int +neut_asy_check (char *asy) +{ + int status; + char *tmp = ut_alloc_1d_char (1000); + char *tmp2 = ut_alloc_1d_char (1000); + + sprintf (tmp, "tmp%d", getpid ()); + sprintf (tmp2, "which %s 2> /dev/null > %s", asy, tmp); + status = system (tmp2); + + remove (tmp); + + ut_free_1d_char (&tmp); + ut_free_1d_char (&tmp2); + + return status; +} + +int +neut_asy_check_error (char *asy) +{ + if (neut_asy_check (asy) != 0) + { + ut_print_messagewnc (2, 72, + "Povray not found! Make sure it is available at the command line then run Neper again.\n"); + abort (); + } + + return 0; +} + +void +neut_asy_convert (char *asymptote, char *filename, int imagewidth, int imageheight, + char *formatstring, int messagetag) +{ + int i, formatqty; + char *filename2 = NULL; + char *command = ut_alloc_1d_char (1000); + char **formats = NULL; + char *pixels = ut_alloc_1d_char (1000); + + ut_list_break (formatstring, NEUT_SEP_NODEP, &formats, &formatqty); + sprintf (pixels, " (%dx%d pixels)", imagewidth, imageheight); + + neut_asy_check (asymptote); + + for (i = 0; i < formatqty; i++) + if (strcmp (formats[i], "asy")) + { + ut_string_string (filename, &filename2); + ut_string_fnrs (filename2, "asy", formats[i], 1); + remove (filename2); + + if (messagetag >= 0) + ut_print_message (0, messagetag, + "Generating %s file%s...\n", formats[i], + !strcmp (formats[i], "png") ? pixels: ""); + + ut_file_openmessage (filename2, "w"); + sprintf (command, "%s -f %s -render %f %s -o %s", asymptote, formats[i], + imageheight * .00492046785641154627, filename, filename2); + + if (system (command) == -1) + abort (); + ut_file_closemessage (filename2, "w"); + } + + ut_free_1d_char (&command); + ut_free_1d_char (&filename2); + ut_free_2d_char (&formats, formatqty); + ut_free_1d_char (&pixels); + + return; +} diff --git a/src/neut/neut_asy/neut_asy.h b/src/neut/neut_asy/neut_asy.h new file mode 100644 index 000000000..9c632573a --- /dev/null +++ b/src/neut/neut_asy/neut_asy.h @@ -0,0 +1,27 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#ifdef __cplusplus +extern "C" +{ +#endif + +/// \file neut_asy.h +/// \brief +/// \author Romain Quey +/// \bug No known bugs + +#ifndef NEUT_ASYMPTOTE_H +#define NEUT_ASYMPTOTE_H + + extern int neut_asy_check (char *asy); + extern int neut_asy_check_error (char *asy); + extern void neut_asy_convert (char *asymptote, char *filename, int imagewidth, int imageheight, + char *formatstring, int messagetag); + +#endif /* NEUT_ASYMPTOTE_H */ + +#ifdef __cplusplus +} +#endif diff --git a/src/neut/neut_asy/neut_asy_.h b/src/neut/neut_asy/neut_asy_.h new file mode 100644 index 000000000..69d19b051 --- /dev/null +++ b/src/neut/neut_asy/neut_asy_.h @@ -0,0 +1,13 @@ +/* This file is part of the Neper software package. */ +/* Copyright (C) 2003-2022, Romain Quey. */ +/* See the COPYING file in the top-level directory. */ + +#include<stdio.h> +#include<stdlib.h> +#include<string.h> +#include<limits.h> +#include<float.h> +#include<math.h> +#include<unistd.h> +#include"neut.h" +#include"neut_asy.h" diff --git a/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf1.c b/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf1.c index 5f0d508a7..779e61784 100644 --- a/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf1.c +++ b/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf1.c @@ -85,7 +85,6 @@ void neut_data_fscanf_general (struct DATAINPUT DataInput, char *entity, int dim, int entityqty, char *attribute, char *type, char *value, struct DATA *pData) - { struct SIM *pSim = DataInput.pSim; struct TESS *pTess = DataInput.pTess; @@ -99,7 +98,14 @@ neut_data_fscanf_general (struct DATAINPUT DataInput, char *entity, int dim, int DataSize, *pDataSize = NULL; double ***pDataArray = NULL; - if (!strcmp (attribute, "col")) + if (!strcmp (attribute, "")) + { + pDataSize = &(*pData).DataSize; + pDataArray = &(*pData).Data; + pDataType = &(*pData).DataType; + pDataName = &(*pData).DataName; + } + else if (!strcmp (attribute, "col")) { pDataSize = &(*pData).ColDataSize; pDataArray = &(*pData).ColData; @@ -113,6 +119,12 @@ neut_data_fscanf_general (struct DATAINPUT DataInput, char *entity, int dim, pDataType = &(*pData).RadDataType; pDataName = &(*pData).RadDataName; } + else if (!strcmp (attribute, "symbol")) + { + pDataSize = &DataSize; + pDataType = &(*pData).SymbolDataType; + pDataName = &(*pData).SymbolDataName; + } else if (!strcmp (attribute, "trs")) { pDataSize = &DataSize; @@ -154,6 +166,12 @@ neut_data_fscanf_general (struct DATAINPUT DataInput, char *entity, int dim, if (!*pDataType || !strcmp (*pDataType, "col")) neut_data_fscanf_col_col (entityqty, value, pData); + else if (!strcmp (attribute, "symbol")) + neut_data_fscanf_string (input, pSim, pTess, pTesr, pNodes, pMesh, pPoints, + entity, entityqty, value, + pDataName, pDataSize, + &(*pData).SymbolData, pDataType); + else if (!strcmp (*pDataType, "int") || !strcmp (*pDataType, "real") || !strcmp (*pDataType, "expr")) @@ -164,7 +182,8 @@ neut_data_fscanf_general (struct DATAINPUT DataInput, char *entity, int dim, else if (!strcmp (*pDataType, "vector") || !strcmp (*pDataType, "tensor")) - neut_data_fscanf_col_tensor (*pSim, entity, entityqty, value, pData); + neut_data_fscanf_tensor (*pSim, entity, entityqty, value, pDataName, + pDataSize, pDataArray, pDataType); else if (!strcmp (*pDataType, "ori")) { diff --git a/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf2.c b/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf2.c index 498284926..07508b311 100644 --- a/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf2.c +++ b/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf2.c @@ -125,8 +125,8 @@ neut_data_fscanf_scal (char *input, struct SIM *pSim, struct TESS *pTess, struct TESR *pTesr, struct NODES *pNodes, struct MESH **pMesh, struct POINT *pPoints, char *entity, int entityqty, - char *value, char **pColDataName, int *pColDataSize, - double ***pColData, char **pColDataType) + char *value, char **pDataName, int *pDataSize, + double ***pData, char **pDataType) { int i, size = 1; char *vartype = NULL; @@ -134,19 +134,19 @@ neut_data_fscanf_scal (char *input, struct SIM *pSim, neut_simres_set_zero (&SimRes); - if (pColDataName) - ut_string_string (value, pColDataName); + if (pDataName) + ut_string_string (value, pDataName); - if (pColDataSize) - *pColDataSize = 1; + if (pDataSize) + *pDataSize = 1; - *pColData = ut_alloc_2d (entityqty + 1, size); + *pData = ut_alloc_2d (entityqty + 1, size); if (pSim) neut_sim_simres (*pSim, entity, value, &SimRes); if (ut_file_exist (SimRes.file)) - ut_array_2d_fnscanf_wcard (SimRes.file, *pColData + 1, + ut_array_2d_fnscanf_wcard (SimRes.file, *pData + 1, entityqty, 1, NULL, "r"); else { @@ -179,16 +179,16 @@ neut_data_fscanf_scal (char *input, struct SIM *pSim, abort (); for (i = 1; i <= entityqty; i++) - (*pColData)[i][0] = data[i]; + (*pData)[i][0] = data[i]; ut_free_1d (&data); } - if (!strcmp (*pColDataType, "expr")) + if (!strcmp (*pDataType, "expr")) { if (!strcmp (vartype, "%d")) - ut_string_string ("int", pColDataType); + ut_string_string ("int", pDataType); else if (!strcmp (vartype, "%f")) - ut_string_string ("real", pColDataType); + ut_string_string ("real", pDataType); else abort (); } @@ -200,28 +200,91 @@ neut_data_fscanf_scal (char *input, struct SIM *pSim, } void -neut_data_fscanf_col_tensor (struct SIM Sim, - char *entity, int entityqty, - char *value, struct DATA *pData) +neut_data_fscanf_string (char *input, struct SIM *pSim, + struct TESS *pTess, struct TESR *pTesr, + struct NODES *pNodes, struct MESH **pMesh, + struct POINT *pPoints, char *entity, int entityqty, + char *value, char **pDataName, int *pDataSize, + char ***pData, char **pDataType) { + int i; struct SIMRES SimRes; + (void) input; + (void) pSim; + (void) pTess; + (void) pTesr; + (void) pNodes; + (void) pMesh; + (void) pPoints; + + ut_string_string ("string", pDataType); neut_simres_set_zero (&SimRes); - ut_string_string (value, &(*pData).ColDataName); + if (pDataName) + ut_string_string (value, pDataName); + + if (pDataSize) + *pDataSize = 1; + + *pData = ut_alloc_1d_pchar (entityqty + 1); + + if (pSim) + neut_sim_simres (*pSim, entity, value, &SimRes); + + if (ut_file_exist (SimRes.file)) + { + char *tmp = ut_alloc_1d_char (1000); + FILE *file = ut_file_open (SimRes.file, "R"); + + for (i = 1; i <= entityqty; i++) + { + if (fscanf (file, "%s", tmp) != 1) + abort (); + ut_string_string (tmp, (*pData) + i); + } + + ut_file_close (file, SimRes.file, "R"); + ut_free_1d_char (&tmp); + } + + else + { + for (i = 1; i <= entityqty; i++) + ut_string_string (value, (*pData) + i); + } + + neut_simres_free (&SimRes); + + return; +} + +void +neut_data_fscanf_tensor (struct SIM Sim, + char *entity, int entityqty, + char *value, char **pDataName, int *pDataSize, + double ***pData, char **pDataType) +{ + struct SIMRES SimRes; + + neut_simres_set_zero (&SimRes); + + ut_string_string (value, pDataName); neut_sim_simres (Sim, entity, value, &SimRes); - (*pData).ColDataSize = ut_file_nbcolumns (SimRes.file); + (*pDataSize) = ut_file_nbcolumns (SimRes.file); - (*pData).ColData = ut_alloc_2d (entityqty + 1, (*pData).ColDataSize); + (*pData) = ut_alloc_2d (entityqty + 1, *pDataSize); if (SimRes.file) - ut_array_2d_fnscanf_wcard (SimRes.file, (*pData).ColData + 1, - entityqty, (*pData).ColDataSize, NULL, "r"); + ut_array_2d_fnscanf_wcard (SimRes.file, *pData + 1, + entityqty, *pDataSize, NULL, "r"); else abort (); + ut_string_string ("vector", pDataType); + neut_simres_free (&SimRes); return; diff --git a/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf_.h b/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf_.h index 7937ce932..9e0b57ab9 100644 --- a/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf_.h +++ b/src/neut/neut_data/neut_data_fscanf/neut_data_fscanf_.h @@ -26,6 +26,14 @@ extern void neut_data_fscanf_scal (char *input, struct SIM *pSim, char **pColDataName, int *pColDataSize, double ***pColData, char **pColDataType); -extern void neut_data_fscanf_col_tensor (struct SIM Sim, - char *entity, int entityqty, - char *value, struct DATA *pData); +extern void neut_data_fscanf_string (char *input, struct SIM *pSim, + struct TESS *pTess, struct TESR *pTesr, + struct NODES *pNodes, struct MESH **pMesh, + struct POINT *pPoints, char *entity, int entityqty, + char *value, char **pDataName, int *pDataSize, + char ***pData, char **pDataType); + +extern void neut_data_fscanf_tensor (struct SIM Sim, + char *entity, int entityqty, + char *value, char **pDataName, int *pDataSize, + double ***pData, char **pDataType); diff --git a/src/neut/neut_data/neut_data_gen/neut_data_gen.h b/src/neut/neut_data/neut_data_gen/neut_data_gen.h index ea98d2fff..fc15f8f93 100644 --- a/src/neut/neut_data/neut_data_gen/neut_data_gen.h +++ b/src/neut/neut_data/neut_data_gen/neut_data_gen.h @@ -45,7 +45,10 @@ extern "C" extern int neut_data_type_size (char *type, int *psize); - extern int neut_data_string_entity_attribute (char *string, char *entity, char *attribute); + extern int neut_data_string_entity_attribute (char *string, char *entity, + char **inputs, int inputqty, char *attribute); + + extern void neut_data_colscheme_asygradient (char *colscheme, int stepqty, char **pasygradient); #endif /* NEUT_DATA_GEN_H */ diff --git a/src/neut/neut_data/neut_data_gen/neut_data_gen1.cpp b/src/neut/neut_data/neut_data_gen/neut_data_gen1.cpp index f2be1c794..4d64626f1 100644 --- a/src/neut/neut_data/neut_data_gen/neut_data_gen1.cpp +++ b/src/neut/neut_data/neut_data_gen/neut_data_gen1.cpp @@ -64,13 +64,17 @@ neut_data_value_type (struct SIM Sim, char *entity, char *attribute, } int -neut_data_string_entity_attribute (char *string, char *entity, char *attribute) +neut_data_string_entity_attribute (char *string, char *entity, char **inputs, int inputqty, + char *attribute) { + int i; char *stringcpy = NULL; // skipping -data if present ut_string_string (!strncmp (string, "-data", 5) ? string + 5 : string, &stringcpy); + entity[0] = '\0'; + // setting entity: must be one of: // for the mesh: node, elt, elset, elt1d, eltedge // for the tess: edge, poly @@ -114,6 +118,8 @@ neut_data_string_entity_attribute (char *string, char *entity, char *attribute) strcpy (entity, "poly"); else if (!strncmp (stringcpy, "seed", 4)) strcpy (entity, "seed"); + else if (!strncmp (stringcpy, "celledge", 8)) + strcpy (entity, "celledge"); else if (!strncmp (stringcpy, "cell", 4)) strcpy (entity, "cell"); else if (!strncmp (stringcpy, "voxedge", 7)) @@ -135,6 +141,27 @@ neut_data_string_entity_attribute (char *string, char *entity, char *attribute) else if (!strncmp (stringcpy, "mesh", 4)) strcpy (entity, "mesh"); else + { + for (i = 0; i < inputqty; i++) + if (!strncmp (stringcpy, inputs[i], strlen (inputs[i]))) + { + strcpy (entity, inputs[i]); + break; + } + + for (i = 0; i < inputqty; i++) + { + char *tmp = ut_string_paste (inputs[i], (char *) "edge"); + if (!strncmp (stringcpy, tmp, strlen (tmp))) + { + strcpy (entity, tmp); + break; + } + ut_free_1d_char (&tmp); + } + } + + if (strlen (entity) == 0) { ut_print_message (2, 0, "option -data*: entity not supported"); abort (); @@ -158,20 +185,13 @@ neut_data_type_size (char *type, int *psize) { int status = 0; if (!strcmp (type, "real") || !strcmp (type, "int") - || !strcmp (type, "rad") || !strcmp (type, "edgerad") - || !strcmp (type, "real")) + || !strcmp (type, "rad") || !strcmp (type, "edgerad")) (*psize) = 1; else if (!strcmp (type, "edgecol") || !strcmp (type, "col") || !strcmp (type, "coo")) (*psize) = 3; else if (!strcmp (type, "ori")) (*psize) = 4; - else if (strcmp (type, "cube")) - (*psize) = 10; - else if (strcmp (type, "cyl")) - (*psize) = 5; - else if (strcmp (type, "ell")) - (*psize) = 12; else if (!strncmp (type, "int", 3) || !strncmp (type, "real", 4)) sscanf (type + 4, "%d", psize); else @@ -275,17 +295,23 @@ void neut_data_real_color (double **data, int *datadef, int size, char *scale, char *scheme_in, int **Col, char **pscale) { - int i; - double ScaleBeg, ScaleEnd; + int i, qty, valqty; + double ScaleBeg, ScaleEnd, alpha; double datamin, datamax; char **parts = NULL; - int qty; char *min = NULL, *max = NULL; - char *tmp = ut_alloc_1d_char (1000); - char *scheme = NULL; + char *scheme = NULL, *transform = NULL, *fct = NULL, **vals = NULL; ut_string_string (scheme_in? scheme_in : NEUT_DEFAULT_COLSCHEME_REAL, &scheme); + ut_list_break (scheme, NEUT_SEP_DEP, &parts, &qty); + + if (qty == 2) + { + ut_string_string (parts[0], &scheme); + ut_string_string (parts[1], &transform); + } + qty = 0; if (scale) ut_list_break (scale, NEUT_SEP_DEP, &parts, &qty); @@ -339,13 +365,41 @@ neut_data_real_color (double **data, int *datadef, int size, char *scale, tinycolormap::ColormapType type = neut_data_colscheme_tinycolormaptype (scheme); + double th = 0; + if (transform) + { + ut_string_function (transform, &fct, NULL, &vals, &valqty); + + if (!strcmp (fct, "fade")) + { + th = 0.1; + if (valqty == 1) + sscanf (vals[0], "%lf", &th); + } + else + ut_print_exprbug (scheme_in); + } + for (i = 1; i <= size; i++) { double val = (data[i][0] - ScaleBeg) / (ScaleEnd - ScaleBeg); tinycolormap::Color col = tinycolormap::GetColor(val, type); + Col[i][0] = ut_num_d2ri (255 * col.r()); Col[i][1] = ut_num_d2ri (255 * col.g()); Col[i][2] = ut_num_d2ri (255 * col.b()); + + if (th) + { + alpha = val / th; + + if (alpha < 1) + { + Col[i][0] = ut_num_d2ri (255 * (1 + alpha * (col.r() - 1))); + Col[i][1] = ut_num_d2ri (255 * (1 + alpha * (col.g() - 1))); + Col[i][2] = ut_num_d2ri (255 * (1 + alpha * (col.b() - 1))); + } + } } } @@ -376,8 +430,10 @@ neut_data_real_color (double **data, int *datadef, int size, char *scale, ut_free_2d_char (&parts, qty); ut_free_1d_char (&min); ut_free_1d_char (&max); - ut_free_1d_char (&tmp); ut_free_1d_char (&scheme); + ut_free_1d_char (&transform); + ut_free_1d_char (&fct); + ut_free_2d_char (&vals, valqty); return; } @@ -413,7 +469,13 @@ neut_data_datastring_type_value (char *entity, char *attribute, char *datastring, char **pdatatype, char **pdatavalue) { - if (!strcmp (attribute, "scale") + if (!strcmp (attribute, "symbol")) + { + ut_string_string ("string", pdatatype); + ut_string_string (datastring, pdatavalue); + } + + else if (!strcmp (attribute, "scale") || !strcmp (attribute, "scaletitle") || !strcmp (attribute, "colscheme") || !strcmp (attribute, "label")) @@ -478,34 +540,40 @@ neut_data_datastring_type_value (char *entity, char *attribute, int neut_data_colscheme_istinycolormap (char *colscheme) { + char *tmp = ut_alloc_1d_char (strlen (colscheme) + 1); + if (!colscheme) return 0; - if (!strcmp (colscheme, "Parula") - || !strcmp (colscheme, "Heat") - || !strcmp (colscheme, "Hot") - || !strcmp (colscheme, "Jet") - || !strcmp (colscheme, "Gray") - || !strcmp (colscheme, "Magma") - || !strcmp (colscheme, "Inferno") - || !strcmp (colscheme, "Plasma") - || !strcmp (colscheme, "Viridis") - || !strcmp (colscheme, "Cividis") - || !strcmp (colscheme, "Github") - || !strcmp (colscheme, "parula") - || !strcmp (colscheme, "heat") - || !strcmp (colscheme, "hot") - || !strcmp (colscheme, "jet") - || !strcmp (colscheme, "gray") - || !strcmp (colscheme, "grey") - || !strcmp (colscheme, "magma") - || !strcmp (colscheme, "inferno") - || !strcmp (colscheme, "plasma") - || !strcmp (colscheme, "viridis") - || !strcmp (colscheme, "cividis") - || !strcmp (colscheme, "github")) + ut_string_untilstring (colscheme, NEUT_SEP_DEP, NULL, tmp); + + if (!strcmp (tmp, "Parula") + || !strcmp (tmp, "Heat") + || !strcmp (tmp, "Hot") + || !strcmp (tmp, "Jet") + || !strcmp (tmp, "Gray") + || !strcmp (tmp, "Magma") + || !strcmp (tmp, "Inferno") + || !strcmp (tmp, "Plasma") + || !strcmp (tmp, "Viridis") + || !strcmp (tmp, "Cividis") + || !strcmp (tmp, "Github") + || !strcmp (tmp, "parula") + || !strcmp (tmp, "heat") + || !strcmp (tmp, "hot") + || !strcmp (tmp, "jet") + || !strcmp (tmp, "gray") + || !strcmp (tmp, "grey") + || !strcmp (tmp, "magma") + || !strcmp (tmp, "inferno") + || !strcmp (tmp, "plasma") + || !strcmp (tmp, "viridis") + || !strcmp (tmp, "cividis") + || !strcmp (tmp, "github")) return 1; + ut_free_1d_char (&tmp); + return 0; } @@ -531,7 +599,8 @@ neut_data_colscheme_tinycolormaptype (char *colscheme) type = tinycolormap::ColormapType::Inferno; else if (!strcmp (colscheme, "Plasma") || !strcmp (colscheme, "plasma")) type = tinycolormap::ColormapType::Plasma; - else if (!strcmp (colscheme, "Viridis") || !strcmp (colscheme, "viridis")) + else if (!strcmp (colscheme, "Viridis") || !strcmp (colscheme, "viridis") + || !strncmp (colscheme, "wviridis", 8)) type = tinycolormap::ColormapType::Viridis; else if (!strcmp (colscheme, "Cividis") || !strcmp (colscheme, "cividis")) type = tinycolormap::ColormapType::Cividis; @@ -542,3 +611,31 @@ neut_data_colscheme_tinycolormaptype (char *colscheme) return type; } + +void +neut_data_colscheme_asygradient (char *colscheme, int stepqty, char **pasygradient) +{ + int i; + double **vals = ut_alloc_2d (stepqty + 1, 1); + int **rgb = ut_alloc_2d_int (stepqty + 1, 3); + + for (i = 1; i <= stepqty; i++) + vals[i][0] = (double) (i - 1) / (stepqty - 1); + + neut_data_real_color (vals, NULL, stepqty, NULL, colscheme, rgb, NULL); + + (*pasygradient) = ut_alloc_1d_char (stepqty * 100); + + sprintf (*pasygradient, "Gradient("); + for (i = 1; i <= stepqty; i++) + sprintf (*pasygradient + strlen (*pasygradient), "rgb(%f,%f,%f)%s", + rgb[i][0] / 255., rgb[i][1] / 255., rgb[i][2] / 255., + i < stepqty ? "," : ""); + + sprintf (*pasygradient + strlen (*pasygradient), ")"); + + ut_free_2d (&vals, stepqty + 1); + ut_free_2d_int (&rgb, stepqty + 1); + + return; +} diff --git a/src/neut/neut_data/neut_data_op/neut_data_op.c b/src/neut/neut_data/neut_data_op/neut_data_op.c index 0b100b936..d8d5009d6 100644 --- a/src/neut/neut_data/neut_data_op/neut_data_op.c +++ b/src/neut/neut_data/neut_data_op/neut_data_op.c @@ -11,6 +11,13 @@ neut_data_set_default (struct DATA *pData) (*pData).Dim = 0; (*pData).Entity = NULL; + (*pData).Value = NULL; + + (*pData).Data = NULL; + (*pData).DataType = NULL; + (*pData).DataSize = 0; + (*pData).DataName = NULL; + (*pData).ColData = NULL; (*pData).ColDataType = NULL; (*pData).ColDataSize = 0; @@ -30,6 +37,11 @@ neut_data_set_default (struct DATA *pData) (*pData).Rad = NULL; (*pData).RadDataName = NULL; + (*pData).SymbolData = NULL; + (*pData).SymbolDataType = NULL; + (*pData).Symbol = NULL; + (*pData).SymbolDataName = NULL; + (*pData).CooData = NULL; (*pData).CooDataType = NULL; (*pData).Coo = NULL; @@ -48,7 +60,6 @@ neut_data_set_default (struct DATA *pData) (*pData).ScaleTitle = NULL; (*pData).Axes = NULL; - (*pData).Space = NULL; (*pData).Label = NULL; (*pData).FontSize = -1; @@ -88,6 +99,12 @@ neut_data_free (struct DATA *pData) ut_free_2d (&(*pData).RadData, (*pData).Qty); ut_free_1d_char (&(*pData).RadDataType); ut_free_1d (&(*pData).Rad); + ut_free_1d_char (&(*pData).RadDataName); + + ut_free_2d_char (&(*pData).SymbolData, (*pData).Qty); + ut_free_1d_char (&(*pData).SymbolDataType); + ut_free_2d_char (&(*pData).Symbol, (*pData).Qty); + ut_free_1d_char (&(*pData).SymbolDataName); ut_free_2d (&(*pData).CooData, (*pData).Qty); ut_free_1d_char (&(*pData).CooDataType); @@ -108,7 +125,6 @@ neut_data_free (struct DATA *pData) ut_free_1d_char (&(*pData).ScaleTitle); ut_free_1d (&(*pData).Axes); - ut_free_1d_char (&(*pData).Space); ut_free_2d_char (&(*pData).Label, 3); diff --git a/src/neut/neut_mesh/neut_mesh_gen/neut_mesh_gen.c b/src/neut/neut_mesh/neut_mesh_gen/neut_mesh_gen.c index 5d8e5c6e4..dab7ea2af 100644 --- a/src/neut/neut_mesh/neut_mesh_gen/neut_mesh_gen.c +++ b/src/neut/neut_mesh/neut_mesh_gen/neut_mesh_gen.c @@ -775,7 +775,7 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, int id, char *var, double **pvals, int *pvalqty, char **ptype) { - int j, status; + int j, status, scale; double rrmean, rrmin, rrmax; char *typetmp = ut_alloc_1d_char (10); char *entity = NULL; @@ -922,6 +922,13 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = Mesh3D.ElsetGroup? Mesh3D.ElsetGroup[id] : -1; strcpy (typetmp, "%d"); } + else if (!strncmp (var, "scaleid(", 8)) + { + sscanf (var, "scaleid(%d)", &scale); + (*pvals)[0] = (scale <= Tess.ScaleQty + && Tess.ScaleCellId) ? Tess.ScaleCellId[id][scale] : -1; + ut_string_string ("%d", &typetmp); + } else if (!strncmp (var, "fiber", 5)) { double theta; @@ -1015,6 +1022,15 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = Mesh2D.ElsetGroup? Mesh2D.ElsetGroup[id] : -1; strcpy (typetmp, "%d"); } + else if (!strncmp (var, "scaleid(", 8)) + { + sscanf (var, "scaleid(%d)", &scale); + (*pvals)[0] = (scale <= Tess.ScaleQty + && Tess.ScaleCellId) ? Tess.ScaleCellId[id][scale] : -1; + if (Tess.Dim != 2) + (*pvals)[0] = -1; + ut_string_string ("%d", &typetmp); + } else if (!strcmp (var, "per")) { (*pvals)[0] = neut_tess_face_isper (Tess, id); @@ -1787,6 +1803,11 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = Mesh0D.EltQty; strcpy (typetmp, "%d"); } + else if (!strcmp (var, "elsetnb")) + { + (*pvals)[0] = Mesh0D.ElsetQty; + strcpy (typetmp, "%d"); + } else if (!strcmp (var, "nodenb")) { (*pvals)[0] = Mesh0D.NodeQty; @@ -1820,6 +1841,11 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = Mesh1D.EltQty; strcpy (typetmp, "%d"); } + else if (!strcmp (var, "elsetnb")) + { + (*pvals)[0] = Mesh1D.ElsetQty; + strcpy (typetmp, "%d"); + } else if (!strcmp (var, "nodenb")) { (*pvals)[0] = Mesh1D.NodeQty; @@ -1853,6 +1879,11 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = Mesh2D.EltQty; strcpy (typetmp, "%d"); } + else if (!strcmp (var, "elsetnb")) + { + (*pvals)[0] = Mesh2D.ElsetQty; + strcpy (typetmp, "%d"); + } else if (!strcmp (var, "nodenb")) { (*pvals)[0] = Mesh2D.NodeQty; @@ -1886,6 +1917,11 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = Mesh3D.EltQty; strcpy (typetmp, "%d"); } + else if (!strcmp (var, "elsetnb")) + { + (*pvals)[0] = Mesh3D.ElsetQty; + strcpy (typetmp, "%d"); + } else if (!strcmp (var, "nodenb")) { (*pvals)[0] = Mesh3D.NodeQty; @@ -1908,6 +1944,11 @@ neut_mesh_var_val (struct NODES Nodes, struct MESH Mesh0D, struct MESH Mesh1D, (*pvals)[0] = MeshCo.EltQty; strcpy (typetmp, "%d"); } + if (!strcmp (var, "elsetnb")) + { + (*pvals)[0] = MeshCo.ElsetQty; + strcpy (typetmp, "%d"); + } else status = -1; } diff --git a/src/neut/neut_mesh/neut_mesh_sim/neut_mesh_sim.c b/src/neut/neut_mesh/neut_mesh_sim/neut_mesh_sim.c index cce5be8d1..032071112 100644 --- a/src/neut/neut_mesh/neut_mesh_sim/neut_mesh_sim.c +++ b/src/neut/neut_mesh/neut_mesh_sim/neut_mesh_sim.c @@ -15,6 +15,7 @@ neut_mesh_sim (char *simdir, struct TESS Tess, struct NODES Nodes, struct MESH * ut_string_string (Mesh[Tess.Dim].ElsetOriDes, &((*pSim).OriDes)); ut_string_string ("simulation.msh", &(*pSim).msh); + ut_string_string ("simulation.tess", &(*pSim).tess); return; } diff --git a/src/neut/neut_point/neut_point.c b/src/neut/neut_point/neut_point.c index faee04207..757c58f66 100644 --- a/src/neut/neut_point/neut_point.c +++ b/src/neut/neut_point/neut_point.c @@ -7,13 +7,14 @@ void neut_point_set_zero (struct POINT *pPoint) { + (*pPoint).Name = NULL; + ut_string_string ("point", &(*pPoint).Name); + + (*pPoint).Type = NULL; (*pPoint).Dim = 0; - (*pPoint).Periodic = NULL; - (*pPoint).activedim = NULL; - (*pPoint).BBox = NULL; - (*pPoint).PointQty = 0; - (*pPoint).PointCoo = NULL; - (*pPoint).PointRad = NULL; + (*pPoint).Qty = 0; + (*pPoint).Coo = NULL; + (*pPoint).Rad = NULL; return; } @@ -21,14 +22,13 @@ neut_point_set_zero (struct POINT *pPoint) void neut_point_free (struct POINT *pPoint) { - ut_free_2d (&(*pPoint).PointCoo, (*pPoint).PointQty + 1); - ut_free_1d (&(*pPoint).PointRad); - ut_free_1d_int (&(*pPoint).Periodic); - ut_free_1d_int (&(*pPoint).activedim); - ut_free_2d (&(*pPoint).BBox, 3); + ut_free_1d_char (&(*pPoint).Name); + ut_free_1d_char (&(*pPoint).Type); - (*pPoint).PointQty = 0; - (*pPoint).Dim = 0; + ut_free_2d (&(*pPoint).Coo, (*pPoint).Qty + 1); + ut_free_1d (&(*pPoint).Rad); + + neut_point_set_zero (pPoint); return; } @@ -39,18 +39,18 @@ neut_point_centre (struct POINT Point, double *centre) int i; double size, totsize; double *tmp = ut_alloc_1d (3); - int weight = (ut_array_1d_sum (Point.PointRad + 1, Point.PointQty) != 0); + int weight = (ut_array_1d_sum (Point.Rad + 1, Point.Qty) != 0); ut_array_1d_zero (centre, 3); totsize = 0; - for (i = 1; i <= Point.PointQty; i++) + for (i = 1; i <= Point.Qty; i++) { if (weight) neut_point_pt_size (Point, i, &size); else size = 1; - ut_array_1d_memcpy (Point.PointCoo[i], 3, tmp); + ut_array_1d_memcpy (Point.Coo[i], 3, tmp); ut_array_1d_scale (tmp, 3, size); ut_array_1d_add (centre, tmp, 3, centre); @@ -74,11 +74,11 @@ neut_point_bbox (struct POINT Point, double **bbox) bbox[i][1] = -DBL_MAX; } - for (i = 1; i <= Point.PointQty; i++) + for (i = 1; i <= Point.Qty; i++) for (j = 0; j < 3; j++) { - bbox[j][0] = ut_num_min (bbox[j][0], Point.PointCoo[i][j]); - bbox[j][1] = ut_num_max (bbox[j][1], Point.PointCoo[i][j]); + bbox[j][0] = ut_num_min (bbox[j][0], Point.Coo[i][j]); + bbox[j][1] = ut_num_max (bbox[j][1], Point.Coo[i][j]); } return; @@ -106,25 +106,25 @@ neut_point_var_val (struct POINT Point, int id, struct TESS Tess, } else if (!strcmp (var, "x")) { - (*pvals)[0] = Point.PointCoo[id][0]; + (*pvals)[0] = Point.Coo[id][0]; if (ptype) strcpy (*ptype, "%f"); } else if (!strcmp (var, "y")) { - (*pvals)[0] = Point.PointCoo[id][1]; + (*pvals)[0] = Point.Coo[id][1]; if (ptype) strcpy (*ptype, "%f"); } else if (!strcmp (var, "z")) { - (*pvals)[0] = Point.PointCoo[id][2]; + (*pvals)[0] = Point.Coo[id][2]; if (ptype) strcpy (*ptype, "%f"); } else if (!strcmp (var, "rad")) { - (*pvals)[0] = Point.PointRad[id]; + (*pvals)[0] = Point.Rad[id]; if (ptype) strcpy (*ptype, "%f"); } @@ -132,7 +132,7 @@ neut_point_var_val (struct POINT Point, int id, struct TESS Tess, { (*pvals)[0] = -1; for (i = 1; i <= Tess.PolyQty; i++) - if (neut_tess_point_inpoly (Tess, Point.PointCoo[id], i) == 1) + if (neut_tess_point_inpoly (Tess, Point.Coo[id], i) == 1) { (*pvals)[0] = i; break; @@ -142,14 +142,14 @@ neut_point_var_val (struct POINT Point, int id, struct TESS Tess, } else if (!strcmp (var, "elt")) { - neut_mesh_point_elt (Mesh, Nodes, Point.PointCoo[id], &tmp); + neut_mesh_point_elt (Mesh, Nodes, Point.Coo[id], &tmp); (*pvals)[0] = tmp; if (ptype) strcpy (*ptype, "%d"); } else if (!strcmp (var, "elset")) { - neut_mesh_point_elset (Mesh, Nodes, Point.PointCoo[id], NULL, 0, &tmp); + neut_mesh_point_elset (Mesh, Nodes, Point.Coo[id], NULL, 0, &tmp); (*pvals)[0] = tmp; if (ptype) strcpy (*ptype, "%d"); @@ -187,18 +187,18 @@ neut_point_var_val_one (struct POINT Point, struct TESS Tess, void neut_point_addpoint (struct POINT *pPoint, double *coo, double rad) { - (*pPoint).PointQty++; - if ((*pPoint).PointQty == 1) - (*pPoint).PointCoo = ut_alloc_2d (1, 3); + (*pPoint).Qty++; + if ((*pPoint).Qty == 1) + (*pPoint).Coo = ut_alloc_2d (1, 3); - (*pPoint).PointCoo = - ut_realloc_2d_addline ((*pPoint).PointCoo, (*pPoint).PointQty + 1, 3); - (*pPoint).PointRad = - ut_realloc_1d ((*pPoint).PointRad, (*pPoint).PointQty + 1); + (*pPoint).Coo = + ut_realloc_2d_addline ((*pPoint).Coo, (*pPoint).Qty + 1, 3); + (*pPoint).Rad = + ut_realloc_1d ((*pPoint).Rad, (*pPoint).Qty + 1); if (coo) - ut_array_1d_memcpy (coo, 3, (*pPoint).PointCoo[(*pPoint).PointQty]); - (*pPoint).PointRad[(*pPoint).PointQty] = rad; + ut_array_1d_memcpy (coo, 3, (*pPoint).Coo[(*pPoint).Qty]); + (*pPoint).Rad[(*pPoint).Qty] = rad; return; } @@ -208,11 +208,11 @@ neut_point_pt_size (struct POINT Point, int pt, double *psize) { (*psize) = 0; if (Point.Dim == 1) - (*psize) = 2 * Point.PointRad[pt]; + (*psize) = 2 * Point.Rad[pt]; else if (Point.Dim == 2) - (*psize) = M_PI * pow (Point.PointRad[pt], 2); + (*psize) = M_PI * pow (Point.Rad[pt], 2); else if (Point.Dim == 3) - (*psize) = (4. * M_PI / 3) * pow (Point.PointRad[pt], 3); + (*psize) = (4. * M_PI / 3) * pow (Point.Rad[pt], 3); return; } @@ -222,8 +222,8 @@ neut_point_shift (struct POINT *pPoint, double *s) { int i; - for (i = 1; i <= (*pPoint).PointQty; i++) - ut_array_1d_add ((*pPoint).PointCoo[i], s, 3, (*pPoint).PointCoo[i]); + for (i = 1; i <= (*pPoint).Qty; i++) + ut_array_1d_add ((*pPoint).Coo[i], s, 3, (*pPoint).Coo[i]); return; } @@ -266,13 +266,13 @@ neut_point_entity_expr_val (struct POINT Point, struct TESS Tess, struct NODES N if (ut_string_isfilename (expr)) { file = ut_file_open (expr, "R"); - ut_array_1d_fscanf (file, val + 1, Point.PointQty); + ut_array_1d_fscanf (file, val + 1, Point.Qty); ut_file_close (file, expr, "R"); ut_string_string ("%f", ptype); } else { - for (j = 1; j <= Point.PointQty; j++) + for (j = 1; j <= Point.Qty; j++) { for (k = 0; k < varqty; k++) { @@ -301,5 +301,5 @@ neut_point_entity_expr_val (struct POINT Point, struct TESS Tess, struct NODES N int neut_point_isvoid (struct POINT Point) { - return Point.PointQty == 0; + return Point.Qty == 0; } diff --git a/src/neut/neut_point/neut_point_fscanf/neut_point_fscanf1.c b/src/neut/neut_point/neut_point_fscanf/neut_point_fscanf1.c index 1cf398d56..a1fa8be41 100644 --- a/src/neut/neut_point/neut_point_fscanf/neut_point_fscanf1.c +++ b/src/neut/neut_point/neut_point_fscanf/neut_point_fscanf1.c @@ -7,11 +7,11 @@ void neut_point_fscanf (FILE * file, struct POINT *pPoint) { - (*pPoint).PointQty = ut_file_nbwords_pointer (file) / 3; + (*pPoint).Qty = ut_file_nbwords_pointer (file) / 3; (*pPoint).Dim = 3; - (*pPoint).PointCoo = ut_alloc_2d ((*pPoint).PointQty + 1, 3); - ut_array_2d_fscanf (file, (*pPoint).PointCoo + 1, (*pPoint).PointQty, + (*pPoint).Coo = ut_alloc_2d ((*pPoint).Qty + 1, 3); + ut_array_2d_fscanf (file, (*pPoint).Coo + 1, (*pPoint).Qty, (*pPoint).Dim); return; diff --git a/src/neut/neut_print/neut_print.c b/src/neut/neut_print/neut_print.c index df999f215..0a46e06cc 100644 --- a/src/neut/neut_print/neut_print.c +++ b/src/neut/neut_print/neut_print.c @@ -7,10 +7,47 @@ void neut_print_set_default (struct PRINT *pPrint) { + // space ------------------------------------------------------------- + (*pPrint).space = NULL; + ut_string_string ("real", &((*pPrint).space)); + + // pf ---------------------------------------------------------------- + (*pPrint).pfpolestring = NULL; + ut_string_string ("1:1:1", &(*pPrint).pfpolestring); + (*pPrint).pfpoles = NULL; + (*pPrint).pfpoleqty = 0; + (*pPrint).pfprojection = NULL; + ut_string_string ("stereographic", &(*pPrint).pfprojection); + (*pPrint).pfmode = NULL; + ut_string_string ("symbol", &(*pPrint).pfmode); + (*pPrint).pffont = NULL; + ut_string_string ("TimesRoman", &(*pPrint).pffont); + + (*pPrint).pfsym = NULL; + ut_string_string ("monoclinic", &(*pPrint).pfsym); + + (*pPrint).pfclustering = 1; + + (*pPrint).pfgridsize = 200; + (*pPrint).pfkernel = NULL; + ut_string_string ("normal(3)", &(*pPrint).pfkernel); + (*pPrint).pfkernelsig = 3; + + (*pPrint).pfdirstring = NULL; + ut_string_string ("y:-x", &(*pPrint).pfdirstring); + (*pPrint).pfdir = NULL; + + (*pPrint).pfshape = NULL; + ut_string_string ("full", &(*pPrint).pfshape); + // povray ------------------------------------------------------------ (*pPrint).povray = NULL; ut_string_string ("povray", &((*pPrint).povray)); + // asymptote ------------------------------------------------------------ + (*pPrint).asymptote = NULL; + ut_string_string ("asy", &((*pPrint).asymptote)); + // camera ------------------------------------------------------------ (*pPrint).cameracoostring = ut_alloc_1d_char (100); sprintf ((*pPrint).cameracoostring, "x+length*vx%sy+length*vy%sz+length*vz", @@ -31,16 +68,34 @@ neut_print_set_default (struct PRINT *pPrint) (*pPrint).cameraprojection = ut_alloc_1d_char (100); strcpy ((*pPrint).cameraprojection, "default"); + // light ------------------------------------------------------------ + (*pPrint).lightsourcestring = NULL; + ut_string_string ("default", &(*pPrint).lightsourcestring); + (*pPrint).lightsourceqty = 0; + (*pPrint).lightsources = NULL; + (*pPrint).lightambientstring = NULL; + ut_string_string ("default", &(*pPrint).lightambientstring); + (*pPrint).lightdiffusestring = NULL; + ut_string_string ("default", &(*pPrint).lightdiffusestring); + (*pPrint).lightreflectionstring = NULL; + ut_string_string ("default", &(*pPrint).lightreflectionstring); + (*pPrint).lightambient = 0; + (*pPrint).lightdiffuse = 0; + (*pPrint).lightreflection = 0; + // image ------------------------------------------------------------- (*pPrint).imagesize = ut_alloc_1d_char (100); sprintf ((*pPrint).imagesize, "1200%s900", NEUT_SEP_DEP); - (*pPrint).imageantialias = 1; + (*pPrint).povrayantialiasing = 1; (*pPrint).showtess = -1; (*pPrint).showtesr = -1; (*pPrint).showmesh = -1; (*pPrint).showslice = -1; + (*pPrint).inputqty = 0; + (*pPrint).inputs = NULL; + (*pPrint).showseed = ut_alloc_1d_int (1); (*pPrint).showcrystal = ut_alloc_1d_int (1); (*pPrint).showver = ut_alloc_1d_int (1); @@ -53,7 +108,7 @@ neut_print_set_default (struct PRINT *pPrint) (*pPrint).showelt0d = ut_alloc_1d_int (1); (*pPrint).showelt1d = ut_alloc_1d_int (1); (*pPrint).showelt2d = ut_alloc_1d_int (1); - (*pPrint).showpoint = ut_alloc_1d_int (1); + (*pPrint).showpoint = NULL; (*pPrint).showcrystal[0] = -1; (*pPrint).showseed[0] = -1; (*pPrint).showver[0] = -1; @@ -65,21 +120,20 @@ neut_print_set_default (struct PRINT *pPrint) (*pPrint).showelt0d[0] = -1; (*pPrint).showelt1d[0] = -1; (*pPrint).showelt2d[0] = -1; - (*pPrint).showpoint[0] = -1; (*pPrint).showcsys = -1; (*pPrint).showvox = NULL; (*pPrint).showvoxstring = NULL; (*pPrint).showvoidvoxstring = NULL; (*pPrint).showedgestring = NULL; (*pPrint).scenebackground = NULL; + (*pPrint).showscale = -1; ut_string_string ("white", &(*pPrint).scenebackground); - (*pPrint).sceneshadow = -1; (*pPrint).datareduction = 1; - (*pPrint).format = ut_alloc_1d_char (10); - sprintf ((*pPrint).format, "png"); + (*pPrint).imageformat = ut_alloc_1d_char (10); + sprintf ((*pPrint).imageformat, "png"); (*pPrint).includepov = NULL; @@ -94,6 +148,8 @@ neut_print_set_default (struct PRINT *pPrint) void neut_print_free (struct PRINT *pPrint) { + ut_free_1d_char (&(*pPrint).space); + // camera ------------------------------------------------------------ ut_free_1d_char (&(*pPrint).cameracoostring); ut_free_1d (&(*pPrint).cameracoo); @@ -106,6 +162,13 @@ neut_print_free (struct PRINT *pPrint) ut_free_1d_char (&(*pPrint).cameraprojection); + // light ------------------------------------------------------------ + ut_free_1d_char (&(*pPrint).lightsourcestring); + ut_free_2d_char (&(*pPrint).lightsources, (*pPrint).lightsourceqty); + ut_free_1d_char (&(*pPrint).lightambientstring); + ut_free_1d_char (&(*pPrint).lightdiffusestring); + ut_free_1d_char (&(*pPrint).lightreflectionstring); + // image ------------------------------------------------------------- ut_free_1d_char (&(*pPrint).imagesize); ut_free_1d_char (&(*pPrint).scenebackground); @@ -120,9 +183,10 @@ neut_print_free (struct PRINT *pPrint) ut_free_1d_int (&(*pPrint).showelt2d); ut_free_1d_int (&(*pPrint).showelt1d); ut_free_1d_int (&(*pPrint).showelt0d); - ut_free_1d_int (&(*pPrint).showpoint); + ut_free_2d_int (&(*pPrint).showpoint, (*pPrint).inputqty); + ut_free_2d_char (&(*pPrint).inputs, (*pPrint).inputqty); - ut_free_1d_char (&(*pPrint).format); + ut_free_1d_char (&(*pPrint).imageformat); ut_free_1d_char (&(*pPrint).includepov); return; @@ -160,3 +224,33 @@ neut_print_outdir (struct PRINT Print, struct SIM Sim, char *format, char **pdir return; } + +void +neut_print_imagesize (struct PRINT Print, int *pwidth, int *pheight) +{ + int valqty; + char **vals = NULL; + + ut_list_break (Print.imagesize, NEUT_SEP_DEP, &vals, &valqty); + if (valqty != 2) + ut_print_message (2, 2, "Expression `%s' could not be processed.\n", + Print.imagesize); + if (pwidth) + ut_string_int (vals[0], pwidth); + if (pheight) + ut_string_int (vals[1], pheight); + ut_free_2d_char (&vals, valqty); + + return; +} + +int +neut_print_cell_show (struct PRINT Print, struct TESS Tess, int cell) +{ + if (Tess.Dim == 2) + return Print.showface[cell]; + else if (Tess.Dim == 3) + return Print.showpoly[cell]; + else + abort (); +} diff --git a/src/neut/neut_print/neut_print.h b/src/neut/neut_print/neut_print.h index 3dc466e46..dec151197 100644 --- a/src/neut/neut_print/neut_print.h +++ b/src/neut/neut_print/neut_print.h @@ -18,6 +18,8 @@ extern "C" extern void neut_print_set_default (struct PRINT *); extern void neut_print_free (struct PRINT *); extern void neut_print_outdir (struct PRINT Print, struct SIM Sim, char *format, char **pdir); + extern void neut_print_imagesize (struct PRINT Print, int *pwidth, int *pheight); + extern int neut_print_cell_show (struct PRINT Print, struct TESS Tess, int cell); #endif /* NEUT_PRINT_H */ diff --git a/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf.h b/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf.h index f359c4473..be1bbc7ae 100644 --- a/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf.h +++ b/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf.h @@ -10,6 +10,8 @@ /// writes a simulation report file extern void neut_sim_fprintf (char *dir, struct SIM Sim, char *mode); +extern void neut_sim_fprintf_asy (char *dir, struct SIM Sim, char *mode); + /// writes at terminal about the simulation extern void neut_sim_verbose (struct SIM Sim); diff --git a/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf1.c b/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf1.c index d71e58c44..1386c38e7 100644 --- a/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf1.c +++ b/src/neut/neut_sim/neut_sim_fprintf/neut_sim_fprintf1.c @@ -120,6 +120,211 @@ neut_sim_fprintf (char *dir, struct SIM Sim, char *mode) return; } +void +neut_sim_fprintf_asy (char *dir, struct SIM Sim, char *mode) +{ + int i, j, k; + char *oldfilename = ut_string_paste (dir, "/report"); + char *filename = NULL, *filename2 = NULL; + if (strstr (dir, ".sim")) + { + ut_string_string (dir, &filename); + ut_string_fnrs (filename, ".sim", ".asy", 1); + } + else + filename = ut_string_addextension (dir, "asy"); + + ut_string_string (filename, &filename2); + ut_string_fnrs (filename2, ".asy", ".pdf", 1); + + char *command = ut_alloc_1d_char (strlen (filename) + 100); + FILE *file = ut_file_open (filename, "W"); + ut_file_openmessage (filename2, mode); + + if (ut_file_exist (oldfilename)) + remove (oldfilename); + + fprintf (file, "\n"); + fprintf (file, "// A simple tree drawing module contributed by adarovsky\n"); + fprintf (file, "// See example treetest.asy\n"); + fprintf (file, "\n"); + fprintf (file, "real treeNodeStep = 0.5cm;\n"); + fprintf (file, "real treeLevelStep = 1cm;\n"); + fprintf (file, "real treeMinNodeWidth = 2cm;\n"); + fprintf (file, "\n"); + fprintf (file, "struct TreeNode {\n"); + fprintf (file, " TreeNode parent;\n"); + fprintf (file, " TreeNode[] children;\n"); + fprintf (file, "\n"); + fprintf (file, " frame content;\n"); + fprintf (file, "\n"); + fprintf (file, " pair pos;\n"); + fprintf (file, " real adjust;\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + fprintf (file, "void add( TreeNode child, TreeNode parent )\n"); + fprintf (file, "{\n"); + fprintf (file, " child.parent = parent;\n"); + fprintf (file, " parent.children.push( child );\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + fprintf (file, "TreeNode makeNode( TreeNode parent = null, frame f )\n"); + fprintf (file, "{\n"); + fprintf (file, " TreeNode child = new TreeNode;\n"); + fprintf (file, " child.content = f;\n"); + fprintf (file, " if( parent != null ) {\n"); + fprintf (file, " add( child, parent );\n"); + fprintf (file, " }\n"); + fprintf (file, " return child;\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + fprintf (file, "TreeNode makeNode( TreeNode parent = null, Label label )\n"); + fprintf (file, "{\n"); + fprintf (file, " frame f;\n"); + fprintf (file, " roundbox( f, label, 2, 2, linewidth(0.5), FillDraw(orange+white));\n"); + fprintf (file, " return makeNode( parent, f );\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + fprintf (file, "\n"); + fprintf (file, "real layout( int level, TreeNode node )\n"); + fprintf (file, "{\n"); + fprintf (file, " if( node.children.length > 0 ) {\n"); + fprintf (file, " real width[] = new real[node.children.length];\n"); + fprintf (file, " real curWidth = 0;\n"); + fprintf (file, "\n"); + fprintf (file, " for( int i = 0; i < node.children.length; ++i ) {\n"); + fprintf (file, " width[i] = layout( level+1, node.children[i] );\n"); + fprintf (file, "\n"); + fprintf (file, " node.children[i].pos = (curWidth + width[i]/2,\n"); + fprintf (file, " -level*treeLevelStep);\n"); + fprintf (file, " curWidth += width[i] + treeNodeStep;\n"); + fprintf (file, " }\n"); + fprintf (file, "\n"); + fprintf (file, " real midPoint = ( sum( width )+treeNodeStep*(width.length-1)) / 2;\n"); + fprintf (file, " for( int i = 0; i < node.children.length; ++i ) {\n"); + fprintf (file, " node.children[i].adjust = - midPoint;\n"); + fprintf (file, " }\n"); + fprintf (file, "\n"); + fprintf (file, " return max( (max(node.content)-min(node.content)).x,\n"); + fprintf (file, " sum(width)+treeNodeStep*(width.length-1) );\n"); + fprintf (file, " }\n"); + fprintf (file, " else {\n"); + fprintf (file, " return max( treeMinNodeWidth, (max(node.content)-min(node.content)).x );\n"); + fprintf (file, " }\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + fprintf (file, "void drawAll( TreeNode node, frame f )\n"); + fprintf (file, "{\n"); + fprintf (file, " pair pos;\n"); + fprintf (file, " if( node.parent != null )\n"); + fprintf (file, " pos = (node.parent.pos.x+node.adjust, 0);\n"); + fprintf (file, " else\n"); + fprintf (file, " pos = (node.adjust, 0);\n"); + fprintf (file, " node.pos += pos;\n"); + fprintf (file, "\n"); + fprintf (file, " node.content = shift(node.pos)*node.content;\n"); + fprintf (file, " add( f, node.content );\n"); + fprintf (file, "\n"); + fprintf (file, "\n"); + fprintf (file, " if( node.parent != null ) {\n"); + fprintf (file, " path p = point(node.content, N)--point(node.parent.content,S);\n"); + fprintf (file, " draw( f, p, currentpen );\n"); + fprintf (file, " }\n"); + fprintf (file, "\n"); + fprintf (file, " for( int i = 0; i < node.children.length; ++i )\n"); + fprintf (file, " drawAll( node.children[i], f );\n"); + fprintf (file, "}\n"); + fprintf (file, "\n"); + fprintf (file, "void draw( TreeNode root, pair pos )\n"); + fprintf (file, "{\n"); + fprintf (file, " frame f;\n"); + fprintf (file, "\n"); + fprintf (file, " root.pos = (0,0);\n"); + fprintf (file, " layout( 1, root );\n"); + fprintf (file, "\n"); + fprintf (file, " drawAll( root, f );\n"); + fprintf (file, "\n"); + fprintf (file, " add(f,pos);\n"); + fprintf (file, "}\n"); + + fprintf (file, "treeNodeStep = 0.4cm;\n"); + fprintf (file, "treeLevelStep = 1.8cm;\n"); + fprintf (file, "\n"); + fprintf (file, "TreeNode root = makeNode(\"\\tt %s/\");\n", Sim.simdir); + fprintf (file, "\n"); + fprintf (file, "TreeNode child1 = makeNode(root, \"\\tt inputs/\");\n"); + + int id = 0; + if (Sim.tess) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.tess); + if (Sim.tesr) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.tesr); + if (Sim.msh) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.msh); + if (Sim.bcs) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.bcs); + if (Sim.ori) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.ori); + if (Sim.phase) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.phase); + if (Sim.config) + fprintf (file, "TreeNode child1%d = makeNode(child1, \"\\tt %s\");\n", ++id, Sim.config); + + int print_results = 0; + char *child1 = ut_alloc_1d_char (100); + char *child2 = ut_alloc_1d_char (100); + for (i = 0; i < Sim.EntityQty; i++) + if (Sim.EntityResQty[i]) + { + if (!print_results) + { + fprintf (file, "TreeNode child2 = makeNode(root, \"\\tt results/\");\n"); + print_results = 1; + } + + sprintf (child1, "child2%d", i + 1); + + fprintf (file, "TreeNode %s = makeNode(child2, \"\\tt %s/\");\n", + child1, Sim.Entities[i]); + + for (j = 0; j < Sim.EntityResQty[i]; j++) + { + sprintf (child2, "%s%d", child1, j + 1); + + fprintf (file, "TreeNode %s = makeNode(%s, \"\\tt %s/\");\n", + child2, child1, Sim.EntityRes[i][j]); + + fprintf (file, "TreeNode %s1 = makeNode(%s, \"\\tt \\begin{tabular}{c}", child2, child2); + for (k = 0; k <= Sim.StepQty; k++) + fprintf (file, "%s.step%d \\\\", Sim.EntityRes[i][j], k); + fprintf (file, "\\end{tabular}\");\n"); + } + fprintf (file, "\n"); + } + ut_free_1d_char (&child1); + ut_free_1d_char (&child2); + + /* + if (Sim.OriSpace) + { + fprintf (file, " **orispace\n"); + fprintf (file, " %s\n", Sim.OriSpace); + } + */ + + fprintf (file, "\n"); + fprintf (file, "draw (root, (0, 0));\n"); + ut_file_close (file, filename, "W"); + ut_file_closemessage (filename2, mode); + + ut_free_1d_char (&oldfilename); + ut_free_1d_char (&filename); + ut_free_1d_char (&filename2); + ut_free_1d_char (&command); + + return; +} + void neut_sim_verbose (struct SIM Sim) { diff --git a/src/neut/neut_structs/neut_data_struct.h b/src/neut/neut_structs/neut_data_struct.h index 8a947e6a0..6221fdc58 100644 --- a/src/neut/neut_structs/neut_data_struct.h +++ b/src/neut/neut_structs/neut_data_struct.h @@ -15,42 +15,55 @@ extern "C" // needed by: mesh nodes point tesr tess int Qty; int Dim; - char *Entity; // Entity + char *Entity; // Entity: cell, voxel, ... + + char *Value; // ori, dir, ... + + double **Data; // data itself, needed in -space pf + char *DataType; + char *DataName; + int DataSize; // needed by: csys mesh nodes point tesr tess - double **ColData; // Colour data - char *ColDataType; // Type of color data (col, ori, ...) - char *ColDataName; // Name of the color data - int ColDataSize; // size of the color data - char *ColScheme; // ColourScheme (legend) - int **Col; // Colour - int *ColDataDef; // 1 if data defined, 0 otherwise <-- tesr + double **ColData; // Colour data, indexed 1 + char *ColDataType; // Type of color data (col, ori, ...), indexed 1 + char *ColDataName; // Name of the color data, indexed 1 + int ColDataSize; // size of the color data, indexed 1 + char *ColScheme; // ColourScheme (legend), indexed 1 + int **Col; // Colour, indexed 1 + int *ColDataDef; // 1 if data defined, 0 otherwise <-- tesr, indexed 1 // needed by: point tesr tess - double **TrsData; // Transparency data - char *TrsDataType; // Type of transparency data - char *TrsScheme; // Transparency scheme - double *Trs; // Transparency + double **TrsData; // Transparency data, indexed 1 + char *TrsDataType; // Type of transparency data, indexed 1 + char *TrsScheme; // Transparency scheme, indexed 1 + double *Trs; // Transparency, indexed 1 + + // needed by: csys mesh nodes point tess + double **RadData; // Radius data, indexed 1 + char *RadDataType; // Type of radius data, indexed 1 + double *Rad; // Radius, indexed 1 + char *RadDataName; // Name of the rad data, indexed 1 // needed by: csys mesh nodes point tess - double **RadData; // Radius data - char *RadDataType; // Type of radius data - double *Rad; // Radius - char *RadDataName; // Name of the rad data + char **SymbolData; // Symbol data, indexed 1 + char *SymbolDataType; // Type of symbol data, indexed 1 + char **Symbol; // Symbol, indexed 1 + char *SymbolDataName; // Name of the symbol data, indexed 1 // needed by: csys nodes point - double **CooData; - char *CooDataType; + double **CooData; // indexed 1 + char *CooDataType; // indexed 1 char *CooDataName; // Name of the coo data - double **Coo; - double CooFact; + double **Coo; // indexed 1 + double CooFact; // indexed 1 // needed by: csys - double **LengthData; - char *LengthDataType; - double *Length; + double **LengthData; // indexed 1 + char *LengthDataType; // indexed 1 + double *Length; // indexed 1 - // needed by: mesh tesr + // needed by: mesh tesr tess int *BCol; // Element boundary color double BRad; // Element boundary radius @@ -63,7 +76,6 @@ extern "C" // needed by: point double *Axes; - char *Space; // needed by: csys char **Label; diff --git a/src/neut/neut_structs/neut_point_struct.h b/src/neut/neut_structs/neut_point_struct.h index ce99ed607..513b2694d 100644 --- a/src/neut/neut_structs/neut_point_struct.h +++ b/src/neut/neut_structs/neut_point_struct.h @@ -12,14 +12,15 @@ extern "C" struct POINT { + char *Name; + + char *Type; int Dim; - int *activedim; - int *Periodic; - double **BBox; - int PointQty; - double **PointCoo; - double *PointRad; + int Qty; + double **Coo; + + double *Rad; // pointer to SIM structure struct SIM *pSim; diff --git a/src/neut/neut_structs/neut_print_struct.h b/src/neut/neut_structs/neut_print_struct.h index 13b00ffeb..385e41894 100644 --- a/src/neut/neut_structs/neut_print_struct.h +++ b/src/neut/neut_structs/neut_print_struct.h @@ -12,31 +12,47 @@ extern "C" struct PRINT { - // povray + // prerequisites ----------------------------------------------------------- char *povray; + int povrayantialiasing; - // camera settings - char *cameracoostring; - double *cameracoo; + char *asymptote; - char *cameralookatstring; - double *cameralookat; + // space ------------------------------------------------------------------- + char *space; - char *cameraskystring; - double *camerasky; + // space ------------------------------------------------------------------- + char *pfpolestring; + int** pfpoles; + int pfpoleqty; - double cameraangle; + char *pfprojection; // stereographic or equal-area + char *pfmode; // representation mode: point, contour, density + char *pffont; // TimesRoman or ComputerModern - char *cameraprojection; + int pfgridsize; + char *pfkernel; + double pfkernelsig; + char *pfdirstring; + double **pfdir; // [0,1] + char *pfsym; + int pfclustering; - // image settings - char *imagesize; - int imageantialias; + char *pfshape; + + // slicing ----------------------------------------------------------------- + char *slice; + // show -------------------------------------------------------------------- int showtess; int showtesr; int showmesh; int showslice; + int showcsys; + int showscale; + + int inputqty; + char **inputs; int *shownode; int *showelt3d; @@ -55,24 +71,45 @@ extern "C" char *showvoidvoxstring; char *showedgestring; - int *showpoint; + int **showpoint; int *showcrystal; - int showcsys; + // camera ------------------------------------------------------------------ + char *cameracoostring; + double *cameracoo; + char *cameralookatstring; + double *cameralookat; + char *cameraskystring; + double *camerasky; + double cameraangle; + char *cameraprojection; + // light ------------------------------------------------------------------- + char *lightsourcestring; + char **lightsources; + int lightsourceqty; + char *lightambientstring; + double lightambient; + char *lightdiffusestring; + double lightdiffuse; + char *lightreflectionstring; + double lightreflection; + + // scene ------------------------------------------------------------------- char *scenebackground; - int sceneshadow; - // miscellaneous - int datareduction; + // image ------------------------------------------------------------------- + char *imagesize; + char *imageformat; - char *format; + // output ------------------------------------------------------------------ + char *outdir; + // advanced ---------------------------------------------------------------- char *includepov; - char *slice; - - char *outdir; + // internal for now -------------------------------------------------------- + int datareduction; // set to 1 }; typedef struct PRINT PRINT; diff --git a/src/neut/neut_tesr/neut_tesr_fscanf/neut_tesr_fscanf2.c b/src/neut/neut_tesr/neut_tesr_fscanf/neut_tesr_fscanf2.c index 0ac7bd37d..13f077bc2 100644 --- a/src/neut/neut_tesr/neut_tesr_fscanf/neut_tesr_fscanf2.c +++ b/src/neut/neut_tesr/neut_tesr_fscanf/neut_tesr_fscanf2.c @@ -244,11 +244,11 @@ neut_tesr_fscanf_data (struct TESR *pTesr, char *dirname, int *bounds, if (bounds && scale) ut_print_neperbug (); - if (!bounds) + if (!bounds && !(*pTesr).VoxCell) (*pTesr).VoxCell = ut_alloc_3d_int ((*pTesr).size[0] + 2, (*pTesr).size[1] + 2, (*pTesr).size[2] + 2); - else + else if (!(*pTesr).VoxCell) (*pTesr).VoxCell = ut_alloc_3d_int (bounds[1] - bounds[0] + 3, bounds[3] - bounds[2] + 3, bounds[5] - bounds[4] + 3); diff --git a/src/neut/neut_tess/neut_tess_crystal/neut_tess_crystal.c b/src/neut/neut_tess/neut_tess_crystal/neut_tess_crystal.c index 959b1d207..f26e0a597 100644 --- a/src/neut/neut_tess/neut_tess_crystal/neut_tess_crystal.c +++ b/src/neut/neut_tess/neut_tess_crystal/neut_tess_crystal.c @@ -13,20 +13,14 @@ neut_tess_crystal (struct TESS Tess, struct POINT *pCrystal) (*pCrystal).Dim = Tess.Dim; - if (Tess.Periodic) - { - (*pCrystal).Periodic = ut_alloc_1d_int (3); - ut_array_1d_int_memcpy (Tess.Periodic, Tess.Dim, (*pCrystal).Periodic); - } - - (*pCrystal).PointQty = Tess.CellQty; - (*pCrystal).PointCoo = ut_alloc_2d ((*pCrystal).PointQty + 1, 3); - (*pCrystal).PointRad = ut_alloc_1d ((*pCrystal).PointQty + 1); + (*pCrystal).Qty = Tess.CellQty; + (*pCrystal).Coo = ut_alloc_2d ((*pCrystal).Qty + 1, 3); + (*pCrystal).Rad = ut_alloc_1d ((*pCrystal).Qty + 1); for (i = 1; i <= Tess.CellQty; i++) { - neut_tess_cell_centroid (Tess, i, (*pCrystal).PointCoo[i]); - neut_tess_cell_radeq (Tess, i, (*pCrystal).PointRad + i); + neut_tess_cell_centroid (Tess, i, (*pCrystal).Coo[i]); + neut_tess_cell_radeq (Tess, i, (*pCrystal).Rad + i); } return; diff --git a/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.c b/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.c index 44c931cc4..6cae6f09f 100644 --- a/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.c +++ b/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.c @@ -1183,11 +1183,7 @@ neut_tess_var_val (struct TESS Tess, status = neut_sim_entity_id_res_val (*(Tess.pSim), entity, id, var, *pvals); if (ptype) - { - ut_free_1d_char (ptype); - (*ptype) = ut_alloc_1d_char (strlen (typetmp) + 1); - strcpy (*ptype, typetmp); - } + ut_string_string (typetmp, ptype); ut_free_1d (&c); ut_free_2d (&bbox, 3); @@ -1231,7 +1227,7 @@ neut_tess_entity_dim (struct TESS Tess, char *entity, int *pdim) (*pdim) = 3; else if (!strcmp (entity, "seed")) (*pdim) = 4; - else if (!strcmp (entity, "cell")) + else if (!strncmp (entity, "cell", 4)) (*pdim) = Tess.Dim; else if (!strncmp (entity, "crystal", 7)) (*pdim) = 5; @@ -1281,6 +1277,8 @@ neut_tess_entity_qty (struct TESS Tess, char *entity, int *pqty) (*pqty) = Tess.CellQty; else if (!strcmp (entity, "crystaledge")) (*pqty) = 1; + else if (!strcmp (entity, "celledge")) + (*pqty) = 1; else if (!strcmp (entity, "seed")) (*pqty) = Tess.CellQty; else if (!strcmp (entity, "group")) @@ -1822,3 +1820,19 @@ neut_tess_cell_id (struct TESS Tess, int cell) { return Tess.CellId ? Tess.CellId[cell] : cell; } + +void +neut_tess_olset (struct TESS Tess, struct OL_SET *pOSet) +{ + int i; + + (*pOSet) = ol_set_alloc (Tess.CellQty, Tess.CellCrySym ? Tess.CellCrySym : "triclinic"); + + for (i = 1; i <= Tess.CellQty; i++) + { + ol_q_memcpy (Tess.CellOri[i], (*pOSet).q[i -1]); + neut_tess_cell_size (Tess, i, (*pOSet).weight + i - 1); + } + + return; +} diff --git a/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.h b/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.h index 67d7390f5..507e88b23 100644 --- a/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.h +++ b/src/neut/neut_tess/neut_tess_gen/neut_tess_gen.h @@ -10,6 +10,8 @@ extern "C" #ifndef NEUT_TESS_GEN_H #define NEUT_TESS_GEN_H +#include<orilib.h> + extern void neut_tess_var_dim (int dim, char *entity, char *var, int *pdim); extern int neut_tess_var_val (struct TESS Tess, int *showedge, int *showface, int *showpoly, @@ -69,6 +71,8 @@ extern "C" extern int neut_tess_cell_id (struct TESS Tess, int cell); + extern void neut_tess_olset (struct TESS Tess, struct OL_SET *pOSet); + #endif /* NEUT_TESS_GEN_H */ #ifdef __cplusplus diff --git a/src/neut/neut_v.h b/src/neut/neut_v.h index e393a9ff7..ce2b7c925 100644 --- a/src/neut/neut_v.h +++ b/src/neut/neut_v.h @@ -29,6 +29,7 @@ extern "C" #include "neut_nodes/neut_nodes.h" #include "neut_debug/neut_debug.h" #include "neut_povray/neut_povray.h" +#include "neut_asy/neut_asy.h" #include "neut_data/neut_data.h" #include "neut_print/neut_print.h" #include "neut_point/neut_point.h" diff --git a/tests/V/cellcol_real/ref-scale3.png b/tests/V/cellcol_real/ref-scale3.png index b757f5d69..a8921c79c 100644 Binary files a/tests/V/cellcol_real/ref-scale3.png and b/tests/V/cellcol_real/ref-scale3.png differ diff --git a/tests/V/cellcol_real/ref.png b/tests/V/cellcol_real/ref.png index 69367f0e9..306c938dc 100644 Binary files a/tests/V/cellcol_real/ref.png and b/tests/V/cellcol_real/ref.png differ diff --git a/tests/V/cellcol_real_colscheme/ref-scale3.png b/tests/V/cellcol_real_colscheme/ref-scale3.png index bb169e882..3325d41a0 100644 Binary files a/tests/V/cellcol_real_colscheme/ref-scale3.png and b/tests/V/cellcol_real_colscheme/ref-scale3.png differ diff --git a/tests/V/cellcol_real_colscheme/ref.png b/tests/V/cellcol_real_colscheme/ref.png index 1c2c71328..1091b032f 100644 Binary files a/tests/V/cellcol_real_colscheme/ref.png and b/tests/V/cellcol_real_colscheme/ref.png differ diff --git a/tests/V/cellcol_real_colscheme/test.cmake b/tests/V/cellcol_real_colscheme/test.cmake index 53f73dae0..3d9630f30 100644 --- a/tests/V/cellcol_real_colscheme/test.cmake +++ b/tests/V/cellcol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showcell all -datacellcol "real:file(n2-id1.stcell)" -datacellcolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showcell all -datacellcol "real:file(n2-id1.stcell)" -datacellcolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/cellscale/ref-scale3.png b/tests/V/cellscale/ref-scale3.png index ce75eff6e..59408cbd2 100644 Binary files a/tests/V/cellscale/ref-scale3.png and b/tests/V/cellscale/ref-scale3.png differ diff --git a/tests/V/cellscale/ref.png b/tests/V/cellscale/ref.png index dd979553a..231b6a0dc 100644 Binary files a/tests/V/cellscale/ref.png and b/tests/V/cellscale/ref.png differ diff --git a/tests/V/cellscale2/ref-scale3.png b/tests/V/cellscale2/ref-scale3.png index b58ac7897..92ee2f32c 100644 Binary files a/tests/V/cellscale2/ref-scale3.png and b/tests/V/cellscale2/ref-scale3.png differ diff --git a/tests/V/cellscale2/ref.png b/tests/V/cellscale2/ref.png index f8576cd85..42512d13f 100644 Binary files a/tests/V/cellscale2/ref.png and b/tests/V/cellscale2/ref.png differ diff --git a/tests/V/cellscaletitle/ref-scale3.png b/tests/V/cellscaletitle/ref-scale3.png index 20b239f99..6350ae08f 100644 Binary files a/tests/V/cellscaletitle/ref-scale3.png and b/tests/V/cellscaletitle/ref-scale3.png differ diff --git a/tests/V/cellscaletitle/ref.png b/tests/V/cellscaletitle/ref.png index d7be6198b..58358d470 100644 Binary files a/tests/V/cellscaletitle/ref.png and b/tests/V/cellscaletitle/ref.png differ diff --git a/tests/V/crystalcol_colscheme/ref-scalec.png b/tests/V/crystalcol_colscheme/ref-scalec.png index 440a4c4dc..780ebfdc5 100644 Binary files a/tests/V/crystalcol_colscheme/ref-scalec.png and b/tests/V/crystalcol_colscheme/ref-scalec.png differ diff --git a/tests/V/crystalcol_colscheme/ref.png b/tests/V/crystalcol_colscheme/ref.png index 203299cc2..aa2320663 100644 Binary files a/tests/V/crystalcol_colscheme/ref.png and b/tests/V/crystalcol_colscheme/ref.png differ diff --git a/tests/V/crystalcol_real/ref-scalec.png b/tests/V/crystalcol_real/ref-scalec.png index b864faeab..04e3f797c 100644 Binary files a/tests/V/crystalcol_real/ref-scalec.png and b/tests/V/crystalcol_real/ref-scalec.png differ diff --git a/tests/V/crystalcol_real/ref.png b/tests/V/crystalcol_real/ref.png index f9f426e85..445c3e6ec 100644 Binary files a/tests/V/crystalcol_real/ref.png and b/tests/V/crystalcol_real/ref.png differ diff --git a/tests/V/crystalcol_real_colscheme/ref-scalec.png b/tests/V/crystalcol_real_colscheme/ref-scalec.png index d95ee4c0f..ef70c142d 100644 Binary files a/tests/V/crystalcol_real_colscheme/ref-scalec.png and b/tests/V/crystalcol_real_colscheme/ref-scalec.png differ diff --git a/tests/V/crystalcol_real_colscheme/ref.png b/tests/V/crystalcol_real_colscheme/ref.png index 16e268fca..5b3304cdd 100644 Binary files a/tests/V/crystalcol_real_colscheme/ref.png and b/tests/V/crystalcol_real_colscheme/ref.png differ diff --git a/tests/V/crystalcol_real_colscheme/test.cmake b/tests/V/crystalcol_real_colscheme/test.cmake index c2a12705b..abd4796ae 100644 --- a/tests/V/crystalcol_real_colscheme/test.cmake +++ b/tests/V/crystalcol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showcrystal all -datacrystalcol "real:file(n2-id1.stcrystal)" -datacrystalcolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showcrystal all -datacrystalcol "real:file(n2-id1.stcrystal)" -datacrystalcolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/crystaledgecol_cubic/ref.png b/tests/V/crystaledgecol_cubic/ref.png index d01cc753e..32ebd24de 100644 Binary files a/tests/V/crystaledgecol_cubic/ref.png and b/tests/V/crystaledgecol_cubic/ref.png differ diff --git a/tests/V/crystaledgerad_cubic/ref.png b/tests/V/crystaledgerad_cubic/ref.png index 3bb17150b..8c31103f3 100644 Binary files a/tests/V/crystaledgerad_cubic/ref.png and b/tests/V/crystaledgerad_cubic/ref.png differ diff --git a/tests/V/crystalscale/ref-scalec.png b/tests/V/crystalscale/ref-scalec.png index b06f3e04a..d56037996 100644 Binary files a/tests/V/crystalscale/ref-scalec.png and b/tests/V/crystalscale/ref-scalec.png differ diff --git a/tests/V/crystalscale/ref.png b/tests/V/crystalscale/ref.png index ab59299e5..8b5128592 100644 Binary files a/tests/V/crystalscale/ref.png and b/tests/V/crystalscale/ref.png differ diff --git a/tests/V/crystalscale2/ref-scalec.png b/tests/V/crystalscale2/ref-scalec.png index 986e16e54..ba7ab698d 100644 Binary files a/tests/V/crystalscale2/ref-scalec.png and b/tests/V/crystalscale2/ref-scalec.png differ diff --git a/tests/V/crystalscale2/ref.png b/tests/V/crystalscale2/ref.png index 3b43bcf11..6026227d6 100644 Binary files a/tests/V/crystalscale2/ref.png and b/tests/V/crystalscale2/ref.png differ diff --git a/tests/V/crystalscaletitle/ref-scalec.png b/tests/V/crystalscaletitle/ref-scalec.png index 710ace481..fc2532120 100644 Binary files a/tests/V/crystalscaletitle/ref-scalec.png and b/tests/V/crystalscaletitle/ref-scalec.png differ diff --git a/tests/V/crystalscaletitle/ref.png b/tests/V/crystalscaletitle/ref.png index 346a83100..c23d875d0 100644 Binary files a/tests/V/crystalscaletitle/ref.png and b/tests/V/crystalscaletitle/ref.png differ diff --git a/tests/V/custom_input/pts b/tests/V/custom_input/pts new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input/pts @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input/ref.png b/tests/V/custom_input/ref.png new file mode 100644 index 000000000..c38e38621 Binary files /dev/null and b/tests/V/custom_input/ref.png differ diff --git a/tests/V/imageantialias/test.cmake b/tests/V/custom_input/test.cmake similarity index 72% rename from tests/V/imageantialias/test.cmake rename to tests/V/custom_input/test.cmake index b143d0ccc..af919cef5 100644 --- a/tests/V/imageantialias/test.cmake +++ b/tests/V/custom_input/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -imageantialias 1 -print test) +set (test_command -V "file(pts)" -print test) include(../../test.cmake) diff --git a/tests/V/custom_input_col/pts b/tests/V/custom_input_col/pts new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_col/pts @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_col/ref.png b/tests/V/custom_input_col/ref.png new file mode 100644 index 000000000..f00bf08b6 Binary files /dev/null and b/tests/V/custom_input_col/ref.png differ diff --git a/tests/V/custom_input_col/test.cmake b/tests/V/custom_input_col/test.cmake new file mode 100644 index 000000000..7ef9f41d5 --- /dev/null +++ b/tests/V/custom_input_col/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "file(pts)" -datapointcol id -print test) +include(../../test.cmake) diff --git a/tests/V/custom_input_multiple/pts1 b/tests/V/custom_input_multiple/pts1 new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_multiple/pts1 @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_multiple/pts2 b/tests/V/custom_input_multiple/pts2 new file mode 100644 index 000000000..e87e71a29 --- /dev/null +++ b/tests/V/custom_input_multiple/pts2 @@ -0,0 +1 @@ +0.5 0.5 0.5 diff --git a/tests/V/custom_input_multiple/ref.png b/tests/V/custom_input_multiple/ref.png new file mode 100644 index 000000000..189ab0d15 Binary files /dev/null and b/tests/V/custom_input_multiple/ref.png differ diff --git a/tests/V/custom_input_multiple/test.cmake b/tests/V/custom_input_multiple/test.cmake new file mode 100644 index 000000000..7328c7b6c --- /dev/null +++ b/tests/V/custom_input_multiple/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "pts1:file(pts1),pts2:file(pts2)" -print test) +include(../../test.cmake) diff --git a/tests/V/custom_input_multiple_col/pts1 b/tests/V/custom_input_multiple_col/pts1 new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_multiple_col/pts1 @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_multiple_col/pts2 b/tests/V/custom_input_multiple_col/pts2 new file mode 100644 index 000000000..e87e71a29 --- /dev/null +++ b/tests/V/custom_input_multiple_col/pts2 @@ -0,0 +1 @@ +0.5 0.5 0.5 diff --git a/tests/V/custom_input_multiple_col/ref.png b/tests/V/custom_input_multiple_col/ref.png new file mode 100644 index 000000000..8c005ee79 Binary files /dev/null and b/tests/V/custom_input_multiple_col/ref.png differ diff --git a/tests/V/custom_input_multiple_col/test.cmake b/tests/V/custom_input_multiple_col/test.cmake new file mode 100644 index 000000000..1e3f5aba3 --- /dev/null +++ b/tests/V/custom_input_multiple_col/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "pts1:file(pts1),pts2:file(pts2)" -datapts1col id -datapts2col pink -print test) +include(../../test.cmake) diff --git a/tests/V/custom_input_multiple_rad/pts1 b/tests/V/custom_input_multiple_rad/pts1 new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_multiple_rad/pts1 @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_multiple_rad/pts2 b/tests/V/custom_input_multiple_rad/pts2 new file mode 100644 index 000000000..e87e71a29 --- /dev/null +++ b/tests/V/custom_input_multiple_rad/pts2 @@ -0,0 +1 @@ +0.5 0.5 0.5 diff --git a/tests/V/custom_input_multiple_rad/ref.png b/tests/V/custom_input_multiple_rad/ref.png new file mode 100644 index 000000000..50a9d09e1 Binary files /dev/null and b/tests/V/custom_input_multiple_rad/ref.png differ diff --git a/tests/V/custom_input_multiple_rad/test.cmake b/tests/V/custom_input_multiple_rad/test.cmake new file mode 100644 index 000000000..063353c79 --- /dev/null +++ b/tests/V/custom_input_multiple_rad/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "pts1:file(pts1),pts2:file(pts2)" -datapts1rad 0.1*id -datapts2rad 0.2*id -print test) +include(../../test.cmake) diff --git a/tests/V/custom_input_multiple_show/pts1 b/tests/V/custom_input_multiple_show/pts1 new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_multiple_show/pts1 @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_multiple_show/pts2 b/tests/V/custom_input_multiple_show/pts2 new file mode 100644 index 000000000..e87e71a29 --- /dev/null +++ b/tests/V/custom_input_multiple_show/pts2 @@ -0,0 +1 @@ +0.5 0.5 0.5 diff --git a/tests/V/custom_input_multiple_show/ref.png b/tests/V/custom_input_multiple_show/ref.png new file mode 100644 index 000000000..50ecce6e7 Binary files /dev/null and b/tests/V/custom_input_multiple_show/ref.png differ diff --git a/tests/V/custom_input_multiple_show/test.cmake b/tests/V/custom_input_multiple_show/test.cmake new file mode 100644 index 000000000..94a63900a --- /dev/null +++ b/tests/V/custom_input_multiple_show/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "pts1:file(pts1),pts2:file(pts2)" -showpts1 0 -print test) +include(../../test.cmake) diff --git a/tests/V/custom_input_multiple_show2/pts1 b/tests/V/custom_input_multiple_show2/pts1 new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_multiple_show2/pts1 @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_multiple_show2/pts2 b/tests/V/custom_input_multiple_show2/pts2 new file mode 100644 index 000000000..e87e71a29 --- /dev/null +++ b/tests/V/custom_input_multiple_show2/pts2 @@ -0,0 +1 @@ +0.5 0.5 0.5 diff --git a/tests/V/custom_input_multiple_show2/ref.png b/tests/V/custom_input_multiple_show2/ref.png new file mode 100644 index 000000000..7f31c2cf0 Binary files /dev/null and b/tests/V/custom_input_multiple_show2/ref.png differ diff --git a/tests/V/custom_input_multiple_show2/test.cmake b/tests/V/custom_input_multiple_show2/test.cmake new file mode 100644 index 000000000..33caaf74f --- /dev/null +++ b/tests/V/custom_input_multiple_show2/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "pts1:file(pts1),pts2:file(pts2)" -showpts1 0 -showpts2 0 -print test) +include(../../test.cmake) diff --git a/tests/V/custom_input_rad/pts b/tests/V/custom_input_rad/pts new file mode 100644 index 000000000..87dbd4910 --- /dev/null +++ b/tests/V/custom_input_rad/pts @@ -0,0 +1,3 @@ +1 0 0 +0 1 0 +0 0 1 diff --git a/tests/V/custom_input_rad/ref.png b/tests/V/custom_input_rad/ref.png new file mode 100644 index 000000000..f95a6b899 Binary files /dev/null and b/tests/V/custom_input_rad/ref.png differ diff --git a/tests/V/custom_input_rad/test.cmake b/tests/V/custom_input_rad/test.cmake new file mode 100644 index 000000000..0723dc33e --- /dev/null +++ b/tests/V/custom_input_rad/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "file(pts)" -datapointrad 0.1*id -print test) +include(../../test.cmake) diff --git a/tests/V/dataelt3d/test.cmake b/tests/V/dataelt3d/test.cmake index 14285102b..79cee1f66 100644 --- a/tests/V/dataelt3d/test.cmake +++ b/tests/V/dataelt3d/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.msh -dataelt3dcol id -showshadow 0 -print test) +set (test_command -V n2-id1.msh -dataelt3dcol id -lightambient 1 -lightsource none -print test) include(../../test.cmake) diff --git a/tests/V/dataexpr/ref-scale0.png b/tests/V/dataexpr/ref-scale0.png index 352130852..8fb65c176 100644 Binary files a/tests/V/dataexpr/ref-scale0.png and b/tests/V/dataexpr/ref-scale0.png differ diff --git a/tests/V/dataexpr/ref.png b/tests/V/dataexpr/ref.png index f8a833c82..5d9f92718 100644 Binary files a/tests/V/dataexpr/ref.png and b/tests/V/dataexpr/ref.png differ diff --git a/tests/V/datasimtesr/ref-scale.png b/tests/V/datasimtesr/ref-scale.png index 45b9f9f8f..c0a7387bf 100644 Binary files a/tests/V/datasimtesr/ref-scale.png and b/tests/V/datasimtesr/ref-scale.png differ diff --git a/tests/V/datasimtesr/ref.png b/tests/V/datasimtesr/ref.png index fbddbd857..c28336a09 100644 Binary files a/tests/V/datasimtesr/ref.png and b/tests/V/datasimtesr/ref.png differ diff --git a/tests/V/edgecol_real/ref-scale1.png b/tests/V/edgecol_real/ref-scale1.png index 070ea79bf..d09c0e33c 100644 Binary files a/tests/V/edgecol_real/ref-scale1.png and b/tests/V/edgecol_real/ref-scale1.png differ diff --git a/tests/V/edgecol_real/ref.png b/tests/V/edgecol_real/ref.png index dbfd5aa24..a716a2504 100644 Binary files a/tests/V/edgecol_real/ref.png and b/tests/V/edgecol_real/ref.png differ diff --git a/tests/V/edgecol_real_colscheme/ref-scale1.png b/tests/V/edgecol_real_colscheme/ref-scale1.png index f7aab5192..c775b184d 100644 Binary files a/tests/V/edgecol_real_colscheme/ref-scale1.png and b/tests/V/edgecol_real_colscheme/ref-scale1.png differ diff --git a/tests/V/edgecol_real_colscheme/ref.png b/tests/V/edgecol_real_colscheme/ref.png index ab11273f4..c4a48285b 100644 Binary files a/tests/V/edgecol_real_colscheme/ref.png and b/tests/V/edgecol_real_colscheme/ref.png differ diff --git a/tests/V/edgecol_real_colscheme/test.cmake b/tests/V/edgecol_real_colscheme/test.cmake index 11891a119..359f2cdf6 100644 --- a/tests/V/edgecol_real_colscheme/test.cmake +++ b/tests/V/edgecol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showedge all -dataedgecol "real:file(n2-id1.stedge)" -dataedgecolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showedge all -dataedgecol "real:file(n2-id1.stedge)" -dataedgecolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/edgescale/ref-scale1.png b/tests/V/edgescale/ref-scale1.png index 26d02a197..4d2d00e71 100644 Binary files a/tests/V/edgescale/ref-scale1.png and b/tests/V/edgescale/ref-scale1.png differ diff --git a/tests/V/edgescale/ref.png b/tests/V/edgescale/ref.png index eae811499..2edbad7ea 100644 Binary files a/tests/V/edgescale/ref.png and b/tests/V/edgescale/ref.png differ diff --git a/tests/V/edgescale2/ref-scale1.png b/tests/V/edgescale2/ref-scale1.png index f6807e2d6..fb9fe304b 100644 Binary files a/tests/V/edgescale2/ref-scale1.png and b/tests/V/edgescale2/ref-scale1.png differ diff --git a/tests/V/edgescale2/ref.png b/tests/V/edgescale2/ref.png index 976fc845a..c39880484 100644 Binary files a/tests/V/edgescale2/ref.png and b/tests/V/edgescale2/ref.png differ diff --git a/tests/V/edgescaletitle/ref-scale1.png b/tests/V/edgescaletitle/ref-scale1.png index a39fce187..819855013 100644 Binary files a/tests/V/edgescaletitle/ref-scale1.png and b/tests/V/edgescaletitle/ref-scale1.png differ diff --git a/tests/V/edgescaletitle/ref.png b/tests/V/edgescaletitle/ref.png index 2b2e9d89f..d356adaf2 100644 Binary files a/tests/V/edgescaletitle/ref.png and b/tests/V/edgescaletitle/ref.png differ diff --git a/tests/V/edgetrs/ref.png b/tests/V/edgetrs/ref.png index 27d1a7758..e3ce28bb1 100644 Binary files a/tests/V/edgetrs/ref.png and b/tests/V/edgetrs/ref.png differ diff --git a/tests/V/elsetcol_real/ref-scale3d.png b/tests/V/elsetcol_real/ref-scale3d.png index ca9f0bf35..00023a3be 100644 Binary files a/tests/V/elsetcol_real/ref-scale3d.png and b/tests/V/elsetcol_real/ref-scale3d.png differ diff --git a/tests/V/elsetcol_real/ref.png b/tests/V/elsetcol_real/ref.png index 465841bc5..bc52a2753 100644 Binary files a/tests/V/elsetcol_real/ref.png and b/tests/V/elsetcol_real/ref.png differ diff --git a/tests/V/elsetcolscheme/ref-scale3d.png b/tests/V/elsetcolscheme/ref-scale3d.png index 78d83fc9a..d7a599d28 100644 Binary files a/tests/V/elsetcolscheme/ref-scale3d.png and b/tests/V/elsetcolscheme/ref-scale3d.png differ diff --git a/tests/V/elsetcolscheme/ref.png b/tests/V/elsetcolscheme/ref.png index 3cde46178..83e98cc48 100644 Binary files a/tests/V/elsetcolscheme/ref.png and b/tests/V/elsetcolscheme/ref.png differ diff --git a/tests/V/elsetcolscheme/test.cmake b/tests/V/elsetcolscheme/test.cmake index 5a6464383..3c7e18568 100644 --- a/tests/V/elsetcolscheme/test.cmake +++ b/tests/V/elsetcolscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.msh -showelt none -showelset3d all -dataelsetcol "real:file(n2-id1.stelset3d)" -dataelsetcolscheme black,white -print test) +set (test_command -V n2-id1.msh -showelt none -showelset3d all -dataelsetcol "real:file(n2-id1.stelset3d)" -dataelsetcolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/elsetscale/ref-scale3d.png b/tests/V/elsetscale/ref-scale3d.png index 74cd987a6..662a69d13 100644 Binary files a/tests/V/elsetscale/ref-scale3d.png and b/tests/V/elsetscale/ref-scale3d.png differ diff --git a/tests/V/elsetscale/ref.png b/tests/V/elsetscale/ref.png index 7644eab71..dc97304e2 100644 Binary files a/tests/V/elsetscale/ref.png and b/tests/V/elsetscale/ref.png differ diff --git a/tests/V/elsetscale2/ref-scale3d.png b/tests/V/elsetscale2/ref-scale3d.png index 7e5d79f5c..acea7d2bc 100644 Binary files a/tests/V/elsetscale2/ref-scale3d.png and b/tests/V/elsetscale2/ref-scale3d.png differ diff --git a/tests/V/elsetscale2/ref.png b/tests/V/elsetscale2/ref.png index 4dd07af10..556c8152e 100644 Binary files a/tests/V/elsetscale2/ref.png and b/tests/V/elsetscale2/ref.png differ diff --git a/tests/V/elsetscaletitle/ref-scale3d.png b/tests/V/elsetscaletitle/ref-scale3d.png index c016d8fd6..49bec8989 100644 Binary files a/tests/V/elsetscaletitle/ref-scale3d.png and b/tests/V/elsetscaletitle/ref-scale3d.png differ diff --git a/tests/V/elsetscaletitle/ref.png b/tests/V/elsetscaletitle/ref.png index ba48acccd..a718e3c4e 100644 Binary files a/tests/V/elsetscaletitle/ref.png and b/tests/V/elsetscaletitle/ref.png differ diff --git a/tests/V/facecol_real/ref-scale2.png b/tests/V/facecol_real/ref-scale2.png index 33313a6ce..4d4f3b9df 100644 Binary files a/tests/V/facecol_real/ref-scale2.png and b/tests/V/facecol_real/ref-scale2.png differ diff --git a/tests/V/facecol_real/ref.png b/tests/V/facecol_real/ref.png index de60ac889..0a7ac6f69 100644 Binary files a/tests/V/facecol_real/ref.png and b/tests/V/facecol_real/ref.png differ diff --git a/tests/V/facecol_real_colscheme/ref-scale2.png b/tests/V/facecol_real_colscheme/ref-scale2.png index a7f3ec862..da7b74302 100644 Binary files a/tests/V/facecol_real_colscheme/ref-scale2.png and b/tests/V/facecol_real_colscheme/ref-scale2.png differ diff --git a/tests/V/facecol_real_colscheme/ref.png b/tests/V/facecol_real_colscheme/ref.png index 094d0e1d2..863204a5f 100644 Binary files a/tests/V/facecol_real_colscheme/ref.png and b/tests/V/facecol_real_colscheme/ref.png differ diff --git a/tests/V/facecol_real_colscheme/test.cmake b/tests/V/facecol_real_colscheme/test.cmake index d25a1df92..ae2165195 100644 --- a/tests/V/facecol_real_colscheme/test.cmake +++ b/tests/V/facecol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showface all -datafacecol "real:file(n2-id1.stface)" -datafacecolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showface all -datafacecol "real:file(n2-id1.stface)" -datafacecolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/facescale/ref-scale2.png b/tests/V/facescale/ref-scale2.png index eb3be134e..9b9f22f74 100644 Binary files a/tests/V/facescale/ref-scale2.png and b/tests/V/facescale/ref-scale2.png differ diff --git a/tests/V/facescale/ref.png b/tests/V/facescale/ref.png index d7556f036..65c517707 100644 Binary files a/tests/V/facescale/ref.png and b/tests/V/facescale/ref.png differ diff --git a/tests/V/facescale2/ref-scale2.png b/tests/V/facescale2/ref-scale2.png index 175703b97..1076faa12 100644 Binary files a/tests/V/facescale2/ref-scale2.png and b/tests/V/facescale2/ref-scale2.png differ diff --git a/tests/V/facescale2/ref.png b/tests/V/facescale2/ref.png index 29bd7b7f0..d3631c2ff 100644 Binary files a/tests/V/facescale2/ref.png and b/tests/V/facescale2/ref.png differ diff --git a/tests/V/facescaletitle/ref-scale2.png b/tests/V/facescaletitle/ref-scale2.png index 9d4acb527..af1d35480 100644 Binary files a/tests/V/facescaletitle/ref-scale2.png and b/tests/V/facescaletitle/ref-scale2.png differ diff --git a/tests/V/facescaletitle/ref.png b/tests/V/facescaletitle/ref.png index 74306bc9d..8f747dcc7 100644 Binary files a/tests/V/facescaletitle/ref.png and b/tests/V/facescaletitle/ref.png differ diff --git a/tests/V/imageformat/ref.pov b/tests/V/imageformat/ref.pov index 68d09f543..23b2d702d 100644 --- a/tests/V/imageformat/ref.pov +++ b/tests/V/imageformat/ref.pov @@ -9,13 +9,13 @@ look_at <0.500000, 0.500000, 0.500000> angle 25.000000 sky <0.000000, 1.000000, 0.000000> } -light_source { <3.962000, 4.827000, -5.270000> rgb<1, 1, 1> shadowless } +light_source { <3.962000, 4.827000, -5.270000> rgb<1.000000, 1.000000, 1.000000> shadowless} global_settings { assumed_gamma 2.2 } union { #declare grainface0 = - texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 1 triangle {< 0, 1, 0>, < -0, 0.072876995892, -0>, @@ -23,7 +23,7 @@ triangle {< 0, 1, 0>, texture { grainface0 } } #declare grainface1 = - texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 2 triangle {< 1, 0, 0>, < 1, 1, 0>, @@ -36,7 +36,7 @@ triangle {< 1, 1, 0.921109989703>, texture { grainface1 } } #declare grainface2 = - texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 3 triangle {< 1, 0, 0>, < 1, -0, 0.356143977106>, @@ -44,7 +44,7 @@ triangle {< 1, 0, 0>, texture { grainface2 } } #declare grainface3 = - texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 4 triangle {< 1, 1, 0>, < 0, 1, 0>, @@ -57,7 +57,7 @@ triangle {< -0, 1, 0.523792986818>, texture { grainface3 } } #declare grainface4 = - texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <1.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 5 triangle {< 0, 1, 0>, < 1, 1, 0>, @@ -75,7 +75,7 @@ triangle {< 1, 0, 0>, texture { grainface4 } } #declare grainface5 = - texture { pigment { rgbt <0.498039,0.498039,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.498039,0.498039,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 6 triangle {< -0, 0.072876995892, -0>, < -0, 1, 0.523792986818>, @@ -93,7 +93,7 @@ triangle {< 1, 1, 0.921109989703>, texture { grainface5 } } #declare grainface6 = - texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 7 triangle {< 0, 0, 0>, < 0, 0, 1>, @@ -111,7 +111,7 @@ triangle {< 0, 1, 1>, texture { grainface6 } } #declare grainface7 = - texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 8 triangle {< 1, 1, 1>, < 1, 0, 1>, @@ -124,7 +124,7 @@ triangle {< 1, -0, 0.356143977106>, texture { grainface7 } } #declare grainface8 = - texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 9 triangle {< 1, 0, 1>, < 0, 0, 1>, @@ -142,7 +142,7 @@ triangle {< 0, 0, 0>, texture { grainface8 } } #declare grainface9 = - texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 10 triangle {< 0, 1, 1>, < 1, 1, 1>, @@ -155,7 +155,7 @@ triangle {< 1, 1, 0.921109989703>, texture { grainface9 } } #declare grainface10 = - texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 11 triangle {< 0, 0, 0>, < -0, 0.072876995892, -0>, @@ -163,7 +163,7 @@ triangle {< 0, 0, 0>, texture { grainface10 } } #declare grainface11 = - texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,1.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } // poly face 12 triangle {< 1, 0, 1>, < 1, 1, 1>, @@ -176,7 +176,7 @@ triangle {< 0, 1, 1>, texture { grainface11 } } #declare edge1 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0, 1, 0>, < -0, 0.072876995892, -0>, 0.011890275312 @@ -191,7 +191,7 @@ triangle {< 0, 1, 1>, texture { edge1 } } #declare edge2 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< -0, 0.072876995892, -0>, < -0, 1, 0.523792986818>, 0.011890275312 @@ -206,7 +206,7 @@ triangle {< 0, 1, 1>, texture { edge2 } } #declare edge3 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< -0, 1, 0.523792986818>, < 0, 1, 0>, 0.011890275312 @@ -221,7 +221,7 @@ triangle {< 0, 1, 1>, texture { edge3 } } #declare edge4 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 0, 0>, < 1, 1, 0>, 0.011890275312 @@ -236,7 +236,7 @@ triangle {< 0, 1, 1>, texture { edge4 } } #declare edge5 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 1, 0>, < 1, 1, 0.921109989703>, 0.011890275312 @@ -251,7 +251,7 @@ triangle {< 0, 1, 1>, texture { edge5 } } #declare edge6 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 1, 0.921109989703>, < 1, -0, 0.356143977106>, 0.011890275312 @@ -266,7 +266,7 @@ triangle {< 0, 1, 1>, texture { edge6 } } #declare edge7 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, -0, 0.356143977106>, < 1, 0, 0>, 0.011890275312 @@ -281,7 +281,7 @@ triangle {< 0, 1, 1>, texture { edge7 } } #declare edge8 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, -0, 0.356143977106>, < 0.103627646137, -0, -0>, 0.011890275312 @@ -296,7 +296,7 @@ triangle {< 0, 1, 1>, texture { edge8 } } #declare edge9 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0.103627646137, -0, -0>, < 1, 0, 0>, 0.011890275312 @@ -311,7 +311,7 @@ triangle {< 0, 1, 1>, texture { edge9 } } #declare edge10 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 1, 0>, < 0, 1, 0>, 0.011890275312 @@ -326,7 +326,7 @@ triangle {< 0, 1, 1>, texture { edge10 } } #declare edge11 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< -0, 1, 0.523792986818>, < 1, 1, 0.921109989703>, 0.011890275312 @@ -341,7 +341,7 @@ triangle {< 0, 1, 1>, texture { edge11 } } #declare edge12 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0.103627646137, -0, -0>, < -0, 0.072876995892, -0>, 0.011890275312 @@ -356,7 +356,7 @@ triangle {< 0, 1, 1>, texture { edge12 } } #declare edge13 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0, 0, 0>, < 0, 0, 1>, 0.011890275312 @@ -371,7 +371,7 @@ triangle {< 0, 1, 1>, texture { edge13 } } #declare edge14 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0, 0, 1>, < 0, 1, 1>, 0.011890275312 @@ -386,7 +386,7 @@ triangle {< 0, 1, 1>, texture { edge14 } } #declare edge15 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0, 1, 1>, < -0, 1, 0.523792986818>, 0.011890275312 @@ -401,7 +401,7 @@ triangle {< 0, 1, 1>, texture { edge15 } } #declare edge16 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< -0, 0.072876995892, -0>, < 0, 0, 0>, 0.011890275312 @@ -416,7 +416,7 @@ triangle {< 0, 1, 1>, texture { edge16 } } #declare edge17 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 1, 1>, < 1, 0, 1>, 0.011890275312 @@ -431,7 +431,7 @@ triangle {< 0, 1, 1>, texture { edge17 } } #declare edge18 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 0, 1>, < 1, -0, 0.356143977106>, 0.011890275312 @@ -446,7 +446,7 @@ triangle {< 0, 1, 1>, texture { edge18 } } #declare edge19 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 1, 0.921109989703>, < 1, 1, 1>, 0.011890275312 @@ -461,7 +461,7 @@ triangle {< 0, 1, 1>, texture { edge19 } } #declare edge20 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 1, 0, 1>, < 0, 0, 1>, 0.011890275312 @@ -476,7 +476,7 @@ triangle {< 0, 1, 1>, texture { edge20 } } #declare edge21 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0, 0, 0>, < 0.103627646137, -0, -0>, 0.011890275312 @@ -491,7 +491,7 @@ triangle {< 0, 1, 1>, texture { edge21 } } #declare edge22 = - texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000} } + texture { pigment { rgbt <0.000000,0.000000,0.000000,0.000000> } finish {ambient 0.600000 diffuse 0.600000 reflection 0.000000} } cylinder {< 0, 1, 1>, < 1, 1, 1>, 0.011890275312 diff --git a/tests/V/nodecol_real/ref-scalen.png b/tests/V/nodecol_real/ref-scalen.png index ac8757c06..076a85254 100644 Binary files a/tests/V/nodecol_real/ref-scalen.png and b/tests/V/nodecol_real/ref-scalen.png differ diff --git a/tests/V/nodecol_real/ref.png b/tests/V/nodecol_real/ref.png index eed72a584..bdafd09a6 100644 Binary files a/tests/V/nodecol_real/ref.png and b/tests/V/nodecol_real/ref.png differ diff --git a/tests/V/nodescale/ref-scalen.png b/tests/V/nodescale/ref-scalen.png index 38a9735de..4377f48e0 100644 Binary files a/tests/V/nodescale/ref-scalen.png and b/tests/V/nodescale/ref-scalen.png differ diff --git a/tests/V/nodescale/ref.png b/tests/V/nodescale/ref.png index c054427c4..f93e182c0 100644 Binary files a/tests/V/nodescale/ref.png and b/tests/V/nodescale/ref.png differ diff --git a/tests/V/nodescale2/ref-scalen.png b/tests/V/nodescale2/ref-scalen.png index 03e7495ac..885d88c2e 100644 Binary files a/tests/V/nodescale2/ref-scalen.png and b/tests/V/nodescale2/ref-scalen.png differ diff --git a/tests/V/nodescale2/ref.png b/tests/V/nodescale2/ref.png index 273a03e73..6cd811107 100644 Binary files a/tests/V/nodescale2/ref.png and b/tests/V/nodescale2/ref.png differ diff --git a/tests/V/polycol_real/ref-scale3.png b/tests/V/polycol_real/ref-scale3.png index 7122f4334..2974d2c40 100644 Binary files a/tests/V/polycol_real/ref-scale3.png and b/tests/V/polycol_real/ref-scale3.png differ diff --git a/tests/V/polycol_real/ref.png b/tests/V/polycol_real/ref.png index 8df892d45..62d821a42 100644 Binary files a/tests/V/polycol_real/ref.png and b/tests/V/polycol_real/ref.png differ diff --git a/tests/V/polycol_real_colscheme/ref-scale3.png b/tests/V/polycol_real_colscheme/ref-scale3.png index 5180c34c4..6896c4e99 100644 Binary files a/tests/V/polycol_real_colscheme/ref-scale3.png and b/tests/V/polycol_real_colscheme/ref-scale3.png differ diff --git a/tests/V/polycol_real_colscheme/ref.png b/tests/V/polycol_real_colscheme/ref.png index e1876d88e..d766367d0 100644 Binary files a/tests/V/polycol_real_colscheme/ref.png and b/tests/V/polycol_real_colscheme/ref.png differ diff --git a/tests/V/polycol_real_colscheme/test.cmake b/tests/V/polycol_real_colscheme/test.cmake index 69d3059b9..73e1c9333 100644 --- a/tests/V/polycol_real_colscheme/test.cmake +++ b/tests/V/polycol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showpoly all -datapolycol "real:file(n2-id1.stpoly)" -datapolycolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showpoly all -datapolycol "real:file(n2-id1.stpoly)" -datapolycolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/polyscale/ref-scale3.png b/tests/V/polyscale/ref-scale3.png index d93d8ebd4..41ba62d95 100644 Binary files a/tests/V/polyscale/ref-scale3.png and b/tests/V/polyscale/ref-scale3.png differ diff --git a/tests/V/polyscale/ref.png b/tests/V/polyscale/ref.png index c2ee0af8d..a5a5dd48a 100644 Binary files a/tests/V/polyscale/ref.png and b/tests/V/polyscale/ref.png differ diff --git a/tests/V/polyscale2/ref-scale3.png b/tests/V/polyscale2/ref-scale3.png index 495a5442f..184c445fb 100644 Binary files a/tests/V/polyscale2/ref-scale3.png and b/tests/V/polyscale2/ref-scale3.png differ diff --git a/tests/V/polyscale2/ref.png b/tests/V/polyscale2/ref.png index 7dc4b0514..e433a6b76 100644 Binary files a/tests/V/polyscale2/ref.png and b/tests/V/polyscale2/ref.png differ diff --git a/tests/V/polyscaletitle/ref-scale3.png b/tests/V/polyscaletitle/ref-scale3.png index 811761e61..be4e67f06 100644 Binary files a/tests/V/polyscaletitle/ref-scale3.png and b/tests/V/polyscaletitle/ref-scale3.png differ diff --git a/tests/V/polyscaletitle/ref.png b/tests/V/polyscaletitle/ref.png index 2b988d224..50b5732c5 100644 Binary files a/tests/V/polyscaletitle/ref.png and b/tests/V/polyscaletitle/ref.png differ diff --git a/tests/V/imageantialias/n2-id1.tess b/tests/V/povrayantialiasing/n2-id1.tess similarity index 100% rename from tests/V/imageantialias/n2-id1.tess rename to tests/V/povrayantialiasing/n2-id1.tess diff --git a/tests/V/imageantialias/ref.png b/tests/V/povrayantialiasing/ref.png similarity index 100% rename from tests/V/imageantialias/ref.png rename to tests/V/povrayantialiasing/ref.png diff --git a/tests/V/povrayantialiasing/test.cmake b/tests/V/povrayantialiasing/test.cmake new file mode 100644 index 000000000..e1a7e2f07 --- /dev/null +++ b/tests/V/povrayantialiasing/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -povrayantialiasing 1 -print test) +include(../../test.cmake) diff --git a/tests/V/seedcol_real/ref-scales.png b/tests/V/seedcol_real/ref-scales.png index 6cf01b3ea..49e947974 100644 Binary files a/tests/V/seedcol_real/ref-scales.png and b/tests/V/seedcol_real/ref-scales.png differ diff --git a/tests/V/seedcol_real/ref.png b/tests/V/seedcol_real/ref.png index fd3ed2920..5448e6f3f 100644 Binary files a/tests/V/seedcol_real/ref.png and b/tests/V/seedcol_real/ref.png differ diff --git a/tests/V/seedcol_real_colscheme/ref-scales.png b/tests/V/seedcol_real_colscheme/ref-scales.png index c642a46b2..487f25c50 100644 Binary files a/tests/V/seedcol_real_colscheme/ref-scales.png and b/tests/V/seedcol_real_colscheme/ref-scales.png differ diff --git a/tests/V/seedcol_real_colscheme/ref.png b/tests/V/seedcol_real_colscheme/ref.png index fdc755001..52a85d7e0 100644 Binary files a/tests/V/seedcol_real_colscheme/ref.png and b/tests/V/seedcol_real_colscheme/ref.png differ diff --git a/tests/V/seedcol_real_colscheme/test.cmake b/tests/V/seedcol_real_colscheme/test.cmake index f40c9c24d..670cde8de 100644 --- a/tests/V/seedcol_real_colscheme/test.cmake +++ b/tests/V/seedcol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showseed all -dataseedcol "real:file(n2-id1.stseed)" -dataseedcolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showseed all -dataseedcol "real:file(n2-id1.stseed)" -dataseedcolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/seedscale/ref-scales.png b/tests/V/seedscale/ref-scales.png index 68d6d1268..51824b7e6 100644 Binary files a/tests/V/seedscale/ref-scales.png and b/tests/V/seedscale/ref-scales.png differ diff --git a/tests/V/seedscale/ref.png b/tests/V/seedscale/ref.png index be904cf1f..96ff7b756 100644 Binary files a/tests/V/seedscale/ref.png and b/tests/V/seedscale/ref.png differ diff --git a/tests/V/seedscale2/ref-scales.png b/tests/V/seedscale2/ref-scales.png index 94e4b77bf..cd3b30cc6 100644 Binary files a/tests/V/seedscale2/ref-scales.png and b/tests/V/seedscale2/ref-scales.png differ diff --git a/tests/V/seedscale2/ref.png b/tests/V/seedscale2/ref.png index 88091dc8c..9d06bc969 100644 Binary files a/tests/V/seedscale2/ref.png and b/tests/V/seedscale2/ref.png differ diff --git a/tests/V/seedscaletitle/ref-scales.png b/tests/V/seedscaletitle/ref-scales.png index 196e2f8e0..3749a900d 100644 Binary files a/tests/V/seedscaletitle/ref-scales.png and b/tests/V/seedscaletitle/ref-scales.png differ diff --git a/tests/V/seedscaletitle/ref.png b/tests/V/seedscaletitle/ref.png index 9172483b3..fa611ece3 100644 Binary files a/tests/V/seedscaletitle/ref.png and b/tests/V/seedscaletitle/ref.png differ diff --git a/tests/V/space_pf/n2-id1.tess b/tests/V/space_pf/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf/ref.png b/tests/V/space_pf/ref.png new file mode 100644 index 000000000..d28d94022 Binary files /dev/null and b/tests/V/space_pf/ref.png differ diff --git a/tests/V/space_pf/test.cmake b/tests/V/space_pf/test.cmake new file mode 100644 index 000000000..6e9a6bc30 --- /dev/null +++ b/tests/V/space_pf/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_2d/n2-id1.tess b/tests/V/space_pf_2d/n2-id1.tess new file mode 100644 index 000000000..d70c5484c --- /dev/null +++ b/tests/V/space_pf_2d/n2-id1.tess @@ -0,0 +1,73 @@ +***tess + **format + 3.4 + **general + 2 standard + **cell + 2 + *id + 1 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.000000000000 0.000000000000 + 2 0.452028974213 0.195589598124 0.000000000000 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 6 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.658050611345 -0.000000000000 0 + 5 0.935716889234 -0.000000000000 -0.000000000000 0 + 6 0.000000000000 0.000000000000 0.000000000000 0 + **edge + 7 + 1 3 4 0 + 2 1 2 0 + 3 5 1 0 + 4 2 3 0 + 5 5 4 0 + 6 4 6 0 + 7 6 5 0 + **face + 2 + 1 5 3 2 1 5 4 + 5 -4 -2 -3 5 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 -1 0.000000000000 0.000000000000 0.000000000000 + 2 3 6 4 5 + 3 -6 -5 -7 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 -1 0.000000000000 0.000000000000 0.000000000000 + **domain + *general + cube + *vertex + 4 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0 + 1 6 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1 + 1 3 + *edge + 4 + 1 2 2 1 + y0 + 2 3 7 + 2 2 3 2 + x1 + 1 2 + 3 2 4 3 + y1 + 1 4 + 4 2 1 4 + x0 + 2 1 6 +***end diff --git a/tests/V/space_pf_2d/ref.png b/tests/V/space_pf_2d/ref.png new file mode 100644 index 000000000..d28d94022 Binary files /dev/null and b/tests/V/space_pf_2d/ref.png differ diff --git a/tests/V/space_pf_2d/test.cmake b/tests/V/space_pf_2d/test.cmake new file mode 100644 index 000000000..6e9a6bc30 --- /dev/null +++ b/tests/V/space_pf_2d/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_2d_tesr/n2-id1.tesr b/tests/V/space_pf_2d_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_2d_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_2d_tesr/ref.png b/tests/V/space_pf_2d_tesr/ref.png new file mode 100644 index 000000000..d28d94022 Binary files /dev/null and b/tests/V/space_pf_2d_tesr/ref.png differ diff --git a/tests/V/space_pf_2d_tesr/test.cmake b/tests/V/space_pf_2d_tesr/test.cmake new file mode 100644 index 000000000..214271905 --- /dev/null +++ b/tests/V/space_pf_2d_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellcol/n2-id1.tess b/tests/V/space_pf_cellcol/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_cellcol/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_cellcol/ref.png b/tests/V/space_pf_cellcol/ref.png new file mode 100644 index 000000000..1a725d1cf Binary files /dev/null and b/tests/V/space_pf_cellcol/ref.png differ diff --git a/tests/V/space_pf_cellcol/test.cmake b/tests/V/space_pf_cellcol/test.cmake new file mode 100644 index 000000000..8dc9a3649 --- /dev/null +++ b/tests/V/space_pf_cellcol/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -datacellcol ori -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellcol_tesr/n2-id1.tesr b/tests/V/space_pf_cellcol_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_cellcol_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_cellcol_tesr/ref.png b/tests/V/space_pf_cellcol_tesr/ref.png new file mode 100644 index 000000000..1a725d1cf Binary files /dev/null and b/tests/V/space_pf_cellcol_tesr/ref.png differ diff --git a/tests/V/space_pf_cellcol_tesr/test.cmake b/tests/V/space_pf_cellcol_tesr/test.cmake new file mode 100644 index 000000000..4a3077176 --- /dev/null +++ b/tests/V/space_pf_cellcol_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -datacellcol ori -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellrad/n2-id1.tess b/tests/V/space_pf_cellrad/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_cellrad/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_cellrad/ref.png b/tests/V/space_pf_cellrad/ref.png new file mode 100644 index 000000000..f6c9e229d Binary files /dev/null and b/tests/V/space_pf_cellrad/ref.png differ diff --git a/tests/V/space_pf_cellrad/test.cmake b/tests/V/space_pf_cellrad/test.cmake new file mode 100644 index 000000000..52b022624 --- /dev/null +++ b/tests/V/space_pf_cellrad/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -datacellrad radeq*0.1 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellrad_tesr/n2-id1.tesr b/tests/V/space_pf_cellrad_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_cellrad_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_cellrad_tesr/ref.png b/tests/V/space_pf_cellrad_tesr/ref.png new file mode 100644 index 000000000..7b2932bad Binary files /dev/null and b/tests/V/space_pf_cellrad_tesr/ref.png differ diff --git a/tests/V/space_pf_cellrad_tesr/test.cmake b/tests/V/space_pf_cellrad_tesr/test.cmake new file mode 100644 index 000000000..82ce578df --- /dev/null +++ b/tests/V/space_pf_cellrad_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -datacellrad radeq*0.1 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_diamond/n2-id1.tess b/tests/V/space_pf_cellsymbol_diamond/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_diamond/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_cellsymbol_diamond/ref.png b/tests/V/space_pf_cellsymbol_diamond/ref.png new file mode 100644 index 000000000..fb6335e86 Binary files /dev/null and b/tests/V/space_pf_cellsymbol_diamond/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_diamond/test.cmake b/tests/V/space_pf_cellsymbol_diamond/test.cmake new file mode 100644 index 000000000..69dad5461 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_diamond/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -datacellsymbol diamond -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_diamond_tesr/n2-id1.tesr b/tests/V/space_pf_cellsymbol_diamond_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_cellsymbol_diamond_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_cellsymbol_diamond_tesr/ref.png b/tests/V/space_pf_cellsymbol_diamond_tesr/ref.png new file mode 100644 index 000000000..fb6335e86 Binary files /dev/null and b/tests/V/space_pf_cellsymbol_diamond_tesr/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_diamond_tesr/test.cmake b/tests/V/space_pf_cellsymbol_diamond_tesr/test.cmake new file mode 100644 index 000000000..192ddf6ac --- /dev/null +++ b/tests/V/space_pf_cellsymbol_diamond_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -datacellsymbol diamond -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_square/n2-id1.tess b/tests/V/space_pf_cellsymbol_square/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_square/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_cellsymbol_square/ref.png b/tests/V/space_pf_cellsymbol_square/ref.png new file mode 100644 index 000000000..0b2a2d4e3 Binary files /dev/null and b/tests/V/space_pf_cellsymbol_square/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_square/test.cmake b/tests/V/space_pf_cellsymbol_square/test.cmake new file mode 100644 index 000000000..f8bb6f510 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_square/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -datacellsymbol square -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_square_tesr/n2-id1.tesr b/tests/V/space_pf_cellsymbol_square_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_cellsymbol_square_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_cellsymbol_square_tesr/ref.png b/tests/V/space_pf_cellsymbol_square_tesr/ref.png new file mode 100644 index 000000000..0b2a2d4e3 Binary files /dev/null and b/tests/V/space_pf_cellsymbol_square_tesr/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_square_tesr/test.cmake b/tests/V/space_pf_cellsymbol_square_tesr/test.cmake new file mode 100644 index 000000000..2e6edbb0f --- /dev/null +++ b/tests/V/space_pf_cellsymbol_square_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -datacellsymbol square -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_star/n2-id1.tess b/tests/V/space_pf_cellsymbol_star/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_star/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_cellsymbol_star/ref.png b/tests/V/space_pf_cellsymbol_star/ref.png new file mode 100644 index 000000000..347bc5165 Binary files /dev/null and b/tests/V/space_pf_cellsymbol_star/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_star/test.cmake b/tests/V/space_pf_cellsymbol_star/test.cmake new file mode 100644 index 000000000..45e0ce4f1 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_star/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -datacellsymbol star -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_star_tesr/n2-id1.tesr b/tests/V/space_pf_cellsymbol_star_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_cellsymbol_star_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_cellsymbol_star_tesr/ref.png b/tests/V/space_pf_cellsymbol_star_tesr/ref.png new file mode 100644 index 000000000..347bc5165 Binary files /dev/null and b/tests/V/space_pf_cellsymbol_star_tesr/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_star_tesr/test.cmake b/tests/V/space_pf_cellsymbol_star_tesr/test.cmake new file mode 100644 index 000000000..cdb32f7eb --- /dev/null +++ b/tests/V/space_pf_cellsymbol_star_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -datacellsymbol star -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_triangle/n2-id1.tess b/tests/V/space_pf_cellsymbol_triangle/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_cellsymbol_triangle/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_cellsymbol_triangle/ref.png b/tests/V/space_pf_cellsymbol_triangle/ref.png new file mode 100644 index 000000000..11d658fea Binary files /dev/null and b/tests/V/space_pf_cellsymbol_triangle/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_triangle/test.cmake b/tests/V/space_pf_cellsymbol_triangle/test.cmake new file mode 100644 index 000000000..ea32bcc9b --- /dev/null +++ b/tests/V/space_pf_cellsymbol_triangle/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -datacellsymbol triangle -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_cellsymbol_triangle_tesr/n2-id1.tesr b/tests/V/space_pf_cellsymbol_triangle_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_cellsymbol_triangle_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_cellsymbol_triangle_tesr/ref.png b/tests/V/space_pf_cellsymbol_triangle_tesr/ref.png new file mode 100644 index 000000000..11d658fea Binary files /dev/null and b/tests/V/space_pf_cellsymbol_triangle_tesr/ref.png differ diff --git a/tests/V/space_pf_cellsymbol_triangle_tesr/test.cmake b/tests/V/space_pf_cellsymbol_triangle_tesr/test.cmake new file mode 100644 index 000000000..1de238c9e --- /dev/null +++ b/tests/V/space_pf_cellsymbol_triangle_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -datacellsymbol triangle -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_clustering/n2-id1.tess b/tests/V/space_pf_clustering/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_clustering/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_clustering/ref.png b/tests/V/space_pf_clustering/ref.png new file mode 100644 index 000000000..d28d94022 Binary files /dev/null and b/tests/V/space_pf_clustering/ref.png differ diff --git a/tests/V/space_pf_clustering/test.cmake b/tests/V/space_pf_clustering/test.cmake new file mode 100644 index 000000000..a903bf53a --- /dev/null +++ b/tests/V/space_pf_clustering/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfclustering 0 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_custom_input/n2-id1.ori b/tests/V/space_pf_custom_input/n2-id1.ori new file mode 100644 index 000000000..a7c856bd6 --- /dev/null +++ b/tests/V/space_pf_custom_input/n2-id1.ori @@ -0,0 +1,2 @@ + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 diff --git a/tests/V/space_pf_custom_input/ref.png b/tests/V/space_pf_custom_input/ref.png new file mode 100644 index 000000000..0ca8d356c Binary files /dev/null and b/tests/V/space_pf_custom_input/ref.png differ diff --git a/tests/V/space_pf_custom_input/test.cmake b/tests/V/space_pf_custom_input/test.cmake new file mode 100644 index 000000000..32fde5b32 --- /dev/null +++ b/tests/V/space_pf_custom_input/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.ori -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_custom_input_ori/n2-id1.ori b/tests/V/space_pf_custom_input_ori/n2-id1.ori new file mode 100644 index 000000000..a7c856bd6 --- /dev/null +++ b/tests/V/space_pf_custom_input_ori/n2-id1.ori @@ -0,0 +1,2 @@ + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 diff --git a/tests/V/space_pf_custom_input_ori/ref.png b/tests/V/space_pf_custom_input_ori/ref.png new file mode 100644 index 000000000..0ca8d356c Binary files /dev/null and b/tests/V/space_pf_custom_input_ori/ref.png differ diff --git a/tests/V/space_pf_custom_input_ori/test.cmake b/tests/V/space_pf_custom_input_ori/test.cmake new file mode 100644 index 000000000..809df82da --- /dev/null +++ b/tests/V/space_pf_custom_input_ori/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "ori(type=ori):file(n2-id1.ori)" -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_custom_input_ori_des/n2-id1.ori b/tests/V/space_pf_custom_input_ori_des/n2-id1.ori new file mode 100644 index 000000000..abf7036c0 --- /dev/null +++ b/tests/V/space_pf_custom_input_ori_des/n2-id1.ori @@ -0,0 +1,2 @@ + 236.335386748008 80.072535051284 -95.270156451555 + 41.813165532991 78.438807181793 -75.984842545419 diff --git a/tests/V/space_pf_custom_input_ori_des/ref.png b/tests/V/space_pf_custom_input_ori_des/ref.png new file mode 100644 index 000000000..0ca8d356c Binary files /dev/null and b/tests/V/space_pf_custom_input_ori_des/ref.png differ diff --git a/tests/V/space_pf_custom_input_ori_des/test.cmake b/tests/V/space_pf_custom_input_ori_des/test.cmake new file mode 100644 index 000000000..5947eb3e0 --- /dev/null +++ b/tests/V/space_pf_custom_input_ori_des/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "ori(type=ori):file(n2-id1.ori,des=euler-bunge)" -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_custom_input_vect/myvects b/tests/V/space_pf_custom_input_vect/myvects new file mode 100644 index 000000000..91b7654d3 --- /dev/null +++ b/tests/V/space_pf_custom_input_vect/myvects @@ -0,0 +1,4 @@ +1 0 0 +0 1 0 +0 0 1 +1 1 1 diff --git a/tests/V/space_pf_custom_input_vect/ref.png b/tests/V/space_pf_custom_input_vect/ref.png new file mode 100644 index 000000000..eaa88421e Binary files /dev/null and b/tests/V/space_pf_custom_input_vect/ref.png differ diff --git a/tests/V/space_pf_custom_input_vect/test.cmake b/tests/V/space_pf_custom_input_vect/test.cmake new file mode 100644 index 000000000..b84b27174 --- /dev/null +++ b/tests/V/space_pf_custom_input_vect/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "mydata(type=vector):file(myvects)" -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_custom_input_vect_pfdir/myvects b/tests/V/space_pf_custom_input_vect_pfdir/myvects new file mode 100644 index 000000000..91b7654d3 --- /dev/null +++ b/tests/V/space_pf_custom_input_vect_pfdir/myvects @@ -0,0 +1,4 @@ +1 0 0 +0 1 0 +0 0 1 +1 1 1 diff --git a/tests/V/space_pf_custom_input_vect_pfdir/ref.png b/tests/V/space_pf_custom_input_vect_pfdir/ref.png new file mode 100644 index 000000000..bd38d72cd Binary files /dev/null and b/tests/V/space_pf_custom_input_vect_pfdir/ref.png differ diff --git a/tests/V/space_pf_custom_input_vect_pfdir/test.cmake b/tests/V/space_pf_custom_input_vect_pfdir/test.cmake new file mode 100644 index 000000000..28993dba0 --- /dev/null +++ b/tests/V/space_pf_custom_input_vect_pfdir/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "mydata(type=vector):file(myvects)" -space pf -pfmode density,symbol -pfgridsize 50 -pfdir z:-y -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_custom_input_vect_pfdir2/myvects b/tests/V/space_pf_custom_input_vect_pfdir2/myvects new file mode 100644 index 000000000..91b7654d3 --- /dev/null +++ b/tests/V/space_pf_custom_input_vect_pfdir2/myvects @@ -0,0 +1,4 @@ +1 0 0 +0 1 0 +0 0 1 +1 1 1 diff --git a/tests/V/space_pf_custom_input_vect_pfdir2/ref.png b/tests/V/space_pf_custom_input_vect_pfdir2/ref.png new file mode 100644 index 000000000..e11138cb8 Binary files /dev/null and b/tests/V/space_pf_custom_input_vect_pfdir2/ref.png differ diff --git a/tests/V/space_pf_custom_input_vect_pfdir2/test.cmake b/tests/V/space_pf_custom_input_vect_pfdir2/test.cmake new file mode 100644 index 000000000..dc57da79b --- /dev/null +++ b/tests/V/space_pf_custom_input_vect_pfdir2/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V "mydata(type=vector):file(myvects)" -space pf -pfmode density,symbol -pfgridsize 50 -pfdir z:y -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_density/n2-id1.tess b/tests/V/space_pf_density/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_density/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_density/ref.png b/tests/V/space_pf_density/ref.png new file mode 100644 index 000000000..d20dc44be Binary files /dev/null and b/tests/V/space_pf_density/ref.png differ diff --git a/tests/V/space_pf_density/test.cmake b/tests/V/space_pf_density/test.cmake new file mode 100644 index 000000000..e990768b7 --- /dev/null +++ b/tests/V/space_pf_density/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_density_pfdir/n2-id1.tess b/tests/V/space_pf_density_pfdir/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_density_pfdir/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_density_pfdir/ref.png b/tests/V/space_pf_density_pfdir/ref.png new file mode 100644 index 000000000..32d9185e9 Binary files /dev/null and b/tests/V/space_pf_density_pfdir/ref.png differ diff --git a/tests/V/space_pf_density_pfdir/test.cmake b/tests/V/space_pf_density_pfdir/test.cmake new file mode 100644 index 000000000..6754b3856 --- /dev/null +++ b/tests/V/space_pf_density_pfdir/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -pfdir z:-y -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_density_pfdir2/n2-id1.tess b/tests/V/space_pf_density_pfdir2/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_density_pfdir2/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_density_pfdir2/ref.png b/tests/V/space_pf_density_pfdir2/ref.png new file mode 100644 index 000000000..22a973c94 Binary files /dev/null and b/tests/V/space_pf_density_pfdir2/ref.png differ diff --git a/tests/V/space_pf_density_pfdir2/test.cmake b/tests/V/space_pf_density_pfdir2/test.cmake new file mode 100644 index 000000000..ebb367003 --- /dev/null +++ b/tests/V/space_pf_density_pfdir2/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -pfdir z:y -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_densitycolscheme/n2-id1.tess b/tests/V/space_pf_densitycolscheme/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_densitycolscheme/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_densitycolscheme/ref.png b/tests/V/space_pf_densitycolscheme/ref.png new file mode 100644 index 000000000..0beef9965 Binary files /dev/null and b/tests/V/space_pf_densitycolscheme/ref.png differ diff --git a/tests/V/space_pf_densitycolscheme/test.cmake b/tests/V/space_pf_densitycolscheme/test.cmake new file mode 100644 index 000000000..e763c9ca3 --- /dev/null +++ b/tests/V/space_pf_densitycolscheme/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -datacellcolscheme github -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_densitygridsize/n2-id1.tess b/tests/V/space_pf_densitygridsize/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_densitygridsize/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_densitygridsize/ref.png b/tests/V/space_pf_densitygridsize/ref.png new file mode 100644 index 000000000..a7f6349da Binary files /dev/null and b/tests/V/space_pf_densitygridsize/ref.png differ diff --git a/tests/V/space_pf_densitygridsize/test.cmake b/tests/V/space_pf_densitygridsize/test.cmake new file mode 100644 index 000000000..7f8cb13c9 --- /dev/null +++ b/tests/V/space_pf_densitygridsize/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_densitykernel/n2-id1.tess b/tests/V/space_pf_densitykernel/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_densitykernel/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_densitykernel/ref.png b/tests/V/space_pf_densitykernel/ref.png new file mode 100644 index 000000000..e37d49ed2 Binary files /dev/null and b/tests/V/space_pf_densitykernel/ref.png differ diff --git a/tests/V/space_pf_densitykernel/test.cmake b/tests/V/space_pf_densitykernel/test.cmake new file mode 100644 index 000000000..9382215eb --- /dev/null +++ b/tests/V/space_pf_densitykernel/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -pfkernel "normal(theta=5)" -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_densitypoint/n2-id1.tess b/tests/V/space_pf_densitypoint/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_densitypoint/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_densitypoint/ref.png b/tests/V/space_pf_densitypoint/ref.png new file mode 100644 index 000000000..898965429 Binary files /dev/null and b/tests/V/space_pf_densitypoint/ref.png differ diff --git a/tests/V/space_pf_densitypoint/test.cmake b/tests/V/space_pf_densitypoint/test.cmake new file mode 100644 index 000000000..78b3ce394 --- /dev/null +++ b/tests/V/space_pf_densitypoint/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density,symbol -pfgridsize 50 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_densityscale/n2-id1.tess b/tests/V/space_pf_densityscale/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_densityscale/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_densityscale/ref.png b/tests/V/space_pf_densityscale/ref.png new file mode 100644 index 000000000..9071648d9 Binary files /dev/null and b/tests/V/space_pf_densityscale/ref.png differ diff --git a/tests/V/space_pf_densityscale/test.cmake b/tests/V/space_pf_densityscale/test.cmake new file mode 100644 index 000000000..764e383db --- /dev/null +++ b/tests/V/space_pf_densityscale/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -datacellscale 0:50 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_densityscaleticks/n2-id1.tess b/tests/V/space_pf_densityscaleticks/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_densityscaleticks/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_densityscaleticks/ref.png b/tests/V/space_pf_densityscaleticks/ref.png new file mode 100644 index 000000000..a912459c7 Binary files /dev/null and b/tests/V/space_pf_densityscaleticks/ref.png differ diff --git a/tests/V/space_pf_densityscaleticks/test.cmake b/tests/V/space_pf_densityscaleticks/test.cmake new file mode 100644 index 000000000..cc8b63fca --- /dev/null +++ b/tests/V/space_pf_densityscaleticks/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfmode density -pfgridsize 50 -datacellscale 0:10:20:30:40:50 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_pfdir/n2-id1.tess b/tests/V/space_pf_pfdir/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_pfdir/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_pfdir/ref.png b/tests/V/space_pf_pfdir/ref.png new file mode 100644 index 000000000..447037742 Binary files /dev/null and b/tests/V/space_pf_pfdir/ref.png differ diff --git a/tests/V/space_pf_pfdir/test.cmake b/tests/V/space_pf_pfdir/test.cmake new file mode 100644 index 000000000..efad36627 --- /dev/null +++ b/tests/V/space_pf_pfdir/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfdir z:-y -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_pfdir2/n2-id1.tess b/tests/V/space_pf_pfdir2/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_pfdir2/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_pfdir2/ref.png b/tests/V/space_pf_pfdir2/ref.png new file mode 100644 index 000000000..f128081ec Binary files /dev/null and b/tests/V/space_pf_pfdir2/ref.png differ diff --git a/tests/V/space_pf_pfdir2/test.cmake b/tests/V/space_pf_pfdir2/test.cmake new file mode 100644 index 000000000..87db9b8b3 --- /dev/null +++ b/tests/V/space_pf_pfdir2/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfdir z:y -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_pffont/n2-id1.tess b/tests/V/space_pf_pffont/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_pffont/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_pffont/ref.png b/tests/V/space_pf_pffont/ref.png new file mode 100644 index 000000000..d00e70004 Binary files /dev/null and b/tests/V/space_pf_pffont/ref.png differ diff --git a/tests/V/space_pf_pffont/test.cmake b/tests/V/space_pf_pffont/test.cmake new file mode 100644 index 000000000..98b10e9e2 --- /dev/null +++ b/tests/V/space_pf_pffont/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pffont ComputerModern -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_pfpole/n2-id1.tess b/tests/V/space_pf_pfpole/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_pfpole/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_pfpole/ref.png b/tests/V/space_pf_pfpole/ref.png new file mode 100644 index 000000000..7b6c94466 Binary files /dev/null and b/tests/V/space_pf_pfpole/ref.png differ diff --git a/tests/V/space_pf_pfpole/test.cmake b/tests/V/space_pf_pfpole/test.cmake new file mode 100644 index 000000000..a81c24948 --- /dev/null +++ b/tests/V/space_pf_pfpole/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfpole 1:2:3 -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_pfproj/n2-id1.tess b/tests/V/space_pf_pfproj/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_pfproj/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_pfproj/ref.png b/tests/V/space_pf_pfproj/ref.png new file mode 100644 index 000000000..5fd48aeaf Binary files /dev/null and b/tests/V/space_pf_pfproj/ref.png differ diff --git a/tests/V/space_pf_pfproj/test.cmake b/tests/V/space_pf_pfproj/test.cmake new file mode 100644 index 000000000..7dbb43c5c --- /dev/null +++ b/tests/V/space_pf_pfproj/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfprojection equal-area -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_sym/n2-id1.tess b/tests/V/space_pf_sym/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_pf_sym/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_pf_sym/ref.png b/tests/V/space_pf_sym/ref.png new file mode 100644 index 000000000..4807cd608 Binary files /dev/null and b/tests/V/space_pf_sym/ref.png differ diff --git a/tests/V/space_pf_sym/test.cmake b/tests/V/space_pf_sym/test.cmake new file mode 100644 index 000000000..ceb49785e --- /dev/null +++ b/tests/V/space_pf_sym/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tess -space pf -pfsym orthotropic -print test) +include(../../test.cmake) diff --git a/tests/V/space_pf_tesr/n2-id1.tesr b/tests/V/space_pf_tesr/n2-id1.tesr new file mode 100644 index 000000000..1c01c600b --- /dev/null +++ b/tests/V/space_pf_tesr/n2-id1.tesr @@ -0,0 +1,243 @@ +***tesr + **format + 2.1 + **general + 3 + 20 20 20 + 0.050000000000 0.050000000000 0.050000000000 + **cell + 2 + *id + 1 2 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + *crysym + triclinic + **data + ascii +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 +1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 +2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 +1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +2 2 2 2 2 2 2 2 +***end diff --git a/tests/V/space_pf_tesr/ref.png b/tests/V/space_pf_tesr/ref.png new file mode 100644 index 000000000..d28d94022 Binary files /dev/null and b/tests/V/space_pf_tesr/ref.png differ diff --git a/tests/V/space_pf_tesr/test.cmake b/tests/V/space_pf_tesr/test.cmake new file mode 100644 index 000000000..214271905 --- /dev/null +++ b/tests/V/space_pf_tesr/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.tesr -space pf -print test) +include(../../test.cmake) diff --git a/tests/V/space_tree/n2-id1.sim/.sim b/tests/V/space_tree/n2-id1.sim/.sim new file mode 100644 index 000000000..1ef3fe701 --- /dev/null +++ b/tests/V/space_tree/n2-id1.sim/.sim @@ -0,0 +1,11 @@ +***sim + **format + 1.0 + **input + *tess + simulation.tess + **general + 2 0 0 0 0 + *orides + rodrigues:active +***end diff --git a/tests/V/space_tree/n2-id1.sim/graph.asy b/tests/V/space_tree/n2-id1.sim/graph.asy new file mode 100644 index 000000000..3a48cf0b8 --- /dev/null +++ b/tests/V/space_tree/n2-id1.sim/graph.asy @@ -0,0 +1,113 @@ + +// A simple tree drawing module contributed by adarovsky +// See example treetest.asy + +real treeNodeStep = 0.5cm; +real treeLevelStep = 1cm; +real treeMinNodeWidth = 2cm; + +struct TreeNode { + TreeNode parent; + TreeNode[] children; + + frame content; + + pair pos; + real adjust; +} + +void add( TreeNode child, TreeNode parent ) +{ + child.parent = parent; + parent.children.push( child ); +} + +TreeNode makeNode( TreeNode parent = null, frame f ) +{ + TreeNode child = new TreeNode; + child.content = f; + if( parent != null ) { + add( child, parent ); + } + return child; +} + +TreeNode makeNode( TreeNode parent = null, Label label ) +{ + frame f; + roundbox( f, label, 2, 2, linewidth(0.5), FillDraw(orange+white)); + return makeNode( parent, f ); +} + + +real layout( int level, TreeNode node ) +{ + if( node.children.length > 0 ) { + real width[] = new real[node.children.length]; + real curWidth = 0; + + for( int i = 0; i < node.children.length; ++i ) { + width[i] = layout( level+1, node.children[i] ); + + node.children[i].pos = (curWidth + width[i]/2, + -level*treeLevelStep); + curWidth += width[i] + treeNodeStep; + } + + real midPoint = ( sum( width )+treeNodeStep*(width.length-1)) / 2; + for( int i = 0; i < node.children.length; ++i ) { + node.children[i].adjust = - midPoint; + } + + return max( (max(node.content)-min(node.content)).x, + sum(width)+treeNodeStep*(width.length-1) ); + } + else { + return max( treeMinNodeWidth, (max(node.content)-min(node.content)).x ); + } +} + +void drawAll( TreeNode node, frame f ) +{ + pair pos; + if( node.parent != null ) + pos = (node.parent.pos.x+node.adjust, 0); + else + pos = (node.adjust, 0); + node.pos += pos; + + node.content = shift(node.pos)*node.content; + add( f, node.content ); + + + if( node.parent != null ) { + path p = point(node.content, N)--point(node.parent.content,S); + draw( f, p, currentpen ); + } + + for( int i = 0; i < node.children.length; ++i ) + drawAll( node.children[i], f ); +} + +void draw( TreeNode root, pair pos ) +{ + frame f; + + root.pos = (0,0); + layout( 1, root ); + + drawAll( root, f ); + + add(f,pos); +} +settings.outformat="pdf"; + +treeNodeStep = 0.4cm; +treeLevelStep = 1.8cm; + +TreeNode root = makeNode("\tt n2-id1.sim/"); + +TreeNode child1 = makeNode(root, "\tt inputs/"); +TreeNode child11 = makeNode(child1, "\tt simulation.tess"); + +draw (root, (0, 0)); diff --git a/tests/V/space_tree/n2-id1.sim/graph.pdf b/tests/V/space_tree/n2-id1.sim/graph.pdf new file mode 100644 index 000000000..a0a7facc8 Binary files /dev/null and b/tests/V/space_tree/n2-id1.sim/graph.pdf differ diff --git a/tests/V/space_tree/n2-id1.sim/inputs/simulation.tess b/tests/V/space_tree/n2-id1.sim/inputs/simulation.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_tree/n2-id1.sim/inputs/simulation.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_tree/n2-id1.tess b/tests/V/space_tree/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_tree/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_tree/ref.png b/tests/V/space_tree/ref.png new file mode 100644 index 000000000..23795354a Binary files /dev/null and b/tests/V/space_tree/ref.png differ diff --git a/tests/V/space_tree/test.cmake b/tests/V/space_tree/test.cmake new file mode 100644 index 000000000..cef458a7d --- /dev/null +++ b/tests/V/space_tree/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.sim -space tree -print test) +include(../../test.cmake) diff --git a/tests/V/space_tree_res/n2-id1.sim/.sim b/tests/V/space_tree_res/n2-id1.sim/.sim new file mode 100644 index 000000000..5236eab9f --- /dev/null +++ b/tests/V/space_tree_res/n2-id1.sim/.sim @@ -0,0 +1,15 @@ +***sim + **format + 1.0 + **input + *tess + simulation.tess + **general + 2 0 0 0 0 + *orides + rodrigues:active + **entity cell + *result + 1 + diameq +***end diff --git a/tests/V/space_tree_res/n2-id1.sim/graph.asy b/tests/V/space_tree_res/n2-id1.sim/graph.asy new file mode 100644 index 000000000..24c7efa52 --- /dev/null +++ b/tests/V/space_tree_res/n2-id1.sim/graph.asy @@ -0,0 +1,118 @@ + +// A simple tree drawing module contributed by adarovsky +// See example treetest.asy + +real treeNodeStep = 0.5cm; +real treeLevelStep = 1cm; +real treeMinNodeWidth = 2cm; + +struct TreeNode { + TreeNode parent; + TreeNode[] children; + + frame content; + + pair pos; + real adjust; +} + +void add( TreeNode child, TreeNode parent ) +{ + child.parent = parent; + parent.children.push( child ); +} + +TreeNode makeNode( TreeNode parent = null, frame f ) +{ + TreeNode child = new TreeNode; + child.content = f; + if( parent != null ) { + add( child, parent ); + } + return child; +} + +TreeNode makeNode( TreeNode parent = null, Label label ) +{ + frame f; + roundbox( f, label, 2, 2, linewidth(0.5), FillDraw(orange+white)); + return makeNode( parent, f ); +} + + +real layout( int level, TreeNode node ) +{ + if( node.children.length > 0 ) { + real width[] = new real[node.children.length]; + real curWidth = 0; + + for( int i = 0; i < node.children.length; ++i ) { + width[i] = layout( level+1, node.children[i] ); + + node.children[i].pos = (curWidth + width[i]/2, + -level*treeLevelStep); + curWidth += width[i] + treeNodeStep; + } + + real midPoint = ( sum( width )+treeNodeStep*(width.length-1)) / 2; + for( int i = 0; i < node.children.length; ++i ) { + node.children[i].adjust = - midPoint; + } + + return max( (max(node.content)-min(node.content)).x, + sum(width)+treeNodeStep*(width.length-1) ); + } + else { + return max( treeMinNodeWidth, (max(node.content)-min(node.content)).x ); + } +} + +void drawAll( TreeNode node, frame f ) +{ + pair pos; + if( node.parent != null ) + pos = (node.parent.pos.x+node.adjust, 0); + else + pos = (node.adjust, 0); + node.pos += pos; + + node.content = shift(node.pos)*node.content; + add( f, node.content ); + + + if( node.parent != null ) { + path p = point(node.content, N)--point(node.parent.content,S); + draw( f, p, currentpen ); + } + + for( int i = 0; i < node.children.length; ++i ) + drawAll( node.children[i], f ); +} + +void draw( TreeNode root, pair pos ) +{ + frame f; + + root.pos = (0,0); + layout( 1, root ); + + drawAll( root, f ); + + add(f,pos); +} +settings.outformat="pdf"; + +treeNodeStep = 0.4cm; +treeLevelStep = 1.8cm; + +TreeNode root = makeNode("\tt n2-id1.sim/"); + +TreeNode child1 = makeNode(root, "\tt inputs/"); +TreeNode child11 = makeNode(child1, "\tt simulation.tess"); +TreeNode child2 = makeNode(root, "\tt results/"); +TreeNode child21 = makeNode(child2, "\tt cell/"); +TreeNode child211 = makeNode(child21, "\tt diameq/"); +TreeNode child2111 = makeNode(child211, "\tt diameq.step0"); + + +draw (root, (0, 0)); diff --git a/tests/V/space_tree_res/n2-id1.sim/graph.pdf b/tests/V/space_tree_res/n2-id1.sim/graph.pdf new file mode 100644 index 000000000..12b19907d Binary files /dev/null and b/tests/V/space_tree_res/n2-id1.sim/graph.pdf differ diff --git a/tests/V/space_tree_res/n2-id1.sim/inputs/simulation.tess b/tests/V/space_tree_res/n2-id1.sim/inputs/simulation.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_tree_res/n2-id1.sim/inputs/simulation.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_tree_res/n2-id1.sim/results/cells/diameq/diameq.step0 b/tests/V/space_tree_res/n2-id1.sim/results/cells/diameq/diameq.step0 new file mode 100644 index 000000000..7fd976787 --- /dev/null +++ b/tests/V/space_tree_res/n2-id1.sim/results/cells/diameq/diameq.step0 @@ -0,0 +1,2 @@ +0.943679886547 +1.022644182910 diff --git a/tests/V/space_tree_res/n2-id1.tess b/tests/V/space_tree_res/n2-id1.tess new file mode 100644 index 000000000..c1e215790 --- /dev/null +++ b/tests/V/space_tree_res/n2-id1.tess @@ -0,0 +1,207 @@ +***tess + **format + 3.4 + **general + 3 standard + **cell + 2 + *crysym + triclinic + *seed + 1 0.588079382832 0.389046853444 0.159391794127 0.000000000000 + 2 0.452028974213 0.195589598124 0.501814614272 0.000000000000 + *ori + rodrigues:active + -2.444015198417 0.618305125773 2.829029762200 + 0.441042954395 0.731096527047 -0.307369633254 + **vertex + 13 + 1 1.000000000000 0.000000000000 0.000000000000 0 + 2 1.000000000000 1.000000000000 0.000000000000 0 + 3 0.000000000000 1.000000000000 0.000000000000 0 + 4 -0.000000000000 0.072876995892 -0.000000000000 0 + 5 -0.000000000000 1.000000000000 0.523792986818 0 + 6 1.000000000000 1.000000000000 0.921109989703 0 + 7 1.000000000000 -0.000000000000 0.356143977106 0 + 8 0.103627646137 -0.000000000000 -0.000000000000 0 + 9 0.000000000000 0.000000000000 0.000000000000 0 + 10 0.000000000000 0.000000000000 1.000000000000 0 + 11 0.000000000000 1.000000000000 1.000000000000 0 + 12 1.000000000000 1.000000000000 1.000000000000 0 + 13 1.000000000000 0.000000000000 1.000000000000 0 + **edge + 22 + 1 3 4 0 + 2 4 5 0 + 3 5 3 0 + 4 1 2 0 + 5 2 6 0 + 6 6 7 0 + 7 7 1 0 + 8 7 8 0 + 9 8 1 0 + 10 2 3 0 + 11 5 6 0 + 12 8 4 0 + 13 9 10 0 + 14 10 11 0 + 15 11 5 0 + 16 4 9 0 + 17 12 13 0 + 18 13 7 0 + 19 6 12 0 + 20 13 10 0 + 21 9 8 0 + 22 11 12 0 + **face + 12 + 1 3 3 4 5 + 3 1 2 3 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 2 4 1 2 6 7 + 4 4 5 6 7 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 3 3 1 7 8 + 3 -7 8 9 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 4 4 2 3 5 6 + 4 10 -3 11 -5 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 5 5 3 2 1 8 4 + 5 -10 -4 -9 12 -1 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 6 5 4 5 6 7 8 + 5 2 11 6 8 12 + 0.033877828761 0.326918829328 0.464863134746 -0.822816106421 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 7 5 9 10 11 5 4 + 5 13 14 15 -2 16 + -0.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 8 4 12 13 7 6 + 4 17 18 -6 19 + 1.000000000000 1.000000000000 0.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 9 5 13 10 9 8 7 + 5 20 -13 21 -8 -18 + -0.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 10 4 11 12 6 5 + 4 22 -19 -11 -15 + 1.000000000000 0.000000000000 1.000000000000 0.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 11 3 9 4 8 + 3 -16 -12 -21 + -0.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + 12 4 13 12 11 10 + 4 -17 -22 -14 -20 + 1.000000000000 0.000000000000 0.000000000000 1.000000000000 + 0 0 0.000000000000 0.000000000000 0.000000000000 + **polyhedron + 2 + 1 6 1 2 3 4 5 -6 + 2 7 7 8 9 10 11 12 6 + **domain + *general + cube + *vertex + 8 + 1 0.000000000000 0.000000000000 0.000000000000 x0y0z0 + 1 9 + 2 1.000000000000 0.000000000000 0.000000000000 x1y0z0 + 1 1 + 3 1.000000000000 1.000000000000 0.000000000000 x1y1z0 + 1 2 + 4 0.000000000000 1.000000000000 0.000000000000 x0y1z0 + 1 3 + 5 0.000000000000 0.000000000000 1.000000000000 x0y0z1 + 1 10 + 6 0.000000000000 1.000000000000 1.000000000000 x0y1z1 + 1 11 + 7 1.000000000000 1.000000000000 1.000000000000 x1y1z1 + 1 12 + 8 1.000000000000 0.000000000000 1.000000000000 x1y0z1 + 1 13 + *edge + 12 + 1 2 4 6 + x0y1 + 2 3 15 + 2 2 6 5 + x0z1 + 1 14 + 3 2 5 1 + x0y0 + 1 13 + 4 2 1 4 + x0z0 + 2 1 16 + 5 2 2 8 + x1y0 + 2 7 18 + 6 2 8 7 + x1z1 + 1 17 + 7 2 7 3 + x1y1 + 2 5 19 + 8 2 3 2 + x1z0 + 1 4 + 9 2 5 8 + y0z1 + 1 20 + 10 2 2 1 + y0z0 + 2 9 21 + 11 2 4 3 + y1z0 + 1 10 + 12 2 7 6 + y1z1 + 1 22 + *face + 6 + 1 4 4 6 5 1 + 4 1 2 3 4 + plane + 4 0.000000000000 1.000000000000 0.000000000000 0.000000000000 + x0 + 2 1 7 + 2 4 2 8 7 3 + 4 5 6 7 8 + plane + 4 -1.000000000000 -1.000000000000 -0.000000000000 -0.000000000000 + x1 + 2 2 8 + 3 4 1 5 8 2 + 4 3 9 5 10 + plane + 4 0.000000000000 0.000000000000 1.000000000000 0.000000000000 + y0 + 2 3 9 + 4 4 4 3 7 6 + 4 11 7 12 1 + plane + 4 -1.000000000000 -0.000000000000 -1.000000000000 -0.000000000000 + y1 + 2 4 10 + 5 4 1 2 3 4 + 4 10 8 11 4 + plane + 4 0.000000000000 0.000000000000 0.000000000000 1.000000000000 + z0 + 2 5 11 + 6 4 5 6 7 8 + 4 2 12 6 9 + plane + 4 -1.000000000000 -0.000000000000 -0.000000000000 -1.000000000000 + z1 + 1 12 +***end diff --git a/tests/V/space_tree_res/ref.png b/tests/V/space_tree_res/ref.png new file mode 100644 index 000000000..6326a2708 Binary files /dev/null and b/tests/V/space_tree_res/ref.png differ diff --git a/tests/V/space_tree_res/test.cmake b/tests/V/space_tree_res/test.cmake new file mode 100644 index 000000000..cef458a7d --- /dev/null +++ b/tests/V/space_tree_res/test.cmake @@ -0,0 +1,6 @@ +# This file is part of the Neper software package. +# Copyright(C) 2003-2022, Romain Quey. +# See the COPYING file in the top-level directory. + +set (test_command -V n2-id1.sim -space tree -print test) +include(../../test.cmake) diff --git a/tests/V/vercol_real/ref-scale0.png b/tests/V/vercol_real/ref-scale0.png index 0d3c7e508..ef6788e76 100644 Binary files a/tests/V/vercol_real/ref-scale0.png and b/tests/V/vercol_real/ref-scale0.png differ diff --git a/tests/V/vercol_real/ref.png b/tests/V/vercol_real/ref.png index a9a264276..151b548a2 100644 Binary files a/tests/V/vercol_real/ref.png and b/tests/V/vercol_real/ref.png differ diff --git a/tests/V/vercol_real_colscheme/ref-scale0.png b/tests/V/vercol_real_colscheme/ref-scale0.png index 2139ca03d..7ebba2fc5 100644 Binary files a/tests/V/vercol_real_colscheme/ref-scale0.png and b/tests/V/vercol_real_colscheme/ref-scale0.png differ diff --git a/tests/V/vercol_real_colscheme/ref.png b/tests/V/vercol_real_colscheme/ref.png index 047d65850..db4514151 100644 Binary files a/tests/V/vercol_real_colscheme/ref.png and b/tests/V/vercol_real_colscheme/ref.png differ diff --git a/tests/V/vercol_real_colscheme/test.cmake b/tests/V/vercol_real_colscheme/test.cmake index a91bcffa5..36295eb76 100644 --- a/tests/V/vercol_real_colscheme/test.cmake +++ b/tests/V/vercol_real_colscheme/test.cmake @@ -2,5 +2,5 @@ # Copyright(C) 2003-2022, Romain Quey. # See the COPYING file in the top-level directory. -set (test_command -V n2-id1.tess -showcell none -showver all -datavercol "real:file(n2-id1.stver)" -datavercolscheme black,white -print test) +set (test_command -V n2-id1.tess -showcell none -showver all -datavercol "real:file(n2-id1.stver)" -datavercolscheme "custom(black,white)" -print test) include(../../test.cmake) diff --git a/tests/V/verscale/ref-scale0.png b/tests/V/verscale/ref-scale0.png index 753e011a0..0de1e1202 100644 Binary files a/tests/V/verscale/ref-scale0.png and b/tests/V/verscale/ref-scale0.png differ diff --git a/tests/V/verscale/ref.png b/tests/V/verscale/ref.png index 274e6011e..6d1caf691 100644 Binary files a/tests/V/verscale/ref.png and b/tests/V/verscale/ref.png differ diff --git a/tests/V/verscale2/ref-scale0.png b/tests/V/verscale2/ref-scale0.png index 4752a53d6..b45a944ab 100644 Binary files a/tests/V/verscale2/ref-scale0.png and b/tests/V/verscale2/ref-scale0.png differ diff --git a/tests/V/verscale2/ref.png b/tests/V/verscale2/ref.png index 830976ae9..aba4c5a44 100644 Binary files a/tests/V/verscale2/ref.png and b/tests/V/verscale2/ref.png differ diff --git a/tests/V/verscaletitle/ref-scale0.png b/tests/V/verscaletitle/ref-scale0.png index 288269c61..f761dd605 100644 Binary files a/tests/V/verscaletitle/ref-scale0.png and b/tests/V/verscaletitle/ref-scale0.png differ diff --git a/tests/V/verscaletitle/ref.png b/tests/V/verscaletitle/ref.png index 13dcc7ac7..7452e1f9c 100644 Binary files a/tests/V/verscaletitle/ref.png and b/tests/V/verscaletitle/ref.png differ diff --git a/tests/test.cmake b/tests/test.cmake index 90710611c..3e30e7ea3 100644 --- a/tests/test.cmake +++ b/tests/test.cmake @@ -9,7 +9,12 @@ if(RESVAR) endif() if ("${test_mode}" MATCHES "Normal" AND NOT "${test_mode_force_minimal}" EQUAL 1) - file(GLOB ref_files ref.*) + file(GLOB bak_files *.bak *~) + foreach(bak_file ${bak_files}) + file (REMOVE ${bak_file}) + endforeach() + + file(GLOB ref_files ref.* ref-*) foreach(ref_file ${ref_files}) string(REPLACE "ref" "test" test_file ${ref_file}) if (NOT "${test_file}" MATCHES ".png")